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 ffprobe may be employed both as a standalone application or in
24 combination with a textual filter, which may perform more sophisticated
25 processing, e.g. statistical processing or plotting.
26
27 Options are used to list some of the formats supported by ffprobe or
28 for specifying which information to display, and for setting how
29 ffprobe will show it.
30
31 ffprobe output is designed to be easily parsable by a textual filter,
32 and consists of one or more sections of a form defined by the selected
33 writer, which is specified by the print_format option.
34
35 Sections may contain other nested sections, and are identified by a
36 name (which may be shared by other sections), and an unique name. See
37 the output of sections.
38
39 Metadata tags stored in the container or in the streams are recognized
40 and printed in the corresponding "FORMAT", "STREAM" or "PROGRAM_STREAM"
41 section.
42
44 All the numerical options, if not specified otherwise, accept a string
45 representing a number as input, which may be followed by one of the SI
46 unit prefixes, for example: 'K', 'M', or 'G'.
47
48 If 'i' is appended to the SI unit prefix, the complete prefix will be
49 interpreted as a unit prefix for binary multiples, which are based on
50 powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
51 prefix multiplies the value by 8. This allows using, for example: 'KB',
52 'MiB', 'G' and 'B' as number suffixes.
53
54 Options which do not take arguments are boolean options, and set the
55 corresponding value to true. They can be set to false by prefixing the
56 option name with "no". For example using "-nofoo" will set the boolean
57 option with name "foo" to false.
58
59 Stream specifiers
60 Some options are applied per-stream, e.g. bitrate or codec. Stream
61 specifiers are used to precisely specify which stream(s) a given option
62 belongs to.
63
64 A stream specifier is a string generally appended to the option name
65 and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the
66 "a:1" stream specifier, which matches the second audio stream.
67 Therefore, it would select the ac3 codec for the second audio stream.
68
69 A stream specifier can match several streams, so that the option is
70 applied to all of them. E.g. the stream specifier in "-b:a 128k"
71 matches all audio streams.
72
73 An empty stream specifier matches all streams. For example, "-codec
74 copy" or "-codec: copy" would copy all the streams without reencoding.
75
76 Possible forms of stream specifiers are:
77
78 stream_index
79 Matches the stream with this index. E.g. "-threads:1 4" would set
80 the thread count for the second stream to 4. If stream_index is
81 used as an additional stream specifier (see below), then it selects
82 stream number stream_index from the matching streams. Stream
83 numbering is based on the order of the streams as detected by
84 libavformat except when a program ID is also specified. In this
85 case it is based on the ordering of the streams in the program.
86
87 stream_type[:additional_stream_specifier]
88 stream_type is one of following: 'v' or 'V' for video, 'a' for
89 audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v'
90 matches all video streams, 'V' only matches video streams which are
91 not attached pictures, video thumbnails or cover arts. If
92 additional_stream_specifier is used, then it matches streams which
93 both have this type and match the additional_stream_specifier.
94 Otherwise, it matches all streams of the specified type.
95
96 p:program_id[:additional_stream_specifier]
97 Matches streams which are in the program with the id program_id. If
98 additional_stream_specifier is used, then it matches streams which
99 both are part of the program and match the
100 additional_stream_specifier.
101
102 #stream_id or i:stream_id
103 Match the stream by stream id (e.g. PID in MPEG-TS container).
104
105 m:key[:value]
106 Matches streams with the metadata tag key having the specified
107 value. If value is not given, matches streams that contain the
108 given tag with any value.
109
110 u Matches streams with usable configuration, the codec must be
111 defined and the essential information such as video dimension or
112 audio sample rate must be present.
113
114 Note that in ffmpeg, matching by metadata will only work properly
115 for input files.
116
117 Generic options
118 These options are shared amongst the ff* tools.
119
120 -L Show license.
121
122 -h, -?, -help, --help [arg]
123 Show help. An optional parameter may be specified to print help
124 about a specific item. If no argument is specified, only basic (non
125 advanced) tool options are shown.
126
127 Possible values of arg are:
128
129 long
130 Print advanced tool options in addition to the basic tool
131 options.
132
133 full
134 Print complete list of options, including shared and private
135 options for encoders, decoders, demuxers, muxers, filters, etc.
136
137 decoder=decoder_name
138 Print detailed information about the decoder named
139 decoder_name. Use the -decoders option to get a list of all
140 decoders.
141
142 encoder=encoder_name
143 Print detailed information about the encoder named
144 encoder_name. Use the -encoders option to get a list of all
145 encoders.
146
147 demuxer=demuxer_name
148 Print detailed information about the demuxer named
149 demuxer_name. Use the -formats option to get a list of all
150 demuxers and muxers.
151
152 muxer=muxer_name
153 Print detailed information about the muxer named muxer_name.
154 Use the -formats option to get a list of all muxers and
155 demuxers.
156
157 filter=filter_name
158 Print detailed information about the filter named filter_name.
159 Use the -filters option to get a list of all filters.
160
161 bsf=bitstream_filter_name
162 Print detailed information about the bitstream filter named
163 bitstream_filter_name. Use the -bsfs option to get a list of
164 all bitstream filters.
165
166 protocol=protocol_name
167 Print detailed information about the protocol named
168 protocol_name. Use the -protocols option to get a list of all
169 protocols.
170
171 -version
172 Show version.
173
174 -buildconf
175 Show the build configuration, one option per line.
176
177 -formats
178 Show available formats (including devices).
179
180 -demuxers
181 Show available demuxers.
182
183 -muxers
184 Show available muxers.
185
186 -devices
187 Show available devices.
188
189 -codecs
190 Show all codecs known to libavcodec.
191
192 Note that the term 'codec' is used throughout this documentation as
193 a shortcut for what is more correctly called a media bitstream
194 format.
195
196 -decoders
197 Show available decoders.
198
199 -encoders
200 Show all available encoders.
201
202 -bsfs
203 Show available bitstream filters.
204
205 -protocols
206 Show available protocols.
207
208 -filters
209 Show available libavfilter filters.
210
211 -pix_fmts
212 Show available pixel formats.
213
214 -sample_fmts
215 Show available sample formats.
216
217 -layouts
218 Show channel names and standard channel layouts.
219
220 -dispositions
221 Show stream dispositions.
222
223 -colors
224 Show recognized color names.
225
226 -sources device[,opt1=val1[,opt2=val2]...]
227 Show autodetected sources of the input device. Some devices may
228 provide system-dependent source names that cannot be autodetected.
229 The returned list cannot be assumed to be always complete.
230
231 ffmpeg -sources pulse,server=192.168.0.4
232
233 -sinks device[,opt1=val1[,opt2=val2]...]
234 Show autodetected sinks of the output device. Some devices may
235 provide system-dependent sink names that cannot be autodetected.
236 The returned list cannot be assumed to be always complete.
237
238 ffmpeg -sinks pulse,server=192.168.0.4
239
240 -loglevel [flags+]loglevel | -v [flags+]loglevel
241 Set logging level and flags used by the library.
242
243 The optional flags prefix can consist of the following values:
244
245 repeat
246 Indicates that repeated log output should not be compressed to
247 the first line and the "Last message repeated n times" line
248 will be omitted.
249
250 level
251 Indicates that log output should add a "[level]" prefix to each
252 message line. This can be used as an alternative to log
253 coloring, e.g. when dumping the log to file.
254
255 Flags can also be used alone by adding a '+'/'-' prefix to
256 set/reset a single flag without affecting other flags or changing
257 loglevel. When setting both flags and loglevel, a '+' separator is
258 expected between the last flags value and before loglevel.
259
260 loglevel is a string or a number containing one of the following
261 values:
262
263 quiet, -8
264 Show nothing at all; be silent.
265
266 panic, 0
267 Only show fatal errors which could lead the process to crash,
268 such as an assertion failure. This is not currently used for
269 anything.
270
271 fatal, 8
272 Only show fatal errors. These are errors after which the
273 process absolutely cannot continue.
274
275 error, 16
276 Show all errors, including ones which can be recovered from.
277
278 warning, 24
279 Show all warnings and errors. Any message related to possibly
280 incorrect or unexpected events will be shown.
281
282 info, 32
283 Show informative messages during processing. This is in
284 addition to warnings and errors. This is the default value.
285
286 verbose, 40
287 Same as "info", except more verbose.
288
289 debug, 48
290 Show everything, including debugging information.
291
292 trace, 56
293
294 For example to enable repeated log output, add the "level" prefix,
295 and set loglevel to "verbose":
296
297 ffmpeg -loglevel repeat+level+verbose -i input output
298
299 Another example that enables repeated log output without affecting
300 current state of "level" prefix flag or loglevel:
301
302 ffmpeg [...] -loglevel +repeat
303
304 By default the program logs to stderr. If coloring is supported by
305 the terminal, colors are used to mark errors and warnings. Log
306 coloring can be disabled setting the environment variable
307 AV_LOG_FORCE_NOCOLOR, or can be forced setting the environment
308 variable AV_LOG_FORCE_COLOR.
309
310 -report
311 Dump full command line and log output to a file named
312 "program-YYYYMMDD-HHMMSS.log" in the current directory. This file
313 can be useful for bug reports. It also implies "-loglevel debug".
314
315 Setting the environment variable FFREPORT to any value has the same
316 effect. If the value is a ':'-separated key=value sequence, these
317 options will affect the report; option values must be escaped if
318 they contain special characters or the options delimiter ':' (see
319 the ``Quoting and escaping'' section in the ffmpeg-utils manual).
320
321 The following options are recognized:
322
323 file
324 set the file name to use for the report; %p is expanded to the
325 name of the program, %t is expanded to a timestamp, "%%" is
326 expanded to a plain "%"
327
328 level
329 set the log verbosity level using a numerical value (see
330 "-loglevel").
331
332 For example, to output a report to a file named ffreport.log using
333 a log level of 32 (alias for log level "info"):
334
335 FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
336
337 Errors in parsing the environment variable are not fatal, and will
338 not appear in the report.
339
340 -hide_banner
341 Suppress printing banner.
342
343 All FFmpeg tools will normally show a copyright notice, build
344 options and library versions. This option can be used to suppress
345 printing this information.
346
347 -cpuflags flags (global)
348 Allows setting and clearing cpu flags. This option is intended for
349 testing. Do not use it unless you know what you're doing.
350
351 ffmpeg -cpuflags -sse+mmx ...
352 ffmpeg -cpuflags mmx ...
353 ffmpeg -cpuflags 0 ...
354
355 Possible flags for this option are:
356
357 x86
358 mmx
359 mmxext
360 sse
361 sse2
362 sse2slow
363 sse3
364 sse3slow
365 ssse3
366 atom
367 sse4.1
368 sse4.2
369 avx
370 avx2
371 xop
372 fma3
373 fma4
374 3dnow
375 3dnowext
376 bmi1
377 bmi2
378 cmov
379 ARM
380 armv5te
381 armv6
382 armv6t2
383 vfp
384 vfpv3
385 neon
386 setend
387 AArch64
388 armv8
389 vfp
390 neon
391 PowerPC
392 altivec
393 Specific Processors
394 pentium2
395 pentium3
396 pentium4
397 k6
398 k62
399 athlon
400 athlonxp
401 k8
402 -cpucount count (global)
403 Override detection of CPU count. This option is intended for
404 testing. Do not use it unless you know what you're doing.
405
406 ffmpeg -cpucount 2
407
408 -max_alloc bytes
409 Set the maximum size limit for allocating a block on the heap by
410 ffmpeg's family of malloc functions. Exercise extreme caution when
411 using this option. Don't use if you do not understand the full
412 consequence of doing so. Default is INT_MAX.
413
414 AVOptions
415 These options are provided directly by the libavformat, libavdevice and
416 libavcodec libraries. To see the list of available AVOptions, use the
417 -help option. They are separated into two categories:
418
419 generic
420 These options can be set for any container, codec or device.
421 Generic options are listed under AVFormatContext options for
422 containers/devices and under AVCodecContext options for codecs.
423
424 private
425 These options are specific to the given container, device or codec.
426 Private options are listed under their corresponding
427 containers/devices/codecs.
428
429 For example to write an ID3v2.3 header instead of a default ID3v2.4 to
430 an MP3 file, use the id3v2_version private option of the MP3 muxer:
431
432 ffmpeg -i input.flac -id3v2_version 3 out.mp3
433
434 All codec AVOptions are per-stream, and thus a stream specifier should
435 be attached to them:
436
437 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
438
439 In the above example, a multichannel audio stream is mapped twice for
440 output. The first instance is encoded with codec ac3 and bitrate 640k.
441 The second instance is downmixed to 2 channels and encoded with codec
442 aac. A bitrate of 128k is specified for it using absolute index of the
443 output stream.
444
445 Note: the -nooption syntax cannot be used for boolean AVOptions, use
446 -option 0/-option 1.
447
448 Note: the old undocumented way of specifying per-stream AVOptions by
449 prepending v/a/s to the options name is now obsolete and will be
450 removed soon.
451
452 Main options
453 -f format
454 Force format to use.
455
456 -unit
457 Show the unit of the displayed values.
458
459 -prefix
460 Use SI prefixes for the displayed values. Unless the
461 "-byte_binary_prefix" option is used all the prefixes are decimal.
462
463 -byte_binary_prefix
464 Force the use of binary prefixes for byte values.
465
466 -sexagesimal
467 Use sexagesimal format HH:MM:SS.MICROSECONDS for time values.
468
469 -pretty
470 Prettify the format of the displayed values, it corresponds to the
471 options "-unit -prefix -byte_binary_prefix -sexagesimal".
472
473 -of, -print_format writer_name[=writer_options]
474 Set the output printing format.
475
476 writer_name specifies the name of the writer, and writer_options
477 specifies the options to be passed to the writer.
478
479 For example for printing the output in JSON format, specify:
480
481 -print_format json
482
483 For more details on the available output printing formats, see the
484 Writers section below.
485
486 -sections
487 Print sections structure and section information, and exit. The
488 output is not meant to be parsed by a machine.
489
490 -select_streams stream_specifier
491 Select only the streams specified by stream_specifier. This option
492 affects only the options related to streams (e.g. "show_streams",
493 "show_packets", etc.).
494
495 For example to show only audio streams, you can use the command:
496
497 ffprobe -show_streams -select_streams a INPUT
498
499 To show only video packets belonging to the video stream with index
500 1:
501
502 ffprobe -show_packets -select_streams v:1 INPUT
503
504 -show_data
505 Show payload data, as a hexadecimal and ASCII dump. Coupled with
506 -show_packets, it will dump the packets' data. Coupled with
507 -show_streams, it will dump the codec extradata.
508
509 The dump is printed as the "data" field. It may contain newlines.
510
511 -show_data_hash algorithm
512 Show a hash of payload data, for packets with -show_packets and for
513 codec extradata with -show_streams.
514
515 -show_error
516 Show information about the error found when trying to probe the
517 input.
518
519 The error information is printed within a section with name
520 "ERROR".
521
522 -show_format
523 Show information about the container format of the input multimedia
524 stream.
525
526 All the container format information is printed within a section
527 with name "FORMAT".
528
529 -show_format_entry name
530 Like -show_format, but only prints the specified entry of the
531 container format information, rather than all. This option may be
532 given more than once, then all specified entries will be shown.
533
534 This option is deprecated, use "show_entries" instead.
535
536 -show_entries section_entries
537 Set list of entries to show.
538
539 Entries are specified according to the following syntax.
540 section_entries contains a list of section entries separated by
541 ":". Each section entry is composed by a section name (or unique
542 name), optionally followed by a list of entries local to that
543 section, separated by ",".
544
545 If section name is specified but is followed by no "=", all entries
546 are printed to output, together with all the contained sections.
547 Otherwise only the entries specified in the local section entries
548 list are printed. In particular, if "=" is specified but the list
549 of local entries is empty, then no entries will be shown for that
550 section.
551
552 Note that the order of specification of the local section entries
553 is not honored in the output, and the usual display order will be
554 retained.
555
556 The formal syntax is given by:
557
558 <LOCAL_SECTION_ENTRIES> ::= <SECTION_ENTRY_NAME>[,<LOCAL_SECTION_ENTRIES>]
559 <SECTION_ENTRY> ::= <SECTION_NAME>[=[<LOCAL_SECTION_ENTRIES>]]
560 <SECTION_ENTRIES> ::= <SECTION_ENTRY>[:<SECTION_ENTRIES>]
561
562 For example, to show only the index and type of each stream, and
563 the PTS time, duration time, and stream index of the packets, you
564 can specify the argument:
565
566 packet=pts_time,duration_time,stream_index : stream=index,codec_type
567
568 To show all the entries in the section "format", but only the codec
569 type in the section "stream", specify the argument:
570
571 format : stream=codec_type
572
573 To show all the tags in the stream and format sections:
574
575 stream_tags : format_tags
576
577 To show only the "title" tag (if available) in the stream sections:
578
579 stream_tags=title
580
581 -show_packets
582 Show information about each packet contained in the input
583 multimedia stream.
584
585 The information for each single packet is printed within a
586 dedicated section with name "PACKET".
587
588 -show_frames
589 Show information about each frame and subtitle contained in the
590 input multimedia stream.
591
592 The information for each single frame is printed within a dedicated
593 section with name "FRAME" or "SUBTITLE".
594
595 -show_log loglevel
596 Show logging information from the decoder about each frame
597 according to the value set in loglevel, (see "-loglevel"). This
598 option requires "-show_frames".
599
600 The information for each log message is printed within a dedicated
601 section with name "LOG".
602
603 -show_streams
604 Show information about each media stream contained in the input
605 multimedia stream.
606
607 Each media stream information is printed within a dedicated section
608 with name "STREAM".
609
610 -show_programs
611 Show information about programs and their streams contained in the
612 input multimedia stream.
613
614 Each media stream information is printed within a dedicated section
615 with name "PROGRAM_STREAM".
616
617 -show_chapters
618 Show information about chapters stored in the format.
619
620 Each chapter is printed within a dedicated section with name
621 "CHAPTER".
622
623 -count_frames
624 Count the number of frames per stream and report it in the
625 corresponding stream section.
626
627 -count_packets
628 Count the number of packets per stream and report it in the
629 corresponding stream section.
630
631 -read_intervals read_intervals
632 Read only the specified intervals. read_intervals must be a
633 sequence of interval specifications separated by ",". ffprobe will
634 seek to the interval starting point, and will continue reading from
635 that.
636
637 Each interval is specified by two optional parts, separated by "%".
638
639 The first part specifies the interval start position. It is
640 interpreted as an absolute position, or as a relative offset from
641 the current position if it is preceded by the "+" character. If
642 this first part is not specified, no seeking will be performed when
643 reading this interval.
644
645 The second part specifies the interval end position. It is
646 interpreted as an absolute position, or as a relative offset from
647 the current position if it is preceded by the "+" character. If the
648 offset specification starts with "#", it is interpreted as the
649 number of packets to read (not including the flushing packets) from
650 the interval start. If no second part is specified, the program
651 will read until the end of the input.
652
653 Note that seeking is not accurate, thus the actual interval start
654 point may be different from the specified position. Also, when an
655 interval duration is specified, the absolute end time will be
656 computed by adding the duration to the interval start point found
657 by seeking the file, rather than to the specified start value.
658
659 The formal syntax is given by:
660
661 <INTERVAL> ::= [<START>|+<START_OFFSET>][%[<END>|+<END_OFFSET>]]
662 <INTERVALS> ::= <INTERVAL>[,<INTERVALS>]
663
664 A few examples follow.
665
666 • Seek to time 10, read packets until 20 seconds after the found
667 seek point, then seek to position "01:30" (1 minute and thirty
668 seconds) and read packets until position "01:45".
669
670 10%+20,01:30%01:45
671
672 • Read only 42 packets after seeking to position "01:23":
673
674 01:23%+#42
675
676 • Read only the first 20 seconds from the start:
677
678 %+20
679
680 • Read from the start until position "02:30":
681
682 %02:30
683
684 -show_private_data, -private
685 Show private data, that is data depending on the format of the
686 particular shown element. This option is enabled by default, but
687 you may need to disable it for specific uses, for example when
688 creating XSD-compliant XML output.
689
690 -show_program_version
691 Show information related to program version.
692
693 Version information is printed within a section with name
694 "PROGRAM_VERSION".
695
696 -show_library_versions
697 Show information related to library versions.
698
699 Version information for each library is printed within a section
700 with name "LIBRARY_VERSION".
701
702 -show_versions
703 Show information related to program and library versions. This is
704 the equivalent of setting both -show_program_version and
705 -show_library_versions options.
706
707 -show_pixel_formats
708 Show information about all pixel formats supported by FFmpeg.
709
710 Pixel format information for each format is printed within a
711 section with name "PIXEL_FORMAT".
712
713 -show_optional_fields value
714 Some writers viz. JSON and XML, omit the printing of fields with
715 invalid or non-applicable values, while other writers always print
716 them. This option enables one to control this behaviour. Valid
717 values are "always"/1, "never"/0 and "auto"/"-1". Default is auto.
718
719 -bitexact
720 Force bitexact output, useful to produce output which is not
721 dependent on the specific build.
722
723 -i input_url
724 Read input_url.
725
727 A writer defines the output format adopted by ffprobe, and will be used
728 for printing all the parts of the output.
729
730 A writer may accept one or more arguments, which specify the options to
731 adopt. The options are specified as a list of key=value pairs,
732 separated by ":".
733
734 All writers support the following options:
735
736 string_validation, sv
737 Set string validation mode.
738
739 The following values are accepted.
740
741 fail
742 The writer will fail immediately in case an invalid string
743 (UTF-8) sequence or code point is found in the input. This is
744 especially useful to validate input metadata.
745
746 ignore
747 Any validation error will be ignored. This will result in
748 possibly broken output, especially with the json or xml writer.
749
750 replace
751 The writer will substitute invalid UTF-8 sequences or code
752 points with the string specified with the
753 string_validation_replacement.
754
755 Default value is replace.
756
757 string_validation_replacement, svr
758 Set replacement string to use in case string_validation is set to
759 replace.
760
761 In case the option is not specified, the writer will assume the
762 empty string, that is it will remove the invalid sequences from the
763 input strings.
764
765 A description of the currently available writers follows.
766
767 default
768 Default format.
769
770 Print each section in the form:
771
772 [SECTION]
773 key1=val1
774 ...
775 keyN=valN
776 [/SECTION]
777
778 Metadata tags are printed as a line in the corresponding FORMAT, STREAM
779 or PROGRAM_STREAM section, and are prefixed by the string "TAG:".
780
781 A description of the accepted options follows.
782
783 nokey, nk
784 If set to 1 specify not to print the key of each field. Default
785 value is 0.
786
787 noprint_wrappers, nw
788 If set to 1 specify not to print the section header and footer.
789 Default value is 0.
790
791 compact, csv
792 Compact and CSV format.
793
794 The "csv" writer is equivalent to "compact", but supports different
795 defaults.
796
797 Each section is printed on a single line. If no option is specified,
798 the output has the form:
799
800 section|key1=val1| ... |keyN=valN
801
802 Metadata tags are printed in the corresponding "format" or "stream"
803 section. A metadata tag key, if printed, is prefixed by the string
804 "tag:".
805
806 The description of the accepted options follows.
807
808 item_sep, s
809 Specify the character to use for separating fields in the output
810 line. It must be a single printable character, it is "|" by
811 default ("," for the "csv" writer).
812
813 nokey, nk
814 If set to 1 specify not to print the key of each field. Its default
815 value is 0 (1 for the "csv" writer).
816
817 escape, e
818 Set the escape mode to use, default to "c" ("csv" for the "csv"
819 writer).
820
821 It can assume one of the following values:
822
823 c Perform C-like escaping. Strings containing a newline (\n),
824 carriage return (\r), a tab (\t), a form feed (\f), the
825 escaping character (\) or the item separator character SEP are
826 escaped using C-like fashioned escaping, so that a newline is
827 converted to the sequence \n, a carriage return to \r, \ to \\
828 and the separator SEP is converted to \SEP.
829
830 csv Perform CSV-like escaping, as described in RFC4180. Strings
831 containing a newline (\n), a carriage return (\r), a double
832 quote ("), or SEP are enclosed in double-quotes.
833
834 none
835 Perform no escaping.
836
837 print_section, p
838 Print the section name at the beginning of each line if the value
839 is 1, disable it with value set to 0. Default value is 1.
840
841 flat
842 Flat format.
843
844 A free-form output where each line contains an explicit key=value, such
845 as "streams.stream.3.tags.foo=bar". The output is shell escaped, so it
846 can be directly embedded in sh scripts as long as the separator
847 character is an alphanumeric character or an underscore (see sep_char
848 option).
849
850 The description of the accepted options follows.
851
852 sep_char, s
853 Separator character used to separate the chapter, the section name,
854 IDs and potential tags in the printed field key.
855
856 Default value is ..
857
858 hierarchical, h
859 Specify if the section name specification should be hierarchical.
860 If set to 1, and if there is more than one section in the current
861 chapter, the section name will be prefixed by the name of the
862 chapter. A value of 0 will disable this behavior.
863
864 Default value is 1.
865
866 ini
867 INI format output.
868
869 Print output in an INI based format.
870
871 The following conventions are adopted:
872
873 • all key and values are UTF-8
874
875 • . is the subgroup separator
876
877 • newline, \t, \f, \b and the following characters are escaped
878
879 • \ is the escape character
880
881 • # is the comment indicator
882
883 • = is the key/value separator
884
885 • : is not used but usually parsed as key/value separator
886
887 This writer accepts options as a list of key=value pairs, separated by
888 :.
889
890 The description of the accepted options follows.
891
892 hierarchical, h
893 Specify if the section name specification should be hierarchical.
894 If set to 1, and if there is more than one section in the current
895 chapter, the section name will be prefixed by the name of the
896 chapter. A value of 0 will disable this behavior.
897
898 Default value is 1.
899
900 json
901 JSON based format.
902
903 Each section is printed using JSON notation.
904
905 The description of the accepted options follows.
906
907 compact, c
908 If set to 1 enable compact output, that is each section will be
909 printed on a single line. Default value is 0.
910
911 For more information about JSON, see <http://www.json.org/>.
912
913 xml
914 XML based format.
915
916 The XML output is described in the XML schema description file
917 ffprobe.xsd installed in the FFmpeg datadir.
918
919 An updated version of the schema can be retrieved at the url
920 <http://www.ffmpeg.org/schema/ffprobe.xsd>, which redirects to the
921 latest schema committed into the FFmpeg development source code tree.
922
923 Note that the output issued will be compliant to the ffprobe.xsd schema
924 only when no special global output options (unit, prefix,
925 byte_binary_prefix, sexagesimal etc.) are specified.
926
927 The description of the accepted options follows.
928
929 fully_qualified, q
930 If set to 1 specify if the output should be fully qualified.
931 Default value is 0. This is required for generating an XML file
932 which can be validated through an XSD file.
933
934 xsd_strict, x
935 If set to 1 perform more checks for ensuring that the output is XSD
936 compliant. Default value is 0. This option automatically sets
937 fully_qualified to 1.
938
939 For more information about the XML format, see
940 <https://www.w3.org/XML/>.
941
943 ffprobe supports Timecode extraction:
944
945 • MPEG1/2 timecode is extracted from the GOP, and is available in the
946 video stream details (-show_streams, see timecode).
947
948 • MOV timecode is extracted from tmcd track, so is available in the
949 tmcd stream metadata (-show_streams, see TAG:timecode).
950
951 • DV, GXF and AVI timecodes are available in format metadata
952 (-show_format, see TAG:timecode).
953
955 This section documents the syntax and formats employed by the FFmpeg
956 libraries and tools.
957
958 Quoting and escaping
959 FFmpeg adopts the following quoting and escaping mechanism, unless
960 explicitly specified. The following rules are applied:
961
962 • ' and \ are special characters (respectively used for quoting and
963 escaping). In addition to them, there might be other special
964 characters depending on the specific syntax where the escaping and
965 quoting are employed.
966
967 • A special character is escaped by prefixing it with a \.
968
969 • All characters enclosed between '' are included literally in the
970 parsed string. The quote character ' itself cannot be quoted, so
971 you may need to close the quote and escape it.
972
973 • Leading and trailing whitespaces, unless escaped or quoted, are
974 removed from the parsed string.
975
976 Note that you may need to add a second level of escaping when using the
977 command line or a script, which depends on the syntax of the adopted
978 shell language.
979
980 The function "av_get_token" defined in libavutil/avstring.h can be used
981 to parse a token quoted or escaped according to the rules defined
982 above.
983
984 The tool tools/ffescape in the FFmpeg source tree can be used to
985 automatically quote or escape a string in a script.
986
987 Examples
988
989 • Escape the string "Crime d'Amour" containing the "'" special
990 character:
991
992 Crime d\'Amour
993
994 • The string above contains a quote, so the "'" needs to be escaped
995 when quoting it:
996
997 'Crime d'\''Amour'
998
999 • Include leading or trailing whitespaces using quoting:
1000
1001 ' this string starts and ends with whitespaces '
1002
1003 • Escaping and quoting can be mixed together:
1004
1005 ' The string '\'string\'' is a string '
1006
1007 • To include a literal \ you can use either escaping or quoting:
1008
1009 'c:\foo' can be written as c:\\foo
1010
1011 Date
1012 The accepted syntax is:
1013
1014 [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
1015 now
1016
1017 If the value is "now" it takes the current time.
1018
1019 Time is local time unless Z is appended, in which case it is
1020 interpreted as UTC. If the year-month-day part is not specified it
1021 takes the current year-month-day.
1022
1023 Time duration
1024 There are two accepted syntaxes for expressing time duration.
1025
1026 [-][<HH>:]<MM>:<SS>[.<m>...]
1027
1028 HH expresses the number of hours, MM the number of minutes for a
1029 maximum of 2 digits, and SS the number of seconds for a maximum of 2
1030 digits. The m at the end expresses decimal value for SS.
1031
1032 or
1033
1034 [-]<S>+[.<m>...][s|ms|us]
1035
1036 S expresses the number of seconds, with the optional decimal part m.
1037 The optional literal suffixes s, ms or us indicate to interpret the
1038 value as seconds, milliseconds or microseconds, respectively.
1039
1040 In both expressions, the optional - indicates negative duration.
1041
1042 Examples
1043
1044 The following examples are all valid time duration:
1045
1046 55 55 seconds
1047
1048 0.2 0.2 seconds
1049
1050 200ms
1051 200 milliseconds, that's 0.2s
1052
1053 200000us
1054 200000 microseconds, that's 0.2s
1055
1056 12:03:45
1057 12 hours, 03 minutes and 45 seconds
1058
1059 23.189
1060 23.189 seconds
1061
1062 Video size
1063 Specify the size of the sourced video, it may be a string of the form
1064 widthxheight, or the name of a size abbreviation.
1065
1066 The following abbreviations are recognized:
1067
1068 ntsc
1069 720x480
1070
1071 pal 720x576
1072
1073 qntsc
1074 352x240
1075
1076 qpal
1077 352x288
1078
1079 sntsc
1080 640x480
1081
1082 spal
1083 768x576
1084
1085 film
1086 352x240
1087
1088 ntsc-film
1089 352x240
1090
1091 sqcif
1092 128x96
1093
1094 qcif
1095 176x144
1096
1097 cif 352x288
1098
1099 4cif
1100 704x576
1101
1102 16cif
1103 1408x1152
1104
1105 qqvga
1106 160x120
1107
1108 qvga
1109 320x240
1110
1111 vga 640x480
1112
1113 svga
1114 800x600
1115
1116 xga 1024x768
1117
1118 uxga
1119 1600x1200
1120
1121 qxga
1122 2048x1536
1123
1124 sxga
1125 1280x1024
1126
1127 qsxga
1128 2560x2048
1129
1130 hsxga
1131 5120x4096
1132
1133 wvga
1134 852x480
1135
1136 wxga
1137 1366x768
1138
1139 wsxga
1140 1600x1024
1141
1142 wuxga
1143 1920x1200
1144
1145 woxga
1146 2560x1600
1147
1148 wqsxga
1149 3200x2048
1150
1151 wquxga
1152 3840x2400
1153
1154 whsxga
1155 6400x4096
1156
1157 whuxga
1158 7680x4800
1159
1160 cga 320x200
1161
1162 ega 640x350
1163
1164 hd480
1165 852x480
1166
1167 hd720
1168 1280x720
1169
1170 hd1080
1171 1920x1080
1172
1173 2k 2048x1080
1174
1175 2kflat
1176 1998x1080
1177
1178 2kscope
1179 2048x858
1180
1181 4k 4096x2160
1182
1183 4kflat
1184 3996x2160
1185
1186 4kscope
1187 4096x1716
1188
1189 nhd 640x360
1190
1191 hqvga
1192 240x160
1193
1194 wqvga
1195 400x240
1196
1197 fwqvga
1198 432x240
1199
1200 hvga
1201 480x320
1202
1203 qhd 960x540
1204
1205 2kdci
1206 2048x1080
1207
1208 4kdci
1209 4096x2160
1210
1211 uhd2160
1212 3840x2160
1213
1214 uhd4320
1215 7680x4320
1216
1217 Video rate
1218 Specify the frame rate of a video, expressed as the number of frames
1219 generated per second. It has to be a string in the format
1220 frame_rate_num/frame_rate_den, an integer number, a float number or a
1221 valid video frame rate abbreviation.
1222
1223 The following abbreviations are recognized:
1224
1225 ntsc
1226 30000/1001
1227
1228 pal 25/1
1229
1230 qntsc
1231 30000/1001
1232
1233 qpal
1234 25/1
1235
1236 sntsc
1237 30000/1001
1238
1239 spal
1240 25/1
1241
1242 film
1243 24/1
1244
1245 ntsc-film
1246 24000/1001
1247
1248 Ratio
1249 A ratio can be expressed as an expression, or in the form
1250 numerator:denominator.
1251
1252 Note that a ratio with infinite (1/0) or negative value is considered
1253 valid, so you should check on the returned value if you want to exclude
1254 those values.
1255
1256 The undefined value can be expressed using the "0:0" string.
1257
1258 Color
1259 It can be the name of a color as defined below (case insensitive match)
1260 or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
1261 representing the alpha component.
1262
1263 The alpha component may be a string composed by "0x" followed by an
1264 hexadecimal number or a decimal number between 0.0 and 1.0, which
1265 represents the opacity value (0x00 or 0.0 means completely transparent,
1266 0xff or 1.0 completely opaque). If the alpha component is not specified
1267 then 0xff is assumed.
1268
1269 The string random will result in a random color.
1270
1271 The following names of colors are recognized:
1272
1273 AliceBlue
1274 0xF0F8FF
1275
1276 AntiqueWhite
1277 0xFAEBD7
1278
1279 Aqua
1280 0x00FFFF
1281
1282 Aquamarine
1283 0x7FFFD4
1284
1285 Azure
1286 0xF0FFFF
1287
1288 Beige
1289 0xF5F5DC
1290
1291 Bisque
1292 0xFFE4C4
1293
1294 Black
1295 0x000000
1296
1297 BlanchedAlmond
1298 0xFFEBCD
1299
1300 Blue
1301 0x0000FF
1302
1303 BlueViolet
1304 0x8A2BE2
1305
1306 Brown
1307 0xA52A2A
1308
1309 BurlyWood
1310 0xDEB887
1311
1312 CadetBlue
1313 0x5F9EA0
1314
1315 Chartreuse
1316 0x7FFF00
1317
1318 Chocolate
1319 0xD2691E
1320
1321 Coral
1322 0xFF7F50
1323
1324 CornflowerBlue
1325 0x6495ED
1326
1327 Cornsilk
1328 0xFFF8DC
1329
1330 Crimson
1331 0xDC143C
1332
1333 Cyan
1334 0x00FFFF
1335
1336 DarkBlue
1337 0x00008B
1338
1339 DarkCyan
1340 0x008B8B
1341
1342 DarkGoldenRod
1343 0xB8860B
1344
1345 DarkGray
1346 0xA9A9A9
1347
1348 DarkGreen
1349 0x006400
1350
1351 DarkKhaki
1352 0xBDB76B
1353
1354 DarkMagenta
1355 0x8B008B
1356
1357 DarkOliveGreen
1358 0x556B2F
1359
1360 Darkorange
1361 0xFF8C00
1362
1363 DarkOrchid
1364 0x9932CC
1365
1366 DarkRed
1367 0x8B0000
1368
1369 DarkSalmon
1370 0xE9967A
1371
1372 DarkSeaGreen
1373 0x8FBC8F
1374
1375 DarkSlateBlue
1376 0x483D8B
1377
1378 DarkSlateGray
1379 0x2F4F4F
1380
1381 DarkTurquoise
1382 0x00CED1
1383
1384 DarkViolet
1385 0x9400D3
1386
1387 DeepPink
1388 0xFF1493
1389
1390 DeepSkyBlue
1391 0x00BFFF
1392
1393 DimGray
1394 0x696969
1395
1396 DodgerBlue
1397 0x1E90FF
1398
1399 FireBrick
1400 0xB22222
1401
1402 FloralWhite
1403 0xFFFAF0
1404
1405 ForestGreen
1406 0x228B22
1407
1408 Fuchsia
1409 0xFF00FF
1410
1411 Gainsboro
1412 0xDCDCDC
1413
1414 GhostWhite
1415 0xF8F8FF
1416
1417 Gold
1418 0xFFD700
1419
1420 GoldenRod
1421 0xDAA520
1422
1423 Gray
1424 0x808080
1425
1426 Green
1427 0x008000
1428
1429 GreenYellow
1430 0xADFF2F
1431
1432 HoneyDew
1433 0xF0FFF0
1434
1435 HotPink
1436 0xFF69B4
1437
1438 IndianRed
1439 0xCD5C5C
1440
1441 Indigo
1442 0x4B0082
1443
1444 Ivory
1445 0xFFFFF0
1446
1447 Khaki
1448 0xF0E68C
1449
1450 Lavender
1451 0xE6E6FA
1452
1453 LavenderBlush
1454 0xFFF0F5
1455
1456 LawnGreen
1457 0x7CFC00
1458
1459 LemonChiffon
1460 0xFFFACD
1461
1462 LightBlue
1463 0xADD8E6
1464
1465 LightCoral
1466 0xF08080
1467
1468 LightCyan
1469 0xE0FFFF
1470
1471 LightGoldenRodYellow
1472 0xFAFAD2
1473
1474 LightGreen
1475 0x90EE90
1476
1477 LightGrey
1478 0xD3D3D3
1479
1480 LightPink
1481 0xFFB6C1
1482
1483 LightSalmon
1484 0xFFA07A
1485
1486 LightSeaGreen
1487 0x20B2AA
1488
1489 LightSkyBlue
1490 0x87CEFA
1491
1492 LightSlateGray
1493 0x778899
1494
1495 LightSteelBlue
1496 0xB0C4DE
1497
1498 LightYellow
1499 0xFFFFE0
1500
1501 Lime
1502 0x00FF00
1503
1504 LimeGreen
1505 0x32CD32
1506
1507 Linen
1508 0xFAF0E6
1509
1510 Magenta
1511 0xFF00FF
1512
1513 Maroon
1514 0x800000
1515
1516 MediumAquaMarine
1517 0x66CDAA
1518
1519 MediumBlue
1520 0x0000CD
1521
1522 MediumOrchid
1523 0xBA55D3
1524
1525 MediumPurple
1526 0x9370D8
1527
1528 MediumSeaGreen
1529 0x3CB371
1530
1531 MediumSlateBlue
1532 0x7B68EE
1533
1534 MediumSpringGreen
1535 0x00FA9A
1536
1537 MediumTurquoise
1538 0x48D1CC
1539
1540 MediumVioletRed
1541 0xC71585
1542
1543 MidnightBlue
1544 0x191970
1545
1546 MintCream
1547 0xF5FFFA
1548
1549 MistyRose
1550 0xFFE4E1
1551
1552 Moccasin
1553 0xFFE4B5
1554
1555 NavajoWhite
1556 0xFFDEAD
1557
1558 Navy
1559 0x000080
1560
1561 OldLace
1562 0xFDF5E6
1563
1564 Olive
1565 0x808000
1566
1567 OliveDrab
1568 0x6B8E23
1569
1570 Orange
1571 0xFFA500
1572
1573 OrangeRed
1574 0xFF4500
1575
1576 Orchid
1577 0xDA70D6
1578
1579 PaleGoldenRod
1580 0xEEE8AA
1581
1582 PaleGreen
1583 0x98FB98
1584
1585 PaleTurquoise
1586 0xAFEEEE
1587
1588 PaleVioletRed
1589 0xD87093
1590
1591 PapayaWhip
1592 0xFFEFD5
1593
1594 PeachPuff
1595 0xFFDAB9
1596
1597 Peru
1598 0xCD853F
1599
1600 Pink
1601 0xFFC0CB
1602
1603 Plum
1604 0xDDA0DD
1605
1606 PowderBlue
1607 0xB0E0E6
1608
1609 Purple
1610 0x800080
1611
1612 Red 0xFF0000
1613
1614 RosyBrown
1615 0xBC8F8F
1616
1617 RoyalBlue
1618 0x4169E1
1619
1620 SaddleBrown
1621 0x8B4513
1622
1623 Salmon
1624 0xFA8072
1625
1626 SandyBrown
1627 0xF4A460
1628
1629 SeaGreen
1630 0x2E8B57
1631
1632 SeaShell
1633 0xFFF5EE
1634
1635 Sienna
1636 0xA0522D
1637
1638 Silver
1639 0xC0C0C0
1640
1641 SkyBlue
1642 0x87CEEB
1643
1644 SlateBlue
1645 0x6A5ACD
1646
1647 SlateGray
1648 0x708090
1649
1650 Snow
1651 0xFFFAFA
1652
1653 SpringGreen
1654 0x00FF7F
1655
1656 SteelBlue
1657 0x4682B4
1658
1659 Tan 0xD2B48C
1660
1661 Teal
1662 0x008080
1663
1664 Thistle
1665 0xD8BFD8
1666
1667 Tomato
1668 0xFF6347
1669
1670 Turquoise
1671 0x40E0D0
1672
1673 Violet
1674 0xEE82EE
1675
1676 Wheat
1677 0xF5DEB3
1678
1679 White
1680 0xFFFFFF
1681
1682 WhiteSmoke
1683 0xF5F5F5
1684
1685 Yellow
1686 0xFFFF00
1687
1688 YellowGreen
1689 0x9ACD32
1690
1691 Channel Layout
1692 A channel layout specifies the spatial disposition of the channels in a
1693 multi-channel audio stream. To specify a channel layout, FFmpeg makes
1694 use of a special syntax.
1695
1696 Individual channels are identified by an id, as given by the table
1697 below:
1698
1699 FL front left
1700
1701 FR front right
1702
1703 FC front center
1704
1705 LFE low frequency
1706
1707 BL back left
1708
1709 BR back right
1710
1711 FLC front left-of-center
1712
1713 FRC front right-of-center
1714
1715 BC back center
1716
1717 SL side left
1718
1719 SR side right
1720
1721 TC top center
1722
1723 TFL top front left
1724
1725 TFC top front center
1726
1727 TFR top front right
1728
1729 TBL top back left
1730
1731 TBC top back center
1732
1733 TBR top back right
1734
1735 DL downmix left
1736
1737 DR downmix right
1738
1739 WL wide left
1740
1741 WR wide right
1742
1743 SDL surround direct left
1744
1745 SDR surround direct right
1746
1747 LFE2
1748 low frequency 2
1749
1750 Standard channel layout compositions can be specified by using the
1751 following identifiers:
1752
1753 mono
1754 FC
1755
1756 stereo
1757 FL+FR
1758
1759 2.1 FL+FR+LFE
1760
1761 3.0 FL+FR+FC
1762
1763 3.0(back)
1764 FL+FR+BC
1765
1766 4.0 FL+FR+FC+BC
1767
1768 quad
1769 FL+FR+BL+BR
1770
1771 quad(side)
1772 FL+FR+SL+SR
1773
1774 3.1 FL+FR+FC+LFE
1775
1776 5.0 FL+FR+FC+BL+BR
1777
1778 5.0(side)
1779 FL+FR+FC+SL+SR
1780
1781 4.1 FL+FR+FC+LFE+BC
1782
1783 5.1 FL+FR+FC+LFE+BL+BR
1784
1785 5.1(side)
1786 FL+FR+FC+LFE+SL+SR
1787
1788 6.0 FL+FR+FC+BC+SL+SR
1789
1790 6.0(front)
1791 FL+FR+FLC+FRC+SL+SR
1792
1793 hexagonal
1794 FL+FR+FC+BL+BR+BC
1795
1796 6.1 FL+FR+FC+LFE+BC+SL+SR
1797
1798 6.1 FL+FR+FC+LFE+BL+BR+BC
1799
1800 6.1(front)
1801 FL+FR+LFE+FLC+FRC+SL+SR
1802
1803 7.0 FL+FR+FC+BL+BR+SL+SR
1804
1805 7.0(front)
1806 FL+FR+FC+FLC+FRC+SL+SR
1807
1808 7.1 FL+FR+FC+LFE+BL+BR+SL+SR
1809
1810 7.1(wide)
1811 FL+FR+FC+LFE+BL+BR+FLC+FRC
1812
1813 7.1(wide-side)
1814 FL+FR+FC+LFE+FLC+FRC+SL+SR
1815
1816 octagonal
1817 FL+FR+FC+BL+BR+BC+SL+SR
1818
1819 hexadecagonal
1820 FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
1821
1822 downmix
1823 DL+DR
1824
1825 22.2
1826 FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
1827
1828 A custom channel layout can be specified as a sequence of terms,
1829 separated by '+' or '|'. Each term can be:
1830
1831 • the name of a standard channel layout (e.g. mono, stereo, 4.0,
1832 quad, 5.0, etc.)
1833
1834 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
1835
1836 • a number of channels, in decimal, followed by 'c', yielding the
1837 default channel layout for that number of channels (see the
1838 function "av_get_default_channel_layout"). Note that not all
1839 channel counts have a default layout.
1840
1841 • a number of channels, in decimal, followed by 'C', yielding an
1842 unknown channel layout with the specified number of channels. Note
1843 that not all channel layout specification strings support unknown
1844 channel layouts.
1845
1846 • a channel layout mask, in hexadecimal starting with "0x" (see the
1847 "AV_CH_*" macros in libavutil/channel_layout.h.
1848
1849 Before libavutil version 53 the trailing character "c" to specify a
1850 number of channels was optional, but now it is required, while a
1851 channel layout mask can also be specified as a decimal number (if and
1852 only if not followed by "c" or "C").
1853
1854 See also the function "av_get_channel_layout" defined in
1855 libavutil/channel_layout.h.
1856
1858 When evaluating an arithmetic expression, FFmpeg uses an internal
1859 formula evaluator, implemented through the libavutil/eval.h interface.
1860
1861 An expression may contain unary, binary operators, constants, and
1862 functions.
1863
1864 Two expressions expr1 and expr2 can be combined to form another
1865 expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and
1866 the new expression evaluates to the value of expr2.
1867
1868 The following binary operators are available: "+", "-", "*", "/", "^".
1869
1870 The following unary operators are available: "+", "-".
1871
1872 The following functions are available:
1873
1874 abs(x)
1875 Compute absolute value of x.
1876
1877 acos(x)
1878 Compute arccosine of x.
1879
1880 asin(x)
1881 Compute arcsine of x.
1882
1883 atan(x)
1884 Compute arctangent of x.
1885
1886 atan2(x, y)
1887 Compute principal value of the arc tangent of y/x.
1888
1889 between(x, min, max)
1890 Return 1 if x is greater than or equal to min and lesser than or
1891 equal to max, 0 otherwise.
1892
1893 bitand(x, y)
1894 bitor(x, y)
1895 Compute bitwise and/or operation on x and y.
1896
1897 The results of the evaluation of x and y are converted to integers
1898 before executing the bitwise operation.
1899
1900 Note that both the conversion to integer and the conversion back to
1901 floating point can lose precision. Beware of unexpected results for
1902 large numbers (usually 2^53 and larger).
1903
1904 ceil(expr)
1905 Round the value of expression expr upwards to the nearest integer.
1906 For example, "ceil(1.5)" is "2.0".
1907
1908 clip(x, min, max)
1909 Return the value of x clipped between min and max.
1910
1911 cos(x)
1912 Compute cosine of x.
1913
1914 cosh(x)
1915 Compute hyperbolic cosine of x.
1916
1917 eq(x, y)
1918 Return 1 if x and y are equivalent, 0 otherwise.
1919
1920 exp(x)
1921 Compute exponential of x (with base "e", the Euler's number).
1922
1923 floor(expr)
1924 Round the value of expression expr downwards to the nearest
1925 integer. For example, "floor(-1.5)" is "-2.0".
1926
1927 gauss(x)
1928 Compute Gauss function of x, corresponding to "exp(-x*x/2) /
1929 sqrt(2*PI)".
1930
1931 gcd(x, y)
1932 Return the greatest common divisor of x and y. If both x and y are
1933 0 or either or both are less than zero then behavior is undefined.
1934
1935 gt(x, y)
1936 Return 1 if x is greater than y, 0 otherwise.
1937
1938 gte(x, y)
1939 Return 1 if x is greater than or equal to y, 0 otherwise.
1940
1941 hypot(x, y)
1942 This function is similar to the C function with the same name; it
1943 returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
1944 triangle with sides of length x and y, or the distance of the point
1945 (x, y) from the origin.
1946
1947 if(x, y)
1948 Evaluate x, and if the result is non-zero return the result of the
1949 evaluation of y, return 0 otherwise.
1950
1951 if(x, y, z)
1952 Evaluate x, and if the result is non-zero return the evaluation
1953 result of y, otherwise the evaluation result of z.
1954
1955 ifnot(x, y)
1956 Evaluate x, and if the result is zero return the result of the
1957 evaluation of y, return 0 otherwise.
1958
1959 ifnot(x, y, z)
1960 Evaluate x, and if the result is zero return the evaluation result
1961 of y, otherwise the evaluation result of z.
1962
1963 isinf(x)
1964 Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
1965
1966 isnan(x)
1967 Return 1.0 if x is NAN, 0.0 otherwise.
1968
1969 ld(var)
1970 Load the value of the internal variable with number var, which was
1971 previously stored with st(var, expr). The function returns the
1972 loaded value.
1973
1974 lerp(x, y, z)
1975 Return linear interpolation between x and y by amount of z.
1976
1977 log(x)
1978 Compute natural logarithm of x.
1979
1980 lt(x, y)
1981 Return 1 if x is lesser than y, 0 otherwise.
1982
1983 lte(x, y)
1984 Return 1 if x is lesser than or equal to y, 0 otherwise.
1985
1986 max(x, y)
1987 Return the maximum between x and y.
1988
1989 min(x, y)
1990 Return the minimum between x and y.
1991
1992 mod(x, y)
1993 Compute the remainder of division of x by y.
1994
1995 not(expr)
1996 Return 1.0 if expr is zero, 0.0 otherwise.
1997
1998 pow(x, y)
1999 Compute the power of x elevated y, it is equivalent to "(x)^(y)".
2000
2001 print(t)
2002 print(t, l)
2003 Print the value of expression t with loglevel l. If l is not
2004 specified then a default log level is used. Returns the value of
2005 the expression printed.
2006
2007 Prints t with loglevel l
2008
2009 random(x)
2010 Return a pseudo random value between 0.0 and 1.0. x is the index of
2011 the internal variable which will be used to save the seed/state.
2012
2013 root(expr, max)
2014 Find an input value for which the function represented by expr with
2015 argument ld(0) is 0 in the interval 0..max.
2016
2017 The expression in expr must denote a continuous function or the
2018 result is undefined.
2019
2020 ld(0) is used to represent the function input value, which means
2021 that the given expression will be evaluated multiple times with
2022 various input values that the expression can access through ld(0).
2023 When the expression evaluates to 0 then the corresponding input
2024 value will be returned.
2025
2026 round(expr)
2027 Round the value of expression expr to the nearest integer. For
2028 example, "round(1.5)" is "2.0".
2029
2030 sgn(x)
2031 Compute sign of x.
2032
2033 sin(x)
2034 Compute sine of x.
2035
2036 sinh(x)
2037 Compute hyperbolic sine of x.
2038
2039 sqrt(expr)
2040 Compute the square root of expr. This is equivalent to "(expr)^.5".
2041
2042 squish(x)
2043 Compute expression "1/(1 + exp(4*x))".
2044
2045 st(var, expr)
2046 Store the value of the expression expr in an internal variable. var
2047 specifies the number of the variable where to store the value, and
2048 it is a value ranging from 0 to 9. The function returns the value
2049 stored in the internal variable. Note, Variables are currently not
2050 shared between expressions.
2051
2052 tan(x)
2053 Compute tangent of x.
2054
2055 tanh(x)
2056 Compute hyperbolic tangent of x.
2057
2058 taylor(expr, x)
2059 taylor(expr, x, id)
2060 Evaluate a Taylor series at x, given an expression representing the
2061 "ld(id)"-th derivative of a function at 0.
2062
2063 When the series does not converge the result is undefined.
2064
2065 ld(id) is used to represent the derivative order in expr, which
2066 means that the given expression will be evaluated multiple times
2067 with various input values that the expression can access through
2068 "ld(id)". If id is not specified then 0 is assumed.
2069
2070 Note, when you have the derivatives at y instead of 0,
2071 "taylor(expr, x-y)" can be used.
2072
2073 time(0)
2074 Return the current (wallclock) time in seconds.
2075
2076 trunc(expr)
2077 Round the value of expression expr towards zero to the nearest
2078 integer. For example, "trunc(-1.5)" is "-1.0".
2079
2080 while(cond, expr)
2081 Evaluate expression expr while the expression cond is non-zero, and
2082 returns the value of the last expr evaluation, or NAN if cond was
2083 always false.
2084
2085 The following constants are available:
2086
2087 PI area of the unit disc, approximately 3.14
2088
2089 E exp(1) (Euler's number), approximately 2.718
2090
2091 PHI golden ratio (1+sqrt(5))/2, approximately 1.618
2092
2093 Assuming that an expression is considered "true" if it has a non-zero
2094 value, note that:
2095
2096 "*" works like AND
2097
2098 "+" works like OR
2099
2100 For example the construct:
2101
2102 if (A AND B) then C
2103
2104 is equivalent to:
2105
2106 if(A*B, C)
2107
2108 In your C code, you can extend the list of unary and binary functions,
2109 and define recognized constants, so that they are available for your
2110 expressions.
2111
2112 The evaluator also recognizes the International System unit prefixes.
2113 If 'i' is appended after the prefix, binary prefixes are used, which
2114 are based on powers of 1024 instead of powers of 1000. The 'B' postfix
2115 multiplies the value by 8, and can be appended after a unit prefix or
2116 used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
2117 number postfix.
2118
2119 The list of available International System prefixes follows, with
2120 indication of the corresponding powers of 10 and of 2.
2121
2122 y 10^-24 / 2^-80
2123
2124 z 10^-21 / 2^-70
2125
2126 a 10^-18 / 2^-60
2127
2128 f 10^-15 / 2^-50
2129
2130 p 10^-12 / 2^-40
2131
2132 n 10^-9 / 2^-30
2133
2134 u 10^-6 / 2^-20
2135
2136 m 10^-3 / 2^-10
2137
2138 c 10^-2
2139
2140 d 10^-1
2141
2142 h 10^2
2143
2144 k 10^3 / 2^10
2145
2146 K 10^3 / 2^10
2147
2148 M 10^6 / 2^20
2149
2150 G 10^9 / 2^30
2151
2152 T 10^12 / 2^40
2153
2154 P 10^15 / 2^40
2155
2156 E 10^18 / 2^50
2157
2158 Z 10^21 / 2^60
2159
2160 Y 10^24 / 2^70
2161
2163 libavcodec provides some generic global options, which can be set on
2164 all the encoders and decoders. In addition each codec may support so-
2165 called private options, which are specific for a given codec.
2166
2167 Sometimes, a global option may only affect a specific kind of codec,
2168 and may be nonsensical or ignored by another, so you need to be aware
2169 of the meaning of the specified options. Also some options are meant
2170 only for decoding or encoding.
2171
2172 Options may be set by specifying -option value in the FFmpeg tools, or
2173 by setting the value explicitly in the "AVCodecContext" options or
2174 using the libavutil/opt.h API for programmatic use.
2175
2176 The list of supported options follow:
2177
2178 b integer (encoding,audio,video)
2179 Set bitrate in bits/s. Default value is 200K.
2180
2181 ab integer (encoding,audio)
2182 Set audio bitrate (in bits/s). Default value is 128K.
2183
2184 bt integer (encoding,video)
2185 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
2186 tolerance specifies how far ratecontrol is willing to deviate from
2187 the target average bitrate value. This is not related to min/max
2188 bitrate. Lowering tolerance too much has an adverse effect on
2189 quality.
2190
2191 flags flags (decoding/encoding,audio,video,subtitles)
2192 Set generic flags.
2193
2194 Possible values:
2195
2196 mv4 Use four motion vector by macroblock (mpeg4).
2197
2198 qpel
2199 Use 1/4 pel motion compensation.
2200
2201 loop
2202 Use loop filter.
2203
2204 qscale
2205 Use fixed qscale.
2206
2207 pass1
2208 Use internal 2pass ratecontrol in first pass mode.
2209
2210 pass2
2211 Use internal 2pass ratecontrol in second pass mode.
2212
2213 gray
2214 Only decode/encode grayscale.
2215
2216 psnr
2217 Set error[?] variables during encoding.
2218
2219 truncated
2220 Input bitstream might be randomly truncated.
2221
2222 drop_changed
2223 Don't output frames whose parameters differ from first decoded
2224 frame in stream. Error AVERROR_INPUT_CHANGED is returned when
2225 a frame is dropped.
2226
2227 ildct
2228 Use interlaced DCT.
2229
2230 low_delay
2231 Force low delay.
2232
2233 global_header
2234 Place global headers in extradata instead of every keyframe.
2235
2236 bitexact
2237 Only write platform-, build- and time-independent data. (except
2238 (I)DCT). This ensures that file and data checksums are
2239 reproducible and match between platforms. Its primary use is
2240 for regression testing.
2241
2242 aic Apply H263 advanced intra coding / mpeg4 ac prediction.
2243
2244 ilme
2245 Apply interlaced motion estimation.
2246
2247 cgop
2248 Use closed gop.
2249
2250 output_corrupt
2251 Output even potentially corrupted frames.
2252
2253 time_base rational number
2254 Set codec time base.
2255
2256 It is the fundamental unit of time (in seconds) in terms of which
2257 frame timestamps are represented. For fixed-fps content, timebase
2258 should be "1 / frame_rate" and timestamp increments should be
2259 identically 1.
2260
2261 g integer (encoding,video)
2262 Set the group of picture (GOP) size. Default value is 12.
2263
2264 ar integer (decoding/encoding,audio)
2265 Set audio sampling rate (in Hz).
2266
2267 ac integer (decoding/encoding,audio)
2268 Set number of audio channels.
2269
2270 cutoff integer (encoding,audio)
2271 Set cutoff bandwidth. (Supported only by selected encoders, see
2272 their respective documentation sections.)
2273
2274 frame_size integer (encoding,audio)
2275 Set audio frame size.
2276
2277 Each submitted frame except the last must contain exactly
2278 frame_size samples per channel. May be 0 when the codec has
2279 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
2280 not restricted. It is set by some decoders to indicate constant
2281 frame size.
2282
2283 frame_number integer
2284 Set the frame number.
2285
2286 delay integer
2287 qcomp float (encoding,video)
2288 Set video quantizer scale compression (VBR). It is used as a
2289 constant in the ratecontrol equation. Recommended range for default
2290 rc_eq: 0.0-1.0.
2291
2292 qblur float (encoding,video)
2293 Set video quantizer scale blur (VBR).
2294
2295 qmin integer (encoding,video)
2296 Set min video quantizer scale (VBR). Must be included between -1
2297 and 69, default value is 2.
2298
2299 qmax integer (encoding,video)
2300 Set max video quantizer scale (VBR). Must be included between -1
2301 and 1024, default value is 31.
2302
2303 qdiff integer (encoding,video)
2304 Set max difference between the quantizer scale (VBR).
2305
2306 bf integer (encoding,video)
2307 Set max number of B frames between non-B-frames.
2308
2309 Must be an integer between -1 and 16. 0 means that B-frames are
2310 disabled. If a value of -1 is used, it will choose an automatic
2311 value depending on the encoder.
2312
2313 Default value is 0.
2314
2315 b_qfactor float (encoding,video)
2316 Set qp factor between P and B frames.
2317
2318 codec_tag integer
2319 bug flags (decoding,video)
2320 Workaround not auto detected encoder bugs.
2321
2322 Possible values:
2323
2324 autodetect
2325 xvid_ilace
2326 Xvid interlacing bug (autodetected if fourcc==XVIX)
2327
2328 ump4
2329 (autodetected if fourcc==UMP4)
2330
2331 no_padding
2332 padding bug (autodetected)
2333
2334 amv
2335 qpel_chroma
2336 std_qpel
2337 old standard qpel (autodetected per fourcc/version)
2338
2339 qpel_chroma2
2340 direct_blocksize
2341 direct-qpel-blocksize bug (autodetected per fourcc/version)
2342
2343 edge
2344 edge padding bug (autodetected per fourcc/version)
2345
2346 hpel_chroma
2347 dc_clip
2348 ms Workaround various bugs in microsoft broken decoders.
2349
2350 trunc
2351 trancated frames
2352
2353 strict integer (decoding/encoding,audio,video)
2354 Specify how strictly to follow the standards.
2355
2356 Possible values:
2357
2358 very
2359 strictly conform to an older more strict version of the spec or
2360 reference software
2361
2362 strict
2363 strictly conform to all the things in the spec no matter what
2364 consequences
2365
2366 normal
2367 unofficial
2368 allow unofficial extensions
2369
2370 experimental
2371 allow non standardized experimental things, experimental
2372 (unfinished/work in progress/not well tested) decoders and
2373 encoders. Note: experimental decoders can pose a security
2374 risk, do not use this for decoding untrusted input.
2375
2376 b_qoffset float (encoding,video)
2377 Set QP offset between P and B frames.
2378
2379 err_detect flags (decoding,audio,video)
2380 Set error detection flags.
2381
2382 Possible values:
2383
2384 crccheck
2385 verify embedded CRCs
2386
2387 bitstream
2388 detect bitstream specification deviations
2389
2390 buffer
2391 detect improper bitstream length
2392
2393 explode
2394 abort decoding on minor error detection
2395
2396 ignore_err
2397 ignore decoding errors, and continue decoding. This is useful
2398 if you want to analyze the content of a video and thus want
2399 everything to be decoded no matter what. This option will not
2400 result in a video that is pleasing to watch in case of errors.
2401
2402 careful
2403 consider things that violate the spec and have not been seen in
2404 the wild as errors
2405
2406 compliant
2407 consider all spec non compliancies as errors
2408
2409 aggressive
2410 consider things that a sane encoder should not do as an error
2411
2412 has_b_frames integer
2413 block_align integer
2414 rc_override_count integer
2415 maxrate integer (encoding,audio,video)
2416 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
2417
2418 minrate integer (encoding,audio,video)
2419 Set min bitrate tolerance (in bits/s). Most useful in setting up a
2420 CBR encode. It is of little use elsewise.
2421
2422 bufsize integer (encoding,audio,video)
2423 Set ratecontrol buffer size (in bits).
2424
2425 i_qfactor float (encoding,video)
2426 Set QP factor between P and I frames.
2427
2428 i_qoffset float (encoding,video)
2429 Set QP offset between P and I frames.
2430
2431 dct integer (encoding,video)
2432 Set DCT algorithm.
2433
2434 Possible values:
2435
2436 auto
2437 autoselect a good one (default)
2438
2439 fastint
2440 fast integer
2441
2442 int accurate integer
2443
2444 mmx
2445 altivec
2446 faan
2447 floating point AAN DCT
2448
2449 lumi_mask float (encoding,video)
2450 Compress bright areas stronger than medium ones.
2451
2452 tcplx_mask float (encoding,video)
2453 Set temporal complexity masking.
2454
2455 scplx_mask float (encoding,video)
2456 Set spatial complexity masking.
2457
2458 p_mask float (encoding,video)
2459 Set inter masking.
2460
2461 dark_mask float (encoding,video)
2462 Compress dark areas stronger than medium ones.
2463
2464 idct integer (decoding/encoding,video)
2465 Select IDCT implementation.
2466
2467 Possible values:
2468
2469 auto
2470 int
2471 simple
2472 simplemmx
2473 simpleauto
2474 Automatically pick a IDCT compatible with the simple one
2475
2476 arm
2477 altivec
2478 sh4
2479 simplearm
2480 simplearmv5te
2481 simplearmv6
2482 simpleneon
2483 xvid
2484 faani
2485 floating point AAN IDCT
2486
2487 slice_count integer
2488 ec flags (decoding,video)
2489 Set error concealment strategy.
2490
2491 Possible values:
2492
2493 guess_mvs
2494 iterative motion vector (MV) search (slow)
2495
2496 deblock
2497 use strong deblock filter for damaged MBs
2498
2499 favor_inter
2500 favor predicting from the previous frame instead of the current
2501
2502 bits_per_coded_sample integer
2503 aspect rational number (encoding,video)
2504 Set sample aspect ratio.
2505
2506 sar rational number (encoding,video)
2507 Set sample aspect ratio. Alias to aspect.
2508
2509 debug flags (decoding/encoding,audio,video,subtitles)
2510 Print specific debug info.
2511
2512 Possible values:
2513
2514 pict
2515 picture info
2516
2517 rc rate control
2518
2519 bitstream
2520 mb_type
2521 macroblock (MB) type
2522
2523 qp per-block quantization parameter (QP)
2524
2525 dct_coeff
2526 green_metadata
2527 display complexity metadata for the upcoming frame, GoP or for
2528 a given duration.
2529
2530 skip
2531 startcode
2532 er error recognition
2533
2534 mmco
2535 memory management control operations (H.264)
2536
2537 bugs
2538 buffers
2539 picture buffer allocations
2540
2541 thread_ops
2542 threading operations
2543
2544 nomc
2545 skip motion compensation
2546
2547 cmp integer (encoding,video)
2548 Set full pel me compare function.
2549
2550 Possible values:
2551
2552 sad sum of absolute differences, fast (default)
2553
2554 sse sum of squared errors
2555
2556 satd
2557 sum of absolute Hadamard transformed differences
2558
2559 dct sum of absolute DCT transformed differences
2560
2561 psnr
2562 sum of squared quantization errors (avoid, low quality)
2563
2564 bit number of bits needed for the block
2565
2566 rd rate distortion optimal, slow
2567
2568 zero
2569 0
2570
2571 vsad
2572 sum of absolute vertical differences
2573
2574 vsse
2575 sum of squared vertical differences
2576
2577 nsse
2578 noise preserving sum of squared differences
2579
2580 w53 5/3 wavelet, only used in snow
2581
2582 w97 9/7 wavelet, only used in snow
2583
2584 dctmax
2585 chroma
2586 subcmp integer (encoding,video)
2587 Set sub pel me compare function.
2588
2589 Possible values:
2590
2591 sad sum of absolute differences, fast (default)
2592
2593 sse sum of squared errors
2594
2595 satd
2596 sum of absolute Hadamard transformed differences
2597
2598 dct sum of absolute DCT transformed differences
2599
2600 psnr
2601 sum of squared quantization errors (avoid, low quality)
2602
2603 bit number of bits needed for the block
2604
2605 rd rate distortion optimal, slow
2606
2607 zero
2608 0
2609
2610 vsad
2611 sum of absolute vertical differences
2612
2613 vsse
2614 sum of squared vertical differences
2615
2616 nsse
2617 noise preserving sum of squared differences
2618
2619 w53 5/3 wavelet, only used in snow
2620
2621 w97 9/7 wavelet, only used in snow
2622
2623 dctmax
2624 chroma
2625 mbcmp integer (encoding,video)
2626 Set macroblock compare function.
2627
2628 Possible values:
2629
2630 sad sum of absolute differences, fast (default)
2631
2632 sse sum of squared errors
2633
2634 satd
2635 sum of absolute Hadamard transformed differences
2636
2637 dct sum of absolute DCT transformed differences
2638
2639 psnr
2640 sum of squared quantization errors (avoid, low quality)
2641
2642 bit number of bits needed for the block
2643
2644 rd rate distortion optimal, slow
2645
2646 zero
2647 0
2648
2649 vsad
2650 sum of absolute vertical differences
2651
2652 vsse
2653 sum of squared vertical differences
2654
2655 nsse
2656 noise preserving sum of squared differences
2657
2658 w53 5/3 wavelet, only used in snow
2659
2660 w97 9/7 wavelet, only used in snow
2661
2662 dctmax
2663 chroma
2664 ildctcmp integer (encoding,video)
2665 Set interlaced dct compare function.
2666
2667 Possible values:
2668
2669 sad sum of absolute differences, fast (default)
2670
2671 sse sum of squared errors
2672
2673 satd
2674 sum of absolute Hadamard transformed differences
2675
2676 dct sum of absolute DCT transformed differences
2677
2678 psnr
2679 sum of squared quantization errors (avoid, low quality)
2680
2681 bit number of bits needed for the block
2682
2683 rd rate distortion optimal, slow
2684
2685 zero
2686 0
2687
2688 vsad
2689 sum of absolute vertical differences
2690
2691 vsse
2692 sum of squared vertical differences
2693
2694 nsse
2695 noise preserving sum of squared differences
2696
2697 w53 5/3 wavelet, only used in snow
2698
2699 w97 9/7 wavelet, only used in snow
2700
2701 dctmax
2702 chroma
2703 dia_size integer (encoding,video)
2704 Set diamond type & size for motion estimation.
2705
2706 (1024, INT_MAX)
2707 full motion estimation(slowest)
2708
2709 (768, 1024]
2710 umh motion estimation
2711
2712 (512, 768]
2713 hex motion estimation
2714
2715 (256, 512]
2716 l2s diamond motion estimation
2717
2718 [2,256]
2719 var diamond motion estimation
2720
2721 (-1, 2)
2722 small diamond motion estimation
2723
2724 -1 funny diamond motion estimation
2725
2726 (INT_MIN, -1)
2727 sab diamond motion estimation
2728
2729 last_pred integer (encoding,video)
2730 Set amount of motion predictors from the previous frame.
2731
2732 precmp integer (encoding,video)
2733 Set pre motion estimation compare function.
2734
2735 Possible values:
2736
2737 sad sum of absolute differences, fast (default)
2738
2739 sse sum of squared errors
2740
2741 satd
2742 sum of absolute Hadamard transformed differences
2743
2744 dct sum of absolute DCT transformed differences
2745
2746 psnr
2747 sum of squared quantization errors (avoid, low quality)
2748
2749 bit number of bits needed for the block
2750
2751 rd rate distortion optimal, slow
2752
2753 zero
2754 0
2755
2756 vsad
2757 sum of absolute vertical differences
2758
2759 vsse
2760 sum of squared vertical differences
2761
2762 nsse
2763 noise preserving sum of squared differences
2764
2765 w53 5/3 wavelet, only used in snow
2766
2767 w97 9/7 wavelet, only used in snow
2768
2769 dctmax
2770 chroma
2771 pre_dia_size integer (encoding,video)
2772 Set diamond type & size for motion estimation pre-pass.
2773
2774 subq integer (encoding,video)
2775 Set sub pel motion estimation quality.
2776
2777 me_range integer (encoding,video)
2778 Set limit motion vectors range (1023 for DivX player).
2779
2780 global_quality integer (encoding,audio,video)
2781 slice_flags integer
2782 mbd integer (encoding,video)
2783 Set macroblock decision algorithm (high quality mode).
2784
2785 Possible values:
2786
2787 simple
2788 use mbcmp (default)
2789
2790 bits
2791 use fewest bits
2792
2793 rd use best rate distortion
2794
2795 rc_init_occupancy integer (encoding,video)
2796 Set number of bits which should be loaded into the rc buffer before
2797 decoding starts.
2798
2799 flags2 flags (decoding/encoding,audio,video,subtitles)
2800 Possible values:
2801
2802 fast
2803 Allow non spec compliant speedup tricks.
2804
2805 noout
2806 Skip bitstream encoding.
2807
2808 ignorecrop
2809 Ignore cropping information from sps.
2810
2811 local_header
2812 Place global headers at every keyframe instead of in extradata.
2813
2814 chunks
2815 Frame data might be split into multiple chunks.
2816
2817 showall
2818 Show all frames before the first keyframe.
2819
2820 export_mvs
2821 Export motion vectors into frame side-data (see
2822 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2823 also doc/examples/export_mvs.c.
2824
2825 skip_manual
2826 Do not skip samples and export skip information as frame side
2827 data.
2828
2829 ass_ro_flush_noop
2830 Do not reset ASS ReadOrder field on flush.
2831
2832 export_side_data flags (decoding/encoding,audio,video,subtitles)
2833 Possible values:
2834
2835 mvs Export motion vectors into frame side-data (see
2836 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2837 also doc/examples/export_mvs.c.
2838
2839 prft
2840 Export encoder Producer Reference Time into packet side-data
2841 (see "AV_PKT_DATA_PRFT") for codecs that support it.
2842
2843 venc_params
2844 Export video encoding parameters through frame side data (see
2845 "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
2846 At present, those are H.264 and VP9.
2847
2848 film_grain
2849 Export film grain parameters through frame side data (see
2850 "AV_FRAME_DATA_FILM_GRAIN_PARAMS"). Supported at present by
2851 AV1 decoders.
2852
2853 threads integer (decoding/encoding,video)
2854 Set the number of threads to be used, in case the selected codec
2855 implementation supports multi-threading.
2856
2857 Possible values:
2858
2859 auto, 0
2860 automatically select the number of threads to set
2861
2862 Default value is auto.
2863
2864 dc integer (encoding,video)
2865 Set intra_dc_precision.
2866
2867 nssew integer (encoding,video)
2868 Set nsse weight.
2869
2870 skip_top integer (decoding,video)
2871 Set number of macroblock rows at the top which are skipped.
2872
2873 skip_bottom integer (decoding,video)
2874 Set number of macroblock rows at the bottom which are skipped.
2875
2876 profile integer (encoding,audio,video)
2877 Set encoder codec profile. Default value is unknown. Encoder
2878 specific profiles are documented in the relevant encoder
2879 documentation.
2880
2881 level integer (encoding,audio,video)
2882 Possible values:
2883
2884 unknown
2885 lowres integer (decoding,audio,video)
2886 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
2887
2888 mblmin integer (encoding,video)
2889 Set min macroblock lagrange factor (VBR).
2890
2891 mblmax integer (encoding,video)
2892 Set max macroblock lagrange factor (VBR).
2893
2894 skip_loop_filter integer (decoding,video)
2895 skip_idct integer (decoding,video)
2896 skip_frame integer (decoding,video)
2897 Make decoder discard processing depending on the frame type
2898 selected by the option value.
2899
2900 skip_loop_filter skips frame loop filtering, skip_idct skips frame
2901 IDCT/dequantization, skip_frame skips decoding.
2902
2903 Possible values:
2904
2905 none
2906 Discard no frame.
2907
2908 default
2909 Discard useless frames like 0-sized frames.
2910
2911 noref
2912 Discard all non-reference frames.
2913
2914 bidir
2915 Discard all bidirectional frames.
2916
2917 nokey
2918 Discard all frames excepts keyframes.
2919
2920 nointra
2921 Discard all frames except I frames.
2922
2923 all Discard all frames.
2924
2925 Default value is default.
2926
2927 bidir_refine integer (encoding,video)
2928 Refine the two motion vectors used in bidirectional macroblocks.
2929
2930 keyint_min integer (encoding,video)
2931 Set minimum interval between IDR-frames.
2932
2933 refs integer (encoding,video)
2934 Set reference frames to consider for motion compensation.
2935
2936 trellis integer (encoding,audio,video)
2937 Set rate-distortion optimal quantization.
2938
2939 mv0_threshold integer (encoding,video)
2940 compression_level integer (encoding,audio,video)
2941 bits_per_raw_sample integer
2942 channel_layout integer (decoding/encoding,audio)
2943 Possible values:
2944
2945 request_channel_layout integer (decoding,audio)
2946 Possible values:
2947
2948 rc_max_vbv_use float (encoding,video)
2949 rc_min_vbv_use float (encoding,video)
2950 ticks_per_frame integer (decoding/encoding,audio,video)
2951 color_primaries integer (decoding/encoding,video)
2952 Possible values:
2953
2954 bt709
2955 BT.709
2956
2957 bt470m
2958 BT.470 M
2959
2960 bt470bg
2961 BT.470 BG
2962
2963 smpte170m
2964 SMPTE 170 M
2965
2966 smpte240m
2967 SMPTE 240 M
2968
2969 film
2970 Film
2971
2972 bt2020
2973 BT.2020
2974
2975 smpte428
2976 smpte428_1
2977 SMPTE ST 428-1
2978
2979 smpte431
2980 SMPTE 431-2
2981
2982 smpte432
2983 SMPTE 432-1
2984
2985 jedec-p22
2986 JEDEC P22
2987
2988 color_trc integer (decoding/encoding,video)
2989 Possible values:
2990
2991 bt709
2992 BT.709
2993
2994 gamma22
2995 BT.470 M
2996
2997 gamma28
2998 BT.470 BG
2999
3000 smpte170m
3001 SMPTE 170 M
3002
3003 smpte240m
3004 SMPTE 240 M
3005
3006 linear
3007 Linear
3008
3009 log
3010 log100
3011 Log
3012
3013 log_sqrt
3014 log316
3015 Log square root
3016
3017 iec61966_2_4
3018 iec61966-2-4
3019 IEC 61966-2-4
3020
3021 bt1361
3022 bt1361e
3023 BT.1361
3024
3025 iec61966_2_1
3026 iec61966-2-1
3027 IEC 61966-2-1
3028
3029 bt2020_10
3030 bt2020_10bit
3031 BT.2020 - 10 bit
3032
3033 bt2020_12
3034 bt2020_12bit
3035 BT.2020 - 12 bit
3036
3037 smpte2084
3038 SMPTE ST 2084
3039
3040 smpte428
3041 smpte428_1
3042 SMPTE ST 428-1
3043
3044 arib-std-b67
3045 ARIB STD-B67
3046
3047 colorspace integer (decoding/encoding,video)
3048 Possible values:
3049
3050 rgb RGB
3051
3052 bt709
3053 BT.709
3054
3055 fcc FCC
3056
3057 bt470bg
3058 BT.470 BG
3059
3060 smpte170m
3061 SMPTE 170 M
3062
3063 smpte240m
3064 SMPTE 240 M
3065
3066 ycocg
3067 YCOCG
3068
3069 bt2020nc
3070 bt2020_ncl
3071 BT.2020 NCL
3072
3073 bt2020c
3074 bt2020_cl
3075 BT.2020 CL
3076
3077 smpte2085
3078 SMPTE 2085
3079
3080 chroma-derived-nc
3081 Chroma-derived NCL
3082
3083 chroma-derived-c
3084 Chroma-derived CL
3085
3086 ictcp
3087 ICtCp
3088
3089 color_range integer (decoding/encoding,video)
3090 If used as input parameter, it serves as a hint to the decoder,
3091 which color_range the input has. Possible values:
3092
3093 tv
3094 mpeg
3095 MPEG (219*2^(n-8))
3096
3097 pc
3098 jpeg
3099 JPEG (2^n-1)
3100
3101 chroma_sample_location integer (decoding/encoding,video)
3102 Possible values:
3103
3104 left
3105 center
3106 topleft
3107 top
3108 bottomleft
3109 bottom
3110 log_level_offset integer
3111 Set the log level offset.
3112
3113 slices integer (encoding,video)
3114 Number of slices, used in parallelized encoding.
3115
3116 thread_type flags (decoding/encoding,video)
3117 Select which multithreading methods to use.
3118
3119 Use of frame will increase decoding delay by one frame per thread,
3120 so clients which cannot provide future frames should not use it.
3121
3122 Possible values:
3123
3124 slice
3125 Decode more than one part of a single frame at once.
3126
3127 Multithreading using slices works only when the video was
3128 encoded with slices.
3129
3130 frame
3131 Decode more than one frame at once.
3132
3133 Default value is slice+frame.
3134
3135 audio_service_type integer (encoding,audio)
3136 Set audio service type.
3137
3138 Possible values:
3139
3140 ma Main Audio Service
3141
3142 ef Effects
3143
3144 vi Visually Impaired
3145
3146 hi Hearing Impaired
3147
3148 di Dialogue
3149
3150 co Commentary
3151
3152 em Emergency
3153
3154 vo Voice Over
3155
3156 ka Karaoke
3157
3158 request_sample_fmt sample_fmt (decoding,audio)
3159 Set sample format audio decoders should prefer. Default value is
3160 "none".
3161
3162 pkt_timebase rational number
3163 sub_charenc encoding (decoding,subtitles)
3164 Set the input subtitles character encoding.
3165
3166 field_order field_order (video)
3167 Set/override the field order of the video. Possible values:
3168
3169 progressive
3170 Progressive video
3171
3172 tt Interlaced video, top field coded and displayed first
3173
3174 bb Interlaced video, bottom field coded and displayed first
3175
3176 tb Interlaced video, top coded first, bottom displayed first
3177
3178 bt Interlaced video, bottom coded first, top displayed first
3179
3180 skip_alpha bool (decoding,video)
3181 Set to 1 to disable processing alpha (transparency). This works
3182 like the gray flag in the flags option which skips chroma
3183 information instead of alpha. Default is 0.
3184
3185 codec_whitelist list (input)
3186 "," separated list of allowed decoders. By default all are allowed.
3187
3188 dump_separator string (input)
3189 Separator used to separate the fields printed on the command line
3190 about the Stream parameters. For example, to separate the fields
3191 with newlines and indentation:
3192
3193 ffprobe -dump_separator "
3194 " -i ~/videos/matrixbench_mpeg2.mpg
3195
3196 max_pixels integer (decoding/encoding,video)
3197 Maximum number of pixels per image. This value can be used to avoid
3198 out of memory failures due to large images.
3199
3200 apply_cropping bool (decoding,video)
3201 Enable cropping if cropping parameters are multiples of the
3202 required alignment for the left and top parameters. If the
3203 alignment is not met the cropping will be partially applied to
3204 maintain alignment. Default is 1 (enabled). Note: The required
3205 alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
3206 CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
3207 line. Also hardware decoders will not apply left/top Cropping.
3208
3210 Decoders are configured elements in FFmpeg which allow the decoding of
3211 multimedia streams.
3212
3213 When you configure your FFmpeg build, all the supported native decoders
3214 are enabled by default. Decoders requiring an external library must be
3215 enabled manually via the corresponding "--enable-lib" option. You can
3216 list all available decoders using the configure option
3217 "--list-decoders".
3218
3219 You can disable all the decoders with the configure option
3220 "--disable-decoders" and selectively enable / disable single decoders
3221 with the options "--enable-decoder=DECODER" /
3222 "--disable-decoder=DECODER".
3223
3224 The option "-decoders" of the ff* tools will display the list of
3225 enabled decoders.
3226
3228 A description of some of the currently available video decoders
3229 follows.
3230
3231 av1
3232 AOMedia Video 1 (AV1) decoder.
3233
3234 Options
3235
3236 operating_point
3237 Select an operating point of a scalable AV1 bitstream (0 - 31).
3238 Default is 0.
3239
3240 rawvideo
3241 Raw video decoder.
3242
3243 This decoder decodes rawvideo streams.
3244
3245 Options
3246
3247 top top_field_first
3248 Specify the assumed field type of the input video.
3249
3250 -1 the video is assumed to be progressive (default)
3251
3252 0 bottom-field-first is assumed
3253
3254 1 top-field-first is assumed
3255
3256 libdav1d
3257 dav1d AV1 decoder.
3258
3259 libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
3260 Requires the presence of the libdav1d headers and library during
3261 configuration. You need to explicitly configure the build with
3262 "--enable-libdav1d".
3263
3264 Options
3265
3266 The following options are supported by the libdav1d wrapper.
3267
3268 framethreads
3269 Set amount of frame threads to use during decoding. The default
3270 value is 0 (autodetect). This option is deprecated for libdav1d >=
3271 1.0 and will be removed in the future. Use the global option
3272 "threads" instead.
3273
3274 tilethreads
3275 Set amount of tile threads to use during decoding. The default
3276 value is 0 (autodetect). This option is deprecated for libdav1d >=
3277 1.0 and will be removed in the future. Use the global option
3278 "threads" instead.
3279
3280 filmgrain
3281 Apply film grain to the decoded video if present in the bitstream.
3282 Defaults to the internal default of the library. This option is
3283 deprecated and will be removed in the future. See the global option
3284 "export_side_data" to export Film Grain parameters instead of
3285 applying it.
3286
3287 oppoint
3288 Select an operating point of a scalable AV1 bitstream (0 - 31).
3289 Defaults to the internal default of the library.
3290
3291 alllayers
3292 Output all spatial layers of a scalable AV1 bitstream. The default
3293 value is false.
3294
3295 libdavs2
3296 AVS2-P2/IEEE1857.4 video decoder wrapper.
3297
3298 This decoder allows libavcodec to decode AVS2 streams with davs2
3299 library.
3300
3301 libuavs3d
3302 AVS3-P2/IEEE1857.10 video decoder.
3303
3304 libuavs3d allows libavcodec to decode AVS3 streams. Requires the
3305 presence of the libuavs3d headers and library during configuration.
3306 You need to explicitly configure the build with "--enable-libuavs3d".
3307
3308 Options
3309
3310 The following option is supported by the libuavs3d wrapper.
3311
3312 frame_threads
3313 Set amount of frame threads to use during decoding. The default
3314 value is 0 (autodetect).
3315
3317 A description of some of the currently available audio decoders
3318 follows.
3319
3320 ac3
3321 AC-3 audio decoder.
3322
3323 This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
3324 well as the undocumented RealAudio 3 (a.k.a. dnet).
3325
3326 AC-3 Decoder Options
3327
3328 -drc_scale value
3329 Dynamic Range Scale Factor. The factor to apply to dynamic range
3330 values from the AC-3 stream. This factor is applied exponentially.
3331 The default value is 1. There are 3 notable scale factor ranges:
3332
3333 drc_scale == 0
3334 DRC disabled. Produces full range audio.
3335
3336 0 < drc_scale <= 1
3337 DRC enabled. Applies a fraction of the stream DRC value.
3338 Audio reproduction is between full range and full compression.
3339
3340 drc_scale > 1
3341 DRC enabled. Applies drc_scale asymmetrically. Loud sounds are
3342 fully compressed. Soft sounds are enhanced.
3343
3344 flac
3345 FLAC audio decoder.
3346
3347 This decoder aims to implement the complete FLAC specification from
3348 Xiph.
3349
3350 FLAC Decoder options
3351
3352 -use_buggy_lpc
3353 The lavc FLAC encoder used to produce buggy streams with high lpc
3354 values (like the default value). This option makes it possible to
3355 decode such streams correctly by using lavc's old buggy lpc logic
3356 for decoding.
3357
3358 ffwavesynth
3359 Internal wave synthesizer.
3360
3361 This decoder generates wave patterns according to predefined sequences.
3362 Its use is purely internal and the format of the data it accepts is not
3363 publicly documented.
3364
3365 libcelt
3366 libcelt decoder wrapper.
3367
3368 libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
3369 codec. Requires the presence of the libcelt headers and library during
3370 configuration. You need to explicitly configure the build with
3371 "--enable-libcelt".
3372
3373 libgsm
3374 libgsm decoder wrapper.
3375
3376 libgsm allows libavcodec to decode the GSM full rate audio codec.
3377 Requires the presence of the libgsm headers and library during
3378 configuration. You need to explicitly configure the build with
3379 "--enable-libgsm".
3380
3381 This decoder supports both the ordinary GSM and the Microsoft variant.
3382
3383 libilbc
3384 libilbc decoder wrapper.
3385
3386 libilbc allows libavcodec to decode the Internet Low Bitrate Codec
3387 (iLBC) audio codec. Requires the presence of the libilbc headers and
3388 library during configuration. You need to explicitly configure the
3389 build with "--enable-libilbc".
3390
3391 Options
3392
3393 The following option is supported by the libilbc wrapper.
3394
3395 enhance
3396 Enable the enhancement of the decoded audio when set to 1. The
3397 default value is 0 (disabled).
3398
3399 libopencore-amrnb
3400 libopencore-amrnb decoder wrapper.
3401
3402 libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
3403 Narrowband audio codec. Using it requires the presence of the
3404 libopencore-amrnb headers and library during configuration. You need to
3405 explicitly configure the build with "--enable-libopencore-amrnb".
3406
3407 An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
3408 without this library.
3409
3410 libopencore-amrwb
3411 libopencore-amrwb decoder wrapper.
3412
3413 libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
3414 Wideband audio codec. Using it requires the presence of the
3415 libopencore-amrwb headers and library during configuration. You need to
3416 explicitly configure the build with "--enable-libopencore-amrwb".
3417
3418 An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
3419 without this library.
3420
3421 libopus
3422 libopus decoder wrapper.
3423
3424 libopus allows libavcodec to decode the Opus Interactive Audio Codec.
3425 Requires the presence of the libopus headers and library during
3426 configuration. You need to explicitly configure the build with
3427 "--enable-libopus".
3428
3429 An FFmpeg native decoder for Opus exists, so users can decode Opus
3430 without this library.
3431
3433 libaribb24
3434 ARIB STD-B24 caption decoder.
3435
3436 Implements profiles A and C of the ARIB STD-B24 standard.
3437
3438 libaribb24 Decoder Options
3439
3440 -aribb24-base-path path
3441 Sets the base path for the libaribb24 library. This is utilized for
3442 reading of configuration files (for custom unicode conversions),
3443 and for dumping of non-text symbols as images under that location.
3444
3445 Unset by default.
3446
3447 -aribb24-skip-ruby-text boolean
3448 Tells the decoder wrapper to skip text blocks that contain half-
3449 height ruby text.
3450
3451 Enabled by default.
3452
3453 dvbsub
3454 Options
3455
3456 compute_clut
3457 -2 Compute clut once if no matching CLUT is in the stream.
3458
3459 -1 Compute clut if no matching CLUT is in the stream.
3460
3461 0 Never compute CLUT
3462
3463 1 Always compute CLUT and override the one provided in the
3464 stream.
3465
3466 dvb_substream
3467 Selects the dvb substream, or all substreams if -1 which is
3468 default.
3469
3470 dvdsub
3471 This codec decodes the bitmap subtitles used in DVDs; the same
3472 subtitles can also be found in VobSub file pairs and in some Matroska
3473 files.
3474
3475 Options
3476
3477 palette
3478 Specify the global palette used by the bitmaps. When stored in
3479 VobSub, the palette is normally specified in the index file; in
3480 Matroska, the palette is stored in the codec extra-data in the same
3481 format as in VobSub. In DVDs, the palette is stored in the IFO
3482 file, and therefore not available when reading from dumped VOB
3483 files.
3484
3485 The format for this option is a string containing 16 24-bits
3486 hexadecimal numbers (without 0x prefix) separated by commas, for
3487 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
3488 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
3489 7c127b".
3490
3491 ifo_palette
3492 Specify the IFO file from which the global palette is obtained.
3493 (experimental)
3494
3495 forced_subs_only
3496 Only decode subtitle entries marked as forced. Some titles have
3497 forced and non-forced subtitles in the same track. Setting this
3498 flag to 1 will only keep the forced subtitles. Default value is 0.
3499
3500 libzvbi-teletext
3501 Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
3502 subtitles. Requires the presence of the libzvbi headers and library
3503 during configuration. You need to explicitly configure the build with
3504 "--enable-libzvbi".
3505
3506 Options
3507
3508 txt_page
3509 List of teletext page numbers to decode. Pages that do not match
3510 the specified list are dropped. You may use the special "*" string
3511 to match all pages, or "subtitle" to match all subtitle pages.
3512 Default value is *.
3513
3514 txt_default_region
3515 Set default character set used for decoding, a value between 0 and
3516 87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
3517 which does not override the libzvbi default. This option is needed
3518 for some legacy level 1.0 transmissions which cannot signal the
3519 proper charset.
3520
3521 txt_chop_top
3522 Discards the top teletext line. Default value is 1.
3523
3524 txt_format
3525 Specifies the format of the decoded subtitles.
3526
3527 bitmap
3528 The default format, you should use this for teletext pages,
3529 because certain graphics and colors cannot be expressed in
3530 simple text or even ASS.
3531
3532 text
3533 Simple text based output without formatting.
3534
3535 ass Formatted ASS output, subtitle pages and teletext pages are
3536 returned in different styles, subtitle pages are stripped down
3537 to text, but an effort is made to keep the text alignment and
3538 the formatting.
3539
3540 txt_left
3541 X offset of generated bitmaps, default is 0.
3542
3543 txt_top
3544 Y offset of generated bitmaps, default is 0.
3545
3546 txt_chop_spaces
3547 Chops leading and trailing spaces and removes empty lines from the
3548 generated text. This option is useful for teletext based subtitles
3549 where empty spaces may be present at the start or at the end of the
3550 lines or empty lines may be present between the subtitle lines
3551 because of double-sized teletext characters. Default value is 1.
3552
3553 txt_duration
3554 Sets the display duration of the decoded teletext pages or
3555 subtitles in milliseconds. Default value is -1 which means infinity
3556 or until the next subtitle event comes.
3557
3558 txt_transparent
3559 Force transparent background of the generated teletext bitmaps.
3560 Default value is 0 which means an opaque background.
3561
3562 txt_opacity
3563 Sets the opacity (0-255) of the teletext background. If
3564 txt_transparent is not set, it only affects characters between a
3565 start box and an end box, typically subtitles. Default value is 0
3566 if txt_transparent is set, 255 otherwise.
3567
3569 When you configure your FFmpeg build, all the supported bitstream
3570 filters are enabled by default. You can list all available ones using
3571 the configure option "--list-bsfs".
3572
3573 You can disable all the bitstream filters using the configure option
3574 "--disable-bsfs", and selectively enable any bitstream filter using the
3575 option "--enable-bsf=BSF", or you can disable a particular bitstream
3576 filter using the option "--disable-bsf=BSF".
3577
3578 The option "-bsfs" of the ff* tools will display the list of all the
3579 supported bitstream filters included in your build.
3580
3581 The ff* tools have a -bsf option applied per stream, taking a comma-
3582 separated list of filters, whose parameters follow the filter name
3583 after a '='.
3584
3585 ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
3586
3587 Below is a description of the currently available bitstream filters,
3588 with their parameters, if any.
3589
3590 aac_adtstoasc
3591 Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
3592 bitstream.
3593
3594 This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
3595 header and removes the ADTS header.
3596
3597 This filter is required for example when copying an AAC stream from a
3598 raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
3599 to MOV/MP4 files and related formats such as 3GP or M4A. Please note
3600 that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
3601
3602 av1_metadata
3603 Modify metadata embedded in an AV1 stream.
3604
3605 td Insert or remove temporal delimiter OBUs in all temporal units of
3606 the stream.
3607
3608 insert
3609 Insert a TD at the beginning of every TU which does not already
3610 have one.
3611
3612 remove
3613 Remove the TD from the beginning of every TU which has one.
3614
3615 color_primaries
3616 transfer_characteristics
3617 matrix_coefficients
3618 Set the color description fields in the stream (see AV1 section
3619 6.4.2).
3620
3621 color_range
3622 Set the color range in the stream (see AV1 section 6.4.2; note that
3623 this cannot be set for streams using BT.709 primaries, sRGB
3624 transfer characteristic and identity (RGB) matrix coefficients).
3625
3626 tv Limited range.
3627
3628 pc Full range.
3629
3630 chroma_sample_position
3631 Set the chroma sample location in the stream (see AV1 section
3632 6.4.2). This can only be set for 4:2:0 streams.
3633
3634 vertical
3635 Left position (matching the default in MPEG-2 and H.264).
3636
3637 colocated
3638 Top-left position.
3639
3640 tick_rate
3641 Set the tick rate (time_scale / num_units_in_display_tick) in the
3642 timing info in the sequence header.
3643
3644 num_ticks_per_picture
3645 Set the number of ticks in each picture, to indicate that the
3646 stream has a fixed framerate. Ignored if tick_rate is not also
3647 set.
3648
3649 delete_padding
3650 Deletes Padding OBUs.
3651
3652 chomp
3653 Remove zero padding at the end of a packet.
3654
3655 dca_core
3656 Extract the core from a DCA/DTS stream, dropping extensions such as
3657 DTS-HD.
3658
3659 dump_extra
3660 Add extradata to the beginning of the filtered packets except when said
3661 packets already exactly begin with the extradata that is intended to be
3662 added.
3663
3664 freq
3665 The additional argument specifies which packets should be filtered.
3666 It accepts the values:
3667
3668 k
3669 keyframe
3670 add extradata to all key packets
3671
3672 e
3673 all add extradata to all packets
3674
3675 If not specified it is assumed k.
3676
3677 For example the following ffmpeg command forces a global header (thus
3678 disabling individual packet headers) in the H.264 packets generated by
3679 the "libx264" encoder, but corrects them by adding the header stored in
3680 extradata to the key packets:
3681
3682 ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
3683
3684 eac3_core
3685 Extract the core from a E-AC-3 stream, dropping extra channels.
3686
3687 extract_extradata
3688 Extract the in-band extradata.
3689
3690 Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
3691 headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
3692 band" (i.e. as a part of the bitstream containing the coded frames) or
3693 "out of band" (e.g. on the container level). This latter form is called
3694 "extradata" in FFmpeg terminology.
3695
3696 This bitstream filter detects the in-band headers and makes them
3697 available as extradata.
3698
3699 remove
3700 When this option is enabled, the long-term headers are removed from
3701 the bitstream after extraction.
3702
3703 filter_units
3704 Remove units with types in or not in a given set from the stream.
3705
3706 pass_types
3707 List of unit types or ranges of unit types to pass through while
3708 removing all others. This is specified as a '|'-separated list of
3709 unit type values or ranges of values with '-'.
3710
3711 remove_types
3712 Identical to pass_types, except the units in the given set removed
3713 and all others passed through.
3714
3715 Extradata is unchanged by this transformation, but note that if the
3716 stream contains inline parameter sets then the output may be unusable
3717 if they are removed.
3718
3719 For example, to remove all non-VCL NAL units from an H.264 stream:
3720
3721 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
3722
3723 To remove all AUDs, SEI and filler from an H.265 stream:
3724
3725 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
3726
3727 hapqa_extract
3728 Extract Rgb or Alpha part of an HAPQA file, without recompression, in
3729 order to create an HAPQ or an HAPAlphaOnly file.
3730
3731 texture
3732 Specifies the texture to keep.
3733
3734 color
3735 alpha
3736
3737 Convert HAPQA to HAPQ
3738
3739 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
3740
3741 Convert HAPQA to HAPAlphaOnly
3742
3743 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
3744
3745 h264_metadata
3746 Modify metadata embedded in an H.264 stream.
3747
3748 aud Insert or remove AUD NAL units in all access units of the stream.
3749
3750 insert
3751 remove
3752 sample_aspect_ratio
3753 Set the sample aspect ratio of the stream in the VUI parameters.
3754
3755 overscan_appropriate_flag
3756 Set whether the stream is suitable for display using overscan or
3757 not (see H.264 section E.2.1).
3758
3759 video_format
3760 video_full_range_flag
3761 Set the video format in the stream (see H.264 section E.2.1 and
3762 table E-2).
3763
3764 colour_primaries
3765 transfer_characteristics
3766 matrix_coefficients
3767 Set the colour description in the stream (see H.264 section E.2.1
3768 and tables E-3, E-4 and E-5).
3769
3770 chroma_sample_loc_type
3771 Set the chroma sample location in the stream (see H.264 section
3772 E.2.1 and figure E-1).
3773
3774 tick_rate
3775 Set the tick rate (time_scale / num_units_in_tick) in the VUI
3776 parameters. This is the smallest time unit representable in the
3777 stream, and in many cases represents the field rate of the stream
3778 (double the frame rate).
3779
3780 fixed_frame_rate_flag
3781 Set whether the stream has fixed framerate - typically this
3782 indicates that the framerate is exactly half the tick rate, but the
3783 exact meaning is dependent on interlacing and the picture structure
3784 (see H.264 section E.2.1 and table E-6).
3785
3786 zero_new_constraint_set_flags
3787 Zero constraint_set4_flag and constraint_set5_flag in the SPS.
3788 These bits were reserved in a previous version of the H.264 spec,
3789 and thus some hardware decoders require these to be zero. The
3790 result of zeroing this is still a valid bitstream.
3791
3792 crop_left
3793 crop_right
3794 crop_top
3795 crop_bottom
3796 Set the frame cropping offsets in the SPS. These values will
3797 replace the current ones if the stream is already cropped.
3798
3799 These fields are set in pixels. Note that some sizes may not be
3800 representable if the chroma is subsampled or the stream is
3801 interlaced (see H.264 section 7.4.2.1.1).
3802
3803 sei_user_data
3804 Insert a string as SEI unregistered user data. The argument must
3805 be of the form UUID+string, where the UUID is as hex digits
3806 possibly separated by hyphens, and the string can be anything.
3807
3808 For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
3809 the string ``hello'' associated with the given UUID.
3810
3811 delete_filler
3812 Deletes both filler NAL units and filler SEI messages.
3813
3814 level
3815 Set the level in the SPS. Refer to H.264 section A.3 and tables
3816 A-1 to A-5.
3817
3818 The argument must be the name of a level (for example, 4.2), a
3819 level_idc value (for example, 42), or the special name auto
3820 indicating that the filter should attempt to guess the level from
3821 the input stream properties.
3822
3823 h264_mp4toannexb
3824 Convert an H.264 bitstream from length prefixed mode to start code
3825 prefixed mode (as defined in the Annex B of the ITU-T H.264
3826 specification).
3827
3828 This is required by some streaming formats, typically the MPEG-2
3829 transport stream format (muxer "mpegts").
3830
3831 For example to remux an MP4 file containing an H.264 stream to mpegts
3832 format with ffmpeg, you can use the command:
3833
3834 ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
3835
3836 Please note that this filter is auto-inserted for MPEG-TS (muxer
3837 "mpegts") and raw H.264 (muxer "h264") output formats.
3838
3839 h264_redundant_pps
3840 This applies a specific fixup to some Blu-ray streams which contain
3841 redundant PPSs modifying irrelevant parameters of the stream which
3842 confuse other transformations which require correct extradata.
3843
3844 A new single global PPS is created, and all of the redundant PPSs
3845 within the stream are removed.
3846
3847 hevc_metadata
3848 Modify metadata embedded in an HEVC stream.
3849
3850 aud Insert or remove AUD NAL units in all access units of the stream.
3851
3852 insert
3853 remove
3854 sample_aspect_ratio
3855 Set the sample aspect ratio in the stream in the VUI parameters.
3856
3857 video_format
3858 video_full_range_flag
3859 Set the video format in the stream (see H.265 section E.3.1 and
3860 table E.2).
3861
3862 colour_primaries
3863 transfer_characteristics
3864 matrix_coefficients
3865 Set the colour description in the stream (see H.265 section E.3.1
3866 and tables E.3, E.4 and E.5).
3867
3868 chroma_sample_loc_type
3869 Set the chroma sample location in the stream (see H.265 section
3870 E.3.1 and figure E.1).
3871
3872 tick_rate
3873 Set the tick rate in the VPS and VUI parameters (time_scale /
3874 num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
3875 set a constant framerate in the stream. Note that it is likely to
3876 be overridden by container parameters when the stream is in a
3877 container.
3878
3879 num_ticks_poc_diff_one
3880 Set poc_proportional_to_timing_flag in VPS and VUI and use this
3881 value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
3882 7.4.3.1 and E.3.1). Ignored if tick_rate is not also set.
3883
3884 crop_left
3885 crop_right
3886 crop_top
3887 crop_bottom
3888 Set the conformance window cropping offsets in the SPS. These
3889 values will replace the current ones if the stream is already
3890 cropped.
3891
3892 These fields are set in pixels. Note that some sizes may not be
3893 representable if the chroma is subsampled (H.265 section
3894 7.4.3.2.1).
3895
3896 level
3897 Set the level in the VPS and SPS. See H.265 section A.4 and tables
3898 A.6 and A.7.
3899
3900 The argument must be the name of a level (for example, 5.1), a
3901 general_level_idc value (for example, 153 for level 5.1), or the
3902 special name auto indicating that the filter should attempt to
3903 guess the level from the input stream properties.
3904
3905 hevc_mp4toannexb
3906 Convert an HEVC/H.265 bitstream from length prefixed mode to start code
3907 prefixed mode (as defined in the Annex B of the ITU-T H.265
3908 specification).
3909
3910 This is required by some streaming formats, typically the MPEG-2
3911 transport stream format (muxer "mpegts").
3912
3913 For example to remux an MP4 file containing an HEVC stream to mpegts
3914 format with ffmpeg, you can use the command:
3915
3916 ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
3917
3918 Please note that this filter is auto-inserted for MPEG-TS (muxer
3919 "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
3920
3921 imxdump
3922 Modifies the bitstream to fit in MOV and to be usable by the Final Cut
3923 Pro decoder. This filter only applies to the mpeg2video codec, and is
3924 likely not needed for Final Cut Pro 7 and newer with the appropriate
3925 -tag:v.
3926
3927 For example, to remux 30 MB/sec NTSC IMX to MOV:
3928
3929 ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
3930
3931 mjpeg2jpeg
3932 Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
3933
3934 MJPEG is a video codec wherein each video frame is essentially a JPEG
3935 image. The individual frames can be extracted without loss, e.g. by
3936
3937 ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
3938
3939 Unfortunately, these chunks are incomplete JPEG images, because they
3940 lack the DHT segment required for decoding. Quoting from
3941 <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
3942
3943 Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
3944 commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
3945 fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
3946 table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
3947 use basic Huffman encoding, not arithmetic or progressive. . . . You
3948 can indeed extract the MJPEG frames and decode them with a regular JPEG
3949 decoder, but you have to prepend the DHT segment to them, or else the
3950 decoder won't have any idea how to decompress the data. The exact table
3951 necessary is given in the OpenDML spec."
3952
3953 This bitstream filter patches the header of frames extracted from an
3954 MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
3955 produce fully qualified JPEG images.
3956
3957 ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
3958 exiftran -i -9 frame*.jpg
3959 ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
3960
3961 mjpegadump
3962 Add an MJPEG A header to the bitstream, to enable decoding by
3963 Quicktime.
3964
3965 mov2textsub
3966 Extract a representable text file from MOV subtitles, stripping the
3967 metadata header from each subtitle packet.
3968
3969 See also the text2movsub filter.
3970
3971 mp3decomp
3972 Decompress non-standard compressed MP3 audio headers.
3973
3974 mpeg2_metadata
3975 Modify metadata embedded in an MPEG-2 stream.
3976
3977 display_aspect_ratio
3978 Set the display aspect ratio in the stream.
3979
3980 The following fixed values are supported:
3981
3982 4/3
3983 16/9
3984 221/100
3985
3986 Any other value will result in square pixels being signalled
3987 instead (see H.262 section 6.3.3 and table 6-3).
3988
3989 frame_rate
3990 Set the frame rate in the stream. This is constructed from a table
3991 of known values combined with a small multiplier and divisor - if
3992 the supplied value is not exactly representable, the nearest
3993 representable value will be used instead (see H.262 section 6.3.3
3994 and table 6-4).
3995
3996 video_format
3997 Set the video format in the stream (see H.262 section 6.3.6 and
3998 table 6-6).
3999
4000 colour_primaries
4001 transfer_characteristics
4002 matrix_coefficients
4003 Set the colour description in the stream (see H.262 section 6.3.6
4004 and tables 6-7, 6-8 and 6-9).
4005
4006 mpeg4_unpack_bframes
4007 Unpack DivX-style packed B-frames.
4008
4009 DivX-style packed B-frames are not valid MPEG-4 and were only a
4010 workaround for the broken Video for Windows subsystem. They use more
4011 space, can cause minor AV sync issues, require more CPU power to decode
4012 (unless the player has some decoded picture queue to compensate the
4013 2,0,2,0 frame per packet style) and cause trouble if copied into a
4014 standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
4015 not be able to decode them, since they are not valid MPEG-4.
4016
4017 For example to fix an AVI file containing an MPEG-4 stream with DivX-
4018 style packed B-frames using ffmpeg, you can use the command:
4019
4020 ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
4021
4022 noise
4023 Damages the contents of packets or simply drops them without damaging
4024 the container. Can be used for fuzzing or testing error
4025 resilience/concealment.
4026
4027 Parameters:
4028
4029 amount
4030 Accepts an expression whose evaluation per-packet determines how
4031 often bytes in that packet will be modified. A value below 0 will
4032 result in a variable frequency. Default is 0 which results in no
4033 modification. However, if neither amount nor drop is specified,
4034 amount will be set to -1. See below for accepted variables.
4035
4036 drop
4037 Accepts an expression evaluated per-packet whose value determines
4038 whether that packet is dropped. Evaluation to a positive value
4039 results in the packet being dropped. Evaluation to a negative value
4040 results in a variable chance of it being dropped, roughly inverse
4041 in proportion to the magnitude of the value. Default is 0 which
4042 results in no drops. See below for accepted variables.
4043
4044 dropamount
4045 Accepts a non-negative integer, which assigns a variable chance of
4046 it being dropped, roughly inverse in proportion to the value.
4047 Default is 0 which results in no drops. This option is kept for
4048 backwards compatibility and is equivalent to setting drop to a
4049 negative value with the same magnitude i.e. "dropamount=4" is the
4050 same as "drop=-4". Ignored if drop is also specified.
4051
4052 Both "amount" and "drop" accept expressions containing the following
4053 variables:
4054
4055 n The index of the packet, starting from zero.
4056
4057 tb The timebase for packet timestamps.
4058
4059 pts Packet presentation timestamp.
4060
4061 dts Packet decoding timestamp.
4062
4063 nopts
4064 Constant representing AV_NOPTS_VALUE.
4065
4066 startpts
4067 First non-AV_NOPTS_VALUE PTS seen in the stream.
4068
4069 startdts
4070 First non-AV_NOPTS_VALUE DTS seen in the stream.
4071
4072 duration
4073 d Packet duration, in timebase units.
4074
4075 pos Packet position in input; may be -1 when unknown or not set.
4076
4077 size
4078 Packet size, in bytes.
4079
4080 key Whether packet is marked as a keyframe.
4081
4082 state
4083 A pseudo random integer, primarily derived from the content of
4084 packet payload.
4085
4086 Examples
4087
4088 Apply modification to every byte but don't drop any packets.
4089
4090 ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
4091
4092 Drop every video packet not marked as a keyframe after timestamp 30s
4093 but do not modify any of the remaining packets.
4094
4095 ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
4096
4097 Drop one second of audio every 10 seconds and add some random noise to
4098 the rest.
4099
4100 ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
4101
4102 null
4103 This bitstream filter passes the packets through unchanged.
4104
4105 pcm_rechunk
4106 Repacketize PCM audio to a fixed number of samples per packet or a
4107 fixed packet rate per second. This is similar to the asetnsamples audio
4108 filter but works on audio packets instead of audio frames.
4109
4110 nb_out_samples, n
4111 Set the number of samples per each output audio packet. The number
4112 is intended as the number of samples per each channel. Default
4113 value is 1024.
4114
4115 pad, p
4116 If set to 1, the filter will pad the last audio packet with
4117 silence, so that it will contain the same number of samples (or
4118 roughly the same number of samples, see frame_rate) as the previous
4119 ones. Default value is 1.
4120
4121 frame_rate, r
4122 This option makes the filter output a fixed number of packets per
4123 second instead of a fixed number of samples per packet. If the
4124 audio sample rate is not divisible by the frame rate then the
4125 number of samples will not be constant but will vary slightly so
4126 that each packet will start as close to the frame boundary as
4127 possible. Using this option has precedence over nb_out_samples.
4128
4129 You can generate the well known 1602-1601-1602-1601-1602 pattern of
4130 48kHz audio for NTSC frame rate using the frame_rate option.
4131
4132 ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
4133
4134 prores_metadata
4135 Modify color property metadata embedded in prores stream.
4136
4137 color_primaries
4138 Set the color primaries. Available values are:
4139
4140 auto
4141 Keep the same color primaries property (default).
4142
4143 unknown
4144 bt709
4145 bt470bg
4146 BT601 625
4147
4148 smpte170m
4149 BT601 525
4150
4151 bt2020
4152 smpte431
4153 DCI P3
4154
4155 smpte432
4156 P3 D65
4157
4158 transfer_characteristics
4159 Set the color transfer. Available values are:
4160
4161 auto
4162 Keep the same transfer characteristics property (default).
4163
4164 unknown
4165 bt709
4166 BT 601, BT 709, BT 2020
4167
4168 smpte2084
4169 SMPTE ST 2084
4170
4171 arib-std-b67
4172 ARIB STD-B67
4173
4174 matrix_coefficients
4175 Set the matrix coefficient. Available values are:
4176
4177 auto
4178 Keep the same colorspace property (default).
4179
4180 unknown
4181 bt709
4182 smpte170m
4183 BT 601
4184
4185 bt2020nc
4186
4187 Set Rec709 colorspace for each frame of the file
4188
4189 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
4190
4191 Set Hybrid Log-Gamma parameters for each frame of the file
4192
4193 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
4194
4195 remove_extra
4196 Remove extradata from packets.
4197
4198 It accepts the following parameter:
4199
4200 freq
4201 Set which frame types to remove extradata from.
4202
4203 k Remove extradata from non-keyframes only.
4204
4205 keyframe
4206 Remove extradata from keyframes only.
4207
4208 e, all
4209 Remove extradata from all frames.
4210
4211 setts
4212 Set PTS and DTS in packets.
4213
4214 It accepts the following parameters:
4215
4216 ts
4217 pts
4218 dts Set expressions for PTS, DTS or both.
4219
4220 The expressions are evaluated through the eval API and can contain the
4221 following constants:
4222
4223 N The count of the input packet. Starting from 0.
4224
4225 TS The demux timestamp in input in case of "ts" or "dts" option or
4226 presentation timestamp in case of "pts" option.
4227
4228 POS The original position in the file of the packet, or undefined if
4229 undefined for the current packet
4230
4231 DTS The demux timestamp in input.
4232
4233 PTS The presentation timestamp in input.
4234
4235 STARTDTS
4236 The DTS of the first packet.
4237
4238 STARTPTS
4239 The PTS of the first packet.
4240
4241 PREV_INDTS
4242 The previous input DTS.
4243
4244 PREV_INPTS
4245 The previous input PTS.
4246
4247 PREV_OUTDTS
4248 The previous output DTS.
4249
4250 PREV_OUTPTS
4251 The previous output PTS.
4252
4253 TB The timebase of stream packet belongs.
4254
4255 SR The sample rate of stream packet belongs.
4256
4257 NOPTS
4258 The AV_NOPTS_VALUE constant.
4259
4260 text2movsub
4261 Convert text subtitles to MOV subtitles (as used by the "mov_text"
4262 codec) with metadata headers.
4263
4264 See also the mov2textsub filter.
4265
4266 trace_headers
4267 Log trace output containing all syntax elements in the coded stream
4268 headers (everything above the level of individual coded blocks). This
4269 can be useful for debugging low-level stream issues.
4270
4271 Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
4272 the build only a subset of these may be available.
4273
4274 truehd_core
4275 Extract the core from a TrueHD stream, dropping ATMOS data.
4276
4277 vp9_metadata
4278 Modify metadata embedded in a VP9 stream.
4279
4280 color_space
4281 Set the color space value in the frame header. Note that any frame
4282 set to RGB will be implicitly set to PC range and that RGB is
4283 incompatible with profiles 0 and 2.
4284
4285 unknown
4286 bt601
4287 bt709
4288 smpte170
4289 smpte240
4290 bt2020
4291 rgb
4292 color_range
4293 Set the color range value in the frame header. Note that any value
4294 imposed by the color space will take precedence over this value.
4295
4296 tv
4297 pc
4298
4299 vp9_superframe
4300 Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
4301 fixes merging of split/segmented VP9 streams where the alt-ref frame
4302 was split from its visible counterpart.
4303
4304 vp9_superframe_split
4305 Split VP9 superframes into single frames.
4306
4307 vp9_raw_reorder
4308 Given a VP9 stream with correct timestamps but possibly out of order,
4309 insert additional show-existing-frame packets to correct the ordering.
4310
4312 The libavformat library provides some generic global options, which can
4313 be set on all the muxers and demuxers. In addition each muxer or
4314 demuxer may support so-called private options, which are specific for
4315 that component.
4316
4317 Options may be set by specifying -option value in the FFmpeg tools, or
4318 by setting the value explicitly in the "AVFormatContext" options or
4319 using the libavutil/opt.h API for programmatic use.
4320
4321 The list of supported options follows:
4322
4323 avioflags flags (input/output)
4324 Possible values:
4325
4326 direct
4327 Reduce buffering.
4328
4329 probesize integer (input)
4330 Set probing size in bytes, i.e. the size of the data to analyze to
4331 get stream information. A higher value will enable detecting more
4332 information in case it is dispersed into the stream, but will
4333 increase latency. Must be an integer not lesser than 32. It is
4334 5000000 by default.
4335
4336 max_probe_packets integer (input)
4337 Set the maximum number of buffered packets when probing a codec.
4338 Default is 2500 packets.
4339
4340 packetsize integer (output)
4341 Set packet size.
4342
4343 fflags flags
4344 Set format flags. Some are implemented for a limited number of
4345 formats.
4346
4347 Possible values for input files:
4348
4349 discardcorrupt
4350 Discard corrupted packets.
4351
4352 fastseek
4353 Enable fast, but inaccurate seeks for some formats.
4354
4355 genpts
4356 Generate missing PTS if DTS is present.
4357
4358 igndts
4359 Ignore DTS if PTS is set. Inert when nofillin is set.
4360
4361 ignidx
4362 Ignore index.
4363
4364 nobuffer
4365 Reduce the latency introduced by buffering during initial input
4366 streams analysis.
4367
4368 nofillin
4369 Do not fill in missing values in packet fields that can be
4370 exactly calculated.
4371
4372 noparse
4373 Disable AVParsers, this needs "+nofillin" too.
4374
4375 sortdts
4376 Try to interleave output packets by DTS. At present, available
4377 only for AVIs with an index.
4378
4379 Possible values for output files:
4380
4381 autobsf
4382 Automatically apply bitstream filters as required by the output
4383 format. Enabled by default.
4384
4385 bitexact
4386 Only write platform-, build- and time-independent data. This
4387 ensures that file and data checksums are reproducible and match
4388 between platforms. Its primary use is for regression testing.
4389
4390 flush_packets
4391 Write out packets immediately.
4392
4393 shortest
4394 Stop muxing at the end of the shortest stream. It may be
4395 needed to increase max_interleave_delta to avoid flushing the
4396 longer streams before EOF.
4397
4398 seek2any integer (input)
4399 Allow seeking to non-keyframes on demuxer level when supported if
4400 set to 1. Default is 0.
4401
4402 analyzeduration integer (input)
4403 Specify how many microseconds are analyzed to probe the input. A
4404 higher value will enable detecting more accurate information, but
4405 will increase latency. It defaults to 5,000,000 microseconds = 5
4406 seconds.
4407
4408 cryptokey hexadecimal string (input)
4409 Set decryption key.
4410
4411 indexmem integer (input)
4412 Set max memory used for timestamp index (per stream).
4413
4414 rtbufsize integer (input)
4415 Set max memory used for buffering real-time frames.
4416
4417 fdebug flags (input/output)
4418 Print specific debug info.
4419
4420 Possible values:
4421
4422 ts
4423 max_delay integer (input/output)
4424 Set maximum muxing or demuxing delay in microseconds.
4425
4426 fpsprobesize integer (input)
4427 Set number of frames used to probe fps.
4428
4429 audio_preload integer (output)
4430 Set microseconds by which audio packets should be interleaved
4431 earlier.
4432
4433 chunk_duration integer (output)
4434 Set microseconds for each chunk.
4435
4436 chunk_size integer (output)
4437 Set size in bytes for each chunk.
4438
4439 err_detect, f_err_detect flags (input)
4440 Set error detection flags. "f_err_detect" is deprecated and should
4441 be used only via the ffmpeg tool.
4442
4443 Possible values:
4444
4445 crccheck
4446 Verify embedded CRCs.
4447
4448 bitstream
4449 Detect bitstream specification deviations.
4450
4451 buffer
4452 Detect improper bitstream length.
4453
4454 explode
4455 Abort decoding on minor error detection.
4456
4457 careful
4458 Consider things that violate the spec and have not been seen in
4459 the wild as errors.
4460
4461 compliant
4462 Consider all spec non compliancies as errors.
4463
4464 aggressive
4465 Consider things that a sane encoder should not do as an error.
4466
4467 max_interleave_delta integer (output)
4468 Set maximum buffering duration for interleaving. The duration is
4469 expressed in microseconds, and defaults to 10000000 (10 seconds).
4470
4471 To ensure all the streams are interleaved correctly, libavformat
4472 will wait until it has at least one packet for each stream before
4473 actually writing any packets to the output file. When some streams
4474 are "sparse" (i.e. there are large gaps between successive
4475 packets), this can result in excessive buffering.
4476
4477 This field specifies the maximum difference between the timestamps
4478 of the first and the last packet in the muxing queue, above which
4479 libavformat will output a packet regardless of whether it has
4480 queued a packet for all the streams.
4481
4482 If set to 0, libavformat will continue buffering packets until it
4483 has a packet for each stream, regardless of the maximum timestamp
4484 difference between the buffered packets.
4485
4486 use_wallclock_as_timestamps integer (input)
4487 Use wallclock as timestamps if set to 1. Default is 0.
4488
4489 avoid_negative_ts integer (output)
4490 Possible values:
4491
4492 make_non_negative
4493 Shift timestamps to make them non-negative. Also note that
4494 this affects only leading negative timestamps, and not non-
4495 monotonic negative timestamps.
4496
4497 make_zero
4498 Shift timestamps so that the first timestamp is 0.
4499
4500 auto (default)
4501 Enables shifting when required by the target format.
4502
4503 disabled
4504 Disables shifting of timestamp.
4505
4506 When shifting is enabled, all output timestamps are shifted by the
4507 same amount. Audio, video, and subtitles desynching and relative
4508 timestamp differences are preserved compared to how they would have
4509 been without shifting.
4510
4511 skip_initial_bytes integer (input)
4512 Set number of bytes to skip before reading header and frames if set
4513 to 1. Default is 0.
4514
4515 correct_ts_overflow integer (input)
4516 Correct single timestamp overflows if set to 1. Default is 1.
4517
4518 flush_packets integer (output)
4519 Flush the underlying I/O stream after each packet. Default is -1
4520 (auto), which means that the underlying protocol will decide, 1
4521 enables it, and has the effect of reducing the latency, 0 disables
4522 it and may increase IO throughput in some cases.
4523
4524 output_ts_offset offset (output)
4525 Set the output time offset.
4526
4527 offset must be a time duration specification, see the Time duration
4528 section in the ffmpeg-utils(1) manual.
4529
4530 The offset is added by the muxer to the output timestamps.
4531
4532 Specifying a positive offset means that the corresponding streams
4533 are delayed bt the time duration specified in offset. Default value
4534 is 0 (meaning that no offset is applied).
4535
4536 format_whitelist list (input)
4537 "," separated list of allowed demuxers. By default all are allowed.
4538
4539 dump_separator string (input)
4540 Separator used to separate the fields printed on the command line
4541 about the Stream parameters. For example, to separate the fields
4542 with newlines and indentation:
4543
4544 ffprobe -dump_separator "
4545 " -i ~/videos/matrixbench_mpeg2.mpg
4546
4547 max_streams integer (input)
4548 Specifies the maximum number of streams. This can be used to reject
4549 files that would require too many resources due to a large number
4550 of streams.
4551
4552 skip_estimate_duration_from_pts bool (input)
4553 Skip estimation of input duration when calculated using PTS. At
4554 present, applicable for MPEG-PS and MPEG-TS.
4555
4556 strict, f_strict integer (input/output)
4557 Specify how strictly to follow the standards. "f_strict" is
4558 deprecated and should be used only via the ffmpeg tool.
4559
4560 Possible values:
4561
4562 very
4563 strictly conform to an older more strict version of the spec or
4564 reference software
4565
4566 strict
4567 strictly conform to all the things in the spec no matter what
4568 consequences
4569
4570 normal
4571 unofficial
4572 allow unofficial extensions
4573
4574 experimental
4575 allow non standardized experimental things, experimental
4576 (unfinished/work in progress/not well tested) decoders and
4577 encoders. Note: experimental decoders can pose a security
4578 risk, do not use this for decoding untrusted input.
4579
4580 Format stream specifiers
4581 Format stream specifiers allow selection of one or more streams that
4582 match specific properties.
4583
4584 The exact semantics of stream specifiers is defined by the
4585 "avformat_match_stream_specifier()" function declared in the
4586 libavformat/avformat.h header and documented in the Stream specifiers
4587 section in the ffmpeg(1) manual.
4588
4590 Demuxers are configured elements in FFmpeg that can read the multimedia
4591 streams from a particular type of file.
4592
4593 When you configure your FFmpeg build, all the supported demuxers are
4594 enabled by default. You can list all available ones using the configure
4595 option "--list-demuxers".
4596
4597 You can disable all the demuxers using the configure option
4598 "--disable-demuxers", and selectively enable a single demuxer with the
4599 option "--enable-demuxer=DEMUXER", or disable it with the option
4600 "--disable-demuxer=DEMUXER".
4601
4602 The option "-demuxers" of the ff* tools will display the list of
4603 enabled demuxers. Use "-formats" to view a combined list of enabled
4604 demuxers and muxers.
4605
4606 The description of some of the currently available demuxers follows.
4607
4608 aa
4609 Audible Format 2, 3, and 4 demuxer.
4610
4611 This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
4612
4613 aac
4614 Raw Audio Data Transport Stream AAC demuxer.
4615
4616 This demuxer is used to demux an ADTS input containing a single AAC
4617 stream alongwith any ID3v1/2 or APE tags in it.
4618
4619 apng
4620 Animated Portable Network Graphics demuxer.
4621
4622 This demuxer is used to demux APNG files. All headers, but the PNG
4623 signature, up to (but not including) the first fcTL chunk are
4624 transmitted as extradata. Frames are then split as being all the
4625 chunks between two fcTL ones, or between the last fcTL and IEND chunks.
4626
4627 -ignore_loop bool
4628 Ignore the loop variable in the file if set. Default is enabled.
4629
4630 -max_fps int
4631 Maximum framerate in frames per second. Default of 0 imposes no
4632 limit.
4633
4634 -default_fps int
4635 Default framerate in frames per second when none is specified in
4636 the file (0 meaning as fast as possible). Default is 15.
4637
4638 asf
4639 Advanced Systems Format demuxer.
4640
4641 This demuxer is used to demux ASF files and MMS network streams.
4642
4643 -no_resync_search bool
4644 Do not try to resynchronize by looking for a certain optional start
4645 code.
4646
4647 concat
4648 Virtual concatenation script demuxer.
4649
4650 This demuxer reads a list of files and other directives from a text
4651 file and demuxes them one after the other, as if all their packets had
4652 been muxed together.
4653
4654 The timestamps in the files are adjusted so that the first file starts
4655 at 0 and each next file starts where the previous one finishes. Note
4656 that it is done globally and may cause gaps if all streams do not have
4657 exactly the same length.
4658
4659 All files must have the same streams (same codecs, same time base,
4660 etc.).
4661
4662 The duration of each file is used to adjust the timestamps of the next
4663 file: if the duration is incorrect (because it was computed using the
4664 bit-rate or because the file is truncated, for example), it can cause
4665 artifacts. The "duration" directive can be used to override the
4666 duration stored in each file.
4667
4668 Syntax
4669
4670 The script is a text file in extended-ASCII, with one directive per
4671 line. Empty lines, leading spaces and lines starting with '#' are
4672 ignored. The following directive is recognized:
4673
4674 "file path"
4675 Path to a file to read; special characters and spaces must be
4676 escaped with backslash or single quotes.
4677
4678 All subsequent file-related directives apply to that file.
4679
4680 "ffconcat version 1.0"
4681 Identify the script type and version.
4682
4683 To make FFmpeg recognize the format automatically, this directive
4684 must appear exactly as is (no extra space or byte-order-mark) on
4685 the very first line of the script.
4686
4687 "duration dur"
4688 Duration of the file. This information can be specified from the
4689 file; specifying it here may be more efficient or help if the
4690 information from the file is not available or accurate.
4691
4692 If the duration is set for all files, then it is possible to seek
4693 in the whole concatenated video.
4694
4695 "inpoint timestamp"
4696 In point of the file. When the demuxer opens the file it instantly
4697 seeks to the specified timestamp. Seeking is done so that all
4698 streams can be presented successfully at In point.
4699
4700 This directive works best with intra frame codecs, because for non-
4701 intra frame ones you will usually get extra packets before the
4702 actual In point and the decoded content will most likely contain
4703 frames before In point too.
4704
4705 For each file, packets before the file In point will have
4706 timestamps less than the calculated start timestamp of the file
4707 (negative in case of the first file), and the duration of the files
4708 (if not specified by the "duration" directive) will be reduced
4709 based on their specified In point.
4710
4711 Because of potential packets before the specified In point, packet
4712 timestamps may overlap between two concatenated files.
4713
4714 "outpoint timestamp"
4715 Out point of the file. When the demuxer reaches the specified
4716 decoding timestamp in any of the streams, it handles it as an end
4717 of file condition and skips the current and all the remaining
4718 packets from all streams.
4719
4720 Out point is exclusive, which means that the demuxer will not
4721 output packets with a decoding timestamp greater or equal to Out
4722 point.
4723
4724 This directive works best with intra frame codecs and formats where
4725 all streams are tightly interleaved. For non-intra frame codecs you
4726 will usually get additional packets with presentation timestamp
4727 after Out point therefore the decoded content will most likely
4728 contain frames after Out point too. If your streams are not tightly
4729 interleaved you may not get all the packets from all streams before
4730 Out point and you may only will be able to decode the earliest
4731 stream until Out point.
4732
4733 The duration of the files (if not specified by the "duration"
4734 directive) will be reduced based on their specified Out point.
4735
4736 "file_packet_metadata key=value"
4737 Metadata of the packets of the file. The specified metadata will be
4738 set for each file packet. You can specify this directive multiple
4739 times to add multiple metadata entries. This directive is
4740 deprecated, use "file_packet_meta" instead.
4741
4742 "file_packet_meta key value"
4743 Metadata of the packets of the file. The specified metadata will be
4744 set for each file packet. You can specify this directive multiple
4745 times to add multiple metadata entries.
4746
4747 "option key value"
4748 Option to access, open and probe the file. Can be present multiple
4749 times.
4750
4751 "stream"
4752 Introduce a stream in the virtual file. All subsequent stream-
4753 related directives apply to the last introduced stream. Some
4754 streams properties must be set in order to allow identifying the
4755 matching streams in the subfiles. If no streams are defined in the
4756 script, the streams from the first file are copied.
4757
4758 "exact_stream_id id"
4759 Set the id of the stream. If this directive is given, the string
4760 with the corresponding id in the subfiles will be used. This is
4761 especially useful for MPEG-PS (VOB) files, where the order of the
4762 streams is not reliable.
4763
4764 "stream_meta key value"
4765 Metadata for the stream. Can be present multiple times.
4766
4767 "stream_codec value"
4768 Codec for the stream.
4769
4770 "stream_extradata hex_string"
4771 Extradata for the string, encoded in hexadecimal.
4772
4773 "chapter id start end"
4774 Add a chapter. id is an unique identifier, possibly small and
4775 consecutive.
4776
4777 Options
4778
4779 This demuxer accepts the following option:
4780
4781 safe
4782 If set to 1, reject unsafe file paths and directives. A file path
4783 is considered safe if it does not contain a protocol specification
4784 and is relative and all components only contain characters from the
4785 portable character set (letters, digits, period, underscore and
4786 hyphen) and have no period at the beginning of a component.
4787
4788 If set to 0, any file name is accepted.
4789
4790 The default is 1.
4791
4792 auto_convert
4793 If set to 1, try to perform automatic conversions on packet data to
4794 make the streams concatenable. The default is 1.
4795
4796 Currently, the only conversion is adding the h264_mp4toannexb
4797 bitstream filter to H.264 streams in MP4 format. This is necessary
4798 in particular if there are resolution changes.
4799
4800 segment_time_metadata
4801 If set to 1, every packet will contain the lavf.concat.start_time
4802 and the lavf.concat.duration packet metadata values which are the
4803 start_time and the duration of the respective file segments in the
4804 concatenated output expressed in microseconds. The duration
4805 metadata is only set if it is known based on the concat file. The
4806 default is 0.
4807
4808 Examples
4809
4810 • Use absolute filenames and include some comments:
4811
4812 # my first filename
4813 file /mnt/share/file-1.wav
4814 # my second filename including whitespace
4815 file '/mnt/share/file 2.wav'
4816 # my third filename including whitespace plus single quote
4817 file '/mnt/share/file 3'\''.wav'
4818
4819 • Allow for input format auto-probing, use safe filenames and set the
4820 duration of the first file:
4821
4822 ffconcat version 1.0
4823
4824 file file-1.wav
4825 duration 20.0
4826
4827 file subdir/file-2.wav
4828
4829 dash
4830 Dynamic Adaptive Streaming over HTTP demuxer.
4831
4832 This demuxer presents all AVStreams found in the manifest. By setting
4833 the discard flags on AVStreams the caller can decide which streams to
4834 actually receive. Each stream mirrors the "id" and "bandwidth"
4835 properties from the "<Representation>" as metadata keys named "id" and
4836 "variant_bitrate" respectively.
4837
4838 imf
4839 Interoperable Master Format demuxer.
4840
4841 This demuxer presents audio and video streams found in an IMF
4842 Composition.
4843
4844 flv, live_flv, kux
4845 Adobe Flash Video Format demuxer.
4846
4847 This demuxer is used to demux FLV files and RTMP network streams. In
4848 case of live network streams, if you force format, you may use live_flv
4849 option instead of flv to survive timestamp discontinuities. KUX is a
4850 flv variant used on the Youku platform.
4851
4852 ffmpeg -f flv -i myfile.flv ...
4853 ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
4854
4855 -flv_metadata bool
4856 Allocate the streams according to the onMetaData array content.
4857
4858 -flv_ignore_prevtag bool
4859 Ignore the size of previous tag value.
4860
4861 -flv_full_metadata bool
4862 Output all context of the onMetadata.
4863
4864 gif
4865 Animated GIF demuxer.
4866
4867 It accepts the following options:
4868
4869 min_delay
4870 Set the minimum valid delay between frames in hundredths of
4871 seconds. Range is 0 to 6000. Default value is 2.
4872
4873 max_gif_delay
4874 Set the maximum valid delay between frames in hundredth of seconds.
4875 Range is 0 to 65535. Default value is 65535 (nearly eleven
4876 minutes), the maximum value allowed by the specification.
4877
4878 default_delay
4879 Set the default delay between frames in hundredths of seconds.
4880 Range is 0 to 6000. Default value is 10.
4881
4882 ignore_loop
4883 GIF files can contain information to loop a certain number of times
4884 (or infinitely). If ignore_loop is set to 1, then the loop setting
4885 from the input will be ignored and looping will not occur. If set
4886 to 0, then looping will occur and will cycle the number of times
4887 according to the GIF. Default value is 1.
4888
4889 For example, with the overlay filter, place an infinitely looping GIF
4890 over another video:
4891
4892 ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
4893
4894 Note that in the above example the shortest option for overlay filter
4895 is used to end the output video at the length of the shortest input
4896 file, which in this case is input.mp4 as the GIF in this example loops
4897 infinitely.
4898
4899 hls
4900 HLS demuxer
4901
4902 Apple HTTP Live Streaming demuxer.
4903
4904 This demuxer presents all AVStreams from all variant streams. The id
4905 field is set to the bitrate variant index number. By setting the
4906 discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
4907 caller can decide which variant streams to actually receive. The total
4908 bitrate of the variant that the stream belongs to is available in a
4909 metadata key named "variant_bitrate".
4910
4911 It accepts the following options:
4912
4913 live_start_index
4914 segment index to start live streams at (negative values are from
4915 the end).
4916
4917 allowed_extensions
4918 ',' separated list of file extensions that hls is allowed to
4919 access.
4920
4921 max_reload
4922 Maximum number of times a insufficient list is attempted to be
4923 reloaded. Default value is 1000.
4924
4925 m3u8_hold_counters
4926 The maximum number of times to load m3u8 when it refreshes without
4927 new segments. Default value is 1000.
4928
4929 http_persistent
4930 Use persistent HTTP connections. Applicable only for HTTP streams.
4931 Enabled by default.
4932
4933 http_multiple
4934 Use multiple HTTP connections for downloading HTTP segments.
4935 Enabled by default for HTTP/1.1 servers.
4936
4937 http_seekable
4938 Use HTTP partial requests for downloading HTTP segments. 0 =
4939 disable, 1 = enable, -1 = auto, Default is auto.
4940
4941 seg_format_options
4942 Set options for the demuxer of media segments using a list of
4943 key=value pairs separated by ":".
4944
4945 image2
4946 Image file demuxer.
4947
4948 This demuxer reads from a list of image files specified by a pattern.
4949 The syntax and meaning of the pattern is specified by the option
4950 pattern_type.
4951
4952 The pattern may contain a suffix which is used to automatically
4953 determine the format of the images contained in the files.
4954
4955 The size, the pixel format, and the format of each image must be the
4956 same for all the files in the sequence.
4957
4958 This demuxer accepts the following options:
4959
4960 framerate
4961 Set the frame rate for the video stream. It defaults to 25.
4962
4963 loop
4964 If set to 1, loop over the input. Default value is 0.
4965
4966 pattern_type
4967 Select the pattern type used to interpret the provided filename.
4968
4969 pattern_type accepts one of the following values.
4970
4971 none
4972 Disable pattern matching, therefore the video will only contain
4973 the specified image. You should use this option if you do not
4974 want to create sequences from multiple images and your
4975 filenames may contain special pattern characters.
4976
4977 sequence
4978 Select a sequence pattern type, used to specify a sequence of
4979 files indexed by sequential numbers.
4980
4981 A sequence pattern may contain the string "%d" or "%0Nd", which
4982 specifies the position of the characters representing a
4983 sequential number in each filename matched by the pattern. If
4984 the form "%d0Nd" is used, the string representing the number in
4985 each filename is 0-padded and N is the total number of 0-padded
4986 digits representing the number. The literal character '%' can
4987 be specified in the pattern with the string "%%".
4988
4989 If the sequence pattern contains "%d" or "%0Nd", the first
4990 filename of the file list specified by the pattern must contain
4991 a number inclusively contained between start_number and
4992 start_number+start_number_range-1, and all the following
4993 numbers must be sequential.
4994
4995 For example the pattern "img-%03d.bmp" will match a sequence of
4996 filenames of the form img-001.bmp, img-002.bmp, ...,
4997 img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
4998 sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
4999 ..., i%m%g-10.jpg, etc.
5000
5001 Note that the pattern must not necessarily contain "%d" or
5002 "%0Nd", for example to convert a single image file img.jpeg you
5003 can employ the command:
5004
5005 ffmpeg -i img.jpeg img.png
5006
5007 glob
5008 Select a glob wildcard pattern type.
5009
5010 The pattern is interpreted like a "glob()" pattern. This is
5011 only selectable if libavformat was compiled with globbing
5012 support.
5013
5014 glob_sequence (deprecated, will be removed)
5015 Select a mixed glob wildcard/sequence pattern.
5016
5017 If your version of libavformat was compiled with globbing
5018 support, and the provided pattern contains at least one glob
5019 meta character among "%*?[]{}" that is preceded by an unescaped
5020 "%", the pattern is interpreted like a "glob()" pattern,
5021 otherwise it is interpreted like a sequence pattern.
5022
5023 All glob special characters "%*?[]{}" must be prefixed with
5024 "%". To escape a literal "%" you shall use "%%".
5025
5026 For example the pattern "foo-%*.jpeg" will match all the
5027 filenames prefixed by "foo-" and terminating with ".jpeg", and
5028 "foo-%?%?%?.jpeg" will match all the filenames prefixed with
5029 "foo-", followed by a sequence of three characters, and
5030 terminating with ".jpeg".
5031
5032 This pattern type is deprecated in favor of glob and sequence.
5033
5034 Default value is glob_sequence.
5035
5036 pixel_format
5037 Set the pixel format of the images to read. If not specified the
5038 pixel format is guessed from the first image file in the sequence.
5039
5040 start_number
5041 Set the index of the file matched by the image file pattern to
5042 start to read from. Default value is 0.
5043
5044 start_number_range
5045 Set the index interval range to check when looking for the first
5046 image file in the sequence, starting from start_number. Default
5047 value is 5.
5048
5049 ts_from_file
5050 If set to 1, will set frame timestamp to modification time of image
5051 file. Note that monotonity of timestamps is not provided: images go
5052 in the same order as without this option. Default value is 0. If
5053 set to 2, will set frame timestamp to the modification time of the
5054 image file in nanosecond precision.
5055
5056 video_size
5057 Set the video size of the images to read. If not specified the
5058 video size is guessed from the first image file in the sequence.
5059
5060 export_path_metadata
5061 If set to 1, will add two extra fields to the metadata found in
5062 input, making them also available for other filters (see drawtext
5063 filter for examples). Default value is 0. The extra fields are
5064 described below:
5065
5066 lavf.image2dec.source_path
5067 Corresponds to the full path to the input file being read.
5068
5069 lavf.image2dec.source_basename
5070 Corresponds to the name of the file being read.
5071
5072 Examples
5073
5074 • Use ffmpeg for creating a video from the images in the file
5075 sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
5076 rate of 10 frames per second:
5077
5078 ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
5079
5080 • As above, but start by reading from a file with index 100 in the
5081 sequence:
5082
5083 ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
5084
5085 • Read images matching the "*.png" glob pattern , that is all the
5086 files terminating with the ".png" suffix:
5087
5088 ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
5089
5090 libgme
5091 The Game Music Emu library is a collection of video game music file
5092 emulators.
5093
5094 See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
5095 information.
5096
5097 It accepts the following options:
5098
5099 track_index
5100 Set the index of which track to demux. The demuxer can only export
5101 one track. Track indexes start at 0. Default is to pick the first
5102 track. Number of tracks is exported as tracks metadata entry.
5103
5104 sample_rate
5105 Set the sampling rate of the exported track. Range is 1000 to
5106 999999. Default is 44100.
5107
5108 max_size (bytes)
5109 The demuxer buffers the entire file into memory. Adjust this value
5110 to set the maximum buffer size, which in turn, acts as a ceiling
5111 for the size of files that can be read. Default is 50 MiB.
5112
5113 libmodplug
5114 ModPlug based module demuxer
5115
5116 See <https://github.com/Konstanty/libmodplug>
5117
5118 It will export one 2-channel 16-bit 44.1 kHz audio stream. Optionally,
5119 a "pal8" 16-color video stream can be exported with or without printed
5120 metadata.
5121
5122 It accepts the following options:
5123
5124 noise_reduction
5125 Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
5126 is 0.
5127
5128 reverb_depth
5129 Set amount of reverb. Range 0-100. Default is 0.
5130
5131 reverb_delay
5132 Set delay in ms, clamped to 40-250 ms. Default is 0.
5133
5134 bass_amount
5135 Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
5136 to 100 (loud). Default is 0.
5137
5138 bass_range
5139 Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
5140 Hz. Default is 0.
5141
5142 surround_depth
5143 Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
5144 (heavy). Default is 0.
5145
5146 surround_delay
5147 Set surround delay in ms, clamped to 5-40 ms. Default is 0.
5148
5149 max_size
5150 The demuxer buffers the entire file into memory. Adjust this value
5151 to set the maximum buffer size, which in turn, acts as a ceiling
5152 for the size of files that can be read. Range is 0 to 100 MiB. 0
5153 removes buffer size limit (not recommended). Default is 5 MiB.
5154
5155 video_stream_expr
5156 String which is evaluated using the eval API to assign colors to
5157 the generated video stream. Variables which can be used are "x",
5158 "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
5159
5160 video_stream
5161 Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
5162
5163 video_stream_w
5164 Set video frame width in 'chars' where one char indicates 8 pixels.
5165 Range is 20-512. Default is 30.
5166
5167 video_stream_h
5168 Set video frame height in 'chars' where one char indicates 8
5169 pixels. Range is 20-512. Default is 30.
5170
5171 video_stream_ptxt
5172 Print metadata on video stream. Includes "speed", "tempo", "order",
5173 "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
5174 Default is 1.
5175
5176 libopenmpt
5177 libopenmpt based module demuxer
5178
5179 See <https://lib.openmpt.org/libopenmpt/> for more information.
5180
5181 Some files have multiple subsongs (tracks) this can be set with the
5182 subsong option.
5183
5184 It accepts the following options:
5185
5186 subsong
5187 Set the subsong index. This can be either 'all', 'auto', or the
5188 index of the subsong. Subsong indexes start at 0. The default is
5189 'auto'.
5190
5191 The default value is to let libopenmpt choose.
5192
5193 layout
5194 Set the channel layout. Valid values are 1, 2, and 4 channel
5195 layouts. The default value is STEREO.
5196
5197 sample_rate
5198 Set the sample rate for libopenmpt to output. Range is from 1000
5199 to INT_MAX. The value default is 48000.
5200
5201 mov/mp4/3gp
5202 Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
5203 (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
5204 12).
5205
5206 Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
5207 ismv, isma, f4v
5208
5209 Options
5210
5211 This demuxer accepts the following options:
5212
5213 enable_drefs
5214 Enable loading of external tracks, disabled by default. Enabling
5215 this can theoretically leak information in some use cases.
5216
5217 use_absolute_path
5218 Allows loading of external tracks via absolute paths, disabled by
5219 default. Enabling this poses a security risk. It should only be
5220 enabled if the source is known to be non-malicious.
5221
5222 seek_streams_individually
5223 When seeking, identify the closest point in each stream
5224 individually and demux packets in that stream from identified
5225 point. This can lead to a different sequence of packets compared to
5226 demuxing linearly from the beginning. Default is true.
5227
5228 ignore_editlist
5229 Ignore any edit list atoms. The demuxer, by default, modifies the
5230 stream index to reflect the timeline described by the edit list.
5231 Default is false.
5232
5233 advanced_editlist
5234 Modify the stream index to reflect the timeline described by the
5235 edit list. "ignore_editlist" must be set to false for this option
5236 to be effective. If both "ignore_editlist" and this option are set
5237 to false, then only the start of the stream index is modified to
5238 reflect initial dwell time or starting timestamp described by the
5239 edit list. Default is true.
5240
5241 ignore_chapters
5242 Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
5243 Note that chapters are only parsed when input is seekable. Default
5244 is false.
5245
5246 use_mfra_for
5247 For seekable fragmented input, set fragment's starting timestamp
5248 from media fragment random access box, if present.
5249
5250 Following options are available:
5251
5252 auto
5253 Auto-detect whether to set mfra timestamps as PTS or DTS
5254 (default)
5255
5256 dts Set mfra timestamps as DTS
5257
5258 pts Set mfra timestamps as PTS
5259
5260 0 Don't use mfra box to set timestamps
5261
5262 use_tfdt
5263 For fragmented input, set fragment's starting timestamp to
5264 "baseMediaDecodeTime" from the "tfdt" box. Default is enabled,
5265 which will prefer to use the "tfdt" box to set DTS. Disable to use
5266 the "earliest_presentation_time" from the "sidx" box. In either
5267 case, the timestamp from the "mfra" box will be used if it's
5268 available and "use_mfra_for" is set to pts or dts.
5269
5270 export_all
5271 Export unrecognized boxes within the udta box as metadata entries.
5272 The first four characters of the box type are set as the key.
5273 Default is false.
5274
5275 export_xmp
5276 Export entire contents of XMP_ box and uuid box as a string with
5277 key "xmp". Note that if "export_all" is set and this option isn't,
5278 the contents of XMP_ box are still exported but with key "XMP_".
5279 Default is false.
5280
5281 activation_bytes
5282 4-byte key required to decrypt Audible AAX and AAX+ files. See
5283 Audible AAX subsection below.
5284
5285 audible_fixed_key
5286 Fixed key used for handling Audible AAX/AAX+ files. It has been
5287 pre-set so should not be necessary to specify.
5288
5289 decryption_key
5290 16-byte key, in hex, to decrypt files encrypted using ISO Common
5291 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
5292
5293 max_stts_delta
5294 Very high sample deltas written in a trak's stts box may
5295 occasionally be intended but usually they are written in error or
5296 used to store a negative value for dts correction when treated as
5297 signed 32-bit integers. This option lets the user set an upper
5298 limit, beyond which the delta is clamped to 1. Values greater than
5299 the limit if negative when cast to int32 are used to adjust onward
5300 dts.
5301
5302 Unit is the track time scale. Range is 0 to UINT_MAX. Default is
5303 "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
5304 for 48 kHz audio streams while accommodating 99.9% of "uint32"
5305 range.
5306
5307 Audible AAX
5308
5309 Audible AAX files are encrypted M4B files, and they can be decrypted by
5310 specifying a 4 byte activation secret.
5311
5312 ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
5313
5314 mpegts
5315 MPEG-2 transport stream demuxer.
5316
5317 This demuxer accepts the following options:
5318
5319 resync_size
5320 Set size limit for looking up a new synchronization. Default value
5321 is 65536.
5322
5323 skip_unknown_pmt
5324 Skip PMTs for programs not defined in the PAT. Default value is 0.
5325
5326 fix_teletext_pts
5327 Override teletext packet PTS and DTS values with the timestamps
5328 calculated from the PCR of the first program which the teletext
5329 stream is part of and is not discarded. Default value is 1, set
5330 this option to 0 if you want your teletext packet PTS and DTS
5331 values untouched.
5332
5333 ts_packetsize
5334 Output option carrying the raw packet size in bytes. Show the
5335 detected raw packet size, cannot be set by the user.
5336
5337 scan_all_pmts
5338 Scan and combine all PMTs. The value is an integer with value from
5339 -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
5340 disabled). Default value is -1.
5341
5342 merge_pmt_versions
5343 Re-use existing streams when a PMT's version is updated and
5344 elementary streams move to different PIDs. Default value is 0.
5345
5346 mpjpeg
5347 MJPEG encapsulated in multi-part MIME demuxer.
5348
5349 This demuxer allows reading of MJPEG, where each frame is represented
5350 as a part of multipart/x-mixed-replace stream.
5351
5352 strict_mime_boundary
5353 Default implementation applies a relaxed standard to multi-part
5354 MIME boundary detection, to prevent regression with numerous
5355 existing endpoints not generating a proper MIME MJPEG stream.
5356 Turning this option on by setting it to 1 will result in a stricter
5357 check of the boundary value.
5358
5359 rawvideo
5360 Raw video demuxer.
5361
5362 This demuxer allows one to read raw video data. Since there is no
5363 header specifying the assumed video parameters, the user must specify
5364 them in order to be able to decode the data correctly.
5365
5366 This demuxer accepts the following options:
5367
5368 framerate
5369 Set input video frame rate. Default value is 25.
5370
5371 pixel_format
5372 Set the input video pixel format. Default value is "yuv420p".
5373
5374 video_size
5375 Set the input video size. This value must be specified explicitly.
5376
5377 For example to read a rawvideo file input.raw with ffplay, assuming a
5378 pixel format of "rgb24", a video size of "320x240", and a frame rate of
5379 10 images per second, use the command:
5380
5381 ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
5382
5383 sbg
5384 SBaGen script demuxer.
5385
5386 This demuxer reads the script language used by SBaGen
5387 <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
5388 script looks like that:
5389
5390 -SE
5391 a: 300-2.5/3 440+4.5/0
5392 b: 300-2.5/0 440+4.5/3
5393 off: -
5394 NOW == a
5395 +0:07:00 == b
5396 +0:14:00 == a
5397 +0:21:00 == b
5398 +0:30:00 off
5399
5400 A SBG script can mix absolute and relative timestamps. If the script
5401 uses either only absolute timestamps (including the script start time)
5402 or only relative ones, then its layout is fixed, and the conversion is
5403 straightforward. On the other hand, if the script mixes both kind of
5404 timestamps, then the NOW reference for relative timestamps will be
5405 taken from the current time of day at the time the script is read, and
5406 the script layout will be frozen according to that reference. That
5407 means that if the script is directly played, the actual times will
5408 match the absolute timestamps up to the sound controller's clock
5409 accuracy, but if the user somehow pauses the playback or seeks, all
5410 times will be shifted accordingly.
5411
5412 tedcaptions
5413 JSON captions used for <http://www.ted.com/>.
5414
5415 TED does not provide links to the captions, but they can be guessed
5416 from the page. The file tools/bookmarklets.html from the FFmpeg source
5417 tree contains a bookmarklet to expose them.
5418
5419 This demuxer accepts the following option:
5420
5421 start_time
5422 Set the start time of the TED talk, in milliseconds. The default is
5423 15000 (15s). It is used to sync the captions with the downloadable
5424 videos, because they include a 15s intro.
5425
5426 Example: convert the captions to a format most players understand:
5427
5428 ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
5429
5430 vapoursynth
5431 Vapoursynth wrapper.
5432
5433 Due to security concerns, Vapoursynth scripts will not be autodetected
5434 so the input format has to be forced. For ff* CLI tools, add "-f
5435 vapoursynth" before the input "-i yourscript.vpy".
5436
5437 This demuxer accepts the following option:
5438
5439 max_script_size
5440 The demuxer buffers the entire script into memory. Adjust this
5441 value to set the maximum buffer size, which in turn, acts as a
5442 ceiling for the size of scripts that can be read. Default is 1
5443 MiB.
5444
5446 FFmpeg is able to dump metadata from media files into a simple
5447 UTF-8-encoded INI-like text file and then load it back using the
5448 metadata muxer/demuxer.
5449
5450 The file format is as follows:
5451
5452 1. A file consists of a header and a number of metadata tags divided
5453 into sections, each on its own line.
5454
5455 2. The header is a ;FFMETADATA string, followed by a version number
5456 (now 1).
5457
5458 3. Metadata tags are of the form key=value
5459
5460 4. Immediately after header follows global metadata
5461
5462 5. After global metadata there may be sections with
5463 per-stream/per-chapter metadata.
5464
5465 6. A section starts with the section name in uppercase (i.e. STREAM or
5466 CHAPTER) in brackets ([, ]) and ends with next section or end of
5467 file.
5468
5469 7. At the beginning of a chapter section there may be an optional
5470 timebase to be used for start/end values. It must be in form
5471 TIMEBASE=num/den, where num and den are integers. If the timebase
5472 is missing then start/end times are assumed to be in nanoseconds.
5473
5474 Next a chapter section must contain chapter start and end times in
5475 form START=num, END=num, where num is a positive integer.
5476
5477 8. Empty lines and lines starting with ; or # are ignored.
5478
5479 9. Metadata keys or values containing special characters (=, ;, #, \
5480 and a newline) must be escaped with a backslash \.
5481
5482 10. Note that whitespace in metadata (e.g. foo = bar) is considered to
5483 be a part of the tag (in the example above key is foo , value is
5484 bar).
5485
5486 A ffmetadata file might look like this:
5487
5488 ;FFMETADATA1
5489 title=bike\\shed
5490 ;this is a comment
5491 artist=FFmpeg troll team
5492
5493 [CHAPTER]
5494 TIMEBASE=1/1000
5495 START=0
5496 #chapter ends at 0:01:00
5497 END=60000
5498 title=chapter \#1
5499 [STREAM]
5500 title=multi\
5501 line
5502
5503 By using the ffmetadata muxer and demuxer it is possible to extract
5504 metadata from an input file to an ffmetadata file, and then transcode
5505 the file into an output file with the edited ffmetadata file.
5506
5507 Extracting an ffmetadata file with ffmpeg goes as follows:
5508
5509 ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
5510
5511 Reinserting edited metadata information from the FFMETADATAFILE file
5512 can be done as:
5513
5514 ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
5515
5517 The libavformat library provides some generic global options, which can
5518 be set on all the protocols. In addition each protocol may support so-
5519 called private options, which are specific for that component.
5520
5521 Options may be set by specifying -option value in the FFmpeg tools, or
5522 by setting the value explicitly in the "AVFormatContext" options or
5523 using the libavutil/opt.h API for programmatic use.
5524
5525 The list of supported options follows:
5526
5527 protocol_whitelist list (input)
5528 Set a ","-separated list of allowed protocols. "ALL" matches all
5529 protocols. Protocols prefixed by "-" are disabled. All protocols
5530 are allowed by default but protocols used by an another protocol
5531 (nested protocols) are restricted to a per protocol subset.
5532
5534 Protocols are configured elements in FFmpeg that enable access to
5535 resources that require specific protocols.
5536
5537 When you configure your FFmpeg build, all the supported protocols are
5538 enabled by default. You can list all available ones using the configure
5539 option "--list-protocols".
5540
5541 You can disable all the protocols using the configure option
5542 "--disable-protocols", and selectively enable a protocol using the
5543 option "--enable-protocol=PROTOCOL", or you can disable a particular
5544 protocol using the option "--disable-protocol=PROTOCOL".
5545
5546 The option "-protocols" of the ff* tools will display the list of
5547 supported protocols.
5548
5549 All protocols accept the following options:
5550
5551 rw_timeout
5552 Maximum time to wait for (network) read/write operations to
5553 complete, in microseconds.
5554
5555 A description of the currently available protocols follows.
5556
5557 amqp
5558 Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
5559 based publish-subscribe communication protocol.
5560
5561 FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
5562 separate AMQP broker must also be run. An example open-source AMQP
5563 broker is RabbitMQ.
5564
5565 After starting the broker, an FFmpeg client may stream data to the
5566 broker using the command:
5567
5568 ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
5569
5570 Where hostname and port (default is 5672) is the address of the broker.
5571 The client may also set a user/password for authentication. The default
5572 for both fields is "guest". Name of virtual host on broker can be set
5573 with vhost. The default value is "/".
5574
5575 Muliple subscribers may stream from the broker using the command:
5576
5577 ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
5578
5579 In RabbitMQ all data published to the broker flows through a specific
5580 exchange, and each subscribing client has an assigned queue/buffer.
5581 When a packet arrives at an exchange, it may be copied to a client's
5582 queue depending on the exchange and routing_key fields.
5583
5584 The following options are supported:
5585
5586 exchange
5587 Sets the exchange to use on the broker. RabbitMQ has several
5588 predefined exchanges: "amq.direct" is the default exchange, where
5589 the publisher and subscriber must have a matching routing_key;
5590 "amq.fanout" is the same as a broadcast operation (i.e. the data is
5591 forwarded to all queues on the fanout exchange independent of the
5592 routing_key); and "amq.topic" is similar to "amq.direct", but
5593 allows for more complex pattern matching (refer to the RabbitMQ
5594 documentation).
5595
5596 routing_key
5597 Sets the routing key. The default value is "amqp". The routing key
5598 is used on the "amq.direct" and "amq.topic" exchanges to decide
5599 whether packets are written to the queue of a subscriber.
5600
5601 pkt_size
5602 Maximum size of each packet sent/received to the broker. Default is
5603 131072. Minimum is 4096 and max is any large value (representable
5604 by an int). When receiving packets, this sets an internal buffer
5605 size in FFmpeg. It should be equal to or greater than the size of
5606 the published packets to the broker. Otherwise the received message
5607 may be truncated causing decoding errors.
5608
5609 connection_timeout
5610 The timeout in seconds during the initial connection to the broker.
5611 The default value is rw_timeout, or 5 seconds if rw_timeout is not
5612 set.
5613
5614 delivery_mode mode
5615 Sets the delivery mode of each message sent to broker. The
5616 following values are accepted:
5617
5618 persistent
5619 Delivery mode set to "persistent" (2). This is the default
5620 value. Messages may be written to the broker's disk depending
5621 on its setup.
5622
5623 non-persistent
5624 Delivery mode set to "non-persistent" (1). Messages will stay
5625 in broker's memory unless the broker is under memory pressure.
5626
5627 async
5628 Asynchronous data filling wrapper for input stream.
5629
5630 Fill data in a background thread, to decouple I/O operation from demux
5631 thread.
5632
5633 async:<URL>
5634 async:http://host/resource
5635 async:cache:http://host/resource
5636
5637 bluray
5638 Read BluRay playlist.
5639
5640 The accepted options are:
5641
5642 angle
5643 BluRay angle
5644
5645 chapter
5646 Start chapter (1...N)
5647
5648 playlist
5649 Playlist to read (BDMV/PLAYLIST/?????.mpls)
5650
5651 Examples:
5652
5653 Read longest playlist from BluRay mounted to /mnt/bluray:
5654
5655 bluray:/mnt/bluray
5656
5657 Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
5658 from chapter 2:
5659
5660 -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
5661
5662 cache
5663 Caching wrapper for input stream.
5664
5665 Cache the input stream to temporary file. It brings seeking capability
5666 to live streams.
5667
5668 The accepted options are:
5669
5670 read_ahead_limit
5671 Amount in bytes that may be read ahead when seeking isn't
5672 supported. Range is -1 to INT_MAX. -1 for unlimited. Default is
5673 65536.
5674
5675 URL Syntax is
5676
5677 cache:<URL>
5678
5679 concat
5680 Physical concatenation protocol.
5681
5682 Read and seek from many resources in sequence as if they were a unique
5683 resource.
5684
5685 A URL accepted by this protocol has the syntax:
5686
5687 concat:<URL1>|<URL2>|...|<URLN>
5688
5689 where URL1, URL2, ..., URLN are the urls of the resource to be
5690 concatenated, each one possibly specifying a distinct protocol.
5691
5692 For example to read a sequence of files split1.mpeg, split2.mpeg,
5693 split3.mpeg with ffplay use the command:
5694
5695 ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
5696
5697 Note that you may need to escape the character "|" which is special for
5698 many shells.
5699
5700 concatf
5701 Physical concatenation protocol using a line break delimited list of
5702 resources.
5703
5704 Read and seek from many resources in sequence as if they were a unique
5705 resource.
5706
5707 A URL accepted by this protocol has the syntax:
5708
5709 concatf:<URL>
5710
5711 where URL is the url containing a line break delimited list of
5712 resources to be concatenated, each one possibly specifying a distinct
5713 protocol. Special characters must be escaped with backslash or single
5714 quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
5715 manual.
5716
5717 For example to read a sequence of files split1.mpeg, split2.mpeg,
5718 split3.mpeg listed in separate lines within a file split.txt with
5719 ffplay use the command:
5720
5721 ffplay concatf:split.txt
5722
5723 Where split.txt contains the lines:
5724
5725 split1.mpeg
5726 split2.mpeg
5727 split3.mpeg
5728
5729 crypto
5730 AES-encrypted stream reading protocol.
5731
5732 The accepted options are:
5733
5734 key Set the AES decryption key binary block from given hexadecimal
5735 representation.
5736
5737 iv Set the AES decryption initialization vector binary block from
5738 given hexadecimal representation.
5739
5740 Accepted URL formats:
5741
5742 crypto:<URL>
5743 crypto+<URL>
5744
5745 data
5746 Data in-line in the URI. See
5747 <http://en.wikipedia.org/wiki/Data_URI_scheme>.
5748
5749 For example, to convert a GIF file given inline with ffmpeg:
5750
5751 ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
5752
5753 file
5754 File access protocol.
5755
5756 Read from or write to a file.
5757
5758 A file URL can have the form:
5759
5760 file:<filename>
5761
5762 where filename is the path of the file to read.
5763
5764 An URL that does not have a protocol prefix will be assumed to be a
5765 file URL. Depending on the build, an URL that looks like a Windows path
5766 with the drive letter at the beginning will also be assumed to be a
5767 file URL (usually not the case in builds for unix-like systems).
5768
5769 For example to read from a file input.mpeg with ffmpeg use the command:
5770
5771 ffmpeg -i file:input.mpeg output.mpeg
5772
5773 This protocol accepts the following options:
5774
5775 truncate
5776 Truncate existing files on write, if set to 1. A value of 0
5777 prevents truncating. Default value is 1.
5778
5779 blocksize
5780 Set I/O operation maximum block size, in bytes. Default value is
5781 "INT_MAX", which results in not limiting the requested block size.
5782 Setting this value reasonably low improves user termination request
5783 reaction time, which is valuable for files on slow medium.
5784
5785 follow
5786 If set to 1, the protocol will retry reading at the end of the
5787 file, allowing reading files that still are being written. In order
5788 for this to terminate, you either need to use the rw_timeout
5789 option, or use the interrupt callback (for API users).
5790
5791 seekable
5792 Controls if seekability is advertised on the file. 0 means non-
5793 seekable, -1 means auto (seekable for normal files, non-seekable
5794 for named pipes).
5795
5796 Many demuxers handle seekable and non-seekable resources
5797 differently, overriding this might speed up opening certain files
5798 at the cost of losing some features (e.g. accurate seeking).
5799
5800 ftp
5801 FTP (File Transfer Protocol).
5802
5803 Read from or write to remote resources using FTP protocol.
5804
5805 Following syntax is required.
5806
5807 ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
5808
5809 This protocol accepts the following options.
5810
5811 timeout
5812 Set timeout in microseconds of socket I/O operations used by the
5813 underlying low level operation. By default it is set to -1, which
5814 means that the timeout is not specified.
5815
5816 ftp-user
5817 Set a user to be used for authenticating to the FTP server. This is
5818 overridden by the user in the FTP URL.
5819
5820 ftp-password
5821 Set a password to be used for authenticating to the FTP server.
5822 This is overridden by the password in the FTP URL, or by ftp-
5823 anonymous-password if no user is set.
5824
5825 ftp-anonymous-password
5826 Password used when login as anonymous user. Typically an e-mail
5827 address should be used.
5828
5829 ftp-write-seekable
5830 Control seekability of connection during encoding. If set to 1 the
5831 resource is supposed to be seekable, if set to 0 it is assumed not
5832 to be seekable. Default value is 0.
5833
5834 NOTE: Protocol can be used as output, but it is recommended to not do
5835 it, unless special care is taken (tests, customized server
5836 configuration etc.). Different FTP servers behave in different way
5837 during seek operation. ff* tools may produce incomplete content due to
5838 server limitations.
5839
5840 gopher
5841 Gopher protocol.
5842
5843 gophers
5844 Gophers protocol.
5845
5846 The Gopher protocol with TLS encapsulation.
5847
5848 hls
5849 Read Apple HTTP Live Streaming compliant segmented stream as a uniform
5850 one. The M3U8 playlists describing the segments can be remote HTTP
5851 resources or local files, accessed using the standard file protocol.
5852 The nested protocol is declared by specifying "+proto" after the hls
5853 URI scheme name, where proto is either "file" or "http".
5854
5855 hls+http://host/path/to/remote/resource.m3u8
5856 hls+file://path/to/local/resource.m3u8
5857
5858 Using this protocol is discouraged - the hls demuxer should work just
5859 as well (if not, please report the issues) and is more complete. To
5860 use the hls demuxer instead, simply use the direct URLs to the m3u8
5861 files.
5862
5863 http
5864 HTTP (Hyper Text Transfer Protocol).
5865
5866 This protocol accepts the following options:
5867
5868 seekable
5869 Control seekability of connection. If set to 1 the resource is
5870 supposed to be seekable, if set to 0 it is assumed not to be
5871 seekable, if set to -1 it will try to autodetect if it is seekable.
5872 Default value is -1.
5873
5874 chunked_post
5875 If set to 1 use chunked Transfer-Encoding for posts, default is 1.
5876
5877 content_type
5878 Set a specific content type for the POST messages or for listen
5879 mode.
5880
5881 http_proxy
5882 set HTTP proxy to tunnel through e.g. http://example.com:1234
5883
5884 headers
5885 Set custom HTTP headers, can override built in default headers. The
5886 value must be a string encoding the headers.
5887
5888 multiple_requests
5889 Use persistent connections if set to 1, default is 0.
5890
5891 post_data
5892 Set custom HTTP post data.
5893
5894 referer
5895 Set the Referer header. Include 'Referer: URL' header in HTTP
5896 request.
5897
5898 user_agent
5899 Override the User-Agent header. If not specified the protocol will
5900 use a string describing the libavformat build. ("Lavf/<version>")
5901
5902 reconnect_at_eof
5903 If set then eof is treated like an error and causes reconnection,
5904 this is useful for live / endless streams.
5905
5906 reconnect_streamed
5907 If set then even streamed/non seekable streams will be reconnected
5908 on errors.
5909
5910 reconnect_on_network_error
5911 Reconnect automatically in case of TCP/TLS errors during connect.
5912
5913 reconnect_on_http_error
5914 A comma separated list of HTTP status codes to reconnect on. The
5915 list can include specific status codes (e.g. '503') or the strings
5916 '4xx' / '5xx'.
5917
5918 reconnect_delay_max
5919 Sets the maximum delay in seconds after which to give up
5920 reconnecting
5921
5922 mime_type
5923 Export the MIME type.
5924
5925 http_version
5926 Exports the HTTP response version number. Usually "1.0" or "1.1".
5927
5928 icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
5929 the server supports this, the metadata has to be retrieved by the
5930 application by reading the icy_metadata_headers and
5931 icy_metadata_packet options. The default is 1.
5932
5933 icy_metadata_headers
5934 If the server supports ICY metadata, this contains the ICY-specific
5935 HTTP reply headers, separated by newline characters.
5936
5937 icy_metadata_packet
5938 If the server supports ICY metadata, and icy was set to 1, this
5939 contains the last non-empty metadata packet sent by the server. It
5940 should be polled in regular intervals by applications interested in
5941 mid-stream metadata updates.
5942
5943 cookies
5944 Set the cookies to be sent in future requests. The format of each
5945 cookie is the same as the value of a Set-Cookie HTTP response
5946 field. Multiple cookies can be delimited by a newline character.
5947
5948 offset
5949 Set initial byte offset.
5950
5951 end_offset
5952 Try to limit the request to bytes preceding this offset.
5953
5954 method
5955 When used as a client option it sets the HTTP method for the
5956 request.
5957
5958 When used as a server option it sets the HTTP method that is going
5959 to be expected from the client(s). If the expected and the
5960 received HTTP method do not match the client will be given a Bad
5961 Request response. When unset the HTTP method is not checked for
5962 now. This will be replaced by autodetection in the future.
5963
5964 listen
5965 If set to 1 enables experimental HTTP server. This can be used to
5966 send data when used as an output option, or read data from a client
5967 with HTTP POST when used as an input option. If set to 2 enables
5968 experimental multi-client HTTP server. This is not yet implemented
5969 in ffmpeg.c and thus must not be used as a command line option.
5970
5971 # Server side (sending):
5972 ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
5973
5974 # Client side (receiving):
5975 ffmpeg -i http://<server>:<port> -c copy somefile.ogg
5976
5977 # Client can also be done with wget:
5978 wget http://<server>:<port> -O somefile.ogg
5979
5980 # Server side (receiving):
5981 ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
5982
5983 # Client side (sending):
5984 ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
5985
5986 # Client can also be done with wget:
5987 wget --post-file=somefile.ogg http://<server>:<port>
5988
5989 send_expect_100
5990 Send an Expect: 100-continue header for POST. If set to 1 it will
5991 send, if set to 0 it won't, if set to -1 it will try to send if it
5992 is applicable. Default value is -1.
5993
5994 auth_type
5995 Set HTTP authentication type. No option for Digest, since this
5996 method requires getting nonce parameters from the server first and
5997 can't be used straight away like Basic.
5998
5999 none
6000 Choose the HTTP authentication type automatically. This is the
6001 default.
6002
6003 basic
6004 Choose the HTTP basic authentication.
6005
6006 Basic authentication sends a Base64-encoded string that
6007 contains a user name and password for the client. Base64 is not
6008 a form of encryption and should be considered the same as
6009 sending the user name and password in clear text (Base64 is a
6010 reversible encoding). If a resource needs to be protected,
6011 strongly consider using an authentication scheme other than
6012 basic authentication. HTTPS/TLS should be used with basic
6013 authentication. Without these additional security
6014 enhancements, basic authentication should not be used to
6015 protect sensitive or valuable information.
6016
6017 HTTP Cookies
6018
6019 Some HTTP requests will be denied unless cookie values are passed in
6020 with the request. The cookies option allows these cookies to be
6021 specified. At the very least, each cookie must specify a value along
6022 with a path and domain. HTTP requests that match both the domain and
6023 path will automatically include the cookie value in the HTTP Cookie
6024 header field. Multiple cookies can be delimited by a newline.
6025
6026 The required syntax to play a stream specifying a cookie is:
6027
6028 ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
6029
6030 Icecast
6031 Icecast protocol (stream to Icecast servers)
6032
6033 This protocol accepts the following options:
6034
6035 ice_genre
6036 Set the stream genre.
6037
6038 ice_name
6039 Set the stream name.
6040
6041 ice_description
6042 Set the stream description.
6043
6044 ice_url
6045 Set the stream website URL.
6046
6047 ice_public
6048 Set if the stream should be public. The default is 0 (not public).
6049
6050 user_agent
6051 Override the User-Agent header. If not specified a string of the
6052 form "Lavf/<version>" will be used.
6053
6054 password
6055 Set the Icecast mountpoint password.
6056
6057 content_type
6058 Set the stream content type. This must be set if it is different
6059 from audio/mpeg.
6060
6061 legacy_icecast
6062 This enables support for Icecast versions < 2.4.0, that do not
6063 support the HTTP PUT method but the SOURCE method.
6064
6065 tls Establish a TLS (HTTPS) connection to Icecast.
6066
6067 icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
6068
6069 mmst
6070 MMS (Microsoft Media Server) protocol over TCP.
6071
6072 mmsh
6073 MMS (Microsoft Media Server) protocol over HTTP.
6074
6075 The required syntax is:
6076
6077 mmsh://<server>[:<port>][/<app>][/<playpath>]
6078
6079 md5
6080 MD5 output protocol.
6081
6082 Computes the MD5 hash of the data to be written, and on close writes
6083 this to the designated output or stdout if none is specified. It can be
6084 used to test muxers without writing an actual file.
6085
6086 Some examples follow.
6087
6088 # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
6089 ffmpeg -i input.flv -f avi -y md5:output.avi.md5
6090
6091 # Write the MD5 hash of the encoded AVI file to stdout.
6092 ffmpeg -i input.flv -f avi -y md5:
6093
6094 Note that some formats (typically MOV) require the output protocol to
6095 be seekable, so they will fail with the MD5 output protocol.
6096
6097 pipe
6098 UNIX pipe access protocol.
6099
6100 Read and write from UNIX pipes.
6101
6102 The accepted syntax is:
6103
6104 pipe:[<number>]
6105
6106 number is the number corresponding to the file descriptor of the pipe
6107 (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number is not
6108 specified, by default the stdout file descriptor will be used for
6109 writing, stdin for reading.
6110
6111 For example to read from stdin with ffmpeg:
6112
6113 cat test.wav | ffmpeg -i pipe:0
6114 # ...this is the same as...
6115 cat test.wav | ffmpeg -i pipe:
6116
6117 For writing to stdout with ffmpeg:
6118
6119 ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
6120 # ...this is the same as...
6121 ffmpeg -i test.wav -f avi pipe: | cat > test.avi
6122
6123 This protocol accepts the following options:
6124
6125 blocksize
6126 Set I/O operation maximum block size, in bytes. Default value is
6127 "INT_MAX", which results in not limiting the requested block size.
6128 Setting this value reasonably low improves user termination request
6129 reaction time, which is valuable if data transmission is slow.
6130
6131 Note that some formats (typically MOV), require the output protocol to
6132 be seekable, so they will fail with the pipe output protocol.
6133
6134 prompeg
6135 Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
6136
6137 The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
6138 mechanism for MPEG-2 Transport Streams sent over RTP.
6139
6140 This protocol must be used in conjunction with the "rtp_mpegts" muxer
6141 and the "rtp" protocol.
6142
6143 The required syntax is:
6144
6145 -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
6146
6147 The destination UDP ports are "port + 2" for the column FEC stream and
6148 "port + 4" for the row FEC stream.
6149
6150 This protocol accepts the following options:
6151
6152 l=n The number of columns (4-20, LxD <= 100)
6153
6154 d=n The number of rows (4-20, LxD <= 100)
6155
6156 Example usage:
6157
6158 -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
6159
6160 rist
6161 Reliable Internet Streaming Transport protocol
6162
6163 The accepted options are:
6164
6165 rist_profile
6166 Supported values:
6167
6168 simple
6169 main
6170 This one is default.
6171
6172 advanced
6173 buffer_size
6174 Set internal RIST buffer size in milliseconds for retransmission of
6175 data. Default value is 0 which means the librist default (1 sec).
6176 Maximum value is 30 seconds.
6177
6178 pkt_size
6179 Set maximum packet size for sending data. 1316 by default.
6180
6181 log_level
6182 Set loglevel for RIST logging messages. You only need to set this
6183 if you explicitly want to enable debug level messages or packet
6184 loss simulation, otherwise the regular loglevel is respected.
6185
6186 secret
6187 Set override of encryption secret, by default is unset.
6188
6189 encryption
6190 Set encryption type, by default is disabled. Acceptable values are
6191 128 and 256.
6192
6193 rtmp
6194 Real-Time Messaging Protocol.
6195
6196 The Real-Time Messaging Protocol (RTMP) is used for streaming
6197 multimedia content across a TCP/IP network.
6198
6199 The required syntax is:
6200
6201 rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
6202
6203 The accepted parameters are:
6204
6205 username
6206 An optional username (mostly for publishing).
6207
6208 password
6209 An optional password (mostly for publishing).
6210
6211 server
6212 The address of the RTMP server.
6213
6214 port
6215 The number of the TCP port to use (by default is 1935).
6216
6217 app It is the name of the application to access. It usually corresponds
6218 to the path where the application is installed on the RTMP server
6219 (e.g. /ondemand/, /flash/live/, etc.). You can override the value
6220 parsed from the URI through the "rtmp_app" option, too.
6221
6222 playpath
6223 It is the path or name of the resource to play with reference to
6224 the application specified in app, may be prefixed by "mp4:". You
6225 can override the value parsed from the URI through the
6226 "rtmp_playpath" option, too.
6227
6228 listen
6229 Act as a server, listening for an incoming connection.
6230
6231 timeout
6232 Maximum time to wait for the incoming connection. Implies listen.
6233
6234 Additionally, the following parameters can be set via command line
6235 options (or in code via "AVOption"s):
6236
6237 rtmp_app
6238 Name of application to connect on the RTMP server. This option
6239 overrides the parameter specified in the URI.
6240
6241 rtmp_buffer
6242 Set the client buffer time in milliseconds. The default is 3000.
6243
6244 rtmp_conn
6245 Extra arbitrary AMF connection parameters, parsed from a string,
6246 e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Each
6247 value is prefixed by a single character denoting the type, B for
6248 Boolean, N for number, S for string, O for object, or Z for null,
6249 followed by a colon. For Booleans the data must be either 0 or 1
6250 for FALSE or TRUE, respectively. Likewise for Objects the data
6251 must be 0 or 1 to end or begin an object, respectively. Data items
6252 in subobjects may be named, by prefixing the type with 'N' and
6253 specifying the name before the value (i.e. "NB:myFlag:1"). This
6254 option may be used multiple times to construct arbitrary AMF
6255 sequences.
6256
6257 rtmp_flashver
6258 Version of the Flash plugin used to run the SWF player. The default
6259 is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
6260 (compatible; <libavformat version>).)
6261
6262 rtmp_flush_interval
6263 Number of packets flushed in the same request (RTMPT only). The
6264 default is 10.
6265
6266 rtmp_live
6267 Specify that the media is a live stream. No resuming or seeking in
6268 live streams is possible. The default value is "any", which means
6269 the subscriber first tries to play the live stream specified in the
6270 playpath. If a live stream of that name is not found, it plays the
6271 recorded stream. The other possible values are "live" and
6272 "recorded".
6273
6274 rtmp_pageurl
6275 URL of the web page in which the media was embedded. By default no
6276 value will be sent.
6277
6278 rtmp_playpath
6279 Stream identifier to play or to publish. This option overrides the
6280 parameter specified in the URI.
6281
6282 rtmp_subscribe
6283 Name of live stream to subscribe to. By default no value will be
6284 sent. It is only sent if the option is specified or if rtmp_live
6285 is set to live.
6286
6287 rtmp_swfhash
6288 SHA256 hash of the decompressed SWF file (32 bytes).
6289
6290 rtmp_swfsize
6291 Size of the decompressed SWF file, required for SWFVerification.
6292
6293 rtmp_swfurl
6294 URL of the SWF player for the media. By default no value will be
6295 sent.
6296
6297 rtmp_swfverify
6298 URL to player swf file, compute hash/size automatically.
6299
6300 rtmp_tcurl
6301 URL of the target stream. Defaults to proto://host[:port]/app.
6302
6303 tcp_nodelay=1|0
6304 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
6305
6306 Remark: Writing to the socket is currently not optimized to
6307 minimize system calls and reduces the efficiency / effect of
6308 TCP_NODELAY.
6309
6310 For example to read with ffplay a multimedia resource named "sample"
6311 from the application "vod" from an RTMP server "myserver":
6312
6313 ffplay rtmp://myserver/vod/sample
6314
6315 To publish to a password protected server, passing the playpath and app
6316 names separately:
6317
6318 ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
6319
6320 rtmpe
6321 Encrypted Real-Time Messaging Protocol.
6322
6323 The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
6324 streaming multimedia content within standard cryptographic primitives,
6325 consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
6326 pair of RC4 keys.
6327
6328 rtmps
6329 Real-Time Messaging Protocol over a secure SSL connection.
6330
6331 The Real-Time Messaging Protocol (RTMPS) is used for streaming
6332 multimedia content across an encrypted connection.
6333
6334 rtmpt
6335 Real-Time Messaging Protocol tunneled through HTTP.
6336
6337 The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
6338 for streaming multimedia content within HTTP requests to traverse
6339 firewalls.
6340
6341 rtmpte
6342 Encrypted Real-Time Messaging Protocol tunneled through HTTP.
6343
6344 The Encrypted Real-Time Messaging Protocol tunneled through HTTP
6345 (RTMPTE) is used for streaming multimedia content within HTTP requests
6346 to traverse firewalls.
6347
6348 rtmpts
6349 Real-Time Messaging Protocol tunneled through HTTPS.
6350
6351 The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
6352 used for streaming multimedia content within HTTPS requests to traverse
6353 firewalls.
6354
6355 libsmbclient
6356 libsmbclient permits one to manipulate CIFS/SMB network resources.
6357
6358 Following syntax is required.
6359
6360 smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
6361
6362 This protocol accepts the following options.
6363
6364 timeout
6365 Set timeout in milliseconds of socket I/O operations used by the
6366 underlying low level operation. By default it is set to -1, which
6367 means that the timeout is not specified.
6368
6369 truncate
6370 Truncate existing files on write, if set to 1. A value of 0
6371 prevents truncating. Default value is 1.
6372
6373 workgroup
6374 Set the workgroup used for making connections. By default workgroup
6375 is not specified.
6376
6377 For more information see: <http://www.samba.org/>.
6378
6379 libssh
6380 Secure File Transfer Protocol via libssh
6381
6382 Read from or write to remote resources using SFTP protocol.
6383
6384 Following syntax is required.
6385
6386 sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
6387
6388 This protocol accepts the following options.
6389
6390 timeout
6391 Set timeout of socket I/O operations used by the underlying low
6392 level operation. By default it is set to -1, which means that the
6393 timeout is not specified.
6394
6395 truncate
6396 Truncate existing files on write, if set to 1. A value of 0
6397 prevents truncating. Default value is 1.
6398
6399 private_key
6400 Specify the path of the file containing private key to use during
6401 authorization. By default libssh searches for keys in the ~/.ssh/
6402 directory.
6403
6404 Example: Play a file stored on remote server.
6405
6406 ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
6407
6408 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
6409 Real-Time Messaging Protocol and its variants supported through
6410 librtmp.
6411
6412 Requires the presence of the librtmp headers and library during
6413 configuration. You need to explicitly configure the build with
6414 "--enable-librtmp". If enabled this will replace the native RTMP
6415 protocol.
6416
6417 This protocol provides most client functions and a few server functions
6418 needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
6419 (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
6420 encrypted types (RTMPTE, RTMPTS).
6421
6422 The required syntax is:
6423
6424 <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
6425
6426 where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
6427 "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
6428 server, port, app and playpath have the same meaning as specified for
6429 the RTMP native protocol. options contains a list of space-separated
6430 options of the form key=val.
6431
6432 See the librtmp manual page (man 3 librtmp) for more information.
6433
6434 For example, to stream a file in real-time to an RTMP server using
6435 ffmpeg:
6436
6437 ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
6438
6439 To play the same stream using ffplay:
6440
6441 ffplay "rtmp://myserver/live/mystream live=1"
6442
6443 rtp
6444 Real-time Transport Protocol.
6445
6446 The required syntax for an RTP URL is:
6447 rtp://hostname[:port][?option=val...]
6448
6449 port specifies the RTP port to use.
6450
6451 The following URL options are supported:
6452
6453 ttl=n
6454 Set the TTL (Time-To-Live) value (for multicast only).
6455
6456 rtcpport=n
6457 Set the remote RTCP port to n.
6458
6459 localrtpport=n
6460 Set the local RTP port to n.
6461
6462 localrtcpport=n'
6463 Set the local RTCP port to n.
6464
6465 pkt_size=n
6466 Set max packet size (in bytes) to n.
6467
6468 buffer_size=size
6469 Set the maximum UDP socket buffer size in bytes.
6470
6471 connect=0|1
6472 Do a "connect()" on the UDP socket (if set to 1) or not (if set to
6473 0).
6474
6475 sources=ip[,ip]
6476 List allowed source IP addresses.
6477
6478 block=ip[,ip]
6479 List disallowed (blocked) source IP addresses.
6480
6481 write_to_source=0|1
6482 Send packets to the source address of the latest received packet
6483 (if set to 1) or to a default remote address (if set to 0).
6484
6485 localport=n
6486 Set the local RTP port to n.
6487
6488 localaddr=addr
6489 Local IP address of a network interface used for sending packets or
6490 joining multicast groups.
6491
6492 timeout=n
6493 Set timeout (in microseconds) of socket I/O operations to n.
6494
6495 This is a deprecated option. Instead, localrtpport should be used.
6496
6497 Important notes:
6498
6499 1. If rtcpport is not set the RTCP port will be set to the RTP port
6500 value plus 1.
6501
6502 2. If localrtpport (the local RTP port) is not set any available port
6503 will be used for the local RTP and RTCP ports.
6504
6505 3. If localrtcpport (the local RTCP port) is not set it will be set to
6506 the local RTP port value plus 1.
6507
6508 rtsp
6509 Real-Time Streaming Protocol.
6510
6511 RTSP is not technically a protocol handler in libavformat, it is a
6512 demuxer and muxer. The demuxer supports both normal RTSP (with data
6513 transferred over RTP; this is used by e.g. Apple and Microsoft) and
6514 Real-RTSP (with data transferred over RDT).
6515
6516 The muxer can be used to send a stream using RTSP ANNOUNCE to a server
6517 supporting it (currently Darwin Streaming Server and Mischa
6518 Spiegelmock's <https://github.com/revmischa/rtsp-server>).
6519
6520 The required syntax for a RTSP url is:
6521
6522 rtsp://<hostname>[:<port>]/<path>
6523
6524 Options can be set on the ffmpeg/ffplay command line, or set in code
6525 via "AVOption"s or in "avformat_open_input".
6526
6527 The following options are supported.
6528
6529 initial_pause
6530 Do not start playing the stream immediately if set to 1. Default
6531 value is 0.
6532
6533 rtsp_transport
6534 Set RTSP transport protocols.
6535
6536 It accepts the following values:
6537
6538 udp Use UDP as lower transport protocol.
6539
6540 tcp Use TCP (interleaving within the RTSP control channel) as lower
6541 transport protocol.
6542
6543 udp_multicast
6544 Use UDP multicast as lower transport protocol.
6545
6546 http
6547 Use HTTP tunneling as lower transport protocol, which is useful
6548 for passing proxies.
6549
6550 Multiple lower transport protocols may be specified, in that case
6551 they are tried one at a time (if the setup of one fails, the next
6552 one is tried). For the muxer, only the tcp and udp options are
6553 supported.
6554
6555 rtsp_flags
6556 Set RTSP flags.
6557
6558 The following values are accepted:
6559
6560 filter_src
6561 Accept packets only from negotiated peer address and port.
6562
6563 listen
6564 Act as a server, listening for an incoming connection.
6565
6566 prefer_tcp
6567 Try TCP for RTP transport first, if TCP is available as RTSP
6568 RTP transport.
6569
6570 Default value is none.
6571
6572 allowed_media_types
6573 Set media types to accept from the server.
6574
6575 The following flags are accepted:
6576
6577 video
6578 audio
6579 data
6580
6581 By default it accepts all media types.
6582
6583 min_port
6584 Set minimum local UDP port. Default value is 5000.
6585
6586 max_port
6587 Set maximum local UDP port. Default value is 65000.
6588
6589 listen_timeout
6590 Set maximum timeout (in seconds) to establish an initial
6591 connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
6592 Default is -1 which means an infinite timeout when listen mode is
6593 set.
6594
6595 reorder_queue_size
6596 Set number of packets to buffer for handling of reordered packets.
6597
6598 timeout
6599 Set socket TCP I/O timeout in microseconds.
6600
6601 user_agent
6602 Override User-Agent header. If not specified, it defaults to the
6603 libavformat identifier string.
6604
6605 When receiving data over UDP, the demuxer tries to reorder received
6606 packets (since they may arrive out of order, or packets may get lost
6607 totally). This can be disabled by setting the maximum demuxing delay to
6608 zero (via the "max_delay" field of AVFormatContext).
6609
6610 When watching multi-bitrate Real-RTSP streams with ffplay, the streams
6611 to display can be chosen with "-vst" n and "-ast" n for video and audio
6612 respectively, and can be switched on the fly by pressing "v" and "a".
6613
6614 Examples
6615
6616 The following examples all make use of the ffplay and ffmpeg tools.
6617
6618 • Watch a stream over UDP, with a max reordering delay of 0.5
6619 seconds:
6620
6621 ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
6622
6623 • Watch a stream tunneled over HTTP:
6624
6625 ffplay -rtsp_transport http rtsp://server/video.mp4
6626
6627 • Send a stream in realtime to a RTSP server, for others to watch:
6628
6629 ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
6630
6631 • Receive a stream in realtime:
6632
6633 ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
6634
6635 sap
6636 Session Announcement Protocol (RFC 2974). This is not technically a
6637 protocol handler in libavformat, it is a muxer and demuxer. It is used
6638 for signalling of RTP streams, by announcing the SDP for the streams
6639 regularly on a separate port.
6640
6641 Muxer
6642
6643 The syntax for a SAP url given to the muxer is:
6644
6645 sap://<destination>[:<port>][?<options>]
6646
6647 The RTP packets are sent to destination on port port, or to port 5004
6648 if no port is specified. options is a "&"-separated list. The
6649 following options are supported:
6650
6651 announce_addr=address
6652 Specify the destination IP address for sending the announcements
6653 to. If omitted, the announcements are sent to the commonly used
6654 SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
6655 or ff0e::2:7ffe if destination is an IPv6 address.
6656
6657 announce_port=port
6658 Specify the port to send the announcements on, defaults to 9875 if
6659 not specified.
6660
6661 ttl=ttl
6662 Specify the time to live value for the announcements and RTP
6663 packets, defaults to 255.
6664
6665 same_port=0|1
6666 If set to 1, send all RTP streams on the same port pair. If zero
6667 (the default), all streams are sent on unique ports, with each
6668 stream on a port 2 numbers higher than the previous. VLC/Live555
6669 requires this to be set to 1, to be able to receive the stream.
6670 The RTP stack in libavformat for receiving requires all streams to
6671 be sent on unique ports.
6672
6673 Example command lines follow.
6674
6675 To broadcast a stream on the local subnet, for watching in VLC:
6676
6677 ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
6678
6679 Similarly, for watching in ffplay:
6680
6681 ffmpeg -re -i <input> -f sap sap://224.0.0.255
6682
6683 And for watching in ffplay, over IPv6:
6684
6685 ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
6686
6687 Demuxer
6688
6689 The syntax for a SAP url given to the demuxer is:
6690
6691 sap://[<address>][:<port>]
6692
6693 address is the multicast address to listen for announcements on, if
6694 omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
6695 port that is listened on, 9875 if omitted.
6696
6697 The demuxers listens for announcements on the given address and port.
6698 Once an announcement is received, it tries to receive that particular
6699 stream.
6700
6701 Example command lines follow.
6702
6703 To play back the first stream announced on the normal SAP multicast
6704 address:
6705
6706 ffplay sap://
6707
6708 To play back the first stream announced on one the default IPv6 SAP
6709 multicast address:
6710
6711 ffplay sap://[ff0e::2:7ffe]
6712
6713 sctp
6714 Stream Control Transmission Protocol.
6715
6716 The accepted URL syntax is:
6717
6718 sctp://<host>:<port>[?<options>]
6719
6720 The protocol accepts the following options:
6721
6722 listen
6723 If set to any value, listen for an incoming connection. Outgoing
6724 connection is done by default.
6725
6726 max_streams
6727 Set the maximum number of streams. By default no limit is set.
6728
6729 srt
6730 Haivision Secure Reliable Transport Protocol via libsrt.
6731
6732 The supported syntax for a SRT URL is:
6733
6734 srt://<hostname>:<port>[?<options>]
6735
6736 options contains a list of &-separated options of the form key=val.
6737
6738 or
6739
6740 <options> srt://<hostname>:<port>
6741
6742 options contains a list of '-key val' options.
6743
6744 This protocol accepts the following options.
6745
6746 connect_timeout=milliseconds
6747 Connection timeout; SRT cannot connect for RTT > 1500 msec (2
6748 handshake exchanges) with the default connect timeout of 3 seconds.
6749 This option applies to the caller and rendezvous connection modes.
6750 The connect timeout is 10 times the value set for the rendezvous
6751 mode (which can be used as a workaround for this connection problem
6752 with earlier versions).
6753
6754 ffs=bytes
6755 Flight Flag Size (Window Size), in bytes. FFS is actually an
6756 internal parameter and you should set it to not less than
6757 recv_buffer_size and mss. The default value is relatively large,
6758 therefore unless you set a very large receiver buffer, you do not
6759 need to change this option. Default value is 25600.
6760
6761 inputbw=bytes/seconds
6762 Sender nominal input rate, in bytes per seconds. Used along with
6763 oheadbw, when maxbw is set to relative (0), to calculate maximum
6764 sending rate when recovery packets are sent along with the main
6765 media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
6766 while maxbw is set to relative (0), the actual input rate is
6767 evaluated inside the library. Default value is 0.
6768
6769 iptos=tos
6770 IP Type of Service. Applies to sender only. Default value is 0xB8.
6771
6772 ipttl=ttl
6773 IP Time To Live. Applies to sender only. Default value is 64.
6774
6775 latency=microseconds
6776 Timestamp-based Packet Delivery Delay. Used to absorb bursts of
6777 missed packet retransmissions. This flag sets both rcvlatency and
6778 peerlatency to the same value. Note that prior to version 1.3.0
6779 this is the only flag to set the latency, however this is
6780 effectively equivalent to setting peerlatency, when side is sender
6781 and rcvlatency when side is receiver, and the bidirectional stream
6782 sending is not supported.
6783
6784 listen_timeout=microseconds
6785 Set socket listen timeout.
6786
6787 maxbw=bytes/seconds
6788 Maximum sending bandwidth, in bytes per seconds. -1 infinite
6789 (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
6790 absolute limit value Default value is 0 (relative)
6791
6792 mode=caller|listener|rendezvous
6793 Connection mode. caller opens client connection. listener starts
6794 server to listen for incoming connections. rendezvous use Rendez-
6795 Vous connection mode. Default value is caller.
6796
6797 mss=bytes
6798 Maximum Segment Size, in bytes. Used for buffer allocation and rate
6799 calculation using a packet counter assuming fully filled packets.
6800 The smallest MSS between the peers is used. This is 1500 by default
6801 in the overall internet. This is the maximum size of the UDP
6802 packet and can be only decreased, unless you have some unusual
6803 dedicated network settings. Default value is 1500.
6804
6805 nakreport=1|0
6806 If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
6807 periodically until a lost packet is retransmitted or intentionally
6808 dropped. Default value is 1.
6809
6810 oheadbw=percents
6811 Recovery bandwidth overhead above input rate, in percents. See
6812 inputbw. Default value is 25%.
6813
6814 passphrase=string
6815 HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
6816 79 characters. The passphrase is the shared secret between the
6817 sender and the receiver. It is used to generate the Key Encrypting
6818 Key using PBKDF2 (Password-Based Key Derivation Function). It is
6819 used only if pbkeylen is non-zero. It is used on the receiver only
6820 if the received data is encrypted. The configured passphrase
6821 cannot be recovered (write-only).
6822
6823 enforced_encryption=1|0
6824 If true, both connection parties must have the same password set
6825 (including empty, that is, with no encryption). If the password
6826 doesn't match or only one side is unencrypted, the connection is
6827 rejected. Default is true.
6828
6829 kmrefreshrate=packets
6830 The number of packets to be transmitted after which the encryption
6831 key is switched to a new key. Default is -1. -1 means auto
6832 (0x1000000 in srt library). The range for this option is integers
6833 in the 0 - "INT_MAX".
6834
6835 kmpreannounce=packets
6836 The interval between when a new encryption key is sent and when
6837 switchover occurs. This value also applies to the subsequent
6838 interval between when switchover occurs and when the old encryption
6839 key is decommissioned. Default is -1. -1 means auto (0x1000 in srt
6840 library). The range for this option is integers in the 0 -
6841 "INT_MAX".
6842
6843 snddropdelay=microseconds
6844 The sender's extra delay before dropping packets. This delay is
6845 added to the default drop delay time interval value.
6846
6847 Special value -1: Do not drop packets on the sender at all.
6848
6849 payload_size=bytes
6850 Sets the maximum declared size of a packet transferred during the
6851 single call to the sending function in Live mode. Use 0 if this
6852 value isn't used (which is default in file mode). Default is -1
6853 (automatic), which typically means MPEG-TS; if you are going to use
6854 SRT to send any different kind of payload, such as, for example,
6855 wrapping a live stream in very small frames, then you can use a
6856 bigger maximum frame size, though not greater than 1456 bytes.
6857
6858 pkt_size=bytes
6859 Alias for payload_size.
6860
6861 peerlatency=microseconds
6862 The latency value (as described in rcvlatency) that is set by the
6863 sender side as a minimum value for the receiver.
6864
6865 pbkeylen=bytes
6866 Sender encryption key length, in bytes. Only can be set to 0, 16,
6867 24 and 32. Enable sender encryption if not 0. Not required on
6868 receiver (set to 0), key size obtained from sender in HaiCrypt
6869 handshake. Default value is 0.
6870
6871 rcvlatency=microseconds
6872 The time that should elapse since the moment when the packet was
6873 sent and the moment when it's delivered to the receiver application
6874 in the receiving function. This time should be a buffer time large
6875 enough to cover the time spent for sending, unexpectedly extended
6876 RTT time, and the time needed to retransmit the lost UDP packet.
6877 The effective latency value will be the maximum of this options'
6878 value and the value of peerlatency set by the peer side. Before
6879 version 1.3.0 this option is only available as latency.
6880
6881 recv_buffer_size=bytes
6882 Set UDP receive buffer size, expressed in bytes.
6883
6884 send_buffer_size=bytes
6885 Set UDP send buffer size, expressed in bytes.
6886
6887 timeout=microseconds
6888 Set raise error timeouts for read, write and connect operations.
6889 Note that the SRT library has internal timeouts which can be
6890 controlled separately, the value set here is only a cap on those.
6891
6892 tlpktdrop=1|0
6893 Too-late Packet Drop. When enabled on receiver, it skips missing
6894 packets that have not been delivered in time and delivers the
6895 following packets to the application when their time-to-play has
6896 come. It also sends a fake ACK to the sender. When enabled on
6897 sender and enabled on the receiving peer, the sender drops the
6898 older packets that have no chance of being delivered in time. It
6899 was automatically enabled in the sender if the receiver supports
6900 it.
6901
6902 sndbuf=bytes
6903 Set send buffer size, expressed in bytes.
6904
6905 rcvbuf=bytes
6906 Set receive buffer size, expressed in bytes.
6907
6908 Receive buffer must not be greater than ffs.
6909
6910 lossmaxttl=packets
6911 The value up to which the Reorder Tolerance may grow. When Reorder
6912 Tolerance is > 0, then packet loss report is delayed until that
6913 number of packets come in. Reorder Tolerance increases every time a
6914 "belated" packet has come, but it wasn't due to retransmission
6915 (that is, when UDP packets tend to come out of order), with the
6916 difference between the latest sequence and this packet's sequence,
6917 and not more than the value of this option. By default it's 0,
6918 which means that this mechanism is turned off, and the loss report
6919 is always sent immediately upon experiencing a "gap" in sequences.
6920
6921 minversion
6922 The minimum SRT version that is required from the peer. A
6923 connection to a peer that does not satisfy the minimum version
6924 requirement will be rejected.
6925
6926 The version format in hex is 0xXXYYZZ for x.y.z in human readable
6927 form.
6928
6929 streamid=string
6930 A string limited to 512 characters that can be set on the socket
6931 prior to connecting. This stream ID will be able to be retrieved by
6932 the listener side from the socket that is returned from srt_accept
6933 and was connected by a socket with that set stream ID. SRT does not
6934 enforce any special interpretation of the contents of this string.
6935 This option doesnXt make sense in Rendezvous connection; the result
6936 might be that simply one side will override the value from the
6937 other side and itXs the matter of luck which one would win
6938
6939 srt_streamid=string
6940 Alias for streamid to avoid conflict with ffmpeg command line
6941 option.
6942
6943 smoother=live|file
6944 The type of Smoother used for the transmission for that socket,
6945 which is responsible for the transmission and congestion control.
6946 The Smoother type must be exactly the same on both connecting
6947 parties, otherwise the connection is rejected.
6948
6949 messageapi=1|0
6950 When set, this socket uses the Message API, otherwise it uses
6951 Buffer API. Note that in live mode (see transtype) thereXs only
6952 message API available. In File mode you can chose to use one of two
6953 modes:
6954
6955 Stream API (default, when this option is false). In this mode you
6956 may send as many data as you wish with one sending instruction, or
6957 even use dedicated functions that read directly from a file. The
6958 internal facility will take care of any speed and congestion
6959 control. When receiving, you can also receive as many data as
6960 desired, the data not extracted will be waiting for the next call.
6961 There is no boundary between data portions in the Stream mode.
6962
6963 Message API. In this mode your single sending instruction passes
6964 exactly one piece of data that has boundaries (a message). Contrary
6965 to Live mode, this message may span across multiple UDP packets and
6966 the only size limitation is that it shall fit as a whole in the
6967 sending buffer. The receiver shall use as large buffer as necessary
6968 to receive the message, otherwise the message will not be given up.
6969 When the message is not complete (not all packets received or there
6970 was a packet loss) it will not be given up.
6971
6972 transtype=live|file
6973 Sets the transmission type for the socket, in particular, setting
6974 this option sets multiple other parameters to their default values
6975 as required for a particular transmission type.
6976
6977 live: Set options as for live transmission. In this mode, you
6978 should send by one sending instruction only so many data that fit
6979 in one UDP packet, and limited to the value defined first in
6980 payload_size (1316 is default in this mode). There is no speed
6981 control in this mode, only the bandwidth control, if configured, in
6982 order to not exceed the bandwidth with the overhead transmission
6983 (retransmitted and control packets).
6984
6985 file: Set options as for non-live transmission. See messageapi for
6986 further explanations
6987
6988 linger=seconds
6989 The number of seconds that the socket waits for unsent data when
6990 closing. Default is -1. -1 means auto (off with 0 seconds in live
6991 mode, on with 180 seconds in file mode). The range for this option
6992 is integers in the 0 - "INT_MAX".
6993
6994 tsbpd=1|0
6995 When true, use Timestamp-based Packet Delivery mode. The default
6996 behavior depends on the transmission type: enabled in live mode,
6997 disabled in file mode.
6998
6999 For more information see: <https://github.com/Haivision/srt>.
7000
7001 srtp
7002 Secure Real-time Transport Protocol.
7003
7004 The accepted options are:
7005
7006 srtp_in_suite
7007 srtp_out_suite
7008 Select input and output encoding suites.
7009
7010 Supported values:
7011
7012 AES_CM_128_HMAC_SHA1_80
7013 SRTP_AES128_CM_HMAC_SHA1_80
7014 AES_CM_128_HMAC_SHA1_32
7015 SRTP_AES128_CM_HMAC_SHA1_32
7016 srtp_in_params
7017 srtp_out_params
7018 Set input and output encoding parameters, which are expressed by a
7019 base64-encoded representation of a binary block. The first 16 bytes
7020 of this binary block are used as master key, the following 14 bytes
7021 are used as master salt.
7022
7023 subfile
7024 Virtually extract a segment of a file or another stream. The
7025 underlying stream must be seekable.
7026
7027 Accepted options:
7028
7029 start
7030 Start offset of the extracted segment, in bytes.
7031
7032 end End offset of the extracted segment, in bytes. If set to 0,
7033 extract till end of file.
7034
7035 Examples:
7036
7037 Extract a chapter from a DVD VOB file (start and end sectors obtained
7038 externally and multiplied by 2048):
7039
7040 subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
7041
7042 Play an AVI file directly from a TAR archive:
7043
7044 subfile,,start,183241728,end,366490624,,:archive.tar
7045
7046 Play a MPEG-TS file from start offset till end:
7047
7048 subfile,,start,32815239,end,0,,:video.ts
7049
7050 tee
7051 Writes the output to multiple protocols. The individual outputs are
7052 separated by |
7053
7054 tee:file://path/to/local/this.avi|file://path/to/local/that.avi
7055
7056 tcp
7057 Transmission Control Protocol.
7058
7059 The required syntax for a TCP url is:
7060
7061 tcp://<hostname>:<port>[?<options>]
7062
7063 options contains a list of &-separated options of the form key=val.
7064
7065 The list of supported options follows.
7066
7067 listen=2|1|0
7068 Listen for an incoming connection. 0 disables listen, 1 enables
7069 listen in single client mode, 2 enables listen in multi-client
7070 mode. Default value is 0.
7071
7072 timeout=microseconds
7073 Set raise error timeout, expressed in microseconds.
7074
7075 This option is only relevant in read mode: if no data arrived in
7076 more than this time interval, raise error.
7077
7078 listen_timeout=milliseconds
7079 Set listen timeout, expressed in milliseconds.
7080
7081 recv_buffer_size=bytes
7082 Set receive buffer size, expressed bytes.
7083
7084 send_buffer_size=bytes
7085 Set send buffer size, expressed bytes.
7086
7087 tcp_nodelay=1|0
7088 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
7089
7090 Remark: Writing to the socket is currently not optimized to
7091 minimize system calls and reduces the efficiency / effect of
7092 TCP_NODELAY.
7093
7094 tcp_mss=bytes
7095 Set maximum segment size for outgoing TCP packets, expressed in
7096 bytes.
7097
7098 The following example shows how to setup a listening TCP connection
7099 with ffmpeg, which is then accessed with ffplay:
7100
7101 ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
7102 ffplay tcp://<hostname>:<port>
7103
7104 tls
7105 Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
7106
7107 The required syntax for a TLS/SSL url is:
7108
7109 tls://<hostname>:<port>[?<options>]
7110
7111 The following parameters can be set via command line options (or in
7112 code via "AVOption"s):
7113
7114 ca_file, cafile=filename
7115 A file containing certificate authority (CA) root certificates to
7116 treat as trusted. If the linked TLS library contains a default this
7117 might not need to be specified for verification to work, but not
7118 all libraries and setups have defaults built in. The file must be
7119 in OpenSSL PEM format.
7120
7121 tls_verify=1|0
7122 If enabled, try to verify the peer that we are communicating with.
7123 Note, if using OpenSSL, this currently only makes sure that the
7124 peer certificate is signed by one of the root certificates in the
7125 CA database, but it does not validate that the certificate actually
7126 matches the host name we are trying to connect to. (With other
7127 backends, the host name is validated as well.)
7128
7129 This is disabled by default since it requires a CA database to be
7130 provided by the caller in many cases.
7131
7132 cert_file, cert=filename
7133 A file containing a certificate to use in the handshake with the
7134 peer. (When operating as server, in listen mode, this is more
7135 often required by the peer, while client certificates only are
7136 mandated in certain setups.)
7137
7138 key_file, key=filename
7139 A file containing the private key for the certificate.
7140
7141 listen=1|0
7142 If enabled, listen for connections on the provided port, and assume
7143 the server role in the handshake instead of the client role.
7144
7145 http_proxy
7146 The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
7147 The proxy must support the CONNECT method.
7148
7149 Example command lines:
7150
7151 To create a TLS/SSL server that serves an input stream.
7152
7153 ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
7154
7155 To play back a stream from the TLS/SSL server using ffplay:
7156
7157 ffplay tls://<hostname>:<port>
7158
7159 udp
7160 User Datagram Protocol.
7161
7162 The required syntax for an UDP URL is:
7163
7164 udp://<hostname>:<port>[?<options>]
7165
7166 options contains a list of &-separated options of the form key=val.
7167
7168 In case threading is enabled on the system, a circular buffer is used
7169 to store the incoming data, which allows one to reduce loss of data due
7170 to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
7171 options are related to this buffer.
7172
7173 The list of supported options follows.
7174
7175 buffer_size=size
7176 Set the UDP maximum socket buffer size in bytes. This is used to
7177 set either the receive or send buffer size, depending on what the
7178 socket is used for. Default is 32 KB for output, 384 KB for input.
7179 See also fifo_size.
7180
7181 bitrate=bitrate
7182 If set to nonzero, the output will have the specified constant
7183 bitrate if the input has enough packets to sustain it.
7184
7185 burst_bits=bits
7186 When using bitrate this specifies the maximum number of bits in
7187 packet bursts.
7188
7189 localport=port
7190 Override the local UDP port to bind with.
7191
7192 localaddr=addr
7193 Local IP address of a network interface used for sending packets or
7194 joining multicast groups.
7195
7196 pkt_size=size
7197 Set the size in bytes of UDP packets.
7198
7199 reuse=1|0
7200 Explicitly allow or disallow reusing UDP sockets.
7201
7202 ttl=ttl
7203 Set the time to live value (for multicast only).
7204
7205 connect=1|0
7206 Initialize the UDP socket with "connect()". In this case, the
7207 destination address can't be changed with ff_udp_set_remote_url
7208 later. If the destination address isn't known at the start, this
7209 option can be specified in ff_udp_set_remote_url, too. This allows
7210 finding out the source address for the packets with getsockname,
7211 and makes writes return with AVERROR(ECONNREFUSED) if "destination
7212 unreachable" is received. For receiving, this gives the benefit of
7213 only receiving packets from the specified peer address/port.
7214
7215 sources=address[,address]
7216 Only receive packets sent from the specified addresses. In case of
7217 multicast, also subscribe to multicast traffic coming from these
7218 addresses only.
7219
7220 block=address[,address]
7221 Ignore packets sent from the specified addresses. In case of
7222 multicast, also exclude the source addresses in the multicast
7223 subscription.
7224
7225 fifo_size=units
7226 Set the UDP receiving circular buffer size, expressed as a number
7227 of packets with size of 188 bytes. If not specified defaults to
7228 7*4096.
7229
7230 overrun_nonfatal=1|0
7231 Survive in case of UDP receiving circular buffer overrun. Default
7232 value is 0.
7233
7234 timeout=microseconds
7235 Set raise error timeout, expressed in microseconds.
7236
7237 This option is only relevant in read mode: if no data arrived in
7238 more than this time interval, raise error.
7239
7240 broadcast=1|0
7241 Explicitly allow or disallow UDP broadcasting.
7242
7243 Note that broadcasting may not work properly on networks having a
7244 broadcast storm protection.
7245
7246 Examples
7247
7248 • Use ffmpeg to stream over UDP to a remote endpoint:
7249
7250 ffmpeg -i <input> -f <format> udp://<hostname>:<port>
7251
7252 • Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
7253 packets, using a large input buffer:
7254
7255 ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
7256
7257 • Use ffmpeg to receive over UDP from a remote endpoint:
7258
7259 ffmpeg -i udp://[<multicast-address>]:<port> ...
7260
7261 unix
7262 Unix local socket
7263
7264 The required syntax for a Unix socket URL is:
7265
7266 unix://<filepath>
7267
7268 The following parameters can be set via command line options (or in
7269 code via "AVOption"s):
7270
7271 timeout
7272 Timeout in ms.
7273
7274 listen
7275 Create the Unix socket in listening mode.
7276
7277 zmq
7278 ZeroMQ asynchronous messaging using the libzmq library.
7279
7280 This library supports unicast streaming to multiple clients without
7281 relying on an external server.
7282
7283 The required syntax for streaming or connecting to a stream is:
7284
7285 zmq:tcp://ip-address:port
7286
7287 Example: Create a localhost stream on port 5555:
7288
7289 ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
7290
7291 Multiple clients may connect to the stream using:
7292
7293 ffplay zmq:tcp://127.0.0.1:5555
7294
7295 Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
7296 pattern. The server side binds to a port and publishes data. Clients
7297 connect to the server (via IP address/port) and subscribe to the
7298 stream. The order in which the server and client start generally does
7299 not matter.
7300
7301 ffmpeg must be compiled with the --enable-libzmq option to support this
7302 protocol.
7303
7304 Options can be set on the ffmpeg/ffplay command line. The following
7305 options are supported:
7306
7307 pkt_size
7308 Forces the maximum packet size for sending/receiving data. The
7309 default value is 131,072 bytes. On the server side, this sets the
7310 maximum size of sent packets via ZeroMQ. On the clients, it sets an
7311 internal buffer size for receiving packets. Note that pkt_size on
7312 the clients should be equal to or greater than pkt_size on the
7313 server. Otherwise the received message may be truncated causing
7314 decoding errors.
7315
7317 The libavdevice library provides the same interface as libavformat.
7318 Namely, an input device is considered like a demuxer, and an output
7319 device like a muxer, and the interface and generic device options are
7320 the same provided by libavformat (see the ffmpeg-formats manual).
7321
7322 In addition each input or output device may support so-called private
7323 options, which are specific for that component.
7324
7325 Options may be set by specifying -option value in the FFmpeg tools, or
7326 by setting the value explicitly in the device "AVFormatContext" options
7327 or using the libavutil/opt.h API for programmatic use.
7328
7330 Input devices are configured elements in FFmpeg which enable accessing
7331 the data coming from a multimedia device attached to your system.
7332
7333 When you configure your FFmpeg build, all the supported input devices
7334 are enabled by default. You can list all available ones using the
7335 configure option "--list-indevs".
7336
7337 You can disable all the input devices using the configure option
7338 "--disable-indevs", and selectively enable an input device using the
7339 option "--enable-indev=INDEV", or you can disable a particular input
7340 device using the option "--disable-indev=INDEV".
7341
7342 The option "-devices" of the ff* tools will display the list of
7343 supported input devices.
7344
7345 A description of the currently available input devices follows.
7346
7347 alsa
7348 ALSA (Advanced Linux Sound Architecture) input device.
7349
7350 To enable this input device during configuration you need libasound
7351 installed on your system.
7352
7353 This device allows capturing from an ALSA device. The name of the
7354 device to capture has to be an ALSA card identifier.
7355
7356 An ALSA identifier has the syntax:
7357
7358 hw:<CARD>[,<DEV>[,<SUBDEV>]]
7359
7360 where the DEV and SUBDEV components are optional.
7361
7362 The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
7363 identifier, device number and subdevice number (-1 means any).
7364
7365 To see the list of cards currently recognized by your system check the
7366 files /proc/asound/cards and /proc/asound/devices.
7367
7368 For example to capture with ffmpeg from an ALSA device with card id 0,
7369 you may run the command:
7370
7371 ffmpeg -f alsa -i hw:0 alsaout.wav
7372
7373 For more information see:
7374 <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
7375
7376 Options
7377
7378 sample_rate
7379 Set the sample rate in Hz. Default is 48000.
7380
7381 channels
7382 Set the number of channels. Default is 2.
7383
7384 android_camera
7385 Android camera input device.
7386
7387 This input devices uses the Android Camera2 NDK API which is available
7388 on devices with API level 24+. The availability of android_camera is
7389 autodetected during configuration.
7390
7391 This device allows capturing from all cameras on an Android device,
7392 which are integrated into the Camera2 NDK API.
7393
7394 The available cameras are enumerated internally and can be selected
7395 with the camera_index parameter. The input file string is discarded.
7396
7397 Generally the back facing camera has index 0 while the front facing
7398 camera has index 1.
7399
7400 Options
7401
7402 video_size
7403 Set the video size given as a string such as 640x480 or hd720.
7404 Falls back to the first available configuration reported by Android
7405 if requested video size is not available or by default.
7406
7407 framerate
7408 Set the video framerate. Falls back to the first available
7409 configuration reported by Android if requested framerate is not
7410 available or by default (-1).
7411
7412 camera_index
7413 Set the index of the camera to use. Default is 0.
7414
7415 input_queue_size
7416 Set the maximum number of frames to buffer. Default is 5.
7417
7418 avfoundation
7419 AVFoundation input device.
7420
7421 AVFoundation is the currently recommended framework by Apple for
7422 streamgrabbing on OSX >= 10.7 as well as on iOS.
7423
7424 The input filename has to be given in the following syntax:
7425
7426 -i "[[VIDEO]:[AUDIO]]"
7427
7428 The first entry selects the video input while the latter selects the
7429 audio input. The stream has to be specified by the device name or the
7430 device index as shown by the device list. Alternatively, the video
7431 and/or audio input device can be chosen by index using the
7432
7433 B<-video_device_index E<lt>INDEXE<gt>>
7434
7435 and/or
7436
7437 B<-audio_device_index E<lt>INDEXE<gt>>
7438
7439 , overriding any device name or index given in the input filename.
7440
7441 All available devices can be enumerated by using -list_devices true,
7442 listing all device names and corresponding indices.
7443
7444 There are two device name aliases:
7445
7446 "default"
7447 Select the AVFoundation default device of the corresponding type.
7448
7449 "none"
7450 Do not record the corresponding media type. This is equivalent to
7451 specifying an empty device name or index.
7452
7453 Options
7454
7455 AVFoundation supports the following options:
7456
7457 -list_devices <TRUE|FALSE>
7458 If set to true, a list of all available input devices is given
7459 showing all device names and indices.
7460
7461 -video_device_index <INDEX>
7462 Specify the video device by its index. Overrides anything given in
7463 the input filename.
7464
7465 -audio_device_index <INDEX>
7466 Specify the audio device by its index. Overrides anything given in
7467 the input filename.
7468
7469 -pixel_format <FORMAT>
7470 Request the video device to use a specific pixel format. If the
7471 specified format is not supported, a list of available formats is
7472 given and the first one in this list is used instead. Available
7473 pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
7474 rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
7475 bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
7476 yuv422p10, yuv444p10,
7477 yuv420p, nv12, yuyv422, gray"
7478
7479 -framerate
7480 Set the grabbing frame rate. Default is "ntsc", corresponding to a
7481 frame rate of "30000/1001".
7482
7483 -video_size
7484 Set the video frame size.
7485
7486 -capture_cursor
7487 Capture the mouse pointer. Default is 0.
7488
7489 -capture_mouse_clicks
7490 Capture the screen mouse clicks. Default is 0.
7491
7492 -capture_raw_data
7493 Capture the raw device data. Default is 0. Using this option may
7494 result in receiving the underlying data delivered to the
7495 AVFoundation framework. E.g. for muxed devices that sends raw DV
7496 data to the framework (like tape-based camcorders), setting this
7497 option to false results in extracted video frames captured in the
7498 designated pixel format only. Setting this option to true results
7499 in receiving the raw DV stream untouched.
7500
7501 Examples
7502
7503 • Print the list of AVFoundation supported devices and exit:
7504
7505 $ ffmpeg -f avfoundation -list_devices true -i ""
7506
7507 • Record video from video device 0 and audio from audio device 0 into
7508 out.avi:
7509
7510 $ ffmpeg -f avfoundation -i "0:0" out.avi
7511
7512 • Record video from video device 2 and audio from audio device 1 into
7513 out.avi:
7514
7515 $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
7516
7517 • Record video from the system default video device using the pixel
7518 format bgr0 and do not record any audio into out.avi:
7519
7520 $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
7521
7522 • Record raw DV data from a suitable input device and write the
7523 output into out.dv:
7524
7525 $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
7526
7527 bktr
7528 BSD video input device.
7529
7530 Options
7531
7532 framerate
7533 Set the frame rate.
7534
7535 video_size
7536 Set the video frame size. Default is "vga".
7537
7538 standard
7539 Available values are:
7540
7541 pal
7542 ntsc
7543 secam
7544 paln
7545 palm
7546 ntscj
7547
7548 decklink
7549 The decklink input device provides capture capabilities for Blackmagic
7550 DeckLink devices.
7551
7552 To enable this input device, you need the Blackmagic DeckLink SDK and
7553 you need to configure with the appropriate "--extra-cflags" and
7554 "--extra-ldflags". On Windows, you need to run the IDL files through
7555 widl.
7556
7557 DeckLink is very picky about the formats it supports. Pixel format of
7558 the input can be set with raw_format. Framerate and video size must be
7559 determined for your device with -list_formats 1. Audio sample rate is
7560 always 48 kHz and the number of channels can be 2, 8 or 16. Note that
7561 all audio channels are bundled in one single audio track.
7562
7563 Options
7564
7565 list_devices
7566 If set to true, print a list of devices and exit. Defaults to
7567 false. This option is deprecated, please use the "-sources" option
7568 of ffmpeg to list the available input devices.
7569
7570 list_formats
7571 If set to true, print a list of supported formats and exit.
7572 Defaults to false.
7573
7574 format_code <FourCC>
7575 This sets the input video format to the format given by the FourCC.
7576 To see the supported values of your device(s) use list_formats.
7577 Note that there is a FourCC 'pal ' that can also be used as pal (3
7578 letters). Default behavior is autodetection of the input video
7579 format, if the hardware supports it.
7580
7581 raw_format
7582 Set the pixel format of the captured video. Available values are:
7583
7584 auto
7585 This is the default which means 8-bit YUV 422 or 8-bit ARGB if
7586 format autodetection is used, 8-bit YUV 422 otherwise.
7587
7588 uyvy422
7589 8-bit YUV 422.
7590
7591 yuv422p10
7592 10-bit YUV 422.
7593
7594 argb
7595 8-bit RGB.
7596
7597 bgra
7598 8-bit RGB.
7599
7600 rgb10
7601 10-bit RGB.
7602
7603 teletext_lines
7604 If set to nonzero, an additional teletext stream will be captured
7605 from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
7606 or 1080p) sources are supported. In case of HD sources, OP47
7607 packets are decoded.
7608
7609 This option is a bitmask of the SD PAL VBI lines captured,
7610 specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
7611 in the mask. Selected lines which do not contain teletext
7612 information will be ignored. You can use the special all constant
7613 to select all possible lines, or standard to skip lines 6, 318 and
7614 319, which are not compatible with all receivers.
7615
7616 For SD sources, ffmpeg needs to be compiled with
7617 "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
7618 models you have to capture in 10 bit mode.
7619
7620 channels
7621 Defines number of audio channels to capture. Must be 2, 8 or 16.
7622 Defaults to 2.
7623
7624 duplex_mode
7625 Sets the decklink device duplex/profile mode. Must be unset, half,
7626 full, one_sub_device_full, one_sub_device_half,
7627 two_sub_device_full, four_sub_device_half Defaults to unset.
7628
7629 Note: DeckLink SDK 11.0 have replaced the duplex property by a
7630 profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
7631 profile is shared between any 2 sub-devices that utilize the same
7632 connectors. For the DeckLink 8K Pro, a profile is shared between
7633 all 4 sub-devices. So DeckLink 8K Pro support four profiles.
7634
7635 Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
7636 one_sub_device_full, one_sub_device_half, two_sub_device_full,
7637 four_sub_device_half
7638
7639 Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
7640 full
7641
7642 timecode_format
7643 Timecode type to include in the frame and video stream metadata.
7644 Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
7645 vitc, vitc2, or serial. Defaults to none (not included).
7646
7647 In order to properly support 50/60 fps timecodes, the ordering of
7648 the queried timecode types for rp188any is HFR, VITC1, VITC2 and
7649 LTC for >30 fps content. Note that this is slightly different to
7650 the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
7651 VITC2.
7652
7653 video_input
7654 Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
7655 component, composite or s_video. Defaults to unset.
7656
7657 audio_input
7658 Sets the audio input source. Must be unset, embedded, aes_ebu,
7659 analog, analog_xlr, analog_rca or microphone. Defaults to unset.
7660
7661 video_pts
7662 Sets the video packet timestamp source. Must be video, audio,
7663 reference, wallclock or abs_wallclock. Defaults to video.
7664
7665 audio_pts
7666 Sets the audio packet timestamp source. Must be video, audio,
7667 reference, wallclock or abs_wallclock. Defaults to audio.
7668
7669 draw_bars
7670 If set to true, color bars are drawn in the event of a signal loss.
7671 Defaults to true.
7672
7673 queue_size
7674 Sets maximum input buffer size in bytes. If the buffering reaches
7675 this value, incoming frames will be dropped. Defaults to
7676 1073741824.
7677
7678 audio_depth
7679 Sets the audio sample bit depth. Must be 16 or 32. Defaults to 16.
7680
7681 decklink_copyts
7682 If set to true, timestamps are forwarded as they are without
7683 removing the initial offset. Defaults to false.
7684
7685 timestamp_align
7686 Capture start time alignment in seconds. If set to nonzero, input
7687 frames are dropped till the system timestamp aligns with configured
7688 value. Alignment difference of up to one frame duration is
7689 tolerated. This is useful for maintaining input synchronization
7690 across N different hardware devices deployed for 'N-way'
7691 redundancy. The system time of different hardware devices should be
7692 synchronized with protocols such as NTP or PTP, before using this
7693 option. Note that this method is not foolproof. In some border
7694 cases input synchronization may not happen due to thread scheduling
7695 jitters in the OS. Either sync could go wrong by 1 frame or in a
7696 rarer case timestamp_align seconds. Defaults to 0.
7697
7698 wait_for_tc (bool)
7699 Drop frames till a frame with timecode is received. Sometimes
7700 serial timecode isn't received with the first input frame. If that
7701 happens, the stored stream timecode will be inaccurate. If this
7702 option is set to true, input frames are dropped till a frame with
7703 timecode is received. Option timecode_format must be specified.
7704 Defaults to false.
7705
7706 enable_klv(bool)
7707 If set to true, extracts KLV data from VANC and outputs KLV
7708 packets. KLV VANC packets are joined based on MID and PSC fields
7709 and aggregated into one KLV packet. Defaults to false.
7710
7711 Examples
7712
7713 • List input devices:
7714
7715 ffmpeg -sources decklink
7716
7717 • List supported formats:
7718
7719 ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
7720
7721 • Capture video clip at 1080i50:
7722
7723 ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
7724
7725 • Capture video clip at 1080i50 10 bit:
7726
7727 ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7728
7729 • Capture video clip at 1080i50 with 16 audio channels:
7730
7731 ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7732
7733 dshow
7734 Windows DirectShow input device.
7735
7736 DirectShow support is enabled when FFmpeg is built with the mingw-w64
7737 project. Currently only audio and video devices are supported.
7738
7739 Multiple devices may be opened as separate inputs, but they may also be
7740 opened on the same input, which should improve synchronism between
7741 them.
7742
7743 The input name should be in the format:
7744
7745 <TYPE>=<NAME>[:<TYPE>=<NAME>]
7746
7747 where TYPE can be either audio or video, and NAME is the device's name
7748 or alternative name..
7749
7750 Options
7751
7752 If no options are specified, the device's defaults are used. If the
7753 device does not support the requested options, it will fail to open.
7754
7755 video_size
7756 Set the video size in the captured video.
7757
7758 framerate
7759 Set the frame rate in the captured video.
7760
7761 sample_rate
7762 Set the sample rate (in Hz) of the captured audio.
7763
7764 sample_size
7765 Set the sample size (in bits) of the captured audio.
7766
7767 channels
7768 Set the number of channels in the captured audio.
7769
7770 list_devices
7771 If set to true, print a list of devices and exit.
7772
7773 list_options
7774 If set to true, print a list of selected device's options and exit.
7775
7776 video_device_number
7777 Set video device number for devices with the same name (starts at
7778 0, defaults to 0).
7779
7780 audio_device_number
7781 Set audio device number for devices with the same name (starts at
7782 0, defaults to 0).
7783
7784 pixel_format
7785 Select pixel format to be used by DirectShow. This may only be set
7786 when the video codec is not set or set to rawvideo.
7787
7788 audio_buffer_size
7789 Set audio device buffer size in milliseconds (which can directly
7790 impact latency, depending on the device). Defaults to using the
7791 audio device's default buffer size (typically some multiple of
7792 500ms). Setting this value too low can degrade performance. See
7793 also
7794 <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
7795
7796 video_pin_name
7797 Select video capture pin to use by name or alternative name.
7798
7799 audio_pin_name
7800 Select audio capture pin to use by name or alternative name.
7801
7802 crossbar_video_input_pin_number
7803 Select video input pin number for crossbar device. This will be
7804 routed to the crossbar device's Video Decoder output pin. Note
7805 that changing this value can affect future invocations (sets a new
7806 default) until system reboot occurs.
7807
7808 crossbar_audio_input_pin_number
7809 Select audio input pin number for crossbar device. This will be
7810 routed to the crossbar device's Audio Decoder output pin. Note
7811 that changing this value can affect future invocations (sets a new
7812 default) until system reboot occurs.
7813
7814 show_video_device_dialog
7815 If set to true, before capture starts, popup a display dialog to
7816 the end user, allowing them to change video filter properties and
7817 configurations manually. Note that for crossbar devices, adjusting
7818 values in this dialog may be needed at times to toggle between PAL
7819 (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
7820 etc. Changing these values can enable different scan rates/frame
7821 rates and avoiding green bars at the bottom, flickering scan lines,
7822 etc. Note that with some devices, changing these properties can
7823 also affect future invocations (sets new defaults) until system
7824 reboot occurs.
7825
7826 show_audio_device_dialog
7827 If set to true, before capture starts, popup a display dialog to
7828 the end user, allowing them to change audio filter properties and
7829 configurations manually.
7830
7831 show_video_crossbar_connection_dialog
7832 If set to true, before capture starts, popup a display dialog to
7833 the end user, allowing them to manually modify crossbar pin
7834 routings, when it opens a video device.
7835
7836 show_audio_crossbar_connection_dialog
7837 If set to true, before capture starts, popup a display dialog to
7838 the end user, allowing them to manually modify crossbar pin
7839 routings, when it opens an audio device.
7840
7841 show_analog_tv_tuner_dialog
7842 If set to true, before capture starts, popup a display dialog to
7843 the end user, allowing them to manually modify TV channels and
7844 frequencies.
7845
7846 show_analog_tv_tuner_audio_dialog
7847 If set to true, before capture starts, popup a display dialog to
7848 the end user, allowing them to manually modify TV audio (like mono
7849 vs. stereo, Language A,B or C).
7850
7851 audio_device_load
7852 Load an audio capture filter device from file instead of searching
7853 it by name. It may load additional parameters too, if the filter
7854 supports the serialization of its properties to. To use this an
7855 audio capture source has to be specified, but it can be anything
7856 even fake one.
7857
7858 audio_device_save
7859 Save the currently used audio capture filter device and its
7860 parameters (if the filter supports it) to a file. If a file with
7861 the same name exists it will be overwritten.
7862
7863 video_device_load
7864 Load a video capture filter device from file instead of searching
7865 it by name. It may load additional parameters too, if the filter
7866 supports the serialization of its properties to. To use this a
7867 video capture source has to be specified, but it can be anything
7868 even fake one.
7869
7870 video_device_save
7871 Save the currently used video capture filter device and its
7872 parameters (if the filter supports it) to a file. If a file with
7873 the same name exists it will be overwritten.
7874
7875 use_video_device_timestamps
7876 If set to false, the timestamp for video frames will be derived
7877 from the wallclock instead of the timestamp provided by the capture
7878 device. This allows working around devices that provide unreliable
7879 timestamps.
7880
7881 Examples
7882
7883 • Print the list of DirectShow supported devices and exit:
7884
7885 $ ffmpeg -list_devices true -f dshow -i dummy
7886
7887 • Open video device Camera:
7888
7889 $ ffmpeg -f dshow -i video="Camera"
7890
7891 • Open second video device with name Camera:
7892
7893 $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
7894
7895 • Open video device Camera and audio device Microphone:
7896
7897 $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
7898
7899 • Print the list of supported options in selected device and exit:
7900
7901 $ ffmpeg -list_options true -f dshow -i video="Camera"
7902
7903 • Specify pin names to capture by name or alternative name, specify
7904 alternative device name:
7905
7906 $ 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"
7907
7908 • Configure a crossbar device, specifying crossbar pins, allow user
7909 to adjust video capture properties at startup:
7910
7911 $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
7912 -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
7913
7914 fbdev
7915 Linux framebuffer input device.
7916
7917 The Linux framebuffer is a graphic hardware-independent abstraction
7918 layer to show graphics on a computer monitor, typically on the console.
7919 It is accessed through a file device node, usually /dev/fb0.
7920
7921 For more detailed information read the file
7922 Documentation/fb/framebuffer.txt included in the Linux source tree.
7923
7924 See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
7925
7926 To record from the framebuffer device /dev/fb0 with ffmpeg:
7927
7928 ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
7929
7930 You can take a single screenshot image with the command:
7931
7932 ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
7933
7934 Options
7935
7936 framerate
7937 Set the frame rate. Default is 25.
7938
7939 gdigrab
7940 Win32 GDI-based screen capture device.
7941
7942 This device allows you to capture a region of the display on Windows.
7943
7944 There are two options for the input filename:
7945
7946 desktop
7947
7948 or
7949
7950 title=<window_title>
7951
7952 The first option will capture the entire desktop, or a fixed region of
7953 the desktop. The second option will instead capture the contents of a
7954 single window, regardless of its position on the screen.
7955
7956 For example, to grab the entire desktop using ffmpeg:
7957
7958 ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
7959
7960 Grab a 640x480 region at position "10,20":
7961
7962 ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
7963
7964 Grab the contents of the window named "Calculator"
7965
7966 ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
7967
7968 Options
7969
7970 draw_mouse
7971 Specify whether to draw the mouse pointer. Use the value 0 to not
7972 draw the pointer. Default value is 1.
7973
7974 framerate
7975 Set the grabbing frame rate. Default value is "ntsc", corresponding
7976 to a frame rate of "30000/1001".
7977
7978 show_region
7979 Show grabbed region on screen.
7980
7981 If show_region is specified with 1, then the grabbing region will
7982 be indicated on screen. With this option, it is easy to know what
7983 is being grabbed if only a portion of the screen is grabbed.
7984
7985 Note that show_region is incompatible with grabbing the contents of
7986 a single window.
7987
7988 For example:
7989
7990 ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
7991
7992 video_size
7993 Set the video frame size. The default is to capture the full screen
7994 if desktop is selected, or the full window size if
7995 title=window_title is selected.
7996
7997 offset_x
7998 When capturing a region with video_size, set the distance from the
7999 left edge of the screen or desktop.
8000
8001 Note that the offset calculation is from the top left corner of the
8002 primary monitor on Windows. If you have a monitor positioned to the
8003 left of your primary monitor, you will need to use a negative
8004 offset_x value to move the region to that monitor.
8005
8006 offset_y
8007 When capturing a region with video_size, set the distance from the
8008 top edge of the screen or desktop.
8009
8010 Note that the offset calculation is from the top left corner of the
8011 primary monitor on Windows. If you have a monitor positioned above
8012 your primary monitor, you will need to use a negative offset_y
8013 value to move the region to that monitor.
8014
8015 iec61883
8016 FireWire DV/HDV input device using libiec61883.
8017
8018 To enable this input device, you need libiec61883, libraw1394 and
8019 libavc1394 installed on your system. Use the configure option
8020 "--enable-libiec61883" to compile with the device enabled.
8021
8022 The iec61883 capture device supports capturing from a video device
8023 connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
8024 FireWire stack (juju). This is the default DV/HDV input method in Linux
8025 Kernel 2.6.37 and later, since the old FireWire stack was removed.
8026
8027 Specify the FireWire port to be used as input file, or "auto" to choose
8028 the first port connected.
8029
8030 Options
8031
8032 dvtype
8033 Override autodetection of DV/HDV. This should only be used if auto
8034 detection does not work, or if usage of a different device type
8035 should be prohibited. Treating a DV device as HDV (or vice versa)
8036 will not work and result in undefined behavior. The values auto,
8037 dv and hdv are supported.
8038
8039 dvbuffer
8040 Set maximum size of buffer for incoming data, in frames. For DV,
8041 this is an exact value. For HDV, it is not frame exact, since HDV
8042 does not have a fixed frame size.
8043
8044 dvguid
8045 Select the capture device by specifying its GUID. Capturing will
8046 only be performed from the specified device and fails if no device
8047 with the given GUID is found. This is useful to select the input if
8048 multiple devices are connected at the same time. Look at
8049 /sys/bus/firewire/devices to find out the GUIDs.
8050
8051 Examples
8052
8053 • Grab and show the input of a FireWire DV/HDV device.
8054
8055 ffplay -f iec61883 -i auto
8056
8057 • Grab and record the input of a FireWire DV/HDV device, using a
8058 packet buffer of 100000 packets if the source is HDV.
8059
8060 ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
8061
8062 jack
8063 JACK input device.
8064
8065 To enable this input device during configuration you need libjack
8066 installed on your system.
8067
8068 A JACK input device creates one or more JACK writable clients, one for
8069 each audio channel, with name client_name:input_N, where client_name is
8070 the name provided by the application, and N is a number which
8071 identifies the channel. Each writable client will send the acquired
8072 data to the FFmpeg input device.
8073
8074 Once you have created one or more JACK readable clients, you need to
8075 connect them to one or more JACK writable clients.
8076
8077 To connect or disconnect JACK clients you can use the jack_connect and
8078 jack_disconnect programs, or do it through a graphical interface, for
8079 example with qjackctl.
8080
8081 To list the JACK clients and their properties you can invoke the
8082 command jack_lsp.
8083
8084 Follows an example which shows how to capture a JACK readable client
8085 with ffmpeg.
8086
8087 # Create a JACK writable client with name "ffmpeg".
8088 $ ffmpeg -f jack -i ffmpeg -y out.wav
8089
8090 # Start the sample jack_metro readable client.
8091 $ jack_metro -b 120 -d 0.2 -f 4000
8092
8093 # List the current JACK clients.
8094 $ jack_lsp -c
8095 system:capture_1
8096 system:capture_2
8097 system:playback_1
8098 system:playback_2
8099 ffmpeg:input_1
8100 metro:120_bpm
8101
8102 # Connect metro to the ffmpeg writable client.
8103 $ jack_connect metro:120_bpm ffmpeg:input_1
8104
8105 For more information read: <http://jackaudio.org/>
8106
8107 Options
8108
8109 channels
8110 Set the number of channels. Default is 2.
8111
8112 kmsgrab
8113 KMS video input device.
8114
8115 Captures the KMS scanout framebuffer associated with a specified CRTC
8116 or plane as a DRM object that can be passed to other hardware
8117 functions.
8118
8119 Requires either DRM master or CAP_SYS_ADMIN to run.
8120
8121 If you don't understand what all of that means, you probably don't want
8122 this. Look at x11grab instead.
8123
8124 Options
8125
8126 device
8127 DRM device to capture on. Defaults to /dev/dri/card0.
8128
8129 format
8130 Pixel format of the framebuffer. This can be autodetected if you
8131 are running Linux 5.7 or later, but needs to be provided for
8132 earlier versions. Defaults to bgr0, which is the most common
8133 format used by the Linux console and Xorg X server.
8134
8135 format_modifier
8136 Format modifier to signal on output frames. This is necessary to
8137 import correctly into some APIs. It can be autodetected if you are
8138 running Linux 5.7 or later, but will need to be provided explicitly
8139 when needed in earlier versions. See the libdrm documentation for
8140 possible values.
8141
8142 crtc_id
8143 KMS CRTC ID to define the capture source. The first active plane
8144 on the given CRTC will be used.
8145
8146 plane_id
8147 KMS plane ID to define the capture source. Defaults to the first
8148 active plane found if neither crtc_id nor plane_id are specified.
8149
8150 framerate
8151 Framerate to capture at. This is not synchronised to any page
8152 flipping or framebuffer changes - it just defines the interval at
8153 which the framebuffer is sampled. Sampling faster than the
8154 framebuffer update rate will generate independent frames with the
8155 same content. Defaults to 30.
8156
8157 Examples
8158
8159 • Capture from the first active plane, download the result to normal
8160 frames and encode. This will only work if the framebuffer is both
8161 linear and mappable - if not, the result may be scrambled or fail
8162 to download.
8163
8164 ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
8165
8166 • Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
8167 to NV12 and encode as H.264.
8168
8169 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
8170
8171 • To capture only part of a plane the output can be cropped - this
8172 can be used to capture a single window, as long as it has a known
8173 absolute position and size. For example, to capture and encode the
8174 middle quarter of a 1920x1080 plane:
8175
8176 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
8177
8178 lavfi
8179 Libavfilter input virtual device.
8180
8181 This input device reads data from the open output pads of a libavfilter
8182 filtergraph.
8183
8184 For each filtergraph open output, the input device will create a
8185 corresponding stream which is mapped to the generated output. Currently
8186 only video data is supported. The filtergraph is specified through the
8187 option graph.
8188
8189 Options
8190
8191 graph
8192 Specify the filtergraph to use as input. Each video open output
8193 must be labelled by a unique string of the form "outN", where N is
8194 a number starting from 0 corresponding to the mapped input stream
8195 generated by the device. The first unlabelled output is
8196 automatically assigned to the "out0" label, but all the others need
8197 to be specified explicitly.
8198
8199 The suffix "+subcc" can be appended to the output label to create
8200 an extra stream with the closed captions packets attached to that
8201 output (experimental; only for EIA-608 / CEA-708 for now). The
8202 subcc streams are created after all the normal streams, in the
8203 order of the corresponding stream. For example, if there is
8204 "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
8205 subcc for stream #7 and stream #44 is subcc for stream #19.
8206
8207 If not specified defaults to the filename specified for the input
8208 device.
8209
8210 graph_file
8211 Set the filename of the filtergraph to be read and sent to the
8212 other filters. Syntax of the filtergraph is the same as the one
8213 specified by the option graph.
8214
8215 dumpgraph
8216 Dump graph to stderr.
8217
8218 Examples
8219
8220 • Create a color video stream and play it back with ffplay:
8221
8222 ffplay -f lavfi -graph "color=c=pink [out0]" dummy
8223
8224 • As the previous example, but use filename for specifying the graph
8225 description, and omit the "out0" label:
8226
8227 ffplay -f lavfi color=c=pink
8228
8229 • Create three different video test filtered sources and play them:
8230
8231 ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
8232
8233 • Read an audio stream from a file using the amovie source and play
8234 it back with ffplay:
8235
8236 ffplay -f lavfi "amovie=test.wav"
8237
8238 • Read an audio stream and a video stream and play it back with
8239 ffplay:
8240
8241 ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
8242
8243 • Dump decoded frames to images and closed captions to a file
8244 (experimental):
8245
8246 ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
8247
8248 libcdio
8249 Audio-CD input device based on libcdio.
8250
8251 To enable this input device during configuration you need libcdio
8252 installed on your system. It requires the configure option
8253 "--enable-libcdio".
8254
8255 This device allows playing and grabbing from an Audio-CD.
8256
8257 For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
8258 may run the command:
8259
8260 ffmpeg -f libcdio -i /dev/sr0 cd.wav
8261
8262 Options
8263
8264 speed
8265 Set drive reading speed. Default value is 0.
8266
8267 The speed is specified CD-ROM speed units. The speed is set through
8268 the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
8269 specifying a value too large will result in using the fastest
8270 speed.
8271
8272 paranoia_mode
8273 Set paranoia recovery mode flags. It accepts one of the following
8274 values:
8275
8276 disable
8277 verify
8278 overlap
8279 neverskip
8280 full
8281
8282 Default value is disable.
8283
8284 For more information about the available recovery modes, consult
8285 the paranoia project documentation.
8286
8287 libdc1394
8288 IIDC1394 input device, based on libdc1394 and libraw1394.
8289
8290 Requires the configure option "--enable-libdc1394".
8291
8292 Options
8293
8294 framerate
8295 Set the frame rate. Default is "ntsc", corresponding to a frame
8296 rate of "30000/1001".
8297
8298 pixel_format
8299 Select the pixel format. Default is "uyvy422".
8300
8301 video_size
8302 Set the video size given as a string such as "640x480" or "hd720".
8303 Default is "qvga".
8304
8305 openal
8306 The OpenAL input device provides audio capture on all systems with a
8307 working OpenAL 1.1 implementation.
8308
8309 To enable this input device during configuration, you need OpenAL
8310 headers and libraries installed on your system, and need to configure
8311 FFmpeg with "--enable-openal".
8312
8313 OpenAL headers and libraries should be provided as part of your OpenAL
8314 implementation, or as an additional download (an SDK). Depending on
8315 your installation you may need to specify additional flags via the
8316 "--extra-cflags" and "--extra-ldflags" for allowing the build system to
8317 locate the OpenAL headers and libraries.
8318
8319 An incomplete list of OpenAL implementations follows:
8320
8321 Creative
8322 The official Windows implementation, providing hardware
8323 acceleration with supported devices and software fallback. See
8324 <http://openal.org/>.
8325
8326 OpenAL Soft
8327 Portable, open source (LGPL) software implementation. Includes
8328 backends for the most common sound APIs on the Windows, Linux,
8329 Solaris, and BSD operating systems. See
8330 <http://kcat.strangesoft.net/openal.html>.
8331
8332 Apple
8333 OpenAL is part of Core Audio, the official Mac OS X Audio
8334 interface. See
8335 <http://developer.apple.com/technologies/mac/audio-and-video.html>
8336
8337 This device allows one to capture from an audio input device handled
8338 through OpenAL.
8339
8340 You need to specify the name of the device to capture in the provided
8341 filename. If the empty string is provided, the device will
8342 automatically select the default device. You can get the list of the
8343 supported devices by using the option list_devices.
8344
8345 Options
8346
8347 channels
8348 Set the number of channels in the captured audio. Only the values 1
8349 (monaural) and 2 (stereo) are currently supported. Defaults to 2.
8350
8351 sample_size
8352 Set the sample size (in bits) of the captured audio. Only the
8353 values 8 and 16 are currently supported. Defaults to 16.
8354
8355 sample_rate
8356 Set the sample rate (in Hz) of the captured audio. Defaults to
8357 44.1k.
8358
8359 list_devices
8360 If set to true, print a list of devices and exit. Defaults to
8361 false.
8362
8363 Examples
8364
8365 Print the list of OpenAL supported devices and exit:
8366
8367 $ ffmpeg -list_devices true -f openal -i dummy out.ogg
8368
8369 Capture from the OpenAL device DR-BT101 via PulseAudio:
8370
8371 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
8372
8373 Capture from the default device (note the empty string '' as filename):
8374
8375 $ ffmpeg -f openal -i '' out.ogg
8376
8377 Capture from two devices simultaneously, writing to two different
8378 files, within the same ffmpeg command:
8379
8380 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
8381
8382 Note: not all OpenAL implementations support multiple simultaneous
8383 capture - try the latest OpenAL Soft if the above does not work.
8384
8385 oss
8386 Open Sound System input device.
8387
8388 The filename to provide to the input device is the device node
8389 representing the OSS input device, and is usually set to /dev/dsp.
8390
8391 For example to grab from /dev/dsp using ffmpeg use the command:
8392
8393 ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
8394
8395 For more information about OSS see:
8396 <http://manuals.opensound.com/usersguide/dsp.html>
8397
8398 Options
8399
8400 sample_rate
8401 Set the sample rate in Hz. Default is 48000.
8402
8403 channels
8404 Set the number of channels. Default is 2.
8405
8406 pulse
8407 PulseAudio input device.
8408
8409 To enable this output device you need to configure FFmpeg with
8410 "--enable-libpulse".
8411
8412 The filename to provide to the input device is a source device or the
8413 string "default"
8414
8415 To list the PulseAudio source devices and their properties you can
8416 invoke the command pactl list sources.
8417
8418 More information about PulseAudio can be found on
8419 <http://www.pulseaudio.org>.
8420
8421 Options
8422
8423 server
8424 Connect to a specific PulseAudio server, specified by an IP
8425 address. Default server is used when not provided.
8426
8427 name
8428 Specify the application name PulseAudio will use when showing
8429 active clients, by default it is the "LIBAVFORMAT_IDENT" string.
8430
8431 stream_name
8432 Specify the stream name PulseAudio will use when showing active
8433 streams, by default it is "record".
8434
8435 sample_rate
8436 Specify the samplerate in Hz, by default 48kHz is used.
8437
8438 channels
8439 Specify the channels in use, by default 2 (stereo) is set.
8440
8441 frame_size
8442 Specify the number of bytes per frame, by default it is set to
8443 1024.
8444
8445 fragment_size
8446 Specify the minimal buffering fragment in PulseAudio, it will
8447 affect the audio latency. By default it is unset.
8448
8449 wallclock
8450 Set the initial PTS using the current time. Default is 1.
8451
8452 Examples
8453
8454 Record a stream from default device:
8455
8456 ffmpeg -f pulse -i default /tmp/pulse.wav
8457
8458 sndio
8459 sndio input device.
8460
8461 To enable this input device during configuration you need libsndio
8462 installed on your system.
8463
8464 The filename to provide to the input device is the device node
8465 representing the sndio input device, and is usually set to /dev/audio0.
8466
8467 For example to grab from /dev/audio0 using ffmpeg use the command:
8468
8469 ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
8470
8471 Options
8472
8473 sample_rate
8474 Set the sample rate in Hz. Default is 48000.
8475
8476 channels
8477 Set the number of channels. Default is 2.
8478
8479 video4linux2, v4l2
8480 Video4Linux2 input video device.
8481
8482 "v4l2" can be used as alias for "video4linux2".
8483
8484 If FFmpeg is built with v4l-utils support (by using the
8485 "--enable-libv4l2" configure option), it is possible to use it with the
8486 "-use_libv4l2" input device option.
8487
8488 The name of the device to grab is a file device node, usually Linux
8489 systems tend to automatically create such nodes when the device (e.g.
8490 an USB webcam) is plugged into the system, and has a name of the kind
8491 /dev/videoN, where N is a number associated to the device.
8492
8493 Video4Linux2 devices usually support a limited set of widthxheight
8494 sizes and frame rates. You can check which are supported using
8495 -list_formats all for Video4Linux2 devices. Some devices, like TV
8496 cards, support one or more standards. It is possible to list all the
8497 supported standards using -list_standards all.
8498
8499 The time base for the timestamps is 1 microsecond. Depending on the
8500 kernel version and configuration, the timestamps may be derived from
8501 the real time clock (origin at the Unix Epoch) or the monotonic clock
8502 (origin usually at boot time, unaffected by NTP or manual changes to
8503 the clock). The -timestamps abs or -ts abs option can be used to force
8504 conversion into the real time clock.
8505
8506 Some usage examples of the video4linux2 device with ffmpeg and ffplay:
8507
8508 • List supported formats for a video4linux2 device:
8509
8510 ffplay -f video4linux2 -list_formats all /dev/video0
8511
8512 • Grab and show the input of a video4linux2 device:
8513
8514 ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
8515
8516 • Grab and record the input of a video4linux2 device, leave the frame
8517 rate and size as previously set:
8518
8519 ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
8520
8521 For more information about Video4Linux, check <http://linuxtv.org/>.
8522
8523 Options
8524
8525 standard
8526 Set the standard. Must be the name of a supported standard. To get
8527 a list of the supported standards, use the list_standards option.
8528
8529 channel
8530 Set the input channel number. Default to -1, which means using the
8531 previously selected channel.
8532
8533 video_size
8534 Set the video frame size. The argument must be a string in the form
8535 WIDTHxHEIGHT or a valid size abbreviation.
8536
8537 pixel_format
8538 Select the pixel format (only valid for raw video input).
8539
8540 input_format
8541 Set the preferred pixel format (for raw video) or a codec name.
8542 This option allows one to select the input format, when several are
8543 available.
8544
8545 framerate
8546 Set the preferred video frame rate.
8547
8548 list_formats
8549 List available formats (supported pixel formats, codecs, and frame
8550 sizes) and exit.
8551
8552 Available values are:
8553
8554 all Show all available (compressed and non-compressed) formats.
8555
8556 raw Show only raw video (non-compressed) formats.
8557
8558 compressed
8559 Show only compressed formats.
8560
8561 list_standards
8562 List supported standards and exit.
8563
8564 Available values are:
8565
8566 all Show all supported standards.
8567
8568 timestamps, ts
8569 Set type of timestamps for grabbed frames.
8570
8571 Available values are:
8572
8573 default
8574 Use timestamps from the kernel.
8575
8576 abs Use absolute timestamps (wall clock).
8577
8578 mono2abs
8579 Force conversion from monotonic to absolute timestamps.
8580
8581 Default value is "default".
8582
8583 use_libv4l2
8584 Use libv4l2 (v4l-utils) conversion functions. Default is 0.
8585
8586 vfwcap
8587 VfW (Video for Windows) capture input device.
8588
8589 The filename passed as input is the capture driver number, ranging from
8590 0 to 9. You may use "list" as filename to print a list of drivers. Any
8591 other filename will be interpreted as device number 0.
8592
8593 Options
8594
8595 video_size
8596 Set the video frame size.
8597
8598 framerate
8599 Set the grabbing frame rate. Default value is "ntsc", corresponding
8600 to a frame rate of "30000/1001".
8601
8602 x11grab
8603 X11 video input device.
8604
8605 To enable this input device during configuration you need libxcb
8606 installed on your system. It will be automatically detected during
8607 configuration.
8608
8609 This device allows one to capture a region of an X11 display.
8610
8611 The filename passed as input has the syntax:
8612
8613 [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
8614
8615 hostname:display_number.screen_number specifies the X11 display name of
8616 the screen to grab from. hostname can be omitted, and defaults to
8617 "localhost". The environment variable DISPLAY contains the default
8618 display name.
8619
8620 x_offset and y_offset specify the offsets of the grabbed area with
8621 respect to the top-left border of the X11 screen. They default to 0.
8622
8623 Check the X11 documentation (e.g. man X) for more detailed information.
8624
8625 Use the xdpyinfo program for getting basic information about the
8626 properties of your X11 display (e.g. grep for "name" or "dimensions").
8627
8628 For example to grab from :0.0 using ffmpeg:
8629
8630 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
8631
8632 Grab at position "10,20":
8633
8634 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8635
8636 Options
8637
8638 select_region
8639 Specify whether to select the grabbing area graphically using the
8640 pointer. A value of 1 prompts the user to select the grabbing area
8641 graphically by clicking and dragging. A single click with no
8642 dragging will select the whole screen. A region with zero width or
8643 height will also select the whole screen. This option overwrites
8644 the video_size, grab_x, and grab_y options. Default value is 0.
8645
8646 draw_mouse
8647 Specify whether to draw the mouse pointer. A value of 0 specifies
8648 not to draw the pointer. Default value is 1.
8649
8650 follow_mouse
8651 Make the grabbed area follow the mouse. The argument can be
8652 "centered" or a number of pixels PIXELS.
8653
8654 When it is specified with "centered", the grabbing region follows
8655 the mouse pointer and keeps the pointer at the center of region;
8656 otherwise, the region follows only when the mouse pointer reaches
8657 within PIXELS (greater than zero) to the edge of region.
8658
8659 For example:
8660
8661 ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
8662
8663 To follow only when the mouse pointer reaches within 100 pixels to
8664 edge:
8665
8666 ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
8667
8668 framerate
8669 Set the grabbing frame rate. Default value is "ntsc", corresponding
8670 to a frame rate of "30000/1001".
8671
8672 show_region
8673 Show grabbed region on screen.
8674
8675 If show_region is specified with 1, then the grabbing region will
8676 be indicated on screen. With this option, it is easy to know what
8677 is being grabbed if only a portion of the screen is grabbed.
8678
8679 region_border
8680 Set the region border thickness if -show_region 1 is used. Range
8681 is 1 to 128 and default is 3 (XCB-based x11grab only).
8682
8683 For example:
8684
8685 ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8686
8687 With follow_mouse:
8688
8689 ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
8690
8691 window_id
8692 Grab this window, instead of the whole screen. Default value is 0,
8693 which maps to the whole screen (root window).
8694
8695 The id of a window can be found using the xwininfo program,
8696 possibly with options -tree and -root.
8697
8698 If the window is later enlarged, the new area is not recorded.
8699 Video ends when the window is closed, unmapped (i.e., iconified) or
8700 shrunk beyond the video size (which defaults to the initial window
8701 size).
8702
8703 This option disables options follow_mouse and select_region.
8704
8705 video_size
8706 Set the video frame size. Default is the full desktop or window.
8707
8708 grab_x
8709 grab_y
8710 Set the grabbing region coordinates. They are expressed as offset
8711 from the top left corner of the X11 window and correspond to the
8712 x_offset and y_offset parameters in the device name. The default
8713 value for both options is 0.
8714
8716 The audio resampler supports the following named options.
8717
8718 Options may be set by specifying -option value in the FFmpeg tools,
8719 option=value for the aresample filter, by setting the value explicitly
8720 in the "SwrContext" options or using the libavutil/opt.h API for
8721 programmatic use.
8722
8723 ich, in_channel_count
8724 Set the number of input channels. Default value is 0. Setting this
8725 value is not mandatory if the corresponding channel layout
8726 in_channel_layout is set.
8727
8728 och, out_channel_count
8729 Set the number of output channels. Default value is 0. Setting this
8730 value is not mandatory if the corresponding channel layout
8731 out_channel_layout is set.
8732
8733 uch, used_channel_count
8734 Set the number of used input channels. Default value is 0. This
8735 option is only used for special remapping.
8736
8737 isr, in_sample_rate
8738 Set the input sample rate. Default value is 0.
8739
8740 osr, out_sample_rate
8741 Set the output sample rate. Default value is 0.
8742
8743 isf, in_sample_fmt
8744 Specify the input sample format. It is set by default to "none".
8745
8746 osf, out_sample_fmt
8747 Specify the output sample format. It is set by default to "none".
8748
8749 tsf, internal_sample_fmt
8750 Set the internal sample format. Default value is "none". This will
8751 automatically be chosen when it is not explicitly set.
8752
8753 icl, in_channel_layout
8754 ocl, out_channel_layout
8755 Set the input/output channel layout.
8756
8757 See the Channel Layout section in the ffmpeg-utils(1) manual for
8758 the required syntax.
8759
8760 clev, center_mix_level
8761 Set the center mix level. It is a value expressed in deciBel, and
8762 must be in the interval [-32,32].
8763
8764 slev, surround_mix_level
8765 Set the surround mix level. It is a value expressed in deciBel, and
8766 must be in the interval [-32,32].
8767
8768 lfe_mix_level
8769 Set LFE mix into non LFE level. It is used when there is a LFE
8770 input but no LFE output. It is a value expressed in deciBel, and
8771 must be in the interval [-32,32].
8772
8773 rmvol, rematrix_volume
8774 Set rematrix volume. Default value is 1.0.
8775
8776 rematrix_maxval
8777 Set maximum output value for rematrixing. This can be used to
8778 prevent clipping vs. preventing volume reduction. A value of 1.0
8779 prevents clipping.
8780
8781 flags, swr_flags
8782 Set flags used by the converter. Default value is 0.
8783
8784 It supports the following individual flags:
8785
8786 res force resampling, this flag forces resampling to be used even
8787 when the input and output sample rates match.
8788
8789 dither_scale
8790 Set the dither scale. Default value is 1.
8791
8792 dither_method
8793 Set dither method. Default value is 0.
8794
8795 Supported values:
8796
8797 rectangular
8798 select rectangular dither
8799
8800 triangular
8801 select triangular dither
8802
8803 triangular_hp
8804 select triangular dither with high pass
8805
8806 lipshitz
8807 select Lipshitz noise shaping dither.
8808
8809 shibata
8810 select Shibata noise shaping dither.
8811
8812 low_shibata
8813 select low Shibata noise shaping dither.
8814
8815 high_shibata
8816 select high Shibata noise shaping dither.
8817
8818 f_weighted
8819 select f-weighted noise shaping dither
8820
8821 modified_e_weighted
8822 select modified-e-weighted noise shaping dither
8823
8824 improved_e_weighted
8825 select improved-e-weighted noise shaping dither
8826
8827 resampler
8828 Set resampling engine. Default value is swr.
8829
8830 Supported values:
8831
8832 swr select the native SW Resampler; filter options precision and
8833 cheby are not applicable in this case.
8834
8835 soxr
8836 select the SoX Resampler (where available); compensation, and
8837 filter options filter_size, phase_shift, exact_rational,
8838 filter_type & kaiser_beta, are not applicable in this case.
8839
8840 filter_size
8841 For swr only, set resampling filter size, default value is 32.
8842
8843 phase_shift
8844 For swr only, set resampling phase shift, default value is 10, and
8845 must be in the interval [0,30].
8846
8847 linear_interp
8848 Use linear interpolation when enabled (the default). Disable it if
8849 you want to preserve speed instead of quality when exact_rational
8850 fails.
8851
8852 exact_rational
8853 For swr only, when enabled, try to use exact phase_count based on
8854 input and output sample rate. However, if it is larger than "1 <<
8855 phase_shift", the phase_count will be "1 << phase_shift" as
8856 fallback. Default is enabled.
8857
8858 cutoff
8859 Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
8860 be a float value between 0 and 1. Default value is 0.97 with swr,
8861 and 0.91 with soxr (which, with a sample-rate of 44100, preserves
8862 the entire audio band to 20kHz).
8863
8864 precision
8865 For soxr only, the precision in bits to which the resampled signal
8866 will be calculated. The default value of 20 (which, with suitable
8867 dithering, is appropriate for a destination bit-depth of 16) gives
8868 SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
8869 Quality'.
8870
8871 cheby
8872 For soxr only, selects passband rolloff none (Chebyshev) & higher-
8873 precision approximation for 'irrational' ratios. Default value is
8874 0.
8875
8876 async
8877 For swr only, simple 1 parameter audio sync to timestamps using
8878 stretching, squeezing, filling and trimming. Setting this to 1 will
8879 enable filling and trimming, larger values represent the maximum
8880 amount in samples that the data may be stretched or squeezed for
8881 each second. Default value is 0, thus no compensation is applied
8882 to make the samples match the audio timestamps.
8883
8884 first_pts
8885 For swr only, assume the first pts should be this value. The time
8886 unit is 1 / sample rate. This allows for padding/trimming at the
8887 start of stream. By default, no assumption is made about the first
8888 frame's expected pts, so no padding or trimming is done. For
8889 example, this could be set to 0 to pad the beginning with silence
8890 if an audio stream starts after the video stream or to trim any
8891 samples with a negative pts due to encoder delay.
8892
8893 min_comp
8894 For swr only, set the minimum difference between timestamps and
8895 audio data (in seconds) to trigger stretching/squeezing/filling or
8896 trimming of the data to make it match the timestamps. The default
8897 is that stretching/squeezing/filling and trimming is disabled
8898 (min_comp = "FLT_MAX").
8899
8900 min_hard_comp
8901 For swr only, set the minimum difference between timestamps and
8902 audio data (in seconds) to trigger adding/dropping samples to make
8903 it match the timestamps. This option effectively is a threshold to
8904 select between hard (trim/fill) and soft (squeeze/stretch)
8905 compensation. Note that all compensation is by default disabled
8906 through min_comp. The default is 0.1.
8907
8908 comp_duration
8909 For swr only, set duration (in seconds) over which data is
8910 stretched/squeezed to make it match the timestamps. Must be a non-
8911 negative double float value, default value is 1.0.
8912
8913 max_soft_comp
8914 For swr only, set maximum factor by which data is
8915 stretched/squeezed to make it match the timestamps. Must be a non-
8916 negative double float value, default value is 0.
8917
8918 matrix_encoding
8919 Select matrixed stereo encoding.
8920
8921 It accepts the following values:
8922
8923 none
8924 select none
8925
8926 dolby
8927 select Dolby
8928
8929 dplii
8930 select Dolby Pro Logic II
8931
8932 Default value is "none".
8933
8934 filter_type
8935 For swr only, select resampling filter type. This only affects
8936 resampling operations.
8937
8938 It accepts the following values:
8939
8940 cubic
8941 select cubic
8942
8943 blackman_nuttall
8944 select Blackman Nuttall windowed sinc
8945
8946 kaiser
8947 select Kaiser windowed sinc
8948
8949 kaiser_beta
8950 For swr only, set Kaiser window beta value. Must be a double float
8951 value in the interval [2,16], default value is 9.
8952
8953 output_sample_bits
8954 For swr only, set number of used output sample bits for dithering.
8955 Must be an integer in the interval [0,64], default value is 0,
8956 which means it's not used.
8957
8959 The video scaler supports the following named options.
8960
8961 Options may be set by specifying -option value in the FFmpeg tools,
8962 with a few API-only exceptions noted below. For programmatic use, they
8963 can be set explicitly in the "SwsContext" options or through the
8964 libavutil/opt.h API.
8965
8966 sws_flags
8967 Set the scaler flags. This is also used to set the scaling
8968 algorithm. Only a single algorithm should be selected. Default
8969 value is bicubic.
8970
8971 It accepts the following values:
8972
8973 fast_bilinear
8974 Select fast bilinear scaling algorithm.
8975
8976 bilinear
8977 Select bilinear scaling algorithm.
8978
8979 bicubic
8980 Select bicubic scaling algorithm.
8981
8982 experimental
8983 Select experimental scaling algorithm.
8984
8985 neighbor
8986 Select nearest neighbor rescaling algorithm.
8987
8988 area
8989 Select averaging area rescaling algorithm.
8990
8991 bicublin
8992 Select bicubic scaling algorithm for the luma component,
8993 bilinear for chroma components.
8994
8995 gauss
8996 Select Gaussian rescaling algorithm.
8997
8998 sinc
8999 Select sinc rescaling algorithm.
9000
9001 lanczos
9002 Select Lanczos rescaling algorithm. The default width (alpha)
9003 is 3 and can be changed by setting "param0".
9004
9005 spline
9006 Select natural bicubic spline rescaling algorithm.
9007
9008 print_info
9009 Enable printing/debug logging.
9010
9011 accurate_rnd
9012 Enable accurate rounding.
9013
9014 full_chroma_int
9015 Enable full chroma interpolation.
9016
9017 full_chroma_inp
9018 Select full chroma input.
9019
9020 bitexact
9021 Enable bitexact output.
9022
9023 srcw (API only)
9024 Set source width.
9025
9026 srch (API only)
9027 Set source height.
9028
9029 dstw (API only)
9030 Set destination width.
9031
9032 dsth (API only)
9033 Set destination height.
9034
9035 src_format (API only)
9036 Set source pixel format (must be expressed as an integer).
9037
9038 dst_format (API only)
9039 Set destination pixel format (must be expressed as an integer).
9040
9041 src_range (boolean)
9042 If value is set to 1, indicates source is full range. Default value
9043 is 0, which indicates source is limited range.
9044
9045 dst_range (boolean)
9046 If value is set to 1, enable full range for destination. Default
9047 value is 0, which enables limited range.
9048
9049 param0, param1
9050 Set scaling algorithm parameters. The specified values are specific
9051 of some scaling algorithms and ignored by others. The specified
9052 values are floating point number values.
9053
9054 sws_dither
9055 Set the dithering algorithm. Accepts one of the following values.
9056 Default value is auto.
9057
9058 auto
9059 automatic choice
9060
9061 none
9062 no dithering
9063
9064 bayer
9065 bayer dither
9066
9067 ed error diffusion dither
9068
9069 a_dither
9070 arithmetic dither, based using addition
9071
9072 x_dither
9073 arithmetic dither, based using xor (more random/less apparent
9074 patterning that a_dither).
9075
9076 alphablend
9077 Set the alpha blending to use when the input has alpha but the
9078 output does not. Default value is none.
9079
9080 uniform_color
9081 Blend onto a uniform background color
9082
9083 checkerboard
9084 Blend onto a checkerboard
9085
9086 none
9087 No blending
9088
9090 Filtering in FFmpeg is enabled through the libavfilter library.
9091
9092 In libavfilter, a filter can have multiple inputs and multiple outputs.
9093 To illustrate the sorts of things that are possible, we consider the
9094 following filtergraph.
9095
9096 [main]
9097 input --> split ---------------------> overlay --> output
9098 | ^
9099 |[tmp] [flip]|
9100 +-----> crop --> vflip -------+
9101
9102 This filtergraph splits the input stream in two streams, then sends one
9103 stream through the crop filter and the vflip filter, before merging it
9104 back with the other stream by overlaying it on top. You can use the
9105 following command to achieve this:
9106
9107 ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
9108
9109 The result will be that the top half of the video is mirrored onto the
9110 bottom half of the output video.
9111
9112 Filters in the same linear chain are separated by commas, and distinct
9113 linear chains of filters are separated by semicolons. In our example,
9114 crop,vflip are in one linear chain, split and overlay are separately in
9115 another. The points where the linear chains join are labelled by names
9116 enclosed in square brackets. In the example, the split filter generates
9117 two outputs that are associated to the labels [main] and [tmp].
9118
9119 The stream sent to the second output of split, labelled as [tmp], is
9120 processed through the crop filter, which crops away the lower half part
9121 of the video, and then vertically flipped. The overlay filter takes in
9122 input the first unchanged output of the split filter (which was
9123 labelled as [main]), and overlay on its lower half the output generated
9124 by the crop,vflip filterchain.
9125
9126 Some filters take in input a list of parameters: they are specified
9127 after the filter name and an equal sign, and are separated from each
9128 other by a colon.
9129
9130 There exist so-called source filters that do not have an audio/video
9131 input, and sink filters that will not have audio/video output.
9132
9134 The graph2dot program included in the FFmpeg tools directory can be
9135 used to parse a filtergraph description and issue a corresponding
9136 textual representation in the dot language.
9137
9138 Invoke the command:
9139
9140 graph2dot -h
9141
9142 to see how to use graph2dot.
9143
9144 You can then pass the dot description to the dot program (from the
9145 graphviz suite of programs) and obtain a graphical representation of
9146 the filtergraph.
9147
9148 For example the sequence of commands:
9149
9150 echo <GRAPH_DESCRIPTION> | \
9151 tools/graph2dot -o graph.tmp && \
9152 dot -Tpng graph.tmp -o graph.png && \
9153 display graph.png
9154
9155 can be used to create and display an image representing the graph
9156 described by the GRAPH_DESCRIPTION string. Note that this string must
9157 be a complete self-contained graph, with its inputs and outputs
9158 explicitly defined. For example if your command line is of the form:
9159
9160 ffmpeg -i infile -vf scale=640:360 outfile
9161
9162 your GRAPH_DESCRIPTION string will need to be of the form:
9163
9164 nullsrc,scale=640:360,nullsink
9165
9166 you may also need to set the nullsrc parameters and add a format filter
9167 in order to simulate a specific input file.
9168
9170 A filtergraph is a directed graph of connected filters. It can contain
9171 cycles, and there can be multiple links between a pair of filters. Each
9172 link has one input pad on one side connecting it to one filter from
9173 which it takes its input, and one output pad on the other side
9174 connecting it to one filter accepting its output.
9175
9176 Each filter in a filtergraph is an instance of a filter class
9177 registered in the application, which defines the features and the
9178 number of input and output pads of the filter.
9179
9180 A filter with no input pads is called a "source", and a filter with no
9181 output pads is called a "sink".
9182
9183 Filtergraph syntax
9184 A filtergraph has a textual representation, which is recognized by the
9185 -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
9186 ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
9187 libavfilter/avfilter.h.
9188
9189 A filterchain consists of a sequence of connected filters, each one
9190 connected to the previous one in the sequence. A filterchain is
9191 represented by a list of ","-separated filter descriptions.
9192
9193 A filtergraph consists of a sequence of filterchains. A sequence of
9194 filterchains is represented by a list of ";"-separated filterchain
9195 descriptions.
9196
9197 A filter is represented by a string of the form:
9198 [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
9199
9200 filter_name is the name of the filter class of which the described
9201 filter is an instance of, and has to be the name of one of the filter
9202 classes registered in the program optionally followed by "@id". The
9203 name of the filter class is optionally followed by a string
9204 "=arguments".
9205
9206 arguments is a string which contains the parameters used to initialize
9207 the filter instance. It may have one of two forms:
9208
9209 • A ':'-separated list of key=value pairs.
9210
9211 • A ':'-separated list of value. In this case, the keys are assumed
9212 to be the option names in the order they are declared. E.g. the
9213 "fade" filter declares three options in this order -- type,
9214 start_frame and nb_frames. Then the parameter list in:0:30 means
9215 that the value in is assigned to the option type, 0 to start_frame
9216 and 30 to nb_frames.
9217
9218 • A ':'-separated list of mixed direct value and long key=value
9219 pairs. The direct value must precede the key=value pairs, and
9220 follow the same constraints order of the previous point. The
9221 following key=value pairs can be set in any preferred order.
9222
9223 If the option value itself is a list of items (e.g. the "format" filter
9224 takes a list of pixel formats), the items in the list are usually
9225 separated by |.
9226
9227 The list of arguments can be quoted using the character ' as initial
9228 and ending mark, and the character \ for escaping the characters within
9229 the quoted text; otherwise the argument string is considered terminated
9230 when the next special character (belonging to the set []=;,) is
9231 encountered.
9232
9233 The name and arguments of the filter are optionally preceded and
9234 followed by a list of link labels. A link label allows one to name a
9235 link and associate it to a filter output or input pad. The preceding
9236 labels in_link_1 ... in_link_N, are associated to the filter input
9237 pads, the following labels out_link_1 ... out_link_M, are associated to
9238 the output pads.
9239
9240 When two link labels with the same name are found in the filtergraph, a
9241 link between the corresponding input and output pad is created.
9242
9243 If an output pad is not labelled, it is linked by default to the first
9244 unlabelled input pad of the next filter in the filterchain. For
9245 example in the filterchain
9246
9247 nullsrc, split[L1], [L2]overlay, nullsink
9248
9249 the split filter instance has two output pads, and the overlay filter
9250 instance two input pads. The first output pad of split is labelled
9251 "L1", the first input pad of overlay is labelled "L2", and the second
9252 output pad of split is linked to the second input pad of overlay, which
9253 are both unlabelled.
9254
9255 In a filter description, if the input label of the first filter is not
9256 specified, "in" is assumed; if the output label of the last filter is
9257 not specified, "out" is assumed.
9258
9259 In a complete filterchain all the unlabelled filter input and output
9260 pads must be connected. A filtergraph is considered valid if all the
9261 filter input and output pads of all the filterchains are connected.
9262
9263 Libavfilter will automatically insert scale filters where format
9264 conversion is required. It is possible to specify swscale flags for
9265 those automatically inserted scalers by prepending "sws_flags=flags;"
9266 to the filtergraph description.
9267
9268 Here is a BNF description of the filtergraph syntax:
9269
9270 <NAME> ::= sequence of alphanumeric characters and '_'
9271 <FILTER_NAME> ::= <NAME>["@"<NAME>]
9272 <LINKLABEL> ::= "[" <NAME> "]"
9273 <LINKLABELS> ::= <LINKLABEL> [<LINKLABELS>]
9274 <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
9275 <FILTER> ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
9276 <FILTERCHAIN> ::= <FILTER> [,<FILTERCHAIN>]
9277 <FILTERGRAPH> ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
9278
9279 Notes on filtergraph escaping
9280 Filtergraph description composition entails several levels of escaping.
9281 See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
9282 for more information about the employed escaping procedure.
9283
9284 A first level escaping affects the content of each filter option value,
9285 which may contain the special character ":" used to separate values, or
9286 one of the escaping characters "\'".
9287
9288 A second level escaping affects the whole filter description, which may
9289 contain the escaping characters "\'" or the special characters "[],;"
9290 used by the filtergraph description.
9291
9292 Finally, when you specify a filtergraph on a shell commandline, you
9293 need to perform a third level escaping for the shell special characters
9294 contained within it.
9295
9296 For example, consider the following string to be embedded in the
9297 drawtext filter description text value:
9298
9299 this is a 'string': may contain one, or more, special characters
9300
9301 This string contains the "'" special escaping character, and the ":"
9302 special character, so it needs to be escaped in this way:
9303
9304 text=this is a \'string\'\: may contain one, or more, special characters
9305
9306 A second level of escaping is required when embedding the filter
9307 description in a filtergraph description, in order to escape all the
9308 filtergraph special characters. Thus the example above becomes:
9309
9310 drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
9311
9312 (note that in addition to the "\'" escaping special characters, also
9313 "," needs to be escaped).
9314
9315 Finally an additional level of escaping is needed when writing the
9316 filtergraph description in a shell command, which depends on the
9317 escaping rules of the adopted shell. For example, assuming that "\" is
9318 special and needs to be escaped with another "\", the previous string
9319 will finally result in:
9320
9321 -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
9322
9324 Some filters support a generic enable option. For the filters
9325 supporting timeline editing, this option can be set to an expression
9326 which is evaluated before sending a frame to the filter. If the
9327 evaluation is non-zero, the filter will be enabled, otherwise the frame
9328 will be sent unchanged to the next filter in the filtergraph.
9329
9330 The expression accepts the following values:
9331
9332 t timestamp expressed in seconds, NAN if the input timestamp is
9333 unknown
9334
9335 n sequential number of the input frame, starting from 0
9336
9337 pos the position in the file of the input frame, NAN if unknown
9338
9339 w
9340 h width and height of the input frame if video
9341
9342 Additionally, these filters support an enable command that can be used
9343 to re-define the expression.
9344
9345 Like any other filtering option, the enable option follows the same
9346 rules.
9347
9348 For example, to enable a blur filter (smartblur) from 10 seconds to 3
9349 minutes, and a curves filter starting at 3 seconds:
9350
9351 smartblur = enable='between(t,10,3*60)',
9352 curves = enable='gte(t,3)' : preset=cross_process
9353
9354 See "ffmpeg -filters" to view which filters have timeline support.
9355
9357 Some options can be changed during the operation of the filter using a
9358 command. These options are marked 'T' on the output of ffmpeg -h
9359 filter=<name of filter>. The name of the command is the name of the
9360 option and the argument is the new value.
9361
9363 Some filters with several inputs support a common set of options.
9364 These options can only be set by name, not with the short notation.
9365
9366 eof_action
9367 The action to take when EOF is encountered on the secondary input;
9368 it accepts one of the following values:
9369
9370 repeat
9371 Repeat the last frame (the default).
9372
9373 endall
9374 End both streams.
9375
9376 pass
9377 Pass the main input through.
9378
9379 shortest
9380 If set to 1, force the output to terminate when the shortest input
9381 terminates. Default value is 0.
9382
9383 repeatlast
9384 If set to 1, force the filter to extend the last frame of secondary
9385 streams until the end of the primary stream. A value of 0 disables
9386 this behavior. Default value is 1.
9387
9389 When you configure your FFmpeg build, you can disable any of the
9390 existing filters using "--disable-filters". The configure output will
9391 show the audio filters included in your build.
9392
9393 Below is a description of the currently available audio filters.
9394
9395 acompressor
9396 A compressor is mainly used to reduce the dynamic range of a signal.
9397 Especially modern music is mostly compressed at a high ratio to improve
9398 the overall loudness. It's done to get the highest attention of a
9399 listener, "fatten" the sound and bring more "power" to the track. If a
9400 signal is compressed too much it may sound dull or "dead" afterwards or
9401 it may start to "pump" (which could be a powerful effect but can also
9402 destroy a track completely). The right compression is the key to reach
9403 a professional sound and is the high art of mixing and mastering.
9404 Because of its complex settings it may take a long time to get the
9405 right feeling for this kind of effect.
9406
9407 Compression is done by detecting the volume above a chosen level
9408 "threshold" and dividing it by the factor set with "ratio". So if you
9409 set the threshold to -12dB and your signal reaches -6dB a ratio of 2:1
9410 will result in a signal at -9dB. Because an exact manipulation of the
9411 signal would cause distortion of the waveform the reduction can be
9412 levelled over the time. This is done by setting "Attack" and "Release".
9413 "attack" determines how long the signal has to rise above the threshold
9414 before any reduction will occur and "release" sets the time the signal
9415 has to fall below the threshold to reduce the reduction again. Shorter
9416 signals than the chosen attack time will be left untouched. The
9417 overall reduction of the signal can be made up afterwards with the
9418 "makeup" setting. So compressing the peaks of a signal about 6dB and
9419 raising the makeup to this level results in a signal twice as loud than
9420 the source. To gain a softer entry in the compression the "knee"
9421 flattens the hard edge at the threshold in the range of the chosen
9422 decibels.
9423
9424 The filter accepts the following options:
9425
9426 level_in
9427 Set input gain. Default is 1. Range is between 0.015625 and 64.
9428
9429 mode
9430 Set mode of compressor operation. Can be "upward" or "downward".
9431 Default is "downward".
9432
9433 threshold
9434 If a signal of stream rises above this level it will affect the
9435 gain reduction. By default it is 0.125. Range is between
9436 0.00097563 and 1.
9437
9438 ratio
9439 Set a ratio by which the signal is reduced. 1:2 means that if the
9440 level rose 4dB above the threshold, it will be only 2dB above after
9441 the reduction. Default is 2. Range is between 1 and 20.
9442
9443 attack
9444 Amount of milliseconds the signal has to rise above the threshold
9445 before gain reduction starts. Default is 20. Range is between 0.01
9446 and 2000.
9447
9448 release
9449 Amount of milliseconds the signal has to fall below the threshold
9450 before reduction is decreased again. Default is 250. Range is
9451 between 0.01 and 9000.
9452
9453 makeup
9454 Set the amount by how much signal will be amplified after
9455 processing. Default is 1. Range is from 1 to 64.
9456
9457 knee
9458 Curve the sharp knee around the threshold to enter gain reduction
9459 more softly. Default is 2.82843. Range is between 1 and 8.
9460
9461 link
9462 Choose if the "average" level between all channels of input stream
9463 or the louder("maximum") channel of input stream affects the
9464 reduction. Default is "average".
9465
9466 detection
9467 Should the exact signal be taken in case of "peak" or an RMS one in
9468 case of "rms". Default is "rms" which is mostly smoother.
9469
9470 mix How much to use compressed signal in output. Default is 1. Range
9471 is between 0 and 1.
9472
9473 Commands
9474
9475 This filter supports the all above options as commands.
9476
9477 acontrast
9478 Simple audio dynamic range compression/expansion filter.
9479
9480 The filter accepts the following options:
9481
9482 contrast
9483 Set contrast. Default is 33. Allowed range is between 0 and 100.
9484
9485 acopy
9486 Copy the input audio source unchanged to the output. This is mainly
9487 useful for testing purposes.
9488
9489 acrossfade
9490 Apply cross fade from one input audio stream to another input audio
9491 stream. The cross fade is applied for specified duration near the end
9492 of first stream.
9493
9494 The filter accepts the following options:
9495
9496 nb_samples, ns
9497 Specify the number of samples for which the cross fade effect has
9498 to last. At the end of the cross fade effect the first input audio
9499 will be completely silent. Default is 44100.
9500
9501 duration, d
9502 Specify the duration of the cross fade effect. See the Time
9503 duration section in the ffmpeg-utils(1) manual for the accepted
9504 syntax. By default the duration is determined by nb_samples. If
9505 set this option is used instead of nb_samples.
9506
9507 overlap, o
9508 Should first stream end overlap with second stream start. Default
9509 is enabled.
9510
9511 curve1
9512 Set curve for cross fade transition for first stream.
9513
9514 curve2
9515 Set curve for cross fade transition for second stream.
9516
9517 For description of available curve types see afade filter
9518 description.
9519
9520 Examples
9521
9522 • Cross fade from one input to another:
9523
9524 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
9525
9526 • Cross fade from one input to another but without overlapping:
9527
9528 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
9529
9530 acrossover
9531 Split audio stream into several bands.
9532
9533 This filter splits audio stream into two or more frequency ranges.
9534 Summing all streams back will give flat output.
9535
9536 The filter accepts the following options:
9537
9538 split
9539 Set split frequencies. Those must be positive and increasing.
9540
9541 order
9542 Set filter order for each band split. This controls filter roll-off
9543 or steepness of filter transfer function. Available values are:
9544
9545 2nd 12 dB per octave.
9546
9547 4th 24 dB per octave.
9548
9549 6th 36 dB per octave.
9550
9551 8th 48 dB per octave.
9552
9553 10th
9554 60 dB per octave.
9555
9556 12th
9557 72 dB per octave.
9558
9559 14th
9560 84 dB per octave.
9561
9562 16th
9563 96 dB per octave.
9564
9565 18th
9566 108 dB per octave.
9567
9568 20th
9569 120 dB per octave.
9570
9571 Default is 4th.
9572
9573 level
9574 Set input gain level. Allowed range is from 0 to 1. Default value
9575 is 1.
9576
9577 gains
9578 Set output gain for each band. Default value is 1 for all bands.
9579
9580 Examples
9581
9582 • Split input audio stream into two bands (low and high) with split
9583 frequency of 1500 Hz, each band will be in separate stream:
9584
9585 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9586
9587 • Same as above, but with higher filter order:
9588
9589 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9590
9591 • Same as above, but also with additional middle band (frequencies
9592 between 1500 and 8000):
9593
9594 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
9595
9596 acrusher
9597 Reduce audio bit resolution.
9598
9599 This filter is bit crusher with enhanced functionality. A bit crusher
9600 is used to audibly reduce number of bits an audio signal is sampled
9601 with. This doesn't change the bit depth at all, it just produces the
9602 effect. Material reduced in bit depth sounds more harsh and "digital".
9603 This filter is able to even round to continuous values instead of
9604 discrete bit depths. Additionally it has a D/C offset which results in
9605 different crushing of the lower and the upper half of the signal. An
9606 Anti-Aliasing setting is able to produce "softer" crushing sounds.
9607
9608 Another feature of this filter is the logarithmic mode. This setting
9609 switches from linear distances between bits to logarithmic ones. The
9610 result is a much more "natural" sounding crusher which doesn't gate low
9611 signals for example. The human ear has a logarithmic perception, so
9612 this kind of crushing is much more pleasant. Logarithmic crushing is
9613 also able to get anti-aliased.
9614
9615 The filter accepts the following options:
9616
9617 level_in
9618 Set level in.
9619
9620 level_out
9621 Set level out.
9622
9623 bits
9624 Set bit reduction.
9625
9626 mix Set mixing amount.
9627
9628 mode
9629 Can be linear: "lin" or logarithmic: "log".
9630
9631 dc Set DC.
9632
9633 aa Set anti-aliasing.
9634
9635 samples
9636 Set sample reduction.
9637
9638 lfo Enable LFO. By default disabled.
9639
9640 lforange
9641 Set LFO range.
9642
9643 lforate
9644 Set LFO rate.
9645
9646 Commands
9647
9648 This filter supports the all above options as commands.
9649
9650 acue
9651 Delay audio filtering until a given wallclock timestamp. See the cue
9652 filter.
9653
9654 adeclick
9655 Remove impulsive noise from input audio.
9656
9657 Samples detected as impulsive noise are replaced by interpolated
9658 samples using autoregressive modelling.
9659
9660 window, w
9661 Set window size, in milliseconds. Allowed range is from 10 to 100.
9662 Default value is 55 milliseconds. This sets size of window which
9663 will be processed at once.
9664
9665 overlap, o
9666 Set window overlap, in percentage of window size. Allowed range is
9667 from 50 to 95. Default value is 75 percent. Setting this to a very
9668 high value increases impulsive noise removal but makes whole
9669 process much slower.
9670
9671 arorder, a
9672 Set autoregression order, in percentage of window size. Allowed
9673 range is from 0 to 25. Default value is 2 percent. This option also
9674 controls quality of interpolated samples using neighbour good
9675 samples.
9676
9677 threshold, t
9678 Set threshold value. Allowed range is from 1 to 100. Default value
9679 is 2. This controls the strength of impulsive noise which is going
9680 to be removed. The lower value, the more samples will be detected
9681 as impulsive noise.
9682
9683 burst, b
9684 Set burst fusion, in percentage of window size. Allowed range is 0
9685 to 10. Default value is 2. If any two samples detected as noise
9686 are spaced less than this value then any sample between those two
9687 samples will be also detected as noise.
9688
9689 method, m
9690 Set overlap method.
9691
9692 It accepts the following values:
9693
9694 add, a
9695 Select overlap-add method. Even not interpolated samples are
9696 slightly changed with this method.
9697
9698 save, s
9699 Select overlap-save method. Not interpolated samples remain
9700 unchanged.
9701
9702 Default value is "a".
9703
9704 adeclip
9705 Remove clipped samples from input audio.
9706
9707 Samples detected as clipped are replaced by interpolated samples using
9708 autoregressive modelling.
9709
9710 window, w
9711 Set window size, in milliseconds. Allowed range is from 10 to 100.
9712 Default value is 55 milliseconds. This sets size of window which
9713 will be processed at once.
9714
9715 overlap, o
9716 Set window overlap, in percentage of window size. Allowed range is
9717 from 50 to 95. Default value is 75 percent.
9718
9719 arorder, a
9720 Set autoregression order, in percentage of window size. Allowed
9721 range is from 0 to 25. Default value is 8 percent. This option also
9722 controls quality of interpolated samples using neighbour good
9723 samples.
9724
9725 threshold, t
9726 Set threshold value. Allowed range is from 1 to 100. Default value
9727 is 10. Higher values make clip detection less aggressive.
9728
9729 hsize, n
9730 Set size of histogram used to detect clips. Allowed range is from
9731 100 to 9999. Default value is 1000. Higher values make clip
9732 detection less aggressive.
9733
9734 method, m
9735 Set overlap method.
9736
9737 It accepts the following values:
9738
9739 add, a
9740 Select overlap-add method. Even not interpolated samples are
9741 slightly changed with this method.
9742
9743 save, s
9744 Select overlap-save method. Not interpolated samples remain
9745 unchanged.
9746
9747 Default value is "a".
9748
9749 adecorrelate
9750 Apply decorrelation to input audio stream.
9751
9752 The filter accepts the following options:
9753
9754 stages
9755 Set decorrelation stages of filtering. Allowed range is from 1 to
9756 16. Default value is 6.
9757
9758 seed
9759 Set random seed used for setting delay in samples across channels.
9760
9761 adelay
9762 Delay one or more audio channels.
9763
9764 Samples in delayed channel are filled with silence.
9765
9766 The filter accepts the following option:
9767
9768 delays
9769 Set list of delays in milliseconds for each channel separated by
9770 '|'. Unused delays will be silently ignored. If number of given
9771 delays is smaller than number of channels all remaining channels
9772 will not be delayed. If you want to delay exact number of samples,
9773 append 'S' to number. If you want instead to delay in seconds,
9774 append 's' to number.
9775
9776 all Use last set delay for all remaining channels. By default is
9777 disabled. This option if enabled changes how option "delays" is
9778 interpreted.
9779
9780 Examples
9781
9782 • Delay first channel by 1.5 seconds, the third channel by 0.5
9783 seconds and leave the second channel (and any other channels that
9784 may be present) unchanged.
9785
9786 adelay=1500|0|500
9787
9788 • Delay second channel by 500 samples, the third channel by 700
9789 samples and leave the first channel (and any other channels that
9790 may be present) unchanged.
9791
9792 adelay=0|500S|700S
9793
9794 • Delay all channels by same number of samples:
9795
9796 adelay=delays=64S:all=1
9797
9798 adenorm
9799 Remedy denormals in audio by adding extremely low-level noise.
9800
9801 This filter shall be placed before any filter that can produce
9802 denormals.
9803
9804 A description of the accepted parameters follows.
9805
9806 level
9807 Set level of added noise in dB. Default is "-351". Allowed range
9808 is from -451 to -90.
9809
9810 type
9811 Set type of added noise.
9812
9813 dc Add DC signal.
9814
9815 ac Add AC signal.
9816
9817 square
9818 Add square signal.
9819
9820 pulse
9821 Add pulse signal.
9822
9823 Default is "dc".
9824
9825 Commands
9826
9827 This filter supports the all above options as commands.
9828
9829 aderivative, aintegral
9830 Compute derivative/integral of audio stream.
9831
9832 Applying both filters one after another produces original audio.
9833
9834 adynamicequalizer
9835 Apply dynamic equalization to input audio stream.
9836
9837 A description of the accepted options follows.
9838
9839 threshold
9840 Set the detection threshold used to trigger equalization.
9841 Threshold detection is using bandpass filter. Default value is 0.
9842 Allowed range is from 0 to 100.
9843
9844 dfrequency
9845 Set the detection frequency in Hz used for bandpass filter used to
9846 trigger equalization. Default value is 1000 Hz. Allowed range is
9847 between 2 and 1000000 Hz.
9848
9849 dqfactor
9850 Set the detection resonance factor for bandpass filter used to
9851 trigger equalization. Default value is 1. Allowed range is from
9852 0.001 to 1000.
9853
9854 tfrequency
9855 Set the target frequency of equalization filter. Default value is
9856 1000 Hz. Allowed range is between 2 and 1000000 Hz.
9857
9858 tqfactor
9859 Set the target resonance factor for target equalization filter.
9860 Default value is 1. Allowed range is from 0.001 to 1000.
9861
9862 attack
9863 Set the amount of milliseconds the signal from detection has to
9864 rise above the detection threshold before equalization starts.
9865 Default is 20. Allowed range is between 1 and 2000.
9866
9867 release
9868 Set the amount of milliseconds the signal from detection has to
9869 fall below the detection threshold before equalization ends.
9870 Default is 200. Allowed range is between 1 and 2000.
9871
9872 knee
9873 Curve the sharp knee around the detection threshold to calculate
9874 equalization gain more softly. Default is 1. Allowed range is
9875 between 0 and 8.
9876
9877 ratio
9878 Set the ratio by which the equalization gain is raised. Default is
9879 1. Allowed range is between 1 and 20.
9880
9881 makeup
9882 Set the makeup offset in dB by which the equalization gain is
9883 raised. Default is 0. Allowed range is between 0 and 30.
9884
9885 range
9886 Set the max allowed cut/boost amount in dB. Default is 0. Allowed
9887 range is from 0 to 200.
9888
9889 slew
9890 Set the slew factor. Default is 1. Allowed range is from 1 to 200.
9891
9892 mode
9893 Set the mode of filter operation, can be one of the following:
9894
9895 listen
9896 Output only isolated bandpass signal.
9897
9898 cut Cut frequencies above detection threshold.
9899
9900 boost
9901 Boost frequencies bellow detection threshold.
9902
9903 Default mode is cut.
9904
9905 Commands
9906
9907 This filter supports the all above options as commands.
9908
9909 adynamicsmooth
9910 Apply dynamic smoothing to input audio stream.
9911
9912 A description of the accepted options follows.
9913
9914 sensitivity
9915 Set an amount of sensitivity to frequency fluctations. Default is
9916 2. Allowed range is from 0 to 1e+06.
9917
9918 basefreq
9919 Set a base frequency for smoothing. Default value is 22050.
9920 Allowed range is from 2 to 1e+06.
9921
9922 Commands
9923
9924 This filter supports the all above options as commands.
9925
9926 aecho
9927 Apply echoing to the input audio.
9928
9929 Echoes are reflected sound and can occur naturally amongst mountains
9930 (and sometimes large buildings) when talking or shouting; digital echo
9931 effects emulate this behaviour and are often used to help fill out the
9932 sound of a single instrument or vocal. The time difference between the
9933 original signal and the reflection is the "delay", and the loudness of
9934 the reflected signal is the "decay". Multiple echoes can have
9935 different delays and decays.
9936
9937 A description of the accepted parameters follows.
9938
9939 in_gain
9940 Set input gain of reflected signal. Default is 0.6.
9941
9942 out_gain
9943 Set output gain of reflected signal. Default is 0.3.
9944
9945 delays
9946 Set list of time intervals in milliseconds between original signal
9947 and reflections separated by '|'. Allowed range for each "delay" is
9948 "(0 - 90000.0]". Default is 1000.
9949
9950 decays
9951 Set list of loudness of reflected signals separated by '|'.
9952 Allowed range for each "decay" is "(0 - 1.0]". Default is 0.5.
9953
9954 Examples
9955
9956 • Make it sound as if there are twice as many instruments as are
9957 actually playing:
9958
9959 aecho=0.8:0.88:60:0.4
9960
9961 • If delay is very short, then it sounds like a (metallic) robot
9962 playing music:
9963
9964 aecho=0.8:0.88:6:0.4
9965
9966 • A longer delay will sound like an open air concert in the
9967 mountains:
9968
9969 aecho=0.8:0.9:1000:0.3
9970
9971 • Same as above but with one more mountain:
9972
9973 aecho=0.8:0.9:1000|1800:0.3|0.25
9974
9975 aemphasis
9976 Audio emphasis filter creates or restores material directly taken from
9977 LPs or emphased CDs with different filter curves. E.g. to store music
9978 on vinyl the signal has to be altered by a filter first to even out the
9979 disadvantages of this recording medium. Once the material is played
9980 back the inverse filter has to be applied to restore the distortion of
9981 the frequency response.
9982
9983 The filter accepts the following options:
9984
9985 level_in
9986 Set input gain.
9987
9988 level_out
9989 Set output gain.
9990
9991 mode
9992 Set filter mode. For restoring material use "reproduction" mode,
9993 otherwise use "production" mode. Default is "reproduction" mode.
9994
9995 type
9996 Set filter type. Selects medium. Can be one of the following:
9997
9998 col select Columbia.
9999
10000 emi select EMI.
10001
10002 bsi select BSI (78RPM).
10003
10004 riaa
10005 select RIAA.
10006
10007 cd select Compact Disc (CD).
10008
10009 50fm
10010 select 50Xs (FM).
10011
10012 75fm
10013 select 75Xs (FM).
10014
10015 50kf
10016 select 50Xs (FM-KF).
10017
10018 75kf
10019 select 75Xs (FM-KF).
10020
10021 Commands
10022
10023 This filter supports the all above options as commands.
10024
10025 aeval
10026 Modify an audio signal according to the specified expressions.
10027
10028 This filter accepts one or more expressions (one for each channel),
10029 which are evaluated and used to modify a corresponding audio signal.
10030
10031 It accepts the following parameters:
10032
10033 exprs
10034 Set the '|'-separated expressions list for each separate channel.
10035 If the number of input channels is greater than the number of
10036 expressions, the last specified expression is used for the
10037 remaining output channels.
10038
10039 channel_layout, c
10040 Set output channel layout. If not specified, the channel layout is
10041 specified by the number of expressions. If set to same, it will use
10042 by default the same input channel layout.
10043
10044 Each expression in exprs can contain the following constants and
10045 functions:
10046
10047 ch channel number of the current expression
10048
10049 n number of the evaluated sample, starting from 0
10050
10051 s sample rate
10052
10053 t time of the evaluated sample expressed in seconds
10054
10055 nb_in_channels
10056 nb_out_channels
10057 input and output number of channels
10058
10059 val(CH)
10060 the value of input channel with number CH
10061
10062 Note: this filter is slow. For faster processing you should use a
10063 dedicated filter.
10064
10065 Examples
10066
10067 • Half volume:
10068
10069 aeval=val(ch)/2:c=same
10070
10071 • Invert phase of the second channel:
10072
10073 aeval=val(0)|-val(1)
10074
10075 aexciter
10076 An exciter is used to produce high sound that is not present in the
10077 original signal. This is done by creating harmonic distortions of the
10078 signal which are restricted in range and added to the original signal.
10079 An Exciter raises the upper end of an audio signal without simply
10080 raising the higher frequencies like an equalizer would do to create a
10081 more "crisp" or "brilliant" sound.
10082
10083 The filter accepts the following options:
10084
10085 level_in
10086 Set input level prior processing of signal. Allowed range is from
10087 0 to 64. Default value is 1.
10088
10089 level_out
10090 Set output level after processing of signal. Allowed range is from
10091 0 to 64. Default value is 1.
10092
10093 amount
10094 Set the amount of harmonics added to original signal. Allowed
10095 range is from 0 to 64. Default value is 1.
10096
10097 drive
10098 Set the amount of newly created harmonics. Allowed range is from
10099 0.1 to 10. Default value is 8.5.
10100
10101 blend
10102 Set the octave of newly created harmonics. Allowed range is from
10103 -10 to 10. Default value is 0.
10104
10105 freq
10106 Set the lower frequency limit of producing harmonics in Hz.
10107 Allowed range is from 2000 to 12000 Hz. Default is 7500 Hz.
10108
10109 ceil
10110 Set the upper frequency limit of producing harmonics. Allowed
10111 range is from 9999 to 20000 Hz. If value is lower than 10000 Hz no
10112 limit is applied.
10113
10114 listen
10115 Mute the original signal and output only added harmonics. By
10116 default is disabled.
10117
10118 Commands
10119
10120 This filter supports the all above options as commands.
10121
10122 afade
10123 Apply fade-in/out effect to input audio.
10124
10125 A description of the accepted parameters follows.
10126
10127 type, t
10128 Specify the effect type, can be either "in" for fade-in, or "out"
10129 for a fade-out effect. Default is "in".
10130
10131 start_sample, ss
10132 Specify the number of the start sample for starting to apply the
10133 fade effect. Default is 0.
10134
10135 nb_samples, ns
10136 Specify the number of samples for which the fade effect has to
10137 last. At the end of the fade-in effect the output audio will have
10138 the same volume as the input audio, at the end of the fade-out
10139 transition the output audio will be silence. Default is 44100.
10140
10141 start_time, st
10142 Specify the start time of the fade effect. Default is 0. The value
10143 must be specified as a time duration; see the Time duration section
10144 in the ffmpeg-utils(1) manual for the accepted syntax. If set this
10145 option is used instead of start_sample.
10146
10147 duration, d
10148 Specify the duration of the fade effect. See the Time duration
10149 section in the ffmpeg-utils(1) manual for the accepted syntax. At
10150 the end of the fade-in effect the output audio will have the same
10151 volume as the input audio, at the end of the fade-out transition
10152 the output audio will be silence. By default the duration is
10153 determined by nb_samples. If set this option is used instead of
10154 nb_samples.
10155
10156 curve
10157 Set curve for fade transition.
10158
10159 It accepts the following values:
10160
10161 tri select triangular, linear slope (default)
10162
10163 qsin
10164 select quarter of sine wave
10165
10166 hsin
10167 select half of sine wave
10168
10169 esin
10170 select exponential sine wave
10171
10172 log select logarithmic
10173
10174 ipar
10175 select inverted parabola
10176
10177 qua select quadratic
10178
10179 cub select cubic
10180
10181 squ select square root
10182
10183 cbr select cubic root
10184
10185 par select parabola
10186
10187 exp select exponential
10188
10189 iqsin
10190 select inverted quarter of sine wave
10191
10192 ihsin
10193 select inverted half of sine wave
10194
10195 dese
10196 select double-exponential seat
10197
10198 desi
10199 select double-exponential sigmoid
10200
10201 losi
10202 select logistic sigmoid
10203
10204 sinc
10205 select sine cardinal function
10206
10207 isinc
10208 select inverted sine cardinal function
10209
10210 nofade
10211 no fade applied
10212
10213 Commands
10214
10215 This filter supports the all above options as commands.
10216
10217 Examples
10218
10219 • Fade in first 15 seconds of audio:
10220
10221 afade=t=in:ss=0:d=15
10222
10223 • Fade out last 25 seconds of a 900 seconds audio:
10224
10225 afade=t=out:st=875:d=25
10226
10227 afftdn
10228 Denoise audio samples with FFT.
10229
10230 A description of the accepted parameters follows.
10231
10232 nr Set the noise reduction in dB, allowed range is 0.01 to 97.
10233 Default value is 12 dB.
10234
10235 nf Set the noise floor in dB, allowed range is -80 to -20. Default
10236 value is -50 dB.
10237
10238 nt Set the noise type.
10239
10240 It accepts the following values:
10241
10242 w Select white noise.
10243
10244 v Select vinyl noise.
10245
10246 s Select shellac noise.
10247
10248 c Select custom noise, defined in "bn" option.
10249
10250 Default value is white noise.
10251
10252 bn Set custom band noise for every one of 15 bands. Bands are
10253 separated by ' ' or '|'.
10254
10255 rf Set the residual floor in dB, allowed range is -80 to -20. Default
10256 value is -38 dB.
10257
10258 tn Enable noise tracking. By default is disabled. With this enabled,
10259 noise floor is automatically adjusted.
10260
10261 tr Enable residual tracking. By default is disabled.
10262
10263 om Set the output mode.
10264
10265 It accepts the following values:
10266
10267 i Pass input unchanged.
10268
10269 o Pass noise filtered out.
10270
10271 n Pass only noise.
10272
10273 Default value is o.
10274
10275 Commands
10276
10277 This filter supports the following commands:
10278
10279 sample_noise, sn
10280 Start or stop measuring noise profile. Syntax for the command is :
10281 "start" or "stop" string. After measuring noise profile is stopped
10282 it will be automatically applied in filtering.
10283
10284 noise_reduction, nr
10285 Change noise reduction. Argument is single float number. Syntax
10286 for the command is : "noise_reduction"
10287
10288 noise_floor, nf
10289 Change noise floor. Argument is single float number. Syntax for
10290 the command is : "noise_floor"
10291
10292 output_mode, om
10293 Change output mode operation. Syntax for the command is : "i", "o"
10294 or "n" string.
10295
10296 afftfilt
10297 Apply arbitrary expressions to samples in frequency domain.
10298
10299 real
10300 Set frequency domain real expression for each separate channel
10301 separated by '|'. Default is "re". If the number of input channels
10302 is greater than the number of expressions, the last specified
10303 expression is used for the remaining output channels.
10304
10305 imag
10306 Set frequency domain imaginary expression for each separate channel
10307 separated by '|'. Default is "im".
10308
10309 Each expression in real and imag can contain the following
10310 constants and functions:
10311
10312 sr sample rate
10313
10314 b current frequency bin number
10315
10316 nb number of available bins
10317
10318 ch channel number of the current expression
10319
10320 chs number of channels
10321
10322 pts current frame pts
10323
10324 re current real part of frequency bin of current channel
10325
10326 im current imaginary part of frequency bin of current channel
10327
10328 real(b, ch)
10329 Return the value of real part of frequency bin at location
10330 (bin,channel)
10331
10332 imag(b, ch)
10333 Return the value of imaginary part of frequency bin at location
10334 (bin,channel)
10335
10336 win_size
10337 Set window size. Allowed range is from 16 to 131072. Default is
10338 4096
10339
10340 win_func
10341 Set window function.
10342
10343 It accepts the following values:
10344
10345 rect
10346 bartlett
10347 hann, hanning
10348 hamming
10349 blackman
10350 welch
10351 flattop
10352 bharris
10353 bnuttall
10354 bhann
10355 sine
10356 nuttall
10357 lanczos
10358 gauss
10359 tukey
10360 dolph
10361 cauchy
10362 parzen
10363 poisson
10364 bohman
10365
10366 Default is "hann".
10367
10368 overlap
10369 Set window overlap. If set to 1, the recommended overlap for
10370 selected window function will be picked. Default is 0.75.
10371
10372 Examples
10373
10374 • Leave almost only low frequencies in audio:
10375
10376 afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
10377
10378 • Apply robotize effect:
10379
10380 afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
10381
10382 • Apply whisper effect:
10383
10384 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"
10385
10386 afir
10387 Apply an arbitrary Finite Impulse Response filter.
10388
10389 This filter is designed for applying long FIR filters, up to 60 seconds
10390 long.
10391
10392 It can be used as component for digital crossover filters, room
10393 equalization, cross talk cancellation, wavefield synthesis,
10394 auralization, ambiophonics, ambisonics and spatialization.
10395
10396 This filter uses the streams higher than first one as FIR coefficients.
10397 If the non-first stream holds a single channel, it will be used for all
10398 input channels in the first stream, otherwise the number of channels in
10399 the non-first stream must be same as the number of channels in the
10400 first stream.
10401
10402 It accepts the following parameters:
10403
10404 dry Set dry gain. This sets input gain.
10405
10406 wet Set wet gain. This sets final output gain.
10407
10408 length
10409 Set Impulse Response filter length. Default is 1, which means whole
10410 IR is processed.
10411
10412 gtype
10413 Enable applying gain measured from power of IR.
10414
10415 Set which approach to use for auto gain measurement.
10416
10417 none
10418 Do not apply any gain.
10419
10420 peak
10421 select peak gain, very conservative approach. This is default
10422 value.
10423
10424 dc select DC gain, limited application.
10425
10426 gn select gain to noise approach, this is most popular one.
10427
10428 irgain
10429 Set gain to be applied to IR coefficients before filtering.
10430 Allowed range is 0 to 1. This gain is applied after any gain
10431 applied with gtype option.
10432
10433 irfmt
10434 Set format of IR stream. Can be "mono" or "input". Default is
10435 "input".
10436
10437 maxir
10438 Set max allowed Impulse Response filter duration in seconds.
10439 Default is 30 seconds. Allowed range is 0.1 to 60 seconds.
10440
10441 response
10442 Show IR frequency response, magnitude(magenta), phase(green) and
10443 group delay(yellow) in additional video stream. By default it is
10444 disabled.
10445
10446 channel
10447 Set for which IR channel to display frequency response. By default
10448 is first channel displayed. This option is used only when response
10449 is enabled.
10450
10451 size
10452 Set video stream size. This option is used only when response is
10453 enabled.
10454
10455 rate
10456 Set video stream frame rate. This option is used only when response
10457 is enabled.
10458
10459 minp
10460 Set minimal partition size used for convolution. Default is 8192.
10461 Allowed range is from 1 to 32768. Lower values decreases latency
10462 at cost of higher CPU usage.
10463
10464 maxp
10465 Set maximal partition size used for convolution. Default is 8192.
10466 Allowed range is from 8 to 32768. Lower values may increase CPU
10467 usage.
10468
10469 nbirs
10470 Set number of input impulse responses streams which will be
10471 switchable at runtime. Allowed range is from 1 to 32. Default is
10472 1.
10473
10474 ir Set IR stream which will be used for convolution, starting from 0,
10475 should always be lower than supplied value by "nbirs" option.
10476 Default is 0. This option can be changed at runtime via commands.
10477
10478 Examples
10479
10480 • Apply reverb to stream using mono IR file as second input, complete
10481 command using ffmpeg:
10482
10483 ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
10484
10485 aformat
10486 Set output format constraints for the input audio. The framework will
10487 negotiate the most appropriate format to minimize conversions.
10488
10489 It accepts the following parameters:
10490
10491 sample_fmts, f
10492 A '|'-separated list of requested sample formats.
10493
10494 sample_rates, r
10495 A '|'-separated list of requested sample rates.
10496
10497 channel_layouts, cl
10498 A '|'-separated list of requested channel layouts.
10499
10500 See the Channel Layout section in the ffmpeg-utils(1) manual for
10501 the required syntax.
10502
10503 If a parameter is omitted, all values are allowed.
10504
10505 Force the output to either unsigned 8-bit or signed 16-bit stereo
10506
10507 aformat=sample_fmts=u8|s16:channel_layouts=stereo
10508
10509 afreqshift
10510 Apply frequency shift to input audio samples.
10511
10512 The filter accepts the following options:
10513
10514 shift
10515 Specify frequency shift. Allowed range is -INT_MAX to INT_MAX.
10516 Default value is 0.0.
10517
10518 level
10519 Set output gain applied to final output. Allowed range is from 0.0
10520 to 1.0. Default value is 1.0.
10521
10522 order
10523 Set filter order used for filtering. Allowed range is from 1 to 16.
10524 Default value is 8.
10525
10526 Commands
10527
10528 This filter supports the all above options as commands.
10529
10530 afwtdn
10531 Reduce broadband noise from input samples using Wavelets.
10532
10533 A description of the accepted options follows.
10534
10535 sigma
10536 Set the noise sigma, allowed range is from 0 to 1. Default value
10537 is 0. This option controls strength of denoising applied to input
10538 samples. Most useful way to set this option is via decibels, eg.
10539 -45dB.
10540
10541 levels
10542 Set the number of wavelet levels of decomposition. Allowed range
10543 is from 1 to 12. Default value is 10. Setting this too low make
10544 denoising performance very poor.
10545
10546 wavet
10547 Set wavelet type for decomposition of input frame. They are sorted
10548 by number of coefficients, from lowest to highest. More
10549 coefficients means worse filtering speed, but overall better
10550 quality. Available wavelets are:
10551
10552 sym2
10553 sym4
10554 rbior68
10555 deb10
10556 sym10
10557 coif5
10558 bl3
10559 percent
10560 Set percent of full denoising. Allowed range is from 0 to 100
10561 percent. Default value is 85 percent or partial denoising.
10562
10563 profile
10564 If enabled, first input frame will be used as noise profile. If
10565 first frame samples contain non-noise performance will be very
10566 poor.
10567
10568 adaptive
10569 If enabled, input frames are analyzed for presence of noise. If
10570 noise is detected with high possibility then input frame profile
10571 will be used for processing following frames, until new noise frame
10572 is detected.
10573
10574 samples
10575 Set size of single frame in number of samples. Allowed range is
10576 from 512 to 65536. Default frame size is 8192 samples.
10577
10578 softness
10579 Set softness applied inside thresholding function. Allowed range is
10580 from 0 to 10. Default softness is 1.
10581
10582 Commands
10583
10584 This filter supports the all above options as commands.
10585
10586 agate
10587 A gate is mainly used to reduce lower parts of a signal. This kind of
10588 signal processing reduces disturbing noise between useful signals.
10589
10590 Gating is done by detecting the volume below a chosen level threshold
10591 and dividing it by the factor set with ratio. The bottom of the noise
10592 floor is set via range. Because an exact manipulation of the signal
10593 would cause distortion of the waveform the reduction can be levelled
10594 over time. This is done by setting attack and release.
10595
10596 attack determines how long the signal has to fall below the threshold
10597 before any reduction will occur and release sets the time the signal
10598 has to rise above the threshold to reduce the reduction again. Shorter
10599 signals than the chosen attack time will be left untouched.
10600
10601 level_in
10602 Set input level before filtering. Default is 1. Allowed range is
10603 from 0.015625 to 64.
10604
10605 mode
10606 Set the mode of operation. Can be "upward" or "downward". Default
10607 is "downward". If set to "upward" mode, higher parts of signal will
10608 be amplified, expanding dynamic range in upward direction.
10609 Otherwise, in case of "downward" lower parts of signal will be
10610 reduced.
10611
10612 range
10613 Set the level of gain reduction when the signal is below the
10614 threshold. Default is 0.06125. Allowed range is from 0 to 1.
10615 Setting this to 0 disables reduction and then filter behaves like
10616 expander.
10617
10618 threshold
10619 If a signal rises above this level the gain reduction is released.
10620 Default is 0.125. Allowed range is from 0 to 1.
10621
10622 ratio
10623 Set a ratio by which the signal is reduced. Default is 2. Allowed
10624 range is from 1 to 9000.
10625
10626 attack
10627 Amount of milliseconds the signal has to rise above the threshold
10628 before gain reduction stops. Default is 20 milliseconds. Allowed
10629 range is from 0.01 to 9000.
10630
10631 release
10632 Amount of milliseconds the signal has to fall below the threshold
10633 before the reduction is increased again. Default is 250
10634 milliseconds. Allowed range is from 0.01 to 9000.
10635
10636 makeup
10637 Set amount of amplification of signal after processing. Default is
10638 1. Allowed range is from 1 to 64.
10639
10640 knee
10641 Curve the sharp knee around the threshold to enter gain reduction
10642 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
10643
10644 detection
10645 Choose if exact signal should be taken for detection or an RMS like
10646 one. Default is "rms". Can be "peak" or "rms".
10647
10648 link
10649 Choose if the average level between all channels or the louder
10650 channel affects the reduction. Default is "average". Can be
10651 "average" or "maximum".
10652
10653 Commands
10654
10655 This filter supports the all above options as commands.
10656
10657 aiir
10658 Apply an arbitrary Infinite Impulse Response filter.
10659
10660 It accepts the following parameters:
10661
10662 zeros, z
10663 Set B/numerator/zeros/reflection coefficients.
10664
10665 poles, p
10666 Set A/denominator/poles/ladder coefficients.
10667
10668 gains, k
10669 Set channels gains.
10670
10671 dry_gain
10672 Set input gain.
10673
10674 wet_gain
10675 Set output gain.
10676
10677 format, f
10678 Set coefficients format.
10679
10680 ll lattice-ladder function
10681
10682 sf analog transfer function
10683
10684 tf digital transfer function
10685
10686 zp Z-plane zeros/poles, cartesian (default)
10687
10688 pr Z-plane zeros/poles, polar radians
10689
10690 pd Z-plane zeros/poles, polar degrees
10691
10692 sp S-plane zeros/poles
10693
10694 process, r
10695 Set type of processing.
10696
10697 d direct processing
10698
10699 s serial processing
10700
10701 p parallel processing
10702
10703 precision, e
10704 Set filtering precision.
10705
10706 dbl double-precision floating-point (default)
10707
10708 flt single-precision floating-point
10709
10710 i32 32-bit integers
10711
10712 i16 16-bit integers
10713
10714 normalize, n
10715 Normalize filter coefficients, by default is enabled. Enabling it
10716 will normalize magnitude response at DC to 0dB.
10717
10718 mix How much to use filtered signal in output. Default is 1. Range is
10719 between 0 and 1.
10720
10721 response
10722 Show IR frequency response, magnitude(magenta), phase(green) and
10723 group delay(yellow) in additional video stream. By default it is
10724 disabled.
10725
10726 channel
10727 Set for which IR channel to display frequency response. By default
10728 is first channel displayed. This option is used only when response
10729 is enabled.
10730
10731 size
10732 Set video stream size. This option is used only when response is
10733 enabled.
10734
10735 Coefficients in "tf" and "sf" format are separated by spaces and are in
10736 ascending order.
10737
10738 Coefficients in "zp" format are separated by spaces and order of
10739 coefficients doesn't matter. Coefficients in "zp" format are complex
10740 numbers with i imaginary unit.
10741
10742 Different coefficients and gains can be provided for every channel, in
10743 such case use '|' to separate coefficients or gains. Last provided
10744 coefficients will be used for all remaining channels.
10745
10746 Examples
10747
10748 • Apply 2 pole elliptic notch at around 5000Hz for 48000 Hz sample
10749 rate:
10750
10751 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
10752
10753 • Same as above but in "zp" format:
10754
10755 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
10756
10757 • Apply 3-rd order analog normalized Butterworth low-pass filter,
10758 using analog transfer function format:
10759
10760 aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
10761
10762 alimiter
10763 The limiter prevents an input signal from rising over a desired
10764 threshold. This limiter uses lookahead technology to prevent your
10765 signal from distorting. It means that there is a small delay after the
10766 signal is processed. Keep in mind that the delay it produces is the
10767 attack time you set.
10768
10769 The filter accepts the following options:
10770
10771 level_in
10772 Set input gain. Default is 1.
10773
10774 level_out
10775 Set output gain. Default is 1.
10776
10777 limit
10778 Don't let signals above this level pass the limiter. Default is 1.
10779
10780 attack
10781 The limiter will reach its attenuation level in this amount of time
10782 in milliseconds. Default is 5 milliseconds.
10783
10784 release
10785 Come back from limiting to attenuation 1.0 in this amount of
10786 milliseconds. Default is 50 milliseconds.
10787
10788 asc When gain reduction is always needed ASC takes care of releasing to
10789 an average reduction level rather than reaching a reduction of 0 in
10790 the release time.
10791
10792 asc_level
10793 Select how much the release time is affected by ASC, 0 means nearly
10794 no changes in release time while 1 produces higher release times.
10795
10796 level
10797 Auto level output signal. Default is enabled. This normalizes
10798 audio back to 0dB if enabled.
10799
10800 Depending on picked setting it is recommended to upsample input 2x or
10801 4x times with aresample before applying this filter.
10802
10803 allpass
10804 Apply a two-pole all-pass filter with central frequency (in Hz)
10805 frequency, and filter-width width. An all-pass filter changes the
10806 audio's frequency to phase relationship without changing its frequency
10807 to amplitude relationship.
10808
10809 The filter accepts the following options:
10810
10811 frequency, f
10812 Set frequency in Hz.
10813
10814 width_type, t
10815 Set method to specify band-width of filter.
10816
10817 h Hz
10818
10819 q Q-Factor
10820
10821 o octave
10822
10823 s slope
10824
10825 k kHz
10826
10827 width, w
10828 Specify the band-width of a filter in width_type units.
10829
10830 mix, m
10831 How much to use filtered signal in output. Default is 1. Range is
10832 between 0 and 1.
10833
10834 channels, c
10835 Specify which channels to filter, by default all available are
10836 filtered.
10837
10838 normalize, n
10839 Normalize biquad coefficients, by default is disabled. Enabling it
10840 will normalize magnitude response at DC to 0dB.
10841
10842 order, o
10843 Set the filter order, can be 1 or 2. Default is 2.
10844
10845 transform, a
10846 Set transform type of IIR filter.
10847
10848 di
10849 dii
10850 tdii
10851 latt
10852 svf
10853 precision, r
10854 Set precison of filtering.
10855
10856 auto
10857 Pick automatic sample format depending on surround filters.
10858
10859 s16 Always use signed 16-bit.
10860
10861 s32 Always use signed 32-bit.
10862
10863 f32 Always use float 32-bit.
10864
10865 f64 Always use float 64-bit.
10866
10867 Commands
10868
10869 This filter supports the following commands:
10870
10871 frequency, f
10872 Change allpass frequency. Syntax for the command is : "frequency"
10873
10874 width_type, t
10875 Change allpass width_type. Syntax for the command is :
10876 "width_type"
10877
10878 width, w
10879 Change allpass width. Syntax for the command is : "width"
10880
10881 mix, m
10882 Change allpass mix. Syntax for the command is : "mix"
10883
10884 aloop
10885 Loop audio samples.
10886
10887 The filter accepts the following options:
10888
10889 loop
10890 Set the number of loops. Setting this value to -1 will result in
10891 infinite loops. Default is 0.
10892
10893 size
10894 Set maximal number of samples. Default is 0.
10895
10896 start
10897 Set first sample of loop. Default is 0.
10898
10899 amerge
10900 Merge two or more audio streams into a single multi-channel stream.
10901
10902 The filter accepts the following options:
10903
10904 inputs
10905 Set the number of inputs. Default is 2.
10906
10907 If the channel layouts of the inputs are disjoint, and therefore
10908 compatible, the channel layout of the output will be set accordingly
10909 and the channels will be reordered as necessary. If the channel layouts
10910 of the inputs are not disjoint, the output will have all the channels
10911 of the first input then all the channels of the second input, in that
10912 order, and the channel layout of the output will be the default value
10913 corresponding to the total number of channels.
10914
10915 For example, if the first input is in 2.1 (FL+FR+LF) and the second
10916 input is FC+BL+BR, then the output will be in 5.1, with the channels in
10917 the following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of
10918 the first input, b1 is the first channel of the second input).
10919
10920 On the other hand, if both input are in stereo, the output channels
10921 will be in the default order: a1, a2, b1, b2, and the channel layout
10922 will be arbitrarily set to 4.0, which may or may not be the expected
10923 value.
10924
10925 All inputs must have the same sample rate, and format.
10926
10927 If inputs do not have the same duration, the output will stop with the
10928 shortest.
10929
10930 Examples
10931
10932 • Merge two mono files into a stereo stream:
10933
10934 amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
10935
10936 • Multiple merges assuming 1 video stream and 6 audio streams in
10937 input.mkv:
10938
10939 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
10940
10941 amix
10942 Mixes multiple audio inputs into a single output.
10943
10944 Note that this filter only supports float samples (the amerge and pan
10945 audio filters support many formats). If the amix input has integer
10946 samples then aresample will be automatically inserted to perform the
10947 conversion to float samples.
10948
10949 For example
10950
10951 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
10952
10953 will mix 3 input audio streams to a single output with the same
10954 duration as the first input and a dropout transition time of 3 seconds.
10955
10956 It accepts the following parameters:
10957
10958 inputs
10959 The number of inputs. If unspecified, it defaults to 2.
10960
10961 duration
10962 How to determine the end-of-stream.
10963
10964 longest
10965 The duration of the longest input. (default)
10966
10967 shortest
10968 The duration of the shortest input.
10969
10970 first
10971 The duration of the first input.
10972
10973 dropout_transition
10974 The transition time, in seconds, for volume renormalization when an
10975 input stream ends. The default value is 2 seconds.
10976
10977 weights
10978 Specify weight of each input audio stream as sequence. Each weight
10979 is separated by space. By default all inputs have same weight.
10980
10981 normalize
10982 Always scale inputs instead of only doing summation of samples.
10983 Beware of heavy clipping if inputs are not normalized prior or
10984 after filtering by this filter if this option is disabled. By
10985 default is enabled.
10986
10987 Commands
10988
10989 This filter supports the following commands:
10990
10991 weights
10992 normalize
10993 Syntax is same as option with same name.
10994
10995 amultiply
10996 Multiply first audio stream with second audio stream and store result
10997 in output audio stream. Multiplication is done by multiplying each
10998 sample from first stream with sample at same position from second
10999 stream.
11000
11001 With this element-wise multiplication one can create amplitude fades
11002 and amplitude modulations.
11003
11004 anequalizer
11005 High-order parametric multiband equalizer for each channel.
11006
11007 It accepts the following parameters:
11008
11009 params
11010 This option string is in format: "cchn f=cf w=w g=g t=f | ..."
11011 Each equalizer band is separated by '|'.
11012
11013 chn Set channel number to which equalization will be applied. If
11014 input doesn't have that channel the entry is ignored.
11015
11016 f Set central frequency for band. If input doesn't have that
11017 frequency the entry is ignored.
11018
11019 w Set band width in Hertz.
11020
11021 g Set band gain in dB.
11022
11023 t Set filter type for band, optional, can be:
11024
11025 0 Butterworth, this is default.
11026
11027 1 Chebyshev type 1.
11028
11029 2 Chebyshev type 2.
11030
11031 curves
11032 With this option activated frequency response of anequalizer is
11033 displayed in video stream.
11034
11035 size
11036 Set video stream size. Only useful if curves option is activated.
11037
11038 mgain
11039 Set max gain that will be displayed. Only useful if curves option
11040 is activated. Setting this to a reasonable value makes it possible
11041 to display gain which is derived from neighbour bands which are too
11042 close to each other and thus produce higher gain when both are
11043 activated.
11044
11045 fscale
11046 Set frequency scale used to draw frequency response in video
11047 output. Can be linear or logarithmic. Default is logarithmic.
11048
11049 colors
11050 Set color for each channel curve which is going to be displayed in
11051 video stream. This is list of color names separated by space or by
11052 '|'. Unrecognised or missing colors will be replaced by white
11053 color.
11054
11055 Examples
11056
11057 • Lower gain by 10 of central frequency 200Hz and width 100 Hz for
11058 first 2 channels using Chebyshev type 1 filter:
11059
11060 anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
11061
11062 Commands
11063
11064 This filter supports the following commands:
11065
11066 change
11067 Alter existing filter parameters. Syntax for the commands is :
11068 "fN|f=freq|w=width|g=gain"
11069
11070 fN is existing filter number, starting from 0, if no such filter is
11071 available error is returned. freq set new frequency parameter.
11072 width set new width parameter in Hertz. gain set new gain
11073 parameter in dB.
11074
11075 Full filter invocation with asendcmd may look like this:
11076 asendcmd=c='4.0 anequalizer change
11077 0|f=200|w=50|g=1',anequalizer=...
11078
11079 anlmdn
11080 Reduce broadband noise in audio samples using Non-Local Means
11081 algorithm.
11082
11083 Each sample is adjusted by looking for other samples with similar
11084 contexts. This context similarity is defined by comparing their
11085 surrounding patches of size p. Patches are searched in an area of r
11086 around the sample.
11087
11088 The filter accepts the following options:
11089
11090 strength, s
11091 Set denoising strength. Allowed range is from 0.00001 to 10.
11092 Default value is 0.00001.
11093
11094 patch, p
11095 Set patch radius duration. Allowed range is from 1 to 100
11096 milliseconds. Default value is 2 milliseconds.
11097
11098 research, r
11099 Set research radius duration. Allowed range is from 2 to 300
11100 milliseconds. Default value is 6 milliseconds.
11101
11102 output, o
11103 Set the output mode.
11104
11105 It accepts the following values:
11106
11107 i Pass input unchanged.
11108
11109 o Pass noise filtered out.
11110
11111 n Pass only noise.
11112
11113 Default value is o.
11114
11115 smooth, m
11116 Set smooth factor. Default value is 11. Allowed range is from 1 to
11117 15.
11118
11119 Commands
11120
11121 This filter supports the all above options as commands.
11122
11123 anlmf, anlms
11124 Apply Normalized Least-Mean-(Squares|Fourth) algorithm to the first
11125 audio stream using the second audio stream.
11126
11127 This adaptive filter is used to mimic a desired filter by finding the
11128 filter coefficients that relate to producing the least mean square of
11129 the error signal (difference between the desired, 2nd input audio
11130 stream and the actual signal, the 1st input audio stream).
11131
11132 A description of the accepted options follows.
11133
11134 order
11135 Set filter order.
11136
11137 mu Set filter mu.
11138
11139 eps Set the filter eps.
11140
11141 leakage
11142 Set the filter leakage.
11143
11144 out_mode
11145 It accepts the following values:
11146
11147 i Pass the 1st input.
11148
11149 d Pass the 2nd input.
11150
11151 o Pass filtered samples.
11152
11153 n Pass difference between desired and filtered samples.
11154
11155 Default value is o.
11156
11157 Examples
11158
11159 • One of many usages of this filter is noise reduction, input audio
11160 is filtered with same samples that are delayed by fixed amount, one
11161 such example for stereo audio is:
11162
11163 asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
11164
11165 Commands
11166
11167 This filter supports the same commands as options, excluding option
11168 "order".
11169
11170 anull
11171 Pass the audio source unchanged to the output.
11172
11173 apad
11174 Pad the end of an audio stream with silence.
11175
11176 This can be used together with ffmpeg -shortest to extend audio streams
11177 to the same length as the video stream.
11178
11179 A description of the accepted options follows.
11180
11181 packet_size
11182 Set silence packet size. Default value is 4096.
11183
11184 pad_len
11185 Set the number of samples of silence to add to the end. After the
11186 value is reached, the stream is terminated. This option is mutually
11187 exclusive with whole_len.
11188
11189 whole_len
11190 Set the minimum total number of samples in the output audio stream.
11191 If the value is longer than the input audio length, silence is
11192 added to the end, until the value is reached. This option is
11193 mutually exclusive with pad_len.
11194
11195 pad_dur
11196 Specify the duration of samples of silence to add. See the Time
11197 duration section in the ffmpeg-utils(1) manual for the accepted
11198 syntax. Used only if set to non-negative value.
11199
11200 whole_dur
11201 Specify the minimum total duration in the output audio stream. See
11202 the Time duration section in the ffmpeg-utils(1) manual for the
11203 accepted syntax. Used only if set to non-negative value. If the
11204 value is longer than the input audio length, silence is added to
11205 the end, until the value is reached. This option is mutually
11206 exclusive with pad_dur
11207
11208 If neither the pad_len nor the whole_len nor pad_dur nor whole_dur
11209 option is set, the filter will add silence to the end of the input
11210 stream indefinitely.
11211
11212 Note that for ffmpeg 4.4 and earlier a zero pad_dur or whole_dur also
11213 caused the filter to add silence indefinitely.
11214
11215 Examples
11216
11217 • Add 1024 samples of silence to the end of the input:
11218
11219 apad=pad_len=1024
11220
11221 • Make sure the audio output will contain at least 10000 samples, pad
11222 the input with silence if required:
11223
11224 apad=whole_len=10000
11225
11226 • Use ffmpeg to pad the audio input with silence, so that the video
11227 stream will always result the shortest and will be converted until
11228 the end in the output file when using the shortest option:
11229
11230 ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
11231
11232 aphaser
11233 Add a phasing effect to the input audio.
11234
11235 A phaser filter creates series of peaks and troughs in the frequency
11236 spectrum. The position of the peaks and troughs are modulated so that
11237 they vary over time, creating a sweeping effect.
11238
11239 A description of the accepted parameters follows.
11240
11241 in_gain
11242 Set input gain. Default is 0.4.
11243
11244 out_gain
11245 Set output gain. Default is 0.74
11246
11247 delay
11248 Set delay in milliseconds. Default is 3.0.
11249
11250 decay
11251 Set decay. Default is 0.4.
11252
11253 speed
11254 Set modulation speed in Hz. Default is 0.5.
11255
11256 type
11257 Set modulation type. Default is triangular.
11258
11259 It accepts the following values:
11260
11261 triangular, t
11262 sinusoidal, s
11263
11264 aphaseshift
11265 Apply phase shift to input audio samples.
11266
11267 The filter accepts the following options:
11268
11269 shift
11270 Specify phase shift. Allowed range is from -1.0 to 1.0. Default
11271 value is 0.0.
11272
11273 level
11274 Set output gain applied to final output. Allowed range is from 0.0
11275 to 1.0. Default value is 1.0.
11276
11277 order
11278 Set filter order used for filtering. Allowed range is from 1 to 16.
11279 Default value is 8.
11280
11281 Commands
11282
11283 This filter supports the all above options as commands.
11284
11285 apsyclip
11286 Apply Psychoacoustic clipper to input audio stream.
11287
11288 The filter accepts the following options:
11289
11290 level_in
11291 Set input gain. By default it is 1. Range is [0.015625 - 64].
11292
11293 level_out
11294 Set output gain. By default it is 1. Range is [0.015625 - 64].
11295
11296 clip
11297 Set the clipping start value. Default value is 0dBFS or 1.
11298
11299 diff
11300 Output only difference samples, useful to hear introduced
11301 distortions. By default is disabled.
11302
11303 adaptive
11304 Set strenght of adaptive distortion applied. Default value is 0.5.
11305 Allowed range is from 0 to 1.
11306
11307 iterations
11308 Set number of iterations of psychoacoustic clipper. Allowed range
11309 is from 1 to 20. Default value is 10.
11310
11311 level
11312 Auto level output signal. Default is disabled. This normalizes
11313 audio back to 0dBFS if enabled.
11314
11315 Commands
11316
11317 This filter supports the all above options as commands.
11318
11319 apulsator
11320 Audio pulsator is something between an autopanner and a tremolo. But
11321 it can produce funny stereo effects as well. Pulsator changes the
11322 volume of the left and right channel based on a LFO (low frequency
11323 oscillator) with different waveforms and shifted phases. This filter
11324 have the ability to define an offset between left and right channel. An
11325 offset of 0 means that both LFO shapes match each other. The left and
11326 right channel are altered equally - a conventional tremolo. An offset
11327 of 50% means that the shape of the right channel is exactly shifted in
11328 phase (or moved backwards about half of the frequency) - pulsator acts
11329 as an autopanner. At 1 both curves match again. Every setting in
11330 between moves the phase shift gapless between all stages and produces
11331 some "bypassing" sounds with sine and triangle waveforms. The more you
11332 set the offset near 1 (starting from the 0.5) the faster the signal
11333 passes from the left to the right speaker.
11334
11335 The filter accepts the following options:
11336
11337 level_in
11338 Set input gain. By default it is 1. Range is [0.015625 - 64].
11339
11340 level_out
11341 Set output gain. By default it is 1. Range is [0.015625 - 64].
11342
11343 mode
11344 Set waveform shape the LFO will use. Can be one of: sine, triangle,
11345 square, sawup or sawdown. Default is sine.
11346
11347 amount
11348 Set modulation. Define how much of original signal is affected by
11349 the LFO.
11350
11351 offset_l
11352 Set left channel offset. Default is 0. Allowed range is [0 - 1].
11353
11354 offset_r
11355 Set right channel offset. Default is 0.5. Allowed range is [0 - 1].
11356
11357 width
11358 Set pulse width. Default is 1. Allowed range is [0 - 2].
11359
11360 timing
11361 Set possible timing mode. Can be one of: bpm, ms or hz. Default is
11362 hz.
11363
11364 bpm Set bpm. Default is 120. Allowed range is [30 - 300]. Only used if
11365 timing is set to bpm.
11366
11367 ms Set ms. Default is 500. Allowed range is [10 - 2000]. Only used if
11368 timing is set to ms.
11369
11370 hz Set frequency in Hz. Default is 2. Allowed range is [0.01 - 100].
11371 Only used if timing is set to hz.
11372
11373 aresample
11374 Resample the input audio to the specified parameters, using the
11375 libswresample library. If none are specified then the filter will
11376 automatically convert between its input and output.
11377
11378 This filter is also able to stretch/squeeze the audio data to make it
11379 match the timestamps or to inject silence / cut out audio to make it
11380 match the timestamps, do a combination of both or do neither.
11381
11382 The filter accepts the syntax [sample_rate:]resampler_options, where
11383 sample_rate expresses a sample rate and resampler_options is a list of
11384 key=value pairs, separated by ":". See the "Resampler Options" section
11385 in the ffmpeg-resampler(1) manual for the complete list of supported
11386 options.
11387
11388 Examples
11389
11390 • Resample the input audio to 44100Hz:
11391
11392 aresample=44100
11393
11394 • Stretch/squeeze samples to the given timestamps, with a maximum of
11395 1000 samples per second compensation:
11396
11397 aresample=async=1000
11398
11399 areverse
11400 Reverse an audio clip.
11401
11402 Warning: This filter requires memory to buffer the entire clip, so
11403 trimming is suggested.
11404
11405 Examples
11406
11407 • Take the first 5 seconds of a clip, and reverse it.
11408
11409 atrim=end=5,areverse
11410
11411 arnndn
11412 Reduce noise from speech using Recurrent Neural Networks.
11413
11414 This filter accepts the following options:
11415
11416 model, m
11417 Set train model file to load. This option is always required.
11418
11419 mix Set how much to mix filtered samples into final output. Allowed
11420 range is from -1 to 1. Default value is 1. Negative values are
11421 special, they set how much to keep filtered noise in the final
11422 filter output. Set this option to -1 to hear actual noise removed
11423 from input signal.
11424
11425 Commands
11426
11427 This filter supports the all above options as commands.
11428
11429 asdr
11430 Measure Audio Signal-to-Distortion Ratio.
11431
11432 This filter takes two audio streams for input, and outputs first audio
11433 stream. Results are in dB per channel at end of either input.
11434
11435 asetnsamples
11436 Set the number of samples per each output audio frame.
11437
11438 The last output packet may contain a different number of samples, as
11439 the filter will flush all the remaining samples when the input audio
11440 signals its end.
11441
11442 The filter accepts the following options:
11443
11444 nb_out_samples, n
11445 Set the number of frames per each output audio frame. The number is
11446 intended as the number of samples per each channel. Default value
11447 is 1024.
11448
11449 pad, p
11450 If set to 1, the filter will pad the last audio frame with zeroes,
11451 so that the last frame will contain the same number of samples as
11452 the previous ones. Default value is 1.
11453
11454 For example, to set the number of per-frame samples to 1234 and disable
11455 padding for the last frame, use:
11456
11457 asetnsamples=n=1234:p=0
11458
11459 asetrate
11460 Set the sample rate without altering the PCM data. This will result in
11461 a change of speed and pitch.
11462
11463 The filter accepts the following options:
11464
11465 sample_rate, r
11466 Set the output sample rate. Default is 44100 Hz.
11467
11468 ashowinfo
11469 Show a line containing various information for each input audio frame.
11470 The input audio is not modified.
11471
11472 The shown line contains a sequence of key/value pairs of the form
11473 key:value.
11474
11475 The following values are shown in the output:
11476
11477 n The (sequential) number of the input frame, starting from 0.
11478
11479 pts The presentation timestamp of the input frame, in time base units;
11480 the time base depends on the filter input pad, and is usually
11481 1/sample_rate.
11482
11483 pts_time
11484 The presentation timestamp of the input frame in seconds.
11485
11486 pos position of the frame in the input stream, -1 if this information
11487 in unavailable and/or meaningless (for example in case of synthetic
11488 audio)
11489
11490 fmt The sample format.
11491
11492 chlayout
11493 The channel layout.
11494
11495 rate
11496 The sample rate for the audio frame.
11497
11498 nb_samples
11499 The number of samples (per channel) in the frame.
11500
11501 checksum
11502 The Adler-32 checksum (printed in hexadecimal) of the audio data.
11503 For planar audio, the data is treated as if all the planes were
11504 concatenated.
11505
11506 plane_checksums
11507 A list of Adler-32 checksums for each data plane.
11508
11509 asoftclip
11510 Apply audio soft clipping.
11511
11512 Soft clipping is a type of distortion effect where the amplitude of a
11513 signal is saturated along a smooth curve, rather than the abrupt shape
11514 of hard-clipping.
11515
11516 This filter accepts the following options:
11517
11518 type
11519 Set type of soft-clipping.
11520
11521 It accepts the following values:
11522
11523 hard
11524 tanh
11525 atan
11526 cubic
11527 exp
11528 alg
11529 quintic
11530 sin
11531 erf
11532 threshold
11533 Set threshold from where to start clipping. Default value is 0dB or
11534 1.
11535
11536 output
11537 Set gain applied to output. Default value is 0dB or 1.
11538
11539 param
11540 Set additional parameter which controls sigmoid function.
11541
11542 oversample
11543 Set oversampling factor.
11544
11545 Commands
11546
11547 This filter supports the all above options as commands.
11548
11549 aspectralstats
11550 Display frequency domain statistical information about the audio
11551 channels. Statistics are calculated and stored as metadata for each
11552 audio channel and for each audio frame.
11553
11554 It accepts the following option:
11555
11556 win_size
11557 Set the window length in samples. Default value is 2048. Allowed
11558 range is from 32 to 65536.
11559
11560 win_func
11561 Set window function.
11562
11563 It accepts the following values:
11564
11565 rect
11566 bartlett
11567 hann, hanning
11568 hamming
11569 blackman
11570 welch
11571 flattop
11572 bharris
11573 bnuttall
11574 bhann
11575 sine
11576 nuttall
11577 lanczos
11578 gauss
11579 tukey
11580 dolph
11581 cauchy
11582 parzen
11583 poisson
11584 bohman
11585
11586 Default is "hann".
11587
11588 overlap
11589 Set window overlap. Allowed range is from 0 to 1. Default value is
11590 0.5.
11591
11592 A list of each metadata key follows:
11593
11594 mean
11595 variance
11596 centroid
11597 spread
11598 skewness
11599 kurtosis
11600 entropy
11601 flatness
11602 crest
11603 flux
11604 slope
11605 decrease
11606 rolloff
11607
11608 asr
11609 Automatic Speech Recognition
11610
11611 This filter uses PocketSphinx for speech recognition. To enable
11612 compilation of this filter, you need to configure FFmpeg with
11613 "--enable-pocketsphinx".
11614
11615 It accepts the following options:
11616
11617 rate
11618 Set sampling rate of input audio. Defaults is 16000. This need to
11619 match speech models, otherwise one will get poor results.
11620
11621 hmm Set dictionary containing acoustic model files.
11622
11623 dict
11624 Set pronunciation dictionary.
11625
11626 lm Set language model file.
11627
11628 lmctl
11629 Set language model set.
11630
11631 lmname
11632 Set which language model to use.
11633
11634 logfn
11635 Set output for log messages.
11636
11637 The filter exports recognized speech as the frame metadata
11638 "lavfi.asr.text".
11639
11640 astats
11641 Display time domain statistical information about the audio channels.
11642 Statistics are calculated and displayed for each audio channel and,
11643 where applicable, an overall figure is also given.
11644
11645 It accepts the following option:
11646
11647 length
11648 Short window length in seconds, used for peak and trough RMS
11649 measurement. Default is 0.05 (50 milliseconds). Allowed range is
11650 "[0 - 10]".
11651
11652 metadata
11653 Set metadata injection. All the metadata keys are prefixed with
11654 "lavfi.astats.X", where "X" is channel number starting from 1 or
11655 string "Overall". Default is disabled.
11656
11657 Available keys for each channel are: DC_offset Min_level Max_level
11658 Min_difference Max_difference Mean_difference RMS_difference
11659 Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count
11660 Noise_floor Noise_floor_count Entropy Bit_depth Dynamic_range
11661 Zero_crossings Zero_crossings_rate Number_of_NaNs Number_of_Infs
11662 Number_of_denormals
11663
11664 and for Overall: DC_offset Min_level Max_level Min_difference
11665 Max_difference Mean_difference RMS_difference Peak_level RMS_level
11666 RMS_peak RMS_trough Flat_factor Peak_count Noise_floor
11667 Noise_floor_count Entropy Bit_depth Number_of_samples
11668 Number_of_NaNs Number_of_Infs Number_of_denormals
11669
11670 For example full key look like this "lavfi.astats.1.DC_offset" or
11671 this "lavfi.astats.Overall.Peak_count".
11672
11673 For description what each key means read below.
11674
11675 reset
11676 Set the number of frames over which cumulative stats are calculated
11677 before being reset Default is disabled.
11678
11679 measure_perchannel
11680 Select the parameters which are measured per channel. The metadata
11681 keys can be used as flags, default is all which measures
11682 everything. none disables all per channel measurement.
11683
11684 measure_overall
11685 Select the parameters which are measured overall. The metadata keys
11686 can be used as flags, default is all which measures everything.
11687 none disables all overall measurement.
11688
11689 A description of each shown parameter follows:
11690
11691 DC offset
11692 Mean amplitude displacement from zero.
11693
11694 Min level
11695 Minimal sample level.
11696
11697 Max level
11698 Maximal sample level.
11699
11700 Min difference
11701 Minimal difference between two consecutive samples.
11702
11703 Max difference
11704 Maximal difference between two consecutive samples.
11705
11706 Mean difference
11707 Mean difference between two consecutive samples. The average of
11708 each difference between two consecutive samples.
11709
11710 RMS difference
11711 Root Mean Square difference between two consecutive samples.
11712
11713 Peak level dB
11714 RMS level dB
11715 Standard peak and RMS level measured in dBFS.
11716
11717 RMS peak dB
11718 RMS trough dB
11719 Peak and trough values for RMS level measured over a short window.
11720
11721 Crest factor
11722 Standard ratio of peak to RMS level (note: not in dB).
11723
11724 Flat factor
11725 Flatness (i.e. consecutive samples with the same value) of the
11726 signal at its peak levels (i.e. either Min level or Max level).
11727
11728 Peak count
11729 Number of occasions (not the number of samples) that the signal
11730 attained either Min level or Max level.
11731
11732 Noise floor dB
11733 Minimum local peak measured in dBFS over a short window.
11734
11735 Noise floor count
11736 Number of occasions (not the number of samples) that the signal
11737 attained Noise floor.
11738
11739 Entropy
11740 Entropy measured across whole audio. Entropy of value near 1.0 is
11741 typically measured for white noise.
11742
11743 Bit depth
11744 Overall bit depth of audio. Number of bits used for each sample.
11745
11746 Dynamic range
11747 Measured dynamic range of audio in dB.
11748
11749 Zero crossings
11750 Number of points where the waveform crosses the zero level axis.
11751
11752 Zero crossings rate
11753 Rate of Zero crossings and number of audio samples.
11754
11755 asubboost
11756 Boost subwoofer frequencies.
11757
11758 The filter accepts the following options:
11759
11760 dry Set dry gain, how much of original signal is kept. Allowed range is
11761 from 0 to 1. Default value is 0.7.
11762
11763 wet Set wet gain, how much of filtered signal is kept. Allowed range is
11764 from 0 to 1. Default value is 0.7.
11765
11766 decay
11767 Set delay line decay gain value. Allowed range is from 0 to 1.
11768 Default value is 0.7.
11769
11770 feedback
11771 Set delay line feedback gain value. Allowed range is from 0 to 1.
11772 Default value is 0.9.
11773
11774 cutoff
11775 Set cutoff frequency in Hertz. Allowed range is 50 to 900. Default
11776 value is 100.
11777
11778 slope
11779 Set slope amount for cutoff frequency. Allowed range is 0.0001 to
11780 1. Default value is 0.5.
11781
11782 delay
11783 Set delay. Allowed range is from 1 to 100. Default value is 20.
11784
11785 Commands
11786
11787 This filter supports the all above options as commands.
11788
11789 asubcut
11790 Cut subwoofer frequencies.
11791
11792 This filter allows to set custom, steeper roll off than highpass
11793 filter, and thus is able to more attenuate frequency content in stop-
11794 band.
11795
11796 The filter accepts the following options:
11797
11798 cutoff
11799 Set cutoff frequency in Hertz. Allowed range is 2 to 200. Default
11800 value is 20.
11801
11802 order
11803 Set filter order. Available values are from 3 to 20. Default value
11804 is 10.
11805
11806 level
11807 Set input gain level. Allowed range is from 0 to 1. Default value
11808 is 1.
11809
11810 Commands
11811
11812 This filter supports the all above options as commands.
11813
11814 asupercut
11815 Cut super frequencies.
11816
11817 The filter accepts the following options:
11818
11819 cutoff
11820 Set cutoff frequency in Hertz. Allowed range is 20000 to 192000.
11821 Default value is 20000.
11822
11823 order
11824 Set filter order. Available values are from 3 to 20. Default value
11825 is 10.
11826
11827 level
11828 Set input gain level. Allowed range is from 0 to 1. Default value
11829 is 1.
11830
11831 Commands
11832
11833 This filter supports the all above options as commands.
11834
11835 asuperpass
11836 Apply high order Butterworth band-pass filter.
11837
11838 The filter accepts the following options:
11839
11840 centerf
11841 Set center frequency in Hertz. Allowed range is 2 to 999999.
11842 Default value is 1000.
11843
11844 order
11845 Set filter order. Available values are from 4 to 20. Default value
11846 is 4.
11847
11848 qfactor
11849 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
11850 1.
11851
11852 level
11853 Set input gain level. Allowed range is from 0 to 2. Default value
11854 is 1.
11855
11856 Commands
11857
11858 This filter supports the all above options as commands.
11859
11860 asuperstop
11861 Apply high order Butterworth band-stop filter.
11862
11863 The filter accepts the following options:
11864
11865 centerf
11866 Set center frequency in Hertz. Allowed range is 2 to 999999.
11867 Default value is 1000.
11868
11869 order
11870 Set filter order. Available values are from 4 to 20. Default value
11871 is 4.
11872
11873 qfactor
11874 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
11875 1.
11876
11877 level
11878 Set input gain level. Allowed range is from 0 to 2. Default value
11879 is 1.
11880
11881 Commands
11882
11883 This filter supports the all above options as commands.
11884
11885 atempo
11886 Adjust audio tempo.
11887
11888 The filter accepts exactly one parameter, the audio tempo. If not
11889 specified then the filter will assume nominal 1.0 tempo. Tempo must be
11890 in the [0.5, 100.0] range.
11891
11892 Note that tempo greater than 2 will skip some samples rather than blend
11893 them in. If for any reason this is a concern it is always possible to
11894 daisy-chain several instances of atempo to achieve the desired product
11895 tempo.
11896
11897 Examples
11898
11899 • Slow down audio to 80% tempo:
11900
11901 atempo=0.8
11902
11903 • To speed up audio to 300% tempo:
11904
11905 atempo=3
11906
11907 • To speed up audio to 300% tempo by daisy-chaining two atempo
11908 instances:
11909
11910 atempo=sqrt(3),atempo=sqrt(3)
11911
11912 Commands
11913
11914 This filter supports the following commands:
11915
11916 tempo
11917 Change filter tempo scale factor. Syntax for the command is :
11918 "tempo"
11919
11920 atilt
11921 Apply spectral tilt filter to audio stream.
11922
11923 This filter apply any spectral roll-off slope over any specified
11924 frequency band.
11925
11926 The filter accepts the following options:
11927
11928 freq
11929 Set central frequency of tilt in Hz. Default is 10000 Hz.
11930
11931 slope
11932 Set slope direction of tilt. Default is 0. Allowed range is from -1
11933 to 1.
11934
11935 width
11936 Set width of tilt. Default is 1000. Allowed range is from 100 to
11937 10000.
11938
11939 order
11940 Set order of tilt filter.
11941
11942 level
11943 Set input volume level. Allowed range is from 0 to 4. Defalt is 1.
11944
11945 Commands
11946
11947 This filter supports the all above options as commands.
11948
11949 atrim
11950 Trim the input so that the output contains one continuous subpart of
11951 the input.
11952
11953 It accepts the following parameters:
11954
11955 start
11956 Timestamp (in seconds) of the start of the section to keep. I.e.
11957 the audio sample with the timestamp start will be the first sample
11958 in the output.
11959
11960 end Specify time of the first audio sample that will be dropped, i.e.
11961 the audio sample immediately preceding the one with the timestamp
11962 end will be the last sample in the output.
11963
11964 start_pts
11965 Same as start, except this option sets the start timestamp in
11966 samples instead of seconds.
11967
11968 end_pts
11969 Same as end, except this option sets the end timestamp in samples
11970 instead of seconds.
11971
11972 duration
11973 The maximum duration of the output in seconds.
11974
11975 start_sample
11976 The number of the first sample that should be output.
11977
11978 end_sample
11979 The number of the first sample that should be dropped.
11980
11981 start, end, and duration are expressed as time duration specifications;
11982 see the Time duration section in the ffmpeg-utils(1) manual.
11983
11984 Note that the first two sets of the start/end options and the duration
11985 option look at the frame timestamp, while the _sample options simply
11986 count the samples that pass through the filter. So start/end_pts and
11987 start/end_sample will give different results when the timestamps are
11988 wrong, inexact or do not start at zero. Also note that this filter does
11989 not modify the timestamps. If you wish to have the output timestamps
11990 start at zero, insert the asetpts filter after the atrim filter.
11991
11992 If multiple start or end options are set, this filter tries to be
11993 greedy and keep all samples that match at least one of the specified
11994 constraints. To keep only the part that matches all the constraints at
11995 once, chain multiple atrim filters.
11996
11997 The defaults are such that all the input is kept. So it is possible to
11998 set e.g. just the end values to keep everything before the specified
11999 time.
12000
12001 Examples:
12002
12003 • Drop everything except the second minute of input:
12004
12005 ffmpeg -i INPUT -af atrim=60:120
12006
12007 • Keep only the first 1000 samples:
12008
12009 ffmpeg -i INPUT -af atrim=end_sample=1000
12010
12011 axcorrelate
12012 Calculate normalized windowed cross-correlation between two input audio
12013 streams.
12014
12015 Resulted samples are always between -1 and 1 inclusive. If result is 1
12016 it means two input samples are highly correlated in that selected
12017 segment. Result 0 means they are not correlated at all. If result is
12018 -1 it means two input samples are out of phase, which means they cancel
12019 each other.
12020
12021 The filter accepts the following options:
12022
12023 size
12024 Set size of segment over which cross-correlation is calculated.
12025 Default is 256. Allowed range is from 2 to 131072.
12026
12027 algo
12028 Set algorithm for cross-correlation. Can be "slow" or "fast".
12029 Default is "slow". Fast algorithm assumes mean values over any
12030 given segment are always zero and thus need much less calculations
12031 to make. This is generally not true, but is valid for typical
12032 audio streams.
12033
12034 Examples
12035
12036 • Calculate correlation between channels in stereo audio stream:
12037
12038 ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
12039
12040 bandpass
12041 Apply a two-pole Butterworth band-pass filter with central frequency
12042 frequency, and (3dB-point) band-width width. The csg option selects a
12043 constant skirt gain (peak gain = Q) instead of the default: constant
12044 0dB peak gain. The filter roll off at 6dB per octave (20dB per
12045 decade).
12046
12047 The filter accepts the following options:
12048
12049 frequency, f
12050 Set the filter's central frequency. Default is 3000.
12051
12052 csg Constant skirt gain if set to 1. Defaults to 0.
12053
12054 width_type, t
12055 Set method to specify band-width of filter.
12056
12057 h Hz
12058
12059 q Q-Factor
12060
12061 o octave
12062
12063 s slope
12064
12065 k kHz
12066
12067 width, w
12068 Specify the band-width of a filter in width_type units.
12069
12070 mix, m
12071 How much to use filtered signal in output. Default is 1. Range is
12072 between 0 and 1.
12073
12074 channels, c
12075 Specify which channels to filter, by default all available are
12076 filtered.
12077
12078 normalize, n
12079 Normalize biquad coefficients, by default is disabled. Enabling it
12080 will normalize magnitude response at DC to 0dB.
12081
12082 transform, a
12083 Set transform type of IIR filter.
12084
12085 di
12086 dii
12087 tdii
12088 latt
12089 svf
12090 precision, r
12091 Set precison of filtering.
12092
12093 auto
12094 Pick automatic sample format depending on surround filters.
12095
12096 s16 Always use signed 16-bit.
12097
12098 s32 Always use signed 32-bit.
12099
12100 f32 Always use float 32-bit.
12101
12102 f64 Always use float 64-bit.
12103
12104 Commands
12105
12106 This filter supports the following commands:
12107
12108 frequency, f
12109 Change bandpass frequency. Syntax for the command is : "frequency"
12110
12111 width_type, t
12112 Change bandpass width_type. Syntax for the command is :
12113 "width_type"
12114
12115 width, w
12116 Change bandpass width. Syntax for the command is : "width"
12117
12118 mix, m
12119 Change bandpass mix. Syntax for the command is : "mix"
12120
12121 bandreject
12122 Apply a two-pole Butterworth band-reject filter with central frequency
12123 frequency, and (3dB-point) band-width width. The filter roll off at
12124 6dB per octave (20dB per decade).
12125
12126 The filter accepts the following options:
12127
12128 frequency, f
12129 Set the filter's central frequency. Default is 3000.
12130
12131 width_type, t
12132 Set method to specify band-width of filter.
12133
12134 h Hz
12135
12136 q Q-Factor
12137
12138 o octave
12139
12140 s slope
12141
12142 k kHz
12143
12144 width, w
12145 Specify the band-width of a filter in width_type units.
12146
12147 mix, m
12148 How much to use filtered signal in output. Default is 1. Range is
12149 between 0 and 1.
12150
12151 channels, c
12152 Specify which channels to filter, by default all available are
12153 filtered.
12154
12155 normalize, n
12156 Normalize biquad coefficients, by default is disabled. Enabling it
12157 will normalize magnitude response at DC to 0dB.
12158
12159 transform, a
12160 Set transform type of IIR filter.
12161
12162 di
12163 dii
12164 tdii
12165 latt
12166 svf
12167 precision, r
12168 Set precison of filtering.
12169
12170 auto
12171 Pick automatic sample format depending on surround filters.
12172
12173 s16 Always use signed 16-bit.
12174
12175 s32 Always use signed 32-bit.
12176
12177 f32 Always use float 32-bit.
12178
12179 f64 Always use float 64-bit.
12180
12181 Commands
12182
12183 This filter supports the following commands:
12184
12185 frequency, f
12186 Change bandreject frequency. Syntax for the command is :
12187 "frequency"
12188
12189 width_type, t
12190 Change bandreject width_type. Syntax for the command is :
12191 "width_type"
12192
12193 width, w
12194 Change bandreject width. Syntax for the command is : "width"
12195
12196 mix, m
12197 Change bandreject mix. Syntax for the command is : "mix"
12198
12199 bass, lowshelf
12200 Boost or cut the bass (lower) frequencies of the audio using a two-pole
12201 shelving filter with a response similar to that of a standard hi-fi's
12202 tone-controls. This is also known as shelving equalisation (EQ).
12203
12204 The filter accepts the following options:
12205
12206 gain, g
12207 Give the gain at 0 Hz. Its useful range is about -20 (for a large
12208 cut) to +20 (for a large boost). Beware of clipping when using a
12209 positive gain.
12210
12211 frequency, f
12212 Set the filter's central frequency and so can be used to extend or
12213 reduce the frequency range to be boosted or cut. The default value
12214 is 100 Hz.
12215
12216 width_type, t
12217 Set method to specify band-width of filter.
12218
12219 h Hz
12220
12221 q Q-Factor
12222
12223 o octave
12224
12225 s slope
12226
12227 k kHz
12228
12229 width, w
12230 Determine how steep is the filter's shelf transition.
12231
12232 poles, p
12233 Set number of poles. Default is 2.
12234
12235 mix, m
12236 How much to use filtered signal in output. Default is 1. Range is
12237 between 0 and 1.
12238
12239 channels, c
12240 Specify which channels to filter, by default all available are
12241 filtered.
12242
12243 normalize, n
12244 Normalize biquad coefficients, by default is disabled. Enabling it
12245 will normalize magnitude response at DC to 0dB.
12246
12247 transform, a
12248 Set transform type of IIR filter.
12249
12250 di
12251 dii
12252 tdii
12253 latt
12254 svf
12255 precision, r
12256 Set precison of filtering.
12257
12258 auto
12259 Pick automatic sample format depending on surround filters.
12260
12261 s16 Always use signed 16-bit.
12262
12263 s32 Always use signed 32-bit.
12264
12265 f32 Always use float 32-bit.
12266
12267 f64 Always use float 64-bit.
12268
12269 Commands
12270
12271 This filter supports the following commands:
12272
12273 frequency, f
12274 Change bass frequency. Syntax for the command is : "frequency"
12275
12276 width_type, t
12277 Change bass width_type. Syntax for the command is : "width_type"
12278
12279 width, w
12280 Change bass width. Syntax for the command is : "width"
12281
12282 gain, g
12283 Change bass gain. Syntax for the command is : "gain"
12284
12285 mix, m
12286 Change bass mix. Syntax for the command is : "mix"
12287
12288 biquad
12289 Apply a biquad IIR filter with the given coefficients. Where b0, b1,
12290 b2 and a0, a1, a2 are the numerator and denominator coefficients
12291 respectively. and channels, c specify which channels to filter, by
12292 default all available are filtered.
12293
12294 Commands
12295
12296 This filter supports the following commands:
12297
12298 a0
12299 a1
12300 a2
12301 b0
12302 b1
12303 b2 Change biquad parameter. Syntax for the command is : "value"
12304
12305 mix, m
12306 How much to use filtered signal in output. Default is 1. Range is
12307 between 0 and 1.
12308
12309 channels, c
12310 Specify which channels to filter, by default all available are
12311 filtered.
12312
12313 normalize, n
12314 Normalize biquad coefficients, by default is disabled. Enabling it
12315 will normalize magnitude response at DC to 0dB.
12316
12317 transform, a
12318 Set transform type of IIR filter.
12319
12320 di
12321 dii
12322 tdii
12323 latt
12324 svf
12325 precision, r
12326 Set precison of filtering.
12327
12328 auto
12329 Pick automatic sample format depending on surround filters.
12330
12331 s16 Always use signed 16-bit.
12332
12333 s32 Always use signed 32-bit.
12334
12335 f32 Always use float 32-bit.
12336
12337 f64 Always use float 64-bit.
12338
12339 bs2b
12340 Bauer stereo to binaural transformation, which improves headphone
12341 listening of stereo audio records.
12342
12343 To enable compilation of this filter you need to configure FFmpeg with
12344 "--enable-libbs2b".
12345
12346 It accepts the following parameters:
12347
12348 profile
12349 Pre-defined crossfeed level.
12350
12351 default
12352 Default level (fcut=700, feed=50).
12353
12354 cmoy
12355 Chu Moy circuit (fcut=700, feed=60).
12356
12357 jmeier
12358 Jan Meier circuit (fcut=650, feed=95).
12359
12360 fcut
12361 Cut frequency (in Hz).
12362
12363 feed
12364 Feed level (in Hz).
12365
12366 channelmap
12367 Remap input channels to new locations.
12368
12369 It accepts the following parameters:
12370
12371 map Map channels from input to output. The argument is a '|'-separated
12372 list of mappings, each in the "in_channel-out_channel" or
12373 in_channel form. in_channel can be either the name of the input
12374 channel (e.g. FL for front left) or its index in the input channel
12375 layout. out_channel is the name of the output channel or its index
12376 in the output channel layout. If out_channel is not given then it
12377 is implicitly an index, starting with zero and increasing by one
12378 for each mapping.
12379
12380 channel_layout
12381 The channel layout of the output stream.
12382
12383 If no mapping is present, the filter will implicitly map input channels
12384 to output channels, preserving indices.
12385
12386 Examples
12387
12388 • For example, assuming a 5.1+downmix input MOV file,
12389
12390 ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
12391
12392 will create an output WAV file tagged as stereo from the downmix
12393 channels of the input.
12394
12395 • To fix a 5.1 WAV improperly encoded in AAC's native channel order
12396
12397 ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
12398
12399 channelsplit
12400 Split each channel from an input audio stream into a separate output
12401 stream.
12402
12403 It accepts the following parameters:
12404
12405 channel_layout
12406 The channel layout of the input stream. The default is "stereo".
12407
12408 channels
12409 A channel layout describing the channels to be extracted as
12410 separate output streams or "all" to extract each input channel as a
12411 separate stream. The default is "all".
12412
12413 Choosing channels not present in channel layout in the input will
12414 result in an error.
12415
12416 Examples
12417
12418 • For example, assuming a stereo input MP3 file,
12419
12420 ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
12421
12422 will create an output Matroska file with two audio streams, one
12423 containing only the left channel and the other the right channel.
12424
12425 • Split a 5.1 WAV file into per-channel files:
12426
12427 ffmpeg -i in.wav -filter_complex
12428 'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
12429 -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
12430 front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
12431 side_right.wav
12432
12433 • Extract only LFE from a 5.1 WAV file:
12434
12435 ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
12436 -map '[LFE]' lfe.wav
12437
12438 chorus
12439 Add a chorus effect to the audio.
12440
12441 Can make a single vocal sound like a chorus, but can also be applied to
12442 instrumentation.
12443
12444 Chorus resembles an echo effect with a short delay, but whereas with
12445 echo the delay is constant, with chorus, it is varied using using
12446 sinusoidal or triangular modulation. The modulation depth defines the
12447 range the modulated delay is played before or after the delay. Hence
12448 the delayed sound will sound slower or faster, that is the delayed
12449 sound tuned around the original one, like in a chorus where some vocals
12450 are slightly off key.
12451
12452 It accepts the following parameters:
12453
12454 in_gain
12455 Set input gain. Default is 0.4.
12456
12457 out_gain
12458 Set output gain. Default is 0.4.
12459
12460 delays
12461 Set delays. A typical delay is around 40ms to 60ms.
12462
12463 decays
12464 Set decays.
12465
12466 speeds
12467 Set speeds.
12468
12469 depths
12470 Set depths.
12471
12472 Examples
12473
12474 • A single delay:
12475
12476 chorus=0.7:0.9:55:0.4:0.25:2
12477
12478 • Two delays:
12479
12480 chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
12481
12482 • Fuller sounding chorus with three delays:
12483
12484 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
12485
12486 compand
12487 Compress or expand the audio's dynamic range.
12488
12489 It accepts the following parameters:
12490
12491 attacks
12492 decays
12493 A list of times in seconds for each channel over which the
12494 instantaneous level of the input signal is averaged to determine
12495 its volume. attacks refers to increase of volume and decays refers
12496 to decrease of volume. For most situations, the attack time
12497 (response to the audio getting louder) should be shorter than the
12498 decay time, because the human ear is more sensitive to sudden loud
12499 audio than sudden soft audio. A typical value for attack is 0.3
12500 seconds and a typical value for decay is 0.8 seconds. If specified
12501 number of attacks & decays is lower than number of channels, the
12502 last set attack/decay will be used for all remaining channels.
12503
12504 points
12505 A list of points for the transfer function, specified in dB
12506 relative to the maximum possible signal amplitude. Each key points
12507 list must be defined using the following syntax:
12508 "x0/y0|x1/y1|x2/y2|...." or "x0/y0 x1/y1 x2/y2 ...."
12509
12510 The input values must be in strictly increasing order but the
12511 transfer function does not have to be monotonically rising. The
12512 point "0/0" is assumed but may be overridden (by "0/out-dBn").
12513 Typical values for the transfer function are "-70/-70|-60/-20|1/0".
12514
12515 soft-knee
12516 Set the curve radius in dB for all joints. It defaults to 0.01.
12517
12518 gain
12519 Set the additional gain in dB to be applied at all points on the
12520 transfer function. This allows for easy adjustment of the overall
12521 gain. It defaults to 0.
12522
12523 volume
12524 Set an initial volume, in dB, to be assumed for each channel when
12525 filtering starts. This permits the user to supply a nominal level
12526 initially, so that, for example, a very large gain is not applied
12527 to initial signal levels before the companding has begun to
12528 operate. A typical value for audio which is initially quiet is -90
12529 dB. It defaults to 0.
12530
12531 delay
12532 Set a delay, in seconds. The input audio is analyzed immediately,
12533 but audio is delayed before being fed to the volume adjuster.
12534 Specifying a delay approximately equal to the attack/decay times
12535 allows the filter to effectively operate in predictive rather than
12536 reactive mode. It defaults to 0.
12537
12538 Examples
12539
12540 • Make music with both quiet and loud passages suitable for listening
12541 to in a noisy environment:
12542
12543 compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
12544
12545 Another example for audio with whisper and explosion parts:
12546
12547 compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
12548
12549 • A noise gate for when the noise is at a lower level than the
12550 signal:
12551
12552 compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
12553
12554 • Here is another noise gate, this time for when the noise is at a
12555 higher level than the signal (making it, in some ways, similar to
12556 squelch):
12557
12558 compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
12559
12560 • 2:1 compression starting at -6dB:
12561
12562 compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
12563
12564 • 2:1 compression starting at -9dB:
12565
12566 compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
12567
12568 • 2:1 compression starting at -12dB:
12569
12570 compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
12571
12572 • 2:1 compression starting at -18dB:
12573
12574 compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
12575
12576 • 3:1 compression starting at -15dB:
12577
12578 compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
12579
12580 • Compressor/Gate:
12581
12582 compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
12583
12584 • Expander:
12585
12586 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
12587
12588 • Hard limiter at -6dB:
12589
12590 compand=attacks=0:points=-80/-80|-6/-6|20/-6
12591
12592 • Hard limiter at -12dB:
12593
12594 compand=attacks=0:points=-80/-80|-12/-12|20/-12
12595
12596 • Hard noise gate at -35 dB:
12597
12598 compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
12599
12600 • Soft limiter:
12601
12602 compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
12603
12604 compensationdelay
12605 Compensation Delay Line is a metric based delay to compensate differing
12606 positions of microphones or speakers.
12607
12608 For example, you have recorded guitar with two microphones placed in
12609 different locations. Because the front of sound wave has fixed speed in
12610 normal conditions, the phasing of microphones can vary and depends on
12611 their location and interposition. The best sound mix can be achieved
12612 when these microphones are in phase (synchronized). Note that a
12613 distance of ~30 cm between microphones makes one microphone capture the
12614 signal in antiphase to the other microphone. That makes the final mix
12615 sound moody. This filter helps to solve phasing problems by adding
12616 different delays to each microphone track and make them synchronized.
12617
12618 The best result can be reached when you take one track as base and
12619 synchronize other tracks one by one with it. Remember that
12620 synchronization/delay tolerance depends on sample rate, too. Higher
12621 sample rates will give more tolerance.
12622
12623 The filter accepts the following parameters:
12624
12625 mm Set millimeters distance. This is compensation distance for fine
12626 tuning. Default is 0.
12627
12628 cm Set cm distance. This is compensation distance for tightening
12629 distance setup. Default is 0.
12630
12631 m Set meters distance. This is compensation distance for hard
12632 distance setup. Default is 0.
12633
12634 dry Set dry amount. Amount of unprocessed (dry) signal. Default is 0.
12635
12636 wet Set wet amount. Amount of processed (wet) signal. Default is 1.
12637
12638 temp
12639 Set temperature in degrees Celsius. This is the temperature of the
12640 environment. Default is 20.
12641
12642 crossfeed
12643 Apply headphone crossfeed filter.
12644
12645 Crossfeed is the process of blending the left and right channels of
12646 stereo audio recording. It is mainly used to reduce extreme stereo
12647 separation of low frequencies.
12648
12649 The intent is to produce more speaker like sound to the listener.
12650
12651 The filter accepts the following options:
12652
12653 strength
12654 Set strength of crossfeed. Default is 0.2. Allowed range is from 0
12655 to 1. This sets gain of low shelf filter for side part of stereo
12656 image. Default is -6dB. Max allowed is -30db when strength is set
12657 to 1.
12658
12659 range
12660 Set soundstage wideness. Default is 0.5. Allowed range is from 0 to
12661 1. This sets cut off frequency of low shelf filter. Default is cut
12662 off near 1550 Hz. With range set to 1 cut off frequency is set to
12663 2100 Hz.
12664
12665 slope
12666 Set curve slope of low shelf filter. Default is 0.5. Allowed range
12667 is from 0.01 to 1.
12668
12669 level_in
12670 Set input gain. Default is 0.9.
12671
12672 level_out
12673 Set output gain. Default is 1.
12674
12675 Commands
12676
12677 This filter supports the all above options as commands.
12678
12679 crystalizer
12680 Simple algorithm for audio noise sharpening.
12681
12682 This filter linearly increases differences betweeen each audio sample.
12683
12684 The filter accepts the following options:
12685
12686 i Sets the intensity of effect (default: 2.0). Must be in range
12687 between -10.0 to 0 (unchanged sound) to 10.0 (maximum effect). To
12688 inverse filtering use negative value.
12689
12690 c Enable clipping. By default is enabled.
12691
12692 Commands
12693
12694 This filter supports the all above options as commands.
12695
12696 dcshift
12697 Apply a DC shift to the audio.
12698
12699 This can be useful to remove a DC offset (caused perhaps by a hardware
12700 problem in the recording chain) from the audio. The effect of a DC
12701 offset is reduced headroom and hence volume. The astats filter can be
12702 used to determine if a signal has a DC offset.
12703
12704 shift
12705 Set the DC shift, allowed range is [-1, 1]. It indicates the amount
12706 to shift the audio.
12707
12708 limitergain
12709 Optional. It should have a value much less than 1 (e.g. 0.05 or
12710 0.02) and is used to prevent clipping.
12711
12712 deesser
12713 Apply de-essing to the audio samples.
12714
12715 i Set intensity for triggering de-essing. Allowed range is from 0 to
12716 1. Default is 0.
12717
12718 m Set amount of ducking on treble part of sound. Allowed range is
12719 from 0 to 1. Default is 0.5.
12720
12721 f How much of original frequency content to keep when de-essing.
12722 Allowed range is from 0 to 1. Default is 0.5.
12723
12724 s Set the output mode.
12725
12726 It accepts the following values:
12727
12728 i Pass input unchanged.
12729
12730 o Pass ess filtered out.
12731
12732 e Pass only ess.
12733
12734 Default value is o.
12735
12736 drmeter
12737 Measure audio dynamic range.
12738
12739 DR values of 14 and higher is found in very dynamic material. DR of 8
12740 to 13 is found in transition material. And anything less that 8 have
12741 very poor dynamics and is very compressed.
12742
12743 The filter accepts the following options:
12744
12745 length
12746 Set window length in seconds used to split audio into segments of
12747 equal length. Default is 3 seconds.
12748
12749 dynaudnorm
12750 Dynamic Audio Normalizer.
12751
12752 This filter applies a certain amount of gain to the input audio in
12753 order to bring its peak magnitude to a target level (e.g. 0 dBFS).
12754 However, in contrast to more "simple" normalization algorithms, the
12755 Dynamic Audio Normalizer *dynamically* re-adjusts the gain factor to
12756 the input audio. This allows for applying extra gain to the "quiet"
12757 sections of the audio while avoiding distortions or clipping the "loud"
12758 sections. In other words: The Dynamic Audio Normalizer will "even out"
12759 the volume of quiet and loud sections, in the sense that the volume of
12760 each section is brought to the same target level. Note, however, that
12761 the Dynamic Audio Normalizer achieves this goal *without* applying
12762 "dynamic range compressing". It will retain 100% of the dynamic range
12763 *within* each section of the audio file.
12764
12765 framelen, f
12766 Set the frame length in milliseconds. In range from 10 to 8000
12767 milliseconds. Default is 500 milliseconds. The Dynamic Audio
12768 Normalizer processes the input audio in small chunks, referred to
12769 as frames. This is required, because a peak magnitude has no
12770 meaning for just a single sample value. Instead, we need to
12771 determine the peak magnitude for a contiguous sequence of sample
12772 values. While a "standard" normalizer would simply use the peak
12773 magnitude of the complete file, the Dynamic Audio Normalizer
12774 determines the peak magnitude individually for each frame. The
12775 length of a frame is specified in milliseconds. By default, the
12776 Dynamic Audio Normalizer uses a frame length of 500 milliseconds,
12777 which has been found to give good results with most files. Note
12778 that the exact frame length, in number of samples, will be
12779 determined automatically, based on the sampling rate of the
12780 individual input audio file.
12781
12782 gausssize, g
12783 Set the Gaussian filter window size. In range from 3 to 301, must
12784 be odd number. Default is 31. Probably the most important
12785 parameter of the Dynamic Audio Normalizer is the "window size" of
12786 the Gaussian smoothing filter. The filter's window size is
12787 specified in frames, centered around the current frame. For the
12788 sake of simplicity, this must be an odd number. Consequently, the
12789 default value of 31 takes into account the current frame, as well
12790 as the 15 preceding frames and the 15 subsequent frames. Using a
12791 larger window results in a stronger smoothing effect and thus in
12792 less gain variation, i.e. slower gain adaptation. Conversely, using
12793 a smaller window results in a weaker smoothing effect and thus in
12794 more gain variation, i.e. faster gain adaptation. In other words,
12795 the more you increase this value, the more the Dynamic Audio
12796 Normalizer will behave like a "traditional" normalization filter.
12797 On the contrary, the more you decrease this value, the more the
12798 Dynamic Audio Normalizer will behave like a dynamic range
12799 compressor.
12800
12801 peak, p
12802 Set the target peak value. This specifies the highest permissible
12803 magnitude level for the normalized audio input. This filter will
12804 try to approach the target peak magnitude as closely as possible,
12805 but at the same time it also makes sure that the normalized signal
12806 will never exceed the peak magnitude. A frame's maximum local gain
12807 factor is imposed directly by the target peak magnitude. The
12808 default value is 0.95 and thus leaves a headroom of 5%*. It is not
12809 recommended to go above this value.
12810
12811 maxgain, m
12812 Set the maximum gain factor. In range from 1.0 to 100.0. Default is
12813 10.0. The Dynamic Audio Normalizer determines the maximum possible
12814 (local) gain factor for each input frame, i.e. the maximum gain
12815 factor that does not result in clipping or distortion. The maximum
12816 gain factor is determined by the frame's highest magnitude sample.
12817 However, the Dynamic Audio Normalizer additionally bounds the
12818 frame's maximum gain factor by a predetermined (global) maximum
12819 gain factor. This is done in order to avoid excessive gain factors
12820 in "silent" or almost silent frames. By default, the maximum gain
12821 factor is 10.0, For most inputs the default value should be
12822 sufficient and it usually is not recommended to increase this
12823 value. Though, for input with an extremely low overall volume
12824 level, it may be necessary to allow even higher gain factors. Note,
12825 however, that the Dynamic Audio Normalizer does not simply apply a
12826 "hard" threshold (i.e. cut off values above the threshold).
12827 Instead, a "sigmoid" threshold function will be applied. This way,
12828 the gain factors will smoothly approach the threshold value, but
12829 never exceed that value.
12830
12831 targetrms, r
12832 Set the target RMS. In range from 0.0 to 1.0. Default is 0.0 -
12833 disabled. By default, the Dynamic Audio Normalizer performs "peak"
12834 normalization. This means that the maximum local gain factor for
12835 each frame is defined (only) by the frame's highest magnitude
12836 sample. This way, the samples can be amplified as much as possible
12837 without exceeding the maximum signal level, i.e. without clipping.
12838 Optionally, however, the Dynamic Audio Normalizer can also take
12839 into account the frame's root mean square, abbreviated RMS. In
12840 electrical engineering, the RMS is commonly used to determine the
12841 power of a time-varying signal. It is therefore considered that the
12842 RMS is a better approximation of the "perceived loudness" than just
12843 looking at the signal's peak magnitude. Consequently, by adjusting
12844 all frames to a constant RMS value, a uniform "perceived loudness"
12845 can be established. If a target RMS value has been specified, a
12846 frame's local gain factor is defined as the factor that would
12847 result in exactly that RMS value. Note, however, that the maximum
12848 local gain factor is still restricted by the frame's highest
12849 magnitude sample, in order to prevent clipping.
12850
12851 coupling, n
12852 Enable channels coupling. By default is enabled. By default, the
12853 Dynamic Audio Normalizer will amplify all channels by the same
12854 amount. This means the same gain factor will be applied to all
12855 channels, i.e. the maximum possible gain factor is determined by
12856 the "loudest" channel. However, in some recordings, it may happen
12857 that the volume of the different channels is uneven, e.g. one
12858 channel may be "quieter" than the other one(s). In this case, this
12859 option can be used to disable the channel coupling. This way, the
12860 gain factor will be determined independently for each channel,
12861 depending only on the individual channel's highest magnitude
12862 sample. This allows for harmonizing the volume of the different
12863 channels.
12864
12865 correctdc, c
12866 Enable DC bias correction. By default is disabled. An audio signal
12867 (in the time domain) is a sequence of sample values. In the
12868 Dynamic Audio Normalizer these sample values are represented in the
12869 -1.0 to 1.0 range, regardless of the original input format.
12870 Normally, the audio signal, or "waveform", should be centered
12871 around the zero point. That means if we calculate the mean value
12872 of all samples in a file, or in a single frame, then the result
12873 should be 0.0 or at least very close to that value. If, however,
12874 there is a significant deviation of the mean value from 0.0, in
12875 either positive or negative direction, this is referred to as a DC
12876 bias or DC offset. Since a DC bias is clearly undesirable, the
12877 Dynamic Audio Normalizer provides optional DC bias correction.
12878 With DC bias correction enabled, the Dynamic Audio Normalizer will
12879 determine the mean value, or "DC correction" offset, of each input
12880 frame and subtract that value from all of the frame's sample values
12881 which ensures those samples are centered around 0.0 again. Also, in
12882 order to avoid "gaps" at the frame boundaries, the DC correction
12883 offset values will be interpolated smoothly between neighbouring
12884 frames.
12885
12886 altboundary, b
12887 Enable alternative boundary mode. By default is disabled. The
12888 Dynamic Audio Normalizer takes into account a certain neighbourhood
12889 around each frame. This includes the preceding frames as well as
12890 the subsequent frames. However, for the "boundary" frames, located
12891 at the very beginning and at the very end of the audio file, not
12892 all neighbouring frames are available. In particular, for the first
12893 few frames in the audio file, the preceding frames are not known.
12894 And, similarly, for the last few frames in the audio file, the
12895 subsequent frames are not known. Thus, the question arises which
12896 gain factors should be assumed for the missing frames in the
12897 "boundary" region. The Dynamic Audio Normalizer implements two
12898 modes to deal with this situation. The default boundary mode
12899 assumes a gain factor of exactly 1.0 for the missing frames,
12900 resulting in a smooth "fade in" and "fade out" at the beginning and
12901 at the end of the input, respectively.
12902
12903 compress, s
12904 Set the compress factor. In range from 0.0 to 30.0. Default is 0.0.
12905 By default, the Dynamic Audio Normalizer does not apply
12906 "traditional" compression. This means that signal peaks will not be
12907 pruned and thus the full dynamic range will be retained within each
12908 local neighbourhood. However, in some cases it may be desirable to
12909 combine the Dynamic Audio Normalizer's normalization algorithm with
12910 a more "traditional" compression. For this purpose, the Dynamic
12911 Audio Normalizer provides an optional compression (thresholding)
12912 function. If (and only if) the compression feature is enabled, all
12913 input frames will be processed by a soft knee thresholding function
12914 prior to the actual normalization process. Put simply, the
12915 thresholding function is going to prune all samples whose magnitude
12916 exceeds a certain threshold value. However, the Dynamic Audio
12917 Normalizer does not simply apply a fixed threshold value. Instead,
12918 the threshold value will be adjusted for each individual frame. In
12919 general, smaller parameters result in stronger compression, and
12920 vice versa. Values below 3.0 are not recommended, because audible
12921 distortion may appear.
12922
12923 threshold, t
12924 Set the target threshold value. This specifies the lowest
12925 permissible magnitude level for the audio input which will be
12926 normalized. If input frame volume is above this value frame will
12927 be normalized. Otherwise frame may not be normalized at all. The
12928 default value is set to 0, which means all input frames will be
12929 normalized. This option is mostly useful if digital noise is not
12930 wanted to be amplified.
12931
12932 Commands
12933
12934 This filter supports the all above options as commands.
12935
12936 earwax
12937 Make audio easier to listen to on headphones.
12938
12939 This filter adds `cues' to 44.1kHz stereo (i.e. audio CD format) audio
12940 so that when listened to on headphones the stereo image is moved from
12941 inside your head (standard for headphones) to outside and in front of
12942 the listener (standard for speakers).
12943
12944 Ported from SoX.
12945
12946 equalizer
12947 Apply a two-pole peaking equalisation (EQ) filter. With this filter,
12948 the signal-level at and around a selected frequency can be increased or
12949 decreased, whilst (unlike bandpass and bandreject filters) that at all
12950 other frequencies is unchanged.
12951
12952 In order to produce complex equalisation curves, this filter can be
12953 given several times, each with a different central frequency.
12954
12955 The filter accepts the following options:
12956
12957 frequency, f
12958 Set the filter's central frequency in Hz.
12959
12960 width_type, t
12961 Set method to specify band-width of filter.
12962
12963 h Hz
12964
12965 q Q-Factor
12966
12967 o octave
12968
12969 s slope
12970
12971 k kHz
12972
12973 width, w
12974 Specify the band-width of a filter in width_type units.
12975
12976 gain, g
12977 Set the required gain or attenuation in dB. Beware of clipping
12978 when using a positive gain.
12979
12980 mix, m
12981 How much to use filtered signal in output. Default is 1. Range is
12982 between 0 and 1.
12983
12984 channels, c
12985 Specify which channels to filter, by default all available are
12986 filtered.
12987
12988 normalize, n
12989 Normalize biquad coefficients, by default is disabled. Enabling it
12990 will normalize magnitude response at DC to 0dB.
12991
12992 transform, a
12993 Set transform type of IIR filter.
12994
12995 di
12996 dii
12997 tdii
12998 latt
12999 svf
13000 precision, r
13001 Set precison of filtering.
13002
13003 auto
13004 Pick automatic sample format depending on surround filters.
13005
13006 s16 Always use signed 16-bit.
13007
13008 s32 Always use signed 32-bit.
13009
13010 f32 Always use float 32-bit.
13011
13012 f64 Always use float 64-bit.
13013
13014 Examples
13015
13016 • Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz:
13017
13018 equalizer=f=1000:t=h:width=200:g=-10
13019
13020 • Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz
13021 with Q 2:
13022
13023 equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
13024
13025 Commands
13026
13027 This filter supports the following commands:
13028
13029 frequency, f
13030 Change equalizer frequency. Syntax for the command is :
13031 "frequency"
13032
13033 width_type, t
13034 Change equalizer width_type. Syntax for the command is :
13035 "width_type"
13036
13037 width, w
13038 Change equalizer width. Syntax for the command is : "width"
13039
13040 gain, g
13041 Change equalizer gain. Syntax for the command is : "gain"
13042
13043 mix, m
13044 Change equalizer mix. Syntax for the command is : "mix"
13045
13046 extrastereo
13047 Linearly increases the difference between left and right channels which
13048 adds some sort of "live" effect to playback.
13049
13050 The filter accepts the following options:
13051
13052 m Sets the difference coefficient (default: 2.5). 0.0 means mono
13053 sound (average of both channels), with 1.0 sound will be unchanged,
13054 with -1.0 left and right channels will be swapped.
13055
13056 c Enable clipping. By default is enabled.
13057
13058 Commands
13059
13060 This filter supports the all above options as commands.
13061
13062 firequalizer
13063 Apply FIR Equalization using arbitrary frequency response.
13064
13065 The filter accepts the following option:
13066
13067 gain
13068 Set gain curve equation (in dB). The expression can contain
13069 variables:
13070
13071 f the evaluated frequency
13072
13073 sr sample rate
13074
13075 ch channel number, set to 0 when multichannels evaluation is
13076 disabled
13077
13078 chid
13079 channel id, see libavutil/channel_layout.h, set to the first
13080 channel id when multichannels evaluation is disabled
13081
13082 chs number of channels
13083
13084 chlayout
13085 channel_layout, see libavutil/channel_layout.h
13086
13087 and functions:
13088
13089 gain_interpolate(f)
13090 interpolate gain on frequency f based on gain_entry
13091
13092 cubic_interpolate(f)
13093 same as gain_interpolate, but smoother
13094
13095 This option is also available as command. Default is
13096 gain_interpolate(f).
13097
13098 gain_entry
13099 Set gain entry for gain_interpolate function. The expression can
13100 contain functions:
13101
13102 entry(f, g)
13103 store gain entry at frequency f with value g
13104
13105 This option is also available as command.
13106
13107 delay
13108 Set filter delay in seconds. Higher value means more accurate.
13109 Default is 0.01.
13110
13111 accuracy
13112 Set filter accuracy in Hz. Lower value means more accurate.
13113 Default is 5.
13114
13115 wfunc
13116 Set window function. Acceptable values are:
13117
13118 rectangular
13119 rectangular window, useful when gain curve is already smooth
13120
13121 hann
13122 hann window (default)
13123
13124 hamming
13125 hamming window
13126
13127 blackman
13128 blackman window
13129
13130 nuttall3
13131 3-terms continuous 1st derivative nuttall window
13132
13133 mnuttall3
13134 minimum 3-terms discontinuous nuttall window
13135
13136 nuttall
13137 4-terms continuous 1st derivative nuttall window
13138
13139 bnuttall
13140 minimum 4-terms discontinuous nuttall (blackman-nuttall) window
13141
13142 bharris
13143 blackman-harris window
13144
13145 tukey
13146 tukey window
13147
13148 fixed
13149 If enabled, use fixed number of audio samples. This improves speed
13150 when filtering with large delay. Default is disabled.
13151
13152 multi
13153 Enable multichannels evaluation on gain. Default is disabled.
13154
13155 zero_phase
13156 Enable zero phase mode by subtracting timestamp to compensate
13157 delay. Default is disabled.
13158
13159 scale
13160 Set scale used by gain. Acceptable values are:
13161
13162 linlin
13163 linear frequency, linear gain
13164
13165 linlog
13166 linear frequency, logarithmic (in dB) gain (default)
13167
13168 loglin
13169 logarithmic (in octave scale where 20 Hz is 0) frequency,
13170 linear gain
13171
13172 loglog
13173 logarithmic frequency, logarithmic gain
13174
13175 dumpfile
13176 Set file for dumping, suitable for gnuplot.
13177
13178 dumpscale
13179 Set scale for dumpfile. Acceptable values are same with scale
13180 option. Default is linlog.
13181
13182 fft2
13183 Enable 2-channel convolution using complex FFT. This improves speed
13184 significantly. Default is disabled.
13185
13186 min_phase
13187 Enable minimum phase impulse response. Default is disabled.
13188
13189 Examples
13190
13191 • lowpass at 1000 Hz:
13192
13193 firequalizer=gain='if(lt(f,1000), 0, -INF)'
13194
13195 • lowpass at 1000 Hz with gain_entry:
13196
13197 firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
13198
13199 • custom equalization:
13200
13201 firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
13202
13203 • higher delay with zero phase to compensate delay:
13204
13205 firequalizer=delay=0.1:fixed=on:zero_phase=on
13206
13207 • lowpass on left channel, highpass on right channel:
13208
13209 firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
13210 :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
13211
13212 flanger
13213 Apply a flanging effect to the audio.
13214
13215 The filter accepts the following options:
13216
13217 delay
13218 Set base delay in milliseconds. Range from 0 to 30. Default value
13219 is 0.
13220
13221 depth
13222 Set added sweep delay in milliseconds. Range from 0 to 10. Default
13223 value is 2.
13224
13225 regen
13226 Set percentage regeneration (delayed signal feedback). Range from
13227 -95 to 95. Default value is 0.
13228
13229 width
13230 Set percentage of delayed signal mixed with original. Range from 0
13231 to 100. Default value is 71.
13232
13233 speed
13234 Set sweeps per second (Hz). Range from 0.1 to 10. Default value is
13235 0.5.
13236
13237 shape
13238 Set swept wave shape, can be triangular or sinusoidal. Default
13239 value is sinusoidal.
13240
13241 phase
13242 Set swept wave percentage-shift for multi channel. Range from 0 to
13243 100. Default value is 25.
13244
13245 interp
13246 Set delay-line interpolation, linear or quadratic. Default is
13247 linear.
13248
13249 haas
13250 Apply Haas effect to audio.
13251
13252 Note that this makes most sense to apply on mono signals. With this
13253 filter applied to mono signals it give some directionality and
13254 stretches its stereo image.
13255
13256 The filter accepts the following options:
13257
13258 level_in
13259 Set input level. By default is 1, or 0dB
13260
13261 level_out
13262 Set output level. By default is 1, or 0dB.
13263
13264 side_gain
13265 Set gain applied to side part of signal. By default is 1.
13266
13267 middle_source
13268 Set kind of middle source. Can be one of the following:
13269
13270 left
13271 Pick left channel.
13272
13273 right
13274 Pick right channel.
13275
13276 mid Pick middle part signal of stereo image.
13277
13278 side
13279 Pick side part signal of stereo image.
13280
13281 middle_phase
13282 Change middle phase. By default is disabled.
13283
13284 left_delay
13285 Set left channel delay. By default is 2.05 milliseconds.
13286
13287 left_balance
13288 Set left channel balance. By default is -1.
13289
13290 left_gain
13291 Set left channel gain. By default is 1.
13292
13293 left_phase
13294 Change left phase. By default is disabled.
13295
13296 right_delay
13297 Set right channel delay. By defaults is 2.12 milliseconds.
13298
13299 right_balance
13300 Set right channel balance. By default is 1.
13301
13302 right_gain
13303 Set right channel gain. By default is 1.
13304
13305 right_phase
13306 Change right phase. By default is enabled.
13307
13308 hdcd
13309 Decodes High Definition Compatible Digital (HDCD) data. A 16-bit PCM
13310 stream with embedded HDCD codes is expanded into a 20-bit PCM stream.
13311
13312 The filter supports the Peak Extend and Low-level Gain Adjustment
13313 features of HDCD, and detects the Transient Filter flag.
13314
13315 ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
13316
13317 When using the filter with wav, note the default encoding for wav is
13318 16-bit, so the resulting 20-bit stream will be truncated back to
13319 16-bit. Use something like -acodec pcm_s24le after the filter to get
13320 24-bit PCM output.
13321
13322 ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
13323 ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
13324
13325 The filter accepts the following options:
13326
13327 disable_autoconvert
13328 Disable any automatic format conversion or resampling in the filter
13329 graph.
13330
13331 process_stereo
13332 Process the stereo channels together. If target_gain does not match
13333 between channels, consider it invalid and use the last valid
13334 target_gain.
13335
13336 cdt_ms
13337 Set the code detect timer period in ms.
13338
13339 force_pe
13340 Always extend peaks above -3dBFS even if PE isn't signaled.
13341
13342 analyze_mode
13343 Replace audio with a solid tone and adjust the amplitude to signal
13344 some specific aspect of the decoding process. The output file can
13345 be loaded in an audio editor alongside the original to aid
13346 analysis.
13347
13348 "analyze_mode=pe:force_pe=true" can be used to see all samples
13349 above the PE level.
13350
13351 Modes are:
13352
13353 0, off
13354 Disabled
13355
13356 1, lle
13357 Gain adjustment level at each sample
13358
13359 2, pe
13360 Samples where peak extend occurs
13361
13362 3, cdt
13363 Samples where the code detect timer is active
13364
13365 4, tgm
13366 Samples where the target gain does not match between channels
13367
13368 headphone
13369 Apply head-related transfer functions (HRTFs) to create virtual
13370 loudspeakers around the user for binaural listening via headphones.
13371 The HRIRs are provided via additional streams, for each channel one
13372 stereo input stream is needed.
13373
13374 The filter accepts the following options:
13375
13376 map Set mapping of input streams for convolution. The argument is a
13377 '|'-separated list of channel names in order as they are given as
13378 additional stream inputs for filter. This also specify number of
13379 input streams. Number of input streams must be not less than number
13380 of channels in first stream plus one.
13381
13382 gain
13383 Set gain applied to audio. Value is in dB. Default is 0.
13384
13385 type
13386 Set processing type. Can be time or freq. time is processing audio
13387 in time domain which is slow. freq is processing audio in
13388 frequency domain which is fast. Default is freq.
13389
13390 lfe Set custom gain for LFE channels. Value is in dB. Default is 0.
13391
13392 size
13393 Set size of frame in number of samples which will be processed at
13394 once. Default value is 1024. Allowed range is from 1024 to 96000.
13395
13396 hrir
13397 Set format of hrir stream. Default value is stereo. Alternative
13398 value is multich. If value is set to stereo, number of additional
13399 streams should be greater or equal to number of input channels in
13400 first input stream. Also each additional stream should have stereo
13401 number of channels. If value is set to multich, number of
13402 additional streams should be exactly one. Also number of input
13403 channels of additional stream should be equal or greater than twice
13404 number of channels of first input stream.
13405
13406 Examples
13407
13408 • Full example using wav files as coefficients with amovie filters
13409 for 7.1 downmix, each amovie filter use stereo file with IR
13410 coefficients as input. The files give coefficients for each
13411 position of virtual loudspeaker:
13412
13413 ffmpeg -i input.wav
13414 -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"
13415 output.wav
13416
13417 • Full example using wav files as coefficients with amovie filters
13418 for 7.1 downmix, but now in multich hrir format.
13419
13420 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"
13421 output.wav
13422
13423 highpass
13424 Apply a high-pass filter with 3dB point frequency. The filter can be
13425 either single-pole, or double-pole (the default). The filter roll off
13426 at 6dB per pole per octave (20dB per pole per decade).
13427
13428 The filter accepts the following options:
13429
13430 frequency, f
13431 Set frequency in Hz. Default is 3000.
13432
13433 poles, p
13434 Set number of poles. Default is 2.
13435
13436 width_type, t
13437 Set method to specify band-width of filter.
13438
13439 h Hz
13440
13441 q Q-Factor
13442
13443 o octave
13444
13445 s slope
13446
13447 k kHz
13448
13449 width, w
13450 Specify the band-width of a filter in width_type units. Applies
13451 only to double-pole filter. The default is 0.707q and gives a
13452 Butterworth response.
13453
13454 mix, m
13455 How much to use filtered signal in output. Default is 1. Range is
13456 between 0 and 1.
13457
13458 channels, c
13459 Specify which channels to filter, by default all available are
13460 filtered.
13461
13462 normalize, n
13463 Normalize biquad coefficients, by default is disabled. Enabling it
13464 will normalize magnitude response at DC to 0dB.
13465
13466 transform, a
13467 Set transform type of IIR filter.
13468
13469 di
13470 dii
13471 tdii
13472 latt
13473 svf
13474 precision, r
13475 Set precison of filtering.
13476
13477 auto
13478 Pick automatic sample format depending on surround filters.
13479
13480 s16 Always use signed 16-bit.
13481
13482 s32 Always use signed 32-bit.
13483
13484 f32 Always use float 32-bit.
13485
13486 f64 Always use float 64-bit.
13487
13488 Commands
13489
13490 This filter supports the following commands:
13491
13492 frequency, f
13493 Change highpass frequency. Syntax for the command is : "frequency"
13494
13495 width_type, t
13496 Change highpass width_type. Syntax for the command is :
13497 "width_type"
13498
13499 width, w
13500 Change highpass width. Syntax for the command is : "width"
13501
13502 mix, m
13503 Change highpass mix. Syntax for the command is : "mix"
13504
13505 join
13506 Join multiple input streams into one multi-channel stream.
13507
13508 It accepts the following parameters:
13509
13510 inputs
13511 The number of input streams. It defaults to 2.
13512
13513 channel_layout
13514 The desired output channel layout. It defaults to stereo.
13515
13516 map Map channels from inputs to output. The argument is a '|'-separated
13517 list of mappings, each in the "input_idx.in_channel-out_channel"
13518 form. input_idx is the 0-based index of the input stream.
13519 in_channel can be either the name of the input channel (e.g. FL for
13520 front left) or its index in the specified input stream. out_channel
13521 is the name of the output channel.
13522
13523 The filter will attempt to guess the mappings when they are not
13524 specified explicitly. It does so by first trying to find an unused
13525 matching input channel and if that fails it picks the first unused
13526 input channel.
13527
13528 Join 3 inputs (with properly set channel layouts):
13529
13530 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
13531
13532 Build a 5.1 output from 6 single-channel streams:
13533
13534 ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
13535 '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'
13536 out
13537
13538 ladspa
13539 Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin.
13540
13541 To enable compilation of this filter you need to configure FFmpeg with
13542 "--enable-ladspa".
13543
13544 file, f
13545 Specifies the name of LADSPA plugin library to load. If the
13546 environment variable LADSPA_PATH is defined, the LADSPA plugin is
13547 searched in each one of the directories specified by the colon
13548 separated list in LADSPA_PATH, otherwise in the standard LADSPA
13549 paths, which are in this order: HOME/.ladspa/lib/,
13550 /usr/local/lib/ladspa/, /usr/lib/ladspa/.
13551
13552 plugin, p
13553 Specifies the plugin within the library. Some libraries contain
13554 only one plugin, but others contain many of them. If this is not
13555 set filter will list all available plugins within the specified
13556 library.
13557
13558 controls, c
13559 Set the '|' separated list of controls which are zero or more
13560 floating point values that determine the behavior of the loaded
13561 plugin (for example delay, threshold or gain). Controls need to be
13562 defined using the following syntax:
13563 c0=value0|c1=value1|c2=value2|..., where valuei is the value set on
13564 the i-th control. Alternatively they can be also defined using the
13565 following syntax: value0|value1|value2|..., where valuei is the
13566 value set on the i-th control. If controls is set to "help", all
13567 available controls and their valid ranges are printed.
13568
13569 sample_rate, s
13570 Specify the sample rate, default to 44100. Only used if plugin have
13571 zero inputs.
13572
13573 nb_samples, n
13574 Set the number of samples per channel per each output frame,
13575 default is 1024. Only used if plugin have zero inputs.
13576
13577 duration, d
13578 Set the minimum duration of the sourced audio. See the Time
13579 duration section in the ffmpeg-utils(1) manual for the accepted
13580 syntax. Note that the resulting duration may be greater than the
13581 specified duration, as the generated audio is always cut at the end
13582 of a complete frame. If not specified, or the expressed duration
13583 is negative, the audio is supposed to be generated forever. Only
13584 used if plugin have zero inputs.
13585
13586 latency, l
13587 Enable latency compensation, by default is disabled. Only used if
13588 plugin have inputs.
13589
13590 Examples
13591
13592 • List all available plugins within amp (LADSPA example plugin)
13593 library:
13594
13595 ladspa=file=amp
13596
13597 • List all available controls and their valid ranges for "vcf_notch"
13598 plugin from "VCF" library:
13599
13600 ladspa=f=vcf:p=vcf_notch:c=help
13601
13602 • Simulate low quality audio equipment using "Computer Music Toolkit"
13603 (CMT) plugin library:
13604
13605 ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
13606
13607 • Add reverberation to the audio using TAP-plugins (Tom's Audio
13608 Processing plugins):
13609
13610 ladspa=file=tap_reverb:tap_reverb
13611
13612 • Generate white noise, with 0.2 amplitude:
13613
13614 ladspa=file=cmt:noise_source_white:c=c0=.2
13615
13616 • Generate 20 bpm clicks using plugin "C* Click - Metronome" from the
13617 "C* Audio Plugin Suite" (CAPS) library:
13618
13619 ladspa=file=caps:Click:c=c1=20'
13620
13621 • Apply "C* Eq10X2 - Stereo 10-band equaliser" effect:
13622
13623 ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
13624
13625 • Increase volume by 20dB using fast lookahead limiter from Steve
13626 Harris "SWH Plugins" collection:
13627
13628 ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
13629
13630 • Attenuate low frequencies using Multiband EQ from Steve Harris "SWH
13631 Plugins" collection:
13632
13633 ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
13634
13635 • Reduce stereo image using "Narrower" from the "C* Audio Plugin
13636 Suite" (CAPS) library:
13637
13638 ladspa=caps:Narrower
13639
13640 • Another white noise, now using "C* Audio Plugin Suite" (CAPS)
13641 library:
13642
13643 ladspa=caps:White:.2
13644
13645 • Some fractal noise, using "C* Audio Plugin Suite" (CAPS) library:
13646
13647 ladspa=caps:Fractal:c=c1=1
13648
13649 • Dynamic volume normalization using "VLevel" plugin:
13650
13651 ladspa=vlevel-ladspa:vlevel_mono
13652
13653 Commands
13654
13655 This filter supports the following commands:
13656
13657 cN Modify the N-th control value.
13658
13659 If the specified value is not valid, it is ignored and prior one is
13660 kept.
13661
13662 loudnorm
13663 EBU R128 loudness normalization. Includes both dynamic and linear
13664 normalization modes. Support for both single pass (livestreams, files)
13665 and double pass (files) modes. This algorithm can target IL, LRA, and
13666 maximum true peak. In dynamic mode, to accurately detect true peaks,
13667 the audio stream will be upsampled to 192 kHz. Use the "-ar" option or
13668 "aresample" filter to explicitly set an output sample rate.
13669
13670 The filter accepts the following options:
13671
13672 I, i
13673 Set integrated loudness target. Range is -70.0 - -5.0. Default
13674 value is -24.0.
13675
13676 LRA, lra
13677 Set loudness range target. Range is 1.0 - 20.0. Default value is
13678 7.0.
13679
13680 TP, tp
13681 Set maximum true peak. Range is -9.0 - +0.0. Default value is
13682 -2.0.
13683
13684 measured_I, measured_i
13685 Measured IL of input file. Range is -99.0 - +0.0.
13686
13687 measured_LRA, measured_lra
13688 Measured LRA of input file. Range is 0.0 - 99.0.
13689
13690 measured_TP, measured_tp
13691 Measured true peak of input file. Range is -99.0 - +99.0.
13692
13693 measured_thresh
13694 Measured threshold of input file. Range is -99.0 - +0.0.
13695
13696 offset
13697 Set offset gain. Gain is applied before the true-peak limiter.
13698 Range is -99.0 - +99.0. Default is +0.0.
13699
13700 linear
13701 Normalize by linearly scaling the source audio. "measured_I",
13702 "measured_LRA", "measured_TP", and "measured_thresh" must all be
13703 specified. Target LRA shouldn't be lower than source LRA and the
13704 change in integrated loudness shouldn't result in a true peak which
13705 exceeds the target TP. If any of these conditions aren't met,
13706 normalization mode will revert to dynamic. Options are "true" or
13707 "false". Default is "true".
13708
13709 dual_mono
13710 Treat mono input files as "dual-mono". If a mono file is intended
13711 for playback on a stereo system, its EBU R128 measurement will be
13712 perceptually incorrect. If set to "true", this option will
13713 compensate for this effect. Multi-channel input files are not
13714 affected by this option. Options are true or false. Default is
13715 false.
13716
13717 print_format
13718 Set print format for stats. Options are summary, json, or none.
13719 Default value is none.
13720
13721 lowpass
13722 Apply a low-pass filter with 3dB point frequency. The filter can be
13723 either single-pole or double-pole (the default). The filter roll off
13724 at 6dB per pole per octave (20dB per pole per decade).
13725
13726 The filter accepts the following options:
13727
13728 frequency, f
13729 Set frequency in Hz. Default is 500.
13730
13731 poles, p
13732 Set number of poles. Default is 2.
13733
13734 width_type, t
13735 Set method to specify band-width of filter.
13736
13737 h Hz
13738
13739 q Q-Factor
13740
13741 o octave
13742
13743 s slope
13744
13745 k kHz
13746
13747 width, w
13748 Specify the band-width of a filter in width_type units. Applies
13749 only to double-pole filter. The default is 0.707q and gives a
13750 Butterworth response.
13751
13752 mix, m
13753 How much to use filtered signal in output. Default is 1. Range is
13754 between 0 and 1.
13755
13756 channels, c
13757 Specify which channels to filter, by default all available are
13758 filtered.
13759
13760 normalize, n
13761 Normalize biquad coefficients, by default is disabled. Enabling it
13762 will normalize magnitude response at DC to 0dB.
13763
13764 transform, a
13765 Set transform type of IIR filter.
13766
13767 di
13768 dii
13769 tdii
13770 latt
13771 svf
13772 precision, r
13773 Set precison of filtering.
13774
13775 auto
13776 Pick automatic sample format depending on surround filters.
13777
13778 s16 Always use signed 16-bit.
13779
13780 s32 Always use signed 32-bit.
13781
13782 f32 Always use float 32-bit.
13783
13784 f64 Always use float 64-bit.
13785
13786 Examples
13787
13788 • Lowpass only LFE channel, it LFE is not present it does nothing:
13789
13790 lowpass=c=LFE
13791
13792 Commands
13793
13794 This filter supports the following commands:
13795
13796 frequency, f
13797 Change lowpass frequency. Syntax for the command is : "frequency"
13798
13799 width_type, t
13800 Change lowpass width_type. Syntax for the command is :
13801 "width_type"
13802
13803 width, w
13804 Change lowpass width. Syntax for the command is : "width"
13805
13806 mix, m
13807 Change lowpass mix. Syntax for the command is : "mix"
13808
13809 lv2
13810 Load a LV2 (LADSPA Version 2) plugin.
13811
13812 To enable compilation of this filter you need to configure FFmpeg with
13813 "--enable-lv2".
13814
13815 plugin, p
13816 Specifies the plugin URI. You may need to escape ':'.
13817
13818 controls, c
13819 Set the '|' separated list of controls which are zero or more
13820 floating point values that determine the behavior of the loaded
13821 plugin (for example delay, threshold or gain). If controls is set
13822 to "help", all available controls and their valid ranges are
13823 printed.
13824
13825 sample_rate, s
13826 Specify the sample rate, default to 44100. Only used if plugin have
13827 zero inputs.
13828
13829 nb_samples, n
13830 Set the number of samples per channel per each output frame,
13831 default is 1024. Only used if plugin have zero inputs.
13832
13833 duration, d
13834 Set the minimum duration of the sourced audio. See the Time
13835 duration section in the ffmpeg-utils(1) manual for the accepted
13836 syntax. Note that the resulting duration may be greater than the
13837 specified duration, as the generated audio is always cut at the end
13838 of a complete frame. If not specified, or the expressed duration
13839 is negative, the audio is supposed to be generated forever. Only
13840 used if plugin have zero inputs.
13841
13842 Examples
13843
13844 • Apply bass enhancer plugin from Calf:
13845
13846 lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
13847
13848 • Apply vinyl plugin from Calf:
13849
13850 lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
13851
13852 • Apply bit crusher plugin from ArtyFX:
13853
13854 lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
13855
13856 mcompand
13857 Multiband Compress or expand the audio's dynamic range.
13858
13859 The input audio is divided into bands using 4th order Linkwitz-Riley
13860 IIRs. This is akin to the crossover of a loudspeaker, and results in
13861 flat frequency response when absent compander action.
13862
13863 It accepts the following parameters:
13864
13865 args
13866 This option syntax is: attack,decay,[attack,decay..] soft-knee
13867 points crossover_frequency [delay [initial_volume [gain]]] |
13868 attack,decay ... For explanation of each item refer to compand
13869 filter documentation.
13870
13871 pan
13872 Mix channels with specific gain levels. The filter accepts the output
13873 channel layout followed by a set of channels definitions.
13874
13875 This filter is also designed to efficiently remap the channels of an
13876 audio stream.
13877
13878 The filter accepts parameters of the form: "l|outdef|outdef|..."
13879
13880 l output channel layout or number of channels
13881
13882 outdef
13883 output channel specification, of the form:
13884 "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
13885
13886 out_name
13887 output channel to define, either a channel name (FL, FR, etc.) or a
13888 channel number (c0, c1, etc.)
13889
13890 gain
13891 multiplicative coefficient for the channel, 1 leaving the volume
13892 unchanged
13893
13894 in_name
13895 input channel to use, see out_name for details; it is not possible
13896 to mix named and numbered input channels
13897
13898 If the `=' in a channel specification is replaced by `<', then the
13899 gains for that specification will be renormalized so that the total is
13900 1, thus avoiding clipping noise.
13901
13902 Mixing examples
13903
13904 For example, if you want to down-mix from stereo to mono, but with a
13905 bigger factor for the left channel:
13906
13907 pan=1c|c0=0.9*c0+0.1*c1
13908
13909 A customized down-mix to stereo that works automatically for 3-, 4-, 5-
13910 and 7-channels surround:
13911
13912 pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
13913
13914 Note that ffmpeg integrates a default down-mix (and up-mix) system that
13915 should be preferred (see "-ac" option) unless you have very specific
13916 needs.
13917
13918 Remapping examples
13919
13920 The channel remapping will be effective if, and only if:
13921
13922 *<gain coefficients are zeroes or ones,>
13923 *<only one input per channel output,>
13924
13925 If all these conditions are satisfied, the filter will notify the user
13926 ("Pure channel mapping detected"), and use an optimized and lossless
13927 method to do the remapping.
13928
13929 For example, if you have a 5.1 source and want a stereo audio stream by
13930 dropping the extra channels:
13931
13932 pan="stereo| c0=FL | c1=FR"
13933
13934 Given the same source, you can also switch front left and front right
13935 channels and keep the input channel layout:
13936
13937 pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
13938
13939 If the input is a stereo audio stream, you can mute the front left
13940 channel (and still keep the stereo channel layout) with:
13941
13942 pan="stereo|c1=c1"
13943
13944 Still with a stereo audio stream input, you can copy the right channel
13945 in both front left and right:
13946
13947 pan="stereo| c0=FR | c1=FR"
13948
13949 replaygain
13950 ReplayGain scanner filter. This filter takes an audio stream as an
13951 input and outputs it unchanged. At end of filtering it displays
13952 "track_gain" and "track_peak".
13953
13954 resample
13955 Convert the audio sample format, sample rate and channel layout. It is
13956 not meant to be used directly.
13957
13958 rubberband
13959 Apply time-stretching and pitch-shifting with librubberband.
13960
13961 To enable compilation of this filter, you need to configure FFmpeg with
13962 "--enable-librubberband".
13963
13964 The filter accepts the following options:
13965
13966 tempo
13967 Set tempo scale factor.
13968
13969 pitch
13970 Set pitch scale factor.
13971
13972 transients
13973 Set transients detector. Possible values are:
13974
13975 crisp
13976 mixed
13977 smooth
13978 detector
13979 Set detector. Possible values are:
13980
13981 compound
13982 percussive
13983 soft
13984 phase
13985 Set phase. Possible values are:
13986
13987 laminar
13988 independent
13989 window
13990 Set processing window size. Possible values are:
13991
13992 standard
13993 short
13994 long
13995 smoothing
13996 Set smoothing. Possible values are:
13997
13998 off
13999 on
14000 formant
14001 Enable formant preservation when shift pitching. Possible values
14002 are:
14003
14004 shifted
14005 preserved
14006 pitchq
14007 Set pitch quality. Possible values are:
14008
14009 quality
14010 speed
14011 consistency
14012 channels
14013 Set channels. Possible values are:
14014
14015 apart
14016 together
14017
14018 Commands
14019
14020 This filter supports the following commands:
14021
14022 tempo
14023 Change filter tempo scale factor. Syntax for the command is :
14024 "tempo"
14025
14026 pitch
14027 Change filter pitch scale factor. Syntax for the command is :
14028 "pitch"
14029
14030 sidechaincompress
14031 This filter acts like normal compressor but has the ability to compress
14032 detected signal using second input signal. It needs two input streams
14033 and returns one output stream. First input stream will be processed
14034 depending on second stream signal. The filtered signal then can be
14035 filtered with other filters in later stages of processing. See pan and
14036 amerge filter.
14037
14038 The filter accepts the following options:
14039
14040 level_in
14041 Set input gain. Default is 1. Range is between 0.015625 and 64.
14042
14043 mode
14044 Set mode of compressor operation. Can be "upward" or "downward".
14045 Default is "downward".
14046
14047 threshold
14048 If a signal of second stream raises above this level it will affect
14049 the gain reduction of first stream. By default is 0.125. Range is
14050 between 0.00097563 and 1.
14051
14052 ratio
14053 Set a ratio about which the signal is reduced. 1:2 means that if
14054 the level raised 4dB above the threshold, it will be only 2dB above
14055 after the reduction. Default is 2. Range is between 1 and 20.
14056
14057 attack
14058 Amount of milliseconds the signal has to rise above the threshold
14059 before gain reduction starts. Default is 20. Range is between 0.01
14060 and 2000.
14061
14062 release
14063 Amount of milliseconds the signal has to fall below the threshold
14064 before reduction is decreased again. Default is 250. Range is
14065 between 0.01 and 9000.
14066
14067 makeup
14068 Set the amount by how much signal will be amplified after
14069 processing. Default is 1. Range is from 1 to 64.
14070
14071 knee
14072 Curve the sharp knee around the threshold to enter gain reduction
14073 more softly. Default is 2.82843. Range is between 1 and 8.
14074
14075 link
14076 Choose if the "average" level between all channels of side-chain
14077 stream or the louder("maximum") channel of side-chain stream
14078 affects the reduction. Default is "average".
14079
14080 detection
14081 Should the exact signal be taken in case of "peak" or an RMS one in
14082 case of "rms". Default is "rms" which is mainly smoother.
14083
14084 level_sc
14085 Set sidechain gain. Default is 1. Range is between 0.015625 and 64.
14086
14087 mix How much to use compressed signal in output. Default is 1. Range
14088 is between 0 and 1.
14089
14090 Commands
14091
14092 This filter supports the all above options as commands.
14093
14094 Examples
14095
14096 • Full ffmpeg example taking 2 audio inputs, 1st input to be
14097 compressed depending on the signal of 2nd input and later
14098 compressed signal to be merged with 2nd input:
14099
14100 ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
14101
14102 sidechaingate
14103 A sidechain gate acts like a normal (wideband) gate but has the ability
14104 to filter the detected signal before sending it to the gain reduction
14105 stage. Normally a gate uses the full range signal to detect a level
14106 above the threshold. For example: If you cut all lower frequencies
14107 from your sidechain signal the gate will decrease the volume of your
14108 track only if not enough highs appear. With this technique you are able
14109 to reduce the resonation of a natural drum or remove "rumbling" of
14110 muted strokes from a heavily distorted guitar. It needs two input
14111 streams and returns one output stream. First input stream will be
14112 processed depending on second stream signal.
14113
14114 The filter accepts the following options:
14115
14116 level_in
14117 Set input level before filtering. Default is 1. Allowed range is
14118 from 0.015625 to 64.
14119
14120 mode
14121 Set the mode of operation. Can be "upward" or "downward". Default
14122 is "downward". If set to "upward" mode, higher parts of signal will
14123 be amplified, expanding dynamic range in upward direction.
14124 Otherwise, in case of "downward" lower parts of signal will be
14125 reduced.
14126
14127 range
14128 Set the level of gain reduction when the signal is below the
14129 threshold. Default is 0.06125. Allowed range is from 0 to 1.
14130 Setting this to 0 disables reduction and then filter behaves like
14131 expander.
14132
14133 threshold
14134 If a signal rises above this level the gain reduction is released.
14135 Default is 0.125. Allowed range is from 0 to 1.
14136
14137 ratio
14138 Set a ratio about which the signal is reduced. Default is 2.
14139 Allowed range is from 1 to 9000.
14140
14141 attack
14142 Amount of milliseconds the signal has to rise above the threshold
14143 before gain reduction stops. Default is 20 milliseconds. Allowed
14144 range is from 0.01 to 9000.
14145
14146 release
14147 Amount of milliseconds the signal has to fall below the threshold
14148 before the reduction is increased again. Default is 250
14149 milliseconds. Allowed range is from 0.01 to 9000.
14150
14151 makeup
14152 Set amount of amplification of signal after processing. Default is
14153 1. Allowed range is from 1 to 64.
14154
14155 knee
14156 Curve the sharp knee around the threshold to enter gain reduction
14157 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
14158
14159 detection
14160 Choose if exact signal should be taken for detection or an RMS like
14161 one. Default is rms. Can be peak or rms.
14162
14163 link
14164 Choose if the average level between all channels or the louder
14165 channel affects the reduction. Default is average. Can be average
14166 or maximum.
14167
14168 level_sc
14169 Set sidechain gain. Default is 1. Range is from 0.015625 to 64.
14170
14171 Commands
14172
14173 This filter supports the all above options as commands.
14174
14175 silencedetect
14176 Detect silence in an audio stream.
14177
14178 This filter logs a message when it detects that the input audio volume
14179 is less or equal to a noise tolerance value for a duration greater or
14180 equal to the minimum detected noise duration.
14181
14182 The printed times and duration are expressed in seconds. The
14183 "lavfi.silence_start" or "lavfi.silence_start.X" metadata key is set on
14184 the first frame whose timestamp equals or exceeds the detection
14185 duration and it contains the timestamp of the first frame of the
14186 silence.
14187
14188 The "lavfi.silence_duration" or "lavfi.silence_duration.X" and
14189 "lavfi.silence_end" or "lavfi.silence_end.X" metadata keys are set on
14190 the first frame after the silence. If mono is enabled, and each channel
14191 is evaluated separately, the ".X" suffixed keys are used, and "X"
14192 corresponds to the channel number.
14193
14194 The filter accepts the following options:
14195
14196 noise, n
14197 Set noise tolerance. Can be specified in dB (in case "dB" is
14198 appended to the specified value) or amplitude ratio. Default is
14199 -60dB, or 0.001.
14200
14201 duration, d
14202 Set silence duration until notification (default is 2 seconds). See
14203 the Time duration section in the ffmpeg-utils(1) manual for the
14204 accepted syntax.
14205
14206 mono, m
14207 Process each channel separately, instead of combined. By default is
14208 disabled.
14209
14210 Examples
14211
14212 • Detect 5 seconds of silence with -50dB noise tolerance:
14213
14214 silencedetect=n=-50dB:d=5
14215
14216 • Complete example with ffmpeg to detect silence with 0.0001 noise
14217 tolerance in silence.mp3:
14218
14219 ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
14220
14221 silenceremove
14222 Remove silence from the beginning, middle or end of the audio.
14223
14224 The filter accepts the following options:
14225
14226 start_periods
14227 This value is used to indicate if audio should be trimmed at
14228 beginning of the audio. A value of zero indicates no silence should
14229 be trimmed from the beginning. When specifying a non-zero value, it
14230 trims audio up until it finds non-silence. Normally, when trimming
14231 silence from beginning of audio the start_periods will be 1 but it
14232 can be increased to higher values to trim all audio up to specific
14233 count of non-silence periods. Default value is 0.
14234
14235 start_duration
14236 Specify the amount of time that non-silence must be detected before
14237 it stops trimming audio. By increasing the duration, bursts of
14238 noises can be treated as silence and trimmed off. Default value is
14239 0.
14240
14241 start_threshold
14242 This indicates what sample value should be treated as silence. For
14243 digital audio, a value of 0 may be fine but for audio recorded from
14244 analog, you may wish to increase the value to account for
14245 background noise. Can be specified in dB (in case "dB" is appended
14246 to the specified value) or amplitude ratio. Default value is 0.
14247
14248 start_silence
14249 Specify max duration of silence at beginning that will be kept
14250 after trimming. Default is 0, which is equal to trimming all
14251 samples detected as silence.
14252
14253 start_mode
14254 Specify mode of detection of silence end in start of multi-channel
14255 audio. Can be any or all. Default is any. With any, any sample
14256 that is detected as non-silence will cause stopped trimming of
14257 silence. With all, only if all channels are detected as non-
14258 silence will cause stopped trimming of silence.
14259
14260 stop_periods
14261 Set the count for trimming silence from the end of audio. To
14262 remove silence from the middle of a file, specify a stop_periods
14263 that is negative. This value is then treated as a positive value
14264 and is used to indicate the effect should restart processing as
14265 specified by start_periods, making it suitable for removing periods
14266 of silence in the middle of the audio. Default value is 0.
14267
14268 stop_duration
14269 Specify a duration of silence that must exist before audio is not
14270 copied any more. By specifying a higher duration, silence that is
14271 wanted can be left in the audio. Default value is 0.
14272
14273 stop_threshold
14274 This is the same as start_threshold but for trimming silence from
14275 the end of audio. Can be specified in dB (in case "dB" is appended
14276 to the specified value) or amplitude ratio. Default value is 0.
14277
14278 stop_silence
14279 Specify max duration of silence at end that will be kept after
14280 trimming. Default is 0, which is equal to trimming all samples
14281 detected as silence.
14282
14283 stop_mode
14284 Specify mode of detection of silence start in end of multi-channel
14285 audio. Can be any or all. Default is any. With any, any sample
14286 that is detected as non-silence will cause stopped trimming of
14287 silence. With all, only if all channels are detected as non-
14288 silence will cause stopped trimming of silence.
14289
14290 detection
14291 Set how is silence detected. Can be "rms" or "peak". Second is
14292 faster and works better with digital silence which is exactly 0.
14293 Default value is "rms".
14294
14295 window
14296 Set duration in number of seconds used to calculate size of window
14297 in number of samples for detecting silence. Default value is 0.02.
14298 Allowed range is from 0 to 10.
14299
14300 Examples
14301
14302 • The following example shows how this filter can be used to start a
14303 recording that does not contain the delay at the start which
14304 usually occurs between pressing the record button and the start of
14305 the performance:
14306
14307 silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
14308
14309 • Trim all silence encountered from beginning to end where there is
14310 more than 1 second of silence in audio:
14311
14312 silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
14313
14314 • Trim all digital silence samples, using peak detection, from
14315 beginning to end where there is more than 0 samples of digital
14316 silence in audio and digital silence is detected in all channels at
14317 same positions in stream:
14318
14319 silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
14320
14321 sofalizer
14322 SOFAlizer uses head-related transfer functions (HRTFs) to create
14323 virtual loudspeakers around the user for binaural listening via
14324 headphones (audio formats up to 9 channels supported). The HRTFs are
14325 stored in SOFA files (see <http://www.sofacoustics.org/> for a
14326 database). SOFAlizer is developed at the Acoustics Research Institute
14327 (ARI) of the Austrian Academy of Sciences.
14328
14329 To enable compilation of this filter you need to configure FFmpeg with
14330 "--enable-libmysofa".
14331
14332 The filter accepts the following options:
14333
14334 sofa
14335 Set the SOFA file used for rendering.
14336
14337 gain
14338 Set gain applied to audio. Value is in dB. Default is 0.
14339
14340 rotation
14341 Set rotation of virtual loudspeakers in deg. Default is 0.
14342
14343 elevation
14344 Set elevation of virtual speakers in deg. Default is 0.
14345
14346 radius
14347 Set distance in meters between loudspeakers and the listener with
14348 near-field HRTFs. Default is 1.
14349
14350 type
14351 Set processing type. Can be time or freq. time is processing audio
14352 in time domain which is slow. freq is processing audio in
14353 frequency domain which is fast. Default is freq.
14354
14355 speakers
14356 Set custom positions of virtual loudspeakers. Syntax for this
14357 option is: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Each
14358 virtual loudspeaker is described with short channel name following
14359 with azimuth and elevation in degrees. Each virtual loudspeaker
14360 description is separated by '|'. For example to override front
14361 left and front right channel positions use: 'speakers=FL 45 15|FR
14362 345 15'. Descriptions with unrecognised channel names are ignored.
14363
14364 lfegain
14365 Set custom gain for LFE channels. Value is in dB. Default is 0.
14366
14367 framesize
14368 Set custom frame size in number of samples. Default is 1024.
14369 Allowed range is from 1024 to 96000. Only used if option type is
14370 set to freq.
14371
14372 normalize
14373 Should all IRs be normalized upon importing SOFA file. By default
14374 is enabled.
14375
14376 interpolate
14377 Should nearest IRs be interpolated with neighbor IRs if exact
14378 position does not match. By default is disabled.
14379
14380 minphase
14381 Minphase all IRs upon loading of SOFA file. By default is disabled.
14382
14383 anglestep
14384 Set neighbor search angle step. Only used if option interpolate is
14385 enabled.
14386
14387 radstep
14388 Set neighbor search radius step. Only used if option interpolate is
14389 enabled.
14390
14391 Examples
14392
14393 • Using ClubFritz6 sofa file:
14394
14395 sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
14396
14397 • Using ClubFritz12 sofa file and bigger radius with small rotation:
14398
14399 sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
14400
14401 • Similar as above but with custom speaker positions for front left,
14402 front right, back left and back right and also with custom gain:
14403
14404 "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
14405
14406 speechnorm
14407 Speech Normalizer.
14408
14409 This filter expands or compresses each half-cycle of audio samples
14410 (local set of samples all above or all below zero and between two
14411 nearest zero crossings) depending on threshold value, so audio reaches
14412 target peak value under conditions controlled by below options.
14413
14414 The filter accepts the following options:
14415
14416 peak, p
14417 Set the expansion target peak value. This specifies the highest
14418 allowed absolute amplitude level for the normalized audio input.
14419 Default value is 0.95. Allowed range is from 0.0 to 1.0.
14420
14421 expansion, e
14422 Set the maximum expansion factor. Allowed range is from 1.0 to
14423 50.0. Default value is 2.0. This option controls maximum local
14424 half-cycle of samples expansion. The maximum expansion would be
14425 such that local peak value reaches target peak value but never to
14426 surpass it and that ratio between new and previous peak value does
14427 not surpass this option value.
14428
14429 compression, c
14430 Set the maximum compression factor. Allowed range is from 1.0 to
14431 50.0. Default value is 2.0. This option controls maximum local
14432 half-cycle of samples compression. This option is used only if
14433 threshold option is set to value greater than 0.0, then in such
14434 cases when local peak is lower or same as value set by threshold
14435 all samples belonging to that peak's half-cycle will be compressed
14436 by current compression factor.
14437
14438 threshold, t
14439 Set the threshold value. Default value is 0.0. Allowed range is
14440 from 0.0 to 1.0. This option specifies which half-cycles of
14441 samples will be compressed and which will be expanded. Any half-
14442 cycle samples with their local peak value below or same as this
14443 option value will be compressed by current compression factor,
14444 otherwise, if greater than threshold value they will be expanded
14445 with expansion factor so that it could reach peak target value but
14446 never surpass it.
14447
14448 raise, r
14449 Set the expansion raising amount per each half-cycle of samples.
14450 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
14451 controls how fast expansion factor is raised per each new half-
14452 cycle until it reaches expansion value. Setting this options too
14453 high may lead to distortions.
14454
14455 fall, f
14456 Set the compression raising amount per each half-cycle of samples.
14457 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
14458 controls how fast compression factor is raised per each new half-
14459 cycle until it reaches compression value.
14460
14461 channels, h
14462 Specify which channels to filter, by default all available channels
14463 are filtered.
14464
14465 invert, i
14466 Enable inverted filtering, by default is disabled. This inverts
14467 interpretation of threshold option. When enabled any half-cycle of
14468 samples with their local peak value below or same as threshold
14469 option will be expanded otherwise it will be compressed.
14470
14471 link, l
14472 Link channels when calculating gain applied to each filtered
14473 channel sample, by default is disabled. When disabled each
14474 filtered channel gain calculation is independent, otherwise when
14475 this option is enabled the minimum of all possible gains for each
14476 filtered channel is used.
14477
14478 Commands
14479
14480 This filter supports the all above options as commands.
14481
14482 stereotools
14483 This filter has some handy utilities to manage stereo signals, for
14484 converting M/S stereo recordings to L/R signal while having control
14485 over the parameters or spreading the stereo image of master track.
14486
14487 The filter accepts the following options:
14488
14489 level_in
14490 Set input level before filtering for both channels. Defaults is 1.
14491 Allowed range is from 0.015625 to 64.
14492
14493 level_out
14494 Set output level after filtering for both channels. Defaults is 1.
14495 Allowed range is from 0.015625 to 64.
14496
14497 balance_in
14498 Set input balance between both channels. Default is 0. Allowed
14499 range is from -1 to 1.
14500
14501 balance_out
14502 Set output balance between both channels. Default is 0. Allowed
14503 range is from -1 to 1.
14504
14505 softclip
14506 Enable softclipping. Results in analog distortion instead of harsh
14507 digital 0dB clipping. Disabled by default.
14508
14509 mutel
14510 Mute the left channel. Disabled by default.
14511
14512 muter
14513 Mute the right channel. Disabled by default.
14514
14515 phasel
14516 Change the phase of the left channel. Disabled by default.
14517
14518 phaser
14519 Change the phase of the right channel. Disabled by default.
14520
14521 mode
14522 Set stereo mode. Available values are:
14523
14524 lr>lr
14525 Left/Right to Left/Right, this is default.
14526
14527 lr>ms
14528 Left/Right to Mid/Side.
14529
14530 ms>lr
14531 Mid/Side to Left/Right.
14532
14533 lr>ll
14534 Left/Right to Left/Left.
14535
14536 lr>rr
14537 Left/Right to Right/Right.
14538
14539 lr>l+r
14540 Left/Right to Left + Right.
14541
14542 lr>rl
14543 Left/Right to Right/Left.
14544
14545 ms>ll
14546 Mid/Side to Left/Left.
14547
14548 ms>rr
14549 Mid/Side to Right/Right.
14550
14551 ms>rl
14552 Mid/Side to Right/Left.
14553
14554 lr>l-r
14555 Left/Right to Left - Right.
14556
14557 slev
14558 Set level of side signal. Default is 1. Allowed range is from
14559 0.015625 to 64.
14560
14561 sbal
14562 Set balance of side signal. Default is 0. Allowed range is from -1
14563 to 1.
14564
14565 mlev
14566 Set level of the middle signal. Default is 1. Allowed range is
14567 from 0.015625 to 64.
14568
14569 mpan
14570 Set middle signal pan. Default is 0. Allowed range is from -1 to 1.
14571
14572 base
14573 Set stereo base between mono and inversed channels. Default is 0.
14574 Allowed range is from -1 to 1.
14575
14576 delay
14577 Set delay in milliseconds how much to delay left from right channel
14578 and vice versa. Default is 0. Allowed range is from -20 to 20.
14579
14580 sclevel
14581 Set S/C level. Default is 1. Allowed range is from 1 to 100.
14582
14583 phase
14584 Set the stereo phase in degrees. Default is 0. Allowed range is
14585 from 0 to 360.
14586
14587 bmode_in, bmode_out
14588 Set balance mode for balance_in/balance_out option.
14589
14590 Can be one of the following:
14591
14592 balance
14593 Classic balance mode. Attenuate one channel at time. Gain is
14594 raised up to 1.
14595
14596 amplitude
14597 Similar as classic mode above but gain is raised up to 2.
14598
14599 power
14600 Equal power distribution, from -6dB to +6dB range.
14601
14602 Commands
14603
14604 This filter supports the all above options as commands.
14605
14606 Examples
14607
14608 • Apply karaoke like effect:
14609
14610 stereotools=mlev=0.015625
14611
14612 • Convert M/S signal to L/R:
14613
14614 "stereotools=mode=ms>lr"
14615
14616 stereowiden
14617 This filter enhance the stereo effect by suppressing signal common to
14618 both channels and by delaying the signal of left into right and vice
14619 versa, thereby widening the stereo effect.
14620
14621 The filter accepts the following options:
14622
14623 delay
14624 Time in milliseconds of the delay of left signal into right and
14625 vice versa. Default is 20 milliseconds.
14626
14627 feedback
14628 Amount of gain in delayed signal into right and vice versa. Gives a
14629 delay effect of left signal in right output and vice versa which
14630 gives widening effect. Default is 0.3.
14631
14632 crossfeed
14633 Cross feed of left into right with inverted phase. This helps in
14634 suppressing the mono. If the value is 1 it will cancel all the
14635 signal common to both channels. Default is 0.3.
14636
14637 drymix
14638 Set level of input signal of original channel. Default is 0.8.
14639
14640 Commands
14641
14642 This filter supports the all above options except "delay" as commands.
14643
14644 superequalizer
14645 Apply 18 band equalizer.
14646
14647 The filter accepts the following options:
14648
14649 1b Set 65Hz band gain.
14650
14651 2b Set 92Hz band gain.
14652
14653 3b Set 131Hz band gain.
14654
14655 4b Set 185Hz band gain.
14656
14657 5b Set 262Hz band gain.
14658
14659 6b Set 370Hz band gain.
14660
14661 7b Set 523Hz band gain.
14662
14663 8b Set 740Hz band gain.
14664
14665 9b Set 1047Hz band gain.
14666
14667 10b Set 1480Hz band gain.
14668
14669 11b Set 2093Hz band gain.
14670
14671 12b Set 2960Hz band gain.
14672
14673 13b Set 4186Hz band gain.
14674
14675 14b Set 5920Hz band gain.
14676
14677 15b Set 8372Hz band gain.
14678
14679 16b Set 11840Hz band gain.
14680
14681 17b Set 16744Hz band gain.
14682
14683 18b Set 20000Hz band gain.
14684
14685 surround
14686 Apply audio surround upmix filter.
14687
14688 This filter allows to produce multichannel output from audio stream.
14689
14690 The filter accepts the following options:
14691
14692 chl_out
14693 Set output channel layout. By default, this is 5.1.
14694
14695 See the Channel Layout section in the ffmpeg-utils(1) manual for
14696 the required syntax.
14697
14698 chl_in
14699 Set input channel layout. By default, this is stereo.
14700
14701 See the Channel Layout section in the ffmpeg-utils(1) manual for
14702 the required syntax.
14703
14704 level_in
14705 Set input volume level. By default, this is 1.
14706
14707 level_out
14708 Set output volume level. By default, this is 1.
14709
14710 lfe Enable LFE channel output if output channel layout has it. By
14711 default, this is enabled.
14712
14713 lfe_low
14714 Set LFE low cut off frequency. By default, this is 128 Hz.
14715
14716 lfe_high
14717 Set LFE high cut off frequency. By default, this is 256 Hz.
14718
14719 lfe_mode
14720 Set LFE mode, can be add or sub. Default is add. In add mode, LFE
14721 channel is created from input audio and added to output. In sub
14722 mode, LFE channel is created from input audio and added to output
14723 but also all non-LFE output channels are subtracted with output LFE
14724 channel.
14725
14726 angle
14727 Set angle of stereo surround transform, Allowed range is from 0 to
14728 360. Default is 90.
14729
14730 fc_in
14731 Set front center input volume. By default, this is 1.
14732
14733 fc_out
14734 Set front center output volume. By default, this is 1.
14735
14736 fl_in
14737 Set front left input volume. By default, this is 1.
14738
14739 fl_out
14740 Set front left output volume. By default, this is 1.
14741
14742 fr_in
14743 Set front right input volume. By default, this is 1.
14744
14745 fr_out
14746 Set front right output volume. By default, this is 1.
14747
14748 sl_in
14749 Set side left input volume. By default, this is 1.
14750
14751 sl_out
14752 Set side left output volume. By default, this is 1.
14753
14754 sr_in
14755 Set side right input volume. By default, this is 1.
14756
14757 sr_out
14758 Set side right output volume. By default, this is 1.
14759
14760 bl_in
14761 Set back left input volume. By default, this is 1.
14762
14763 bl_out
14764 Set back left output volume. By default, this is 1.
14765
14766 br_in
14767 Set back right input volume. By default, this is 1.
14768
14769 br_out
14770 Set back right output volume. By default, this is 1.
14771
14772 bc_in
14773 Set back center input volume. By default, this is 1.
14774
14775 bc_out
14776 Set back center output volume. By default, this is 1.
14777
14778 lfe_in
14779 Set LFE input volume. By default, this is 1.
14780
14781 lfe_out
14782 Set LFE output volume. By default, this is 1.
14783
14784 allx
14785 Set spread usage of stereo image across X axis for all channels.
14786
14787 ally
14788 Set spread usage of stereo image across Y axis for all channels.
14789
14790 fcx, flx, frx, blx, brx, slx, srx, bcx
14791 Set spread usage of stereo image across X axis for each channel.
14792
14793 fcy, fly, fry, bly, bry, sly, sry, bcy
14794 Set spread usage of stereo image across Y axis for each channel.
14795
14796 win_size
14797 Set window size. Allowed range is from 1024 to 65536. Default size
14798 is 4096.
14799
14800 win_func
14801 Set window function.
14802
14803 It accepts the following values:
14804
14805 rect
14806 bartlett
14807 hann, hanning
14808 hamming
14809 blackman
14810 welch
14811 flattop
14812 bharris
14813 bnuttall
14814 bhann
14815 sine
14816 nuttall
14817 lanczos
14818 gauss
14819 tukey
14820 dolph
14821 cauchy
14822 parzen
14823 poisson
14824 bohman
14825
14826 Default is "hann".
14827
14828 overlap
14829 Set window overlap. If set to 1, the recommended overlap for
14830 selected window function will be picked. Default is 0.5.
14831
14832 treble, highshelf
14833 Boost or cut treble (upper) frequencies of the audio using a two-pole
14834 shelving filter with a response similar to that of a standard hi-fi's
14835 tone-controls. This is also known as shelving equalisation (EQ).
14836
14837 The filter accepts the following options:
14838
14839 gain, g
14840 Give the gain at whichever is the lower of ~22 kHz and the Nyquist
14841 frequency. Its useful range is about -20 (for a large cut) to +20
14842 (for a large boost). Beware of clipping when using a positive gain.
14843
14844 frequency, f
14845 Set the filter's central frequency and so can be used to extend or
14846 reduce the frequency range to be boosted or cut. The default value
14847 is 3000 Hz.
14848
14849 width_type, t
14850 Set method to specify band-width of filter.
14851
14852 h Hz
14853
14854 q Q-Factor
14855
14856 o octave
14857
14858 s slope
14859
14860 k kHz
14861
14862 width, w
14863 Determine how steep is the filter's shelf transition.
14864
14865 poles, p
14866 Set number of poles. Default is 2.
14867
14868 mix, m
14869 How much to use filtered signal in output. Default is 1. Range is
14870 between 0 and 1.
14871
14872 channels, c
14873 Specify which channels to filter, by default all available are
14874 filtered.
14875
14876 normalize, n
14877 Normalize biquad coefficients, by default is disabled. Enabling it
14878 will normalize magnitude response at DC to 0dB.
14879
14880 transform, a
14881 Set transform type of IIR filter.
14882
14883 di
14884 dii
14885 tdii
14886 latt
14887 svf
14888 precision, r
14889 Set precison of filtering.
14890
14891 auto
14892 Pick automatic sample format depending on surround filters.
14893
14894 s16 Always use signed 16-bit.
14895
14896 s32 Always use signed 32-bit.
14897
14898 f32 Always use float 32-bit.
14899
14900 f64 Always use float 64-bit.
14901
14902 Commands
14903
14904 This filter supports the following commands:
14905
14906 frequency, f
14907 Change treble frequency. Syntax for the command is : "frequency"
14908
14909 width_type, t
14910 Change treble width_type. Syntax for the command is : "width_type"
14911
14912 width, w
14913 Change treble width. Syntax for the command is : "width"
14914
14915 gain, g
14916 Change treble gain. Syntax for the command is : "gain"
14917
14918 mix, m
14919 Change treble mix. Syntax for the command is : "mix"
14920
14921 tremolo
14922 Sinusoidal amplitude modulation.
14923
14924 The filter accepts the following options:
14925
14926 f Modulation frequency in Hertz. Modulation frequencies in the
14927 subharmonic range (20 Hz or lower) will result in a tremolo effect.
14928 This filter may also be used as a ring modulator by specifying a
14929 modulation frequency higher than 20 Hz. Range is 0.1 - 20000.0.
14930 Default value is 5.0 Hz.
14931
14932 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
14933 value is 0.5.
14934
14935 vibrato
14936 Sinusoidal phase modulation.
14937
14938 The filter accepts the following options:
14939
14940 f Modulation frequency in Hertz. Range is 0.1 - 20000.0. Default
14941 value is 5.0 Hz.
14942
14943 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
14944 value is 0.5.
14945
14946 volume
14947 Adjust the input audio volume.
14948
14949 It accepts the following parameters:
14950
14951 volume
14952 Set audio volume expression.
14953
14954 Output values are clipped to the maximum value.
14955
14956 The output audio volume is given by the relation:
14957
14958 <output_volume> = <volume> * <input_volume>
14959
14960 The default value for volume is "1.0".
14961
14962 precision
14963 This parameter represents the mathematical precision.
14964
14965 It determines which input sample formats will be allowed, which
14966 affects the precision of the volume scaling.
14967
14968 fixed
14969 8-bit fixed-point; this limits input sample format to U8, S16,
14970 and S32.
14971
14972 float
14973 32-bit floating-point; this limits input sample format to FLT.
14974 (default)
14975
14976 double
14977 64-bit floating-point; this limits input sample format to DBL.
14978
14979 replaygain
14980 Choose the behaviour on encountering ReplayGain side data in input
14981 frames.
14982
14983 drop
14984 Remove ReplayGain side data, ignoring its contents (the
14985 default).
14986
14987 ignore
14988 Ignore ReplayGain side data, but leave it in the frame.
14989
14990 track
14991 Prefer the track gain, if present.
14992
14993 album
14994 Prefer the album gain, if present.
14995
14996 replaygain_preamp
14997 Pre-amplification gain in dB to apply to the selected replaygain
14998 gain.
14999
15000 Default value for replaygain_preamp is 0.0.
15001
15002 replaygain_noclip
15003 Prevent clipping by limiting the gain applied.
15004
15005 Default value for replaygain_noclip is 1.
15006
15007 eval
15008 Set when the volume expression is evaluated.
15009
15010 It accepts the following values:
15011
15012 once
15013 only evaluate expression once during the filter initialization,
15014 or when the volume command is sent
15015
15016 frame
15017 evaluate expression for each incoming frame
15018
15019 Default value is once.
15020
15021 The volume expression can contain the following parameters.
15022
15023 n frame number (starting at zero)
15024
15025 nb_channels
15026 number of channels
15027
15028 nb_consumed_samples
15029 number of samples consumed by the filter
15030
15031 nb_samples
15032 number of samples in the current frame
15033
15034 pos original frame position in the file
15035
15036 pts frame PTS
15037
15038 sample_rate
15039 sample rate
15040
15041 startpts
15042 PTS at start of stream
15043
15044 startt
15045 time at start of stream
15046
15047 t frame time
15048
15049 tb timestamp timebase
15050
15051 volume
15052 last set volume value
15053
15054 Note that when eval is set to once only the sample_rate and tb
15055 variables are available, all other variables will evaluate to NAN.
15056
15057 Commands
15058
15059 This filter supports the following commands:
15060
15061 volume
15062 Modify the volume expression. The command accepts the same syntax
15063 of the corresponding option.
15064
15065 If the specified expression is not valid, it is kept at its current
15066 value.
15067
15068 Examples
15069
15070 • Halve the input audio volume:
15071
15072 volume=volume=0.5
15073 volume=volume=1/2
15074 volume=volume=-6.0206dB
15075
15076 In all the above example the named key for volume can be omitted,
15077 for example like in:
15078
15079 volume=0.5
15080
15081 • Increase input audio power by 6 decibels using fixed-point
15082 precision:
15083
15084 volume=volume=6dB:precision=fixed
15085
15086 • Fade volume after time 10 with an annihilation period of 5 seconds:
15087
15088 volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
15089
15090 volumedetect
15091 Detect the volume of the input video.
15092
15093 The filter has no parameters. The input is not modified. Statistics
15094 about the volume will be printed in the log when the input stream end
15095 is reached.
15096
15097 In particular it will show the mean volume (root mean square), maximum
15098 volume (on a per-sample basis), and the beginning of a histogram of the
15099 registered volume values (from the maximum value to a cumulated 1/1000
15100 of the samples).
15101
15102 All volumes are in decibels relative to the maximum PCM value.
15103
15104 Examples
15105
15106 Here is an excerpt of the output:
15107
15108 [Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB
15109 [Parsed_volumedetect_0 0xa23120] max_volume: -4 dB
15110 [Parsed_volumedetect_0 0xa23120] histogram_4db: 6
15111 [Parsed_volumedetect_0 0xa23120] histogram_5db: 62
15112 [Parsed_volumedetect_0 0xa23120] histogram_6db: 286
15113 [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042
15114 [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551
15115 [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609
15116 [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
15117
15118 It means that:
15119
15120 • The mean square energy is approximately -27 dB, or 10^-2.7.
15121
15122 • The largest sample is at -4 dB, or more precisely between -4 dB and
15123 -5 dB.
15124
15125 • There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc.
15126
15127 In other words, raising the volume by +4 dB does not cause any
15128 clipping, raising it by +5 dB causes clipping for 6 samples, etc.
15129
15131 Below is a description of the currently available audio sources.
15132
15133 abuffer
15134 Buffer audio frames, and make them available to the filter chain.
15135
15136 This source is mainly intended for a programmatic use, in particular
15137 through the interface defined in libavfilter/buffersrc.h.
15138
15139 It accepts the following parameters:
15140
15141 time_base
15142 The timebase which will be used for timestamps of submitted frames.
15143 It must be either a floating-point number or in
15144 numerator/denominator form.
15145
15146 sample_rate
15147 The sample rate of the incoming audio buffers.
15148
15149 sample_fmt
15150 The sample format of the incoming audio buffers. Either a sample
15151 format name or its corresponding integer representation from the
15152 enum AVSampleFormat in libavutil/samplefmt.h
15153
15154 channel_layout
15155 The channel layout of the incoming audio buffers. Either a channel
15156 layout name from channel_layout_map in libavutil/channel_layout.c
15157 or its corresponding integer representation from the AV_CH_LAYOUT_*
15158 macros in libavutil/channel_layout.h
15159
15160 channels
15161 The number of channels of the incoming audio buffers. If both
15162 channels and channel_layout are specified, then they must be
15163 consistent.
15164
15165 Examples
15166
15167 abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
15168
15169 will instruct the source to accept planar 16bit signed stereo at
15170 44100Hz. Since the sample format with name "s16p" corresponds to the
15171 number 6 and the "stereo" channel layout corresponds to the value 0x3,
15172 this is equivalent to:
15173
15174 abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
15175
15176 aevalsrc
15177 Generate an audio signal specified by an expression.
15178
15179 This source accepts in input one or more expressions (one for each
15180 channel), which are evaluated and used to generate a corresponding
15181 audio signal.
15182
15183 This source accepts the following options:
15184
15185 exprs
15186 Set the '|'-separated expressions list for each separate channel.
15187 In case the channel_layout option is not specified, the selected
15188 channel layout depends on the number of provided expressions.
15189 Otherwise the last specified expression is applied to the remaining
15190 output channels.
15191
15192 channel_layout, c
15193 Set the channel layout. The number of channels in the specified
15194 layout must be equal to the number of specified expressions.
15195
15196 duration, d
15197 Set the minimum duration of the sourced audio. See the Time
15198 duration section in the ffmpeg-utils(1) manual for the accepted
15199 syntax. Note that the resulting duration may be greater than the
15200 specified duration, as the generated audio is always cut at the end
15201 of a complete frame.
15202
15203 If not specified, or the expressed duration is negative, the audio
15204 is supposed to be generated forever.
15205
15206 nb_samples, n
15207 Set the number of samples per channel per each output frame,
15208 default to 1024.
15209
15210 sample_rate, s
15211 Specify the sample rate, default to 44100.
15212
15213 Each expression in exprs can contain the following constants:
15214
15215 n number of the evaluated sample, starting from 0
15216
15217 t time of the evaluated sample expressed in seconds, starting from 0
15218
15219 s sample rate
15220
15221 Examples
15222
15223 • Generate silence:
15224
15225 aevalsrc=0
15226
15227 • Generate a sin signal with frequency of 440 Hz, set sample rate to
15228 8000 Hz:
15229
15230 aevalsrc="sin(440*2*PI*t):s=8000"
15231
15232 • Generate a two channels signal, specify the channel layout (Front
15233 Center + Back Center) explicitly:
15234
15235 aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
15236
15237 • Generate white noise:
15238
15239 aevalsrc="-2+random(0)"
15240
15241 • Generate an amplitude modulated signal:
15242
15243 aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
15244
15245 • Generate 2.5 Hz binaural beats on a 360 Hz carrier:
15246
15247 aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
15248
15249 afirsrc
15250 Generate a FIR coefficients using frequency sampling method.
15251
15252 The resulting stream can be used with afir filter for filtering the
15253 audio signal.
15254
15255 The filter accepts the following options:
15256
15257 taps, t
15258 Set number of filter coefficents in output audio stream. Default
15259 value is 1025.
15260
15261 frequency, f
15262 Set frequency points from where magnitude and phase are set. This
15263 must be in non decreasing order, and first element must be 0, while
15264 last element must be 1. Elements are separated by white spaces.
15265
15266 magnitude, m
15267 Set magnitude value for every frequency point set by frequency.
15268 Number of values must be same as number of frequency points.
15269 Values are separated by white spaces.
15270
15271 phase, p
15272 Set phase value for every frequency point set by frequency. Number
15273 of values must be same as number of frequency points. Values are
15274 separated by white spaces.
15275
15276 sample_rate, r
15277 Set sample rate, default is 44100.
15278
15279 nb_samples, n
15280 Set number of samples per each frame. Default is 1024.
15281
15282 win_func, w
15283 Set window function. Default is blackman.
15284
15285 anullsrc
15286 The null audio source, return unprocessed audio frames. It is mainly
15287 useful as a template and to be employed in analysis / debugging tools,
15288 or as the source for filters which ignore the input data (for example
15289 the sox synth filter).
15290
15291 This source accepts the following options:
15292
15293 channel_layout, cl
15294 Specifies the channel layout, and can be either an integer or a
15295 string representing a channel layout. The default value of
15296 channel_layout is "stereo".
15297
15298 Check the channel_layout_map definition in
15299 libavutil/channel_layout.c for the mapping between strings and
15300 channel layout values.
15301
15302 sample_rate, r
15303 Specifies the sample rate, and defaults to 44100.
15304
15305 nb_samples, n
15306 Set the number of samples per requested frames.
15307
15308 duration, d
15309 Set the duration of the sourced audio. See the Time duration
15310 section in the ffmpeg-utils(1) manual for the accepted syntax.
15311
15312 If not specified, or the expressed duration is negative, the audio
15313 is supposed to be generated forever.
15314
15315 Examples
15316
15317 • Set the sample rate to 48000 Hz and the channel layout to
15318 AV_CH_LAYOUT_MONO.
15319
15320 anullsrc=r=48000:cl=4
15321
15322 • Do the same operation with a more obvious syntax:
15323
15324 anullsrc=r=48000:cl=mono
15325
15326 All the parameters need to be explicitly defined.
15327
15328 flite
15329 Synthesize a voice utterance using the libflite library.
15330
15331 To enable compilation of this filter you need to configure FFmpeg with
15332 "--enable-libflite".
15333
15334 Note that versions of the flite library prior to 2.0 are not thread-
15335 safe.
15336
15337 The filter accepts the following options:
15338
15339 list_voices
15340 If set to 1, list the names of the available voices and exit
15341 immediately. Default value is 0.
15342
15343 nb_samples, n
15344 Set the maximum number of samples per frame. Default value is 512.
15345
15346 textfile
15347 Set the filename containing the text to speak.
15348
15349 text
15350 Set the text to speak.
15351
15352 voice, v
15353 Set the voice to use for the speech synthesis. Default value is
15354 "kal". See also the list_voices option.
15355
15356 Examples
15357
15358 • Read from file speech.txt, and synthesize the text using the
15359 standard flite voice:
15360
15361 flite=textfile=speech.txt
15362
15363 • Read the specified text selecting the "slt" voice:
15364
15365 flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15366
15367 • Input text to ffmpeg:
15368
15369 ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15370
15371 • Make ffplay speak the specified text, using "flite" and the "lavfi"
15372 device:
15373
15374 ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
15375
15376 For more information about libflite, check:
15377 <http://www.festvox.org/flite/>
15378
15379 anoisesrc
15380 Generate a noise audio signal.
15381
15382 The filter accepts the following options:
15383
15384 sample_rate, r
15385 Specify the sample rate. Default value is 48000 Hz.
15386
15387 amplitude, a
15388 Specify the amplitude (0.0 - 1.0) of the generated audio stream.
15389 Default value is 1.0.
15390
15391 duration, d
15392 Specify the duration of the generated audio stream. Not specifying
15393 this option results in noise with an infinite length.
15394
15395 color, colour, c
15396 Specify the color of noise. Available noise colors are white, pink,
15397 brown, blue, violet and velvet. Default color is white.
15398
15399 seed, s
15400 Specify a value used to seed the PRNG.
15401
15402 nb_samples, n
15403 Set the number of samples per each output frame, default is 1024.
15404
15405 Examples
15406
15407 • Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
15408 and an amplitude of 0.5:
15409
15410 anoisesrc=d=60:c=pink:r=44100:a=0.5
15411
15412 hilbert
15413 Generate odd-tap Hilbert transform FIR coefficients.
15414
15415 The resulting stream can be used with afir filter for phase-shifting
15416 the signal by 90 degrees.
15417
15418 This is used in many matrix coding schemes and for analytic signal
15419 generation. The process is often written as a multiplication by i (or
15420 j), the imaginary unit.
15421
15422 The filter accepts the following options:
15423
15424 sample_rate, s
15425 Set sample rate, default is 44100.
15426
15427 taps, t
15428 Set length of FIR filter, default is 22051.
15429
15430 nb_samples, n
15431 Set number of samples per each frame.
15432
15433 win_func, w
15434 Set window function to be used when generating FIR coefficients.
15435
15436 sinc
15437 Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
15438 band-reject FIR coefficients.
15439
15440 The resulting stream can be used with afir filter for filtering the
15441 audio signal.
15442
15443 The filter accepts the following options:
15444
15445 sample_rate, r
15446 Set sample rate, default is 44100.
15447
15448 nb_samples, n
15449 Set number of samples per each frame. Default is 1024.
15450
15451 hp Set high-pass frequency. Default is 0.
15452
15453 lp Set low-pass frequency. Default is 0. If high-pass frequency is
15454 lower than low-pass frequency and low-pass frequency is higher than
15455 0 then filter will create band-pass filter coefficients, otherwise
15456 band-reject filter coefficients.
15457
15458 phase
15459 Set filter phase response. Default is 50. Allowed range is from 0
15460 to 100.
15461
15462 beta
15463 Set Kaiser window beta.
15464
15465 att Set stop-band attenuation. Default is 120dB, allowed range is from
15466 40 to 180 dB.
15467
15468 round
15469 Enable rounding, by default is disabled.
15470
15471 hptaps
15472 Set number of taps for high-pass filter.
15473
15474 lptaps
15475 Set number of taps for low-pass filter.
15476
15477 sine
15478 Generate an audio signal made of a sine wave with amplitude 1/8.
15479
15480 The audio signal is bit-exact.
15481
15482 The filter accepts the following options:
15483
15484 frequency, f
15485 Set the carrier frequency. Default is 440 Hz.
15486
15487 beep_factor, b
15488 Enable a periodic beep every second with frequency beep_factor
15489 times the carrier frequency. Default is 0, meaning the beep is
15490 disabled.
15491
15492 sample_rate, r
15493 Specify the sample rate, default is 44100.
15494
15495 duration, d
15496 Specify the duration of the generated audio stream.
15497
15498 samples_per_frame
15499 Set the number of samples per output frame.
15500
15501 The expression can contain the following constants:
15502
15503 n The (sequential) number of the output audio frame, starting
15504 from 0.
15505
15506 pts The PTS (Presentation TimeStamp) of the output audio frame,
15507 expressed in TB units.
15508
15509 t The PTS of the output audio frame, expressed in seconds.
15510
15511 TB The timebase of the output audio frames.
15512
15513 Default is 1024.
15514
15515 Examples
15516
15517 • Generate a simple 440 Hz sine wave:
15518
15519 sine
15520
15521 • Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
15522 seconds:
15523
15524 sine=220:4:d=5
15525 sine=f=220:b=4:d=5
15526 sine=frequency=220:beep_factor=4:duration=5
15527
15528 • Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
15529 NTSC pattern:
15530
15531 sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
15532
15534 Below is a description of the currently available audio sinks.
15535
15536 abuffersink
15537 Buffer audio frames, and make them available to the end of filter
15538 chain.
15539
15540 This sink is mainly intended for programmatic use, in particular
15541 through the interface defined in libavfilter/buffersink.h or the
15542 options system.
15543
15544 It accepts a pointer to an AVABufferSinkContext structure, which
15545 defines the incoming buffers' formats, to be passed as the opaque
15546 parameter to "avfilter_init_filter" for initialization.
15547
15548 anullsink
15549 Null audio sink; do absolutely nothing with the input audio. It is
15550 mainly useful as a template and for use in analysis / debugging tools.
15551
15553 When you configure your FFmpeg build, you can disable any of the
15554 existing filters using "--disable-filters". The configure output will
15555 show the video filters included in your build.
15556
15557 Below is a description of the currently available video filters.
15558
15559 addroi
15560 Mark a region of interest in a video frame.
15561
15562 The frame data is passed through unchanged, but metadata is attached to
15563 the frame indicating regions of interest which can affect the behaviour
15564 of later encoding. Multiple regions can be marked by applying the
15565 filter multiple times.
15566
15567 x Region distance in pixels from the left edge of the frame.
15568
15569 y Region distance in pixels from the top edge of the frame.
15570
15571 w Region width in pixels.
15572
15573 h Region height in pixels.
15574
15575 The parameters x, y, w and h are expressions, and may contain the
15576 following variables:
15577
15578 iw Width of the input frame.
15579
15580 ih Height of the input frame.
15581
15582 qoffset
15583 Quantisation offset to apply within the region.
15584
15585 This must be a real value in the range -1 to +1. A value of zero
15586 indicates no quality change. A negative value asks for better
15587 quality (less quantisation), while a positive value asks for worse
15588 quality (greater quantisation).
15589
15590 The range is calibrated so that the extreme values indicate the
15591 largest possible offset - if the rest of the frame is encoded with
15592 the worst possible quality, an offset of -1 indicates that this
15593 region should be encoded with the best possible quality anyway.
15594 Intermediate values are then interpolated in some codec-dependent
15595 way.
15596
15597 For example, in 10-bit H.264 the quantisation parameter varies
15598 between -12 and 51. A typical qoffset value of -1/10 therefore
15599 indicates that this region should be encoded with a QP around one-
15600 tenth of the full range better than the rest of the frame. So, if
15601 most of the frame were to be encoded with a QP of around 30, this
15602 region would get a QP of around 24 (an offset of approximately
15603 -1/10 * (51 - -12) = -6.3). An extreme value of -1 would indicate
15604 that this region should be encoded with the best possible quality
15605 regardless of the treatment of the rest of the frame - that is,
15606 should be encoded at a QP of -12.
15607
15608 clear
15609 If set to true, remove any existing regions of interest marked on
15610 the frame before adding the new one.
15611
15612 Examples
15613
15614 • Mark the centre quarter of the frame as interesting.
15615
15616 addroi=iw/4:ih/4:iw/2:ih/2:-1/10
15617
15618 • Mark the 100-pixel-wide region on the left edge of the frame as
15619 very uninteresting (to be encoded at much lower quality than the
15620 rest of the frame).
15621
15622 addroi=0:0:100:ih:+1/5
15623
15624 alphaextract
15625 Extract the alpha component from the input as a grayscale video. This
15626 is especially useful with the alphamerge filter.
15627
15628 alphamerge
15629 Add or replace the alpha component of the primary input with the
15630 grayscale value of a second input. This is intended for use with
15631 alphaextract to allow the transmission or storage of frame sequences
15632 that have alpha in a format that doesn't support an alpha channel.
15633
15634 For example, to reconstruct full frames from a normal YUV-encoded video
15635 and a separate video created with alphaextract, you might use:
15636
15637 movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
15638
15639 amplify
15640 Amplify differences between current pixel and pixels of adjacent frames
15641 in same pixel location.
15642
15643 This filter accepts the following options:
15644
15645 radius
15646 Set frame radius. Default is 2. Allowed range is from 1 to 63. For
15647 example radius of 3 will instruct filter to calculate average of 7
15648 frames.
15649
15650 factor
15651 Set factor to amplify difference. Default is 2. Allowed range is
15652 from 0 to 65535.
15653
15654 threshold
15655 Set threshold for difference amplification. Any difference greater
15656 or equal to this value will not alter source pixel. Default is 10.
15657 Allowed range is from 0 to 65535.
15658
15659 tolerance
15660 Set tolerance for difference amplification. Any difference lower to
15661 this value will not alter source pixel. Default is 0. Allowed
15662 range is from 0 to 65535.
15663
15664 low Set lower limit for changing source pixel. Default is 65535.
15665 Allowed range is from 0 to 65535. This option controls maximum
15666 possible value that will decrease source pixel value.
15667
15668 high
15669 Set high limit for changing source pixel. Default is 65535. Allowed
15670 range is from 0 to 65535. This option controls maximum possible
15671 value that will increase source pixel value.
15672
15673 planes
15674 Set which planes to filter. Default is all. Allowed range is from 0
15675 to 15.
15676
15677 Commands
15678
15679 This filter supports the following commands that corresponds to option
15680 of same name:
15681
15682 factor
15683 threshold
15684 tolerance
15685 low
15686 high
15687 planes
15688
15689 ass
15690 Same as the subtitles filter, except that it doesn't require libavcodec
15691 and libavformat to work. On the other hand, it is limited to ASS
15692 (Advanced Substation Alpha) subtitles files.
15693
15694 This filter accepts the following option in addition to the common
15695 options from the subtitles filter:
15696
15697 shaping
15698 Set the shaping engine
15699
15700 Available values are:
15701
15702 auto
15703 The default libass shaping engine, which is the best available.
15704
15705 simple
15706 Fast, font-agnostic shaper that can do only substitutions
15707
15708 complex
15709 Slower shaper using OpenType for substitutions and positioning
15710
15711 The default is "auto".
15712
15713 atadenoise
15714 Apply an Adaptive Temporal Averaging Denoiser to the video input.
15715
15716 The filter accepts the following options:
15717
15718 0a Set threshold A for 1st plane. Default is 0.02. Valid range is 0
15719 to 0.3.
15720
15721 0b Set threshold B for 1st plane. Default is 0.04. Valid range is 0
15722 to 5.
15723
15724 1a Set threshold A for 2nd plane. Default is 0.02. Valid range is 0
15725 to 0.3.
15726
15727 1b Set threshold B for 2nd plane. Default is 0.04. Valid range is 0
15728 to 5.
15729
15730 2a Set threshold A for 3rd plane. Default is 0.02. Valid range is 0
15731 to 0.3.
15732
15733 2b Set threshold B for 3rd plane. Default is 0.04. Valid range is 0
15734 to 5.
15735
15736 Threshold A is designed to react on abrupt changes in the input
15737 signal and threshold B is designed to react on continuous changes
15738 in the input signal.
15739
15740 s Set number of frames filter will use for averaging. Default is 9.
15741 Must be odd number in range [5, 129].
15742
15743 p Set what planes of frame filter will use for averaging. Default is
15744 all.
15745
15746 a Set what variant of algorithm filter will use for averaging.
15747 Default is "p" parallel. Alternatively can be set to "s" serial.
15748
15749 Parallel can be faster then serial, while other way around is never
15750 true. Parallel will abort early on first change being greater then
15751 thresholds, while serial will continue processing other side of
15752 frames if they are equal or below thresholds.
15753
15754 0s
15755 1s
15756 2s Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
15757 Valid range is from 0 to 32767. This options controls weight for
15758 each pixel in radius defined by size. Default value means every
15759 pixel have same weight. Setting this option to 0 effectively
15760 disables filtering.
15761
15762 Commands
15763
15764 This filter supports same commands as options except option "s". The
15765 command accepts the same syntax of the corresponding option.
15766
15767 avgblur
15768 Apply average blur filter.
15769
15770 The filter accepts the following options:
15771
15772 sizeX
15773 Set horizontal radius size.
15774
15775 planes
15776 Set which planes to filter. By default all planes are filtered.
15777
15778 sizeY
15779 Set vertical radius size, if zero it will be same as "sizeX".
15780 Default is 0.
15781
15782 Commands
15783
15784 This filter supports same commands as options. The command accepts the
15785 same syntax of the corresponding option.
15786
15787 If the specified expression is not valid, it is kept at its current
15788 value.
15789
15790 bbox
15791 Compute the bounding box for the non-black pixels in the input frame
15792 luminance plane.
15793
15794 This filter computes the bounding box containing all the pixels with a
15795 luminance value greater than the minimum allowed value. The parameters
15796 describing the bounding box are printed on the filter log.
15797
15798 The filter accepts the following option:
15799
15800 min_val
15801 Set the minimal luminance value. Default is 16.
15802
15803 Commands
15804
15805 This filter supports the all above options as commands.
15806
15807 bilateral
15808 Apply bilateral filter, spatial smoothing while preserving edges.
15809
15810 The filter accepts the following options:
15811
15812 sigmaS
15813 Set sigma of gaussian function to calculate spatial weight.
15814 Allowed range is 0 to 512. Default is 0.1.
15815
15816 sigmaR
15817 Set sigma of gaussian function to calculate range weight. Allowed
15818 range is 0 to 1. Default is 0.1.
15819
15820 planes
15821 Set planes to filter. Default is first only.
15822
15823 Commands
15824
15825 This filter supports the all above options as commands.
15826
15827 bitplanenoise
15828 Show and measure bit plane noise.
15829
15830 The filter accepts the following options:
15831
15832 bitplane
15833 Set which plane to analyze. Default is 1.
15834
15835 filter
15836 Filter out noisy pixels from "bitplane" set above. Default is
15837 disabled.
15838
15839 blackdetect
15840 Detect video intervals that are (almost) completely black. Can be
15841 useful to detect chapter transitions, commercials, or invalid
15842 recordings.
15843
15844 The filter outputs its detection analysis to both the log as well as
15845 frame metadata. If a black segment of at least the specified minimum
15846 duration is found, a line with the start and end timestamps as well as
15847 duration is printed to the log with level "info". In addition, a log
15848 line with level "debug" is printed per frame showing the black amount
15849 detected for that frame.
15850
15851 The filter also attaches metadata to the first frame of a black segment
15852 with key "lavfi.black_start" and to the first frame after the black
15853 segment ends with key "lavfi.black_end". The value is the frame's
15854 timestamp. This metadata is added regardless of the minimum duration
15855 specified.
15856
15857 The filter accepts the following options:
15858
15859 black_min_duration, d
15860 Set the minimum detected black duration expressed in seconds. It
15861 must be a non-negative floating point number.
15862
15863 Default value is 2.0.
15864
15865 picture_black_ratio_th, pic_th
15866 Set the threshold for considering a picture "black". Express the
15867 minimum value for the ratio:
15868
15869 <nb_black_pixels> / <nb_pixels>
15870
15871 for which a picture is considered black. Default value is 0.98.
15872
15873 pixel_black_th, pix_th
15874 Set the threshold for considering a pixel "black".
15875
15876 The threshold expresses the maximum pixel luminance value for which
15877 a pixel is considered "black". The provided value is scaled
15878 according to the following equation:
15879
15880 <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
15881
15882 luminance_range_size and luminance_minimum_value depend on the
15883 input video format, the range is [0-255] for YUV full-range formats
15884 and [16-235] for YUV non full-range formats.
15885
15886 Default value is 0.10.
15887
15888 The following example sets the maximum pixel threshold to the minimum
15889 value, and detects only black intervals of 2 or more seconds:
15890
15891 blackdetect=d=2:pix_th=0.00
15892
15893 blackframe
15894 Detect frames that are (almost) completely black. Can be useful to
15895 detect chapter transitions or commercials. Output lines consist of the
15896 frame number of the detected frame, the percentage of blackness, the
15897 position in the file if known or -1 and the timestamp in seconds.
15898
15899 In order to display the output lines, you need to set the loglevel at
15900 least to the AV_LOG_INFO value.
15901
15902 This filter exports frame metadata "lavfi.blackframe.pblack". The
15903 value represents the percentage of pixels in the picture that are below
15904 the threshold value.
15905
15906 It accepts the following parameters:
15907
15908 amount
15909 The percentage of the pixels that have to be below the threshold;
15910 it defaults to 98.
15911
15912 threshold, thresh
15913 The threshold below which a pixel value is considered black; it
15914 defaults to 32.
15915
15916 blend
15917 Blend two video frames into each other.
15918
15919 The "blend" filter takes two input streams and outputs one stream, the
15920 first input is the "top" layer and second input is "bottom" layer. By
15921 default, the output terminates when the longest input terminates.
15922
15923 The "tblend" (time blend) filter takes two consecutive frames from one
15924 single stream, and outputs the result obtained by blending the new
15925 frame on top of the old frame.
15926
15927 A description of the accepted options follows.
15928
15929 c0_mode
15930 c1_mode
15931 c2_mode
15932 c3_mode
15933 all_mode
15934 Set blend mode for specific pixel component or all pixel components
15935 in case of all_mode. Default value is "normal".
15936
15937 Available values for component modes are:
15938
15939 addition
15940 and
15941 average
15942 bleach
15943 burn
15944 darken
15945 difference
15946 divide
15947 dodge
15948 exclusion
15949 extremity
15950 freeze
15951 geometric
15952 glow
15953 grainextract
15954 grainmerge
15955 hardlight
15956 hardmix
15957 hardoverlay
15958 harmonic
15959 heat
15960 interpolate
15961 lighten
15962 linearlight
15963 multiply
15964 multiply128
15965 negation
15966 normal
15967 or
15968 overlay
15969 phoenix
15970 pinlight
15971 reflect
15972 screen
15973 softdifference
15974 softlight
15975 stain
15976 subtract
15977 vividlight
15978 xor
15979 c0_opacity
15980 c1_opacity
15981 c2_opacity
15982 c3_opacity
15983 all_opacity
15984 Set blend opacity for specific pixel component or all pixel
15985 components in case of all_opacity. Only used in combination with
15986 pixel component blend modes.
15987
15988 c0_expr
15989 c1_expr
15990 c2_expr
15991 c3_expr
15992 all_expr
15993 Set blend expression for specific pixel component or all pixel
15994 components in case of all_expr. Note that related mode options will
15995 be ignored if those are set.
15996
15997 The expressions can use the following variables:
15998
15999 N The sequential number of the filtered frame, starting from 0.
16000
16001 X
16002 Y the coordinates of the current sample
16003
16004 W
16005 H the width and height of currently filtered plane
16006
16007 SW
16008 SH Width and height scale for the plane being filtered. It is the
16009 ratio between the dimensions of the current plane to the luma
16010 plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
16011 luma plane and "0.5,0.5" for the chroma planes.
16012
16013 T Time of the current frame, expressed in seconds.
16014
16015 TOP, A
16016 Value of pixel component at current location for first video
16017 frame (top layer).
16018
16019 BOTTOM, B
16020 Value of pixel component at current location for second video
16021 frame (bottom layer).
16022
16023 The "blend" filter also supports the framesync options.
16024
16025 Examples
16026
16027 • Apply transition from bottom layer to top layer in first 10
16028 seconds:
16029
16030 blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
16031
16032 • Apply linear horizontal transition from top layer to bottom layer:
16033
16034 blend=all_expr='A*(X/W)+B*(1-X/W)'
16035
16036 • Apply 1x1 checkerboard effect:
16037
16038 blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
16039
16040 • Apply uncover left effect:
16041
16042 blend=all_expr='if(gte(N*SW+X,W),A,B)'
16043
16044 • Apply uncover down effect:
16045
16046 blend=all_expr='if(gte(Y-N*SH,0),A,B)'
16047
16048 • Apply uncover up-left effect:
16049
16050 blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
16051
16052 • Split diagonally video and shows top and bottom layer on each side:
16053
16054 blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
16055
16056 • Display differences between the current and the previous frame:
16057
16058 tblend=all_mode=grainextract
16059
16060 Commands
16061
16062 This filter supports same commands as options.
16063
16064 bm3d
16065 Denoise frames using Block-Matching 3D algorithm.
16066
16067 The filter accepts the following options.
16068
16069 sigma
16070 Set denoising strength. Default value is 1. Allowed range is from
16071 0 to 999.9. The denoising algorithm is very sensitive to sigma, so
16072 adjust it according to the source.
16073
16074 block
16075 Set local patch size. This sets dimensions in 2D.
16076
16077 bstep
16078 Set sliding step for processing blocks. Default value is 4.
16079 Allowed range is from 1 to 64. Smaller values allows processing
16080 more reference blocks and is slower.
16081
16082 group
16083 Set maximal number of similar blocks for 3rd dimension. Default
16084 value is 1. When set to 1, no block matching is done. Larger
16085 values allows more blocks in single group. Allowed range is from 1
16086 to 256.
16087
16088 range
16089 Set radius for search block matching. Default is 9. Allowed range
16090 is from 1 to INT32_MAX.
16091
16092 mstep
16093 Set step between two search locations for block matching. Default
16094 is 1. Allowed range is from 1 to 64. Smaller is slower.
16095
16096 thmse
16097 Set threshold of mean square error for block matching. Valid range
16098 is 0 to INT32_MAX.
16099
16100 hdthr
16101 Set thresholding parameter for hard thresholding in 3D transformed
16102 domain. Larger values results in stronger hard-thresholding
16103 filtering in frequency domain.
16104
16105 estim
16106 Set filtering estimation mode. Can be "basic" or "final". Default
16107 is "basic".
16108
16109 ref If enabled, filter will use 2nd stream for block matching. Default
16110 is disabled for "basic" value of estim option, and always enabled
16111 if value of estim is "final".
16112
16113 planes
16114 Set planes to filter. Default is all available except alpha.
16115
16116 Examples
16117
16118 • Basic filtering with bm3d:
16119
16120 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
16121
16122 • Same as above, but filtering only luma:
16123
16124 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
16125
16126 • Same as above, but with both estimation modes:
16127
16128 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
16129
16130 • Same as above, but prefilter with nlmeans filter instead:
16131
16132 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
16133
16134 boxblur
16135 Apply a boxblur algorithm to the input video.
16136
16137 It accepts the following parameters:
16138
16139 luma_radius, lr
16140 luma_power, lp
16141 chroma_radius, cr
16142 chroma_power, cp
16143 alpha_radius, ar
16144 alpha_power, ap
16145
16146 A description of the accepted options follows.
16147
16148 luma_radius, lr
16149 chroma_radius, cr
16150 alpha_radius, ar
16151 Set an expression for the box radius in pixels used for blurring
16152 the corresponding input plane.
16153
16154 The radius value must be a non-negative number, and must not be
16155 greater than the value of the expression "min(w,h)/2" for the luma
16156 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
16157
16158 Default value for luma_radius is "2". If not specified,
16159 chroma_radius and alpha_radius default to the corresponding value
16160 set for luma_radius.
16161
16162 The expressions can contain the following constants:
16163
16164 w
16165 h The input width and height in pixels.
16166
16167 cw
16168 ch The input chroma image width and height in pixels.
16169
16170 hsub
16171 vsub
16172 The horizontal and vertical chroma subsample values. For
16173 example, for the pixel format "yuv422p", hsub is 2 and vsub is
16174 1.
16175
16176 luma_power, lp
16177 chroma_power, cp
16178 alpha_power, ap
16179 Specify how many times the boxblur filter is applied to the
16180 corresponding plane.
16181
16182 Default value for luma_power is 2. If not specified, chroma_power
16183 and alpha_power default to the corresponding value set for
16184 luma_power.
16185
16186 A value of 0 will disable the effect.
16187
16188 Examples
16189
16190 • Apply a boxblur filter with the luma, chroma, and alpha radii set
16191 to 2:
16192
16193 boxblur=luma_radius=2:luma_power=1
16194 boxblur=2:1
16195
16196 • Set the luma radius to 2, and alpha and chroma radius to 0:
16197
16198 boxblur=2:1:cr=0:ar=0
16199
16200 • Set the luma and chroma radii to a fraction of the video dimension:
16201
16202 boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
16203
16204 bwdif
16205 Deinterlace the input video ("bwdif" stands for "Bob Weaver
16206 Deinterlacing Filter").
16207
16208 Motion adaptive deinterlacing based on yadif with the use of w3fdif and
16209 cubic interpolation algorithms. It accepts the following parameters:
16210
16211 mode
16212 The interlacing mode to adopt. It accepts one of the following
16213 values:
16214
16215 0, send_frame
16216 Output one frame for each frame.
16217
16218 1, send_field
16219 Output one frame for each field.
16220
16221 The default value is "send_field".
16222
16223 parity
16224 The picture field parity assumed for the input interlaced video. It
16225 accepts one of the following values:
16226
16227 0, tff
16228 Assume the top field is first.
16229
16230 1, bff
16231 Assume the bottom field is first.
16232
16233 -1, auto
16234 Enable automatic detection of field parity.
16235
16236 The default value is "auto". If the interlacing is unknown or the
16237 decoder does not export this information, top field first will be
16238 assumed.
16239
16240 deint
16241 Specify which frames to deinterlace. Accepts one of the following
16242 values:
16243
16244 0, all
16245 Deinterlace all frames.
16246
16247 1, interlaced
16248 Only deinterlace frames marked as interlaced.
16249
16250 The default value is "all".
16251
16252 cas
16253 Apply Contrast Adaptive Sharpen filter to video stream.
16254
16255 The filter accepts the following options:
16256
16257 strength
16258 Set the sharpening strength. Default value is 0.
16259
16260 planes
16261 Set planes to filter. Default value is to filter all planes except
16262 alpha plane.
16263
16264 Commands
16265
16266 This filter supports same commands as options.
16267
16268 chromahold
16269 Remove all color information for all colors except for certain one.
16270
16271 The filter accepts the following options:
16272
16273 color
16274 The color which will not be replaced with neutral chroma.
16275
16276 similarity
16277 Similarity percentage with the above color. 0.01 matches only the
16278 exact key color, while 1.0 matches everything.
16279
16280 blend
16281 Blend percentage. 0.0 makes pixels either fully gray, or not gray
16282 at all. Higher values result in more preserved color.
16283
16284 yuv Signals that the color passed is already in YUV instead of RGB.
16285
16286 Literal colors like "green" or "red" don't make sense with this
16287 enabled anymore. This can be used to pass exact YUV values as
16288 hexadecimal numbers.
16289
16290 Commands
16291
16292 This filter supports same commands as options. The command accepts the
16293 same syntax of the corresponding option.
16294
16295 If the specified expression is not valid, it is kept at its current
16296 value.
16297
16298 chromakey
16299 YUV colorspace color/chroma keying.
16300
16301 The filter accepts the following options:
16302
16303 color
16304 The color which will be replaced with transparency.
16305
16306 similarity
16307 Similarity percentage with the key color.
16308
16309 0.01 matches only the exact key color, while 1.0 matches
16310 everything.
16311
16312 blend
16313 Blend percentage.
16314
16315 0.0 makes pixels either fully transparent, or not transparent at
16316 all.
16317
16318 Higher values result in semi-transparent pixels, with a higher
16319 transparency the more similar the pixels color is to the key color.
16320
16321 yuv Signals that the color passed is already in YUV instead of RGB.
16322
16323 Literal colors like "green" or "red" don't make sense with this
16324 enabled anymore. This can be used to pass exact YUV values as
16325 hexadecimal numbers.
16326
16327 Commands
16328
16329 This filter supports same commands as options. The command accepts the
16330 same syntax of the corresponding option.
16331
16332 If the specified expression is not valid, it is kept at its current
16333 value.
16334
16335 Examples
16336
16337 • Make every green pixel in the input image transparent:
16338
16339 ffmpeg -i input.png -vf chromakey=green out.png
16340
16341 • Overlay a greenscreen-video on top of a static black background.
16342
16343 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
16344
16345 chromanr
16346 Reduce chrominance noise.
16347
16348 The filter accepts the following options:
16349
16350 thres
16351 Set threshold for averaging chrominance values. Sum of absolute
16352 difference of Y, U and V pixel components of current pixel and
16353 neighbour pixels lower than this threshold will be used in
16354 averaging. Luma component is left unchanged and is copied to
16355 output. Default value is 30. Allowed range is from 1 to 200.
16356
16357 sizew
16358 Set horizontal radius of rectangle used for averaging. Allowed
16359 range is from 1 to 100. Default value is 5.
16360
16361 sizeh
16362 Set vertical radius of rectangle used for averaging. Allowed range
16363 is from 1 to 100. Default value is 5.
16364
16365 stepw
16366 Set horizontal step when averaging. Default value is 1. Allowed
16367 range is from 1 to 50. Mostly useful to speed-up filtering.
16368
16369 steph
16370 Set vertical step when averaging. Default value is 1. Allowed
16371 range is from 1 to 50. Mostly useful to speed-up filtering.
16372
16373 threy
16374 Set Y threshold for averaging chrominance values. Set finer
16375 control for max allowed difference between Y components of current
16376 pixel and neigbour pixels. Default value is 200. Allowed range is
16377 from 1 to 200.
16378
16379 threu
16380 Set U threshold for averaging chrominance values. Set finer
16381 control for max allowed difference between U components of current
16382 pixel and neigbour pixels. Default value is 200. Allowed range is
16383 from 1 to 200.
16384
16385 threv
16386 Set V threshold for averaging chrominance values. Set finer
16387 control for max allowed difference between V components of current
16388 pixel and neigbour pixels. Default value is 200. Allowed range is
16389 from 1 to 200.
16390
16391 distance
16392 Set distance type used in calculations.
16393
16394 manhattan
16395 Absolute difference.
16396
16397 euclidean
16398 Difference squared.
16399
16400 Default distance type is manhattan.
16401
16402 Commands
16403
16404 This filter supports same commands as options. The command accepts the
16405 same syntax of the corresponding option.
16406
16407 chromashift
16408 Shift chroma pixels horizontally and/or vertically.
16409
16410 The filter accepts the following options:
16411
16412 cbh Set amount to shift chroma-blue horizontally.
16413
16414 cbv Set amount to shift chroma-blue vertically.
16415
16416 crh Set amount to shift chroma-red horizontally.
16417
16418 crv Set amount to shift chroma-red vertically.
16419
16420 edge
16421 Set edge mode, can be smear, default, or warp.
16422
16423 Commands
16424
16425 This filter supports the all above options as commands.
16426
16427 ciescope
16428 Display CIE color diagram with pixels overlaid onto it.
16429
16430 The filter accepts the following options:
16431
16432 system
16433 Set color system.
16434
16435 ntsc, 470m
16436 ebu, 470bg
16437 smpte
16438 240m
16439 apple
16440 widergb
16441 cie1931
16442 rec709, hdtv
16443 uhdtv, rec2020
16444 dcip3
16445 cie Set CIE system.
16446
16447 xyy
16448 ucs
16449 luv
16450 gamuts
16451 Set what gamuts to draw.
16452
16453 See "system" option for available values.
16454
16455 size, s
16456 Set ciescope size, by default set to 512.
16457
16458 intensity, i
16459 Set intensity used to map input pixel values to CIE diagram.
16460
16461 contrast
16462 Set contrast used to draw tongue colors that are out of active
16463 color system gamut.
16464
16465 corrgamma
16466 Correct gamma displayed on scope, by default enabled.
16467
16468 showwhite
16469 Show white point on CIE diagram, by default disabled.
16470
16471 gamma
16472 Set input gamma. Used only with XYZ input color space.
16473
16474 codecview
16475 Visualize information exported by some codecs.
16476
16477 Some codecs can export information through frames using side-data or
16478 other means. For example, some MPEG based codecs export motion vectors
16479 through the export_mvs flag in the codec flags2 option.
16480
16481 The filter accepts the following option:
16482
16483 block
16484 Display block partition structure using the luma plane.
16485
16486 mv Set motion vectors to visualize.
16487
16488 Available flags for mv are:
16489
16490 pf forward predicted MVs of P-frames
16491
16492 bf forward predicted MVs of B-frames
16493
16494 bb backward predicted MVs of B-frames
16495
16496 qp Display quantization parameters using the chroma planes.
16497
16498 mv_type, mvt
16499 Set motion vectors type to visualize. Includes MVs from all frames
16500 unless specified by frame_type option.
16501
16502 Available flags for mv_type are:
16503
16504 fp forward predicted MVs
16505
16506 bp backward predicted MVs
16507
16508 frame_type, ft
16509 Set frame type to visualize motion vectors of.
16510
16511 Available flags for frame_type are:
16512
16513 if intra-coded frames (I-frames)
16514
16515 pf predicted frames (P-frames)
16516
16517 bf bi-directionally predicted frames (B-frames)
16518
16519 Examples
16520
16521 • Visualize forward predicted MVs of all frames using ffplay:
16522
16523 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
16524
16525 • Visualize multi-directionals MVs of P and B-Frames using ffplay:
16526
16527 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
16528
16529 colorbalance
16530 Modify intensity of primary colors (red, green and blue) of input
16531 frames.
16532
16533 The filter allows an input frame to be adjusted in the shadows,
16534 midtones or highlights regions for the red-cyan, green-magenta or blue-
16535 yellow balance.
16536
16537 A positive adjustment value shifts the balance towards the primary
16538 color, a negative value towards the complementary color.
16539
16540 The filter accepts the following options:
16541
16542 rs
16543 gs
16544 bs Adjust red, green and blue shadows (darkest pixels).
16545
16546 rm
16547 gm
16548 bm Adjust red, green and blue midtones (medium pixels).
16549
16550 rh
16551 gh
16552 bh Adjust red, green and blue highlights (brightest pixels).
16553
16554 Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
16555
16556 pl Preserve lightness when changing color balance. Default is
16557 disabled.
16558
16559 Examples
16560
16561 • Add red color cast to shadows:
16562
16563 colorbalance=rs=.3
16564
16565 Commands
16566
16567 This filter supports the all above options as commands.
16568
16569 colorcontrast
16570 Adjust color contrast between RGB components.
16571
16572 The filter accepts the following options:
16573
16574 rc Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
16575 -1.0 to 1.0.
16576
16577 gm Set the green-magenta contrast. Defaults is 0.0. Allowed range is
16578 from -1.0 to 1.0.
16579
16580 by Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
16581 from -1.0 to 1.0.
16582
16583 rcw
16584 gmw
16585 byw Set the weight of each "rc", "gm", "by" option value. Default value
16586 is 0.0. Allowed range is from 0.0 to 1.0. If all weights are 0.0
16587 filtering is disabled.
16588
16589 pl Set the amount of preserving lightness. Default value is 0.0.
16590 Allowed range is from 0.0 to 1.0.
16591
16592 Commands
16593
16594 This filter supports the all above options as commands.
16595
16596 colorcorrect
16597 Adjust color white balance selectively for blacks and whites. This
16598 filter operates in YUV colorspace.
16599
16600 The filter accepts the following options:
16601
16602 rl Set the red shadow spot. Allowed range is from -1.0 to 1.0.
16603 Default value is 0.
16604
16605 bl Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
16606 Default value is 0.
16607
16608 rh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
16609 Default value is 0.
16610
16611 bh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
16612 Default value is 0.
16613
16614 saturation
16615 Set the amount of saturation. Allowed range is from -3.0 to 3.0.
16616 Default value is 1.
16617
16618 analyze
16619 If set to anything other than "manual" it will analyze every frame
16620 and use derived parameters for filtering output frame.
16621
16622 Possible values are:
16623
16624 manual
16625 average
16626 minmax
16627 median
16628
16629 Default value is "manual".
16630
16631 Commands
16632
16633 This filter supports the all above options as commands.
16634
16635 colorchannelmixer
16636 Adjust video input frames by re-mixing color channels.
16637
16638 This filter modifies a color channel by adding the values associated to
16639 the other channels of the same pixels. For example if the value to
16640 modify is red, the output value will be:
16641
16642 <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
16643
16644 The filter accepts the following options:
16645
16646 rr
16647 rg
16648 rb
16649 ra Adjust contribution of input red, green, blue and alpha channels
16650 for output red channel. Default is 1 for rr, and 0 for rg, rb and
16651 ra.
16652
16653 gr
16654 gg
16655 gb
16656 ga Adjust contribution of input red, green, blue and alpha channels
16657 for output green channel. Default is 1 for gg, and 0 for gr, gb
16658 and ga.
16659
16660 br
16661 bg
16662 bb
16663 ba Adjust contribution of input red, green, blue and alpha channels
16664 for output blue channel. Default is 1 for bb, and 0 for br, bg and
16665 ba.
16666
16667 ar
16668 ag
16669 ab
16670 aa Adjust contribution of input red, green, blue and alpha channels
16671 for output alpha channel. Default is 1 for aa, and 0 for ar, ag
16672 and ab.
16673
16674 Allowed ranges for options are "[-2.0, 2.0]".
16675
16676 pc Set preserve color mode. The accepted values are:
16677
16678 none
16679 Disable color preserving, this is default.
16680
16681 lum Preserve luminance.
16682
16683 max Preserve max value of RGB triplet.
16684
16685 avg Preserve average value of RGB triplet.
16686
16687 sum Preserve sum value of RGB triplet.
16688
16689 nrm Preserve normalized value of RGB triplet.
16690
16691 pwr Preserve power value of RGB triplet.
16692
16693 pa Set the preserve color amount when changing colors. Allowed range
16694 is from "[0.0, 1.0]". Default is 0.0, thus disabled.
16695
16696 Examples
16697
16698 • Convert source to grayscale:
16699
16700 colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
16701
16702 • Simulate sepia tones:
16703
16704 colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
16705
16706 Commands
16707
16708 This filter supports the all above options as commands.
16709
16710 colorize
16711 Overlay a solid color on the video stream.
16712
16713 The filter accepts the following options:
16714
16715 hue Set the color hue. Allowed range is from 0 to 360. Default value
16716 is 0.
16717
16718 saturation
16719 Set the color saturation. Allowed range is from 0 to 1. Default
16720 value is 0.5.
16721
16722 lightness
16723 Set the color lightness. Allowed range is from 0 to 1. Default
16724 value is 0.5.
16725
16726 mix Set the mix of source lightness. By default is set to 1.0. Allowed
16727 range is from 0.0 to 1.0.
16728
16729 Commands
16730
16731 This filter supports the all above options as commands.
16732
16733 colorkey
16734 RGB colorspace color keying. This filter operates on 8-bit RGB format
16735 frames by setting the alpha component of each pixel which falls within
16736 the similarity radius of the key color to 0. The alpha value for pixels
16737 outside the similarity radius depends on the value of the blend option.
16738
16739 The filter accepts the following options:
16740
16741 color
16742 Set the color for which alpha will be set to 0 (full transparency).
16743 See "Color" section in the ffmpeg-utils manual. Default is
16744 "black".
16745
16746 similarity
16747 Set the radius from the key color within which other colors also
16748 have full transparency. The computed distance is related to the
16749 unit fractional distance in 3D space between the RGB values of the
16750 key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
16751 within a very small radius around the exact key color, while 1.0
16752 matches everything. Default is 0.01.
16753
16754 blend
16755 Set how the alpha value for pixels that fall outside the similarity
16756 radius is computed. 0.0 makes pixels either fully transparent or
16757 fully opaque. Higher values result in semi-transparent pixels,
16758 with greater transparency the more similar the pixel color is to
16759 the key color. Range is 0.0 to 1.0. Default is 0.0.
16760
16761 Examples
16762
16763 • Make every green pixel in the input image transparent:
16764
16765 ffmpeg -i input.png -vf colorkey=green out.png
16766
16767 • Overlay a greenscreen-video on top of a static background image.
16768
16769 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
16770
16771 Commands
16772
16773 This filter supports same commands as options. The command accepts the
16774 same syntax of the corresponding option.
16775
16776 If the specified expression is not valid, it is kept at its current
16777 value.
16778
16779 colorhold
16780 Remove all color information for all RGB colors except for certain one.
16781
16782 The filter accepts the following options:
16783
16784 color
16785 The color which will not be replaced with neutral gray.
16786
16787 similarity
16788 Similarity percentage with the above color. 0.01 matches only the
16789 exact key color, while 1.0 matches everything.
16790
16791 blend
16792 Blend percentage. 0.0 makes pixels fully gray. Higher values
16793 result in more preserved color.
16794
16795 Commands
16796
16797 This filter supports same commands as options. The command accepts the
16798 same syntax of the corresponding option.
16799
16800 If the specified expression is not valid, it is kept at its current
16801 value.
16802
16803 colorlevels
16804 Adjust video input frames using levels.
16805
16806 The filter accepts the following options:
16807
16808 rimin
16809 gimin
16810 bimin
16811 aimin
16812 Adjust red, green, blue and alpha input black point. Allowed
16813 ranges for options are "[-1.0, 1.0]". Defaults are 0.
16814
16815 rimax
16816 gimax
16817 bimax
16818 aimax
16819 Adjust red, green, blue and alpha input white point. Allowed
16820 ranges for options are "[-1.0, 1.0]". Defaults are 1.
16821
16822 Input levels are used to lighten highlights (bright tones), darken
16823 shadows (dark tones), change the balance of bright and dark tones.
16824
16825 romin
16826 gomin
16827 bomin
16828 aomin
16829 Adjust red, green, blue and alpha output black point. Allowed
16830 ranges for options are "[0, 1.0]". Defaults are 0.
16831
16832 romax
16833 gomax
16834 bomax
16835 aomax
16836 Adjust red, green, blue and alpha output white point. Allowed
16837 ranges for options are "[0, 1.0]". Defaults are 1.
16838
16839 Output levels allows manual selection of a constrained output level
16840 range.
16841
16842 preserve
16843 Set preserve color mode. The accepted values are:
16844
16845 none
16846 Disable color preserving, this is default.
16847
16848 lum Preserve luminance.
16849
16850 max Preserve max value of RGB triplet.
16851
16852 avg Preserve average value of RGB triplet.
16853
16854 sum Preserve sum value of RGB triplet.
16855
16856 nrm Preserve normalized value of RGB triplet.
16857
16858 pwr Preserve power value of RGB triplet.
16859
16860 Examples
16861
16862 • Make video output darker:
16863
16864 colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
16865
16866 • Increase contrast:
16867
16868 colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
16869
16870 • Make video output lighter:
16871
16872 colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
16873
16874 • Increase brightness:
16875
16876 colorlevels=romin=0.5:gomin=0.5:bomin=0.5
16877
16878 Commands
16879
16880 This filter supports the all above options as commands.
16881
16882 colormatrix
16883 Convert color matrix.
16884
16885 The filter accepts the following options:
16886
16887 src
16888 dst Specify the source and destination color matrix. Both values must
16889 be specified.
16890
16891 The accepted values are:
16892
16893 bt709
16894 BT.709
16895
16896 fcc FCC
16897
16898 bt601
16899 BT.601
16900
16901 bt470
16902 BT.470
16903
16904 bt470bg
16905 BT.470BG
16906
16907 smpte170m
16908 SMPTE-170M
16909
16910 smpte240m
16911 SMPTE-240M
16912
16913 bt2020
16914 BT.2020
16915
16916 For example to convert from BT.601 to SMPTE-240M, use the command:
16917
16918 colormatrix=bt601:smpte240m
16919
16920 colorspace
16921 Convert colorspace, transfer characteristics or color primaries. Input
16922 video needs to have an even size.
16923
16924 The filter accepts the following options:
16925
16926 all Specify all color properties at once.
16927
16928 The accepted values are:
16929
16930 bt470m
16931 BT.470M
16932
16933 bt470bg
16934 BT.470BG
16935
16936 bt601-6-525
16937 BT.601-6 525
16938
16939 bt601-6-625
16940 BT.601-6 625
16941
16942 bt709
16943 BT.709
16944
16945 smpte170m
16946 SMPTE-170M
16947
16948 smpte240m
16949 SMPTE-240M
16950
16951 bt2020
16952 BT.2020
16953
16954 space
16955 Specify output colorspace.
16956
16957 The accepted values are:
16958
16959 bt709
16960 BT.709
16961
16962 fcc FCC
16963
16964 bt470bg
16965 BT.470BG or BT.601-6 625
16966
16967 smpte170m
16968 SMPTE-170M or BT.601-6 525
16969
16970 smpte240m
16971 SMPTE-240M
16972
16973 ycgco
16974 YCgCo
16975
16976 bt2020ncl
16977 BT.2020 with non-constant luminance
16978
16979 trc Specify output transfer characteristics.
16980
16981 The accepted values are:
16982
16983 bt709
16984 BT.709
16985
16986 bt470m
16987 BT.470M
16988
16989 bt470bg
16990 BT.470BG
16991
16992 gamma22
16993 Constant gamma of 2.2
16994
16995 gamma28
16996 Constant gamma of 2.8
16997
16998 smpte170m
16999 SMPTE-170M, BT.601-6 625 or BT.601-6 525
17000
17001 smpte240m
17002 SMPTE-240M
17003
17004 srgb
17005 SRGB
17006
17007 iec61966-2-1
17008 iec61966-2-1
17009
17010 iec61966-2-4
17011 iec61966-2-4
17012
17013 xvycc
17014 xvycc
17015
17016 bt2020-10
17017 BT.2020 for 10-bits content
17018
17019 bt2020-12
17020 BT.2020 for 12-bits content
17021
17022 primaries
17023 Specify output color primaries.
17024
17025 The accepted values are:
17026
17027 bt709
17028 BT.709
17029
17030 bt470m
17031 BT.470M
17032
17033 bt470bg
17034 BT.470BG or BT.601-6 625
17035
17036 smpte170m
17037 SMPTE-170M or BT.601-6 525
17038
17039 smpte240m
17040 SMPTE-240M
17041
17042 film
17043 film
17044
17045 smpte431
17046 SMPTE-431
17047
17048 smpte432
17049 SMPTE-432
17050
17051 bt2020
17052 BT.2020
17053
17054 jedec-p22
17055 JEDEC P22 phosphors
17056
17057 range
17058 Specify output color range.
17059
17060 The accepted values are:
17061
17062 tv TV (restricted) range
17063
17064 mpeg
17065 MPEG (restricted) range
17066
17067 pc PC (full) range
17068
17069 jpeg
17070 JPEG (full) range
17071
17072 format
17073 Specify output color format.
17074
17075 The accepted values are:
17076
17077 yuv420p
17078 YUV 4:2:0 planar 8-bits
17079
17080 yuv420p10
17081 YUV 4:2:0 planar 10-bits
17082
17083 yuv420p12
17084 YUV 4:2:0 planar 12-bits
17085
17086 yuv422p
17087 YUV 4:2:2 planar 8-bits
17088
17089 yuv422p10
17090 YUV 4:2:2 planar 10-bits
17091
17092 yuv422p12
17093 YUV 4:2:2 planar 12-bits
17094
17095 yuv444p
17096 YUV 4:4:4 planar 8-bits
17097
17098 yuv444p10
17099 YUV 4:4:4 planar 10-bits
17100
17101 yuv444p12
17102 YUV 4:4:4 planar 12-bits
17103
17104 fast
17105 Do a fast conversion, which skips gamma/primary correction. This
17106 will take significantly less CPU, but will be mathematically
17107 incorrect. To get output compatible with that produced by the
17108 colormatrix filter, use fast=1.
17109
17110 dither
17111 Specify dithering mode.
17112
17113 The accepted values are:
17114
17115 none
17116 No dithering
17117
17118 fsb Floyd-Steinberg dithering
17119
17120 wpadapt
17121 Whitepoint adaptation mode.
17122
17123 The accepted values are:
17124
17125 bradford
17126 Bradford whitepoint adaptation
17127
17128 vonkries
17129 von Kries whitepoint adaptation
17130
17131 identity
17132 identity whitepoint adaptation (i.e. no whitepoint adaptation)
17133
17134 iall
17135 Override all input properties at once. Same accepted values as all.
17136
17137 ispace
17138 Override input colorspace. Same accepted values as space.
17139
17140 iprimaries
17141 Override input color primaries. Same accepted values as primaries.
17142
17143 itrc
17144 Override input transfer characteristics. Same accepted values as
17145 trc.
17146
17147 irange
17148 Override input color range. Same accepted values as range.
17149
17150 The filter converts the transfer characteristics, color space and color
17151 primaries to the specified user values. The output value, if not
17152 specified, is set to a default value based on the "all" property. If
17153 that property is also not specified, the filter will log an error. The
17154 output color range and format default to the same value as the input
17155 color range and format. The input transfer characteristics, color
17156 space, color primaries and color range should be set on the input data.
17157 If any of these are missing, the filter will log an error and no
17158 conversion will take place.
17159
17160 For example to convert the input to SMPTE-240M, use the command:
17161
17162 colorspace=smpte240m
17163
17164 colortemperature
17165 Adjust color temperature in video to simulate variations in ambient
17166 color temperature.
17167
17168 The filter accepts the following options:
17169
17170 temperature
17171 Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
17172 Default value is 6500 K.
17173
17174 mix Set mixing with filtered output. Allowed range is from 0 to 1.
17175 Default value is 1.
17176
17177 pl Set the amount of preserving lightness. Allowed range is from 0 to
17178 1. Default value is 0.
17179
17180 Commands
17181
17182 This filter supports same commands as options.
17183
17184 convolution
17185 Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
17186 elements.
17187
17188 The filter accepts the following options:
17189
17190 0m
17191 1m
17192 2m
17193 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
17194 signed integers in square mode, and from 1 to 49 odd number of
17195 signed integers in row mode.
17196
17197 0rdiv
17198 1rdiv
17199 2rdiv
17200 3rdiv
17201 Set multiplier for calculated value for each plane. If unset or 0,
17202 it will be sum of all matrix elements.
17203
17204 0bias
17205 1bias
17206 2bias
17207 3bias
17208 Set bias for each plane. This value is added to the result of the
17209 multiplication. Useful for making the overall image brighter or
17210 darker. Default is 0.0.
17211
17212 0mode
17213 1mode
17214 2mode
17215 3mode
17216 Set matrix mode for each plane. Can be square, row or column.
17217 Default is square.
17218
17219 Commands
17220
17221 This filter supports the all above options as commands.
17222
17223 Examples
17224
17225 • Apply sharpen:
17226
17227 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"
17228
17229 • Apply blur:
17230
17231 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"
17232
17233 • Apply edge enhance:
17234
17235 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"
17236
17237 • Apply edge detect:
17238
17239 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"
17240
17241 • Apply laplacian edge detector which includes diagonals:
17242
17243 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"
17244
17245 • Apply emboss:
17246
17247 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"
17248
17249 convolve
17250 Apply 2D convolution of video stream in frequency domain using second
17251 stream as impulse.
17252
17253 The filter accepts the following options:
17254
17255 planes
17256 Set which planes to process.
17257
17258 impulse
17259 Set which impulse video frames will be processed, can be first or
17260 all. Default is all.
17261
17262 The "convolve" filter also supports the framesync options.
17263
17264 copy
17265 Copy the input video source unchanged to the output. This is mainly
17266 useful for testing purposes.
17267
17268 coreimage
17269 Video filtering on GPU using Apple's CoreImage API on OSX.
17270
17271 Hardware acceleration is based on an OpenGL context. Usually, this
17272 means it is processed by video hardware. However, software-based OpenGL
17273 implementations exist which means there is no guarantee for hardware
17274 processing. It depends on the respective OSX.
17275
17276 There are many filters and image generators provided by Apple that come
17277 with a large variety of options. The filter has to be referenced by its
17278 name along with its options.
17279
17280 The coreimage filter accepts the following options:
17281
17282 list_filters
17283 List all available filters and generators along with all their
17284 respective options as well as possible minimum and maximum values
17285 along with the default values.
17286
17287 list_filters=true
17288
17289 filter
17290 Specify all filters by their respective name and options. Use
17291 list_filters to determine all valid filter names and options.
17292 Numerical options are specified by a float value and are
17293 automatically clamped to their respective value range. Vector and
17294 color options have to be specified by a list of space separated
17295 float values. Character escaping has to be done. A special option
17296 name "default" is available to use default options for a filter.
17297
17298 It is required to specify either "default" or at least one of the
17299 filter options. All omitted options are used with their default
17300 values. The syntax of the filter string is as follows:
17301
17302 filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
17303
17304 output_rect
17305 Specify a rectangle where the output of the filter chain is copied
17306 into the input image. It is given by a list of space separated
17307 float values:
17308
17309 output_rect=x\ y\ width\ height
17310
17311 If not given, the output rectangle equals the dimensions of the
17312 input image. The output rectangle is automatically cropped at the
17313 borders of the input image. Negative values are valid for each
17314 component.
17315
17316 output_rect=25\ 25\ 100\ 100
17317
17318 Several filters can be chained for successive processing without GPU-
17319 HOST transfers allowing for fast processing of complex filter chains.
17320 Currently, only filters with zero (generators) or exactly one (filters)
17321 input image and one output image are supported. Also, transition
17322 filters are not yet usable as intended.
17323
17324 Some filters generate output images with additional padding depending
17325 on the respective filter kernel. The padding is automatically removed
17326 to ensure the filter output has the same size as the input image.
17327
17328 For image generators, the size of the output image is determined by the
17329 previous output image of the filter chain or the input image of the
17330 whole filterchain, respectively. The generators do not use the pixel
17331 information of this image to generate their output. However, the
17332 generated output is blended onto this image, resulting in partial or
17333 complete coverage of the output image.
17334
17335 The coreimagesrc video source can be used for generating input images
17336 which are directly fed into the filter chain. By using it, providing
17337 input images by another video source or an input video is not required.
17338
17339 Examples
17340
17341 • List all filters available:
17342
17343 coreimage=list_filters=true
17344
17345 • Use the CIBoxBlur filter with default options to blur an image:
17346
17347 coreimage=filter=CIBoxBlur@default
17348
17349 • Use a filter chain with CISepiaTone at default values and
17350 CIVignetteEffect with its center at 100x100 and a radius of 50
17351 pixels:
17352
17353 coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
17354
17355 • Use nullsrc and CIQRCodeGenerator to create a QR code for the
17356 FFmpeg homepage, given as complete and escaped command-line for
17357 Apple's standard bash shell:
17358
17359 ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
17360
17361 cover_rect
17362 Cover a rectangular object
17363
17364 It accepts the following options:
17365
17366 cover
17367 Filepath of the optional cover image, needs to be in yuv420.
17368
17369 mode
17370 Set covering mode.
17371
17372 It accepts the following values:
17373
17374 cover
17375 cover it by the supplied image
17376
17377 blur
17378 cover it by interpolating the surrounding pixels
17379
17380 Default value is blur.
17381
17382 Examples
17383
17384 • Cover a rectangular object by the supplied image of a given video
17385 using ffmpeg:
17386
17387 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
17388
17389 crop
17390 Crop the input video to given dimensions.
17391
17392 It accepts the following parameters:
17393
17394 w, out_w
17395 The width of the output video. It defaults to "iw". This
17396 expression is evaluated only once during the filter configuration,
17397 or when the w or out_w command is sent.
17398
17399 h, out_h
17400 The height of the output video. It defaults to "ih". This
17401 expression is evaluated only once during the filter configuration,
17402 or when the h or out_h command is sent.
17403
17404 x The horizontal position, in the input video, of the left edge of
17405 the output video. It defaults to "(in_w-out_w)/2". This expression
17406 is evaluated per-frame.
17407
17408 y The vertical position, in the input video, of the top edge of the
17409 output video. It defaults to "(in_h-out_h)/2". This expression is
17410 evaluated per-frame.
17411
17412 keep_aspect
17413 If set to 1 will force the output display aspect ratio to be the
17414 same of the input, by changing the output sample aspect ratio. It
17415 defaults to 0.
17416
17417 exact
17418 Enable exact cropping. If enabled, subsampled videos will be
17419 cropped at exact width/height/x/y as specified and will not be
17420 rounded to nearest smaller value. It defaults to 0.
17421
17422 The out_w, out_h, x, y parameters are expressions containing the
17423 following constants:
17424
17425 x
17426 y The computed values for x and y. They are evaluated for each new
17427 frame.
17428
17429 in_w
17430 in_h
17431 The input width and height.
17432
17433 iw
17434 ih These are the same as in_w and in_h.
17435
17436 out_w
17437 out_h
17438 The output (cropped) width and height.
17439
17440 ow
17441 oh These are the same as out_w and out_h.
17442
17443 a same as iw / ih
17444
17445 sar input sample aspect ratio
17446
17447 dar input display aspect ratio, it is the same as (iw / ih) * sar
17448
17449 hsub
17450 vsub
17451 horizontal and vertical chroma subsample values. For example for
17452 the pixel format "yuv422p" hsub is 2 and vsub is 1.
17453
17454 n The number of the input frame, starting from 0.
17455
17456 pos the position in the file of the input frame, NAN if unknown
17457
17458 t The timestamp expressed in seconds. It's NAN if the input timestamp
17459 is unknown.
17460
17461 The expression for out_w may depend on the value of out_h, and the
17462 expression for out_h may depend on out_w, but they cannot depend on x
17463 and y, as x and y are evaluated after out_w and out_h.
17464
17465 The x and y parameters specify the expressions for the position of the
17466 top-left corner of the output (non-cropped) area. They are evaluated
17467 for each frame. If the evaluated value is not valid, it is approximated
17468 to the nearest valid value.
17469
17470 The expression for x may depend on y, and the expression for y may
17471 depend on x.
17472
17473 Examples
17474
17475 • Crop area with size 100x100 at position (12,34).
17476
17477 crop=100:100:12:34
17478
17479 Using named options, the example above becomes:
17480
17481 crop=w=100:h=100:x=12:y=34
17482
17483 • Crop the central input area with size 100x100:
17484
17485 crop=100:100
17486
17487 • Crop the central input area with size 2/3 of the input video:
17488
17489 crop=2/3*in_w:2/3*in_h
17490
17491 • Crop the input video central square:
17492
17493 crop=out_w=in_h
17494 crop=in_h
17495
17496 • Delimit the rectangle with the top-left corner placed at position
17497 100:100 and the right-bottom corner corresponding to the right-
17498 bottom corner of the input image.
17499
17500 crop=in_w-100:in_h-100:100:100
17501
17502 • Crop 10 pixels from the left and right borders, and 20 pixels from
17503 the top and bottom borders
17504
17505 crop=in_w-2*10:in_h-2*20
17506
17507 • Keep only the bottom right quarter of the input image:
17508
17509 crop=in_w/2:in_h/2:in_w/2:in_h/2
17510
17511 • Crop height for getting Greek harmony:
17512
17513 crop=in_w:1/PHI*in_w
17514
17515 • Apply trembling effect:
17516
17517 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)
17518
17519 • Apply erratic camera effect depending on timestamp:
17520
17521 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)"
17522
17523 • Set x depending on the value of y:
17524
17525 crop=in_w/2:in_h/2:y:10+10*sin(n/10)
17526
17527 Commands
17528
17529 This filter supports the following commands:
17530
17531 w, out_w
17532 h, out_h
17533 x
17534 y Set width/height of the output video and the horizontal/vertical
17535 position in the input video. The command accepts the same syntax
17536 of the corresponding option.
17537
17538 If the specified expression is not valid, it is kept at its current
17539 value.
17540
17541 cropdetect
17542 Auto-detect the crop size.
17543
17544 It calculates the necessary cropping parameters and prints the
17545 recommended parameters via the logging system. The detected dimensions
17546 correspond to the non-black area of the input video.
17547
17548 It accepts the following parameters:
17549
17550 limit
17551 Set higher black value threshold, which can be optionally specified
17552 from nothing (0) to everything (255 for 8-bit based formats). An
17553 intensity value greater to the set value is considered non-black.
17554 It defaults to 24. You can also specify a value between 0.0 and
17555 1.0 which will be scaled depending on the bitdepth of the pixel
17556 format.
17557
17558 round
17559 The value which the width/height should be divisible by. It
17560 defaults to 16. The offset is automatically adjusted to center the
17561 video. Use 2 to get only even dimensions (needed for 4:2:2 video).
17562 16 is best when encoding to most video codecs.
17563
17564 skip
17565 Set the number of initial frames for which evaluation is skipped.
17566 Default is 2. Range is 0 to INT_MAX.
17567
17568 reset_count, reset
17569 Set the counter that determines after how many frames cropdetect
17570 will reset the previously detected largest video area and start
17571 over to detect the current optimal crop area. Default value is 0.
17572
17573 This can be useful when channel logos distort the video area. 0
17574 indicates 'never reset', and returns the largest area encountered
17575 during playback.
17576
17577 cue
17578 Delay video filtering until a given wallclock timestamp. The filter
17579 first passes on preroll amount of frames, then it buffers at most
17580 buffer amount of frames and waits for the cue. After reaching the cue
17581 it forwards the buffered frames and also any subsequent frames coming
17582 in its input.
17583
17584 The filter can be used synchronize the output of multiple ffmpeg
17585 processes for realtime output devices like decklink. By putting the
17586 delay in the filtering chain and pre-buffering frames the process can
17587 pass on data to output almost immediately after the target wallclock
17588 timestamp is reached.
17589
17590 Perfect frame accuracy cannot be guaranteed, but the result is good
17591 enough for some use cases.
17592
17593 cue The cue timestamp expressed in a UNIX timestamp in microseconds.
17594 Default is 0.
17595
17596 preroll
17597 The duration of content to pass on as preroll expressed in seconds.
17598 Default is 0.
17599
17600 buffer
17601 The maximum duration of content to buffer before waiting for the
17602 cue expressed in seconds. Default is 0.
17603
17604 curves
17605 Apply color adjustments using curves.
17606
17607 This filter is similar to the Adobe Photoshop and GIMP curves tools.
17608 Each component (red, green and blue) has its values defined by N key
17609 points tied from each other using a smooth curve. The x-axis represents
17610 the pixel values from the input frame, and the y-axis the new pixel
17611 values to be set for the output frame.
17612
17613 By default, a component curve is defined by the two points (0;0) and
17614 (1;1). This creates a straight line where each original pixel value is
17615 "adjusted" to its own value, which means no change to the image.
17616
17617 The filter allows you to redefine these two points and add some more. A
17618 new curve (using a natural cubic spline interpolation) will be define
17619 to pass smoothly through all these new coordinates. The new defined
17620 points needs to be strictly increasing over the x-axis, and their x and
17621 y values must be in the [0;1] interval. If the computed curves
17622 happened to go outside the vector spaces, the values will be clipped
17623 accordingly.
17624
17625 The filter accepts the following options:
17626
17627 preset
17628 Select one of the available color presets. This option can be used
17629 in addition to the r, g, b parameters; in this case, the later
17630 options takes priority on the preset values. Available presets
17631 are:
17632
17633 none
17634 color_negative
17635 cross_process
17636 darker
17637 increase_contrast
17638 lighter
17639 linear_contrast
17640 medium_contrast
17641 negative
17642 strong_contrast
17643 vintage
17644
17645 Default is "none".
17646
17647 master, m
17648 Set the master key points. These points will define a second pass
17649 mapping. It is sometimes called a "luminance" or "value" mapping.
17650 It can be used with r, g, b or all since it acts like a post-
17651 processing LUT.
17652
17653 red, r
17654 Set the key points for the red component.
17655
17656 green, g
17657 Set the key points for the green component.
17658
17659 blue, b
17660 Set the key points for the blue component.
17661
17662 all Set the key points for all components (not including master). Can
17663 be used in addition to the other key points component options. In
17664 this case, the unset component(s) will fallback on this all
17665 setting.
17666
17667 psfile
17668 Specify a Photoshop curves file (".acv") to import the settings
17669 from.
17670
17671 plot
17672 Save Gnuplot script of the curves in specified file.
17673
17674 To avoid some filtergraph syntax conflicts, each key points list need
17675 to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
17676
17677 Commands
17678
17679 This filter supports same commands as options.
17680
17681 Examples
17682
17683 • Increase slightly the middle level of blue:
17684
17685 curves=blue='0/0 0.5/0.58 1/1'
17686
17687 • Vintage effect:
17688
17689 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'
17690
17691 Here we obtain the following coordinates for each components:
17692
17693 red "(0;0.11) (0.42;0.51) (1;0.95)"
17694
17695 green
17696 "(0;0) (0.50;0.48) (1;1)"
17697
17698 blue
17699 "(0;0.22) (0.49;0.44) (1;0.80)"
17700
17701 • The previous example can also be achieved with the associated
17702 built-in preset:
17703
17704 curves=preset=vintage
17705
17706 • Or simply:
17707
17708 curves=vintage
17709
17710 • Use a Photoshop preset and redefine the points of the green
17711 component:
17712
17713 curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
17714
17715 • Check out the curves of the "cross_process" profile using ffmpeg
17716 and gnuplot:
17717
17718 ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
17719 gnuplot -p /tmp/curves.plt
17720
17721 datascope
17722 Video data analysis filter.
17723
17724 This filter shows hexadecimal pixel values of part of video.
17725
17726 The filter accepts the following options:
17727
17728 size, s
17729 Set output video size.
17730
17731 x Set x offset from where to pick pixels.
17732
17733 y Set y offset from where to pick pixels.
17734
17735 mode
17736 Set scope mode, can be one of the following:
17737
17738 mono
17739 Draw hexadecimal pixel values with white color on black
17740 background.
17741
17742 color
17743 Draw hexadecimal pixel values with input video pixel color on
17744 black background.
17745
17746 color2
17747 Draw hexadecimal pixel values on color background picked from
17748 input video, the text color is picked in such way so its always
17749 visible.
17750
17751 axis
17752 Draw rows and columns numbers on left and top of video.
17753
17754 opacity
17755 Set background opacity.
17756
17757 format
17758 Set display number format. Can be "hex", or "dec". Default is
17759 "hex".
17760
17761 components
17762 Set pixel components to display. By default all pixel components
17763 are displayed.
17764
17765 Commands
17766
17767 This filter supports same commands as options excluding "size" option.
17768
17769 dblur
17770 Apply Directional blur filter.
17771
17772 The filter accepts the following options:
17773
17774 angle
17775 Set angle of directional blur. Default is 45.
17776
17777 radius
17778 Set radius of directional blur. Default is 5.
17779
17780 planes
17781 Set which planes to filter. By default all planes are filtered.
17782
17783 Commands
17784
17785 This filter supports same commands as options. The command accepts the
17786 same syntax of the corresponding option.
17787
17788 If the specified expression is not valid, it is kept at its current
17789 value.
17790
17791 dctdnoiz
17792 Denoise frames using 2D DCT (frequency domain filtering).
17793
17794 This filter is not designed for real time.
17795
17796 The filter accepts the following options:
17797
17798 sigma, s
17799 Set the noise sigma constant.
17800
17801 This sigma defines a hard threshold of "3 * sigma"; every DCT
17802 coefficient (absolute value) below this threshold with be dropped.
17803
17804 If you need a more advanced filtering, see expr.
17805
17806 Default is 0.
17807
17808 overlap
17809 Set number overlapping pixels for each block. Since the filter can
17810 be slow, you may want to reduce this value, at the cost of a less
17811 effective filter and the risk of various artefacts.
17812
17813 If the overlapping value doesn't permit processing the whole input
17814 width or height, a warning will be displayed and according borders
17815 won't be denoised.
17816
17817 Default value is blocksize-1, which is the best possible setting.
17818
17819 expr, e
17820 Set the coefficient factor expression.
17821
17822 For each coefficient of a DCT block, this expression will be
17823 evaluated as a multiplier value for the coefficient.
17824
17825 If this is option is set, the sigma option will be ignored.
17826
17827 The absolute value of the coefficient can be accessed through the c
17828 variable.
17829
17830 n Set the blocksize using the number of bits. "1<<n" defines the
17831 blocksize, which is the width and height of the processed blocks.
17832
17833 The default value is 3 (8x8) and can be raised to 4 for a blocksize
17834 of 16x16. Note that changing this setting has huge consequences on
17835 the speed processing. Also, a larger block size does not
17836 necessarily means a better de-noising.
17837
17838 Examples
17839
17840 Apply a denoise with a sigma of 4.5:
17841
17842 dctdnoiz=4.5
17843
17844 The same operation can be achieved using the expression system:
17845
17846 dctdnoiz=e='gte(c, 4.5*3)'
17847
17848 Violent denoise using a block size of "16x16":
17849
17850 dctdnoiz=15:n=4
17851
17852 deband
17853 Remove banding artifacts from input video. It works by replacing
17854 banded pixels with average value of referenced pixels.
17855
17856 The filter accepts the following options:
17857
17858 1thr
17859 2thr
17860 3thr
17861 4thr
17862 Set banding detection threshold for each plane. Default is 0.02.
17863 Valid range is 0.00003 to 0.5. If difference between current pixel
17864 and reference pixel is less than threshold, it will be considered
17865 as banded.
17866
17867 range, r
17868 Banding detection range in pixels. Default is 16. If positive,
17869 random number in range 0 to set value will be used. If negative,
17870 exact absolute value will be used. The range defines square of
17871 four pixels around current pixel.
17872
17873 direction, d
17874 Set direction in radians from which four pixel will be compared. If
17875 positive, random direction from 0 to set direction will be picked.
17876 If negative, exact of absolute value will be picked. For example
17877 direction 0, -PI or -2*PI radians will pick only pixels on same row
17878 and -PI/2 will pick only pixels on same column.
17879
17880 blur, b
17881 If enabled, current pixel is compared with average value of all
17882 four surrounding pixels. The default is enabled. If disabled
17883 current pixel is compared with all four surrounding pixels. The
17884 pixel is considered banded if only all four differences with
17885 surrounding pixels are less than threshold.
17886
17887 coupling, c
17888 If enabled, current pixel is changed if and only if all pixel
17889 components are banded, e.g. banding detection threshold is
17890 triggered for all color components. The default is disabled.
17891
17892 Commands
17893
17894 This filter supports the all above options as commands.
17895
17896 deblock
17897 Remove blocking artifacts from input video.
17898
17899 The filter accepts the following options:
17900
17901 filter
17902 Set filter type, can be weak or strong. Default is strong. This
17903 controls what kind of deblocking is applied.
17904
17905 block
17906 Set size of block, allowed range is from 4 to 512. Default is 8.
17907
17908 alpha
17909 beta
17910 gamma
17911 delta
17912 Set blocking detection thresholds. Allowed range is 0 to 1.
17913 Defaults are: 0.098 for alpha and 0.05 for the rest. Using higher
17914 threshold gives more deblocking strength. Setting alpha controls
17915 threshold detection at exact edge of block. Remaining options
17916 controls threshold detection near the edge. Each one for
17917 below/above or left/right. Setting any of those to 0 disables
17918 deblocking.
17919
17920 planes
17921 Set planes to filter. Default is to filter all available planes.
17922
17923 Examples
17924
17925 • Deblock using weak filter and block size of 4 pixels.
17926
17927 deblock=filter=weak:block=4
17928
17929 • Deblock using strong filter, block size of 4 pixels and custom
17930 thresholds for deblocking more edges.
17931
17932 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
17933
17934 • Similar as above, but filter only first plane.
17935
17936 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
17937
17938 • Similar as above, but filter only second and third plane.
17939
17940 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
17941
17942 Commands
17943
17944 This filter supports the all above options as commands.
17945
17946 decimate
17947 Drop duplicated frames at regular intervals.
17948
17949 The filter accepts the following options:
17950
17951 cycle
17952 Set the number of frames from which one will be dropped. Setting
17953 this to N means one frame in every batch of N frames will be
17954 dropped. Default is 5.
17955
17956 dupthresh
17957 Set the threshold for duplicate detection. If the difference metric
17958 for a frame is less than or equal to this value, then it is
17959 declared as duplicate. Default is 1.1
17960
17961 scthresh
17962 Set scene change threshold. Default is 15.
17963
17964 blockx
17965 blocky
17966 Set the size of the x and y-axis blocks used during metric
17967 calculations. Larger blocks give better noise suppression, but
17968 also give worse detection of small movements. Must be a power of
17969 two. Default is 32.
17970
17971 ppsrc
17972 Mark main input as a pre-processed input and activate clean source
17973 input stream. This allows the input to be pre-processed with
17974 various filters to help the metrics calculation while keeping the
17975 frame selection lossless. When set to 1, the first stream is for
17976 the pre-processed input, and the second stream is the clean source
17977 from where the kept frames are chosen. Default is 0.
17978
17979 chroma
17980 Set whether or not chroma is considered in the metric calculations.
17981 Default is 1.
17982
17983 deconvolve
17984 Apply 2D deconvolution of video stream in frequency domain using second
17985 stream as impulse.
17986
17987 The filter accepts the following options:
17988
17989 planes
17990 Set which planes to process.
17991
17992 impulse
17993 Set which impulse video frames will be processed, can be first or
17994 all. Default is all.
17995
17996 noise
17997 Set noise when doing divisions. Default is 0.0000001. Useful when
17998 width and height are not same and not power of 2 or if stream prior
17999 to convolving had noise.
18000
18001 The "deconvolve" filter also supports the framesync options.
18002
18003 dedot
18004 Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
18005 video.
18006
18007 It accepts the following options:
18008
18009 m Set mode of operation. Can be combination of dotcrawl for cross-
18010 luminance reduction and/or rainbows for cross-color reduction.
18011
18012 lt Set spatial luma threshold. Lower values increases reduction of
18013 cross-luminance.
18014
18015 tl Set tolerance for temporal luma. Higher values increases reduction
18016 of cross-luminance.
18017
18018 tc Set tolerance for chroma temporal variation. Higher values
18019 increases reduction of cross-color.
18020
18021 ct Set temporal chroma threshold. Lower values increases reduction of
18022 cross-color.
18023
18024 deflate
18025 Apply deflate effect to the video.
18026
18027 This filter replaces the pixel by the local(3x3) average by taking into
18028 account only values lower than the pixel.
18029
18030 It accepts the following options:
18031
18032 threshold0
18033 threshold1
18034 threshold2
18035 threshold3
18036 Limit the maximum change for each plane, default is 65535. If 0,
18037 plane will remain unchanged.
18038
18039 Commands
18040
18041 This filter supports the all above options as commands.
18042
18043 deflicker
18044 Remove temporal frame luminance variations.
18045
18046 It accepts the following options:
18047
18048 size, s
18049 Set moving-average filter size in frames. Default is 5. Allowed
18050 range is 2 - 129.
18051
18052 mode, m
18053 Set averaging mode to smooth temporal luminance variations.
18054
18055 Available values are:
18056
18057 am Arithmetic mean
18058
18059 gm Geometric mean
18060
18061 hm Harmonic mean
18062
18063 qm Quadratic mean
18064
18065 cm Cubic mean
18066
18067 pm Power mean
18068
18069 median
18070 Median
18071
18072 bypass
18073 Do not actually modify frame. Useful when one only wants metadata.
18074
18075 dejudder
18076 Remove judder produced by partially interlaced telecined content.
18077
18078 Judder can be introduced, for instance, by pullup filter. If the
18079 original source was partially telecined content then the output of
18080 "pullup,dejudder" will have a variable frame rate. May change the
18081 recorded frame rate of the container. Aside from that change, this
18082 filter will not affect constant frame rate video.
18083
18084 The option available in this filter is:
18085
18086 cycle
18087 Specify the length of the window over which the judder repeats.
18088
18089 Accepts any integer greater than 1. Useful values are:
18090
18091 4 If the original was telecined from 24 to 30 fps (Film to NTSC).
18092
18093 5 If the original was telecined from 25 to 30 fps (PAL to NTSC).
18094
18095 20 If a mixture of the two.
18096
18097 The default is 4.
18098
18099 delogo
18100 Suppress a TV station logo by a simple interpolation of the surrounding
18101 pixels. Just set a rectangle covering the logo and watch it disappear
18102 (and sometimes something even uglier appear - your mileage may vary).
18103
18104 It accepts the following parameters:
18105
18106 x
18107 y Specify the top left corner coordinates of the logo. They must be
18108 specified.
18109
18110 w
18111 h Specify the width and height of the logo to clear. They must be
18112 specified.
18113
18114 show
18115 When set to 1, a green rectangle is drawn on the screen to simplify
18116 finding the right x, y, w, and h parameters. The default value is
18117 0.
18118
18119 The rectangle is drawn on the outermost pixels which will be
18120 (partly) replaced with interpolated values. The values of the next
18121 pixels immediately outside this rectangle in each direction will be
18122 used to compute the interpolated pixel values inside the rectangle.
18123
18124 Examples
18125
18126 • Set a rectangle covering the area with top left corner coordinates
18127 0,0 and size 100x77:
18128
18129 delogo=x=0:y=0:w=100:h=77
18130
18131 derain
18132 Remove the rain in the input image/video by applying the derain methods
18133 based on convolutional neural networks. Supported models:
18134
18135 • Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
18136 See
18137 <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
18138
18139 Training as well as model generation scripts are provided in the
18140 repository at <https://github.com/XueweiMeng/derain_filter.git>.
18141
18142 Native model files (.model) can be generated from TensorFlow model
18143 files (.pb) by using tools/python/convert.py
18144
18145 The filter accepts the following options:
18146
18147 filter_type
18148 Specify which filter to use. This option accepts the following
18149 values:
18150
18151 derain
18152 Derain filter. To conduct derain filter, you need to use a
18153 derain model.
18154
18155 dehaze
18156 Dehaze filter. To conduct dehaze filter, you need to use a
18157 dehaze model.
18158
18159 Default value is derain.
18160
18161 dnn_backend
18162 Specify which DNN backend to use for model loading and execution.
18163 This option accepts the following values:
18164
18165 native
18166 Native implementation of DNN loading and execution.
18167
18168 tensorflow
18169 TensorFlow backend. To enable this backend you need to install
18170 the TensorFlow for C library (see
18171 <https://www.tensorflow.org/install/lang_c>) and configure
18172 FFmpeg with "--enable-libtensorflow"
18173
18174 Default value is native.
18175
18176 model
18177 Set path to model file specifying network architecture and its
18178 parameters. Note that different backends use different file
18179 formats. TensorFlow and native backend can load files for only its
18180 format.
18181
18182 To get full functionality (such as async execution), please use the
18183 dnn_processing filter.
18184
18185 deshake
18186 Attempt to fix small changes in horizontal and/or vertical shift. This
18187 filter helps remove camera shake from hand-holding a camera, bumping a
18188 tripod, moving on a vehicle, etc.
18189
18190 The filter accepts the following options:
18191
18192 x
18193 y
18194 w
18195 h Specify a rectangular area where to limit the search for motion
18196 vectors. If desired the search for motion vectors can be limited
18197 to a rectangular area of the frame defined by its top left corner,
18198 width and height. These parameters have the same meaning as the
18199 drawbox filter which can be used to visualise the position of the
18200 bounding box.
18201
18202 This is useful when simultaneous movement of subjects within the
18203 frame might be confused for camera motion by the motion vector
18204 search.
18205
18206 If any or all of x, y, w and h are set to -1 then the full frame is
18207 used. This allows later options to be set without specifying the
18208 bounding box for the motion vector search.
18209
18210 Default - search the whole frame.
18211
18212 rx
18213 ry Specify the maximum extent of movement in x and y directions in the
18214 range 0-64 pixels. Default 16.
18215
18216 edge
18217 Specify how to generate pixels to fill blanks at the edge of the
18218 frame. Available values are:
18219
18220 blank, 0
18221 Fill zeroes at blank locations
18222
18223 original, 1
18224 Original image at blank locations
18225
18226 clamp, 2
18227 Extruded edge value at blank locations
18228
18229 mirror, 3
18230 Mirrored edge at blank locations
18231
18232 Default value is mirror.
18233
18234 blocksize
18235 Specify the blocksize to use for motion search. Range 4-128 pixels,
18236 default 8.
18237
18238 contrast
18239 Specify the contrast threshold for blocks. Only blocks with more
18240 than the specified contrast (difference between darkest and
18241 lightest pixels) will be considered. Range 1-255, default 125.
18242
18243 search
18244 Specify the search strategy. Available values are:
18245
18246 exhaustive, 0
18247 Set exhaustive search
18248
18249 less, 1
18250 Set less exhaustive search.
18251
18252 Default value is exhaustive.
18253
18254 filename
18255 If set then a detailed log of the motion search is written to the
18256 specified file.
18257
18258 despill
18259 Remove unwanted contamination of foreground colors, caused by reflected
18260 color of greenscreen or bluescreen.
18261
18262 This filter accepts the following options:
18263
18264 type
18265 Set what type of despill to use.
18266
18267 mix Set how spillmap will be generated.
18268
18269 expand
18270 Set how much to get rid of still remaining spill.
18271
18272 red Controls amount of red in spill area.
18273
18274 green
18275 Controls amount of green in spill area. Should be -1 for
18276 greenscreen.
18277
18278 blue
18279 Controls amount of blue in spill area. Should be -1 for
18280 bluescreen.
18281
18282 brightness
18283 Controls brightness of spill area, preserving colors.
18284
18285 alpha
18286 Modify alpha from generated spillmap.
18287
18288 Commands
18289
18290 This filter supports the all above options as commands.
18291
18292 detelecine
18293 Apply an exact inverse of the telecine operation. It requires a
18294 predefined pattern specified using the pattern option which must be the
18295 same as that passed to the telecine filter.
18296
18297 This filter accepts the following options:
18298
18299 first_field
18300 top, t
18301 top field first
18302
18303 bottom, b
18304 bottom field first The default value is "top".
18305
18306 pattern
18307 A string of numbers representing the pulldown pattern you wish to
18308 apply. The default value is 23.
18309
18310 start_frame
18311 A number representing position of the first frame with respect to
18312 the telecine pattern. This is to be used if the stream is cut. The
18313 default value is 0.
18314
18315 dilation
18316 Apply dilation effect to the video.
18317
18318 This filter replaces the pixel by the local(3x3) maximum.
18319
18320 It accepts the following options:
18321
18322 threshold0
18323 threshold1
18324 threshold2
18325 threshold3
18326 Limit the maximum change for each plane, default is 65535. If 0,
18327 plane will remain unchanged.
18328
18329 coordinates
18330 Flag which specifies the pixel to refer to. Default is 255 i.e. all
18331 eight pixels are used.
18332
18333 Flags to local 3x3 coordinates maps like this:
18334
18335 1 2 3
18336 4 5
18337 6 7 8
18338
18339 Commands
18340
18341 This filter supports the all above options as commands.
18342
18343 displace
18344 Displace pixels as indicated by second and third input stream.
18345
18346 It takes three input streams and outputs one stream, the first input is
18347 the source, and second and third input are displacement maps.
18348
18349 The second input specifies how much to displace pixels along the
18350 x-axis, while the third input specifies how much to displace pixels
18351 along the y-axis. If one of displacement map streams terminates, last
18352 frame from that displacement map will be used.
18353
18354 Note that once generated, displacements maps can be reused over and
18355 over again.
18356
18357 A description of the accepted options follows.
18358
18359 edge
18360 Set displace behavior for pixels that are out of range.
18361
18362 Available values are:
18363
18364 blank
18365 Missing pixels are replaced by black pixels.
18366
18367 smear
18368 Adjacent pixels will spread out to replace missing pixels.
18369
18370 wrap
18371 Out of range pixels are wrapped so they point to pixels of
18372 other side.
18373
18374 mirror
18375 Out of range pixels will be replaced with mirrored pixels.
18376
18377 Default is smear.
18378
18379 Examples
18380
18381 • Add ripple effect to rgb input of video size hd720:
18382
18383 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
18384
18385 • Add wave effect to rgb input of video size hd720:
18386
18387 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
18388
18389 dnn_classify
18390 Do classification with deep neural networks based on bounding boxes.
18391
18392 The filter accepts the following options:
18393
18394 dnn_backend
18395 Specify which DNN backend to use for model loading and execution.
18396 This option accepts only openvino now, tensorflow backends will be
18397 added.
18398
18399 model
18400 Set path to model file specifying network architecture and its
18401 parameters. Note that different backends use different file
18402 formats.
18403
18404 input
18405 Set the input name of the dnn network.
18406
18407 output
18408 Set the output name of the dnn network.
18409
18410 confidence
18411 Set the confidence threshold (default: 0.5).
18412
18413 labels
18414 Set path to label file specifying the mapping between label id and
18415 name. Each label name is written in one line, tailing spaces and
18416 empty lines are skipped. The first line is the name of label id 0,
18417 and the second line is the name of label id 1, etc. The label id
18418 is considered as name if the label file is not provided.
18419
18420 backend_configs
18421 Set the configs to be passed into backend
18422
18423 For tensorflow backend, you can set its configs with sess_config
18424 options, please use tools/python/tf_sess_config.py to get the
18425 configs for your system.
18426
18427 dnn_detect
18428 Do object detection with deep neural networks.
18429
18430 The filter accepts the following options:
18431
18432 dnn_backend
18433 Specify which DNN backend to use for model loading and execution.
18434 This option accepts only openvino now, tensorflow backends will be
18435 added.
18436
18437 model
18438 Set path to model file specifying network architecture and its
18439 parameters. Note that different backends use different file
18440 formats.
18441
18442 input
18443 Set the input name of the dnn network.
18444
18445 output
18446 Set the output name of the dnn network.
18447
18448 confidence
18449 Set the confidence threshold (default: 0.5).
18450
18451 labels
18452 Set path to label file specifying the mapping between label id and
18453 name. Each label name is written in one line, tailing spaces and
18454 empty lines are skipped. The first line is the name of label id 0
18455 (usually it is 'background'), and the second line is the name of
18456 label id 1, etc. The label id is considered as name if the label
18457 file is not provided.
18458
18459 backend_configs
18460 Set the configs to be passed into backend. To use async execution,
18461 set async (default: set). Roll back to sync execution if the
18462 backend does not support async.
18463
18464 dnn_processing
18465 Do image processing with deep neural networks. It works together with
18466 another filter which converts the pixel format of the Frame to what the
18467 dnn network requires.
18468
18469 The filter accepts the following options:
18470
18471 dnn_backend
18472 Specify which DNN backend to use for model loading and execution.
18473 This option accepts the following values:
18474
18475 native
18476 Native implementation of DNN loading and execution.
18477
18478 tensorflow
18479 TensorFlow backend. To enable this backend you need to install
18480 the TensorFlow for C library (see
18481 <https://www.tensorflow.org/install/lang_c>) and configure
18482 FFmpeg with "--enable-libtensorflow"
18483
18484 openvino
18485 OpenVINO backend. To enable this backend you need to build and
18486 install the OpenVINO for C library (see
18487 <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
18488 and configure FFmpeg with "--enable-libopenvino"
18489 (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
18490 the header files and libraries are not installed into system
18491 path)
18492
18493 Default value is native.
18494
18495 model
18496 Set path to model file specifying network architecture and its
18497 parameters. Note that different backends use different file
18498 formats. TensorFlow, OpenVINO and native backend can load files for
18499 only its format.
18500
18501 Native model file (.model) can be generated from TensorFlow model
18502 file (.pb) by using tools/python/convert.py
18503
18504 input
18505 Set the input name of the dnn network.
18506
18507 output
18508 Set the output name of the dnn network.
18509
18510 backend_configs
18511 Set the configs to be passed into backend. To use async execution,
18512 set async (default: set). Roll back to sync execution if the
18513 backend does not support async.
18514
18515 For tensorflow backend, you can set its configs with sess_config
18516 options, please use tools/python/tf_sess_config.py to get the
18517 configs of TensorFlow backend for your system.
18518
18519 Examples
18520
18521 • Remove rain in rgb24 frame with can.pb (see derain filter):
18522
18523 ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
18524
18525 • Halve the pixel value of the frame with format gray32f:
18526
18527 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
18528
18529 • Handle the Y channel with srcnn.pb (see sr filter) for frame with
18530 yuv420p (planar YUV formats supported):
18531
18532 ./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
18533
18534 • Handle the Y channel with espcn.pb (see sr filter), which changes
18535 frame size, for format yuv420p (planar YUV formats supported),
18536 please use tools/python/tf_sess_config.py to get the configs of
18537 TensorFlow backend for your system.
18538
18539 ./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
18540
18541 drawbox
18542 Draw a colored box on the input image.
18543
18544 It accepts the following parameters:
18545
18546 x
18547 y The expressions which specify the top left corner coordinates of
18548 the box. It defaults to 0.
18549
18550 width, w
18551 height, h
18552 The expressions which specify the width and height of the box; if 0
18553 they are interpreted as the input width and height. It defaults to
18554 0.
18555
18556 color, c
18557 Specify the color of the box to write. For the general syntax of
18558 this option, check the "Color" section in the ffmpeg-utils manual.
18559 If the special value "invert" is used, the box edge color is the
18560 same as the video with inverted luma.
18561
18562 thickness, t
18563 The expression which sets the thickness of the box edge. A value
18564 of "fill" will create a filled box. Default value is 3.
18565
18566 See below for the list of accepted constants.
18567
18568 replace
18569 Applicable if the input has alpha. With value 1, the pixels of the
18570 painted box will overwrite the video's color and alpha pixels.
18571 Default is 0, which composites the box onto the input, leaving the
18572 video's alpha intact.
18573
18574 The parameters for x, y, w and h and t are expressions containing the
18575 following constants:
18576
18577 dar The input display aspect ratio, it is the same as (w / h) * sar.
18578
18579 hsub
18580 vsub
18581 horizontal and vertical chroma subsample values. For example for
18582 the pixel format "yuv422p" hsub is 2 and vsub is 1.
18583
18584 in_h, ih
18585 in_w, iw
18586 The input width and height.
18587
18588 sar The input sample aspect ratio.
18589
18590 x
18591 y The x and y offset coordinates where the box is drawn.
18592
18593 w
18594 h The width and height of the drawn box.
18595
18596 box_source
18597 Box source can be set as side_data_detection_bboxes if you want to
18598 use box data in detection bboxes of side data.
18599
18600 If box_source is set, the x, y, width and height will be ignored
18601 and still use box data in detection bboxes of side data. So please
18602 do not use this parameter if you were not sure about the box
18603 source.
18604
18605 t The thickness of the drawn box.
18606
18607 These constants allow the x, y, w, h and t expressions to refer to
18608 each other, so you may for example specify "y=x/dar" or "h=w/dar".
18609
18610 Examples
18611
18612 • Draw a black box around the edge of the input image:
18613
18614 drawbox
18615
18616 • Draw a box with color red and an opacity of 50%:
18617
18618 drawbox=10:20:200:60:red@0.5
18619
18620 The previous example can be specified as:
18621
18622 drawbox=x=10:y=20:w=200:h=60:color=red@0.5
18623
18624 • Fill the box with pink color:
18625
18626 drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
18627
18628 • Draw a 2-pixel red 2.40:1 mask:
18629
18630 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
18631
18632 Commands
18633
18634 This filter supports same commands as options. The command accepts the
18635 same syntax of the corresponding option.
18636
18637 If the specified expression is not valid, it is kept at its current
18638 value.
18639
18640 drawgraph
18641 Draw a graph using input video metadata.
18642
18643 It accepts the following parameters:
18644
18645 m1 Set 1st frame metadata key from which metadata values will be used
18646 to draw a graph.
18647
18648 fg1 Set 1st foreground color expression.
18649
18650 m2 Set 2nd frame metadata key from which metadata values will be used
18651 to draw a graph.
18652
18653 fg2 Set 2nd foreground color expression.
18654
18655 m3 Set 3rd frame metadata key from which metadata values will be used
18656 to draw a graph.
18657
18658 fg3 Set 3rd foreground color expression.
18659
18660 m4 Set 4th frame metadata key from which metadata values will be used
18661 to draw a graph.
18662
18663 fg4 Set 4th foreground color expression.
18664
18665 min Set minimal value of metadata value.
18666
18667 max Set maximal value of metadata value.
18668
18669 bg Set graph background color. Default is white.
18670
18671 mode
18672 Set graph mode.
18673
18674 Available values for mode is:
18675
18676 bar
18677 dot
18678 line
18679
18680 Default is "line".
18681
18682 slide
18683 Set slide mode.
18684
18685 Available values for slide is:
18686
18687 frame
18688 Draw new frame when right border is reached.
18689
18690 replace
18691 Replace old columns with new ones.
18692
18693 scroll
18694 Scroll from right to left.
18695
18696 rscroll
18697 Scroll from left to right.
18698
18699 picture
18700 Draw single picture.
18701
18702 Default is "frame".
18703
18704 size
18705 Set size of graph video. For the syntax of this option, check the
18706 "Video size" section in the ffmpeg-utils manual. The default value
18707 is "900x256".
18708
18709 rate, r
18710 Set the output frame rate. Default value is 25.
18711
18712 The foreground color expressions can use the following variables:
18713
18714 MIN Minimal value of metadata value.
18715
18716 MAX Maximal value of metadata value.
18717
18718 VAL Current metadata key value.
18719
18720 The color is defined as 0xAABBGGRR.
18721
18722 Example using metadata from signalstats filter:
18723
18724 signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
18725
18726 Example using metadata from ebur128 filter:
18727
18728 ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
18729
18730 drawgrid
18731 Draw a grid on the input image.
18732
18733 It accepts the following parameters:
18734
18735 x
18736 y The expressions which specify the coordinates of some point of grid
18737 intersection (meant to configure offset). Both default to 0.
18738
18739 width, w
18740 height, h
18741 The expressions which specify the width and height of the grid
18742 cell, if 0 they are interpreted as the input width and height,
18743 respectively, minus "thickness", so image gets framed. Default to
18744 0.
18745
18746 color, c
18747 Specify the color of the grid. For the general syntax of this
18748 option, check the "Color" section in the ffmpeg-utils manual. If
18749 the special value "invert" is used, the grid color is the same as
18750 the video with inverted luma.
18751
18752 thickness, t
18753 The expression which sets the thickness of the grid line. Default
18754 value is 1.
18755
18756 See below for the list of accepted constants.
18757
18758 replace
18759 Applicable if the input has alpha. With 1 the pixels of the painted
18760 grid will overwrite the video's color and alpha pixels. Default is
18761 0, which composites the grid onto the input, leaving the video's
18762 alpha intact.
18763
18764 The parameters for x, y, w and h and t are expressions containing the
18765 following constants:
18766
18767 dar The input display aspect ratio, it is the same as (w / h) * sar.
18768
18769 hsub
18770 vsub
18771 horizontal and vertical chroma subsample values. For example for
18772 the pixel format "yuv422p" hsub is 2 and vsub is 1.
18773
18774 in_h, ih
18775 in_w, iw
18776 The input grid cell width and height.
18777
18778 sar The input sample aspect ratio.
18779
18780 x
18781 y The x and y coordinates of some point of grid intersection (meant
18782 to configure offset).
18783
18784 w
18785 h The width and height of the drawn cell.
18786
18787 t The thickness of the drawn cell.
18788
18789 These constants allow the x, y, w, h and t expressions to refer to
18790 each other, so you may for example specify "y=x/dar" or "h=w/dar".
18791
18792 Examples
18793
18794 • Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
18795 color red and an opacity of 50%:
18796
18797 drawgrid=width=100:height=100:thickness=2:color=red@0.5
18798
18799 • Draw a white 3x3 grid with an opacity of 50%:
18800
18801 drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
18802
18803 Commands
18804
18805 This filter supports same commands as options. The command accepts the
18806 same syntax of the corresponding option.
18807
18808 If the specified expression is not valid, it is kept at its current
18809 value.
18810
18811 drawtext
18812 Draw a text string or text from a specified file on top of a video,
18813 using the libfreetype library.
18814
18815 To enable compilation of this filter, you need to configure FFmpeg with
18816 "--enable-libfreetype". To enable default font fallback and the font
18817 option you need to configure FFmpeg with "--enable-libfontconfig". To
18818 enable the text_shaping option, you need to configure FFmpeg with
18819 "--enable-libfribidi".
18820
18821 Syntax
18822
18823 It accepts the following parameters:
18824
18825 box Used to draw a box around text using the background color. The
18826 value must be either 1 (enable) or 0 (disable). The default value
18827 of box is 0.
18828
18829 boxborderw
18830 Set the width of the border to be drawn around the box using
18831 boxcolor. The default value of boxborderw is 0.
18832
18833 boxcolor
18834 The color to be used for drawing box around text. For the syntax of
18835 this option, check the "Color" section in the ffmpeg-utils manual.
18836
18837 The default value of boxcolor is "white".
18838
18839 line_spacing
18840 Set the line spacing in pixels of the border to be drawn around the
18841 box using box. The default value of line_spacing is 0.
18842
18843 borderw
18844 Set the width of the border to be drawn around the text using
18845 bordercolor. The default value of borderw is 0.
18846
18847 bordercolor
18848 Set the color to be used for drawing border around text. For the
18849 syntax of this option, check the "Color" section in the ffmpeg-
18850 utils manual.
18851
18852 The default value of bordercolor is "black".
18853
18854 expansion
18855 Select how the text is expanded. Can be either "none", "strftime"
18856 (deprecated) or "normal" (default). See the drawtext_expansion,
18857 Text expansion section below for details.
18858
18859 basetime
18860 Set a start time for the count. Value is in microseconds. Only
18861 applied in the deprecated strftime expansion mode. To emulate in
18862 normal expansion mode use the "pts" function, supplying the start
18863 time (in seconds) as the second argument.
18864
18865 fix_bounds
18866 If true, check and fix text coords to avoid clipping.
18867
18868 fontcolor
18869 The color to be used for drawing fonts. For the syntax of this
18870 option, check the "Color" section in the ffmpeg-utils manual.
18871
18872 The default value of fontcolor is "black".
18873
18874 fontcolor_expr
18875 String which is expanded the same way as text to obtain dynamic
18876 fontcolor value. By default this option has empty value and is not
18877 processed. When this option is set, it overrides fontcolor option.
18878
18879 font
18880 The font family to be used for drawing text. By default Sans.
18881
18882 fontfile
18883 The font file to be used for drawing text. The path must be
18884 included. This parameter is mandatory if the fontconfig support is
18885 disabled.
18886
18887 alpha
18888 Draw the text applying alpha blending. The value can be a number
18889 between 0.0 and 1.0. The expression accepts the same variables x,
18890 y as well. The default value is 1. Please see fontcolor_expr.
18891
18892 fontsize
18893 The font size to be used for drawing text. The default value of
18894 fontsize is 16.
18895
18896 text_shaping
18897 If set to 1, attempt to shape the text (for example, reverse the
18898 order of right-to-left text and join Arabic characters) before
18899 drawing it. Otherwise, just draw the text exactly as given. By
18900 default 1 (if supported).
18901
18902 ft_load_flags
18903 The flags to be used for loading the fonts.
18904
18905 The flags map the corresponding flags supported by libfreetype, and
18906 are a combination of the following values:
18907
18908 default
18909 no_scale
18910 no_hinting
18911 render
18912 no_bitmap
18913 vertical_layout
18914 force_autohint
18915 crop_bitmap
18916 pedantic
18917 ignore_global_advance_width
18918 no_recurse
18919 ignore_transform
18920 monochrome
18921 linear_design
18922 no_autohint
18923
18924 Default value is "default".
18925
18926 For more information consult the documentation for the FT_LOAD_*
18927 libfreetype flags.
18928
18929 shadowcolor
18930 The color to be used for drawing a shadow behind the drawn text.
18931 For the syntax of this option, check the "Color" section in the
18932 ffmpeg-utils manual.
18933
18934 The default value of shadowcolor is "black".
18935
18936 shadowx
18937 shadowy
18938 The x and y offsets for the text shadow position with respect to
18939 the position of the text. They can be either positive or negative
18940 values. The default value for both is "0".
18941
18942 start_number
18943 The starting frame number for the n/frame_num variable. The default
18944 value is "0".
18945
18946 tabsize
18947 The size in number of spaces to use for rendering the tab. Default
18948 value is 4.
18949
18950 timecode
18951 Set the initial timecode representation in "hh:mm:ss[:;.]ff"
18952 format. It can be used with or without text parameter.
18953 timecode_rate option must be specified.
18954
18955 timecode_rate, rate, r
18956 Set the timecode frame rate (timecode only). Value will be rounded
18957 to nearest integer. Minimum value is "1". Drop-frame timecode is
18958 supported for frame rates 30 & 60.
18959
18960 tc24hmax
18961 If set to 1, the output of the timecode option will wrap around at
18962 24 hours. Default is 0 (disabled).
18963
18964 text
18965 The text string to be drawn. The text must be a sequence of UTF-8
18966 encoded characters. This parameter is mandatory if no file is
18967 specified with the parameter textfile.
18968
18969 textfile
18970 A text file containing text to be drawn. The text must be a
18971 sequence of UTF-8 encoded characters.
18972
18973 This parameter is mandatory if no text string is specified with the
18974 parameter text.
18975
18976 If both text and textfile are specified, an error is thrown.
18977
18978 text_source
18979 Text source should be set as side_data_detection_bboxes if you want
18980 to use text data in detection bboxes of side data.
18981
18982 If text source is set, text and textfile will be ignored and still
18983 use text data in detection bboxes of side data. So please do not
18984 use this parameter if you are not sure about the text source.
18985
18986 reload
18987 If set to 1, the textfile will be reloaded before each frame. Be
18988 sure to update it atomically, or it may be read partially, or even
18989 fail.
18990
18991 x
18992 y The expressions which specify the offsets where text will be drawn
18993 within the video frame. They are relative to the top/left border of
18994 the output image.
18995
18996 The default value of x and y is "0".
18997
18998 See below for the list of accepted constants and functions.
18999
19000 The parameters for x and y are expressions containing the following
19001 constants and functions:
19002
19003 dar input display aspect ratio, it is the same as (w / h) * sar
19004
19005 hsub
19006 vsub
19007 horizontal and vertical chroma subsample values. For example for
19008 the pixel format "yuv422p" hsub is 2 and vsub is 1.
19009
19010 line_h, lh
19011 the height of each text line
19012
19013 main_h, h, H
19014 the input height
19015
19016 main_w, w, W
19017 the input width
19018
19019 max_glyph_a, ascent
19020 the maximum distance from the baseline to the highest/upper grid
19021 coordinate used to place a glyph outline point, for all the
19022 rendered glyphs. It is a positive value, due to the grid's
19023 orientation with the Y axis upwards.
19024
19025 max_glyph_d, descent
19026 the maximum distance from the baseline to the lowest grid
19027 coordinate used to place a glyph outline point, for all the
19028 rendered glyphs. This is a negative value, due to the grid's
19029 orientation, with the Y axis upwards.
19030
19031 max_glyph_h
19032 maximum glyph height, that is the maximum height for all the glyphs
19033 contained in the rendered text, it is equivalent to ascent -
19034 descent.
19035
19036 max_glyph_w
19037 maximum glyph width, that is the maximum width for all the glyphs
19038 contained in the rendered text
19039
19040 n the number of input frame, starting from 0
19041
19042 rand(min, max)
19043 return a random number included between min and max
19044
19045 sar The input sample aspect ratio.
19046
19047 t timestamp expressed in seconds, NAN if the input timestamp is
19048 unknown
19049
19050 text_h, th
19051 the height of the rendered text
19052
19053 text_w, tw
19054 the width of the rendered text
19055
19056 x
19057 y the x and y offset coordinates where the text is drawn.
19058
19059 These parameters allow the x and y expressions to refer to each
19060 other, so you can for example specify "y=x/dar".
19061
19062 pict_type
19063 A one character description of the current frame's picture type.
19064
19065 pkt_pos
19066 The current packet's position in the input file or stream (in
19067 bytes, from the start of the input). A value of -1 indicates this
19068 info is not available.
19069
19070 pkt_duration
19071 The current packet's duration, in seconds.
19072
19073 pkt_size
19074 The current packet's size (in bytes).
19075
19076 Text expansion
19077
19078 If expansion is set to "strftime", the filter recognizes strftime()
19079 sequences in the provided text and expands them accordingly. Check the
19080 documentation of strftime(). This feature is deprecated.
19081
19082 If expansion is set to "none", the text is printed verbatim.
19083
19084 If expansion is set to "normal" (which is the default), the following
19085 expansion mechanism is used.
19086
19087 The backslash character \, followed by any character, always expands to
19088 the second character.
19089
19090 Sequences of the form "%{...}" are expanded. The text between the
19091 braces is a function name, possibly followed by arguments separated by
19092 ':'. If the arguments contain special characters or delimiters (':' or
19093 '}'), they should be escaped.
19094
19095 Note that they probably must also be escaped as the value for the text
19096 option in the filter argument string and as the filter argument in the
19097 filtergraph description, and possibly also for the shell, that makes up
19098 to four levels of escaping; using a text file avoids these problems.
19099
19100 The following functions are available:
19101
19102 expr, e
19103 The expression evaluation result.
19104
19105 It must take one argument specifying the expression to be
19106 evaluated, which accepts the same constants and functions as the x
19107 and y values. Note that not all constants should be used, for
19108 example the text size is not known when evaluating the expression,
19109 so the constants text_w and text_h will have an undefined value.
19110
19111 expr_int_format, eif
19112 Evaluate the expression's value and output as formatted integer.
19113
19114 The first argument is the expression to be evaluated, just as for
19115 the expr function. The second argument specifies the output
19116 format. Allowed values are x, X, d and u. They are treated exactly
19117 as in the "printf" function. The third parameter is optional and
19118 sets the number of positions taken by the output. It can be used
19119 to add padding with zeros from the left.
19120
19121 gmtime
19122 The time at which the filter is running, expressed in UTC. It can
19123 accept an argument: a strftime() format string.
19124
19125 localtime
19126 The time at which the filter is running, expressed in the local
19127 time zone. It can accept an argument: a strftime() format string.
19128
19129 metadata
19130 Frame metadata. Takes one or two arguments.
19131
19132 The first argument is mandatory and specifies the metadata key.
19133
19134 The second argument is optional and specifies a default value, used
19135 when the metadata key is not found or empty.
19136
19137 Available metadata can be identified by inspecting entries starting
19138 with TAG included within each frame section printed by running
19139 "ffprobe -show_frames".
19140
19141 String metadata generated in filters leading to the drawtext filter
19142 are also available.
19143
19144 n, frame_num
19145 The frame number, starting from 0.
19146
19147 pict_type
19148 A one character description of the current picture type.
19149
19150 pts The timestamp of the current frame. It can take up to three
19151 arguments.
19152
19153 The first argument is the format of the timestamp; it defaults to
19154 "flt" for seconds as a decimal number with microsecond accuracy;
19155 "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
19156 millisecond accuracy. "gmtime" stands for the timestamp of the
19157 frame formatted as UTC time; "localtime" stands for the timestamp
19158 of the frame formatted as local time zone time.
19159
19160 The second argument is an offset added to the timestamp.
19161
19162 If the format is set to "hms", a third argument "24HH" may be
19163 supplied to present the hour part of the formatted timestamp in 24h
19164 format (00-23).
19165
19166 If the format is set to "localtime" or "gmtime", a third argument
19167 may be supplied: a strftime() format string. By default, YYYY-MM-
19168 DD HH:MM:SS format will be used.
19169
19170 Commands
19171
19172 This filter supports altering parameters via commands:
19173
19174 reinit
19175 Alter existing filter parameters.
19176
19177 Syntax for the argument is the same as for filter invocation, e.g.
19178
19179 fontsize=56:fontcolor=green:text='Hello World'
19180
19181 Full filter invocation with sendcmd would look like this:
19182
19183 sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
19184
19185 If the entire argument can't be parsed or applied as valid values then
19186 the filter will continue with its existing parameters.
19187
19188 Examples
19189
19190 • Draw "Test Text" with font FreeSerif, using the default values for
19191 the optional parameters.
19192
19193 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
19194
19195 • Draw 'Test Text' with font FreeSerif of size 24 at position x=100
19196 and y=50 (counting from the top-left corner of the screen), text is
19197 yellow with a red box around it. Both the text and the box have an
19198 opacity of 20%.
19199
19200 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
19201 x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
19202
19203 Note that the double quotes are not necessary if spaces are not
19204 used within the parameter list.
19205
19206 • Show the text at the center of the video frame:
19207
19208 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
19209
19210 • Show the text at a random position, switching to a new position
19211 every 30 seconds:
19212
19213 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)"
19214
19215 • Show a text line sliding from right to left in the last row of the
19216 video frame. The file LONG_LINE is assumed to contain a single line
19217 with no newlines.
19218
19219 drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
19220
19221 • Show the content of file CREDITS off the bottom of the frame and
19222 scroll up.
19223
19224 drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
19225
19226 • Draw a single green letter "g", at the center of the input video.
19227 The glyph baseline is placed at half screen height.
19228
19229 drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
19230
19231 • Show text for 1 second every 3 seconds:
19232
19233 drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
19234
19235 • Use fontconfig to set the font. Note that the colons need to be
19236 escaped.
19237
19238 drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
19239
19240 • Draw "Test Text" with font size dependent on height of the video.
19241
19242 drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
19243
19244 • Print the date of a real-time encoding (see strftime(3)):
19245
19246 drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
19247
19248 • Show text fading in and out (appearing/disappearing):
19249
19250 #!/bin/sh
19251 DS=1.0 # display start
19252 DE=10.0 # display end
19253 FID=1.5 # fade in duration
19254 FOD=5 # fade out duration
19255 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 }"
19256
19257 • Horizontally align multiple separate texts. Note that max_glyph_a
19258 and the fontsize value are included in the y offset.
19259
19260 drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
19261 drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
19262
19263 • Plot special lavf.image2dec.source_basename metadata onto each
19264 frame if such metadata exists. Otherwise, plot the string "NA".
19265 Note that image2 demuxer must have option -export_path_metadata 1
19266 for the special metadata fields to be available for filters.
19267
19268 drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
19269
19270 For more information about libfreetype, check:
19271 <http://www.freetype.org/>.
19272
19273 For more information about fontconfig, check:
19274 <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
19275
19276 For more information about libfribidi, check: <http://fribidi.org/>.
19277
19278 edgedetect
19279 Detect and draw edges. The filter uses the Canny Edge Detection
19280 algorithm.
19281
19282 The filter accepts the following options:
19283
19284 low
19285 high
19286 Set low and high threshold values used by the Canny thresholding
19287 algorithm.
19288
19289 The high threshold selects the "strong" edge pixels, which are then
19290 connected through 8-connectivity with the "weak" edge pixels
19291 selected by the low threshold.
19292
19293 low and high threshold values must be chosen in the range [0,1],
19294 and low should be lesser or equal to high.
19295
19296 Default value for low is "20/255", and default value for high is
19297 "50/255".
19298
19299 mode
19300 Define the drawing mode.
19301
19302 wires
19303 Draw white/gray wires on black background.
19304
19305 colormix
19306 Mix the colors to create a paint/cartoon effect.
19307
19308 canny
19309 Apply Canny edge detector on all selected planes.
19310
19311 Default value is wires.
19312
19313 planes
19314 Select planes for filtering. By default all available planes are
19315 filtered.
19316
19317 Examples
19318
19319 • Standard edge detection with custom values for the hysteresis
19320 thresholding:
19321
19322 edgedetect=low=0.1:high=0.4
19323
19324 • Painting effect without thresholding:
19325
19326 edgedetect=mode=colormix:high=0
19327
19328 elbg
19329 Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
19330
19331 For each input image, the filter will compute the optimal mapping from
19332 the input to the output given the codebook length, that is the number
19333 of distinct output colors.
19334
19335 This filter accepts the following options.
19336
19337 codebook_length, l
19338 Set codebook length. The value must be a positive integer, and
19339 represents the number of distinct output colors. Default value is
19340 256.
19341
19342 nb_steps, n
19343 Set the maximum number of iterations to apply for computing the
19344 optimal mapping. The higher the value the better the result and the
19345 higher the computation time. Default value is 1.
19346
19347 seed, s
19348 Set a random seed, must be an integer included between 0 and
19349 UINT32_MAX. If not specified, or if explicitly set to -1, the
19350 filter will try to use a good random seed on a best effort basis.
19351
19352 pal8
19353 Set pal8 output pixel format. This option does not work with
19354 codebook length greater than 256. Default is disabled.
19355
19356 use_alpha
19357 Include alpha values in the quantization calculation. Allows
19358 creating palettized output images (e.g. PNG8) with multiple alpha
19359 smooth blending.
19360
19361 entropy
19362 Measure graylevel entropy in histogram of color channels of video
19363 frames.
19364
19365 It accepts the following parameters:
19366
19367 mode
19368 Can be either normal or diff. Default is normal.
19369
19370 diff mode measures entropy of histogram delta values, absolute
19371 differences between neighbour histogram values.
19372
19373 epx
19374 Apply the EPX magnification filter which is designed for pixel art.
19375
19376 It accepts the following option:
19377
19378 n Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX". Default
19379 is 3.
19380
19381 eq
19382 Set brightness, contrast, saturation and approximate gamma adjustment.
19383
19384 The filter accepts the following options:
19385
19386 contrast
19387 Set the contrast expression. The value must be a float value in
19388 range "-1000.0" to 1000.0. The default value is "1".
19389
19390 brightness
19391 Set the brightness expression. The value must be a float value in
19392 range "-1.0" to 1.0. The default value is "0".
19393
19394 saturation
19395 Set the saturation expression. The value must be a float in range
19396 0.0 to 3.0. The default value is "1".
19397
19398 gamma
19399 Set the gamma expression. The value must be a float in range 0.1 to
19400 10.0. The default value is "1".
19401
19402 gamma_r
19403 Set the gamma expression for red. The value must be a float in
19404 range 0.1 to 10.0. The default value is "1".
19405
19406 gamma_g
19407 Set the gamma expression for green. The value must be a float in
19408 range 0.1 to 10.0. The default value is "1".
19409
19410 gamma_b
19411 Set the gamma expression for blue. The value must be a float in
19412 range 0.1 to 10.0. The default value is "1".
19413
19414 gamma_weight
19415 Set the gamma weight expression. It can be used to reduce the
19416 effect of a high gamma value on bright image areas, e.g. keep them
19417 from getting overamplified and just plain white. The value must be
19418 a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
19419 correction all the way down while 1.0 leaves it at its full
19420 strength. Default is "1".
19421
19422 eval
19423 Set when the expressions for brightness, contrast, saturation and
19424 gamma expressions are evaluated.
19425
19426 It accepts the following values:
19427
19428 init
19429 only evaluate expressions once during the filter initialization
19430 or when a command is processed
19431
19432 frame
19433 evaluate expressions for each incoming frame
19434
19435 Default value is init.
19436
19437 The expressions accept the following parameters:
19438
19439 n frame count of the input frame starting from 0
19440
19441 pos byte position of the corresponding packet in the input file, NAN if
19442 unspecified
19443
19444 r frame rate of the input video, NAN if the input frame rate is
19445 unknown
19446
19447 t timestamp expressed in seconds, NAN if the input timestamp is
19448 unknown
19449
19450 Commands
19451
19452 The filter supports the following commands:
19453
19454 contrast
19455 Set the contrast expression.
19456
19457 brightness
19458 Set the brightness expression.
19459
19460 saturation
19461 Set the saturation expression.
19462
19463 gamma
19464 Set the gamma expression.
19465
19466 gamma_r
19467 Set the gamma_r expression.
19468
19469 gamma_g
19470 Set gamma_g expression.
19471
19472 gamma_b
19473 Set gamma_b expression.
19474
19475 gamma_weight
19476 Set gamma_weight expression.
19477
19478 The command accepts the same syntax of the corresponding option.
19479
19480 If the specified expression is not valid, it is kept at its current
19481 value.
19482
19483 erosion
19484 Apply erosion effect to the video.
19485
19486 This filter replaces the pixel by the local(3x3) minimum.
19487
19488 It accepts the following options:
19489
19490 threshold0
19491 threshold1
19492 threshold2
19493 threshold3
19494 Limit the maximum change for each plane, default is 65535. If 0,
19495 plane will remain unchanged.
19496
19497 coordinates
19498 Flag which specifies the pixel to refer to. Default is 255 i.e. all
19499 eight pixels are used.
19500
19501 Flags to local 3x3 coordinates maps like this:
19502
19503 1 2 3
19504 4 5
19505 6 7 8
19506
19507 Commands
19508
19509 This filter supports the all above options as commands.
19510
19511 estdif
19512 Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
19513 Deinterlacing Filter").
19514
19515 Spatial only filter that uses edge slope tracing algorithm to
19516 interpolate missing lines. It accepts the following parameters:
19517
19518 mode
19519 The interlacing mode to adopt. It accepts one of the following
19520 values:
19521
19522 frame
19523 Output one frame for each frame.
19524
19525 field
19526 Output one frame for each field.
19527
19528 The default value is "field".
19529
19530 parity
19531 The picture field parity assumed for the input interlaced video. It
19532 accepts one of the following values:
19533
19534 tff Assume the top field is first.
19535
19536 bff Assume the bottom field is first.
19537
19538 auto
19539 Enable automatic detection of field parity.
19540
19541 The default value is "auto". If the interlacing is unknown or the
19542 decoder does not export this information, top field first will be
19543 assumed.
19544
19545 deint
19546 Specify which frames to deinterlace. Accepts one of the following
19547 values:
19548
19549 all Deinterlace all frames.
19550
19551 interlaced
19552 Only deinterlace frames marked as interlaced.
19553
19554 The default value is "all".
19555
19556 rslope
19557 Specify the search radius for edge slope tracing. Default value is
19558 1. Allowed range is from 1 to 15.
19559
19560 redge
19561 Specify the search radius for best edge matching. Default value is
19562 2. Allowed range is from 0 to 15.
19563
19564 ecost
19565 Specify the edge cost for edge matching. Default value is 0.03125.
19566 Allowed range is from 0 to 1.
19567
19568 mcost
19569 Specify the middle cost for edge matching. Default value is 0.5.
19570 Allowed range is from 0 to 1.
19571
19572 dcost
19573 Specify the distance cost for edge matching. Default value is 0.5.
19574 Allowed range is from 0 to 1.
19575
19576 interp
19577 Specify the interpolation used. Default is 4-point interpolation.
19578 It accepts one of the following values:
19579
19580 2p Two-point interpolation.
19581
19582 4p Four-point interpolation.
19583
19584 6p Six-point interpolation.
19585
19586 Commands
19587
19588 This filter supports same commands as options.
19589
19590 exposure
19591 Adjust exposure of the video stream.
19592
19593 The filter accepts the following options:
19594
19595 exposure
19596 Set the exposure correction in EV. Allowed range is from -3.0 to
19597 3.0 EV Default value is 0 EV.
19598
19599 black
19600 Set the black level correction. Allowed range is from -1.0 to 1.0.
19601 Default value is 0.
19602
19603 Commands
19604
19605 This filter supports same commands as options.
19606
19607 extractplanes
19608 Extract color channel components from input video stream into separate
19609 grayscale video streams.
19610
19611 The filter accepts the following option:
19612
19613 planes
19614 Set plane(s) to extract.
19615
19616 Available values for planes are:
19617
19618 y
19619 u
19620 v
19621 a
19622 r
19623 g
19624 b
19625
19626 Choosing planes not available in the input will result in an error.
19627 That means you cannot select "r", "g", "b" planes with "y", "u",
19628 "v" planes at same time.
19629
19630 Examples
19631
19632 • Extract luma, u and v color channel component from input video
19633 frame into 3 grayscale outputs:
19634
19635 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
19636
19637 fade
19638 Apply a fade-in/out effect to the input video.
19639
19640 It accepts the following parameters:
19641
19642 type, t
19643 The effect type can be either "in" for a fade-in, or "out" for a
19644 fade-out effect. Default is "in".
19645
19646 start_frame, s
19647 Specify the number of the frame to start applying the fade effect
19648 at. Default is 0.
19649
19650 nb_frames, n
19651 The number of frames that the fade effect lasts. At the end of the
19652 fade-in effect, the output video will have the same intensity as
19653 the input video. At the end of the fade-out transition, the output
19654 video will be filled with the selected color. Default is 25.
19655
19656 alpha
19657 If set to 1, fade only alpha channel, if one exists on the input.
19658 Default value is 0.
19659
19660 start_time, st
19661 Specify the timestamp (in seconds) of the frame to start to apply
19662 the fade effect. If both start_frame and start_time are specified,
19663 the fade will start at whichever comes last. Default is 0.
19664
19665 duration, d
19666 The number of seconds for which the fade effect has to last. At the
19667 end of the fade-in effect the output video will have the same
19668 intensity as the input video, at the end of the fade-out transition
19669 the output video will be filled with the selected color. If both
19670 duration and nb_frames are specified, duration is used. Default is
19671 0 (nb_frames is used by default).
19672
19673 color, c
19674 Specify the color of the fade. Default is "black".
19675
19676 Examples
19677
19678 • Fade in the first 30 frames of video:
19679
19680 fade=in:0:30
19681
19682 The command above is equivalent to:
19683
19684 fade=t=in:s=0:n=30
19685
19686 • Fade out the last 45 frames of a 200-frame video:
19687
19688 fade=out:155:45
19689 fade=type=out:start_frame=155:nb_frames=45
19690
19691 • Fade in the first 25 frames and fade out the last 25 frames of a
19692 1000-frame video:
19693
19694 fade=in:0:25, fade=out:975:25
19695
19696 • Make the first 5 frames yellow, then fade in from frame 5-24:
19697
19698 fade=in:5:20:color=yellow
19699
19700 • Fade in alpha over first 25 frames of video:
19701
19702 fade=in:0:25:alpha=1
19703
19704 • Make the first 5.5 seconds black, then fade in for 0.5 seconds:
19705
19706 fade=t=in:st=5.5:d=0.5
19707
19708 fftdnoiz
19709 Denoise frames using 3D FFT (frequency domain filtering).
19710
19711 The filter accepts the following options:
19712
19713 sigma
19714 Set the noise sigma constant. This sets denoising strength.
19715 Default value is 1. Allowed range is from 0 to 30. Using very high
19716 sigma with low overlap may give blocking artifacts.
19717
19718 amount
19719 Set amount of denoising. By default all detected noise is reduced.
19720 Default value is 1. Allowed range is from 0 to 1.
19721
19722 block
19723 Set size of block, Default is 4, can be 3, 4, 5 or 6. Actual size
19724 of block in pixels is 2 to power of block, so by default block size
19725 in pixels is 2^4 which is 16.
19726
19727 overlap
19728 Set block overlap. Default is 0.5. Allowed range is from 0.2 to
19729 0.8.
19730
19731 prev
19732 Set number of previous frames to use for denoising. By default is
19733 set to 0.
19734
19735 next
19736 Set number of next frames to to use for denoising. By default is
19737 set to 0.
19738
19739 planes
19740 Set planes which will be filtered, by default are all available
19741 filtered except alpha.
19742
19743 fftfilt
19744 Apply arbitrary expressions to samples in frequency domain
19745
19746 dc_Y
19747 Adjust the dc value (gain) of the luma plane of the image. The
19748 filter accepts an integer value in range 0 to 1000. The default
19749 value is set to 0.
19750
19751 dc_U
19752 Adjust the dc value (gain) of the 1st chroma plane of the image.
19753 The filter accepts an integer value in range 0 to 1000. The default
19754 value is set to 0.
19755
19756 dc_V
19757 Adjust the dc value (gain) of the 2nd chroma plane of the image.
19758 The filter accepts an integer value in range 0 to 1000. The default
19759 value is set to 0.
19760
19761 weight_Y
19762 Set the frequency domain weight expression for the luma plane.
19763
19764 weight_U
19765 Set the frequency domain weight expression for the 1st chroma
19766 plane.
19767
19768 weight_V
19769 Set the frequency domain weight expression for the 2nd chroma
19770 plane.
19771
19772 eval
19773 Set when the expressions are evaluated.
19774
19775 It accepts the following values:
19776
19777 init
19778 Only evaluate expressions once during the filter
19779 initialization.
19780
19781 frame
19782 Evaluate expressions for each incoming frame.
19783
19784 Default value is init.
19785
19786 The filter accepts the following variables:
19787
19788 X
19789 Y The coordinates of the current sample.
19790
19791 W
19792 H The width and height of the image.
19793
19794 N The number of input frame, starting from 0.
19795
19796 WS
19797 HS The size of FFT array for horizontal and vertical processing.
19798
19799 Examples
19800
19801 • High-pass:
19802
19803 fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
19804
19805 • Low-pass:
19806
19807 fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
19808
19809 • Sharpen:
19810
19811 fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
19812
19813 • Blur:
19814
19815 fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
19816
19817 field
19818 Extract a single field from an interlaced image using stride arithmetic
19819 to avoid wasting CPU time. The output frames are marked as non-
19820 interlaced.
19821
19822 The filter accepts the following options:
19823
19824 type
19825 Specify whether to extract the top (if the value is 0 or "top") or
19826 the bottom field (if the value is 1 or "bottom").
19827
19828 fieldhint
19829 Create new frames by copying the top and bottom fields from surrounding
19830 frames supplied as numbers by the hint file.
19831
19832 hint
19833 Set file containing hints: absolute/relative frame numbers.
19834
19835 There must be one line for each frame in a clip. Each line must
19836 contain two numbers separated by the comma, optionally followed by
19837 "-" or "+". Numbers supplied on each line of file can not be out
19838 of [N-1,N+1] where N is current frame number for "absolute" mode or
19839 out of [-1, 1] range for "relative" mode. First number tells from
19840 which frame to pick up top field and second number tells from which
19841 frame to pick up bottom field.
19842
19843 If optionally followed by "+" output frame will be marked as
19844 interlaced, else if followed by "-" output frame will be marked as
19845 progressive, else it will be marked same as input frame. If
19846 optionally followed by "t" output frame will use only top field, or
19847 in case of "b" it will use only bottom field. If line starts with
19848 "#" or ";" that line is skipped.
19849
19850 mode
19851 Can be item "absolute" or "relative". Default is "absolute".
19852
19853 Example of first several lines of "hint" file for "relative" mode:
19854
19855 0,0 - # first frame
19856 1,0 - # second frame, use third's frame top field and second's frame bottom field
19857 1,0 - # third frame, use fourth's frame top field and third's frame bottom field
19858 1,0 -
19859 0,0 -
19860 0,0 -
19861 1,0 -
19862 1,0 -
19863 1,0 -
19864 0,0 -
19865 0,0 -
19866 1,0 -
19867 1,0 -
19868 1,0 -
19869 0,0 -
19870
19871 fieldmatch
19872 Field matching filter for inverse telecine. It is meant to reconstruct
19873 the progressive frames from a telecined stream. The filter does not
19874 drop duplicated frames, so to achieve a complete inverse telecine
19875 "fieldmatch" needs to be followed by a decimation filter such as
19876 decimate in the filtergraph.
19877
19878 The separation of the field matching and the decimation is notably
19879 motivated by the possibility of inserting a de-interlacing filter
19880 fallback between the two. If the source has mixed telecined and real
19881 interlaced content, "fieldmatch" will not be able to match fields for
19882 the interlaced parts. But these remaining combed frames will be marked
19883 as interlaced, and thus can be de-interlaced by a later filter such as
19884 yadif before decimation.
19885
19886 In addition to the various configuration options, "fieldmatch" can take
19887 an optional second stream, activated through the ppsrc option. If
19888 enabled, the frames reconstruction will be based on the fields and
19889 frames from this second stream. This allows the first input to be pre-
19890 processed in order to help the various algorithms of the filter, while
19891 keeping the output lossless (assuming the fields are matched properly).
19892 Typically, a field-aware denoiser, or brightness/contrast adjustments
19893 can help.
19894
19895 Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
19896 project) and VIVTC/VFM (VapourSynth project). The later is a light
19897 clone of TFM from which "fieldmatch" is based on. While the semantic
19898 and usage are very close, some behaviour and options names can differ.
19899
19900 The decimate filter currently only works for constant frame rate input.
19901 If your input has mixed telecined (30fps) and progressive content with
19902 a lower framerate like 24fps use the following filterchain to produce
19903 the necessary cfr stream:
19904 "dejudder,fps=30000/1001,fieldmatch,decimate".
19905
19906 The filter accepts the following options:
19907
19908 order
19909 Specify the assumed field order of the input stream. Available
19910 values are:
19911
19912 auto
19913 Auto detect parity (use FFmpeg's internal parity value).
19914
19915 bff Assume bottom field first.
19916
19917 tff Assume top field first.
19918
19919 Note that it is sometimes recommended not to trust the parity
19920 announced by the stream.
19921
19922 Default value is auto.
19923
19924 mode
19925 Set the matching mode or strategy to use. pc mode is the safest in
19926 the sense that it won't risk creating jerkiness due to duplicate
19927 frames when possible, but if there are bad edits or blended fields
19928 it will end up outputting combed frames when a good match might
19929 actually exist. On the other hand, pcn_ub mode is the most risky in
19930 terms of creating jerkiness, but will almost always find a good
19931 frame if there is one. The other values are all somewhere in
19932 between pc and pcn_ub in terms of risking jerkiness and creating
19933 duplicate frames versus finding good matches in sections with bad
19934 edits, orphaned fields, blended fields, etc.
19935
19936 More details about p/c/n/u/b are available in p/c/n/u/b meaning
19937 section.
19938
19939 Available values are:
19940
19941 pc 2-way matching (p/c)
19942
19943 pc_n
19944 2-way matching, and trying 3rd match if still combed (p/c + n)
19945
19946 pc_u
19947 2-way matching, and trying 3rd match (same order) if still
19948 combed (p/c + u)
19949
19950 pc_n_ub
19951 2-way matching, trying 3rd match if still combed, and trying
19952 4th/5th matches if still combed (p/c + n + u/b)
19953
19954 pcn 3-way matching (p/c/n)
19955
19956 pcn_ub
19957 3-way matching, and trying 4th/5th matches if all 3 of the
19958 original matches are detected as combed (p/c/n + u/b)
19959
19960 The parenthesis at the end indicate the matches that would be used
19961 for that mode assuming order=tff (and field on auto or top).
19962
19963 In terms of speed pc mode is by far the fastest and pcn_ub is the
19964 slowest.
19965
19966 Default value is pc_n.
19967
19968 ppsrc
19969 Mark the main input stream as a pre-processed input, and enable the
19970 secondary input stream as the clean source to pick the fields from.
19971 See the filter introduction for more details. It is similar to the
19972 clip2 feature from VFM/TFM.
19973
19974 Default value is 0 (disabled).
19975
19976 field
19977 Set the field to match from. It is recommended to set this to the
19978 same value as order unless you experience matching failures with
19979 that setting. In certain circumstances changing the field that is
19980 used to match from can have a large impact on matching performance.
19981 Available values are:
19982
19983 auto
19984 Automatic (same value as order).
19985
19986 bottom
19987 Match from the bottom field.
19988
19989 top Match from the top field.
19990
19991 Default value is auto.
19992
19993 mchroma
19994 Set whether or not chroma is included during the match comparisons.
19995 In most cases it is recommended to leave this enabled. You should
19996 set this to 0 only if your clip has bad chroma problems such as
19997 heavy rainbowing or other artifacts. Setting this to 0 could also
19998 be used to speed things up at the cost of some accuracy.
19999
20000 Default value is 1.
20001
20002 y0
20003 y1 These define an exclusion band which excludes the lines between y0
20004 and y1 from being included in the field matching decision. An
20005 exclusion band can be used to ignore subtitles, a logo, or other
20006 things that may interfere with the matching. y0 sets the starting
20007 scan line and y1 sets the ending line; all lines in between y0 and
20008 y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
20009 same value will disable the feature. y0 and y1 defaults to 0.
20010
20011 scthresh
20012 Set the scene change detection threshold as a percentage of maximum
20013 change on the luma plane. Good values are in the "[8.0, 14.0]"
20014 range. Scene change detection is only relevant in case
20015 combmatch=sc. The range for scthresh is "[0.0, 100.0]".
20016
20017 Default value is 12.0.
20018
20019 combmatch
20020 When combatch is not none, "fieldmatch" will take into account the
20021 combed scores of matches when deciding what match to use as the
20022 final match. Available values are:
20023
20024 none
20025 No final matching based on combed scores.
20026
20027 sc Combed scores are only used when a scene change is detected.
20028
20029 full
20030 Use combed scores all the time.
20031
20032 Default is sc.
20033
20034 combdbg
20035 Force "fieldmatch" to calculate the combed metrics for certain
20036 matches and print them. This setting is known as micout in TFM/VFM
20037 vocabulary. Available values are:
20038
20039 none
20040 No forced calculation.
20041
20042 pcn Force p/c/n calculations.
20043
20044 pcnub
20045 Force p/c/n/u/b calculations.
20046
20047 Default value is none.
20048
20049 cthresh
20050 This is the area combing threshold used for combed frame detection.
20051 This essentially controls how "strong" or "visible" combing must be
20052 to be detected. Larger values mean combing must be more visible
20053 and smaller values mean combing can be less visible or strong and
20054 still be detected. Valid settings are from "-1" (every pixel will
20055 be detected as combed) to 255 (no pixel will be detected as
20056 combed). This is basically a pixel difference value. A good range
20057 is "[8, 12]".
20058
20059 Default value is 9.
20060
20061 chroma
20062 Sets whether or not chroma is considered in the combed frame
20063 decision. Only disable this if your source has chroma problems
20064 (rainbowing, etc.) that are causing problems for the combed frame
20065 detection with chroma enabled. Actually, using chroma=0 is usually
20066 more reliable, except for the case where there is chroma only
20067 combing in the source.
20068
20069 Default value is 0.
20070
20071 blockx
20072 blocky
20073 Respectively set the x-axis and y-axis size of the window used
20074 during combed frame detection. This has to do with the size of the
20075 area in which combpel pixels are required to be detected as combed
20076 for a frame to be declared combed. See the combpel parameter
20077 description for more info. Possible values are any number that is
20078 a power of 2 starting at 4 and going up to 512.
20079
20080 Default value is 16.
20081
20082 combpel
20083 The number of combed pixels inside any of the blocky by blockx size
20084 blocks on the frame for the frame to be detected as combed. While
20085 cthresh controls how "visible" the combing must be, this setting
20086 controls "how much" combing there must be in any localized area (a
20087 window defined by the blockx and blocky settings) on the frame.
20088 Minimum value is 0 and maximum is "blocky x blockx" (at which point
20089 no frames will ever be detected as combed). This setting is known
20090 as MI in TFM/VFM vocabulary.
20091
20092 Default value is 80.
20093
20094 p/c/n/u/b meaning
20095
20096 p/c/n
20097
20098 We assume the following telecined stream:
20099
20100 Top fields: 1 2 2 3 4
20101 Bottom fields: 1 2 3 4 4
20102
20103 The numbers correspond to the progressive frame the fields relate to.
20104 Here, the first two frames are progressive, the 3rd and 4th are combed,
20105 and so on.
20106
20107 When "fieldmatch" is configured to run a matching from bottom
20108 (field=bottom) this is how this input stream get transformed:
20109
20110 Input stream:
20111 T 1 2 2 3 4
20112 B 1 2 3 4 4 <-- matching reference
20113
20114 Matches: c c n n c
20115
20116 Output stream:
20117 T 1 2 3 4 4
20118 B 1 2 3 4 4
20119
20120 As a result of the field matching, we can see that some frames get
20121 duplicated. To perform a complete inverse telecine, you need to rely
20122 on a decimation filter after this operation. See for instance the
20123 decimate filter.
20124
20125 The same operation now matching from top fields (field=top) looks like
20126 this:
20127
20128 Input stream:
20129 T 1 2 2 3 4 <-- matching reference
20130 B 1 2 3 4 4
20131
20132 Matches: c c p p c
20133
20134 Output stream:
20135 T 1 2 2 3 4
20136 B 1 2 2 3 4
20137
20138 In these examples, we can see what p, c and n mean; basically, they
20139 refer to the frame and field of the opposite parity:
20140
20141 *<p matches the field of the opposite parity in the previous frame>
20142 *<c matches the field of the opposite parity in the current frame>
20143 *<n matches the field of the opposite parity in the next frame>
20144
20145 u/b
20146
20147 The u and b matching are a bit special in the sense that they match
20148 from the opposite parity flag. In the following examples, we assume
20149 that we are currently matching the 2nd frame (Top:2, bottom:2).
20150 According to the match, a 'x' is placed above and below each matched
20151 fields.
20152
20153 With bottom matching (field=bottom):
20154
20155 Match: c p n b u
20156
20157 x x x x x
20158 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
20159 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
20160 x x x x x
20161
20162 Output frames:
20163 2 1 2 2 2
20164 2 2 2 1 3
20165
20166 With top matching (field=top):
20167
20168 Match: c p n b u
20169
20170 x x x x x
20171 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
20172 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
20173 x x x x x
20174
20175 Output frames:
20176 2 2 2 1 2
20177 2 1 3 2 2
20178
20179 Examples
20180
20181 Simple IVTC of a top field first telecined stream:
20182
20183 fieldmatch=order=tff:combmatch=none, decimate
20184
20185 Advanced IVTC, with fallback on yadif for still combed frames:
20186
20187 fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
20188
20189 fieldorder
20190 Transform the field order of the input video.
20191
20192 It accepts the following parameters:
20193
20194 order
20195 The output field order. Valid values are tff for top field first or
20196 bff for bottom field first.
20197
20198 The default value is tff.
20199
20200 The transformation is done by shifting the picture content up or down
20201 by one line, and filling the remaining line with appropriate picture
20202 content. This method is consistent with most broadcast field order
20203 converters.
20204
20205 If the input video is not flagged as being interlaced, or it is already
20206 flagged as being of the required output field order, then this filter
20207 does not alter the incoming video.
20208
20209 It is very useful when converting to or from PAL DV material, which is
20210 bottom field first.
20211
20212 For example:
20213
20214 ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
20215
20216 fifo, afifo
20217 Buffer input images and send them when they are requested.
20218
20219 It is mainly useful when auto-inserted by the libavfilter framework.
20220
20221 It does not take parameters.
20222
20223 fillborders
20224 Fill borders of the input video, without changing video stream
20225 dimensions. Sometimes video can have garbage at the four edges and you
20226 may not want to crop video input to keep size multiple of some number.
20227
20228 This filter accepts the following options:
20229
20230 left
20231 Number of pixels to fill from left border.
20232
20233 right
20234 Number of pixels to fill from right border.
20235
20236 top Number of pixels to fill from top border.
20237
20238 bottom
20239 Number of pixels to fill from bottom border.
20240
20241 mode
20242 Set fill mode.
20243
20244 It accepts the following values:
20245
20246 smear
20247 fill pixels using outermost pixels
20248
20249 mirror
20250 fill pixels using mirroring (half sample symmetric)
20251
20252 fixed
20253 fill pixels with constant value
20254
20255 reflect
20256 fill pixels using reflecting (whole sample symmetric)
20257
20258 wrap
20259 fill pixels using wrapping
20260
20261 fade
20262 fade pixels to constant value
20263
20264 margins
20265 fill pixels at top and bottom with weighted averages pixels
20266 near borders
20267
20268 Default is smear.
20269
20270 color
20271 Set color for pixels in fixed or fade mode. Default is black.
20272
20273 Commands
20274
20275 This filter supports same commands as options. The command accepts the
20276 same syntax of the corresponding option.
20277
20278 If the specified expression is not valid, it is kept at its current
20279 value.
20280
20281 find_rect
20282 Find a rectangular object
20283
20284 It accepts the following options:
20285
20286 object
20287 Filepath of the object image, needs to be in gray8.
20288
20289 threshold
20290 Detection threshold, default is 0.5.
20291
20292 mipmaps
20293 Number of mipmaps, default is 3.
20294
20295 xmin, ymin, xmax, ymax
20296 Specifies the rectangle in which to search.
20297
20298 discard
20299 Discard frames where object is not detected. Default is disabled.
20300
20301 Examples
20302
20303 • Cover a rectangular object by the supplied image of a given video
20304 using ffmpeg:
20305
20306 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
20307
20308 floodfill
20309 Flood area with values of same pixel components with another values.
20310
20311 It accepts the following options:
20312
20313 x Set pixel x coordinate.
20314
20315 y Set pixel y coordinate.
20316
20317 s0 Set source #0 component value.
20318
20319 s1 Set source #1 component value.
20320
20321 s2 Set source #2 component value.
20322
20323 s3 Set source #3 component value.
20324
20325 d0 Set destination #0 component value.
20326
20327 d1 Set destination #1 component value.
20328
20329 d2 Set destination #2 component value.
20330
20331 d3 Set destination #3 component value.
20332
20333 format
20334 Convert the input video to one of the specified pixel formats.
20335 Libavfilter will try to pick one that is suitable as input to the next
20336 filter.
20337
20338 It accepts the following parameters:
20339
20340 pix_fmts
20341 A '|'-separated list of pixel format names, such as
20342 "pix_fmts=yuv420p|monow|rgb24".
20343
20344 Examples
20345
20346 • Convert the input video to the yuv420p format
20347
20348 format=pix_fmts=yuv420p
20349
20350 Convert the input video to any of the formats in the list
20351
20352 format=pix_fmts=yuv420p|yuv444p|yuv410p
20353
20354 fps
20355 Convert the video to specified constant frame rate by duplicating or
20356 dropping frames as necessary.
20357
20358 It accepts the following parameters:
20359
20360 fps The desired output frame rate. It accepts expressions containing
20361 the following constants:
20362
20363 source_fps
20364 The input's frame rate
20365
20366 ntsc
20367 NTSC frame rate of "30000/1001"
20368
20369 pal PAL frame rate of 25.0
20370
20371 film
20372 Film frame rate of 24.0
20373
20374 ntsc_film
20375 NTSC-film frame rate of "24000/1001"
20376
20377 The default is 25.
20378
20379 start_time
20380 Assume the first PTS should be the given value, in seconds. This
20381 allows for padding/trimming at the start of stream. By default, no
20382 assumption is made about the first frame's expected PTS, so no
20383 padding or trimming is done. For example, this could be set to 0
20384 to pad the beginning with duplicates of the first frame if a video
20385 stream starts after the audio stream or to trim any frames with a
20386 negative PTS.
20387
20388 round
20389 Timestamp (PTS) rounding method.
20390
20391 Possible values are:
20392
20393 zero
20394 round towards 0
20395
20396 inf round away from 0
20397
20398 down
20399 round towards -infinity
20400
20401 up round towards +infinity
20402
20403 near
20404 round to nearest
20405
20406 The default is "near".
20407
20408 eof_action
20409 Action performed when reading the last frame.
20410
20411 Possible values are:
20412
20413 round
20414 Use same timestamp rounding method as used for other frames.
20415
20416 pass
20417 Pass through last frame if input duration has not been reached
20418 yet.
20419
20420 The default is "round".
20421
20422 Alternatively, the options can be specified as a flat string:
20423 fps[:start_time[:round]].
20424
20425 See also the setpts filter.
20426
20427 Examples
20428
20429 • A typical usage in order to set the fps to 25:
20430
20431 fps=fps=25
20432
20433 • Sets the fps to 24, using abbreviation and rounding method to round
20434 to nearest:
20435
20436 fps=fps=film:round=near
20437
20438 framepack
20439 Pack two different video streams into a stereoscopic video, setting
20440 proper metadata on supported codecs. The two views should have the same
20441 size and framerate and processing will stop when the shorter video
20442 ends. Please note that you may conveniently adjust view properties with
20443 the scale and fps filters.
20444
20445 It accepts the following parameters:
20446
20447 format
20448 The desired packing format. Supported values are:
20449
20450 sbs The views are next to each other (default).
20451
20452 tab The views are on top of each other.
20453
20454 lines
20455 The views are packed by line.
20456
20457 columns
20458 The views are packed by column.
20459
20460 frameseq
20461 The views are temporally interleaved.
20462
20463 Some examples:
20464
20465 # Convert left and right views into a frame-sequential video
20466 ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
20467
20468 # Convert views into a side-by-side video with the same output resolution as the input
20469 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
20470
20471 framerate
20472 Change the frame rate by interpolating new video output frames from the
20473 source frames.
20474
20475 This filter is not designed to function correctly with interlaced
20476 media. If you wish to change the frame rate of interlaced media then
20477 you are required to deinterlace before this filter and re-interlace
20478 after this filter.
20479
20480 A description of the accepted options follows.
20481
20482 fps Specify the output frames per second. This option can also be
20483 specified as a value alone. The default is 50.
20484
20485 interp_start
20486 Specify the start of a range where the output frame will be created
20487 as a linear interpolation of two frames. The range is [0-255], the
20488 default is 15.
20489
20490 interp_end
20491 Specify the end of a range where the output frame will be created
20492 as a linear interpolation of two frames. The range is [0-255], the
20493 default is 240.
20494
20495 scene
20496 Specify the level at which a scene change is detected as a value
20497 between 0 and 100 to indicate a new scene; a low value reflects a
20498 low probability for the current frame to introduce a new scene,
20499 while a higher value means the current frame is more likely to be
20500 one. The default is 8.2.
20501
20502 flags
20503 Specify flags influencing the filter process.
20504
20505 Available value for flags is:
20506
20507 scene_change_detect, scd
20508 Enable scene change detection using the value of the option
20509 scene. This flag is enabled by default.
20510
20511 framestep
20512 Select one frame every N-th frame.
20513
20514 This filter accepts the following option:
20515
20516 step
20517 Select frame after every "step" frames. Allowed values are
20518 positive integers higher than 0. Default value is 1.
20519
20520 freezedetect
20521 Detect frozen video.
20522
20523 This filter logs a message and sets frame metadata when it detects that
20524 the input video has no significant change in content during a specified
20525 duration. Video freeze detection calculates the mean average absolute
20526 difference of all the components of video frames and compares it to a
20527 noise floor.
20528
20529 The printed times and duration are expressed in seconds. The
20530 "lavfi.freezedetect.freeze_start" metadata key is set on the first
20531 frame whose timestamp equals or exceeds the detection duration and it
20532 contains the timestamp of the first frame of the freeze. The
20533 "lavfi.freezedetect.freeze_duration" and
20534 "lavfi.freezedetect.freeze_end" metadata keys are set on the first
20535 frame after the freeze.
20536
20537 The filter accepts the following options:
20538
20539 noise, n
20540 Set noise tolerance. Can be specified in dB (in case "dB" is
20541 appended to the specified value) or as a difference ratio between 0
20542 and 1. Default is -60dB, or 0.001.
20543
20544 duration, d
20545 Set freeze duration until notification (default is 2 seconds).
20546
20547 freezeframes
20548 Freeze video frames.
20549
20550 This filter freezes video frames using frame from 2nd input.
20551
20552 The filter accepts the following options:
20553
20554 first
20555 Set number of first frame from which to start freeze.
20556
20557 last
20558 Set number of last frame from which to end freeze.
20559
20560 replace
20561 Set number of frame from 2nd input which will be used instead of
20562 replaced frames.
20563
20564 frei0r
20565 Apply a frei0r effect to the input video.
20566
20567 To enable the compilation of this filter, you need to install the
20568 frei0r header and configure FFmpeg with "--enable-frei0r".
20569
20570 It accepts the following parameters:
20571
20572 filter_name
20573 The name of the frei0r effect to load. If the environment variable
20574 FREI0R_PATH is defined, the frei0r effect is searched for in each
20575 of the directories specified by the colon-separated list in
20576 FREI0R_PATH. Otherwise, the standard frei0r paths are searched, in
20577 this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
20578 /usr/lib/frei0r-1/.
20579
20580 filter_params
20581 A '|'-separated list of parameters to pass to the frei0r effect.
20582
20583 A frei0r effect parameter can be a boolean (its value is either "y" or
20584 "n"), a double, a color (specified as R/G/B, where R, G, and B are
20585 floating point numbers between 0.0 and 1.0, inclusive) or a color
20586 description as specified in the "Color" section in the ffmpeg-utils
20587 manual, a position (specified as X/Y, where X and Y are floating point
20588 numbers) and/or a string.
20589
20590 The number and types of parameters depend on the loaded effect. If an
20591 effect parameter is not specified, the default value is set.
20592
20593 Examples
20594
20595 • Apply the distort0r effect, setting the first two double
20596 parameters:
20597
20598 frei0r=filter_name=distort0r:filter_params=0.5|0.01
20599
20600 • Apply the colordistance effect, taking a color as the first
20601 parameter:
20602
20603 frei0r=colordistance:0.2/0.3/0.4
20604 frei0r=colordistance:violet
20605 frei0r=colordistance:0x112233
20606
20607 • Apply the perspective effect, specifying the top left and top right
20608 image positions:
20609
20610 frei0r=perspective:0.2/0.2|0.8/0.2
20611
20612 For more information, see <http://frei0r.dyne.org>
20613
20614 Commands
20615
20616 This filter supports the filter_params option as commands.
20617
20618 fspp
20619 Apply fast and simple postprocessing. It is a faster version of spp.
20620
20621 It splits (I)DCT into horizontal/vertical passes. Unlike the simple
20622 post- processing filter, one of them is performed once per block, not
20623 per pixel. This allows for much higher speed.
20624
20625 The filter accepts the following options:
20626
20627 quality
20628 Set quality. This option defines the number of levels for
20629 averaging. It accepts an integer in the range 4-5. Default value is
20630 4.
20631
20632 qp Force a constant quantization parameter. It accepts an integer in
20633 range 0-63. If not set, the filter will use the QP from the video
20634 stream (if available).
20635
20636 strength
20637 Set filter strength. It accepts an integer in range -15 to 32.
20638 Lower values mean more details but also more artifacts, while
20639 higher values make the image smoother but also blurrier. Default
20640 value is 0 X PSNR optimal.
20641
20642 use_bframe_qp
20643 Enable the use of the QP from the B-Frames if set to 1. Using this
20644 option may cause flicker since the B-Frames have often larger QP.
20645 Default is 0 (not enabled).
20646
20647 gblur
20648 Apply Gaussian blur filter.
20649
20650 The filter accepts the following options:
20651
20652 sigma
20653 Set horizontal sigma, standard deviation of Gaussian blur. Default
20654 is 0.5.
20655
20656 steps
20657 Set number of steps for Gaussian approximation. Default is 1.
20658
20659 planes
20660 Set which planes to filter. By default all planes are filtered.
20661
20662 sigmaV
20663 Set vertical sigma, if negative it will be same as "sigma".
20664 Default is "-1".
20665
20666 Commands
20667
20668 This filter supports same commands as options. The command accepts the
20669 same syntax of the corresponding option.
20670
20671 If the specified expression is not valid, it is kept at its current
20672 value.
20673
20674 geq
20675 Apply generic equation to each pixel.
20676
20677 The filter accepts the following options:
20678
20679 lum_expr, lum
20680 Set the luminance expression.
20681
20682 cb_expr, cb
20683 Set the chrominance blue expression.
20684
20685 cr_expr, cr
20686 Set the chrominance red expression.
20687
20688 alpha_expr, a
20689 Set the alpha expression.
20690
20691 red_expr, r
20692 Set the red expression.
20693
20694 green_expr, g
20695 Set the green expression.
20696
20697 blue_expr, b
20698 Set the blue expression.
20699
20700 The colorspace is selected according to the specified options. If one
20701 of the lum_expr, cb_expr, or cr_expr options is specified, the filter
20702 will automatically select a YCbCr colorspace. If one of the red_expr,
20703 green_expr, or blue_expr options is specified, it will select an RGB
20704 colorspace.
20705
20706 If one of the chrominance expression is not defined, it falls back on
20707 the other one. If no alpha expression is specified it will evaluate to
20708 opaque value. If none of chrominance expressions are specified, they
20709 will evaluate to the luminance expression.
20710
20711 The expressions can use the following variables and functions:
20712
20713 N The sequential number of the filtered frame, starting from 0.
20714
20715 X
20716 Y The coordinates of the current sample.
20717
20718 W
20719 H The width and height of the image.
20720
20721 SW
20722 SH Width and height scale depending on the currently filtered plane.
20723 It is the ratio between the corresponding luma plane number of
20724 pixels and the current plane ones. E.g. for YUV4:2:0 the values are
20725 "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
20726
20727 T Time of the current frame, expressed in seconds.
20728
20729 p(x, y)
20730 Return the value of the pixel at location (x,y) of the current
20731 plane.
20732
20733 lum(x, y)
20734 Return the value of the pixel at location (x,y) of the luminance
20735 plane.
20736
20737 cb(x, y)
20738 Return the value of the pixel at location (x,y) of the blue-
20739 difference chroma plane. Return 0 if there is no such plane.
20740
20741 cr(x, y)
20742 Return the value of the pixel at location (x,y) of the red-
20743 difference chroma plane. Return 0 if there is no such plane.
20744
20745 r(x, y)
20746 g(x, y)
20747 b(x, y)
20748 Return the value of the pixel at location (x,y) of the
20749 red/green/blue component. Return 0 if there is no such component.
20750
20751 alpha(x, y)
20752 Return the value of the pixel at location (x,y) of the alpha plane.
20753 Return 0 if there is no such plane.
20754
20755 psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
20756 bsum(x,y), alphasum(x,y)
20757 Sum of sample values in the rectangle from (0,0) to (x,y), this
20758 allows obtaining sums of samples within a rectangle. See the
20759 functions without the sum postfix.
20760
20761 interpolation
20762 Set one of interpolation methods:
20763
20764 nearest, n
20765 bilinear, b
20766
20767 Default is bilinear.
20768
20769 For functions, if x and y are outside the area, the value will be
20770 automatically clipped to the closer edge.
20771
20772 Please note that this filter can use multiple threads in which case
20773 each slice will have its own expression state. If you want to use only
20774 a single expression state because your expressions depend on previous
20775 state then you should limit the number of filter threads to 1.
20776
20777 Examples
20778
20779 • Flip the image horizontally:
20780
20781 geq=p(W-X\,Y)
20782
20783 • Generate a bidimensional sine wave, with angle "PI/3" and a
20784 wavelength of 100 pixels:
20785
20786 geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
20787
20788 • Generate a fancy enigmatic moving light:
20789
20790 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
20791
20792 • Generate a quick emboss effect:
20793
20794 format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
20795
20796 • Modify RGB components depending on pixel position:
20797
20798 geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
20799
20800 • Create a radial gradient that is the same size as the input (also
20801 see the vignette filter):
20802
20803 geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
20804
20805 gradfun
20806 Fix the banding artifacts that are sometimes introduced into nearly
20807 flat regions by truncation to 8-bit color depth. Interpolate the
20808 gradients that should go where the bands are, and dither them.
20809
20810 It is designed for playback only. Do not use it prior to lossy
20811 compression, because compression tends to lose the dither and bring
20812 back the bands.
20813
20814 It accepts the following parameters:
20815
20816 strength
20817 The maximum amount by which the filter will change any one pixel.
20818 This is also the threshold for detecting nearly flat regions.
20819 Acceptable values range from .51 to 64; the default value is 1.2.
20820 Out-of-range values will be clipped to the valid range.
20821
20822 radius
20823 The neighborhood to fit the gradient to. A larger radius makes for
20824 smoother gradients, but also prevents the filter from modifying the
20825 pixels near detailed regions. Acceptable values are 8-32; the
20826 default value is 16. Out-of-range values will be clipped to the
20827 valid range.
20828
20829 Alternatively, the options can be specified as a flat string:
20830 strength[:radius]
20831
20832 Examples
20833
20834 • Apply the filter with a 3.5 strength and radius of 8:
20835
20836 gradfun=3.5:8
20837
20838 • Specify radius, omitting the strength (which will fall-back to the
20839 default value):
20840
20841 gradfun=radius=8
20842
20843 graphmonitor
20844 Show various filtergraph stats.
20845
20846 With this filter one can debug complete filtergraph. Especially issues
20847 with links filling with queued frames.
20848
20849 The filter accepts the following options:
20850
20851 size, s
20852 Set video output size. Default is hd720.
20853
20854 opacity, o
20855 Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
20856
20857 mode, m
20858 Set output mode, can be fulll or compact. In compact mode only
20859 filters with some queued frames have displayed stats.
20860
20861 flags, f
20862 Set flags which enable which stats are shown in video.
20863
20864 Available values for flags are:
20865
20866 queue
20867 Display number of queued frames in each link.
20868
20869 frame_count_in
20870 Display number of frames taken from filter.
20871
20872 frame_count_out
20873 Display number of frames given out from filter.
20874
20875 pts Display current filtered frame pts.
20876
20877 time
20878 Display current filtered frame time.
20879
20880 timebase
20881 Display time base for filter link.
20882
20883 format
20884 Display used format for filter link.
20885
20886 size
20887 Display video size or number of audio channels in case of audio
20888 used by filter link.
20889
20890 rate
20891 Display video frame rate or sample rate in case of audio used
20892 by filter link.
20893
20894 eof Display link output status.
20895
20896 sample_count_in
20897 Display number of samples taken from filter.
20898
20899 sample_count_out
20900 Display number of samples given out from filter.
20901
20902 rate, r
20903 Set upper limit for video rate of output stream, Default value is
20904 25. This guarantee that output video frame rate will not be higher
20905 than this value.
20906
20907 grayworld
20908 A color constancy filter that applies color correction based on the
20909 grayworld assumption
20910
20911 See:
20912 <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
20913
20914 The algorithm uses linear light, so input data should be linearized
20915 beforehand (and possibly correctly tagged).
20916
20917 ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
20918
20919 greyedge
20920 A color constancy variation filter which estimates scene illumination
20921 via grey edge algorithm and corrects the scene colors accordingly.
20922
20923 See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
20924
20925 The filter accepts the following options:
20926
20927 difford
20928 The order of differentiation to be applied on the scene. Must be
20929 chosen in the range [0,2] and default value is 1.
20930
20931 minknorm
20932 The Minkowski parameter to be used for calculating the Minkowski
20933 distance. Must be chosen in the range [0,20] and default value is
20934 1. Set to 0 for getting max value instead of calculating Minkowski
20935 distance.
20936
20937 sigma
20938 The standard deviation of Gaussian blur to be applied on the scene.
20939 Must be chosen in the range [0,1024.0] and default value = 1.
20940 floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
20941 is greater than 0.
20942
20943 Examples
20944
20945 • Grey Edge:
20946
20947 greyedge=difford=1:minknorm=5:sigma=2
20948
20949 • Max Edge:
20950
20951 greyedge=difford=1:minknorm=0:sigma=2
20952
20953 guided
20954 Apply guided filter for edge-preserving smoothing, dehazing and so on.
20955
20956 The filter accepts the following options:
20957
20958 radius
20959 Set the box radius in pixels. Allowed range is 1 to 20. Default is
20960 3.
20961
20962 eps Set regularization parameter (with square). Allowed range is 0 to
20963 1. Default is 0.01.
20964
20965 mode
20966 Set filter mode. Can be "basic" or "fast". Default is "basic".
20967
20968 sub Set subsampling ratio for "fast" mode. Range is 2 to 64. Default
20969 is 4. No subsampling occurs in "basic" mode.
20970
20971 guidance
20972 Set guidance mode. Can be "off" or "on". Default is "off". If
20973 "off", single input is required. If "on", two inputs of the same
20974 resolution and pixel format are required. The second input serves
20975 as the guidance.
20976
20977 planes
20978 Set planes to filter. Default is first only.
20979
20980 Commands
20981
20982 This filter supports the all above options as commands.
20983
20984 Examples
20985
20986 • Edge-preserving smoothing with guided filter:
20987
20988 ffmpeg -i in.png -vf guided out.png
20989
20990 • Dehazing, structure-transferring filtering, detail enhancement with
20991 guided filter. For the generation of guidance image, refer to
20992 paper "Guided Image Filtering". See:
20993 <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
20994
20995 ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
20996
20997 haldclut
20998 Apply a Hald CLUT to a video stream.
20999
21000 First input is the video stream to process, and second one is the Hald
21001 CLUT. The Hald CLUT input can be a simple picture or a complete video
21002 stream.
21003
21004 The filter accepts the following options:
21005
21006 shortest
21007 Force termination when the shortest input terminates. Default is 0.
21008
21009 repeatlast
21010 Continue applying the last CLUT after the end of the stream. A
21011 value of 0 disable the filter after the last frame of the CLUT is
21012 reached. Default is 1.
21013
21014 "haldclut" also has the same interpolation options as lut3d (both
21015 filters share the same internals).
21016
21017 This filter also supports the framesync options.
21018
21019 More information about the Hald CLUT can be found on Eskil Steenberg's
21020 website (Hald CLUT author) at
21021 <http://www.quelsolaar.com/technology/clut.html>.
21022
21023 Commands
21024
21025 This filter supports the "interp" option as commands.
21026
21027 Workflow examples
21028
21029 Hald CLUT video stream
21030
21031 Generate an identity Hald CLUT stream altered with various effects:
21032
21033 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
21034
21035 Note: make sure you use a lossless codec.
21036
21037 Then use it with "haldclut" to apply it on some random stream:
21038
21039 ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
21040
21041 The Hald CLUT will be applied to the 10 first seconds (duration of
21042 clut.nut), then the latest picture of that CLUT stream will be applied
21043 to the remaining frames of the "mandelbrot" stream.
21044
21045 Hald CLUT with preview
21046
21047 A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
21048 "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
21049 the biggest possible square starting at the top left of the picture.
21050 The remaining padding pixels (bottom or right) will be ignored. This
21051 area can be used to add a preview of the Hald CLUT.
21052
21053 Typically, the following generated Hald CLUT will be supported by the
21054 "haldclut" filter:
21055
21056 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
21057 pad=iw+320 [padded_clut];
21058 smptebars=s=320x256, split [a][b];
21059 [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
21060 [main][b] overlay=W-320" -frames:v 1 clut.png
21061
21062 It contains the original and a preview of the effect of the CLUT: SMPTE
21063 color bars are displayed on the right-top, and below the same color
21064 bars processed by the color changes.
21065
21066 Then, the effect of this Hald CLUT can be visualized with:
21067
21068 ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
21069
21070 hflip
21071 Flip the input video horizontally.
21072
21073 For example, to horizontally flip the input video with ffmpeg:
21074
21075 ffmpeg -i in.avi -vf "hflip" out.avi
21076
21077 histeq
21078 This filter applies a global color histogram equalization on a per-
21079 frame basis.
21080
21081 It can be used to correct video that has a compressed range of pixel
21082 intensities. The filter redistributes the pixel intensities to
21083 equalize their distribution across the intensity range. It may be
21084 viewed as an "automatically adjusting contrast filter". This filter is
21085 useful only for correcting degraded or poorly captured source video.
21086
21087 The filter accepts the following options:
21088
21089 strength
21090 Determine the amount of equalization to be applied. As the
21091 strength is reduced, the distribution of pixel intensities more-
21092 and-more approaches that of the input frame. The value must be a
21093 float number in the range [0,1] and defaults to 0.200.
21094
21095 intensity
21096 Set the maximum intensity that can generated and scale the output
21097 values appropriately. The strength should be set as desired and
21098 then the intensity can be limited if needed to avoid washing-out.
21099 The value must be a float number in the range [0,1] and defaults to
21100 0.210.
21101
21102 antibanding
21103 Set the antibanding level. If enabled the filter will randomly vary
21104 the luminance of output pixels by a small amount to avoid banding
21105 of the histogram. Possible values are "none", "weak" or "strong".
21106 It defaults to "none".
21107
21108 histogram
21109 Compute and draw a color distribution histogram for the input video.
21110
21111 The computed histogram is a representation of the color component
21112 distribution in an image.
21113
21114 Standard histogram displays the color components distribution in an
21115 image. Displays color graph for each color component. Shows
21116 distribution of the Y, U, V, A or R, G, B components, depending on
21117 input format, in the current frame. Below each graph a color component
21118 scale meter is shown.
21119
21120 The filter accepts the following options:
21121
21122 level_height
21123 Set height of level. Default value is 200. Allowed range is [50,
21124 2048].
21125
21126 scale_height
21127 Set height of color scale. Default value is 12. Allowed range is
21128 [0, 40].
21129
21130 display_mode
21131 Set display mode. It accepts the following values:
21132
21133 stack
21134 Per color component graphs are placed below each other.
21135
21136 parade
21137 Per color component graphs are placed side by side.
21138
21139 overlay
21140 Presents information identical to that in the "parade", except
21141 that the graphs representing color components are superimposed
21142 directly over one another.
21143
21144 Default is "stack".
21145
21146 levels_mode
21147 Set mode. Can be either "linear", or "logarithmic". Default is
21148 "linear".
21149
21150 components
21151 Set what color components to display. Default is 7.
21152
21153 fgopacity
21154 Set foreground opacity. Default is 0.7.
21155
21156 bgopacity
21157 Set background opacity. Default is 0.5.
21158
21159 colors_mode
21160 Set colors mode. It accepts the following values:
21161
21162 whiteonblack
21163 blackonwhite
21164 whiteongray
21165 blackongray
21166 coloronblack
21167 coloronwhite
21168 colorongray
21169 blackoncolor
21170 whiteoncolor
21171 grayoncolor
21172
21173 Default is "whiteonblack".
21174
21175 Examples
21176
21177 • Calculate and draw histogram:
21178
21179 ffplay -i input -vf histogram
21180
21181 hqdn3d
21182 This is a high precision/quality 3d denoise filter. It aims to reduce
21183 image noise, producing smooth images and making still images really
21184 still. It should enhance compressibility.
21185
21186 It accepts the following optional parameters:
21187
21188 luma_spatial
21189 A non-negative floating point number which specifies spatial luma
21190 strength. It defaults to 4.0.
21191
21192 chroma_spatial
21193 A non-negative floating point number which specifies spatial chroma
21194 strength. It defaults to 3.0*luma_spatial/4.0.
21195
21196 luma_tmp
21197 A floating point number which specifies luma temporal strength. It
21198 defaults to 6.0*luma_spatial/4.0.
21199
21200 chroma_tmp
21201 A floating point number which specifies chroma temporal strength.
21202 It defaults to luma_tmp*chroma_spatial/luma_spatial.
21203
21204 Commands
21205
21206 This filter supports same commands as options. The command accepts the
21207 same syntax of the corresponding option.
21208
21209 If the specified expression is not valid, it is kept at its current
21210 value.
21211
21212 hwdownload
21213 Download hardware frames to system memory.
21214
21215 The input must be in hardware frames, and the output a non-hardware
21216 format. Not all formats will be supported on the output - it may be
21217 necessary to insert an additional format filter immediately following
21218 in the graph to get the output in a supported format.
21219
21220 hwmap
21221 Map hardware frames to system memory or to another device.
21222
21223 This filter has several different modes of operation; which one is used
21224 depends on the input and output formats:
21225
21226 • Hardware frame input, normal frame output
21227
21228 Map the input frames to system memory and pass them to the output.
21229 If the original hardware frame is later required (for example,
21230 after overlaying something else on part of it), the hwmap filter
21231 can be used again in the next mode to retrieve it.
21232
21233 • Normal frame input, hardware frame output
21234
21235 If the input is actually a software-mapped hardware frame, then
21236 unmap it - that is, return the original hardware frame.
21237
21238 Otherwise, a device must be provided. Create new hardware surfaces
21239 on that device for the output, then map them back to the software
21240 format at the input and give those frames to the preceding filter.
21241 This will then act like the hwupload filter, but may be able to
21242 avoid an additional copy when the input is already in a compatible
21243 format.
21244
21245 • Hardware frame input and output
21246
21247 A device must be supplied for the output, either directly or with
21248 the derive_device option. The input and output devices must be of
21249 different types and compatible - the exact meaning of this is
21250 system-dependent, but typically it means that they must refer to
21251 the same underlying hardware context (for example, refer to the
21252 same graphics card).
21253
21254 If the input frames were originally created on the output device,
21255 then unmap to retrieve the original frames.
21256
21257 Otherwise, map the frames to the output device - create new
21258 hardware frames on the output corresponding to the frames on the
21259 input.
21260
21261 The following additional parameters are accepted:
21262
21263 mode
21264 Set the frame mapping mode. Some combination of:
21265
21266 read
21267 The mapped frame should be readable.
21268
21269 write
21270 The mapped frame should be writeable.
21271
21272 overwrite
21273 The mapping will always overwrite the entire frame.
21274
21275 This may improve performance in some cases, as the original
21276 contents of the frame need not be loaded.
21277
21278 direct
21279 The mapping must not involve any copying.
21280
21281 Indirect mappings to copies of frames are created in some cases
21282 where either direct mapping is not possible or it would have
21283 unexpected properties. Setting this flag ensures that the
21284 mapping is direct and will fail if that is not possible.
21285
21286 Defaults to read+write if not specified.
21287
21288 derive_device type
21289 Rather than using the device supplied at initialisation, instead
21290 derive a new device of type type from the device the input frames
21291 exist on.
21292
21293 reverse
21294 In a hardware to hardware mapping, map in reverse - create frames
21295 in the sink and map them back to the source. This may be necessary
21296 in some cases where a mapping in one direction is required but only
21297 the opposite direction is supported by the devices being used.
21298
21299 This option is dangerous - it may break the preceding filter in
21300 undefined ways if there are any additional constraints on that
21301 filter's output. Do not use it without fully understanding the
21302 implications of its use.
21303
21304 hwupload
21305 Upload system memory frames to hardware surfaces.
21306
21307 The device to upload to must be supplied when the filter is
21308 initialised. If using ffmpeg, select the appropriate device with the
21309 -filter_hw_device option or with the derive_device option. The input
21310 and output devices must be of different types and compatible - the
21311 exact meaning of this is system-dependent, but typically it means that
21312 they must refer to the same underlying hardware context (for example,
21313 refer to the same graphics card).
21314
21315 The following additional parameters are accepted:
21316
21317 derive_device type
21318 Rather than using the device supplied at initialisation, instead
21319 derive a new device of type type from the device the input frames
21320 exist on.
21321
21322 hwupload_cuda
21323 Upload system memory frames to a CUDA device.
21324
21325 It accepts the following optional parameters:
21326
21327 device
21328 The number of the CUDA device to use
21329
21330 hqx
21331 Apply a high-quality magnification filter designed for pixel art. This
21332 filter was originally created by Maxim Stepin.
21333
21334 It accepts the following option:
21335
21336 n Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
21337 "hq4x". Default is 3.
21338
21339 hstack
21340 Stack input videos horizontally.
21341
21342 All streams must be of same pixel format and of same height.
21343
21344 Note that this filter is faster than using overlay and pad filter to
21345 create same output.
21346
21347 The filter accepts the following option:
21348
21349 inputs
21350 Set number of input streams. Default is 2.
21351
21352 shortest
21353 If set to 1, force the output to terminate when the shortest input
21354 terminates. Default value is 0.
21355
21356 hsvhold
21357 Turns a certain HSV range into gray values.
21358
21359 This filter measures color difference between set HSV color in options
21360 and ones measured in video stream. Depending on options, output colors
21361 can be changed to be gray or not.
21362
21363 The filter accepts the following options:
21364
21365 hue Set the hue value which will be used in color difference
21366 calculation. Allowed range is from -360 to 360. Default value is
21367 0.
21368
21369 sat Set the saturation value which will be used in color difference
21370 calculation. Allowed range is from -1 to 1. Default value is 0.
21371
21372 val Set the value which will be used in color difference calculation.
21373 Allowed range is from -1 to 1. Default value is 0.
21374
21375 similarity
21376 Set similarity percentage with the key color. Allowed range is
21377 from 0 to 1. Default value is 0.01.
21378
21379 0.00001 matches only the exact key color, while 1.0 matches
21380 everything.
21381
21382 blend
21383 Blend percentage. Allowed range is from 0 to 1. Default value is
21384 0.
21385
21386 0.0 makes pixels either fully gray, or not gray at all.
21387
21388 Higher values result in more gray pixels, with a higher gray pixel
21389 the more similar the pixels color is to the key color.
21390
21391 hsvkey
21392 Turns a certain HSV range into transparency.
21393
21394 This filter measures color difference between set HSV color in options
21395 and ones measured in video stream. Depending on options, output colors
21396 can be changed to transparent by adding alpha channel.
21397
21398 The filter accepts the following options:
21399
21400 hue Set the hue value which will be used in color difference
21401 calculation. Allowed range is from -360 to 360. Default value is
21402 0.
21403
21404 sat Set the saturation value which will be used in color difference
21405 calculation. Allowed range is from -1 to 1. Default value is 0.
21406
21407 val Set the value which will be used in color difference calculation.
21408 Allowed range is from -1 to 1. Default value is 0.
21409
21410 similarity
21411 Set similarity percentage with the key color. Allowed range is
21412 from 0 to 1. Default value is 0.01.
21413
21414 0.00001 matches only the exact key color, while 1.0 matches
21415 everything.
21416
21417 blend
21418 Blend percentage. Allowed range is from 0 to 1. Default value is
21419 0.
21420
21421 0.0 makes pixels either fully transparent, or not transparent at
21422 all.
21423
21424 Higher values result in semi-transparent pixels, with a higher
21425 transparency the more similar the pixels color is to the key color.
21426
21427 hue
21428 Modify the hue and/or the saturation of the input.
21429
21430 It accepts the following parameters:
21431
21432 h Specify the hue angle as a number of degrees. It accepts an
21433 expression, and defaults to "0".
21434
21435 s Specify the saturation in the [-10,10] range. It accepts an
21436 expression and defaults to "1".
21437
21438 H Specify the hue angle as a number of radians. It accepts an
21439 expression, and defaults to "0".
21440
21441 b Specify the brightness in the [-10,10] range. It accepts an
21442 expression and defaults to "0".
21443
21444 h and H are mutually exclusive, and can't be specified at the same
21445 time.
21446
21447 The b, h, H and s option values are expressions containing the
21448 following constants:
21449
21450 n frame count of the input frame starting from 0
21451
21452 pts presentation timestamp of the input frame expressed in time base
21453 units
21454
21455 r frame rate of the input video, NAN if the input frame rate is
21456 unknown
21457
21458 t timestamp expressed in seconds, NAN if the input timestamp is
21459 unknown
21460
21461 tb time base of the input video
21462
21463 Examples
21464
21465 • Set the hue to 90 degrees and the saturation to 1.0:
21466
21467 hue=h=90:s=1
21468
21469 • Same command but expressing the hue in radians:
21470
21471 hue=H=PI/2:s=1
21472
21473 • Rotate hue and make the saturation swing between 0 and 2 over a
21474 period of 1 second:
21475
21476 hue="H=2*PI*t: s=sin(2*PI*t)+1"
21477
21478 • Apply a 3 seconds saturation fade-in effect starting at 0:
21479
21480 hue="s=min(t/3\,1)"
21481
21482 The general fade-in expression can be written as:
21483
21484 hue="s=min(0\, max((t-START)/DURATION\, 1))"
21485
21486 • Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
21487
21488 hue="s=max(0\, min(1\, (8-t)/3))"
21489
21490 The general fade-out expression can be written as:
21491
21492 hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
21493
21494 Commands
21495
21496 This filter supports the following commands:
21497
21498 b
21499 s
21500 h
21501 H Modify the hue and/or the saturation and/or brightness of the input
21502 video. The command accepts the same syntax of the corresponding
21503 option.
21504
21505 If the specified expression is not valid, it is kept at its current
21506 value.
21507
21508 huesaturation
21509 Apply hue-saturation-intensity adjustments to input video stream.
21510
21511 This filter operates in RGB colorspace.
21512
21513 This filter accepts the following options:
21514
21515 hue Set the hue shift in degrees to apply. Default is 0. Allowed range
21516 is from -180 to 180.
21517
21518 saturation
21519 Set the saturation shift. Default is 0. Allowed range is from -1
21520 to 1.
21521
21522 intensity
21523 Set the intensity shift. Default is 0. Allowed range is from -1 to
21524 1.
21525
21526 colors
21527 Set which primary and complementary colors are going to be
21528 adjusted. This options is set by providing one or multiple values.
21529 This can select multiple colors at once. By default all colors are
21530 selected.
21531
21532 r Adjust reds.
21533
21534 y Adjust yellows.
21535
21536 g Adjust greens.
21537
21538 c Adjust cyans.
21539
21540 b Adjust blues.
21541
21542 m Adjust magentas.
21543
21544 a Adjust all colors.
21545
21546 strength
21547 Set strength of filtering. Allowed range is from 0 to 100. Default
21548 value is 1.
21549
21550 rw, gw, bw
21551 Set weight for each RGB component. Allowed range is from 0 to 1.
21552 By default is set to 0.333, 0.334, 0.333. Those options are used
21553 in saturation and lightess processing.
21554
21555 lightness
21556 Set preserving lightness, by default is disabled. Adjusting hues
21557 can change lightness from original RGB triplet, with this option
21558 enabled lightness is kept at same value.
21559
21560 hysteresis
21561 Grow first stream into second stream by connecting components. This
21562 makes it possible to build more robust edge masks.
21563
21564 This filter accepts the following options:
21565
21566 planes
21567 Set which planes will be processed as bitmap, unprocessed planes
21568 will be copied from first stream. By default value 0xf, all planes
21569 will be processed.
21570
21571 threshold
21572 Set threshold which is used in filtering. If pixel component value
21573 is higher than this value filter algorithm for connecting
21574 components is activated. By default value is 0.
21575
21576 The "hysteresis" filter also supports the framesync options.
21577
21578 identity
21579 Obtain the identity score between two input videos.
21580
21581 This filter takes two input videos.
21582
21583 Both input videos must have the same resolution and pixel format for
21584 this filter to work correctly. Also it assumes that both inputs have
21585 the same number of frames, which are compared one by one.
21586
21587 The obtained per component, average, min and max identity score is
21588 printed through the logging system.
21589
21590 The filter stores the calculated identity scores of each frame in frame
21591 metadata.
21592
21593 In the below example the input file main.mpg being processed is
21594 compared with the reference file ref.mpg.
21595
21596 ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
21597
21598 idet
21599 Detect video interlacing type.
21600
21601 This filter tries to detect if the input frames are interlaced,
21602 progressive, top or bottom field first. It will also try to detect
21603 fields that are repeated between adjacent frames (a sign of telecine).
21604
21605 Single frame detection considers only immediately adjacent frames when
21606 classifying each frame. Multiple frame detection incorporates the
21607 classification history of previous frames.
21608
21609 The filter will log these metadata values:
21610
21611 single.current_frame
21612 Detected type of current frame using single-frame detection. One
21613 of: ``tff'' (top field first), ``bff'' (bottom field first),
21614 ``progressive'', or ``undetermined''
21615
21616 single.tff
21617 Cumulative number of frames detected as top field first using
21618 single-frame detection.
21619
21620 multiple.tff
21621 Cumulative number of frames detected as top field first using
21622 multiple-frame detection.
21623
21624 single.bff
21625 Cumulative number of frames detected as bottom field first using
21626 single-frame detection.
21627
21628 multiple.current_frame
21629 Detected type of current frame using multiple-frame detection. One
21630 of: ``tff'' (top field first), ``bff'' (bottom field first),
21631 ``progressive'', or ``undetermined''
21632
21633 multiple.bff
21634 Cumulative number of frames detected as bottom field first using
21635 multiple-frame detection.
21636
21637 single.progressive
21638 Cumulative number of frames detected as progressive using single-
21639 frame detection.
21640
21641 multiple.progressive
21642 Cumulative number of frames detected as progressive using multiple-
21643 frame detection.
21644
21645 single.undetermined
21646 Cumulative number of frames that could not be classified using
21647 single-frame detection.
21648
21649 multiple.undetermined
21650 Cumulative number of frames that could not be classified using
21651 multiple-frame detection.
21652
21653 repeated.current_frame
21654 Which field in the current frame is repeated from the last. One of
21655 ``neither'', ``top'', or ``bottom''.
21656
21657 repeated.neither
21658 Cumulative number of frames with no repeated field.
21659
21660 repeated.top
21661 Cumulative number of frames with the top field repeated from the
21662 previous frame's top field.
21663
21664 repeated.bottom
21665 Cumulative number of frames with the bottom field repeated from the
21666 previous frame's bottom field.
21667
21668 The filter accepts the following options:
21669
21670 intl_thres
21671 Set interlacing threshold.
21672
21673 prog_thres
21674 Set progressive threshold.
21675
21676 rep_thres
21677 Threshold for repeated field detection.
21678
21679 half_life
21680 Number of frames after which a given frame's contribution to the
21681 statistics is halved (i.e., it contributes only 0.5 to its
21682 classification). The default of 0 means that all frames seen are
21683 given full weight of 1.0 forever.
21684
21685 analyze_interlaced_flag
21686 When this is not 0 then idet will use the specified number of
21687 frames to determine if the interlaced flag is accurate, it will not
21688 count undetermined frames. If the flag is found to be accurate it
21689 will be used without any further computations, if it is found to be
21690 inaccurate it will be cleared without any further computations.
21691 This allows inserting the idet filter as a low computational method
21692 to clean up the interlaced flag
21693
21694 il
21695 Deinterleave or interleave fields.
21696
21697 This filter allows one to process interlaced images fields without
21698 deinterlacing them. Deinterleaving splits the input frame into 2 fields
21699 (so called half pictures). Odd lines are moved to the top half of the
21700 output image, even lines to the bottom half. You can process (filter)
21701 them independently and then re-interleave them.
21702
21703 The filter accepts the following options:
21704
21705 luma_mode, l
21706 chroma_mode, c
21707 alpha_mode, a
21708 Available values for luma_mode, chroma_mode and alpha_mode are:
21709
21710 none
21711 Do nothing.
21712
21713 deinterleave, d
21714 Deinterleave fields, placing one above the other.
21715
21716 interleave, i
21717 Interleave fields. Reverse the effect of deinterleaving.
21718
21719 Default value is "none".
21720
21721 luma_swap, ls
21722 chroma_swap, cs
21723 alpha_swap, as
21724 Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
21725 value is 0.
21726
21727 Commands
21728
21729 This filter supports the all above options as commands.
21730
21731 inflate
21732 Apply inflate effect to the video.
21733
21734 This filter replaces the pixel by the local(3x3) average by taking into
21735 account only values higher than the pixel.
21736
21737 It accepts the following options:
21738
21739 threshold0
21740 threshold1
21741 threshold2
21742 threshold3
21743 Limit the maximum change for each plane, default is 65535. If 0,
21744 plane will remain unchanged.
21745
21746 Commands
21747
21748 This filter supports the all above options as commands.
21749
21750 interlace
21751 Simple interlacing filter from progressive contents. This interleaves
21752 upper (or lower) lines from odd frames with lower (or upper) lines from
21753 even frames, halving the frame rate and preserving image height.
21754
21755 Original Original New Frame
21756 Frame 'j' Frame 'j+1' (tff)
21757 ========== =========== ==================
21758 Line 0 --------------------> Frame 'j' Line 0
21759 Line 1 Line 1 ----> Frame 'j+1' Line 1
21760 Line 2 ---------------------> Frame 'j' Line 2
21761 Line 3 Line 3 ----> Frame 'j+1' Line 3
21762 ... ... ...
21763 New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
21764
21765 It accepts the following optional parameters:
21766
21767 scan
21768 This determines whether the interlaced frame is taken from the even
21769 (tff - default) or odd (bff) lines of the progressive frame.
21770
21771 lowpass
21772 Vertical lowpass filter to avoid twitter interlacing and reduce
21773 moire patterns.
21774
21775 0, off
21776 Disable vertical lowpass filter
21777
21778 1, linear
21779 Enable linear filter (default)
21780
21781 2, complex
21782 Enable complex filter. This will slightly less reduce twitter
21783 and moire but better retain detail and subjective sharpness
21784 impression.
21785
21786 kerndeint
21787 Deinterlace input video by applying Donald Graft's adaptive kernel
21788 deinterling. Work on interlaced parts of a video to produce progressive
21789 frames.
21790
21791 The description of the accepted parameters follows.
21792
21793 thresh
21794 Set the threshold which affects the filter's tolerance when
21795 determining if a pixel line must be processed. It must be an
21796 integer in the range [0,255] and defaults to 10. A value of 0 will
21797 result in applying the process on every pixels.
21798
21799 map Paint pixels exceeding the threshold value to white if set to 1.
21800 Default is 0.
21801
21802 order
21803 Set the fields order. Swap fields if set to 1, leave fields alone
21804 if 0. Default is 0.
21805
21806 sharp
21807 Enable additional sharpening if set to 1. Default is 0.
21808
21809 twoway
21810 Enable twoway sharpening if set to 1. Default is 0.
21811
21812 Examples
21813
21814 • Apply default values:
21815
21816 kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
21817
21818 • Enable additional sharpening:
21819
21820 kerndeint=sharp=1
21821
21822 • Paint processed pixels in white:
21823
21824 kerndeint=map=1
21825
21826 kirsch
21827 Apply kirsch operator to input video stream.
21828
21829 The filter accepts the following option:
21830
21831 planes
21832 Set which planes will be processed, unprocessed planes will be
21833 copied. By default value 0xf, all planes will be processed.
21834
21835 scale
21836 Set value which will be multiplied with filtered result.
21837
21838 delta
21839 Set value which will be added to filtered result.
21840
21841 Commands
21842
21843 This filter supports the all above options as commands.
21844
21845 lagfun
21846 Slowly update darker pixels.
21847
21848 This filter makes short flashes of light appear longer. This filter
21849 accepts the following options:
21850
21851 decay
21852 Set factor for decaying. Default is .95. Allowed range is from 0 to
21853 1.
21854
21855 planes
21856 Set which planes to filter. Default is all. Allowed range is from 0
21857 to 15.
21858
21859 Commands
21860
21861 This filter supports the all above options as commands.
21862
21863 lenscorrection
21864 Correct radial lens distortion
21865
21866 This filter can be used to correct for radial distortion as can result
21867 from the use of wide angle lenses, and thereby re-rectify the image. To
21868 find the right parameters one can use tools available for example as
21869 part of opencv or simply trial-and-error. To use opencv use the
21870 calibration sample (under samples/cpp) from the opencv sources and
21871 extract the k1 and k2 coefficients from the resulting matrix.
21872
21873 Note that effectively the same filter is available in the open-source
21874 tools Krita and Digikam from the KDE project.
21875
21876 In contrast to the vignette filter, which can also be used to
21877 compensate lens errors, this filter corrects the distortion of the
21878 image, whereas vignette corrects the brightness distribution, so you
21879 may want to use both filters together in certain cases, though you will
21880 have to take care of ordering, i.e. whether vignetting should be
21881 applied before or after lens correction.
21882
21883 Options
21884
21885 The filter accepts the following options:
21886
21887 cx Relative x-coordinate of the focal point of the image, and thereby
21888 the center of the distortion. This value has a range [0,1] and is
21889 expressed as fractions of the image width. Default is 0.5.
21890
21891 cy Relative y-coordinate of the focal point of the image, and thereby
21892 the center of the distortion. This value has a range [0,1] and is
21893 expressed as fractions of the image height. Default is 0.5.
21894
21895 k1 Coefficient of the quadratic correction term. This value has a
21896 range [-1,1]. 0 means no correction. Default is 0.
21897
21898 k2 Coefficient of the double quadratic correction term. This value has
21899 a range [-1,1]. 0 means no correction. Default is 0.
21900
21901 i Set interpolation type. Can be "nearest" or "bilinear". Default is
21902 "nearest".
21903
21904 fc Specify the color of the unmapped pixels. For the syntax of this
21905 option, check the "Color" section in the ffmpeg-utils manual.
21906 Default color is "black@0".
21907
21908 The formula that generates the correction is:
21909
21910 r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
21911
21912 where r_0 is halve of the image diagonal and r_src and r_tgt are the
21913 distances from the focal point in the source and target images,
21914 respectively.
21915
21916 Commands
21917
21918 This filter supports the all above options as commands.
21919
21920 lensfun
21921 Apply lens correction via the lensfun library
21922 (<http://lensfun.sourceforge.net/>).
21923
21924 The "lensfun" filter requires the camera make, camera model, and lens
21925 model to apply the lens correction. The filter will load the lensfun
21926 database and query it to find the corresponding camera and lens entries
21927 in the database. As long as these entries can be found with the given
21928 options, the filter can perform corrections on frames. Note that
21929 incomplete strings will result in the filter choosing the best match
21930 with the given options, and the filter will output the chosen camera
21931 and lens models (logged with level "info"). You must provide the make,
21932 camera model, and lens model as they are required.
21933
21934 The filter accepts the following options:
21935
21936 make
21937 The make of the camera (for example, "Canon"). This option is
21938 required.
21939
21940 model
21941 The model of the camera (for example, "Canon EOS 100D"). This
21942 option is required.
21943
21944 lens_model
21945 The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
21946 IS STM"). This option is required.
21947
21948 mode
21949 The type of correction to apply. The following values are valid
21950 options:
21951
21952 vignetting
21953 Enables fixing lens vignetting.
21954
21955 geometry
21956 Enables fixing lens geometry. This is the default.
21957
21958 subpixel
21959 Enables fixing chromatic aberrations.
21960
21961 vig_geo
21962 Enables fixing lens vignetting and lens geometry.
21963
21964 vig_subpixel
21965 Enables fixing lens vignetting and chromatic aberrations.
21966
21967 distortion
21968 Enables fixing both lens geometry and chromatic aberrations.
21969
21970 all Enables all possible corrections.
21971
21972 focal_length
21973 The focal length of the image/video (zoom; expected constant for
21974 video). For example, a 18--55mm lens has focal length range of
21975 [18--55], so a value in that range should be chosen when using that
21976 lens. Default 18.
21977
21978 aperture
21979 The aperture of the image/video (expected constant for video). Note
21980 that aperture is only used for vignetting correction. Default 3.5.
21981
21982 focus_distance
21983 The focus distance of the image/video (expected constant for
21984 video). Note that focus distance is only used for vignetting and
21985 only slightly affects the vignetting correction process. If
21986 unknown, leave it at the default value (which is 1000).
21987
21988 scale
21989 The scale factor which is applied after transformation. After
21990 correction the video is no longer necessarily rectangular. This
21991 parameter controls how much of the resulting image is visible. The
21992 value 0 means that a value will be chosen automatically such that
21993 there is little or no unmapped area in the output image. 1.0 means
21994 that no additional scaling is done. Lower values may result in more
21995 of the corrected image being visible, while higher values may avoid
21996 unmapped areas in the output.
21997
21998 target_geometry
21999 The target geometry of the output image/video. The following values
22000 are valid options:
22001
22002 rectilinear (default)
22003 fisheye
22004 panoramic
22005 equirectangular
22006 fisheye_orthographic
22007 fisheye_stereographic
22008 fisheye_equisolid
22009 fisheye_thoby
22010 reverse
22011 Apply the reverse of image correction (instead of correcting
22012 distortion, apply it).
22013
22014 interpolation
22015 The type of interpolation used when correcting distortion. The
22016 following values are valid options:
22017
22018 nearest
22019 linear (default)
22020 lanczos
22021
22022 Examples
22023
22024 • Apply lens correction with make "Canon", camera model "Canon EOS
22025 100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
22026 focal length of "18" and aperture of "8.0".
22027
22028 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
22029
22030 • Apply the same as before, but only for the first 5 seconds of
22031 video.
22032
22033 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
22034
22035 libvmaf
22036 Obtain the VMAF (Video Multi-Method Assessment Fusion) score between
22037 two input videos.
22038
22039 The first input is the encoded video, and the second input is the
22040 reference video.
22041
22042 The obtained VMAF score is printed through the logging system.
22043
22044 It requires Netflix's vmaf library (libvmaf) as a pre-requisite. After
22045 installing the library it can be enabled using: "./configure
22046 --enable-libvmaf". If no model path is specified it uses the default
22047 model: "vmaf_v0.6.1.pkl".
22048
22049 The filter has following options:
22050
22051 model_path
22052 Set the model path which is to be used for SVM. Default value:
22053 "/usr/local/share/model/vmaf_v0.6.1.pkl"
22054
22055 log_path
22056 Set the file path to be used to store logs.
22057
22058 log_fmt
22059 Set the format of the log file (csv, json or xml).
22060
22061 enable_transform
22062 This option can enable/disable the "score_transform" applied to the
22063 final predicted VMAF score, if you have specified score_transform
22064 option in the input parameter file passed to "run_vmaf_training.py"
22065 Default value: "false"
22066
22067 phone_model
22068 Invokes the phone model which will generate VMAF scores higher than
22069 in the regular model, which is more suitable for laptop, TV, etc.
22070 viewing conditions. Default value: "false"
22071
22072 psnr
22073 Enables computing psnr along with vmaf. Default value: "false"
22074
22075 ssim
22076 Enables computing ssim along with vmaf. Default value: "false"
22077
22078 ms_ssim
22079 Enables computing ms_ssim along with vmaf. Default value: "false"
22080
22081 pool
22082 Set the pool method to be used for computing vmaf. Options are
22083 "min", "harmonic_mean" or "mean" (default).
22084
22085 n_threads
22086 Set number of threads to be used when computing vmaf. Default
22087 value: 0, which makes use of all available logical processors.
22088
22089 n_subsample
22090 Set interval for frame subsampling used when computing vmaf.
22091 Default value: 1
22092
22093 enable_conf_interval
22094 Enables confidence interval. Default value: "false"
22095
22096 This filter also supports the framesync options.
22097
22098 Examples
22099
22100 • On the below examples the input file main.mpg being processed is
22101 compared with the reference file ref.mpg.
22102
22103 ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf -f null -
22104
22105 • Example with options:
22106
22107 ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf="psnr=1:log_fmt=json" -f null -
22108
22109 • Example with options and different containers:
22110
22111 ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=psnr=1:log_fmt=json" -f null -
22112
22113 limitdiff
22114 Apply limited difference filter using second and optionally third video
22115 stream.
22116
22117 The filter accepts the following options:
22118
22119 threshold
22120 Set the threshold to use when allowing certain differences between
22121 video streams. Any absolute difference value lower or exact than
22122 this threshold will pick pixel components from first video stream.
22123
22124 elasticity
22125 Set the elasticity of soft thresholding when processing video
22126 streams. This value multiplied with first one sets second
22127 threshold. Any absolute difference value greater or exact than
22128 second threshold will pick pixel components from second video
22129 stream. For values between those two threshold linear interpolation
22130 between first and second video stream will be used.
22131
22132 reference
22133 Enable the reference (third) video stream processing. By default is
22134 disabled. If set, this video stream will be used for calculating
22135 absolute difference with first video stream.
22136
22137 planes
22138 Specify which planes will be processed. Defaults to all available.
22139
22140 Commands
22141
22142 This filter supports the all above options as commands except option
22143 reference.
22144
22145 limiter
22146 Limits the pixel components values to the specified range [min, max].
22147
22148 The filter accepts the following options:
22149
22150 min Lower bound. Defaults to the lowest allowed value for the input.
22151
22152 max Upper bound. Defaults to the highest allowed value for the input.
22153
22154 planes
22155 Specify which planes will be processed. Defaults to all available.
22156
22157 Commands
22158
22159 This filter supports the all above options as commands.
22160
22161 loop
22162 Loop video frames.
22163
22164 The filter accepts the following options:
22165
22166 loop
22167 Set the number of loops. Setting this value to -1 will result in
22168 infinite loops. Default is 0.
22169
22170 size
22171 Set maximal size in number of frames. Default is 0.
22172
22173 start
22174 Set first frame of loop. Default is 0.
22175
22176 Examples
22177
22178 • Loop single first frame infinitely:
22179
22180 loop=loop=-1:size=1:start=0
22181
22182 • Loop single first frame 10 times:
22183
22184 loop=loop=10:size=1:start=0
22185
22186 • Loop 10 first frames 5 times:
22187
22188 loop=loop=5:size=10:start=0
22189
22190 lut1d
22191 Apply a 1D LUT to an input video.
22192
22193 The filter accepts the following options:
22194
22195 file
22196 Set the 1D LUT file name.
22197
22198 Currently supported formats:
22199
22200 cube
22201 Iridas
22202
22203 csp cineSpace
22204
22205 interp
22206 Select interpolation mode.
22207
22208 Available values are:
22209
22210 nearest
22211 Use values from the nearest defined point.
22212
22213 linear
22214 Interpolate values using the linear interpolation.
22215
22216 cosine
22217 Interpolate values using the cosine interpolation.
22218
22219 cubic
22220 Interpolate values using the cubic interpolation.
22221
22222 spline
22223 Interpolate values using the spline interpolation.
22224
22225 Commands
22226
22227 This filter supports the all above options as commands.
22228
22229 lut3d
22230 Apply a 3D LUT to an input video.
22231
22232 The filter accepts the following options:
22233
22234 file
22235 Set the 3D LUT file name.
22236
22237 Currently supported formats:
22238
22239 3dl AfterEffects
22240
22241 cube
22242 Iridas
22243
22244 dat DaVinci
22245
22246 m3d Pandora
22247
22248 csp cineSpace
22249
22250 interp
22251 Select interpolation mode.
22252
22253 Available values are:
22254
22255 nearest
22256 Use values from the nearest defined point.
22257
22258 trilinear
22259 Interpolate values using the 8 points defining a cube.
22260
22261 tetrahedral
22262 Interpolate values using a tetrahedron.
22263
22264 pyramid
22265 Interpolate values using a pyramid.
22266
22267 prism
22268 Interpolate values using a prism.
22269
22270 Commands
22271
22272 This filter supports the "interp" option as commands.
22273
22274 lumakey
22275 Turn certain luma values into transparency.
22276
22277 The filter accepts the following options:
22278
22279 threshold
22280 Set the luma which will be used as base for transparency. Default
22281 value is 0.
22282
22283 tolerance
22284 Set the range of luma values to be keyed out. Default value is
22285 0.01.
22286
22287 softness
22288 Set the range of softness. Default value is 0. Use this to control
22289 gradual transition from zero to full transparency.
22290
22291 Commands
22292
22293 This filter supports same commands as options. The command accepts the
22294 same syntax of the corresponding option.
22295
22296 If the specified expression is not valid, it is kept at its current
22297 value.
22298
22299 lut, lutrgb, lutyuv
22300 Compute a look-up table for binding each pixel component input value to
22301 an output value, and apply it to the input video.
22302
22303 lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
22304 input video.
22305
22306 These filters accept the following parameters:
22307
22308 c0 set first pixel component expression
22309
22310 c1 set second pixel component expression
22311
22312 c2 set third pixel component expression
22313
22314 c3 set fourth pixel component expression, corresponds to the alpha
22315 component
22316
22317 r set red component expression
22318
22319 g set green component expression
22320
22321 b set blue component expression
22322
22323 a alpha component expression
22324
22325 y set Y/luminance component expression
22326
22327 u set U/Cb component expression
22328
22329 v set V/Cr component expression
22330
22331 Each of them specifies the expression to use for computing the lookup
22332 table for the corresponding pixel component values.
22333
22334 The exact component associated to each of the c* options depends on the
22335 format in input.
22336
22337 The lut filter requires either YUV or RGB pixel formats in input,
22338 lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
22339
22340 The expressions can contain the following constants and functions:
22341
22342 w
22343 h The input width and height.
22344
22345 val The input value for the pixel component.
22346
22347 clipval
22348 The input value, clipped to the minval-maxval range.
22349
22350 maxval
22351 The maximum value for the pixel component.
22352
22353 minval
22354 The minimum value for the pixel component.
22355
22356 negval
22357 The negated value for the pixel component value, clipped to the
22358 minval-maxval range; it corresponds to the expression
22359 "maxval-clipval+minval".
22360
22361 clip(val)
22362 The computed value in val, clipped to the minval-maxval range.
22363
22364 gammaval(gamma)
22365 The computed gamma correction value of the pixel component value,
22366 clipped to the minval-maxval range. It corresponds to the
22367 expression
22368 "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
22369
22370 All expressions default to "val".
22371
22372 Commands
22373
22374 This filter supports same commands as options.
22375
22376 Examples
22377
22378 • Negate input video:
22379
22380 lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
22381 lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
22382
22383 The above is the same as:
22384
22385 lutrgb="r=negval:g=negval:b=negval"
22386 lutyuv="y=negval:u=negval:v=negval"
22387
22388 • Negate luminance:
22389
22390 lutyuv=y=negval
22391
22392 • Remove chroma components, turning the video into a graytone image:
22393
22394 lutyuv="u=128:v=128"
22395
22396 • Apply a luma burning effect:
22397
22398 lutyuv="y=2*val"
22399
22400 • Remove green and blue components:
22401
22402 lutrgb="g=0:b=0"
22403
22404 • Set a constant alpha channel value on input:
22405
22406 format=rgba,lutrgb=a="maxval-minval/2"
22407
22408 • Correct luminance gamma by a factor of 0.5:
22409
22410 lutyuv=y=gammaval(0.5)
22411
22412 • Discard least significant bits of luma:
22413
22414 lutyuv=y='bitand(val, 128+64+32)'
22415
22416 • Technicolor like effect:
22417
22418 lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
22419
22420 lut2, tlut2
22421 The "lut2" filter takes two input streams and outputs one stream.
22422
22423 The "tlut2" (time lut2) filter takes two consecutive frames from one
22424 single stream.
22425
22426 This filter accepts the following parameters:
22427
22428 c0 set first pixel component expression
22429
22430 c1 set second pixel component expression
22431
22432 c2 set third pixel component expression
22433
22434 c3 set fourth pixel component expression, corresponds to the alpha
22435 component
22436
22437 d set output bit depth, only available for "lut2" filter. By default
22438 is 0, which means bit depth is automatically picked from first
22439 input format.
22440
22441 The "lut2" filter also supports the framesync options.
22442
22443 Each of them specifies the expression to use for computing the lookup
22444 table for the corresponding pixel component values.
22445
22446 The exact component associated to each of the c* options depends on the
22447 format in inputs.
22448
22449 The expressions can contain the following constants:
22450
22451 w
22452 h The input width and height.
22453
22454 x The first input value for the pixel component.
22455
22456 y The second input value for the pixel component.
22457
22458 bdx The first input video bit depth.
22459
22460 bdy The second input video bit depth.
22461
22462 All expressions default to "x".
22463
22464 Commands
22465
22466 This filter supports the all above options as commands except option
22467 "d".
22468
22469 Examples
22470
22471 • Highlight differences between two RGB video streams:
22472
22473 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)'
22474
22475 • Highlight differences between two YUV video streams:
22476
22477 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)'
22478
22479 • Show max difference between two video streams:
22480
22481 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)))'
22482
22483 maskedclamp
22484 Clamp the first input stream with the second input and third input
22485 stream.
22486
22487 Returns the value of first stream to be between second input stream -
22488 "undershoot" and third input stream + "overshoot".
22489
22490 This filter accepts the following options:
22491
22492 undershoot
22493 Default value is 0.
22494
22495 overshoot
22496 Default value is 0.
22497
22498 planes
22499 Set which planes will be processed as bitmap, unprocessed planes
22500 will be copied from first stream. By default value 0xf, all planes
22501 will be processed.
22502
22503 Commands
22504
22505 This filter supports the all above options as commands.
22506
22507 maskedmax
22508 Merge the second and third input stream into output stream using
22509 absolute differences between second input stream and first input stream
22510 and absolute difference between third input stream and first input
22511 stream. The picked value will be from second input stream if second
22512 absolute difference is greater than first one or from third input
22513 stream otherwise.
22514
22515 This filter accepts the following options:
22516
22517 planes
22518 Set which planes will be processed as bitmap, unprocessed planes
22519 will be copied from first stream. By default value 0xf, all planes
22520 will be processed.
22521
22522 Commands
22523
22524 This filter supports the all above options as commands.
22525
22526 maskedmerge
22527 Merge the first input stream with the second input stream using per
22528 pixel weights in the third input stream.
22529
22530 A value of 0 in the third stream pixel component means that pixel
22531 component from first stream is returned unchanged, while maximum value
22532 (eg. 255 for 8-bit videos) means that pixel component from second
22533 stream is returned unchanged. Intermediate values define the amount of
22534 merging between both input stream's pixel components.
22535
22536 This filter accepts the following options:
22537
22538 planes
22539 Set which planes will be processed as bitmap, unprocessed planes
22540 will be copied from first stream. By default value 0xf, all planes
22541 will be processed.
22542
22543 Commands
22544
22545 This filter supports the all above options as commands.
22546
22547 maskedmin
22548 Merge the second and third input stream into output stream using
22549 absolute differences between second input stream and first input stream
22550 and absolute difference between third input stream and first input
22551 stream. The picked value will be from second input stream if second
22552 absolute difference is less than first one or from third input stream
22553 otherwise.
22554
22555 This filter accepts the following options:
22556
22557 planes
22558 Set which planes will be processed as bitmap, unprocessed planes
22559 will be copied from first stream. By default value 0xf, all planes
22560 will be processed.
22561
22562 Commands
22563
22564 This filter supports the all above options as commands.
22565
22566 maskedthreshold
22567 Pick pixels comparing absolute difference of two video streams with
22568 fixed threshold.
22569
22570 If absolute difference between pixel component of first and second
22571 video stream is equal or lower than user supplied threshold than pixel
22572 component from first video stream is picked, otherwise pixel component
22573 from second video stream is picked.
22574
22575 This filter accepts the following options:
22576
22577 threshold
22578 Set threshold used when picking pixels from absolute difference
22579 from two input video streams.
22580
22581 planes
22582 Set which planes will be processed as bitmap, unprocessed planes
22583 will be copied from second stream. By default value 0xf, all
22584 planes will be processed.
22585
22586 Commands
22587
22588 This filter supports the all above options as commands.
22589
22590 maskfun
22591 Create mask from input video.
22592
22593 For example it is useful to create motion masks after "tblend" filter.
22594
22595 This filter accepts the following options:
22596
22597 low Set low threshold. Any pixel component lower or exact than this
22598 value will be set to 0.
22599
22600 high
22601 Set high threshold. Any pixel component higher than this value will
22602 be set to max value allowed for current pixel format.
22603
22604 planes
22605 Set planes to filter, by default all available planes are filtered.
22606
22607 fill
22608 Fill all frame pixels with this value.
22609
22610 sum Set max average pixel value for frame. If sum of all pixel
22611 components is higher that this average, output frame will be
22612 completely filled with value set by fill option. Typically useful
22613 for scene changes when used in combination with "tblend" filter.
22614
22615 Commands
22616
22617 This filter supports the all above options as commands.
22618
22619 mcdeint
22620 Apply motion-compensation deinterlacing.
22621
22622 It needs one field per frame as input and must thus be used together
22623 with yadif=1/3 or equivalent.
22624
22625 This filter is only available in ffmpeg version 4.4 or earlier.
22626
22627 This filter accepts the following options:
22628
22629 mode
22630 Set the deinterlacing mode.
22631
22632 It accepts one of the following values:
22633
22634 fast
22635 medium
22636 slow
22637 use iterative motion estimation
22638
22639 extra_slow
22640 like slow, but use multiple reference frames.
22641
22642 Default value is fast.
22643
22644 parity
22645 Set the picture field parity assumed for the input video. It must
22646 be one of the following values:
22647
22648 0, tff
22649 assume top field first
22650
22651 1, bff
22652 assume bottom field first
22653
22654 Default value is bff.
22655
22656 qp Set per-block quantization parameter (QP) used by the internal
22657 encoder.
22658
22659 Higher values should result in a smoother motion vector field but
22660 less optimal individual vectors. Default value is 1.
22661
22662 median
22663 Pick median pixel from certain rectangle defined by radius.
22664
22665 This filter accepts the following options:
22666
22667 radius
22668 Set horizontal radius size. Default value is 1. Allowed range is
22669 integer from 1 to 127.
22670
22671 planes
22672 Set which planes to process. Default is 15, which is all available
22673 planes.
22674
22675 radiusV
22676 Set vertical radius size. Default value is 0. Allowed range is
22677 integer from 0 to 127. If it is 0, value will be picked from
22678 horizontal "radius" option.
22679
22680 percentile
22681 Set median percentile. Default value is 0.5. Default value of 0.5
22682 will pick always median values, while 0 will pick minimum values,
22683 and 1 maximum values.
22684
22685 Commands
22686
22687 This filter supports same commands as options. The command accepts the
22688 same syntax of the corresponding option.
22689
22690 If the specified expression is not valid, it is kept at its current
22691 value.
22692
22693 mergeplanes
22694 Merge color channel components from several video streams.
22695
22696 The filter accepts up to 4 input streams, and merge selected input
22697 planes to the output video.
22698
22699 This filter accepts the following options:
22700
22701 mapping
22702 Set input to output plane mapping. Default is 0.
22703
22704 The mappings is specified as a bitmap. It should be specified as a
22705 hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
22706 mapping for the first plane of the output stream. 'A' sets the
22707 number of the input stream to use (from 0 to 3), and 'a' the plane
22708 number of the corresponding input to use (from 0 to 3). The rest of
22709 the mappings is similar, 'Bb' describes the mapping for the output
22710 stream second plane, 'Cc' describes the mapping for the output
22711 stream third plane and 'Dd' describes the mapping for the output
22712 stream fourth plane.
22713
22714 format
22715 Set output pixel format. Default is "yuva444p".
22716
22717 Examples
22718
22719 • Merge three gray video streams of same width and height into single
22720 video stream:
22721
22722 [a0][a1][a2]mergeplanes=0x001020:yuv444p
22723
22724 • Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
22725 video stream:
22726
22727 [a0][a1]mergeplanes=0x00010210:yuva444p
22728
22729 • Swap Y and A plane in yuva444p stream:
22730
22731 format=yuva444p,mergeplanes=0x03010200:yuva444p
22732
22733 • Swap U and V plane in yuv420p stream:
22734
22735 format=yuv420p,mergeplanes=0x000201:yuv420p
22736
22737 • Cast a rgb24 clip to yuv444p:
22738
22739 format=rgb24,mergeplanes=0x000102:yuv444p
22740
22741 mestimate
22742 Estimate and export motion vectors using block matching algorithms.
22743 Motion vectors are stored in frame side data to be used by other
22744 filters.
22745
22746 This filter accepts the following options:
22747
22748 method
22749 Specify the motion estimation method. Accepts one of the following
22750 values:
22751
22752 esa Exhaustive search algorithm.
22753
22754 tss Three step search algorithm.
22755
22756 tdls
22757 Two dimensional logarithmic search algorithm.
22758
22759 ntss
22760 New three step search algorithm.
22761
22762 fss Four step search algorithm.
22763
22764 ds Diamond search algorithm.
22765
22766 hexbs
22767 Hexagon-based search algorithm.
22768
22769 epzs
22770 Enhanced predictive zonal search algorithm.
22771
22772 umh Uneven multi-hexagon search algorithm.
22773
22774 Default value is esa.
22775
22776 mb_size
22777 Macroblock size. Default 16.
22778
22779 search_param
22780 Search parameter. Default 7.
22781
22782 midequalizer
22783 Apply Midway Image Equalization effect using two video streams.
22784
22785 Midway Image Equalization adjusts a pair of images to have the same
22786 histogram, while maintaining their dynamics as much as possible. It's
22787 useful for e.g. matching exposures from a pair of stereo cameras.
22788
22789 This filter has two inputs and one output, which must be of same pixel
22790 format, but may be of different sizes. The output of filter is first
22791 input adjusted with midway histogram of both inputs.
22792
22793 This filter accepts the following option:
22794
22795 planes
22796 Set which planes to process. Default is 15, which is all available
22797 planes.
22798
22799 minterpolate
22800 Convert the video to specified frame rate using motion interpolation.
22801
22802 This filter accepts the following options:
22803
22804 fps Specify the output frame rate. This can be rational e.g.
22805 "60000/1001". Frames are dropped if fps is lower than source fps.
22806 Default 60.
22807
22808 mi_mode
22809 Motion interpolation mode. Following values are accepted:
22810
22811 dup Duplicate previous or next frame for interpolating new ones.
22812
22813 blend
22814 Blend source frames. Interpolated frame is mean of previous and
22815 next frames.
22816
22817 mci Motion compensated interpolation. Following options are
22818 effective when this mode is selected:
22819
22820 mc_mode
22821 Motion compensation mode. Following values are accepted:
22822
22823 obmc
22824 Overlapped block motion compensation.
22825
22826 aobmc
22827 Adaptive overlapped block motion compensation. Window
22828 weighting coefficients are controlled adaptively
22829 according to the reliabilities of the neighboring
22830 motion vectors to reduce oversmoothing.
22831
22832 Default mode is obmc.
22833
22834 me_mode
22835 Motion estimation mode. Following values are accepted:
22836
22837 bidir
22838 Bidirectional motion estimation. Motion vectors are
22839 estimated for each source frame in both forward and
22840 backward directions.
22841
22842 bilat
22843 Bilateral motion estimation. Motion vectors are
22844 estimated directly for interpolated frame.
22845
22846 Default mode is bilat.
22847
22848 me The algorithm to be used for motion estimation. Following
22849 values are accepted:
22850
22851 esa Exhaustive search algorithm.
22852
22853 tss Three step search algorithm.
22854
22855 tdls
22856 Two dimensional logarithmic search algorithm.
22857
22858 ntss
22859 New three step search algorithm.
22860
22861 fss Four step search algorithm.
22862
22863 ds Diamond search algorithm.
22864
22865 hexbs
22866 Hexagon-based search algorithm.
22867
22868 epzs
22869 Enhanced predictive zonal search algorithm.
22870
22871 umh Uneven multi-hexagon search algorithm.
22872
22873 Default algorithm is epzs.
22874
22875 mb_size
22876 Macroblock size. Default 16.
22877
22878 search_param
22879 Motion estimation search parameter. Default 32.
22880
22881 vsbmc
22882 Enable variable-size block motion compensation. Motion
22883 estimation is applied with smaller block sizes at object
22884 boundaries in order to make the them less blur. Default is
22885 0 (disabled).
22886
22887 scd Scene change detection method. Scene change leads motion vectors to
22888 be in random direction. Scene change detection replace interpolated
22889 frames by duplicate ones. May not be needed for other modes.
22890 Following values are accepted:
22891
22892 none
22893 Disable scene change detection.
22894
22895 fdiff
22896 Frame difference. Corresponding pixel values are compared and
22897 if it satisfies scd_threshold scene change is detected.
22898
22899 Default method is fdiff.
22900
22901 scd_threshold
22902 Scene change detection threshold. Default is 10..
22903
22904 mix
22905 Mix several video input streams into one video stream.
22906
22907 A description of the accepted options follows.
22908
22909 inputs
22910 The number of inputs. If unspecified, it defaults to 2.
22911
22912 weights
22913 Specify weight of each input video stream as sequence. Each weight
22914 is separated by space. If number of weights is smaller than number
22915 of frames last specified weight will be used for all remaining
22916 unset weights.
22917
22918 scale
22919 Specify scale, if it is set it will be multiplied with sum of each
22920 weight multiplied with pixel values to give final destination pixel
22921 value. By default scale is auto scaled to sum of weights.
22922
22923 duration
22924 Specify how end of stream is determined.
22925
22926 longest
22927 The duration of the longest input. (default)
22928
22929 shortest
22930 The duration of the shortest input.
22931
22932 first
22933 The duration of the first input.
22934
22935 Commands
22936
22937 This filter supports the following commands:
22938
22939 weights
22940 scale
22941 Syntax is same as option with same name.
22942
22943 monochrome
22944 Convert video to gray using custom color filter.
22945
22946 A description of the accepted options follows.
22947
22948 cb Set the chroma blue spot. Allowed range is from -1 to 1. Default
22949 value is 0.
22950
22951 cr Set the chroma red spot. Allowed range is from -1 to 1. Default
22952 value is 0.
22953
22954 size
22955 Set the color filter size. Allowed range is from .1 to 10. Default
22956 value is 1.
22957
22958 high
22959 Set the highlights strength. Allowed range is from 0 to 1. Default
22960 value is 0.
22961
22962 Commands
22963
22964 This filter supports the all above options as commands.
22965
22966 morpho
22967 This filter allows to apply main morphological grayscale transforms,
22968 erode and dilate with arbitrary structures set in second input stream.
22969
22970 Unlike naive implementation and much slower performance in erosion and
22971 dilation filters, when speed is critical "morpho" filter should be used
22972 instead.
22973
22974 A description of accepted options follows,
22975
22976 mode
22977 Set morphological transform to apply, can be:
22978
22979 erode
22980 dilate
22981 open
22982 close
22983 gradient
22984 tophat
22985 blackhat
22986
22987 Default is "erode".
22988
22989 planes
22990 Set planes to filter, by default all planes except alpha are
22991 filtered.
22992
22993 structure
22994 Set which structure video frames will be processed from second
22995 input stream, can be first or all. Default is all.
22996
22997 The "morpho" filter also supports the framesync options.
22998
22999 Commands
23000
23001 This filter supports same commands as options.
23002
23003 mpdecimate
23004 Drop frames that do not differ greatly from the previous frame in order
23005 to reduce frame rate.
23006
23007 The main use of this filter is for very-low-bitrate encoding (e.g.
23008 streaming over dialup modem), but it could in theory be used for fixing
23009 movies that were inverse-telecined incorrectly.
23010
23011 A description of the accepted options follows.
23012
23013 max Set the maximum number of consecutive frames which can be dropped
23014 (if positive), or the minimum interval between dropped frames (if
23015 negative). If the value is 0, the frame is dropped disregarding the
23016 number of previous sequentially dropped frames.
23017
23018 Default value is 0.
23019
23020 hi
23021 lo
23022 frac
23023 Set the dropping threshold values.
23024
23025 Values for hi and lo are for 8x8 pixel blocks and represent actual
23026 pixel value differences, so a threshold of 64 corresponds to 1 unit
23027 of difference for each pixel, or the same spread out differently
23028 over the block.
23029
23030 A frame is a candidate for dropping if no 8x8 blocks differ by more
23031 than a threshold of hi, and if no more than frac blocks (1 meaning
23032 the whole image) differ by more than a threshold of lo.
23033
23034 Default value for hi is 64*12, default value for lo is 64*5, and
23035 default value for frac is 0.33.
23036
23037 msad
23038 Obtain the MSAD (Mean Sum of Absolute Differences) between two input
23039 videos.
23040
23041 This filter takes two input videos.
23042
23043 Both input videos must have the same resolution and pixel format for
23044 this filter to work correctly. Also it assumes that both inputs have
23045 the same number of frames, which are compared one by one.
23046
23047 The obtained per component, average, min and max MSAD is printed
23048 through the logging system.
23049
23050 The filter stores the calculated MSAD of each frame in frame metadata.
23051
23052 In the below example the input file main.mpg being processed is
23053 compared with the reference file ref.mpg.
23054
23055 ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
23056
23057 negate
23058 Negate (invert) the input video.
23059
23060 It accepts the following option:
23061
23062 components
23063 Set components to negate.
23064
23065 Available values for components are:
23066
23067 y
23068 u
23069 v
23070 a
23071 r
23072 g
23073 b
23074 negate_alpha
23075 With value 1, it negates the alpha component, if present. Default
23076 value is 0.
23077
23078 Commands
23079
23080 This filter supports same commands as options.
23081
23082 nlmeans
23083 Denoise frames using Non-Local Means algorithm.
23084
23085 Each pixel is adjusted by looking for other pixels with similar
23086 contexts. This context similarity is defined by comparing their
23087 surrounding patches of size pxp. Patches are searched in an area of rxr
23088 around the pixel.
23089
23090 Note that the research area defines centers for patches, which means
23091 some patches will be made of pixels outside that research area.
23092
23093 The filter accepts the following options.
23094
23095 s Set denoising strength. Default is 1.0. Must be in range [1.0,
23096 30.0].
23097
23098 p Set patch size. Default is 7. Must be odd number in range [0, 99].
23099
23100 pc Same as p but for chroma planes.
23101
23102 The default value is 0 and means automatic.
23103
23104 r Set research size. Default is 15. Must be odd number in range [0,
23105 99].
23106
23107 rc Same as r but for chroma planes.
23108
23109 The default value is 0 and means automatic.
23110
23111 nnedi
23112 Deinterlace video using neural network edge directed interpolation.
23113
23114 This filter accepts the following options:
23115
23116 weights
23117 Mandatory option, without binary file filter can not work.
23118 Currently file can be found here:
23119 https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
23120
23121 deint
23122 Set which frames to deinterlace, by default it is "all". Can be
23123 "all" or "interlaced".
23124
23125 field
23126 Set mode of operation.
23127
23128 Can be one of the following:
23129
23130 af Use frame flags, both fields.
23131
23132 a Use frame flags, single field.
23133
23134 t Use top field only.
23135
23136 b Use bottom field only.
23137
23138 tf Use both fields, top first.
23139
23140 bf Use both fields, bottom first.
23141
23142 planes
23143 Set which planes to process, by default filter process all frames.
23144
23145 nsize
23146 Set size of local neighborhood around each pixel, used by the
23147 predictor neural network.
23148
23149 Can be one of the following:
23150
23151 s8x6
23152 s16x6
23153 s32x6
23154 s48x6
23155 s8x4
23156 s16x4
23157 s32x4
23158 nns Set the number of neurons in predictor neural network. Can be one
23159 of the following:
23160
23161 n16
23162 n32
23163 n64
23164 n128
23165 n256
23166 qual
23167 Controls the number of different neural network predictions that
23168 are blended together to compute the final output value. Can be
23169 "fast", default or "slow".
23170
23171 etype
23172 Set which set of weights to use in the predictor. Can be one of
23173 the following:
23174
23175 a, abs
23176 weights trained to minimize absolute error
23177
23178 s, mse
23179 weights trained to minimize squared error
23180
23181 pscrn
23182 Controls whether or not the prescreener neural network is used to
23183 decide which pixels should be processed by the predictor neural
23184 network and which can be handled by simple cubic interpolation.
23185 The prescreener is trained to know whether cubic interpolation will
23186 be sufficient for a pixel or whether it should be predicted by the
23187 predictor nn. The computational complexity of the prescreener nn
23188 is much less than that of the predictor nn. Since most pixels can
23189 be handled by cubic interpolation, using the prescreener generally
23190 results in much faster processing. The prescreener is pretty
23191 accurate, so the difference between using it and not using it is
23192 almost always unnoticeable.
23193
23194 Can be one of the following:
23195
23196 none
23197 original
23198 new
23199 new2
23200 new3
23201
23202 Default is "new".
23203
23204 Commands
23205
23206 This filter supports same commands as options, excluding weights
23207 option.
23208
23209 noformat
23210 Force libavfilter not to use any of the specified pixel formats for the
23211 input to the next filter.
23212
23213 It accepts the following parameters:
23214
23215 pix_fmts
23216 A '|'-separated list of pixel format names, such as
23217 pix_fmts=yuv420p|monow|rgb24".
23218
23219 Examples
23220
23221 • Force libavfilter to use a format different from yuv420p for the
23222 input to the vflip filter:
23223
23224 noformat=pix_fmts=yuv420p,vflip
23225
23226 • Convert the input video to any of the formats not contained in the
23227 list:
23228
23229 noformat=yuv420p|yuv444p|yuv410p
23230
23231 noise
23232 Add noise on video input frame.
23233
23234 The filter accepts the following options:
23235
23236 all_seed
23237 c0_seed
23238 c1_seed
23239 c2_seed
23240 c3_seed
23241 Set noise seed for specific pixel component or all pixel components
23242 in case of all_seed. Default value is 123457.
23243
23244 all_strength, alls
23245 c0_strength, c0s
23246 c1_strength, c1s
23247 c2_strength, c2s
23248 c3_strength, c3s
23249 Set noise strength for specific pixel component or all pixel
23250 components in case all_strength. Default value is 0. Allowed range
23251 is [0, 100].
23252
23253 all_flags, allf
23254 c0_flags, c0f
23255 c1_flags, c1f
23256 c2_flags, c2f
23257 c3_flags, c3f
23258 Set pixel component flags or set flags for all components if
23259 all_flags. Available values for component flags are:
23260
23261 a averaged temporal noise (smoother)
23262
23263 p mix random noise with a (semi)regular pattern
23264
23265 t temporal noise (noise pattern changes between frames)
23266
23267 u uniform noise (gaussian otherwise)
23268
23269 Examples
23270
23271 Add temporal and uniform noise to input video:
23272
23273 noise=alls=20:allf=t+u
23274
23275 normalize
23276 Normalize RGB video (aka histogram stretching, contrast stretching).
23277 See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
23278
23279 For each channel of each frame, the filter computes the input range and
23280 maps it linearly to the user-specified output range. The output range
23281 defaults to the full dynamic range from pure black to pure white.
23282
23283 Temporal smoothing can be used on the input range to reduce flickering
23284 (rapid changes in brightness) caused when small dark or bright objects
23285 enter or leave the scene. This is similar to the auto-exposure
23286 (automatic gain control) on a video camera, and, like a video camera,
23287 it may cause a period of over- or under-exposure of the video.
23288
23289 The R,G,B channels can be normalized independently, which may cause
23290 some color shifting, or linked together as a single channel, which
23291 prevents color shifting. Linked normalization preserves hue.
23292 Independent normalization does not, so it can be used to remove some
23293 color casts. Independent and linked normalization can be combined in
23294 any ratio.
23295
23296 The normalize filter accepts the following options:
23297
23298 blackpt
23299 whitept
23300 Colors which define the output range. The minimum input value is
23301 mapped to the blackpt. The maximum input value is mapped to the
23302 whitept. The defaults are black and white respectively. Specifying
23303 white for blackpt and black for whitept will give color-inverted,
23304 normalized video. Shades of grey can be used to reduce the dynamic
23305 range (contrast). Specifying saturated colors here can create some
23306 interesting effects.
23307
23308 smoothing
23309 The number of previous frames to use for temporal smoothing. The
23310 input range of each channel is smoothed using a rolling average
23311 over the current frame and the smoothing previous frames. The
23312 default is 0 (no temporal smoothing).
23313
23314 independence
23315 Controls the ratio of independent (color shifting) channel
23316 normalization to linked (color preserving) normalization. 0.0 is
23317 fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
23318 independent).
23319
23320 strength
23321 Overall strength of the filter. 1.0 is full strength. 0.0 is a
23322 rather expensive no-op. Defaults to 1.0 (full strength).
23323
23324 Commands
23325
23326 This filter supports same commands as options, excluding smoothing
23327 option. The command accepts the same syntax of the corresponding
23328 option.
23329
23330 If the specified expression is not valid, it is kept at its current
23331 value.
23332
23333 Examples
23334
23335 Stretch video contrast to use the full dynamic range, with no temporal
23336 smoothing; may flicker depending on the source content:
23337
23338 normalize=blackpt=black:whitept=white:smoothing=0
23339
23340 As above, but with 50 frames of temporal smoothing; flicker should be
23341 reduced, depending on the source content:
23342
23343 normalize=blackpt=black:whitept=white:smoothing=50
23344
23345 As above, but with hue-preserving linked channel normalization:
23346
23347 normalize=blackpt=black:whitept=white:smoothing=50:independence=0
23348
23349 As above, but with half strength:
23350
23351 normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
23352
23353 Map the darkest input color to red, the brightest input color to cyan:
23354
23355 normalize=blackpt=red:whitept=cyan
23356
23357 null
23358 Pass the video source unchanged to the output.
23359
23360 ocr
23361 Optical Character Recognition
23362
23363 This filter uses Tesseract for optical character recognition. To enable
23364 compilation of this filter, you need to configure FFmpeg with
23365 "--enable-libtesseract".
23366
23367 It accepts the following options:
23368
23369 datapath
23370 Set datapath to tesseract data. Default is to use whatever was set
23371 at installation.
23372
23373 language
23374 Set language, default is "eng".
23375
23376 whitelist
23377 Set character whitelist.
23378
23379 blacklist
23380 Set character blacklist.
23381
23382 The filter exports recognized text as the frame metadata
23383 "lavfi.ocr.text". The filter exports confidence of recognized words as
23384 the frame metadata "lavfi.ocr.confidence".
23385
23386 ocv
23387 Apply a video transform using libopencv.
23388
23389 To enable this filter, install the libopencv library and headers and
23390 configure FFmpeg with "--enable-libopencv".
23391
23392 It accepts the following parameters:
23393
23394 filter_name
23395 The name of the libopencv filter to apply.
23396
23397 filter_params
23398 The parameters to pass to the libopencv filter. If not specified,
23399 the default values are assumed.
23400
23401 Refer to the official libopencv documentation for more precise
23402 information:
23403 <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
23404
23405 Several libopencv filters are supported; see the following subsections.
23406
23407 dilate
23408
23409 Dilate an image by using a specific structuring element. It
23410 corresponds to the libopencv function "cvDilate".
23411
23412 It accepts the parameters: struct_el|nb_iterations.
23413
23414 struct_el represents a structuring element, and has the syntax:
23415 colsxrows+anchor_xxanchor_y/shape
23416
23417 cols and rows represent the number of columns and rows of the
23418 structuring element, anchor_x and anchor_y the anchor point, and shape
23419 the shape for the structuring element. shape must be "rect", "cross",
23420 "ellipse", or "custom".
23421
23422 If the value for shape is "custom", it must be followed by a string of
23423 the form "=filename". The file with name filename is assumed to
23424 represent a binary image, with each printable character corresponding
23425 to a bright pixel. When a custom shape is used, cols and rows are
23426 ignored, the number or columns and rows of the read file are assumed
23427 instead.
23428
23429 The default value for struct_el is "3x3+0x0/rect".
23430
23431 nb_iterations specifies the number of times the transform is applied to
23432 the image, and defaults to 1.
23433
23434 Some examples:
23435
23436 # Use the default values
23437 ocv=dilate
23438
23439 # Dilate using a structuring element with a 5x5 cross, iterating two times
23440 ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
23441
23442 # Read the shape from the file diamond.shape, iterating two times.
23443 # The file diamond.shape may contain a pattern of characters like this
23444 # *
23445 # ***
23446 # *****
23447 # ***
23448 # *
23449 # The specified columns and rows are ignored
23450 # but the anchor point coordinates are not
23451 ocv=dilate:0x0+2x2/custom=diamond.shape|2
23452
23453 erode
23454
23455 Erode an image by using a specific structuring element. It corresponds
23456 to the libopencv function "cvErode".
23457
23458 It accepts the parameters: struct_el:nb_iterations, with the same
23459 syntax and semantics as the dilate filter.
23460
23461 smooth
23462
23463 Smooth the input video.
23464
23465 The filter takes the following parameters:
23466 type|param1|param2|param3|param4.
23467
23468 type is the type of smooth filter to apply, and must be one of the
23469 following values: "blur", "blur_no_scale", "median", "gaussian", or
23470 "bilateral". The default value is "gaussian".
23471
23472 The meaning of param1, param2, param3, and param4 depends on the smooth
23473 type. param1 and param2 accept integer positive values or 0. param3 and
23474 param4 accept floating point values.
23475
23476 The default value for param1 is 3. The default value for the other
23477 parameters is 0.
23478
23479 These parameters correspond to the parameters assigned to the libopencv
23480 function "cvSmooth".
23481
23482 oscilloscope
23483 2D Video Oscilloscope.
23484
23485 Useful to measure spatial impulse, step responses, chroma delays, etc.
23486
23487 It accepts the following parameters:
23488
23489 x Set scope center x position.
23490
23491 y Set scope center y position.
23492
23493 s Set scope size, relative to frame diagonal.
23494
23495 t Set scope tilt/rotation.
23496
23497 o Set trace opacity.
23498
23499 tx Set trace center x position.
23500
23501 ty Set trace center y position.
23502
23503 tw Set trace width, relative to width of frame.
23504
23505 th Set trace height, relative to height of frame.
23506
23507 c Set which components to trace. By default it traces first three
23508 components.
23509
23510 g Draw trace grid. By default is enabled.
23511
23512 st Draw some statistics. By default is enabled.
23513
23514 sc Draw scope. By default is enabled.
23515
23516 Commands
23517
23518 This filter supports same commands as options. The command accepts the
23519 same syntax of the corresponding option.
23520
23521 If the specified expression is not valid, it is kept at its current
23522 value.
23523
23524 Examples
23525
23526 • Inspect full first row of video frame.
23527
23528 oscilloscope=x=0.5:y=0:s=1
23529
23530 • Inspect full last row of video frame.
23531
23532 oscilloscope=x=0.5:y=1:s=1
23533
23534 • Inspect full 5th line of video frame of height 1080.
23535
23536 oscilloscope=x=0.5:y=5/1080:s=1
23537
23538 • Inspect full last column of video frame.
23539
23540 oscilloscope=x=1:y=0.5:s=1:t=1
23541
23542 overlay
23543 Overlay one video on top of another.
23544
23545 It takes two inputs and has one output. The first input is the "main"
23546 video on which the second input is overlaid.
23547
23548 It accepts the following parameters:
23549
23550 A description of the accepted options follows.
23551
23552 x
23553 y Set the expression for the x and y coordinates of the overlaid
23554 video on the main video. Default value is "0" for both expressions.
23555 In case the expression is invalid, it is set to a huge value
23556 (meaning that the overlay will not be displayed within the output
23557 visible area).
23558
23559 eof_action
23560 See framesync.
23561
23562 eval
23563 Set when the expressions for x, and y are evaluated.
23564
23565 It accepts the following values:
23566
23567 init
23568 only evaluate expressions once during the filter initialization
23569 or when a command is processed
23570
23571 frame
23572 evaluate expressions for each incoming frame
23573
23574 Default value is frame.
23575
23576 shortest
23577 See framesync.
23578
23579 format
23580 Set the format for the output video.
23581
23582 It accepts the following values:
23583
23584 yuv420
23585 force YUV420 output
23586
23587 yuv420p10
23588 force YUV420p10 output
23589
23590 yuv422
23591 force YUV422 output
23592
23593 yuv422p10
23594 force YUV422p10 output
23595
23596 yuv444
23597 force YUV444 output
23598
23599 rgb force packed RGB output
23600
23601 gbrp
23602 force planar RGB output
23603
23604 auto
23605 automatically pick format
23606
23607 Default value is yuv420.
23608
23609 repeatlast
23610 See framesync.
23611
23612 alpha
23613 Set format of alpha of the overlaid video, it can be straight or
23614 premultiplied. Default is straight.
23615
23616 The x, and y expressions can contain the following parameters.
23617
23618 main_w, W
23619 main_h, H
23620 The main input width and height.
23621
23622 overlay_w, w
23623 overlay_h, h
23624 The overlay input width and height.
23625
23626 x
23627 y The computed values for x and y. They are evaluated for each new
23628 frame.
23629
23630 hsub
23631 vsub
23632 horizontal and vertical chroma subsample values of the output
23633 format. For example for the pixel format "yuv422p" hsub is 2 and
23634 vsub is 1.
23635
23636 n the number of input frame, starting from 0
23637
23638 pos the position in the file of the input frame, NAN if unknown
23639
23640 t The timestamp, expressed in seconds. It's NAN if the input
23641 timestamp is unknown.
23642
23643 This filter also supports the framesync options.
23644
23645 Note that the n, pos, t variables are available only when evaluation is
23646 done per frame, and will evaluate to NAN when eval is set to init.
23647
23648 Be aware that frames are taken from each input video in timestamp
23649 order, hence, if their initial timestamps differ, it is a good idea to
23650 pass the two inputs through a setpts=PTS-STARTPTS filter to have them
23651 begin in the same zero timestamp, as the example for the movie filter
23652 does.
23653
23654 You can chain together more overlays but you should test the efficiency
23655 of such approach.
23656
23657 Commands
23658
23659 This filter supports the following commands:
23660
23661 x
23662 y Modify the x and y of the overlay input. The command accepts the
23663 same syntax of the corresponding option.
23664
23665 If the specified expression is not valid, it is kept at its current
23666 value.
23667
23668 Examples
23669
23670 • Draw the overlay at 10 pixels from the bottom right corner of the
23671 main video:
23672
23673 overlay=main_w-overlay_w-10:main_h-overlay_h-10
23674
23675 Using named options the example above becomes:
23676
23677 overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
23678
23679 • Insert a transparent PNG logo in the bottom left corner of the
23680 input, using the ffmpeg tool with the "-filter_complex" option:
23681
23682 ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
23683
23684 • Insert 2 different transparent PNG logos (second logo on bottom
23685 right corner) using the ffmpeg tool:
23686
23687 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
23688
23689 • Add a transparent color layer on top of the main video; "WxH" must
23690 specify the size of the main input to the overlay filter:
23691
23692 color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
23693
23694 • Play an original video and a filtered version (here with the
23695 deshake filter) side by side using the ffplay tool:
23696
23697 ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
23698
23699 The above command is the same as:
23700
23701 ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
23702
23703 • Make a sliding overlay appearing from the left to the right top
23704 part of the screen starting since time 2:
23705
23706 overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
23707
23708 • Compose output by putting two input videos side to side:
23709
23710 ffmpeg -i left.avi -i right.avi -filter_complex "
23711 nullsrc=size=200x100 [background];
23712 [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
23713 [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
23714 [background][left] overlay=shortest=1 [background+left];
23715 [background+left][right] overlay=shortest=1:x=100 [left+right]
23716 "
23717
23718 • Mask 10-20 seconds of a video by applying the delogo filter to a
23719 section
23720
23721 ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
23722 -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]'
23723 masked.avi
23724
23725 • Chain several overlays in cascade:
23726
23727 nullsrc=s=200x200 [bg];
23728 testsrc=s=100x100, split=4 [in0][in1][in2][in3];
23729 [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0];
23730 [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1];
23731 [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2];
23732 [in3] null, [mid2] overlay=100:100 [out0]
23733
23734 overlay_cuda
23735 Overlay one video on top of another.
23736
23737 This is the CUDA variant of the overlay filter. It only accepts CUDA
23738 frames. The underlying input pixel formats have to match.
23739
23740 It takes two inputs and has one output. The first input is the "main"
23741 video on which the second input is overlaid.
23742
23743 It accepts the following parameters:
23744
23745 x
23746 y Set expressions for the x and y coordinates of the overlaid video
23747 on the main video.
23748
23749 They can contain the following parameters:
23750
23751 main_w, W
23752 main_h, H
23753 The main input width and height.
23754
23755 overlay_w, w
23756 overlay_h, h
23757 The overlay input width and height.
23758
23759 x
23760 y The computed values for x and y. They are evaluated for each
23761 new frame.
23762
23763 n The ordinal index of the main input frame, starting from 0.
23764
23765 pos The byte offset position in the file of the main input frame,
23766 NAN if unknown.
23767
23768 t The timestamp of the main input frame, expressed in seconds,
23769 NAN if unknown.
23770
23771 Default value is "0" for both expressions.
23772
23773 eval
23774 Set when the expressions for x and y are evaluated.
23775
23776 It accepts the following values:
23777
23778 init
23779 Evaluate expressions once during filter initialization or when
23780 a command is processed.
23781
23782 frame
23783 Evaluate expressions for each incoming frame
23784
23785 Default value is frame.
23786
23787 eof_action
23788 See framesync.
23789
23790 shortest
23791 See framesync.
23792
23793 repeatlast
23794 See framesync.
23795
23796 This filter also supports the framesync options.
23797
23798 owdenoise
23799 Apply Overcomplete Wavelet denoiser.
23800
23801 The filter accepts the following options:
23802
23803 depth
23804 Set depth.
23805
23806 Larger depth values will denoise lower frequency components more,
23807 but slow down filtering.
23808
23809 Must be an int in the range 8-16, default is 8.
23810
23811 luma_strength, ls
23812 Set luma strength.
23813
23814 Must be a double value in the range 0-1000, default is 1.0.
23815
23816 chroma_strength, cs
23817 Set chroma strength.
23818
23819 Must be a double value in the range 0-1000, default is 1.0.
23820
23821 pad
23822 Add paddings to the input image, and place the original input at the
23823 provided x, y coordinates.
23824
23825 It accepts the following parameters:
23826
23827 width, w
23828 height, h
23829 Specify an expression for the size of the output image with the
23830 paddings added. If the value for width or height is 0, the
23831 corresponding input size is used for the output.
23832
23833 The width expression can reference the value set by the height
23834 expression, and vice versa.
23835
23836 The default value of width and height is 0.
23837
23838 x
23839 y Specify the offsets to place the input image at within the padded
23840 area, with respect to the top/left border of the output image.
23841
23842 The x expression can reference the value set by the y expression,
23843 and vice versa.
23844
23845 The default value of x and y is 0.
23846
23847 If x or y evaluate to a negative number, they'll be changed so the
23848 input image is centered on the padded area.
23849
23850 color
23851 Specify the color of the padded area. For the syntax of this
23852 option, check the "Color" section in the ffmpeg-utils manual.
23853
23854 The default value of color is "black".
23855
23856 eval
23857 Specify when to evaluate width, height, x and y expression.
23858
23859 It accepts the following values:
23860
23861 init
23862 Only evaluate expressions once during the filter initialization
23863 or when a command is processed.
23864
23865 frame
23866 Evaluate expressions for each incoming frame.
23867
23868 Default value is init.
23869
23870 aspect
23871 Pad to aspect instead to a resolution.
23872
23873 The value for the width, height, x, and y options are expressions
23874 containing the following constants:
23875
23876 in_w
23877 in_h
23878 The input video width and height.
23879
23880 iw
23881 ih These are the same as in_w and in_h.
23882
23883 out_w
23884 out_h
23885 The output width and height (the size of the padded area), as
23886 specified by the width and height expressions.
23887
23888 ow
23889 oh These are the same as out_w and out_h.
23890
23891 x
23892 y The x and y offsets as specified by the x and y expressions, or NAN
23893 if not yet specified.
23894
23895 a same as iw / ih
23896
23897 sar input sample aspect ratio
23898
23899 dar input display aspect ratio, it is the same as (iw / ih) * sar
23900
23901 hsub
23902 vsub
23903 The horizontal and vertical chroma subsample values. For example
23904 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
23905
23906 Examples
23907
23908 • Add paddings with the color "violet" to the input video. The output
23909 video size is 640x480, and the top-left corner of the input video
23910 is placed at column 0, row 40
23911
23912 pad=640:480:0:40:violet
23913
23914 The example above is equivalent to the following command:
23915
23916 pad=width=640:height=480:x=0:y=40:color=violet
23917
23918 • Pad the input to get an output with dimensions increased by 3/2,
23919 and put the input video at the center of the padded area:
23920
23921 pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
23922
23923 • Pad the input to get a squared output with size equal to the
23924 maximum value between the input width and height, and put the input
23925 video at the center of the padded area:
23926
23927 pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
23928
23929 • Pad the input to get a final w/h ratio of 16:9:
23930
23931 pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
23932
23933 • In case of anamorphic video, in order to set the output display
23934 aspect correctly, it is necessary to use sar in the expression,
23935 according to the relation:
23936
23937 (ih * X / ih) * sar = output_dar
23938 X = output_dar / sar
23939
23940 Thus the previous example needs to be modified to:
23941
23942 pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
23943
23944 • Double the output size and put the input video in the bottom-right
23945 corner of the output padded area:
23946
23947 pad="2*iw:2*ih:ow-iw:oh-ih"
23948
23949 palettegen
23950 Generate one palette for a whole video stream.
23951
23952 It accepts the following options:
23953
23954 max_colors
23955 Set the maximum number of colors to quantize in the palette. Note:
23956 the palette will still contain 256 colors; the unused palette
23957 entries will be black.
23958
23959 reserve_transparent
23960 Create a palette of 255 colors maximum and reserve the last one for
23961 transparency. Reserving the transparency color is useful for GIF
23962 optimization. If not set, the maximum of colors in the palette
23963 will be 256. You probably want to disable this option for a
23964 standalone image. Set by default.
23965
23966 transparency_color
23967 Set the color that will be used as background for transparency.
23968
23969 stats_mode
23970 Set statistics mode.
23971
23972 It accepts the following values:
23973
23974 full
23975 Compute full frame histograms.
23976
23977 diff
23978 Compute histograms only for the part that differs from previous
23979 frame. This might be relevant to give more importance to the
23980 moving part of your input if the background is static.
23981
23982 single
23983 Compute new histogram for each frame.
23984
23985 Default value is full.
23986
23987 use_alpha
23988 Create a palette of colors with alpha components. Setting this,
23989 will automatically disable 'reserve_transparent'.
23990
23991 The filter also exports the frame metadata "lavfi.color_quant_ratio"
23992 ("nb_color_in / nb_color_out") which you can use to evaluate the degree
23993 of color quantization of the palette. This information is also visible
23994 at info logging level.
23995
23996 Examples
23997
23998 • Generate a representative palette of a given video using ffmpeg:
23999
24000 ffmpeg -i input.mkv -vf palettegen palette.png
24001
24002 paletteuse
24003 Use a palette to downsample an input video stream.
24004
24005 The filter takes two inputs: one video stream and a palette. The
24006 palette must be a 256 pixels image.
24007
24008 It accepts the following options:
24009
24010 dither
24011 Select dithering mode. Available algorithms are:
24012
24013 bayer
24014 Ordered 8x8 bayer dithering (deterministic)
24015
24016 heckbert
24017 Dithering as defined by Paul Heckbert in 1982 (simple error
24018 diffusion). Note: this dithering is sometimes considered
24019 "wrong" and is included as a reference.
24020
24021 floyd_steinberg
24022 Floyd and Steingberg dithering (error diffusion)
24023
24024 sierra2
24025 Frankie Sierra dithering v2 (error diffusion)
24026
24027 sierra2_4a
24028 Frankie Sierra dithering v2 "Lite" (error diffusion)
24029
24030 Default is sierra2_4a.
24031
24032 bayer_scale
24033 When bayer dithering is selected, this option defines the scale of
24034 the pattern (how much the crosshatch pattern is visible). A low
24035 value means more visible pattern for less banding, and higher value
24036 means less visible pattern at the cost of more banding.
24037
24038 The option must be an integer value in the range [0,5]. Default is
24039 2.
24040
24041 diff_mode
24042 If set, define the zone to process
24043
24044 rectangle
24045 Only the changing rectangle will be reprocessed. This is
24046 similar to GIF cropping/offsetting compression mechanism. This
24047 option can be useful for speed if only a part of the image is
24048 changing, and has use cases such as limiting the scope of the
24049 error diffusal dither to the rectangle that bounds the moving
24050 scene (it leads to more deterministic output if the scene
24051 doesn't change much, and as a result less moving noise and
24052 better GIF compression).
24053
24054 Default is none.
24055
24056 new Take new palette for each output frame.
24057
24058 alpha_threshold
24059 Sets the alpha threshold for transparency. Alpha values above this
24060 threshold will be treated as completely opaque, and values below
24061 this threshold will be treated as completely transparent.
24062
24063 The option must be an integer value in the range [0,255]. Default
24064 is 128.
24065
24066 use_alpha
24067 Apply the palette by taking alpha values into account. Only useful
24068 with palettes that are containing multiple colors with alpha
24069 components. Setting this will automatically disable
24070 'alpha_treshold'.
24071
24072 Examples
24073
24074 • Use a palette (generated for example with palettegen) to encode a
24075 GIF using ffmpeg:
24076
24077 ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
24078
24079 perspective
24080 Correct perspective of video not recorded perpendicular to the screen.
24081
24082 A description of the accepted parameters follows.
24083
24084 x0
24085 y0
24086 x1
24087 y1
24088 x2
24089 y2
24090 x3
24091 y3 Set coordinates expression for top left, top right, bottom left and
24092 bottom right corners. Default values are "0:0:W:0:0:H:W:H" with
24093 which perspective will remain unchanged. If the "sense" option is
24094 set to "source", then the specified points will be sent to the
24095 corners of the destination. If the "sense" option is set to
24096 "destination", then the corners of the source will be sent to the
24097 specified coordinates.
24098
24099 The expressions can use the following variables:
24100
24101 W
24102 H the width and height of video frame.
24103
24104 in Input frame count.
24105
24106 on Output frame count.
24107
24108 interpolation
24109 Set interpolation for perspective correction.
24110
24111 It accepts the following values:
24112
24113 linear
24114 cubic
24115
24116 Default value is linear.
24117
24118 sense
24119 Set interpretation of coordinate options.
24120
24121 It accepts the following values:
24122
24123 0, source
24124 Send point in the source specified by the given coordinates to
24125 the corners of the destination.
24126
24127 1, destination
24128 Send the corners of the source to the point in the destination
24129 specified by the given coordinates.
24130
24131 Default value is source.
24132
24133 eval
24134 Set when the expressions for coordinates x0,y0,...x3,y3 are
24135 evaluated.
24136
24137 It accepts the following values:
24138
24139 init
24140 only evaluate expressions once during the filter initialization
24141 or when a command is processed
24142
24143 frame
24144 evaluate expressions for each incoming frame
24145
24146 Default value is init.
24147
24148 phase
24149 Delay interlaced video by one field time so that the field order
24150 changes.
24151
24152 The intended use is to fix PAL movies that have been captured with the
24153 opposite field order to the film-to-video transfer.
24154
24155 A description of the accepted parameters follows.
24156
24157 mode
24158 Set phase mode.
24159
24160 It accepts the following values:
24161
24162 t Capture field order top-first, transfer bottom-first. Filter
24163 will delay the bottom field.
24164
24165 b Capture field order bottom-first, transfer top-first. Filter
24166 will delay the top field.
24167
24168 p Capture and transfer with the same field order. This mode only
24169 exists for the documentation of the other options to refer to,
24170 but if you actually select it, the filter will faithfully do
24171 nothing.
24172
24173 a Capture field order determined automatically by field flags,
24174 transfer opposite. Filter selects among t and b modes on a
24175 frame by frame basis using field flags. If no field information
24176 is available, then this works just like u.
24177
24178 u Capture unknown or varying, transfer opposite. Filter selects
24179 among t and b on a frame by frame basis by analyzing the images
24180 and selecting the alternative that produces best match between
24181 the fields.
24182
24183 T Capture top-first, transfer unknown or varying. Filter selects
24184 among t and p using image analysis.
24185
24186 B Capture bottom-first, transfer unknown or varying. Filter
24187 selects among b and p using image analysis.
24188
24189 A Capture determined by field flags, transfer unknown or varying.
24190 Filter selects among t, b and p using field flags and image
24191 analysis. If no field information is available, then this works
24192 just like U. This is the default mode.
24193
24194 U Both capture and transfer unknown or varying. Filter selects
24195 among t, b and p using image analysis only.
24196
24197 Commands
24198
24199 This filter supports the all above options as commands.
24200
24201 photosensitivity
24202 Reduce various flashes in video, so to help users with epilepsy.
24203
24204 It accepts the following options:
24205
24206 frames, f
24207 Set how many frames to use when filtering. Default is 30.
24208
24209 threshold, t
24210 Set detection threshold factor. Default is 1. Lower is stricter.
24211
24212 skip
24213 Set how many pixels to skip when sampling frames. Default is 1.
24214 Allowed range is from 1 to 1024.
24215
24216 bypass
24217 Leave frames unchanged. Default is disabled.
24218
24219 pixdesctest
24220 Pixel format descriptor test filter, mainly useful for internal
24221 testing. The output video should be equal to the input video.
24222
24223 For example:
24224
24225 format=monow, pixdesctest
24226
24227 can be used to test the monowhite pixel format descriptor definition.
24228
24229 pixscope
24230 Display sample values of color channels. Mainly useful for checking
24231 color and levels. Minimum supported resolution is 640x480.
24232
24233 The filters accept the following options:
24234
24235 x Set scope X position, relative offset on X axis.
24236
24237 y Set scope Y position, relative offset on Y axis.
24238
24239 w Set scope width.
24240
24241 h Set scope height.
24242
24243 o Set window opacity. This window also holds statistics about pixel
24244 area.
24245
24246 wx Set window X position, relative offset on X axis.
24247
24248 wy Set window Y position, relative offset on Y axis.
24249
24250 Commands
24251
24252 This filter supports same commands as options.
24253
24254 pp
24255 Enable the specified chain of postprocessing subfilters using
24256 libpostproc. This library should be automatically selected with a GPL
24257 build ("--enable-gpl"). Subfilters must be separated by '/' and can be
24258 disabled by prepending a '-'. Each subfilter and some options have a
24259 short and a long name that can be used interchangeably, i.e. dr/dering
24260 are the same.
24261
24262 The filters accept the following options:
24263
24264 subfilters
24265 Set postprocessing subfilters string.
24266
24267 All subfilters share common options to determine their scope:
24268
24269 a/autoq
24270 Honor the quality commands for this subfilter.
24271
24272 c/chrom
24273 Do chrominance filtering, too (default).
24274
24275 y/nochrom
24276 Do luminance filtering only (no chrominance).
24277
24278 n/noluma
24279 Do chrominance filtering only (no luminance).
24280
24281 These options can be appended after the subfilter name, separated by a
24282 '|'.
24283
24284 Available subfilters are:
24285
24286 hb/hdeblock[|difference[|flatness]]
24287 Horizontal deblocking filter
24288
24289 difference
24290 Difference factor where higher values mean more deblocking
24291 (default: 32).
24292
24293 flatness
24294 Flatness threshold where lower values mean more deblocking
24295 (default: 39).
24296
24297 vb/vdeblock[|difference[|flatness]]
24298 Vertical deblocking filter
24299
24300 difference
24301 Difference factor where higher values mean more deblocking
24302 (default: 32).
24303
24304 flatness
24305 Flatness threshold where lower values mean more deblocking
24306 (default: 39).
24307
24308 ha/hadeblock[|difference[|flatness]]
24309 Accurate horizontal deblocking filter
24310
24311 difference
24312 Difference factor where higher values mean more deblocking
24313 (default: 32).
24314
24315 flatness
24316 Flatness threshold where lower values mean more deblocking
24317 (default: 39).
24318
24319 va/vadeblock[|difference[|flatness]]
24320 Accurate vertical deblocking filter
24321
24322 difference
24323 Difference factor where higher values mean more deblocking
24324 (default: 32).
24325
24326 flatness
24327 Flatness threshold where lower values mean more deblocking
24328 (default: 39).
24329
24330 The horizontal and vertical deblocking filters share the difference and
24331 flatness values so you cannot set different horizontal and vertical
24332 thresholds.
24333
24334 h1/x1hdeblock
24335 Experimental horizontal deblocking filter
24336
24337 v1/x1vdeblock
24338 Experimental vertical deblocking filter
24339
24340 dr/dering
24341 Deringing filter
24342
24343 tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
24344 reducer
24345 threshold1
24346 larger -> stronger filtering
24347
24348 threshold2
24349 larger -> stronger filtering
24350
24351 threshold3
24352 larger -> stronger filtering
24353
24354 al/autolevels[:f/fullyrange], automatic brightness / contrast
24355 correction
24356 f/fullyrange
24357 Stretch luminance to "0-255".
24358
24359 lb/linblenddeint
24360 Linear blend deinterlacing filter that deinterlaces the given block
24361 by filtering all lines with a "(1 2 1)" filter.
24362
24363 li/linipoldeint
24364 Linear interpolating deinterlacing filter that deinterlaces the
24365 given block by linearly interpolating every second line.
24366
24367 ci/cubicipoldeint
24368 Cubic interpolating deinterlacing filter deinterlaces the given
24369 block by cubically interpolating every second line.
24370
24371 md/mediandeint
24372 Median deinterlacing filter that deinterlaces the given block by
24373 applying a median filter to every second line.
24374
24375 fd/ffmpegdeint
24376 FFmpeg deinterlacing filter that deinterlaces the given block by
24377 filtering every second line with a "(-1 4 2 4 -1)" filter.
24378
24379 l5/lowpass5
24380 Vertically applied FIR lowpass deinterlacing filter that
24381 deinterlaces the given block by filtering all lines with a "(-1 2 6
24382 2 -1)" filter.
24383
24384 fq/forceQuant[|quantizer]
24385 Overrides the quantizer table from the input with the constant
24386 quantizer you specify.
24387
24388 quantizer
24389 Quantizer to use
24390
24391 de/default
24392 Default pp filter combination ("hb|a,vb|a,dr|a")
24393
24394 fa/fast
24395 Fast pp filter combination ("h1|a,v1|a,dr|a")
24396
24397 ac High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
24398
24399 Examples
24400
24401 • Apply horizontal and vertical deblocking, deringing and automatic
24402 brightness/contrast:
24403
24404 pp=hb/vb/dr/al
24405
24406 • Apply default filters without brightness/contrast correction:
24407
24408 pp=de/-al
24409
24410 • Apply default filters and temporal denoiser:
24411
24412 pp=default/tmpnoise|1|2|3
24413
24414 • Apply deblocking on luminance only, and switch vertical deblocking
24415 on or off automatically depending on available CPU time:
24416
24417 pp=hb|y/vb|a
24418
24419 pp7
24420 Apply Postprocessing filter 7. It is variant of the spp filter, similar
24421 to spp = 6 with 7 point DCT, where only the center sample is used after
24422 IDCT.
24423
24424 The filter accepts the following options:
24425
24426 qp Force a constant quantization parameter. It accepts an integer in
24427 range 0 to 63. If not set, the filter will use the QP from the
24428 video stream (if available).
24429
24430 mode
24431 Set thresholding mode. Available modes are:
24432
24433 hard
24434 Set hard thresholding.
24435
24436 soft
24437 Set soft thresholding (better de-ringing effect, but likely
24438 blurrier).
24439
24440 medium
24441 Set medium thresholding (good results, default).
24442
24443 premultiply
24444 Apply alpha premultiply effect to input video stream using first plane
24445 of second stream as alpha.
24446
24447 Both streams must have same dimensions and same pixel format.
24448
24449 The filter accepts the following option:
24450
24451 planes
24452 Set which planes will be processed, unprocessed planes will be
24453 copied. By default value 0xf, all planes will be processed.
24454
24455 inplace
24456 Do not require 2nd input for processing, instead use alpha plane
24457 from input stream.
24458
24459 prewitt
24460 Apply prewitt operator to input video stream.
24461
24462 The filter accepts the following option:
24463
24464 planes
24465 Set which planes will be processed, unprocessed planes will be
24466 copied. By default value 0xf, all planes will be processed.
24467
24468 scale
24469 Set value which will be multiplied with filtered result.
24470
24471 delta
24472 Set value which will be added to filtered result.
24473
24474 Commands
24475
24476 This filter supports the all above options as commands.
24477
24478 pseudocolor
24479 Alter frame colors in video with pseudocolors.
24480
24481 This filter accepts the following options:
24482
24483 c0 set pixel first component expression
24484
24485 c1 set pixel second component expression
24486
24487 c2 set pixel third component expression
24488
24489 c3 set pixel fourth component expression, corresponds to the alpha
24490 component
24491
24492 index, i
24493 set component to use as base for altering colors
24494
24495 preset, p
24496 Pick one of built-in LUTs. By default is set to none.
24497
24498 Available LUTs:
24499
24500 magma
24501 inferno
24502 plasma
24503 viridis
24504 turbo
24505 cividis
24506 range1
24507 range2
24508 shadows
24509 highlights
24510 solar
24511 nominal
24512 preferred
24513 total
24514 opacity
24515 Set opacity of output colors. Allowed range is from 0 to 1.
24516 Default value is set to 1.
24517
24518 Each of the expression options specifies the expression to use for
24519 computing the lookup table for the corresponding pixel component
24520 values.
24521
24522 The expressions can contain the following constants and functions:
24523
24524 w
24525 h The input width and height.
24526
24527 val The input value for the pixel component.
24528
24529 ymin, umin, vmin, amin
24530 The minimum allowed component value.
24531
24532 ymax, umax, vmax, amax
24533 The maximum allowed component value.
24534
24535 All expressions default to "val".
24536
24537 Commands
24538
24539 This filter supports the all above options as commands.
24540
24541 Examples
24542
24543 • Change too high luma values to gradient:
24544
24545 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'"
24546
24547 psnr
24548 Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
24549 Ratio) between two input videos.
24550
24551 This filter takes in input two input videos, the first input is
24552 considered the "main" source and is passed unchanged to the output. The
24553 second input is used as a "reference" video for computing the PSNR.
24554
24555 Both video inputs must have the same resolution and pixel format for
24556 this filter to work correctly. Also it assumes that both inputs have
24557 the same number of frames, which are compared one by one.
24558
24559 The obtained average PSNR is printed through the logging system.
24560
24561 The filter stores the accumulated MSE (mean squared error) of each
24562 frame, and at the end of the processing it is averaged across all
24563 frames equally, and the following formula is applied to obtain the
24564 PSNR:
24565
24566 PSNR = 10*log10(MAX^2/MSE)
24567
24568 Where MAX is the average of the maximum values of each component of the
24569 image.
24570
24571 The description of the accepted parameters follows.
24572
24573 stats_file, f
24574 If specified the filter will use the named file to save the PSNR of
24575 each individual frame. When filename equals "-" the data is sent to
24576 standard output.
24577
24578 stats_version
24579 Specifies which version of the stats file format to use. Details of
24580 each format are written below. Default value is 1.
24581
24582 stats_add_max
24583 Determines whether the max value is output to the stats log.
24584 Default value is 0. Requires stats_version >= 2. If this is set
24585 and stats_version < 2, the filter will return an error.
24586
24587 This filter also supports the framesync options.
24588
24589 The file printed if stats_file is selected, contains a sequence of
24590 key/value pairs of the form key:value for each compared couple of
24591 frames.
24592
24593 If a stats_version greater than 1 is specified, a header line precedes
24594 the list of per-frame-pair stats, with key value pairs following the
24595 frame format with the following parameters:
24596
24597 psnr_log_version
24598 The version of the log file format. Will match stats_version.
24599
24600 fields
24601 A comma separated list of the per-frame-pair parameters included in
24602 the log.
24603
24604 A description of each shown per-frame-pair parameter follows:
24605
24606 n sequential number of the input frame, starting from 1
24607
24608 mse_avg
24609 Mean Square Error pixel-by-pixel average difference of the compared
24610 frames, averaged over all the image components.
24611
24612 mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
24613 Mean Square Error pixel-by-pixel average difference of the compared
24614 frames for the component specified by the suffix.
24615
24616 psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
24617 Peak Signal to Noise ratio of the compared frames for the component
24618 specified by the suffix.
24619
24620 max_avg, max_y, max_u, max_v
24621 Maximum allowed value for each channel, and average over all
24622 channels.
24623
24624 Examples
24625
24626 • For example:
24627
24628 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
24629 [main][ref] psnr="stats_file=stats.log" [out]
24630
24631 On this example the input file being processed is compared with the
24632 reference file ref_movie.mpg. The PSNR of each individual frame is
24633 stored in stats.log.
24634
24635 • Another example with different containers:
24636
24637 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 -
24638
24639 pullup
24640 Pulldown reversal (inverse telecine) filter, capable of handling mixed
24641 hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
24642 progressive content.
24643
24644 The pullup filter is designed to take advantage of future context in
24645 making its decisions. This filter is stateless in the sense that it
24646 does not lock onto a pattern to follow, but it instead looks forward to
24647 the following fields in order to identify matches and rebuild
24648 progressive frames.
24649
24650 To produce content with an even framerate, insert the fps filter after
24651 pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
24652 "fps=24" for 30fps and the (rare) telecined 25fps input.
24653
24654 The filter accepts the following options:
24655
24656 jl
24657 jr
24658 jt
24659 jb These options set the amount of "junk" to ignore at the left,
24660 right, top, and bottom of the image, respectively. Left and right
24661 are in units of 8 pixels, while top and bottom are in units of 2
24662 lines. The default is 8 pixels on each side.
24663
24664 sb Set the strict breaks. Setting this option to 1 will reduce the
24665 chances of filter generating an occasional mismatched frame, but it
24666 may also cause an excessive number of frames to be dropped during
24667 high motion sequences. Conversely, setting it to -1 will make
24668 filter match fields more easily. This may help processing of video
24669 where there is slight blurring between the fields, but may also
24670 cause there to be interlaced frames in the output. Default value
24671 is 0.
24672
24673 mp Set the metric plane to use. It accepts the following values:
24674
24675 l Use luma plane.
24676
24677 u Use chroma blue plane.
24678
24679 v Use chroma red plane.
24680
24681 This option may be set to use chroma plane instead of the default
24682 luma plane for doing filter's computations. This may improve
24683 accuracy on very clean source material, but more likely will
24684 decrease accuracy, especially if there is chroma noise (rainbow
24685 effect) or any grayscale video. The main purpose of setting mp to
24686 a chroma plane is to reduce CPU load and make pullup usable in
24687 realtime on slow machines.
24688
24689 For best results (without duplicated frames in the output file) it is
24690 necessary to change the output frame rate. For example, to inverse
24691 telecine NTSC input:
24692
24693 ffmpeg -i input -vf pullup -r 24000/1001 ...
24694
24695 qp
24696 Change video quantization parameters (QP).
24697
24698 The filter accepts the following option:
24699
24700 qp Set expression for quantization parameter.
24701
24702 The expression is evaluated through the eval API and can contain, among
24703 others, the following constants:
24704
24705 known
24706 1 if index is not 129, 0 otherwise.
24707
24708 qp Sequential index starting from -129 to 128.
24709
24710 Examples
24711
24712 • Some equation like:
24713
24714 qp=2+2*sin(PI*qp)
24715
24716 random
24717 Flush video frames from internal cache of frames into a random order.
24718 No frame is discarded. Inspired by frei0r nervous filter.
24719
24720 frames
24721 Set size in number of frames of internal cache, in range from 2 to
24722 512. Default is 30.
24723
24724 seed
24725 Set seed for random number generator, must be an integer included
24726 between 0 and "UINT32_MAX". If not specified, or if explicitly set
24727 to less than 0, the filter will try to use a good random seed on a
24728 best effort basis.
24729
24730 readeia608
24731 Read closed captioning (EIA-608) information from the top lines of a
24732 video frame.
24733
24734 This filter adds frame metadata for "lavfi.readeia608.X.cc" and
24735 "lavfi.readeia608.X.line", where "X" is the number of the identified
24736 line with EIA-608 data (starting from 0). A description of each
24737 metadata value follows:
24738
24739 lavfi.readeia608.X.cc
24740 The two bytes stored as EIA-608 data (printed in hexadecimal).
24741
24742 lavfi.readeia608.X.line
24743 The number of the line on which the EIA-608 data was identified and
24744 read.
24745
24746 This filter accepts the following options:
24747
24748 scan_min
24749 Set the line to start scanning for EIA-608 data. Default is 0.
24750
24751 scan_max
24752 Set the line to end scanning for EIA-608 data. Default is 29.
24753
24754 spw Set the ratio of width reserved for sync code detection. Default
24755 is 0.27. Allowed range is "[0.1 - 0.7]".
24756
24757 chp Enable checking the parity bit. In the event of a parity error, the
24758 filter will output 0x00 for that character. Default is false.
24759
24760 lp Lowpass lines prior to further processing. Default is enabled.
24761
24762 Commands
24763
24764 This filter supports the all above options as commands.
24765
24766 Examples
24767
24768 • Output a csv with presentation time and the first two lines of
24769 identified EIA-608 captioning data.
24770
24771 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
24772
24773 readvitc
24774 Read vertical interval timecode (VITC) information from the top lines
24775 of a video frame.
24776
24777 The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
24778 timecode value, if a valid timecode has been detected. Further metadata
24779 key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
24780 data has been found or not.
24781
24782 This filter accepts the following options:
24783
24784 scan_max
24785 Set the maximum number of lines to scan for VITC data. If the value
24786 is set to "-1" the full video frame is scanned. Default is 45.
24787
24788 thr_b
24789 Set the luma threshold for black. Accepts float numbers in the
24790 range [0.0,1.0], default value is 0.2. The value must be equal or
24791 less than "thr_w".
24792
24793 thr_w
24794 Set the luma threshold for white. Accepts float numbers in the
24795 range [0.0,1.0], default value is 0.6. The value must be equal or
24796 greater than "thr_b".
24797
24798 Examples
24799
24800 • Detect and draw VITC data onto the video frame; if no valid VITC is
24801 detected, draw "--:--:--:--" as a placeholder:
24802
24803 ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
24804
24805 remap
24806 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
24807
24808 Destination pixel at position (X, Y) will be picked from source (x, y)
24809 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
24810 out of range, zero value for pixel will be used for destination pixel.
24811
24812 Xmap and Ymap input video streams must be of same dimensions. Output
24813 video stream will have Xmap/Ymap video stream dimensions. Xmap and
24814 Ymap input video streams are 16bit depth, single channel.
24815
24816 format
24817 Specify pixel format of output from this filter. Can be "color" or
24818 "gray". Default is "color".
24819
24820 fill
24821 Specify the color of the unmapped pixels. For the syntax of this
24822 option, check the "Color" section in the ffmpeg-utils manual.
24823 Default color is "black".
24824
24825 removegrain
24826 The removegrain filter is a spatial denoiser for progressive video.
24827
24828 m0 Set mode for the first plane.
24829
24830 m1 Set mode for the second plane.
24831
24832 m2 Set mode for the third plane.
24833
24834 m3 Set mode for the fourth plane.
24835
24836 Range of mode is from 0 to 24. Description of each mode follows:
24837
24838 0 Leave input plane unchanged. Default.
24839
24840 1 Clips the pixel with the minimum and maximum of the 8 neighbour
24841 pixels.
24842
24843 2 Clips the pixel with the second minimum and maximum of the 8
24844 neighbour pixels.
24845
24846 3 Clips the pixel with the third minimum and maximum of the 8
24847 neighbour pixels.
24848
24849 4 Clips the pixel with the fourth minimum and maximum of the 8
24850 neighbour pixels. This is equivalent to a median filter.
24851
24852 5 Line-sensitive clipping giving the minimal change.
24853
24854 6 Line-sensitive clipping, intermediate.
24855
24856 7 Line-sensitive clipping, intermediate.
24857
24858 8 Line-sensitive clipping, intermediate.
24859
24860 9 Line-sensitive clipping on a line where the neighbours pixels are
24861 the closest.
24862
24863 10 Replaces the target pixel with the closest neighbour.
24864
24865 11 [1 2 1] horizontal and vertical kernel blur.
24866
24867 12 Same as mode 11.
24868
24869 13 Bob mode, interpolates top field from the line where the neighbours
24870 pixels are the closest.
24871
24872 14 Bob mode, interpolates bottom field from the line where the
24873 neighbours pixels are the closest.
24874
24875 15 Bob mode, interpolates top field. Same as 13 but with a more
24876 complicated interpolation formula.
24877
24878 16 Bob mode, interpolates bottom field. Same as 14 but with a more
24879 complicated interpolation formula.
24880
24881 17 Clips the pixel with the minimum and maximum of respectively the
24882 maximum and minimum of each pair of opposite neighbour pixels.
24883
24884 18 Line-sensitive clipping using opposite neighbours whose greatest
24885 distance from the current pixel is minimal.
24886
24887 19 Replaces the pixel with the average of its 8 neighbours.
24888
24889 20 Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
24890
24891 21 Clips pixels using the averages of opposite neighbour.
24892
24893 22 Same as mode 21 but simpler and faster.
24894
24895 23 Small edge and halo removal, but reputed useless.
24896
24897 24 Similar as 23.
24898
24899 removelogo
24900 Suppress a TV station logo, using an image file to determine which
24901 pixels comprise the logo. It works by filling in the pixels that
24902 comprise the logo with neighboring pixels.
24903
24904 The filter accepts the following options:
24905
24906 filename, f
24907 Set the filter bitmap file, which can be any image format supported
24908 by libavformat. The width and height of the image file must match
24909 those of the video stream being processed.
24910
24911 Pixels in the provided bitmap image with a value of zero are not
24912 considered part of the logo, non-zero pixels are considered part of the
24913 logo. If you use white (255) for the logo and black (0) for the rest,
24914 you will be safe. For making the filter bitmap, it is recommended to
24915 take a screen capture of a black frame with the logo visible, and then
24916 using a threshold filter followed by the erode filter once or twice.
24917
24918 If needed, little splotches can be fixed manually. Remember that if
24919 logo pixels are not covered, the filter quality will be much reduced.
24920 Marking too many pixels as part of the logo does not hurt as much, but
24921 it will increase the amount of blurring needed to cover over the image
24922 and will destroy more information than necessary, and extra pixels will
24923 slow things down on a large logo.
24924
24925 repeatfields
24926 This filter uses the repeat_field flag from the Video ES headers and
24927 hard repeats fields based on its value.
24928
24929 reverse
24930 Reverse a video clip.
24931
24932 Warning: This filter requires memory to buffer the entire clip, so
24933 trimming is suggested.
24934
24935 Examples
24936
24937 • Take the first 5 seconds of a clip, and reverse it.
24938
24939 trim=end=5,reverse
24940
24941 rgbashift
24942 Shift R/G/B/A pixels horizontally and/or vertically.
24943
24944 The filter accepts the following options:
24945
24946 rh Set amount to shift red horizontally.
24947
24948 rv Set amount to shift red vertically.
24949
24950 gh Set amount to shift green horizontally.
24951
24952 gv Set amount to shift green vertically.
24953
24954 bh Set amount to shift blue horizontally.
24955
24956 bv Set amount to shift blue vertically.
24957
24958 ah Set amount to shift alpha horizontally.
24959
24960 av Set amount to shift alpha vertically.
24961
24962 edge
24963 Set edge mode, can be smear, default, or warp.
24964
24965 Commands
24966
24967 This filter supports the all above options as commands.
24968
24969 roberts
24970 Apply roberts cross operator to input video stream.
24971
24972 The filter accepts the following option:
24973
24974 planes
24975 Set which planes will be processed, unprocessed planes will be
24976 copied. By default value 0xf, all planes will be processed.
24977
24978 scale
24979 Set value which will be multiplied with filtered result.
24980
24981 delta
24982 Set value which will be added to filtered result.
24983
24984 Commands
24985
24986 This filter supports the all above options as commands.
24987
24988 rotate
24989 Rotate video by an arbitrary angle expressed in radians.
24990
24991 The filter accepts the following options:
24992
24993 A description of the optional parameters follows.
24994
24995 angle, a
24996 Set an expression for the angle by which to rotate the input video
24997 clockwise, expressed as a number of radians. A negative value will
24998 result in a counter-clockwise rotation. By default it is set to
24999 "0".
25000
25001 This expression is evaluated for each frame.
25002
25003 out_w, ow
25004 Set the output width expression, default value is "iw". This
25005 expression is evaluated just once during configuration.
25006
25007 out_h, oh
25008 Set the output height expression, default value is "ih". This
25009 expression is evaluated just once during configuration.
25010
25011 bilinear
25012 Enable bilinear interpolation if set to 1, a value of 0 disables
25013 it. Default value is 1.
25014
25015 fillcolor, c
25016 Set the color used to fill the output area not covered by the
25017 rotated image. For the general syntax of this option, check the
25018 "Color" section in the ffmpeg-utils manual. If the special value
25019 "none" is selected then no background is printed (useful for
25020 example if the background is never shown).
25021
25022 Default value is "black".
25023
25024 The expressions for the angle and the output size can contain the
25025 following constants and functions:
25026
25027 n sequential number of the input frame, starting from 0. It is always
25028 NAN before the first frame is filtered.
25029
25030 t time in seconds of the input frame, it is set to 0 when the filter
25031 is configured. It is always NAN before the first frame is filtered.
25032
25033 hsub
25034 vsub
25035 horizontal and vertical chroma subsample values. For example for
25036 the pixel format "yuv422p" hsub is 2 and vsub is 1.
25037
25038 in_w, iw
25039 in_h, ih
25040 the input video width and height
25041
25042 out_w, ow
25043 out_h, oh
25044 the output width and height, that is the size of the padded area as
25045 specified by the width and height expressions
25046
25047 rotw(a)
25048 roth(a)
25049 the minimal width/height required for completely containing the
25050 input video rotated by a radians.
25051
25052 These are only available when computing the out_w and out_h
25053 expressions.
25054
25055 Examples
25056
25057 • Rotate the input by PI/6 radians clockwise:
25058
25059 rotate=PI/6
25060
25061 • Rotate the input by PI/6 radians counter-clockwise:
25062
25063 rotate=-PI/6
25064
25065 • Rotate the input by 45 degrees clockwise:
25066
25067 rotate=45*PI/180
25068
25069 • Apply a constant rotation with period T, starting from an angle of
25070 PI/3:
25071
25072 rotate=PI/3+2*PI*t/T
25073
25074 • Make the input video rotation oscillating with a period of T
25075 seconds and an amplitude of A radians:
25076
25077 rotate=A*sin(2*PI/T*t)
25078
25079 • Rotate the video, output size is chosen so that the whole rotating
25080 input video is always completely contained in the output:
25081
25082 rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
25083
25084 • Rotate the video, reduce the output size so that no background is
25085 ever shown:
25086
25087 rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
25088
25089 Commands
25090
25091 The filter supports the following commands:
25092
25093 a, angle
25094 Set the angle expression. The command accepts the same syntax of
25095 the corresponding option.
25096
25097 If the specified expression is not valid, it is kept at its current
25098 value.
25099
25100 sab
25101 Apply Shape Adaptive Blur.
25102
25103 The filter accepts the following options:
25104
25105 luma_radius, lr
25106 Set luma blur filter strength, must be a value in range 0.1-4.0,
25107 default value is 1.0. A greater value will result in a more blurred
25108 image, and in slower processing.
25109
25110 luma_pre_filter_radius, lpfr
25111 Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
25112 default value is 1.0.
25113
25114 luma_strength, ls
25115 Set luma maximum difference between pixels to still be considered,
25116 must be a value in the 0.1-100.0 range, default value is 1.0.
25117
25118 chroma_radius, cr
25119 Set chroma blur filter strength, must be a value in range -0.9-4.0.
25120 A greater value will result in a more blurred image, and in slower
25121 processing.
25122
25123 chroma_pre_filter_radius, cpfr
25124 Set chroma pre-filter radius, must be a value in the -0.9-2.0
25125 range.
25126
25127 chroma_strength, cs
25128 Set chroma maximum difference between pixels to still be
25129 considered, must be a value in the -0.9-100.0 range.
25130
25131 Each chroma option value, if not explicitly specified, is set to the
25132 corresponding luma option value.
25133
25134 scale
25135 Scale (resize) the input video, using the libswscale library.
25136
25137 The scale filter forces the output display aspect ratio to be the same
25138 of the input, by changing the output sample aspect ratio.
25139
25140 If the input image format is different from the format requested by the
25141 next filter, the scale filter will convert the input to the requested
25142 format.
25143
25144 Options
25145
25146 The filter accepts the following options, or any of the options
25147 supported by the libswscale scaler.
25148
25149 See the ffmpeg-scaler manual for the complete list of scaler options.
25150
25151 width, w
25152 height, h
25153 Set the output video dimension expression. Default value is the
25154 input dimension.
25155
25156 If the width or w value is 0, the input width is used for the
25157 output. If the height or h value is 0, the input height is used for
25158 the output.
25159
25160 If one and only one of the values is -n with n >= 1, the scale
25161 filter will use a value that maintains the aspect ratio of the
25162 input image, calculated from the other specified dimension. After
25163 that it will, however, make sure that the calculated dimension is
25164 divisible by n and adjust the value if necessary.
25165
25166 If both values are -n with n >= 1, the behavior will be identical
25167 to both values being set to 0 as previously detailed.
25168
25169 See below for the list of accepted constants for use in the
25170 dimension expression.
25171
25172 eval
25173 Specify when to evaluate width and height expression. It accepts
25174 the following values:
25175
25176 init
25177 Only evaluate expressions once during the filter initialization
25178 or when a command is processed.
25179
25180 frame
25181 Evaluate expressions for each incoming frame.
25182
25183 Default value is init.
25184
25185 interl
25186 Set the interlacing mode. It accepts the following values:
25187
25188 1 Force interlaced aware scaling.
25189
25190 0 Do not apply interlaced scaling.
25191
25192 -1 Select interlaced aware scaling depending on whether the source
25193 frames are flagged as interlaced or not.
25194
25195 Default value is 0.
25196
25197 flags
25198 Set libswscale scaling flags. See the ffmpeg-scaler manual for the
25199 complete list of values. If not explicitly specified the filter
25200 applies the default flags.
25201
25202 param0, param1
25203 Set libswscale input parameters for scaling algorithms that need
25204 them. See the ffmpeg-scaler manual for the complete documentation.
25205 If not explicitly specified the filter applies empty parameters.
25206
25207 size, s
25208 Set the video size. For the syntax of this option, check the "Video
25209 size" section in the ffmpeg-utils manual.
25210
25211 in_color_matrix
25212 out_color_matrix
25213 Set in/output YCbCr color space type.
25214
25215 This allows the autodetected value to be overridden as well as
25216 allows forcing a specific value used for the output and encoder.
25217
25218 If not specified, the color space type depends on the pixel format.
25219
25220 Possible values:
25221
25222 auto
25223 Choose automatically.
25224
25225 bt709
25226 Format conforming to International Telecommunication Union
25227 (ITU) Recommendation BT.709.
25228
25229 fcc Set color space conforming to the United States Federal
25230 Communications Commission (FCC) Code of Federal Regulations
25231 (CFR) Title 47 (2003) 73.682 (a).
25232
25233 bt601
25234 bt470
25235 smpte170m
25236 Set color space conforming to:
25237
25238 • ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
25239
25240 • ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
25241
25242 • Society of Motion Picture and Television Engineers (SMPTE)
25243 ST 170:2004
25244
25245 smpte240m
25246 Set color space conforming to SMPTE ST 240:1999.
25247
25248 bt2020
25249 Set color space conforming to ITU-R BT.2020 non-constant
25250 luminance system.
25251
25252 in_range
25253 out_range
25254 Set in/output YCbCr sample range.
25255
25256 This allows the autodetected value to be overridden as well as
25257 allows forcing a specific value used for the output and encoder. If
25258 not specified, the range depends on the pixel format. Possible
25259 values:
25260
25261 auto/unknown
25262 Choose automatically.
25263
25264 jpeg/full/pc
25265 Set full range (0-255 in case of 8-bit luma).
25266
25267 mpeg/limited/tv
25268 Set "MPEG" range (16-235 in case of 8-bit luma).
25269
25270 force_original_aspect_ratio
25271 Enable decreasing or increasing output video width or height if
25272 necessary to keep the original aspect ratio. Possible values:
25273
25274 disable
25275 Scale the video as specified and disable this feature.
25276
25277 decrease
25278 The output video dimensions will automatically be decreased if
25279 needed.
25280
25281 increase
25282 The output video dimensions will automatically be increased if
25283 needed.
25284
25285 One useful instance of this option is that when you know a specific
25286 device's maximum allowed resolution, you can use this to limit the
25287 output video to that, while retaining the aspect ratio. For
25288 example, device A allows 1280x720 playback, and your video is
25289 1920x800. Using this option (set it to decrease) and specifying
25290 1280x720 to the command line makes the output 1280x533.
25291
25292 Please note that this is a different thing than specifying -1 for w
25293 or h, you still need to specify the output resolution for this
25294 option to work.
25295
25296 force_divisible_by
25297 Ensures that both the output dimensions, width and height, are
25298 divisible by the given integer when used together with
25299 force_original_aspect_ratio. This works similar to using "-n" in
25300 the w and h options.
25301
25302 This option respects the value set for force_original_aspect_ratio,
25303 increasing or decreasing the resolution accordingly. The video's
25304 aspect ratio may be slightly modified.
25305
25306 This option can be handy if you need to have a video fit within or
25307 exceed a defined resolution using force_original_aspect_ratio but
25308 also have encoder restrictions on width or height divisibility.
25309
25310 The values of the w and h options are expressions containing the
25311 following constants:
25312
25313 in_w
25314 in_h
25315 The input width and height
25316
25317 iw
25318 ih These are the same as in_w and in_h.
25319
25320 out_w
25321 out_h
25322 The output (scaled) width and height
25323
25324 ow
25325 oh These are the same as out_w and out_h
25326
25327 a The same as iw / ih
25328
25329 sar input sample aspect ratio
25330
25331 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
25332
25333 hsub
25334 vsub
25335 horizontal and vertical input chroma subsample values. For example
25336 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
25337
25338 ohsub
25339 ovsub
25340 horizontal and vertical output chroma subsample values. For example
25341 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
25342
25343 n The (sequential) number of the input frame, starting from 0. Only
25344 available with "eval=frame".
25345
25346 t The presentation timestamp of the input frame, expressed as a
25347 number of seconds. Only available with "eval=frame".
25348
25349 pos The position (byte offset) of the frame in the input stream, or NaN
25350 if this information is unavailable and/or meaningless (for example
25351 in case of synthetic video). Only available with "eval=frame".
25352
25353 Examples
25354
25355 • Scale the input video to a size of 200x100
25356
25357 scale=w=200:h=100
25358
25359 This is equivalent to:
25360
25361 scale=200:100
25362
25363 or:
25364
25365 scale=200x100
25366
25367 • Specify a size abbreviation for the output size:
25368
25369 scale=qcif
25370
25371 which can also be written as:
25372
25373 scale=size=qcif
25374
25375 • Scale the input to 2x:
25376
25377 scale=w=2*iw:h=2*ih
25378
25379 • The above is the same as:
25380
25381 scale=2*in_w:2*in_h
25382
25383 • Scale the input to 2x with forced interlaced scaling:
25384
25385 scale=2*iw:2*ih:interl=1
25386
25387 • Scale the input to half size:
25388
25389 scale=w=iw/2:h=ih/2
25390
25391 • Increase the width, and set the height to the same size:
25392
25393 scale=3/2*iw:ow
25394
25395 • Seek Greek harmony:
25396
25397 scale=iw:1/PHI*iw
25398 scale=ih*PHI:ih
25399
25400 • Increase the height, and set the width to 3/2 of the height:
25401
25402 scale=w=3/2*oh:h=3/5*ih
25403
25404 • Increase the size, making the size a multiple of the chroma
25405 subsample values:
25406
25407 scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
25408
25409 • Increase the width to a maximum of 500 pixels, keeping the same
25410 aspect ratio as the input:
25411
25412 scale=w='min(500\, iw*3/2):h=-1'
25413
25414 • Make pixels square by combining scale and setsar:
25415
25416 scale='trunc(ih*dar):ih',setsar=1/1
25417
25418 • Make pixels square by combining scale and setsar, making sure the
25419 resulting resolution is even (required by some codecs):
25420
25421 scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
25422
25423 Commands
25424
25425 This filter supports the following commands:
25426
25427 width, w
25428 height, h
25429 Set the output video dimension expression. The command accepts the
25430 same syntax of the corresponding option.
25431
25432 If the specified expression is not valid, it is kept at its current
25433 value.
25434
25435 scale_cuda
25436 Scale (resize) and convert (pixel format) the input video, using
25437 accelerated CUDA kernels. Setting the output width and height works in
25438 the same way as for the scale filter.
25439
25440 The filter accepts the following options:
25441
25442 w
25443 h Set the output video dimension expression. Default value is the
25444 input dimension.
25445
25446 Allows for the same expressions as the scale filter.
25447
25448 interp_algo
25449 Sets the algorithm used for scaling:
25450
25451 nearest
25452 Nearest neighbour
25453
25454 Used by default if input parameters match the desired output.
25455
25456 bilinear
25457 Bilinear
25458
25459 bicubic
25460 Bicubic
25461
25462 This is the default.
25463
25464 lanczos
25465 Lanczos
25466
25467 format
25468 Controls the output pixel format. By default, or if none is
25469 specified, the input pixel format is used.
25470
25471 The filter does not support converting between YUV and RGB pixel
25472 formats.
25473
25474 passthrough
25475 If set to 0, every frame is processed, even if no conversion is
25476 neccesary. This mode can be useful to use the filter as a buffer
25477 for a downstream frame-consumer that exhausts the limited decoder
25478 frame pool.
25479
25480 If set to 1, frames are passed through as-is if they match the
25481 desired output parameters. This is the default behaviour.
25482
25483 param
25484 Algorithm-Specific parameter.
25485
25486 Affects the curves of the bicubic algorithm.
25487
25488 force_original_aspect_ratio
25489 force_divisible_by
25490 Work the same as the identical scale filter options.
25491
25492 Examples
25493
25494 • Scale input to 720p, keeping aspect ratio and ensuring the output
25495 is yuv420p.
25496
25497 scale_cuda=-2:720:format=yuv420p
25498
25499 • Upscale to 4K using nearest neighbour algorithm.
25500
25501 scale_cuda=4096:2160:interp_algo=nearest
25502
25503 • Don't do any conversion or scaling, but copy all input frames into
25504 newly allocated ones. This can be useful to deal with a filter and
25505 encode chain that otherwise exhausts the decoders frame pool.
25506
25507 scale_cuda=passthrough=0
25508
25509 scale_npp
25510 Use the NVIDIA Performance Primitives (libnpp) to perform scaling
25511 and/or pixel format conversion on CUDA video frames. Setting the output
25512 width and height works in the same way as for the scale filter.
25513
25514 The following additional options are accepted:
25515
25516 format
25517 The pixel format of the output CUDA frames. If set to the string
25518 "same" (the default), the input format will be kept. Note that
25519 automatic format negotiation and conversion is not yet supported
25520 for hardware frames
25521
25522 interp_algo
25523 The interpolation algorithm used for resizing. One of the
25524 following:
25525
25526 nn Nearest neighbour.
25527
25528 linear
25529 cubic
25530 cubic2p_bspline
25531 2-parameter cubic (B=1, C=0)
25532
25533 cubic2p_catmullrom
25534 2-parameter cubic (B=0, C=1/2)
25535
25536 cubic2p_b05c03
25537 2-parameter cubic (B=1/2, C=3/10)
25538
25539 super
25540 Supersampling
25541
25542 lanczos
25543 force_original_aspect_ratio
25544 Enable decreasing or increasing output video width or height if
25545 necessary to keep the original aspect ratio. Possible values:
25546
25547 disable
25548 Scale the video as specified and disable this feature.
25549
25550 decrease
25551 The output video dimensions will automatically be decreased if
25552 needed.
25553
25554 increase
25555 The output video dimensions will automatically be increased if
25556 needed.
25557
25558 One useful instance of this option is that when you know a specific
25559 device's maximum allowed resolution, you can use this to limit the
25560 output video to that, while retaining the aspect ratio. For
25561 example, device A allows 1280x720 playback, and your video is
25562 1920x800. Using this option (set it to decrease) and specifying
25563 1280x720 to the command line makes the output 1280x533.
25564
25565 Please note that this is a different thing than specifying -1 for w
25566 or h, you still need to specify the output resolution for this
25567 option to work.
25568
25569 force_divisible_by
25570 Ensures that both the output dimensions, width and height, are
25571 divisible by the given integer when used together with
25572 force_original_aspect_ratio. This works similar to using "-n" in
25573 the w and h options.
25574
25575 This option respects the value set for force_original_aspect_ratio,
25576 increasing or decreasing the resolution accordingly. The video's
25577 aspect ratio may be slightly modified.
25578
25579 This option can be handy if you need to have a video fit within or
25580 exceed a defined resolution using force_original_aspect_ratio but
25581 also have encoder restrictions on width or height divisibility.
25582
25583 eval
25584 Specify when to evaluate width and height expression. It accepts
25585 the following values:
25586
25587 init
25588 Only evaluate expressions once during the filter initialization
25589 or when a command is processed.
25590
25591 frame
25592 Evaluate expressions for each incoming frame.
25593
25594 The values of the w and h options are expressions containing the
25595 following constants:
25596
25597 in_w
25598 in_h
25599 The input width and height
25600
25601 iw
25602 ih These are the same as in_w and in_h.
25603
25604 out_w
25605 out_h
25606 The output (scaled) width and height
25607
25608 ow
25609 oh These are the same as out_w and out_h
25610
25611 a The same as iw / ih
25612
25613 sar input sample aspect ratio
25614
25615 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
25616
25617 n The (sequential) number of the input frame, starting from 0. Only
25618 available with "eval=frame".
25619
25620 t The presentation timestamp of the input frame, expressed as a
25621 number of seconds. Only available with "eval=frame".
25622
25623 pos The position (byte offset) of the frame in the input stream, or NaN
25624 if this information is unavailable and/or meaningless (for example
25625 in case of synthetic video). Only available with "eval=frame".
25626
25627 scale2ref
25628 Scale (resize) the input video, based on a reference video.
25629
25630 See the scale filter for available options, scale2ref supports the same
25631 but uses the reference video instead of the main input as basis.
25632 scale2ref also supports the following additional constants for the w
25633 and h options:
25634
25635 main_w
25636 main_h
25637 The main input video's width and height
25638
25639 main_a
25640 The same as main_w / main_h
25641
25642 main_sar
25643 The main input video's sample aspect ratio
25644
25645 main_dar, mdar
25646 The main input video's display aspect ratio. Calculated from
25647 "(main_w / main_h) * main_sar".
25648
25649 main_hsub
25650 main_vsub
25651 The main input video's horizontal and vertical chroma subsample
25652 values. For example for the pixel format "yuv422p" hsub is 2 and
25653 vsub is 1.
25654
25655 main_n
25656 The (sequential) number of the main input frame, starting from 0.
25657 Only available with "eval=frame".
25658
25659 main_t
25660 The presentation timestamp of the main input frame, expressed as a
25661 number of seconds. Only available with "eval=frame".
25662
25663 main_pos
25664 The position (byte offset) of the frame in the main input stream,
25665 or NaN if this information is unavailable and/or meaningless (for
25666 example in case of synthetic video). Only available with
25667 "eval=frame".
25668
25669 Examples
25670
25671 • Scale a subtitle stream (b) to match the main video (a) in size
25672 before overlaying
25673
25674 'scale2ref[b][a];[a][b]overlay'
25675
25676 • Scale a logo to 1/10th the height of a video, while preserving its
25677 display aspect ratio.
25678
25679 [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
25680
25681 Commands
25682
25683 This filter supports the following commands:
25684
25685 width, w
25686 height, h
25687 Set the output video dimension expression. The command accepts the
25688 same syntax of the corresponding option.
25689
25690 If the specified expression is not valid, it is kept at its current
25691 value.
25692
25693 scale2ref_npp
25694 Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
25695 input video, based on a reference video.
25696
25697 See the scale_npp filter for available options, scale2ref_npp supports
25698 the same but uses the reference video instead of the main input as
25699 basis. scale2ref_npp also supports the following additional constants
25700 for the w and h options:
25701
25702 main_w
25703 main_h
25704 The main input video's width and height
25705
25706 main_a
25707 The same as main_w / main_h
25708
25709 main_sar
25710 The main input video's sample aspect ratio
25711
25712 main_dar, mdar
25713 The main input video's display aspect ratio. Calculated from
25714 "(main_w / main_h) * main_sar".
25715
25716 main_n
25717 The (sequential) number of the main input frame, starting from 0.
25718 Only available with "eval=frame".
25719
25720 main_t
25721 The presentation timestamp of the main input frame, expressed as a
25722 number of seconds. Only available with "eval=frame".
25723
25724 main_pos
25725 The position (byte offset) of the frame in the main input stream,
25726 or NaN if this information is unavailable and/or meaningless (for
25727 example in case of synthetic video). Only available with
25728 "eval=frame".
25729
25730 Examples
25731
25732 • Scale a subtitle stream (b) to match the main video (a) in size
25733 before overlaying
25734
25735 'scale2ref_npp[b][a];[a][b]overlay_cuda'
25736
25737 • Scale a logo to 1/10th the height of a video, while preserving its
25738 display aspect ratio.
25739
25740 [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
25741
25742 scharr
25743 Apply scharr operator to input video stream.
25744
25745 The filter accepts the following option:
25746
25747 planes
25748 Set which planes will be processed, unprocessed planes will be
25749 copied. By default value 0xf, all planes will be processed.
25750
25751 scale
25752 Set value which will be multiplied with filtered result.
25753
25754 delta
25755 Set value which will be added to filtered result.
25756
25757 Commands
25758
25759 This filter supports the all above options as commands.
25760
25761 scroll
25762 Scroll input video horizontally and/or vertically by constant speed.
25763
25764 The filter accepts the following options:
25765
25766 horizontal, h
25767 Set the horizontal scrolling speed. Default is 0. Allowed range is
25768 from -1 to 1. Negative values changes scrolling direction.
25769
25770 vertical, v
25771 Set the vertical scrolling speed. Default is 0. Allowed range is
25772 from -1 to 1. Negative values changes scrolling direction.
25773
25774 hpos
25775 Set the initial horizontal scrolling position. Default is 0.
25776 Allowed range is from 0 to 1.
25777
25778 vpos
25779 Set the initial vertical scrolling position. Default is 0. Allowed
25780 range is from 0 to 1.
25781
25782 Commands
25783
25784 This filter supports the following commands:
25785
25786 horizontal, h
25787 Set the horizontal scrolling speed.
25788
25789 vertical, v
25790 Set the vertical scrolling speed.
25791
25792 scdet
25793 Detect video scene change.
25794
25795 This filter sets frame metadata with mafd between frame, the scene
25796 score, and forward the frame to the next filter, so they can use these
25797 metadata to detect scene change or others.
25798
25799 In addition, this filter logs a message and sets frame metadata when it
25800 detects a scene change by threshold.
25801
25802 "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
25803
25804 "lavfi.scd.score" metadata keys are set with scene change score for
25805 every frame to detect scene change.
25806
25807 "lavfi.scd.time" metadata keys are set with current filtered frame time
25808 which detect scene change with threshold.
25809
25810 The filter accepts the following options:
25811
25812 threshold, t
25813 Set the scene change detection threshold as a percentage of maximum
25814 change. Good values are in the "[8.0, 14.0]" range. The range for
25815 threshold is "[0., 100.]".
25816
25817 Default value is 10..
25818
25819 sc_pass, s
25820 Set the flag to pass scene change frames to the next filter.
25821 Default value is 0 You can enable it if you want to get snapshot of
25822 scene change frames only.
25823
25824 selectivecolor
25825 Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
25826 colors (such as "reds", "yellows", "greens", "cyans", ...). The
25827 adjustment range is defined by the "purity" of the color (that is, how
25828 saturated it already is).
25829
25830 This filter is similar to the Adobe Photoshop Selective Color tool.
25831
25832 The filter accepts the following options:
25833
25834 correction_method
25835 Select color correction method.
25836
25837 Available values are:
25838
25839 absolute
25840 Specified adjustments are applied "as-is" (added/subtracted to
25841 original pixel component value).
25842
25843 relative
25844 Specified adjustments are relative to the original component
25845 value.
25846
25847 Default is "absolute".
25848
25849 reds
25850 Adjustments for red pixels (pixels where the red component is the
25851 maximum)
25852
25853 yellows
25854 Adjustments for yellow pixels (pixels where the blue component is
25855 the minimum)
25856
25857 greens
25858 Adjustments for green pixels (pixels where the green component is
25859 the maximum)
25860
25861 cyans
25862 Adjustments for cyan pixels (pixels where the red component is the
25863 minimum)
25864
25865 blues
25866 Adjustments for blue pixels (pixels where the blue component is the
25867 maximum)
25868
25869 magentas
25870 Adjustments for magenta pixels (pixels where the green component is
25871 the minimum)
25872
25873 whites
25874 Adjustments for white pixels (pixels where all components are
25875 greater than 128)
25876
25877 neutrals
25878 Adjustments for all pixels except pure black and pure white
25879
25880 blacks
25881 Adjustments for black pixels (pixels where all components are
25882 lesser than 128)
25883
25884 psfile
25885 Specify a Photoshop selective color file (".asv") to import the
25886 settings from.
25887
25888 All the adjustment settings (reds, yellows, ...) accept up to 4 space
25889 separated floating point adjustment values in the [-1,1] range,
25890 respectively to adjust the amount of cyan, magenta, yellow and black
25891 for the pixels of its range.
25892
25893 Examples
25894
25895 • Increase cyan by 50% and reduce yellow by 33% in every green areas,
25896 and increase magenta by 27% in blue areas:
25897
25898 selectivecolor=greens=.5 0 -.33 0:blues=0 .27
25899
25900 • Use a Photoshop selective color preset:
25901
25902 selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
25903
25904 separatefields
25905 The "separatefields" takes a frame-based video input and splits each
25906 frame into its components fields, producing a new half height clip with
25907 twice the frame rate and twice the frame count.
25908
25909 This filter use field-dominance information in frame to decide which of
25910 each pair of fields to place first in the output. If it gets it wrong
25911 use setfield filter before "separatefields" filter.
25912
25913 setdar, setsar
25914 The "setdar" filter sets the Display Aspect Ratio for the filter output
25915 video.
25916
25917 This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
25918 according to the following equation:
25919
25920 <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
25921
25922 Keep in mind that the "setdar" filter does not modify the pixel
25923 dimensions of the video frame. Also, the display aspect ratio set by
25924 this filter may be changed by later filters in the filterchain, e.g. in
25925 case of scaling or if another "setdar" or a "setsar" filter is applied.
25926
25927 The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
25928 filter output video.
25929
25930 Note that as a consequence of the application of this filter, the
25931 output display aspect ratio will change according to the equation
25932 above.
25933
25934 Keep in mind that the sample aspect ratio set by the "setsar" filter
25935 may be changed by later filters in the filterchain, e.g. if another
25936 "setsar" or a "setdar" filter is applied.
25937
25938 It accepts the following parameters:
25939
25940 r, ratio, dar ("setdar" only), sar ("setsar" only)
25941 Set the aspect ratio used by the filter.
25942
25943 The parameter can be a floating point number string, an expression,
25944 or a string of the form num:den, where num and den are the
25945 numerator and denominator of the aspect ratio. If the parameter is
25946 not specified, it is assumed the value "0". In case the form
25947 "num:den" is used, the ":" character should be escaped.
25948
25949 max Set the maximum integer value to use for expressing numerator and
25950 denominator when reducing the expressed aspect ratio to a rational.
25951 Default value is 100.
25952
25953 The parameter sar is an expression containing the following constants:
25954
25955 E, PI, PHI
25956 These are approximated values for the mathematical constants e
25957 (Euler's number), pi (Greek pi), and phi (the golden ratio).
25958
25959 w, h
25960 The input width and height.
25961
25962 a These are the same as w / h.
25963
25964 sar The input sample aspect ratio.
25965
25966 dar The input display aspect ratio. It is the same as (w / h) * sar.
25967
25968 hsub, vsub
25969 Horizontal and vertical chroma subsample values. For example, for
25970 the pixel format "yuv422p" hsub is 2 and vsub is 1.
25971
25972 Examples
25973
25974 • To change the display aspect ratio to 16:9, specify one of the
25975 following:
25976
25977 setdar=dar=1.77777
25978 setdar=dar=16/9
25979
25980 • To change the sample aspect ratio to 10:11, specify:
25981
25982 setsar=sar=10/11
25983
25984 • To set a display aspect ratio of 16:9, and specify a maximum
25985 integer value of 1000 in the aspect ratio reduction, use the
25986 command:
25987
25988 setdar=ratio=16/9:max=1000
25989
25990 setfield
25991 Force field for the output video frame.
25992
25993 The "setfield" filter marks the interlace type field for the output
25994 frames. It does not change the input frame, but only sets the
25995 corresponding property, which affects how the frame is treated by
25996 following filters (e.g. "fieldorder" or "yadif").
25997
25998 The filter accepts the following options:
25999
26000 mode
26001 Available values are:
26002
26003 auto
26004 Keep the same field property.
26005
26006 bff Mark the frame as bottom-field-first.
26007
26008 tff Mark the frame as top-field-first.
26009
26010 prog
26011 Mark the frame as progressive.
26012
26013 setparams
26014 Force frame parameter for the output video frame.
26015
26016 The "setparams" filter marks interlace and color range for the output
26017 frames. It does not change the input frame, but only sets the
26018 corresponding property, which affects how the frame is treated by
26019 filters/encoders.
26020
26021 field_mode
26022 Available values are:
26023
26024 auto
26025 Keep the same field property (default).
26026
26027 bff Mark the frame as bottom-field-first.
26028
26029 tff Mark the frame as top-field-first.
26030
26031 prog
26032 Mark the frame as progressive.
26033
26034 range
26035 Available values are:
26036
26037 auto
26038 Keep the same color range property (default).
26039
26040 unspecified, unknown
26041 Mark the frame as unspecified color range.
26042
26043 limited, tv, mpeg
26044 Mark the frame as limited range.
26045
26046 full, pc, jpeg
26047 Mark the frame as full range.
26048
26049 color_primaries
26050 Set the color primaries. Available values are:
26051
26052 auto
26053 Keep the same color primaries property (default).
26054
26055 bt709
26056 unknown
26057 bt470m
26058 bt470bg
26059 smpte170m
26060 smpte240m
26061 film
26062 bt2020
26063 smpte428
26064 smpte431
26065 smpte432
26066 jedec-p22
26067 color_trc
26068 Set the color transfer. Available values are:
26069
26070 auto
26071 Keep the same color trc property (default).
26072
26073 bt709
26074 unknown
26075 bt470m
26076 bt470bg
26077 smpte170m
26078 smpte240m
26079 linear
26080 log100
26081 log316
26082 iec61966-2-4
26083 bt1361e
26084 iec61966-2-1
26085 bt2020-10
26086 bt2020-12
26087 smpte2084
26088 smpte428
26089 arib-std-b67
26090 colorspace
26091 Set the colorspace. Available values are:
26092
26093 auto
26094 Keep the same colorspace property (default).
26095
26096 gbr
26097 bt709
26098 unknown
26099 fcc
26100 bt470bg
26101 smpte170m
26102 smpte240m
26103 ycgco
26104 bt2020nc
26105 bt2020c
26106 smpte2085
26107 chroma-derived-nc
26108 chroma-derived-c
26109 ictcp
26110
26111 sharpen_npp
26112 Use the NVIDIA Performance Primitives (libnpp) to perform image
26113 sharpening with border control.
26114
26115 The following additional options are accepted:
26116
26117 border_type
26118 Type of sampling to be used ad frame borders. One of the following:
26119
26120 replicate
26121 Replicate pixel values.
26122
26123 shear
26124 Apply shear transform to input video.
26125
26126 This filter supports the following options:
26127
26128 shx Shear factor in X-direction. Default value is 0. Allowed range is
26129 from -2 to 2.
26130
26131 shy Shear factor in Y-direction. Default value is 0. Allowed range is
26132 from -2 to 2.
26133
26134 fillcolor, c
26135 Set the color used to fill the output area not covered by the
26136 transformed video. For the general syntax of this option, check the
26137 "Color" section in the ffmpeg-utils manual. If the special value
26138 "none" is selected then no background is printed (useful for
26139 example if the background is never shown).
26140
26141 Default value is "black".
26142
26143 interp
26144 Set interpolation type. Can be "bilinear" or "nearest". Default is
26145 "bilinear".
26146
26147 Commands
26148
26149 This filter supports the all above options as commands.
26150
26151 showinfo
26152 Show a line containing various information for each input video frame.
26153 The input video is not modified.
26154
26155 This filter supports the following options:
26156
26157 checksum
26158 Calculate checksums of each plane. By default enabled.
26159
26160 The shown line contains a sequence of key/value pairs of the form
26161 key:value.
26162
26163 The following values are shown in the output:
26164
26165 n The (sequential) number of the input frame, starting from 0.
26166
26167 pts The Presentation TimeStamp of the input frame, expressed as a
26168 number of time base units. The time base unit depends on the filter
26169 input pad.
26170
26171 pts_time
26172 The Presentation TimeStamp of the input frame, expressed as a
26173 number of seconds.
26174
26175 pos The position of the frame in the input stream, or -1 if this
26176 information is unavailable and/or meaningless (for example in case
26177 of synthetic video).
26178
26179 fmt The pixel format name.
26180
26181 sar The sample aspect ratio of the input frame, expressed in the form
26182 num/den.
26183
26184 s The size of the input frame. For the syntax of this option, check
26185 the "Video size" section in the ffmpeg-utils manual.
26186
26187 i The type of interlaced mode ("P" for "progressive", "T" for top
26188 field first, "B" for bottom field first).
26189
26190 iskey
26191 This is 1 if the frame is a key frame, 0 otherwise.
26192
26193 type
26194 The picture type of the input frame ("I" for an I-frame, "P" for a
26195 P-frame, "B" for a B-frame, or "?" for an unknown type). Also
26196 refer to the documentation of the "AVPictureType" enum and of the
26197 "av_get_picture_type_char" function defined in libavutil/avutil.h.
26198
26199 checksum
26200 The Adler-32 checksum (printed in hexadecimal) of all the planes of
26201 the input frame.
26202
26203 plane_checksum
26204 The Adler-32 checksum (printed in hexadecimal) of each plane of the
26205 input frame, expressed in the form "[c0 c1 c2 c3]".
26206
26207 mean
26208 The mean value of pixels in each plane of the input frame,
26209 expressed in the form "[mean0 mean1 mean2 mean3]".
26210
26211 stdev
26212 The standard deviation of pixel values in each plane of the input
26213 frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
26214
26215 showpalette
26216 Displays the 256 colors palette of each frame. This filter is only
26217 relevant for pal8 pixel format frames.
26218
26219 It accepts the following option:
26220
26221 s Set the size of the box used to represent one palette color entry.
26222 Default is 30 (for a "30x30" pixel box).
26223
26224 shuffleframes
26225 Reorder and/or duplicate and/or drop video frames.
26226
26227 It accepts the following parameters:
26228
26229 mapping
26230 Set the destination indexes of input frames. This is space or '|'
26231 separated list of indexes that maps input frames to output frames.
26232 Number of indexes also sets maximal value that each index may have.
26233 '-1' index have special meaning and that is to drop frame.
26234
26235 The first frame has the index 0. The default is to keep the input
26236 unchanged.
26237
26238 Examples
26239
26240 • Swap second and third frame of every three frames of the input:
26241
26242 ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
26243
26244 • Swap 10th and 1st frame of every ten frames of the input:
26245
26246 ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
26247
26248 shufflepixels
26249 Reorder pixels in video frames.
26250
26251 This filter accepts the following options:
26252
26253 direction, d
26254 Set shuffle direction. Can be forward or inverse direction.
26255 Default direction is forward.
26256
26257 mode, m
26258 Set shuffle mode. Can be horizontal, vertical or block mode.
26259
26260 width, w
26261 height, h
26262 Set shuffle block_size. In case of horizontal shuffle mode only
26263 width part of size is used, and in case of vertical shuffle mode
26264 only height part of size is used.
26265
26266 seed, s
26267 Set random seed used with shuffling pixels. Mainly useful to set to
26268 be able to reverse filtering process to get original input. For
26269 example, to reverse forward shuffle you need to use same parameters
26270 and exact same seed and to set direction to inverse.
26271
26272 shuffleplanes
26273 Reorder and/or duplicate video planes.
26274
26275 It accepts the following parameters:
26276
26277 map0
26278 The index of the input plane to be used as the first output plane.
26279
26280 map1
26281 The index of the input plane to be used as the second output plane.
26282
26283 map2
26284 The index of the input plane to be used as the third output plane.
26285
26286 map3
26287 The index of the input plane to be used as the fourth output plane.
26288
26289 The first plane has the index 0. The default is to keep the input
26290 unchanged.
26291
26292 Examples
26293
26294 • Swap the second and third planes of the input:
26295
26296 ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
26297
26298 signalstats
26299 Evaluate various visual metrics that assist in determining issues
26300 associated with the digitization of analog video media.
26301
26302 By default the filter will log these metadata values:
26303
26304 YMIN
26305 Display the minimal Y value contained within the input frame.
26306 Expressed in range of [0-255].
26307
26308 YLOW
26309 Display the Y value at the 10% percentile within the input frame.
26310 Expressed in range of [0-255].
26311
26312 YAVG
26313 Display the average Y value within the input frame. Expressed in
26314 range of [0-255].
26315
26316 YHIGH
26317 Display the Y value at the 90% percentile within the input frame.
26318 Expressed in range of [0-255].
26319
26320 YMAX
26321 Display the maximum Y value contained within the input frame.
26322 Expressed in range of [0-255].
26323
26324 UMIN
26325 Display the minimal U value contained within the input frame.
26326 Expressed in range of [0-255].
26327
26328 ULOW
26329 Display the U value at the 10% percentile within the input frame.
26330 Expressed in range of [0-255].
26331
26332 UAVG
26333 Display the average U value within the input frame. Expressed in
26334 range of [0-255].
26335
26336 UHIGH
26337 Display the U value at the 90% percentile within the input frame.
26338 Expressed in range of [0-255].
26339
26340 UMAX
26341 Display the maximum U value contained within the input frame.
26342 Expressed in range of [0-255].
26343
26344 VMIN
26345 Display the minimal V value contained within the input frame.
26346 Expressed in range of [0-255].
26347
26348 VLOW
26349 Display the V value at the 10% percentile within the input frame.
26350 Expressed in range of [0-255].
26351
26352 VAVG
26353 Display the average V value within the input frame. Expressed in
26354 range of [0-255].
26355
26356 VHIGH
26357 Display the V value at the 90% percentile within the input frame.
26358 Expressed in range of [0-255].
26359
26360 VMAX
26361 Display the maximum V value contained within the input frame.
26362 Expressed in range of [0-255].
26363
26364 SATMIN
26365 Display the minimal saturation value contained within the input
26366 frame. Expressed in range of [0-~181.02].
26367
26368 SATLOW
26369 Display the saturation value at the 10% percentile within the input
26370 frame. Expressed in range of [0-~181.02].
26371
26372 SATAVG
26373 Display the average saturation value within the input frame.
26374 Expressed in range of [0-~181.02].
26375
26376 SATHIGH
26377 Display the saturation value at the 90% percentile within the input
26378 frame. Expressed in range of [0-~181.02].
26379
26380 SATMAX
26381 Display the maximum saturation value contained within the input
26382 frame. Expressed in range of [0-~181.02].
26383
26384 HUEMED
26385 Display the median value for hue within the input frame. Expressed
26386 in range of [0-360].
26387
26388 HUEAVG
26389 Display the average value for hue within the input frame. Expressed
26390 in range of [0-360].
26391
26392 YDIF
26393 Display the average of sample value difference between all values
26394 of the Y plane in the current frame and corresponding values of the
26395 previous input frame. Expressed in range of [0-255].
26396
26397 UDIF
26398 Display the average of sample value difference between all values
26399 of the U plane in the current frame and corresponding values of the
26400 previous input frame. Expressed in range of [0-255].
26401
26402 VDIF
26403 Display the average of sample value difference between all values
26404 of the V plane in the current frame and corresponding values of the
26405 previous input frame. Expressed in range of [0-255].
26406
26407 YBITDEPTH
26408 Display bit depth of Y plane in current frame. Expressed in range
26409 of [0-16].
26410
26411 UBITDEPTH
26412 Display bit depth of U plane in current frame. Expressed in range
26413 of [0-16].
26414
26415 VBITDEPTH
26416 Display bit depth of V plane in current frame. Expressed in range
26417 of [0-16].
26418
26419 The filter accepts the following options:
26420
26421 stat
26422 out stat specify an additional form of image analysis. out output
26423 video with the specified type of pixel highlighted.
26424
26425 Both options accept the following values:
26426
26427 tout
26428 Identify temporal outliers pixels. A temporal outlier is a
26429 pixel unlike the neighboring pixels of the same field. Examples
26430 of temporal outliers include the results of video dropouts,
26431 head clogs, or tape tracking issues.
26432
26433 vrep
26434 Identify vertical line repetition. Vertical line repetition
26435 includes similar rows of pixels within a frame. In born-digital
26436 video vertical line repetition is common, but this pattern is
26437 uncommon in video digitized from an analog source. When it
26438 occurs in video that results from the digitization of an analog
26439 source it can indicate concealment from a dropout compensator.
26440
26441 brng
26442 Identify pixels that fall outside of legal broadcast range.
26443
26444 color, c
26445 Set the highlight color for the out option. The default color is
26446 yellow.
26447
26448 Examples
26449
26450 • Output data of various video metrics:
26451
26452 ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
26453
26454 • Output specific data about the minimum and maximum values of the Y
26455 plane per frame:
26456
26457 ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
26458
26459 • Playback video while highlighting pixels that are outside of
26460 broadcast range in red.
26461
26462 ffplay example.mov -vf signalstats="out=brng:color=red"
26463
26464 • Playback video with signalstats metadata drawn over the frame.
26465
26466 ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
26467
26468 The contents of signalstat_drawtext.txt used in the command are:
26469
26470 time %{pts:hms}
26471 Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
26472 U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
26473 V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
26474 saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
26475
26476 signature
26477 Calculates the MPEG-7 Video Signature. The filter can handle more than
26478 one input. In this case the matching between the inputs can be
26479 calculated additionally. The filter always passes through the first
26480 input. The signature of each stream can be written into a file.
26481
26482 It accepts the following options:
26483
26484 detectmode
26485 Enable or disable the matching process.
26486
26487 Available values are:
26488
26489 off Disable the calculation of a matching (default).
26490
26491 full
26492 Calculate the matching for the whole video and output whether
26493 the whole video matches or only parts.
26494
26495 fast
26496 Calculate only until a matching is found or the video ends.
26497 Should be faster in some cases.
26498
26499 nb_inputs
26500 Set the number of inputs. The option value must be a non negative
26501 integer. Default value is 1.
26502
26503 filename
26504 Set the path to which the output is written. If there is more than
26505 one input, the path must be a prototype, i.e. must contain %d or
26506 %0nd (where n is a positive integer), that will be replaced with
26507 the input number. If no filename is specified, no output will be
26508 written. This is the default.
26509
26510 format
26511 Choose the output format.
26512
26513 Available values are:
26514
26515 binary
26516 Use the specified binary representation (default).
26517
26518 xml Use the specified xml representation.
26519
26520 th_d
26521 Set threshold to detect one word as similar. The option value must
26522 be an integer greater than zero. The default value is 9000.
26523
26524 th_dc
26525 Set threshold to detect all words as similar. The option value must
26526 be an integer greater than zero. The default value is 60000.
26527
26528 th_xh
26529 Set threshold to detect frames as similar. The option value must be
26530 an integer greater than zero. The default value is 116.
26531
26532 th_di
26533 Set the minimum length of a sequence in frames to recognize it as
26534 matching sequence. The option value must be a non negative integer
26535 value. The default value is 0.
26536
26537 th_it
26538 Set the minimum relation, that matching frames to all frames must
26539 have. The option value must be a double value between 0 and 1. The
26540 default value is 0.5.
26541
26542 Examples
26543
26544 • To calculate the signature of an input video and store it in
26545 signature.bin:
26546
26547 ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
26548
26549 • To detect whether two videos match and store the signatures in XML
26550 format in signature0.xml and signature1.xml:
26551
26552 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 -
26553
26554 smartblur
26555 Blur the input video without impacting the outlines.
26556
26557 It accepts the following options:
26558
26559 luma_radius, lr
26560 Set the luma radius. The option value must be a float number in the
26561 range [0.1,5.0] that specifies the variance of the gaussian filter
26562 used to blur the image (slower if larger). Default value is 1.0.
26563
26564 luma_strength, ls
26565 Set the luma strength. The option value must be a float number in
26566 the range [-1.0,1.0] that configures the blurring. A value included
26567 in [0.0,1.0] will blur the image whereas a value included in
26568 [-1.0,0.0] will sharpen the image. Default value is 1.0.
26569
26570 luma_threshold, lt
26571 Set the luma threshold used as a coefficient to determine whether a
26572 pixel should be blurred or not. The option value must be an integer
26573 in the range [-30,30]. A value of 0 will filter all the image, a
26574 value included in [0,30] will filter flat areas and a value
26575 included in [-30,0] will filter edges. Default value is 0.
26576
26577 chroma_radius, cr
26578 Set the chroma radius. The option value must be a float number in
26579 the range [0.1,5.0] that specifies the variance of the gaussian
26580 filter used to blur the image (slower if larger). Default value is
26581 luma_radius.
26582
26583 chroma_strength, cs
26584 Set the chroma strength. The option value must be a float number in
26585 the range [-1.0,1.0] that configures the blurring. A value included
26586 in [0.0,1.0] will blur the image whereas a value included in
26587 [-1.0,0.0] will sharpen the image. Default value is luma_strength.
26588
26589 chroma_threshold, ct
26590 Set the chroma threshold used as a coefficient to determine whether
26591 a pixel should be blurred or not. The option value must be an
26592 integer in the range [-30,30]. A value of 0 will filter all the
26593 image, a value included in [0,30] will filter flat areas and a
26594 value included in [-30,0] will filter edges. Default value is
26595 luma_threshold.
26596
26597 If a chroma option is not explicitly set, the corresponding luma value
26598 is set.
26599
26600 sobel
26601 Apply sobel operator to input video stream.
26602
26603 The filter accepts the following option:
26604
26605 planes
26606 Set which planes will be processed, unprocessed planes will be
26607 copied. By default value 0xf, all planes will be processed.
26608
26609 scale
26610 Set value which will be multiplied with filtered result.
26611
26612 delta
26613 Set value which will be added to filtered result.
26614
26615 Commands
26616
26617 This filter supports the all above options as commands.
26618
26619 spp
26620 Apply a simple postprocessing filter that compresses and decompresses
26621 the image at several (or - in the case of quality level 6 - all) shifts
26622 and average the results.
26623
26624 The filter accepts the following options:
26625
26626 quality
26627 Set quality. This option defines the number of levels for
26628 averaging. It accepts an integer in the range 0-6. If set to 0, the
26629 filter will have no effect. A value of 6 means the higher quality.
26630 For each increment of that value the speed drops by a factor of
26631 approximately 2. Default value is 3.
26632
26633 qp Force a constant quantization parameter. If not set, the filter
26634 will use the QP from the video stream (if available).
26635
26636 mode
26637 Set thresholding mode. Available modes are:
26638
26639 hard
26640 Set hard thresholding (default).
26641
26642 soft
26643 Set soft thresholding (better de-ringing effect, but likely
26644 blurrier).
26645
26646 use_bframe_qp
26647 Enable the use of the QP from the B-Frames if set to 1. Using this
26648 option may cause flicker since the B-Frames have often larger QP.
26649 Default is 0 (not enabled).
26650
26651 Commands
26652
26653 This filter supports the following commands:
26654
26655 quality, level
26656 Set quality level. The value "max" can be used to set the maximum
26657 level, currently 6.
26658
26659 sr
26660 Scale the input by applying one of the super-resolution methods based
26661 on convolutional neural networks. Supported models:
26662
26663 • Super-Resolution Convolutional Neural Network model (SRCNN). See
26664 <https://arxiv.org/abs/1501.00092>.
26665
26666 • Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
26667 See <https://arxiv.org/abs/1609.05158>.
26668
26669 Training scripts as well as scripts for model file (.pb) saving can be
26670 found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
26671 Original repository is at
26672 <https://github.com/HighVoltageRocknRoll/sr.git>.
26673
26674 Native model files (.model) can be generated from TensorFlow model
26675 files (.pb) by using tools/python/convert.py
26676
26677 The filter accepts the following options:
26678
26679 dnn_backend
26680 Specify which DNN backend to use for model loading and execution.
26681 This option accepts the following values:
26682
26683 native
26684 Native implementation of DNN loading and execution.
26685
26686 tensorflow
26687 TensorFlow backend. To enable this backend you need to install
26688 the TensorFlow for C library (see
26689 <https://www.tensorflow.org/install/lang_c>) and configure
26690 FFmpeg with "--enable-libtensorflow"
26691
26692 Default value is native.
26693
26694 model
26695 Set path to model file specifying network architecture and its
26696 parameters. Note that different backends use different file
26697 formats. TensorFlow backend can load files for both formats, while
26698 native backend can load files for only its format.
26699
26700 scale_factor
26701 Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
26702 Default value is 2. Scale factor is necessary for SRCNN model,
26703 because it accepts input upscaled using bicubic upscaling with
26704 proper scale factor.
26705
26706 To get full functionality (such as async execution), please use the
26707 dnn_processing filter.
26708
26709 ssim
26710 Obtain the SSIM (Structural SImilarity Metric) between two input
26711 videos.
26712
26713 This filter takes in input two input videos, the first input is
26714 considered the "main" source and is passed unchanged to the output. The
26715 second input is used as a "reference" video for computing the SSIM.
26716
26717 Both video inputs must have the same resolution and pixel format for
26718 this filter to work correctly. Also it assumes that both inputs have
26719 the same number of frames, which are compared one by one.
26720
26721 The filter stores the calculated SSIM of each frame.
26722
26723 The description of the accepted parameters follows.
26724
26725 stats_file, f
26726 If specified the filter will use the named file to save the SSIM of
26727 each individual frame. When filename equals "-" the data is sent to
26728 standard output.
26729
26730 The file printed if stats_file is selected, contains a sequence of
26731 key/value pairs of the form key:value for each compared couple of
26732 frames.
26733
26734 A description of each shown parameter follows:
26735
26736 n sequential number of the input frame, starting from 1
26737
26738 Y, U, V, R, G, B
26739 SSIM of the compared frames for the component specified by the
26740 suffix.
26741
26742 All SSIM of the compared frames for the whole frame.
26743
26744 dB Same as above but in dB representation.
26745
26746 This filter also supports the framesync options.
26747
26748 Examples
26749
26750 • For example:
26751
26752 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
26753 [main][ref] ssim="stats_file=stats.log" [out]
26754
26755 On this example the input file being processed is compared with the
26756 reference file ref_movie.mpg. The SSIM of each individual frame is
26757 stored in stats.log.
26758
26759 • Another example with both psnr and ssim at same time:
26760
26761 ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null -
26762
26763 • Another example with different containers:
26764
26765 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 -
26766
26767 stereo3d
26768 Convert between different stereoscopic image formats.
26769
26770 The filters accept the following options:
26771
26772 in Set stereoscopic image format of input.
26773
26774 Available values for input image formats are:
26775
26776 sbsl
26777 side by side parallel (left eye left, right eye right)
26778
26779 sbsr
26780 side by side crosseye (right eye left, left eye right)
26781
26782 sbs2l
26783 side by side parallel with half width resolution (left eye
26784 left, right eye right)
26785
26786 sbs2r
26787 side by side crosseye with half width resolution (right eye
26788 left, left eye right)
26789
26790 abl
26791 tbl above-below (left eye above, right eye below)
26792
26793 abr
26794 tbr above-below (right eye above, left eye below)
26795
26796 ab2l
26797 tb2l
26798 above-below with half height resolution (left eye above, right
26799 eye below)
26800
26801 ab2r
26802 tb2r
26803 above-below with half height resolution (right eye above, left
26804 eye below)
26805
26806 al alternating frames (left eye first, right eye second)
26807
26808 ar alternating frames (right eye first, left eye second)
26809
26810 irl interleaved rows (left eye has top row, right eye starts on
26811 next row)
26812
26813 irr interleaved rows (right eye has top row, left eye starts on
26814 next row)
26815
26816 icl interleaved columns, left eye first
26817
26818 icr interleaved columns, right eye first
26819
26820 Default value is sbsl.
26821
26822 out Set stereoscopic image format of output.
26823
26824 sbsl
26825 side by side parallel (left eye left, right eye right)
26826
26827 sbsr
26828 side by side crosseye (right eye left, left eye right)
26829
26830 sbs2l
26831 side by side parallel with half width resolution (left eye
26832 left, right eye right)
26833
26834 sbs2r
26835 side by side crosseye with half width resolution (right eye
26836 left, left eye right)
26837
26838 abl
26839 tbl above-below (left eye above, right eye below)
26840
26841 abr
26842 tbr above-below (right eye above, left eye below)
26843
26844 ab2l
26845 tb2l
26846 above-below with half height resolution (left eye above, right
26847 eye below)
26848
26849 ab2r
26850 tb2r
26851 above-below with half height resolution (right eye above, left
26852 eye below)
26853
26854 al alternating frames (left eye first, right eye second)
26855
26856 ar alternating frames (right eye first, left eye second)
26857
26858 irl interleaved rows (left eye has top row, right eye starts on
26859 next row)
26860
26861 irr interleaved rows (right eye has top row, left eye starts on
26862 next row)
26863
26864 arbg
26865 anaglyph red/blue gray (red filter on left eye, blue filter on
26866 right eye)
26867
26868 argg
26869 anaglyph red/green gray (red filter on left eye, green filter
26870 on right eye)
26871
26872 arcg
26873 anaglyph red/cyan gray (red filter on left eye, cyan filter on
26874 right eye)
26875
26876 arch
26877 anaglyph red/cyan half colored (red filter on left eye, cyan
26878 filter on right eye)
26879
26880 arcc
26881 anaglyph red/cyan color (red filter on left eye, cyan filter on
26882 right eye)
26883
26884 arcd
26885 anaglyph red/cyan color optimized with the least squares
26886 projection of dubois (red filter on left eye, cyan filter on
26887 right eye)
26888
26889 agmg
26890 anaglyph green/magenta gray (green filter on left eye, magenta
26891 filter on right eye)
26892
26893 agmh
26894 anaglyph green/magenta half colored (green filter on left eye,
26895 magenta filter on right eye)
26896
26897 agmc
26898 anaglyph green/magenta colored (green filter on left eye,
26899 magenta filter on right eye)
26900
26901 agmd
26902 anaglyph green/magenta color optimized with the least squares
26903 projection of dubois (green filter on left eye, magenta filter
26904 on right eye)
26905
26906 aybg
26907 anaglyph yellow/blue gray (yellow filter on left eye, blue
26908 filter on right eye)
26909
26910 aybh
26911 anaglyph yellow/blue half colored (yellow filter on left eye,
26912 blue filter on right eye)
26913
26914 aybc
26915 anaglyph yellow/blue colored (yellow filter on left eye, blue
26916 filter on right eye)
26917
26918 aybd
26919 anaglyph yellow/blue color optimized with the least squares
26920 projection of dubois (yellow filter on left eye, blue filter on
26921 right eye)
26922
26923 ml mono output (left eye only)
26924
26925 mr mono output (right eye only)
26926
26927 chl checkerboard, left eye first
26928
26929 chr checkerboard, right eye first
26930
26931 icl interleaved columns, left eye first
26932
26933 icr interleaved columns, right eye first
26934
26935 hdmi
26936 HDMI frame pack
26937
26938 Default value is arcd.
26939
26940 Examples
26941
26942 • Convert input video from side by side parallel to anaglyph
26943 yellow/blue dubois:
26944
26945 stereo3d=sbsl:aybd
26946
26947 • Convert input video from above below (left eye above, right eye
26948 below) to side by side crosseye.
26949
26950 stereo3d=abl:sbsr
26951
26952 streamselect, astreamselect
26953 Select video or audio streams.
26954
26955 The filter accepts the following options:
26956
26957 inputs
26958 Set number of inputs. Default is 2.
26959
26960 map Set input indexes to remap to outputs.
26961
26962 Commands
26963
26964 The "streamselect" and "astreamselect" filter supports the following
26965 commands:
26966
26967 map Set input indexes to remap to outputs.
26968
26969 Examples
26970
26971 • Select first 5 seconds 1st stream and rest of time 2nd stream:
26972
26973 sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
26974
26975 • Same as above, but for audio:
26976
26977 asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
26978
26979 subtitles
26980 Draw subtitles on top of input video using the libass library.
26981
26982 To enable compilation of this filter you need to configure FFmpeg with
26983 "--enable-libass". This filter also requires a build with libavcodec
26984 and libavformat to convert the passed subtitles file to ASS (Advanced
26985 Substation Alpha) subtitles format.
26986
26987 The filter accepts the following options:
26988
26989 filename, f
26990 Set the filename of the subtitle file to read. It must be
26991 specified.
26992
26993 original_size
26994 Specify the size of the original video, the video for which the ASS
26995 file was composed. For the syntax of this option, check the "Video
26996 size" section in the ffmpeg-utils manual. Due to a misdesign in
26997 ASS aspect ratio arithmetic, this is necessary to correctly scale
26998 the fonts if the aspect ratio has been changed.
26999
27000 fontsdir
27001 Set a directory path containing fonts that can be used by the
27002 filter. These fonts will be used in addition to whatever the font
27003 provider uses.
27004
27005 alpha
27006 Process alpha channel, by default alpha channel is untouched.
27007
27008 charenc
27009 Set subtitles input character encoding. "subtitles" filter only.
27010 Only useful if not UTF-8.
27011
27012 stream_index, si
27013 Set subtitles stream index. "subtitles" filter only.
27014
27015 force_style
27016 Override default style or script info parameters of the subtitles.
27017 It accepts a string containing ASS style format "KEY=VALUE" couples
27018 separated by ",".
27019
27020 If the first key is not specified, it is assumed that the first value
27021 specifies the filename.
27022
27023 For example, to render the file sub.srt on top of the input video, use
27024 the command:
27025
27026 subtitles=sub.srt
27027
27028 which is equivalent to:
27029
27030 subtitles=filename=sub.srt
27031
27032 To render the default subtitles stream from file video.mkv, use:
27033
27034 subtitles=video.mkv
27035
27036 To render the second subtitles stream from that file, use:
27037
27038 subtitles=video.mkv:si=1
27039
27040 To make the subtitles stream from sub.srt appear in 80% transparent
27041 blue "DejaVu Serif", use:
27042
27043 subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
27044
27045 super2xsai
27046 Scale the input by 2x and smooth using the Super2xSaI (Scale and
27047 Interpolate) pixel art scaling algorithm.
27048
27049 Useful for enlarging pixel art images without reducing sharpness.
27050
27051 swaprect
27052 Swap two rectangular objects in video.
27053
27054 This filter accepts the following options:
27055
27056 w Set object width.
27057
27058 h Set object height.
27059
27060 x1 Set 1st rect x coordinate.
27061
27062 y1 Set 1st rect y coordinate.
27063
27064 x2 Set 2nd rect x coordinate.
27065
27066 y2 Set 2nd rect y coordinate.
27067
27068 All expressions are evaluated once for each frame.
27069
27070 The all options are expressions containing the following constants:
27071
27072 w
27073 h The input width and height.
27074
27075 a same as w / h
27076
27077 sar input sample aspect ratio
27078
27079 dar input display aspect ratio, it is the same as (w / h) * sar
27080
27081 n The number of the input frame, starting from 0.
27082
27083 t The timestamp expressed in seconds. It's NAN if the input timestamp
27084 is unknown.
27085
27086 pos the position in the file of the input frame, NAN if unknown
27087
27088 Commands
27089
27090 This filter supports the all above options as commands.
27091
27092 swapuv
27093 Swap U & V plane.
27094
27095 tblend
27096 Blend successive video frames.
27097
27098 See blend
27099
27100 telecine
27101 Apply telecine process to the video.
27102
27103 This filter accepts the following options:
27104
27105 first_field
27106 top, t
27107 top field first
27108
27109 bottom, b
27110 bottom field first The default value is "top".
27111
27112 pattern
27113 A string of numbers representing the pulldown pattern you wish to
27114 apply. The default value is 23.
27115
27116 Some typical patterns:
27117
27118 NTSC output (30i):
27119 27.5p: 32222
27120 24p: 23 (classic)
27121 24p: 2332 (preferred)
27122 20p: 33
27123 18p: 334
27124 16p: 3444
27125
27126 PAL output (25i):
27127 27.5p: 12222
27128 24p: 222222222223 ("Euro pulldown")
27129 16.67p: 33
27130 16p: 33333334
27131
27132 thistogram
27133 Compute and draw a color distribution histogram for the input video
27134 across time.
27135
27136 Unlike histogram video filter which only shows histogram of single
27137 input frame at certain time, this filter shows also past histograms of
27138 number of frames defined by "width" option.
27139
27140 The computed histogram is a representation of the color component
27141 distribution in an image.
27142
27143 The filter accepts the following options:
27144
27145 width, w
27146 Set width of single color component output. Default value is 0.
27147 Value of 0 means width will be picked from input video. This also
27148 set number of passed histograms to keep. Allowed range is [0,
27149 8192].
27150
27151 display_mode, d
27152 Set display mode. It accepts the following values:
27153
27154 stack
27155 Per color component graphs are placed below each other.
27156
27157 parade
27158 Per color component graphs are placed side by side.
27159
27160 overlay
27161 Presents information identical to that in the "parade", except
27162 that the graphs representing color components are superimposed
27163 directly over one another.
27164
27165 Default is "stack".
27166
27167 levels_mode, m
27168 Set mode. Can be either "linear", or "logarithmic". Default is
27169 "linear".
27170
27171 components, c
27172 Set what color components to display. Default is 7.
27173
27174 bgopacity, b
27175 Set background opacity. Default is 0.9.
27176
27177 envelope, e
27178 Show envelope. Default is disabled.
27179
27180 ecolor, ec
27181 Set envelope color. Default is "gold".
27182
27183 slide
27184 Set slide mode.
27185
27186 Available values for slide is:
27187
27188 frame
27189 Draw new frame when right border is reached.
27190
27191 replace
27192 Replace old columns with new ones.
27193
27194 scroll
27195 Scroll from right to left.
27196
27197 rscroll
27198 Scroll from left to right.
27199
27200 picture
27201 Draw single picture.
27202
27203 Default is "replace".
27204
27205 threshold
27206 Apply threshold effect to video stream.
27207
27208 This filter needs four video streams to perform thresholding. First
27209 stream is stream we are filtering. Second stream is holding threshold
27210 values, third stream is holding min values, and last, fourth stream is
27211 holding max values.
27212
27213 The filter accepts the following option:
27214
27215 planes
27216 Set which planes will be processed, unprocessed planes will be
27217 copied. By default value 0xf, all planes will be processed.
27218
27219 For example if first stream pixel's component value is less then
27220 threshold value of pixel component from 2nd threshold stream, third
27221 stream value will picked, otherwise fourth stream pixel component value
27222 will be picked.
27223
27224 Using color source filter one can perform various types of
27225 thresholding:
27226
27227 Commands
27228
27229 This filter supports the all options as commands.
27230
27231 Examples
27232
27233 • Binary threshold, using gray color as threshold:
27234
27235 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
27236
27237 • Inverted binary threshold, using gray color as threshold:
27238
27239 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
27240
27241 • Truncate binary threshold, using gray color as threshold:
27242
27243 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
27244
27245 • Threshold to zero, using gray color as threshold:
27246
27247 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
27248
27249 • Inverted threshold to zero, using gray color as threshold:
27250
27251 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
27252
27253 thumbnail
27254 Select the most representative frame in a given sequence of consecutive
27255 frames.
27256
27257 The filter accepts the following options:
27258
27259 n Set the frames batch size to analyze; in a set of n frames, the
27260 filter will pick one of them, and then handle the next batch of n
27261 frames until the end. Default is 100.
27262
27263 Since the filter keeps track of the whole frames sequence, a bigger n
27264 value will result in a higher memory usage, so a high value is not
27265 recommended.
27266
27267 Examples
27268
27269 • Extract one picture each 50 frames:
27270
27271 thumbnail=50
27272
27273 • Complete example of a thumbnail creation with ffmpeg:
27274
27275 ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
27276
27277 tile
27278 Tile several successive frames together.
27279
27280 The untile filter can do the reverse.
27281
27282 The filter accepts the following options:
27283
27284 layout
27285 Set the grid size (i.e. the number of lines and columns). For the
27286 syntax of this option, check the "Video size" section in the
27287 ffmpeg-utils manual.
27288
27289 nb_frames
27290 Set the maximum number of frames to render in the given area. It
27291 must be less than or equal to wxh. The default value is 0, meaning
27292 all the area will be used.
27293
27294 margin
27295 Set the outer border margin in pixels.
27296
27297 padding
27298 Set the inner border thickness (i.e. the number of pixels between
27299 frames). For more advanced padding options (such as having
27300 different values for the edges), refer to the pad video filter.
27301
27302 color
27303 Specify the color of the unused area. For the syntax of this
27304 option, check the "Color" section in the ffmpeg-utils manual. The
27305 default value of color is "black".
27306
27307 overlap
27308 Set the number of frames to overlap when tiling several successive
27309 frames together. The value must be between 0 and nb_frames - 1.
27310
27311 init_padding
27312 Set the number of frames to initially be empty before displaying
27313 first output frame. This controls how soon will one get first
27314 output frame. The value must be between 0 and nb_frames - 1.
27315
27316 Examples
27317
27318 • Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
27319 movie:
27320
27321 ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
27322
27323 The -vsync 0 is necessary to prevent ffmpeg from duplicating each
27324 output frame to accommodate the originally detected frame rate.
27325
27326 • Display 5 pictures in an area of "3x2" frames, with 7 pixels
27327 between them, and 2 pixels of initial margin, using mixed flat and
27328 named options:
27329
27330 tile=3x2:nb_frames=5:padding=7:margin=2
27331
27332 tinterlace
27333 Perform various types of temporal field interlacing.
27334
27335 Frames are counted starting from 1, so the first input frame is
27336 considered odd.
27337
27338 The filter accepts the following options:
27339
27340 mode
27341 Specify the mode of the interlacing. This option can also be
27342 specified as a value alone. See below for a list of values for this
27343 option.
27344
27345 Available values are:
27346
27347 merge, 0
27348 Move odd frames into the upper field, even into the lower
27349 field, generating a double height frame at half frame rate.
27350
27351 ------> time
27352 Input:
27353 Frame 1 Frame 2 Frame 3 Frame 4
27354
27355 11111 22222 33333 44444
27356 11111 22222 33333 44444
27357 11111 22222 33333 44444
27358 11111 22222 33333 44444
27359
27360 Output:
27361 11111 33333
27362 22222 44444
27363 11111 33333
27364 22222 44444
27365 11111 33333
27366 22222 44444
27367 11111 33333
27368 22222 44444
27369
27370 drop_even, 1
27371 Only output odd frames, even frames are dropped, generating a
27372 frame with unchanged height at half frame rate.
27373
27374 ------> time
27375 Input:
27376 Frame 1 Frame 2 Frame 3 Frame 4
27377
27378 11111 22222 33333 44444
27379 11111 22222 33333 44444
27380 11111 22222 33333 44444
27381 11111 22222 33333 44444
27382
27383 Output:
27384 11111 33333
27385 11111 33333
27386 11111 33333
27387 11111 33333
27388
27389 drop_odd, 2
27390 Only output even frames, odd frames are dropped, generating a
27391 frame with unchanged height at half frame rate.
27392
27393 ------> time
27394 Input:
27395 Frame 1 Frame 2 Frame 3 Frame 4
27396
27397 11111 22222 33333 44444
27398 11111 22222 33333 44444
27399 11111 22222 33333 44444
27400 11111 22222 33333 44444
27401
27402 Output:
27403 22222 44444
27404 22222 44444
27405 22222 44444
27406 22222 44444
27407
27408 pad, 3
27409 Expand each frame to full height, but pad alternate lines with
27410 black, generating a frame with double height at the same input
27411 frame rate.
27412
27413 ------> time
27414 Input:
27415 Frame 1 Frame 2 Frame 3 Frame 4
27416
27417 11111 22222 33333 44444
27418 11111 22222 33333 44444
27419 11111 22222 33333 44444
27420 11111 22222 33333 44444
27421
27422 Output:
27423 11111 ..... 33333 .....
27424 ..... 22222 ..... 44444
27425 11111 ..... 33333 .....
27426 ..... 22222 ..... 44444
27427 11111 ..... 33333 .....
27428 ..... 22222 ..... 44444
27429 11111 ..... 33333 .....
27430 ..... 22222 ..... 44444
27431
27432 interleave_top, 4
27433 Interleave the upper field from odd frames with the lower field
27434 from even frames, generating a frame with unchanged height at
27435 half frame rate.
27436
27437 ------> time
27438 Input:
27439 Frame 1 Frame 2 Frame 3 Frame 4
27440
27441 11111<- 22222 33333<- 44444
27442 11111 22222<- 33333 44444<-
27443 11111<- 22222 33333<- 44444
27444 11111 22222<- 33333 44444<-
27445
27446 Output:
27447 11111 33333
27448 22222 44444
27449 11111 33333
27450 22222 44444
27451
27452 interleave_bottom, 5
27453 Interleave the lower field from odd frames with the upper field
27454 from even frames, generating a frame with unchanged height at
27455 half frame rate.
27456
27457 ------> time
27458 Input:
27459 Frame 1 Frame 2 Frame 3 Frame 4
27460
27461 11111 22222<- 33333 44444<-
27462 11111<- 22222 33333<- 44444
27463 11111 22222<- 33333 44444<-
27464 11111<- 22222 33333<- 44444
27465
27466 Output:
27467 22222 44444
27468 11111 33333
27469 22222 44444
27470 11111 33333
27471
27472 interlacex2, 6
27473 Double frame rate with unchanged height. Frames are inserted
27474 each containing the second temporal field from the previous
27475 input frame and the first temporal field from the next input
27476 frame. This mode relies on the top_field_first flag. Useful for
27477 interlaced video displays with no field synchronisation.
27478
27479 ------> time
27480 Input:
27481 Frame 1 Frame 2 Frame 3 Frame 4
27482
27483 11111 22222 33333 44444
27484 11111 22222 33333 44444
27485 11111 22222 33333 44444
27486 11111 22222 33333 44444
27487
27488 Output:
27489 11111 22222 22222 33333 33333 44444 44444
27490 11111 11111 22222 22222 33333 33333 44444
27491 11111 22222 22222 33333 33333 44444 44444
27492 11111 11111 22222 22222 33333 33333 44444
27493
27494 mergex2, 7
27495 Move odd frames into the upper field, even into the lower
27496 field, generating a double height frame at same frame rate.
27497
27498 ------> time
27499 Input:
27500 Frame 1 Frame 2 Frame 3 Frame 4
27501
27502 11111 22222 33333 44444
27503 11111 22222 33333 44444
27504 11111 22222 33333 44444
27505 11111 22222 33333 44444
27506
27507 Output:
27508 11111 33333 33333 55555
27509 22222 22222 44444 44444
27510 11111 33333 33333 55555
27511 22222 22222 44444 44444
27512 11111 33333 33333 55555
27513 22222 22222 44444 44444
27514 11111 33333 33333 55555
27515 22222 22222 44444 44444
27516
27517 Numeric values are deprecated but are accepted for backward
27518 compatibility reasons.
27519
27520 Default mode is "merge".
27521
27522 flags
27523 Specify flags influencing the filter process.
27524
27525 Available value for flags is:
27526
27527 low_pass_filter, vlpf
27528 Enable linear vertical low-pass filtering in the filter.
27529 Vertical low-pass filtering is required when creating an
27530 interlaced destination from a progressive source which contains
27531 high-frequency vertical detail. Filtering will reduce interlace
27532 'twitter' and Moire patterning.
27533
27534 complex_filter, cvlpf
27535 Enable complex vertical low-pass filtering. This will slightly
27536 less reduce interlace 'twitter' and Moire patterning but better
27537 retain detail and subjective sharpness impression.
27538
27539 bypass_il
27540 Bypass already interlaced frames, only adjust the frame rate.
27541
27542 Vertical low-pass filtering and bypassing already interlaced frames
27543 can only be enabled for mode interleave_top and interleave_bottom.
27544
27545 tmedian
27546 Pick median pixels from several successive input video frames.
27547
27548 The filter accepts the following options:
27549
27550 radius
27551 Set radius of median filter. Default is 1. Allowed range is from 1
27552 to 127.
27553
27554 planes
27555 Set which planes to filter. Default value is 15, by which all
27556 planes are processed.
27557
27558 percentile
27559 Set median percentile. Default value is 0.5. Default value of 0.5
27560 will pick always median values, while 0 will pick minimum values,
27561 and 1 maximum values.
27562
27563 Commands
27564
27565 This filter supports all above options as commands, excluding option
27566 "radius".
27567
27568 tmidequalizer
27569 Apply Temporal Midway Video Equalization effect.
27570
27571 Midway Video Equalization adjusts a sequence of video frames to have
27572 the same histograms, while maintaining their dynamics as much as
27573 possible. It's useful for e.g. matching exposures from a video frames
27574 sequence.
27575
27576 This filter accepts the following option:
27577
27578 radius
27579 Set filtering radius. Default is 5. Allowed range is from 1 to 127.
27580
27581 sigma
27582 Set filtering sigma. Default is 0.5. This controls strength of
27583 filtering. Setting this option to 0 effectively does nothing.
27584
27585 planes
27586 Set which planes to process. Default is 15, which is all available
27587 planes.
27588
27589 tmix
27590 Mix successive video frames.
27591
27592 A description of the accepted options follows.
27593
27594 frames
27595 The number of successive frames to mix. If unspecified, it defaults
27596 to 3.
27597
27598 weights
27599 Specify weight of each input video frame. Each weight is separated
27600 by space. If number of weights is smaller than number of frames
27601 last specified weight will be used for all remaining unset weights.
27602
27603 scale
27604 Specify scale, if it is set it will be multiplied with sum of each
27605 weight multiplied with pixel values to give final destination pixel
27606 value. By default scale is auto scaled to sum of weights.
27607
27608 Examples
27609
27610 • Average 7 successive frames:
27611
27612 tmix=frames=7:weights="1 1 1 1 1 1 1"
27613
27614 • Apply simple temporal convolution:
27615
27616 tmix=frames=3:weights="-1 3 -1"
27617
27618 • Similar as above but only showing temporal differences:
27619
27620 tmix=frames=3:weights="-1 2 -1":scale=1
27621
27622 Commands
27623
27624 This filter supports the following commands:
27625
27626 weights
27627 scale
27628 Syntax is same as option with same name.
27629
27630 tonemap
27631 Tone map colors from different dynamic ranges.
27632
27633 This filter expects data in single precision floating point, as it
27634 needs to operate on (and can output) out-of-range values. Another
27635 filter, such as zscale, is needed to convert the resulting frame to a
27636 usable format.
27637
27638 The tonemapping algorithms implemented only work on linear light, so
27639 input data should be linearized beforehand (and possibly correctly
27640 tagged).
27641
27642 ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
27643
27644 Options
27645
27646 The filter accepts the following options.
27647
27648 tonemap
27649 Set the tone map algorithm to use.
27650
27651 Possible values are:
27652
27653 none
27654 Do not apply any tone map, only desaturate overbright pixels.
27655
27656 clip
27657 Hard-clip any out-of-range values. Use it for perfect color
27658 accuracy for in-range values, while distorting out-of-range
27659 values.
27660
27661 linear
27662 Stretch the entire reference gamut to a linear multiple of the
27663 display.
27664
27665 gamma
27666 Fit a logarithmic transfer between the tone curves.
27667
27668 reinhard
27669 Preserve overall image brightness with a simple curve, using
27670 nonlinear contrast, which results in flattening details and
27671 degrading color accuracy.
27672
27673 hable
27674 Preserve both dark and bright details better than reinhard, at
27675 the cost of slightly darkening everything. Use it when detail
27676 preservation is more important than color and brightness
27677 accuracy.
27678
27679 mobius
27680 Smoothly map out-of-range values, while retaining contrast and
27681 colors for in-range material as much as possible. Use it when
27682 color accuracy is more important than detail preservation.
27683
27684 Default is none.
27685
27686 param
27687 Tune the tone mapping algorithm.
27688
27689 This affects the following algorithms:
27690
27691 none
27692 Ignored.
27693
27694 linear
27695 Specifies the scale factor to use while stretching. Default to
27696 1.0.
27697
27698 gamma
27699 Specifies the exponent of the function. Default to 1.8.
27700
27701 clip
27702 Specify an extra linear coefficient to multiply into the signal
27703 before clipping. Default to 1.0.
27704
27705 reinhard
27706 Specify the local contrast coefficient at the display peak.
27707 Default to 0.5, which means that in-gamut values will be about
27708 half as bright as when clipping.
27709
27710 hable
27711 Ignored.
27712
27713 mobius
27714 Specify the transition point from linear to mobius transform.
27715 Every value below this point is guaranteed to be mapped 1:1.
27716 The higher the value, the more accurate the result will be, at
27717 the cost of losing bright details. Default to 0.3, which due
27718 to the steep initial slope still preserves in-range colors
27719 fairly accurately.
27720
27721 desat
27722 Apply desaturation for highlights that exceed this level of
27723 brightness. The higher the parameter, the more color information
27724 will be preserved. This setting helps prevent unnaturally blown-out
27725 colors for super-highlights, by (smoothly) turning into white
27726 instead. This makes images feel more natural, at the cost of
27727 reducing information about out-of-range colors.
27728
27729 The default of 2.0 is somewhat conservative and will mostly just
27730 apply to skies or directly sunlit surfaces. A setting of 0.0
27731 disables this option.
27732
27733 This option works only if the input frame has a supported color
27734 tag.
27735
27736 peak
27737 Override signal/nominal/reference peak with this value. Useful when
27738 the embedded peak information in display metadata is not reliable
27739 or when tone mapping from a lower range to a higher range.
27740
27741 tpad
27742 Temporarily pad video frames.
27743
27744 The filter accepts the following options:
27745
27746 start
27747 Specify number of delay frames before input video stream. Default
27748 is 0.
27749
27750 stop
27751 Specify number of padding frames after input video stream. Set to
27752 -1 to pad indefinitely. Default is 0.
27753
27754 start_mode
27755 Set kind of frames added to beginning of stream. Can be either add
27756 or clone. With add frames of solid-color are added. With clone
27757 frames are clones of first frame. Default is add.
27758
27759 stop_mode
27760 Set kind of frames added to end of stream. Can be either add or
27761 clone. With add frames of solid-color are added. With clone
27762 frames are clones of last frame. Default is add.
27763
27764 start_duration, stop_duration
27765 Specify the duration of the start/stop delay. See the Time duration
27766 section in the ffmpeg-utils(1) manual for the accepted syntax.
27767 These options override start and stop. Default is 0.
27768
27769 color
27770 Specify the color of the padded area. For the syntax of this
27771 option, check the "Color" section in the ffmpeg-utils manual.
27772
27773 The default value of color is "black".
27774
27775 transpose
27776 Transpose rows with columns in the input video and optionally flip it.
27777
27778 It accepts the following parameters:
27779
27780 dir Specify the transposition direction.
27781
27782 Can assume the following values:
27783
27784 0, 4, cclock_flip
27785 Rotate by 90 degrees counterclockwise and vertically flip
27786 (default), that is:
27787
27788 L.R L.l
27789 . . -> . .
27790 l.r R.r
27791
27792 1, 5, clock
27793 Rotate by 90 degrees clockwise, that is:
27794
27795 L.R l.L
27796 . . -> . .
27797 l.r r.R
27798
27799 2, 6, cclock
27800 Rotate by 90 degrees counterclockwise, that is:
27801
27802 L.R R.r
27803 . . -> . .
27804 l.r L.l
27805
27806 3, 7, clock_flip
27807 Rotate by 90 degrees clockwise and vertically flip, that is:
27808
27809 L.R r.R
27810 . . -> . .
27811 l.r l.L
27812
27813 For values between 4-7, the transposition is only done if the input
27814 video geometry is portrait and not landscape. These values are
27815 deprecated, the "passthrough" option should be used instead.
27816
27817 Numerical values are deprecated, and should be dropped in favor of
27818 symbolic constants.
27819
27820 passthrough
27821 Do not apply the transposition if the input geometry matches the
27822 one specified by the specified value. It accepts the following
27823 values:
27824
27825 none
27826 Always apply transposition.
27827
27828 portrait
27829 Preserve portrait geometry (when height >= width).
27830
27831 landscape
27832 Preserve landscape geometry (when width >= height).
27833
27834 Default value is "none".
27835
27836 For example to rotate by 90 degrees clockwise and preserve portrait
27837 layout:
27838
27839 transpose=dir=1:passthrough=portrait
27840
27841 The command above can also be specified as:
27842
27843 transpose=1:portrait
27844
27845 transpose_npp
27846 Transpose rows with columns in the input video and optionally flip it.
27847 For more in depth examples see the transpose video filter, which shares
27848 mostly the same options.
27849
27850 It accepts the following parameters:
27851
27852 dir Specify the transposition direction.
27853
27854 Can assume the following values:
27855
27856 cclock_flip
27857 Rotate by 90 degrees counterclockwise and vertically flip.
27858 (default)
27859
27860 clock
27861 Rotate by 90 degrees clockwise.
27862
27863 cclock
27864 Rotate by 90 degrees counterclockwise.
27865
27866 clock_flip
27867 Rotate by 90 degrees clockwise and vertically flip.
27868
27869 passthrough
27870 Do not apply the transposition if the input geometry matches the
27871 one specified by the specified value. It accepts the following
27872 values:
27873
27874 none
27875 Always apply transposition. (default)
27876
27877 portrait
27878 Preserve portrait geometry (when height >= width).
27879
27880 landscape
27881 Preserve landscape geometry (when width >= height).
27882
27883 trim
27884 Trim the input so that the output contains one continuous subpart of
27885 the input.
27886
27887 It accepts the following parameters:
27888
27889 start
27890 Specify the time of the start of the kept section, i.e. the frame
27891 with the timestamp start will be the first frame in the output.
27892
27893 end Specify the time of the first frame that will be dropped, i.e. the
27894 frame immediately preceding the one with the timestamp end will be
27895 the last frame in the output.
27896
27897 start_pts
27898 This is the same as start, except this option sets the start
27899 timestamp in timebase units instead of seconds.
27900
27901 end_pts
27902 This is the same as end, except this option sets the end timestamp
27903 in timebase units instead of seconds.
27904
27905 duration
27906 The maximum duration of the output in seconds.
27907
27908 start_frame
27909 The number of the first frame that should be passed to the output.
27910
27911 end_frame
27912 The number of the first frame that should be dropped.
27913
27914 start, end, and duration are expressed as time duration specifications;
27915 see the Time duration section in the ffmpeg-utils(1) manual for the
27916 accepted syntax.
27917
27918 Note that the first two sets of the start/end options and the duration
27919 option look at the frame timestamp, while the _frame variants simply
27920 count the frames that pass through the filter. Also note that this
27921 filter does not modify the timestamps. If you wish for the output
27922 timestamps to start at zero, insert a setpts filter after the trim
27923 filter.
27924
27925 If multiple start or end options are set, this filter tries to be
27926 greedy and keep all the frames that match at least one of the specified
27927 constraints. To keep only the part that matches all the constraints at
27928 once, chain multiple trim filters.
27929
27930 The defaults are such that all the input is kept. So it is possible to
27931 set e.g. just the end values to keep everything before the specified
27932 time.
27933
27934 Examples:
27935
27936 • Drop everything except the second minute of input:
27937
27938 ffmpeg -i INPUT -vf trim=60:120
27939
27940 • Keep only the first second:
27941
27942 ffmpeg -i INPUT -vf trim=duration=1
27943
27944 unpremultiply
27945 Apply alpha unpremultiply effect to input video stream using first
27946 plane of second stream as alpha.
27947
27948 Both streams must have same dimensions and same pixel format.
27949
27950 The filter accepts the following option:
27951
27952 planes
27953 Set which planes will be processed, unprocessed planes will be
27954 copied. By default value 0xf, all planes will be processed.
27955
27956 If the format has 1 or 2 components, then luma is bit 0. If the
27957 format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
27958 is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
27959 chroma-U and bit 2 is chroma-V. If present, the alpha channel is
27960 always the last bit.
27961
27962 inplace
27963 Do not require 2nd input for processing, instead use alpha plane
27964 from input stream.
27965
27966 unsharp
27967 Sharpen or blur the input video.
27968
27969 It accepts the following parameters:
27970
27971 luma_msize_x, lx
27972 Set the luma matrix horizontal size. It must be an odd integer
27973 between 3 and 23. The default value is 5.
27974
27975 luma_msize_y, ly
27976 Set the luma matrix vertical size. It must be an odd integer
27977 between 3 and 23. The default value is 5.
27978
27979 luma_amount, la
27980 Set the luma effect strength. It must be a floating point number,
27981 reasonable values lay between -1.5 and 1.5.
27982
27983 Negative values will blur the input video, while positive values
27984 will sharpen it, a value of zero will disable the effect.
27985
27986 Default value is 1.0.
27987
27988 chroma_msize_x, cx
27989 Set the chroma matrix horizontal size. It must be an odd integer
27990 between 3 and 23. The default value is 5.
27991
27992 chroma_msize_y, cy
27993 Set the chroma matrix vertical size. It must be an odd integer
27994 between 3 and 23. The default value is 5.
27995
27996 chroma_amount, ca
27997 Set the chroma effect strength. It must be a floating point number,
27998 reasonable values lay between -1.5 and 1.5.
27999
28000 Negative values will blur the input video, while positive values
28001 will sharpen it, a value of zero will disable the effect.
28002
28003 Default value is 0.0.
28004
28005 All parameters are optional and default to the equivalent of the string
28006 '5:5:1.0:5:5:0.0'.
28007
28008 Examples
28009
28010 • Apply strong luma sharpen effect:
28011
28012 unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
28013
28014 • Apply a strong blur of both luma and chroma parameters:
28015
28016 unsharp=7:7:-2:7:7:-2
28017
28018 untile
28019 Decompose a video made of tiled images into the individual images.
28020
28021 The frame rate of the output video is the frame rate of the input video
28022 multiplied by the number of tiles.
28023
28024 This filter does the reverse of tile.
28025
28026 The filter accepts the following options:
28027
28028 layout
28029 Set the grid size (i.e. the number of lines and columns). For the
28030 syntax of this option, check the "Video size" section in the
28031 ffmpeg-utils manual.
28032
28033 Examples
28034
28035 • Produce a 1-second video from a still image file made of 25 frames
28036 stacked vertically, like an analogic film reel:
28037
28038 ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
28039
28040 uspp
28041 Apply ultra slow/simple postprocessing filter that compresses and
28042 decompresses the image at several (or - in the case of quality level 8
28043 - all) shifts and average the results.
28044
28045 The way this differs from the behavior of spp is that uspp actually
28046 encodes & decodes each case with libavcodec Snow, whereas spp uses a
28047 simplified intra only 8x8 DCT similar to MJPEG.
28048
28049 This filter is only available in ffmpeg version 4.4 or earlier.
28050
28051 The filter accepts the following options:
28052
28053 quality
28054 Set quality. This option defines the number of levels for
28055 averaging. It accepts an integer in the range 0-8. If set to 0, the
28056 filter will have no effect. A value of 8 means the higher quality.
28057 For each increment of that value the speed drops by a factor of
28058 approximately 2. Default value is 3.
28059
28060 qp Force a constant quantization parameter. If not set, the filter
28061 will use the QP from the video stream (if available).
28062
28063 v360
28064 Convert 360 videos between various formats.
28065
28066 The filter accepts the following options:
28067
28068 input
28069 output
28070 Set format of the input/output video.
28071
28072 Available formats:
28073
28074 e
28075 equirect
28076 Equirectangular projection.
28077
28078 c3x2
28079 c6x1
28080 c1x6
28081 Cubemap with 3x2/6x1/1x6 layout.
28082
28083 Format specific options:
28084
28085 in_pad
28086 out_pad
28087 Set padding proportion for the input/output cubemap. Values
28088 in decimals.
28089
28090 Example values:
28091
28092 0 No padding.
28093
28094 0.01
28095 1% of face is padding. For example, with 1920x1280
28096 resolution face size would be 640x640 and padding would
28097 be 3 pixels from each side. (640 * 0.01 = 6 pixels)
28098
28099 Default value is @samp{0}. Maximum value is @samp{0.1}.
28100
28101 fin_pad
28102 fout_pad
28103 Set fixed padding for the input/output cubemap. Values in
28104 pixels.
28105
28106 Default value is @samp{0}. If greater than zero it
28107 overrides other padding options.
28108
28109 in_forder
28110 out_forder
28111 Set order of faces for the input/output cubemap. Choose one
28112 direction for each position.
28113
28114 Designation of directions:
28115
28116 r right
28117
28118 l left
28119
28120 u up
28121
28122 d down
28123
28124 f forward
28125
28126 b back
28127
28128 Default value is @samp{rludfb}.
28129
28130 in_frot
28131 out_frot
28132 Set rotation of faces for the input/output cubemap. Choose
28133 one angle for each position.
28134
28135 Designation of angles:
28136
28137 0 0 degrees clockwise
28138
28139 1 90 degrees clockwise
28140
28141 2 180 degrees clockwise
28142
28143 3 270 degrees clockwise
28144
28145 Default value is @samp{000000}.
28146
28147 eac Equi-Angular Cubemap.
28148
28149 flat
28150 gnomonic
28151 rectilinear
28152 Regular video.
28153
28154 Format specific options:
28155
28156 h_fov
28157 v_fov
28158 d_fov
28159 Set output horizontal/vertical/diagonal field of view.
28160 Values in degrees.
28161
28162 If diagonal field of view is set it overrides horizontal
28163 and vertical field of view.
28164
28165 ih_fov
28166 iv_fov
28167 id_fov
28168 Set input horizontal/vertical/diagonal field of view.
28169 Values in degrees.
28170
28171 If diagonal field of view is set it overrides horizontal
28172 and vertical field of view.
28173
28174 dfisheye
28175 Dual fisheye.
28176
28177 Format specific options:
28178
28179 h_fov
28180 v_fov
28181 d_fov
28182 Set output horizontal/vertical/diagonal field of view.
28183 Values in degrees.
28184
28185 If diagonal field of view is set it overrides horizontal
28186 and vertical field of view.
28187
28188 ih_fov
28189 iv_fov
28190 id_fov
28191 Set input horizontal/vertical/diagonal field of view.
28192 Values in degrees.
28193
28194 If diagonal field of view is set it overrides horizontal
28195 and vertical field of view.
28196
28197 barrel
28198 fb
28199 barrelsplit
28200 Facebook's 360 formats.
28201
28202 sg Stereographic format.
28203
28204 Format specific options:
28205
28206 h_fov
28207 v_fov
28208 d_fov
28209 Set output horizontal/vertical/diagonal field of view.
28210 Values in degrees.
28211
28212 If diagonal field of view is set it overrides horizontal
28213 and vertical field of view.
28214
28215 ih_fov
28216 iv_fov
28217 id_fov
28218 Set input horizontal/vertical/diagonal field of view.
28219 Values in degrees.
28220
28221 If diagonal field of view is set it overrides horizontal
28222 and vertical field of view.
28223
28224 mercator
28225 Mercator format.
28226
28227 ball
28228 Ball format, gives significant distortion toward the back.
28229
28230 hammer
28231 Hammer-Aitoff map projection format.
28232
28233 sinusoidal
28234 Sinusoidal map projection format.
28235
28236 fisheye
28237 Fisheye projection.
28238
28239 Format specific options:
28240
28241 h_fov
28242 v_fov
28243 d_fov
28244 Set output horizontal/vertical/diagonal field of view.
28245 Values in degrees.
28246
28247 If diagonal field of view is set it overrides horizontal
28248 and vertical field of view.
28249
28250 ih_fov
28251 iv_fov
28252 id_fov
28253 Set input horizontal/vertical/diagonal field of view.
28254 Values in degrees.
28255
28256 If diagonal field of view is set it overrides horizontal
28257 and vertical field of view.
28258
28259 pannini
28260 Pannini projection.
28261
28262 Format specific options:
28263
28264 h_fov
28265 Set output pannini parameter.
28266
28267 ih_fov
28268 Set input pannini parameter.
28269
28270 cylindrical
28271 Cylindrical projection.
28272
28273 Format specific options:
28274
28275 h_fov
28276 v_fov
28277 d_fov
28278 Set output horizontal/vertical/diagonal field of view.
28279 Values in degrees.
28280
28281 If diagonal field of view is set it overrides horizontal
28282 and vertical field of view.
28283
28284 ih_fov
28285 iv_fov
28286 id_fov
28287 Set input horizontal/vertical/diagonal field of view.
28288 Values in degrees.
28289
28290 If diagonal field of view is set it overrides horizontal
28291 and vertical field of view.
28292
28293 perspective
28294 Perspective projection. (output only)
28295
28296 Format specific options:
28297
28298 v_fov
28299 Set perspective parameter.
28300
28301 tetrahedron
28302 Tetrahedron projection.
28303
28304 tsp Truncated square pyramid projection.
28305
28306 he
28307 hequirect
28308 Half equirectangular projection.
28309
28310 equisolid
28311 Equisolid format.
28312
28313 Format specific options:
28314
28315 h_fov
28316 v_fov
28317 d_fov
28318 Set output horizontal/vertical/diagonal field of view.
28319 Values in degrees.
28320
28321 If diagonal field of view is set it overrides horizontal
28322 and vertical field of view.
28323
28324 ih_fov
28325 iv_fov
28326 id_fov
28327 Set input horizontal/vertical/diagonal field of view.
28328 Values in degrees.
28329
28330 If diagonal field of view is set it overrides horizontal
28331 and vertical field of view.
28332
28333 og Orthographic format.
28334
28335 Format specific options:
28336
28337 h_fov
28338 v_fov
28339 d_fov
28340 Set output horizontal/vertical/diagonal field of view.
28341 Values in degrees.
28342
28343 If diagonal field of view is set it overrides horizontal
28344 and vertical field of view.
28345
28346 ih_fov
28347 iv_fov
28348 id_fov
28349 Set input horizontal/vertical/diagonal field of view.
28350 Values in degrees.
28351
28352 If diagonal field of view is set it overrides horizontal
28353 and vertical field of view.
28354
28355 octahedron
28356 Octahedron projection.
28357
28358 cylindricalea
28359 Cylindrical Equal Area projection.
28360
28361 interp
28362 Set interpolation method.Note: more complex interpolation methods
28363 require much more memory to run.
28364
28365 Available methods:
28366
28367 near
28368 nearest
28369 Nearest neighbour.
28370
28371 line
28372 linear
28373 Bilinear interpolation.
28374
28375 lagrange9
28376 Lagrange9 interpolation.
28377
28378 cube
28379 cubic
28380 Bicubic interpolation.
28381
28382 lanc
28383 lanczos
28384 Lanczos interpolation.
28385
28386 sp16
28387 spline16
28388 Spline16 interpolation.
28389
28390 gauss
28391 gaussian
28392 Gaussian interpolation.
28393
28394 mitchell
28395 Mitchell interpolation.
28396
28397 Default value is @samp{line}.
28398
28399 w
28400 h Set the output video resolution.
28401
28402 Default resolution depends on formats.
28403
28404 in_stereo
28405 out_stereo
28406 Set the input/output stereo format.
28407
28408 2d 2D mono
28409
28410 sbs Side by side
28411
28412 tb Top bottom
28413
28414 Default value is @samp{2d} for input and output format.
28415
28416 yaw
28417 pitch
28418 roll
28419 Set rotation for the output video. Values in degrees.
28420
28421 rorder
28422 Set rotation order for the output video. Choose one item for each
28423 position.
28424
28425 y, Y
28426 yaw
28427
28428 p, P
28429 pitch
28430
28431 r, R
28432 roll
28433
28434 Default value is @samp{ypr}.
28435
28436 h_flip
28437 v_flip
28438 d_flip
28439 Flip the output video horizontally(swaps
28440 left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
28441 Boolean values.
28442
28443 ih_flip
28444 iv_flip
28445 Set if input video is flipped horizontally/vertically. Boolean
28446 values.
28447
28448 in_trans
28449 Set if input video is transposed. Boolean value, by default
28450 disabled.
28451
28452 out_trans
28453 Set if output video needs to be transposed. Boolean value, by
28454 default disabled.
28455
28456 h_offset
28457 v_offset
28458 Set output horizontal/vertical off-axis offset. Default is set to
28459 0. Allowed range is from -1 to 1.
28460
28461 alpha_mask
28462 Build mask in alpha plane for all unmapped pixels by marking them
28463 fully transparent. Boolean value, by default disabled.
28464
28465 reset_rot
28466 Reset rotation of output video. Boolean value, by default disabled.
28467
28468 Examples
28469
28470 • Convert equirectangular video to cubemap with 3x2 layout and 1%
28471 padding using bicubic interpolation:
28472
28473 ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
28474
28475 • Extract back view of Equi-Angular Cubemap:
28476
28477 ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
28478
28479 • Convert transposed and horizontally flipped Equi-Angular Cubemap in
28480 side-by-side stereo format to equirectangular top-bottom stereo
28481 format:
28482
28483 v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
28484
28485 Commands
28486
28487 This filter supports subset of above options as commands.
28488
28489 vaguedenoiser
28490 Apply a wavelet based denoiser.
28491
28492 It transforms each frame from the video input into the wavelet domain,
28493 using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
28494 the obtained coefficients. It does an inverse wavelet transform after.
28495 Due to wavelet properties, it should give a nice smoothed result, and
28496 reduced noise, without blurring picture features.
28497
28498 This filter accepts the following options:
28499
28500 threshold
28501 The filtering strength. The higher, the more filtered the video
28502 will be. Hard thresholding can use a higher threshold than soft
28503 thresholding before the video looks overfiltered. Default value is
28504 2.
28505
28506 method
28507 The filtering method the filter will use.
28508
28509 It accepts the following values:
28510
28511 hard
28512 All values under the threshold will be zeroed.
28513
28514 soft
28515 All values under the threshold will be zeroed. All values above
28516 will be reduced by the threshold.
28517
28518 garrote
28519 Scales or nullifies coefficients - intermediary between (more)
28520 soft and (less) hard thresholding.
28521
28522 Default is garrote.
28523
28524 nsteps
28525 Number of times, the wavelet will decompose the picture. Picture
28526 can't be decomposed beyond a particular point (typically, 8 for a
28527 640x480 frame - as 2^9 = 512 > 480). Valid values are integers
28528 between 1 and 32. Default value is 6.
28529
28530 percent
28531 Partial of full denoising (limited coefficients shrinking), from 0
28532 to 100. Default value is 85.
28533
28534 planes
28535 A list of the planes to process. By default all planes are
28536 processed.
28537
28538 type
28539 The threshold type the filter will use.
28540
28541 It accepts the following values:
28542
28543 universal
28544 Threshold used is same for all decompositions.
28545
28546 bayes
28547 Threshold used depends also on each decomposition coefficients.
28548
28549 Default is universal.
28550
28551 varblur
28552 Apply variable blur filter by using 2nd video stream to set blur
28553 radius. The 2nd stream must have the same dimensions.
28554
28555 This filter accepts the following options:
28556
28557 min_r
28558 Set min allowed radius. Allowed range is from 0 to 254. Default is
28559 0.
28560
28561 max_r
28562 Set max allowed radius. Allowed range is from 1 to 255. Default is
28563 8.
28564
28565 planes
28566 Set which planes to process. By default, all are used.
28567
28568 The "varblur" filter also supports the framesync options.
28569
28570 Commands
28571
28572 This filter supports all the above options as commands.
28573
28574 vectorscope
28575 Display 2 color component values in the two dimensional graph (which is
28576 called a vectorscope).
28577
28578 This filter accepts the following options:
28579
28580 mode, m
28581 Set vectorscope mode.
28582
28583 It accepts the following values:
28584
28585 gray
28586 tint
28587 Gray values are displayed on graph, higher brightness means
28588 more pixels have same component color value on location in
28589 graph. This is the default mode.
28590
28591 color
28592 Gray values are displayed on graph. Surrounding pixels values
28593 which are not present in video frame are drawn in gradient of 2
28594 color components which are set by option "x" and "y". The 3rd
28595 color component is static.
28596
28597 color2
28598 Actual color components values present in video frame are
28599 displayed on graph.
28600
28601 color3
28602 Similar as color2 but higher frequency of same values "x" and
28603 "y" on graph increases value of another color component, which
28604 is luminance by default values of "x" and "y".
28605
28606 color4
28607 Actual colors present in video frame are displayed on graph. If
28608 two different colors map to same position on graph then color
28609 with higher value of component not present in graph is picked.
28610
28611 color5
28612 Gray values are displayed on graph. Similar to "color" but with
28613 3rd color component picked from radial gradient.
28614
28615 x Set which color component will be represented on X-axis. Default is
28616 1.
28617
28618 y Set which color component will be represented on Y-axis. Default is
28619 2.
28620
28621 intensity, i
28622 Set intensity, used by modes: gray, color, color3 and color5 for
28623 increasing brightness of color component which represents frequency
28624 of (X, Y) location in graph.
28625
28626 envelope, e
28627 none
28628 No envelope, this is default.
28629
28630 instant
28631 Instant envelope, even darkest single pixel will be clearly
28632 highlighted.
28633
28634 peak
28635 Hold maximum and minimum values presented in graph over time.
28636 This way you can still spot out of range values without
28637 constantly looking at vectorscope.
28638
28639 peak+instant
28640 Peak and instant envelope combined together.
28641
28642 graticule, g
28643 Set what kind of graticule to draw.
28644
28645 none
28646 green
28647 color
28648 invert
28649 opacity, o
28650 Set graticule opacity.
28651
28652 flags, f
28653 Set graticule flags.
28654
28655 white
28656 Draw graticule for white point.
28657
28658 black
28659 Draw graticule for black point.
28660
28661 name
28662 Draw color points short names.
28663
28664 bgopacity, b
28665 Set background opacity.
28666
28667 lthreshold, l
28668 Set low threshold for color component not represented on X or Y
28669 axis. Values lower than this value will be ignored. Default is 0.
28670 Note this value is multiplied with actual max possible value one
28671 pixel component can have. So for 8-bit input and low threshold
28672 value of 0.1 actual threshold is 0.1 * 255 = 25.
28673
28674 hthreshold, h
28675 Set high threshold for color component not represented on X or Y
28676 axis. Values higher than this value will be ignored. Default is 1.
28677 Note this value is multiplied with actual max possible value one
28678 pixel component can have. So for 8-bit input and high threshold
28679 value of 0.9 actual threshold is 0.9 * 255 = 230.
28680
28681 colorspace, c
28682 Set what kind of colorspace to use when drawing graticule.
28683
28684 auto
28685 601
28686 709
28687
28688 Default is auto.
28689
28690 tint0, t0
28691 tint1, t1
28692 Set color tint for gray/tint vectorscope mode. By default both
28693 options are zero. This means no tint, and output will remain gray.
28694
28695 vidstabdetect
28696 Analyze video stabilization/deshaking. Perform pass 1 of 2, see
28697 vidstabtransform for pass 2.
28698
28699 This filter generates a file with relative translation and rotation
28700 transform information about subsequent frames, which is then used by
28701 the vidstabtransform filter.
28702
28703 To enable compilation of this filter you need to configure FFmpeg with
28704 "--enable-libvidstab".
28705
28706 This filter accepts the following options:
28707
28708 result
28709 Set the path to the file used to write the transforms information.
28710 Default value is transforms.trf.
28711
28712 shakiness
28713 Set how shaky the video is and how quick the camera is. It accepts
28714 an integer in the range 1-10, a value of 1 means little shakiness,
28715 a value of 10 means strong shakiness. Default value is 5.
28716
28717 accuracy
28718 Set the accuracy of the detection process. It must be a value in
28719 the range 1-15. A value of 1 means low accuracy, a value of 15
28720 means high accuracy. Default value is 15.
28721
28722 stepsize
28723 Set stepsize of the search process. The region around minimum is
28724 scanned with 1 pixel resolution. Default value is 6.
28725
28726 mincontrast
28727 Set minimum contrast. Below this value a local measurement field is
28728 discarded. Must be a floating point value in the range 0-1. Default
28729 value is 0.3.
28730
28731 tripod
28732 Set reference frame number for tripod mode.
28733
28734 If enabled, the motion of the frames is compared to a reference
28735 frame in the filtered stream, identified by the specified number.
28736 The idea is to compensate all movements in a more-or-less static
28737 scene and keep the camera view absolutely still.
28738
28739 If set to 0, it is disabled. The frames are counted starting from
28740 1.
28741
28742 show
28743 Show fields and transforms in the resulting frames. It accepts an
28744 integer in the range 0-2. Default value is 0, which disables any
28745 visualization.
28746
28747 Examples
28748
28749 • Use default values:
28750
28751 vidstabdetect
28752
28753 • Analyze strongly shaky movie and put the results in file
28754 mytransforms.trf:
28755
28756 vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
28757
28758 • Visualize the result of internal transformations in the resulting
28759 video:
28760
28761 vidstabdetect=show=1
28762
28763 • Analyze a video with medium shakiness using ffmpeg:
28764
28765 ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
28766
28767 vidstabtransform
28768 Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
28769 1.
28770
28771 Read a file with transform information for each frame and
28772 apply/compensate them. Together with the vidstabdetect filter this can
28773 be used to deshake videos. See also
28774 <http://public.hronopik.de/vid.stab>. It is important to also use the
28775 unsharp filter, see below.
28776
28777 To enable compilation of this filter you need to configure FFmpeg with
28778 "--enable-libvidstab".
28779
28780 Options
28781
28782 input
28783 Set path to the file used to read the transforms. Default value is
28784 transforms.trf.
28785
28786 smoothing
28787 Set the number of frames (value*2 + 1) used for lowpass filtering
28788 the camera movements. Default value is 10.
28789
28790 For example a number of 10 means that 21 frames are used (10 in the
28791 past and 10 in the future) to smoothen the motion in the video. A
28792 larger value leads to a smoother video, but limits the acceleration
28793 of the camera (pan/tilt movements). 0 is a special case where a
28794 static camera is simulated.
28795
28796 optalgo
28797 Set the camera path optimization algorithm.
28798
28799 Accepted values are:
28800
28801 gauss
28802 gaussian kernel low-pass filter on camera motion (default)
28803
28804 avg averaging on transformations
28805
28806 maxshift
28807 Set maximal number of pixels to translate frames. Default value is
28808 -1, meaning no limit.
28809
28810 maxangle
28811 Set maximal angle in radians (degree*PI/180) to rotate frames.
28812 Default value is -1, meaning no limit.
28813
28814 crop
28815 Specify how to deal with borders that may be visible due to
28816 movement compensation.
28817
28818 Available values are:
28819
28820 keep
28821 keep image information from previous frame (default)
28822
28823 black
28824 fill the border black
28825
28826 invert
28827 Invert transforms if set to 1. Default value is 0.
28828
28829 relative
28830 Consider transforms as relative to previous frame if set to 1,
28831 absolute if set to 0. Default value is 0.
28832
28833 zoom
28834 Set percentage to zoom. A positive value will result in a zoom-in
28835 effect, a negative value in a zoom-out effect. Default value is 0
28836 (no zoom).
28837
28838 optzoom
28839 Set optimal zooming to avoid borders.
28840
28841 Accepted values are:
28842
28843 0 disabled
28844
28845 1 optimal static zoom value is determined (only very strong
28846 movements will lead to visible borders) (default)
28847
28848 2 optimal adaptive zoom value is determined (no borders will be
28849 visible), see zoomspeed
28850
28851 Note that the value given at zoom is added to the one calculated
28852 here.
28853
28854 zoomspeed
28855 Set percent to zoom maximally each frame (enabled when optzoom is
28856 set to 2). Range is from 0 to 5, default value is 0.25.
28857
28858 interpol
28859 Specify type of interpolation.
28860
28861 Available values are:
28862
28863 no no interpolation
28864
28865 linear
28866 linear only horizontal
28867
28868 bilinear
28869 linear in both directions (default)
28870
28871 bicubic
28872 cubic in both directions (slow)
28873
28874 tripod
28875 Enable virtual tripod mode if set to 1, which is equivalent to
28876 "relative=0:smoothing=0". Default value is 0.
28877
28878 Use also "tripod" option of vidstabdetect.
28879
28880 debug
28881 Increase log verbosity if set to 1. Also the detected global
28882 motions are written to the temporary file global_motions.trf.
28883 Default value is 0.
28884
28885 Examples
28886
28887 • Use ffmpeg for a typical stabilization with default values:
28888
28889 ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
28890
28891 Note the use of the unsharp filter which is always recommended.
28892
28893 • Zoom in a bit more and load transform data from a given file:
28894
28895 vidstabtransform=zoom=5:input="mytransforms.trf"
28896
28897 • Smoothen the video even more:
28898
28899 vidstabtransform=smoothing=30
28900
28901 vflip
28902 Flip the input video vertically.
28903
28904 For example, to vertically flip a video with ffmpeg:
28905
28906 ffmpeg -i in.avi -vf "vflip" out.avi
28907
28908 vfrdet
28909 Detect variable frame rate video.
28910
28911 This filter tries to detect if the input is variable or constant frame
28912 rate.
28913
28914 At end it will output number of frames detected as having variable
28915 delta pts, and ones with constant delta pts. If there was frames with
28916 variable delta, than it will also show min, max and average delta
28917 encountered.
28918
28919 vibrance
28920 Boost or alter saturation.
28921
28922 The filter accepts the following options:
28923
28924 intensity
28925 Set strength of boost if positive value or strength of alter if
28926 negative value. Default is 0. Allowed range is from -2 to 2.
28927
28928 rbal
28929 Set the red balance. Default is 1. Allowed range is from -10 to 10.
28930
28931 gbal
28932 Set the green balance. Default is 1. Allowed range is from -10 to
28933 10.
28934
28935 bbal
28936 Set the blue balance. Default is 1. Allowed range is from -10 to
28937 10.
28938
28939 rlum
28940 Set the red luma coefficient.
28941
28942 glum
28943 Set the green luma coefficient.
28944
28945 blum
28946 Set the blue luma coefficient.
28947
28948 alternate
28949 If "intensity" is negative and this is set to 1, colors will
28950 change, otherwise colors will be less saturated, more towards gray.
28951
28952 Commands
28953
28954 This filter supports the all above options as commands.
28955
28956 vif
28957 Obtain the average VIF (Visual Information Fidelity) between two input
28958 videos.
28959
28960 This filter takes two input videos.
28961
28962 Both input videos must have the same resolution and pixel format for
28963 this filter to work correctly. Also it assumes that both inputs have
28964 the same number of frames, which are compared one by one.
28965
28966 The obtained average VIF score is printed through the logging system.
28967
28968 The filter stores the calculated VIF score of each frame.
28969
28970 In the below example the input file main.mpg being processed is
28971 compared with the reference file ref.mpg.
28972
28973 ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
28974
28975 vignette
28976 Make or reverse a natural vignetting effect.
28977
28978 The filter accepts the following options:
28979
28980 angle, a
28981 Set lens angle expression as a number of radians.
28982
28983 The value is clipped in the "[0,PI/2]" range.
28984
28985 Default value: "PI/5"
28986
28987 x0
28988 y0 Set center coordinates expressions. Respectively "w/2" and "h/2" by
28989 default.
28990
28991 mode
28992 Set forward/backward mode.
28993
28994 Available modes are:
28995
28996 forward
28997 The larger the distance from the central point, the darker the
28998 image becomes.
28999
29000 backward
29001 The larger the distance from the central point, the brighter
29002 the image becomes. This can be used to reverse a vignette
29003 effect, though there is no automatic detection to extract the
29004 lens angle and other settings (yet). It can also be used to
29005 create a burning effect.
29006
29007 Default value is forward.
29008
29009 eval
29010 Set evaluation mode for the expressions (angle, x0, y0).
29011
29012 It accepts the following values:
29013
29014 init
29015 Evaluate expressions only once during the filter
29016 initialization.
29017
29018 frame
29019 Evaluate expressions for each incoming frame. This is way
29020 slower than the init mode since it requires all the scalers to
29021 be re-computed, but it allows advanced dynamic expressions.
29022
29023 Default value is init.
29024
29025 dither
29026 Set dithering to reduce the circular banding effects. Default is 1
29027 (enabled).
29028
29029 aspect
29030 Set vignette aspect. This setting allows one to adjust the shape of
29031 the vignette. Setting this value to the SAR of the input will make
29032 a rectangular vignetting following the dimensions of the video.
29033
29034 Default is "1/1".
29035
29036 Expressions
29037
29038 The alpha, x0 and y0 expressions can contain the following parameters.
29039
29040 w
29041 h input width and height
29042
29043 n the number of input frame, starting from 0
29044
29045 pts the PTS (Presentation TimeStamp) time of the filtered video frame,
29046 expressed in TB units, NAN if undefined
29047
29048 r frame rate of the input video, NAN if the input frame rate is
29049 unknown
29050
29051 t the PTS (Presentation TimeStamp) of the filtered video frame,
29052 expressed in seconds, NAN if undefined
29053
29054 tb time base of the input video
29055
29056 Examples
29057
29058 • Apply simple strong vignetting effect:
29059
29060 vignette=PI/4
29061
29062 • Make a flickering vignetting:
29063
29064 vignette='PI/4+random(1)*PI/50':eval=frame
29065
29066 vmafmotion
29067 Obtain the average VMAF motion score of a video. It is one of the
29068 component metrics of VMAF.
29069
29070 The obtained average motion score is printed through the logging
29071 system.
29072
29073 The filter accepts the following options:
29074
29075 stats_file
29076 If specified, the filter will use the named file to save the motion
29077 score of each frame with respect to the previous frame. When
29078 filename equals "-" the data is sent to standard output.
29079
29080 Example:
29081
29082 ffmpeg -i ref.mpg -vf vmafmotion -f null -
29083
29084 vstack
29085 Stack input videos vertically.
29086
29087 All streams must be of same pixel format and of same width.
29088
29089 Note that this filter is faster than using overlay and pad filter to
29090 create same output.
29091
29092 The filter accepts the following options:
29093
29094 inputs
29095 Set number of input streams. Default is 2.
29096
29097 shortest
29098 If set to 1, force the output to terminate when the shortest input
29099 terminates. Default value is 0.
29100
29101 w3fdif
29102 Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
29103 Deinterlacing Filter").
29104
29105 Based on the process described by Martin Weston for BBC R&D, and
29106 implemented based on the de-interlace algorithm written by Jim
29107 Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
29108 filter coefficients calculated by BBC R&D.
29109
29110 This filter uses field-dominance information in frame to decide which
29111 of each pair of fields to place first in the output. If it gets it
29112 wrong use setfield filter before "w3fdif" filter.
29113
29114 There are two sets of filter coefficients, so called "simple" and
29115 "complex". Which set of filter coefficients is used can be set by
29116 passing an optional parameter:
29117
29118 filter
29119 Set the interlacing filter coefficients. Accepts one of the
29120 following values:
29121
29122 simple
29123 Simple filter coefficient set.
29124
29125 complex
29126 More-complex filter coefficient set.
29127
29128 Default value is complex.
29129
29130 mode
29131 The interlacing mode to adopt. It accepts one of the following
29132 values:
29133
29134 frame
29135 Output one frame for each frame.
29136
29137 field
29138 Output one frame for each field.
29139
29140 The default value is "field".
29141
29142 parity
29143 The picture field parity assumed for the input interlaced video. It
29144 accepts one of the following values:
29145
29146 tff Assume the top field is first.
29147
29148 bff Assume the bottom field is first.
29149
29150 auto
29151 Enable automatic detection of field parity.
29152
29153 The default value is "auto". If the interlacing is unknown or the
29154 decoder does not export this information, top field first will be
29155 assumed.
29156
29157 deint
29158 Specify which frames to deinterlace. Accepts one of the following
29159 values:
29160
29161 all Deinterlace all frames,
29162
29163 interlaced
29164 Only deinterlace frames marked as interlaced.
29165
29166 Default value is all.
29167
29168 Commands
29169
29170 This filter supports same commands as options.
29171
29172 waveform
29173 Video waveform monitor.
29174
29175 The waveform monitor plots color component intensity. By default
29176 luminance only. Each column of the waveform corresponds to a column of
29177 pixels in the source video.
29178
29179 It accepts the following options:
29180
29181 mode, m
29182 Can be either "row", or "column". Default is "column". In row
29183 mode, the graph on the left side represents color component value 0
29184 and the right side represents value = 255. In column mode, the top
29185 side represents color component value = 0 and bottom side
29186 represents value = 255.
29187
29188 intensity, i
29189 Set intensity. Smaller values are useful to find out how many
29190 values of the same luminance are distributed across input
29191 rows/columns. Default value is 0.04. Allowed range is [0, 1].
29192
29193 mirror, r
29194 Set mirroring mode. 0 means unmirrored, 1 means mirrored. In
29195 mirrored mode, higher values will be represented on the left side
29196 for "row" mode and at the top for "column" mode. Default is 1
29197 (mirrored).
29198
29199 display, d
29200 Set display mode. It accepts the following values:
29201
29202 overlay
29203 Presents information identical to that in the "parade", except
29204 that the graphs representing color components are superimposed
29205 directly over one another.
29206
29207 This display mode makes it easier to spot relative differences
29208 or similarities in overlapping areas of the color components
29209 that are supposed to be identical, such as neutral whites,
29210 grays, or blacks.
29211
29212 stack
29213 Display separate graph for the color components side by side in
29214 "row" mode or one below the other in "column" mode.
29215
29216 parade
29217 Display separate graph for the color components side by side in
29218 "column" mode or one below the other in "row" mode.
29219
29220 Using this display mode makes it easy to spot color casts in
29221 the highlights and shadows of an image, by comparing the
29222 contours of the top and the bottom graphs of each waveform.
29223 Since whites, grays, and blacks are characterized by exactly
29224 equal amounts of red, green, and blue, neutral areas of the
29225 picture should display three waveforms of roughly equal
29226 width/height. If not, the correction is easy to perform by
29227 making level adjustments the three waveforms.
29228
29229 Default is "stack".
29230
29231 components, c
29232 Set which color components to display. Default is 1, which means
29233 only luminance or red color component if input is in RGB
29234 colorspace. If is set for example to 7 it will display all 3 (if)
29235 available color components.
29236
29237 envelope, e
29238 none
29239 No envelope, this is default.
29240
29241 instant
29242 Instant envelope, minimum and maximum values presented in graph
29243 will be easily visible even with small "step" value.
29244
29245 peak
29246 Hold minimum and maximum values presented in graph across time.
29247 This way you can still spot out of range values without
29248 constantly looking at waveforms.
29249
29250 peak+instant
29251 Peak and instant envelope combined together.
29252
29253 filter, f
29254 lowpass
29255 No filtering, this is default.
29256
29257 flat
29258 Luma and chroma combined together.
29259
29260 aflat
29261 Similar as above, but shows difference between blue and red
29262 chroma.
29263
29264 xflat
29265 Similar as above, but use different colors.
29266
29267 yflat
29268 Similar as above, but again with different colors.
29269
29270 chroma
29271 Displays only chroma.
29272
29273 color
29274 Displays actual color value on waveform.
29275
29276 acolor
29277 Similar as above, but with luma showing frequency of chroma
29278 values.
29279
29280 graticule, g
29281 Set which graticule to display.
29282
29283 none
29284 Do not display graticule.
29285
29286 green
29287 Display green graticule showing legal broadcast ranges.
29288
29289 orange
29290 Display orange graticule showing legal broadcast ranges.
29291
29292 invert
29293 Display invert graticule showing legal broadcast ranges.
29294
29295 opacity, o
29296 Set graticule opacity.
29297
29298 flags, fl
29299 Set graticule flags.
29300
29301 numbers
29302 Draw numbers above lines. By default enabled.
29303
29304 dots
29305 Draw dots instead of lines.
29306
29307 scale, s
29308 Set scale used for displaying graticule.
29309
29310 digital
29311 millivolts
29312 ire
29313
29314 Default is digital.
29315
29316 bgopacity, b
29317 Set background opacity.
29318
29319 tint0, t0
29320 tint1, t1
29321 Set tint for output. Only used with lowpass filter and when
29322 display is not overlay and input pixel formats are not RGB.
29323
29324 fitmode, fm
29325 Set sample aspect ratio of video output frames. Can be used to
29326 configure waveform so it is not streched too much in one of
29327 directions.
29328
29329 none
29330 Set sample aspect ration to 1/1.
29331
29332 size
29333 Set sample aspect ratio to match input size of video
29334
29335 Default is none.
29336
29337 weave, doubleweave
29338 The "weave" takes a field-based video input and join each two
29339 sequential fields into single frame, producing a new double height clip
29340 with half the frame rate and half the frame count.
29341
29342 The "doubleweave" works same as "weave" but without halving frame rate
29343 and frame count.
29344
29345 It accepts the following option:
29346
29347 first_field
29348 Set first field. Available values are:
29349
29350 top, t
29351 Set the frame as top-field-first.
29352
29353 bottom, b
29354 Set the frame as bottom-field-first.
29355
29356 Examples
29357
29358 • Interlace video using select and separatefields filter:
29359
29360 separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
29361
29362 xbr
29363 Apply the xBR high-quality magnification filter which is designed for
29364 pixel art. It follows a set of edge-detection rules, see
29365 <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
29366
29367 It accepts the following option:
29368
29369 n Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
29370 "4xBR". Default is 3.
29371
29372 xcorrelate
29373 Apply normalized cross-correlation between first and second input video
29374 stream.
29375
29376 Second input video stream dimensions must be lower than first input
29377 video stream.
29378
29379 The filter accepts the following options:
29380
29381 planes
29382 Set which planes to process.
29383
29384 secondary
29385 Set which secondary video frames will be processed from second
29386 input video stream, can be first or all. Default is all.
29387
29388 The "xcorrelate" filter also supports the framesync options.
29389
29390 xfade
29391 Apply cross fade from one input video stream to another input video
29392 stream. The cross fade is applied for specified duration.
29393
29394 Both inputs must be constant frame-rate and have the same resolution,
29395 pixel format, frame rate and timebase.
29396
29397 The filter accepts the following options:
29398
29399 transition
29400 Set one of available transition effects:
29401
29402 custom
29403 fade
29404 wipeleft
29405 wiperight
29406 wipeup
29407 wipedown
29408 slideleft
29409 slideright
29410 slideup
29411 slidedown
29412 circlecrop
29413 rectcrop
29414 distance
29415 fadeblack
29416 fadewhite
29417 radial
29418 smoothleft
29419 smoothright
29420 smoothup
29421 smoothdown
29422 circleopen
29423 circleclose
29424 vertopen
29425 vertclose
29426 horzopen
29427 horzclose
29428 dissolve
29429 pixelize
29430 diagtl
29431 diagtr
29432 diagbl
29433 diagbr
29434 hlslice
29435 hrslice
29436 vuslice
29437 vdslice
29438 hblur
29439 fadegrays
29440 wipetl
29441 wipetr
29442 wipebl
29443 wipebr
29444 squeezeh
29445 squeezev
29446 zoomin
29447
29448 Default transition effect is fade.
29449
29450 duration
29451 Set cross fade duration in seconds. Range is 0 to 60 seconds.
29452 Default duration is 1 second.
29453
29454 offset
29455 Set cross fade start relative to first input stream in seconds.
29456 Default offset is 0.
29457
29458 expr
29459 Set expression for custom transition effect.
29460
29461 The expressions can use the following variables and functions:
29462
29463 X
29464 Y The coordinates of the current sample.
29465
29466 W
29467 H The width and height of the image.
29468
29469 P Progress of transition effect.
29470
29471 PLANE
29472 Currently processed plane.
29473
29474 A Return value of first input at current location and plane.
29475
29476 B Return value of second input at current location and plane.
29477
29478 a0(x, y)
29479 a1(x, y)
29480 a2(x, y)
29481 a3(x, y)
29482 Return the value of the pixel at location (x,y) of the
29483 first/second/third/fourth component of first input.
29484
29485 b0(x, y)
29486 b1(x, y)
29487 b2(x, y)
29488 b3(x, y)
29489 Return the value of the pixel at location (x,y) of the
29490 first/second/third/fourth component of second input.
29491
29492 Examples
29493
29494 • Cross fade from one input video to another input video, with fade
29495 transition and duration of transition of 2 seconds starting at
29496 offset of 5 seconds:
29497
29498 ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
29499
29500 xmedian
29501 Pick median pixels from several input videos.
29502
29503 The filter accepts the following options:
29504
29505 inputs
29506 Set number of inputs. Default is 3. Allowed range is from 3 to
29507 255. If number of inputs is even number, than result will be mean
29508 value between two median values.
29509
29510 planes
29511 Set which planes to filter. Default value is 15, by which all
29512 planes are processed.
29513
29514 percentile
29515 Set median percentile. Default value is 0.5. Default value of 0.5
29516 will pick always median values, while 0 will pick minimum values,
29517 and 1 maximum values.
29518
29519 Commands
29520
29521 This filter supports all above options as commands, excluding option
29522 "inputs".
29523
29524 xstack
29525 Stack video inputs into custom layout.
29526
29527 All streams must be of same pixel format.
29528
29529 The filter accepts the following options:
29530
29531 inputs
29532 Set number of input streams. Default is 2.
29533
29534 layout
29535 Specify layout of inputs. This option requires the desired layout
29536 configuration to be explicitly set by the user. This sets position
29537 of each video input in output. Each input is separated by '|'. The
29538 first number represents the column, and the second number
29539 represents the row. Numbers start at 0 and are separated by '_'.
29540 Optionally one can use wX and hX, where X is video input from which
29541 to take width or height. Multiple values can be used when
29542 separated by '+'. In such case values are summed together.
29543
29544 Note that if inputs are of different sizes gaps may appear, as not
29545 all of the output video frame will be filled. Similarly, videos can
29546 overlap each other if their position doesn't leave enough space for
29547 the full frame of adjoining videos.
29548
29549 For 2 inputs, a default layout of "0_0|w0_0" is set. In all other
29550 cases, a layout must be set by the user.
29551
29552 shortest
29553 If set to 1, force the output to terminate when the shortest input
29554 terminates. Default value is 0.
29555
29556 fill
29557 If set to valid color, all unused pixels will be filled with that
29558 color. By default fill is set to none, so it is disabled.
29559
29560 Examples
29561
29562 • Display 4 inputs into 2x2 grid.
29563
29564 Layout:
29565
29566 input1(0, 0) | input3(w0, 0)
29567 input2(0, h0) | input4(w0, h0)
29568
29569
29570
29571 xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
29572
29573 Note that if inputs are of different sizes, gaps or overlaps may
29574 occur.
29575
29576 • Display 4 inputs into 1x4 grid.
29577
29578 Layout:
29579
29580 input1(0, 0)
29581 input2(0, h0)
29582 input3(0, h0+h1)
29583 input4(0, h0+h1+h2)
29584
29585
29586
29587 xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
29588
29589 Note that if inputs are of different widths, unused space will
29590 appear.
29591
29592 • Display 9 inputs into 3x3 grid.
29593
29594 Layout:
29595
29596 input1(0, 0) | input4(w0, 0) | input7(w0+w3, 0)
29597 input2(0, h0) | input5(w0, h0) | input8(w0+w3, h0)
29598 input3(0, h0+h1) | input6(w0, h0+h1) | input9(w0+w3, h0+h1)
29599
29600
29601
29602 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
29603
29604 Note that if inputs are of different sizes, gaps or overlaps may
29605 occur.
29606
29607 • Display 16 inputs into 4x4 grid.
29608
29609 Layout:
29610
29611 input1(0, 0) | input5(w0, 0) | input9 (w0+w4, 0) | input13(w0+w4+w8, 0)
29612 input2(0, h0) | input6(w0, h0) | input10(w0+w4, h0) | input14(w0+w4+w8, h0)
29613 input3(0, h0+h1) | input7(w0, h0+h1) | input11(w0+w4, h0+h1) | input15(w0+w4+w8, h0+h1)
29614 input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
29615
29616
29617
29618 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|
29619 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
29620
29621 Note that if inputs are of different sizes, gaps or overlaps may
29622 occur.
29623
29624 yadif
29625 Deinterlace the input video ("yadif" means "yet another deinterlacing
29626 filter").
29627
29628 It accepts the following parameters:
29629
29630 mode
29631 The interlacing mode to adopt. It accepts one of the following
29632 values:
29633
29634 0, send_frame
29635 Output one frame for each frame.
29636
29637 1, send_field
29638 Output one frame for each field.
29639
29640 2, send_frame_nospatial
29641 Like "send_frame", but it skips the spatial interlacing check.
29642
29643 3, send_field_nospatial
29644 Like "send_field", but it skips the spatial interlacing check.
29645
29646 The default value is "send_frame".
29647
29648 parity
29649 The picture field parity assumed for the input interlaced video. It
29650 accepts one of the following values:
29651
29652 0, tff
29653 Assume the top field is first.
29654
29655 1, bff
29656 Assume the bottom field is first.
29657
29658 -1, auto
29659 Enable automatic detection of field parity.
29660
29661 The default value is "auto". If the interlacing is unknown or the
29662 decoder does not export this information, top field first will be
29663 assumed.
29664
29665 deint
29666 Specify which frames to deinterlace. Accepts one of the following
29667 values:
29668
29669 0, all
29670 Deinterlace all frames.
29671
29672 1, interlaced
29673 Only deinterlace frames marked as interlaced.
29674
29675 The default value is "all".
29676
29677 yadif_cuda
29678 Deinterlace the input video using the yadif algorithm, but implemented
29679 in CUDA so that it can work as part of a GPU accelerated pipeline with
29680 nvdec and/or nvenc.
29681
29682 It accepts the following parameters:
29683
29684 mode
29685 The interlacing mode to adopt. It accepts one of the following
29686 values:
29687
29688 0, send_frame
29689 Output one frame for each frame.
29690
29691 1, send_field
29692 Output one frame for each field.
29693
29694 2, send_frame_nospatial
29695 Like "send_frame", but it skips the spatial interlacing check.
29696
29697 3, send_field_nospatial
29698 Like "send_field", but it skips the spatial interlacing check.
29699
29700 The default value is "send_frame".
29701
29702 parity
29703 The picture field parity assumed for the input interlaced video. It
29704 accepts one of the following values:
29705
29706 0, tff
29707 Assume the top field is first.
29708
29709 1, bff
29710 Assume the bottom field is first.
29711
29712 -1, auto
29713 Enable automatic detection of field parity.
29714
29715 The default value is "auto". If the interlacing is unknown or the
29716 decoder does not export this information, top field first will be
29717 assumed.
29718
29719 deint
29720 Specify which frames to deinterlace. Accepts one of the following
29721 values:
29722
29723 0, all
29724 Deinterlace all frames.
29725
29726 1, interlaced
29727 Only deinterlace frames marked as interlaced.
29728
29729 The default value is "all".
29730
29731 yaepblur
29732 Apply blur filter while preserving edges ("yaepblur" means "yet another
29733 edge preserving blur filter"). The algorithm is described in "J. S.
29734 Lee, Digital image enhancement and noise filtering by use of local
29735 statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
29736
29737 It accepts the following parameters:
29738
29739 radius, r
29740 Set the window radius. Default value is 3.
29741
29742 planes, p
29743 Set which planes to filter. Default is only the first plane.
29744
29745 sigma, s
29746 Set blur strength. Default value is 128.
29747
29748 Commands
29749
29750 This filter supports same commands as options.
29751
29752 zoompan
29753 Apply Zoom & Pan effect.
29754
29755 This filter accepts the following options:
29756
29757 zoom, z
29758 Set the zoom expression. Range is 1-10. Default is 1.
29759
29760 x
29761 y Set the x and y expression. Default is 0.
29762
29763 d Set the duration expression in number of frames. This sets for how
29764 many number of frames effect will last for single input image.
29765 Default is 90.
29766
29767 s Set the output image size, default is 'hd720'.
29768
29769 fps Set the output frame rate, default is '25'.
29770
29771 Each expression can contain the following constants:
29772
29773 in_w, iw
29774 Input width.
29775
29776 in_h, ih
29777 Input height.
29778
29779 out_w, ow
29780 Output width.
29781
29782 out_h, oh
29783 Output height.
29784
29785 in Input frame count.
29786
29787 on Output frame count.
29788
29789 in_time, it
29790 The input timestamp expressed in seconds. It's NAN if the input
29791 timestamp is unknown.
29792
29793 out_time, time, ot
29794 The output timestamp expressed in seconds.
29795
29796 x
29797 y Last calculated 'x' and 'y' position from 'x' and 'y' expression
29798 for current input frame.
29799
29800 px
29801 py 'x' and 'y' of last output frame of previous input frame or 0 when
29802 there was not yet such frame (first input frame).
29803
29804 zoom
29805 Last calculated zoom from 'z' expression for current input frame.
29806
29807 pzoom
29808 Last calculated zoom of last output frame of previous input frame.
29809
29810 duration
29811 Number of output frames for current input frame. Calculated from
29812 'd' expression for each input frame.
29813
29814 pduration
29815 number of output frames created for previous input frame
29816
29817 a Rational number: input width / input height
29818
29819 sar sample aspect ratio
29820
29821 dar display aspect ratio
29822
29823 Examples
29824
29825 • Zoom in up to 1.5x and pan at same time to some spot near center of
29826 picture:
29827
29828 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
29829
29830 • Zoom in up to 1.5x and pan always at center of picture:
29831
29832 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
29833
29834 • Same as above but without pausing:
29835
29836 zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
29837
29838 • Zoom in 2x into center of picture only for the first second of the
29839 input video:
29840
29841 zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
29842
29843 zscale
29844 Scale (resize) the input video, using the z.lib library:
29845 <https://github.com/sekrit-twc/zimg>. To enable compilation of this
29846 filter, you need to configure FFmpeg with "--enable-libzimg".
29847
29848 The zscale filter forces the output display aspect ratio to be the same
29849 as the input, by changing the output sample aspect ratio.
29850
29851 If the input image format is different from the format requested by the
29852 next filter, the zscale filter will convert the input to the requested
29853 format.
29854
29855 Options
29856
29857 The filter accepts the following options.
29858
29859 width, w
29860 height, h
29861 Set the output video dimension expression. Default value is the
29862 input dimension.
29863
29864 If the width or w value is 0, the input width is used for the
29865 output. If the height or h value is 0, the input height is used for
29866 the output.
29867
29868 If one and only one of the values is -n with n >= 1, the zscale
29869 filter will use a value that maintains the aspect ratio of the
29870 input image, calculated from the other specified dimension. After
29871 that it will, however, make sure that the calculated dimension is
29872 divisible by n and adjust the value if necessary.
29873
29874 If both values are -n with n >= 1, the behavior will be identical
29875 to both values being set to 0 as previously detailed.
29876
29877 See below for the list of accepted constants for use in the
29878 dimension expression.
29879
29880 size, s
29881 Set the video size. For the syntax of this option, check the "Video
29882 size" section in the ffmpeg-utils manual.
29883
29884 dither, d
29885 Set the dither type.
29886
29887 Possible values are:
29888
29889 none
29890 ordered
29891 random
29892 error_diffusion
29893
29894 Default is none.
29895
29896 filter, f
29897 Set the resize filter type.
29898
29899 Possible values are:
29900
29901 point
29902 bilinear
29903 bicubic
29904 spline16
29905 spline36
29906 lanczos
29907
29908 Default is bilinear.
29909
29910 range, r
29911 Set the color range.
29912
29913 Possible values are:
29914
29915 input
29916 limited
29917 full
29918
29919 Default is same as input.
29920
29921 primaries, p
29922 Set the color primaries.
29923
29924 Possible values are:
29925
29926 input
29927 709
29928 unspecified
29929 170m
29930 240m
29931 2020
29932
29933 Default is same as input.
29934
29935 transfer, t
29936 Set the transfer characteristics.
29937
29938 Possible values are:
29939
29940 input
29941 709
29942 unspecified
29943 601
29944 linear
29945 2020_10
29946 2020_12
29947 smpte2084
29948 iec61966-2-1
29949 arib-std-b67
29950
29951 Default is same as input.
29952
29953 matrix, m
29954 Set the colorspace matrix.
29955
29956 Possible value are:
29957
29958 input
29959 709
29960 unspecified
29961 470bg
29962 170m
29963 2020_ncl
29964 2020_cl
29965
29966 Default is same as input.
29967
29968 rangein, rin
29969 Set the input color range.
29970
29971 Possible values are:
29972
29973 input
29974 limited
29975 full
29976
29977 Default is same as input.
29978
29979 primariesin, pin
29980 Set the input color primaries.
29981
29982 Possible values are:
29983
29984 input
29985 709
29986 unspecified
29987 170m
29988 240m
29989 2020
29990
29991 Default is same as input.
29992
29993 transferin, tin
29994 Set the input transfer characteristics.
29995
29996 Possible values are:
29997
29998 input
29999 709
30000 unspecified
30001 601
30002 linear
30003 2020_10
30004 2020_12
30005
30006 Default is same as input.
30007
30008 matrixin, min
30009 Set the input colorspace matrix.
30010
30011 Possible value are:
30012
30013 input
30014 709
30015 unspecified
30016 470bg
30017 170m
30018 2020_ncl
30019 2020_cl
30020 chromal, c
30021 Set the output chroma location.
30022
30023 Possible values are:
30024
30025 input
30026 left
30027 center
30028 topleft
30029 top
30030 bottomleft
30031 bottom
30032 chromalin, cin
30033 Set the input chroma location.
30034
30035 Possible values are:
30036
30037 input
30038 left
30039 center
30040 topleft
30041 top
30042 bottomleft
30043 bottom
30044 npl Set the nominal peak luminance.
30045
30046 param_a
30047 Parameter A for scaling filters. Parameter "b" for bicubic, and the
30048 number of filter taps for lanczos.
30049
30050 param_b
30051 Parameter B for scaling filters. Parameter "c" for bicubic.
30052
30053 The values of the w and h options are expressions containing the
30054 following constants:
30055
30056 in_w
30057 in_h
30058 The input width and height
30059
30060 iw
30061 ih These are the same as in_w and in_h.
30062
30063 out_w
30064 out_h
30065 The output (scaled) width and height
30066
30067 ow
30068 oh These are the same as out_w and out_h
30069
30070 a The same as iw / ih
30071
30072 sar input sample aspect ratio
30073
30074 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
30075
30076 hsub
30077 vsub
30078 horizontal and vertical input chroma subsample values. For example
30079 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
30080
30081 ohsub
30082 ovsub
30083 horizontal and vertical output chroma subsample values. For example
30084 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
30085
30086 Commands
30087
30088 This filter supports the following commands:
30089
30090 width, w
30091 height, h
30092 Set the output video dimension expression. The command accepts the
30093 same syntax of the corresponding option.
30094
30095 If the specified expression is not valid, it is kept at its current
30096 value.
30097
30099 Below is a description of the currently available OpenCL video filters.
30100
30101 To enable compilation of these filters you need to configure FFmpeg
30102 with "--enable-opencl".
30103
30104 Running OpenCL filters requires you to initialize a hardware device and
30105 to pass that device to all filters in any filter graph.
30106
30107 -init_hw_device opencl[=name][:device[,key=value...]]
30108 Initialise a new hardware device of type opencl called name, using
30109 the given device parameters.
30110
30111 -filter_hw_device name
30112 Pass the hardware device called name to all filters in any filter
30113 graph.
30114
30115 For more detailed information see
30116 <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
30117
30118 • Example of choosing the first device on the second platform and
30119 running avgblur_opencl filter with default parameters on it.
30120
30121 -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
30122
30123 Since OpenCL filters are not able to access frame data in normal
30124 memory, all frame data needs to be uploaded(hwupload) to hardware
30125 surfaces connected to the appropriate device before being used and then
30126 downloaded(hwdownload) back to normal memory. Note that hwupload will
30127 upload to a surface with the same layout as the software frame, so it
30128 may be necessary to add a format filter immediately before to get the
30129 input into the right format and hwdownload does not support all formats
30130 on the output - it may be necessary to insert an additional format
30131 filter immediately following in the graph to get the output in a
30132 supported format.
30133
30134 avgblur_opencl
30135 Apply average blur filter.
30136
30137 The filter accepts the following options:
30138
30139 sizeX
30140 Set horizontal radius size. Range is "[1, 1024]" and default value
30141 is 1.
30142
30143 planes
30144 Set which planes to filter. Default value is 0xf, by which all
30145 planes are processed.
30146
30147 sizeY
30148 Set vertical radius size. Range is "[1, 1024]" and default value is
30149 0. If zero, "sizeX" value will be used.
30150
30151 Example
30152
30153 • Apply average blur filter with horizontal and vertical size of 3,
30154 setting each pixel of the output to the average value of the 7x7
30155 region centered on it in the input. For pixels on the edges of the
30156 image, the region does not extend beyond the image boundaries, and
30157 so out-of-range coordinates are not used in the calculations.
30158
30159 -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
30160
30161 boxblur_opencl
30162 Apply a boxblur algorithm to the input video.
30163
30164 It accepts the following parameters:
30165
30166 luma_radius, lr
30167 luma_power, lp
30168 chroma_radius, cr
30169 chroma_power, cp
30170 alpha_radius, ar
30171 alpha_power, ap
30172
30173 A description of the accepted options follows.
30174
30175 luma_radius, lr
30176 chroma_radius, cr
30177 alpha_radius, ar
30178 Set an expression for the box radius in pixels used for blurring
30179 the corresponding input plane.
30180
30181 The radius value must be a non-negative number, and must not be
30182 greater than the value of the expression "min(w,h)/2" for the luma
30183 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
30184
30185 Default value for luma_radius is "2". If not specified,
30186 chroma_radius and alpha_radius default to the corresponding value
30187 set for luma_radius.
30188
30189 The expressions can contain the following constants:
30190
30191 w
30192 h The input width and height in pixels.
30193
30194 cw
30195 ch The input chroma image width and height in pixels.
30196
30197 hsub
30198 vsub
30199 The horizontal and vertical chroma subsample values. For
30200 example, for the pixel format "yuv422p", hsub is 2 and vsub is
30201 1.
30202
30203 luma_power, lp
30204 chroma_power, cp
30205 alpha_power, ap
30206 Specify how many times the boxblur filter is applied to the
30207 corresponding plane.
30208
30209 Default value for luma_power is 2. If not specified, chroma_power
30210 and alpha_power default to the corresponding value set for
30211 luma_power.
30212
30213 A value of 0 will disable the effect.
30214
30215 Examples
30216
30217 Apply boxblur filter, setting each pixel of the output to the average
30218 value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
30219 plane respectively. The filter will apply luma_power, chroma_power,
30220 alpha_power times onto the corresponding plane. For pixels on the edges
30221 of the image, the radius does not extend beyond the image boundaries,
30222 and so out-of-range coordinates are not used in the calculations.
30223
30224 • Apply a boxblur filter with the luma, chroma, and alpha radius set
30225 to 2 and luma, chroma, and alpha power set to 3. The filter will
30226 run 3 times with box-radius set to 2 for every plane of the image.
30227
30228 -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
30229 -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
30230
30231 • Apply a boxblur filter with luma radius set to 2, luma_power to 1,
30232 chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
30233 alpha_power to 7.
30234
30235 For the luma plane, a 2x2 box radius will be run once.
30236
30237 For the chroma plane, a 4x4 box radius will be run 5 times.
30238
30239 For the alpha plane, a 3x3 box radius will be run 7 times.
30240
30241 -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
30242
30243 colorkey_opencl
30244 RGB colorspace color keying.
30245
30246 The filter accepts the following options:
30247
30248 color
30249 The color which will be replaced with transparency.
30250
30251 similarity
30252 Similarity percentage with the key color.
30253
30254 0.01 matches only the exact key color, while 1.0 matches
30255 everything.
30256
30257 blend
30258 Blend percentage.
30259
30260 0.0 makes pixels either fully transparent, or not transparent at
30261 all.
30262
30263 Higher values result in semi-transparent pixels, with a higher
30264 transparency the more similar the pixels color is to the key color.
30265
30266 Examples
30267
30268 • Make every semi-green pixel in the input transparent with some
30269 slight blending:
30270
30271 -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
30272
30273 convolution_opencl
30274 Apply convolution of 3x3, 5x5, 7x7 matrix.
30275
30276 The filter accepts the following options:
30277
30278 0m
30279 1m
30280 2m
30281 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
30282 signed numbers. Default value for each plane is "0 0 0 0 1 0 0 0
30283 0".
30284
30285 0rdiv
30286 1rdiv
30287 2rdiv
30288 3rdiv
30289 Set multiplier for calculated value for each plane. If unset or 0,
30290 it will be sum of all matrix elements. The option value must be a
30291 float number greater or equal to 0.0. Default value is 1.0.
30292
30293 0bias
30294 1bias
30295 2bias
30296 3bias
30297 Set bias for each plane. This value is added to the result of the
30298 multiplication. Useful for making the overall image brighter or
30299 darker. The option value must be a float number greater or equal
30300 to 0.0. Default value is 0.0.
30301
30302 Examples
30303
30304 • Apply sharpen:
30305
30306 -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
30307
30308 • Apply blur:
30309
30310 -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
30311
30312 • Apply edge enhance:
30313
30314 -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
30315
30316 • Apply edge detect:
30317
30318 -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
30319
30320 • Apply laplacian edge detector which includes diagonals:
30321
30322 -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
30323
30324 • Apply emboss:
30325
30326 -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
30327
30328 erosion_opencl
30329 Apply erosion effect to the video.
30330
30331 This filter replaces the pixel by the local(3x3) minimum.
30332
30333 It accepts the following options:
30334
30335 threshold0
30336 threshold1
30337 threshold2
30338 threshold3
30339 Limit the maximum change for each plane. Range is "[0, 65535]" and
30340 default value is 65535. If 0, plane will remain unchanged.
30341
30342 coordinates
30343 Flag which specifies the pixel to refer to. Range is "[0, 255]"
30344 and default value is 255, i.e. all eight pixels are used.
30345
30346 Flags to local 3x3 coordinates region centered on "x":
30347
30348 1 2 3
30349
30350 4 x 5
30351
30352 6 7 8
30353
30354 Example
30355
30356 • Apply erosion filter with threshold0 set to 30, threshold1 set 40,
30357 threshold2 set to 50 and coordinates set to 231, setting each pixel
30358 of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
30359 of the 3x3 region centered on it in the input. If the difference
30360 between input pixel and local minimum is more then threshold of the
30361 corresponding plane, output pixel will be set to input pixel -
30362 threshold of corresponding plane.
30363
30364 -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
30365
30366 deshake_opencl
30367 Feature-point based video stabilization filter.
30368
30369 The filter accepts the following options:
30370
30371 tripod
30372 Simulates a tripod by preventing any camera movement whatsoever
30373 from the original frame. Defaults to 0.
30374
30375 debug
30376 Whether or not additional debug info should be displayed, both in
30377 the processed output and in the console.
30378
30379 Note that in order to see console debug output you will also need
30380 to pass "-v verbose" to ffmpeg.
30381
30382 Viewing point matches in the output video is only supported for RGB
30383 input.
30384
30385 Defaults to 0.
30386
30387 adaptive_crop
30388 Whether or not to do a tiny bit of cropping at the borders to cut
30389 down on the amount of mirrored pixels.
30390
30391 Defaults to 1.
30392
30393 refine_features
30394 Whether or not feature points should be refined at a sub-pixel
30395 level.
30396
30397 This can be turned off for a slight performance gain at the cost of
30398 precision.
30399
30400 Defaults to 1.
30401
30402 smooth_strength
30403 The strength of the smoothing applied to the camera path from 0.0
30404 to 1.0.
30405
30406 1.0 is the maximum smoothing strength while values less than that
30407 result in less smoothing.
30408
30409 0.0 causes the filter to adaptively choose a smoothing strength on
30410 a per-frame basis.
30411
30412 Defaults to 0.0.
30413
30414 smooth_window_multiplier
30415 Controls the size of the smoothing window (the number of frames
30416 buffered to determine motion information from).
30417
30418 The size of the smoothing window is determined by multiplying the
30419 framerate of the video by this number.
30420
30421 Acceptable values range from 0.1 to 10.0.
30422
30423 Larger values increase the amount of motion data available for
30424 determining how to smooth the camera path, potentially improving
30425 smoothness, but also increase latency and memory usage.
30426
30427 Defaults to 2.0.
30428
30429 Examples
30430
30431 • Stabilize a video with a fixed, medium smoothing strength:
30432
30433 -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
30434
30435 • Stabilize a video with debugging (both in console and in rendered
30436 video):
30437
30438 -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
30439
30440 dilation_opencl
30441 Apply dilation effect to the video.
30442
30443 This filter replaces the pixel by the local(3x3) maximum.
30444
30445 It accepts the following options:
30446
30447 threshold0
30448 threshold1
30449 threshold2
30450 threshold3
30451 Limit the maximum change for each plane. Range is "[0, 65535]" and
30452 default value is 65535. If 0, plane will remain unchanged.
30453
30454 coordinates
30455 Flag which specifies the pixel to refer to. Range is "[0, 255]"
30456 and default value is 255, i.e. all eight pixels are used.
30457
30458 Flags to local 3x3 coordinates region centered on "x":
30459
30460 1 2 3
30461
30462 4 x 5
30463
30464 6 7 8
30465
30466 Example
30467
30468 • Apply dilation filter with threshold0 set to 30, threshold1 set 40,
30469 threshold2 set to 50 and coordinates set to 231, setting each pixel
30470 of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
30471 of the 3x3 region centered on it in the input. If the difference
30472 between input pixel and local maximum is more then threshold of the
30473 corresponding plane, output pixel will be set to input pixel +
30474 threshold of corresponding plane.
30475
30476 -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
30477
30478 nlmeans_opencl
30479 Non-local Means denoise filter through OpenCL, this filter accepts same
30480 options as nlmeans.
30481
30482 overlay_opencl
30483 Overlay one video on top of another.
30484
30485 It takes two inputs and has one output. The first input is the "main"
30486 video on which the second input is overlaid. This filter requires same
30487 memory layout for all the inputs. So, format conversion may be needed.
30488
30489 The filter accepts the following options:
30490
30491 x Set the x coordinate of the overlaid video on the main video.
30492 Default value is 0.
30493
30494 y Set the y coordinate of the overlaid video on the main video.
30495 Default value is 0.
30496
30497 Examples
30498
30499 • Overlay an image LOGO at the top-left corner of the INPUT video.
30500 Both inputs are yuv420p format.
30501
30502 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
30503
30504 • The inputs have same memory layout for color channels , the overlay
30505 has additional alpha plane, like INPUT is yuv420p, and the LOGO is
30506 yuva420p.
30507
30508 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
30509
30510 pad_opencl
30511 Add paddings to the input image, and place the original input at the
30512 provided x, y coordinates.
30513
30514 It accepts the following options:
30515
30516 width, w
30517 height, h
30518 Specify an expression for the size of the output image with the
30519 paddings added. If the value for width or height is 0, the
30520 corresponding input size is used for the output.
30521
30522 The width expression can reference the value set by the height
30523 expression, and vice versa.
30524
30525 The default value of width and height is 0.
30526
30527 x
30528 y Specify the offsets to place the input image at within the padded
30529 area, with respect to the top/left border of the output image.
30530
30531 The x expression can reference the value set by the y expression,
30532 and vice versa.
30533
30534 The default value of x and y is 0.
30535
30536 If x or y evaluate to a negative number, they'll be changed so the
30537 input image is centered on the padded area.
30538
30539 color
30540 Specify the color of the padded area. For the syntax of this
30541 option, check the "Color" section in the ffmpeg-utils manual.
30542
30543 aspect
30544 Pad to an aspect instead to a resolution.
30545
30546 The value for the width, height, x, and y options are expressions
30547 containing the following constants:
30548
30549 in_w
30550 in_h
30551 The input video width and height.
30552
30553 iw
30554 ih These are the same as in_w and in_h.
30555
30556 out_w
30557 out_h
30558 The output width and height (the size of the padded area), as
30559 specified by the width and height expressions.
30560
30561 ow
30562 oh These are the same as out_w and out_h.
30563
30564 x
30565 y The x and y offsets as specified by the x and y expressions, or NAN
30566 if not yet specified.
30567
30568 a same as iw / ih
30569
30570 sar input sample aspect ratio
30571
30572 dar input display aspect ratio, it is the same as (iw / ih) * sar
30573
30574 prewitt_opencl
30575 Apply the Prewitt operator
30576 (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
30577 stream.
30578
30579 The filter accepts the following option:
30580
30581 planes
30582 Set which planes to filter. Default value is 0xf, by which all
30583 planes are processed.
30584
30585 scale
30586 Set value which will be multiplied with filtered result. Range is
30587 "[0.0, 65535]" and default value is 1.0.
30588
30589 delta
30590 Set value which will be added to filtered result. Range is
30591 "[-65535, 65535]" and default value is 0.0.
30592
30593 Example
30594
30595 • Apply the Prewitt operator with scale set to 2 and delta set to 10.
30596
30597 -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
30598
30599 program_opencl
30600 Filter video using an OpenCL program.
30601
30602 source
30603 OpenCL program source file.
30604
30605 kernel
30606 Kernel name in program.
30607
30608 inputs
30609 Number of inputs to the filter. Defaults to 1.
30610
30611 size, s
30612 Size of output frames. Defaults to the same as the first input.
30613
30614 The "program_opencl" filter also supports the framesync options.
30615
30616 The program source file must contain a kernel function with the given
30617 name, which will be run once for each plane of the output. Each run on
30618 a plane gets enqueued as a separate 2D global NDRange with one work-
30619 item for each pixel to be generated. The global ID offset for each
30620 work-item is therefore the coordinates of a pixel in the destination
30621 image.
30622
30623 The kernel function needs to take the following arguments:
30624
30625 • Destination image, __write_only image2d_t.
30626
30627 This image will become the output; the kernel should write all of
30628 it.
30629
30630 • Frame index, unsigned int.
30631
30632 This is a counter starting from zero and increasing by one for each
30633 frame.
30634
30635 • Source images, __read_only image2d_t.
30636
30637 These are the most recent images on each input. The kernel may
30638 read from them to generate the output, but they can't be written
30639 to.
30640
30641 Example programs:
30642
30643 • Copy the input to the output (output must be the same size as the
30644 input).
30645
30646 __kernel void copy(__write_only image2d_t destination,
30647 unsigned int index,
30648 __read_only image2d_t source)
30649 {
30650 const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
30651
30652 int2 location = (int2)(get_global_id(0), get_global_id(1));
30653
30654 float4 value = read_imagef(source, sampler, location);
30655
30656 write_imagef(destination, location, value);
30657 }
30658
30659 • Apply a simple transformation, rotating the input by an amount
30660 increasing with the index counter. Pixel values are linearly
30661 interpolated by the sampler, and the output need not have the same
30662 dimensions as the input.
30663
30664 __kernel void rotate_image(__write_only image2d_t dst,
30665 unsigned int index,
30666 __read_only image2d_t src)
30667 {
30668 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
30669 CLK_FILTER_LINEAR);
30670
30671 float angle = (float)index / 100.0f;
30672
30673 float2 dst_dim = convert_float2(get_image_dim(dst));
30674 float2 src_dim = convert_float2(get_image_dim(src));
30675
30676 float2 dst_cen = dst_dim / 2.0f;
30677 float2 src_cen = src_dim / 2.0f;
30678
30679 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
30680
30681 float2 dst_pos = convert_float2(dst_loc) - dst_cen;
30682 float2 src_pos = {
30683 cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
30684 sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
30685 };
30686 src_pos = src_pos * src_dim / dst_dim;
30687
30688 float2 src_loc = src_pos + src_cen;
30689
30690 if (src_loc.x < 0.0f || src_loc.y < 0.0f ||
30691 src_loc.x > src_dim.x || src_loc.y > src_dim.y)
30692 write_imagef(dst, dst_loc, 0.5f);
30693 else
30694 write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
30695 }
30696
30697 • Blend two inputs together, with the amount of each input used
30698 varying with the index counter.
30699
30700 __kernel void blend_images(__write_only image2d_t dst,
30701 unsigned int index,
30702 __read_only image2d_t src1,
30703 __read_only image2d_t src2)
30704 {
30705 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
30706 CLK_FILTER_LINEAR);
30707
30708 float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
30709
30710 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
30711 int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
30712 int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
30713
30714 float4 val1 = read_imagef(src1, sampler, src1_loc);
30715 float4 val2 = read_imagef(src2, sampler, src2_loc);
30716
30717 write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
30718 }
30719
30720 roberts_opencl
30721 Apply the Roberts cross operator
30722 (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
30723
30724 The filter accepts the following option:
30725
30726 planes
30727 Set which planes to filter. Default value is 0xf, by which all
30728 planes are processed.
30729
30730 scale
30731 Set value which will be multiplied with filtered result. Range is
30732 "[0.0, 65535]" and default value is 1.0.
30733
30734 delta
30735 Set value which will be added to filtered result. Range is
30736 "[-65535, 65535]" and default value is 0.0.
30737
30738 Example
30739
30740 • Apply the Roberts cross operator with scale set to 2 and delta set
30741 to 10
30742
30743 -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
30744
30745 sobel_opencl
30746 Apply the Sobel operator
30747 (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
30748
30749 The filter accepts the following option:
30750
30751 planes
30752 Set which planes to filter. Default value is 0xf, by which all
30753 planes are processed.
30754
30755 scale
30756 Set value which will be multiplied with filtered result. Range is
30757 "[0.0, 65535]" and default value is 1.0.
30758
30759 delta
30760 Set value which will be added to filtered result. Range is
30761 "[-65535, 65535]" and default value is 0.0.
30762
30763 Example
30764
30765 • Apply sobel operator with scale set to 2 and delta set to 10
30766
30767 -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
30768
30769 tonemap_opencl
30770 Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
30771
30772 It accepts the following parameters:
30773
30774 tonemap
30775 Specify the tone-mapping operator to be used. Same as tonemap
30776 option in tonemap.
30777
30778 param
30779 Tune the tone mapping algorithm. same as param option in tonemap.
30780
30781 desat
30782 Apply desaturation for highlights that exceed this level of
30783 brightness. The higher the parameter, the more color information
30784 will be preserved. This setting helps prevent unnaturally blown-out
30785 colors for super-highlights, by (smoothly) turning into white
30786 instead. This makes images feel more natural, at the cost of
30787 reducing information about out-of-range colors.
30788
30789 The default value is 0.5, and the algorithm here is a little
30790 different from the cpu version tonemap currently. A setting of 0.0
30791 disables this option.
30792
30793 threshold
30794 The tonemapping algorithm parameters is fine-tuned per each scene.
30795 And a threshold is used to detect whether the scene has changed or
30796 not. If the distance between the current frame average brightness
30797 and the current running average exceeds a threshold value, we would
30798 re-calculate scene average and peak brightness. The default value
30799 is 0.2.
30800
30801 format
30802 Specify the output pixel format.
30803
30804 Currently supported formats are:
30805
30806 p010
30807 nv12
30808 range, r
30809 Set the output color range.
30810
30811 Possible values are:
30812
30813 tv/mpeg
30814 pc/jpeg
30815
30816 Default is same as input.
30817
30818 primaries, p
30819 Set the output color primaries.
30820
30821 Possible values are:
30822
30823 bt709
30824 bt2020
30825
30826 Default is same as input.
30827
30828 transfer, t
30829 Set the output transfer characteristics.
30830
30831 Possible values are:
30832
30833 bt709
30834 bt2020
30835
30836 Default is bt709.
30837
30838 matrix, m
30839 Set the output colorspace matrix.
30840
30841 Possible value are:
30842
30843 bt709
30844 bt2020
30845
30846 Default is same as input.
30847
30848 Example
30849
30850 • Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
30851 format using linear operator.
30852
30853 -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
30854
30855 unsharp_opencl
30856 Sharpen or blur the input video.
30857
30858 It accepts the following parameters:
30859
30860 luma_msize_x, lx
30861 Set the luma matrix horizontal size. Range is "[1, 23]" and
30862 default value is 5.
30863
30864 luma_msize_y, ly
30865 Set the luma matrix vertical size. Range is "[1, 23]" and default
30866 value is 5.
30867
30868 luma_amount, la
30869 Set the luma effect strength. Range is "[-10, 10]" and default
30870 value is 1.0.
30871
30872 Negative values will blur the input video, while positive values
30873 will sharpen it, a value of zero will disable the effect.
30874
30875 chroma_msize_x, cx
30876 Set the chroma matrix horizontal size. Range is "[1, 23]" and
30877 default value is 5.
30878
30879 chroma_msize_y, cy
30880 Set the chroma matrix vertical size. Range is "[1, 23]" and
30881 default value is 5.
30882
30883 chroma_amount, ca
30884 Set the chroma effect strength. Range is "[-10, 10]" and default
30885 value is 0.0.
30886
30887 Negative values will blur the input video, while positive values
30888 will sharpen it, a value of zero will disable the effect.
30889
30890 All parameters are optional and default to the equivalent of the string
30891 '5:5:1.0:5:5:0.0'.
30892
30893 Examples
30894
30895 • Apply strong luma sharpen effect:
30896
30897 -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
30898
30899 • Apply a strong blur of both luma and chroma parameters:
30900
30901 -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
30902
30903 xfade_opencl
30904 Cross fade two videos with custom transition effect by using OpenCL.
30905
30906 It accepts the following options:
30907
30908 transition
30909 Set one of possible transition effects.
30910
30911 custom
30912 Select custom transition effect, the actual transition
30913 description will be picked from source and kernel options.
30914
30915 fade
30916 wipeleft
30917 wiperight
30918 wipeup
30919 wipedown
30920 slideleft
30921 slideright
30922 slideup
30923 slidedown
30924 Default transition is fade.
30925
30926 source
30927 OpenCL program source file for custom transition.
30928
30929 kernel
30930 Set name of kernel to use for custom transition from program source
30931 file.
30932
30933 duration
30934 Set duration of video transition.
30935
30936 offset
30937 Set time of start of transition relative to first video.
30938
30939 The program source file must contain a kernel function with the given
30940 name, which will be run once for each plane of the output. Each run on
30941 a plane gets enqueued as a separate 2D global NDRange with one work-
30942 item for each pixel to be generated. The global ID offset for each
30943 work-item is therefore the coordinates of a pixel in the destination
30944 image.
30945
30946 The kernel function needs to take the following arguments:
30947
30948 • Destination image, __write_only image2d_t.
30949
30950 This image will become the output; the kernel should write all of
30951 it.
30952
30953 • First Source image, __read_only image2d_t. Second Source image,
30954 __read_only image2d_t.
30955
30956 These are the most recent images on each input. The kernel may
30957 read from them to generate the output, but they can't be written
30958 to.
30959
30960 • Transition progress, float. This value is always between 0 and 1
30961 inclusive.
30962
30963 Example programs:
30964
30965 • Apply dots curtain transition effect:
30966
30967 __kernel void blend_images(__write_only image2d_t dst,
30968 __read_only image2d_t src1,
30969 __read_only image2d_t src2,
30970 float progress)
30971 {
30972 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
30973 CLK_FILTER_LINEAR);
30974 int2 p = (int2)(get_global_id(0), get_global_id(1));
30975 float2 rp = (float2)(get_global_id(0), get_global_id(1));
30976 float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
30977 rp = rp / dim;
30978
30979 float2 dots = (float2)(20.0, 20.0);
30980 float2 center = (float2)(0,0);
30981 float2 unused;
30982
30983 float4 val1 = read_imagef(src1, sampler, p);
30984 float4 val2 = read_imagef(src2, sampler, p);
30985 bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
30986
30987 write_imagef(dst, p, next ? val1 : val2);
30988 }
30989
30991 VAAPI Video filters are usually used with VAAPI decoder and VAAPI
30992 encoder. Below is a description of VAAPI video filters.
30993
30994 To enable compilation of these filters you need to configure FFmpeg
30995 with "--enable-vaapi".
30996
30997 To use vaapi filters, you need to setup the vaapi device correctly. For
30998 more information, please read
30999 <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
31000
31001 tonemap_vaapi
31002 Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
31003 conversion with tone-mapping. It maps the dynamic range of HDR10
31004 content to the SDR content. It currently only accepts HDR10 as input.
31005
31006 It accepts the following parameters:
31007
31008 format
31009 Specify the output pixel format.
31010
31011 Currently supported formats are:
31012
31013 p010
31014 nv12
31015
31016 Default is nv12.
31017
31018 primaries, p
31019 Set the output color primaries.
31020
31021 Default is same as input.
31022
31023 transfer, t
31024 Set the output transfer characteristics.
31025
31026 Default is bt709.
31027
31028 matrix, m
31029 Set the output colorspace matrix.
31030
31031 Default is same as input.
31032
31033 Example
31034
31035 • Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
31036 format
31037
31038 tonemap_vaapi=format=p010:t=bt2020-10
31039
31041 Below is a description of the currently available video sources.
31042
31043 buffer
31044 Buffer video frames, and make them available to the filter chain.
31045
31046 This source is mainly intended for a programmatic use, in particular
31047 through the interface defined in libavfilter/buffersrc.h.
31048
31049 It accepts the following parameters:
31050
31051 video_size
31052 Specify the size (width and height) of the buffered video frames.
31053 For the syntax of this option, check the "Video size" section in
31054 the ffmpeg-utils manual.
31055
31056 width
31057 The input video width.
31058
31059 height
31060 The input video height.
31061
31062 pix_fmt
31063 A string representing the pixel format of the buffered video
31064 frames. It may be a number corresponding to a pixel format, or a
31065 pixel format name.
31066
31067 time_base
31068 Specify the timebase assumed by the timestamps of the buffered
31069 frames.
31070
31071 frame_rate
31072 Specify the frame rate expected for the video stream.
31073
31074 pixel_aspect, sar
31075 The sample (pixel) aspect ratio of the input video.
31076
31077 sws_param
31078 This option is deprecated and ignored. Prepend "sws_flags=flags;"
31079 to the filtergraph description to specify swscale flags for
31080 automatically inserted scalers. See Filtergraph syntax.
31081
31082 hw_frames_ctx
31083 When using a hardware pixel format, this should be a reference to
31084 an AVHWFramesContext describing input frames.
31085
31086 For example:
31087
31088 buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
31089
31090 will instruct the source to accept video frames with size 320x240 and
31091 with format "yuv410p", assuming 1/24 as the timestamps timebase and
31092 square pixels (1:1 sample aspect ratio). Since the pixel format with
31093 name "yuv410p" corresponds to the number 6 (check the enum
31094 AVPixelFormat definition in libavutil/pixfmt.h), this example
31095 corresponds to:
31096
31097 buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
31098
31099 Alternatively, the options can be specified as a flat string, but this
31100 syntax is deprecated:
31101
31102 width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
31103
31104 cellauto
31105 Create a pattern generated by an elementary cellular automaton.
31106
31107 The initial state of the cellular automaton can be defined through the
31108 filename and pattern options. If such options are not specified an
31109 initial state is created randomly.
31110
31111 At each new frame a new row in the video is filled with the result of
31112 the cellular automaton next generation. The behavior when the whole
31113 frame is filled is defined by the scroll option.
31114
31115 This source accepts the following options:
31116
31117 filename, f
31118 Read the initial cellular automaton state, i.e. the starting row,
31119 from the specified file. In the file, each non-whitespace
31120 character is considered an alive cell, a newline will terminate the
31121 row, and further characters in the file will be ignored.
31122
31123 pattern, p
31124 Read the initial cellular automaton state, i.e. the starting row,
31125 from the specified string.
31126
31127 Each non-whitespace character in the string is considered an alive
31128 cell, a newline will terminate the row, and further characters in
31129 the string will be ignored.
31130
31131 rate, r
31132 Set the video rate, that is the number of frames generated per
31133 second. Default is 25.
31134
31135 random_fill_ratio, ratio
31136 Set the random fill ratio for the initial cellular automaton row.
31137 It is a floating point number value ranging from 0 to 1, defaults
31138 to 1/PHI.
31139
31140 This option is ignored when a file or a pattern is specified.
31141
31142 random_seed, seed
31143 Set the seed for filling randomly the initial row, must be an
31144 integer included between 0 and UINT32_MAX. If not specified, or if
31145 explicitly set to -1, the filter will try to use a good random seed
31146 on a best effort basis.
31147
31148 rule
31149 Set the cellular automaton rule, it is a number ranging from 0 to
31150 255. Default value is 110.
31151
31152 size, s
31153 Set the size of the output video. For the syntax of this option,
31154 check the "Video size" section in the ffmpeg-utils manual.
31155
31156 If filename or pattern is specified, the size is set by default to
31157 the width of the specified initial state row, and the height is set
31158 to width * PHI.
31159
31160 If size is set, it must contain the width of the specified pattern
31161 string, and the specified pattern will be centered in the larger
31162 row.
31163
31164 If a filename or a pattern string is not specified, the size value
31165 defaults to "320x518" (used for a randomly generated initial
31166 state).
31167
31168 scroll
31169 If set to 1, scroll the output upward when all the rows in the
31170 output have been already filled. If set to 0, the new generated row
31171 will be written over the top row just after the bottom row is
31172 filled. Defaults to 1.
31173
31174 start_full, full
31175 If set to 1, completely fill the output with generated rows before
31176 outputting the first frame. This is the default behavior, for
31177 disabling set the value to 0.
31178
31179 stitch
31180 If set to 1, stitch the left and right row edges together. This is
31181 the default behavior, for disabling set the value to 0.
31182
31183 Examples
31184
31185 • Read the initial state from pattern, and specify an output of size
31186 200x400.
31187
31188 cellauto=f=pattern:s=200x400
31189
31190 • Generate a random initial row with a width of 200 cells, with a
31191 fill ratio of 2/3:
31192
31193 cellauto=ratio=2/3:s=200x200
31194
31195 • Create a pattern generated by rule 18 starting by a single alive
31196 cell centered on an initial row with width 100:
31197
31198 cellauto=p=@s=100x400:full=0:rule=18
31199
31200 • Specify a more elaborated initial pattern:
31201
31202 cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
31203
31204 coreimagesrc
31205 Video source generated on GPU using Apple's CoreImage API on OSX.
31206
31207 This video source is a specialized version of the coreimage video
31208 filter. Use a core image generator at the beginning of the applied
31209 filterchain to generate the content.
31210
31211 The coreimagesrc video source accepts the following options:
31212
31213 list_generators
31214 List all available generators along with all their respective
31215 options as well as possible minimum and maximum values along with
31216 the default values.
31217
31218 list_generators=true
31219
31220 size, s
31221 Specify the size of the sourced video. For the syntax of this
31222 option, check the "Video size" section in the ffmpeg-utils manual.
31223 The default value is "320x240".
31224
31225 rate, r
31226 Specify the frame rate of the sourced video, as the number of
31227 frames generated per second. It has to be a string in the format
31228 frame_rate_num/frame_rate_den, an integer number, a floating point
31229 number or a valid video frame rate abbreviation. The default value
31230 is "25".
31231
31232 sar Set the sample aspect ratio of the sourced video.
31233
31234 duration, d
31235 Set the duration of the sourced video. See the Time duration
31236 section in the ffmpeg-utils(1) manual for the accepted syntax.
31237
31238 If not specified, or the expressed duration is negative, the video
31239 is supposed to be generated forever.
31240
31241 Additionally, all options of the coreimage video filter are accepted.
31242 A complete filterchain can be used for further processing of the
31243 generated input without CPU-HOST transfer. See coreimage documentation
31244 and examples for details.
31245
31246 Examples
31247
31248 • Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
31249 given as complete and escaped command-line for Apple's standard
31250 bash shell:
31251
31252 ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
31253
31254 This example is equivalent to the QRCode example of coreimage
31255 without the need for a nullsrc video source.
31256
31257 gradients
31258 Generate several gradients.
31259
31260 size, s
31261 Set frame size. For the syntax of this option, check the "Video
31262 size" section in the ffmpeg-utils manual. Default value is
31263 "640x480".
31264
31265 rate, r
31266 Set frame rate, expressed as number of frames per second. Default
31267 value is "25".
31268
31269 c0, c1, c2, c3, c4, c5, c6, c7
31270 Set 8 colors. Default values for colors is to pick random one.
31271
31272 x0, y0, y0, y1
31273 Set gradient line source and destination points. If negative or out
31274 of range, random ones are picked.
31275
31276 nb_colors, n
31277 Set number of colors to use at once. Allowed range is from 2 to 8.
31278 Default value is 2.
31279
31280 seed
31281 Set seed for picking gradient line points.
31282
31283 duration, d
31284 Set the duration of the sourced video. See the Time duration
31285 section in the ffmpeg-utils(1) manual for the accepted syntax.
31286
31287 If not specified, or the expressed duration is negative, the video
31288 is supposed to be generated forever.
31289
31290 speed
31291 Set speed of gradients rotation.
31292
31293 mandelbrot
31294 Generate a Mandelbrot set fractal, and progressively zoom towards the
31295 point specified with start_x and start_y.
31296
31297 This source accepts the following options:
31298
31299 end_pts
31300 Set the terminal pts value. Default value is 400.
31301
31302 end_scale
31303 Set the terminal scale value. Must be a floating point value.
31304 Default value is 0.3.
31305
31306 inner
31307 Set the inner coloring mode, that is the algorithm used to draw the
31308 Mandelbrot fractal internal region.
31309
31310 It shall assume one of the following values:
31311
31312 black
31313 Set black mode.
31314
31315 convergence
31316 Show time until convergence.
31317
31318 mincol
31319 Set color based on point closest to the origin of the
31320 iterations.
31321
31322 period
31323 Set period mode.
31324
31325 Default value is mincol.
31326
31327 bailout
31328 Set the bailout value. Default value is 10.0.
31329
31330 maxiter
31331 Set the maximum of iterations performed by the rendering algorithm.
31332 Default value is 7189.
31333
31334 outer
31335 Set outer coloring mode. It shall assume one of following values:
31336
31337 iteration_count
31338 Set iteration count mode.
31339
31340 normalized_iteration_count
31341 set normalized iteration count mode.
31342
31343 Default value is normalized_iteration_count.
31344
31345 rate, r
31346 Set frame rate, expressed as number of frames per second. Default
31347 value is "25".
31348
31349 size, s
31350 Set frame size. For the syntax of this option, check the "Video
31351 size" section in the ffmpeg-utils manual. Default value is
31352 "640x480".
31353
31354 start_scale
31355 Set the initial scale value. Default value is 3.0.
31356
31357 start_x
31358 Set the initial x position. Must be a floating point value between
31359 -100 and 100. Default value is
31360 -0.743643887037158704752191506114774.
31361
31362 start_y
31363 Set the initial y position. Must be a floating point value between
31364 -100 and 100. Default value is
31365 -0.131825904205311970493132056385139.
31366
31367 mptestsrc
31368 Generate various test patterns, as generated by the MPlayer test
31369 filter.
31370
31371 The size of the generated video is fixed, and is 256x256. This source
31372 is useful in particular for testing encoding features.
31373
31374 This source accepts the following options:
31375
31376 rate, r
31377 Specify the frame rate of the sourced video, as the number of
31378 frames generated per second. It has to be a string in the format
31379 frame_rate_num/frame_rate_den, an integer number, a floating point
31380 number or a valid video frame rate abbreviation. The default value
31381 is "25".
31382
31383 duration, d
31384 Set the duration of the sourced video. See the Time duration
31385 section in the ffmpeg-utils(1) manual for the accepted syntax.
31386
31387 If not specified, or the expressed duration is negative, the video
31388 is supposed to be generated forever.
31389
31390 test, t
31391 Set the number or the name of the test to perform. Supported tests
31392 are:
31393
31394 dc_luma
31395 dc_chroma
31396 freq_luma
31397 freq_chroma
31398 amp_luma
31399 amp_chroma
31400 cbp
31401 mv
31402 ring1
31403 ring2
31404 all
31405 max_frames, m
31406 Set the maximum number of frames generated for each test,
31407 default value is 30.
31408
31409 Default value is "all", which will cycle through the list of all
31410 tests.
31411
31412 Some examples:
31413
31414 mptestsrc=t=dc_luma
31415
31416 will generate a "dc_luma" test pattern.
31417
31418 frei0r_src
31419 Provide a frei0r source.
31420
31421 To enable compilation of this filter you need to install the frei0r
31422 header and configure FFmpeg with "--enable-frei0r".
31423
31424 This source accepts the following parameters:
31425
31426 size
31427 The size of the video to generate. For the syntax of this option,
31428 check the "Video size" section in the ffmpeg-utils manual.
31429
31430 framerate
31431 The framerate of the generated video. It may be a string of the
31432 form num/den or a frame rate abbreviation.
31433
31434 filter_name
31435 The name to the frei0r source to load. For more information
31436 regarding frei0r and how to set the parameters, read the frei0r
31437 section in the video filters documentation.
31438
31439 filter_params
31440 A '|'-separated list of parameters to pass to the frei0r source.
31441
31442 For example, to generate a frei0r partik0l source with size 200x200 and
31443 frame rate 10 which is overlaid on the overlay filter main input:
31444
31445 frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
31446
31447 life
31448 Generate a life pattern.
31449
31450 This source is based on a generalization of John Conway's life game.
31451
31452 The sourced input represents a life grid, each pixel represents a cell
31453 which can be in one of two possible states, alive or dead. Every cell
31454 interacts with its eight neighbours, which are the cells that are
31455 horizontally, vertically, or diagonally adjacent.
31456
31457 At each interaction the grid evolves according to the adopted rule,
31458 which specifies the number of neighbor alive cells which will make a
31459 cell stay alive or born. The rule option allows one to specify the rule
31460 to adopt.
31461
31462 This source accepts the following options:
31463
31464 filename, f
31465 Set the file from which to read the initial grid state. In the
31466 file, each non-whitespace character is considered an alive cell,
31467 and newline is used to delimit the end of each row.
31468
31469 If this option is not specified, the initial grid is generated
31470 randomly.
31471
31472 rate, r
31473 Set the video rate, that is the number of frames generated per
31474 second. Default is 25.
31475
31476 random_fill_ratio, ratio
31477 Set the random fill ratio for the initial random grid. It is a
31478 floating point number value ranging from 0 to 1, defaults to 1/PHI.
31479 It is ignored when a file is specified.
31480
31481 random_seed, seed
31482 Set the seed for filling the initial random grid, must be an
31483 integer included between 0 and UINT32_MAX. If not specified, or if
31484 explicitly set to -1, the filter will try to use a good random seed
31485 on a best effort basis.
31486
31487 rule
31488 Set the life rule.
31489
31490 A rule can be specified with a code of the kind "SNS/BNB", where NS
31491 and NB are sequences of numbers in the range 0-8, NS specifies the
31492 number of alive neighbor cells which make a live cell stay alive,
31493 and NB the number of alive neighbor cells which make a dead cell to
31494 become alive (i.e. to "born"). "s" and "b" can be used in place of
31495 "S" and "B", respectively.
31496
31497 Alternatively a rule can be specified by an 18-bits integer. The 9
31498 high order bits are used to encode the next cell state if it is
31499 alive for each number of neighbor alive cells, the low order bits
31500 specify the rule for "borning" new cells. Higher order bits encode
31501 for an higher number of neighbor cells. For example the number
31502 6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
31503 rule of 9, which corresponds to "S23/B03".
31504
31505 Default value is "S23/B3", which is the original Conway's game of
31506 life rule, and will keep a cell alive if it has 2 or 3 neighbor
31507 alive cells, and will born a new cell if there are three alive
31508 cells around a dead cell.
31509
31510 size, s
31511 Set the size of the output video. For the syntax of this option,
31512 check the "Video size" section in the ffmpeg-utils manual.
31513
31514 If filename is specified, the size is set by default to the same
31515 size of the input file. If size is set, it must contain the size
31516 specified in the input file, and the initial grid defined in that
31517 file is centered in the larger resulting area.
31518
31519 If a filename is not specified, the size value defaults to
31520 "320x240" (used for a randomly generated initial grid).
31521
31522 stitch
31523 If set to 1, stitch the left and right grid edges together, and the
31524 top and bottom edges also. Defaults to 1.
31525
31526 mold
31527 Set cell mold speed. If set, a dead cell will go from death_color
31528 to mold_color with a step of mold. mold can have a value from 0 to
31529 255.
31530
31531 life_color
31532 Set the color of living (or new born) cells.
31533
31534 death_color
31535 Set the color of dead cells. If mold is set, this is the first
31536 color used to represent a dead cell.
31537
31538 mold_color
31539 Set mold color, for definitely dead and moldy cells.
31540
31541 For the syntax of these 3 color options, check the "Color" section
31542 in the ffmpeg-utils manual.
31543
31544 Examples
31545
31546 • Read a grid from pattern, and center it on a grid of size 300x300
31547 pixels:
31548
31549 life=f=pattern:s=300x300
31550
31551 • Generate a random grid of size 200x200, with a fill ratio of 2/3:
31552
31553 life=ratio=2/3:s=200x200
31554
31555 • Specify a custom rule for evolving a randomly generated grid:
31556
31557 life=rule=S14/B34
31558
31559 • Full example with slow death effect (mold) using ffplay:
31560
31561 ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
31562
31563 allrgb, allyuv, color, colorspectrum, haldclutsrc, nullsrc, pal75bars,
31564 pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2,
31565 yuvtestsrc
31566 The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
31567
31568 The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
31569
31570 The "color" source provides an uniformly colored input.
31571
31572 The "colorspectrum" source provides a color spectrum input.
31573
31574 The "haldclutsrc" source provides an identity Hald CLUT. See also
31575 haldclut filter.
31576
31577 The "nullsrc" source returns unprocessed video frames. It is mainly
31578 useful to be employed in analysis / debugging tools, or as the source
31579 for filters which ignore the input data.
31580
31581 The "pal75bars" source generates a color bars pattern, based on EBU PAL
31582 recommendations with 75% color levels.
31583
31584 The "pal100bars" source generates a color bars pattern, based on EBU
31585 PAL recommendations with 100% color levels.
31586
31587 The "rgbtestsrc" source generates an RGB test pattern useful for
31588 detecting RGB vs BGR issues. You should see a red, green and blue
31589 stripe from top to bottom.
31590
31591 The "smptebars" source generates a color bars pattern, based on the
31592 SMPTE Engineering Guideline EG 1-1990.
31593
31594 The "smptehdbars" source generates a color bars pattern, based on the
31595 SMPTE RP 219-2002.
31596
31597 The "testsrc" source generates a test video pattern, showing a color
31598 pattern, a scrolling gradient and a timestamp. This is mainly intended
31599 for testing purposes.
31600
31601 The "testsrc2" source is similar to testsrc, but supports more pixel
31602 formats instead of just "rgb24". This allows using it as an input for
31603 other tests without requiring a format conversion.
31604
31605 The "yuvtestsrc" source generates an YUV test pattern. You should see a
31606 y, cb and cr stripe from top to bottom.
31607
31608 The sources accept the following parameters:
31609
31610 level
31611 Specify the level of the Hald CLUT, only available in the
31612 "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
31613 by "N*N*N" pixels to be used as identity matrix for 3D lookup
31614 tables. Each component is coded on a "1/(N*N)" scale.
31615
31616 color, c
31617 Specify the color of the source, only available in the "color"
31618 source. For the syntax of this option, check the "Color" section in
31619 the ffmpeg-utils manual.
31620
31621 size, s
31622 Specify the size of the sourced video. For the syntax of this
31623 option, check the "Video size" section in the ffmpeg-utils manual.
31624 The default value is "320x240".
31625
31626 This option is not available with the "allrgb", "allyuv", and
31627 "haldclutsrc" filters.
31628
31629 rate, r
31630 Specify the frame rate of the sourced video, as the number of
31631 frames generated per second. It has to be a string in the format
31632 frame_rate_num/frame_rate_den, an integer number, a floating point
31633 number or a valid video frame rate abbreviation. The default value
31634 is "25".
31635
31636 duration, d
31637 Set the duration of the sourced video. See the Time duration
31638 section in the ffmpeg-utils(1) manual for the accepted syntax.
31639
31640 If not specified, or the expressed duration is negative, the video
31641 is supposed to be generated forever.
31642
31643 Since the frame rate is used as time base, all frames including the
31644 last one will have their full duration. If the specified duration
31645 is not a multiple of the frame duration, it will be rounded up.
31646
31647 sar Set the sample aspect ratio of the sourced video.
31648
31649 alpha
31650 Specify the alpha (opacity) of the background, only available in
31651 the "testsrc2" source. The value must be between 0 (fully
31652 transparent) and 255 (fully opaque, the default).
31653
31654 decimals, n
31655 Set the number of decimals to show in the timestamp, only available
31656 in the "testsrc" source.
31657
31658 The displayed timestamp value will correspond to the original
31659 timestamp value multiplied by the power of 10 of the specified
31660 value. Default value is 0.
31661
31662 type
31663 Set the type of the color spectrum, only available in the
31664 "colorspectrum" source. Can be one of the following:
31665
31666 black
31667 white
31668 all
31669
31670 Examples
31671
31672 • Generate a video with a duration of 5.3 seconds, with size 176x144
31673 and a frame rate of 10 frames per second:
31674
31675 testsrc=duration=5.3:size=qcif:rate=10
31676
31677 • The following graph description will generate a red source with an
31678 opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
31679 second:
31680
31681 color=c=red@0.2:s=qcif:r=10
31682
31683 • If the input content is to be ignored, "nullsrc" can be used. The
31684 following command generates noise in the luminance plane by
31685 employing the "geq" filter:
31686
31687 nullsrc=s=256x256, geq=random(1)*255:128:128
31688
31689 Commands
31690
31691 The "color" source supports the following commands:
31692
31693 c, color
31694 Set the color of the created image. Accepts the same syntax of the
31695 corresponding color option.
31696
31697 openclsrc
31698 Generate video using an OpenCL program.
31699
31700 source
31701 OpenCL program source file.
31702
31703 kernel
31704 Kernel name in program.
31705
31706 size, s
31707 Size of frames to generate. This must be set.
31708
31709 format
31710 Pixel format to use for the generated frames. This must be set.
31711
31712 rate, r
31713 Number of frames generated every second. Default value is '25'.
31714
31715 For details of how the program loading works, see the program_opencl
31716 filter.
31717
31718 Example programs:
31719
31720 • Generate a colour ramp by setting pixel values from the position of
31721 the pixel in the output image. (Note that this will work with all
31722 pixel formats, but the generated output will not be the same.)
31723
31724 __kernel void ramp(__write_only image2d_t dst,
31725 unsigned int index)
31726 {
31727 int2 loc = (int2)(get_global_id(0), get_global_id(1));
31728
31729 float4 val;
31730 val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
31731
31732 write_imagef(dst, loc, val);
31733 }
31734
31735 • Generate a Sierpinski carpet pattern, panning by a single pixel
31736 each frame.
31737
31738 __kernel void sierpinski_carpet(__write_only image2d_t dst,
31739 unsigned int index)
31740 {
31741 int2 loc = (int2)(get_global_id(0), get_global_id(1));
31742
31743 float4 value = 0.0f;
31744 int x = loc.x + index;
31745 int y = loc.y + index;
31746 while (x > 0 || y > 0) {
31747 if (x % 3 == 1 && y % 3 == 1) {
31748 value = 1.0f;
31749 break;
31750 }
31751 x /= 3;
31752 y /= 3;
31753 }
31754
31755 write_imagef(dst, loc, value);
31756 }
31757
31758 sierpinski
31759 Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
31760
31761 This source accepts the following options:
31762
31763 size, s
31764 Set frame size. For the syntax of this option, check the "Video
31765 size" section in the ffmpeg-utils manual. Default value is
31766 "640x480".
31767
31768 rate, r
31769 Set frame rate, expressed as number of frames per second. Default
31770 value is "25".
31771
31772 seed
31773 Set seed which is used for random panning.
31774
31775 jump
31776 Set max jump for single pan destination. Allowed range is from 1 to
31777 10000.
31778
31779 type
31780 Set fractal type, can be default "carpet" or "triangle".
31781
31783 Below is a description of the currently available video sinks.
31784
31785 buffersink
31786 Buffer video frames, and make them available to the end of the filter
31787 graph.
31788
31789 This sink is mainly intended for programmatic use, in particular
31790 through the interface defined in libavfilter/buffersink.h or the
31791 options system.
31792
31793 It accepts a pointer to an AVBufferSinkContext structure, which defines
31794 the incoming buffers' formats, to be passed as the opaque parameter to
31795 "avfilter_init_filter" for initialization.
31796
31797 nullsink
31798 Null video sink: do absolutely nothing with the input video. It is
31799 mainly useful as a template and for use in analysis / debugging tools.
31800
31802 Below is a description of the currently available multimedia filters.
31803
31804 abitscope
31805 Convert input audio to a video output, displaying the audio bit scope.
31806
31807 The filter accepts the following options:
31808
31809 rate, r
31810 Set frame rate, expressed as number of frames per second. Default
31811 value is "25".
31812
31813 size, s
31814 Specify the video size for the output. For the syntax of this
31815 option, check the "Video size" section in the ffmpeg-utils manual.
31816 Default value is "1024x256".
31817
31818 colors
31819 Specify list of colors separated by space or by '|' which will be
31820 used to draw channels. Unrecognized or missing colors will be
31821 replaced by white color.
31822
31823 adrawgraph
31824 Draw a graph using input audio metadata.
31825
31826 See drawgraph
31827
31828 agraphmonitor
31829 See graphmonitor.
31830
31831 ahistogram
31832 Convert input audio to a video output, displaying the volume histogram.
31833
31834 The filter accepts the following options:
31835
31836 dmode
31837 Specify how histogram is calculated.
31838
31839 It accepts the following values:
31840
31841 single
31842 Use single histogram for all channels.
31843
31844 separate
31845 Use separate histogram for each channel.
31846
31847 Default is "single".
31848
31849 rate, r
31850 Set frame rate, expressed as number of frames per second. Default
31851 value is "25".
31852
31853 size, s
31854 Specify the video size for the output. For the syntax of this
31855 option, check the "Video size" section in the ffmpeg-utils manual.
31856 Default value is "hd720".
31857
31858 scale
31859 Set display scale.
31860
31861 It accepts the following values:
31862
31863 log logarithmic
31864
31865 sqrt
31866 square root
31867
31868 cbrt
31869 cubic root
31870
31871 lin linear
31872
31873 rlog
31874 reverse logarithmic
31875
31876 Default is "log".
31877
31878 ascale
31879 Set amplitude scale.
31880
31881 It accepts the following values:
31882
31883 log logarithmic
31884
31885 lin linear
31886
31887 Default is "log".
31888
31889 acount
31890 Set how much frames to accumulate in histogram. Default is 1.
31891 Setting this to -1 accumulates all frames.
31892
31893 rheight
31894 Set histogram ratio of window height.
31895
31896 slide
31897 Set sonogram sliding.
31898
31899 It accepts the following values:
31900
31901 replace
31902 replace old rows with new ones.
31903
31904 scroll
31905 scroll from top to bottom.
31906
31907 Default is "replace".
31908
31909 aphasemeter
31910 Measures phase of input audio, which is exported as metadata
31911 "lavfi.aphasemeter.phase", representing mean phase of current audio
31912 frame. A video output can also be produced and is enabled by default.
31913 The audio is passed through as first output.
31914
31915 Audio will be rematrixed to stereo if it has a different channel
31916 layout. Phase value is in range "[-1, 1]" where "-1" means left and
31917 right channels are completely out of phase and 1 means channels are in
31918 phase.
31919
31920 The filter accepts the following options, all related to its video
31921 output:
31922
31923 rate, r
31924 Set the output frame rate. Default value is 25.
31925
31926 size, s
31927 Set the video size for the output. For the syntax of this option,
31928 check the "Video size" section in the ffmpeg-utils manual. Default
31929 value is "800x400".
31930
31931 rc
31932 gc
31933 bc Specify the red, green, blue contrast. Default values are 2, 7 and
31934 1. Allowed range is "[0, 255]".
31935
31936 mpc Set color which will be used for drawing median phase. If color is
31937 "none" which is default, no median phase value will be drawn.
31938
31939 video
31940 Enable video output. Default is enabled.
31941
31942 phasing detection
31943
31944 The filter also detects out of phase and mono sequences in stereo
31945 streams. It logs the sequence start, end and duration when it lasts
31946 longer or as long as the minimum set.
31947
31948 The filter accepts the following options for this detection:
31949
31950 phasing
31951 Enable mono and out of phase detection. Default is disabled.
31952
31953 tolerance, t
31954 Set phase tolerance for mono detection, in amplitude ratio. Default
31955 is 0. Allowed range is "[0, 1]".
31956
31957 angle, a
31958 Set angle threshold for out of phase detection, in degree. Default
31959 is 170. Allowed range is "[90, 180]".
31960
31961 duration, d
31962 Set mono or out of phase duration until notification, expressed in
31963 seconds. Default is 2.
31964
31965 Examples
31966
31967 • Complete example with ffmpeg to detect 1 second of mono with 0.001
31968 phase tolerance:
31969
31970 ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
31971
31972 avectorscope
31973 Convert input audio to a video output, representing the audio vector
31974 scope.
31975
31976 The filter is used to measure the difference between channels of stereo
31977 audio stream. A monaural signal, consisting of identical left and right
31978 signal, results in straight vertical line. Any stereo separation is
31979 visible as a deviation from this line, creating a Lissajous figure. If
31980 the straight (or deviation from it) but horizontal line appears this
31981 indicates that the left and right channels are out of phase.
31982
31983 The filter accepts the following options:
31984
31985 mode, m
31986 Set the vectorscope mode.
31987
31988 Available values are:
31989
31990 lissajous
31991 Lissajous rotated by 45 degrees.
31992
31993 lissajous_xy
31994 Same as above but not rotated.
31995
31996 polar
31997 Shape resembling half of circle.
31998
31999 Default value is lissajous.
32000
32001 size, s
32002 Set the video size for the output. For the syntax of this option,
32003 check the "Video size" section in the ffmpeg-utils manual. Default
32004 value is "400x400".
32005
32006 rate, r
32007 Set the output frame rate. Default value is 25.
32008
32009 rc
32010 gc
32011 bc
32012 ac Specify the red, green, blue and alpha contrast. Default values are
32013 40, 160, 80 and 255. Allowed range is "[0, 255]".
32014
32015 rf
32016 gf
32017 bf
32018 af Specify the red, green, blue and alpha fade. Default values are 15,
32019 10, 5 and 5. Allowed range is "[0, 255]".
32020
32021 zoom
32022 Set the zoom factor. Default value is 1. Allowed range is "[0,
32023 10]". Values lower than 1 will auto adjust zoom factor to maximal
32024 possible value.
32025
32026 draw
32027 Set the vectorscope drawing mode.
32028
32029 Available values are:
32030
32031 dot Draw dot for each sample.
32032
32033 line
32034 Draw line between previous and current sample.
32035
32036 Default value is dot.
32037
32038 scale
32039 Specify amplitude scale of audio samples.
32040
32041 Available values are:
32042
32043 lin Linear.
32044
32045 sqrt
32046 Square root.
32047
32048 cbrt
32049 Cubic root.
32050
32051 log Logarithmic.
32052
32053 swap
32054 Swap left channel axis with right channel axis.
32055
32056 mirror
32057 Mirror axis.
32058
32059 none
32060 No mirror.
32061
32062 x Mirror only x axis.
32063
32064 y Mirror only y axis.
32065
32066 xy Mirror both axis.
32067
32068 Examples
32069
32070 • Complete example using ffplay:
32071
32072 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
32073 [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
32074
32075 Commands
32076
32077 This filter supports the all above options as commands except options
32078 "size" and "rate".
32079
32080 bench, abench
32081 Benchmark part of a filtergraph.
32082
32083 The filter accepts the following options:
32084
32085 action
32086 Start or stop a timer.
32087
32088 Available values are:
32089
32090 start
32091 Get the current time, set it as frame metadata (using the key
32092 "lavfi.bench.start_time"), and forward the frame to the next
32093 filter.
32094
32095 stop
32096 Get the current time and fetch the "lavfi.bench.start_time"
32097 metadata from the input frame metadata to get the time
32098 difference. Time difference, average, maximum and minimum time
32099 (respectively "t", "avg", "max" and "min") are then printed.
32100 The timestamps are expressed in seconds.
32101
32102 Examples
32103
32104 • Benchmark selectivecolor filter:
32105
32106 bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
32107
32108 concat
32109 Concatenate audio and video streams, joining them together one after
32110 the other.
32111
32112 The filter works on segments of synchronized video and audio streams.
32113 All segments must have the same number of streams of each type, and
32114 that will also be the number of streams at output.
32115
32116 The filter accepts the following options:
32117
32118 n Set the number of segments. Default is 2.
32119
32120 v Set the number of output video streams, that is also the number of
32121 video streams in each segment. Default is 1.
32122
32123 a Set the number of output audio streams, that is also the number of
32124 audio streams in each segment. Default is 0.
32125
32126 unsafe
32127 Activate unsafe mode: do not fail if segments have a different
32128 format.
32129
32130 The filter has v+a outputs: first v video outputs, then a audio
32131 outputs.
32132
32133 There are nx(v+a) inputs: first the inputs for the first segment, in
32134 the same order as the outputs, then the inputs for the second segment,
32135 etc.
32136
32137 Related streams do not always have exactly the same duration, for
32138 various reasons including codec frame size or sloppy authoring. For
32139 that reason, related synchronized streams (e.g. a video and its audio
32140 track) should be concatenated at once. The concat filter will use the
32141 duration of the longest stream in each segment (except the last one),
32142 and if necessary pad shorter audio streams with silence.
32143
32144 For this filter to work correctly, all segments must start at timestamp
32145 0.
32146
32147 All corresponding streams must have the same parameters in all
32148 segments; the filtering system will automatically select a common pixel
32149 format for video streams, and a common sample format, sample rate and
32150 channel layout for audio streams, but other settings, such as
32151 resolution, must be converted explicitly by the user.
32152
32153 Different frame rates are acceptable but will result in variable frame
32154 rate at output; be sure to configure the output file to handle it.
32155
32156 Examples
32157
32158 • Concatenate an opening, an episode and an ending, all in bilingual
32159 version (video in stream 0, audio in streams 1 and 2):
32160
32161 ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
32162 '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
32163 concat=n=3:v=1:a=2 [v] [a1] [a2]' \
32164 -map '[v]' -map '[a1]' -map '[a2]' output.mkv
32165
32166 • Concatenate two parts, handling audio and video separately, using
32167 the (a)movie sources, and adjusting the resolution:
32168
32169 movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
32170 movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
32171 [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
32172
32173 Note that a desync will happen at the stitch if the audio and video
32174 streams do not have exactly the same duration in the first file.
32175
32176 Commands
32177
32178 This filter supports the following commands:
32179
32180 next
32181 Close the current segment and step to the next one
32182
32183 ebur128
32184 EBU R128 scanner filter. This filter takes an audio stream and analyzes
32185 its loudness level. By default, it logs a message at a frequency of
32186 10Hz with the Momentary loudness (identified by "M"), Short-term
32187 loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
32188
32189 The filter can only analyze streams which have sample format is double-
32190 precision floating point. The input stream will be converted to this
32191 specification, if needed. Users may need to insert aformat and/or
32192 aresample filters after this filter to obtain the original parameters.
32193
32194 The filter also has a video output (see the video option) with a real
32195 time graph to observe the loudness evolution. The graphic contains the
32196 logged message mentioned above, so it is not printed anymore when this
32197 option is set, unless the verbose logging is set. The main graphing
32198 area contains the short-term loudness (3 seconds of analysis), and the
32199 gauge on the right is for the momentary loudness (400 milliseconds),
32200 but can optionally be configured to instead display short-term loudness
32201 (see gauge).
32202
32203 The green area marks a +/- 1LU target range around the target loudness
32204 (-23LUFS by default, unless modified through target).
32205
32206 More information about the Loudness Recommendation EBU R128 on
32207 <http://tech.ebu.ch/loudness>.
32208
32209 The filter accepts the following options:
32210
32211 video
32212 Activate the video output. The audio stream is passed unchanged
32213 whether this option is set or no. The video stream will be the
32214 first output stream if activated. Default is 0.
32215
32216 size
32217 Set the video size. This option is for video only. For the syntax
32218 of this option, check the "Video size" section in the ffmpeg-utils
32219 manual. Default and minimum resolution is "640x480".
32220
32221 meter
32222 Set the EBU scale meter. Default is 9. Common values are 9 and 18,
32223 respectively for EBU scale meter +9 and EBU scale meter +18. Any
32224 other integer value between this range is allowed.
32225
32226 metadata
32227 Set metadata injection. If set to 1, the audio input will be
32228 segmented into 100ms output frames, each of them containing various
32229 loudness information in metadata. All the metadata keys are
32230 prefixed with "lavfi.r128.".
32231
32232 Default is 0.
32233
32234 framelog
32235 Force the frame logging level.
32236
32237 Available values are:
32238
32239 info
32240 information logging level
32241
32242 verbose
32243 verbose logging level
32244
32245 By default, the logging level is set to info. If the video or the
32246 metadata options are set, it switches to verbose.
32247
32248 peak
32249 Set peak mode(s).
32250
32251 Available modes can be cumulated (the option is a "flag" type).
32252 Possible values are:
32253
32254 none
32255 Disable any peak mode (default).
32256
32257 sample
32258 Enable sample-peak mode.
32259
32260 Simple peak mode looking for the higher sample value. It logs a
32261 message for sample-peak (identified by "SPK").
32262
32263 true
32264 Enable true-peak mode.
32265
32266 If enabled, the peak lookup is done on an over-sampled version
32267 of the input stream for better peak accuracy. It logs a message
32268 for true-peak. (identified by "TPK") and true-peak per frame
32269 (identified by "FTPK"). This mode requires a build with
32270 "libswresample".
32271
32272 dualmono
32273 Treat mono input files as "dual mono". If a mono file is intended
32274 for playback on a stereo system, its EBU R128 measurement will be
32275 perceptually incorrect. If set to "true", this option will
32276 compensate for this effect. Multi-channel input files are not
32277 affected by this option.
32278
32279 panlaw
32280 Set a specific pan law to be used for the measurement of dual mono
32281 files. This parameter is optional, and has a default value of
32282 -3.01dB.
32283
32284 target
32285 Set a specific target level (in LUFS) used as relative zero in the
32286 visualization. This parameter is optional and has a default value
32287 of -23LUFS as specified by EBU R128. However, material published
32288 online may prefer a level of -16LUFS (e.g. for use with podcasts or
32289 video platforms).
32290
32291 gauge
32292 Set the value displayed by the gauge. Valid values are "momentary"
32293 and s "shortterm". By default the momentary value will be used, but
32294 in certain scenarios it may be more useful to observe the short
32295 term value instead (e.g. live mixing).
32296
32297 scale
32298 Sets the display scale for the loudness. Valid parameters are
32299 "absolute" (in LUFS) or "relative" (LU) relative to the target.
32300 This only affects the video output, not the summary or continuous
32301 log output.
32302
32303 Examples
32304
32305 • Real-time graph using ffplay, with a EBU scale meter +18:
32306
32307 ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
32308
32309 • Run an analysis with ffmpeg:
32310
32311 ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
32312
32313 interleave, ainterleave
32314 Temporally interleave frames from several inputs.
32315
32316 "interleave" works with video inputs, "ainterleave" with audio.
32317
32318 These filters read frames from several inputs and send the oldest
32319 queued frame to the output.
32320
32321 Input streams must have well defined, monotonically increasing frame
32322 timestamp values.
32323
32324 In order to submit one frame to output, these filters need to enqueue
32325 at least one frame for each input, so they cannot work in case one
32326 input is not yet terminated and will not receive incoming frames.
32327
32328 For example consider the case when one input is a "select" filter which
32329 always drops input frames. The "interleave" filter will keep reading
32330 from that input, but it will never be able to send new frames to output
32331 until the input sends an end-of-stream signal.
32332
32333 Also, depending on inputs synchronization, the filters will drop frames
32334 in case one input receives more frames than the other ones, and the
32335 queue is already filled.
32336
32337 These filters accept the following options:
32338
32339 nb_inputs, n
32340 Set the number of different inputs, it is 2 by default.
32341
32342 duration
32343 How to determine the end-of-stream.
32344
32345 longest
32346 The duration of the longest input. (default)
32347
32348 shortest
32349 The duration of the shortest input.
32350
32351 first
32352 The duration of the first input.
32353
32354 Examples
32355
32356 • Interleave frames belonging to different streams using ffmpeg:
32357
32358 ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
32359
32360 • Add flickering blur effect:
32361
32362 select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
32363
32364 latency, alatency
32365 Measure filtering latency.
32366
32367 Report previous filter filtering latency, delay in number of audio
32368 samples for audio filters or number of video frames for video filters.
32369
32370 On end of input stream, filter will report min and max measured latency
32371 for previous running filter in filtergraph.
32372
32373 metadata, ametadata
32374 Manipulate frame metadata.
32375
32376 This filter accepts the following options:
32377
32378 mode
32379 Set mode of operation of the filter.
32380
32381 Can be one of the following:
32382
32383 select
32384 If both "value" and "key" is set, select frames which have such
32385 metadata. If only "key" is set, select every frame that has
32386 such key in metadata.
32387
32388 add Add new metadata "key" and "value". If key is already available
32389 do nothing.
32390
32391 modify
32392 Modify value of already present key.
32393
32394 delete
32395 If "value" is set, delete only keys that have such value.
32396 Otherwise, delete key. If "key" is not set, delete all metadata
32397 values in the frame.
32398
32399 print
32400 Print key and its value if metadata was found. If "key" is not
32401 set print all metadata values available in frame.
32402
32403 key Set key used with all modes. Must be set for all modes except
32404 "print" and "delete".
32405
32406 value
32407 Set metadata value which will be used. This option is mandatory for
32408 "modify" and "add" mode.
32409
32410 function
32411 Which function to use when comparing metadata value and "value".
32412
32413 Can be one of following:
32414
32415 same_str
32416 Values are interpreted as strings, returns true if metadata
32417 value is same as "value".
32418
32419 starts_with
32420 Values are interpreted as strings, returns true if metadata
32421 value starts with the "value" option string.
32422
32423 less
32424 Values are interpreted as floats, returns true if metadata
32425 value is less than "value".
32426
32427 equal
32428 Values are interpreted as floats, returns true if "value" is
32429 equal with metadata value.
32430
32431 greater
32432 Values are interpreted as floats, returns true if metadata
32433 value is greater than "value".
32434
32435 expr
32436 Values are interpreted as floats, returns true if expression
32437 from option "expr" evaluates to true.
32438
32439 ends_with
32440 Values are interpreted as strings, returns true if metadata
32441 value ends with the "value" option string.
32442
32443 expr
32444 Set expression which is used when "function" is set to "expr". The
32445 expression is evaluated through the eval API and can contain the
32446 following constants:
32447
32448 VALUE1, FRAMEVAL
32449 Float representation of "value" from metadata key.
32450
32451 VALUE2, USERVAL
32452 Float representation of "value" as supplied by user in "value"
32453 option.
32454
32455 file
32456 If specified in "print" mode, output is written to the named file.
32457 Instead of plain filename any writable url can be specified.
32458 Filename ``-'' is a shorthand for standard output. If "file" option
32459 is not set, output is written to the log with AV_LOG_INFO loglevel.
32460
32461 direct
32462 Reduces buffering in print mode when output is written to a URL set
32463 using file.
32464
32465 Examples
32466
32467 • Print all metadata values for frames with key
32468 "lavfi.signalstats.YDIF" with values between 0 and 1.
32469
32470 signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
32471
32472 • Print silencedetect output to file metadata.txt.
32473
32474 silencedetect,ametadata=mode=print:file=metadata.txt
32475
32476 • Direct all metadata to a pipe with file descriptor 4.
32477
32478 metadata=mode=print:file='pipe\:4'
32479
32480 perms, aperms
32481 Set read/write permissions for the output frames.
32482
32483 These filters are mainly aimed at developers to test direct path in the
32484 following filter in the filtergraph.
32485
32486 The filters accept the following options:
32487
32488 mode
32489 Select the permissions mode.
32490
32491 It accepts the following values:
32492
32493 none
32494 Do nothing. This is the default.
32495
32496 ro Set all the output frames read-only.
32497
32498 rw Set all the output frames directly writable.
32499
32500 toggle
32501 Make the frame read-only if writable, and writable if read-
32502 only.
32503
32504 random
32505 Set each output frame read-only or writable randomly.
32506
32507 seed
32508 Set the seed for the random mode, must be an integer included
32509 between 0 and "UINT32_MAX". If not specified, or if explicitly set
32510 to "-1", the filter will try to use a good random seed on a best
32511 effort basis.
32512
32513 Note: in case of auto-inserted filter between the permission filter and
32514 the following one, the permission might not be received as expected in
32515 that following filter. Inserting a format or aformat filter before the
32516 perms/aperms filter can avoid this problem.
32517
32518 realtime, arealtime
32519 Slow down filtering to match real time approximately.
32520
32521 These filters will pause the filtering for a variable amount of time to
32522 match the output rate with the input timestamps. They are similar to
32523 the re option to "ffmpeg".
32524
32525 They accept the following options:
32526
32527 limit
32528 Time limit for the pauses. Any pause longer than that will be
32529 considered a timestamp discontinuity and reset the timer. Default
32530 is 2 seconds.
32531
32532 speed
32533 Speed factor for processing. The value must be a float larger than
32534 zero. Values larger than 1.0 will result in faster than realtime
32535 processing, smaller will slow processing down. The limit is
32536 automatically adapted accordingly. Default is 1.0.
32537
32538 A processing speed faster than what is possible without these
32539 filters cannot be achieved.
32540
32541 segment, asegment
32542 Split single input stream into multiple streams.
32543
32544 This filter does opposite of concat filters.
32545
32546 "segment" works on video frames, "asegment" on audio samples.
32547
32548 This filter accepts the following options:
32549
32550 timestamps
32551 Timestamps of output segments separated by '|'. The first segment
32552 will run from the beginning of the input stream. The last segment
32553 will run until the end of the input stream
32554
32555 frames, samples
32556 Exact frame/sample count to split the segments.
32557
32558 In all cases, prefixing an each segment with '+' will make it relative
32559 to the previous segment.
32560
32561 Examples
32562
32563 • Split input audio stream into three output audio streams, starting
32564 at start of input audio stream and storing that in 1st output audio
32565 stream, then following at 60th second and storing than in 2nd
32566 output audio stream, and last after 150th second of input audio
32567 stream store in 3rd output audio stream:
32568
32569 asegment=timestamps="60|150"
32570
32571 select, aselect
32572 Select frames to pass in output.
32573
32574 This filter accepts the following options:
32575
32576 expr, e
32577 Set expression, which is evaluated for each input frame.
32578
32579 If the expression is evaluated to zero, the frame is discarded.
32580
32581 If the evaluation result is negative or NaN, the frame is sent to
32582 the first output; otherwise it is sent to the output with index
32583 "ceil(val)-1", assuming that the input index starts from 0.
32584
32585 For example a value of 1.2 corresponds to the output with index
32586 "ceil(1.2)-1 = 2-1 = 1", that is the second output.
32587
32588 outputs, n
32589 Set the number of outputs. The output to which to send the selected
32590 frame is based on the result of the evaluation. Default value is 1.
32591
32592 The expression can contain the following constants:
32593
32594 n The (sequential) number of the filtered frame, starting from 0.
32595
32596 selected_n
32597 The (sequential) number of the selected frame, starting from 0.
32598
32599 prev_selected_n
32600 The sequential number of the last selected frame. It's NAN if
32601 undefined.
32602
32603 TB The timebase of the input timestamps.
32604
32605 pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
32606 in TB units. It's NAN if undefined.
32607
32608 t The PTS of the filtered frame, expressed in seconds. It's NAN if
32609 undefined.
32610
32611 prev_pts
32612 The PTS of the previously filtered frame. It's NAN if undefined.
32613
32614 prev_selected_pts
32615 The PTS of the last previously filtered frame. It's NAN if
32616 undefined.
32617
32618 prev_selected_t
32619 The PTS of the last previously selected frame, expressed in
32620 seconds. It's NAN if undefined.
32621
32622 start_pts
32623 The first PTS in the stream which is not NAN. It remains NAN if not
32624 found.
32625
32626 start_t
32627 The first PTS, in seconds, in the stream which is not NAN. It
32628 remains NAN if not found.
32629
32630 pict_type (video only)
32631 The type of the filtered frame. It can assume one of the following
32632 values:
32633
32634 I
32635 P
32636 B
32637 S
32638 SI
32639 SP
32640 BI
32641 interlace_type (video only)
32642 The frame interlace type. It can assume one of the following
32643 values:
32644
32645 PROGRESSIVE
32646 The frame is progressive (not interlaced).
32647
32648 TOPFIRST
32649 The frame is top-field-first.
32650
32651 BOTTOMFIRST
32652 The frame is bottom-field-first.
32653
32654 consumed_sample_n (audio only)
32655 the number of selected samples before the current frame
32656
32657 samples_n (audio only)
32658 the number of samples in the current frame
32659
32660 sample_rate (audio only)
32661 the input sample rate
32662
32663 key This is 1 if the filtered frame is a key-frame, 0 otherwise.
32664
32665 pos the position in the file of the filtered frame, -1 if the
32666 information is not available (e.g. for synthetic video)
32667
32668 scene (video only)
32669 value between 0 and 1 to indicate a new scene; a low value reflects
32670 a low probability for the current frame to introduce a new scene,
32671 while a higher value means the current frame is more likely to be
32672 one (see the example below)
32673
32674 concatdec_select
32675 The concat demuxer can select only part of a concat input file by
32676 setting an inpoint and an outpoint, but the output packets may not
32677 be entirely contained in the selected interval. By using this
32678 variable, it is possible to skip frames generated by the concat
32679 demuxer which are not exactly contained in the selected interval.
32680
32681 This works by comparing the frame pts against the
32682 lavf.concat.start_time and the lavf.concat.duration packet metadata
32683 values which are also present in the decoded frames.
32684
32685 The concatdec_select variable is -1 if the frame pts is at least
32686 start_time and either the duration metadata is missing or the frame
32687 pts is less than start_time + duration, 0 otherwise, and NaN if the
32688 start_time metadata is missing.
32689
32690 That basically means that an input frame is selected if its pts is
32691 within the interval set by the concat demuxer.
32692
32693 The default value of the select expression is "1".
32694
32695 Examples
32696
32697 • Select all frames in input:
32698
32699 select
32700
32701 The example above is the same as:
32702
32703 select=1
32704
32705 • Skip all frames:
32706
32707 select=0
32708
32709 • Select only I-frames:
32710
32711 select='eq(pict_type\,I)'
32712
32713 • Select one frame every 100:
32714
32715 select='not(mod(n\,100))'
32716
32717 • Select only frames contained in the 10-20 time interval:
32718
32719 select=between(t\,10\,20)
32720
32721 • Select only I-frames contained in the 10-20 time interval:
32722
32723 select=between(t\,10\,20)*eq(pict_type\,I)
32724
32725 • Select frames with a minimum distance of 10 seconds:
32726
32727 select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
32728
32729 • Use aselect to select only audio frames with samples number > 100:
32730
32731 aselect='gt(samples_n\,100)'
32732
32733 • Create a mosaic of the first scenes:
32734
32735 ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
32736
32737 Comparing scene against a value between 0.3 and 0.5 is generally a
32738 sane choice.
32739
32740 • Send even and odd frames to separate outputs, and compose them:
32741
32742 select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
32743
32744 • Select useful frames from an ffconcat file which is using inpoints
32745 and outpoints but where the source files are not intra frame only.
32746
32747 ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
32748
32749 sendcmd, asendcmd
32750 Send commands to filters in the filtergraph.
32751
32752 These filters read commands to be sent to other filters in the
32753 filtergraph.
32754
32755 "sendcmd" must be inserted between two video filters, "asendcmd" must
32756 be inserted between two audio filters, but apart from that they act the
32757 same way.
32758
32759 The specification of commands can be provided in the filter arguments
32760 with the commands option, or in a file specified by the filename
32761 option.
32762
32763 These filters accept the following options:
32764
32765 commands, c
32766 Set the commands to be read and sent to the other filters.
32767
32768 filename, f
32769 Set the filename of the commands to be read and sent to the other
32770 filters.
32771
32772 Commands syntax
32773
32774 A commands description consists of a sequence of interval
32775 specifications, comprising a list of commands to be executed when a
32776 particular event related to that interval occurs. The occurring event
32777 is typically the current frame time entering or leaving a given time
32778 interval.
32779
32780 An interval is specified by the following syntax:
32781
32782 <START>[-<END>] <COMMANDS>;
32783
32784 The time interval is specified by the START and END times. END is
32785 optional and defaults to the maximum time.
32786
32787 The current frame time is considered within the specified interval if
32788 it is included in the interval [START, END), that is when the time is
32789 greater or equal to START and is lesser than END.
32790
32791 COMMANDS consists of a sequence of one or more command specifications,
32792 separated by ",", relating to that interval. The syntax of a command
32793 specification is given by:
32794
32795 [<FLAGS>] <TARGET> <COMMAND> <ARG>
32796
32797 FLAGS is optional and specifies the type of events relating to the time
32798 interval which enable sending the specified command, and must be a non-
32799 null sequence of identifier flags separated by "+" or "|" and enclosed
32800 between "[" and "]".
32801
32802 The following flags are recognized:
32803
32804 enter
32805 The command is sent when the current frame timestamp enters the
32806 specified interval. In other words, the command is sent when the
32807 previous frame timestamp was not in the given interval, and the
32808 current is.
32809
32810 leave
32811 The command is sent when the current frame timestamp leaves the
32812 specified interval. In other words, the command is sent when the
32813 previous frame timestamp was in the given interval, and the current
32814 is not.
32815
32816 expr
32817 The command ARG is interpreted as expression and result of
32818 expression is passed as ARG.
32819
32820 The expression is evaluated through the eval API and can contain
32821 the following constants:
32822
32823 POS Original position in the file of the frame, or undefined if
32824 undefined for the current frame.
32825
32826 PTS The presentation timestamp in input.
32827
32828 N The count of the input frame for video or audio, starting from
32829 0.
32830
32831 T The time in seconds of the current frame.
32832
32833 TS The start time in seconds of the current command interval.
32834
32835 TE The end time in seconds of the current command interval.
32836
32837 TI The interpolated time of the current command interval, TI = (T
32838 - TS) / (TE - TS).
32839
32840 If FLAGS is not specified, a default value of "[enter]" is assumed.
32841
32842 TARGET specifies the target of the command, usually the name of the
32843 filter class or a specific filter instance name.
32844
32845 COMMAND specifies the name of the command for the target filter.
32846
32847 ARG is optional and specifies the optional list of argument for the
32848 given COMMAND.
32849
32850 Between one interval specification and another, whitespaces, or
32851 sequences of characters starting with "#" until the end of line, are
32852 ignored and can be used to annotate comments.
32853
32854 A simplified BNF description of the commands specification syntax
32855 follows:
32856
32857 <COMMAND_FLAG> ::= "enter" | "leave"
32858 <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
32859 <COMMAND> ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
32860 <COMMANDS> ::= <COMMAND> [,<COMMANDS>]
32861 <INTERVAL> ::= <START>[-<END>] <COMMANDS>
32862 <INTERVALS> ::= <INTERVAL>[;<INTERVALS>]
32863
32864 Examples
32865
32866 • Specify audio tempo change at second 4:
32867
32868 asendcmd=c='4.0 atempo tempo 1.5',atempo
32869
32870 • Target a specific filter instance:
32871
32872 asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
32873
32874 • Specify a list of drawtext and hue commands in a file.
32875
32876 # show text in the interval 5-10
32877 5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
32878 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
32879
32880 # desaturate the image in the interval 15-20
32881 15.0-20.0 [enter] hue s 0,
32882 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
32883 [leave] hue s 1,
32884 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
32885
32886 # apply an exponential saturation fade-out effect, starting from time 25
32887 25 [enter] hue s exp(25-t)
32888
32889 A filtergraph allowing to read and process the above command list
32890 stored in a file test.cmd, can be specified with:
32891
32892 sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
32893
32894 setpts, asetpts
32895 Change the PTS (presentation timestamp) of the input frames.
32896
32897 "setpts" works on video frames, "asetpts" on audio frames.
32898
32899 This filter accepts the following options:
32900
32901 expr
32902 The expression which is evaluated for each frame to construct its
32903 timestamp.
32904
32905 The expression is evaluated through the eval API and can contain the
32906 following constants:
32907
32908 FRAME_RATE, FR
32909 frame rate, only defined for constant frame-rate video
32910
32911 PTS The presentation timestamp in input
32912
32913 N The count of the input frame for video or the number of consumed
32914 samples, not including the current frame for audio, starting from
32915 0.
32916
32917 NB_CONSUMED_SAMPLES
32918 The number of consumed samples, not including the current frame
32919 (only audio)
32920
32921 NB_SAMPLES, S
32922 The number of samples in the current frame (only audio)
32923
32924 SAMPLE_RATE, SR
32925 The audio sample rate.
32926
32927 STARTPTS
32928 The PTS of the first frame.
32929
32930 STARTT
32931 the time in seconds of the first frame
32932
32933 INTERLACED
32934 State whether the current frame is interlaced.
32935
32936 T the time in seconds of the current frame
32937
32938 POS original position in the file of the frame, or undefined if
32939 undefined for the current frame
32940
32941 PREV_INPTS
32942 The previous input PTS.
32943
32944 PREV_INT
32945 previous input time in seconds
32946
32947 PREV_OUTPTS
32948 The previous output PTS.
32949
32950 PREV_OUTT
32951 previous output time in seconds
32952
32953 RTCTIME
32954 The wallclock (RTC) time in microseconds. This is deprecated, use
32955 time(0) instead.
32956
32957 RTCSTART
32958 The wallclock (RTC) time at the start of the movie in microseconds.
32959
32960 TB The timebase of the input timestamps.
32961
32962 Examples
32963
32964 • Start counting PTS from zero
32965
32966 setpts=PTS-STARTPTS
32967
32968 • Apply fast motion effect:
32969
32970 setpts=0.5*PTS
32971
32972 • Apply slow motion effect:
32973
32974 setpts=2.0*PTS
32975
32976 • Set fixed rate of 25 frames per second:
32977
32978 setpts=N/(25*TB)
32979
32980 • Set fixed rate 25 fps with some jitter:
32981
32982 setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
32983
32984 • Apply an offset of 10 seconds to the input PTS:
32985
32986 setpts=PTS+10/TB
32987
32988 • Generate timestamps from a "live source" and rebase onto the
32989 current timebase:
32990
32991 setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
32992
32993 • Generate timestamps by counting samples:
32994
32995 asetpts=N/SR/TB
32996
32997 setrange
32998 Force color range for the output video frame.
32999
33000 The "setrange" filter marks the color range property for the output
33001 frames. It does not change the input frame, but only sets the
33002 corresponding property, which affects how the frame is treated by
33003 following filters.
33004
33005 The filter accepts the following options:
33006
33007 range
33008 Available values are:
33009
33010 auto
33011 Keep the same color range property.
33012
33013 unspecified, unknown
33014 Set the color range as unspecified.
33015
33016 limited, tv, mpeg
33017 Set the color range as limited.
33018
33019 full, pc, jpeg
33020 Set the color range as full.
33021
33022 settb, asettb
33023 Set the timebase to use for the output frames timestamps. It is mainly
33024 useful for testing timebase configuration.
33025
33026 It accepts the following parameters:
33027
33028 expr, tb
33029 The expression which is evaluated into the output timebase.
33030
33031 The value for tb is an arithmetic expression representing a rational.
33032 The expression can contain the constants "AVTB" (the default timebase),
33033 "intb" (the input timebase) and "sr" (the sample rate, audio only).
33034 Default value is "intb".
33035
33036 Examples
33037
33038 • Set the timebase to 1/25:
33039
33040 settb=expr=1/25
33041
33042 • Set the timebase to 1/10:
33043
33044 settb=expr=0.1
33045
33046 • Set the timebase to 1001/1000:
33047
33048 settb=1+0.001
33049
33050 • Set the timebase to 2*intb:
33051
33052 settb=2*intb
33053
33054 • Set the default timebase value:
33055
33056 settb=AVTB
33057
33058 showcqt
33059 Convert input audio to a video output representing frequency spectrum
33060 logarithmically using Brown-Puckette constant Q transform algorithm
33061 with direct frequency domain coefficient calculation (but the transform
33062 itself is not really constant Q, instead the Q factor is actually
33063 variable/clamped), with musical tone scale, from E0 to D#10.
33064
33065 The filter accepts the following options:
33066
33067 size, s
33068 Specify the video size for the output. It must be even. For the
33069 syntax of this option, check the "Video size" section in the
33070 ffmpeg-utils manual. Default value is "1920x1080".
33071
33072 fps, rate, r
33073 Set the output frame rate. Default value is 25.
33074
33075 bar_h
33076 Set the bargraph height. It must be even. Default value is "-1"
33077 which computes the bargraph height automatically.
33078
33079 axis_h
33080 Set the axis height. It must be even. Default value is "-1" which
33081 computes the axis height automatically.
33082
33083 sono_h
33084 Set the sonogram height. It must be even. Default value is "-1"
33085 which computes the sonogram height automatically.
33086
33087 fullhd
33088 Set the fullhd resolution. This option is deprecated, use size, s
33089 instead. Default value is 1.
33090
33091 sono_v, volume
33092 Specify the sonogram volume expression. It can contain variables:
33093
33094 bar_v
33095 the bar_v evaluated expression
33096
33097 frequency, freq, f
33098 the frequency where it is evaluated
33099
33100 timeclamp, tc
33101 the value of timeclamp option
33102
33103 and functions:
33104
33105 a_weighting(f)
33106 A-weighting of equal loudness
33107
33108 b_weighting(f)
33109 B-weighting of equal loudness
33110
33111 c_weighting(f)
33112 C-weighting of equal loudness.
33113
33114 Default value is 16.
33115
33116 bar_v, volume2
33117 Specify the bargraph volume expression. It can contain variables:
33118
33119 sono_v
33120 the sono_v evaluated expression
33121
33122 frequency, freq, f
33123 the frequency where it is evaluated
33124
33125 timeclamp, tc
33126 the value of timeclamp option
33127
33128 and functions:
33129
33130 a_weighting(f)
33131 A-weighting of equal loudness
33132
33133 b_weighting(f)
33134 B-weighting of equal loudness
33135
33136 c_weighting(f)
33137 C-weighting of equal loudness.
33138
33139 Default value is "sono_v".
33140
33141 sono_g, gamma
33142 Specify the sonogram gamma. Lower gamma makes the spectrum more
33143 contrast, higher gamma makes the spectrum having more range.
33144 Default value is 3. Acceptable range is "[1, 7]".
33145
33146 bar_g, gamma2
33147 Specify the bargraph gamma. Default value is 1. Acceptable range is
33148 "[1, 7]".
33149
33150 bar_t
33151 Specify the bargraph transparency level. Lower value makes the
33152 bargraph sharper. Default value is 1. Acceptable range is "[0,
33153 1]".
33154
33155 timeclamp, tc
33156 Specify the transform timeclamp. At low frequency, there is trade-
33157 off between accuracy in time domain and frequency domain. If
33158 timeclamp is lower, event in time domain is represented more
33159 accurately (such as fast bass drum), otherwise event in frequency
33160 domain is represented more accurately (such as bass guitar).
33161 Acceptable range is "[0.002, 1]". Default value is 0.17.
33162
33163 attack
33164 Set attack time in seconds. The default is 0 (disabled). Otherwise,
33165 it limits future samples by applying asymmetric windowing in time
33166 domain, useful when low latency is required. Accepted range is "[0,
33167 1]".
33168
33169 basefreq
33170 Specify the transform base frequency. Default value is
33171 20.01523126408007475, which is frequency 50 cents below E0.
33172 Acceptable range is "[10, 100000]".
33173
33174 endfreq
33175 Specify the transform end frequency. Default value is
33176 20495.59681441799654, which is frequency 50 cents above D#10.
33177 Acceptable range is "[10, 100000]".
33178
33179 coeffclamp
33180 This option is deprecated and ignored.
33181
33182 tlength
33183 Specify the transform length in time domain. Use this option to
33184 control accuracy trade-off between time domain and frequency domain
33185 at every frequency sample. It can contain variables:
33186
33187 frequency, freq, f
33188 the frequency where it is evaluated
33189
33190 timeclamp, tc
33191 the value of timeclamp option.
33192
33193 Default value is "384*tc/(384+tc*f)".
33194
33195 count
33196 Specify the transform count for every video frame. Default value is
33197 6. Acceptable range is "[1, 30]".
33198
33199 fcount
33200 Specify the transform count for every single pixel. Default value
33201 is 0, which makes it computed automatically. Acceptable range is
33202 "[0, 10]".
33203
33204 fontfile
33205 Specify font file for use with freetype to draw the axis. If not
33206 specified, use embedded font. Note that drawing with font file or
33207 embedded font is not implemented with custom basefreq and endfreq,
33208 use axisfile option instead.
33209
33210 font
33211 Specify fontconfig pattern. This has lower priority than fontfile.
33212 The ":" in the pattern may be replaced by "|" to avoid unnecessary
33213 escaping.
33214
33215 fontcolor
33216 Specify font color expression. This is arithmetic expression that
33217 should return integer value 0xRRGGBB. It can contain variables:
33218
33219 frequency, freq, f
33220 the frequency where it is evaluated
33221
33222 timeclamp, tc
33223 the value of timeclamp option
33224
33225 and functions:
33226
33227 midi(f)
33228 midi number of frequency f, some midi numbers: E0(16), C1(24),
33229 C2(36), A4(69)
33230
33231 r(x), g(x), b(x)
33232 red, green, and blue value of intensity x.
33233
33234 Default value is "st(0, (midi(f)-59.5)/12); st(1,
33235 if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
33236 b(ld(1))".
33237
33238 axisfile
33239 Specify image file to draw the axis. This option override fontfile
33240 and fontcolor option.
33241
33242 axis, text
33243 Enable/disable drawing text to the axis. If it is set to 0, drawing
33244 to the axis is disabled, ignoring fontfile and axisfile option.
33245 Default value is 1.
33246
33247 csp Set colorspace. The accepted values are:
33248
33249 unspecified
33250 Unspecified (default)
33251
33252 bt709
33253 BT.709
33254
33255 fcc FCC
33256
33257 bt470bg
33258 BT.470BG or BT.601-6 625
33259
33260 smpte170m
33261 SMPTE-170M or BT.601-6 525
33262
33263 smpte240m
33264 SMPTE-240M
33265
33266 bt2020ncl
33267 BT.2020 with non-constant luminance
33268
33269 cscheme
33270 Set spectrogram color scheme. This is list of floating point values
33271 with format "left_r|left_g|left_b|right_r|right_g|right_b". The
33272 default is "1|0.5|0|0|0.5|1".
33273
33274 Examples
33275
33276 • Playing audio while showing the spectrum:
33277
33278 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
33279
33280 • Same as above, but with frame rate 30 fps:
33281
33282 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
33283
33284 • Playing at 1280x720:
33285
33286 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
33287
33288 • Disable sonogram display:
33289
33290 sono_h=0
33291
33292 • A1 and its harmonics: A1, A2, (near)E3, A3:
33293
33294 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),
33295 asplit[a][out1]; [a] showcqt [out0]'
33296
33297 • Same as above, but with more accuracy in frequency domain:
33298
33299 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),
33300 asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
33301
33302 • Custom volume:
33303
33304 bar_v=10:sono_v=bar_v*a_weighting(f)
33305
33306 • Custom gamma, now spectrum is linear to the amplitude.
33307
33308 bar_g=2:sono_g=2
33309
33310 • Custom tlength equation:
33311
33312 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)))'
33313
33314 • Custom fontcolor and fontfile, C-note is colored green, others are
33315 colored blue:
33316
33317 fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
33318
33319 • Custom font using fontconfig:
33320
33321 font='Courier New,Monospace,mono|bold'
33322
33323 • Custom frequency range with custom axis using image file:
33324
33325 axisfile=myaxis.png:basefreq=40:endfreq=10000
33326
33327 showfreqs
33328 Convert input audio to video output representing the audio power
33329 spectrum. Audio amplitude is on Y-axis while frequency is on X-axis.
33330
33331 The filter accepts the following options:
33332
33333 size, s
33334 Specify size of video. For the syntax of this option, check the
33335 "Video size" section in the ffmpeg-utils manual. Default is
33336 "1024x512".
33337
33338 mode
33339 Set display mode. This set how each frequency bin will be
33340 represented.
33341
33342 It accepts the following values:
33343
33344 line
33345 bar
33346 dot
33347
33348 Default is "bar".
33349
33350 ascale
33351 Set amplitude scale.
33352
33353 It accepts the following values:
33354
33355 lin Linear scale.
33356
33357 sqrt
33358 Square root scale.
33359
33360 cbrt
33361 Cubic root scale.
33362
33363 log Logarithmic scale.
33364
33365 Default is "log".
33366
33367 fscale
33368 Set frequency scale.
33369
33370 It accepts the following values:
33371
33372 lin Linear scale.
33373
33374 log Logarithmic scale.
33375
33376 rlog
33377 Reverse logarithmic scale.
33378
33379 Default is "lin".
33380
33381 win_size
33382 Set window size. Allowed range is from 16 to 65536.
33383
33384 Default is 2048
33385
33386 win_func
33387 Set windowing function.
33388
33389 It accepts the following values:
33390
33391 rect
33392 bartlett
33393 hanning
33394 hamming
33395 blackman
33396 welch
33397 flattop
33398 bharris
33399 bnuttall
33400 bhann
33401 sine
33402 nuttall
33403 lanczos
33404 gauss
33405 tukey
33406 dolph
33407 cauchy
33408 parzen
33409 poisson
33410 bohman
33411
33412 Default is "hanning".
33413
33414 overlap
33415 Set window overlap. In range "[0, 1]". Default is 1, which means
33416 optimal overlap for selected window function will be picked.
33417
33418 averaging
33419 Set time averaging. Setting this to 0 will display current maximal
33420 peaks. Default is 1, which means time averaging is disabled.
33421
33422 colors
33423 Specify list of colors separated by space or by '|' which will be
33424 used to draw channel frequencies. Unrecognized or missing colors
33425 will be replaced by white color.
33426
33427 cmode
33428 Set channel display mode.
33429
33430 It accepts the following values:
33431
33432 combined
33433 separate
33434
33435 Default is "combined".
33436
33437 minamp
33438 Set minimum amplitude used in "log" amplitude scaler.
33439
33440 data
33441 Set data display mode.
33442
33443 It accepts the following values:
33444
33445 magnitude
33446 phase
33447 delay
33448
33449 Default is "magnitude".
33450
33451 showspatial
33452 Convert stereo input audio to a video output, representing the spatial
33453 relationship between two channels.
33454
33455 The filter accepts the following options:
33456
33457 size, s
33458 Specify the video size for the output. For the syntax of this
33459 option, check the "Video size" section in the ffmpeg-utils manual.
33460 Default value is "512x512".
33461
33462 win_size
33463 Set window size. Allowed range is from 1024 to 65536. Default size
33464 is 4096.
33465
33466 win_func
33467 Set window function.
33468
33469 It accepts the following values:
33470
33471 rect
33472 bartlett
33473 hann
33474 hanning
33475 hamming
33476 blackman
33477 welch
33478 flattop
33479 bharris
33480 bnuttall
33481 bhann
33482 sine
33483 nuttall
33484 lanczos
33485 gauss
33486 tukey
33487 dolph
33488 cauchy
33489 parzen
33490 poisson
33491 bohman
33492
33493 Default value is "hann".
33494
33495 overlap
33496 Set ratio of overlap window. Default value is 0.5. When value is 1
33497 overlap is set to recommended size for specific window function
33498 currently used.
33499
33500 showspectrum
33501 Convert input audio to a video output, representing the audio frequency
33502 spectrum.
33503
33504 The filter accepts the following options:
33505
33506 size, s
33507 Specify the video size for the output. For the syntax of this
33508 option, check the "Video size" section in the ffmpeg-utils manual.
33509 Default value is "640x512".
33510
33511 slide
33512 Specify how the spectrum should slide along the window.
33513
33514 It accepts the following values:
33515
33516 replace
33517 the samples start again on the left when they reach the right
33518
33519 scroll
33520 the samples scroll from right to left
33521
33522 fullframe
33523 frames are only produced when the samples reach the right
33524
33525 rscroll
33526 the samples scroll from left to right
33527
33528 lreplace
33529 the samples start again on the right when they reach the left
33530
33531 Default value is "replace".
33532
33533 mode
33534 Specify display mode.
33535
33536 It accepts the following values:
33537
33538 combined
33539 all channels are displayed in the same row
33540
33541 separate
33542 all channels are displayed in separate rows
33543
33544 Default value is combined.
33545
33546 color
33547 Specify display color mode.
33548
33549 It accepts the following values:
33550
33551 channel
33552 each channel is displayed in a separate color
33553
33554 intensity
33555 each channel is displayed using the same color scheme
33556
33557 rainbow
33558 each channel is displayed using the rainbow color scheme
33559
33560 moreland
33561 each channel is displayed using the moreland color scheme
33562
33563 nebulae
33564 each channel is displayed using the nebulae color scheme
33565
33566 fire
33567 each channel is displayed using the fire color scheme
33568
33569 fiery
33570 each channel is displayed using the fiery color scheme
33571
33572 fruit
33573 each channel is displayed using the fruit color scheme
33574
33575 cool
33576 each channel is displayed using the cool color scheme
33577
33578 magma
33579 each channel is displayed using the magma color scheme
33580
33581 green
33582 each channel is displayed using the green color scheme
33583
33584 viridis
33585 each channel is displayed using the viridis color scheme
33586
33587 plasma
33588 each channel is displayed using the plasma color scheme
33589
33590 cividis
33591 each channel is displayed using the cividis color scheme
33592
33593 terrain
33594 each channel is displayed using the terrain color scheme
33595
33596 Default value is channel.
33597
33598 scale
33599 Specify scale used for calculating intensity color values.
33600
33601 It accepts the following values:
33602
33603 lin linear
33604
33605 sqrt
33606 square root, default
33607
33608 cbrt
33609 cubic root
33610
33611 log logarithmic
33612
33613 4thrt
33614 4th root
33615
33616 5thrt
33617 5th root
33618
33619 Default value is sqrt.
33620
33621 fscale
33622 Specify frequency scale.
33623
33624 It accepts the following values:
33625
33626 lin linear
33627
33628 log logarithmic
33629
33630 Default value is lin.
33631
33632 saturation
33633 Set saturation modifier for displayed colors. Negative values
33634 provide alternative color scheme. 0 is no saturation at all.
33635 Saturation must be in [-10.0, 10.0] range. Default value is 1.
33636
33637 win_func
33638 Set window function.
33639
33640 It accepts the following values:
33641
33642 rect
33643 bartlett
33644 hann
33645 hanning
33646 hamming
33647 blackman
33648 welch
33649 flattop
33650 bharris
33651 bnuttall
33652 bhann
33653 sine
33654 nuttall
33655 lanczos
33656 gauss
33657 tukey
33658 dolph
33659 cauchy
33660 parzen
33661 poisson
33662 bohman
33663
33664 Default value is "hann".
33665
33666 orientation
33667 Set orientation of time vs frequency axis. Can be "vertical" or
33668 "horizontal". Default is "vertical".
33669
33670 overlap
33671 Set ratio of overlap window. Default value is 0. When value is 1
33672 overlap is set to recommended size for specific window function
33673 currently used.
33674
33675 gain
33676 Set scale gain for calculating intensity color values. Default
33677 value is 1.
33678
33679 data
33680 Set which data to display. Can be "magnitude", default or "phase",
33681 or unwrapped phase: "uphase".
33682
33683 rotation
33684 Set color rotation, must be in [-1.0, 1.0] range. Default value is
33685 0.
33686
33687 start
33688 Set start frequency from which to display spectrogram. Default is
33689 0.
33690
33691 stop
33692 Set stop frequency to which to display spectrogram. Default is 0.
33693
33694 fps Set upper frame rate limit. Default is "auto", unlimited.
33695
33696 legend
33697 Draw time and frequency axes and legends. Default is disabled.
33698
33699 drange
33700 Set dynamic range used to calculate intensity color values. Default
33701 is 120 dBFS. Allowed range is from 10 to 200.
33702
33703 limit
33704 Set upper limit of input audio samples volume in dBFS. Default is 0
33705 dBFS. Allowed range is from -100 to 100.
33706
33707 The usage is very similar to the showwaves filter; see the examples in
33708 that section.
33709
33710 Examples
33711
33712 • Large window with logarithmic color scaling:
33713
33714 showspectrum=s=1280x480:scale=log
33715
33716 • Complete example for a colored and sliding spectrum per channel
33717 using ffplay:
33718
33719 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
33720 [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
33721
33722 showspectrumpic
33723 Convert input audio to a single video frame, representing the audio
33724 frequency spectrum.
33725
33726 The filter accepts the following options:
33727
33728 size, s
33729 Specify the video size for the output. For the syntax of this
33730 option, check the "Video size" section in the ffmpeg-utils manual.
33731 Default value is "4096x2048".
33732
33733 mode
33734 Specify display mode.
33735
33736 It accepts the following values:
33737
33738 combined
33739 all channels are displayed in the same row
33740
33741 separate
33742 all channels are displayed in separate rows
33743
33744 Default value is combined.
33745
33746 color
33747 Specify display color mode.
33748
33749 It accepts the following values:
33750
33751 channel
33752 each channel is displayed in a separate color
33753
33754 intensity
33755 each channel is displayed using the same color scheme
33756
33757 rainbow
33758 each channel is displayed using the rainbow color scheme
33759
33760 moreland
33761 each channel is displayed using the moreland color scheme
33762
33763 nebulae
33764 each channel is displayed using the nebulae color scheme
33765
33766 fire
33767 each channel is displayed using the fire color scheme
33768
33769 fiery
33770 each channel is displayed using the fiery color scheme
33771
33772 fruit
33773 each channel is displayed using the fruit color scheme
33774
33775 cool
33776 each channel is displayed using the cool color scheme
33777
33778 magma
33779 each channel is displayed using the magma color scheme
33780
33781 green
33782 each channel is displayed using the green color scheme
33783
33784 viridis
33785 each channel is displayed using the viridis color scheme
33786
33787 plasma
33788 each channel is displayed using the plasma color scheme
33789
33790 cividis
33791 each channel is displayed using the cividis color scheme
33792
33793 terrain
33794 each channel is displayed using the terrain color scheme
33795
33796 Default value is intensity.
33797
33798 scale
33799 Specify scale used for calculating intensity color values.
33800
33801 It accepts the following values:
33802
33803 lin linear
33804
33805 sqrt
33806 square root, default
33807
33808 cbrt
33809 cubic root
33810
33811 log logarithmic
33812
33813 4thrt
33814 4th root
33815
33816 5thrt
33817 5th root
33818
33819 Default value is log.
33820
33821 fscale
33822 Specify frequency scale.
33823
33824 It accepts the following values:
33825
33826 lin linear
33827
33828 log logarithmic
33829
33830 Default value is lin.
33831
33832 saturation
33833 Set saturation modifier for displayed colors. Negative values
33834 provide alternative color scheme. 0 is no saturation at all.
33835 Saturation must be in [-10.0, 10.0] range. Default value is 1.
33836
33837 win_func
33838 Set window function.
33839
33840 It accepts the following values:
33841
33842 rect
33843 bartlett
33844 hann
33845 hanning
33846 hamming
33847 blackman
33848 welch
33849 flattop
33850 bharris
33851 bnuttall
33852 bhann
33853 sine
33854 nuttall
33855 lanczos
33856 gauss
33857 tukey
33858 dolph
33859 cauchy
33860 parzen
33861 poisson
33862 bohman
33863
33864 Default value is "hann".
33865
33866 orientation
33867 Set orientation of time vs frequency axis. Can be "vertical" or
33868 "horizontal". Default is "vertical".
33869
33870 gain
33871 Set scale gain for calculating intensity color values. Default
33872 value is 1.
33873
33874 legend
33875 Draw time and frequency axes and legends. Default is enabled.
33876
33877 rotation
33878 Set color rotation, must be in [-1.0, 1.0] range. Default value is
33879 0.
33880
33881 start
33882 Set start frequency from which to display spectrogram. Default is
33883 0.
33884
33885 stop
33886 Set stop frequency to which to display spectrogram. Default is 0.
33887
33888 drange
33889 Set dynamic range used to calculate intensity color values. Default
33890 is 120 dBFS. Allowed range is from 10 to 200.
33891
33892 limit
33893 Set upper limit of input audio samples volume in dBFS. Default is 0
33894 dBFS. Allowed range is from -100 to 100.
33895
33896 Examples
33897
33898 • Extract an audio spectrogram of a whole audio track in a 1024x1024
33899 picture using ffmpeg:
33900
33901 ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
33902
33903 showvolume
33904 Convert input audio volume to a video output.
33905
33906 The filter accepts the following options:
33907
33908 rate, r
33909 Set video rate.
33910
33911 b Set border width, allowed range is [0, 5]. Default is 1.
33912
33913 w Set channel width, allowed range is [80, 8192]. Default is 400.
33914
33915 h Set channel height, allowed range is [1, 900]. Default is 20.
33916
33917 f Set fade, allowed range is [0, 1]. Default is 0.95.
33918
33919 c Set volume color expression.
33920
33921 The expression can use the following variables:
33922
33923 VOLUME
33924 Current max volume of channel in dB.
33925
33926 PEAK
33927 Current peak.
33928
33929 CHANNEL
33930 Current channel number, starting from 0.
33931
33932 t If set, displays channel names. Default is enabled.
33933
33934 v If set, displays volume values. Default is enabled.
33935
33936 o Set orientation, can be horizontal: "h" or vertical: "v", default
33937 is "h".
33938
33939 s Set step size, allowed range is [0, 5]. Default is 0, which means
33940 step is disabled.
33941
33942 p Set background opacity, allowed range is [0, 1]. Default is 0.
33943
33944 m Set metering mode, can be peak: "p" or rms: "r", default is "p".
33945
33946 ds Set display scale, can be linear: "lin" or log: "log", default is
33947 "lin".
33948
33949 dm In second. If set to > 0., display a line for the max level in the
33950 previous seconds. default is disabled: 0.
33951
33952 dmc The color of the max line. Use when "dm" option is set to > 0.
33953 default is: "orange"
33954
33955 showwaves
33956 Convert input audio to a video output, representing the samples waves.
33957
33958 The filter accepts the following options:
33959
33960 size, s
33961 Specify the video size for the output. For the syntax of this
33962 option, check the "Video size" section in the ffmpeg-utils manual.
33963 Default value is "600x240".
33964
33965 mode
33966 Set display mode.
33967
33968 Available values are:
33969
33970 point
33971 Draw a point for each sample.
33972
33973 line
33974 Draw a vertical line for each sample.
33975
33976 p2p Draw a point for each sample and a line between them.
33977
33978 cline
33979 Draw a centered vertical line for each sample.
33980
33981 Default value is "point".
33982
33983 n Set the number of samples which are printed on the same column. A
33984 larger value will decrease the frame rate. Must be a positive
33985 integer. This option can be set only if the value for rate is not
33986 explicitly specified.
33987
33988 rate, r
33989 Set the (approximate) output frame rate. This is done by setting
33990 the option n. Default value is "25".
33991
33992 split_channels
33993 Set if channels should be drawn separately or overlap. Default
33994 value is 0.
33995
33996 colors
33997 Set colors separated by '|' which are going to be used for drawing
33998 of each channel.
33999
34000 scale
34001 Set amplitude scale.
34002
34003 Available values are:
34004
34005 lin Linear.
34006
34007 log Logarithmic.
34008
34009 sqrt
34010 Square root.
34011
34012 cbrt
34013 Cubic root.
34014
34015 Default is linear.
34016
34017 draw
34018 Set the draw mode. This is mostly useful to set for high n.
34019
34020 Available values are:
34021
34022 scale
34023 Scale pixel values for each drawn sample.
34024
34025 full
34026 Draw every sample directly.
34027
34028 Default value is "scale".
34029
34030 Examples
34031
34032 • Output the input file audio and the corresponding video
34033 representation at the same time:
34034
34035 amovie=a.mp3,asplit[out0],showwaves[out1]
34036
34037 • Create a synthetic signal and show it with showwaves, forcing a
34038 frame rate of 30 frames per second:
34039
34040 aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
34041
34042 showwavespic
34043 Convert input audio to a single video frame, representing the samples
34044 waves.
34045
34046 The filter accepts the following options:
34047
34048 size, s
34049 Specify the video size for the output. For the syntax of this
34050 option, check the "Video size" section in the ffmpeg-utils manual.
34051 Default value is "600x240".
34052
34053 split_channels
34054 Set if channels should be drawn separately or overlap. Default
34055 value is 0.
34056
34057 colors
34058 Set colors separated by '|' which are going to be used for drawing
34059 of each channel.
34060
34061 scale
34062 Set amplitude scale.
34063
34064 Available values are:
34065
34066 lin Linear.
34067
34068 log Logarithmic.
34069
34070 sqrt
34071 Square root.
34072
34073 cbrt
34074 Cubic root.
34075
34076 Default is linear.
34077
34078 draw
34079 Set the draw mode.
34080
34081 Available values are:
34082
34083 scale
34084 Scale pixel values for each drawn sample.
34085
34086 full
34087 Draw every sample directly.
34088
34089 Default value is "scale".
34090
34091 filter
34092 Set the filter mode.
34093
34094 Available values are:
34095
34096 average
34097 Use average samples values for each drawn sample.
34098
34099 peak
34100 Use peak samples values for each drawn sample.
34101
34102 Default value is "average".
34103
34104 Examples
34105
34106 • Extract a channel split representation of the wave form of a whole
34107 audio track in a 1024x800 picture using ffmpeg:
34108
34109 ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
34110
34111 sidedata, asidedata
34112 Delete frame side data, or select frames based on it.
34113
34114 This filter accepts the following options:
34115
34116 mode
34117 Set mode of operation of the filter.
34118
34119 Can be one of the following:
34120
34121 select
34122 Select every frame with side data of "type".
34123
34124 delete
34125 Delete side data of "type". If "type" is not set, delete all
34126 side data in the frame.
34127
34128 type
34129 Set side data type used with all modes. Must be set for "select"
34130 mode. For the list of frame side data types, refer to the
34131 "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
34132 choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
34133 "PANSCAN".
34134
34135 spectrumsynth
34136 Synthesize audio from 2 input video spectrums, first input stream
34137 represents magnitude across time and second represents phase across
34138 time. The filter will transform from frequency domain as displayed in
34139 videos back to time domain as presented in audio output.
34140
34141 This filter is primarily created for reversing processed showspectrum
34142 filter outputs, but can synthesize sound from other spectrograms too.
34143 But in such case results are going to be poor if the phase data is not
34144 available, because in such cases phase data need to be recreated,
34145 usually it's just recreated from random noise. For best results use
34146 gray only output ("channel" color mode in showspectrum filter) and
34147 "log" scale for magnitude video and "lin" scale for phase video. To
34148 produce phase, for 2nd video, use "data" option. Inputs videos should
34149 generally use "fullframe" slide mode as that saves resources needed for
34150 decoding video.
34151
34152 The filter accepts the following options:
34153
34154 sample_rate
34155 Specify sample rate of output audio, the sample rate of audio from
34156 which spectrum was generated may differ.
34157
34158 channels
34159 Set number of channels represented in input video spectrums.
34160
34161 scale
34162 Set scale which was used when generating magnitude input spectrum.
34163 Can be "lin" or "log". Default is "log".
34164
34165 slide
34166 Set slide which was used when generating inputs spectrums. Can be
34167 "replace", "scroll", "fullframe" or "rscroll". Default is
34168 "fullframe".
34169
34170 win_func
34171 Set window function used for resynthesis.
34172
34173 overlap
34174 Set window overlap. In range "[0, 1]". Default is 1, which means
34175 optimal overlap for selected window function will be picked.
34176
34177 orientation
34178 Set orientation of input videos. Can be "vertical" or "horizontal".
34179 Default is "vertical".
34180
34181 Examples
34182
34183 • First create magnitude and phase videos from audio, assuming audio
34184 is stereo with 44100 sample rate, then resynthesize videos back to
34185 audio with spectrumsynth:
34186
34187 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
34188 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
34189 ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
34190
34191 split, asplit
34192 Split input into several identical outputs.
34193
34194 "asplit" works with audio input, "split" with video.
34195
34196 The filter accepts a single parameter which specifies the number of
34197 outputs. If unspecified, it defaults to 2.
34198
34199 Examples
34200
34201 • Create two separate outputs from the same input:
34202
34203 [in] split [out0][out1]
34204
34205 • To create 3 or more outputs, you need to specify the number of
34206 outputs, like in:
34207
34208 [in] asplit=3 [out0][out1][out2]
34209
34210 • Create two separate outputs from the same input, one cropped and
34211 one padded:
34212
34213 [in] split [splitout1][splitout2];
34214 [splitout1] crop=100:100:0:0 [cropout];
34215 [splitout2] pad=200:200:100:100 [padout];
34216
34217 • Create 5 copies of the input audio with ffmpeg:
34218
34219 ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
34220
34221 zmq, azmq
34222 Receive commands sent through a libzmq client, and forward them to
34223 filters in the filtergraph.
34224
34225 "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
34226 between two video filters, "azmq" between two audio filters. Both are
34227 capable to send messages to any filter type.
34228
34229 To enable these filters you need to install the libzmq library and
34230 headers and configure FFmpeg with "--enable-libzmq".
34231
34232 For more information about libzmq see: <http://www.zeromq.org/>
34233
34234 The "zmq" and "azmq" filters work as a libzmq server, which receives
34235 messages sent through a network interface defined by the bind_address
34236 (or the abbreviation "b") option. Default value of this option is
34237 tcp://localhost:5555. You may want to alter this value to your needs,
34238 but do not forget to escape any ':' signs (see filtergraph escaping).
34239
34240 The received message must be in the form:
34241
34242 <TARGET> <COMMAND> [<ARG>]
34243
34244 TARGET specifies the target of the command, usually the name of the
34245 filter class or a specific filter instance name. The default filter
34246 instance name uses the pattern Parsed_<filter_name>_<index>, but you
34247 can override this by using the filter_name@id syntax (see Filtergraph
34248 syntax).
34249
34250 COMMAND specifies the name of the command for the target filter.
34251
34252 ARG is optional and specifies the optional argument list for the given
34253 COMMAND.
34254
34255 Upon reception, the message is processed and the corresponding command
34256 is injected into the filtergraph. Depending on the result, the filter
34257 will send a reply to the client, adopting the format:
34258
34259 <ERROR_CODE> <ERROR_REASON>
34260 <MESSAGE>
34261
34262 MESSAGE is optional.
34263
34264 Examples
34265
34266 Look at tools/zmqsend for an example of a zmq client which can be used
34267 to send commands processed by these filters.
34268
34269 Consider the following filtergraph generated by ffplay. In this
34270 example the last overlay filter has an instance name. All other filters
34271 will have default instance names.
34272
34273 ffplay -dumpgraph 1 -f lavfi "
34274 color=s=100x100:c=red [l];
34275 color=s=100x100:c=blue [r];
34276 nullsrc=s=200x100, zmq [bg];
34277 [bg][l] overlay [bg+l];
34278 [bg+l][r] overlay@my=x=100 "
34279
34280 To change the color of the left side of the video, the following
34281 command can be used:
34282
34283 echo Parsed_color_0 c yellow | tools/zmqsend
34284
34285 To change the right side:
34286
34287 echo Parsed_color_1 c pink | tools/zmqsend
34288
34289 To change the position of the right side:
34290
34291 echo overlay@my x 150 | tools/zmqsend
34292
34294 Below is a description of the currently available multimedia sources.
34295
34296 amovie
34297 This is the same as movie source, except it selects an audio stream by
34298 default.
34299
34300 movie
34301 Read audio and/or video stream(s) from a movie container.
34302
34303 It accepts the following parameters:
34304
34305 filename
34306 The name of the resource to read (not necessarily a file; it can
34307 also be a device or a stream accessed through some protocol).
34308
34309 format_name, f
34310 Specifies the format assumed for the movie to read, and can be
34311 either the name of a container or an input device. If not
34312 specified, the format is guessed from movie_name or by probing.
34313
34314 seek_point, sp
34315 Specifies the seek point in seconds. The frames will be output
34316 starting from this seek point. The parameter is evaluated with
34317 "av_strtod", so the numerical value may be suffixed by an IS
34318 postfix. The default value is "0".
34319
34320 streams, s
34321 Specifies the streams to read. Several streams can be specified,
34322 separated by "+". The source will then have as many outputs, in the
34323 same order. The syntax is explained in the "Stream specifiers"
34324 section in the ffmpeg manual. Two special names, "dv" and "da"
34325 specify respectively the default (best suited) video and audio
34326 stream. Default is "dv", or "da" if the filter is called as
34327 "amovie".
34328
34329 stream_index, si
34330 Specifies the index of the video stream to read. If the value is
34331 -1, the most suitable video stream will be automatically selected.
34332 The default value is "-1". Deprecated. If the filter is called
34333 "amovie", it will select audio instead of video.
34334
34335 loop
34336 Specifies how many times to read the stream in sequence. If the
34337 value is 0, the stream will be looped infinitely. Default value is
34338 "1".
34339
34340 Note that when the movie is looped the source timestamps are not
34341 changed, so it will generate non monotonically increasing
34342 timestamps.
34343
34344 discontinuity
34345 Specifies the time difference between frames above which the point
34346 is considered a timestamp discontinuity which is removed by
34347 adjusting the later timestamps.
34348
34349 dec_threads
34350 Specifies the number of threads for decoding
34351
34352 format_opts
34353 Specify format options for the opened file. Format options can be
34354 specified as a list of key=value pairs separated by ':'. The
34355 following example shows how to add protocol_whitelist and
34356 protocol_blacklist options:
34357
34358 ffplay -f lavfi
34359 "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
34360
34361 It allows overlaying a second video on top of the main input of a
34362 filtergraph, as shown in this graph:
34363
34364 input -----------> deltapts0 --> overlay --> output
34365 ^
34366 |
34367 movie --> scale--> deltapts1 -------+
34368
34369 Examples
34370
34371 • Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
34372 it on top of the input labelled "in":
34373
34374 movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
34375 [in] setpts=PTS-STARTPTS [main];
34376 [main][over] overlay=16:16 [out]
34377
34378 • Read from a video4linux2 device, and overlay it on top of the input
34379 labelled "in":
34380
34381 movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
34382 [in] setpts=PTS-STARTPTS [main];
34383 [main][over] overlay=16:16 [out]
34384
34385 • Read the first video stream and the audio stream with id 0x81 from
34386 dvd.vob; the video is connected to the pad named "video" and the
34387 audio is connected to the pad named "audio":
34388
34389 movie=dvd.vob:s=v:0+#0x81 [video] [audio]
34390
34391 Commands
34392
34393 Both movie and amovie support the following commands:
34394
34395 seek
34396 Perform seek using "av_seek_frame". The syntax is: seek
34397 stream_index|timestamp|flags
34398
34399 • stream_index: If stream_index is -1, a default stream is
34400 selected, and timestamp is automatically converted from
34401 AV_TIME_BASE units to the stream specific time_base.
34402
34403 • timestamp: Timestamp in AVStream.time_base units or, if no
34404 stream is specified, in AV_TIME_BASE units.
34405
34406 • flags: Flags which select direction and seeking mode.
34407
34408 get_duration
34409 Get movie duration in AV_TIME_BASE units.
34410
34412 FFmpeg can be hooked up with a number of external libraries to add
34413 support for more formats. None of them are used by default, their use
34414 has to be explicitly requested by passing the appropriate flags to
34415 ./configure.
34416
34417 Alliance for Open Media (AOM)
34418 FFmpeg can make use of the AOM library for AV1 decoding and encoding.
34419
34420 Go to <http://aomedia.org/> and follow the instructions for installing
34421 the library. Then pass "--enable-libaom" to configure to enable it.
34422
34423 AMD AMF/VCE
34424 FFmpeg can use the AMD Advanced Media Framework library for accelerated
34425 H.264 and HEVC(only windows) encoding on hardware with Video Coding
34426 Engine (VCE).
34427
34428 To enable support you must obtain the AMF framework header
34429 files(version 1.4.9+) from
34430 <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
34431
34432 Create an "AMF/" directory in the system include path. Copy the
34433 contents of "AMF/amf/public/include/" into that directory. Then
34434 configure FFmpeg with "--enable-amf".
34435
34436 Initialization of amf encoder occurs in this order: 1) trying to
34437 initialize through dx11(only windows) 2) trying to initialize through
34438 dx9(only windows) 3) trying to initialize through vulkan
34439
34440 To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
34441 amf-amdgpu-pro package(amdgru-pro contains, but does not install
34442 automatically) are required.
34443
34444 This driver can be installed using amdgpu-pro-install script in
34445 official amd driver archive.
34446
34447 AviSynth
34448 FFmpeg can read AviSynth scripts as input. To enable support, pass
34449 "--enable-avisynth" to configure after installing the headers provided
34450 by <https://github.com/AviSynth/AviSynthPlus>. AviSynth+ can be
34451 configured to install only the headers by either passing
34452 "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
34453 using the supplied "GNUmakefile".
34454
34455 For Windows, supported AviSynth variants are <http://avisynth.nl> for
34456 32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
34457 and 64-bit builds.
34458
34459 For Linux, macOS, and BSD, the only supported AviSynth variant is
34460 <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
34461
34462 In 2016, AviSynth+ added support for building with GCC. However,
34463 due to the eccentricities of Windows' calling conventions, 32-bit
34464 GCC builds of AviSynth+ are not compatible with typical 32-bit
34465 builds of FFmpeg.
34466
34467 By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
34468 AviSynth+ since that is the most widely-used and entrenched build
34469 configuration. Users can override this and enable support for
34470 32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
34471 "--extra-cflags" when configuring FFmpeg.
34472
34473 64-bit builds of FFmpeg are not affected, and can use either MSVC
34474 or GCC builds of AviSynth+ without any special flags.
34475
34476 AviSynth(+) is loaded dynamically. Distributors can build FFmpeg
34477 with "--enable-avisynth", and the binaries will work regardless of
34478 the end user having AviSynth installed. If/when an end user would
34479 like to use AviSynth scripts, then they can install AviSynth(+) and
34480 FFmpeg will be able to find and use it to open scripts.
34481
34482 Chromaprint
34483 FFmpeg can make use of the Chromaprint library for generating audio
34484 fingerprints. Pass "--enable-chromaprint" to configure to enable it.
34485 See <https://acoustid.org/chromaprint>.
34486
34487 codec2
34488 FFmpeg can make use of the codec2 library for codec2 decoding and
34489 encoding. There is currently no native decoder, so libcodec2 must be
34490 used for decoding.
34491
34492 Go to <http://freedv.org/>, download "Codec 2 source archive". Build
34493 and install using CMake. Debian users can install the libcodec2-dev
34494 package instead. Once libcodec2 is installed you can pass
34495 "--enable-libcodec2" to configure to enable it.
34496
34497 The easiest way to use codec2 is with .c2 files, since they contain the
34498 mode information required for decoding. To encode such a file, use a
34499 .c2 file extension and give the libcodec2 encoder the -mode option:
34500 "ffmpeg -i input.wav -mode 700C output.c2". Playback is as simple as
34501 "ffplay output.c2". For a list of supported modes, run "ffmpeg -h
34502 encoder=libcodec2". Raw codec2 files are also supported. To make
34503 sense of them the mode in use needs to be specified as a format option:
34504 "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
34505
34506 dav1d
34507 FFmpeg can make use of the dav1d library for AV1 video decoding.
34508
34509 Go to <https://code.videolan.org/videolan/dav1d> and follow the
34510 instructions for installing the library. Then pass "--enable-libdav1d"
34511 to configure to enable it.
34512
34513 davs2
34514 FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
34515 decoding.
34516
34517 Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
34518 installing the library. Then pass "--enable-libdavs2" to configure to
34519 enable it.
34520
34521 libdavs2 is under the GNU Public License Version 2 or later (see
34522 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
34523 details), you must upgrade FFmpeg's license to GPL in order to use
34524 it.
34525
34526 uavs3d
34527 FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
34528 decoding.
34529
34530 Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
34531 installing the library. Then pass "--enable-libuavs3d" to configure to
34532 enable it.
34533
34534 Game Music Emu
34535 FFmpeg can make use of the Game Music Emu library to read audio from
34536 supported video game music file formats. Pass "--enable-libgme" to
34537 configure to enable it. See
34538 <https://bitbucket.org/mpyne/game-music-emu/overview>.
34539
34540 Intel QuickSync Video
34541 FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
34542 encoding of multiple codecs. To use QSV, FFmpeg must be linked against
34543 the "libmfx" dispatcher, which loads the actual decoding libraries.
34544
34545 The dispatcher is open source and can be downloaded from
34546 <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
34547 configured with the "--enable-libmfx" option and "pkg-config" needs to
34548 be able to locate the dispatcher's ".pc" files.
34549
34550 Kvazaar
34551 FFmpeg can make use of the Kvazaar library for HEVC encoding.
34552
34553 Go to <https://github.com/ultravideo/kvazaar> and follow the
34554 instructions for installing the library. Then pass
34555 "--enable-libkvazaar" to configure to enable it.
34556
34557 LAME
34558 FFmpeg can make use of the LAME library for MP3 encoding.
34559
34560 Go to <http://lame.sourceforge.net/> and follow the instructions for
34561 installing the library. Then pass "--enable-libmp3lame" to configure
34562 to enable it.
34563
34564 libilbc
34565 iLBC is a narrowband speech codec that has been made freely available
34566 by Google as part of the WebRTC project. libilbc is a packaging
34567 friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
34568 library for iLBC decoding and encoding.
34569
34570 Go to <https://github.com/TimothyGu/libilbc> and follow the
34571 instructions for installing the library. Then pass "--enable-libilbc"
34572 to configure to enable it.
34573
34574 libvpx
34575 FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
34576 encoding.
34577
34578 Go to <http://www.webmproject.org/> and follow the instructions for
34579 installing the library. Then pass "--enable-libvpx" to configure to
34580 enable it.
34581
34582 ModPlug
34583 FFmpeg can make use of this library, originating in Modplug-XMMS, to
34584 read from MOD-like music files. See
34585 <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
34586 to configure to enable it.
34587
34588 OpenCORE, VisualOn, and Fraunhofer libraries
34589 Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
34590 libraries provide encoders for a number of audio codecs.
34591
34592 OpenCORE and VisualOn libraries are under the Apache License 2.0
34593 (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
34594 which is incompatible to the LGPL version 2.1 and GPL version 2.
34595 You have to upgrade FFmpeg's license to LGPL version 3 (or if you
34596 have enabled GPL components, GPL version 3) by passing
34597 "--enable-version3" to configure in order to use it.
34598
34599 The license of the Fraunhofer AAC library is incompatible with the
34600 GPL. Therefore, for GPL builds, you have to pass
34601 "--enable-nonfree" to configure in order to use it. To the best of
34602 our knowledge, it is compatible with the LGPL.
34603
34604 OpenCORE AMR
34605
34606 FFmpeg can make use of the OpenCORE libraries for AMR-NB
34607 decoding/encoding and AMR-WB decoding.
34608
34609 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
34610 instructions for installing the libraries. Then pass
34611 "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
34612 configure to enable them.
34613
34614 VisualOn AMR-WB encoder library
34615
34616 FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
34617 encoding.
34618
34619 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
34620 instructions for installing the library. Then pass
34621 "--enable-libvo-amrwbenc" to configure to enable it.
34622
34623 Fraunhofer AAC library
34624
34625 FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
34626 encoding.
34627
34628 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
34629 instructions for installing the library. Then pass
34630 "--enable-libfdk-aac" to configure to enable it.
34631
34632 OpenH264
34633 FFmpeg can make use of the OpenH264 library for H.264 decoding and
34634 encoding.
34635
34636 Go to <http://www.openh264.org/> and follow the instructions for
34637 installing the library. Then pass "--enable-libopenh264" to configure
34638 to enable it.
34639
34640 For decoding, this library is much more limited than the built-in
34641 decoder in libavcodec; currently, this library lacks support for
34642 decoding B-frames and some other main/high profile features. (It
34643 currently only supports constrained baseline profile and CABAC.) Using
34644 it is mostly useful for testing and for taking advantage of Cisco's
34645 patent portfolio license
34646 (<http://www.openh264.org/BINARY_LICENSE.txt>).
34647
34648 OpenJPEG
34649 FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
34650 Go to <http://www.openjpeg.org/> to get the libraries and follow the
34651 installation instructions. To enable using OpenJPEG in FFmpeg, pass
34652 "--enable-libopenjpeg" to ./configure.
34653
34654 rav1e
34655 FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
34656 encode videos. Go to <https://github.com/xiph/rav1e/> and follow the
34657 instructions to build the C library. To enable using rav1e in FFmpeg,
34658 pass "--enable-librav1e" to ./configure.
34659
34660 SVT-AV1
34661 FFmpeg can make use of the Scalable Video Technology for AV1 library
34662 for AV1 encoding.
34663
34664 Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
34665 instructions for installing the library. Then pass "--enable-libsvtav1"
34666 to configure to enable it.
34667
34668 TwoLAME
34669 FFmpeg can make use of the TwoLAME library for MP2 encoding.
34670
34671 Go to <http://www.twolame.org/> and follow the instructions for
34672 installing the library. Then pass "--enable-libtwolame" to configure
34673 to enable it.
34674
34675 VapourSynth
34676 FFmpeg can read VapourSynth scripts as input. To enable support, pass
34677 "--enable-vapoursynth" to configure. Vapoursynth is detected via
34678 "pkg-config". Versions 42 or greater supported. See
34679 <http://www.vapoursynth.com/>.
34680
34681 Due to security concerns, Vapoursynth scripts will not be autodetected
34682 so the input format has to be forced. For ff* CLI tools, add "-f
34683 vapoursynth" before the input "-i yourscript.vpy".
34684
34685 x264
34686 FFmpeg can make use of the x264 library for H.264 encoding.
34687
34688 Go to <http://www.videolan.org/developers/x264.html> and follow the
34689 instructions for installing the library. Then pass "--enable-libx264"
34690 to configure to enable it.
34691
34692 x264 is under the GNU Public License Version 2 or later (see
34693 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
34694 details), you must upgrade FFmpeg's license to GPL in order to use
34695 it.
34696
34697 x265
34698 FFmpeg can make use of the x265 library for HEVC encoding.
34699
34700 Go to <http://x265.org/developers.html> and follow the instructions for
34701 installing the library. Then pass "--enable-libx265" to configure to
34702 enable it.
34703
34704 x265 is under the GNU Public License Version 2 or later (see
34705 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
34706 details), you must upgrade FFmpeg's license to GPL in order to use
34707 it.
34708
34709 xavs
34710 FFmpeg can make use of the xavs library for AVS encoding.
34711
34712 Go to <http://xavs.sf.net/> and follow the instructions for installing
34713 the library. Then pass "--enable-libxavs" to configure to enable it.
34714
34715 xavs2
34716 FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
34717 encoding.
34718
34719 Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
34720 installing the library. Then pass "--enable-libxavs2" to configure to
34721 enable it.
34722
34723 libxavs2 is under the GNU Public License Version 2 or later (see
34724 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
34725 details), you must upgrade FFmpeg's license to GPL in order to use
34726 it.
34727
34728 ZVBI
34729 ZVBI is a VBI decoding library which can be used by FFmpeg to decode
34730 DVB teletext pages and DVB teletext subtitles.
34731
34732 Go to <http://sourceforge.net/projects/zapping/> and follow the
34733 instructions for installing the library. Then pass "--enable-libzvbi"
34734 to configure to enable it.
34735
34737 You can use the "-formats" and "-codecs" options to have an exhaustive
34738 list.
34739
34740 File Formats
34741 FFmpeg supports the following file formats through the "libavformat"
34742 library:
34743
34744 Name : Encoding @tab Decoding @tab Comments
34745 3dostr : @tab X
34746 4xm : @tab X
34747 @tab 4X Technologies format, used in some games.
34748
34749 8088flex TMV : @tab X
34750 AAX : @tab X
34751 @tab Audible Enhanced Audio format, used in audiobooks.
34752
34753 AA : @tab X
34754 @tab Audible Format 2, 3, and 4, used in audiobooks.
34755
34756 ACT Voice : @tab X
34757 @tab contains G.729 audio
34758
34759 Adobe Filmstrip : X @tab X
34760 Audio IFF (AIFF) : X @tab X
34761 American Laser Games MM : @tab X
34762 @tab Multimedia format used in games like Mad Dog McCree.
34763
34764 3GPP AMR : X @tab X
34765 Amazing Studio Packed Animation File : @tab X
34766 @tab Multimedia format used in game Heart Of Darkness.
34767
34768 Apple HTTP Live Streaming : @tab X
34769 Artworx Data Format : @tab X
34770 Interplay ACM : @tab X
34771 @tab Audio only format used in some Interplay games.
34772
34773 ADP : @tab X
34774 @tab Audio format used on the Nintendo Gamecube.
34775
34776 AFC : @tab X
34777 @tab Audio format used on the Nintendo Gamecube.
34778
34779 ADS/SS2 : @tab X
34780 @tab Audio format used on the PS2.
34781
34782 APNG : X @tab X
34783 ASF : X @tab X
34784 @tab Advanced / Active Streaming Format.
34785
34786 AST : X @tab X
34787 @tab Audio format used on the Nintendo Wii.
34788
34789 AVI : X @tab X
34790 AviSynth : @tab X
34791 AVR : @tab X
34792 @tab Audio format used on Mac.
34793
34794 AVS : @tab X
34795 @tab Multimedia format used by the Creature Shock game.
34796
34797 Beam Software SIFF : @tab X
34798 @tab Audio and video format used in some games by Beam Software.
34799
34800 Bethesda Softworks VID : @tab X
34801 @tab Used in some games from Bethesda Softworks.
34802
34803 Binary text : @tab X
34804 Bink : @tab X
34805 @tab Multimedia format used by many games.
34806
34807 Bink Audio : @tab X
34808 @tab Audio only multimedia format used by some games.
34809
34810 Bitmap Brothers JV : @tab X
34811 @tab Used in Z and Z95 games.
34812
34813 BRP : @tab X
34814 @tab Argonaut Games format.
34815
34816 Brute Force & Ignorance : @tab X
34817 @tab Used in the game Flash Traffic: City of Angels.
34818
34819 BFSTM : @tab X
34820 @tab Audio format used on the Nintendo WiiU (based on BRSTM).
34821
34822 BRSTM : @tab X
34823 @tab Audio format used on the Nintendo Wii.
34824
34825 BW64 : @tab X
34826 @tab Broadcast Wave 64bit.
34827
34828 BWF : X @tab X
34829 codec2 (raw) : X @tab X
34830 @tab Must be given -mode format option to decode correctly.
34831
34832 codec2 (.c2 files) : X @tab X
34833 @tab Contains header with version and mode info, simplifying playback.
34834
34835 CRI ADX : X @tab X
34836 @tab Audio-only format used in console video games.
34837
34838 CRI AIX : @tab X
34839 CRI HCA : @tab X
34840 @tab Audio-only format used in console video games.
34841
34842 Discworld II BMV : @tab X
34843 Interplay C93 : @tab X
34844 @tab Used in the game Cyberia from Interplay.
34845
34846 Delphine Software International CIN : @tab X
34847 @tab Multimedia format used by Delphine Software games.
34848
34849 Digital Speech Standard (DSS) : @tab X
34850 CD+G : @tab X
34851 @tab Video format used by CD+G karaoke disks
34852
34853 Phantom Cine : @tab X
34854 Commodore CDXL : @tab X
34855 @tab Amiga CD video format
34856
34857 Core Audio Format : X @tab X
34858 @tab Apple Core Audio Format
34859
34860 CRC testing format : X @tab
34861 Creative Voice : X @tab X
34862 @tab Created for the Sound Blaster Pro.
34863
34864 CRYO APC : @tab X
34865 @tab Audio format used in some games by CRYO Interactive Entertainment.
34866
34867 D-Cinema audio : X @tab X
34868 Deluxe Paint Animation : @tab X
34869 DCSTR : @tab X
34870 DFA : @tab X
34871 @tab This format is used in Chronomaster game
34872
34873 DirectDraw Surface : @tab X
34874 DSD Stream File (DSF) : @tab X
34875 DV video : X @tab X
34876 DXA : @tab X
34877 @tab This format is used in the non-Windows version of the Feeble Files
34878 game and different game cutscenes repacked for use with ScummVM.
34879
34880 Electronic Arts cdata : @tab X
34881 Electronic Arts Multimedia : @tab X
34882 @tab Used in various EA games; files have extensions like WVE and UV2.
34883
34884 Ensoniq Paris Audio File : @tab X
34885 FFM (FFserver live feed) : X @tab X
34886 Flash (SWF) : X @tab X
34887 Flash 9 (AVM2) : X @tab X
34888 @tab Only embedded audio is decoded.
34889
34890 FLI/FLC/FLX animation : @tab X
34891 @tab .fli/.flc files
34892
34893 Flash Video (FLV) : X @tab X
34894 @tab Macromedia Flash video files
34895
34896 framecrc testing format : X @tab
34897 FunCom ISS : @tab X
34898 @tab Audio format used in various games from FunCom like The Longest Journey.
34899
34900 G.723.1 : X @tab X
34901 G.726 : @tab X @tab Both left- and right-
34902 justified.
34903 G.729 BIT : X @tab X
34904 G.729 raw : @tab X
34905 GENH : @tab X
34906 @tab Audio format for various games.
34907
34908 GIF Animation : X @tab X
34909 GXF : X @tab X
34910 @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
34911 playout servers.
34912
34913 HNM : @tab X
34914 @tab Only version 4 supported, used in some games from Cryo Interactive
34915
34916 iCEDraw File : @tab X
34917 ICO : X @tab X
34918 @tab Microsoft Windows ICO
34919
34920 id Quake II CIN video : @tab X
34921 id RoQ : X @tab X
34922 @tab Used in Quake III, Jedi Knight 2 and other computer games.
34923
34924 IEC61937 encapsulation : X @tab X
34925 IFF : @tab X
34926 @tab Interchange File Format
34927
34928 IFV : @tab X
34929 @tab A format used by some old CCTV DVRs.
34930
34931 iLBC : X @tab X
34932 Interplay MVE : @tab X
34933 @tab Format used in various Interplay computer games.
34934
34935 Iterated Systems ClearVideo : @tab X
34936 @tab I-frames only
34937
34938 IV8 : @tab X
34939 @tab A format generated by IndigoVision 8000 video server.
34940
34941 IVF (On2) : X @tab X
34942 @tab A format used by libvpx
34943
34944 Internet Video Recording : @tab X
34945 IRCAM : X @tab X
34946 LATM : X @tab X
34947 LMLM4 : @tab X
34948 @tab Used by Linux Media Labs MPEG-4 PCI boards
34949
34950 LOAS : @tab X
34951 @tab contains LATM multiplexed AAC audio
34952
34953 LRC : X @tab X
34954 LVF : @tab X
34955 LXF : @tab X
34956 @tab VR native stream format, used by Leitch/Harris' video servers.
34957
34958 Magic Lantern Video (MLV) : @tab X
34959 Matroska : X @tab X
34960 Matroska audio : X @tab
34961 FFmpeg metadata : X @tab X
34962 @tab Metadata in text format.
34963
34964 MAXIS XA : @tab X
34965 @tab Used in Sim City 3000; file extension .xa.
34966
34967 MCA : @tab X
34968 @tab Used in some games from Capcom; file extension .mca.
34969
34970 MD Studio : @tab X
34971 Metal Gear Solid: The Twin Snakes : @tab X
34972 Megalux Frame : @tab X
34973 @tab Used by Megalux Ultimate Paint
34974
34975 Mobotix .mxg : @tab X
34976 Monkey's Audio : @tab X
34977 Motion Pixels MVI : @tab X
34978 MOV/QuickTime/MP4 : X @tab X
34979 @tab 3GP, 3GP2, PSP, iPod variants supported
34980
34981 MP2 : X @tab X
34982 MP3 : X @tab X
34983 MPEG-1 System : X @tab X
34984 @tab muxed audio and video, VCD format supported
34985
34986 MPEG-PS (program stream) : X @tab X
34987 @tab also known as C<VOB> file, SVCD and DVD format supported
34988
34989 MPEG-TS (transport stream) : X @tab X
34990 @tab also known as DVB Transport Stream
34991
34992 MPEG-4 : X @tab X
34993 @tab MPEG-4 is a variant of QuickTime.
34994
34995 MSF : @tab X
34996 @tab Audio format used on the PS3.
34997
34998 Mirillis FIC video : @tab X
34999 @tab No cursor rendering.
35000
35001 MIDI Sample Dump Standard : @tab X
35002 MIME multipart JPEG : X @tab
35003 MSN TCP webcam : @tab X
35004 @tab Used by MSN Messenger webcam streams.
35005
35006 MTV : @tab X
35007 Musepack : @tab X
35008 Musepack SV8 : @tab X
35009 Material eXchange Format (MXF) : X @tab X
35010 @tab SMPTE 377M, used by D-Cinema, broadcast industry.
35011
35012 Material eXchange Format (MXF), D-10 Mapping : X @tab X
35013 @tab SMPTE 386M, D-10/IMX Mapping.
35014
35015 NC camera feed : @tab X
35016 @tab NC (AVIP NC4600) camera streams
35017
35018 NIST SPeech HEader REsources : @tab X
35019 Computerized Speech Lab NSP : @tab X
35020 NTT TwinVQ (VQF) : @tab X
35021 @tab Nippon Telegraph and Telephone Corporation TwinVQ.
35022
35023 Nullsoft Streaming Video : @tab X
35024 NuppelVideo : @tab X
35025 NUT : X @tab X
35026 @tab NUT Open Container Format
35027
35028 Ogg : X @tab X
35029 Playstation Portable PMP : @tab X
35030 Portable Voice Format : @tab X
35031 TechnoTrend PVA : @tab X
35032 @tab Used by TechnoTrend DVB PCI boards.
35033
35034 QCP : @tab X
35035 raw ADTS (AAC) : X @tab X
35036 raw AC-3 : X @tab X
35037 raw AMR-NB : @tab X
35038 raw AMR-WB : @tab X
35039 raw aptX : X @tab X
35040 raw aptX HD : X @tab X
35041 raw Chinese AVS video : X @tab X
35042 raw Dirac : X @tab X
35043 raw DNxHD : X @tab X
35044 raw DTS : X @tab X
35045 raw DTS-HD : @tab X
35046 raw E-AC-3 : X @tab X
35047 raw FLAC : X @tab X
35048 raw GSM : @tab X
35049 raw H.261 : X @tab X
35050 raw H.263 : X @tab X
35051 raw H.264 : X @tab X
35052 raw HEVC : X @tab X
35053 raw Ingenient MJPEG : @tab X
35054 raw MJPEG : X @tab X
35055 raw MLP : @tab X
35056 raw MPEG : @tab X
35057 raw MPEG-1 : @tab X
35058 raw MPEG-2 : @tab X
35059 raw MPEG-4 : X @tab X
35060 raw NULL : X @tab
35061 raw video : X @tab X
35062 raw id RoQ : X @tab
35063 raw OBU : X @tab X
35064 raw SBC : X @tab X
35065 raw Shorten : @tab X
35066 raw TAK : @tab X
35067 raw TrueHD : X @tab X
35068 raw VC-1 : X @tab X
35069 raw PCM A-law : X @tab X
35070 raw PCM mu-law : X @tab X
35071 raw PCM Archimedes VIDC : X @tab X
35072 raw PCM signed 8 bit : X @tab X
35073 raw PCM signed 16 bit big-endian : X @tab X
35074 raw PCM signed 16 bit little-endian : X @tab X
35075 raw PCM signed 24 bit big-endian : X @tab X
35076 raw PCM signed 24 bit little-endian : X @tab X
35077 raw PCM signed 32 bit big-endian : X @tab X
35078 raw PCM signed 32 bit little-endian : X @tab X
35079 raw PCM signed 64 bit big-endian : X @tab X
35080 raw PCM signed 64 bit little-endian : X @tab X
35081 raw PCM unsigned 8 bit : X @tab X
35082 raw PCM unsigned 16 bit big-endian : X @tab X
35083 raw PCM unsigned 16 bit little-endian : X @tab X
35084 raw PCM unsigned 24 bit big-endian : X @tab X
35085 raw PCM unsigned 24 bit little-endian : X @tab X
35086 raw PCM unsigned 32 bit big-endian : X @tab X
35087 raw PCM unsigned 32 bit little-endian : X @tab X
35088 raw PCM 16.8 floating point little-endian : @tab X
35089 raw PCM 24.0 floating point little-endian : @tab X
35090 raw PCM floating-point 32 bit big-endian : X @tab X
35091 raw PCM floating-point 32 bit little-endian : X @tab X
35092 raw PCM floating-point 64 bit big-endian : X @tab X
35093 raw PCM floating-point 64 bit little-endian : X @tab X
35094 RDT : @tab X
35095 REDCODE R3D : @tab X
35096 @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
35097
35098 RealMedia : X @tab X
35099 Redirector : @tab X
35100 RedSpark : @tab X
35101 Renderware TeXture Dictionary : @tab X
35102 Resolume DXV : @tab X
35103 RF64 : @tab X
35104 RL2 : @tab X
35105 @tab Audio and video format used in some games by Entertainment Software Partners.
35106
35107 RPL/ARMovie : @tab X
35108 Lego Mindstorms RSO : X @tab X
35109 RSD : @tab X
35110 RTMP : X @tab X
35111 @tab Output is performed by publishing stream to RTMP server
35112
35113 RTP : X @tab X
35114 RTSP : X @tab X
35115 Sample Dump eXchange : @tab X
35116 SAP : X @tab X
35117 SBG : @tab X
35118 SDP : @tab X
35119 SER : @tab X
35120 Sega FILM/CPK : X @tab X
35121 @tab Used in many Sega Saturn console games.
35122
35123 Silicon Graphics Movie : @tab X
35124 Sierra SOL : @tab X
35125 @tab .sol files used in Sierra Online games.
35126
35127 Sierra VMD : @tab X
35128 @tab Used in Sierra CD-ROM games.
35129
35130 Smacker : @tab X
35131 @tab Multimedia format used by many games.
35132
35133 SMJPEG : X @tab X
35134 @tab Used in certain Loki game ports.
35135
35136 SMPTE 337M encapsulation : @tab X
35137 Smush : @tab X
35138 @tab Multimedia format used in some LucasArts games.
35139
35140 Sony OpenMG (OMA) : X @tab X
35141 @tab Audio format used in Sony Sonic Stage and Sony Vegas.
35142
35143 Sony PlayStation STR : @tab X
35144 Sony Wave64 (W64) : X @tab X
35145 SoX native format : X @tab X
35146 SUN AU format : X @tab X
35147 SUP raw PGS subtitles : X @tab X
35148 SVAG : @tab X
35149 @tab Audio format used in Konami PS2 games.
35150
35151 TDSC : @tab X
35152 Text files : @tab X
35153 THP : @tab X
35154 @tab Used on the Nintendo GameCube.
35155
35156 Tiertex Limited SEQ : @tab X
35157 @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
35158
35159 True Audio : X @tab X
35160 VAG : @tab X
35161 @tab Audio format used in many Sony PS2 games.
35162
35163 VC-1 test bitstream : X @tab X
35164 Vidvox Hap : X @tab X
35165 Vivo : @tab X
35166 VPK : @tab X
35167 @tab Audio format used in Sony PS games.
35168
35169 WAV : X @tab X
35170 WavPack : X @tab X
35171 WebM : X @tab X
35172 Windows Televison (WTV) : X @tab X
35173 Wing Commander III movie : @tab X
35174 @tab Multimedia format used in Origin's Wing Commander III computer game.
35175
35176 Westwood Studios audio : X @tab X
35177 @tab Multimedia format used in Westwood Studios games.
35178
35179 Westwood Studios VQA : @tab X
35180 @tab Multimedia format used in Westwood Studios games.
35181
35182 Wideband Single-bit Data (WSD) : @tab X
35183 WVE : @tab X
35184 XMV : @tab X
35185 @tab Microsoft video container used in Xbox games.
35186
35187 XVAG : @tab X
35188 @tab Audio format used on the PS3.
35189
35190 xWMA : @tab X
35191 @tab Microsoft audio container used by XAudio 2.
35192
35193 eXtended BINary text (XBIN) : @tab X
35194 YUV4MPEG pipe : X @tab X
35195 Psygnosis YOP : @tab X
35196
35197 "X" means that the feature in that column (encoding / decoding) is
35198 supported.
35199
35200 Image Formats
35201 FFmpeg can read and write images for each frame of a video sequence.
35202 The following image formats are supported:
35203
35204 Name : Encoding @tab Decoding @tab Comments
35205 .Y.U.V : X @tab X
35206 @tab one raw file per component
35207
35208 Alias PIX : X @tab X
35209 @tab Alias/Wavefront PIX image format
35210
35211 animated GIF : X @tab X
35212 APNG : X @tab X
35213 @tab Animated Portable Network Graphics
35214
35215 BMP : X @tab X
35216 @tab Microsoft BMP image
35217
35218 BRender PIX : @tab X
35219 @tab Argonaut BRender 3D engine image format.
35220
35221 CRI : @tab X
35222 @tab Cintel RAW
35223
35224 DPX : X @tab X
35225 @tab Digital Picture Exchange
35226
35227 EXR : @tab X
35228 @tab OpenEXR
35229
35230 FITS : X @tab X
35231 @tab Flexible Image Transport System
35232
35233 IMG : @tab X
35234 @tab GEM Raster image
35235
35236 JPEG : X @tab X
35237 @tab Progressive JPEG is not supported.
35238
35239 JPEG 2000 : X @tab X
35240 JPEG-LS : X @tab X
35241 LJPEG : X @tab
35242 @tab Lossless JPEG
35243
35244 MSP : @tab X
35245 @tab Microsoft Paint image
35246
35247 PAM : X @tab X
35248 @tab PAM is a PNM extension with alpha support.
35249
35250 PBM : X @tab X
35251 @tab Portable BitMap image
35252
35253 PCD : @tab X
35254 @tab PhotoCD
35255
35256 PCX : X @tab X
35257 @tab PC Paintbrush
35258
35259 PFM : X @tab X
35260 @tab Portable FloatMap image
35261
35262 PGM : X @tab X
35263 @tab Portable GrayMap image
35264
35265 PGMYUV : X @tab X
35266 @tab PGM with U and V components in YUV 4:2:0
35267
35268 PGX : @tab X
35269 @tab PGX file decoder
35270
35271 PIC : @tab X
35272 @tab Pictor/PC Paint
35273
35274 PNG : X @tab X
35275 @tab Portable Network Graphics image
35276
35277 PPM : X @tab X
35278 @tab Portable PixelMap image
35279
35280 PSD : @tab X
35281 @tab Photoshop
35282
35283 PTX : @tab X
35284 @tab V.Flash PTX format
35285
35286 SGI : X @tab X
35287 @tab SGI RGB image format
35288
35289 Sun Rasterfile : X @tab X
35290 @tab Sun RAS image format
35291
35292 TIFF : X @tab X
35293 @tab YUV, JPEG and some extension is not supported yet.
35294
35295 Truevision Targa : X @tab X
35296 @tab Targa (.TGA) image format
35297
35298 WebP : E @tab X
35299 @tab WebP image format, encoding supported through external library libwebp
35300
35301 XBM : X @tab X
35302 @tab X BitMap image format
35303
35304 XFace : X @tab X
35305 @tab X-Face image format
35306
35307 XPM : @tab X
35308 @tab X PixMap image format
35309
35310 XWD : X @tab X
35311 @tab X Window Dump image format
35312
35313 "X" means that the feature in that column (encoding / decoding) is
35314 supported.
35315
35316 "E" means that support is provided through an external library.
35317
35318 Video Codecs
35319 Name : Encoding @tab Decoding @tab Comments
35320 4X Movie : @tab X
35321 @tab Used in certain computer games.
35322
35323 8088flex TMV : @tab X
35324 A64 multicolor : X @tab
35325 @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
35326
35327 Amazing Studio PAF Video : @tab X
35328 American Laser Games MM : @tab X
35329 @tab Used in games like Mad Dog McCree.
35330
35331 Amuse Graphics Movie : @tab X
35332 AMV Video : X @tab X
35333 @tab Used in Chinese MP3 players.
35334
35335 ANSI/ASCII art : @tab X
35336 Apple Intermediate Codec : @tab X
35337 Apple MJPEG-B : @tab X
35338 Apple Pixlet : @tab X
35339 Apple ProRes : X @tab X
35340 @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
35341
35342 Apple QuickDraw : @tab X
35343 @tab fourcc: qdrw
35344
35345 Argonaut Video : @tab X
35346 @tab Used in some Argonaut games.
35347
35348 Asus v1 : X @tab X
35349 @tab fourcc: ASV1
35350
35351 Asus v2 : X @tab X
35352 @tab fourcc: ASV2
35353
35354 ATI VCR1 : @tab X
35355 @tab fourcc: VCR1
35356
35357 ATI VCR2 : @tab X
35358 @tab fourcc: VCR2
35359
35360 Auravision Aura : @tab X
35361 Auravision Aura 2 : @tab X
35362 Autodesk Animator Flic video : @tab X
35363 Autodesk RLE : @tab X
35364 @tab fourcc: AASC
35365
35366 AV1 : E @tab E
35367 @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
35368
35369 Avid 1:1 10-bit RGB Packer : X @tab X
35370 @tab fourcc: AVrp
35371
35372 AVS (Audio Video Standard) video : @tab X
35373 @tab Video encoding used by the Creature Shock game.
35374
35375 AVS2-P2/IEEE1857.4 : E @tab E
35376 @tab Supported through external libraries libxavs2 and libdavs2
35377
35378 AVS3-P2/IEEE1857.10 : @tab E
35379 @tab Supported through external library libuavs3d
35380
35381 AYUV : X @tab X
35382 @tab Microsoft uncompressed packed 4:4:4:4
35383
35384 Beam Software VB : @tab X
35385 Bethesda VID video : @tab X
35386 @tab Used in some games from Bethesda Softworks.
35387
35388 Bink Video : @tab X
35389 BitJazz SheerVideo : @tab X
35390 Bitmap Brothers JV video : @tab X
35391 y41p Brooktree uncompressed 4:1:1 12-bit : X @tab X
35392 Brooktree ProSumer Video : @tab X
35393 @tab fourcc: BT20
35394
35395 Brute Force & Ignorance : @tab X
35396 @tab Used in the game Flash Traffic: City of Angels.
35397
35398 C93 video : @tab X
35399 @tab Codec used in Cyberia game.
35400
35401 CamStudio : @tab X
35402 @tab fourcc: CSCD
35403
35404 CD+G : @tab X
35405 @tab Video codec for CD+G karaoke disks
35406
35407 CDXL : @tab X
35408 @tab Amiga CD video codec
35409
35410 Chinese AVS video : E @tab X
35411 @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
35412
35413 Delphine Software International CIN video : @tab X
35414 @tab Codec used in Delphine Software International games.
35415
35416 Discworld II BMV Video : @tab X
35417 CineForm HD : X @tab X
35418 Canopus HQ : @tab X
35419 Canopus HQA : @tab X
35420 Canopus HQX : @tab X
35421 Canopus Lossless Codec : @tab X
35422 CDToons : @tab X
35423 @tab Codec used in various Broderbund games.
35424
35425 Cinepak : @tab X
35426 Cirrus Logic AccuPak : X @tab X
35427 @tab fourcc: CLJR
35428
35429 CPiA Video Format : @tab X
35430 Creative YUV (CYUV) : @tab X
35431 DFA : @tab X
35432 @tab Codec used in Chronomaster game.
35433
35434 Dirac : E @tab X
35435 @tab supported though the native vc2 (Dirac Pro) encoder
35436
35437 Deluxe Paint Animation : @tab X
35438 DNxHD : X @tab X
35439 @tab aka SMPTE VC3
35440
35441 Duck TrueMotion 1.0 : @tab X
35442 @tab fourcc: DUCK
35443
35444 Duck TrueMotion 2.0 : @tab X
35445 @tab fourcc: TM20
35446
35447 Duck TrueMotion 2.0 RT : @tab X
35448 @tab fourcc: TR20
35449
35450 DV (Digital Video) : X @tab X
35451 Dxtory capture format : @tab X
35452 Feeble Files/ScummVM DXA : @tab X
35453 @tab Codec originally used in Feeble Files game.
35454
35455 Electronic Arts CMV video : @tab X
35456 @tab Used in NHL 95 game.
35457
35458 Electronic Arts Madcow video : @tab X
35459 Electronic Arts TGV video : @tab X
35460 Electronic Arts TGQ video : @tab X
35461 Electronic Arts TQI video : @tab X
35462 Escape 124 : @tab X
35463 Escape 130 : @tab X
35464 FFmpeg video codec #1 : X @tab X
35465 @tab lossless codec (fourcc: FFV1)
35466
35467 Flash Screen Video v1 : X @tab X
35468 @tab fourcc: FSV1
35469
35470 Flash Screen Video v2 : X @tab X
35471 Flash Video (FLV) : X @tab X
35472 @tab Sorenson H.263 used in Flash
35473
35474 FM Screen Capture Codec : @tab X
35475 Forward Uncompressed : @tab X
35476 Fraps : @tab X
35477 Go2Meeting : @tab X
35478 @tab fourcc: G2M2, G2M3
35479
35480 Go2Webinar : @tab X
35481 @tab fourcc: G2M4
35482
35483 Gremlin Digital Video : @tab X
35484 H.261 : X @tab X
35485 H.263 / H.263-1996 : X @tab X
35486 H.263+ / H.263-1998 / H.263 version 2 : X @tab X
35487 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 : E @tab X
35488 @tab encoding supported through external library libx264 and OpenH264
35489
35490 HEVC : X @tab X
35491 @tab encoding supported through external library libx265 and libkvazaar
35492
35493 HNM version 4 : @tab X
35494 HuffYUV : X @tab X
35495 HuffYUV FFmpeg variant : X @tab X
35496 IBM Ultimotion : @tab X
35497 @tab fourcc: ULTI
35498
35499 id Cinematic video : @tab X
35500 @tab Used in Quake II.
35501
35502 id RoQ video : X @tab X
35503 @tab Used in Quake III, Jedi Knight 2, other computer games.
35504
35505 IFF ILBM : @tab X
35506 @tab IFF interleaved bitmap
35507
35508 IFF ByteRun1 : @tab X
35509 @tab IFF run length encoded bitmap
35510
35511 Infinity IMM4 : @tab X
35512 Intel H.263 : @tab X
35513 Intel Indeo 2 : @tab X
35514 Intel Indeo 3 : @tab X
35515 Intel Indeo 4 : @tab X
35516 Intel Indeo 5 : @tab X
35517 Interplay C93 : @tab X
35518 @tab Used in the game Cyberia from Interplay.
35519
35520 Interplay MVE video : @tab X
35521 @tab Used in Interplay .MVE files.
35522
35523 J2K : X @tab X
35524 Karl Morton's video codec : @tab X
35525 @tab Codec used in Worms games.
35526
35527 Kega Game Video (KGV1) : @tab X
35528 @tab Kega emulator screen capture codec.
35529
35530 Lagarith : @tab X
35531 LCL (LossLess Codec Library) MSZH : @tab X
35532 LCL (LossLess Codec Library) ZLIB : E @tab E
35533 LOCO : @tab X
35534 LucasArts SANM/Smush : @tab X
35535 @tab Used in LucasArts games / SMUSH animations.
35536
35537 lossless MJPEG : X @tab X
35538 MagicYUV Video : X @tab X
35539 Mandsoft Screen Capture Codec : @tab X
35540 Microsoft ATC Screen : @tab X
35541 @tab Also known as Microsoft Screen 3.
35542
35543 Microsoft Expression Encoder Screen : @tab X
35544 @tab Also known as Microsoft Titanium Screen 2.
35545
35546 Microsoft RLE : @tab X
35547 Microsoft Screen 1 : @tab X
35548 @tab Also known as Windows Media Video V7 Screen.
35549
35550 Microsoft Screen 2 : @tab X
35551 @tab Also known as Windows Media Video V9 Screen.
35552
35553 Microsoft Video 1 : @tab X
35554 Mimic : @tab X
35555 @tab Used in MSN Messenger Webcam streams.
35556
35557 Miro VideoXL : @tab X
35558 @tab fourcc: VIXL
35559
35560 MJPEG (Motion JPEG) : X @tab X
35561 Mobotix MxPEG video : @tab X
35562 Motion Pixels video : @tab X
35563 MPEG-1 video : X @tab X
35564 MPEG-2 video : X @tab X
35565 MPEG-4 part 2 : X @tab X
35566 @tab libxvidcore can be used alternatively for encoding.
35567
35568 MPEG-4 part 2 Microsoft variant version 1 : @tab X
35569 MPEG-4 part 2 Microsoft variant version 2 : X @tab X
35570 MPEG-4 part 2 Microsoft variant version 3 : X @tab X
35571 Newtek SpeedHQ : X @tab X
35572 Nintendo Gamecube THP video : @tab X
35573 NotchLC : @tab X
35574 NuppelVideo/RTjpeg : @tab X
35575 @tab Video encoding used in NuppelVideo files.
35576
35577 On2 VP3 : @tab X
35578 @tab still experimental
35579
35580 On2 VP4 : @tab X
35581 @tab fourcc: VP40
35582
35583 On2 VP5 : @tab X
35584 @tab fourcc: VP50
35585
35586 On2 VP6 : @tab X
35587 @tab fourcc: VP60,VP61,VP62
35588
35589 On2 VP7 : @tab X
35590 @tab fourcc: VP70,VP71
35591
35592 VP8 : E @tab X
35593 @tab fourcc: VP80, encoding supported through external library libvpx
35594
35595 VP9 : E @tab X
35596 @tab encoding supported through external library libvpx
35597
35598 Pinnacle TARGA CineWave YUV16 : @tab X
35599 @tab fourcc: Y216
35600
35601 Q-team QPEG : @tab X
35602 @tab fourccs: QPEG, Q1.0, Q1.1
35603
35604 QuickTime 8BPS video : @tab X
35605 QuickTime Animation (RLE) video : X @tab X
35606 @tab fourcc: 'rle '
35607
35608 QuickTime Graphics (SMC) : X @tab X
35609 @tab fourcc: 'smc '
35610
35611 QuickTime video (RPZA) : X @tab X
35612 @tab fourcc: rpza
35613
35614 R10K AJA Kona 10-bit RGB Codec : X @tab X
35615 R210 Quicktime Uncompressed RGB 10-bit : X @tab X
35616 Raw Video : X @tab X
35617 RealVideo 1.0 : X @tab X
35618 RealVideo 2.0 : X @tab X
35619 RealVideo 3.0 : @tab X
35620 @tab still far from ideal
35621
35622 RealVideo 4.0 : @tab X
35623 Renderware TXD (TeXture Dictionary) : @tab X
35624 @tab Texture dictionaries used by the Renderware Engine.
35625
35626 RL2 video : @tab X
35627 @tab used in some games by Entertainment Software Partners
35628
35629 ScreenPressor : @tab X
35630 Screenpresso : @tab X
35631 Screen Recorder Gold Codec : @tab X
35632 Sierra VMD video : @tab X
35633 @tab Used in Sierra VMD files.
35634
35635 Silicon Graphics Motion Video Compressor 1 (MVC1) : @tab X
35636 Silicon Graphics Motion Video Compressor 2 (MVC2) : @tab X
35637 Silicon Graphics RLE 8-bit video : @tab X
35638 Smacker video : @tab X
35639 @tab Video encoding used in Smacker.
35640
35641 SMPTE VC-1 : @tab X
35642 Snow : X @tab X
35643 @tab experimental wavelet codec (fourcc: SNOW)
35644
35645 Sony PlayStation MDEC (Motion DECoder) : @tab X
35646 Sorenson Vector Quantizer 1 : X @tab X
35647 @tab fourcc: SVQ1
35648
35649 Sorenson Vector Quantizer 3 : @tab X
35650 @tab fourcc: SVQ3
35651
35652 Sunplus JPEG (SP5X) : @tab X
35653 @tab fourcc: SP5X
35654
35655 TechSmith Screen Capture Codec : @tab X
35656 @tab fourcc: TSCC
35657
35658 TechSmith Screen Capture Codec 2 : @tab X
35659 @tab fourcc: TSC2
35660
35661 Theora : E @tab X
35662 @tab encoding supported through external library libtheora
35663
35664 Tiertex Limited SEQ video : @tab X
35665 @tab Codec used in DOS CD-ROM FlashBack game.
35666
35667 Ut Video : X @tab X
35668 v210 QuickTime uncompressed 4:2:2 10-bit : X @tab X
35669 v308 QuickTime uncompressed 4:4:4 : X @tab X
35670 v408 QuickTime uncompressed 4:4:4:4 : X @tab X
35671 v410 QuickTime uncompressed 4:4:4 10-bit : X @tab X
35672 VBLE Lossless Codec : @tab X
35673 VMware Screen Codec / VMware Video : @tab X
35674 @tab Codec used in videos captured by VMware.
35675
35676 Westwood Studios VQA (Vector Quantized Animation) video : @tab
35677 X
35678 Windows Media Image : @tab X
35679 Windows Media Video 7 : X @tab X
35680 Windows Media Video 8 : X @tab X
35681 Windows Media Video 9 : @tab X
35682 @tab not completely working
35683
35684 Wing Commander III / Xan : @tab X
35685 @tab Used in Wing Commander III .MVE files.
35686
35687 Wing Commander IV / Xan : @tab X
35688 @tab Used in Wing Commander IV.
35689
35690 Winnov WNV1 : @tab X
35691 WMV7 : X @tab X
35692 YAMAHA SMAF : X @tab X
35693 Psygnosis YOP Video : @tab X
35694 yuv4 : X @tab X
35695 @tab libquicktime uncompressed packed 4:2:0
35696
35697 ZeroCodec Lossless Video : @tab X
35698 ZLIB : X @tab X
35699 @tab part of LCL, encoder experimental
35700
35701 Zip Motion Blocks Video : X @tab X
35702 @tab Encoder works only in PAL8.
35703
35704 "X" means that the feature in that column (encoding / decoding) is
35705 supported.
35706
35707 "E" means that support is provided through an external library.
35708
35709 Audio Codecs
35710 Name : Encoding @tab Decoding @tab Comments
35711 8SVX exponential : @tab X
35712 8SVX fibonacci : @tab X
35713 AAC : EX @tab X
35714 @tab encoding supported through internal encoder and external library libfdk-aac
35715
35716 AAC+ : E @tab IX
35717 @tab encoding supported through external library libfdk-aac
35718
35719 AC-3 : IX @tab IX
35720 ACELP.KELVIN : @tab X
35721 ADPCM 4X Movie : @tab X
35722 ADPCM Yamaha AICA : @tab X
35723 ADPCM AmuseGraphics Movie : @tab X
35724 ADPCM Argonaut Games : X @tab X
35725 ADPCM CDROM XA : @tab X
35726 ADPCM Creative Technology : @tab X
35727 @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
35728
35729 ADPCM Electronic Arts : @tab X
35730 @tab Used in various EA titles.
35731
35732 ADPCM Electronic Arts Maxis CDROM XS : @tab X
35733 @tab Used in Sim City 3000.
35734
35735 ADPCM Electronic Arts R1 : @tab X
35736 ADPCM Electronic Arts R2 : @tab X
35737 ADPCM Electronic Arts R3 : @tab X
35738 ADPCM Electronic Arts XAS : @tab X
35739 ADPCM G.722 : X @tab X
35740 ADPCM G.726 : X @tab X
35741 ADPCM IMA Acorn Replay : @tab X
35742 ADPCM IMA AMV : X @tab X
35743 @tab Used in AMV files
35744
35745 ADPCM IMA Cunning Developments : @tab X
35746 ADPCM IMA Electronic Arts EACS : @tab X
35747 ADPCM IMA Electronic Arts SEAD : @tab X
35748 ADPCM IMA Funcom : @tab X
35749 ADPCM IMA High Voltage Software ALP : X @tab X
35750 ADPCM IMA QuickTime : X @tab X
35751 ADPCM IMA Simon & Schuster Interactive : X @tab X
35752 ADPCM IMA Ubisoft APM : X @tab X
35753 ADPCM IMA Loki SDL MJPEG : @tab X
35754 ADPCM IMA WAV : X @tab X
35755 ADPCM IMA Westwood : @tab X
35756 ADPCM ISS IMA : @tab X
35757 @tab Used in FunCom games.
35758
35759 ADPCM IMA Dialogic : @tab X
35760 ADPCM IMA Duck DK3 : @tab X
35761 @tab Used in some Sega Saturn console games.
35762
35763 ADPCM IMA Duck DK4 : @tab X
35764 @tab Used in some Sega Saturn console games.
35765
35766 ADPCM IMA Radical : @tab X
35767 ADPCM Microsoft : X @tab X
35768 ADPCM MS IMA : X @tab X
35769 ADPCM Nintendo Gamecube AFC : @tab X
35770 ADPCM Nintendo Gamecube DTK : @tab X
35771 ADPCM Nintendo THP : @tab X
35772 ADPCM Playstation : @tab X
35773 ADPCM QT IMA : X @tab X
35774 ADPCM SEGA CRI ADX : X @tab X
35775 @tab Used in Sega Dreamcast games.
35776
35777 ADPCM Shockwave Flash : X @tab X
35778 ADPCM Sound Blaster Pro 2-bit : @tab X
35779 ADPCM Sound Blaster Pro 2.6-bit : @tab X
35780 ADPCM Sound Blaster Pro 4-bit : @tab X
35781 ADPCM VIMA : @tab X
35782 @tab Used in LucasArts SMUSH animations.
35783
35784 ADPCM Westwood Studios IMA : X @tab X
35785 @tab Used in Westwood Studios games like Command and Conquer.
35786
35787 ADPCM Yamaha : X @tab X
35788 ADPCM Zork : @tab X
35789 AMR-NB : E @tab X
35790 @tab encoding supported through external library libopencore-amrnb
35791
35792 AMR-WB : E @tab X
35793 @tab encoding supported through external library libvo-amrwbenc
35794
35795 Amazing Studio PAF Audio : @tab X
35796 Apple lossless audio : X @tab X
35797 @tab QuickTime fourcc 'alac'
35798
35799 aptX : X @tab X
35800 @tab Used in Bluetooth A2DP
35801
35802 aptX HD : X @tab X
35803 @tab Used in Bluetooth A2DP
35804
35805 ATRAC1 : @tab X
35806 ATRAC3 : @tab X
35807 ATRAC3+ : @tab X
35808 ATRAC9 : @tab X
35809 Bink Audio : @tab X
35810 @tab Used in Bink and Smacker files in many games.
35811
35812 CELT : @tab E
35813 @tab decoding supported through external library libcelt
35814
35815 codec2 : E @tab E
35816 @tab en/decoding supported through external library libcodec2
35817
35818 CRI HCA : @tab X
35819 Delphine Software International CIN audio : @tab X
35820 @tab Codec used in Delphine Software International games.
35821
35822 Digital Speech Standard - Standard Play mode (DSS SP) : @tab X
35823 Discworld II BMV Audio : @tab X
35824 COOK : @tab X
35825 @tab All versions except 5.1 are supported.
35826
35827 DCA (DTS Coherent Acoustics) : X @tab X
35828 @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
35829
35830 Dolby E : @tab X
35831 DPCM Gremlin : @tab X
35832 DPCM id RoQ : X @tab X
35833 @tab Used in Quake III, Jedi Knight 2 and other computer games.
35834
35835 DPCM Interplay : @tab X
35836 @tab Used in various Interplay computer games.
35837
35838 DPCM Squareroot-Delta-Exact : @tab X
35839 @tab Used in various games.
35840
35841 DPCM Sierra Online : @tab X
35842 @tab Used in Sierra Online game audio files.
35843
35844 DPCM Sol : @tab X
35845 DPCM Xan : @tab X
35846 @tab Used in Origin's Wing Commander IV AVI files.
35847
35848 DPCM Xilam DERF : @tab X
35849 DSD (Direct Stream Digital), least significant bit first : @tab X
35850 DSD (Direct Stream Digital), most significant bit first : @tab X
35851 DSD (Direct Stream Digital), least significant bit first, planar :
35852 @tab X
35853 DSD (Direct Stream Digital), most significant bit first, planar :
35854 @tab X
35855 DSP Group TrueSpeech : @tab X
35856 DST (Direct Stream Transfer) : @tab X
35857 DV audio : @tab X
35858 Enhanced AC-3 : X @tab X
35859 EVRC (Enhanced Variable Rate Codec) : @tab X
35860 FLAC (Free Lossless Audio Codec) : X @tab IX
35861 G.723.1 : X @tab X
35862 G.729 : @tab X
35863 GSM : E @tab X
35864 @tab encoding supported through external library libgsm
35865
35866 GSM Microsoft variant : E @tab X
35867 @tab encoding supported through external library libgsm
35868
35869 IAC (Indeo Audio Coder) : @tab X
35870 iLBC (Internet Low Bitrate Codec) : E @tab EX
35871 @tab encoding and decoding supported through external library libilbc
35872
35873 IMC (Intel Music Coder) : @tab X
35874 Interplay ACM : @tab X
35875 MACE (Macintosh Audio Compression/Expansion) 3:1 : @tab X
35876 MACE (Macintosh Audio Compression/Expansion) 6:1 : @tab X
35877 MLP (Meridian Lossless Packing) : X @tab X
35878 @tab Used in DVD-Audio discs.
35879
35880 Monkey's Audio : @tab X
35881 MP1 (MPEG audio layer 1) : @tab IX
35882 MP2 (MPEG audio layer 2) : IX @tab IX
35883 @tab encoding supported also through external library TwoLAME
35884
35885 MP3 (MPEG audio layer 3) : E @tab IX
35886 @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
35887
35888 MPEG-4 Audio Lossless Coding (ALS) : @tab X
35889 Musepack SV7 : @tab X
35890 Musepack SV8 : @tab X
35891 Nellymoser Asao : X @tab X
35892 On2 AVC (Audio for Video Codec) : @tab X
35893 Opus : E @tab X
35894 @tab encoding supported through external library libopus
35895
35896 PCM A-law : X @tab X
35897 PCM mu-law : X @tab X
35898 PCM Archimedes VIDC : X @tab X
35899 PCM signed 8-bit planar : X @tab X
35900 PCM signed 16-bit big-endian planar : X @tab X
35901 PCM signed 16-bit little-endian planar : X @tab X
35902 PCM signed 24-bit little-endian planar : X @tab X
35903 PCM signed 32-bit little-endian planar : X @tab X
35904 PCM 32-bit floating point big-endian : X @tab X
35905 PCM 32-bit floating point little-endian : X @tab X
35906 PCM 64-bit floating point big-endian : X @tab X
35907 PCM 64-bit floating point little-endian : X @tab X
35908 PCM D-Cinema audio signed 24-bit : X @tab X
35909 PCM signed 8-bit : X @tab X
35910 PCM signed 16-bit big-endian : X @tab X
35911 PCM signed 16-bit little-endian : X @tab X
35912 PCM signed 24-bit big-endian : X @tab X
35913 PCM signed 24-bit little-endian : X @tab X
35914 PCM signed 32-bit big-endian : X @tab X
35915 PCM signed 32-bit little-endian : X @tab X
35916 PCM signed 16/20/24-bit big-endian in MPEG-TS : @tab X
35917 PCM unsigned 8-bit : X @tab X
35918 PCM unsigned 16-bit big-endian : X @tab X
35919 PCM unsigned 16-bit little-endian : X @tab X
35920 PCM unsigned 24-bit big-endian : X @tab X
35921 PCM unsigned 24-bit little-endian : X @tab X
35922 PCM unsigned 32-bit big-endian : X @tab X
35923 PCM unsigned 32-bit little-endian : X @tab X
35924 QCELP / PureVoice : @tab X
35925 QDesign Music Codec 1 : @tab X
35926 QDesign Music Codec 2 : @tab X
35927 @tab There are still some distortions.
35928
35929 RealAudio 1.0 (14.4K) : X @tab X
35930 @tab Real 14400 bit/s codec
35931
35932 RealAudio 2.0 (28.8K) : @tab X
35933 @tab Real 28800 bit/s codec
35934
35935 RealAudio 3.0 (dnet) : IX @tab X
35936 @tab Real low bitrate AC-3 codec
35937
35938 RealAudio Lossless : @tab X
35939 RealAudio SIPR / ACELP.NET : @tab X
35940 SBC (low-complexity subband codec) : X @tab X
35941 @tab Used in Bluetooth A2DP
35942
35943 Shorten : @tab X
35944 Sierra VMD audio : @tab X
35945 @tab Used in Sierra VMD files.
35946
35947 Smacker audio : @tab X
35948 SMPTE 302M AES3 audio : X @tab X
35949 Sonic : X @tab X
35950 @tab experimental codec
35951
35952 Sonic lossless : X @tab X
35953 @tab experimental codec
35954
35955 Speex : E @tab EX
35956 @tab supported through external library libspeex
35957
35958 TAK (Tom's lossless Audio Kompressor) : @tab X
35959 True Audio (TTA) : X @tab X
35960 TrueHD : X @tab X
35961 @tab Used in HD-DVD and Blu-Ray discs.
35962
35963 TwinVQ (VQF flavor) : @tab X
35964 VIMA : @tab X
35965 @tab Used in LucasArts SMUSH animations.
35966
35967 Vorbis : E @tab X
35968 @tab A native but very primitive encoder exists.
35969
35970 Voxware MetaSound : @tab X
35971 WavPack : X @tab X
35972 Westwood Audio (SND1) : @tab X
35973 Windows Media Audio 1 : X @tab X
35974 Windows Media Audio 2 : X @tab X
35975 Windows Media Audio Lossless : @tab X
35976 Windows Media Audio Pro : @tab X
35977 Windows Media Audio Voice : @tab X
35978 Xbox Media Audio 1 : @tab X
35979 Xbox Media Audio 2 : @tab X
35980
35981 "X" means that the feature in that column (encoding / decoding) is
35982 supported.
35983
35984 "E" means that support is provided through an external library.
35985
35986 "I" means that an integer-only version is available, too (ensures high
35987 performance on systems without hardware floating point support).
35988
35989 Subtitle Formats
35990 Name : Muxing @tab Demuxing @tab Encoding @tab Decoding
35991 3GPP Timed Text : @tab @tab X @tab X
35992 AQTitle : @tab X @tab @tab X
35993 DVB : X @tab X @tab X @tab X
35994 DVB teletext : @tab X @tab @tab E
35995 DVD : X @tab X @tab X @tab X
35996 JACOsub : X @tab X @tab @tab X
35997 MicroDVD : X @tab X @tab @tab X
35998 MPL2 : @tab X @tab @tab X
35999 MPsub (MPlayer) : @tab X @tab @tab X
36000 PGS : @tab @tab @tab X
36001 PJS (Phoenix) : @tab X @tab @tab X
36002 RealText : @tab X @tab @tab X
36003 SAMI : @tab X @tab @tab X
36004 Spruce format (STL) : @tab X @tab @tab X
36005 SSA/ASS : X @tab X @tab X @tab X
36006 SubRip (SRT) : X @tab X @tab X @tab X
36007 SubViewer v1 : @tab X @tab @tab X
36008 SubViewer : @tab X @tab @tab X
36009 TED Talks captions : @tab X @tab @tab X
36010 TTML : X @tab @tab X @tab
36011 VobSub (IDX+SUB) : @tab X @tab @tab X
36012 VPlayer : @tab X @tab @tab X
36013 WebVTT : X @tab X @tab X @tab X
36014 XSUB : @tab @tab X @tab X
36015
36016 "X" means that the feature is supported.
36017
36018 "E" means that support is provided through an external library.
36019
36020 Network Protocols
36021 Name : Support
36022 AMQP : E
36023 file : X
36024 FTP : X
36025 Gopher : X
36026 Gophers : X
36027 HLS : X
36028 HTTP : X
36029 HTTPS : X
36030 Icecast : X
36031 MMSH : X
36032 MMST : X
36033 pipe : X
36034 Pro-MPEG FEC : X
36035 RTMP : X
36036 RTMPE : X
36037 RTMPS : X
36038 RTMPT : X
36039 RTMPTE : X
36040 RTMPTS : X
36041 RTP : X
36042 SAMBA : E
36043 SCTP : X
36044 SFTP : E
36045 TCP : X
36046 TLS : X
36047 UDP : X
36048 ZMQ : E
36049
36050 "X" means that the protocol is supported.
36051
36052 "E" means that support is provided through an external library.
36053
36054 Input/Output Devices
36055 Name : Input @tab Output
36056 ALSA : X @tab X
36057 BKTR : X @tab
36058 caca : @tab X
36059 DV1394 : X @tab
36060 Lavfi virtual device : X @tab
36061 Linux framebuffer : X @tab X
36062 JACK : X @tab
36063 LIBCDIO : X
36064 LIBDC1394 : X @tab
36065 OpenAL : X
36066 OpenGL : @tab X
36067 OSS : X @tab X
36068 PulseAudio : X @tab X
36069 SDL : @tab X
36070 Video4Linux2 : X @tab X
36071 VfW capture : X @tab
36072 X11 grabbing : X @tab
36073 Win32 grabbing : X @tab
36074
36075 "X" means that input/output is supported.
36076
36077 Timecode
36078 Codec/format : Read @tab Write
36079 AVI : X @tab X
36080 DV : X @tab X
36081 GXF : X @tab X
36082 MOV : X @tab X
36083 MPEG1/2 : X @tab X
36084 MXF : X @tab X
36085
36087 ffprobe(1), ffmpeg(1), ffplay(1), ffmpeg-utils(1), ffmpeg-scaler(1),
36088 ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
36089 ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
36090 ffmpeg-filters(1)
36091
36093 The FFmpeg developers.
36094
36095 For details about the authorship, see the Git history of the project
36096 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
36097 the FFmpeg source directory, or browsing the online repository at
36098 <http://source.ffmpeg.org>.
36099
36100 Maintainers for the specific components are listed in the file
36101 MAINTAINERS in the source code tree.
36102
36103
36104
36105 FFPROBE-ALL(1)