1FFPLAY-ALL(1) FFPLAY-ALL(1)
2
3
4
6 ffplay - FFplay media player
7
9 ffplay [options] [input_url]
10
12 FFplay is a very simple and portable media player using the FFmpeg
13 libraries and the SDL library. It is mostly used as a testbed for the
14 various FFmpeg APIs.
15
17 All the numerical options, if not specified otherwise, accept a string
18 representing a number as input, which may be followed by one of the SI
19 unit prefixes, for example: 'K', 'M', or 'G'.
20
21 If 'i' is appended to the SI unit prefix, the complete prefix will be
22 interpreted as a unit prefix for binary multiples, which are based on
23 powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
24 prefix multiplies the value by 8. This allows using, for example: 'KB',
25 'MiB', 'G' and 'B' as number suffixes.
26
27 Options which do not take arguments are boolean options, and set the
28 corresponding value to true. They can be set to false by prefixing the
29 option name with "no". For example using "-nofoo" will set the boolean
30 option with name "foo" to false.
31
32 Stream specifiers
33 Some options are applied per-stream, e.g. bitrate or codec. Stream
34 specifiers are used to precisely specify which stream(s) a given option
35 belongs to.
36
37 A stream specifier is a string generally appended to the option name
38 and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the
39 "a:1" stream specifier, which matches the second audio stream.
40 Therefore, it would select the ac3 codec for the second audio stream.
41
42 A stream specifier can match several streams, so that the option is
43 applied to all of them. E.g. the stream specifier in "-b:a 128k"
44 matches all audio streams.
45
46 An empty stream specifier matches all streams. For example, "-codec
47 copy" or "-codec: copy" would copy all the streams without reencoding.
48
49 Possible forms of stream specifiers are:
50
51 stream_index
52 Matches the stream with this index. E.g. "-threads:1 4" would set
53 the thread count for the second stream to 4. If stream_index is
54 used as an additional stream specifier (see below), then it selects
55 stream number stream_index from the matching streams. Stream
56 numbering is based on the order of the streams as detected by
57 libavformat except when a program ID is also specified. In this
58 case it is based on the ordering of the streams in the program.
59
60 stream_type[:additional_stream_specifier]
61 stream_type is one of following: 'v' or 'V' for video, 'a' for
62 audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v'
63 matches all video streams, 'V' only matches video streams which are
64 not attached pictures, video thumbnails or cover arts. If
65 additional_stream_specifier is used, then it matches streams which
66 both have this type and match the additional_stream_specifier.
67 Otherwise, it matches all streams of the specified type.
68
69 p:program_id[:additional_stream_specifier]
70 Matches streams which are in the program with the id program_id. If
71 additional_stream_specifier is used, then it matches streams which
72 both are part of the program and match the
73 additional_stream_specifier.
74
75 #stream_id or i:stream_id
76 Match the stream by stream id (e.g. PID in MPEG-TS container).
77
78 m:key[:value]
79 Matches streams with the metadata tag key having the specified
80 value. If value is not given, matches streams that contain the
81 given tag with any value.
82
83 u Matches streams with usable configuration, the codec must be
84 defined and the essential information such as video dimension or
85 audio sample rate must be present.
86
87 Note that in ffmpeg, matching by metadata will only work properly
88 for input files.
89
90 Generic options
91 These options are shared amongst the ff* tools.
92
93 -L Show license.
94
95 -h, -?, -help, --help [arg]
96 Show help. An optional parameter may be specified to print help
97 about a specific item. If no argument is specified, only basic (non
98 advanced) tool options are shown.
99
100 Possible values of arg are:
101
102 long
103 Print advanced tool options in addition to the basic tool
104 options.
105
106 full
107 Print complete list of options, including shared and private
108 options for encoders, decoders, demuxers, muxers, filters, etc.
109
110 decoder=decoder_name
111 Print detailed information about the decoder named
112 decoder_name. Use the -decoders option to get a list of all
113 decoders.
114
115 encoder=encoder_name
116 Print detailed information about the encoder named
117 encoder_name. Use the -encoders option to get a list of all
118 encoders.
119
120 demuxer=demuxer_name
121 Print detailed information about the demuxer named
122 demuxer_name. Use the -formats option to get a list of all
123 demuxers and muxers.
124
125 muxer=muxer_name
126 Print detailed information about the muxer named muxer_name.
127 Use the -formats option to get a list of all muxers and
128 demuxers.
129
130 filter=filter_name
131 Print detailed information about the filter named filter_name.
132 Use the -filters option to get a list of all filters.
133
134 bsf=bitstream_filter_name
135 Print detailed information about the bitstream filter named
136 bitstream_filter_name. Use the -bsfs option to get a list of
137 all bitstream filters.
138
139 protocol=protocol_name
140 Print detailed information about the protocol named
141 protocol_name. Use the -protocols option to get a list of all
142 protocols.
143
144 -version
145 Show version.
146
147 -buildconf
148 Show the build configuration, one option per line.
149
150 -formats
151 Show available formats (including devices).
152
153 -demuxers
154 Show available demuxers.
155
156 -muxers
157 Show available muxers.
158
159 -devices
160 Show available devices.
161
162 -codecs
163 Show all codecs known to libavcodec.
164
165 Note that the term 'codec' is used throughout this documentation as
166 a shortcut for what is more correctly called a media bitstream
167 format.
168
169 -decoders
170 Show available decoders.
171
172 -encoders
173 Show all available encoders.
174
175 -bsfs
176 Show available bitstream filters.
177
178 -protocols
179 Show available protocols.
180
181 -filters
182 Show available libavfilter filters.
183
184 -pix_fmts
185 Show available pixel formats.
186
187 -sample_fmts
188 Show available sample formats.
189
190 -layouts
191 Show channel names and standard channel layouts.
192
193 -dispositions
194 Show stream dispositions.
195
196 -colors
197 Show recognized color names.
198
199 -sources device[,opt1=val1[,opt2=val2]...]
200 Show autodetected sources of the input device. Some devices may
201 provide system-dependent source names that cannot be autodetected.
202 The returned list cannot be assumed to be always complete.
203
204 ffmpeg -sources pulse,server=192.168.0.4
205
206 -sinks device[,opt1=val1[,opt2=val2]...]
207 Show autodetected sinks of the output device. Some devices may
208 provide system-dependent sink names that cannot be autodetected.
209 The returned list cannot be assumed to be always complete.
210
211 ffmpeg -sinks pulse,server=192.168.0.4
212
213 -loglevel [flags+]loglevel | -v [flags+]loglevel
214 Set logging level and flags used by the library.
215
216 The optional flags prefix can consist of the following values:
217
218 repeat
219 Indicates that repeated log output should not be compressed to
220 the first line and the "Last message repeated n times" line
221 will be omitted.
222
223 level
224 Indicates that log output should add a "[level]" prefix to each
225 message line. This can be used as an alternative to log
226 coloring, e.g. when dumping the log to file.
227
228 Flags can also be used alone by adding a '+'/'-' prefix to
229 set/reset a single flag without affecting other flags or changing
230 loglevel. When setting both flags and loglevel, a '+' separator is
231 expected between the last flags value and before loglevel.
232
233 loglevel is a string or a number containing one of the following
234 values:
235
236 quiet, -8
237 Show nothing at all; be silent.
238
239 panic, 0
240 Only show fatal errors which could lead the process to crash,
241 such as an assertion failure. This is not currently used for
242 anything.
243
244 fatal, 8
245 Only show fatal errors. These are errors after which the
246 process absolutely cannot continue.
247
248 error, 16
249 Show all errors, including ones which can be recovered from.
250
251 warning, 24
252 Show all warnings and errors. Any message related to possibly
253 incorrect or unexpected events will be shown.
254
255 info, 32
256 Show informative messages during processing. This is in
257 addition to warnings and errors. This is the default value.
258
259 verbose, 40
260 Same as "info", except more verbose.
261
262 debug, 48
263 Show everything, including debugging information.
264
265 trace, 56
266
267 For example to enable repeated log output, add the "level" prefix,
268 and set loglevel to "verbose":
269
270 ffmpeg -loglevel repeat+level+verbose -i input output
271
272 Another example that enables repeated log output without affecting
273 current state of "level" prefix flag or loglevel:
274
275 ffmpeg [...] -loglevel +repeat
276
277 By default the program logs to stderr. If coloring is supported by
278 the terminal, colors are used to mark errors and warnings. Log
279 coloring can be disabled setting the environment variable
280 AV_LOG_FORCE_NOCOLOR, or can be forced setting the environment
281 variable AV_LOG_FORCE_COLOR.
282
283 -report
284 Dump full command line and log output to a file named
285 "program-YYYYMMDD-HHMMSS.log" in the current directory. This file
286 can be useful for bug reports. It also implies "-loglevel debug".
287
288 Setting the environment variable FFREPORT to any value has the same
289 effect. If the value is a ':'-separated key=value sequence, these
290 options will affect the report; option values must be escaped if
291 they contain special characters or the options delimiter ':' (see
292 the ``Quoting and escaping'' section in the ffmpeg-utils manual).
293
294 The following options are recognized:
295
296 file
297 set the file name to use for the report; %p is expanded to the
298 name of the program, %t is expanded to a timestamp, "%%" is
299 expanded to a plain "%"
300
301 level
302 set the log verbosity level using a numerical value (see
303 "-loglevel").
304
305 For example, to output a report to a file named ffreport.log using
306 a log level of 32 (alias for log level "info"):
307
308 FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
309
310 Errors in parsing the environment variable are not fatal, and will
311 not appear in the report.
312
313 -hide_banner
314 Suppress printing banner.
315
316 All FFmpeg tools will normally show a copyright notice, build
317 options and library versions. This option can be used to suppress
318 printing this information.
319
320 -cpuflags flags (global)
321 Allows setting and clearing cpu flags. This option is intended for
322 testing. Do not use it unless you know what you're doing.
323
324 ffmpeg -cpuflags -sse+mmx ...
325 ffmpeg -cpuflags mmx ...
326 ffmpeg -cpuflags 0 ...
327
328 Possible flags for this option are:
329
330 x86
331 mmx
332 mmxext
333 sse
334 sse2
335 sse2slow
336 sse3
337 sse3slow
338 ssse3
339 atom
340 sse4.1
341 sse4.2
342 avx
343 avx2
344 xop
345 fma3
346 fma4
347 3dnow
348 3dnowext
349 bmi1
350 bmi2
351 cmov
352 ARM
353 armv5te
354 armv6
355 armv6t2
356 vfp
357 vfpv3
358 neon
359 setend
360 AArch64
361 armv8
362 vfp
363 neon
364 PowerPC
365 altivec
366 Specific Processors
367 pentium2
368 pentium3
369 pentium4
370 k6
371 k62
372 athlon
373 athlonxp
374 k8
375 -cpucount count (global)
376 Override detection of CPU count. This option is intended for
377 testing. Do not use it unless you know what you're doing.
378
379 ffmpeg -cpucount 2
380
381 -max_alloc bytes
382 Set the maximum size limit for allocating a block on the heap by
383 ffmpeg's family of malloc functions. Exercise extreme caution when
384 using this option. Don't use if you do not understand the full
385 consequence of doing so. Default is INT_MAX.
386
387 AVOptions
388 These options are provided directly by the libavformat, libavdevice and
389 libavcodec libraries. To see the list of available AVOptions, use the
390 -help option. They are separated into two categories:
391
392 generic
393 These options can be set for any container, codec or device.
394 Generic options are listed under AVFormatContext options for
395 containers/devices and under AVCodecContext options for codecs.
396
397 private
398 These options are specific to the given container, device or codec.
399 Private options are listed under their corresponding
400 containers/devices/codecs.
401
402 For example to write an ID3v2.3 header instead of a default ID3v2.4 to
403 an MP3 file, use the id3v2_version private option of the MP3 muxer:
404
405 ffmpeg -i input.flac -id3v2_version 3 out.mp3
406
407 All codec AVOptions are per-stream, and thus a stream specifier should
408 be attached to them:
409
410 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
411
412 In the above example, a multichannel audio stream is mapped twice for
413 output. The first instance is encoded with codec ac3 and bitrate 640k.
414 The second instance is downmixed to 2 channels and encoded with codec
415 aac. A bitrate of 128k is specified for it using absolute index of the
416 output stream.
417
418 Note: the -nooption syntax cannot be used for boolean AVOptions, use
419 -option 0/-option 1.
420
421 Note: the old undocumented way of specifying per-stream AVOptions by
422 prepending v/a/s to the options name is now obsolete and will be
423 removed soon.
424
425 Main options
426 -x width
427 Force displayed width.
428
429 -y height
430 Force displayed height.
431
432 -fs Start in fullscreen mode.
433
434 -an Disable audio.
435
436 -vn Disable video.
437
438 -sn Disable subtitles.
439
440 -ss pos
441 Seek to pos. Note that in most formats it is not possible to seek
442 exactly, so ffplay will seek to the nearest seek point to pos.
443
444 pos must be a time duration specification, see the Time duration
445 section in the ffmpeg-utils(1) manual.
446
447 -t duration
448 Play duration seconds of audio/video.
449
450 duration must be a time duration specification, see the Time
451 duration section in the ffmpeg-utils(1) manual.
452
453 -bytes
454 Seek by bytes.
455
456 -seek_interval
457 Set custom interval, in seconds, for seeking using left/right keys.
458 Default is 10 seconds.
459
460 -nodisp
461 Disable graphical display.
462
463 -noborder
464 Borderless window.
465
466 -alwaysontop
467 Window always on top. Available on: X11 with SDL >= 2.0.5, Windows
468 SDL >= 2.0.6.
469
470 -volume
471 Set the startup volume. 0 means silence, 100 means no volume
472 reduction or amplification. Negative values are treated as 0,
473 values above 100 are treated as 100.
474
475 -f fmt
476 Force format.
477
478 -window_title title
479 Set window title (default is the input filename).
480
481 -left title
482 Set the x position for the left of the window (default is a
483 centered window).
484
485 -top title
486 Set the y position for the top of the window (default is a centered
487 window).
488
489 -loop number
490 Loops movie playback <number> times. 0 means forever.
491
492 -showmode mode
493 Set the show mode to use. Available values for mode are:
494
495 0, video
496 show video
497
498 1, waves
499 show audio waves
500
501 2, rdft
502 show audio frequency band using RDFT ((Inverse) Real Discrete
503 Fourier Transform)
504
505 Default value is "video", if video is not present or cannot be
506 played "rdft" is automatically selected.
507
508 You can interactively cycle through the available show modes by
509 pressing the key w.
510
511 -vf filtergraph
512 Create the filtergraph specified by filtergraph and use it to
513 filter the video stream.
514
515 filtergraph is a description of the filtergraph to apply to the
516 stream, and must have a single video input and a single video
517 output. In the filtergraph, the input is associated to the label
518 "in", and the output to the label "out". See the ffmpeg-filters
519 manual for more information about the filtergraph syntax.
520
521 You can specify this parameter multiple times and cycle through the
522 specified filtergraphs along with the show modes by pressing the
523 key w.
524
525 -af filtergraph
526 filtergraph is a description of the filtergraph to apply to the
527 input audio. Use the option "-filters" to show all the available
528 filters (including sources and sinks).
529
530 -i input_url
531 Read input_url.
532
533 Advanced options
534 -stats
535 Print several playback statistics, in particular show the stream
536 duration, the codec parameters, the current position in the stream
537 and the audio/video synchronisation drift. It is shown by default,
538 unless the log level is lower than "info". Its display can be
539 forced by manually specifying this option. To disable it, you need
540 to specify "-nostats".
541
542 -fast
543 Non-spec-compliant optimizations.
544
545 -genpts
546 Generate pts.
547
548 -sync type
549 Set the master clock to audio ("type=audio"), video ("type=video")
550 or external ("type=ext"). Default is audio. The master clock is
551 used to control audio-video synchronization. Most media players use
552 audio as master clock, but in some cases (streaming or high quality
553 broadcast) it is necessary to change that. This option is mainly
554 used for debugging purposes.
555
556 -ast audio_stream_specifier
557 Select the desired audio stream using the given stream specifier.
558 The stream specifiers are described in the Stream specifiers
559 chapter. If this option is not specified, the "best" audio stream
560 is selected in the program of the already selected video stream.
561
562 -vst video_stream_specifier
563 Select the desired video stream using the given stream specifier.
564 The stream specifiers are described in the Stream specifiers
565 chapter. If this option is not specified, the "best" video stream
566 is selected.
567
568 -sst subtitle_stream_specifier
569 Select the desired subtitle stream using the given stream
570 specifier. The stream specifiers are described in the Stream
571 specifiers chapter. If this option is not specified, the "best"
572 subtitle stream is selected in the program of the already selected
573 video or audio stream.
574
575 -autoexit
576 Exit when video is done playing.
577
578 -exitonkeydown
579 Exit if any key is pressed.
580
581 -exitonmousedown
582 Exit if any mouse button is pressed.
583
584 -codec:media_specifier codec_name
585 Force a specific decoder implementation for the stream identified
586 by media_specifier, which can assume the values "a" (audio), "v"
587 (video), and "s" subtitle.
588
589 -acodec codec_name
590 Force a specific audio decoder.
591
592 -vcodec codec_name
593 Force a specific video decoder.
594
595 -scodec codec_name
596 Force a specific subtitle decoder.
597
598 -autorotate
599 Automatically rotate the video according to file metadata. Enabled
600 by default, use -noautorotate to disable it.
601
602 -framedrop
603 Drop video frames if video is out of sync. Enabled by default if
604 the master clock is not set to video. Use this option to enable
605 frame dropping for all master clock sources, use -noframedrop to
606 disable it.
607
608 -infbuf
609 Do not limit the input buffer size, read as much data as possible
610 from the input as soon as possible. Enabled by default for realtime
611 streams, where data may be dropped if not read in time. Use this
612 option to enable infinite buffers for all inputs, use -noinfbuf to
613 disable it.
614
615 -filter_threads nb_threads
616 Defines how many threads are used to process a filter pipeline.
617 Each pipeline will produce a thread pool with this many threads
618 available for parallel processing. The default is 0 which means
619 that the thread count will be determined by the number of available
620 CPUs.
621
622 While playing
623 q, ESC
624 Quit.
625
626 f Toggle full screen.
627
628 p, SPC
629 Pause.
630
631 m Toggle mute.
632
633 9, 0
634 /, *
635 Decrease and increase volume respectively.
636
637 a Cycle audio channel in the current program.
638
639 v Cycle video channel.
640
641 t Cycle subtitle channel in the current program.
642
643 c Cycle program.
644
645 w Cycle video filters or show modes.
646
647 s Step to the next frame.
648
649 Pause if the stream is not already paused, step to the next video
650 frame, and pause.
651
652 left/right
653 Seek backward/forward 10 seconds.
654
655 down/up
656 Seek backward/forward 1 minute.
657
658 page down/page up
659 Seek to the previous/next chapter. or if there are no chapters
660 Seek backward/forward 10 minutes.
661
662 right mouse click
663 Seek to percentage in file corresponding to fraction of width.
664
665 left mouse double-click
666 Toggle full screen.
667
669 This section documents the syntax and formats employed by the FFmpeg
670 libraries and tools.
671
672 Quoting and escaping
673 FFmpeg adopts the following quoting and escaping mechanism, unless
674 explicitly specified. The following rules are applied:
675
676 • ' and \ are special characters (respectively used for quoting and
677 escaping). In addition to them, there might be other special
678 characters depending on the specific syntax where the escaping and
679 quoting are employed.
680
681 • A special character is escaped by prefixing it with a \.
682
683 • All characters enclosed between '' are included literally in the
684 parsed string. The quote character ' itself cannot be quoted, so
685 you may need to close the quote and escape it.
686
687 • Leading and trailing whitespaces, unless escaped or quoted, are
688 removed from the parsed string.
689
690 Note that you may need to add a second level of escaping when using the
691 command line or a script, which depends on the syntax of the adopted
692 shell language.
693
694 The function "av_get_token" defined in libavutil/avstring.h can be used
695 to parse a token quoted or escaped according to the rules defined
696 above.
697
698 The tool tools/ffescape in the FFmpeg source tree can be used to
699 automatically quote or escape a string in a script.
700
701 Examples
702
703 • Escape the string "Crime d'Amour" containing the "'" special
704 character:
705
706 Crime d\'Amour
707
708 • The string above contains a quote, so the "'" needs to be escaped
709 when quoting it:
710
711 'Crime d'\''Amour'
712
713 • Include leading or trailing whitespaces using quoting:
714
715 ' this string starts and ends with whitespaces '
716
717 • Escaping and quoting can be mixed together:
718
719 ' The string '\'string\'' is a string '
720
721 • To include a literal \ you can use either escaping or quoting:
722
723 'c:\foo' can be written as c:\\foo
724
725 Date
726 The accepted syntax is:
727
728 [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
729 now
730
731 If the value is "now" it takes the current time.
732
733 Time is local time unless Z is appended, in which case it is
734 interpreted as UTC. If the year-month-day part is not specified it
735 takes the current year-month-day.
736
737 Time duration
738 There are two accepted syntaxes for expressing time duration.
739
740 [-][<HH>:]<MM>:<SS>[.<m>...]
741
742 HH expresses the number of hours, MM the number of minutes for a
743 maximum of 2 digits, and SS the number of seconds for a maximum of 2
744 digits. The m at the end expresses decimal value for SS.
745
746 or
747
748 [-]<S>+[.<m>...][s|ms|us]
749
750 S expresses the number of seconds, with the optional decimal part m.
751 The optional literal suffixes s, ms or us indicate to interpret the
752 value as seconds, milliseconds or microseconds, respectively.
753
754 In both expressions, the optional - indicates negative duration.
755
756 Examples
757
758 The following examples are all valid time duration:
759
760 55 55 seconds
761
762 0.2 0.2 seconds
763
764 200ms
765 200 milliseconds, that's 0.2s
766
767 200000us
768 200000 microseconds, that's 0.2s
769
770 12:03:45
771 12 hours, 03 minutes and 45 seconds
772
773 23.189
774 23.189 seconds
775
776 Video size
777 Specify the size of the sourced video, it may be a string of the form
778 widthxheight, or the name of a size abbreviation.
779
780 The following abbreviations are recognized:
781
782 ntsc
783 720x480
784
785 pal 720x576
786
787 qntsc
788 352x240
789
790 qpal
791 352x288
792
793 sntsc
794 640x480
795
796 spal
797 768x576
798
799 film
800 352x240
801
802 ntsc-film
803 352x240
804
805 sqcif
806 128x96
807
808 qcif
809 176x144
810
811 cif 352x288
812
813 4cif
814 704x576
815
816 16cif
817 1408x1152
818
819 qqvga
820 160x120
821
822 qvga
823 320x240
824
825 vga 640x480
826
827 svga
828 800x600
829
830 xga 1024x768
831
832 uxga
833 1600x1200
834
835 qxga
836 2048x1536
837
838 sxga
839 1280x1024
840
841 qsxga
842 2560x2048
843
844 hsxga
845 5120x4096
846
847 wvga
848 852x480
849
850 wxga
851 1366x768
852
853 wsxga
854 1600x1024
855
856 wuxga
857 1920x1200
858
859 woxga
860 2560x1600
861
862 wqsxga
863 3200x2048
864
865 wquxga
866 3840x2400
867
868 whsxga
869 6400x4096
870
871 whuxga
872 7680x4800
873
874 cga 320x200
875
876 ega 640x350
877
878 hd480
879 852x480
880
881 hd720
882 1280x720
883
884 hd1080
885 1920x1080
886
887 2k 2048x1080
888
889 2kflat
890 1998x1080
891
892 2kscope
893 2048x858
894
895 4k 4096x2160
896
897 4kflat
898 3996x2160
899
900 4kscope
901 4096x1716
902
903 nhd 640x360
904
905 hqvga
906 240x160
907
908 wqvga
909 400x240
910
911 fwqvga
912 432x240
913
914 hvga
915 480x320
916
917 qhd 960x540
918
919 2kdci
920 2048x1080
921
922 4kdci
923 4096x2160
924
925 uhd2160
926 3840x2160
927
928 uhd4320
929 7680x4320
930
931 Video rate
932 Specify the frame rate of a video, expressed as the number of frames
933 generated per second. It has to be a string in the format
934 frame_rate_num/frame_rate_den, an integer number, a float number or a
935 valid video frame rate abbreviation.
936
937 The following abbreviations are recognized:
938
939 ntsc
940 30000/1001
941
942 pal 25/1
943
944 qntsc
945 30000/1001
946
947 qpal
948 25/1
949
950 sntsc
951 30000/1001
952
953 spal
954 25/1
955
956 film
957 24/1
958
959 ntsc-film
960 24000/1001
961
962 Ratio
963 A ratio can be expressed as an expression, or in the form
964 numerator:denominator.
965
966 Note that a ratio with infinite (1/0) or negative value is considered
967 valid, so you should check on the returned value if you want to exclude
968 those values.
969
970 The undefined value can be expressed using the "0:0" string.
971
972 Color
973 It can be the name of a color as defined below (case insensitive match)
974 or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
975 representing the alpha component.
976
977 The alpha component may be a string composed by "0x" followed by an
978 hexadecimal number or a decimal number between 0.0 and 1.0, which
979 represents the opacity value (0x00 or 0.0 means completely transparent,
980 0xff or 1.0 completely opaque). If the alpha component is not specified
981 then 0xff is assumed.
982
983 The string random will result in a random color.
984
985 The following names of colors are recognized:
986
987 AliceBlue
988 0xF0F8FF
989
990 AntiqueWhite
991 0xFAEBD7
992
993 Aqua
994 0x00FFFF
995
996 Aquamarine
997 0x7FFFD4
998
999 Azure
1000 0xF0FFFF
1001
1002 Beige
1003 0xF5F5DC
1004
1005 Bisque
1006 0xFFE4C4
1007
1008 Black
1009 0x000000
1010
1011 BlanchedAlmond
1012 0xFFEBCD
1013
1014 Blue
1015 0x0000FF
1016
1017 BlueViolet
1018 0x8A2BE2
1019
1020 Brown
1021 0xA52A2A
1022
1023 BurlyWood
1024 0xDEB887
1025
1026 CadetBlue
1027 0x5F9EA0
1028
1029 Chartreuse
1030 0x7FFF00
1031
1032 Chocolate
1033 0xD2691E
1034
1035 Coral
1036 0xFF7F50
1037
1038 CornflowerBlue
1039 0x6495ED
1040
1041 Cornsilk
1042 0xFFF8DC
1043
1044 Crimson
1045 0xDC143C
1046
1047 Cyan
1048 0x00FFFF
1049
1050 DarkBlue
1051 0x00008B
1052
1053 DarkCyan
1054 0x008B8B
1055
1056 DarkGoldenRod
1057 0xB8860B
1058
1059 DarkGray
1060 0xA9A9A9
1061
1062 DarkGreen
1063 0x006400
1064
1065 DarkKhaki
1066 0xBDB76B
1067
1068 DarkMagenta
1069 0x8B008B
1070
1071 DarkOliveGreen
1072 0x556B2F
1073
1074 Darkorange
1075 0xFF8C00
1076
1077 DarkOrchid
1078 0x9932CC
1079
1080 DarkRed
1081 0x8B0000
1082
1083 DarkSalmon
1084 0xE9967A
1085
1086 DarkSeaGreen
1087 0x8FBC8F
1088
1089 DarkSlateBlue
1090 0x483D8B
1091
1092 DarkSlateGray
1093 0x2F4F4F
1094
1095 DarkTurquoise
1096 0x00CED1
1097
1098 DarkViolet
1099 0x9400D3
1100
1101 DeepPink
1102 0xFF1493
1103
1104 DeepSkyBlue
1105 0x00BFFF
1106
1107 DimGray
1108 0x696969
1109
1110 DodgerBlue
1111 0x1E90FF
1112
1113 FireBrick
1114 0xB22222
1115
1116 FloralWhite
1117 0xFFFAF0
1118
1119 ForestGreen
1120 0x228B22
1121
1122 Fuchsia
1123 0xFF00FF
1124
1125 Gainsboro
1126 0xDCDCDC
1127
1128 GhostWhite
1129 0xF8F8FF
1130
1131 Gold
1132 0xFFD700
1133
1134 GoldenRod
1135 0xDAA520
1136
1137 Gray
1138 0x808080
1139
1140 Green
1141 0x008000
1142
1143 GreenYellow
1144 0xADFF2F
1145
1146 HoneyDew
1147 0xF0FFF0
1148
1149 HotPink
1150 0xFF69B4
1151
1152 IndianRed
1153 0xCD5C5C
1154
1155 Indigo
1156 0x4B0082
1157
1158 Ivory
1159 0xFFFFF0
1160
1161 Khaki
1162 0xF0E68C
1163
1164 Lavender
1165 0xE6E6FA
1166
1167 LavenderBlush
1168 0xFFF0F5
1169
1170 LawnGreen
1171 0x7CFC00
1172
1173 LemonChiffon
1174 0xFFFACD
1175
1176 LightBlue
1177 0xADD8E6
1178
1179 LightCoral
1180 0xF08080
1181
1182 LightCyan
1183 0xE0FFFF
1184
1185 LightGoldenRodYellow
1186 0xFAFAD2
1187
1188 LightGreen
1189 0x90EE90
1190
1191 LightGrey
1192 0xD3D3D3
1193
1194 LightPink
1195 0xFFB6C1
1196
1197 LightSalmon
1198 0xFFA07A
1199
1200 LightSeaGreen
1201 0x20B2AA
1202
1203 LightSkyBlue
1204 0x87CEFA
1205
1206 LightSlateGray
1207 0x778899
1208
1209 LightSteelBlue
1210 0xB0C4DE
1211
1212 LightYellow
1213 0xFFFFE0
1214
1215 Lime
1216 0x00FF00
1217
1218 LimeGreen
1219 0x32CD32
1220
1221 Linen
1222 0xFAF0E6
1223
1224 Magenta
1225 0xFF00FF
1226
1227 Maroon
1228 0x800000
1229
1230 MediumAquaMarine
1231 0x66CDAA
1232
1233 MediumBlue
1234 0x0000CD
1235
1236 MediumOrchid
1237 0xBA55D3
1238
1239 MediumPurple
1240 0x9370D8
1241
1242 MediumSeaGreen
1243 0x3CB371
1244
1245 MediumSlateBlue
1246 0x7B68EE
1247
1248 MediumSpringGreen
1249 0x00FA9A
1250
1251 MediumTurquoise
1252 0x48D1CC
1253
1254 MediumVioletRed
1255 0xC71585
1256
1257 MidnightBlue
1258 0x191970
1259
1260 MintCream
1261 0xF5FFFA
1262
1263 MistyRose
1264 0xFFE4E1
1265
1266 Moccasin
1267 0xFFE4B5
1268
1269 NavajoWhite
1270 0xFFDEAD
1271
1272 Navy
1273 0x000080
1274
1275 OldLace
1276 0xFDF5E6
1277
1278 Olive
1279 0x808000
1280
1281 OliveDrab
1282 0x6B8E23
1283
1284 Orange
1285 0xFFA500
1286
1287 OrangeRed
1288 0xFF4500
1289
1290 Orchid
1291 0xDA70D6
1292
1293 PaleGoldenRod
1294 0xEEE8AA
1295
1296 PaleGreen
1297 0x98FB98
1298
1299 PaleTurquoise
1300 0xAFEEEE
1301
1302 PaleVioletRed
1303 0xD87093
1304
1305 PapayaWhip
1306 0xFFEFD5
1307
1308 PeachPuff
1309 0xFFDAB9
1310
1311 Peru
1312 0xCD853F
1313
1314 Pink
1315 0xFFC0CB
1316
1317 Plum
1318 0xDDA0DD
1319
1320 PowderBlue
1321 0xB0E0E6
1322
1323 Purple
1324 0x800080
1325
1326 Red 0xFF0000
1327
1328 RosyBrown
1329 0xBC8F8F
1330
1331 RoyalBlue
1332 0x4169E1
1333
1334 SaddleBrown
1335 0x8B4513
1336
1337 Salmon
1338 0xFA8072
1339
1340 SandyBrown
1341 0xF4A460
1342
1343 SeaGreen
1344 0x2E8B57
1345
1346 SeaShell
1347 0xFFF5EE
1348
1349 Sienna
1350 0xA0522D
1351
1352 Silver
1353 0xC0C0C0
1354
1355 SkyBlue
1356 0x87CEEB
1357
1358 SlateBlue
1359 0x6A5ACD
1360
1361 SlateGray
1362 0x708090
1363
1364 Snow
1365 0xFFFAFA
1366
1367 SpringGreen
1368 0x00FF7F
1369
1370 SteelBlue
1371 0x4682B4
1372
1373 Tan 0xD2B48C
1374
1375 Teal
1376 0x008080
1377
1378 Thistle
1379 0xD8BFD8
1380
1381 Tomato
1382 0xFF6347
1383
1384 Turquoise
1385 0x40E0D0
1386
1387 Violet
1388 0xEE82EE
1389
1390 Wheat
1391 0xF5DEB3
1392
1393 White
1394 0xFFFFFF
1395
1396 WhiteSmoke
1397 0xF5F5F5
1398
1399 Yellow
1400 0xFFFF00
1401
1402 YellowGreen
1403 0x9ACD32
1404
1405 Channel Layout
1406 A channel layout specifies the spatial disposition of the channels in a
1407 multi-channel audio stream. To specify a channel layout, FFmpeg makes
1408 use of a special syntax.
1409
1410 Individual channels are identified by an id, as given by the table
1411 below:
1412
1413 FL front left
1414
1415 FR front right
1416
1417 FC front center
1418
1419 LFE low frequency
1420
1421 BL back left
1422
1423 BR back right
1424
1425 FLC front left-of-center
1426
1427 FRC front right-of-center
1428
1429 BC back center
1430
1431 SL side left
1432
1433 SR side right
1434
1435 TC top center
1436
1437 TFL top front left
1438
1439 TFC top front center
1440
1441 TFR top front right
1442
1443 TBL top back left
1444
1445 TBC top back center
1446
1447 TBR top back right
1448
1449 DL downmix left
1450
1451 DR downmix right
1452
1453 WL wide left
1454
1455 WR wide right
1456
1457 SDL surround direct left
1458
1459 SDR surround direct right
1460
1461 LFE2
1462 low frequency 2
1463
1464 Standard channel layout compositions can be specified by using the
1465 following identifiers:
1466
1467 mono
1468 FC
1469
1470 stereo
1471 FL+FR
1472
1473 2.1 FL+FR+LFE
1474
1475 3.0 FL+FR+FC
1476
1477 3.0(back)
1478 FL+FR+BC
1479
1480 4.0 FL+FR+FC+BC
1481
1482 quad
1483 FL+FR+BL+BR
1484
1485 quad(side)
1486 FL+FR+SL+SR
1487
1488 3.1 FL+FR+FC+LFE
1489
1490 5.0 FL+FR+FC+BL+BR
1491
1492 5.0(side)
1493 FL+FR+FC+SL+SR
1494
1495 4.1 FL+FR+FC+LFE+BC
1496
1497 5.1 FL+FR+FC+LFE+BL+BR
1498
1499 5.1(side)
1500 FL+FR+FC+LFE+SL+SR
1501
1502 6.0 FL+FR+FC+BC+SL+SR
1503
1504 6.0(front)
1505 FL+FR+FLC+FRC+SL+SR
1506
1507 hexagonal
1508 FL+FR+FC+BL+BR+BC
1509
1510 6.1 FL+FR+FC+LFE+BC+SL+SR
1511
1512 6.1 FL+FR+FC+LFE+BL+BR+BC
1513
1514 6.1(front)
1515 FL+FR+LFE+FLC+FRC+SL+SR
1516
1517 7.0 FL+FR+FC+BL+BR+SL+SR
1518
1519 7.0(front)
1520 FL+FR+FC+FLC+FRC+SL+SR
1521
1522 7.1 FL+FR+FC+LFE+BL+BR+SL+SR
1523
1524 7.1(wide)
1525 FL+FR+FC+LFE+BL+BR+FLC+FRC
1526
1527 7.1(wide-side)
1528 FL+FR+FC+LFE+FLC+FRC+SL+SR
1529
1530 octagonal
1531 FL+FR+FC+BL+BR+BC+SL+SR
1532
1533 hexadecagonal
1534 FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
1535
1536 downmix
1537 DL+DR
1538
1539 22.2
1540 FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
1541
1542 A custom channel layout can be specified as a sequence of terms,
1543 separated by '+'. Each term can be:
1544
1545 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
1546 optionally containing a custom name after a '@', (e.g. FL@Left,
1547 FR@Right, FC@Center, LFE@Low_Frequency, etc.)
1548
1549 A standard channel layout can be specified by the following:
1550
1551 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
1552
1553 • the name of a standard channel layout (e.g. mono, stereo, 4.0,
1554 quad, 5.0, etc.)
1555
1556 • a number of channels, in decimal, followed by 'c', yielding the
1557 default channel layout for that number of channels (see the
1558 function "av_channel_layout_default"). Note that not all channel
1559 counts have a default layout.
1560
1561 • a number of channels, in decimal, followed by 'C', yielding an
1562 unknown channel layout with the specified number of channels. Note
1563 that not all channel layout specification strings support unknown
1564 channel layouts.
1565
1566 • a channel layout mask, in hexadecimal starting with "0x" (see the
1567 "AV_CH_*" macros in libavutil/channel_layout.h.
1568
1569 Before libavutil version 53 the trailing character "c" to specify a
1570 number of channels was optional, but now it is required, while a
1571 channel layout mask can also be specified as a decimal number (if and
1572 only if not followed by "c" or "C").
1573
1574 See also the function "av_channel_layout_from_string" defined in
1575 libavutil/channel_layout.h.
1576
1578 When evaluating an arithmetic expression, FFmpeg uses an internal
1579 formula evaluator, implemented through the libavutil/eval.h interface.
1580
1581 An expression may contain unary, binary operators, constants, and
1582 functions.
1583
1584 Two expressions expr1 and expr2 can be combined to form another
1585 expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and
1586 the new expression evaluates to the value of expr2.
1587
1588 The following binary operators are available: "+", "-", "*", "/", "^".
1589
1590 The following unary operators are available: "+", "-".
1591
1592 The following functions are available:
1593
1594 abs(x)
1595 Compute absolute value of x.
1596
1597 acos(x)
1598 Compute arccosine of x.
1599
1600 asin(x)
1601 Compute arcsine of x.
1602
1603 atan(x)
1604 Compute arctangent of x.
1605
1606 atan2(x, y)
1607 Compute principal value of the arc tangent of y/x.
1608
1609 between(x, min, max)
1610 Return 1 if x is greater than or equal to min and lesser than or
1611 equal to max, 0 otherwise.
1612
1613 bitand(x, y)
1614 bitor(x, y)
1615 Compute bitwise and/or operation on x and y.
1616
1617 The results of the evaluation of x and y are converted to integers
1618 before executing the bitwise operation.
1619
1620 Note that both the conversion to integer and the conversion back to
1621 floating point can lose precision. Beware of unexpected results for
1622 large numbers (usually 2^53 and larger).
1623
1624 ceil(expr)
1625 Round the value of expression expr upwards to the nearest integer.
1626 For example, "ceil(1.5)" is "2.0".
1627
1628 clip(x, min, max)
1629 Return the value of x clipped between min and max.
1630
1631 cos(x)
1632 Compute cosine of x.
1633
1634 cosh(x)
1635 Compute hyperbolic cosine of x.
1636
1637 eq(x, y)
1638 Return 1 if x and y are equivalent, 0 otherwise.
1639
1640 exp(x)
1641 Compute exponential of x (with base "e", the Euler's number).
1642
1643 floor(expr)
1644 Round the value of expression expr downwards to the nearest
1645 integer. For example, "floor(-1.5)" is "-2.0".
1646
1647 gauss(x)
1648 Compute Gauss function of x, corresponding to "exp(-x*x/2) /
1649 sqrt(2*PI)".
1650
1651 gcd(x, y)
1652 Return the greatest common divisor of x and y. If both x and y are
1653 0 or either or both are less than zero then behavior is undefined.
1654
1655 gt(x, y)
1656 Return 1 if x is greater than y, 0 otherwise.
1657
1658 gte(x, y)
1659 Return 1 if x is greater than or equal to y, 0 otherwise.
1660
1661 hypot(x, y)
1662 This function is similar to the C function with the same name; it
1663 returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
1664 triangle with sides of length x and y, or the distance of the point
1665 (x, y) from the origin.
1666
1667 if(x, y)
1668 Evaluate x, and if the result is non-zero return the result of the
1669 evaluation of y, return 0 otherwise.
1670
1671 if(x, y, z)
1672 Evaluate x, and if the result is non-zero return the evaluation
1673 result of y, otherwise the evaluation result of z.
1674
1675 ifnot(x, y)
1676 Evaluate x, and if the result is zero return the result of the
1677 evaluation of y, return 0 otherwise.
1678
1679 ifnot(x, y, z)
1680 Evaluate x, and if the result is zero return the evaluation result
1681 of y, otherwise the evaluation result of z.
1682
1683 isinf(x)
1684 Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
1685
1686 isnan(x)
1687 Return 1.0 if x is NAN, 0.0 otherwise.
1688
1689 ld(var)
1690 Load the value of the internal variable with number var, which was
1691 previously stored with st(var, expr). The function returns the
1692 loaded value.
1693
1694 lerp(x, y, z)
1695 Return linear interpolation between x and y by amount of z.
1696
1697 log(x)
1698 Compute natural logarithm of x.
1699
1700 lt(x, y)
1701 Return 1 if x is lesser than y, 0 otherwise.
1702
1703 lte(x, y)
1704 Return 1 if x is lesser than or equal to y, 0 otherwise.
1705
1706 max(x, y)
1707 Return the maximum between x and y.
1708
1709 min(x, y)
1710 Return the minimum between x and y.
1711
1712 mod(x, y)
1713 Compute the remainder of division of x by y.
1714
1715 not(expr)
1716 Return 1.0 if expr is zero, 0.0 otherwise.
1717
1718 pow(x, y)
1719 Compute the power of x elevated y, it is equivalent to "(x)^(y)".
1720
1721 print(t)
1722 print(t, l)
1723 Print the value of expression t with loglevel l. If l is not
1724 specified then a default log level is used. Returns the value of
1725 the expression printed.
1726
1727 Prints t with loglevel l
1728
1729 random(x)
1730 Return a pseudo random value between 0.0 and 1.0. x is the index of
1731 the internal variable which will be used to save the seed/state.
1732
1733 root(expr, max)
1734 Find an input value for which the function represented by expr with
1735 argument ld(0) is 0 in the interval 0..max.
1736
1737 The expression in expr must denote a continuous function or the
1738 result is undefined.
1739
1740 ld(0) is used to represent the function input value, which means
1741 that the given expression will be evaluated multiple times with
1742 various input values that the expression can access through ld(0).
1743 When the expression evaluates to 0 then the corresponding input
1744 value will be returned.
1745
1746 round(expr)
1747 Round the value of expression expr to the nearest integer. For
1748 example, "round(1.5)" is "2.0".
1749
1750 sgn(x)
1751 Compute sign of x.
1752
1753 sin(x)
1754 Compute sine of x.
1755
1756 sinh(x)
1757 Compute hyperbolic sine of x.
1758
1759 sqrt(expr)
1760 Compute the square root of expr. This is equivalent to "(expr)^.5".
1761
1762 squish(x)
1763 Compute expression "1/(1 + exp(4*x))".
1764
1765 st(var, expr)
1766 Store the value of the expression expr in an internal variable. var
1767 specifies the number of the variable where to store the value, and
1768 it is a value ranging from 0 to 9. The function returns the value
1769 stored in the internal variable. Note, Variables are currently not
1770 shared between expressions.
1771
1772 tan(x)
1773 Compute tangent of x.
1774
1775 tanh(x)
1776 Compute hyperbolic tangent of x.
1777
1778 taylor(expr, x)
1779 taylor(expr, x, id)
1780 Evaluate a Taylor series at x, given an expression representing the
1781 "ld(id)"-th derivative of a function at 0.
1782
1783 When the series does not converge the result is undefined.
1784
1785 ld(id) is used to represent the derivative order in expr, which
1786 means that the given expression will be evaluated multiple times
1787 with various input values that the expression can access through
1788 "ld(id)". If id is not specified then 0 is assumed.
1789
1790 Note, when you have the derivatives at y instead of 0,
1791 "taylor(expr, x-y)" can be used.
1792
1793 time(0)
1794 Return the current (wallclock) time in seconds.
1795
1796 trunc(expr)
1797 Round the value of expression expr towards zero to the nearest
1798 integer. For example, "trunc(-1.5)" is "-1.0".
1799
1800 while(cond, expr)
1801 Evaluate expression expr while the expression cond is non-zero, and
1802 returns the value of the last expr evaluation, or NAN if cond was
1803 always false.
1804
1805 The following constants are available:
1806
1807 PI area of the unit disc, approximately 3.14
1808
1809 E exp(1) (Euler's number), approximately 2.718
1810
1811 PHI golden ratio (1+sqrt(5))/2, approximately 1.618
1812
1813 Assuming that an expression is considered "true" if it has a non-zero
1814 value, note that:
1815
1816 "*" works like AND
1817
1818 "+" works like OR
1819
1820 For example the construct:
1821
1822 if (A AND B) then C
1823
1824 is equivalent to:
1825
1826 if(A*B, C)
1827
1828 In your C code, you can extend the list of unary and binary functions,
1829 and define recognized constants, so that they are available for your
1830 expressions.
1831
1832 The evaluator also recognizes the International System unit prefixes.
1833 If 'i' is appended after the prefix, binary prefixes are used, which
1834 are based on powers of 1024 instead of powers of 1000. The 'B' postfix
1835 multiplies the value by 8, and can be appended after a unit prefix or
1836 used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
1837 number postfix.
1838
1839 The list of available International System prefixes follows, with
1840 indication of the corresponding powers of 10 and of 2.
1841
1842 y 10^-24 / 2^-80
1843
1844 z 10^-21 / 2^-70
1845
1846 a 10^-18 / 2^-60
1847
1848 f 10^-15 / 2^-50
1849
1850 p 10^-12 / 2^-40
1851
1852 n 10^-9 / 2^-30
1853
1854 u 10^-6 / 2^-20
1855
1856 m 10^-3 / 2^-10
1857
1858 c 10^-2
1859
1860 d 10^-1
1861
1862 h 10^2
1863
1864 k 10^3 / 2^10
1865
1866 K 10^3 / 2^10
1867
1868 M 10^6 / 2^20
1869
1870 G 10^9 / 2^30
1871
1872 T 10^12 / 2^40
1873
1874 P 10^15 / 2^40
1875
1876 E 10^18 / 2^50
1877
1878 Z 10^21 / 2^60
1879
1880 Y 10^24 / 2^70
1881
1883 libavcodec provides some generic global options, which can be set on
1884 all the encoders and decoders. In addition each codec may support so-
1885 called private options, which are specific for a given codec.
1886
1887 Sometimes, a global option may only affect a specific kind of codec,
1888 and may be nonsensical or ignored by another, so you need to be aware
1889 of the meaning of the specified options. Also some options are meant
1890 only for decoding or encoding.
1891
1892 Options may be set by specifying -option value in the FFmpeg tools, or
1893 by setting the value explicitly in the "AVCodecContext" options or
1894 using the libavutil/opt.h API for programmatic use.
1895
1896 The list of supported options follow:
1897
1898 b integer (encoding,audio,video)
1899 Set bitrate in bits/s. Default value is 200K.
1900
1901 ab integer (encoding,audio)
1902 Set audio bitrate (in bits/s). Default value is 128K.
1903
1904 bt integer (encoding,video)
1905 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
1906 tolerance specifies how far ratecontrol is willing to deviate from
1907 the target average bitrate value. This is not related to min/max
1908 bitrate. Lowering tolerance too much has an adverse effect on
1909 quality.
1910
1911 flags flags (decoding/encoding,audio,video,subtitles)
1912 Set generic flags.
1913
1914 Possible values:
1915
1916 mv4 Use four motion vector by macroblock (mpeg4).
1917
1918 qpel
1919 Use 1/4 pel motion compensation.
1920
1921 loop
1922 Use loop filter.
1923
1924 qscale
1925 Use fixed qscale.
1926
1927 pass1
1928 Use internal 2pass ratecontrol in first pass mode.
1929
1930 pass2
1931 Use internal 2pass ratecontrol in second pass mode.
1932
1933 gray
1934 Only decode/encode grayscale.
1935
1936 psnr
1937 Set error[?] variables during encoding.
1938
1939 truncated
1940 Input bitstream might be randomly truncated.
1941
1942 drop_changed
1943 Don't output frames whose parameters differ from first decoded
1944 frame in stream. Error AVERROR_INPUT_CHANGED is returned when
1945 a frame is dropped.
1946
1947 ildct
1948 Use interlaced DCT.
1949
1950 low_delay
1951 Force low delay.
1952
1953 global_header
1954 Place global headers in extradata instead of every keyframe.
1955
1956 bitexact
1957 Only write platform-, build- and time-independent data. (except
1958 (I)DCT). This ensures that file and data checksums are
1959 reproducible and match between platforms. Its primary use is
1960 for regression testing.
1961
1962 aic Apply H263 advanced intra coding / mpeg4 ac prediction.
1963
1964 ilme
1965 Apply interlaced motion estimation.
1966
1967 cgop
1968 Use closed gop.
1969
1970 output_corrupt
1971 Output even potentially corrupted frames.
1972
1973 time_base rational number
1974 Set codec time base.
1975
1976 It is the fundamental unit of time (in seconds) in terms of which
1977 frame timestamps are represented. For fixed-fps content, timebase
1978 should be "1 / frame_rate" and timestamp increments should be
1979 identically 1.
1980
1981 g integer (encoding,video)
1982 Set the group of picture (GOP) size. Default value is 12.
1983
1984 ar integer (decoding/encoding,audio)
1985 Set audio sampling rate (in Hz).
1986
1987 ac integer (decoding/encoding,audio)
1988 Set number of audio channels.
1989
1990 cutoff integer (encoding,audio)
1991 Set cutoff bandwidth. (Supported only by selected encoders, see
1992 their respective documentation sections.)
1993
1994 frame_size integer (encoding,audio)
1995 Set audio frame size.
1996
1997 Each submitted frame except the last must contain exactly
1998 frame_size samples per channel. May be 0 when the codec has
1999 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
2000 not restricted. It is set by some decoders to indicate constant
2001 frame size.
2002
2003 frame_number integer
2004 Set the frame number.
2005
2006 delay integer
2007 qcomp float (encoding,video)
2008 Set video quantizer scale compression (VBR). It is used as a
2009 constant in the ratecontrol equation. Recommended range for default
2010 rc_eq: 0.0-1.0.
2011
2012 qblur float (encoding,video)
2013 Set video quantizer scale blur (VBR).
2014
2015 qmin integer (encoding,video)
2016 Set min video quantizer scale (VBR). Must be included between -1
2017 and 69, default value is 2.
2018
2019 qmax integer (encoding,video)
2020 Set max video quantizer scale (VBR). Must be included between -1
2021 and 1024, default value is 31.
2022
2023 qdiff integer (encoding,video)
2024 Set max difference between the quantizer scale (VBR).
2025
2026 bf integer (encoding,video)
2027 Set max number of B frames between non-B-frames.
2028
2029 Must be an integer between -1 and 16. 0 means that B-frames are
2030 disabled. If a value of -1 is used, it will choose an automatic
2031 value depending on the encoder.
2032
2033 Default value is 0.
2034
2035 b_qfactor float (encoding,video)
2036 Set qp factor between P and B frames.
2037
2038 codec_tag integer
2039 bug flags (decoding,video)
2040 Workaround not auto detected encoder bugs.
2041
2042 Possible values:
2043
2044 autodetect
2045 xvid_ilace
2046 Xvid interlacing bug (autodetected if fourcc==XVIX)
2047
2048 ump4
2049 (autodetected if fourcc==UMP4)
2050
2051 no_padding
2052 padding bug (autodetected)
2053
2054 amv
2055 qpel_chroma
2056 std_qpel
2057 old standard qpel (autodetected per fourcc/version)
2058
2059 qpel_chroma2
2060 direct_blocksize
2061 direct-qpel-blocksize bug (autodetected per fourcc/version)
2062
2063 edge
2064 edge padding bug (autodetected per fourcc/version)
2065
2066 hpel_chroma
2067 dc_clip
2068 ms Workaround various bugs in microsoft broken decoders.
2069
2070 trunc
2071 trancated frames
2072
2073 strict integer (decoding/encoding,audio,video)
2074 Specify how strictly to follow the standards.
2075
2076 Possible values:
2077
2078 very
2079 strictly conform to an older more strict version of the spec or
2080 reference software
2081
2082 strict
2083 strictly conform to all the things in the spec no matter what
2084 consequences
2085
2086 normal
2087 unofficial
2088 allow unofficial extensions
2089
2090 experimental
2091 allow non standardized experimental things, experimental
2092 (unfinished/work in progress/not well tested) decoders and
2093 encoders. Note: experimental decoders can pose a security
2094 risk, do not use this for decoding untrusted input.
2095
2096 b_qoffset float (encoding,video)
2097 Set QP offset between P and B frames.
2098
2099 err_detect flags (decoding,audio,video)
2100 Set error detection flags.
2101
2102 Possible values:
2103
2104 crccheck
2105 verify embedded CRCs
2106
2107 bitstream
2108 detect bitstream specification deviations
2109
2110 buffer
2111 detect improper bitstream length
2112
2113 explode
2114 abort decoding on minor error detection
2115
2116 ignore_err
2117 ignore decoding errors, and continue decoding. This is useful
2118 if you want to analyze the content of a video and thus want
2119 everything to be decoded no matter what. This option will not
2120 result in a video that is pleasing to watch in case of errors.
2121
2122 careful
2123 consider things that violate the spec and have not been seen in
2124 the wild as errors
2125
2126 compliant
2127 consider all spec non compliancies as errors
2128
2129 aggressive
2130 consider things that a sane encoder should not do as an error
2131
2132 has_b_frames integer
2133 block_align integer
2134 rc_override_count integer
2135 maxrate integer (encoding,audio,video)
2136 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
2137
2138 minrate integer (encoding,audio,video)
2139 Set min bitrate tolerance (in bits/s). Most useful in setting up a
2140 CBR encode. It is of little use elsewise.
2141
2142 bufsize integer (encoding,audio,video)
2143 Set ratecontrol buffer size (in bits).
2144
2145 i_qfactor float (encoding,video)
2146 Set QP factor between P and I frames.
2147
2148 i_qoffset float (encoding,video)
2149 Set QP offset between P and I frames.
2150
2151 dct integer (encoding,video)
2152 Set DCT algorithm.
2153
2154 Possible values:
2155
2156 auto
2157 autoselect a good one (default)
2158
2159 fastint
2160 fast integer
2161
2162 int accurate integer
2163
2164 mmx
2165 altivec
2166 faan
2167 floating point AAN DCT
2168
2169 lumi_mask float (encoding,video)
2170 Compress bright areas stronger than medium ones.
2171
2172 tcplx_mask float (encoding,video)
2173 Set temporal complexity masking.
2174
2175 scplx_mask float (encoding,video)
2176 Set spatial complexity masking.
2177
2178 p_mask float (encoding,video)
2179 Set inter masking.
2180
2181 dark_mask float (encoding,video)
2182 Compress dark areas stronger than medium ones.
2183
2184 idct integer (decoding/encoding,video)
2185 Select IDCT implementation.
2186
2187 Possible values:
2188
2189 auto
2190 int
2191 simple
2192 simplemmx
2193 simpleauto
2194 Automatically pick a IDCT compatible with the simple one
2195
2196 arm
2197 altivec
2198 sh4
2199 simplearm
2200 simplearmv5te
2201 simplearmv6
2202 simpleneon
2203 xvid
2204 faani
2205 floating point AAN IDCT
2206
2207 slice_count integer
2208 ec flags (decoding,video)
2209 Set error concealment strategy.
2210
2211 Possible values:
2212
2213 guess_mvs
2214 iterative motion vector (MV) search (slow)
2215
2216 deblock
2217 use strong deblock filter for damaged MBs
2218
2219 favor_inter
2220 favor predicting from the previous frame instead of the current
2221
2222 bits_per_coded_sample integer
2223 aspect rational number (encoding,video)
2224 Set sample aspect ratio.
2225
2226 sar rational number (encoding,video)
2227 Set sample aspect ratio. Alias to aspect.
2228
2229 debug flags (decoding/encoding,audio,video,subtitles)
2230 Print specific debug info.
2231
2232 Possible values:
2233
2234 pict
2235 picture info
2236
2237 rc rate control
2238
2239 bitstream
2240 mb_type
2241 macroblock (MB) type
2242
2243 qp per-block quantization parameter (QP)
2244
2245 dct_coeff
2246 green_metadata
2247 display complexity metadata for the upcoming frame, GoP or for
2248 a given duration.
2249
2250 skip
2251 startcode
2252 er error recognition
2253
2254 mmco
2255 memory management control operations (H.264)
2256
2257 bugs
2258 buffers
2259 picture buffer allocations
2260
2261 thread_ops
2262 threading operations
2263
2264 nomc
2265 skip motion compensation
2266
2267 cmp integer (encoding,video)
2268 Set full pel me compare function.
2269
2270 Possible values:
2271
2272 sad sum of absolute differences, fast (default)
2273
2274 sse sum of squared errors
2275
2276 satd
2277 sum of absolute Hadamard transformed differences
2278
2279 dct sum of absolute DCT transformed differences
2280
2281 psnr
2282 sum of squared quantization errors (avoid, low quality)
2283
2284 bit number of bits needed for the block
2285
2286 rd rate distortion optimal, slow
2287
2288 zero
2289 0
2290
2291 vsad
2292 sum of absolute vertical differences
2293
2294 vsse
2295 sum of squared vertical differences
2296
2297 nsse
2298 noise preserving sum of squared differences
2299
2300 w53 5/3 wavelet, only used in snow
2301
2302 w97 9/7 wavelet, only used in snow
2303
2304 dctmax
2305 chroma
2306 subcmp integer (encoding,video)
2307 Set sub pel me compare function.
2308
2309 Possible values:
2310
2311 sad sum of absolute differences, fast (default)
2312
2313 sse sum of squared errors
2314
2315 satd
2316 sum of absolute Hadamard transformed differences
2317
2318 dct sum of absolute DCT transformed differences
2319
2320 psnr
2321 sum of squared quantization errors (avoid, low quality)
2322
2323 bit number of bits needed for the block
2324
2325 rd rate distortion optimal, slow
2326
2327 zero
2328 0
2329
2330 vsad
2331 sum of absolute vertical differences
2332
2333 vsse
2334 sum of squared vertical differences
2335
2336 nsse
2337 noise preserving sum of squared differences
2338
2339 w53 5/3 wavelet, only used in snow
2340
2341 w97 9/7 wavelet, only used in snow
2342
2343 dctmax
2344 chroma
2345 mbcmp integer (encoding,video)
2346 Set macroblock compare function.
2347
2348 Possible values:
2349
2350 sad sum of absolute differences, fast (default)
2351
2352 sse sum of squared errors
2353
2354 satd
2355 sum of absolute Hadamard transformed differences
2356
2357 dct sum of absolute DCT transformed differences
2358
2359 psnr
2360 sum of squared quantization errors (avoid, low quality)
2361
2362 bit number of bits needed for the block
2363
2364 rd rate distortion optimal, slow
2365
2366 zero
2367 0
2368
2369 vsad
2370 sum of absolute vertical differences
2371
2372 vsse
2373 sum of squared vertical differences
2374
2375 nsse
2376 noise preserving sum of squared differences
2377
2378 w53 5/3 wavelet, only used in snow
2379
2380 w97 9/7 wavelet, only used in snow
2381
2382 dctmax
2383 chroma
2384 ildctcmp integer (encoding,video)
2385 Set interlaced dct compare function.
2386
2387 Possible values:
2388
2389 sad sum of absolute differences, fast (default)
2390
2391 sse sum of squared errors
2392
2393 satd
2394 sum of absolute Hadamard transformed differences
2395
2396 dct sum of absolute DCT transformed differences
2397
2398 psnr
2399 sum of squared quantization errors (avoid, low quality)
2400
2401 bit number of bits needed for the block
2402
2403 rd rate distortion optimal, slow
2404
2405 zero
2406 0
2407
2408 vsad
2409 sum of absolute vertical differences
2410
2411 vsse
2412 sum of squared vertical differences
2413
2414 nsse
2415 noise preserving sum of squared differences
2416
2417 w53 5/3 wavelet, only used in snow
2418
2419 w97 9/7 wavelet, only used in snow
2420
2421 dctmax
2422 chroma
2423 dia_size integer (encoding,video)
2424 Set diamond type & size for motion estimation.
2425
2426 (1024, INT_MAX)
2427 full motion estimation(slowest)
2428
2429 (768, 1024]
2430 umh motion estimation
2431
2432 (512, 768]
2433 hex motion estimation
2434
2435 (256, 512]
2436 l2s diamond motion estimation
2437
2438 [2,256]
2439 var diamond motion estimation
2440
2441 (-1, 2)
2442 small diamond motion estimation
2443
2444 -1 funny diamond motion estimation
2445
2446 (INT_MIN, -1)
2447 sab diamond motion estimation
2448
2449 last_pred integer (encoding,video)
2450 Set amount of motion predictors from the previous frame.
2451
2452 precmp integer (encoding,video)
2453 Set pre motion estimation compare function.
2454
2455 Possible values:
2456
2457 sad sum of absolute differences, fast (default)
2458
2459 sse sum of squared errors
2460
2461 satd
2462 sum of absolute Hadamard transformed differences
2463
2464 dct sum of absolute DCT transformed differences
2465
2466 psnr
2467 sum of squared quantization errors (avoid, low quality)
2468
2469 bit number of bits needed for the block
2470
2471 rd rate distortion optimal, slow
2472
2473 zero
2474 0
2475
2476 vsad
2477 sum of absolute vertical differences
2478
2479 vsse
2480 sum of squared vertical differences
2481
2482 nsse
2483 noise preserving sum of squared differences
2484
2485 w53 5/3 wavelet, only used in snow
2486
2487 w97 9/7 wavelet, only used in snow
2488
2489 dctmax
2490 chroma
2491 pre_dia_size integer (encoding,video)
2492 Set diamond type & size for motion estimation pre-pass.
2493
2494 subq integer (encoding,video)
2495 Set sub pel motion estimation quality.
2496
2497 me_range integer (encoding,video)
2498 Set limit motion vectors range (1023 for DivX player).
2499
2500 global_quality integer (encoding,audio,video)
2501 slice_flags integer
2502 mbd integer (encoding,video)
2503 Set macroblock decision algorithm (high quality mode).
2504
2505 Possible values:
2506
2507 simple
2508 use mbcmp (default)
2509
2510 bits
2511 use fewest bits
2512
2513 rd use best rate distortion
2514
2515 rc_init_occupancy integer (encoding,video)
2516 Set number of bits which should be loaded into the rc buffer before
2517 decoding starts.
2518
2519 flags2 flags (decoding/encoding,audio,video,subtitles)
2520 Possible values:
2521
2522 fast
2523 Allow non spec compliant speedup tricks.
2524
2525 noout
2526 Skip bitstream encoding.
2527
2528 ignorecrop
2529 Ignore cropping information from sps.
2530
2531 local_header
2532 Place global headers at every keyframe instead of in extradata.
2533
2534 chunks
2535 Frame data might be split into multiple chunks.
2536
2537 showall
2538 Show all frames before the first keyframe.
2539
2540 export_mvs
2541 Export motion vectors into frame side-data (see
2542 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2543 also doc/examples/export_mvs.c.
2544
2545 skip_manual
2546 Do not skip samples and export skip information as frame side
2547 data.
2548
2549 ass_ro_flush_noop
2550 Do not reset ASS ReadOrder field on flush.
2551
2552 export_side_data flags (decoding/encoding,audio,video,subtitles)
2553 Possible values:
2554
2555 mvs Export motion vectors into frame side-data (see
2556 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2557 also doc/examples/export_mvs.c.
2558
2559 prft
2560 Export encoder Producer Reference Time into packet side-data
2561 (see "AV_PKT_DATA_PRFT") for codecs that support it.
2562
2563 venc_params
2564 Export video encoding parameters through frame side data (see
2565 "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
2566 At present, those are H.264 and VP9.
2567
2568 film_grain
2569 Export film grain parameters through frame side data (see
2570 "AV_FRAME_DATA_FILM_GRAIN_PARAMS"). Supported at present by
2571 AV1 decoders.
2572
2573 threads integer (decoding/encoding,video)
2574 Set the number of threads to be used, in case the selected codec
2575 implementation supports multi-threading.
2576
2577 Possible values:
2578
2579 auto, 0
2580 automatically select the number of threads to set
2581
2582 Default value is auto.
2583
2584 dc integer (encoding,video)
2585 Set intra_dc_precision.
2586
2587 nssew integer (encoding,video)
2588 Set nsse weight.
2589
2590 skip_top integer (decoding,video)
2591 Set number of macroblock rows at the top which are skipped.
2592
2593 skip_bottom integer (decoding,video)
2594 Set number of macroblock rows at the bottom which are skipped.
2595
2596 profile integer (encoding,audio,video)
2597 Set encoder codec profile. Default value is unknown. Encoder
2598 specific profiles are documented in the relevant encoder
2599 documentation.
2600
2601 level integer (encoding,audio,video)
2602 Possible values:
2603
2604 unknown
2605 lowres integer (decoding,audio,video)
2606 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
2607
2608 mblmin integer (encoding,video)
2609 Set min macroblock lagrange factor (VBR).
2610
2611 mblmax integer (encoding,video)
2612 Set max macroblock lagrange factor (VBR).
2613
2614 skip_loop_filter integer (decoding,video)
2615 skip_idct integer (decoding,video)
2616 skip_frame integer (decoding,video)
2617 Make decoder discard processing depending on the frame type
2618 selected by the option value.
2619
2620 skip_loop_filter skips frame loop filtering, skip_idct skips frame
2621 IDCT/dequantization, skip_frame skips decoding.
2622
2623 Possible values:
2624
2625 none
2626 Discard no frame.
2627
2628 default
2629 Discard useless frames like 0-sized frames.
2630
2631 noref
2632 Discard all non-reference frames.
2633
2634 bidir
2635 Discard all bidirectional frames.
2636
2637 nokey
2638 Discard all frames excepts keyframes.
2639
2640 nointra
2641 Discard all frames except I frames.
2642
2643 all Discard all frames.
2644
2645 Default value is default.
2646
2647 bidir_refine integer (encoding,video)
2648 Refine the two motion vectors used in bidirectional macroblocks.
2649
2650 keyint_min integer (encoding,video)
2651 Set minimum interval between IDR-frames.
2652
2653 refs integer (encoding,video)
2654 Set reference frames to consider for motion compensation.
2655
2656 trellis integer (encoding,audio,video)
2657 Set rate-distortion optimal quantization.
2658
2659 mv0_threshold integer (encoding,video)
2660 compression_level integer (encoding,audio,video)
2661 bits_per_raw_sample integer
2662 channel_layout integer (decoding/encoding,audio)
2663 Possible values:
2664
2665 request_channel_layout integer (decoding,audio)
2666 Possible values:
2667
2668 rc_max_vbv_use float (encoding,video)
2669 rc_min_vbv_use float (encoding,video)
2670 ticks_per_frame integer (decoding/encoding,audio,video)
2671 color_primaries integer (decoding/encoding,video)
2672 Possible values:
2673
2674 bt709
2675 BT.709
2676
2677 bt470m
2678 BT.470 M
2679
2680 bt470bg
2681 BT.470 BG
2682
2683 smpte170m
2684 SMPTE 170 M
2685
2686 smpte240m
2687 SMPTE 240 M
2688
2689 film
2690 Film
2691
2692 bt2020
2693 BT.2020
2694
2695 smpte428
2696 smpte428_1
2697 SMPTE ST 428-1
2698
2699 smpte431
2700 SMPTE 431-2
2701
2702 smpte432
2703 SMPTE 432-1
2704
2705 jedec-p22
2706 JEDEC P22
2707
2708 color_trc integer (decoding/encoding,video)
2709 Possible values:
2710
2711 bt709
2712 BT.709
2713
2714 gamma22
2715 BT.470 M
2716
2717 gamma28
2718 BT.470 BG
2719
2720 smpte170m
2721 SMPTE 170 M
2722
2723 smpte240m
2724 SMPTE 240 M
2725
2726 linear
2727 Linear
2728
2729 log
2730 log100
2731 Log
2732
2733 log_sqrt
2734 log316
2735 Log square root
2736
2737 iec61966_2_4
2738 iec61966-2-4
2739 IEC 61966-2-4
2740
2741 bt1361
2742 bt1361e
2743 BT.1361
2744
2745 iec61966_2_1
2746 iec61966-2-1
2747 IEC 61966-2-1
2748
2749 bt2020_10
2750 bt2020_10bit
2751 BT.2020 - 10 bit
2752
2753 bt2020_12
2754 bt2020_12bit
2755 BT.2020 - 12 bit
2756
2757 smpte2084
2758 SMPTE ST 2084
2759
2760 smpte428
2761 smpte428_1
2762 SMPTE ST 428-1
2763
2764 arib-std-b67
2765 ARIB STD-B67
2766
2767 colorspace integer (decoding/encoding,video)
2768 Possible values:
2769
2770 rgb RGB
2771
2772 bt709
2773 BT.709
2774
2775 fcc FCC
2776
2777 bt470bg
2778 BT.470 BG
2779
2780 smpte170m
2781 SMPTE 170 M
2782
2783 smpte240m
2784 SMPTE 240 M
2785
2786 ycocg
2787 YCOCG
2788
2789 bt2020nc
2790 bt2020_ncl
2791 BT.2020 NCL
2792
2793 bt2020c
2794 bt2020_cl
2795 BT.2020 CL
2796
2797 smpte2085
2798 SMPTE 2085
2799
2800 chroma-derived-nc
2801 Chroma-derived NCL
2802
2803 chroma-derived-c
2804 Chroma-derived CL
2805
2806 ictcp
2807 ICtCp
2808
2809 color_range integer (decoding/encoding,video)
2810 If used as input parameter, it serves as a hint to the decoder,
2811 which color_range the input has. Possible values:
2812
2813 tv
2814 mpeg
2815 MPEG (219*2^(n-8))
2816
2817 pc
2818 jpeg
2819 JPEG (2^n-1)
2820
2821 chroma_sample_location integer (decoding/encoding,video)
2822 Possible values:
2823
2824 left
2825 center
2826 topleft
2827 top
2828 bottomleft
2829 bottom
2830 log_level_offset integer
2831 Set the log level offset.
2832
2833 slices integer (encoding,video)
2834 Number of slices, used in parallelized encoding.
2835
2836 thread_type flags (decoding/encoding,video)
2837 Select which multithreading methods to use.
2838
2839 Use of frame will increase decoding delay by one frame per thread,
2840 so clients which cannot provide future frames should not use it.
2841
2842 Possible values:
2843
2844 slice
2845 Decode more than one part of a single frame at once.
2846
2847 Multithreading using slices works only when the video was
2848 encoded with slices.
2849
2850 frame
2851 Decode more than one frame at once.
2852
2853 Default value is slice+frame.
2854
2855 audio_service_type integer (encoding,audio)
2856 Set audio service type.
2857
2858 Possible values:
2859
2860 ma Main Audio Service
2861
2862 ef Effects
2863
2864 vi Visually Impaired
2865
2866 hi Hearing Impaired
2867
2868 di Dialogue
2869
2870 co Commentary
2871
2872 em Emergency
2873
2874 vo Voice Over
2875
2876 ka Karaoke
2877
2878 request_sample_fmt sample_fmt (decoding,audio)
2879 Set sample format audio decoders should prefer. Default value is
2880 "none".
2881
2882 pkt_timebase rational number
2883 sub_charenc encoding (decoding,subtitles)
2884 Set the input subtitles character encoding.
2885
2886 field_order field_order (video)
2887 Set/override the field order of the video. Possible values:
2888
2889 progressive
2890 Progressive video
2891
2892 tt Interlaced video, top field coded and displayed first
2893
2894 bb Interlaced video, bottom field coded and displayed first
2895
2896 tb Interlaced video, top coded first, bottom displayed first
2897
2898 bt Interlaced video, bottom coded first, top displayed first
2899
2900 skip_alpha bool (decoding,video)
2901 Set to 1 to disable processing alpha (transparency). This works
2902 like the gray flag in the flags option which skips chroma
2903 information instead of alpha. Default is 0.
2904
2905 codec_whitelist list (input)
2906 "," separated list of allowed decoders. By default all are allowed.
2907
2908 dump_separator string (input)
2909 Separator used to separate the fields printed on the command line
2910 about the Stream parameters. For example, to separate the fields
2911 with newlines and indentation:
2912
2913 ffprobe -dump_separator "
2914 " -i ~/videos/matrixbench_mpeg2.mpg
2915
2916 max_pixels integer (decoding/encoding,video)
2917 Maximum number of pixels per image. This value can be used to avoid
2918 out of memory failures due to large images.
2919
2920 apply_cropping bool (decoding,video)
2921 Enable cropping if cropping parameters are multiples of the
2922 required alignment for the left and top parameters. If the
2923 alignment is not met the cropping will be partially applied to
2924 maintain alignment. Default is 1 (enabled). Note: The required
2925 alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
2926 CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
2927 line. Also hardware decoders will not apply left/top Cropping.
2928
2930 Decoders are configured elements in FFmpeg which allow the decoding of
2931 multimedia streams.
2932
2933 When you configure your FFmpeg build, all the supported native decoders
2934 are enabled by default. Decoders requiring an external library must be
2935 enabled manually via the corresponding "--enable-lib" option. You can
2936 list all available decoders using the configure option
2937 "--list-decoders".
2938
2939 You can disable all the decoders with the configure option
2940 "--disable-decoders" and selectively enable / disable single decoders
2941 with the options "--enable-decoder=DECODER" /
2942 "--disable-decoder=DECODER".
2943
2944 The option "-decoders" of the ff* tools will display the list of
2945 enabled decoders.
2946
2948 A description of some of the currently available video decoders
2949 follows.
2950
2951 av1
2952 AOMedia Video 1 (AV1) decoder.
2953
2954 Options
2955
2956 operating_point
2957 Select an operating point of a scalable AV1 bitstream (0 - 31).
2958 Default is 0.
2959
2960 rawvideo
2961 Raw video decoder.
2962
2963 This decoder decodes rawvideo streams.
2964
2965 Options
2966
2967 top top_field_first
2968 Specify the assumed field type of the input video.
2969
2970 -1 the video is assumed to be progressive (default)
2971
2972 0 bottom-field-first is assumed
2973
2974 1 top-field-first is assumed
2975
2976 libdav1d
2977 dav1d AV1 decoder.
2978
2979 libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
2980 Requires the presence of the libdav1d headers and library during
2981 configuration. You need to explicitly configure the build with
2982 "--enable-libdav1d".
2983
2984 Options
2985
2986 The following options are supported by the libdav1d wrapper.
2987
2988 framethreads
2989 Set amount of frame threads to use during decoding. The default
2990 value is 0 (autodetect). This option is deprecated for libdav1d >=
2991 1.0 and will be removed in the future. Use the global option
2992 "threads" instead.
2993
2994 tilethreads
2995 Set amount of tile threads to use during decoding. The default
2996 value is 0 (autodetect). This option is deprecated for libdav1d >=
2997 1.0 and will be removed in the future. Use the global option
2998 "threads" instead.
2999
3000 filmgrain
3001 Apply film grain to the decoded video if present in the bitstream.
3002 Defaults to the internal default of the library. This option is
3003 deprecated and will be removed in the future. See the global option
3004 "export_side_data" to export Film Grain parameters instead of
3005 applying it.
3006
3007 oppoint
3008 Select an operating point of a scalable AV1 bitstream (0 - 31).
3009 Defaults to the internal default of the library.
3010
3011 alllayers
3012 Output all spatial layers of a scalable AV1 bitstream. The default
3013 value is false.
3014
3015 libdavs2
3016 AVS2-P2/IEEE1857.4 video decoder wrapper.
3017
3018 This decoder allows libavcodec to decode AVS2 streams with davs2
3019 library.
3020
3021 libuavs3d
3022 AVS3-P2/IEEE1857.10 video decoder.
3023
3024 libuavs3d allows libavcodec to decode AVS3 streams. Requires the
3025 presence of the libuavs3d headers and library during configuration.
3026 You need to explicitly configure the build with "--enable-libuavs3d".
3027
3028 Options
3029
3030 The following option is supported by the libuavs3d wrapper.
3031
3032 frame_threads
3033 Set amount of frame threads to use during decoding. The default
3034 value is 0 (autodetect).
3035
3036 QSV Decoders
3037 The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
3038 JPEG/MJPEG, VP8, VP9, AV1).
3039
3040 Common Options
3041
3042 The following options are supported by all qsv decoders.
3043
3044 async_depth
3045 Internal parallelization depth, the higher the value the higher the
3046 latency.
3047
3048 gpu_copy
3049 A GPU-accelerated copy between video and system memory
3050
3051 default
3052 on
3053 off
3054
3055 HEVC Options
3056
3057 Extra options for hevc_qsv.
3058
3059 load_plugin
3060 A user plugin to load in an internal session
3061
3062 none
3063 hevc_sw
3064 hevc_hw
3065 load_plugins
3066 A :-separate list of hexadecimal plugin UIDs to load in an internal
3067 session
3068
3069 v210
3070 Uncompressed 4:2:2 10-bit decoder.
3071
3072 Options
3073
3074 custom_stride
3075 Set the line size of the v210 data in bytes. The default value is 0
3076 (autodetect). You can use the special -1 value for a strideless
3077 v210 as seen in BOXX files.
3078
3080 A description of some of the currently available audio decoders
3081 follows.
3082
3083 ac3
3084 AC-3 audio decoder.
3085
3086 This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
3087 well as the undocumented RealAudio 3 (a.k.a. dnet).
3088
3089 AC-3 Decoder Options
3090
3091 -drc_scale value
3092 Dynamic Range Scale Factor. The factor to apply to dynamic range
3093 values from the AC-3 stream. This factor is applied exponentially.
3094 The default value is 1. There are 3 notable scale factor ranges:
3095
3096 drc_scale == 0
3097 DRC disabled. Produces full range audio.
3098
3099 0 < drc_scale <= 1
3100 DRC enabled. Applies a fraction of the stream DRC value.
3101 Audio reproduction is between full range and full compression.
3102
3103 drc_scale > 1
3104 DRC enabled. Applies drc_scale asymmetrically. Loud sounds are
3105 fully compressed. Soft sounds are enhanced.
3106
3107 flac
3108 FLAC audio decoder.
3109
3110 This decoder aims to implement the complete FLAC specification from
3111 Xiph.
3112
3113 FLAC Decoder options
3114
3115 -use_buggy_lpc
3116 The lavc FLAC encoder used to produce buggy streams with high lpc
3117 values (like the default value). This option makes it possible to
3118 decode such streams correctly by using lavc's old buggy lpc logic
3119 for decoding.
3120
3121 ffwavesynth
3122 Internal wave synthesizer.
3123
3124 This decoder generates wave patterns according to predefined sequences.
3125 Its use is purely internal and the format of the data it accepts is not
3126 publicly documented.
3127
3128 libcelt
3129 libcelt decoder wrapper.
3130
3131 libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
3132 codec. Requires the presence of the libcelt headers and library during
3133 configuration. You need to explicitly configure the build with
3134 "--enable-libcelt".
3135
3136 libgsm
3137 libgsm decoder wrapper.
3138
3139 libgsm allows libavcodec to decode the GSM full rate audio codec.
3140 Requires the presence of the libgsm headers and library during
3141 configuration. You need to explicitly configure the build with
3142 "--enable-libgsm".
3143
3144 This decoder supports both the ordinary GSM and the Microsoft variant.
3145
3146 libilbc
3147 libilbc decoder wrapper.
3148
3149 libilbc allows libavcodec to decode the Internet Low Bitrate Codec
3150 (iLBC) audio codec. Requires the presence of the libilbc headers and
3151 library during configuration. You need to explicitly configure the
3152 build with "--enable-libilbc".
3153
3154 Options
3155
3156 The following option is supported by the libilbc wrapper.
3157
3158 enhance
3159 Enable the enhancement of the decoded audio when set to 1. The
3160 default value is 0 (disabled).
3161
3162 libopencore-amrnb
3163 libopencore-amrnb decoder wrapper.
3164
3165 libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
3166 Narrowband audio codec. Using it requires the presence of the
3167 libopencore-amrnb headers and library during configuration. You need to
3168 explicitly configure the build with "--enable-libopencore-amrnb".
3169
3170 An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
3171 without this library.
3172
3173 libopencore-amrwb
3174 libopencore-amrwb decoder wrapper.
3175
3176 libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
3177 Wideband audio codec. Using it requires the presence of the
3178 libopencore-amrwb headers and library during configuration. You need to
3179 explicitly configure the build with "--enable-libopencore-amrwb".
3180
3181 An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
3182 without this library.
3183
3184 libopus
3185 libopus decoder wrapper.
3186
3187 libopus allows libavcodec to decode the Opus Interactive Audio Codec.
3188 Requires the presence of the libopus headers and library during
3189 configuration. You need to explicitly configure the build with
3190 "--enable-libopus".
3191
3192 An FFmpeg native decoder for Opus exists, so users can decode Opus
3193 without this library.
3194
3196 libaribb24
3197 ARIB STD-B24 caption decoder.
3198
3199 Implements profiles A and C of the ARIB STD-B24 standard.
3200
3201 libaribb24 Decoder Options
3202
3203 -aribb24-base-path path
3204 Sets the base path for the libaribb24 library. This is utilized for
3205 reading of configuration files (for custom unicode conversions),
3206 and for dumping of non-text symbols as images under that location.
3207
3208 Unset by default.
3209
3210 -aribb24-skip-ruby-text boolean
3211 Tells the decoder wrapper to skip text blocks that contain half-
3212 height ruby text.
3213
3214 Enabled by default.
3215
3216 dvbsub
3217 Options
3218
3219 compute_clut
3220 -2 Compute clut once if no matching CLUT is in the stream.
3221
3222 -1 Compute clut if no matching CLUT is in the stream.
3223
3224 0 Never compute CLUT
3225
3226 1 Always compute CLUT and override the one provided in the
3227 stream.
3228
3229 dvb_substream
3230 Selects the dvb substream, or all substreams if -1 which is
3231 default.
3232
3233 dvdsub
3234 This codec decodes the bitmap subtitles used in DVDs; the same
3235 subtitles can also be found in VobSub file pairs and in some Matroska
3236 files.
3237
3238 Options
3239
3240 palette
3241 Specify the global palette used by the bitmaps. When stored in
3242 VobSub, the palette is normally specified in the index file; in
3243 Matroska, the palette is stored in the codec extra-data in the same
3244 format as in VobSub. In DVDs, the palette is stored in the IFO
3245 file, and therefore not available when reading from dumped VOB
3246 files.
3247
3248 The format for this option is a string containing 16 24-bits
3249 hexadecimal numbers (without 0x prefix) separated by commas, for
3250 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
3251 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
3252 7c127b".
3253
3254 ifo_palette
3255 Specify the IFO file from which the global palette is obtained.
3256 (experimental)
3257
3258 forced_subs_only
3259 Only decode subtitle entries marked as forced. Some titles have
3260 forced and non-forced subtitles in the same track. Setting this
3261 flag to 1 will only keep the forced subtitles. Default value is 0.
3262
3263 libzvbi-teletext
3264 Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
3265 subtitles. Requires the presence of the libzvbi headers and library
3266 during configuration. You need to explicitly configure the build with
3267 "--enable-libzvbi".
3268
3269 Options
3270
3271 txt_page
3272 List of teletext page numbers to decode. Pages that do not match
3273 the specified list are dropped. You may use the special "*" string
3274 to match all pages, or "subtitle" to match all subtitle pages.
3275 Default value is *.
3276
3277 txt_default_region
3278 Set default character set used for decoding, a value between 0 and
3279 87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
3280 which does not override the libzvbi default. This option is needed
3281 for some legacy level 1.0 transmissions which cannot signal the
3282 proper charset.
3283
3284 txt_chop_top
3285 Discards the top teletext line. Default value is 1.
3286
3287 txt_format
3288 Specifies the format of the decoded subtitles.
3289
3290 bitmap
3291 The default format, you should use this for teletext pages,
3292 because certain graphics and colors cannot be expressed in
3293 simple text or even ASS.
3294
3295 text
3296 Simple text based output without formatting.
3297
3298 ass Formatted ASS output, subtitle pages and teletext pages are
3299 returned in different styles, subtitle pages are stripped down
3300 to text, but an effort is made to keep the text alignment and
3301 the formatting.
3302
3303 txt_left
3304 X offset of generated bitmaps, default is 0.
3305
3306 txt_top
3307 Y offset of generated bitmaps, default is 0.
3308
3309 txt_chop_spaces
3310 Chops leading and trailing spaces and removes empty lines from the
3311 generated text. This option is useful for teletext based subtitles
3312 where empty spaces may be present at the start or at the end of the
3313 lines or empty lines may be present between the subtitle lines
3314 because of double-sized teletext characters. Default value is 1.
3315
3316 txt_duration
3317 Sets the display duration of the decoded teletext pages or
3318 subtitles in milliseconds. Default value is -1 which means infinity
3319 or until the next subtitle event comes.
3320
3321 txt_transparent
3322 Force transparent background of the generated teletext bitmaps.
3323 Default value is 0 which means an opaque background.
3324
3325 txt_opacity
3326 Sets the opacity (0-255) of the teletext background. If
3327 txt_transparent is not set, it only affects characters between a
3328 start box and an end box, typically subtitles. Default value is 0
3329 if txt_transparent is set, 255 otherwise.
3330
3332 When you configure your FFmpeg build, all the supported bitstream
3333 filters are enabled by default. You can list all available ones using
3334 the configure option "--list-bsfs".
3335
3336 You can disable all the bitstream filters using the configure option
3337 "--disable-bsfs", and selectively enable any bitstream filter using the
3338 option "--enable-bsf=BSF", or you can disable a particular bitstream
3339 filter using the option "--disable-bsf=BSF".
3340
3341 The option "-bsfs" of the ff* tools will display the list of all the
3342 supported bitstream filters included in your build.
3343
3344 The ff* tools have a -bsf option applied per stream, taking a comma-
3345 separated list of filters, whose parameters follow the filter name
3346 after a '='.
3347
3348 ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
3349
3350 Below is a description of the currently available bitstream filters,
3351 with their parameters, if any.
3352
3353 aac_adtstoasc
3354 Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
3355 bitstream.
3356
3357 This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
3358 header and removes the ADTS header.
3359
3360 This filter is required for example when copying an AAC stream from a
3361 raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
3362 to MOV/MP4 files and related formats such as 3GP or M4A. Please note
3363 that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
3364
3365 av1_metadata
3366 Modify metadata embedded in an AV1 stream.
3367
3368 td Insert or remove temporal delimiter OBUs in all temporal units of
3369 the stream.
3370
3371 insert
3372 Insert a TD at the beginning of every TU which does not already
3373 have one.
3374
3375 remove
3376 Remove the TD from the beginning of every TU which has one.
3377
3378 color_primaries
3379 transfer_characteristics
3380 matrix_coefficients
3381 Set the color description fields in the stream (see AV1 section
3382 6.4.2).
3383
3384 color_range
3385 Set the color range in the stream (see AV1 section 6.4.2; note that
3386 this cannot be set for streams using BT.709 primaries, sRGB
3387 transfer characteristic and identity (RGB) matrix coefficients).
3388
3389 tv Limited range.
3390
3391 pc Full range.
3392
3393 chroma_sample_position
3394 Set the chroma sample location in the stream (see AV1 section
3395 6.4.2). This can only be set for 4:2:0 streams.
3396
3397 vertical
3398 Left position (matching the default in MPEG-2 and H.264).
3399
3400 colocated
3401 Top-left position.
3402
3403 tick_rate
3404 Set the tick rate (time_scale / num_units_in_display_tick) in the
3405 timing info in the sequence header.
3406
3407 num_ticks_per_picture
3408 Set the number of ticks in each picture, to indicate that the
3409 stream has a fixed framerate. Ignored if tick_rate is not also
3410 set.
3411
3412 delete_padding
3413 Deletes Padding OBUs.
3414
3415 chomp
3416 Remove zero padding at the end of a packet.
3417
3418 dca_core
3419 Extract the core from a DCA/DTS stream, dropping extensions such as
3420 DTS-HD.
3421
3422 dump_extra
3423 Add extradata to the beginning of the filtered packets except when said
3424 packets already exactly begin with the extradata that is intended to be
3425 added.
3426
3427 freq
3428 The additional argument specifies which packets should be filtered.
3429 It accepts the values:
3430
3431 k
3432 keyframe
3433 add extradata to all key packets
3434
3435 e
3436 all add extradata to all packets
3437
3438 If not specified it is assumed k.
3439
3440 For example the following ffmpeg command forces a global header (thus
3441 disabling individual packet headers) in the H.264 packets generated by
3442 the "libx264" encoder, but corrects them by adding the header stored in
3443 extradata to the key packets:
3444
3445 ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
3446
3447 dv_error_marker
3448 Blocks in DV which are marked as damaged are replaced by blocks of the
3449 specified color.
3450
3451 color
3452 The color to replace damaged blocks by
3453
3454 sta A 16 bit mask which specifies which of the 16 possible error status
3455 values are to be replaced by colored blocks. 0xFFFE is the default
3456 which replaces all non 0 error status values.
3457
3458 ok No error, no concealment
3459
3460 err Error, No concealment
3461
3462 res Reserved
3463
3464 notok
3465 Error or concealment
3466
3467 notres
3468 Not reserved
3469
3470 Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru
3471 The specific error status code
3472
3473 see page 44-46 or section 5.5 of
3474 <http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf>
3475
3476 eac3_core
3477 Extract the core from a E-AC-3 stream, dropping extra channels.
3478
3479 extract_extradata
3480 Extract the in-band extradata.
3481
3482 Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
3483 headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
3484 band" (i.e. as a part of the bitstream containing the coded frames) or
3485 "out of band" (e.g. on the container level). This latter form is called
3486 "extradata" in FFmpeg terminology.
3487
3488 This bitstream filter detects the in-band headers and makes them
3489 available as extradata.
3490
3491 remove
3492 When this option is enabled, the long-term headers are removed from
3493 the bitstream after extraction.
3494
3495 filter_units
3496 Remove units with types in or not in a given set from the stream.
3497
3498 pass_types
3499 List of unit types or ranges of unit types to pass through while
3500 removing all others. This is specified as a '|'-separated list of
3501 unit type values or ranges of values with '-'.
3502
3503 remove_types
3504 Identical to pass_types, except the units in the given set removed
3505 and all others passed through.
3506
3507 Extradata is unchanged by this transformation, but note that if the
3508 stream contains inline parameter sets then the output may be unusable
3509 if they are removed.
3510
3511 For example, to remove all non-VCL NAL units from an H.264 stream:
3512
3513 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
3514
3515 To remove all AUDs, SEI and filler from an H.265 stream:
3516
3517 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
3518
3519 hapqa_extract
3520 Extract Rgb or Alpha part of an HAPQA file, without recompression, in
3521 order to create an HAPQ or an HAPAlphaOnly file.
3522
3523 texture
3524 Specifies the texture to keep.
3525
3526 color
3527 alpha
3528
3529 Convert HAPQA to HAPQ
3530
3531 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
3532
3533 Convert HAPQA to HAPAlphaOnly
3534
3535 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
3536
3537 h264_metadata
3538 Modify metadata embedded in an H.264 stream.
3539
3540 aud Insert or remove AUD NAL units in all access units of the stream.
3541
3542 pass
3543 insert
3544 remove
3545
3546 Default is pass.
3547
3548 sample_aspect_ratio
3549 Set the sample aspect ratio of the stream in the VUI parameters.
3550 See H.264 table E-1.
3551
3552 overscan_appropriate_flag
3553 Set whether the stream is suitable for display using overscan or
3554 not (see H.264 section E.2.1).
3555
3556 video_format
3557 video_full_range_flag
3558 Set the video format in the stream (see H.264 section E.2.1 and
3559 table E-2).
3560
3561 colour_primaries
3562 transfer_characteristics
3563 matrix_coefficients
3564 Set the colour description in the stream (see H.264 section E.2.1
3565 and tables E-3, E-4 and E-5).
3566
3567 chroma_sample_loc_type
3568 Set the chroma sample location in the stream (see H.264 section
3569 E.2.1 and figure E-1).
3570
3571 tick_rate
3572 Set the tick rate (time_scale / num_units_in_tick) in the VUI
3573 parameters. This is the smallest time unit representable in the
3574 stream, and in many cases represents the field rate of the stream
3575 (double the frame rate).
3576
3577 fixed_frame_rate_flag
3578 Set whether the stream has fixed framerate - typically this
3579 indicates that the framerate is exactly half the tick rate, but the
3580 exact meaning is dependent on interlacing and the picture structure
3581 (see H.264 section E.2.1 and table E-6).
3582
3583 zero_new_constraint_set_flags
3584 Zero constraint_set4_flag and constraint_set5_flag in the SPS.
3585 These bits were reserved in a previous version of the H.264 spec,
3586 and thus some hardware decoders require these to be zero. The
3587 result of zeroing this is still a valid bitstream.
3588
3589 crop_left
3590 crop_right
3591 crop_top
3592 crop_bottom
3593 Set the frame cropping offsets in the SPS. These values will
3594 replace the current ones if the stream is already cropped.
3595
3596 These fields are set in pixels. Note that some sizes may not be
3597 representable if the chroma is subsampled or the stream is
3598 interlaced (see H.264 section 7.4.2.1.1).
3599
3600 sei_user_data
3601 Insert a string as SEI unregistered user data. The argument must
3602 be of the form UUID+string, where the UUID is as hex digits
3603 possibly separated by hyphens, and the string can be anything.
3604
3605 For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
3606 the string ``hello'' associated with the given UUID.
3607
3608 delete_filler
3609 Deletes both filler NAL units and filler SEI messages.
3610
3611 display_orientation
3612 Insert, extract or remove Display orientation SEI messages. See
3613 H.264 section D.1.27 and D.2.27 for syntax and semantics.
3614
3615 pass
3616 insert
3617 remove
3618 extract
3619
3620 Default is pass.
3621
3622 Insert mode works in conjunction with "rotate" and "flip" options.
3623 Any pre-existing Display orientation messages will be removed in
3624 insert or remove mode. Extract mode attaches the display matrix to
3625 the packet as side data.
3626
3627 rotate
3628 Set rotation in display orientation SEI (anticlockwise angle in
3629 degrees). Range is -360 to +360. Default is NaN.
3630
3631 flip
3632 Set flip in display orientation SEI.
3633
3634 horizontal
3635 vertical
3636
3637 Default is unset.
3638
3639 level
3640 Set the level in the SPS. Refer to H.264 section A.3 and tables
3641 A-1 to A-5.
3642
3643 The argument must be the name of a level (for example, 4.2), a
3644 level_idc value (for example, 42), or the special name auto
3645 indicating that the filter should attempt to guess the level from
3646 the input stream properties.
3647
3648 h264_mp4toannexb
3649 Convert an H.264 bitstream from length prefixed mode to start code
3650 prefixed mode (as defined in the Annex B of the ITU-T H.264
3651 specification).
3652
3653 This is required by some streaming formats, typically the MPEG-2
3654 transport stream format (muxer "mpegts").
3655
3656 For example to remux an MP4 file containing an H.264 stream to mpegts
3657 format with ffmpeg, you can use the command:
3658
3659 ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
3660
3661 Please note that this filter is auto-inserted for MPEG-TS (muxer
3662 "mpegts") and raw H.264 (muxer "h264") output formats.
3663
3664 h264_redundant_pps
3665 This applies a specific fixup to some Blu-ray streams which contain
3666 redundant PPSs modifying irrelevant parameters of the stream which
3667 confuse other transformations which require correct extradata.
3668
3669 A new single global PPS is created, and all of the redundant PPSs
3670 within the stream are removed.
3671
3672 hevc_metadata
3673 Modify metadata embedded in an HEVC stream.
3674
3675 aud Insert or remove AUD NAL units in all access units of the stream.
3676
3677 insert
3678 remove
3679 sample_aspect_ratio
3680 Set the sample aspect ratio in the stream in the VUI parameters.
3681
3682 video_format
3683 video_full_range_flag
3684 Set the video format in the stream (see H.265 section E.3.1 and
3685 table E.2).
3686
3687 colour_primaries
3688 transfer_characteristics
3689 matrix_coefficients
3690 Set the colour description in the stream (see H.265 section E.3.1
3691 and tables E.3, E.4 and E.5).
3692
3693 chroma_sample_loc_type
3694 Set the chroma sample location in the stream (see H.265 section
3695 E.3.1 and figure E.1).
3696
3697 tick_rate
3698 Set the tick rate in the VPS and VUI parameters (time_scale /
3699 num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
3700 set a constant framerate in the stream. Note that it is likely to
3701 be overridden by container parameters when the stream is in a
3702 container.
3703
3704 num_ticks_poc_diff_one
3705 Set poc_proportional_to_timing_flag in VPS and VUI and use this
3706 value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
3707 7.4.3.1 and E.3.1). Ignored if tick_rate is not also set.
3708
3709 crop_left
3710 crop_right
3711 crop_top
3712 crop_bottom
3713 Set the conformance window cropping offsets in the SPS. These
3714 values will replace the current ones if the stream is already
3715 cropped.
3716
3717 These fields are set in pixels. Note that some sizes may not be
3718 representable if the chroma is subsampled (H.265 section
3719 7.4.3.2.1).
3720
3721 level
3722 Set the level in the VPS and SPS. See H.265 section A.4 and tables
3723 A.6 and A.7.
3724
3725 The argument must be the name of a level (for example, 5.1), a
3726 general_level_idc value (for example, 153 for level 5.1), or the
3727 special name auto indicating that the filter should attempt to
3728 guess the level from the input stream properties.
3729
3730 hevc_mp4toannexb
3731 Convert an HEVC/H.265 bitstream from length prefixed mode to start code
3732 prefixed mode (as defined in the Annex B of the ITU-T H.265
3733 specification).
3734
3735 This is required by some streaming formats, typically the MPEG-2
3736 transport stream format (muxer "mpegts").
3737
3738 For example to remux an MP4 file containing an HEVC stream to mpegts
3739 format with ffmpeg, you can use the command:
3740
3741 ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
3742
3743 Please note that this filter is auto-inserted for MPEG-TS (muxer
3744 "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
3745
3746 imxdump
3747 Modifies the bitstream to fit in MOV and to be usable by the Final Cut
3748 Pro decoder. This filter only applies to the mpeg2video codec, and is
3749 likely not needed for Final Cut Pro 7 and newer with the appropriate
3750 -tag:v.
3751
3752 For example, to remux 30 MB/sec NTSC IMX to MOV:
3753
3754 ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
3755
3756 mjpeg2jpeg
3757 Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
3758
3759 MJPEG is a video codec wherein each video frame is essentially a JPEG
3760 image. The individual frames can be extracted without loss, e.g. by
3761
3762 ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
3763
3764 Unfortunately, these chunks are incomplete JPEG images, because they
3765 lack the DHT segment required for decoding. Quoting from
3766 <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
3767
3768 Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
3769 commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
3770 fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
3771 table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
3772 use basic Huffman encoding, not arithmetic or progressive. . . . You
3773 can indeed extract the MJPEG frames and decode them with a regular JPEG
3774 decoder, but you have to prepend the DHT segment to them, or else the
3775 decoder won't have any idea how to decompress the data. The exact table
3776 necessary is given in the OpenDML spec."
3777
3778 This bitstream filter patches the header of frames extracted from an
3779 MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
3780 produce fully qualified JPEG images.
3781
3782 ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
3783 exiftran -i -9 frame*.jpg
3784 ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
3785
3786 mjpegadump
3787 Add an MJPEG A header to the bitstream, to enable decoding by
3788 Quicktime.
3789
3790 mov2textsub
3791 Extract a representable text file from MOV subtitles, stripping the
3792 metadata header from each subtitle packet.
3793
3794 See also the text2movsub filter.
3795
3796 mp3decomp
3797 Decompress non-standard compressed MP3 audio headers.
3798
3799 mpeg2_metadata
3800 Modify metadata embedded in an MPEG-2 stream.
3801
3802 display_aspect_ratio
3803 Set the display aspect ratio in the stream.
3804
3805 The following fixed values are supported:
3806
3807 4/3
3808 16/9
3809 221/100
3810
3811 Any other value will result in square pixels being signalled
3812 instead (see H.262 section 6.3.3 and table 6-3).
3813
3814 frame_rate
3815 Set the frame rate in the stream. This is constructed from a table
3816 of known values combined with a small multiplier and divisor - if
3817 the supplied value is not exactly representable, the nearest
3818 representable value will be used instead (see H.262 section 6.3.3
3819 and table 6-4).
3820
3821 video_format
3822 Set the video format in the stream (see H.262 section 6.3.6 and
3823 table 6-6).
3824
3825 colour_primaries
3826 transfer_characteristics
3827 matrix_coefficients
3828 Set the colour description in the stream (see H.262 section 6.3.6
3829 and tables 6-7, 6-8 and 6-9).
3830
3831 mpeg4_unpack_bframes
3832 Unpack DivX-style packed B-frames.
3833
3834 DivX-style packed B-frames are not valid MPEG-4 and were only a
3835 workaround for the broken Video for Windows subsystem. They use more
3836 space, can cause minor AV sync issues, require more CPU power to decode
3837 (unless the player has some decoded picture queue to compensate the
3838 2,0,2,0 frame per packet style) and cause trouble if copied into a
3839 standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
3840 not be able to decode them, since they are not valid MPEG-4.
3841
3842 For example to fix an AVI file containing an MPEG-4 stream with DivX-
3843 style packed B-frames using ffmpeg, you can use the command:
3844
3845 ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
3846
3847 noise
3848 Damages the contents of packets or simply drops them without damaging
3849 the container. Can be used for fuzzing or testing error
3850 resilience/concealment.
3851
3852 Parameters:
3853
3854 amount
3855 Accepts an expression whose evaluation per-packet determines how
3856 often bytes in that packet will be modified. A value below 0 will
3857 result in a variable frequency. Default is 0 which results in no
3858 modification. However, if neither amount nor drop is specified,
3859 amount will be set to -1. See below for accepted variables.
3860
3861 drop
3862 Accepts an expression evaluated per-packet whose value determines
3863 whether that packet is dropped. Evaluation to a positive value
3864 results in the packet being dropped. Evaluation to a negative value
3865 results in a variable chance of it being dropped, roughly inverse
3866 in proportion to the magnitude of the value. Default is 0 which
3867 results in no drops. See below for accepted variables.
3868
3869 dropamount
3870 Accepts a non-negative integer, which assigns a variable chance of
3871 it being dropped, roughly inverse in proportion to the value.
3872 Default is 0 which results in no drops. This option is kept for
3873 backwards compatibility and is equivalent to setting drop to a
3874 negative value with the same magnitude i.e. "dropamount=4" is the
3875 same as "drop=-4". Ignored if drop is also specified.
3876
3877 Both "amount" and "drop" accept expressions containing the following
3878 variables:
3879
3880 n The index of the packet, starting from zero.
3881
3882 tb The timebase for packet timestamps.
3883
3884 pts Packet presentation timestamp.
3885
3886 dts Packet decoding timestamp.
3887
3888 nopts
3889 Constant representing AV_NOPTS_VALUE.
3890
3891 startpts
3892 First non-AV_NOPTS_VALUE PTS seen in the stream.
3893
3894 startdts
3895 First non-AV_NOPTS_VALUE DTS seen in the stream.
3896
3897 duration
3898 d Packet duration, in timebase units.
3899
3900 pos Packet position in input; may be -1 when unknown or not set.
3901
3902 size
3903 Packet size, in bytes.
3904
3905 key Whether packet is marked as a keyframe.
3906
3907 state
3908 A pseudo random integer, primarily derived from the content of
3909 packet payload.
3910
3911 Examples
3912
3913 Apply modification to every byte but don't drop any packets.
3914
3915 ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
3916
3917 Drop every video packet not marked as a keyframe after timestamp 30s
3918 but do not modify any of the remaining packets.
3919
3920 ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
3921
3922 Drop one second of audio every 10 seconds and add some random noise to
3923 the rest.
3924
3925 ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
3926
3927 null
3928 This bitstream filter passes the packets through unchanged.
3929
3930 pcm_rechunk
3931 Repacketize PCM audio to a fixed number of samples per packet or a
3932 fixed packet rate per second. This is similar to the asetnsamples audio
3933 filter but works on audio packets instead of audio frames.
3934
3935 nb_out_samples, n
3936 Set the number of samples per each output audio packet. The number
3937 is intended as the number of samples per each channel. Default
3938 value is 1024.
3939
3940 pad, p
3941 If set to 1, the filter will pad the last audio packet with
3942 silence, so that it will contain the same number of samples (or
3943 roughly the same number of samples, see frame_rate) as the previous
3944 ones. Default value is 1.
3945
3946 frame_rate, r
3947 This option makes the filter output a fixed number of packets per
3948 second instead of a fixed number of samples per packet. If the
3949 audio sample rate is not divisible by the frame rate then the
3950 number of samples will not be constant but will vary slightly so
3951 that each packet will start as close to the frame boundary as
3952 possible. Using this option has precedence over nb_out_samples.
3953
3954 You can generate the well known 1602-1601-1602-1601-1602 pattern of
3955 48kHz audio for NTSC frame rate using the frame_rate option.
3956
3957 ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
3958
3959 pgs_frame_merge
3960 Merge a sequence of PGS Subtitle segments ending with an "end of
3961 display set" segment into a single packet.
3962
3963 This is required by some containers that support PGS subtitles (muxer
3964 "matroska").
3965
3966 prores_metadata
3967 Modify color property metadata embedded in prores stream.
3968
3969 color_primaries
3970 Set the color primaries. Available values are:
3971
3972 auto
3973 Keep the same color primaries property (default).
3974
3975 unknown
3976 bt709
3977 bt470bg
3978 BT601 625
3979
3980 smpte170m
3981 BT601 525
3982
3983 bt2020
3984 smpte431
3985 DCI P3
3986
3987 smpte432
3988 P3 D65
3989
3990 transfer_characteristics
3991 Set the color transfer. Available values are:
3992
3993 auto
3994 Keep the same transfer characteristics property (default).
3995
3996 unknown
3997 bt709
3998 BT 601, BT 709, BT 2020
3999
4000 smpte2084
4001 SMPTE ST 2084
4002
4003 arib-std-b67
4004 ARIB STD-B67
4005
4006 matrix_coefficients
4007 Set the matrix coefficient. Available values are:
4008
4009 auto
4010 Keep the same colorspace property (default).
4011
4012 unknown
4013 bt709
4014 smpte170m
4015 BT 601
4016
4017 bt2020nc
4018
4019 Set Rec709 colorspace for each frame of the file
4020
4021 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
4022
4023 Set Hybrid Log-Gamma parameters for each frame of the file
4024
4025 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
4026
4027 remove_extra
4028 Remove extradata from packets.
4029
4030 It accepts the following parameter:
4031
4032 freq
4033 Set which frame types to remove extradata from.
4034
4035 k Remove extradata from non-keyframes only.
4036
4037 keyframe
4038 Remove extradata from keyframes only.
4039
4040 e, all
4041 Remove extradata from all frames.
4042
4043 setts
4044 Set PTS and DTS in packets.
4045
4046 It accepts the following parameters:
4047
4048 ts
4049 pts
4050 dts Set expressions for PTS, DTS or both.
4051
4052 duration
4053 Set expression for duration.
4054
4055 time_base
4056 Set output time base.
4057
4058 The expressions are evaluated through the eval API and can contain the
4059 following constants:
4060
4061 N The count of the input packet. Starting from 0.
4062
4063 TS The demux timestamp in input in case of "ts" or "dts" option or
4064 presentation timestamp in case of "pts" option.
4065
4066 POS The original position in the file of the packet, or undefined if
4067 undefined for the current packet
4068
4069 DTS The demux timestamp in input.
4070
4071 PTS The presentation timestamp in input.
4072
4073 DURATION
4074 The duration in input.
4075
4076 STARTDTS
4077 The DTS of the first packet.
4078
4079 STARTPTS
4080 The PTS of the first packet.
4081
4082 PREV_INDTS
4083 The previous input DTS.
4084
4085 PREV_INPTS
4086 The previous input PTS.
4087
4088 PREV_INDURATION
4089 The previous input duration.
4090
4091 PREV_OUTDTS
4092 The previous output DTS.
4093
4094 PREV_OUTPTS
4095 The previous output PTS.
4096
4097 PREV_OUTDURATION
4098 The previous output duration.
4099
4100 NEXT_DTS
4101 The next input DTS.
4102
4103 NEXT_PTS
4104 The next input PTS.
4105
4106 NEXT_DURATION
4107 The next input duration.
4108
4109 TB The timebase of stream packet belongs.
4110
4111 TB_OUT
4112 The output timebase.
4113
4114 SR The sample rate of stream packet belongs.
4115
4116 NOPTS
4117 The AV_NOPTS_VALUE constant.
4118
4119 text2movsub
4120 Convert text subtitles to MOV subtitles (as used by the "mov_text"
4121 codec) with metadata headers.
4122
4123 See also the mov2textsub filter.
4124
4125 trace_headers
4126 Log trace output containing all syntax elements in the coded stream
4127 headers (everything above the level of individual coded blocks). This
4128 can be useful for debugging low-level stream issues.
4129
4130 Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
4131 the build only a subset of these may be available.
4132
4133 truehd_core
4134 Extract the core from a TrueHD stream, dropping ATMOS data.
4135
4136 vp9_metadata
4137 Modify metadata embedded in a VP9 stream.
4138
4139 color_space
4140 Set the color space value in the frame header. Note that any frame
4141 set to RGB will be implicitly set to PC range and that RGB is
4142 incompatible with profiles 0 and 2.
4143
4144 unknown
4145 bt601
4146 bt709
4147 smpte170
4148 smpte240
4149 bt2020
4150 rgb
4151 color_range
4152 Set the color range value in the frame header. Note that any value
4153 imposed by the color space will take precedence over this value.
4154
4155 tv
4156 pc
4157
4158 vp9_superframe
4159 Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
4160 fixes merging of split/segmented VP9 streams where the alt-ref frame
4161 was split from its visible counterpart.
4162
4163 vp9_superframe_split
4164 Split VP9 superframes into single frames.
4165
4166 vp9_raw_reorder
4167 Given a VP9 stream with correct timestamps but possibly out of order,
4168 insert additional show-existing-frame packets to correct the ordering.
4169
4171 The libavformat library provides some generic global options, which can
4172 be set on all the muxers and demuxers. In addition each muxer or
4173 demuxer may support so-called private options, which are specific for
4174 that component.
4175
4176 Options may be set by specifying -option value in the FFmpeg tools, or
4177 by setting the value explicitly in the "AVFormatContext" options or
4178 using the libavutil/opt.h API for programmatic use.
4179
4180 The list of supported options follows:
4181
4182 avioflags flags (input/output)
4183 Possible values:
4184
4185 direct
4186 Reduce buffering.
4187
4188 probesize integer (input)
4189 Set probing size in bytes, i.e. the size of the data to analyze to
4190 get stream information. A higher value will enable detecting more
4191 information in case it is dispersed into the stream, but will
4192 increase latency. Must be an integer not lesser than 32. It is
4193 5000000 by default.
4194
4195 max_probe_packets integer (input)
4196 Set the maximum number of buffered packets when probing a codec.
4197 Default is 2500 packets.
4198
4199 packetsize integer (output)
4200 Set packet size.
4201
4202 fflags flags
4203 Set format flags. Some are implemented for a limited number of
4204 formats.
4205
4206 Possible values for input files:
4207
4208 discardcorrupt
4209 Discard corrupted packets.
4210
4211 fastseek
4212 Enable fast, but inaccurate seeks for some formats.
4213
4214 genpts
4215 Generate missing PTS if DTS is present.
4216
4217 igndts
4218 Ignore DTS if PTS is set. Inert when nofillin is set.
4219
4220 ignidx
4221 Ignore index.
4222
4223 nobuffer
4224 Reduce the latency introduced by buffering during initial input
4225 streams analysis.
4226
4227 nofillin
4228 Do not fill in missing values in packet fields that can be
4229 exactly calculated.
4230
4231 noparse
4232 Disable AVParsers, this needs "+nofillin" too.
4233
4234 sortdts
4235 Try to interleave output packets by DTS. At present, available
4236 only for AVIs with an index.
4237
4238 Possible values for output files:
4239
4240 autobsf
4241 Automatically apply bitstream filters as required by the output
4242 format. Enabled by default.
4243
4244 bitexact
4245 Only write platform-, build- and time-independent data. This
4246 ensures that file and data checksums are reproducible and match
4247 between platforms. Its primary use is for regression testing.
4248
4249 flush_packets
4250 Write out packets immediately.
4251
4252 shortest
4253 Stop muxing at the end of the shortest stream. It may be
4254 needed to increase max_interleave_delta to avoid flushing the
4255 longer streams before EOF.
4256
4257 seek2any integer (input)
4258 Allow seeking to non-keyframes on demuxer level when supported if
4259 set to 1. Default is 0.
4260
4261 analyzeduration integer (input)
4262 Specify how many microseconds are analyzed to probe the input. A
4263 higher value will enable detecting more accurate information, but
4264 will increase latency. It defaults to 5,000,000 microseconds = 5
4265 seconds.
4266
4267 cryptokey hexadecimal string (input)
4268 Set decryption key.
4269
4270 indexmem integer (input)
4271 Set max memory used for timestamp index (per stream).
4272
4273 rtbufsize integer (input)
4274 Set max memory used for buffering real-time frames.
4275
4276 fdebug flags (input/output)
4277 Print specific debug info.
4278
4279 Possible values:
4280
4281 ts
4282 max_delay integer (input/output)
4283 Set maximum muxing or demuxing delay in microseconds.
4284
4285 fpsprobesize integer (input)
4286 Set number of frames used to probe fps.
4287
4288 audio_preload integer (output)
4289 Set microseconds by which audio packets should be interleaved
4290 earlier.
4291
4292 chunk_duration integer (output)
4293 Set microseconds for each chunk.
4294
4295 chunk_size integer (output)
4296 Set size in bytes for each chunk.
4297
4298 err_detect, f_err_detect flags (input)
4299 Set error detection flags. "f_err_detect" is deprecated and should
4300 be used only via the ffmpeg tool.
4301
4302 Possible values:
4303
4304 crccheck
4305 Verify embedded CRCs.
4306
4307 bitstream
4308 Detect bitstream specification deviations.
4309
4310 buffer
4311 Detect improper bitstream length.
4312
4313 explode
4314 Abort decoding on minor error detection.
4315
4316 careful
4317 Consider things that violate the spec and have not been seen in
4318 the wild as errors.
4319
4320 compliant
4321 Consider all spec non compliancies as errors.
4322
4323 aggressive
4324 Consider things that a sane encoder should not do as an error.
4325
4326 max_interleave_delta integer (output)
4327 Set maximum buffering duration for interleaving. The duration is
4328 expressed in microseconds, and defaults to 10000000 (10 seconds).
4329
4330 To ensure all the streams are interleaved correctly, libavformat
4331 will wait until it has at least one packet for each stream before
4332 actually writing any packets to the output file. When some streams
4333 are "sparse" (i.e. there are large gaps between successive
4334 packets), this can result in excessive buffering.
4335
4336 This field specifies the maximum difference between the timestamps
4337 of the first and the last packet in the muxing queue, above which
4338 libavformat will output a packet regardless of whether it has
4339 queued a packet for all the streams.
4340
4341 If set to 0, libavformat will continue buffering packets until it
4342 has a packet for each stream, regardless of the maximum timestamp
4343 difference between the buffered packets.
4344
4345 use_wallclock_as_timestamps integer (input)
4346 Use wallclock as timestamps if set to 1. Default is 0.
4347
4348 avoid_negative_ts integer (output)
4349 Possible values:
4350
4351 make_non_negative
4352 Shift timestamps to make them non-negative. Also note that
4353 this affects only leading negative timestamps, and not non-
4354 monotonic negative timestamps.
4355
4356 make_zero
4357 Shift timestamps so that the first timestamp is 0.
4358
4359 auto (default)
4360 Enables shifting when required by the target format.
4361
4362 disabled
4363 Disables shifting of timestamp.
4364
4365 When shifting is enabled, all output timestamps are shifted by the
4366 same amount. Audio, video, and subtitles desynching and relative
4367 timestamp differences are preserved compared to how they would have
4368 been without shifting.
4369
4370 skip_initial_bytes integer (input)
4371 Set number of bytes to skip before reading header and frames if set
4372 to 1. Default is 0.
4373
4374 correct_ts_overflow integer (input)
4375 Correct single timestamp overflows if set to 1. Default is 1.
4376
4377 flush_packets integer (output)
4378 Flush the underlying I/O stream after each packet. Default is -1
4379 (auto), which means that the underlying protocol will decide, 1
4380 enables it, and has the effect of reducing the latency, 0 disables
4381 it and may increase IO throughput in some cases.
4382
4383 output_ts_offset offset (output)
4384 Set the output time offset.
4385
4386 offset must be a time duration specification, see the Time duration
4387 section in the ffmpeg-utils(1) manual.
4388
4389 The offset is added by the muxer to the output timestamps.
4390
4391 Specifying a positive offset means that the corresponding streams
4392 are delayed bt the time duration specified in offset. Default value
4393 is 0 (meaning that no offset is applied).
4394
4395 format_whitelist list (input)
4396 "," separated list of allowed demuxers. By default all are allowed.
4397
4398 dump_separator string (input)
4399 Separator used to separate the fields printed on the command line
4400 about the Stream parameters. For example, to separate the fields
4401 with newlines and indentation:
4402
4403 ffprobe -dump_separator "
4404 " -i ~/videos/matrixbench_mpeg2.mpg
4405
4406 max_streams integer (input)
4407 Specifies the maximum number of streams. This can be used to reject
4408 files that would require too many resources due to a large number
4409 of streams.
4410
4411 skip_estimate_duration_from_pts bool (input)
4412 Skip estimation of input duration when calculated using PTS. At
4413 present, applicable for MPEG-PS and MPEG-TS.
4414
4415 strict, f_strict integer (input/output)
4416 Specify how strictly to follow the standards. "f_strict" is
4417 deprecated and should be used only via the ffmpeg tool.
4418
4419 Possible values:
4420
4421 very
4422 strictly conform to an older more strict version of the spec or
4423 reference software
4424
4425 strict
4426 strictly conform to all the things in the spec no matter what
4427 consequences
4428
4429 normal
4430 unofficial
4431 allow unofficial extensions
4432
4433 experimental
4434 allow non standardized experimental things, experimental
4435 (unfinished/work in progress/not well tested) decoders and
4436 encoders. Note: experimental decoders can pose a security
4437 risk, do not use this for decoding untrusted input.
4438
4439 Format stream specifiers
4440 Format stream specifiers allow selection of one or more streams that
4441 match specific properties.
4442
4443 The exact semantics of stream specifiers is defined by the
4444 "avformat_match_stream_specifier()" function declared in the
4445 libavformat/avformat.h header and documented in the Stream specifiers
4446 section in the ffmpeg(1) manual.
4447
4449 Demuxers are configured elements in FFmpeg that can read the multimedia
4450 streams from a particular type of file.
4451
4452 When you configure your FFmpeg build, all the supported demuxers are
4453 enabled by default. You can list all available ones using the configure
4454 option "--list-demuxers".
4455
4456 You can disable all the demuxers using the configure option
4457 "--disable-demuxers", and selectively enable a single demuxer with the
4458 option "--enable-demuxer=DEMUXER", or disable it with the option
4459 "--disable-demuxer=DEMUXER".
4460
4461 The option "-demuxers" of the ff* tools will display the list of
4462 enabled demuxers. Use "-formats" to view a combined list of enabled
4463 demuxers and muxers.
4464
4465 The description of some of the currently available demuxers follows.
4466
4467 aa
4468 Audible Format 2, 3, and 4 demuxer.
4469
4470 This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
4471
4472 aac
4473 Raw Audio Data Transport Stream AAC demuxer.
4474
4475 This demuxer is used to demux an ADTS input containing a single AAC
4476 stream alongwith any ID3v1/2 or APE tags in it.
4477
4478 apng
4479 Animated Portable Network Graphics demuxer.
4480
4481 This demuxer is used to demux APNG files. All headers, but the PNG
4482 signature, up to (but not including) the first fcTL chunk are
4483 transmitted as extradata. Frames are then split as being all the
4484 chunks between two fcTL ones, or between the last fcTL and IEND chunks.
4485
4486 -ignore_loop bool
4487 Ignore the loop variable in the file if set. Default is enabled.
4488
4489 -max_fps int
4490 Maximum framerate in frames per second. Default of 0 imposes no
4491 limit.
4492
4493 -default_fps int
4494 Default framerate in frames per second when none is specified in
4495 the file (0 meaning as fast as possible). Default is 15.
4496
4497 asf
4498 Advanced Systems Format demuxer.
4499
4500 This demuxer is used to demux ASF files and MMS network streams.
4501
4502 -no_resync_search bool
4503 Do not try to resynchronize by looking for a certain optional start
4504 code.
4505
4506 concat
4507 Virtual concatenation script demuxer.
4508
4509 This demuxer reads a list of files and other directives from a text
4510 file and demuxes them one after the other, as if all their packets had
4511 been muxed together.
4512
4513 The timestamps in the files are adjusted so that the first file starts
4514 at 0 and each next file starts where the previous one finishes. Note
4515 that it is done globally and may cause gaps if all streams do not have
4516 exactly the same length.
4517
4518 All files must have the same streams (same codecs, same time base,
4519 etc.).
4520
4521 The duration of each file is used to adjust the timestamps of the next
4522 file: if the duration is incorrect (because it was computed using the
4523 bit-rate or because the file is truncated, for example), it can cause
4524 artifacts. The "duration" directive can be used to override the
4525 duration stored in each file.
4526
4527 Syntax
4528
4529 The script is a text file in extended-ASCII, with one directive per
4530 line. Empty lines, leading spaces and lines starting with '#' are
4531 ignored. The following directive is recognized:
4532
4533 "file path"
4534 Path to a file to read; special characters and spaces must be
4535 escaped with backslash or single quotes.
4536
4537 All subsequent file-related directives apply to that file.
4538
4539 "ffconcat version 1.0"
4540 Identify the script type and version.
4541
4542 To make FFmpeg recognize the format automatically, this directive
4543 must appear exactly as is (no extra space or byte-order-mark) on
4544 the very first line of the script.
4545
4546 "duration dur"
4547 Duration of the file. This information can be specified from the
4548 file; specifying it here may be more efficient or help if the
4549 information from the file is not available or accurate.
4550
4551 If the duration is set for all files, then it is possible to seek
4552 in the whole concatenated video.
4553
4554 "inpoint timestamp"
4555 In point of the file. When the demuxer opens the file it instantly
4556 seeks to the specified timestamp. Seeking is done so that all
4557 streams can be presented successfully at In point.
4558
4559 This directive works best with intra frame codecs, because for non-
4560 intra frame ones you will usually get extra packets before the
4561 actual In point and the decoded content will most likely contain
4562 frames before In point too.
4563
4564 For each file, packets before the file In point will have
4565 timestamps less than the calculated start timestamp of the file
4566 (negative in case of the first file), and the duration of the files
4567 (if not specified by the "duration" directive) will be reduced
4568 based on their specified In point.
4569
4570 Because of potential packets before the specified In point, packet
4571 timestamps may overlap between two concatenated files.
4572
4573 "outpoint timestamp"
4574 Out point of the file. When the demuxer reaches the specified
4575 decoding timestamp in any of the streams, it handles it as an end
4576 of file condition and skips the current and all the remaining
4577 packets from all streams.
4578
4579 Out point is exclusive, which means that the demuxer will not
4580 output packets with a decoding timestamp greater or equal to Out
4581 point.
4582
4583 This directive works best with intra frame codecs and formats where
4584 all streams are tightly interleaved. For non-intra frame codecs you
4585 will usually get additional packets with presentation timestamp
4586 after Out point therefore the decoded content will most likely
4587 contain frames after Out point too. If your streams are not tightly
4588 interleaved you may not get all the packets from all streams before
4589 Out point and you may only will be able to decode the earliest
4590 stream until Out point.
4591
4592 The duration of the files (if not specified by the "duration"
4593 directive) will be reduced based on their specified Out point.
4594
4595 "file_packet_metadata key=value"
4596 Metadata of the packets of the file. The specified metadata will be
4597 set for each file packet. You can specify this directive multiple
4598 times to add multiple metadata entries. This directive is
4599 deprecated, use "file_packet_meta" instead.
4600
4601 "file_packet_meta key value"
4602 Metadata of the packets of the file. The specified metadata will be
4603 set for each file packet. You can specify this directive multiple
4604 times to add multiple metadata entries.
4605
4606 "option key value"
4607 Option to access, open and probe the file. Can be present multiple
4608 times.
4609
4610 "stream"
4611 Introduce a stream in the virtual file. All subsequent stream-
4612 related directives apply to the last introduced stream. Some
4613 streams properties must be set in order to allow identifying the
4614 matching streams in the subfiles. If no streams are defined in the
4615 script, the streams from the first file are copied.
4616
4617 "exact_stream_id id"
4618 Set the id of the stream. If this directive is given, the string
4619 with the corresponding id in the subfiles will be used. This is
4620 especially useful for MPEG-PS (VOB) files, where the order of the
4621 streams is not reliable.
4622
4623 "stream_meta key value"
4624 Metadata for the stream. Can be present multiple times.
4625
4626 "stream_codec value"
4627 Codec for the stream.
4628
4629 "stream_extradata hex_string"
4630 Extradata for the string, encoded in hexadecimal.
4631
4632 "chapter id start end"
4633 Add a chapter. id is an unique identifier, possibly small and
4634 consecutive.
4635
4636 Options
4637
4638 This demuxer accepts the following option:
4639
4640 safe
4641 If set to 1, reject unsafe file paths and directives. A file path
4642 is considered safe if it does not contain a protocol specification
4643 and is relative and all components only contain characters from the
4644 portable character set (letters, digits, period, underscore and
4645 hyphen) and have no period at the beginning of a component.
4646
4647 If set to 0, any file name is accepted.
4648
4649 The default is 1.
4650
4651 auto_convert
4652 If set to 1, try to perform automatic conversions on packet data to
4653 make the streams concatenable. The default is 1.
4654
4655 Currently, the only conversion is adding the h264_mp4toannexb
4656 bitstream filter to H.264 streams in MP4 format. This is necessary
4657 in particular if there are resolution changes.
4658
4659 segment_time_metadata
4660 If set to 1, every packet will contain the lavf.concat.start_time
4661 and the lavf.concat.duration packet metadata values which are the
4662 start_time and the duration of the respective file segments in the
4663 concatenated output expressed in microseconds. The duration
4664 metadata is only set if it is known based on the concat file. The
4665 default is 0.
4666
4667 Examples
4668
4669 • Use absolute filenames and include some comments:
4670
4671 # my first filename
4672 file /mnt/share/file-1.wav
4673 # my second filename including whitespace
4674 file '/mnt/share/file 2.wav'
4675 # my third filename including whitespace plus single quote
4676 file '/mnt/share/file 3'\''.wav'
4677
4678 • Allow for input format auto-probing, use safe filenames and set the
4679 duration of the first file:
4680
4681 ffconcat version 1.0
4682
4683 file file-1.wav
4684 duration 20.0
4685
4686 file subdir/file-2.wav
4687
4688 dash
4689 Dynamic Adaptive Streaming over HTTP demuxer.
4690
4691 This demuxer presents all AVStreams found in the manifest. By setting
4692 the discard flags on AVStreams the caller can decide which streams to
4693 actually receive. Each stream mirrors the "id" and "bandwidth"
4694 properties from the "<Representation>" as metadata keys named "id" and
4695 "variant_bitrate" respectively.
4696
4697 Options
4698
4699 This demuxer accepts the following option:
4700
4701 cenc_decryption_key
4702 16-byte key, in hex, to decrypt files encrypted using ISO Common
4703 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
4704
4705 imf
4706 Interoperable Master Format demuxer.
4707
4708 This demuxer presents audio and video streams found in an IMF
4709 Composition.
4710
4711 flv, live_flv, kux
4712 Adobe Flash Video Format demuxer.
4713
4714 This demuxer is used to demux FLV files and RTMP network streams. In
4715 case of live network streams, if you force format, you may use live_flv
4716 option instead of flv to survive timestamp discontinuities. KUX is a
4717 flv variant used on the Youku platform.
4718
4719 ffmpeg -f flv -i myfile.flv ...
4720 ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
4721
4722 -flv_metadata bool
4723 Allocate the streams according to the onMetaData array content.
4724
4725 -flv_ignore_prevtag bool
4726 Ignore the size of previous tag value.
4727
4728 -flv_full_metadata bool
4729 Output all context of the onMetadata.
4730
4731 gif
4732 Animated GIF demuxer.
4733
4734 It accepts the following options:
4735
4736 min_delay
4737 Set the minimum valid delay between frames in hundredths of
4738 seconds. Range is 0 to 6000. Default value is 2.
4739
4740 max_gif_delay
4741 Set the maximum valid delay between frames in hundredth of seconds.
4742 Range is 0 to 65535. Default value is 65535 (nearly eleven
4743 minutes), the maximum value allowed by the specification.
4744
4745 default_delay
4746 Set the default delay between frames in hundredths of seconds.
4747 Range is 0 to 6000. Default value is 10.
4748
4749 ignore_loop
4750 GIF files can contain information to loop a certain number of times
4751 (or infinitely). If ignore_loop is set to 1, then the loop setting
4752 from the input will be ignored and looping will not occur. If set
4753 to 0, then looping will occur and will cycle the number of times
4754 according to the GIF. Default value is 1.
4755
4756 For example, with the overlay filter, place an infinitely looping GIF
4757 over another video:
4758
4759 ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
4760
4761 Note that in the above example the shortest option for overlay filter
4762 is used to end the output video at the length of the shortest input
4763 file, which in this case is input.mp4 as the GIF in this example loops
4764 infinitely.
4765
4766 hls
4767 HLS demuxer
4768
4769 Apple HTTP Live Streaming demuxer.
4770
4771 This demuxer presents all AVStreams from all variant streams. The id
4772 field is set to the bitrate variant index number. By setting the
4773 discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
4774 caller can decide which variant streams to actually receive. The total
4775 bitrate of the variant that the stream belongs to is available in a
4776 metadata key named "variant_bitrate".
4777
4778 It accepts the following options:
4779
4780 live_start_index
4781 segment index to start live streams at (negative values are from
4782 the end).
4783
4784 prefer_x_start
4785 prefer to use #EXT-X-START if it's in playlist instead of
4786 live_start_index.
4787
4788 allowed_extensions
4789 ',' separated list of file extensions that hls is allowed to
4790 access.
4791
4792 max_reload
4793 Maximum number of times a insufficient list is attempted to be
4794 reloaded. Default value is 1000.
4795
4796 m3u8_hold_counters
4797 The maximum number of times to load m3u8 when it refreshes without
4798 new segments. Default value is 1000.
4799
4800 http_persistent
4801 Use persistent HTTP connections. Applicable only for HTTP streams.
4802 Enabled by default.
4803
4804 http_multiple
4805 Use multiple HTTP connections for downloading HTTP segments.
4806 Enabled by default for HTTP/1.1 servers.
4807
4808 http_seekable
4809 Use HTTP partial requests for downloading HTTP segments. 0 =
4810 disable, 1 = enable, -1 = auto, Default is auto.
4811
4812 seg_format_options
4813 Set options for the demuxer of media segments using a list of
4814 key=value pairs separated by ":".
4815
4816 image2
4817 Image file demuxer.
4818
4819 This demuxer reads from a list of image files specified by a pattern.
4820 The syntax and meaning of the pattern is specified by the option
4821 pattern_type.
4822
4823 The pattern may contain a suffix which is used to automatically
4824 determine the format of the images contained in the files.
4825
4826 The size, the pixel format, and the format of each image must be the
4827 same for all the files in the sequence.
4828
4829 This demuxer accepts the following options:
4830
4831 framerate
4832 Set the frame rate for the video stream. It defaults to 25.
4833
4834 loop
4835 If set to 1, loop over the input. Default value is 0.
4836
4837 pattern_type
4838 Select the pattern type used to interpret the provided filename.
4839
4840 pattern_type accepts one of the following values.
4841
4842 none
4843 Disable pattern matching, therefore the video will only contain
4844 the specified image. You should use this option if you do not
4845 want to create sequences from multiple images and your
4846 filenames may contain special pattern characters.
4847
4848 sequence
4849 Select a sequence pattern type, used to specify a sequence of
4850 files indexed by sequential numbers.
4851
4852 A sequence pattern may contain the string "%d" or "%0Nd", which
4853 specifies the position of the characters representing a
4854 sequential number in each filename matched by the pattern. If
4855 the form "%d0Nd" is used, the string representing the number in
4856 each filename is 0-padded and N is the total number of 0-padded
4857 digits representing the number. The literal character '%' can
4858 be specified in the pattern with the string "%%".
4859
4860 If the sequence pattern contains "%d" or "%0Nd", the first
4861 filename of the file list specified by the pattern must contain
4862 a number inclusively contained between start_number and
4863 start_number+start_number_range-1, and all the following
4864 numbers must be sequential.
4865
4866 For example the pattern "img-%03d.bmp" will match a sequence of
4867 filenames of the form img-001.bmp, img-002.bmp, ...,
4868 img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
4869 sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
4870 ..., i%m%g-10.jpg, etc.
4871
4872 Note that the pattern must not necessarily contain "%d" or
4873 "%0Nd", for example to convert a single image file img.jpeg you
4874 can employ the command:
4875
4876 ffmpeg -i img.jpeg img.png
4877
4878 glob
4879 Select a glob wildcard pattern type.
4880
4881 The pattern is interpreted like a "glob()" pattern. This is
4882 only selectable if libavformat was compiled with globbing
4883 support.
4884
4885 glob_sequence (deprecated, will be removed)
4886 Select a mixed glob wildcard/sequence pattern.
4887
4888 If your version of libavformat was compiled with globbing
4889 support, and the provided pattern contains at least one glob
4890 meta character among "%*?[]{}" that is preceded by an unescaped
4891 "%", the pattern is interpreted like a "glob()" pattern,
4892 otherwise it is interpreted like a sequence pattern.
4893
4894 All glob special characters "%*?[]{}" must be prefixed with
4895 "%". To escape a literal "%" you shall use "%%".
4896
4897 For example the pattern "foo-%*.jpeg" will match all the
4898 filenames prefixed by "foo-" and terminating with ".jpeg", and
4899 "foo-%?%?%?.jpeg" will match all the filenames prefixed with
4900 "foo-", followed by a sequence of three characters, and
4901 terminating with ".jpeg".
4902
4903 This pattern type is deprecated in favor of glob and sequence.
4904
4905 Default value is glob_sequence.
4906
4907 pixel_format
4908 Set the pixel format of the images to read. If not specified the
4909 pixel format is guessed from the first image file in the sequence.
4910
4911 start_number
4912 Set the index of the file matched by the image file pattern to
4913 start to read from. Default value is 0.
4914
4915 start_number_range
4916 Set the index interval range to check when looking for the first
4917 image file in the sequence, starting from start_number. Default
4918 value is 5.
4919
4920 ts_from_file
4921 If set to 1, will set frame timestamp to modification time of image
4922 file. Note that monotonity of timestamps is not provided: images go
4923 in the same order as without this option. Default value is 0. If
4924 set to 2, will set frame timestamp to the modification time of the
4925 image file in nanosecond precision.
4926
4927 video_size
4928 Set the video size of the images to read. If not specified the
4929 video size is guessed from the first image file in the sequence.
4930
4931 export_path_metadata
4932 If set to 1, will add two extra fields to the metadata found in
4933 input, making them also available for other filters (see drawtext
4934 filter for examples). Default value is 0. The extra fields are
4935 described below:
4936
4937 lavf.image2dec.source_path
4938 Corresponds to the full path to the input file being read.
4939
4940 lavf.image2dec.source_basename
4941 Corresponds to the name of the file being read.
4942
4943 Examples
4944
4945 • Use ffmpeg for creating a video from the images in the file
4946 sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
4947 rate of 10 frames per second:
4948
4949 ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
4950
4951 • As above, but start by reading from a file with index 100 in the
4952 sequence:
4953
4954 ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
4955
4956 • Read images matching the "*.png" glob pattern , that is all the
4957 files terminating with the ".png" suffix:
4958
4959 ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
4960
4961 libgme
4962 The Game Music Emu library is a collection of video game music file
4963 emulators.
4964
4965 See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
4966 information.
4967
4968 It accepts the following options:
4969
4970 track_index
4971 Set the index of which track to demux. The demuxer can only export
4972 one track. Track indexes start at 0. Default is to pick the first
4973 track. Number of tracks is exported as tracks metadata entry.
4974
4975 sample_rate
4976 Set the sampling rate of the exported track. Range is 1000 to
4977 999999. Default is 44100.
4978
4979 max_size (bytes)
4980 The demuxer buffers the entire file into memory. Adjust this value
4981 to set the maximum buffer size, which in turn, acts as a ceiling
4982 for the size of files that can be read. Default is 50 MiB.
4983
4984 libmodplug
4985 ModPlug based module demuxer
4986
4987 See <https://github.com/Konstanty/libmodplug>
4988
4989 It will export one 2-channel 16-bit 44.1 kHz audio stream. Optionally,
4990 a "pal8" 16-color video stream can be exported with or without printed
4991 metadata.
4992
4993 It accepts the following options:
4994
4995 noise_reduction
4996 Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
4997 is 0.
4998
4999 reverb_depth
5000 Set amount of reverb. Range 0-100. Default is 0.
5001
5002 reverb_delay
5003 Set delay in ms, clamped to 40-250 ms. Default is 0.
5004
5005 bass_amount
5006 Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
5007 to 100 (loud). Default is 0.
5008
5009 bass_range
5010 Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
5011 Hz. Default is 0.
5012
5013 surround_depth
5014 Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
5015 (heavy). Default is 0.
5016
5017 surround_delay
5018 Set surround delay in ms, clamped to 5-40 ms. Default is 0.
5019
5020 max_size
5021 The demuxer buffers the entire file into memory. Adjust this value
5022 to set the maximum buffer size, which in turn, acts as a ceiling
5023 for the size of files that can be read. Range is 0 to 100 MiB. 0
5024 removes buffer size limit (not recommended). Default is 5 MiB.
5025
5026 video_stream_expr
5027 String which is evaluated using the eval API to assign colors to
5028 the generated video stream. Variables which can be used are "x",
5029 "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
5030
5031 video_stream
5032 Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
5033
5034 video_stream_w
5035 Set video frame width in 'chars' where one char indicates 8 pixels.
5036 Range is 20-512. Default is 30.
5037
5038 video_stream_h
5039 Set video frame height in 'chars' where one char indicates 8
5040 pixels. Range is 20-512. Default is 30.
5041
5042 video_stream_ptxt
5043 Print metadata on video stream. Includes "speed", "tempo", "order",
5044 "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
5045 Default is 1.
5046
5047 libopenmpt
5048 libopenmpt based module demuxer
5049
5050 See <https://lib.openmpt.org/libopenmpt/> for more information.
5051
5052 Some files have multiple subsongs (tracks) this can be set with the
5053 subsong option.
5054
5055 It accepts the following options:
5056
5057 subsong
5058 Set the subsong index. This can be either 'all', 'auto', or the
5059 index of the subsong. Subsong indexes start at 0. The default is
5060 'auto'.
5061
5062 The default value is to let libopenmpt choose.
5063
5064 layout
5065 Set the channel layout. Valid values are 1, 2, and 4 channel
5066 layouts. The default value is STEREO.
5067
5068 sample_rate
5069 Set the sample rate for libopenmpt to output. Range is from 1000
5070 to INT_MAX. The value default is 48000.
5071
5072 mov/mp4/3gp
5073 Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
5074 (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
5075 12).
5076
5077 Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
5078 ismv, isma, f4v
5079
5080 Options
5081
5082 This demuxer accepts the following options:
5083
5084 enable_drefs
5085 Enable loading of external tracks, disabled by default. Enabling
5086 this can theoretically leak information in some use cases.
5087
5088 use_absolute_path
5089 Allows loading of external tracks via absolute paths, disabled by
5090 default. Enabling this poses a security risk. It should only be
5091 enabled if the source is known to be non-malicious.
5092
5093 seek_streams_individually
5094 When seeking, identify the closest point in each stream
5095 individually and demux packets in that stream from identified
5096 point. This can lead to a different sequence of packets compared to
5097 demuxing linearly from the beginning. Default is true.
5098
5099 ignore_editlist
5100 Ignore any edit list atoms. The demuxer, by default, modifies the
5101 stream index to reflect the timeline described by the edit list.
5102 Default is false.
5103
5104 advanced_editlist
5105 Modify the stream index to reflect the timeline described by the
5106 edit list. "ignore_editlist" must be set to false for this option
5107 to be effective. If both "ignore_editlist" and this option are set
5108 to false, then only the start of the stream index is modified to
5109 reflect initial dwell time or starting timestamp described by the
5110 edit list. Default is true.
5111
5112 ignore_chapters
5113 Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
5114 Note that chapters are only parsed when input is seekable. Default
5115 is false.
5116
5117 use_mfra_for
5118 For seekable fragmented input, set fragment's starting timestamp
5119 from media fragment random access box, if present.
5120
5121 Following options are available:
5122
5123 auto
5124 Auto-detect whether to set mfra timestamps as PTS or DTS
5125 (default)
5126
5127 dts Set mfra timestamps as DTS
5128
5129 pts Set mfra timestamps as PTS
5130
5131 0 Don't use mfra box to set timestamps
5132
5133 use_tfdt
5134 For fragmented input, set fragment's starting timestamp to
5135 "baseMediaDecodeTime" from the "tfdt" box. Default is enabled,
5136 which will prefer to use the "tfdt" box to set DTS. Disable to use
5137 the "earliest_presentation_time" from the "sidx" box. In either
5138 case, the timestamp from the "mfra" box will be used if it's
5139 available and "use_mfra_for" is set to pts or dts.
5140
5141 export_all
5142 Export unrecognized boxes within the udta box as metadata entries.
5143 The first four characters of the box type are set as the key.
5144 Default is false.
5145
5146 export_xmp
5147 Export entire contents of XMP_ box and uuid box as a string with
5148 key "xmp". Note that if "export_all" is set and this option isn't,
5149 the contents of XMP_ box are still exported but with key "XMP_".
5150 Default is false.
5151
5152 activation_bytes
5153 4-byte key required to decrypt Audible AAX and AAX+ files. See
5154 Audible AAX subsection below.
5155
5156 audible_fixed_key
5157 Fixed key used for handling Audible AAX/AAX+ files. It has been
5158 pre-set so should not be necessary to specify.
5159
5160 decryption_key
5161 16-byte key, in hex, to decrypt files encrypted using ISO Common
5162 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
5163
5164 max_stts_delta
5165 Very high sample deltas written in a trak's stts box may
5166 occasionally be intended but usually they are written in error or
5167 used to store a negative value for dts correction when treated as
5168 signed 32-bit integers. This option lets the user set an upper
5169 limit, beyond which the delta is clamped to 1. Values greater than
5170 the limit if negative when cast to int32 are used to adjust onward
5171 dts.
5172
5173 Unit is the track time scale. Range is 0 to UINT_MAX. Default is
5174 "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
5175 for 48 kHz audio streams while accommodating 99.9% of "uint32"
5176 range.
5177
5178 Audible AAX
5179
5180 Audible AAX files are encrypted M4B files, and they can be decrypted by
5181 specifying a 4 byte activation secret.
5182
5183 ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
5184
5185 mpegts
5186 MPEG-2 transport stream demuxer.
5187
5188 This demuxer accepts the following options:
5189
5190 resync_size
5191 Set size limit for looking up a new synchronization. Default value
5192 is 65536.
5193
5194 skip_unknown_pmt
5195 Skip PMTs for programs not defined in the PAT. Default value is 0.
5196
5197 fix_teletext_pts
5198 Override teletext packet PTS and DTS values with the timestamps
5199 calculated from the PCR of the first program which the teletext
5200 stream is part of and is not discarded. Default value is 1, set
5201 this option to 0 if you want your teletext packet PTS and DTS
5202 values untouched.
5203
5204 ts_packetsize
5205 Output option carrying the raw packet size in bytes. Show the
5206 detected raw packet size, cannot be set by the user.
5207
5208 scan_all_pmts
5209 Scan and combine all PMTs. The value is an integer with value from
5210 -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
5211 disabled). Default value is -1.
5212
5213 merge_pmt_versions
5214 Re-use existing streams when a PMT's version is updated and
5215 elementary streams move to different PIDs. Default value is 0.
5216
5217 max_packet_size
5218 Set maximum size, in bytes, of packet emitted by the demuxer.
5219 Payloads above this size are split across multiple packets. Range
5220 is 1 to INT_MAX/2. Default is 204800 bytes.
5221
5222 mpjpeg
5223 MJPEG encapsulated in multi-part MIME demuxer.
5224
5225 This demuxer allows reading of MJPEG, where each frame is represented
5226 as a part of multipart/x-mixed-replace stream.
5227
5228 strict_mime_boundary
5229 Default implementation applies a relaxed standard to multi-part
5230 MIME boundary detection, to prevent regression with numerous
5231 existing endpoints not generating a proper MIME MJPEG stream.
5232 Turning this option on by setting it to 1 will result in a stricter
5233 check of the boundary value.
5234
5235 rawvideo
5236 Raw video demuxer.
5237
5238 This demuxer allows one to read raw video data. Since there is no
5239 header specifying the assumed video parameters, the user must specify
5240 them in order to be able to decode the data correctly.
5241
5242 This demuxer accepts the following options:
5243
5244 framerate
5245 Set input video frame rate. Default value is 25.
5246
5247 pixel_format
5248 Set the input video pixel format. Default value is "yuv420p".
5249
5250 video_size
5251 Set the input video size. This value must be specified explicitly.
5252
5253 For example to read a rawvideo file input.raw with ffplay, assuming a
5254 pixel format of "rgb24", a video size of "320x240", and a frame rate of
5255 10 images per second, use the command:
5256
5257 ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
5258
5259 sbg
5260 SBaGen script demuxer.
5261
5262 This demuxer reads the script language used by SBaGen
5263 <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
5264 script looks like that:
5265
5266 -SE
5267 a: 300-2.5/3 440+4.5/0
5268 b: 300-2.5/0 440+4.5/3
5269 off: -
5270 NOW == a
5271 +0:07:00 == b
5272 +0:14:00 == a
5273 +0:21:00 == b
5274 +0:30:00 off
5275
5276 A SBG script can mix absolute and relative timestamps. If the script
5277 uses either only absolute timestamps (including the script start time)
5278 or only relative ones, then its layout is fixed, and the conversion is
5279 straightforward. On the other hand, if the script mixes both kind of
5280 timestamps, then the NOW reference for relative timestamps will be
5281 taken from the current time of day at the time the script is read, and
5282 the script layout will be frozen according to that reference. That
5283 means that if the script is directly played, the actual times will
5284 match the absolute timestamps up to the sound controller's clock
5285 accuracy, but if the user somehow pauses the playback or seeks, all
5286 times will be shifted accordingly.
5287
5288 tedcaptions
5289 JSON captions used for <http://www.ted.com/>.
5290
5291 TED does not provide links to the captions, but they can be guessed
5292 from the page. The file tools/bookmarklets.html from the FFmpeg source
5293 tree contains a bookmarklet to expose them.
5294
5295 This demuxer accepts the following option:
5296
5297 start_time
5298 Set the start time of the TED talk, in milliseconds. The default is
5299 15000 (15s). It is used to sync the captions with the downloadable
5300 videos, because they include a 15s intro.
5301
5302 Example: convert the captions to a format most players understand:
5303
5304 ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
5305
5306 vapoursynth
5307 Vapoursynth wrapper.
5308
5309 Due to security concerns, Vapoursynth scripts will not be autodetected
5310 so the input format has to be forced. For ff* CLI tools, add "-f
5311 vapoursynth" before the input "-i yourscript.vpy".
5312
5313 This demuxer accepts the following option:
5314
5315 max_script_size
5316 The demuxer buffers the entire script into memory. Adjust this
5317 value to set the maximum buffer size, which in turn, acts as a
5318 ceiling for the size of scripts that can be read. Default is 1
5319 MiB.
5320
5322 FFmpeg is able to dump metadata from media files into a simple
5323 UTF-8-encoded INI-like text file and then load it back using the
5324 metadata muxer/demuxer.
5325
5326 The file format is as follows:
5327
5328 1. A file consists of a header and a number of metadata tags divided
5329 into sections, each on its own line.
5330
5331 2. The header is a ;FFMETADATA string, followed by a version number
5332 (now 1).
5333
5334 3. Metadata tags are of the form key=value
5335
5336 4. Immediately after header follows global metadata
5337
5338 5. After global metadata there may be sections with
5339 per-stream/per-chapter metadata.
5340
5341 6. A section starts with the section name in uppercase (i.e. STREAM or
5342 CHAPTER) in brackets ([, ]) and ends with next section or end of
5343 file.
5344
5345 7. At the beginning of a chapter section there may be an optional
5346 timebase to be used for start/end values. It must be in form
5347 TIMEBASE=num/den, where num and den are integers. If the timebase
5348 is missing then start/end times are assumed to be in nanoseconds.
5349
5350 Next a chapter section must contain chapter start and end times in
5351 form START=num, END=num, where num is a positive integer.
5352
5353 8. Empty lines and lines starting with ; or # are ignored.
5354
5355 9. Metadata keys or values containing special characters (=, ;, #, \
5356 and a newline) must be escaped with a backslash \.
5357
5358 10. Note that whitespace in metadata (e.g. foo = bar) is considered to
5359 be a part of the tag (in the example above key is foo , value is
5360 bar).
5361
5362 A ffmetadata file might look like this:
5363
5364 ;FFMETADATA1
5365 title=bike\\shed
5366 ;this is a comment
5367 artist=FFmpeg troll team
5368
5369 [CHAPTER]
5370 TIMEBASE=1/1000
5371 START=0
5372 #chapter ends at 0:01:00
5373 END=60000
5374 title=chapter \#1
5375 [STREAM]
5376 title=multi\
5377 line
5378
5379 By using the ffmetadata muxer and demuxer it is possible to extract
5380 metadata from an input file to an ffmetadata file, and then transcode
5381 the file into an output file with the edited ffmetadata file.
5382
5383 Extracting an ffmetadata file with ffmpeg goes as follows:
5384
5385 ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
5386
5387 Reinserting edited metadata information from the FFMETADATAFILE file
5388 can be done as:
5389
5390 ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
5391
5393 The libavformat library provides some generic global options, which can
5394 be set on all the protocols. In addition each protocol may support so-
5395 called private options, which are specific for that component.
5396
5397 Options may be set by specifying -option value in the FFmpeg tools, or
5398 by setting the value explicitly in the "AVFormatContext" options or
5399 using the libavutil/opt.h API for programmatic use.
5400
5401 The list of supported options follows:
5402
5403 protocol_whitelist list (input)
5404 Set a ","-separated list of allowed protocols. "ALL" matches all
5405 protocols. Protocols prefixed by "-" are disabled. All protocols
5406 are allowed by default but protocols used by an another protocol
5407 (nested protocols) are restricted to a per protocol subset.
5408
5410 Protocols are configured elements in FFmpeg that enable access to
5411 resources that require specific protocols.
5412
5413 When you configure your FFmpeg build, all the supported protocols are
5414 enabled by default. You can list all available ones using the configure
5415 option "--list-protocols".
5416
5417 You can disable all the protocols using the configure option
5418 "--disable-protocols", and selectively enable a protocol using the
5419 option "--enable-protocol=PROTOCOL", or you can disable a particular
5420 protocol using the option "--disable-protocol=PROTOCOL".
5421
5422 The option "-protocols" of the ff* tools will display the list of
5423 supported protocols.
5424
5425 All protocols accept the following options:
5426
5427 rw_timeout
5428 Maximum time to wait for (network) read/write operations to
5429 complete, in microseconds.
5430
5431 A description of the currently available protocols follows.
5432
5433 amqp
5434 Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
5435 based publish-subscribe communication protocol.
5436
5437 FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
5438 separate AMQP broker must also be run. An example open-source AMQP
5439 broker is RabbitMQ.
5440
5441 After starting the broker, an FFmpeg client may stream data to the
5442 broker using the command:
5443
5444 ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
5445
5446 Where hostname and port (default is 5672) is the address of the broker.
5447 The client may also set a user/password for authentication. The default
5448 for both fields is "guest". Name of virtual host on broker can be set
5449 with vhost. The default value is "/".
5450
5451 Muliple subscribers may stream from the broker using the command:
5452
5453 ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
5454
5455 In RabbitMQ all data published to the broker flows through a specific
5456 exchange, and each subscribing client has an assigned queue/buffer.
5457 When a packet arrives at an exchange, it may be copied to a client's
5458 queue depending on the exchange and routing_key fields.
5459
5460 The following options are supported:
5461
5462 exchange
5463 Sets the exchange to use on the broker. RabbitMQ has several
5464 predefined exchanges: "amq.direct" is the default exchange, where
5465 the publisher and subscriber must have a matching routing_key;
5466 "amq.fanout" is the same as a broadcast operation (i.e. the data is
5467 forwarded to all queues on the fanout exchange independent of the
5468 routing_key); and "amq.topic" is similar to "amq.direct", but
5469 allows for more complex pattern matching (refer to the RabbitMQ
5470 documentation).
5471
5472 routing_key
5473 Sets the routing key. The default value is "amqp". The routing key
5474 is used on the "amq.direct" and "amq.topic" exchanges to decide
5475 whether packets are written to the queue of a subscriber.
5476
5477 pkt_size
5478 Maximum size of each packet sent/received to the broker. Default is
5479 131072. Minimum is 4096 and max is any large value (representable
5480 by an int). When receiving packets, this sets an internal buffer
5481 size in FFmpeg. It should be equal to or greater than the size of
5482 the published packets to the broker. Otherwise the received message
5483 may be truncated causing decoding errors.
5484
5485 connection_timeout
5486 The timeout in seconds during the initial connection to the broker.
5487 The default value is rw_timeout, or 5 seconds if rw_timeout is not
5488 set.
5489
5490 delivery_mode mode
5491 Sets the delivery mode of each message sent to broker. The
5492 following values are accepted:
5493
5494 persistent
5495 Delivery mode set to "persistent" (2). This is the default
5496 value. Messages may be written to the broker's disk depending
5497 on its setup.
5498
5499 non-persistent
5500 Delivery mode set to "non-persistent" (1). Messages will stay
5501 in broker's memory unless the broker is under memory pressure.
5502
5503 async
5504 Asynchronous data filling wrapper for input stream.
5505
5506 Fill data in a background thread, to decouple I/O operation from demux
5507 thread.
5508
5509 async:<URL>
5510 async:http://host/resource
5511 async:cache:http://host/resource
5512
5513 bluray
5514 Read BluRay playlist.
5515
5516 The accepted options are:
5517
5518 angle
5519 BluRay angle
5520
5521 chapter
5522 Start chapter (1...N)
5523
5524 playlist
5525 Playlist to read (BDMV/PLAYLIST/?????.mpls)
5526
5527 Examples:
5528
5529 Read longest playlist from BluRay mounted to /mnt/bluray:
5530
5531 bluray:/mnt/bluray
5532
5533 Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
5534 from chapter 2:
5535
5536 -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
5537
5538 cache
5539 Caching wrapper for input stream.
5540
5541 Cache the input stream to temporary file. It brings seeking capability
5542 to live streams.
5543
5544 The accepted options are:
5545
5546 read_ahead_limit
5547 Amount in bytes that may be read ahead when seeking isn't
5548 supported. Range is -1 to INT_MAX. -1 for unlimited. Default is
5549 65536.
5550
5551 URL Syntax is
5552
5553 cache:<URL>
5554
5555 concat
5556 Physical concatenation protocol.
5557
5558 Read and seek from many resources in sequence as if they were a unique
5559 resource.
5560
5561 A URL accepted by this protocol has the syntax:
5562
5563 concat:<URL1>|<URL2>|...|<URLN>
5564
5565 where URL1, URL2, ..., URLN are the urls of the resource to be
5566 concatenated, each one possibly specifying a distinct protocol.
5567
5568 For example to read a sequence of files split1.mpeg, split2.mpeg,
5569 split3.mpeg with ffplay use the command:
5570
5571 ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
5572
5573 Note that you may need to escape the character "|" which is special for
5574 many shells.
5575
5576 concatf
5577 Physical concatenation protocol using a line break delimited list of
5578 resources.
5579
5580 Read and seek from many resources in sequence as if they were a unique
5581 resource.
5582
5583 A URL accepted by this protocol has the syntax:
5584
5585 concatf:<URL>
5586
5587 where URL is the url containing a line break delimited list of
5588 resources to be concatenated, each one possibly specifying a distinct
5589 protocol. Special characters must be escaped with backslash or single
5590 quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
5591 manual.
5592
5593 For example to read a sequence of files split1.mpeg, split2.mpeg,
5594 split3.mpeg listed in separate lines within a file split.txt with
5595 ffplay use the command:
5596
5597 ffplay concatf:split.txt
5598
5599 Where split.txt contains the lines:
5600
5601 split1.mpeg
5602 split2.mpeg
5603 split3.mpeg
5604
5605 crypto
5606 AES-encrypted stream reading protocol.
5607
5608 The accepted options are:
5609
5610 key Set the AES decryption key binary block from given hexadecimal
5611 representation.
5612
5613 iv Set the AES decryption initialization vector binary block from
5614 given hexadecimal representation.
5615
5616 Accepted URL formats:
5617
5618 crypto:<URL>
5619 crypto+<URL>
5620
5621 data
5622 Data in-line in the URI. See
5623 <http://en.wikipedia.org/wiki/Data_URI_scheme>.
5624
5625 For example, to convert a GIF file given inline with ffmpeg:
5626
5627 ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
5628
5629 file
5630 File access protocol.
5631
5632 Read from or write to a file.
5633
5634 A file URL can have the form:
5635
5636 file:<filename>
5637
5638 where filename is the path of the file to read.
5639
5640 An URL that does not have a protocol prefix will be assumed to be a
5641 file URL. Depending on the build, an URL that looks like a Windows path
5642 with the drive letter at the beginning will also be assumed to be a
5643 file URL (usually not the case in builds for unix-like systems).
5644
5645 For example to read from a file input.mpeg with ffmpeg use the command:
5646
5647 ffmpeg -i file:input.mpeg output.mpeg
5648
5649 This protocol accepts the following options:
5650
5651 truncate
5652 Truncate existing files on write, if set to 1. A value of 0
5653 prevents truncating. Default value is 1.
5654
5655 blocksize
5656 Set I/O operation maximum block size, in bytes. Default value is
5657 "INT_MAX", which results in not limiting the requested block size.
5658 Setting this value reasonably low improves user termination request
5659 reaction time, which is valuable for files on slow medium.
5660
5661 follow
5662 If set to 1, the protocol will retry reading at the end of the
5663 file, allowing reading files that still are being written. In order
5664 for this to terminate, you either need to use the rw_timeout
5665 option, or use the interrupt callback (for API users).
5666
5667 seekable
5668 Controls if seekability is advertised on the file. 0 means non-
5669 seekable, -1 means auto (seekable for normal files, non-seekable
5670 for named pipes).
5671
5672 Many demuxers handle seekable and non-seekable resources
5673 differently, overriding this might speed up opening certain files
5674 at the cost of losing some features (e.g. accurate seeking).
5675
5676 ftp
5677 FTP (File Transfer Protocol).
5678
5679 Read from or write to remote resources using FTP protocol.
5680
5681 Following syntax is required.
5682
5683 ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
5684
5685 This protocol accepts the following options.
5686
5687 timeout
5688 Set timeout in microseconds of socket I/O operations used by the
5689 underlying low level operation. By default it is set to -1, which
5690 means that the timeout is not specified.
5691
5692 ftp-user
5693 Set a user to be used for authenticating to the FTP server. This is
5694 overridden by the user in the FTP URL.
5695
5696 ftp-password
5697 Set a password to be used for authenticating to the FTP server.
5698 This is overridden by the password in the FTP URL, or by ftp-
5699 anonymous-password if no user is set.
5700
5701 ftp-anonymous-password
5702 Password used when login as anonymous user. Typically an e-mail
5703 address should be used.
5704
5705 ftp-write-seekable
5706 Control seekability of connection during encoding. If set to 1 the
5707 resource is supposed to be seekable, if set to 0 it is assumed not
5708 to be seekable. Default value is 0.
5709
5710 NOTE: Protocol can be used as output, but it is recommended to not do
5711 it, unless special care is taken (tests, customized server
5712 configuration etc.). Different FTP servers behave in different way
5713 during seek operation. ff* tools may produce incomplete content due to
5714 server limitations.
5715
5716 gopher
5717 Gopher protocol.
5718
5719 gophers
5720 Gophers protocol.
5721
5722 The Gopher protocol with TLS encapsulation.
5723
5724 hls
5725 Read Apple HTTP Live Streaming compliant segmented stream as a uniform
5726 one. The M3U8 playlists describing the segments can be remote HTTP
5727 resources or local files, accessed using the standard file protocol.
5728 The nested protocol is declared by specifying "+proto" after the hls
5729 URI scheme name, where proto is either "file" or "http".
5730
5731 hls+http://host/path/to/remote/resource.m3u8
5732 hls+file://path/to/local/resource.m3u8
5733
5734 Using this protocol is discouraged - the hls demuxer should work just
5735 as well (if not, please report the issues) and is more complete. To
5736 use the hls demuxer instead, simply use the direct URLs to the m3u8
5737 files.
5738
5739 http
5740 HTTP (Hyper Text Transfer Protocol).
5741
5742 This protocol accepts the following options:
5743
5744 seekable
5745 Control seekability of connection. If set to 1 the resource is
5746 supposed to be seekable, if set to 0 it is assumed not to be
5747 seekable, if set to -1 it will try to autodetect if it is seekable.
5748 Default value is -1.
5749
5750 chunked_post
5751 If set to 1 use chunked Transfer-Encoding for posts, default is 1.
5752
5753 content_type
5754 Set a specific content type for the POST messages or for listen
5755 mode.
5756
5757 http_proxy
5758 set HTTP proxy to tunnel through e.g. http://example.com:1234
5759
5760 headers
5761 Set custom HTTP headers, can override built in default headers. The
5762 value must be a string encoding the headers.
5763
5764 multiple_requests
5765 Use persistent connections if set to 1, default is 0.
5766
5767 post_data
5768 Set custom HTTP post data.
5769
5770 referer
5771 Set the Referer header. Include 'Referer: URL' header in HTTP
5772 request.
5773
5774 user_agent
5775 Override the User-Agent header. If not specified the protocol will
5776 use a string describing the libavformat build. ("Lavf/<version>")
5777
5778 reconnect_at_eof
5779 If set then eof is treated like an error and causes reconnection,
5780 this is useful for live / endless streams.
5781
5782 reconnect_streamed
5783 If set then even streamed/non seekable streams will be reconnected
5784 on errors.
5785
5786 reconnect_on_network_error
5787 Reconnect automatically in case of TCP/TLS errors during connect.
5788
5789 reconnect_on_http_error
5790 A comma separated list of HTTP status codes to reconnect on. The
5791 list can include specific status codes (e.g. '503') or the strings
5792 '4xx' / '5xx'.
5793
5794 reconnect_delay_max
5795 Sets the maximum delay in seconds after which to give up
5796 reconnecting
5797
5798 mime_type
5799 Export the MIME type.
5800
5801 http_version
5802 Exports the HTTP response version number. Usually "1.0" or "1.1".
5803
5804 icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
5805 the server supports this, the metadata has to be retrieved by the
5806 application by reading the icy_metadata_headers and
5807 icy_metadata_packet options. The default is 1.
5808
5809 icy_metadata_headers
5810 If the server supports ICY metadata, this contains the ICY-specific
5811 HTTP reply headers, separated by newline characters.
5812
5813 icy_metadata_packet
5814 If the server supports ICY metadata, and icy was set to 1, this
5815 contains the last non-empty metadata packet sent by the server. It
5816 should be polled in regular intervals by applications interested in
5817 mid-stream metadata updates.
5818
5819 cookies
5820 Set the cookies to be sent in future requests. The format of each
5821 cookie is the same as the value of a Set-Cookie HTTP response
5822 field. Multiple cookies can be delimited by a newline character.
5823
5824 offset
5825 Set initial byte offset.
5826
5827 end_offset
5828 Try to limit the request to bytes preceding this offset.
5829
5830 method
5831 When used as a client option it sets the HTTP method for the
5832 request.
5833
5834 When used as a server option it sets the HTTP method that is going
5835 to be expected from the client(s). If the expected and the
5836 received HTTP method do not match the client will be given a Bad
5837 Request response. When unset the HTTP method is not checked for
5838 now. This will be replaced by autodetection in the future.
5839
5840 listen
5841 If set to 1 enables experimental HTTP server. This can be used to
5842 send data when used as an output option, or read data from a client
5843 with HTTP POST when used as an input option. If set to 2 enables
5844 experimental multi-client HTTP server. This is not yet implemented
5845 in ffmpeg.c and thus must not be used as a command line option.
5846
5847 # Server side (sending):
5848 ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
5849
5850 # Client side (receiving):
5851 ffmpeg -i http://<server>:<port> -c copy somefile.ogg
5852
5853 # Client can also be done with wget:
5854 wget http://<server>:<port> -O somefile.ogg
5855
5856 # Server side (receiving):
5857 ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
5858
5859 # Client side (sending):
5860 ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
5861
5862 # Client can also be done with wget:
5863 wget --post-file=somefile.ogg http://<server>:<port>
5864
5865 send_expect_100
5866 Send an Expect: 100-continue header for POST. If set to 1 it will
5867 send, if set to 0 it won't, if set to -1 it will try to send if it
5868 is applicable. Default value is -1.
5869
5870 auth_type
5871 Set HTTP authentication type. No option for Digest, since this
5872 method requires getting nonce parameters from the server first and
5873 can't be used straight away like Basic.
5874
5875 none
5876 Choose the HTTP authentication type automatically. This is the
5877 default.
5878
5879 basic
5880 Choose the HTTP basic authentication.
5881
5882 Basic authentication sends a Base64-encoded string that
5883 contains a user name and password for the client. Base64 is not
5884 a form of encryption and should be considered the same as
5885 sending the user name and password in clear text (Base64 is a
5886 reversible encoding). If a resource needs to be protected,
5887 strongly consider using an authentication scheme other than
5888 basic authentication. HTTPS/TLS should be used with basic
5889 authentication. Without these additional security
5890 enhancements, basic authentication should not be used to
5891 protect sensitive or valuable information.
5892
5893 HTTP Cookies
5894
5895 Some HTTP requests will be denied unless cookie values are passed in
5896 with the request. The cookies option allows these cookies to be
5897 specified. At the very least, each cookie must specify a value along
5898 with a path and domain. HTTP requests that match both the domain and
5899 path will automatically include the cookie value in the HTTP Cookie
5900 header field. Multiple cookies can be delimited by a newline.
5901
5902 The required syntax to play a stream specifying a cookie is:
5903
5904 ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
5905
5906 Icecast
5907 Icecast protocol (stream to Icecast servers)
5908
5909 This protocol accepts the following options:
5910
5911 ice_genre
5912 Set the stream genre.
5913
5914 ice_name
5915 Set the stream name.
5916
5917 ice_description
5918 Set the stream description.
5919
5920 ice_url
5921 Set the stream website URL.
5922
5923 ice_public
5924 Set if the stream should be public. The default is 0 (not public).
5925
5926 user_agent
5927 Override the User-Agent header. If not specified a string of the
5928 form "Lavf/<version>" will be used.
5929
5930 password
5931 Set the Icecast mountpoint password.
5932
5933 content_type
5934 Set the stream content type. This must be set if it is different
5935 from audio/mpeg.
5936
5937 legacy_icecast
5938 This enables support for Icecast versions < 2.4.0, that do not
5939 support the HTTP PUT method but the SOURCE method.
5940
5941 tls Establish a TLS (HTTPS) connection to Icecast.
5942
5943 icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
5944
5945 ipfs
5946 InterPlanetary File System (IPFS) protocol support. One can access
5947 files stored on the IPFS network through so-called gateways. These are
5948 http(s) endpoints. This protocol wraps the IPFS native protocols
5949 (ipfs:// and ipns://) to be sent to such a gateway. Users can (and
5950 should) host their own node which means this protocol will use one's
5951 local gateway to access files on the IPFS network.
5952
5953 If a user doesn't have a node of their own then the public gateway
5954 "https://dweb.link" is used by default.
5955
5956 This protocol accepts the following options:
5957
5958 gateway
5959 Defines the gateway to use. When not set, the protocol will first
5960 try locating the local gateway by looking at $IPFS_GATEWAY,
5961 $IPFS_PATH and "$HOME/.ipfs/", in that order. If that fails
5962 "https://dweb.link" will be used.
5963
5964 One can use this protocol in 2 ways. Using IPFS:
5965
5966 ffplay ipfs://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
5967
5968 Or the IPNS protocol (IPNS is mutable IPFS):
5969
5970 ffplay ipns://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
5971
5972 mmst
5973 MMS (Microsoft Media Server) protocol over TCP.
5974
5975 mmsh
5976 MMS (Microsoft Media Server) protocol over HTTP.
5977
5978 The required syntax is:
5979
5980 mmsh://<server>[:<port>][/<app>][/<playpath>]
5981
5982 md5
5983 MD5 output protocol.
5984
5985 Computes the MD5 hash of the data to be written, and on close writes
5986 this to the designated output or stdout if none is specified. It can be
5987 used to test muxers without writing an actual file.
5988
5989 Some examples follow.
5990
5991 # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
5992 ffmpeg -i input.flv -f avi -y md5:output.avi.md5
5993
5994 # Write the MD5 hash of the encoded AVI file to stdout.
5995 ffmpeg -i input.flv -f avi -y md5:
5996
5997 Note that some formats (typically MOV) require the output protocol to
5998 be seekable, so they will fail with the MD5 output protocol.
5999
6000 pipe
6001 UNIX pipe access protocol.
6002
6003 Read and write from UNIX pipes.
6004
6005 The accepted syntax is:
6006
6007 pipe:[<number>]
6008
6009 number is the number corresponding to the file descriptor of the pipe
6010 (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number is not
6011 specified, by default the stdout file descriptor will be used for
6012 writing, stdin for reading.
6013
6014 For example to read from stdin with ffmpeg:
6015
6016 cat test.wav | ffmpeg -i pipe:0
6017 # ...this is the same as...
6018 cat test.wav | ffmpeg -i pipe:
6019
6020 For writing to stdout with ffmpeg:
6021
6022 ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
6023 # ...this is the same as...
6024 ffmpeg -i test.wav -f avi pipe: | cat > test.avi
6025
6026 This protocol accepts the following options:
6027
6028 blocksize
6029 Set I/O operation maximum block size, in bytes. Default value is
6030 "INT_MAX", which results in not limiting the requested block size.
6031 Setting this value reasonably low improves user termination request
6032 reaction time, which is valuable if data transmission is slow.
6033
6034 Note that some formats (typically MOV), require the output protocol to
6035 be seekable, so they will fail with the pipe output protocol.
6036
6037 prompeg
6038 Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
6039
6040 The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
6041 mechanism for MPEG-2 Transport Streams sent over RTP.
6042
6043 This protocol must be used in conjunction with the "rtp_mpegts" muxer
6044 and the "rtp" protocol.
6045
6046 The required syntax is:
6047
6048 -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
6049
6050 The destination UDP ports are "port + 2" for the column FEC stream and
6051 "port + 4" for the row FEC stream.
6052
6053 This protocol accepts the following options:
6054
6055 l=n The number of columns (4-20, LxD <= 100)
6056
6057 d=n The number of rows (4-20, LxD <= 100)
6058
6059 Example usage:
6060
6061 -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
6062
6063 rist
6064 Reliable Internet Streaming Transport protocol
6065
6066 The accepted options are:
6067
6068 rist_profile
6069 Supported values:
6070
6071 simple
6072 main
6073 This one is default.
6074
6075 advanced
6076 buffer_size
6077 Set internal RIST buffer size in milliseconds for retransmission of
6078 data. Default value is 0 which means the librist default (1 sec).
6079 Maximum value is 30 seconds.
6080
6081 fifo_size
6082 Size of the librist receiver output fifo in number of packets. This
6083 must be a power of 2. Defaults to 8192 (vs the librist default of
6084 1024).
6085
6086 overrun_nonfatal=1|0
6087 Survive in case of librist fifo buffer overrun. Default value is 0.
6088
6089 pkt_size
6090 Set maximum packet size for sending data. 1316 by default.
6091
6092 log_level
6093 Set loglevel for RIST logging messages. You only need to set this
6094 if you explicitly want to enable debug level messages or packet
6095 loss simulation, otherwise the regular loglevel is respected.
6096
6097 secret
6098 Set override of encryption secret, by default is unset.
6099
6100 encryption
6101 Set encryption type, by default is disabled. Acceptable values are
6102 128 and 256.
6103
6104 rtmp
6105 Real-Time Messaging Protocol.
6106
6107 The Real-Time Messaging Protocol (RTMP) is used for streaming
6108 multimedia content across a TCP/IP network.
6109
6110 The required syntax is:
6111
6112 rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
6113
6114 The accepted parameters are:
6115
6116 username
6117 An optional username (mostly for publishing).
6118
6119 password
6120 An optional password (mostly for publishing).
6121
6122 server
6123 The address of the RTMP server.
6124
6125 port
6126 The number of the TCP port to use (by default is 1935).
6127
6128 app It is the name of the application to access. It usually corresponds
6129 to the path where the application is installed on the RTMP server
6130 (e.g. /ondemand/, /flash/live/, etc.). You can override the value
6131 parsed from the URI through the "rtmp_app" option, too.
6132
6133 playpath
6134 It is the path or name of the resource to play with reference to
6135 the application specified in app, may be prefixed by "mp4:". You
6136 can override the value parsed from the URI through the
6137 "rtmp_playpath" option, too.
6138
6139 listen
6140 Act as a server, listening for an incoming connection.
6141
6142 timeout
6143 Maximum time to wait for the incoming connection. Implies listen.
6144
6145 Additionally, the following parameters can be set via command line
6146 options (or in code via "AVOption"s):
6147
6148 rtmp_app
6149 Name of application to connect on the RTMP server. This option
6150 overrides the parameter specified in the URI.
6151
6152 rtmp_buffer
6153 Set the client buffer time in milliseconds. The default is 3000.
6154
6155 rtmp_conn
6156 Extra arbitrary AMF connection parameters, parsed from a string,
6157 e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Each
6158 value is prefixed by a single character denoting the type, B for
6159 Boolean, N for number, S for string, O for object, or Z for null,
6160 followed by a colon. For Booleans the data must be either 0 or 1
6161 for FALSE or TRUE, respectively. Likewise for Objects the data
6162 must be 0 or 1 to end or begin an object, respectively. Data items
6163 in subobjects may be named, by prefixing the type with 'N' and
6164 specifying the name before the value (i.e. "NB:myFlag:1"). This
6165 option may be used multiple times to construct arbitrary AMF
6166 sequences.
6167
6168 rtmp_flashver
6169 Version of the Flash plugin used to run the SWF player. The default
6170 is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
6171 (compatible; <libavformat version>).)
6172
6173 rtmp_flush_interval
6174 Number of packets flushed in the same request (RTMPT only). The
6175 default is 10.
6176
6177 rtmp_live
6178 Specify that the media is a live stream. No resuming or seeking in
6179 live streams is possible. The default value is "any", which means
6180 the subscriber first tries to play the live stream specified in the
6181 playpath. If a live stream of that name is not found, it plays the
6182 recorded stream. The other possible values are "live" and
6183 "recorded".
6184
6185 rtmp_pageurl
6186 URL of the web page in which the media was embedded. By default no
6187 value will be sent.
6188
6189 rtmp_playpath
6190 Stream identifier to play or to publish. This option overrides the
6191 parameter specified in the URI.
6192
6193 rtmp_subscribe
6194 Name of live stream to subscribe to. By default no value will be
6195 sent. It is only sent if the option is specified or if rtmp_live
6196 is set to live.
6197
6198 rtmp_swfhash
6199 SHA256 hash of the decompressed SWF file (32 bytes).
6200
6201 rtmp_swfsize
6202 Size of the decompressed SWF file, required for SWFVerification.
6203
6204 rtmp_swfurl
6205 URL of the SWF player for the media. By default no value will be
6206 sent.
6207
6208 rtmp_swfverify
6209 URL to player swf file, compute hash/size automatically.
6210
6211 rtmp_tcurl
6212 URL of the target stream. Defaults to proto://host[:port]/app.
6213
6214 tcp_nodelay=1|0
6215 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
6216
6217 Remark: Writing to the socket is currently not optimized to
6218 minimize system calls and reduces the efficiency / effect of
6219 TCP_NODELAY.
6220
6221 For example to read with ffplay a multimedia resource named "sample"
6222 from the application "vod" from an RTMP server "myserver":
6223
6224 ffplay rtmp://myserver/vod/sample
6225
6226 To publish to a password protected server, passing the playpath and app
6227 names separately:
6228
6229 ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
6230
6231 rtmpe
6232 Encrypted Real-Time Messaging Protocol.
6233
6234 The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
6235 streaming multimedia content within standard cryptographic primitives,
6236 consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
6237 pair of RC4 keys.
6238
6239 rtmps
6240 Real-Time Messaging Protocol over a secure SSL connection.
6241
6242 The Real-Time Messaging Protocol (RTMPS) is used for streaming
6243 multimedia content across an encrypted connection.
6244
6245 rtmpt
6246 Real-Time Messaging Protocol tunneled through HTTP.
6247
6248 The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
6249 for streaming multimedia content within HTTP requests to traverse
6250 firewalls.
6251
6252 rtmpte
6253 Encrypted Real-Time Messaging Protocol tunneled through HTTP.
6254
6255 The Encrypted Real-Time Messaging Protocol tunneled through HTTP
6256 (RTMPTE) is used for streaming multimedia content within HTTP requests
6257 to traverse firewalls.
6258
6259 rtmpts
6260 Real-Time Messaging Protocol tunneled through HTTPS.
6261
6262 The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
6263 used for streaming multimedia content within HTTPS requests to traverse
6264 firewalls.
6265
6266 libsmbclient
6267 libsmbclient permits one to manipulate CIFS/SMB network resources.
6268
6269 Following syntax is required.
6270
6271 smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
6272
6273 This protocol accepts the following options.
6274
6275 timeout
6276 Set timeout in milliseconds of socket I/O operations used by the
6277 underlying low level operation. By default it is set to -1, which
6278 means that the timeout is not specified.
6279
6280 truncate
6281 Truncate existing files on write, if set to 1. A value of 0
6282 prevents truncating. Default value is 1.
6283
6284 workgroup
6285 Set the workgroup used for making connections. By default workgroup
6286 is not specified.
6287
6288 For more information see: <http://www.samba.org/>.
6289
6290 libssh
6291 Secure File Transfer Protocol via libssh
6292
6293 Read from or write to remote resources using SFTP protocol.
6294
6295 Following syntax is required.
6296
6297 sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
6298
6299 This protocol accepts the following options.
6300
6301 timeout
6302 Set timeout of socket I/O operations used by the underlying low
6303 level operation. By default it is set to -1, which means that the
6304 timeout is not specified.
6305
6306 truncate
6307 Truncate existing files on write, if set to 1. A value of 0
6308 prevents truncating. Default value is 1.
6309
6310 private_key
6311 Specify the path of the file containing private key to use during
6312 authorization. By default libssh searches for keys in the ~/.ssh/
6313 directory.
6314
6315 Example: Play a file stored on remote server.
6316
6317 ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
6318
6319 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
6320 Real-Time Messaging Protocol and its variants supported through
6321 librtmp.
6322
6323 Requires the presence of the librtmp headers and library during
6324 configuration. You need to explicitly configure the build with
6325 "--enable-librtmp". If enabled this will replace the native RTMP
6326 protocol.
6327
6328 This protocol provides most client functions and a few server functions
6329 needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
6330 (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
6331 encrypted types (RTMPTE, RTMPTS).
6332
6333 The required syntax is:
6334
6335 <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
6336
6337 where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
6338 "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
6339 server, port, app and playpath have the same meaning as specified for
6340 the RTMP native protocol. options contains a list of space-separated
6341 options of the form key=val.
6342
6343 See the librtmp manual page (man 3 librtmp) for more information.
6344
6345 For example, to stream a file in real-time to an RTMP server using
6346 ffmpeg:
6347
6348 ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
6349
6350 To play the same stream using ffplay:
6351
6352 ffplay "rtmp://myserver/live/mystream live=1"
6353
6354 rtp
6355 Real-time Transport Protocol.
6356
6357 The required syntax for an RTP URL is:
6358 rtp://hostname[:port][?option=val...]
6359
6360 port specifies the RTP port to use.
6361
6362 The following URL options are supported:
6363
6364 ttl=n
6365 Set the TTL (Time-To-Live) value (for multicast only).
6366
6367 rtcpport=n
6368 Set the remote RTCP port to n.
6369
6370 localrtpport=n
6371 Set the local RTP port to n.
6372
6373 localrtcpport=n'
6374 Set the local RTCP port to n.
6375
6376 pkt_size=n
6377 Set max packet size (in bytes) to n.
6378
6379 buffer_size=size
6380 Set the maximum UDP socket buffer size in bytes.
6381
6382 connect=0|1
6383 Do a "connect()" on the UDP socket (if set to 1) or not (if set to
6384 0).
6385
6386 sources=ip[,ip]
6387 List allowed source IP addresses.
6388
6389 block=ip[,ip]
6390 List disallowed (blocked) source IP addresses.
6391
6392 write_to_source=0|1
6393 Send packets to the source address of the latest received packet
6394 (if set to 1) or to a default remote address (if set to 0).
6395
6396 localport=n
6397 Set the local RTP port to n.
6398
6399 localaddr=addr
6400 Local IP address of a network interface used for sending packets or
6401 joining multicast groups.
6402
6403 timeout=n
6404 Set timeout (in microseconds) of socket I/O operations to n.
6405
6406 This is a deprecated option. Instead, localrtpport should be used.
6407
6408 Important notes:
6409
6410 1. If rtcpport is not set the RTCP port will be set to the RTP port
6411 value plus 1.
6412
6413 2. If localrtpport (the local RTP port) is not set any available port
6414 will be used for the local RTP and RTCP ports.
6415
6416 3. If localrtcpport (the local RTCP port) is not set it will be set to
6417 the local RTP port value plus 1.
6418
6419 rtsp
6420 Real-Time Streaming Protocol.
6421
6422 RTSP is not technically a protocol handler in libavformat, it is a
6423 demuxer and muxer. The demuxer supports both normal RTSP (with data
6424 transferred over RTP; this is used by e.g. Apple and Microsoft) and
6425 Real-RTSP (with data transferred over RDT).
6426
6427 The muxer can be used to send a stream using RTSP ANNOUNCE to a server
6428 supporting it (currently Darwin Streaming Server and Mischa
6429 Spiegelmock's <https://github.com/revmischa/rtsp-server>).
6430
6431 The required syntax for a RTSP url is:
6432
6433 rtsp://<hostname>[:<port>]/<path>
6434
6435 Options can be set on the ffmpeg/ffplay command line, or set in code
6436 via "AVOption"s or in "avformat_open_input".
6437
6438 The following options are supported.
6439
6440 initial_pause
6441 Do not start playing the stream immediately if set to 1. Default
6442 value is 0.
6443
6444 rtsp_transport
6445 Set RTSP transport protocols.
6446
6447 It accepts the following values:
6448
6449 udp Use UDP as lower transport protocol.
6450
6451 tcp Use TCP (interleaving within the RTSP control channel) as lower
6452 transport protocol.
6453
6454 udp_multicast
6455 Use UDP multicast as lower transport protocol.
6456
6457 http
6458 Use HTTP tunneling as lower transport protocol, which is useful
6459 for passing proxies.
6460
6461 Multiple lower transport protocols may be specified, in that case
6462 they are tried one at a time (if the setup of one fails, the next
6463 one is tried). For the muxer, only the tcp and udp options are
6464 supported.
6465
6466 rtsp_flags
6467 Set RTSP flags.
6468
6469 The following values are accepted:
6470
6471 filter_src
6472 Accept packets only from negotiated peer address and port.
6473
6474 listen
6475 Act as a server, listening for an incoming connection.
6476
6477 prefer_tcp
6478 Try TCP for RTP transport first, if TCP is available as RTSP
6479 RTP transport.
6480
6481 Default value is none.
6482
6483 allowed_media_types
6484 Set media types to accept from the server.
6485
6486 The following flags are accepted:
6487
6488 video
6489 audio
6490 data
6491
6492 By default it accepts all media types.
6493
6494 min_port
6495 Set minimum local UDP port. Default value is 5000.
6496
6497 max_port
6498 Set maximum local UDP port. Default value is 65000.
6499
6500 listen_timeout
6501 Set maximum timeout (in seconds) to establish an initial
6502 connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
6503 Default is -1 which means an infinite timeout when listen mode is
6504 set.
6505
6506 reorder_queue_size
6507 Set number of packets to buffer for handling of reordered packets.
6508
6509 timeout
6510 Set socket TCP I/O timeout in microseconds.
6511
6512 user_agent
6513 Override User-Agent header. If not specified, it defaults to the
6514 libavformat identifier string.
6515
6516 When receiving data over UDP, the demuxer tries to reorder received
6517 packets (since they may arrive out of order, or packets may get lost
6518 totally). This can be disabled by setting the maximum demuxing delay to
6519 zero (via the "max_delay" field of AVFormatContext).
6520
6521 When watching multi-bitrate Real-RTSP streams with ffplay, the streams
6522 to display can be chosen with "-vst" n and "-ast" n for video and audio
6523 respectively, and can be switched on the fly by pressing "v" and "a".
6524
6525 Examples
6526
6527 The following examples all make use of the ffplay and ffmpeg tools.
6528
6529 • Watch a stream over UDP, with a max reordering delay of 0.5
6530 seconds:
6531
6532 ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
6533
6534 • Watch a stream tunneled over HTTP:
6535
6536 ffplay -rtsp_transport http rtsp://server/video.mp4
6537
6538 • Send a stream in realtime to a RTSP server, for others to watch:
6539
6540 ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
6541
6542 • Receive a stream in realtime:
6543
6544 ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
6545
6546 sap
6547 Session Announcement Protocol (RFC 2974). This is not technically a
6548 protocol handler in libavformat, it is a muxer and demuxer. It is used
6549 for signalling of RTP streams, by announcing the SDP for the streams
6550 regularly on a separate port.
6551
6552 Muxer
6553
6554 The syntax for a SAP url given to the muxer is:
6555
6556 sap://<destination>[:<port>][?<options>]
6557
6558 The RTP packets are sent to destination on port port, or to port 5004
6559 if no port is specified. options is a "&"-separated list. The
6560 following options are supported:
6561
6562 announce_addr=address
6563 Specify the destination IP address for sending the announcements
6564 to. If omitted, the announcements are sent to the commonly used
6565 SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
6566 or ff0e::2:7ffe if destination is an IPv6 address.
6567
6568 announce_port=port
6569 Specify the port to send the announcements on, defaults to 9875 if
6570 not specified.
6571
6572 ttl=ttl
6573 Specify the time to live value for the announcements and RTP
6574 packets, defaults to 255.
6575
6576 same_port=0|1
6577 If set to 1, send all RTP streams on the same port pair. If zero
6578 (the default), all streams are sent on unique ports, with each
6579 stream on a port 2 numbers higher than the previous. VLC/Live555
6580 requires this to be set to 1, to be able to receive the stream.
6581 The RTP stack in libavformat for receiving requires all streams to
6582 be sent on unique ports.
6583
6584 Example command lines follow.
6585
6586 To broadcast a stream on the local subnet, for watching in VLC:
6587
6588 ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
6589
6590 Similarly, for watching in ffplay:
6591
6592 ffmpeg -re -i <input> -f sap sap://224.0.0.255
6593
6594 And for watching in ffplay, over IPv6:
6595
6596 ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
6597
6598 Demuxer
6599
6600 The syntax for a SAP url given to the demuxer is:
6601
6602 sap://[<address>][:<port>]
6603
6604 address is the multicast address to listen for announcements on, if
6605 omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
6606 port that is listened on, 9875 if omitted.
6607
6608 The demuxers listens for announcements on the given address and port.
6609 Once an announcement is received, it tries to receive that particular
6610 stream.
6611
6612 Example command lines follow.
6613
6614 To play back the first stream announced on the normal SAP multicast
6615 address:
6616
6617 ffplay sap://
6618
6619 To play back the first stream announced on one the default IPv6 SAP
6620 multicast address:
6621
6622 ffplay sap://[ff0e::2:7ffe]
6623
6624 sctp
6625 Stream Control Transmission Protocol.
6626
6627 The accepted URL syntax is:
6628
6629 sctp://<host>:<port>[?<options>]
6630
6631 The protocol accepts the following options:
6632
6633 listen
6634 If set to any value, listen for an incoming connection. Outgoing
6635 connection is done by default.
6636
6637 max_streams
6638 Set the maximum number of streams. By default no limit is set.
6639
6640 srt
6641 Haivision Secure Reliable Transport Protocol via libsrt.
6642
6643 The supported syntax for a SRT URL is:
6644
6645 srt://<hostname>:<port>[?<options>]
6646
6647 options contains a list of &-separated options of the form key=val.
6648
6649 or
6650
6651 <options> srt://<hostname>:<port>
6652
6653 options contains a list of '-key val' options.
6654
6655 This protocol accepts the following options.
6656
6657 connect_timeout=milliseconds
6658 Connection timeout; SRT cannot connect for RTT > 1500 msec (2
6659 handshake exchanges) with the default connect timeout of 3 seconds.
6660 This option applies to the caller and rendezvous connection modes.
6661 The connect timeout is 10 times the value set for the rendezvous
6662 mode (which can be used as a workaround for this connection problem
6663 with earlier versions).
6664
6665 ffs=bytes
6666 Flight Flag Size (Window Size), in bytes. FFS is actually an
6667 internal parameter and you should set it to not less than
6668 recv_buffer_size and mss. The default value is relatively large,
6669 therefore unless you set a very large receiver buffer, you do not
6670 need to change this option. Default value is 25600.
6671
6672 inputbw=bytes/seconds
6673 Sender nominal input rate, in bytes per seconds. Used along with
6674 oheadbw, when maxbw is set to relative (0), to calculate maximum
6675 sending rate when recovery packets are sent along with the main
6676 media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
6677 while maxbw is set to relative (0), the actual input rate is
6678 evaluated inside the library. Default value is 0.
6679
6680 iptos=tos
6681 IP Type of Service. Applies to sender only. Default value is 0xB8.
6682
6683 ipttl=ttl
6684 IP Time To Live. Applies to sender only. Default value is 64.
6685
6686 latency=microseconds
6687 Timestamp-based Packet Delivery Delay. Used to absorb bursts of
6688 missed packet retransmissions. This flag sets both rcvlatency and
6689 peerlatency to the same value. Note that prior to version 1.3.0
6690 this is the only flag to set the latency, however this is
6691 effectively equivalent to setting peerlatency, when side is sender
6692 and rcvlatency when side is receiver, and the bidirectional stream
6693 sending is not supported.
6694
6695 listen_timeout=microseconds
6696 Set socket listen timeout.
6697
6698 maxbw=bytes/seconds
6699 Maximum sending bandwidth, in bytes per seconds. -1 infinite
6700 (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
6701 absolute limit value Default value is 0 (relative)
6702
6703 mode=caller|listener|rendezvous
6704 Connection mode. caller opens client connection. listener starts
6705 server to listen for incoming connections. rendezvous use Rendez-
6706 Vous connection mode. Default value is caller.
6707
6708 mss=bytes
6709 Maximum Segment Size, in bytes. Used for buffer allocation and rate
6710 calculation using a packet counter assuming fully filled packets.
6711 The smallest MSS between the peers is used. This is 1500 by default
6712 in the overall internet. This is the maximum size of the UDP
6713 packet and can be only decreased, unless you have some unusual
6714 dedicated network settings. Default value is 1500.
6715
6716 nakreport=1|0
6717 If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
6718 periodically until a lost packet is retransmitted or intentionally
6719 dropped. Default value is 1.
6720
6721 oheadbw=percents
6722 Recovery bandwidth overhead above input rate, in percents. See
6723 inputbw. Default value is 25%.
6724
6725 passphrase=string
6726 HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
6727 79 characters. The passphrase is the shared secret between the
6728 sender and the receiver. It is used to generate the Key Encrypting
6729 Key using PBKDF2 (Password-Based Key Derivation Function). It is
6730 used only if pbkeylen is non-zero. It is used on the receiver only
6731 if the received data is encrypted. The configured passphrase
6732 cannot be recovered (write-only).
6733
6734 enforced_encryption=1|0
6735 If true, both connection parties must have the same password set
6736 (including empty, that is, with no encryption). If the password
6737 doesn't match or only one side is unencrypted, the connection is
6738 rejected. Default is true.
6739
6740 kmrefreshrate=packets
6741 The number of packets to be transmitted after which the encryption
6742 key is switched to a new key. Default is -1. -1 means auto
6743 (0x1000000 in srt library). The range for this option is integers
6744 in the 0 - "INT_MAX".
6745
6746 kmpreannounce=packets
6747 The interval between when a new encryption key is sent and when
6748 switchover occurs. This value also applies to the subsequent
6749 interval between when switchover occurs and when the old encryption
6750 key is decommissioned. Default is -1. -1 means auto (0x1000 in srt
6751 library). The range for this option is integers in the 0 -
6752 "INT_MAX".
6753
6754 snddropdelay=microseconds
6755 The sender's extra delay before dropping packets. This delay is
6756 added to the default drop delay time interval value.
6757
6758 Special value -1: Do not drop packets on the sender at all.
6759
6760 payload_size=bytes
6761 Sets the maximum declared size of a packet transferred during the
6762 single call to the sending function in Live mode. Use 0 if this
6763 value isn't used (which is default in file mode). Default is -1
6764 (automatic), which typically means MPEG-TS; if you are going to use
6765 SRT to send any different kind of payload, such as, for example,
6766 wrapping a live stream in very small frames, then you can use a
6767 bigger maximum frame size, though not greater than 1456 bytes.
6768
6769 pkt_size=bytes
6770 Alias for payload_size.
6771
6772 peerlatency=microseconds
6773 The latency value (as described in rcvlatency) that is set by the
6774 sender side as a minimum value for the receiver.
6775
6776 pbkeylen=bytes
6777 Sender encryption key length, in bytes. Only can be set to 0, 16,
6778 24 and 32. Enable sender encryption if not 0. Not required on
6779 receiver (set to 0), key size obtained from sender in HaiCrypt
6780 handshake. Default value is 0.
6781
6782 rcvlatency=microseconds
6783 The time that should elapse since the moment when the packet was
6784 sent and the moment when it's delivered to the receiver application
6785 in the receiving function. This time should be a buffer time large
6786 enough to cover the time spent for sending, unexpectedly extended
6787 RTT time, and the time needed to retransmit the lost UDP packet.
6788 The effective latency value will be the maximum of this options'
6789 value and the value of peerlatency set by the peer side. Before
6790 version 1.3.0 this option is only available as latency.
6791
6792 recv_buffer_size=bytes
6793 Set UDP receive buffer size, expressed in bytes.
6794
6795 send_buffer_size=bytes
6796 Set UDP send buffer size, expressed in bytes.
6797
6798 timeout=microseconds
6799 Set raise error timeouts for read, write and connect operations.
6800 Note that the SRT library has internal timeouts which can be
6801 controlled separately, the value set here is only a cap on those.
6802
6803 tlpktdrop=1|0
6804 Too-late Packet Drop. When enabled on receiver, it skips missing
6805 packets that have not been delivered in time and delivers the
6806 following packets to the application when their time-to-play has
6807 come. It also sends a fake ACK to the sender. When enabled on
6808 sender and enabled on the receiving peer, the sender drops the
6809 older packets that have no chance of being delivered in time. It
6810 was automatically enabled in the sender if the receiver supports
6811 it.
6812
6813 sndbuf=bytes
6814 Set send buffer size, expressed in bytes.
6815
6816 rcvbuf=bytes
6817 Set receive buffer size, expressed in bytes.
6818
6819 Receive buffer must not be greater than ffs.
6820
6821 lossmaxttl=packets
6822 The value up to which the Reorder Tolerance may grow. When Reorder
6823 Tolerance is > 0, then packet loss report is delayed until that
6824 number of packets come in. Reorder Tolerance increases every time a
6825 "belated" packet has come, but it wasn't due to retransmission
6826 (that is, when UDP packets tend to come out of order), with the
6827 difference between the latest sequence and this packet's sequence,
6828 and not more than the value of this option. By default it's 0,
6829 which means that this mechanism is turned off, and the loss report
6830 is always sent immediately upon experiencing a "gap" in sequences.
6831
6832 minversion
6833 The minimum SRT version that is required from the peer. A
6834 connection to a peer that does not satisfy the minimum version
6835 requirement will be rejected.
6836
6837 The version format in hex is 0xXXYYZZ for x.y.z in human readable
6838 form.
6839
6840 streamid=string
6841 A string limited to 512 characters that can be set on the socket
6842 prior to connecting. This stream ID will be able to be retrieved by
6843 the listener side from the socket that is returned from srt_accept
6844 and was connected by a socket with that set stream ID. SRT does not
6845 enforce any special interpretation of the contents of this string.
6846 This option doesnXt make sense in Rendezvous connection; the result
6847 might be that simply one side will override the value from the
6848 other side and itXs the matter of luck which one would win
6849
6850 srt_streamid=string
6851 Alias for streamid to avoid conflict with ffmpeg command line
6852 option.
6853
6854 smoother=live|file
6855 The type of Smoother used for the transmission for that socket,
6856 which is responsible for the transmission and congestion control.
6857 The Smoother type must be exactly the same on both connecting
6858 parties, otherwise the connection is rejected.
6859
6860 messageapi=1|0
6861 When set, this socket uses the Message API, otherwise it uses
6862 Buffer API. Note that in live mode (see transtype) thereXs only
6863 message API available. In File mode you can chose to use one of two
6864 modes:
6865
6866 Stream API (default, when this option is false). In this mode you
6867 may send as many data as you wish with one sending instruction, or
6868 even use dedicated functions that read directly from a file. The
6869 internal facility will take care of any speed and congestion
6870 control. When receiving, you can also receive as many data as
6871 desired, the data not extracted will be waiting for the next call.
6872 There is no boundary between data portions in the Stream mode.
6873
6874 Message API. In this mode your single sending instruction passes
6875 exactly one piece of data that has boundaries (a message). Contrary
6876 to Live mode, this message may span across multiple UDP packets and
6877 the only size limitation is that it shall fit as a whole in the
6878 sending buffer. The receiver shall use as large buffer as necessary
6879 to receive the message, otherwise the message will not be given up.
6880 When the message is not complete (not all packets received or there
6881 was a packet loss) it will not be given up.
6882
6883 transtype=live|file
6884 Sets the transmission type for the socket, in particular, setting
6885 this option sets multiple other parameters to their default values
6886 as required for a particular transmission type.
6887
6888 live: Set options as for live transmission. In this mode, you
6889 should send by one sending instruction only so many data that fit
6890 in one UDP packet, and limited to the value defined first in
6891 payload_size (1316 is default in this mode). There is no speed
6892 control in this mode, only the bandwidth control, if configured, in
6893 order to not exceed the bandwidth with the overhead transmission
6894 (retransmitted and control packets).
6895
6896 file: Set options as for non-live transmission. See messageapi for
6897 further explanations
6898
6899 linger=seconds
6900 The number of seconds that the socket waits for unsent data when
6901 closing. Default is -1. -1 means auto (off with 0 seconds in live
6902 mode, on with 180 seconds in file mode). The range for this option
6903 is integers in the 0 - "INT_MAX".
6904
6905 tsbpd=1|0
6906 When true, use Timestamp-based Packet Delivery mode. The default
6907 behavior depends on the transmission type: enabled in live mode,
6908 disabled in file mode.
6909
6910 For more information see: <https://github.com/Haivision/srt>.
6911
6912 srtp
6913 Secure Real-time Transport Protocol.
6914
6915 The accepted options are:
6916
6917 srtp_in_suite
6918 srtp_out_suite
6919 Select input and output encoding suites.
6920
6921 Supported values:
6922
6923 AES_CM_128_HMAC_SHA1_80
6924 SRTP_AES128_CM_HMAC_SHA1_80
6925 AES_CM_128_HMAC_SHA1_32
6926 SRTP_AES128_CM_HMAC_SHA1_32
6927 srtp_in_params
6928 srtp_out_params
6929 Set input and output encoding parameters, which are expressed by a
6930 base64-encoded representation of a binary block. The first 16 bytes
6931 of this binary block are used as master key, the following 14 bytes
6932 are used as master salt.
6933
6934 subfile
6935 Virtually extract a segment of a file or another stream. The
6936 underlying stream must be seekable.
6937
6938 Accepted options:
6939
6940 start
6941 Start offset of the extracted segment, in bytes.
6942
6943 end End offset of the extracted segment, in bytes. If set to 0,
6944 extract till end of file.
6945
6946 Examples:
6947
6948 Extract a chapter from a DVD VOB file (start and end sectors obtained
6949 externally and multiplied by 2048):
6950
6951 subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
6952
6953 Play an AVI file directly from a TAR archive:
6954
6955 subfile,,start,183241728,end,366490624,,:archive.tar
6956
6957 Play a MPEG-TS file from start offset till end:
6958
6959 subfile,,start,32815239,end,0,,:video.ts
6960
6961 tee
6962 Writes the output to multiple protocols. The individual outputs are
6963 separated by |
6964
6965 tee:file://path/to/local/this.avi|file://path/to/local/that.avi
6966
6967 tcp
6968 Transmission Control Protocol.
6969
6970 The required syntax for a TCP url is:
6971
6972 tcp://<hostname>:<port>[?<options>]
6973
6974 options contains a list of &-separated options of the form key=val.
6975
6976 The list of supported options follows.
6977
6978 listen=2|1|0
6979 Listen for an incoming connection. 0 disables listen, 1 enables
6980 listen in single client mode, 2 enables listen in multi-client
6981 mode. Default value is 0.
6982
6983 timeout=microseconds
6984 Set raise error timeout, expressed in microseconds.
6985
6986 This option is only relevant in read mode: if no data arrived in
6987 more than this time interval, raise error.
6988
6989 listen_timeout=milliseconds
6990 Set listen timeout, expressed in milliseconds.
6991
6992 recv_buffer_size=bytes
6993 Set receive buffer size, expressed bytes.
6994
6995 send_buffer_size=bytes
6996 Set send buffer size, expressed bytes.
6997
6998 tcp_nodelay=1|0
6999 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
7000
7001 Remark: Writing to the socket is currently not optimized to
7002 minimize system calls and reduces the efficiency / effect of
7003 TCP_NODELAY.
7004
7005 tcp_mss=bytes
7006 Set maximum segment size for outgoing TCP packets, expressed in
7007 bytes.
7008
7009 The following example shows how to setup a listening TCP connection
7010 with ffmpeg, which is then accessed with ffplay:
7011
7012 ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
7013 ffplay tcp://<hostname>:<port>
7014
7015 tls
7016 Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
7017
7018 The required syntax for a TLS/SSL url is:
7019
7020 tls://<hostname>:<port>[?<options>]
7021
7022 The following parameters can be set via command line options (or in
7023 code via "AVOption"s):
7024
7025 ca_file, cafile=filename
7026 A file containing certificate authority (CA) root certificates to
7027 treat as trusted. If the linked TLS library contains a default this
7028 might not need to be specified for verification to work, but not
7029 all libraries and setups have defaults built in. The file must be
7030 in OpenSSL PEM format.
7031
7032 tls_verify=1|0
7033 If enabled, try to verify the peer that we are communicating with.
7034 Note, if using OpenSSL, this currently only makes sure that the
7035 peer certificate is signed by one of the root certificates in the
7036 CA database, but it does not validate that the certificate actually
7037 matches the host name we are trying to connect to. (With other
7038 backends, the host name is validated as well.)
7039
7040 This is disabled by default since it requires a CA database to be
7041 provided by the caller in many cases.
7042
7043 cert_file, cert=filename
7044 A file containing a certificate to use in the handshake with the
7045 peer. (When operating as server, in listen mode, this is more
7046 often required by the peer, while client certificates only are
7047 mandated in certain setups.)
7048
7049 key_file, key=filename
7050 A file containing the private key for the certificate.
7051
7052 listen=1|0
7053 If enabled, listen for connections on the provided port, and assume
7054 the server role in the handshake instead of the client role.
7055
7056 http_proxy
7057 The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
7058 The proxy must support the CONNECT method.
7059
7060 Example command lines:
7061
7062 To create a TLS/SSL server that serves an input stream.
7063
7064 ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
7065
7066 To play back a stream from the TLS/SSL server using ffplay:
7067
7068 ffplay tls://<hostname>:<port>
7069
7070 udp
7071 User Datagram Protocol.
7072
7073 The required syntax for an UDP URL is:
7074
7075 udp://<hostname>:<port>[?<options>]
7076
7077 options contains a list of &-separated options of the form key=val.
7078
7079 In case threading is enabled on the system, a circular buffer is used
7080 to store the incoming data, which allows one to reduce loss of data due
7081 to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
7082 options are related to this buffer.
7083
7084 The list of supported options follows.
7085
7086 buffer_size=size
7087 Set the UDP maximum socket buffer size in bytes. This is used to
7088 set either the receive or send buffer size, depending on what the
7089 socket is used for. Default is 32 KB for output, 384 KB for input.
7090 See also fifo_size.
7091
7092 bitrate=bitrate
7093 If set to nonzero, the output will have the specified constant
7094 bitrate if the input has enough packets to sustain it.
7095
7096 burst_bits=bits
7097 When using bitrate this specifies the maximum number of bits in
7098 packet bursts.
7099
7100 localport=port
7101 Override the local UDP port to bind with.
7102
7103 localaddr=addr
7104 Local IP address of a network interface used for sending packets or
7105 joining multicast groups.
7106
7107 pkt_size=size
7108 Set the size in bytes of UDP packets.
7109
7110 reuse=1|0
7111 Explicitly allow or disallow reusing UDP sockets.
7112
7113 ttl=ttl
7114 Set the time to live value (for multicast only).
7115
7116 connect=1|0
7117 Initialize the UDP socket with "connect()". In this case, the
7118 destination address can't be changed with ff_udp_set_remote_url
7119 later. If the destination address isn't known at the start, this
7120 option can be specified in ff_udp_set_remote_url, too. This allows
7121 finding out the source address for the packets with getsockname,
7122 and makes writes return with AVERROR(ECONNREFUSED) if "destination
7123 unreachable" is received. For receiving, this gives the benefit of
7124 only receiving packets from the specified peer address/port.
7125
7126 sources=address[,address]
7127 Only receive packets sent from the specified addresses. In case of
7128 multicast, also subscribe to multicast traffic coming from these
7129 addresses only.
7130
7131 block=address[,address]
7132 Ignore packets sent from the specified addresses. In case of
7133 multicast, also exclude the source addresses in the multicast
7134 subscription.
7135
7136 fifo_size=units
7137 Set the UDP receiving circular buffer size, expressed as a number
7138 of packets with size of 188 bytes. If not specified defaults to
7139 7*4096.
7140
7141 overrun_nonfatal=1|0
7142 Survive in case of UDP receiving circular buffer overrun. Default
7143 value is 0.
7144
7145 timeout=microseconds
7146 Set raise error timeout, expressed in microseconds.
7147
7148 This option is only relevant in read mode: if no data arrived in
7149 more than this time interval, raise error.
7150
7151 broadcast=1|0
7152 Explicitly allow or disallow UDP broadcasting.
7153
7154 Note that broadcasting may not work properly on networks having a
7155 broadcast storm protection.
7156
7157 Examples
7158
7159 • Use ffmpeg to stream over UDP to a remote endpoint:
7160
7161 ffmpeg -i <input> -f <format> udp://<hostname>:<port>
7162
7163 • Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
7164 packets, using a large input buffer:
7165
7166 ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
7167
7168 • Use ffmpeg to receive over UDP from a remote endpoint:
7169
7170 ffmpeg -i udp://[<multicast-address>]:<port> ...
7171
7172 unix
7173 Unix local socket
7174
7175 The required syntax for a Unix socket URL is:
7176
7177 unix://<filepath>
7178
7179 The following parameters can be set via command line options (or in
7180 code via "AVOption"s):
7181
7182 timeout
7183 Timeout in ms.
7184
7185 listen
7186 Create the Unix socket in listening mode.
7187
7188 zmq
7189 ZeroMQ asynchronous messaging using the libzmq library.
7190
7191 This library supports unicast streaming to multiple clients without
7192 relying on an external server.
7193
7194 The required syntax for streaming or connecting to a stream is:
7195
7196 zmq:tcp://ip-address:port
7197
7198 Example: Create a localhost stream on port 5555:
7199
7200 ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
7201
7202 Multiple clients may connect to the stream using:
7203
7204 ffplay zmq:tcp://127.0.0.1:5555
7205
7206 Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
7207 pattern. The server side binds to a port and publishes data. Clients
7208 connect to the server (via IP address/port) and subscribe to the
7209 stream. The order in which the server and client start generally does
7210 not matter.
7211
7212 ffmpeg must be compiled with the --enable-libzmq option to support this
7213 protocol.
7214
7215 Options can be set on the ffmpeg/ffplay command line. The following
7216 options are supported:
7217
7218 pkt_size
7219 Forces the maximum packet size for sending/receiving data. The
7220 default value is 131,072 bytes. On the server side, this sets the
7221 maximum size of sent packets via ZeroMQ. On the clients, it sets an
7222 internal buffer size for receiving packets. Note that pkt_size on
7223 the clients should be equal to or greater than pkt_size on the
7224 server. Otherwise the received message may be truncated causing
7225 decoding errors.
7226
7228 The libavdevice library provides the same interface as libavformat.
7229 Namely, an input device is considered like a demuxer, and an output
7230 device like a muxer, and the interface and generic device options are
7231 the same provided by libavformat (see the ffmpeg-formats manual).
7232
7233 In addition each input or output device may support so-called private
7234 options, which are specific for that component.
7235
7236 Options may be set by specifying -option value in the FFmpeg tools, or
7237 by setting the value explicitly in the device "AVFormatContext" options
7238 or using the libavutil/opt.h API for programmatic use.
7239
7241 Input devices are configured elements in FFmpeg which enable accessing
7242 the data coming from a multimedia device attached to your system.
7243
7244 When you configure your FFmpeg build, all the supported input devices
7245 are enabled by default. You can list all available ones using the
7246 configure option "--list-indevs".
7247
7248 You can disable all the input devices using the configure option
7249 "--disable-indevs", and selectively enable an input device using the
7250 option "--enable-indev=INDEV", or you can disable a particular input
7251 device using the option "--disable-indev=INDEV".
7252
7253 The option "-devices" of the ff* tools will display the list of
7254 supported input devices.
7255
7256 A description of the currently available input devices follows.
7257
7258 alsa
7259 ALSA (Advanced Linux Sound Architecture) input device.
7260
7261 To enable this input device during configuration you need libasound
7262 installed on your system.
7263
7264 This device allows capturing from an ALSA device. The name of the
7265 device to capture has to be an ALSA card identifier.
7266
7267 An ALSA identifier has the syntax:
7268
7269 hw:<CARD>[,<DEV>[,<SUBDEV>]]
7270
7271 where the DEV and SUBDEV components are optional.
7272
7273 The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
7274 identifier, device number and subdevice number (-1 means any).
7275
7276 To see the list of cards currently recognized by your system check the
7277 files /proc/asound/cards and /proc/asound/devices.
7278
7279 For example to capture with ffmpeg from an ALSA device with card id 0,
7280 you may run the command:
7281
7282 ffmpeg -f alsa -i hw:0 alsaout.wav
7283
7284 For more information see:
7285 <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
7286
7287 Options
7288
7289 sample_rate
7290 Set the sample rate in Hz. Default is 48000.
7291
7292 channels
7293 Set the number of channels. Default is 2.
7294
7295 android_camera
7296 Android camera input device.
7297
7298 This input devices uses the Android Camera2 NDK API which is available
7299 on devices with API level 24+. The availability of android_camera is
7300 autodetected during configuration.
7301
7302 This device allows capturing from all cameras on an Android device,
7303 which are integrated into the Camera2 NDK API.
7304
7305 The available cameras are enumerated internally and can be selected
7306 with the camera_index parameter. The input file string is discarded.
7307
7308 Generally the back facing camera has index 0 while the front facing
7309 camera has index 1.
7310
7311 Options
7312
7313 video_size
7314 Set the video size given as a string such as 640x480 or hd720.
7315 Falls back to the first available configuration reported by Android
7316 if requested video size is not available or by default.
7317
7318 framerate
7319 Set the video framerate. Falls back to the first available
7320 configuration reported by Android if requested framerate is not
7321 available or by default (-1).
7322
7323 camera_index
7324 Set the index of the camera to use. Default is 0.
7325
7326 input_queue_size
7327 Set the maximum number of frames to buffer. Default is 5.
7328
7329 avfoundation
7330 AVFoundation input device.
7331
7332 AVFoundation is the currently recommended framework by Apple for
7333 streamgrabbing on OSX >= 10.7 as well as on iOS.
7334
7335 The input filename has to be given in the following syntax:
7336
7337 -i "[[VIDEO]:[AUDIO]]"
7338
7339 The first entry selects the video input while the latter selects the
7340 audio input. The stream has to be specified by the device name or the
7341 device index as shown by the device list. Alternatively, the video
7342 and/or audio input device can be chosen by index using the
7343
7344 B<-video_device_index E<lt>INDEXE<gt>>
7345
7346 and/or
7347
7348 B<-audio_device_index E<lt>INDEXE<gt>>
7349
7350 , overriding any device name or index given in the input filename.
7351
7352 All available devices can be enumerated by using -list_devices true,
7353 listing all device names and corresponding indices.
7354
7355 There are two device name aliases:
7356
7357 "default"
7358 Select the AVFoundation default device of the corresponding type.
7359
7360 "none"
7361 Do not record the corresponding media type. This is equivalent to
7362 specifying an empty device name or index.
7363
7364 Options
7365
7366 AVFoundation supports the following options:
7367
7368 -list_devices <TRUE|FALSE>
7369 If set to true, a list of all available input devices is given
7370 showing all device names and indices.
7371
7372 -video_device_index <INDEX>
7373 Specify the video device by its index. Overrides anything given in
7374 the input filename.
7375
7376 -audio_device_index <INDEX>
7377 Specify the audio device by its index. Overrides anything given in
7378 the input filename.
7379
7380 -pixel_format <FORMAT>
7381 Request the video device to use a specific pixel format. If the
7382 specified format is not supported, a list of available formats is
7383 given and the first one in this list is used instead. Available
7384 pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
7385 rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
7386 bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
7387 yuv422p10, yuv444p10,
7388 yuv420p, nv12, yuyv422, gray"
7389
7390 -framerate
7391 Set the grabbing frame rate. Default is "ntsc", corresponding to a
7392 frame rate of "30000/1001".
7393
7394 -video_size
7395 Set the video frame size.
7396
7397 -capture_cursor
7398 Capture the mouse pointer. Default is 0.
7399
7400 -capture_mouse_clicks
7401 Capture the screen mouse clicks. Default is 0.
7402
7403 -capture_raw_data
7404 Capture the raw device data. Default is 0. Using this option may
7405 result in receiving the underlying data delivered to the
7406 AVFoundation framework. E.g. for muxed devices that sends raw DV
7407 data to the framework (like tape-based camcorders), setting this
7408 option to false results in extracted video frames captured in the
7409 designated pixel format only. Setting this option to true results
7410 in receiving the raw DV stream untouched.
7411
7412 Examples
7413
7414 • Print the list of AVFoundation supported devices and exit:
7415
7416 $ ffmpeg -f avfoundation -list_devices true -i ""
7417
7418 • Record video from video device 0 and audio from audio device 0 into
7419 out.avi:
7420
7421 $ ffmpeg -f avfoundation -i "0:0" out.avi
7422
7423 • Record video from video device 2 and audio from audio device 1 into
7424 out.avi:
7425
7426 $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
7427
7428 • Record video from the system default video device using the pixel
7429 format bgr0 and do not record any audio into out.avi:
7430
7431 $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
7432
7433 • Record raw DV data from a suitable input device and write the
7434 output into out.dv:
7435
7436 $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
7437
7438 bktr
7439 BSD video input device.
7440
7441 Options
7442
7443 framerate
7444 Set the frame rate.
7445
7446 video_size
7447 Set the video frame size. Default is "vga".
7448
7449 standard
7450 Available values are:
7451
7452 pal
7453 ntsc
7454 secam
7455 paln
7456 palm
7457 ntscj
7458
7459 decklink
7460 The decklink input device provides capture capabilities for Blackmagic
7461 DeckLink devices.
7462
7463 To enable this input device, you need the Blackmagic DeckLink SDK and
7464 you need to configure with the appropriate "--extra-cflags" and
7465 "--extra-ldflags". On Windows, you need to run the IDL files through
7466 widl.
7467
7468 DeckLink is very picky about the formats it supports. Pixel format of
7469 the input can be set with raw_format. Framerate and video size must be
7470 determined for your device with -list_formats 1. Audio sample rate is
7471 always 48 kHz and the number of channels can be 2, 8 or 16. Note that
7472 all audio channels are bundled in one single audio track.
7473
7474 Options
7475
7476 list_devices
7477 If set to true, print a list of devices and exit. Defaults to
7478 false. This option is deprecated, please use the "-sources" option
7479 of ffmpeg to list the available input devices.
7480
7481 list_formats
7482 If set to true, print a list of supported formats and exit.
7483 Defaults to false.
7484
7485 format_code <FourCC>
7486 This sets the input video format to the format given by the FourCC.
7487 To see the supported values of your device(s) use list_formats.
7488 Note that there is a FourCC 'pal ' that can also be used as pal (3
7489 letters). Default behavior is autodetection of the input video
7490 format, if the hardware supports it.
7491
7492 raw_format
7493 Set the pixel format of the captured video. Available values are:
7494
7495 auto
7496 This is the default which means 8-bit YUV 422 or 8-bit ARGB if
7497 format autodetection is used, 8-bit YUV 422 otherwise.
7498
7499 uyvy422
7500 8-bit YUV 422.
7501
7502 yuv422p10
7503 10-bit YUV 422.
7504
7505 argb
7506 8-bit RGB.
7507
7508 bgra
7509 8-bit RGB.
7510
7511 rgb10
7512 10-bit RGB.
7513
7514 teletext_lines
7515 If set to nonzero, an additional teletext stream will be captured
7516 from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
7517 or 1080p) sources are supported. In case of HD sources, OP47
7518 packets are decoded.
7519
7520 This option is a bitmask of the SD PAL VBI lines captured,
7521 specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
7522 in the mask. Selected lines which do not contain teletext
7523 information will be ignored. You can use the special all constant
7524 to select all possible lines, or standard to skip lines 6, 318 and
7525 319, which are not compatible with all receivers.
7526
7527 For SD sources, ffmpeg needs to be compiled with
7528 "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
7529 models you have to capture in 10 bit mode.
7530
7531 channels
7532 Defines number of audio channels to capture. Must be 2, 8 or 16.
7533 Defaults to 2.
7534
7535 duplex_mode
7536 Sets the decklink device duplex/profile mode. Must be unset, half,
7537 full, one_sub_device_full, one_sub_device_half,
7538 two_sub_device_full, four_sub_device_half Defaults to unset.
7539
7540 Note: DeckLink SDK 11.0 have replaced the duplex property by a
7541 profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
7542 profile is shared between any 2 sub-devices that utilize the same
7543 connectors. For the DeckLink 8K Pro, a profile is shared between
7544 all 4 sub-devices. So DeckLink 8K Pro support four profiles.
7545
7546 Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
7547 one_sub_device_full, one_sub_device_half, two_sub_device_full,
7548 four_sub_device_half
7549
7550 Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
7551 full
7552
7553 timecode_format
7554 Timecode type to include in the frame and video stream metadata.
7555 Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
7556 vitc, vitc2, or serial. Defaults to none (not included).
7557
7558 In order to properly support 50/60 fps timecodes, the ordering of
7559 the queried timecode types for rp188any is HFR, VITC1, VITC2 and
7560 LTC for >30 fps content. Note that this is slightly different to
7561 the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
7562 VITC2.
7563
7564 video_input
7565 Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
7566 component, composite or s_video. Defaults to unset.
7567
7568 audio_input
7569 Sets the audio input source. Must be unset, embedded, aes_ebu,
7570 analog, analog_xlr, analog_rca or microphone. Defaults to unset.
7571
7572 video_pts
7573 Sets the video packet timestamp source. Must be video, audio,
7574 reference, wallclock or abs_wallclock. Defaults to video.
7575
7576 audio_pts
7577 Sets the audio packet timestamp source. Must be video, audio,
7578 reference, wallclock or abs_wallclock. Defaults to audio.
7579
7580 draw_bars
7581 If set to true, color bars are drawn in the event of a signal loss.
7582 Defaults to true.
7583
7584 queue_size
7585 Sets maximum input buffer size in bytes. If the buffering reaches
7586 this value, incoming frames will be dropped. Defaults to
7587 1073741824.
7588
7589 audio_depth
7590 Sets the audio sample bit depth. Must be 16 or 32. Defaults to 16.
7591
7592 decklink_copyts
7593 If set to true, timestamps are forwarded as they are without
7594 removing the initial offset. Defaults to false.
7595
7596 timestamp_align
7597 Capture start time alignment in seconds. If set to nonzero, input
7598 frames are dropped till the system timestamp aligns with configured
7599 value. Alignment difference of up to one frame duration is
7600 tolerated. This is useful for maintaining input synchronization
7601 across N different hardware devices deployed for 'N-way'
7602 redundancy. The system time of different hardware devices should be
7603 synchronized with protocols such as NTP or PTP, before using this
7604 option. Note that this method is not foolproof. In some border
7605 cases input synchronization may not happen due to thread scheduling
7606 jitters in the OS. Either sync could go wrong by 1 frame or in a
7607 rarer case timestamp_align seconds. Defaults to 0.
7608
7609 wait_for_tc (bool)
7610 Drop frames till a frame with timecode is received. Sometimes
7611 serial timecode isn't received with the first input frame. If that
7612 happens, the stored stream timecode will be inaccurate. If this
7613 option is set to true, input frames are dropped till a frame with
7614 timecode is received. Option timecode_format must be specified.
7615 Defaults to false.
7616
7617 enable_klv(bool)
7618 If set to true, extracts KLV data from VANC and outputs KLV
7619 packets. KLV VANC packets are joined based on MID and PSC fields
7620 and aggregated into one KLV packet. Defaults to false.
7621
7622 Examples
7623
7624 • List input devices:
7625
7626 ffmpeg -sources decklink
7627
7628 • List supported formats:
7629
7630 ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
7631
7632 • Capture video clip at 1080i50:
7633
7634 ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
7635
7636 • Capture video clip at 1080i50 10 bit:
7637
7638 ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7639
7640 • Capture video clip at 1080i50 with 16 audio channels:
7641
7642 ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7643
7644 dshow
7645 Windows DirectShow input device.
7646
7647 DirectShow support is enabled when FFmpeg is built with the mingw-w64
7648 project. Currently only audio and video devices are supported.
7649
7650 Multiple devices may be opened as separate inputs, but they may also be
7651 opened on the same input, which should improve synchronism between
7652 them.
7653
7654 The input name should be in the format:
7655
7656 <TYPE>=<NAME>[:<TYPE>=<NAME>]
7657
7658 where TYPE can be either audio or video, and NAME is the device's name
7659 or alternative name..
7660
7661 Options
7662
7663 If no options are specified, the device's defaults are used. If the
7664 device does not support the requested options, it will fail to open.
7665
7666 video_size
7667 Set the video size in the captured video.
7668
7669 framerate
7670 Set the frame rate in the captured video.
7671
7672 sample_rate
7673 Set the sample rate (in Hz) of the captured audio.
7674
7675 sample_size
7676 Set the sample size (in bits) of the captured audio.
7677
7678 channels
7679 Set the number of channels in the captured audio.
7680
7681 list_devices
7682 If set to true, print a list of devices and exit.
7683
7684 list_options
7685 If set to true, print a list of selected device's options and exit.
7686
7687 video_device_number
7688 Set video device number for devices with the same name (starts at
7689 0, defaults to 0).
7690
7691 audio_device_number
7692 Set audio device number for devices with the same name (starts at
7693 0, defaults to 0).
7694
7695 pixel_format
7696 Select pixel format to be used by DirectShow. This may only be set
7697 when the video codec is not set or set to rawvideo.
7698
7699 audio_buffer_size
7700 Set audio device buffer size in milliseconds (which can directly
7701 impact latency, depending on the device). Defaults to using the
7702 audio device's default buffer size (typically some multiple of
7703 500ms). Setting this value too low can degrade performance. See
7704 also
7705 <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
7706
7707 video_pin_name
7708 Select video capture pin to use by name or alternative name.
7709
7710 audio_pin_name
7711 Select audio capture pin to use by name or alternative name.
7712
7713 crossbar_video_input_pin_number
7714 Select video input pin number for crossbar device. This will be
7715 routed to the crossbar device's Video Decoder output pin. Note
7716 that changing this value can affect future invocations (sets a new
7717 default) until system reboot occurs.
7718
7719 crossbar_audio_input_pin_number
7720 Select audio input pin number for crossbar device. This will be
7721 routed to the crossbar device's Audio Decoder output pin. Note
7722 that changing this value can affect future invocations (sets a new
7723 default) until system reboot occurs.
7724
7725 show_video_device_dialog
7726 If set to true, before capture starts, popup a display dialog to
7727 the end user, allowing them to change video filter properties and
7728 configurations manually. Note that for crossbar devices, adjusting
7729 values in this dialog may be needed at times to toggle between PAL
7730 (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
7731 etc. Changing these values can enable different scan rates/frame
7732 rates and avoiding green bars at the bottom, flickering scan lines,
7733 etc. Note that with some devices, changing these properties can
7734 also affect future invocations (sets new defaults) until system
7735 reboot occurs.
7736
7737 show_audio_device_dialog
7738 If set to true, before capture starts, popup a display dialog to
7739 the end user, allowing them to change audio filter properties and
7740 configurations manually.
7741
7742 show_video_crossbar_connection_dialog
7743 If set to true, before capture starts, popup a display dialog to
7744 the end user, allowing them to manually modify crossbar pin
7745 routings, when it opens a video device.
7746
7747 show_audio_crossbar_connection_dialog
7748 If set to true, before capture starts, popup a display dialog to
7749 the end user, allowing them to manually modify crossbar pin
7750 routings, when it opens an audio device.
7751
7752 show_analog_tv_tuner_dialog
7753 If set to true, before capture starts, popup a display dialog to
7754 the end user, allowing them to manually modify TV channels and
7755 frequencies.
7756
7757 show_analog_tv_tuner_audio_dialog
7758 If set to true, before capture starts, popup a display dialog to
7759 the end user, allowing them to manually modify TV audio (like mono
7760 vs. stereo, Language A,B or C).
7761
7762 audio_device_load
7763 Load an audio capture filter device from file instead of searching
7764 it by name. It may load additional parameters too, if the filter
7765 supports the serialization of its properties to. To use this an
7766 audio capture source has to be specified, but it can be anything
7767 even fake one.
7768
7769 audio_device_save
7770 Save the currently used audio capture filter device and its
7771 parameters (if the filter supports it) to a file. If a file with
7772 the same name exists it will be overwritten.
7773
7774 video_device_load
7775 Load a video capture filter device from file instead of searching
7776 it by name. It may load additional parameters too, if the filter
7777 supports the serialization of its properties to. To use this a
7778 video capture source has to be specified, but it can be anything
7779 even fake one.
7780
7781 video_device_save
7782 Save the currently used video capture filter device and its
7783 parameters (if the filter supports it) to a file. If a file with
7784 the same name exists it will be overwritten.
7785
7786 use_video_device_timestamps
7787 If set to false, the timestamp for video frames will be derived
7788 from the wallclock instead of the timestamp provided by the capture
7789 device. This allows working around devices that provide unreliable
7790 timestamps.
7791
7792 Examples
7793
7794 • Print the list of DirectShow supported devices and exit:
7795
7796 $ ffmpeg -list_devices true -f dshow -i dummy
7797
7798 • Open video device Camera:
7799
7800 $ ffmpeg -f dshow -i video="Camera"
7801
7802 • Open second video device with name Camera:
7803
7804 $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
7805
7806 • Open video device Camera and audio device Microphone:
7807
7808 $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
7809
7810 • Print the list of supported options in selected device and exit:
7811
7812 $ ffmpeg -list_options true -f dshow -i video="Camera"
7813
7814 • Specify pin names to capture by name or alternative name, specify
7815 alternative device name:
7816
7817 $ 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"
7818
7819 • Configure a crossbar device, specifying crossbar pins, allow user
7820 to adjust video capture properties at startup:
7821
7822 $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
7823 -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
7824
7825 fbdev
7826 Linux framebuffer input device.
7827
7828 The Linux framebuffer is a graphic hardware-independent abstraction
7829 layer to show graphics on a computer monitor, typically on the console.
7830 It is accessed through a file device node, usually /dev/fb0.
7831
7832 For more detailed information read the file
7833 Documentation/fb/framebuffer.txt included in the Linux source tree.
7834
7835 See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
7836
7837 To record from the framebuffer device /dev/fb0 with ffmpeg:
7838
7839 ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
7840
7841 You can take a single screenshot image with the command:
7842
7843 ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
7844
7845 Options
7846
7847 framerate
7848 Set the frame rate. Default is 25.
7849
7850 gdigrab
7851 Win32 GDI-based screen capture device.
7852
7853 This device allows you to capture a region of the display on Windows.
7854
7855 There are two options for the input filename:
7856
7857 desktop
7858
7859 or
7860
7861 title=<window_title>
7862
7863 The first option will capture the entire desktop, or a fixed region of
7864 the desktop. The second option will instead capture the contents of a
7865 single window, regardless of its position on the screen.
7866
7867 For example, to grab the entire desktop using ffmpeg:
7868
7869 ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
7870
7871 Grab a 640x480 region at position "10,20":
7872
7873 ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
7874
7875 Grab the contents of the window named "Calculator"
7876
7877 ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
7878
7879 Options
7880
7881 draw_mouse
7882 Specify whether to draw the mouse pointer. Use the value 0 to not
7883 draw the pointer. Default value is 1.
7884
7885 framerate
7886 Set the grabbing frame rate. Default value is "ntsc", corresponding
7887 to a frame rate of "30000/1001".
7888
7889 show_region
7890 Show grabbed region on screen.
7891
7892 If show_region is specified with 1, then the grabbing region will
7893 be indicated on screen. With this option, it is easy to know what
7894 is being grabbed if only a portion of the screen is grabbed.
7895
7896 Note that show_region is incompatible with grabbing the contents of
7897 a single window.
7898
7899 For example:
7900
7901 ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
7902
7903 video_size
7904 Set the video frame size. The default is to capture the full screen
7905 if desktop is selected, or the full window size if
7906 title=window_title is selected.
7907
7908 offset_x
7909 When capturing a region with video_size, set the distance from the
7910 left edge of the screen or desktop.
7911
7912 Note that the offset calculation is from the top left corner of the
7913 primary monitor on Windows. If you have a monitor positioned to the
7914 left of your primary monitor, you will need to use a negative
7915 offset_x value to move the region to that monitor.
7916
7917 offset_y
7918 When capturing a region with video_size, set the distance from the
7919 top edge of the screen or desktop.
7920
7921 Note that the offset calculation is from the top left corner of the
7922 primary monitor on Windows. If you have a monitor positioned above
7923 your primary monitor, you will need to use a negative offset_y
7924 value to move the region to that monitor.
7925
7926 iec61883
7927 FireWire DV/HDV input device using libiec61883.
7928
7929 To enable this input device, you need libiec61883, libraw1394 and
7930 libavc1394 installed on your system. Use the configure option
7931 "--enable-libiec61883" to compile with the device enabled.
7932
7933 The iec61883 capture device supports capturing from a video device
7934 connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
7935 FireWire stack (juju). This is the default DV/HDV input method in Linux
7936 Kernel 2.6.37 and later, since the old FireWire stack was removed.
7937
7938 Specify the FireWire port to be used as input file, or "auto" to choose
7939 the first port connected.
7940
7941 Options
7942
7943 dvtype
7944 Override autodetection of DV/HDV. This should only be used if auto
7945 detection does not work, or if usage of a different device type
7946 should be prohibited. Treating a DV device as HDV (or vice versa)
7947 will not work and result in undefined behavior. The values auto,
7948 dv and hdv are supported.
7949
7950 dvbuffer
7951 Set maximum size of buffer for incoming data, in frames. For DV,
7952 this is an exact value. For HDV, it is not frame exact, since HDV
7953 does not have a fixed frame size.
7954
7955 dvguid
7956 Select the capture device by specifying its GUID. Capturing will
7957 only be performed from the specified device and fails if no device
7958 with the given GUID is found. This is useful to select the input if
7959 multiple devices are connected at the same time. Look at
7960 /sys/bus/firewire/devices to find out the GUIDs.
7961
7962 Examples
7963
7964 • Grab and show the input of a FireWire DV/HDV device.
7965
7966 ffplay -f iec61883 -i auto
7967
7968 • Grab and record the input of a FireWire DV/HDV device, using a
7969 packet buffer of 100000 packets if the source is HDV.
7970
7971 ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
7972
7973 jack
7974 JACK input device.
7975
7976 To enable this input device during configuration you need libjack
7977 installed on your system.
7978
7979 A JACK input device creates one or more JACK writable clients, one for
7980 each audio channel, with name client_name:input_N, where client_name is
7981 the name provided by the application, and N is a number which
7982 identifies the channel. Each writable client will send the acquired
7983 data to the FFmpeg input device.
7984
7985 Once you have created one or more JACK readable clients, you need to
7986 connect them to one or more JACK writable clients.
7987
7988 To connect or disconnect JACK clients you can use the jack_connect and
7989 jack_disconnect programs, or do it through a graphical interface, for
7990 example with qjackctl.
7991
7992 To list the JACK clients and their properties you can invoke the
7993 command jack_lsp.
7994
7995 Follows an example which shows how to capture a JACK readable client
7996 with ffmpeg.
7997
7998 # Create a JACK writable client with name "ffmpeg".
7999 $ ffmpeg -f jack -i ffmpeg -y out.wav
8000
8001 # Start the sample jack_metro readable client.
8002 $ jack_metro -b 120 -d 0.2 -f 4000
8003
8004 # List the current JACK clients.
8005 $ jack_lsp -c
8006 system:capture_1
8007 system:capture_2
8008 system:playback_1
8009 system:playback_2
8010 ffmpeg:input_1
8011 metro:120_bpm
8012
8013 # Connect metro to the ffmpeg writable client.
8014 $ jack_connect metro:120_bpm ffmpeg:input_1
8015
8016 For more information read: <http://jackaudio.org/>
8017
8018 Options
8019
8020 channels
8021 Set the number of channels. Default is 2.
8022
8023 kmsgrab
8024 KMS video input device.
8025
8026 Captures the KMS scanout framebuffer associated with a specified CRTC
8027 or plane as a DRM object that can be passed to other hardware
8028 functions.
8029
8030 Requires either DRM master or CAP_SYS_ADMIN to run.
8031
8032 If you don't understand what all of that means, you probably don't want
8033 this. Look at x11grab instead.
8034
8035 Options
8036
8037 device
8038 DRM device to capture on. Defaults to /dev/dri/card0.
8039
8040 format
8041 Pixel format of the framebuffer. This can be autodetected if you
8042 are running Linux 5.7 or later, but needs to be provided for
8043 earlier versions. Defaults to bgr0, which is the most common
8044 format used by the Linux console and Xorg X server.
8045
8046 format_modifier
8047 Format modifier to signal on output frames. This is necessary to
8048 import correctly into some APIs. It can be autodetected if you are
8049 running Linux 5.7 or later, but will need to be provided explicitly
8050 when needed in earlier versions. See the libdrm documentation for
8051 possible values.
8052
8053 crtc_id
8054 KMS CRTC ID to define the capture source. The first active plane
8055 on the given CRTC will be used.
8056
8057 plane_id
8058 KMS plane ID to define the capture source. Defaults to the first
8059 active plane found if neither crtc_id nor plane_id are specified.
8060
8061 framerate
8062 Framerate to capture at. This is not synchronised to any page
8063 flipping or framebuffer changes - it just defines the interval at
8064 which the framebuffer is sampled. Sampling faster than the
8065 framebuffer update rate will generate independent frames with the
8066 same content. Defaults to 30.
8067
8068 Examples
8069
8070 • Capture from the first active plane, download the result to normal
8071 frames and encode. This will only work if the framebuffer is both
8072 linear and mappable - if not, the result may be scrambled or fail
8073 to download.
8074
8075 ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
8076
8077 • Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
8078 to NV12 and encode as H.264.
8079
8080 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
8081
8082 • To capture only part of a plane the output can be cropped - this
8083 can be used to capture a single window, as long as it has a known
8084 absolute position and size. For example, to capture and encode the
8085 middle quarter of a 1920x1080 plane:
8086
8087 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
8088
8089 lavfi
8090 Libavfilter input virtual device.
8091
8092 This input device reads data from the open output pads of a libavfilter
8093 filtergraph.
8094
8095 For each filtergraph open output, the input device will create a
8096 corresponding stream which is mapped to the generated output. Currently
8097 only video data is supported. The filtergraph is specified through the
8098 option graph.
8099
8100 Options
8101
8102 graph
8103 Specify the filtergraph to use as input. Each video open output
8104 must be labelled by a unique string of the form "outN", where N is
8105 a number starting from 0 corresponding to the mapped input stream
8106 generated by the device. The first unlabelled output is
8107 automatically assigned to the "out0" label, but all the others need
8108 to be specified explicitly.
8109
8110 The suffix "+subcc" can be appended to the output label to create
8111 an extra stream with the closed captions packets attached to that
8112 output (experimental; only for EIA-608 / CEA-708 for now). The
8113 subcc streams are created after all the normal streams, in the
8114 order of the corresponding stream. For example, if there is
8115 "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
8116 subcc for stream #7 and stream #44 is subcc for stream #19.
8117
8118 If not specified defaults to the filename specified for the input
8119 device.
8120
8121 graph_file
8122 Set the filename of the filtergraph to be read and sent to the
8123 other filters. Syntax of the filtergraph is the same as the one
8124 specified by the option graph.
8125
8126 dumpgraph
8127 Dump graph to stderr.
8128
8129 Examples
8130
8131 • Create a color video stream and play it back with ffplay:
8132
8133 ffplay -f lavfi -graph "color=c=pink [out0]" dummy
8134
8135 • As the previous example, but use filename for specifying the graph
8136 description, and omit the "out0" label:
8137
8138 ffplay -f lavfi color=c=pink
8139
8140 • Create three different video test filtered sources and play them:
8141
8142 ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
8143
8144 • Read an audio stream from a file using the amovie source and play
8145 it back with ffplay:
8146
8147 ffplay -f lavfi "amovie=test.wav"
8148
8149 • Read an audio stream and a video stream and play it back with
8150 ffplay:
8151
8152 ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
8153
8154 • Dump decoded frames to images and closed captions to a file
8155 (experimental):
8156
8157 ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
8158
8159 libcdio
8160 Audio-CD input device based on libcdio.
8161
8162 To enable this input device during configuration you need libcdio
8163 installed on your system. It requires the configure option
8164 "--enable-libcdio".
8165
8166 This device allows playing and grabbing from an Audio-CD.
8167
8168 For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
8169 may run the command:
8170
8171 ffmpeg -f libcdio -i /dev/sr0 cd.wav
8172
8173 Options
8174
8175 speed
8176 Set drive reading speed. Default value is 0.
8177
8178 The speed is specified CD-ROM speed units. The speed is set through
8179 the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
8180 specifying a value too large will result in using the fastest
8181 speed.
8182
8183 paranoia_mode
8184 Set paranoia recovery mode flags. It accepts one of the following
8185 values:
8186
8187 disable
8188 verify
8189 overlap
8190 neverskip
8191 full
8192
8193 Default value is disable.
8194
8195 For more information about the available recovery modes, consult
8196 the paranoia project documentation.
8197
8198 libdc1394
8199 IIDC1394 input device, based on libdc1394 and libraw1394.
8200
8201 Requires the configure option "--enable-libdc1394".
8202
8203 Options
8204
8205 framerate
8206 Set the frame rate. Default is "ntsc", corresponding to a frame
8207 rate of "30000/1001".
8208
8209 pixel_format
8210 Select the pixel format. Default is "uyvy422".
8211
8212 video_size
8213 Set the video size given as a string such as "640x480" or "hd720".
8214 Default is "qvga".
8215
8216 openal
8217 The OpenAL input device provides audio capture on all systems with a
8218 working OpenAL 1.1 implementation.
8219
8220 To enable this input device during configuration, you need OpenAL
8221 headers and libraries installed on your system, and need to configure
8222 FFmpeg with "--enable-openal".
8223
8224 OpenAL headers and libraries should be provided as part of your OpenAL
8225 implementation, or as an additional download (an SDK). Depending on
8226 your installation you may need to specify additional flags via the
8227 "--extra-cflags" and "--extra-ldflags" for allowing the build system to
8228 locate the OpenAL headers and libraries.
8229
8230 An incomplete list of OpenAL implementations follows:
8231
8232 Creative
8233 The official Windows implementation, providing hardware
8234 acceleration with supported devices and software fallback. See
8235 <http://openal.org/>.
8236
8237 OpenAL Soft
8238 Portable, open source (LGPL) software implementation. Includes
8239 backends for the most common sound APIs on the Windows, Linux,
8240 Solaris, and BSD operating systems. See
8241 <http://kcat.strangesoft.net/openal.html>.
8242
8243 Apple
8244 OpenAL is part of Core Audio, the official Mac OS X Audio
8245 interface. See
8246 <http://developer.apple.com/technologies/mac/audio-and-video.html>
8247
8248 This device allows one to capture from an audio input device handled
8249 through OpenAL.
8250
8251 You need to specify the name of the device to capture in the provided
8252 filename. If the empty string is provided, the device will
8253 automatically select the default device. You can get the list of the
8254 supported devices by using the option list_devices.
8255
8256 Options
8257
8258 channels
8259 Set the number of channels in the captured audio. Only the values 1
8260 (monaural) and 2 (stereo) are currently supported. Defaults to 2.
8261
8262 sample_size
8263 Set the sample size (in bits) of the captured audio. Only the
8264 values 8 and 16 are currently supported. Defaults to 16.
8265
8266 sample_rate
8267 Set the sample rate (in Hz) of the captured audio. Defaults to
8268 44.1k.
8269
8270 list_devices
8271 If set to true, print a list of devices and exit. Defaults to
8272 false.
8273
8274 Examples
8275
8276 Print the list of OpenAL supported devices and exit:
8277
8278 $ ffmpeg -list_devices true -f openal -i dummy out.ogg
8279
8280 Capture from the OpenAL device DR-BT101 via PulseAudio:
8281
8282 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
8283
8284 Capture from the default device (note the empty string '' as filename):
8285
8286 $ ffmpeg -f openal -i '' out.ogg
8287
8288 Capture from two devices simultaneously, writing to two different
8289 files, within the same ffmpeg command:
8290
8291 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
8292
8293 Note: not all OpenAL implementations support multiple simultaneous
8294 capture - try the latest OpenAL Soft if the above does not work.
8295
8296 oss
8297 Open Sound System input device.
8298
8299 The filename to provide to the input device is the device node
8300 representing the OSS input device, and is usually set to /dev/dsp.
8301
8302 For example to grab from /dev/dsp using ffmpeg use the command:
8303
8304 ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
8305
8306 For more information about OSS see:
8307 <http://manuals.opensound.com/usersguide/dsp.html>
8308
8309 Options
8310
8311 sample_rate
8312 Set the sample rate in Hz. Default is 48000.
8313
8314 channels
8315 Set the number of channels. Default is 2.
8316
8317 pulse
8318 PulseAudio input device.
8319
8320 To enable this output device you need to configure FFmpeg with
8321 "--enable-libpulse".
8322
8323 The filename to provide to the input device is a source device or the
8324 string "default"
8325
8326 To list the PulseAudio source devices and their properties you can
8327 invoke the command pactl list sources.
8328
8329 More information about PulseAudio can be found on
8330 <http://www.pulseaudio.org>.
8331
8332 Options
8333
8334 server
8335 Connect to a specific PulseAudio server, specified by an IP
8336 address. Default server is used when not provided.
8337
8338 name
8339 Specify the application name PulseAudio will use when showing
8340 active clients, by default it is the "LIBAVFORMAT_IDENT" string.
8341
8342 stream_name
8343 Specify the stream name PulseAudio will use when showing active
8344 streams, by default it is "record".
8345
8346 sample_rate
8347 Specify the samplerate in Hz, by default 48kHz is used.
8348
8349 channels
8350 Specify the channels in use, by default 2 (stereo) is set.
8351
8352 frame_size
8353 This option does nothing and is deprecated.
8354
8355 fragment_size
8356 Specify the size in bytes of the minimal buffering fragment in
8357 PulseAudio, it will affect the audio latency. By default it is set
8358 to 50 ms amount of data.
8359
8360 wallclock
8361 Set the initial PTS using the current time. Default is 1.
8362
8363 Examples
8364
8365 Record a stream from default device:
8366
8367 ffmpeg -f pulse -i default /tmp/pulse.wav
8368
8369 sndio
8370 sndio input device.
8371
8372 To enable this input device during configuration you need libsndio
8373 installed on your system.
8374
8375 The filename to provide to the input device is the device node
8376 representing the sndio input device, and is usually set to /dev/audio0.
8377
8378 For example to grab from /dev/audio0 using ffmpeg use the command:
8379
8380 ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
8381
8382 Options
8383
8384 sample_rate
8385 Set the sample rate in Hz. Default is 48000.
8386
8387 channels
8388 Set the number of channels. Default is 2.
8389
8390 video4linux2, v4l2
8391 Video4Linux2 input video device.
8392
8393 "v4l2" can be used as alias for "video4linux2".
8394
8395 If FFmpeg is built with v4l-utils support (by using the
8396 "--enable-libv4l2" configure option), it is possible to use it with the
8397 "-use_libv4l2" input device option.
8398
8399 The name of the device to grab is a file device node, usually Linux
8400 systems tend to automatically create such nodes when the device (e.g.
8401 an USB webcam) is plugged into the system, and has a name of the kind
8402 /dev/videoN, where N is a number associated to the device.
8403
8404 Video4Linux2 devices usually support a limited set of widthxheight
8405 sizes and frame rates. You can check which are supported using
8406 -list_formats all for Video4Linux2 devices. Some devices, like TV
8407 cards, support one or more standards. It is possible to list all the
8408 supported standards using -list_standards all.
8409
8410 The time base for the timestamps is 1 microsecond. Depending on the
8411 kernel version and configuration, the timestamps may be derived from
8412 the real time clock (origin at the Unix Epoch) or the monotonic clock
8413 (origin usually at boot time, unaffected by NTP or manual changes to
8414 the clock). The -timestamps abs or -ts abs option can be used to force
8415 conversion into the real time clock.
8416
8417 Some usage examples of the video4linux2 device with ffmpeg and ffplay:
8418
8419 • List supported formats for a video4linux2 device:
8420
8421 ffplay -f video4linux2 -list_formats all /dev/video0
8422
8423 • Grab and show the input of a video4linux2 device:
8424
8425 ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
8426
8427 • Grab and record the input of a video4linux2 device, leave the frame
8428 rate and size as previously set:
8429
8430 ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
8431
8432 For more information about Video4Linux, check <http://linuxtv.org/>.
8433
8434 Options
8435
8436 standard
8437 Set the standard. Must be the name of a supported standard. To get
8438 a list of the supported standards, use the list_standards option.
8439
8440 channel
8441 Set the input channel number. Default to -1, which means using the
8442 previously selected channel.
8443
8444 video_size
8445 Set the video frame size. The argument must be a string in the form
8446 WIDTHxHEIGHT or a valid size abbreviation.
8447
8448 pixel_format
8449 Select the pixel format (only valid for raw video input).
8450
8451 input_format
8452 Set the preferred pixel format (for raw video) or a codec name.
8453 This option allows one to select the input format, when several are
8454 available.
8455
8456 framerate
8457 Set the preferred video frame rate.
8458
8459 list_formats
8460 List available formats (supported pixel formats, codecs, and frame
8461 sizes) and exit.
8462
8463 Available values are:
8464
8465 all Show all available (compressed and non-compressed) formats.
8466
8467 raw Show only raw video (non-compressed) formats.
8468
8469 compressed
8470 Show only compressed formats.
8471
8472 list_standards
8473 List supported standards and exit.
8474
8475 Available values are:
8476
8477 all Show all supported standards.
8478
8479 timestamps, ts
8480 Set type of timestamps for grabbed frames.
8481
8482 Available values are:
8483
8484 default
8485 Use timestamps from the kernel.
8486
8487 abs Use absolute timestamps (wall clock).
8488
8489 mono2abs
8490 Force conversion from monotonic to absolute timestamps.
8491
8492 Default value is "default".
8493
8494 use_libv4l2
8495 Use libv4l2 (v4l-utils) conversion functions. Default is 0.
8496
8497 vfwcap
8498 VfW (Video for Windows) capture input device.
8499
8500 The filename passed as input is the capture driver number, ranging from
8501 0 to 9. You may use "list" as filename to print a list of drivers. Any
8502 other filename will be interpreted as device number 0.
8503
8504 Options
8505
8506 video_size
8507 Set the video frame size.
8508
8509 framerate
8510 Set the grabbing frame rate. Default value is "ntsc", corresponding
8511 to a frame rate of "30000/1001".
8512
8513 x11grab
8514 X11 video input device.
8515
8516 To enable this input device during configuration you need libxcb
8517 installed on your system. It will be automatically detected during
8518 configuration.
8519
8520 This device allows one to capture a region of an X11 display.
8521
8522 The filename passed as input has the syntax:
8523
8524 [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
8525
8526 hostname:display_number.screen_number specifies the X11 display name of
8527 the screen to grab from. hostname can be omitted, and defaults to
8528 "localhost". The environment variable DISPLAY contains the default
8529 display name.
8530
8531 x_offset and y_offset specify the offsets of the grabbed area with
8532 respect to the top-left border of the X11 screen. They default to 0.
8533
8534 Check the X11 documentation (e.g. man X) for more detailed information.
8535
8536 Use the xdpyinfo program for getting basic information about the
8537 properties of your X11 display (e.g. grep for "name" or "dimensions").
8538
8539 For example to grab from :0.0 using ffmpeg:
8540
8541 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
8542
8543 Grab at position "10,20":
8544
8545 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8546
8547 Options
8548
8549 select_region
8550 Specify whether to select the grabbing area graphically using the
8551 pointer. A value of 1 prompts the user to select the grabbing area
8552 graphically by clicking and dragging. A single click with no
8553 dragging will select the whole screen. A region with zero width or
8554 height will also select the whole screen. This option overwrites
8555 the video_size, grab_x, and grab_y options. Default value is 0.
8556
8557 draw_mouse
8558 Specify whether to draw the mouse pointer. A value of 0 specifies
8559 not to draw the pointer. Default value is 1.
8560
8561 follow_mouse
8562 Make the grabbed area follow the mouse. The argument can be
8563 "centered" or a number of pixels PIXELS.
8564
8565 When it is specified with "centered", the grabbing region follows
8566 the mouse pointer and keeps the pointer at the center of region;
8567 otherwise, the region follows only when the mouse pointer reaches
8568 within PIXELS (greater than zero) to the edge of region.
8569
8570 For example:
8571
8572 ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
8573
8574 To follow only when the mouse pointer reaches within 100 pixels to
8575 edge:
8576
8577 ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
8578
8579 framerate
8580 Set the grabbing frame rate. Default value is "ntsc", corresponding
8581 to a frame rate of "30000/1001".
8582
8583 show_region
8584 Show grabbed region on screen.
8585
8586 If show_region is specified with 1, then the grabbing region will
8587 be indicated on screen. With this option, it is easy to know what
8588 is being grabbed if only a portion of the screen is grabbed.
8589
8590 region_border
8591 Set the region border thickness if -show_region 1 is used. Range
8592 is 1 to 128 and default is 3 (XCB-based x11grab only).
8593
8594 For example:
8595
8596 ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8597
8598 With follow_mouse:
8599
8600 ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
8601
8602 window_id
8603 Grab this window, instead of the whole screen. Default value is 0,
8604 which maps to the whole screen (root window).
8605
8606 The id of a window can be found using the xwininfo program,
8607 possibly with options -tree and -root.
8608
8609 If the window is later enlarged, the new area is not recorded.
8610 Video ends when the window is closed, unmapped (i.e., iconified) or
8611 shrunk beyond the video size (which defaults to the initial window
8612 size).
8613
8614 This option disables options follow_mouse and select_region.
8615
8616 video_size
8617 Set the video frame size. Default is the full desktop or window.
8618
8619 grab_x
8620 grab_y
8621 Set the grabbing region coordinates. They are expressed as offset
8622 from the top left corner of the X11 window and correspond to the
8623 x_offset and y_offset parameters in the device name. The default
8624 value for both options is 0.
8625
8627 The audio resampler supports the following named options.
8628
8629 Options may be set by specifying -option value in the FFmpeg tools,
8630 option=value for the aresample filter, by setting the value explicitly
8631 in the "SwrContext" options or using the libavutil/opt.h API for
8632 programmatic use.
8633
8634 ich, in_channel_count
8635 Set the number of input channels. Default value is 0. Setting this
8636 value is not mandatory if the corresponding channel layout
8637 in_channel_layout is set.
8638
8639 och, out_channel_count
8640 Set the number of output channels. Default value is 0. Setting this
8641 value is not mandatory if the corresponding channel layout
8642 out_channel_layout is set.
8643
8644 uch, used_channel_count
8645 Set the number of used input channels. Default value is 0. This
8646 option is only used for special remapping.
8647
8648 isr, in_sample_rate
8649 Set the input sample rate. Default value is 0.
8650
8651 osr, out_sample_rate
8652 Set the output sample rate. Default value is 0.
8653
8654 isf, in_sample_fmt
8655 Specify the input sample format. It is set by default to "none".
8656
8657 osf, out_sample_fmt
8658 Specify the output sample format. It is set by default to "none".
8659
8660 tsf, internal_sample_fmt
8661 Set the internal sample format. Default value is "none". This will
8662 automatically be chosen when it is not explicitly set.
8663
8664 icl, in_channel_layout
8665 ocl, out_channel_layout
8666 Set the input/output channel layout.
8667
8668 See the Channel Layout section in the ffmpeg-utils(1) manual for
8669 the required syntax.
8670
8671 clev, center_mix_level
8672 Set the center mix level. It is a value expressed in deciBel, and
8673 must be in the interval [-32,32].
8674
8675 slev, surround_mix_level
8676 Set the surround mix level. It is a value expressed in deciBel, and
8677 must be in the interval [-32,32].
8678
8679 lfe_mix_level
8680 Set LFE mix into non LFE level. It is used when there is a LFE
8681 input but no LFE output. It is a value expressed in deciBel, and
8682 must be in the interval [-32,32].
8683
8684 rmvol, rematrix_volume
8685 Set rematrix volume. Default value is 1.0.
8686
8687 rematrix_maxval
8688 Set maximum output value for rematrixing. This can be used to
8689 prevent clipping vs. preventing volume reduction. A value of 1.0
8690 prevents clipping.
8691
8692 flags, swr_flags
8693 Set flags used by the converter. Default value is 0.
8694
8695 It supports the following individual flags:
8696
8697 res force resampling, this flag forces resampling to be used even
8698 when the input and output sample rates match.
8699
8700 dither_scale
8701 Set the dither scale. Default value is 1.
8702
8703 dither_method
8704 Set dither method. Default value is 0.
8705
8706 Supported values:
8707
8708 rectangular
8709 select rectangular dither
8710
8711 triangular
8712 select triangular dither
8713
8714 triangular_hp
8715 select triangular dither with high pass
8716
8717 lipshitz
8718 select Lipshitz noise shaping dither.
8719
8720 shibata
8721 select Shibata noise shaping dither.
8722
8723 low_shibata
8724 select low Shibata noise shaping dither.
8725
8726 high_shibata
8727 select high Shibata noise shaping dither.
8728
8729 f_weighted
8730 select f-weighted noise shaping dither
8731
8732 modified_e_weighted
8733 select modified-e-weighted noise shaping dither
8734
8735 improved_e_weighted
8736 select improved-e-weighted noise shaping dither
8737
8738 resampler
8739 Set resampling engine. Default value is swr.
8740
8741 Supported values:
8742
8743 swr select the native SW Resampler; filter options precision and
8744 cheby are not applicable in this case.
8745
8746 soxr
8747 select the SoX Resampler (where available); compensation, and
8748 filter options filter_size, phase_shift, exact_rational,
8749 filter_type & kaiser_beta, are not applicable in this case.
8750
8751 filter_size
8752 For swr only, set resampling filter size, default value is 32.
8753
8754 phase_shift
8755 For swr only, set resampling phase shift, default value is 10, and
8756 must be in the interval [0,30].
8757
8758 linear_interp
8759 Use linear interpolation when enabled (the default). Disable it if
8760 you want to preserve speed instead of quality when exact_rational
8761 fails.
8762
8763 exact_rational
8764 For swr only, when enabled, try to use exact phase_count based on
8765 input and output sample rate. However, if it is larger than "1 <<
8766 phase_shift", the phase_count will be "1 << phase_shift" as
8767 fallback. Default is enabled.
8768
8769 cutoff
8770 Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
8771 be a float value between 0 and 1. Default value is 0.97 with swr,
8772 and 0.91 with soxr (which, with a sample-rate of 44100, preserves
8773 the entire audio band to 20kHz).
8774
8775 precision
8776 For soxr only, the precision in bits to which the resampled signal
8777 will be calculated. The default value of 20 (which, with suitable
8778 dithering, is appropriate for a destination bit-depth of 16) gives
8779 SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
8780 Quality'.
8781
8782 cheby
8783 For soxr only, selects passband rolloff none (Chebyshev) & higher-
8784 precision approximation for 'irrational' ratios. Default value is
8785 0.
8786
8787 async
8788 For swr only, simple 1 parameter audio sync to timestamps using
8789 stretching, squeezing, filling and trimming. Setting this to 1 will
8790 enable filling and trimming, larger values represent the maximum
8791 amount in samples that the data may be stretched or squeezed for
8792 each second. Default value is 0, thus no compensation is applied
8793 to make the samples match the audio timestamps.
8794
8795 first_pts
8796 For swr only, assume the first pts should be this value. The time
8797 unit is 1 / sample rate. This allows for padding/trimming at the
8798 start of stream. By default, no assumption is made about the first
8799 frame's expected pts, so no padding or trimming is done. For
8800 example, this could be set to 0 to pad the beginning with silence
8801 if an audio stream starts after the video stream or to trim any
8802 samples with a negative pts due to encoder delay.
8803
8804 min_comp
8805 For swr only, set the minimum difference between timestamps and
8806 audio data (in seconds) to trigger stretching/squeezing/filling or
8807 trimming of the data to make it match the timestamps. The default
8808 is that stretching/squeezing/filling and trimming is disabled
8809 (min_comp = "FLT_MAX").
8810
8811 min_hard_comp
8812 For swr only, set the minimum difference between timestamps and
8813 audio data (in seconds) to trigger adding/dropping samples to make
8814 it match the timestamps. This option effectively is a threshold to
8815 select between hard (trim/fill) and soft (squeeze/stretch)
8816 compensation. Note that all compensation is by default disabled
8817 through min_comp. The default is 0.1.
8818
8819 comp_duration
8820 For swr only, set duration (in seconds) over which data is
8821 stretched/squeezed to make it match the timestamps. Must be a non-
8822 negative double float value, default value is 1.0.
8823
8824 max_soft_comp
8825 For swr only, set maximum factor by which data is
8826 stretched/squeezed to make it match the timestamps. Must be a non-
8827 negative double float value, default value is 0.
8828
8829 matrix_encoding
8830 Select matrixed stereo encoding.
8831
8832 It accepts the following values:
8833
8834 none
8835 select none
8836
8837 dolby
8838 select Dolby
8839
8840 dplii
8841 select Dolby Pro Logic II
8842
8843 Default value is "none".
8844
8845 filter_type
8846 For swr only, select resampling filter type. This only affects
8847 resampling operations.
8848
8849 It accepts the following values:
8850
8851 cubic
8852 select cubic
8853
8854 blackman_nuttall
8855 select Blackman Nuttall windowed sinc
8856
8857 kaiser
8858 select Kaiser windowed sinc
8859
8860 kaiser_beta
8861 For swr only, set Kaiser window beta value. Must be a double float
8862 value in the interval [2,16], default value is 9.
8863
8864 output_sample_bits
8865 For swr only, set number of used output sample bits for dithering.
8866 Must be an integer in the interval [0,64], default value is 0,
8867 which means it's not used.
8868
8870 The video scaler supports the following named options.
8871
8872 Options may be set by specifying -option value in the FFmpeg tools,
8873 with a few API-only exceptions noted below. For programmatic use, they
8874 can be set explicitly in the "SwsContext" options or through the
8875 libavutil/opt.h API.
8876
8877 sws_flags
8878 Set the scaler flags. This is also used to set the scaling
8879 algorithm. Only a single algorithm should be selected. Default
8880 value is bicubic.
8881
8882 It accepts the following values:
8883
8884 fast_bilinear
8885 Select fast bilinear scaling algorithm.
8886
8887 bilinear
8888 Select bilinear scaling algorithm.
8889
8890 bicubic
8891 Select bicubic scaling algorithm.
8892
8893 experimental
8894 Select experimental scaling algorithm.
8895
8896 neighbor
8897 Select nearest neighbor rescaling algorithm.
8898
8899 area
8900 Select averaging area rescaling algorithm.
8901
8902 bicublin
8903 Select bicubic scaling algorithm for the luma component,
8904 bilinear for chroma components.
8905
8906 gauss
8907 Select Gaussian rescaling algorithm.
8908
8909 sinc
8910 Select sinc rescaling algorithm.
8911
8912 lanczos
8913 Select Lanczos rescaling algorithm. The default width (alpha)
8914 is 3 and can be changed by setting "param0".
8915
8916 spline
8917 Select natural bicubic spline rescaling algorithm.
8918
8919 print_info
8920 Enable printing/debug logging.
8921
8922 accurate_rnd
8923 Enable accurate rounding.
8924
8925 full_chroma_int
8926 Enable full chroma interpolation.
8927
8928 full_chroma_inp
8929 Select full chroma input.
8930
8931 bitexact
8932 Enable bitexact output.
8933
8934 srcw (API only)
8935 Set source width.
8936
8937 srch (API only)
8938 Set source height.
8939
8940 dstw (API only)
8941 Set destination width.
8942
8943 dsth (API only)
8944 Set destination height.
8945
8946 src_format (API only)
8947 Set source pixel format (must be expressed as an integer).
8948
8949 dst_format (API only)
8950 Set destination pixel format (must be expressed as an integer).
8951
8952 src_range (boolean)
8953 If value is set to 1, indicates source is full range. Default value
8954 is 0, which indicates source is limited range.
8955
8956 dst_range (boolean)
8957 If value is set to 1, enable full range for destination. Default
8958 value is 0, which enables limited range.
8959
8960 param0, param1
8961 Set scaling algorithm parameters. The specified values are specific
8962 of some scaling algorithms and ignored by others. The specified
8963 values are floating point number values.
8964
8965 sws_dither
8966 Set the dithering algorithm. Accepts one of the following values.
8967 Default value is auto.
8968
8969 auto
8970 automatic choice
8971
8972 none
8973 no dithering
8974
8975 bayer
8976 bayer dither
8977
8978 ed error diffusion dither
8979
8980 a_dither
8981 arithmetic dither, based using addition
8982
8983 x_dither
8984 arithmetic dither, based using xor (more random/less apparent
8985 patterning that a_dither).
8986
8987 alphablend
8988 Set the alpha blending to use when the input has alpha but the
8989 output does not. Default value is none.
8990
8991 uniform_color
8992 Blend onto a uniform background color
8993
8994 checkerboard
8995 Blend onto a checkerboard
8996
8997 none
8998 No blending
8999
9001 Filtering in FFmpeg is enabled through the libavfilter library.
9002
9003 In libavfilter, a filter can have multiple inputs and multiple outputs.
9004 To illustrate the sorts of things that are possible, we consider the
9005 following filtergraph.
9006
9007 [main]
9008 input --> split ---------------------> overlay --> output
9009 | ^
9010 |[tmp] [flip]|
9011 +-----> crop --> vflip -------+
9012
9013 This filtergraph splits the input stream in two streams, then sends one
9014 stream through the crop filter and the vflip filter, before merging it
9015 back with the other stream by overlaying it on top. You can use the
9016 following command to achieve this:
9017
9018 ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
9019
9020 The result will be that the top half of the video is mirrored onto the
9021 bottom half of the output video.
9022
9023 Filters in the same linear chain are separated by commas, and distinct
9024 linear chains of filters are separated by semicolons. In our example,
9025 crop,vflip are in one linear chain, split and overlay are separately in
9026 another. The points where the linear chains join are labelled by names
9027 enclosed in square brackets. In the example, the split filter generates
9028 two outputs that are associated to the labels [main] and [tmp].
9029
9030 The stream sent to the second output of split, labelled as [tmp], is
9031 processed through the crop filter, which crops away the lower half part
9032 of the video, and then vertically flipped. The overlay filter takes in
9033 input the first unchanged output of the split filter (which was
9034 labelled as [main]), and overlay on its lower half the output generated
9035 by the crop,vflip filterchain.
9036
9037 Some filters take in input a list of parameters: they are specified
9038 after the filter name and an equal sign, and are separated from each
9039 other by a colon.
9040
9041 There exist so-called source filters that do not have an audio/video
9042 input, and sink filters that will not have audio/video output.
9043
9045 The graph2dot program included in the FFmpeg tools directory can be
9046 used to parse a filtergraph description and issue a corresponding
9047 textual representation in the dot language.
9048
9049 Invoke the command:
9050
9051 graph2dot -h
9052
9053 to see how to use graph2dot.
9054
9055 You can then pass the dot description to the dot program (from the
9056 graphviz suite of programs) and obtain a graphical representation of
9057 the filtergraph.
9058
9059 For example the sequence of commands:
9060
9061 echo <GRAPH_DESCRIPTION> | \
9062 tools/graph2dot -o graph.tmp && \
9063 dot -Tpng graph.tmp -o graph.png && \
9064 display graph.png
9065
9066 can be used to create and display an image representing the graph
9067 described by the GRAPH_DESCRIPTION string. Note that this string must
9068 be a complete self-contained graph, with its inputs and outputs
9069 explicitly defined. For example if your command line is of the form:
9070
9071 ffmpeg -i infile -vf scale=640:360 outfile
9072
9073 your GRAPH_DESCRIPTION string will need to be of the form:
9074
9075 nullsrc,scale=640:360,nullsink
9076
9077 you may also need to set the nullsrc parameters and add a format filter
9078 in order to simulate a specific input file.
9079
9081 A filtergraph is a directed graph of connected filters. It can contain
9082 cycles, and there can be multiple links between a pair of filters. Each
9083 link has one input pad on one side connecting it to one filter from
9084 which it takes its input, and one output pad on the other side
9085 connecting it to one filter accepting its output.
9086
9087 Each filter in a filtergraph is an instance of a filter class
9088 registered in the application, which defines the features and the
9089 number of input and output pads of the filter.
9090
9091 A filter with no input pads is called a "source", and a filter with no
9092 output pads is called a "sink".
9093
9094 Filtergraph syntax
9095 A filtergraph has a textual representation, which is recognized by the
9096 -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
9097 ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
9098 libavfilter/avfilter.h.
9099
9100 A filterchain consists of a sequence of connected filters, each one
9101 connected to the previous one in the sequence. A filterchain is
9102 represented by a list of ","-separated filter descriptions.
9103
9104 A filtergraph consists of a sequence of filterchains. A sequence of
9105 filterchains is represented by a list of ";"-separated filterchain
9106 descriptions.
9107
9108 A filter is represented by a string of the form:
9109 [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
9110
9111 filter_name is the name of the filter class of which the described
9112 filter is an instance of, and has to be the name of one of the filter
9113 classes registered in the program optionally followed by "@id". The
9114 name of the filter class is optionally followed by a string
9115 "=arguments".
9116
9117 arguments is a string which contains the parameters used to initialize
9118 the filter instance. It may have one of two forms:
9119
9120 • A ':'-separated list of key=value pairs.
9121
9122 • A ':'-separated list of value. In this case, the keys are assumed
9123 to be the option names in the order they are declared. E.g. the
9124 "fade" filter declares three options in this order -- type,
9125 start_frame and nb_frames. Then the parameter list in:0:30 means
9126 that the value in is assigned to the option type, 0 to start_frame
9127 and 30 to nb_frames.
9128
9129 • A ':'-separated list of mixed direct value and long key=value
9130 pairs. The direct value must precede the key=value pairs, and
9131 follow the same constraints order of the previous point. The
9132 following key=value pairs can be set in any preferred order.
9133
9134 If the option value itself is a list of items (e.g. the "format" filter
9135 takes a list of pixel formats), the items in the list are usually
9136 separated by |.
9137
9138 The list of arguments can be quoted using the character ' as initial
9139 and ending mark, and the character \ for escaping the characters within
9140 the quoted text; otherwise the argument string is considered terminated
9141 when the next special character (belonging to the set []=;,) is
9142 encountered.
9143
9144 The name and arguments of the filter are optionally preceded and
9145 followed by a list of link labels. A link label allows one to name a
9146 link and associate it to a filter output or input pad. The preceding
9147 labels in_link_1 ... in_link_N, are associated to the filter input
9148 pads, the following labels out_link_1 ... out_link_M, are associated to
9149 the output pads.
9150
9151 When two link labels with the same name are found in the filtergraph, a
9152 link between the corresponding input and output pad is created.
9153
9154 If an output pad is not labelled, it is linked by default to the first
9155 unlabelled input pad of the next filter in the filterchain. For
9156 example in the filterchain
9157
9158 nullsrc, split[L1], [L2]overlay, nullsink
9159
9160 the split filter instance has two output pads, and the overlay filter
9161 instance two input pads. The first output pad of split is labelled
9162 "L1", the first input pad of overlay is labelled "L2", and the second
9163 output pad of split is linked to the second input pad of overlay, which
9164 are both unlabelled.
9165
9166 In a filter description, if the input label of the first filter is not
9167 specified, "in" is assumed; if the output label of the last filter is
9168 not specified, "out" is assumed.
9169
9170 In a complete filterchain all the unlabelled filter input and output
9171 pads must be connected. A filtergraph is considered valid if all the
9172 filter input and output pads of all the filterchains are connected.
9173
9174 Libavfilter will automatically insert scale filters where format
9175 conversion is required. It is possible to specify swscale flags for
9176 those automatically inserted scalers by prepending "sws_flags=flags;"
9177 to the filtergraph description.
9178
9179 Here is a BNF description of the filtergraph syntax:
9180
9181 <NAME> ::= sequence of alphanumeric characters and '_'
9182 <FILTER_NAME> ::= <NAME>["@"<NAME>]
9183 <LINKLABEL> ::= "[" <NAME> "]"
9184 <LINKLABELS> ::= <LINKLABEL> [<LINKLABELS>]
9185 <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
9186 <FILTER> ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
9187 <FILTERCHAIN> ::= <FILTER> [,<FILTERCHAIN>]
9188 <FILTERGRAPH> ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
9189
9190 Notes on filtergraph escaping
9191 Filtergraph description composition entails several levels of escaping.
9192 See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
9193 for more information about the employed escaping procedure.
9194
9195 A first level escaping affects the content of each filter option value,
9196 which may contain the special character ":" used to separate values, or
9197 one of the escaping characters "\'".
9198
9199 A second level escaping affects the whole filter description, which may
9200 contain the escaping characters "\'" or the special characters "[],;"
9201 used by the filtergraph description.
9202
9203 Finally, when you specify a filtergraph on a shell commandline, you
9204 need to perform a third level escaping for the shell special characters
9205 contained within it.
9206
9207 For example, consider the following string to be embedded in the
9208 drawtext filter description text value:
9209
9210 this is a 'string': may contain one, or more, special characters
9211
9212 This string contains the "'" special escaping character, and the ":"
9213 special character, so it needs to be escaped in this way:
9214
9215 text=this is a \'string\'\: may contain one, or more, special characters
9216
9217 A second level of escaping is required when embedding the filter
9218 description in a filtergraph description, in order to escape all the
9219 filtergraph special characters. Thus the example above becomes:
9220
9221 drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
9222
9223 (note that in addition to the "\'" escaping special characters, also
9224 "," needs to be escaped).
9225
9226 Finally an additional level of escaping is needed when writing the
9227 filtergraph description in a shell command, which depends on the
9228 escaping rules of the adopted shell. For example, assuming that "\" is
9229 special and needs to be escaped with another "\", the previous string
9230 will finally result in:
9231
9232 -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
9233
9235 Some filters support a generic enable option. For the filters
9236 supporting timeline editing, this option can be set to an expression
9237 which is evaluated before sending a frame to the filter. If the
9238 evaluation is non-zero, the filter will be enabled, otherwise the frame
9239 will be sent unchanged to the next filter in the filtergraph.
9240
9241 The expression accepts the following values:
9242
9243 t timestamp expressed in seconds, NAN if the input timestamp is
9244 unknown
9245
9246 n sequential number of the input frame, starting from 0
9247
9248 pos the position in the file of the input frame, NAN if unknown
9249
9250 w
9251 h width and height of the input frame if video
9252
9253 Additionally, these filters support an enable command that can be used
9254 to re-define the expression.
9255
9256 Like any other filtering option, the enable option follows the same
9257 rules.
9258
9259 For example, to enable a blur filter (smartblur) from 10 seconds to 3
9260 minutes, and a curves filter starting at 3 seconds:
9261
9262 smartblur = enable='between(t,10,3*60)',
9263 curves = enable='gte(t,3)' : preset=cross_process
9264
9265 See "ffmpeg -filters" to view which filters have timeline support.
9266
9268 Some options can be changed during the operation of the filter using a
9269 command. These options are marked 'T' on the output of ffmpeg -h
9270 filter=<name of filter>. The name of the command is the name of the
9271 option and the argument is the new value.
9272
9274 Some filters with several inputs support a common set of options.
9275 These options can only be set by name, not with the short notation.
9276
9277 eof_action
9278 The action to take when EOF is encountered on the secondary input;
9279 it accepts one of the following values:
9280
9281 repeat
9282 Repeat the last frame (the default).
9283
9284 endall
9285 End both streams.
9286
9287 pass
9288 Pass the main input through.
9289
9290 shortest
9291 If set to 1, force the output to terminate when the shortest input
9292 terminates. Default value is 0.
9293
9294 repeatlast
9295 If set to 1, force the filter to extend the last frame of secondary
9296 streams until the end of the primary stream. A value of 0 disables
9297 this behavior. Default value is 1.
9298
9300 When you configure your FFmpeg build, you can disable any of the
9301 existing filters using "--disable-filters". The configure output will
9302 show the audio filters included in your build.
9303
9304 Below is a description of the currently available audio filters.
9305
9306 acompressor
9307 A compressor is mainly used to reduce the dynamic range of a signal.
9308 Especially modern music is mostly compressed at a high ratio to improve
9309 the overall loudness. It's done to get the highest attention of a
9310 listener, "fatten" the sound and bring more "power" to the track. If a
9311 signal is compressed too much it may sound dull or "dead" afterwards or
9312 it may start to "pump" (which could be a powerful effect but can also
9313 destroy a track completely). The right compression is the key to reach
9314 a professional sound and is the high art of mixing and mastering.
9315 Because of its complex settings it may take a long time to get the
9316 right feeling for this kind of effect.
9317
9318 Compression is done by detecting the volume above a chosen level
9319 "threshold" and dividing it by the factor set with "ratio". So if you
9320 set the threshold to -12dB and your signal reaches -6dB a ratio of 2:1
9321 will result in a signal at -9dB. Because an exact manipulation of the
9322 signal would cause distortion of the waveform the reduction can be
9323 levelled over the time. This is done by setting "Attack" and "Release".
9324 "attack" determines how long the signal has to rise above the threshold
9325 before any reduction will occur and "release" sets the time the signal
9326 has to fall below the threshold to reduce the reduction again. Shorter
9327 signals than the chosen attack time will be left untouched. The
9328 overall reduction of the signal can be made up afterwards with the
9329 "makeup" setting. So compressing the peaks of a signal about 6dB and
9330 raising the makeup to this level results in a signal twice as loud than
9331 the source. To gain a softer entry in the compression the "knee"
9332 flattens the hard edge at the threshold in the range of the chosen
9333 decibels.
9334
9335 The filter accepts the following options:
9336
9337 level_in
9338 Set input gain. Default is 1. Range is between 0.015625 and 64.
9339
9340 mode
9341 Set mode of compressor operation. Can be "upward" or "downward".
9342 Default is "downward".
9343
9344 threshold
9345 If a signal of stream rises above this level it will affect the
9346 gain reduction. By default it is 0.125. Range is between
9347 0.00097563 and 1.
9348
9349 ratio
9350 Set a ratio by which the signal is reduced. 1:2 means that if the
9351 level rose 4dB above the threshold, it will be only 2dB above after
9352 the reduction. Default is 2. Range is between 1 and 20.
9353
9354 attack
9355 Amount of milliseconds the signal has to rise above the threshold
9356 before gain reduction starts. Default is 20. Range is between 0.01
9357 and 2000.
9358
9359 release
9360 Amount of milliseconds the signal has to fall below the threshold
9361 before reduction is decreased again. Default is 250. Range is
9362 between 0.01 and 9000.
9363
9364 makeup
9365 Set the amount by how much signal will be amplified after
9366 processing. Default is 1. Range is from 1 to 64.
9367
9368 knee
9369 Curve the sharp knee around the threshold to enter gain reduction
9370 more softly. Default is 2.82843. Range is between 1 and 8.
9371
9372 link
9373 Choose if the "average" level between all channels of input stream
9374 or the louder("maximum") channel of input stream affects the
9375 reduction. Default is "average".
9376
9377 detection
9378 Should the exact signal be taken in case of "peak" or an RMS one in
9379 case of "rms". Default is "rms" which is mostly smoother.
9380
9381 mix How much to use compressed signal in output. Default is 1. Range
9382 is between 0 and 1.
9383
9384 Commands
9385
9386 This filter supports the all above options as commands.
9387
9388 acontrast
9389 Simple audio dynamic range compression/expansion filter.
9390
9391 The filter accepts the following options:
9392
9393 contrast
9394 Set contrast. Default is 33. Allowed range is between 0 and 100.
9395
9396 acopy
9397 Copy the input audio source unchanged to the output. This is mainly
9398 useful for testing purposes.
9399
9400 acrossfade
9401 Apply cross fade from one input audio stream to another input audio
9402 stream. The cross fade is applied for specified duration near the end
9403 of first stream.
9404
9405 The filter accepts the following options:
9406
9407 nb_samples, ns
9408 Specify the number of samples for which the cross fade effect has
9409 to last. At the end of the cross fade effect the first input audio
9410 will be completely silent. Default is 44100.
9411
9412 duration, d
9413 Specify the duration of the cross fade effect. See the Time
9414 duration section in the ffmpeg-utils(1) manual for the accepted
9415 syntax. By default the duration is determined by nb_samples. If
9416 set this option is used instead of nb_samples.
9417
9418 overlap, o
9419 Should first stream end overlap with second stream start. Default
9420 is enabled.
9421
9422 curve1
9423 Set curve for cross fade transition for first stream.
9424
9425 curve2
9426 Set curve for cross fade transition for second stream.
9427
9428 For description of available curve types see afade filter
9429 description.
9430
9431 Examples
9432
9433 • Cross fade from one input to another:
9434
9435 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
9436
9437 • Cross fade from one input to another but without overlapping:
9438
9439 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
9440
9441 acrossover
9442 Split audio stream into several bands.
9443
9444 This filter splits audio stream into two or more frequency ranges.
9445 Summing all streams back will give flat output.
9446
9447 The filter accepts the following options:
9448
9449 split
9450 Set split frequencies. Those must be positive and increasing.
9451
9452 order
9453 Set filter order for each band split. This controls filter roll-off
9454 or steepness of filter transfer function. Available values are:
9455
9456 2nd 12 dB per octave.
9457
9458 4th 24 dB per octave.
9459
9460 6th 36 dB per octave.
9461
9462 8th 48 dB per octave.
9463
9464 10th
9465 60 dB per octave.
9466
9467 12th
9468 72 dB per octave.
9469
9470 14th
9471 84 dB per octave.
9472
9473 16th
9474 96 dB per octave.
9475
9476 18th
9477 108 dB per octave.
9478
9479 20th
9480 120 dB per octave.
9481
9482 Default is 4th.
9483
9484 level
9485 Set input gain level. Allowed range is from 0 to 1. Default value
9486 is 1.
9487
9488 gains
9489 Set output gain for each band. Default value is 1 for all bands.
9490
9491 precision
9492 Set which precision to use when processing samples.
9493
9494 auto
9495 Auto pick internal sample format depending on other filters.
9496
9497 float
9498 Always use single-floating point precision sample format.
9499
9500 double
9501 Always use double-floating point precision sample format.
9502
9503 Default value is "auto".
9504
9505 Examples
9506
9507 • Split input audio stream into two bands (low and high) with split
9508 frequency of 1500 Hz, each band will be in separate stream:
9509
9510 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9511
9512 • Same as above, but with higher filter order:
9513
9514 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9515
9516 • Same as above, but also with additional middle band (frequencies
9517 between 1500 and 8000):
9518
9519 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
9520
9521 acrusher
9522 Reduce audio bit resolution.
9523
9524 This filter is bit crusher with enhanced functionality. A bit crusher
9525 is used to audibly reduce number of bits an audio signal is sampled
9526 with. This doesn't change the bit depth at all, it just produces the
9527 effect. Material reduced in bit depth sounds more harsh and "digital".
9528 This filter is able to even round to continuous values instead of
9529 discrete bit depths. Additionally it has a D/C offset which results in
9530 different crushing of the lower and the upper half of the signal. An
9531 Anti-Aliasing setting is able to produce "softer" crushing sounds.
9532
9533 Another feature of this filter is the logarithmic mode. This setting
9534 switches from linear distances between bits to logarithmic ones. The
9535 result is a much more "natural" sounding crusher which doesn't gate low
9536 signals for example. The human ear has a logarithmic perception, so
9537 this kind of crushing is much more pleasant. Logarithmic crushing is
9538 also able to get anti-aliased.
9539
9540 The filter accepts the following options:
9541
9542 level_in
9543 Set level in.
9544
9545 level_out
9546 Set level out.
9547
9548 bits
9549 Set bit reduction.
9550
9551 mix Set mixing amount.
9552
9553 mode
9554 Can be linear: "lin" or logarithmic: "log".
9555
9556 dc Set DC.
9557
9558 aa Set anti-aliasing.
9559
9560 samples
9561 Set sample reduction.
9562
9563 lfo Enable LFO. By default disabled.
9564
9565 lforange
9566 Set LFO range.
9567
9568 lforate
9569 Set LFO rate.
9570
9571 Commands
9572
9573 This filter supports the all above options as commands.
9574
9575 acue
9576 Delay audio filtering until a given wallclock timestamp. See the cue
9577 filter.
9578
9579 adeclick
9580 Remove impulsive noise from input audio.
9581
9582 Samples detected as impulsive noise are replaced by interpolated
9583 samples using autoregressive modelling.
9584
9585 window, w
9586 Set window size, in milliseconds. Allowed range is from 10 to 100.
9587 Default value is 55 milliseconds. This sets size of window which
9588 will be processed at once.
9589
9590 overlap, o
9591 Set window overlap, in percentage of window size. Allowed range is
9592 from 50 to 95. Default value is 75 percent. Setting this to a very
9593 high value increases impulsive noise removal but makes whole
9594 process much slower.
9595
9596 arorder, a
9597 Set autoregression order, in percentage of window size. Allowed
9598 range is from 0 to 25. Default value is 2 percent. This option also
9599 controls quality of interpolated samples using neighbour good
9600 samples.
9601
9602 threshold, t
9603 Set threshold value. Allowed range is from 1 to 100. Default value
9604 is 2. This controls the strength of impulsive noise which is going
9605 to be removed. The lower value, the more samples will be detected
9606 as impulsive noise.
9607
9608 burst, b
9609 Set burst fusion, in percentage of window size. Allowed range is 0
9610 to 10. Default value is 2. If any two samples detected as noise
9611 are spaced less than this value then any sample between those two
9612 samples will be also detected as noise.
9613
9614 method, m
9615 Set overlap method.
9616
9617 It accepts the following values:
9618
9619 add, a
9620 Select overlap-add method. Even not interpolated samples are
9621 slightly changed with this method.
9622
9623 save, s
9624 Select overlap-save method. Not interpolated samples remain
9625 unchanged.
9626
9627 Default value is "a".
9628
9629 adeclip
9630 Remove clipped samples from input audio.
9631
9632 Samples detected as clipped are replaced by interpolated samples using
9633 autoregressive modelling.
9634
9635 window, w
9636 Set window size, in milliseconds. Allowed range is from 10 to 100.
9637 Default value is 55 milliseconds. This sets size of window which
9638 will be processed at once.
9639
9640 overlap, o
9641 Set window overlap, in percentage of window size. Allowed range is
9642 from 50 to 95. Default value is 75 percent.
9643
9644 arorder, a
9645 Set autoregression order, in percentage of window size. Allowed
9646 range is from 0 to 25. Default value is 8 percent. This option also
9647 controls quality of interpolated samples using neighbour good
9648 samples.
9649
9650 threshold, t
9651 Set threshold value. Allowed range is from 1 to 100. Default value
9652 is 10. Higher values make clip detection less aggressive.
9653
9654 hsize, n
9655 Set size of histogram used to detect clips. Allowed range is from
9656 100 to 9999. Default value is 1000. Higher values make clip
9657 detection less aggressive.
9658
9659 method, m
9660 Set overlap method.
9661
9662 It accepts the following values:
9663
9664 add, a
9665 Select overlap-add method. Even not interpolated samples are
9666 slightly changed with this method.
9667
9668 save, s
9669 Select overlap-save method. Not interpolated samples remain
9670 unchanged.
9671
9672 Default value is "a".
9673
9674 adecorrelate
9675 Apply decorrelation to input audio stream.
9676
9677 The filter accepts the following options:
9678
9679 stages
9680 Set decorrelation stages of filtering. Allowed range is from 1 to
9681 16. Default value is 6.
9682
9683 seed
9684 Set random seed used for setting delay in samples across channels.
9685
9686 adelay
9687 Delay one or more audio channels.
9688
9689 Samples in delayed channel are filled with silence.
9690
9691 The filter accepts the following option:
9692
9693 delays
9694 Set list of delays in milliseconds for each channel separated by
9695 '|'. Unused delays will be silently ignored. If number of given
9696 delays is smaller than number of channels all remaining channels
9697 will not be delayed. If you want to delay exact number of samples,
9698 append 'S' to number. If you want instead to delay in seconds,
9699 append 's' to number.
9700
9701 all Use last set delay for all remaining channels. By default is
9702 disabled. This option if enabled changes how option "delays" is
9703 interpreted.
9704
9705 Examples
9706
9707 • Delay first channel by 1.5 seconds, the third channel by 0.5
9708 seconds and leave the second channel (and any other channels that
9709 may be present) unchanged.
9710
9711 adelay=1500|0|500
9712
9713 • Delay second channel by 500 samples, the third channel by 700
9714 samples and leave the first channel (and any other channels that
9715 may be present) unchanged.
9716
9717 adelay=0|500S|700S
9718
9719 • Delay all channels by same number of samples:
9720
9721 adelay=delays=64S:all=1
9722
9723 adenorm
9724 Remedy denormals in audio by adding extremely low-level noise.
9725
9726 This filter shall be placed before any filter that can produce
9727 denormals.
9728
9729 A description of the accepted parameters follows.
9730
9731 level
9732 Set level of added noise in dB. Default is "-351". Allowed range
9733 is from -451 to -90.
9734
9735 type
9736 Set type of added noise.
9737
9738 dc Add DC signal.
9739
9740 ac Add AC signal.
9741
9742 square
9743 Add square signal.
9744
9745 pulse
9746 Add pulse signal.
9747
9748 Default is "dc".
9749
9750 Commands
9751
9752 This filter supports the all above options as commands.
9753
9754 aderivative, aintegral
9755 Compute derivative/integral of audio stream.
9756
9757 Applying both filters one after another produces original audio.
9758
9759 adynamicequalizer
9760 Apply dynamic equalization to input audio stream.
9761
9762 A description of the accepted options follows.
9763
9764 threshold
9765 Set the detection threshold used to trigger equalization.
9766 Threshold detection is using bandpass filter. Default value is 0.
9767 Allowed range is from 0 to 100.
9768
9769 dfrequency
9770 Set the detection frequency in Hz used for bandpass filter used to
9771 trigger equalization. Default value is 1000 Hz. Allowed range is
9772 between 2 and 1000000 Hz.
9773
9774 dqfactor
9775 Set the detection resonance factor for bandpass filter used to
9776 trigger equalization. Default value is 1. Allowed range is from
9777 0.001 to 1000.
9778
9779 tfrequency
9780 Set the target frequency of equalization filter. Default value is
9781 1000 Hz. Allowed range is between 2 and 1000000 Hz.
9782
9783 tqfactor
9784 Set the target resonance factor for target equalization filter.
9785 Default value is 1. Allowed range is from 0.001 to 1000.
9786
9787 attack
9788 Set the amount of milliseconds the signal from detection has to
9789 rise above the detection threshold before equalization starts.
9790 Default is 20. Allowed range is between 1 and 2000.
9791
9792 release
9793 Set the amount of milliseconds the signal from detection has to
9794 fall below the detection threshold before equalization ends.
9795 Default is 200. Allowed range is between 1 and 2000.
9796
9797 knee
9798 Curve the sharp knee around the detection threshold to calculate
9799 equalization gain more softly. Default is 1. Allowed range is
9800 between 0 and 8.
9801
9802 ratio
9803 Set the ratio by which the equalization gain is raised. Default is
9804 1. Allowed range is between 1 and 20.
9805
9806 makeup
9807 Set the makeup offset in dB by which the equalization gain is
9808 raised. Default is 0. Allowed range is between 0 and 30.
9809
9810 range
9811 Set the max allowed cut/boost amount in dB. Default is 0. Allowed
9812 range is from 0 to 200.
9813
9814 slew
9815 Set the slew factor. Default is 1. Allowed range is from 1 to 200.
9816
9817 mode
9818 Set the mode of filter operation, can be one of the following:
9819
9820 listen
9821 Output only isolated bandpass signal.
9822
9823 cut Cut frequencies above detection threshold.
9824
9825 boost
9826 Boost frequencies bellow detection threshold.
9827
9828 Default mode is cut.
9829
9830 tftype
9831 Set the type of target filter, can be one of the following:
9832
9833 bell
9834 lowshelf
9835 highshelf
9836
9837 Default type is bell.
9838
9839 Commands
9840
9841 This filter supports the all above options as commands.
9842
9843 adynamicsmooth
9844 Apply dynamic smoothing to input audio stream.
9845
9846 A description of the accepted options follows.
9847
9848 sensitivity
9849 Set an amount of sensitivity to frequency fluctations. Default is
9850 2. Allowed range is from 0 to 1e+06.
9851
9852 basefreq
9853 Set a base frequency for smoothing. Default value is 22050.
9854 Allowed range is from 2 to 1e+06.
9855
9856 Commands
9857
9858 This filter supports the all above options as commands.
9859
9860 aecho
9861 Apply echoing to the input audio.
9862
9863 Echoes are reflected sound and can occur naturally amongst mountains
9864 (and sometimes large buildings) when talking or shouting; digital echo
9865 effects emulate this behaviour and are often used to help fill out the
9866 sound of a single instrument or vocal. The time difference between the
9867 original signal and the reflection is the "delay", and the loudness of
9868 the reflected signal is the "decay". Multiple echoes can have
9869 different delays and decays.
9870
9871 A description of the accepted parameters follows.
9872
9873 in_gain
9874 Set input gain of reflected signal. Default is 0.6.
9875
9876 out_gain
9877 Set output gain of reflected signal. Default is 0.3.
9878
9879 delays
9880 Set list of time intervals in milliseconds between original signal
9881 and reflections separated by '|'. Allowed range for each "delay" is
9882 "(0 - 90000.0]". Default is 1000.
9883
9884 decays
9885 Set list of loudness of reflected signals separated by '|'.
9886 Allowed range for each "decay" is "(0 - 1.0]". Default is 0.5.
9887
9888 Examples
9889
9890 • Make it sound as if there are twice as many instruments as are
9891 actually playing:
9892
9893 aecho=0.8:0.88:60:0.4
9894
9895 • If delay is very short, then it sounds like a (metallic) robot
9896 playing music:
9897
9898 aecho=0.8:0.88:6:0.4
9899
9900 • A longer delay will sound like an open air concert in the
9901 mountains:
9902
9903 aecho=0.8:0.9:1000:0.3
9904
9905 • Same as above but with one more mountain:
9906
9907 aecho=0.8:0.9:1000|1800:0.3|0.25
9908
9909 aemphasis
9910 Audio emphasis filter creates or restores material directly taken from
9911 LPs or emphased CDs with different filter curves. E.g. to store music
9912 on vinyl the signal has to be altered by a filter first to even out the
9913 disadvantages of this recording medium. Once the material is played
9914 back the inverse filter has to be applied to restore the distortion of
9915 the frequency response.
9916
9917 The filter accepts the following options:
9918
9919 level_in
9920 Set input gain.
9921
9922 level_out
9923 Set output gain.
9924
9925 mode
9926 Set filter mode. For restoring material use "reproduction" mode,
9927 otherwise use "production" mode. Default is "reproduction" mode.
9928
9929 type
9930 Set filter type. Selects medium. Can be one of the following:
9931
9932 col select Columbia.
9933
9934 emi select EMI.
9935
9936 bsi select BSI (78RPM).
9937
9938 riaa
9939 select RIAA.
9940
9941 cd select Compact Disc (CD).
9942
9943 50fm
9944 select 50Xs (FM).
9945
9946 75fm
9947 select 75Xs (FM).
9948
9949 50kf
9950 select 50Xs (FM-KF).
9951
9952 75kf
9953 select 75Xs (FM-KF).
9954
9955 Commands
9956
9957 This filter supports the all above options as commands.
9958
9959 aeval
9960 Modify an audio signal according to the specified expressions.
9961
9962 This filter accepts one or more expressions (one for each channel),
9963 which are evaluated and used to modify a corresponding audio signal.
9964
9965 It accepts the following parameters:
9966
9967 exprs
9968 Set the '|'-separated expressions list for each separate channel.
9969 If the number of input channels is greater than the number of
9970 expressions, the last specified expression is used for the
9971 remaining output channels.
9972
9973 channel_layout, c
9974 Set output channel layout. If not specified, the channel layout is
9975 specified by the number of expressions. If set to same, it will use
9976 by default the same input channel layout.
9977
9978 Each expression in exprs can contain the following constants and
9979 functions:
9980
9981 ch channel number of the current expression
9982
9983 n number of the evaluated sample, starting from 0
9984
9985 s sample rate
9986
9987 t time of the evaluated sample expressed in seconds
9988
9989 nb_in_channels
9990 nb_out_channels
9991 input and output number of channels
9992
9993 val(CH)
9994 the value of input channel with number CH
9995
9996 Note: this filter is slow. For faster processing you should use a
9997 dedicated filter.
9998
9999 Examples
10000
10001 • Half volume:
10002
10003 aeval=val(ch)/2:c=same
10004
10005 • Invert phase of the second channel:
10006
10007 aeval=val(0)|-val(1)
10008
10009 aexciter
10010 An exciter is used to produce high sound that is not present in the
10011 original signal. This is done by creating harmonic distortions of the
10012 signal which are restricted in range and added to the original signal.
10013 An Exciter raises the upper end of an audio signal without simply
10014 raising the higher frequencies like an equalizer would do to create a
10015 more "crisp" or "brilliant" sound.
10016
10017 The filter accepts the following options:
10018
10019 level_in
10020 Set input level prior processing of signal. Allowed range is from
10021 0 to 64. Default value is 1.
10022
10023 level_out
10024 Set output level after processing of signal. Allowed range is from
10025 0 to 64. Default value is 1.
10026
10027 amount
10028 Set the amount of harmonics added to original signal. Allowed
10029 range is from 0 to 64. Default value is 1.
10030
10031 drive
10032 Set the amount of newly created harmonics. Allowed range is from
10033 0.1 to 10. Default value is 8.5.
10034
10035 blend
10036 Set the octave of newly created harmonics. Allowed range is from
10037 -10 to 10. Default value is 0.
10038
10039 freq
10040 Set the lower frequency limit of producing harmonics in Hz.
10041 Allowed range is from 2000 to 12000 Hz. Default is 7500 Hz.
10042
10043 ceil
10044 Set the upper frequency limit of producing harmonics. Allowed
10045 range is from 9999 to 20000 Hz. If value is lower than 10000 Hz no
10046 limit is applied.
10047
10048 listen
10049 Mute the original signal and output only added harmonics. By
10050 default is disabled.
10051
10052 Commands
10053
10054 This filter supports the all above options as commands.
10055
10056 afade
10057 Apply fade-in/out effect to input audio.
10058
10059 A description of the accepted parameters follows.
10060
10061 type, t
10062 Specify the effect type, can be either "in" for fade-in, or "out"
10063 for a fade-out effect. Default is "in".
10064
10065 start_sample, ss
10066 Specify the number of the start sample for starting to apply the
10067 fade effect. Default is 0.
10068
10069 nb_samples, ns
10070 Specify the number of samples for which the fade effect has to
10071 last. At the end of the fade-in effect the output audio will have
10072 the same volume as the input audio, at the end of the fade-out
10073 transition the output audio will be silence. Default is 44100.
10074
10075 start_time, st
10076 Specify the start time of the fade effect. Default is 0. The value
10077 must be specified as a time duration; see the Time duration section
10078 in the ffmpeg-utils(1) manual for the accepted syntax. If set this
10079 option is used instead of start_sample.
10080
10081 duration, d
10082 Specify the duration of the fade effect. See the Time duration
10083 section in the ffmpeg-utils(1) manual for the accepted syntax. At
10084 the end of the fade-in effect the output audio will have the same
10085 volume as the input audio, at the end of the fade-out transition
10086 the output audio will be silence. By default the duration is
10087 determined by nb_samples. If set this option is used instead of
10088 nb_samples.
10089
10090 curve
10091 Set curve for fade transition.
10092
10093 It accepts the following values:
10094
10095 tri select triangular, linear slope (default)
10096
10097 qsin
10098 select quarter of sine wave
10099
10100 hsin
10101 select half of sine wave
10102
10103 esin
10104 select exponential sine wave
10105
10106 log select logarithmic
10107
10108 ipar
10109 select inverted parabola
10110
10111 qua select quadratic
10112
10113 cub select cubic
10114
10115 squ select square root
10116
10117 cbr select cubic root
10118
10119 par select parabola
10120
10121 exp select exponential
10122
10123 iqsin
10124 select inverted quarter of sine wave
10125
10126 ihsin
10127 select inverted half of sine wave
10128
10129 dese
10130 select double-exponential seat
10131
10132 desi
10133 select double-exponential sigmoid
10134
10135 losi
10136 select logistic sigmoid
10137
10138 sinc
10139 select sine cardinal function
10140
10141 isinc
10142 select inverted sine cardinal function
10143
10144 nofade
10145 no fade applied
10146
10147 Commands
10148
10149 This filter supports the all above options as commands.
10150
10151 Examples
10152
10153 • Fade in first 15 seconds of audio:
10154
10155 afade=t=in:ss=0:d=15
10156
10157 • Fade out last 25 seconds of a 900 seconds audio:
10158
10159 afade=t=out:st=875:d=25
10160
10161 afftdn
10162 Denoise audio samples with FFT.
10163
10164 A description of the accepted parameters follows.
10165
10166 noise_reduction, nr
10167 Set the noise reduction in dB, allowed range is 0.01 to 97.
10168 Default value is 12 dB.
10169
10170 noise_floor, nf
10171 Set the noise floor in dB, allowed range is -80 to -20. Default
10172 value is -50 dB.
10173
10174 noise_type, nt
10175 Set the noise type.
10176
10177 It accepts the following values:
10178
10179 white, w
10180 Select white noise.
10181
10182 vinyl, v
10183 Select vinyl noise.
10184
10185 shellac, s
10186 Select shellac noise.
10187
10188 custom, c
10189 Select custom noise, defined in "bn" option.
10190
10191 Default value is white noise.
10192
10193 band_noise, bn
10194 Set custom band noise profile for every one of 15 bands. Bands are
10195 separated by ' ' or '|'.
10196
10197 residual_floor, rf
10198 Set the residual floor in dB, allowed range is -80 to -20. Default
10199 value is -38 dB.
10200
10201 track_noise, tn
10202 Enable noise floor tracking. By default is disabled. With this
10203 enabled, noise floor is automatically adjusted.
10204
10205 track_residual, tr
10206 Enable residual tracking. By default is disabled.
10207
10208 output_mode, om
10209 Set the output mode.
10210
10211 It accepts the following values:
10212
10213 input, i
10214 Pass input unchanged.
10215
10216 output, o
10217 Pass noise filtered out.
10218
10219 noise, n
10220 Pass only noise.
10221
10222 Default value is output.
10223
10224 adaptivity, ad
10225 Set the adaptivity factor, used how fast to adapt gains adjustments
10226 per each frequency bin. Value 0 enables instant adaptation, while
10227 higher values react much slower. Allowed range is from 0 to 1.
10228 Default value is 0.5.
10229
10230 floor_offset, fo
10231 Set the noise floor offset factor. This option is used to adjust
10232 offset applied to measured noise floor. It is only effective when
10233 noise floor tracking is enabled. Allowed range is from -2.0 to
10234 2.0. Default value is 1.0.
10235
10236 noise_link, nl
10237 Set the noise link used for multichannel audio.
10238
10239 It accepts the following values:
10240
10241 none
10242 Use unchanged channel's noise floor.
10243
10244 min Use measured min noise floor of all channels.
10245
10246 max Use measured max noise floor of all channels.
10247
10248 average
10249 Use measured average noise floor of all channels.
10250
10251 Default value is min.
10252
10253 band_multiplier, bm
10254 Set the band multiplier factor, used how much to spread bands
10255 across frequency bins. Allowed range is from 0.2 to 5. Default
10256 value is 1.25.
10257
10258 sample_noise, sn
10259 Toggle capturing and measurement of noise profile from input audio.
10260
10261 It accepts the following values:
10262
10263 start, begin
10264 Start sample noise capture.
10265
10266 stop, end
10267 Stop sample noise capture and measure new noise band profile.
10268
10269 Default value is "none".
10270
10271 gain_smooth, gs
10272 Set gain smooth spatial radius, used to smooth gains applied to
10273 each frequency bin. Useful to reduce random music noise artefacts.
10274 Higher values increases smoothing of gains. Allowed range is from
10275 0 to 50. Default value is 0.
10276
10277 Commands
10278
10279 This filter supports the some above mentioned options as commands.
10280
10281 Examples
10282
10283 • Reduce white noise by 10dB, and use previously measured noise floor
10284 of -40dB:
10285
10286 afftdn=nr=10:nf=-40
10287
10288 • Reduce white noise by 10dB, also set initial noise floor to -80dB
10289 and enable automatic tracking of noise floor so noise floor will
10290 gradually change during processing:
10291
10292 afftdn=nr=10:nf=-80:tn=1
10293
10294 • Reduce noise by 20dB, using noise floor of -40dB and using commands
10295 to take noise profile of first 0.4 seconds of input audio:
10296
10297 asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
10298
10299 afftfilt
10300 Apply arbitrary expressions to samples in frequency domain.
10301
10302 real
10303 Set frequency domain real expression for each separate channel
10304 separated by '|'. Default is "re". If the number of input channels
10305 is greater than the number of expressions, the last specified
10306 expression is used for the remaining output channels.
10307
10308 imag
10309 Set frequency domain imaginary expression for each separate channel
10310 separated by '|'. Default is "im".
10311
10312 Each expression in real and imag can contain the following
10313 constants and functions:
10314
10315 sr sample rate
10316
10317 b current frequency bin number
10318
10319 nb number of available bins
10320
10321 ch channel number of the current expression
10322
10323 chs number of channels
10324
10325 pts current frame pts
10326
10327 re current real part of frequency bin of current channel
10328
10329 im current imaginary part of frequency bin of current channel
10330
10331 real(b, ch)
10332 Return the value of real part of frequency bin at location
10333 (bin,channel)
10334
10335 imag(b, ch)
10336 Return the value of imaginary part of frequency bin at location
10337 (bin,channel)
10338
10339 win_size
10340 Set window size. Allowed range is from 16 to 131072. Default is
10341 4096
10342
10343 win_func
10344 Set window function.
10345
10346 It accepts the following values:
10347
10348 rect
10349 bartlett
10350 hann, hanning
10351 hamming
10352 blackman
10353 welch
10354 flattop
10355 bharris
10356 bnuttall
10357 bhann
10358 sine
10359 nuttall
10360 lanczos
10361 gauss
10362 tukey
10363 dolph
10364 cauchy
10365 parzen
10366 poisson
10367 bohman
10368
10369 Default is "hann".
10370
10371 overlap
10372 Set window overlap. If set to 1, the recommended overlap for
10373 selected window function will be picked. Default is 0.75.
10374
10375 Examples
10376
10377 • Leave almost only low frequencies in audio:
10378
10379 afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
10380
10381 • Apply robotize effect:
10382
10383 afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
10384
10385 • Apply whisper effect:
10386
10387 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"
10388
10389 afir
10390 Apply an arbitrary Finite Impulse Response filter.
10391
10392 This filter is designed for applying long FIR filters, up to 60 seconds
10393 long.
10394
10395 It can be used as component for digital crossover filters, room
10396 equalization, cross talk cancellation, wavefield synthesis,
10397 auralization, ambiophonics, ambisonics and spatialization.
10398
10399 This filter uses the streams higher than first one as FIR coefficients.
10400 If the non-first stream holds a single channel, it will be used for all
10401 input channels in the first stream, otherwise the number of channels in
10402 the non-first stream must be same as the number of channels in the
10403 first stream.
10404
10405 It accepts the following parameters:
10406
10407 dry Set dry gain. This sets input gain.
10408
10409 wet Set wet gain. This sets final output gain.
10410
10411 length
10412 Set Impulse Response filter length. Default is 1, which means whole
10413 IR is processed.
10414
10415 gtype
10416 Enable applying gain measured from power of IR.
10417
10418 Set which approach to use for auto gain measurement.
10419
10420 none
10421 Do not apply any gain.
10422
10423 peak
10424 select peak gain, very conservative approach. This is default
10425 value.
10426
10427 dc select DC gain, limited application.
10428
10429 gn select gain to noise approach, this is most popular one.
10430
10431 irgain
10432 Set gain to be applied to IR coefficients before filtering.
10433 Allowed range is 0 to 1. This gain is applied after any gain
10434 applied with gtype option.
10435
10436 irfmt
10437 Set format of IR stream. Can be "mono" or "input". Default is
10438 "input".
10439
10440 maxir
10441 Set max allowed Impulse Response filter duration in seconds.
10442 Default is 30 seconds. Allowed range is 0.1 to 60 seconds.
10443
10444 response
10445 Show IR frequency response, magnitude(magenta), phase(green) and
10446 group delay(yellow) in additional video stream. By default it is
10447 disabled.
10448
10449 channel
10450 Set for which IR channel to display frequency response. By default
10451 is first channel displayed. This option is used only when response
10452 is enabled.
10453
10454 size
10455 Set video stream size. This option is used only when response is
10456 enabled.
10457
10458 rate
10459 Set video stream frame rate. This option is used only when response
10460 is enabled.
10461
10462 minp
10463 Set minimal partition size used for convolution. Default is 8192.
10464 Allowed range is from 1 to 32768. Lower values decreases latency
10465 at cost of higher CPU usage.
10466
10467 maxp
10468 Set maximal partition size used for convolution. Default is 8192.
10469 Allowed range is from 8 to 32768. Lower values may increase CPU
10470 usage.
10471
10472 nbirs
10473 Set number of input impulse responses streams which will be
10474 switchable at runtime. Allowed range is from 1 to 32. Default is
10475 1.
10476
10477 ir Set IR stream which will be used for convolution, starting from 0,
10478 should always be lower than supplied value by "nbirs" option.
10479 Default is 0. This option can be changed at runtime via commands.
10480
10481 precision
10482 Set which precision to use when processing samples.
10483
10484 auto
10485 Auto pick internal sample format depending on other filters.
10486
10487 float
10488 Always use single-floating point precision sample format.
10489
10490 double
10491 Always use double-floating point precision sample format.
10492
10493 Default value is auto.
10494
10495 Examples
10496
10497 • Apply reverb to stream using mono IR file as second input, complete
10498 command using ffmpeg:
10499
10500 ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
10501
10502 aformat
10503 Set output format constraints for the input audio. The framework will
10504 negotiate the most appropriate format to minimize conversions.
10505
10506 It accepts the following parameters:
10507
10508 sample_fmts, f
10509 A '|'-separated list of requested sample formats.
10510
10511 sample_rates, r
10512 A '|'-separated list of requested sample rates.
10513
10514 channel_layouts, cl
10515 A '|'-separated list of requested channel layouts.
10516
10517 See the Channel Layout section in the ffmpeg-utils(1) manual for
10518 the required syntax.
10519
10520 If a parameter is omitted, all values are allowed.
10521
10522 Force the output to either unsigned 8-bit or signed 16-bit stereo
10523
10524 aformat=sample_fmts=u8|s16:channel_layouts=stereo
10525
10526 afreqshift
10527 Apply frequency shift to input audio samples.
10528
10529 The filter accepts the following options:
10530
10531 shift
10532 Specify frequency shift. Allowed range is -INT_MAX to INT_MAX.
10533 Default value is 0.0.
10534
10535 level
10536 Set output gain applied to final output. Allowed range is from 0.0
10537 to 1.0. Default value is 1.0.
10538
10539 order
10540 Set filter order used for filtering. Allowed range is from 1 to 16.
10541 Default value is 8.
10542
10543 Commands
10544
10545 This filter supports the all above options as commands.
10546
10547 afwtdn
10548 Reduce broadband noise from input samples using Wavelets.
10549
10550 A description of the accepted options follows.
10551
10552 sigma
10553 Set the noise sigma, allowed range is from 0 to 1. Default value
10554 is 0. This option controls strength of denoising applied to input
10555 samples. Most useful way to set this option is via decibels, eg.
10556 -45dB.
10557
10558 levels
10559 Set the number of wavelet levels of decomposition. Allowed range
10560 is from 1 to 12. Default value is 10. Setting this too low make
10561 denoising performance very poor.
10562
10563 wavet
10564 Set wavelet type for decomposition of input frame. They are sorted
10565 by number of coefficients, from lowest to highest. More
10566 coefficients means worse filtering speed, but overall better
10567 quality. Available wavelets are:
10568
10569 sym2
10570 sym4
10571 rbior68
10572 deb10
10573 sym10
10574 coif5
10575 bl3
10576 percent
10577 Set percent of full denoising. Allowed range is from 0 to 100
10578 percent. Default value is 85 percent or partial denoising.
10579
10580 profile
10581 If enabled, first input frame will be used as noise profile. If
10582 first frame samples contain non-noise performance will be very
10583 poor.
10584
10585 adaptive
10586 If enabled, input frames are analyzed for presence of noise. If
10587 noise is detected with high possibility then input frame profile
10588 will be used for processing following frames, until new noise frame
10589 is detected.
10590
10591 samples
10592 Set size of single frame in number of samples. Allowed range is
10593 from 512 to 65536. Default frame size is 8192 samples.
10594
10595 softness
10596 Set softness applied inside thresholding function. Allowed range is
10597 from 0 to 10. Default softness is 1.
10598
10599 Commands
10600
10601 This filter supports the all above options as commands.
10602
10603 agate
10604 A gate is mainly used to reduce lower parts of a signal. This kind of
10605 signal processing reduces disturbing noise between useful signals.
10606
10607 Gating is done by detecting the volume below a chosen level threshold
10608 and dividing it by the factor set with ratio. The bottom of the noise
10609 floor is set via range. Because an exact manipulation of the signal
10610 would cause distortion of the waveform the reduction can be levelled
10611 over time. This is done by setting attack and release.
10612
10613 attack determines how long the signal has to fall below the threshold
10614 before any reduction will occur and release sets the time the signal
10615 has to rise above the threshold to reduce the reduction again. Shorter
10616 signals than the chosen attack time will be left untouched.
10617
10618 level_in
10619 Set input level before filtering. Default is 1. Allowed range is
10620 from 0.015625 to 64.
10621
10622 mode
10623 Set the mode of operation. Can be "upward" or "downward". Default
10624 is "downward". If set to "upward" mode, higher parts of signal will
10625 be amplified, expanding dynamic range in upward direction.
10626 Otherwise, in case of "downward" lower parts of signal will be
10627 reduced.
10628
10629 range
10630 Set the level of gain reduction when the signal is below the
10631 threshold. Default is 0.06125. Allowed range is from 0 to 1.
10632 Setting this to 0 disables reduction and then filter behaves like
10633 expander.
10634
10635 threshold
10636 If a signal rises above this level the gain reduction is released.
10637 Default is 0.125. Allowed range is from 0 to 1.
10638
10639 ratio
10640 Set a ratio by which the signal is reduced. Default is 2. Allowed
10641 range is from 1 to 9000.
10642
10643 attack
10644 Amount of milliseconds the signal has to rise above the threshold
10645 before gain reduction stops. Default is 20 milliseconds. Allowed
10646 range is from 0.01 to 9000.
10647
10648 release
10649 Amount of milliseconds the signal has to fall below the threshold
10650 before the reduction is increased again. Default is 250
10651 milliseconds. Allowed range is from 0.01 to 9000.
10652
10653 makeup
10654 Set amount of amplification of signal after processing. Default is
10655 1. Allowed range is from 1 to 64.
10656
10657 knee
10658 Curve the sharp knee around the threshold to enter gain reduction
10659 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
10660
10661 detection
10662 Choose if exact signal should be taken for detection or an RMS like
10663 one. Default is "rms". Can be "peak" or "rms".
10664
10665 link
10666 Choose if the average level between all channels or the louder
10667 channel affects the reduction. Default is "average". Can be
10668 "average" or "maximum".
10669
10670 Commands
10671
10672 This filter supports the all above options as commands.
10673
10674 aiir
10675 Apply an arbitrary Infinite Impulse Response filter.
10676
10677 It accepts the following parameters:
10678
10679 zeros, z
10680 Set B/numerator/zeros/reflection coefficients.
10681
10682 poles, p
10683 Set A/denominator/poles/ladder coefficients.
10684
10685 gains, k
10686 Set channels gains.
10687
10688 dry_gain
10689 Set input gain.
10690
10691 wet_gain
10692 Set output gain.
10693
10694 format, f
10695 Set coefficients format.
10696
10697 ll lattice-ladder function
10698
10699 sf analog transfer function
10700
10701 tf digital transfer function
10702
10703 zp Z-plane zeros/poles, cartesian (default)
10704
10705 pr Z-plane zeros/poles, polar radians
10706
10707 pd Z-plane zeros/poles, polar degrees
10708
10709 sp S-plane zeros/poles
10710
10711 process, r
10712 Set type of processing.
10713
10714 d direct processing
10715
10716 s serial processing
10717
10718 p parallel processing
10719
10720 precision, e
10721 Set filtering precision.
10722
10723 dbl double-precision floating-point (default)
10724
10725 flt single-precision floating-point
10726
10727 i32 32-bit integers
10728
10729 i16 16-bit integers
10730
10731 normalize, n
10732 Normalize filter coefficients, by default is enabled. Enabling it
10733 will normalize magnitude response at DC to 0dB.
10734
10735 mix How much to use filtered signal in output. Default is 1. Range is
10736 between 0 and 1.
10737
10738 response
10739 Show IR frequency response, magnitude(magenta), phase(green) and
10740 group delay(yellow) in additional video stream. By default it is
10741 disabled.
10742
10743 channel
10744 Set for which IR channel to display frequency response. By default
10745 is first channel displayed. This option is used only when response
10746 is enabled.
10747
10748 size
10749 Set video stream size. This option is used only when response is
10750 enabled.
10751
10752 Coefficients in "tf" and "sf" format are separated by spaces and are in
10753 ascending order.
10754
10755 Coefficients in "zp" format are separated by spaces and order of
10756 coefficients doesn't matter. Coefficients in "zp" format are complex
10757 numbers with i imaginary unit.
10758
10759 Different coefficients and gains can be provided for every channel, in
10760 such case use '|' to separate coefficients or gains. Last provided
10761 coefficients will be used for all remaining channels.
10762
10763 Examples
10764
10765 • Apply 2 pole elliptic notch at around 5000Hz for 48000 Hz sample
10766 rate:
10767
10768 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
10769
10770 • Same as above but in "zp" format:
10771
10772 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
10773
10774 • Apply 3-rd order analog normalized Butterworth low-pass filter,
10775 using analog transfer function format:
10776
10777 aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
10778
10779 alimiter
10780 The limiter prevents an input signal from rising over a desired
10781 threshold. This limiter uses lookahead technology to prevent your
10782 signal from distorting. It means that there is a small delay after the
10783 signal is processed. Keep in mind that the delay it produces is the
10784 attack time you set.
10785
10786 The filter accepts the following options:
10787
10788 level_in
10789 Set input gain. Default is 1.
10790
10791 level_out
10792 Set output gain. Default is 1.
10793
10794 limit
10795 Don't let signals above this level pass the limiter. Default is 1.
10796
10797 attack
10798 The limiter will reach its attenuation level in this amount of time
10799 in milliseconds. Default is 5 milliseconds.
10800
10801 release
10802 Come back from limiting to attenuation 1.0 in this amount of
10803 milliseconds. Default is 50 milliseconds.
10804
10805 asc When gain reduction is always needed ASC takes care of releasing to
10806 an average reduction level rather than reaching a reduction of 0 in
10807 the release time.
10808
10809 asc_level
10810 Select how much the release time is affected by ASC, 0 means nearly
10811 no changes in release time while 1 produces higher release times.
10812
10813 level
10814 Auto level output signal. Default is enabled. This normalizes
10815 audio back to 0dB if enabled.
10816
10817 latency
10818 Compensate the delay introduced by using the lookahead buffer set
10819 with attack parameter. Also flush the valid audio data in the
10820 lookahead buffer when the stream hits EOF.
10821
10822 Depending on picked setting it is recommended to upsample input 2x or
10823 4x times with aresample before applying this filter.
10824
10825 allpass
10826 Apply a two-pole all-pass filter with central frequency (in Hz)
10827 frequency, and filter-width width. An all-pass filter changes the
10828 audio's frequency to phase relationship without changing its frequency
10829 to amplitude relationship.
10830
10831 The filter accepts the following options:
10832
10833 frequency, f
10834 Set frequency in Hz.
10835
10836 width_type, t
10837 Set method to specify band-width of filter.
10838
10839 h Hz
10840
10841 q Q-Factor
10842
10843 o octave
10844
10845 s slope
10846
10847 k kHz
10848
10849 width, w
10850 Specify the band-width of a filter in width_type units.
10851
10852 mix, m
10853 How much to use filtered signal in output. Default is 1. Range is
10854 between 0 and 1.
10855
10856 channels, c
10857 Specify which channels to filter, by default all available are
10858 filtered.
10859
10860 normalize, n
10861 Normalize biquad coefficients, by default is disabled. Enabling it
10862 will normalize magnitude response at DC to 0dB.
10863
10864 order, o
10865 Set the filter order, can be 1 or 2. Default is 2.
10866
10867 transform, a
10868 Set transform type of IIR filter.
10869
10870 di
10871 dii
10872 tdi
10873 tdii
10874 latt
10875 svf
10876 zdf
10877 precision, r
10878 Set precison of filtering.
10879
10880 auto
10881 Pick automatic sample format depending on surround filters.
10882
10883 s16 Always use signed 16-bit.
10884
10885 s32 Always use signed 32-bit.
10886
10887 f32 Always use float 32-bit.
10888
10889 f64 Always use float 64-bit.
10890
10891 Commands
10892
10893 This filter supports the following commands:
10894
10895 frequency, f
10896 Change allpass frequency. Syntax for the command is : "frequency"
10897
10898 width_type, t
10899 Change allpass width_type. Syntax for the command is :
10900 "width_type"
10901
10902 width, w
10903 Change allpass width. Syntax for the command is : "width"
10904
10905 mix, m
10906 Change allpass mix. Syntax for the command is : "mix"
10907
10908 aloop
10909 Loop audio samples.
10910
10911 The filter accepts the following options:
10912
10913 loop
10914 Set the number of loops. Setting this value to -1 will result in
10915 infinite loops. Default is 0.
10916
10917 size
10918 Set maximal number of samples. Default is 0.
10919
10920 start
10921 Set first sample of loop. Default is 0.
10922
10923 amerge
10924 Merge two or more audio streams into a single multi-channel stream.
10925
10926 The filter accepts the following options:
10927
10928 inputs
10929 Set the number of inputs. Default is 2.
10930
10931 If the channel layouts of the inputs are disjoint, and therefore
10932 compatible, the channel layout of the output will be set accordingly
10933 and the channels will be reordered as necessary. If the channel layouts
10934 of the inputs are not disjoint, the output will have all the channels
10935 of the first input then all the channels of the second input, in that
10936 order, and the channel layout of the output will be the default value
10937 corresponding to the total number of channels.
10938
10939 For example, if the first input is in 2.1 (FL+FR+LF) and the second
10940 input is FC+BL+BR, then the output will be in 5.1, with the channels in
10941 the following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of
10942 the first input, b1 is the first channel of the second input).
10943
10944 On the other hand, if both input are in stereo, the output channels
10945 will be in the default order: a1, a2, b1, b2, and the channel layout
10946 will be arbitrarily set to 4.0, which may or may not be the expected
10947 value.
10948
10949 All inputs must have the same sample rate, and format.
10950
10951 If inputs do not have the same duration, the output will stop with the
10952 shortest.
10953
10954 Examples
10955
10956 • Merge two mono files into a stereo stream:
10957
10958 amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
10959
10960 • Multiple merges assuming 1 video stream and 6 audio streams in
10961 input.mkv:
10962
10963 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
10964
10965 amix
10966 Mixes multiple audio inputs into a single output.
10967
10968 Note that this filter only supports float samples (the amerge and pan
10969 audio filters support many formats). If the amix input has integer
10970 samples then aresample will be automatically inserted to perform the
10971 conversion to float samples.
10972
10973 For example
10974
10975 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
10976
10977 will mix 3 input audio streams to a single output with the same
10978 duration as the first input and a dropout transition time of 3 seconds.
10979
10980 It accepts the following parameters:
10981
10982 inputs
10983 The number of inputs. If unspecified, it defaults to 2.
10984
10985 duration
10986 How to determine the end-of-stream.
10987
10988 longest
10989 The duration of the longest input. (default)
10990
10991 shortest
10992 The duration of the shortest input.
10993
10994 first
10995 The duration of the first input.
10996
10997 dropout_transition
10998 The transition time, in seconds, for volume renormalization when an
10999 input stream ends. The default value is 2 seconds.
11000
11001 weights
11002 Specify weight of each input audio stream as sequence. Each weight
11003 is separated by space. By default all inputs have same weight.
11004
11005 normalize
11006 Always scale inputs instead of only doing summation of samples.
11007 Beware of heavy clipping if inputs are not normalized prior or
11008 after filtering by this filter if this option is disabled. By
11009 default is enabled.
11010
11011 Commands
11012
11013 This filter supports the following commands:
11014
11015 weights
11016 normalize
11017 Syntax is same as option with same name.
11018
11019 amultiply
11020 Multiply first audio stream with second audio stream and store result
11021 in output audio stream. Multiplication is done by multiplying each
11022 sample from first stream with sample at same position from second
11023 stream.
11024
11025 With this element-wise multiplication one can create amplitude fades
11026 and amplitude modulations.
11027
11028 anequalizer
11029 High-order parametric multiband equalizer for each channel.
11030
11031 It accepts the following parameters:
11032
11033 params
11034 This option string is in format: "cchn f=cf w=w g=g t=f | ..."
11035 Each equalizer band is separated by '|'.
11036
11037 chn Set channel number to which equalization will be applied. If
11038 input doesn't have that channel the entry is ignored.
11039
11040 f Set central frequency for band. If input doesn't have that
11041 frequency the entry is ignored.
11042
11043 w Set band width in Hertz.
11044
11045 g Set band gain in dB.
11046
11047 t Set filter type for band, optional, can be:
11048
11049 0 Butterworth, this is default.
11050
11051 1 Chebyshev type 1.
11052
11053 2 Chebyshev type 2.
11054
11055 curves
11056 With this option activated frequency response of anequalizer is
11057 displayed in video stream.
11058
11059 size
11060 Set video stream size. Only useful if curves option is activated.
11061
11062 mgain
11063 Set max gain that will be displayed. Only useful if curves option
11064 is activated. Setting this to a reasonable value makes it possible
11065 to display gain which is derived from neighbour bands which are too
11066 close to each other and thus produce higher gain when both are
11067 activated.
11068
11069 fscale
11070 Set frequency scale used to draw frequency response in video
11071 output. Can be linear or logarithmic. Default is logarithmic.
11072
11073 colors
11074 Set color for each channel curve which is going to be displayed in
11075 video stream. This is list of color names separated by space or by
11076 '|'. Unrecognised or missing colors will be replaced by white
11077 color.
11078
11079 Examples
11080
11081 • Lower gain by 10 of central frequency 200Hz and width 100 Hz for
11082 first 2 channels using Chebyshev type 1 filter:
11083
11084 anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
11085
11086 Commands
11087
11088 This filter supports the following commands:
11089
11090 change
11091 Alter existing filter parameters. Syntax for the commands is :
11092 "fN|f=freq|w=width|g=gain"
11093
11094 fN is existing filter number, starting from 0, if no such filter is
11095 available error is returned. freq set new frequency parameter.
11096 width set new width parameter in Hertz. gain set new gain
11097 parameter in dB.
11098
11099 Full filter invocation with asendcmd may look like this:
11100 asendcmd=c='4.0 anequalizer change
11101 0|f=200|w=50|g=1',anequalizer=...
11102
11103 anlmdn
11104 Reduce broadband noise in audio samples using Non-Local Means
11105 algorithm.
11106
11107 Each sample is adjusted by looking for other samples with similar
11108 contexts. This context similarity is defined by comparing their
11109 surrounding patches of size p. Patches are searched in an area of r
11110 around the sample.
11111
11112 The filter accepts the following options:
11113
11114 strength, s
11115 Set denoising strength. Allowed range is from 0.00001 to 10000.
11116 Default value is 0.00001.
11117
11118 patch, p
11119 Set patch radius duration. Allowed range is from 1 to 100
11120 milliseconds. Default value is 2 milliseconds.
11121
11122 research, r
11123 Set research radius duration. Allowed range is from 2 to 300
11124 milliseconds. Default value is 6 milliseconds.
11125
11126 output, o
11127 Set the output mode.
11128
11129 It accepts the following values:
11130
11131 i Pass input unchanged.
11132
11133 o Pass noise filtered out.
11134
11135 n Pass only noise.
11136
11137 Default value is o.
11138
11139 smooth, m
11140 Set smooth factor. Default value is 11. Allowed range is from 1 to
11141 1000.
11142
11143 Commands
11144
11145 This filter supports the all above options as commands.
11146
11147 anlmf, anlms
11148 Apply Normalized Least-Mean-(Squares|Fourth) algorithm to the first
11149 audio stream using the second audio stream.
11150
11151 This adaptive filter is used to mimic a desired filter by finding the
11152 filter coefficients that relate to producing the least mean square of
11153 the error signal (difference between the desired, 2nd input audio
11154 stream and the actual signal, the 1st input audio stream).
11155
11156 A description of the accepted options follows.
11157
11158 order
11159 Set filter order.
11160
11161 mu Set filter mu.
11162
11163 eps Set the filter eps.
11164
11165 leakage
11166 Set the filter leakage.
11167
11168 out_mode
11169 It accepts the following values:
11170
11171 i Pass the 1st input.
11172
11173 d Pass the 2nd input.
11174
11175 o Pass filtered samples.
11176
11177 n Pass difference between desired and filtered samples.
11178
11179 Default value is o.
11180
11181 Examples
11182
11183 • One of many usages of this filter is noise reduction, input audio
11184 is filtered with same samples that are delayed by fixed amount, one
11185 such example for stereo audio is:
11186
11187 asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
11188
11189 Commands
11190
11191 This filter supports the same commands as options, excluding option
11192 "order".
11193
11194 anull
11195 Pass the audio source unchanged to the output.
11196
11197 apad
11198 Pad the end of an audio stream with silence.
11199
11200 This can be used together with ffmpeg -shortest to extend audio streams
11201 to the same length as the video stream.
11202
11203 A description of the accepted options follows.
11204
11205 packet_size
11206 Set silence packet size. Default value is 4096.
11207
11208 pad_len
11209 Set the number of samples of silence to add to the end. After the
11210 value is reached, the stream is terminated. This option is mutually
11211 exclusive with whole_len.
11212
11213 whole_len
11214 Set the minimum total number of samples in the output audio stream.
11215 If the value is longer than the input audio length, silence is
11216 added to the end, until the value is reached. This option is
11217 mutually exclusive with pad_len.
11218
11219 pad_dur
11220 Specify the duration of samples of silence to add. See the Time
11221 duration section in the ffmpeg-utils(1) manual for the accepted
11222 syntax. Used only if set to non-negative value.
11223
11224 whole_dur
11225 Specify the minimum total duration in the output audio stream. See
11226 the Time duration section in the ffmpeg-utils(1) manual for the
11227 accepted syntax. Used only if set to non-negative value. If the
11228 value is longer than the input audio length, silence is added to
11229 the end, until the value is reached. This option is mutually
11230 exclusive with pad_dur
11231
11232 If neither the pad_len nor the whole_len nor pad_dur nor whole_dur
11233 option is set, the filter will add silence to the end of the input
11234 stream indefinitely.
11235
11236 Note that for ffmpeg 4.4 and earlier a zero pad_dur or whole_dur also
11237 caused the filter to add silence indefinitely.
11238
11239 Examples
11240
11241 • Add 1024 samples of silence to the end of the input:
11242
11243 apad=pad_len=1024
11244
11245 • Make sure the audio output will contain at least 10000 samples, pad
11246 the input with silence if required:
11247
11248 apad=whole_len=10000
11249
11250 • Use ffmpeg to pad the audio input with silence, so that the video
11251 stream will always result the shortest and will be converted until
11252 the end in the output file when using the shortest option:
11253
11254 ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
11255
11256 aphaser
11257 Add a phasing effect to the input audio.
11258
11259 A phaser filter creates series of peaks and troughs in the frequency
11260 spectrum. The position of the peaks and troughs are modulated so that
11261 they vary over time, creating a sweeping effect.
11262
11263 A description of the accepted parameters follows.
11264
11265 in_gain
11266 Set input gain. Default is 0.4.
11267
11268 out_gain
11269 Set output gain. Default is 0.74
11270
11271 delay
11272 Set delay in milliseconds. Default is 3.0.
11273
11274 decay
11275 Set decay. Default is 0.4.
11276
11277 speed
11278 Set modulation speed in Hz. Default is 0.5.
11279
11280 type
11281 Set modulation type. Default is triangular.
11282
11283 It accepts the following values:
11284
11285 triangular, t
11286 sinusoidal, s
11287
11288 aphaseshift
11289 Apply phase shift to input audio samples.
11290
11291 The filter accepts the following options:
11292
11293 shift
11294 Specify phase shift. Allowed range is from -1.0 to 1.0. Default
11295 value is 0.0.
11296
11297 level
11298 Set output gain applied to final output. Allowed range is from 0.0
11299 to 1.0. Default value is 1.0.
11300
11301 order
11302 Set filter order used for filtering. Allowed range is from 1 to 16.
11303 Default value is 8.
11304
11305 Commands
11306
11307 This filter supports the all above options as commands.
11308
11309 apsyclip
11310 Apply Psychoacoustic clipper to input audio stream.
11311
11312 The filter accepts the following options:
11313
11314 level_in
11315 Set input gain. By default it is 1. Range is [0.015625 - 64].
11316
11317 level_out
11318 Set output gain. By default it is 1. Range is [0.015625 - 64].
11319
11320 clip
11321 Set the clipping start value. Default value is 0dBFS or 1.
11322
11323 diff
11324 Output only difference samples, useful to hear introduced
11325 distortions. By default is disabled.
11326
11327 adaptive
11328 Set strength of adaptive distortion applied. Default value is 0.5.
11329 Allowed range is from 0 to 1.
11330
11331 iterations
11332 Set number of iterations of psychoacoustic clipper. Allowed range
11333 is from 1 to 20. Default value is 10.
11334
11335 level
11336 Auto level output signal. Default is disabled. This normalizes
11337 audio back to 0dBFS if enabled.
11338
11339 Commands
11340
11341 This filter supports the all above options as commands.
11342
11343 apulsator
11344 Audio pulsator is something between an autopanner and a tremolo. But
11345 it can produce funny stereo effects as well. Pulsator changes the
11346 volume of the left and right channel based on a LFO (low frequency
11347 oscillator) with different waveforms and shifted phases. This filter
11348 have the ability to define an offset between left and right channel. An
11349 offset of 0 means that both LFO shapes match each other. The left and
11350 right channel are altered equally - a conventional tremolo. An offset
11351 of 50% means that the shape of the right channel is exactly shifted in
11352 phase (or moved backwards about half of the frequency) - pulsator acts
11353 as an autopanner. At 1 both curves match again. Every setting in
11354 between moves the phase shift gapless between all stages and produces
11355 some "bypassing" sounds with sine and triangle waveforms. The more you
11356 set the offset near 1 (starting from the 0.5) the faster the signal
11357 passes from the left to the right speaker.
11358
11359 The filter accepts the following options:
11360
11361 level_in
11362 Set input gain. By default it is 1. Range is [0.015625 - 64].
11363
11364 level_out
11365 Set output gain. By default it is 1. Range is [0.015625 - 64].
11366
11367 mode
11368 Set waveform shape the LFO will use. Can be one of: sine, triangle,
11369 square, sawup or sawdown. Default is sine.
11370
11371 amount
11372 Set modulation. Define how much of original signal is affected by
11373 the LFO.
11374
11375 offset_l
11376 Set left channel offset. Default is 0. Allowed range is [0 - 1].
11377
11378 offset_r
11379 Set right channel offset. Default is 0.5. Allowed range is [0 - 1].
11380
11381 width
11382 Set pulse width. Default is 1. Allowed range is [0 - 2].
11383
11384 timing
11385 Set possible timing mode. Can be one of: bpm, ms or hz. Default is
11386 hz.
11387
11388 bpm Set bpm. Default is 120. Allowed range is [30 - 300]. Only used if
11389 timing is set to bpm.
11390
11391 ms Set ms. Default is 500. Allowed range is [10 - 2000]. Only used if
11392 timing is set to ms.
11393
11394 hz Set frequency in Hz. Default is 2. Allowed range is [0.01 - 100].
11395 Only used if timing is set to hz.
11396
11397 aresample
11398 Resample the input audio to the specified parameters, using the
11399 libswresample library. If none are specified then the filter will
11400 automatically convert between its input and output.
11401
11402 This filter is also able to stretch/squeeze the audio data to make it
11403 match the timestamps or to inject silence / cut out audio to make it
11404 match the timestamps, do a combination of both or do neither.
11405
11406 The filter accepts the syntax [sample_rate:]resampler_options, where
11407 sample_rate expresses a sample rate and resampler_options is a list of
11408 key=value pairs, separated by ":". See the "Resampler Options" section
11409 in the ffmpeg-resampler(1) manual for the complete list of supported
11410 options.
11411
11412 Examples
11413
11414 • Resample the input audio to 44100Hz:
11415
11416 aresample=44100
11417
11418 • Stretch/squeeze samples to the given timestamps, with a maximum of
11419 1000 samples per second compensation:
11420
11421 aresample=async=1000
11422
11423 areverse
11424 Reverse an audio clip.
11425
11426 Warning: This filter requires memory to buffer the entire clip, so
11427 trimming is suggested.
11428
11429 Examples
11430
11431 • Take the first 5 seconds of a clip, and reverse it.
11432
11433 atrim=end=5,areverse
11434
11435 arnndn
11436 Reduce noise from speech using Recurrent Neural Networks.
11437
11438 This filter accepts the following options:
11439
11440 model, m
11441 Set train model file to load. This option is always required.
11442
11443 mix Set how much to mix filtered samples into final output. Allowed
11444 range is from -1 to 1. Default value is 1. Negative values are
11445 special, they set how much to keep filtered noise in the final
11446 filter output. Set this option to -1 to hear actual noise removed
11447 from input signal.
11448
11449 Commands
11450
11451 This filter supports the all above options as commands.
11452
11453 asdr
11454 Measure Audio Signal-to-Distortion Ratio.
11455
11456 This filter takes two audio streams for input, and outputs first audio
11457 stream. Results are in dB per channel at end of either input.
11458
11459 asetnsamples
11460 Set the number of samples per each output audio frame.
11461
11462 The last output packet may contain a different number of samples, as
11463 the filter will flush all the remaining samples when the input audio
11464 signals its end.
11465
11466 The filter accepts the following options:
11467
11468 nb_out_samples, n
11469 Set the number of frames per each output audio frame. The number is
11470 intended as the number of samples per each channel. Default value
11471 is 1024.
11472
11473 pad, p
11474 If set to 1, the filter will pad the last audio frame with zeroes,
11475 so that the last frame will contain the same number of samples as
11476 the previous ones. Default value is 1.
11477
11478 For example, to set the number of per-frame samples to 1234 and disable
11479 padding for the last frame, use:
11480
11481 asetnsamples=n=1234:p=0
11482
11483 asetrate
11484 Set the sample rate without altering the PCM data. This will result in
11485 a change of speed and pitch.
11486
11487 The filter accepts the following options:
11488
11489 sample_rate, r
11490 Set the output sample rate. Default is 44100 Hz.
11491
11492 ashowinfo
11493 Show a line containing various information for each input audio frame.
11494 The input audio is not modified.
11495
11496 The shown line contains a sequence of key/value pairs of the form
11497 key:value.
11498
11499 The following values are shown in the output:
11500
11501 n The (sequential) number of the input frame, starting from 0.
11502
11503 pts The presentation timestamp of the input frame, in time base units;
11504 the time base depends on the filter input pad, and is usually
11505 1/sample_rate.
11506
11507 pts_time
11508 The presentation timestamp of the input frame in seconds.
11509
11510 pos position of the frame in the input stream, -1 if this information
11511 in unavailable and/or meaningless (for example in case of synthetic
11512 audio)
11513
11514 fmt The sample format.
11515
11516 chlayout
11517 The channel layout.
11518
11519 rate
11520 The sample rate for the audio frame.
11521
11522 nb_samples
11523 The number of samples (per channel) in the frame.
11524
11525 checksum
11526 The Adler-32 checksum (printed in hexadecimal) of the audio data.
11527 For planar audio, the data is treated as if all the planes were
11528 concatenated.
11529
11530 plane_checksums
11531 A list of Adler-32 checksums for each data plane.
11532
11533 asoftclip
11534 Apply audio soft clipping.
11535
11536 Soft clipping is a type of distortion effect where the amplitude of a
11537 signal is saturated along a smooth curve, rather than the abrupt shape
11538 of hard-clipping.
11539
11540 This filter accepts the following options:
11541
11542 type
11543 Set type of soft-clipping.
11544
11545 It accepts the following values:
11546
11547 hard
11548 tanh
11549 atan
11550 cubic
11551 exp
11552 alg
11553 quintic
11554 sin
11555 erf
11556 threshold
11557 Set threshold from where to start clipping. Default value is 0dB or
11558 1.
11559
11560 output
11561 Set gain applied to output. Default value is 0dB or 1.
11562
11563 param
11564 Set additional parameter which controls sigmoid function.
11565
11566 oversample
11567 Set oversampling factor.
11568
11569 Commands
11570
11571 This filter supports the all above options as commands.
11572
11573 aspectralstats
11574 Display frequency domain statistical information about the audio
11575 channels. Statistics are calculated and stored as metadata for each
11576 audio channel and for each audio frame.
11577
11578 It accepts the following option:
11579
11580 win_size
11581 Set the window length in samples. Default value is 2048. Allowed
11582 range is from 32 to 65536.
11583
11584 win_func
11585 Set window function.
11586
11587 It accepts the following values:
11588
11589 rect
11590 bartlett
11591 hann, hanning
11592 hamming
11593 blackman
11594 welch
11595 flattop
11596 bharris
11597 bnuttall
11598 bhann
11599 sine
11600 nuttall
11601 lanczos
11602 gauss
11603 tukey
11604 dolph
11605 cauchy
11606 parzen
11607 poisson
11608 bohman
11609
11610 Default is "hann".
11611
11612 overlap
11613 Set window overlap. Allowed range is from 0 to 1. Default value is
11614 0.5.
11615
11616 A list of each metadata key follows:
11617
11618 mean
11619 variance
11620 centroid
11621 spread
11622 skewness
11623 kurtosis
11624 entropy
11625 flatness
11626 crest
11627 flux
11628 slope
11629 decrease
11630 rolloff
11631
11632 asr
11633 Automatic Speech Recognition
11634
11635 This filter uses PocketSphinx for speech recognition. To enable
11636 compilation of this filter, you need to configure FFmpeg with
11637 "--enable-pocketsphinx".
11638
11639 It accepts the following options:
11640
11641 rate
11642 Set sampling rate of input audio. Defaults is 16000. This need to
11643 match speech models, otherwise one will get poor results.
11644
11645 hmm Set dictionary containing acoustic model files.
11646
11647 dict
11648 Set pronunciation dictionary.
11649
11650 lm Set language model file.
11651
11652 lmctl
11653 Set language model set.
11654
11655 lmname
11656 Set which language model to use.
11657
11658 logfn
11659 Set output for log messages.
11660
11661 The filter exports recognized speech as the frame metadata
11662 "lavfi.asr.text".
11663
11664 astats
11665 Display time domain statistical information about the audio channels.
11666 Statistics are calculated and displayed for each audio channel and,
11667 where applicable, an overall figure is also given.
11668
11669 It accepts the following option:
11670
11671 length
11672 Short window length in seconds, used for peak and trough RMS
11673 measurement. Default is 0.05 (50 milliseconds). Allowed range is
11674 "[0 - 10]".
11675
11676 metadata
11677 Set metadata injection. All the metadata keys are prefixed with
11678 "lavfi.astats.X", where "X" is channel number starting from 1 or
11679 string "Overall". Default is disabled.
11680
11681 Available keys for each channel are: DC_offset Min_level Max_level
11682 Min_difference Max_difference Mean_difference RMS_difference
11683 Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count
11684 Noise_floor Noise_floor_count Entropy Bit_depth Dynamic_range
11685 Zero_crossings Zero_crossings_rate Number_of_NaNs Number_of_Infs
11686 Number_of_denormals
11687
11688 and for Overall: DC_offset Min_level Max_level Min_difference
11689 Max_difference Mean_difference RMS_difference Peak_level RMS_level
11690 RMS_peak RMS_trough Flat_factor Peak_count Noise_floor
11691 Noise_floor_count Entropy Bit_depth Number_of_samples
11692 Number_of_NaNs Number_of_Infs Number_of_denormals
11693
11694 For example full key look like this "lavfi.astats.1.DC_offset" or
11695 this "lavfi.astats.Overall.Peak_count".
11696
11697 For description what each key means read below.
11698
11699 reset
11700 Set the number of frames over which cumulative stats are calculated
11701 before being reset Default is disabled.
11702
11703 measure_perchannel
11704 Select the parameters which are measured per channel. The metadata
11705 keys can be used as flags, default is all which measures
11706 everything. none disables all per channel measurement.
11707
11708 measure_overall
11709 Select the parameters which are measured overall. The metadata keys
11710 can be used as flags, default is all which measures everything.
11711 none disables all overall measurement.
11712
11713 A description of each shown parameter follows:
11714
11715 DC offset
11716 Mean amplitude displacement from zero.
11717
11718 Min level
11719 Minimal sample level.
11720
11721 Max level
11722 Maximal sample level.
11723
11724 Min difference
11725 Minimal difference between two consecutive samples.
11726
11727 Max difference
11728 Maximal difference between two consecutive samples.
11729
11730 Mean difference
11731 Mean difference between two consecutive samples. The average of
11732 each difference between two consecutive samples.
11733
11734 RMS difference
11735 Root Mean Square difference between two consecutive samples.
11736
11737 Peak level dB
11738 RMS level dB
11739 Standard peak and RMS level measured in dBFS.
11740
11741 RMS peak dB
11742 RMS trough dB
11743 Peak and trough values for RMS level measured over a short window.
11744
11745 Crest factor
11746 Standard ratio of peak to RMS level (note: not in dB).
11747
11748 Flat factor
11749 Flatness (i.e. consecutive samples with the same value) of the
11750 signal at its peak levels (i.e. either Min level or Max level).
11751
11752 Peak count
11753 Number of occasions (not the number of samples) that the signal
11754 attained either Min level or Max level.
11755
11756 Noise floor dB
11757 Minimum local peak measured in dBFS over a short window.
11758
11759 Noise floor count
11760 Number of occasions (not the number of samples) that the signal
11761 attained Noise floor.
11762
11763 Entropy
11764 Entropy measured across whole audio. Entropy of value near 1.0 is
11765 typically measured for white noise.
11766
11767 Bit depth
11768 Overall bit depth of audio. Number of bits used for each sample.
11769
11770 Dynamic range
11771 Measured dynamic range of audio in dB.
11772
11773 Zero crossings
11774 Number of points where the waveform crosses the zero level axis.
11775
11776 Zero crossings rate
11777 Rate of Zero crossings and number of audio samples.
11778
11779 asubboost
11780 Boost subwoofer frequencies.
11781
11782 The filter accepts the following options:
11783
11784 dry Set dry gain, how much of original signal is kept. Allowed range is
11785 from 0 to 1. Default value is 1.0.
11786
11787 wet Set wet gain, how much of filtered signal is kept. Allowed range is
11788 from 0 to 1. Default value is 1.0.
11789
11790 boost
11791 Set max boost factor. Allowed range is from 1 to 12. Default value
11792 is 2.
11793
11794 decay
11795 Set delay line decay gain value. Allowed range is from 0 to 1.
11796 Default value is 0.0.
11797
11798 feedback
11799 Set delay line feedback gain value. Allowed range is from 0 to 1.
11800 Default value is 0.9.
11801
11802 cutoff
11803 Set cutoff frequency in Hertz. Allowed range is 50 to 900. Default
11804 value is 100.
11805
11806 slope
11807 Set slope amount for cutoff frequency. Allowed range is 0.0001 to
11808 1. Default value is 0.5.
11809
11810 delay
11811 Set delay. Allowed range is from 1 to 100. Default value is 20.
11812
11813 channels
11814 Set the channels to process. Default value is all available.
11815
11816 Commands
11817
11818 This filter supports the all above options as commands.
11819
11820 asubcut
11821 Cut subwoofer frequencies.
11822
11823 This filter allows to set custom, steeper roll off than highpass
11824 filter, and thus is able to more attenuate frequency content in stop-
11825 band.
11826
11827 The filter accepts the following options:
11828
11829 cutoff
11830 Set cutoff frequency in Hertz. Allowed range is 2 to 200. Default
11831 value is 20.
11832
11833 order
11834 Set filter order. Available values are from 3 to 20. Default value
11835 is 10.
11836
11837 level
11838 Set input gain level. Allowed range is from 0 to 1. Default value
11839 is 1.
11840
11841 Commands
11842
11843 This filter supports the all above options as commands.
11844
11845 asupercut
11846 Cut super frequencies.
11847
11848 The filter accepts the following options:
11849
11850 cutoff
11851 Set cutoff frequency in Hertz. Allowed range is 20000 to 192000.
11852 Default value is 20000.
11853
11854 order
11855 Set filter order. Available values are from 3 to 20. Default value
11856 is 10.
11857
11858 level
11859 Set input gain level. Allowed range is from 0 to 1. Default value
11860 is 1.
11861
11862 Commands
11863
11864 This filter supports the all above options as commands.
11865
11866 asuperpass
11867 Apply high order Butterworth band-pass filter.
11868
11869 The filter accepts the following options:
11870
11871 centerf
11872 Set center frequency in Hertz. Allowed range is 2 to 999999.
11873 Default value is 1000.
11874
11875 order
11876 Set filter order. Available values are from 4 to 20. Default value
11877 is 4.
11878
11879 qfactor
11880 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
11881 1.
11882
11883 level
11884 Set input gain level. Allowed range is from 0 to 2. Default value
11885 is 1.
11886
11887 Commands
11888
11889 This filter supports the all above options as commands.
11890
11891 asuperstop
11892 Apply high order Butterworth band-stop filter.
11893
11894 The filter accepts the following options:
11895
11896 centerf
11897 Set center frequency in Hertz. Allowed range is 2 to 999999.
11898 Default value is 1000.
11899
11900 order
11901 Set filter order. Available values are from 4 to 20. Default value
11902 is 4.
11903
11904 qfactor
11905 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
11906 1.
11907
11908 level
11909 Set input gain level. Allowed range is from 0 to 2. Default value
11910 is 1.
11911
11912 Commands
11913
11914 This filter supports the all above options as commands.
11915
11916 atempo
11917 Adjust audio tempo.
11918
11919 The filter accepts exactly one parameter, the audio tempo. If not
11920 specified then the filter will assume nominal 1.0 tempo. Tempo must be
11921 in the [0.5, 100.0] range.
11922
11923 Note that tempo greater than 2 will skip some samples rather than blend
11924 them in. If for any reason this is a concern it is always possible to
11925 daisy-chain several instances of atempo to achieve the desired product
11926 tempo.
11927
11928 Examples
11929
11930 • Slow down audio to 80% tempo:
11931
11932 atempo=0.8
11933
11934 • To speed up audio to 300% tempo:
11935
11936 atempo=3
11937
11938 • To speed up audio to 300% tempo by daisy-chaining two atempo
11939 instances:
11940
11941 atempo=sqrt(3),atempo=sqrt(3)
11942
11943 Commands
11944
11945 This filter supports the following commands:
11946
11947 tempo
11948 Change filter tempo scale factor. Syntax for the command is :
11949 "tempo"
11950
11951 atilt
11952 Apply spectral tilt filter to audio stream.
11953
11954 This filter apply any spectral roll-off slope over any specified
11955 frequency band.
11956
11957 The filter accepts the following options:
11958
11959 freq
11960 Set central frequency of tilt in Hz. Default is 10000 Hz.
11961
11962 slope
11963 Set slope direction of tilt. Default is 0. Allowed range is from -1
11964 to 1.
11965
11966 width
11967 Set width of tilt. Default is 1000. Allowed range is from 100 to
11968 10000.
11969
11970 order
11971 Set order of tilt filter.
11972
11973 level
11974 Set input volume level. Allowed range is from 0 to 4. Defalt is 1.
11975
11976 Commands
11977
11978 This filter supports the all above options as commands.
11979
11980 atrim
11981 Trim the input so that the output contains one continuous subpart of
11982 the input.
11983
11984 It accepts the following parameters:
11985
11986 start
11987 Timestamp (in seconds) of the start of the section to keep. I.e.
11988 the audio sample with the timestamp start will be the first sample
11989 in the output.
11990
11991 end Specify time of the first audio sample that will be dropped, i.e.
11992 the audio sample immediately preceding the one with the timestamp
11993 end will be the last sample in the output.
11994
11995 start_pts
11996 Same as start, except this option sets the start timestamp in
11997 samples instead of seconds.
11998
11999 end_pts
12000 Same as end, except this option sets the end timestamp in samples
12001 instead of seconds.
12002
12003 duration
12004 The maximum duration of the output in seconds.
12005
12006 start_sample
12007 The number of the first sample that should be output.
12008
12009 end_sample
12010 The number of the first sample that should be dropped.
12011
12012 start, end, and duration are expressed as time duration specifications;
12013 see the Time duration section in the ffmpeg-utils(1) manual.
12014
12015 Note that the first two sets of the start/end options and the duration
12016 option look at the frame timestamp, while the _sample options simply
12017 count the samples that pass through the filter. So start/end_pts and
12018 start/end_sample will give different results when the timestamps are
12019 wrong, inexact or do not start at zero. Also note that this filter does
12020 not modify the timestamps. If you wish to have the output timestamps
12021 start at zero, insert the asetpts filter after the atrim filter.
12022
12023 If multiple start or end options are set, this filter tries to be
12024 greedy and keep all samples that match at least one of the specified
12025 constraints. To keep only the part that matches all the constraints at
12026 once, chain multiple atrim filters.
12027
12028 The defaults are such that all the input is kept. So it is possible to
12029 set e.g. just the end values to keep everything before the specified
12030 time.
12031
12032 Examples:
12033
12034 • Drop everything except the second minute of input:
12035
12036 ffmpeg -i INPUT -af atrim=60:120
12037
12038 • Keep only the first 1000 samples:
12039
12040 ffmpeg -i INPUT -af atrim=end_sample=1000
12041
12042 axcorrelate
12043 Calculate normalized windowed cross-correlation between two input audio
12044 streams.
12045
12046 Resulted samples are always between -1 and 1 inclusive. If result is 1
12047 it means two input samples are highly correlated in that selected
12048 segment. Result 0 means they are not correlated at all. If result is
12049 -1 it means two input samples are out of phase, which means they cancel
12050 each other.
12051
12052 The filter accepts the following options:
12053
12054 size
12055 Set size of segment over which cross-correlation is calculated.
12056 Default is 256. Allowed range is from 2 to 131072.
12057
12058 algo
12059 Set algorithm for cross-correlation. Can be "slow" or "fast".
12060 Default is "slow". Fast algorithm assumes mean values over any
12061 given segment are always zero and thus need much less calculations
12062 to make. This is generally not true, but is valid for typical
12063 audio streams.
12064
12065 Examples
12066
12067 • Calculate correlation between channels in stereo audio stream:
12068
12069 ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
12070
12071 bandpass
12072 Apply a two-pole Butterworth band-pass filter with central frequency
12073 frequency, and (3dB-point) band-width width. The csg option selects a
12074 constant skirt gain (peak gain = Q) instead of the default: constant
12075 0dB peak gain. The filter roll off at 6dB per octave (20dB per
12076 decade).
12077
12078 The filter accepts the following options:
12079
12080 frequency, f
12081 Set the filter's central frequency. Default is 3000.
12082
12083 csg Constant skirt gain if set to 1. Defaults to 0.
12084
12085 width_type, t
12086 Set method to specify band-width of filter.
12087
12088 h Hz
12089
12090 q Q-Factor
12091
12092 o octave
12093
12094 s slope
12095
12096 k kHz
12097
12098 width, w
12099 Specify the band-width of a filter in width_type units.
12100
12101 mix, m
12102 How much to use filtered signal in output. Default is 1. Range is
12103 between 0 and 1.
12104
12105 channels, c
12106 Specify which channels to filter, by default all available are
12107 filtered.
12108
12109 normalize, n
12110 Normalize biquad coefficients, by default is disabled. Enabling it
12111 will normalize magnitude response at DC to 0dB.
12112
12113 transform, a
12114 Set transform type of IIR filter.
12115
12116 di
12117 dii
12118 tdi
12119 tdii
12120 latt
12121 svf
12122 zdf
12123 precision, r
12124 Set precison of filtering.
12125
12126 auto
12127 Pick automatic sample format depending on surround filters.
12128
12129 s16 Always use signed 16-bit.
12130
12131 s32 Always use signed 32-bit.
12132
12133 f32 Always use float 32-bit.
12134
12135 f64 Always use float 64-bit.
12136
12137 block_size, b
12138 Set block size used for reverse IIR processing. If this value is
12139 set to high enough value (higher than impulse response length
12140 truncated when reaches near zero values) filtering will become
12141 linear phase otherwise if not big enough it will just produce nasty
12142 artifacts.
12143
12144 Note that filter delay will be exactly this many samples when set
12145 to non-zero value.
12146
12147 Commands
12148
12149 This filter supports the following commands:
12150
12151 frequency, f
12152 Change bandpass frequency. Syntax for the command is : "frequency"
12153
12154 width_type, t
12155 Change bandpass width_type. Syntax for the command is :
12156 "width_type"
12157
12158 width, w
12159 Change bandpass width. Syntax for the command is : "width"
12160
12161 mix, m
12162 Change bandpass mix. Syntax for the command is : "mix"
12163
12164 bandreject
12165 Apply a two-pole Butterworth band-reject filter with central frequency
12166 frequency, and (3dB-point) band-width width. The filter roll off at
12167 6dB per octave (20dB per decade).
12168
12169 The filter accepts the following options:
12170
12171 frequency, f
12172 Set the filter's central frequency. Default is 3000.
12173
12174 width_type, t
12175 Set method to specify band-width of filter.
12176
12177 h Hz
12178
12179 q Q-Factor
12180
12181 o octave
12182
12183 s slope
12184
12185 k kHz
12186
12187 width, w
12188 Specify the band-width of a filter in width_type units.
12189
12190 mix, m
12191 How much to use filtered signal in output. Default is 1. Range is
12192 between 0 and 1.
12193
12194 channels, c
12195 Specify which channels to filter, by default all available are
12196 filtered.
12197
12198 normalize, n
12199 Normalize biquad coefficients, by default is disabled. Enabling it
12200 will normalize magnitude response at DC to 0dB.
12201
12202 transform, a
12203 Set transform type of IIR filter.
12204
12205 di
12206 dii
12207 tdi
12208 tdii
12209 latt
12210 svf
12211 zdf
12212 precision, r
12213 Set precison of filtering.
12214
12215 auto
12216 Pick automatic sample format depending on surround filters.
12217
12218 s16 Always use signed 16-bit.
12219
12220 s32 Always use signed 32-bit.
12221
12222 f32 Always use float 32-bit.
12223
12224 f64 Always use float 64-bit.
12225
12226 block_size, b
12227 Set block size used for reverse IIR processing. If this value is
12228 set to high enough value (higher than impulse response length
12229 truncated when reaches near zero values) filtering will become
12230 linear phase otherwise if not big enough it will just produce nasty
12231 artifacts.
12232
12233 Note that filter delay will be exactly this many samples when set
12234 to non-zero value.
12235
12236 Commands
12237
12238 This filter supports the following commands:
12239
12240 frequency, f
12241 Change bandreject frequency. Syntax for the command is :
12242 "frequency"
12243
12244 width_type, t
12245 Change bandreject width_type. Syntax for the command is :
12246 "width_type"
12247
12248 width, w
12249 Change bandreject width. Syntax for the command is : "width"
12250
12251 mix, m
12252 Change bandreject mix. Syntax for the command is : "mix"
12253
12254 bass, lowshelf
12255 Boost or cut the bass (lower) frequencies of the audio using a two-pole
12256 shelving filter with a response similar to that of a standard hi-fi's
12257 tone-controls. This is also known as shelving equalisation (EQ).
12258
12259 The filter accepts the following options:
12260
12261 gain, g
12262 Give the gain at 0 Hz. Its useful range is about -20 (for a large
12263 cut) to +20 (for a large boost). Beware of clipping when using a
12264 positive gain.
12265
12266 frequency, f
12267 Set the filter's central frequency and so can be used to extend or
12268 reduce the frequency range to be boosted or cut. The default value
12269 is 100 Hz.
12270
12271 width_type, t
12272 Set method to specify band-width of filter.
12273
12274 h Hz
12275
12276 q Q-Factor
12277
12278 o octave
12279
12280 s slope
12281
12282 k kHz
12283
12284 width, w
12285 Determine how steep is the filter's shelf transition.
12286
12287 poles, p
12288 Set number of poles. Default is 2.
12289
12290 mix, m
12291 How much to use filtered signal in output. Default is 1. Range is
12292 between 0 and 1.
12293
12294 channels, c
12295 Specify which channels to filter, by default all available are
12296 filtered.
12297
12298 normalize, n
12299 Normalize biquad coefficients, by default is disabled. Enabling it
12300 will normalize magnitude response at DC to 0dB.
12301
12302 transform, a
12303 Set transform type of IIR filter.
12304
12305 di
12306 dii
12307 tdi
12308 tdii
12309 latt
12310 svf
12311 zdf
12312 precision, r
12313 Set precison of filtering.
12314
12315 auto
12316 Pick automatic sample format depending on surround filters.
12317
12318 s16 Always use signed 16-bit.
12319
12320 s32 Always use signed 32-bit.
12321
12322 f32 Always use float 32-bit.
12323
12324 f64 Always use float 64-bit.
12325
12326 block_size, b
12327 Set block size used for reverse IIR processing. If this value is
12328 set to high enough value (higher than impulse response length
12329 truncated when reaches near zero values) filtering will become
12330 linear phase otherwise if not big enough it will just produce nasty
12331 artifacts.
12332
12333 Note that filter delay will be exactly this many samples when set
12334 to non-zero value.
12335
12336 Commands
12337
12338 This filter supports the following commands:
12339
12340 frequency, f
12341 Change bass frequency. Syntax for the command is : "frequency"
12342
12343 width_type, t
12344 Change bass width_type. Syntax for the command is : "width_type"
12345
12346 width, w
12347 Change bass width. Syntax for the command is : "width"
12348
12349 gain, g
12350 Change bass gain. Syntax for the command is : "gain"
12351
12352 mix, m
12353 Change bass mix. Syntax for the command is : "mix"
12354
12355 biquad
12356 Apply a biquad IIR filter with the given coefficients. Where b0, b1,
12357 b2 and a0, a1, a2 are the numerator and denominator coefficients
12358 respectively. and channels, c specify which channels to filter, by
12359 default all available are filtered.
12360
12361 Commands
12362
12363 This filter supports the following commands:
12364
12365 a0
12366 a1
12367 a2
12368 b0
12369 b1
12370 b2 Change biquad parameter. Syntax for the command is : "value"
12371
12372 mix, m
12373 How much to use filtered signal in output. Default is 1. Range is
12374 between 0 and 1.
12375
12376 channels, c
12377 Specify which channels to filter, by default all available are
12378 filtered.
12379
12380 normalize, n
12381 Normalize biquad coefficients, by default is disabled. Enabling it
12382 will normalize magnitude response at DC to 0dB.
12383
12384 transform, a
12385 Set transform type of IIR filter.
12386
12387 di
12388 dii
12389 tdi
12390 tdii
12391 latt
12392 svf
12393 zdf
12394 precision, r
12395 Set precison of filtering.
12396
12397 auto
12398 Pick automatic sample format depending on surround filters.
12399
12400 s16 Always use signed 16-bit.
12401
12402 s32 Always use signed 32-bit.
12403
12404 f32 Always use float 32-bit.
12405
12406 f64 Always use float 64-bit.
12407
12408 block_size, b
12409 Set block size used for reverse IIR processing. If this value is
12410 set to high enough value (higher than impulse response length
12411 truncated when reaches near zero values) filtering will become
12412 linear phase otherwise if not big enough it will just produce nasty
12413 artifacts.
12414
12415 Note that filter delay will be exactly this many samples when set
12416 to non-zero value.
12417
12418 bs2b
12419 Bauer stereo to binaural transformation, which improves headphone
12420 listening of stereo audio records.
12421
12422 To enable compilation of this filter you need to configure FFmpeg with
12423 "--enable-libbs2b".
12424
12425 It accepts the following parameters:
12426
12427 profile
12428 Pre-defined crossfeed level.
12429
12430 default
12431 Default level (fcut=700, feed=50).
12432
12433 cmoy
12434 Chu Moy circuit (fcut=700, feed=60).
12435
12436 jmeier
12437 Jan Meier circuit (fcut=650, feed=95).
12438
12439 fcut
12440 Cut frequency (in Hz).
12441
12442 feed
12443 Feed level (in Hz).
12444
12445 channelmap
12446 Remap input channels to new locations.
12447
12448 It accepts the following parameters:
12449
12450 map Map channels from input to output. The argument is a '|'-separated
12451 list of mappings, each in the "in_channel-out_channel" or
12452 in_channel form. in_channel can be either the name of the input
12453 channel (e.g. FL for front left) or its index in the input channel
12454 layout. out_channel is the name of the output channel or its index
12455 in the output channel layout. If out_channel is not given then it
12456 is implicitly an index, starting with zero and increasing by one
12457 for each mapping.
12458
12459 channel_layout
12460 The channel layout of the output stream.
12461
12462 If no mapping is present, the filter will implicitly map input channels
12463 to output channels, preserving indices.
12464
12465 Examples
12466
12467 • For example, assuming a 5.1+downmix input MOV file,
12468
12469 ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
12470
12471 will create an output WAV file tagged as stereo from the downmix
12472 channels of the input.
12473
12474 • To fix a 5.1 WAV improperly encoded in AAC's native channel order
12475
12476 ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
12477
12478 channelsplit
12479 Split each channel from an input audio stream into a separate output
12480 stream.
12481
12482 It accepts the following parameters:
12483
12484 channel_layout
12485 The channel layout of the input stream. The default is "stereo".
12486
12487 channels
12488 A channel layout describing the channels to be extracted as
12489 separate output streams or "all" to extract each input channel as a
12490 separate stream. The default is "all".
12491
12492 Choosing channels not present in channel layout in the input will
12493 result in an error.
12494
12495 Examples
12496
12497 • For example, assuming a stereo input MP3 file,
12498
12499 ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
12500
12501 will create an output Matroska file with two audio streams, one
12502 containing only the left channel and the other the right channel.
12503
12504 • Split a 5.1 WAV file into per-channel files:
12505
12506 ffmpeg -i in.wav -filter_complex
12507 'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
12508 -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
12509 front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
12510 side_right.wav
12511
12512 • Extract only LFE from a 5.1 WAV file:
12513
12514 ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
12515 -map '[LFE]' lfe.wav
12516
12517 chorus
12518 Add a chorus effect to the audio.
12519
12520 Can make a single vocal sound like a chorus, but can also be applied to
12521 instrumentation.
12522
12523 Chorus resembles an echo effect with a short delay, but whereas with
12524 echo the delay is constant, with chorus, it is varied using using
12525 sinusoidal or triangular modulation. The modulation depth defines the
12526 range the modulated delay is played before or after the delay. Hence
12527 the delayed sound will sound slower or faster, that is the delayed
12528 sound tuned around the original one, like in a chorus where some vocals
12529 are slightly off key.
12530
12531 It accepts the following parameters:
12532
12533 in_gain
12534 Set input gain. Default is 0.4.
12535
12536 out_gain
12537 Set output gain. Default is 0.4.
12538
12539 delays
12540 Set delays. A typical delay is around 40ms to 60ms.
12541
12542 decays
12543 Set decays.
12544
12545 speeds
12546 Set speeds.
12547
12548 depths
12549 Set depths.
12550
12551 Examples
12552
12553 • A single delay:
12554
12555 chorus=0.7:0.9:55:0.4:0.25:2
12556
12557 • Two delays:
12558
12559 chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
12560
12561 • Fuller sounding chorus with three delays:
12562
12563 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
12564
12565 compand
12566 Compress or expand the audio's dynamic range.
12567
12568 It accepts the following parameters:
12569
12570 attacks
12571 decays
12572 A list of times in seconds for each channel over which the
12573 instantaneous level of the input signal is averaged to determine
12574 its volume. attacks refers to increase of volume and decays refers
12575 to decrease of volume. For most situations, the attack time
12576 (response to the audio getting louder) should be shorter than the
12577 decay time, because the human ear is more sensitive to sudden loud
12578 audio than sudden soft audio. A typical value for attack is 0.3
12579 seconds and a typical value for decay is 0.8 seconds. If specified
12580 number of attacks & decays is lower than number of channels, the
12581 last set attack/decay will be used for all remaining channels.
12582
12583 points
12584 A list of points for the transfer function, specified in dB
12585 relative to the maximum possible signal amplitude. Each key points
12586 list must be defined using the following syntax:
12587 "x0/y0|x1/y1|x2/y2|...." or "x0/y0 x1/y1 x2/y2 ...."
12588
12589 The input values must be in strictly increasing order but the
12590 transfer function does not have to be monotonically rising. The
12591 point "0/0" is assumed but may be overridden (by "0/out-dBn").
12592 Typical values for the transfer function are "-70/-70|-60/-20|1/0".
12593
12594 soft-knee
12595 Set the curve radius in dB for all joints. It defaults to 0.01.
12596
12597 gain
12598 Set the additional gain in dB to be applied at all points on the
12599 transfer function. This allows for easy adjustment of the overall
12600 gain. It defaults to 0.
12601
12602 volume
12603 Set an initial volume, in dB, to be assumed for each channel when
12604 filtering starts. This permits the user to supply a nominal level
12605 initially, so that, for example, a very large gain is not applied
12606 to initial signal levels before the companding has begun to
12607 operate. A typical value for audio which is initially quiet is -90
12608 dB. It defaults to 0.
12609
12610 delay
12611 Set a delay, in seconds. The input audio is analyzed immediately,
12612 but audio is delayed before being fed to the volume adjuster.
12613 Specifying a delay approximately equal to the attack/decay times
12614 allows the filter to effectively operate in predictive rather than
12615 reactive mode. It defaults to 0.
12616
12617 Examples
12618
12619 • Make music with both quiet and loud passages suitable for listening
12620 to in a noisy environment:
12621
12622 compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
12623
12624 Another example for audio with whisper and explosion parts:
12625
12626 compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
12627
12628 • A noise gate for when the noise is at a lower level than the
12629 signal:
12630
12631 compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
12632
12633 • Here is another noise gate, this time for when the noise is at a
12634 higher level than the signal (making it, in some ways, similar to
12635 squelch):
12636
12637 compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
12638
12639 • 2:1 compression starting at -6dB:
12640
12641 compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
12642
12643 • 2:1 compression starting at -9dB:
12644
12645 compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
12646
12647 • 2:1 compression starting at -12dB:
12648
12649 compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
12650
12651 • 2:1 compression starting at -18dB:
12652
12653 compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
12654
12655 • 3:1 compression starting at -15dB:
12656
12657 compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
12658
12659 • Compressor/Gate:
12660
12661 compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
12662
12663 • Expander:
12664
12665 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
12666
12667 • Hard limiter at -6dB:
12668
12669 compand=attacks=0:points=-80/-80|-6/-6|20/-6
12670
12671 • Hard limiter at -12dB:
12672
12673 compand=attacks=0:points=-80/-80|-12/-12|20/-12
12674
12675 • Hard noise gate at -35 dB:
12676
12677 compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
12678
12679 • Soft limiter:
12680
12681 compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
12682
12683 compensationdelay
12684 Compensation Delay Line is a metric based delay to compensate differing
12685 positions of microphones or speakers.
12686
12687 For example, you have recorded guitar with two microphones placed in
12688 different locations. Because the front of sound wave has fixed speed in
12689 normal conditions, the phasing of microphones can vary and depends on
12690 their location and interposition. The best sound mix can be achieved
12691 when these microphones are in phase (synchronized). Note that a
12692 distance of ~30 cm between microphones makes one microphone capture the
12693 signal in antiphase to the other microphone. That makes the final mix
12694 sound moody. This filter helps to solve phasing problems by adding
12695 different delays to each microphone track and make them synchronized.
12696
12697 The best result can be reached when you take one track as base and
12698 synchronize other tracks one by one with it. Remember that
12699 synchronization/delay tolerance depends on sample rate, too. Higher
12700 sample rates will give more tolerance.
12701
12702 The filter accepts the following parameters:
12703
12704 mm Set millimeters distance. This is compensation distance for fine
12705 tuning. Default is 0.
12706
12707 cm Set cm distance. This is compensation distance for tightening
12708 distance setup. Default is 0.
12709
12710 m Set meters distance. This is compensation distance for hard
12711 distance setup. Default is 0.
12712
12713 dry Set dry amount. Amount of unprocessed (dry) signal. Default is 0.
12714
12715 wet Set wet amount. Amount of processed (wet) signal. Default is 1.
12716
12717 temp
12718 Set temperature in degrees Celsius. This is the temperature of the
12719 environment. Default is 20.
12720
12721 Commands
12722
12723 This filter supports the all above options as commands.
12724
12725 crossfeed
12726 Apply headphone crossfeed filter.
12727
12728 Crossfeed is the process of blending the left and right channels of
12729 stereo audio recording. It is mainly used to reduce extreme stereo
12730 separation of low frequencies.
12731
12732 The intent is to produce more speaker like sound to the listener.
12733
12734 The filter accepts the following options:
12735
12736 strength
12737 Set strength of crossfeed. Default is 0.2. Allowed range is from 0
12738 to 1. This sets gain of low shelf filter for side part of stereo
12739 image. Default is -6dB. Max allowed is -30db when strength is set
12740 to 1.
12741
12742 range
12743 Set soundstage wideness. Default is 0.5. Allowed range is from 0 to
12744 1. This sets cut off frequency of low shelf filter. Default is cut
12745 off near 1550 Hz. With range set to 1 cut off frequency is set to
12746 2100 Hz.
12747
12748 slope
12749 Set curve slope of low shelf filter. Default is 0.5. Allowed range
12750 is from 0.01 to 1.
12751
12752 level_in
12753 Set input gain. Default is 0.9.
12754
12755 level_out
12756 Set output gain. Default is 1.
12757
12758 block_size
12759 Set block size used for reverse IIR processing. If this value is
12760 set to high enough value (higher than impulse response length
12761 truncated when reaches near zero values) filtering will become
12762 linear phase otherwise if not big enough it will just produce nasty
12763 artifacts.
12764
12765 Note that filter delay will be exactly this many samples when set
12766 to non-zero value.
12767
12768 Commands
12769
12770 This filter supports the all above options as commands.
12771
12772 crystalizer
12773 Simple algorithm for audio noise sharpening.
12774
12775 This filter linearly increases differences betweeen each audio sample.
12776
12777 The filter accepts the following options:
12778
12779 i Sets the intensity of effect (default: 2.0). Must be in range
12780 between -10.0 to 0 (unchanged sound) to 10.0 (maximum effect). To
12781 inverse filtering use negative value.
12782
12783 c Enable clipping. By default is enabled.
12784
12785 Commands
12786
12787 This filter supports the all above options as commands.
12788
12789 dcshift
12790 Apply a DC shift to the audio.
12791
12792 This can be useful to remove a DC offset (caused perhaps by a hardware
12793 problem in the recording chain) from the audio. The effect of a DC
12794 offset is reduced headroom and hence volume. The astats filter can be
12795 used to determine if a signal has a DC offset.
12796
12797 shift
12798 Set the DC shift, allowed range is [-1, 1]. It indicates the amount
12799 to shift the audio.
12800
12801 limitergain
12802 Optional. It should have a value much less than 1 (e.g. 0.05 or
12803 0.02) and is used to prevent clipping.
12804
12805 deesser
12806 Apply de-essing to the audio samples.
12807
12808 i Set intensity for triggering de-essing. Allowed range is from 0 to
12809 1. Default is 0.
12810
12811 m Set amount of ducking on treble part of sound. Allowed range is
12812 from 0 to 1. Default is 0.5.
12813
12814 f How much of original frequency content to keep when de-essing.
12815 Allowed range is from 0 to 1. Default is 0.5.
12816
12817 s Set the output mode.
12818
12819 It accepts the following values:
12820
12821 i Pass input unchanged.
12822
12823 o Pass ess filtered out.
12824
12825 e Pass only ess.
12826
12827 Default value is o.
12828
12829 dialoguenhance
12830 Enhance dialogue in stereo audio.
12831
12832 This filter accepts stereo input and produce surround (3.0) channels
12833 output. The newly produced front center channel have enhanced speech
12834 dialogue originally available in both stereo channels. This filter
12835 outputs front left and front right channels same as available in stereo
12836 input.
12837
12838 The filter accepts the following options:
12839
12840 original
12841 Set the original center factor to keep in front center channel
12842 output. Allowed range is from 0 to 1. Default value is 1.
12843
12844 enhance
12845 Set the dialogue enhance factor to put in front center channel
12846 output. Allowed range is from 0 to 3. Default value is 1.
12847
12848 voice
12849 Set the voice detection factor. Allowed range is from 2 to 32.
12850 Default value is 2.
12851
12852 Commands
12853
12854 This filter supports the all above options as commands.
12855
12856 drmeter
12857 Measure audio dynamic range.
12858
12859 DR values of 14 and higher is found in very dynamic material. DR of 8
12860 to 13 is found in transition material. And anything less that 8 have
12861 very poor dynamics and is very compressed.
12862
12863 The filter accepts the following options:
12864
12865 length
12866 Set window length in seconds used to split audio into segments of
12867 equal length. Default is 3 seconds.
12868
12869 dynaudnorm
12870 Dynamic Audio Normalizer.
12871
12872 This filter applies a certain amount of gain to the input audio in
12873 order to bring its peak magnitude to a target level (e.g. 0 dBFS).
12874 However, in contrast to more "simple" normalization algorithms, the
12875 Dynamic Audio Normalizer *dynamically* re-adjusts the gain factor to
12876 the input audio. This allows for applying extra gain to the "quiet"
12877 sections of the audio while avoiding distortions or clipping the "loud"
12878 sections. In other words: The Dynamic Audio Normalizer will "even out"
12879 the volume of quiet and loud sections, in the sense that the volume of
12880 each section is brought to the same target level. Note, however, that
12881 the Dynamic Audio Normalizer achieves this goal *without* applying
12882 "dynamic range compressing". It will retain 100% of the dynamic range
12883 *within* each section of the audio file.
12884
12885 framelen, f
12886 Set the frame length in milliseconds. In range from 10 to 8000
12887 milliseconds. Default is 500 milliseconds. The Dynamic Audio
12888 Normalizer processes the input audio in small chunks, referred to
12889 as frames. This is required, because a peak magnitude has no
12890 meaning for just a single sample value. Instead, we need to
12891 determine the peak magnitude for a contiguous sequence of sample
12892 values. While a "standard" normalizer would simply use the peak
12893 magnitude of the complete file, the Dynamic Audio Normalizer
12894 determines the peak magnitude individually for each frame. The
12895 length of a frame is specified in milliseconds. By default, the
12896 Dynamic Audio Normalizer uses a frame length of 500 milliseconds,
12897 which has been found to give good results with most files. Note
12898 that the exact frame length, in number of samples, will be
12899 determined automatically, based on the sampling rate of the
12900 individual input audio file.
12901
12902 gausssize, g
12903 Set the Gaussian filter window size. In range from 3 to 301, must
12904 be odd number. Default is 31. Probably the most important
12905 parameter of the Dynamic Audio Normalizer is the "window size" of
12906 the Gaussian smoothing filter. The filter's window size is
12907 specified in frames, centered around the current frame. For the
12908 sake of simplicity, this must be an odd number. Consequently, the
12909 default value of 31 takes into account the current frame, as well
12910 as the 15 preceding frames and the 15 subsequent frames. Using a
12911 larger window results in a stronger smoothing effect and thus in
12912 less gain variation, i.e. slower gain adaptation. Conversely, using
12913 a smaller window results in a weaker smoothing effect and thus in
12914 more gain variation, i.e. faster gain adaptation. In other words,
12915 the more you increase this value, the more the Dynamic Audio
12916 Normalizer will behave like a "traditional" normalization filter.
12917 On the contrary, the more you decrease this value, the more the
12918 Dynamic Audio Normalizer will behave like a dynamic range
12919 compressor.
12920
12921 peak, p
12922 Set the target peak value. This specifies the highest permissible
12923 magnitude level for the normalized audio input. This filter will
12924 try to approach the target peak magnitude as closely as possible,
12925 but at the same time it also makes sure that the normalized signal
12926 will never exceed the peak magnitude. A frame's maximum local gain
12927 factor is imposed directly by the target peak magnitude. The
12928 default value is 0.95 and thus leaves a headroom of 5%*. It is not
12929 recommended to go above this value.
12930
12931 maxgain, m
12932 Set the maximum gain factor. In range from 1.0 to 100.0. Default is
12933 10.0. The Dynamic Audio Normalizer determines the maximum possible
12934 (local) gain factor for each input frame, i.e. the maximum gain
12935 factor that does not result in clipping or distortion. The maximum
12936 gain factor is determined by the frame's highest magnitude sample.
12937 However, the Dynamic Audio Normalizer additionally bounds the
12938 frame's maximum gain factor by a predetermined (global) maximum
12939 gain factor. This is done in order to avoid excessive gain factors
12940 in "silent" or almost silent frames. By default, the maximum gain
12941 factor is 10.0, For most inputs the default value should be
12942 sufficient and it usually is not recommended to increase this
12943 value. Though, for input with an extremely low overall volume
12944 level, it may be necessary to allow even higher gain factors. Note,
12945 however, that the Dynamic Audio Normalizer does not simply apply a
12946 "hard" threshold (i.e. cut off values above the threshold).
12947 Instead, a "sigmoid" threshold function will be applied. This way,
12948 the gain factors will smoothly approach the threshold value, but
12949 never exceed that value.
12950
12951 targetrms, r
12952 Set the target RMS. In range from 0.0 to 1.0. Default is 0.0 -
12953 disabled. By default, the Dynamic Audio Normalizer performs "peak"
12954 normalization. This means that the maximum local gain factor for
12955 each frame is defined (only) by the frame's highest magnitude
12956 sample. This way, the samples can be amplified as much as possible
12957 without exceeding the maximum signal level, i.e. without clipping.
12958 Optionally, however, the Dynamic Audio Normalizer can also take
12959 into account the frame's root mean square, abbreviated RMS. In
12960 electrical engineering, the RMS is commonly used to determine the
12961 power of a time-varying signal. It is therefore considered that the
12962 RMS is a better approximation of the "perceived loudness" than just
12963 looking at the signal's peak magnitude. Consequently, by adjusting
12964 all frames to a constant RMS value, a uniform "perceived loudness"
12965 can be established. If a target RMS value has been specified, a
12966 frame's local gain factor is defined as the factor that would
12967 result in exactly that RMS value. Note, however, that the maximum
12968 local gain factor is still restricted by the frame's highest
12969 magnitude sample, in order to prevent clipping.
12970
12971 coupling, n
12972 Enable channels coupling. By default is enabled. By default, the
12973 Dynamic Audio Normalizer will amplify all channels by the same
12974 amount. This means the same gain factor will be applied to all
12975 channels, i.e. the maximum possible gain factor is determined by
12976 the "loudest" channel. However, in some recordings, it may happen
12977 that the volume of the different channels is uneven, e.g. one
12978 channel may be "quieter" than the other one(s). In this case, this
12979 option can be used to disable the channel coupling. This way, the
12980 gain factor will be determined independently for each channel,
12981 depending only on the individual channel's highest magnitude
12982 sample. This allows for harmonizing the volume of the different
12983 channels.
12984
12985 correctdc, c
12986 Enable DC bias correction. By default is disabled. An audio signal
12987 (in the time domain) is a sequence of sample values. In the
12988 Dynamic Audio Normalizer these sample values are represented in the
12989 -1.0 to 1.0 range, regardless of the original input format.
12990 Normally, the audio signal, or "waveform", should be centered
12991 around the zero point. That means if we calculate the mean value
12992 of all samples in a file, or in a single frame, then the result
12993 should be 0.0 or at least very close to that value. If, however,
12994 there is a significant deviation of the mean value from 0.0, in
12995 either positive or negative direction, this is referred to as a DC
12996 bias or DC offset. Since a DC bias is clearly undesirable, the
12997 Dynamic Audio Normalizer provides optional DC bias correction.
12998 With DC bias correction enabled, the Dynamic Audio Normalizer will
12999 determine the mean value, or "DC correction" offset, of each input
13000 frame and subtract that value from all of the frame's sample values
13001 which ensures those samples are centered around 0.0 again. Also, in
13002 order to avoid "gaps" at the frame boundaries, the DC correction
13003 offset values will be interpolated smoothly between neighbouring
13004 frames.
13005
13006 altboundary, b
13007 Enable alternative boundary mode. By default is disabled. The
13008 Dynamic Audio Normalizer takes into account a certain neighbourhood
13009 around each frame. This includes the preceding frames as well as
13010 the subsequent frames. However, for the "boundary" frames, located
13011 at the very beginning and at the very end of the audio file, not
13012 all neighbouring frames are available. In particular, for the first
13013 few frames in the audio file, the preceding frames are not known.
13014 And, similarly, for the last few frames in the audio file, the
13015 subsequent frames are not known. Thus, the question arises which
13016 gain factors should be assumed for the missing frames in the
13017 "boundary" region. The Dynamic Audio Normalizer implements two
13018 modes to deal with this situation. The default boundary mode
13019 assumes a gain factor of exactly 1.0 for the missing frames,
13020 resulting in a smooth "fade in" and "fade out" at the beginning and
13021 at the end of the input, respectively.
13022
13023 compress, s
13024 Set the compress factor. In range from 0.0 to 30.0. Default is 0.0.
13025 By default, the Dynamic Audio Normalizer does not apply
13026 "traditional" compression. This means that signal peaks will not be
13027 pruned and thus the full dynamic range will be retained within each
13028 local neighbourhood. However, in some cases it may be desirable to
13029 combine the Dynamic Audio Normalizer's normalization algorithm with
13030 a more "traditional" compression. For this purpose, the Dynamic
13031 Audio Normalizer provides an optional compression (thresholding)
13032 function. If (and only if) the compression feature is enabled, all
13033 input frames will be processed by a soft knee thresholding function
13034 prior to the actual normalization process. Put simply, the
13035 thresholding function is going to prune all samples whose magnitude
13036 exceeds a certain threshold value. However, the Dynamic Audio
13037 Normalizer does not simply apply a fixed threshold value. Instead,
13038 the threshold value will be adjusted for each individual frame. In
13039 general, smaller parameters result in stronger compression, and
13040 vice versa. Values below 3.0 are not recommended, because audible
13041 distortion may appear.
13042
13043 threshold, t
13044 Set the target threshold value. This specifies the lowest
13045 permissible magnitude level for the audio input which will be
13046 normalized. If input frame volume is above this value frame will
13047 be normalized. Otherwise frame may not be normalized at all. The
13048 default value is set to 0, which means all input frames will be
13049 normalized. This option is mostly useful if digital noise is not
13050 wanted to be amplified.
13051
13052 channels, h
13053 Specify which channels to filter, by default all available channels
13054 are filtered.
13055
13056 overlap, o
13057 Specify overlap for frames. If set to 0 (default) no frame
13058 overlapping is done. Using >0 and <1 values will make less
13059 conservative gain adjustments, like when framelen option is set to
13060 smaller value, if framelen option value is compensated for non-zero
13061 overlap then gain adjustments will be smoother across time compared
13062 to zero overlap case.
13063
13064 Commands
13065
13066 This filter supports the all above options as commands.
13067
13068 earwax
13069 Make audio easier to listen to on headphones.
13070
13071 This filter adds `cues' to 44.1kHz stereo (i.e. audio CD format) audio
13072 so that when listened to on headphones the stereo image is moved from
13073 inside your head (standard for headphones) to outside and in front of
13074 the listener (standard for speakers).
13075
13076 Ported from SoX.
13077
13078 equalizer
13079 Apply a two-pole peaking equalisation (EQ) filter. With this filter,
13080 the signal-level at and around a selected frequency can be increased or
13081 decreased, whilst (unlike bandpass and bandreject filters) that at all
13082 other frequencies is unchanged.
13083
13084 In order to produce complex equalisation curves, this filter can be
13085 given several times, each with a different central frequency.
13086
13087 The filter accepts the following options:
13088
13089 frequency, f
13090 Set the filter's central frequency in Hz.
13091
13092 width_type, t
13093 Set method to specify band-width of filter.
13094
13095 h Hz
13096
13097 q Q-Factor
13098
13099 o octave
13100
13101 s slope
13102
13103 k kHz
13104
13105 width, w
13106 Specify the band-width of a filter in width_type units.
13107
13108 gain, g
13109 Set the required gain or attenuation in dB. Beware of clipping
13110 when using a positive gain.
13111
13112 mix, m
13113 How much to use filtered signal in output. Default is 1. Range is
13114 between 0 and 1.
13115
13116 channels, c
13117 Specify which channels to filter, by default all available are
13118 filtered.
13119
13120 normalize, n
13121 Normalize biquad coefficients, by default is disabled. Enabling it
13122 will normalize magnitude response at DC to 0dB.
13123
13124 transform, a
13125 Set transform type of IIR filter.
13126
13127 di
13128 dii
13129 tdi
13130 tdii
13131 latt
13132 svf
13133 zdf
13134 precision, r
13135 Set precison of filtering.
13136
13137 auto
13138 Pick automatic sample format depending on surround filters.
13139
13140 s16 Always use signed 16-bit.
13141
13142 s32 Always use signed 32-bit.
13143
13144 f32 Always use float 32-bit.
13145
13146 f64 Always use float 64-bit.
13147
13148 block_size, b
13149 Set block size used for reverse IIR processing. If this value is
13150 set to high enough value (higher than impulse response length
13151 truncated when reaches near zero values) filtering will become
13152 linear phase otherwise if not big enough it will just produce nasty
13153 artifacts.
13154
13155 Note that filter delay will be exactly this many samples when set
13156 to non-zero value.
13157
13158 Examples
13159
13160 • Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz:
13161
13162 equalizer=f=1000:t=h:width=200:g=-10
13163
13164 • Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz
13165 with Q 2:
13166
13167 equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
13168
13169 Commands
13170
13171 This filter supports the following commands:
13172
13173 frequency, f
13174 Change equalizer frequency. Syntax for the command is :
13175 "frequency"
13176
13177 width_type, t
13178 Change equalizer width_type. Syntax for the command is :
13179 "width_type"
13180
13181 width, w
13182 Change equalizer width. Syntax for the command is : "width"
13183
13184 gain, g
13185 Change equalizer gain. Syntax for the command is : "gain"
13186
13187 mix, m
13188 Change equalizer mix. Syntax for the command is : "mix"
13189
13190 extrastereo
13191 Linearly increases the difference between left and right channels which
13192 adds some sort of "live" effect to playback.
13193
13194 The filter accepts the following options:
13195
13196 m Sets the difference coefficient (default: 2.5). 0.0 means mono
13197 sound (average of both channels), with 1.0 sound will be unchanged,
13198 with -1.0 left and right channels will be swapped.
13199
13200 c Enable clipping. By default is enabled.
13201
13202 Commands
13203
13204 This filter supports the all above options as commands.
13205
13206 firequalizer
13207 Apply FIR Equalization using arbitrary frequency response.
13208
13209 The filter accepts the following option:
13210
13211 gain
13212 Set gain curve equation (in dB). The expression can contain
13213 variables:
13214
13215 f the evaluated frequency
13216
13217 sr sample rate
13218
13219 ch channel number, set to 0 when multichannels evaluation is
13220 disabled
13221
13222 chid
13223 channel id, see libavutil/channel_layout.h, set to the first
13224 channel id when multichannels evaluation is disabled
13225
13226 chs number of channels
13227
13228 chlayout
13229 channel_layout, see libavutil/channel_layout.h
13230
13231 and functions:
13232
13233 gain_interpolate(f)
13234 interpolate gain on frequency f based on gain_entry
13235
13236 cubic_interpolate(f)
13237 same as gain_interpolate, but smoother
13238
13239 This option is also available as command. Default is
13240 gain_interpolate(f).
13241
13242 gain_entry
13243 Set gain entry for gain_interpolate function. The expression can
13244 contain functions:
13245
13246 entry(f, g)
13247 store gain entry at frequency f with value g
13248
13249 This option is also available as command.
13250
13251 delay
13252 Set filter delay in seconds. Higher value means more accurate.
13253 Default is 0.01.
13254
13255 accuracy
13256 Set filter accuracy in Hz. Lower value means more accurate.
13257 Default is 5.
13258
13259 wfunc
13260 Set window function. Acceptable values are:
13261
13262 rectangular
13263 rectangular window, useful when gain curve is already smooth
13264
13265 hann
13266 hann window (default)
13267
13268 hamming
13269 hamming window
13270
13271 blackman
13272 blackman window
13273
13274 nuttall3
13275 3-terms continuous 1st derivative nuttall window
13276
13277 mnuttall3
13278 minimum 3-terms discontinuous nuttall window
13279
13280 nuttall
13281 4-terms continuous 1st derivative nuttall window
13282
13283 bnuttall
13284 minimum 4-terms discontinuous nuttall (blackman-nuttall) window
13285
13286 bharris
13287 blackman-harris window
13288
13289 tukey
13290 tukey window
13291
13292 fixed
13293 If enabled, use fixed number of audio samples. This improves speed
13294 when filtering with large delay. Default is disabled.
13295
13296 multi
13297 Enable multichannels evaluation on gain. Default is disabled.
13298
13299 zero_phase
13300 Enable zero phase mode by subtracting timestamp to compensate
13301 delay. Default is disabled.
13302
13303 scale
13304 Set scale used by gain. Acceptable values are:
13305
13306 linlin
13307 linear frequency, linear gain
13308
13309 linlog
13310 linear frequency, logarithmic (in dB) gain (default)
13311
13312 loglin
13313 logarithmic (in octave scale where 20 Hz is 0) frequency,
13314 linear gain
13315
13316 loglog
13317 logarithmic frequency, logarithmic gain
13318
13319 dumpfile
13320 Set file for dumping, suitable for gnuplot.
13321
13322 dumpscale
13323 Set scale for dumpfile. Acceptable values are same with scale
13324 option. Default is linlog.
13325
13326 fft2
13327 Enable 2-channel convolution using complex FFT. This improves speed
13328 significantly. Default is disabled.
13329
13330 min_phase
13331 Enable minimum phase impulse response. Default is disabled.
13332
13333 Examples
13334
13335 • lowpass at 1000 Hz:
13336
13337 firequalizer=gain='if(lt(f,1000), 0, -INF)'
13338
13339 • lowpass at 1000 Hz with gain_entry:
13340
13341 firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
13342
13343 • custom equalization:
13344
13345 firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
13346
13347 • higher delay with zero phase to compensate delay:
13348
13349 firequalizer=delay=0.1:fixed=on:zero_phase=on
13350
13351 • lowpass on left channel, highpass on right channel:
13352
13353 firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
13354 :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
13355
13356 flanger
13357 Apply a flanging effect to the audio.
13358
13359 The filter accepts the following options:
13360
13361 delay
13362 Set base delay in milliseconds. Range from 0 to 30. Default value
13363 is 0.
13364
13365 depth
13366 Set added sweep delay in milliseconds. Range from 0 to 10. Default
13367 value is 2.
13368
13369 regen
13370 Set percentage regeneration (delayed signal feedback). Range from
13371 -95 to 95. Default value is 0.
13372
13373 width
13374 Set percentage of delayed signal mixed with original. Range from 0
13375 to 100. Default value is 71.
13376
13377 speed
13378 Set sweeps per second (Hz). Range from 0.1 to 10. Default value is
13379 0.5.
13380
13381 shape
13382 Set swept wave shape, can be triangular or sinusoidal. Default
13383 value is sinusoidal.
13384
13385 phase
13386 Set swept wave percentage-shift for multi channel. Range from 0 to
13387 100. Default value is 25.
13388
13389 interp
13390 Set delay-line interpolation, linear or quadratic. Default is
13391 linear.
13392
13393 haas
13394 Apply Haas effect to audio.
13395
13396 Note that this makes most sense to apply on mono signals. With this
13397 filter applied to mono signals it give some directionality and
13398 stretches its stereo image.
13399
13400 The filter accepts the following options:
13401
13402 level_in
13403 Set input level. By default is 1, or 0dB
13404
13405 level_out
13406 Set output level. By default is 1, or 0dB.
13407
13408 side_gain
13409 Set gain applied to side part of signal. By default is 1.
13410
13411 middle_source
13412 Set kind of middle source. Can be one of the following:
13413
13414 left
13415 Pick left channel.
13416
13417 right
13418 Pick right channel.
13419
13420 mid Pick middle part signal of stereo image.
13421
13422 side
13423 Pick side part signal of stereo image.
13424
13425 middle_phase
13426 Change middle phase. By default is disabled.
13427
13428 left_delay
13429 Set left channel delay. By default is 2.05 milliseconds.
13430
13431 left_balance
13432 Set left channel balance. By default is -1.
13433
13434 left_gain
13435 Set left channel gain. By default is 1.
13436
13437 left_phase
13438 Change left phase. By default is disabled.
13439
13440 right_delay
13441 Set right channel delay. By defaults is 2.12 milliseconds.
13442
13443 right_balance
13444 Set right channel balance. By default is 1.
13445
13446 right_gain
13447 Set right channel gain. By default is 1.
13448
13449 right_phase
13450 Change right phase. By default is enabled.
13451
13452 hdcd
13453 Decodes High Definition Compatible Digital (HDCD) data. A 16-bit PCM
13454 stream with embedded HDCD codes is expanded into a 20-bit PCM stream.
13455
13456 The filter supports the Peak Extend and Low-level Gain Adjustment
13457 features of HDCD, and detects the Transient Filter flag.
13458
13459 ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
13460
13461 When using the filter with wav, note the default encoding for wav is
13462 16-bit, so the resulting 20-bit stream will be truncated back to
13463 16-bit. Use something like -acodec pcm_s24le after the filter to get
13464 24-bit PCM output.
13465
13466 ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
13467 ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
13468
13469 The filter accepts the following options:
13470
13471 disable_autoconvert
13472 Disable any automatic format conversion or resampling in the filter
13473 graph.
13474
13475 process_stereo
13476 Process the stereo channels together. If target_gain does not match
13477 between channels, consider it invalid and use the last valid
13478 target_gain.
13479
13480 cdt_ms
13481 Set the code detect timer period in ms.
13482
13483 force_pe
13484 Always extend peaks above -3dBFS even if PE isn't signaled.
13485
13486 analyze_mode
13487 Replace audio with a solid tone and adjust the amplitude to signal
13488 some specific aspect of the decoding process. The output file can
13489 be loaded in an audio editor alongside the original to aid
13490 analysis.
13491
13492 "analyze_mode=pe:force_pe=true" can be used to see all samples
13493 above the PE level.
13494
13495 Modes are:
13496
13497 0, off
13498 Disabled
13499
13500 1, lle
13501 Gain adjustment level at each sample
13502
13503 2, pe
13504 Samples where peak extend occurs
13505
13506 3, cdt
13507 Samples where the code detect timer is active
13508
13509 4, tgm
13510 Samples where the target gain does not match between channels
13511
13512 headphone
13513 Apply head-related transfer functions (HRTFs) to create virtual
13514 loudspeakers around the user for binaural listening via headphones.
13515 The HRIRs are provided via additional streams, for each channel one
13516 stereo input stream is needed.
13517
13518 The filter accepts the following options:
13519
13520 map Set mapping of input streams for convolution. The argument is a
13521 '|'-separated list of channel names in order as they are given as
13522 additional stream inputs for filter. This also specify number of
13523 input streams. Number of input streams must be not less than number
13524 of channels in first stream plus one.
13525
13526 gain
13527 Set gain applied to audio. Value is in dB. Default is 0.
13528
13529 type
13530 Set processing type. Can be time or freq. time is processing audio
13531 in time domain which is slow. freq is processing audio in
13532 frequency domain which is fast. Default is freq.
13533
13534 lfe Set custom gain for LFE channels. Value is in dB. Default is 0.
13535
13536 size
13537 Set size of frame in number of samples which will be processed at
13538 once. Default value is 1024. Allowed range is from 1024 to 96000.
13539
13540 hrir
13541 Set format of hrir stream. Default value is stereo. Alternative
13542 value is multich. If value is set to stereo, number of additional
13543 streams should be greater or equal to number of input channels in
13544 first input stream. Also each additional stream should have stereo
13545 number of channels. If value is set to multich, number of
13546 additional streams should be exactly one. Also number of input
13547 channels of additional stream should be equal or greater than twice
13548 number of channels of first input stream.
13549
13550 Examples
13551
13552 • Full example using wav files as coefficients with amovie filters
13553 for 7.1 downmix, each amovie filter use stereo file with IR
13554 coefficients as input. The files give coefficients for each
13555 position of virtual loudspeaker:
13556
13557 ffmpeg -i input.wav
13558 -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"
13559 output.wav
13560
13561 • Full example using wav files as coefficients with amovie filters
13562 for 7.1 downmix, but now in multich hrir format.
13563
13564 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"
13565 output.wav
13566
13567 highpass
13568 Apply a high-pass filter with 3dB point frequency. The filter can be
13569 either single-pole, or double-pole (the default). The filter roll off
13570 at 6dB per pole per octave (20dB per pole per decade).
13571
13572 The filter accepts the following options:
13573
13574 frequency, f
13575 Set frequency in Hz. Default is 3000.
13576
13577 poles, p
13578 Set number of poles. Default is 2.
13579
13580 width_type, t
13581 Set method to specify band-width of filter.
13582
13583 h Hz
13584
13585 q Q-Factor
13586
13587 o octave
13588
13589 s slope
13590
13591 k kHz
13592
13593 width, w
13594 Specify the band-width of a filter in width_type units. Applies
13595 only to double-pole filter. The default is 0.707q and gives a
13596 Butterworth response.
13597
13598 mix, m
13599 How much to use filtered signal in output. Default is 1. Range is
13600 between 0 and 1.
13601
13602 channels, c
13603 Specify which channels to filter, by default all available are
13604 filtered.
13605
13606 normalize, n
13607 Normalize biquad coefficients, by default is disabled. Enabling it
13608 will normalize magnitude response at DC to 0dB.
13609
13610 transform, a
13611 Set transform type of IIR filter.
13612
13613 di
13614 dii
13615 tdi
13616 tdii
13617 latt
13618 svf
13619 zdf
13620 precision, r
13621 Set precison of filtering.
13622
13623 auto
13624 Pick automatic sample format depending on surround filters.
13625
13626 s16 Always use signed 16-bit.
13627
13628 s32 Always use signed 32-bit.
13629
13630 f32 Always use float 32-bit.
13631
13632 f64 Always use float 64-bit.
13633
13634 block_size, b
13635 Set block size used for reverse IIR processing. If this value is
13636 set to high enough value (higher than impulse response length
13637 truncated when reaches near zero values) filtering will become
13638 linear phase otherwise if not big enough it will just produce nasty
13639 artifacts.
13640
13641 Note that filter delay will be exactly this many samples when set
13642 to non-zero value.
13643
13644 Commands
13645
13646 This filter supports the following commands:
13647
13648 frequency, f
13649 Change highpass frequency. Syntax for the command is : "frequency"
13650
13651 width_type, t
13652 Change highpass width_type. Syntax for the command is :
13653 "width_type"
13654
13655 width, w
13656 Change highpass width. Syntax for the command is : "width"
13657
13658 mix, m
13659 Change highpass mix. Syntax for the command is : "mix"
13660
13661 join
13662 Join multiple input streams into one multi-channel stream.
13663
13664 It accepts the following parameters:
13665
13666 inputs
13667 The number of input streams. It defaults to 2.
13668
13669 channel_layout
13670 The desired output channel layout. It defaults to stereo.
13671
13672 map Map channels from inputs to output. The argument is a '|'-separated
13673 list of mappings, each in the "input_idx.in_channel-out_channel"
13674 form. input_idx is the 0-based index of the input stream.
13675 in_channel can be either the name of the input channel (e.g. FL for
13676 front left) or its index in the specified input stream. out_channel
13677 is the name of the output channel.
13678
13679 The filter will attempt to guess the mappings when they are not
13680 specified explicitly. It does so by first trying to find an unused
13681 matching input channel and if that fails it picks the first unused
13682 input channel.
13683
13684 Join 3 inputs (with properly set channel layouts):
13685
13686 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
13687
13688 Build a 5.1 output from 6 single-channel streams:
13689
13690 ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
13691 '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'
13692 out
13693
13694 ladspa
13695 Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin.
13696
13697 To enable compilation of this filter you need to configure FFmpeg with
13698 "--enable-ladspa".
13699
13700 file, f
13701 Specifies the name of LADSPA plugin library to load. If the
13702 environment variable LADSPA_PATH is defined, the LADSPA plugin is
13703 searched in each one of the directories specified by the colon
13704 separated list in LADSPA_PATH, otherwise in the standard LADSPA
13705 paths, which are in this order: HOME/.ladspa/lib/,
13706 /usr/local/lib/ladspa/, /usr/lib/ladspa/.
13707
13708 plugin, p
13709 Specifies the plugin within the library. Some libraries contain
13710 only one plugin, but others contain many of them. If this is not
13711 set filter will list all available plugins within the specified
13712 library.
13713
13714 controls, c
13715 Set the '|' separated list of controls which are zero or more
13716 floating point values that determine the behavior of the loaded
13717 plugin (for example delay, threshold or gain). Controls need to be
13718 defined using the following syntax:
13719 c0=value0|c1=value1|c2=value2|..., where valuei is the value set on
13720 the i-th control. Alternatively they can be also defined using the
13721 following syntax: value0|value1|value2|..., where valuei is the
13722 value set on the i-th control. If controls is set to "help", all
13723 available controls and their valid ranges are printed.
13724
13725 sample_rate, s
13726 Specify the sample rate, default to 44100. Only used if plugin have
13727 zero inputs.
13728
13729 nb_samples, n
13730 Set the number of samples per channel per each output frame,
13731 default is 1024. Only used if plugin have zero inputs.
13732
13733 duration, d
13734 Set the minimum duration of the sourced audio. See the Time
13735 duration section in the ffmpeg-utils(1) manual for the accepted
13736 syntax. Note that the resulting duration may be greater than the
13737 specified duration, as the generated audio is always cut at the end
13738 of a complete frame. If not specified, or the expressed duration
13739 is negative, the audio is supposed to be generated forever. Only
13740 used if plugin have zero inputs.
13741
13742 latency, l
13743 Enable latency compensation, by default is disabled. Only used if
13744 plugin have inputs.
13745
13746 Examples
13747
13748 • List all available plugins within amp (LADSPA example plugin)
13749 library:
13750
13751 ladspa=file=amp
13752
13753 • List all available controls and their valid ranges for "vcf_notch"
13754 plugin from "VCF" library:
13755
13756 ladspa=f=vcf:p=vcf_notch:c=help
13757
13758 • Simulate low quality audio equipment using "Computer Music Toolkit"
13759 (CMT) plugin library:
13760
13761 ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
13762
13763 • Add reverberation to the audio using TAP-plugins (Tom's Audio
13764 Processing plugins):
13765
13766 ladspa=file=tap_reverb:tap_reverb
13767
13768 • Generate white noise, with 0.2 amplitude:
13769
13770 ladspa=file=cmt:noise_source_white:c=c0=.2
13771
13772 • Generate 20 bpm clicks using plugin "C* Click - Metronome" from the
13773 "C* Audio Plugin Suite" (CAPS) library:
13774
13775 ladspa=file=caps:Click:c=c1=20'
13776
13777 • Apply "C* Eq10X2 - Stereo 10-band equaliser" effect:
13778
13779 ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
13780
13781 • Increase volume by 20dB using fast lookahead limiter from Steve
13782 Harris "SWH Plugins" collection:
13783
13784 ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
13785
13786 • Attenuate low frequencies using Multiband EQ from Steve Harris "SWH
13787 Plugins" collection:
13788
13789 ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
13790
13791 • Reduce stereo image using "Narrower" from the "C* Audio Plugin
13792 Suite" (CAPS) library:
13793
13794 ladspa=caps:Narrower
13795
13796 • Another white noise, now using "C* Audio Plugin Suite" (CAPS)
13797 library:
13798
13799 ladspa=caps:White:.2
13800
13801 • Some fractal noise, using "C* Audio Plugin Suite" (CAPS) library:
13802
13803 ladspa=caps:Fractal:c=c1=1
13804
13805 • Dynamic volume normalization using "VLevel" plugin:
13806
13807 ladspa=vlevel-ladspa:vlevel_mono
13808
13809 Commands
13810
13811 This filter supports the following commands:
13812
13813 cN Modify the N-th control value.
13814
13815 If the specified value is not valid, it is ignored and prior one is
13816 kept.
13817
13818 loudnorm
13819 EBU R128 loudness normalization. Includes both dynamic and linear
13820 normalization modes. Support for both single pass (livestreams, files)
13821 and double pass (files) modes. This algorithm can target IL, LRA, and
13822 maximum true peak. In dynamic mode, to accurately detect true peaks,
13823 the audio stream will be upsampled to 192 kHz. Use the "-ar" option or
13824 "aresample" filter to explicitly set an output sample rate.
13825
13826 The filter accepts the following options:
13827
13828 I, i
13829 Set integrated loudness target. Range is -70.0 - -5.0. Default
13830 value is -24.0.
13831
13832 LRA, lra
13833 Set loudness range target. Range is 1.0 - 50.0. Default value is
13834 7.0.
13835
13836 TP, tp
13837 Set maximum true peak. Range is -9.0 - +0.0. Default value is
13838 -2.0.
13839
13840 measured_I, measured_i
13841 Measured IL of input file. Range is -99.0 - +0.0.
13842
13843 measured_LRA, measured_lra
13844 Measured LRA of input file. Range is 0.0 - 99.0.
13845
13846 measured_TP, measured_tp
13847 Measured true peak of input file. Range is -99.0 - +99.0.
13848
13849 measured_thresh
13850 Measured threshold of input file. Range is -99.0 - +0.0.
13851
13852 offset
13853 Set offset gain. Gain is applied before the true-peak limiter.
13854 Range is -99.0 - +99.0. Default is +0.0.
13855
13856 linear
13857 Normalize by linearly scaling the source audio. "measured_I",
13858 "measured_LRA", "measured_TP", and "measured_thresh" must all be
13859 specified. Target LRA shouldn't be lower than source LRA and the
13860 change in integrated loudness shouldn't result in a true peak which
13861 exceeds the target TP. If any of these conditions aren't met,
13862 normalization mode will revert to dynamic. Options are "true" or
13863 "false". Default is "true".
13864
13865 dual_mono
13866 Treat mono input files as "dual-mono". If a mono file is intended
13867 for playback on a stereo system, its EBU R128 measurement will be
13868 perceptually incorrect. If set to "true", this option will
13869 compensate for this effect. Multi-channel input files are not
13870 affected by this option. Options are true or false. Default is
13871 false.
13872
13873 print_format
13874 Set print format for stats. Options are summary, json, or none.
13875 Default value is none.
13876
13877 lowpass
13878 Apply a low-pass filter with 3dB point frequency. The filter can be
13879 either single-pole or double-pole (the default). The filter roll off
13880 at 6dB per pole per octave (20dB per pole per decade).
13881
13882 The filter accepts the following options:
13883
13884 frequency, f
13885 Set frequency in Hz. Default is 500.
13886
13887 poles, p
13888 Set number of poles. Default is 2.
13889
13890 width_type, t
13891 Set method to specify band-width of filter.
13892
13893 h Hz
13894
13895 q Q-Factor
13896
13897 o octave
13898
13899 s slope
13900
13901 k kHz
13902
13903 width, w
13904 Specify the band-width of a filter in width_type units. Applies
13905 only to double-pole filter. The default is 0.707q and gives a
13906 Butterworth response.
13907
13908 mix, m
13909 How much to use filtered signal in output. Default is 1. Range is
13910 between 0 and 1.
13911
13912 channels, c
13913 Specify which channels to filter, by default all available are
13914 filtered.
13915
13916 normalize, n
13917 Normalize biquad coefficients, by default is disabled. Enabling it
13918 will normalize magnitude response at DC to 0dB.
13919
13920 transform, a
13921 Set transform type of IIR filter.
13922
13923 di
13924 dii
13925 tdi
13926 tdii
13927 latt
13928 svf
13929 zdf
13930 precision, r
13931 Set precison of filtering.
13932
13933 auto
13934 Pick automatic sample format depending on surround filters.
13935
13936 s16 Always use signed 16-bit.
13937
13938 s32 Always use signed 32-bit.
13939
13940 f32 Always use float 32-bit.
13941
13942 f64 Always use float 64-bit.
13943
13944 block_size, b
13945 Set block size used for reverse IIR processing. If this value is
13946 set to high enough value (higher than impulse response length
13947 truncated when reaches near zero values) filtering will become
13948 linear phase otherwise if not big enough it will just produce nasty
13949 artifacts.
13950
13951 Note that filter delay will be exactly this many samples when set
13952 to non-zero value.
13953
13954 Examples
13955
13956 • Lowpass only LFE channel, it LFE is not present it does nothing:
13957
13958 lowpass=c=LFE
13959
13960 Commands
13961
13962 This filter supports the following commands:
13963
13964 frequency, f
13965 Change lowpass frequency. Syntax for the command is : "frequency"
13966
13967 width_type, t
13968 Change lowpass width_type. Syntax for the command is :
13969 "width_type"
13970
13971 width, w
13972 Change lowpass width. Syntax for the command is : "width"
13973
13974 mix, m
13975 Change lowpass mix. Syntax for the command is : "mix"
13976
13977 lv2
13978 Load a LV2 (LADSPA Version 2) plugin.
13979
13980 To enable compilation of this filter you need to configure FFmpeg with
13981 "--enable-lv2".
13982
13983 plugin, p
13984 Specifies the plugin URI. You may need to escape ':'.
13985
13986 controls, c
13987 Set the '|' separated list of controls which are zero or more
13988 floating point values that determine the behavior of the loaded
13989 plugin (for example delay, threshold or gain). If controls is set
13990 to "help", all available controls and their valid ranges are
13991 printed.
13992
13993 sample_rate, s
13994 Specify the sample rate, default to 44100. Only used if plugin have
13995 zero inputs.
13996
13997 nb_samples, n
13998 Set the number of samples per channel per each output frame,
13999 default is 1024. Only used if plugin have zero inputs.
14000
14001 duration, d
14002 Set the minimum duration of the sourced audio. See the Time
14003 duration section in the ffmpeg-utils(1) manual for the accepted
14004 syntax. Note that the resulting duration may be greater than the
14005 specified duration, as the generated audio is always cut at the end
14006 of a complete frame. If not specified, or the expressed duration
14007 is negative, the audio is supposed to be generated forever. Only
14008 used if plugin have zero inputs.
14009
14010 Examples
14011
14012 • Apply bass enhancer plugin from Calf:
14013
14014 lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
14015
14016 • Apply vinyl plugin from Calf:
14017
14018 lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
14019
14020 • Apply bit crusher plugin from ArtyFX:
14021
14022 lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
14023
14024 Commands
14025
14026 This filter supports all options that are exported by plugin as
14027 commands.
14028
14029 mcompand
14030 Multiband Compress or expand the audio's dynamic range.
14031
14032 The input audio is divided into bands using 4th order Linkwitz-Riley
14033 IIRs. This is akin to the crossover of a loudspeaker, and results in
14034 flat frequency response when absent compander action.
14035
14036 It accepts the following parameters:
14037
14038 args
14039 This option syntax is: attack,decay,[attack,decay..] soft-knee
14040 points crossover_frequency [delay [initial_volume [gain]]] |
14041 attack,decay ... For explanation of each item refer to compand
14042 filter documentation.
14043
14044 pan
14045 Mix channels with specific gain levels. The filter accepts the output
14046 channel layout followed by a set of channels definitions.
14047
14048 This filter is also designed to efficiently remap the channels of an
14049 audio stream.
14050
14051 The filter accepts parameters of the form: "l|outdef|outdef|..."
14052
14053 l output channel layout or number of channels
14054
14055 outdef
14056 output channel specification, of the form:
14057 "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
14058
14059 out_name
14060 output channel to define, either a channel name (FL, FR, etc.) or a
14061 channel number (c0, c1, etc.)
14062
14063 gain
14064 multiplicative coefficient for the channel, 1 leaving the volume
14065 unchanged
14066
14067 in_name
14068 input channel to use, see out_name for details; it is not possible
14069 to mix named and numbered input channels
14070
14071 If the `=' in a channel specification is replaced by `<', then the
14072 gains for that specification will be renormalized so that the total is
14073 1, thus avoiding clipping noise.
14074
14075 Mixing examples
14076
14077 For example, if you want to down-mix from stereo to mono, but with a
14078 bigger factor for the left channel:
14079
14080 pan=1c|c0=0.9*c0+0.1*c1
14081
14082 A customized down-mix to stereo that works automatically for 3-, 4-, 5-
14083 and 7-channels surround:
14084
14085 pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
14086
14087 Note that ffmpeg integrates a default down-mix (and up-mix) system that
14088 should be preferred (see "-ac" option) unless you have very specific
14089 needs.
14090
14091 Remapping examples
14092
14093 The channel remapping will be effective if, and only if:
14094
14095 *<gain coefficients are zeroes or ones,>
14096 *<only one input per channel output,>
14097
14098 If all these conditions are satisfied, the filter will notify the user
14099 ("Pure channel mapping detected"), and use an optimized and lossless
14100 method to do the remapping.
14101
14102 For example, if you have a 5.1 source and want a stereo audio stream by
14103 dropping the extra channels:
14104
14105 pan="stereo| c0=FL | c1=FR"
14106
14107 Given the same source, you can also switch front left and front right
14108 channels and keep the input channel layout:
14109
14110 pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
14111
14112 If the input is a stereo audio stream, you can mute the front left
14113 channel (and still keep the stereo channel layout) with:
14114
14115 pan="stereo|c1=c1"
14116
14117 Still with a stereo audio stream input, you can copy the right channel
14118 in both front left and right:
14119
14120 pan="stereo| c0=FR | c1=FR"
14121
14122 replaygain
14123 ReplayGain scanner filter. This filter takes an audio stream as an
14124 input and outputs it unchanged. At end of filtering it displays
14125 "track_gain" and "track_peak".
14126
14127 resample
14128 Convert the audio sample format, sample rate and channel layout. It is
14129 not meant to be used directly.
14130
14131 rubberband
14132 Apply time-stretching and pitch-shifting with librubberband.
14133
14134 To enable compilation of this filter, you need to configure FFmpeg with
14135 "--enable-librubberband".
14136
14137 The filter accepts the following options:
14138
14139 tempo
14140 Set tempo scale factor.
14141
14142 pitch
14143 Set pitch scale factor.
14144
14145 transients
14146 Set transients detector. Possible values are:
14147
14148 crisp
14149 mixed
14150 smooth
14151 detector
14152 Set detector. Possible values are:
14153
14154 compound
14155 percussive
14156 soft
14157 phase
14158 Set phase. Possible values are:
14159
14160 laminar
14161 independent
14162 window
14163 Set processing window size. Possible values are:
14164
14165 standard
14166 short
14167 long
14168 smoothing
14169 Set smoothing. Possible values are:
14170
14171 off
14172 on
14173 formant
14174 Enable formant preservation when shift pitching. Possible values
14175 are:
14176
14177 shifted
14178 preserved
14179 pitchq
14180 Set pitch quality. Possible values are:
14181
14182 quality
14183 speed
14184 consistency
14185 channels
14186 Set channels. Possible values are:
14187
14188 apart
14189 together
14190
14191 Commands
14192
14193 This filter supports the following commands:
14194
14195 tempo
14196 Change filter tempo scale factor. Syntax for the command is :
14197 "tempo"
14198
14199 pitch
14200 Change filter pitch scale factor. Syntax for the command is :
14201 "pitch"
14202
14203 sidechaincompress
14204 This filter acts like normal compressor but has the ability to compress
14205 detected signal using second input signal. It needs two input streams
14206 and returns one output stream. First input stream will be processed
14207 depending on second stream signal. The filtered signal then can be
14208 filtered with other filters in later stages of processing. See pan and
14209 amerge filter.
14210
14211 The filter accepts the following options:
14212
14213 level_in
14214 Set input gain. Default is 1. Range is between 0.015625 and 64.
14215
14216 mode
14217 Set mode of compressor operation. Can be "upward" or "downward".
14218 Default is "downward".
14219
14220 threshold
14221 If a signal of second stream raises above this level it will affect
14222 the gain reduction of first stream. By default is 0.125. Range is
14223 between 0.00097563 and 1.
14224
14225 ratio
14226 Set a ratio about which the signal is reduced. 1:2 means that if
14227 the level raised 4dB above the threshold, it will be only 2dB above
14228 after the reduction. Default is 2. Range is between 1 and 20.
14229
14230 attack
14231 Amount of milliseconds the signal has to rise above the threshold
14232 before gain reduction starts. Default is 20. Range is between 0.01
14233 and 2000.
14234
14235 release
14236 Amount of milliseconds the signal has to fall below the threshold
14237 before reduction is decreased again. Default is 250. Range is
14238 between 0.01 and 9000.
14239
14240 makeup
14241 Set the amount by how much signal will be amplified after
14242 processing. Default is 1. Range is from 1 to 64.
14243
14244 knee
14245 Curve the sharp knee around the threshold to enter gain reduction
14246 more softly. Default is 2.82843. Range is between 1 and 8.
14247
14248 link
14249 Choose if the "average" level between all channels of side-chain
14250 stream or the louder("maximum") channel of side-chain stream
14251 affects the reduction. Default is "average".
14252
14253 detection
14254 Should the exact signal be taken in case of "peak" or an RMS one in
14255 case of "rms". Default is "rms" which is mainly smoother.
14256
14257 level_sc
14258 Set sidechain gain. Default is 1. Range is between 0.015625 and 64.
14259
14260 mix How much to use compressed signal in output. Default is 1. Range
14261 is between 0 and 1.
14262
14263 Commands
14264
14265 This filter supports the all above options as commands.
14266
14267 Examples
14268
14269 • Full ffmpeg example taking 2 audio inputs, 1st input to be
14270 compressed depending on the signal of 2nd input and later
14271 compressed signal to be merged with 2nd input:
14272
14273 ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
14274
14275 sidechaingate
14276 A sidechain gate acts like a normal (wideband) gate but has the ability
14277 to filter the detected signal before sending it to the gain reduction
14278 stage. Normally a gate uses the full range signal to detect a level
14279 above the threshold. For example: If you cut all lower frequencies
14280 from your sidechain signal the gate will decrease the volume of your
14281 track only if not enough highs appear. With this technique you are able
14282 to reduce the resonation of a natural drum or remove "rumbling" of
14283 muted strokes from a heavily distorted guitar. It needs two input
14284 streams and returns one output stream. First input stream will be
14285 processed depending on second stream signal.
14286
14287 The filter accepts the following options:
14288
14289 level_in
14290 Set input level before filtering. Default is 1. Allowed range is
14291 from 0.015625 to 64.
14292
14293 mode
14294 Set the mode of operation. Can be "upward" or "downward". Default
14295 is "downward". If set to "upward" mode, higher parts of signal will
14296 be amplified, expanding dynamic range in upward direction.
14297 Otherwise, in case of "downward" lower parts of signal will be
14298 reduced.
14299
14300 range
14301 Set the level of gain reduction when the signal is below the
14302 threshold. Default is 0.06125. Allowed range is from 0 to 1.
14303 Setting this to 0 disables reduction and then filter behaves like
14304 expander.
14305
14306 threshold
14307 If a signal rises above this level the gain reduction is released.
14308 Default is 0.125. Allowed range is from 0 to 1.
14309
14310 ratio
14311 Set a ratio about which the signal is reduced. Default is 2.
14312 Allowed range is from 1 to 9000.
14313
14314 attack
14315 Amount of milliseconds the signal has to rise above the threshold
14316 before gain reduction stops. Default is 20 milliseconds. Allowed
14317 range is from 0.01 to 9000.
14318
14319 release
14320 Amount of milliseconds the signal has to fall below the threshold
14321 before the reduction is increased again. Default is 250
14322 milliseconds. Allowed range is from 0.01 to 9000.
14323
14324 makeup
14325 Set amount of amplification of signal after processing. Default is
14326 1. Allowed range is from 1 to 64.
14327
14328 knee
14329 Curve the sharp knee around the threshold to enter gain reduction
14330 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
14331
14332 detection
14333 Choose if exact signal should be taken for detection or an RMS like
14334 one. Default is rms. Can be peak or rms.
14335
14336 link
14337 Choose if the average level between all channels or the louder
14338 channel affects the reduction. Default is average. Can be average
14339 or maximum.
14340
14341 level_sc
14342 Set sidechain gain. Default is 1. Range is from 0.015625 to 64.
14343
14344 Commands
14345
14346 This filter supports the all above options as commands.
14347
14348 silencedetect
14349 Detect silence in an audio stream.
14350
14351 This filter logs a message when it detects that the input audio volume
14352 is less or equal to a noise tolerance value for a duration greater or
14353 equal to the minimum detected noise duration.
14354
14355 The printed times and duration are expressed in seconds. The
14356 "lavfi.silence_start" or "lavfi.silence_start.X" metadata key is set on
14357 the first frame whose timestamp equals or exceeds the detection
14358 duration and it contains the timestamp of the first frame of the
14359 silence.
14360
14361 The "lavfi.silence_duration" or "lavfi.silence_duration.X" and
14362 "lavfi.silence_end" or "lavfi.silence_end.X" metadata keys are set on
14363 the first frame after the silence. If mono is enabled, and each channel
14364 is evaluated separately, the ".X" suffixed keys are used, and "X"
14365 corresponds to the channel number.
14366
14367 The filter accepts the following options:
14368
14369 noise, n
14370 Set noise tolerance. Can be specified in dB (in case "dB" is
14371 appended to the specified value) or amplitude ratio. Default is
14372 -60dB, or 0.001.
14373
14374 duration, d
14375 Set silence duration until notification (default is 2 seconds). See
14376 the Time duration section in the ffmpeg-utils(1) manual for the
14377 accepted syntax.
14378
14379 mono, m
14380 Process each channel separately, instead of combined. By default is
14381 disabled.
14382
14383 Examples
14384
14385 • Detect 5 seconds of silence with -50dB noise tolerance:
14386
14387 silencedetect=n=-50dB:d=5
14388
14389 • Complete example with ffmpeg to detect silence with 0.0001 noise
14390 tolerance in silence.mp3:
14391
14392 ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
14393
14394 silenceremove
14395 Remove silence from the beginning, middle or end of the audio.
14396
14397 The filter accepts the following options:
14398
14399 start_periods
14400 This value is used to indicate if audio should be trimmed at
14401 beginning of the audio. A value of zero indicates no silence should
14402 be trimmed from the beginning. When specifying a non-zero value, it
14403 trims audio up until it finds non-silence. Normally, when trimming
14404 silence from beginning of audio the start_periods will be 1 but it
14405 can be increased to higher values to trim all audio up to specific
14406 count of non-silence periods. Default value is 0.
14407
14408 start_duration
14409 Specify the amount of time that non-silence must be detected before
14410 it stops trimming audio. By increasing the duration, bursts of
14411 noises can be treated as silence and trimmed off. Default value is
14412 0.
14413
14414 start_threshold
14415 This indicates what sample value should be treated as silence. For
14416 digital audio, a value of 0 may be fine but for audio recorded from
14417 analog, you may wish to increase the value to account for
14418 background noise. Can be specified in dB (in case "dB" is appended
14419 to the specified value) or amplitude ratio. Default value is 0.
14420
14421 start_silence
14422 Specify max duration of silence at beginning that will be kept
14423 after trimming. Default is 0, which is equal to trimming all
14424 samples detected as silence.
14425
14426 start_mode
14427 Specify mode of detection of silence end in start of multi-channel
14428 audio. Can be any or all. Default is any. With any, any sample
14429 that is detected as non-silence will cause stopped trimming of
14430 silence. With all, only if all channels are detected as non-
14431 silence will cause stopped trimming of silence.
14432
14433 stop_periods
14434 Set the count for trimming silence from the end of audio. To
14435 remove silence from the middle of a file, specify a stop_periods
14436 that is negative. This value is then treated as a positive value
14437 and is used to indicate the effect should restart processing as
14438 specified by start_periods, making it suitable for removing periods
14439 of silence in the middle of the audio. Default value is 0.
14440
14441 stop_duration
14442 Specify a duration of silence that must exist before audio is not
14443 copied any more. By specifying a higher duration, silence that is
14444 wanted can be left in the audio. Default value is 0.
14445
14446 stop_threshold
14447 This is the same as start_threshold but for trimming silence from
14448 the end of audio. Can be specified in dB (in case "dB" is appended
14449 to the specified value) or amplitude ratio. Default value is 0.
14450
14451 stop_silence
14452 Specify max duration of silence at end that will be kept after
14453 trimming. Default is 0, which is equal to trimming all samples
14454 detected as silence.
14455
14456 stop_mode
14457 Specify mode of detection of silence start in end of multi-channel
14458 audio. Can be any or all. Default is any. With any, any sample
14459 that is detected as non-silence will cause stopped trimming of
14460 silence. With all, only if all channels are detected as non-
14461 silence will cause stopped trimming of silence.
14462
14463 detection
14464 Set how is silence detected. Can be "rms" or "peak". Second is
14465 faster and works better with digital silence which is exactly 0.
14466 Default value is "rms".
14467
14468 window
14469 Set duration in number of seconds used to calculate size of window
14470 in number of samples for detecting silence. Default value is 0.02.
14471 Allowed range is from 0 to 10.
14472
14473 Examples
14474
14475 • The following example shows how this filter can be used to start a
14476 recording that does not contain the delay at the start which
14477 usually occurs between pressing the record button and the start of
14478 the performance:
14479
14480 silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
14481
14482 • Trim all silence encountered from beginning to end where there is
14483 more than 1 second of silence in audio:
14484
14485 silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
14486
14487 • Trim all digital silence samples, using peak detection, from
14488 beginning to end where there is more than 0 samples of digital
14489 silence in audio and digital silence is detected in all channels at
14490 same positions in stream:
14491
14492 silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
14493
14494 sofalizer
14495 SOFAlizer uses head-related transfer functions (HRTFs) to create
14496 virtual loudspeakers around the user for binaural listening via
14497 headphones (audio formats up to 9 channels supported). The HRTFs are
14498 stored in SOFA files (see <http://www.sofacoustics.org/> for a
14499 database). SOFAlizer is developed at the Acoustics Research Institute
14500 (ARI) of the Austrian Academy of Sciences.
14501
14502 To enable compilation of this filter you need to configure FFmpeg with
14503 "--enable-libmysofa".
14504
14505 The filter accepts the following options:
14506
14507 sofa
14508 Set the SOFA file used for rendering.
14509
14510 gain
14511 Set gain applied to audio. Value is in dB. Default is 0.
14512
14513 rotation
14514 Set rotation of virtual loudspeakers in deg. Default is 0.
14515
14516 elevation
14517 Set elevation of virtual speakers in deg. Default is 0.
14518
14519 radius
14520 Set distance in meters between loudspeakers and the listener with
14521 near-field HRTFs. Default is 1.
14522
14523 type
14524 Set processing type. Can be time or freq. time is processing audio
14525 in time domain which is slow. freq is processing audio in
14526 frequency domain which is fast. Default is freq.
14527
14528 speakers
14529 Set custom positions of virtual loudspeakers. Syntax for this
14530 option is: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Each
14531 virtual loudspeaker is described with short channel name following
14532 with azimuth and elevation in degrees. Each virtual loudspeaker
14533 description is separated by '|'. For example to override front
14534 left and front right channel positions use: 'speakers=FL 45 15|FR
14535 345 15'. Descriptions with unrecognised channel names are ignored.
14536
14537 lfegain
14538 Set custom gain for LFE channels. Value is in dB. Default is 0.
14539
14540 framesize
14541 Set custom frame size in number of samples. Default is 1024.
14542 Allowed range is from 1024 to 96000. Only used if option type is
14543 set to freq.
14544
14545 normalize
14546 Should all IRs be normalized upon importing SOFA file. By default
14547 is enabled.
14548
14549 interpolate
14550 Should nearest IRs be interpolated with neighbor IRs if exact
14551 position does not match. By default is disabled.
14552
14553 minphase
14554 Minphase all IRs upon loading of SOFA file. By default is disabled.
14555
14556 anglestep
14557 Set neighbor search angle step. Only used if option interpolate is
14558 enabled.
14559
14560 radstep
14561 Set neighbor search radius step. Only used if option interpolate is
14562 enabled.
14563
14564 Examples
14565
14566 • Using ClubFritz6 sofa file:
14567
14568 sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
14569
14570 • Using ClubFritz12 sofa file and bigger radius with small rotation:
14571
14572 sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
14573
14574 • Similar as above but with custom speaker positions for front left,
14575 front right, back left and back right and also with custom gain:
14576
14577 "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
14578
14579 speechnorm
14580 Speech Normalizer.
14581
14582 This filter expands or compresses each half-cycle of audio samples
14583 (local set of samples all above or all below zero and between two
14584 nearest zero crossings) depending on threshold value, so audio reaches
14585 target peak value under conditions controlled by below options.
14586
14587 The filter accepts the following options:
14588
14589 peak, p
14590 Set the expansion target peak value. This specifies the highest
14591 allowed absolute amplitude level for the normalized audio input.
14592 Default value is 0.95. Allowed range is from 0.0 to 1.0.
14593
14594 expansion, e
14595 Set the maximum expansion factor. Allowed range is from 1.0 to
14596 50.0. Default value is 2.0. This option controls maximum local
14597 half-cycle of samples expansion. The maximum expansion would be
14598 such that local peak value reaches target peak value but never to
14599 surpass it and that ratio between new and previous peak value does
14600 not surpass this option value.
14601
14602 compression, c
14603 Set the maximum compression factor. Allowed range is from 1.0 to
14604 50.0. Default value is 2.0. This option controls maximum local
14605 half-cycle of samples compression. This option is used only if
14606 threshold option is set to value greater than 0.0, then in such
14607 cases when local peak is lower or same as value set by threshold
14608 all samples belonging to that peak's half-cycle will be compressed
14609 by current compression factor.
14610
14611 threshold, t
14612 Set the threshold value. Default value is 0.0. Allowed range is
14613 from 0.0 to 1.0. This option specifies which half-cycles of
14614 samples will be compressed and which will be expanded. Any half-
14615 cycle samples with their local peak value below or same as this
14616 option value will be compressed by current compression factor,
14617 otherwise, if greater than threshold value they will be expanded
14618 with expansion factor so that it could reach peak target value but
14619 never surpass it.
14620
14621 raise, r
14622 Set the expansion raising amount per each half-cycle of samples.
14623 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
14624 controls how fast expansion factor is raised per each new half-
14625 cycle until it reaches expansion value. Setting this options too
14626 high may lead to distortions.
14627
14628 fall, f
14629 Set the compression raising amount per each half-cycle of samples.
14630 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
14631 controls how fast compression factor is raised per each new half-
14632 cycle until it reaches compression value.
14633
14634 channels, h
14635 Specify which channels to filter, by default all available channels
14636 are filtered.
14637
14638 invert, i
14639 Enable inverted filtering, by default is disabled. This inverts
14640 interpretation of threshold option. When enabled any half-cycle of
14641 samples with their local peak value below or same as threshold
14642 option will be expanded otherwise it will be compressed.
14643
14644 link, l
14645 Link channels when calculating gain applied to each filtered
14646 channel sample, by default is disabled. When disabled each
14647 filtered channel gain calculation is independent, otherwise when
14648 this option is enabled the minimum of all possible gains for each
14649 filtered channel is used.
14650
14651 Commands
14652
14653 This filter supports the all above options as commands.
14654
14655 stereotools
14656 This filter has some handy utilities to manage stereo signals, for
14657 converting M/S stereo recordings to L/R signal while having control
14658 over the parameters or spreading the stereo image of master track.
14659
14660 The filter accepts the following options:
14661
14662 level_in
14663 Set input level before filtering for both channels. Defaults is 1.
14664 Allowed range is from 0.015625 to 64.
14665
14666 level_out
14667 Set output level after filtering for both channels. Defaults is 1.
14668 Allowed range is from 0.015625 to 64.
14669
14670 balance_in
14671 Set input balance between both channels. Default is 0. Allowed
14672 range is from -1 to 1.
14673
14674 balance_out
14675 Set output balance between both channels. Default is 0. Allowed
14676 range is from -1 to 1.
14677
14678 softclip
14679 Enable softclipping. Results in analog distortion instead of harsh
14680 digital 0dB clipping. Disabled by default.
14681
14682 mutel
14683 Mute the left channel. Disabled by default.
14684
14685 muter
14686 Mute the right channel. Disabled by default.
14687
14688 phasel
14689 Change the phase of the left channel. Disabled by default.
14690
14691 phaser
14692 Change the phase of the right channel. Disabled by default.
14693
14694 mode
14695 Set stereo mode. Available values are:
14696
14697 lr>lr
14698 Left/Right to Left/Right, this is default.
14699
14700 lr>ms
14701 Left/Right to Mid/Side.
14702
14703 ms>lr
14704 Mid/Side to Left/Right.
14705
14706 lr>ll
14707 Left/Right to Left/Left.
14708
14709 lr>rr
14710 Left/Right to Right/Right.
14711
14712 lr>l+r
14713 Left/Right to Left + Right.
14714
14715 lr>rl
14716 Left/Right to Right/Left.
14717
14718 ms>ll
14719 Mid/Side to Left/Left.
14720
14721 ms>rr
14722 Mid/Side to Right/Right.
14723
14724 ms>rl
14725 Mid/Side to Right/Left.
14726
14727 lr>l-r
14728 Left/Right to Left - Right.
14729
14730 slev
14731 Set level of side signal. Default is 1. Allowed range is from
14732 0.015625 to 64.
14733
14734 sbal
14735 Set balance of side signal. Default is 0. Allowed range is from -1
14736 to 1.
14737
14738 mlev
14739 Set level of the middle signal. Default is 1. Allowed range is
14740 from 0.015625 to 64.
14741
14742 mpan
14743 Set middle signal pan. Default is 0. Allowed range is from -1 to 1.
14744
14745 base
14746 Set stereo base between mono and inversed channels. Default is 0.
14747 Allowed range is from -1 to 1.
14748
14749 delay
14750 Set delay in milliseconds how much to delay left from right channel
14751 and vice versa. Default is 0. Allowed range is from -20 to 20.
14752
14753 sclevel
14754 Set S/C level. Default is 1. Allowed range is from 1 to 100.
14755
14756 phase
14757 Set the stereo phase in degrees. Default is 0. Allowed range is
14758 from 0 to 360.
14759
14760 bmode_in, bmode_out
14761 Set balance mode for balance_in/balance_out option.
14762
14763 Can be one of the following:
14764
14765 balance
14766 Classic balance mode. Attenuate one channel at time. Gain is
14767 raised up to 1.
14768
14769 amplitude
14770 Similar as classic mode above but gain is raised up to 2.
14771
14772 power
14773 Equal power distribution, from -6dB to +6dB range.
14774
14775 Commands
14776
14777 This filter supports the all above options as commands.
14778
14779 Examples
14780
14781 • Apply karaoke like effect:
14782
14783 stereotools=mlev=0.015625
14784
14785 • Convert M/S signal to L/R:
14786
14787 "stereotools=mode=ms>lr"
14788
14789 stereowiden
14790 This filter enhance the stereo effect by suppressing signal common to
14791 both channels and by delaying the signal of left into right and vice
14792 versa, thereby widening the stereo effect.
14793
14794 The filter accepts the following options:
14795
14796 delay
14797 Time in milliseconds of the delay of left signal into right and
14798 vice versa. Default is 20 milliseconds.
14799
14800 feedback
14801 Amount of gain in delayed signal into right and vice versa. Gives a
14802 delay effect of left signal in right output and vice versa which
14803 gives widening effect. Default is 0.3.
14804
14805 crossfeed
14806 Cross feed of left into right with inverted phase. This helps in
14807 suppressing the mono. If the value is 1 it will cancel all the
14808 signal common to both channels. Default is 0.3.
14809
14810 drymix
14811 Set level of input signal of original channel. Default is 0.8.
14812
14813 Commands
14814
14815 This filter supports the all above options except "delay" as commands.
14816
14817 superequalizer
14818 Apply 18 band equalizer.
14819
14820 The filter accepts the following options:
14821
14822 1b Set 65Hz band gain.
14823
14824 2b Set 92Hz band gain.
14825
14826 3b Set 131Hz band gain.
14827
14828 4b Set 185Hz band gain.
14829
14830 5b Set 262Hz band gain.
14831
14832 6b Set 370Hz band gain.
14833
14834 7b Set 523Hz band gain.
14835
14836 8b Set 740Hz band gain.
14837
14838 9b Set 1047Hz band gain.
14839
14840 10b Set 1480Hz band gain.
14841
14842 11b Set 2093Hz band gain.
14843
14844 12b Set 2960Hz band gain.
14845
14846 13b Set 4186Hz band gain.
14847
14848 14b Set 5920Hz band gain.
14849
14850 15b Set 8372Hz band gain.
14851
14852 16b Set 11840Hz band gain.
14853
14854 17b Set 16744Hz band gain.
14855
14856 18b Set 20000Hz band gain.
14857
14858 surround
14859 Apply audio surround upmix filter.
14860
14861 This filter allows to produce multichannel output from audio stream.
14862
14863 The filter accepts the following options:
14864
14865 chl_out
14866 Set output channel layout. By default, this is 5.1.
14867
14868 See the Channel Layout section in the ffmpeg-utils(1) manual for
14869 the required syntax.
14870
14871 chl_in
14872 Set input channel layout. By default, this is stereo.
14873
14874 See the Channel Layout section in the ffmpeg-utils(1) manual for
14875 the required syntax.
14876
14877 level_in
14878 Set input volume level. By default, this is 1.
14879
14880 level_out
14881 Set output volume level. By default, this is 1.
14882
14883 lfe Enable LFE channel output if output channel layout has it. By
14884 default, this is enabled.
14885
14886 lfe_low
14887 Set LFE low cut off frequency. By default, this is 128 Hz.
14888
14889 lfe_high
14890 Set LFE high cut off frequency. By default, this is 256 Hz.
14891
14892 lfe_mode
14893 Set LFE mode, can be add or sub. Default is add. In add mode, LFE
14894 channel is created from input audio and added to output. In sub
14895 mode, LFE channel is created from input audio and added to output
14896 but also all non-LFE output channels are subtracted with output LFE
14897 channel.
14898
14899 angle
14900 Set angle of stereo surround transform, Allowed range is from 0 to
14901 360. Default is 90.
14902
14903 fc_in
14904 Set front center input volume. By default, this is 1.
14905
14906 fc_out
14907 Set front center output volume. By default, this is 1.
14908
14909 fl_in
14910 Set front left input volume. By default, this is 1.
14911
14912 fl_out
14913 Set front left output volume. By default, this is 1.
14914
14915 fr_in
14916 Set front right input volume. By default, this is 1.
14917
14918 fr_out
14919 Set front right output volume. By default, this is 1.
14920
14921 sl_in
14922 Set side left input volume. By default, this is 1.
14923
14924 sl_out
14925 Set side left output volume. By default, this is 1.
14926
14927 sr_in
14928 Set side right input volume. By default, this is 1.
14929
14930 sr_out
14931 Set side right output volume. By default, this is 1.
14932
14933 bl_in
14934 Set back left input volume. By default, this is 1.
14935
14936 bl_out
14937 Set back left output volume. By default, this is 1.
14938
14939 br_in
14940 Set back right input volume. By default, this is 1.
14941
14942 br_out
14943 Set back right output volume. By default, this is 1.
14944
14945 bc_in
14946 Set back center input volume. By default, this is 1.
14947
14948 bc_out
14949 Set back center output volume. By default, this is 1.
14950
14951 lfe_in
14952 Set LFE input volume. By default, this is 1.
14953
14954 lfe_out
14955 Set LFE output volume. By default, this is 1.
14956
14957 allx
14958 Set spread usage of stereo image across X axis for all channels.
14959 Allowed range is from -1 to 15. By default this value is negative
14960 -1, and thus unused.
14961
14962 ally
14963 Set spread usage of stereo image across Y axis for all channels.
14964 Allowed range is from -1 to 15. By default this value is negative
14965 -1, and thus unused.
14966
14967 fcx, flx, frx, blx, brx, slx, srx, bcx
14968 Set spread usage of stereo image across X axis for each channel.
14969 Allowed range is from 0.06 to 15. By default this value is 0.5.
14970
14971 fcy, fly, fry, bly, bry, sly, sry, bcy
14972 Set spread usage of stereo image across Y axis for each channel.
14973 Allowed range is from 0.06 to 15. By default this value is 0.5.
14974
14975 win_size
14976 Set window size. Allowed range is from 1024 to 65536. Default size
14977 is 4096.
14978
14979 win_func
14980 Set window function.
14981
14982 It accepts the following values:
14983
14984 rect
14985 bartlett
14986 hann, hanning
14987 hamming
14988 blackman
14989 welch
14990 flattop
14991 bharris
14992 bnuttall
14993 bhann
14994 sine
14995 nuttall
14996 lanczos
14997 gauss
14998 tukey
14999 dolph
15000 cauchy
15001 parzen
15002 poisson
15003 bohman
15004
15005 Default is "hann".
15006
15007 overlap
15008 Set window overlap. If set to 1, the recommended overlap for
15009 selected window function will be picked. Default is 0.5.
15010
15011 tiltshelf
15012 Boost or cut the lower frequencies and cut or boost higher frequencies
15013 of the audio using a two-pole shelving filter with a response similar
15014 to that of a standard hi-fi's tone-controls. This is also known as
15015 shelving equalisation (EQ).
15016
15017 The filter accepts the following options:
15018
15019 gain, g
15020 Give the gain at 0 Hz. Its useful range is about -20 (for a large
15021 cut) to +20 (for a large boost). Beware of clipping when using a
15022 positive gain.
15023
15024 frequency, f
15025 Set the filter's central frequency and so can be used to extend or
15026 reduce the frequency range to be boosted or cut. The default value
15027 is 3000 Hz.
15028
15029 width_type, t
15030 Set method to specify band-width of filter.
15031
15032 h Hz
15033
15034 q Q-Factor
15035
15036 o octave
15037
15038 s slope
15039
15040 k kHz
15041
15042 width, w
15043 Determine how steep is the filter's shelf transition.
15044
15045 poles, p
15046 Set number of poles. Default is 2.
15047
15048 mix, m
15049 How much to use filtered signal in output. Default is 1. Range is
15050 between 0 and 1.
15051
15052 channels, c
15053 Specify which channels to filter, by default all available are
15054 filtered.
15055
15056 normalize, n
15057 Normalize biquad coefficients, by default is disabled. Enabling it
15058 will normalize magnitude response at DC to 0dB.
15059
15060 transform, a
15061 Set transform type of IIR filter.
15062
15063 di
15064 dii
15065 tdi
15066 tdii
15067 latt
15068 svf
15069 zdf
15070 precision, r
15071 Set precison of filtering.
15072
15073 auto
15074 Pick automatic sample format depending on surround filters.
15075
15076 s16 Always use signed 16-bit.
15077
15078 s32 Always use signed 32-bit.
15079
15080 f32 Always use float 32-bit.
15081
15082 f64 Always use float 64-bit.
15083
15084 block_size, b
15085 Set block size used for reverse IIR processing. If this value is
15086 set to high enough value (higher than impulse response length
15087 truncated when reaches near zero values) filtering will become
15088 linear phase otherwise if not big enough it will just produce nasty
15089 artifacts.
15090
15091 Note that filter delay will be exactly this many samples when set
15092 to non-zero value.
15093
15094 Commands
15095
15096 This filter supports some options as commands.
15097
15098 treble, highshelf
15099 Boost or cut treble (upper) frequencies of the audio using a two-pole
15100 shelving filter with a response similar to that of a standard hi-fi's
15101 tone-controls. This is also known as shelving equalisation (EQ).
15102
15103 The filter accepts the following options:
15104
15105 gain, g
15106 Give the gain at whichever is the lower of ~22 kHz and the Nyquist
15107 frequency. Its useful range is about -20 (for a large cut) to +20
15108 (for a large boost). Beware of clipping when using a positive gain.
15109
15110 frequency, f
15111 Set the filter's central frequency and so can be used to extend or
15112 reduce the frequency range to be boosted or cut. The default value
15113 is 3000 Hz.
15114
15115 width_type, t
15116 Set method to specify band-width of filter.
15117
15118 h Hz
15119
15120 q Q-Factor
15121
15122 o octave
15123
15124 s slope
15125
15126 k kHz
15127
15128 width, w
15129 Determine how steep is the filter's shelf transition.
15130
15131 poles, p
15132 Set number of poles. Default is 2.
15133
15134 mix, m
15135 How much to use filtered signal in output. Default is 1. Range is
15136 between 0 and 1.
15137
15138 channels, c
15139 Specify which channels to filter, by default all available are
15140 filtered.
15141
15142 normalize, n
15143 Normalize biquad coefficients, by default is disabled. Enabling it
15144 will normalize magnitude response at DC to 0dB.
15145
15146 transform, a
15147 Set transform type of IIR filter.
15148
15149 di
15150 dii
15151 tdi
15152 tdii
15153 latt
15154 svf
15155 zdf
15156 precision, r
15157 Set precison of filtering.
15158
15159 auto
15160 Pick automatic sample format depending on surround filters.
15161
15162 s16 Always use signed 16-bit.
15163
15164 s32 Always use signed 32-bit.
15165
15166 f32 Always use float 32-bit.
15167
15168 f64 Always use float 64-bit.
15169
15170 block_size, b
15171 Set block size used for reverse IIR processing. If this value is
15172 set to high enough value (higher than impulse response length
15173 truncated when reaches near zero values) filtering will become
15174 linear phase otherwise if not big enough it will just produce nasty
15175 artifacts.
15176
15177 Note that filter delay will be exactly this many samples when set
15178 to non-zero value.
15179
15180 Commands
15181
15182 This filter supports the following commands:
15183
15184 frequency, f
15185 Change treble frequency. Syntax for the command is : "frequency"
15186
15187 width_type, t
15188 Change treble width_type. Syntax for the command is : "width_type"
15189
15190 width, w
15191 Change treble width. Syntax for the command is : "width"
15192
15193 gain, g
15194 Change treble gain. Syntax for the command is : "gain"
15195
15196 mix, m
15197 Change treble mix. Syntax for the command is : "mix"
15198
15199 tremolo
15200 Sinusoidal amplitude modulation.
15201
15202 The filter accepts the following options:
15203
15204 f Modulation frequency in Hertz. Modulation frequencies in the
15205 subharmonic range (20 Hz or lower) will result in a tremolo effect.
15206 This filter may also be used as a ring modulator by specifying a
15207 modulation frequency higher than 20 Hz. Range is 0.1 - 20000.0.
15208 Default value is 5.0 Hz.
15209
15210 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
15211 value is 0.5.
15212
15213 vibrato
15214 Sinusoidal phase modulation.
15215
15216 The filter accepts the following options:
15217
15218 f Modulation frequency in Hertz. Range is 0.1 - 20000.0. Default
15219 value is 5.0 Hz.
15220
15221 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
15222 value is 0.5.
15223
15224 virtualbass
15225 Apply audio Virtual Bass filter.
15226
15227 This filter accepts stereo input and produce stereo with LFE (2.1)
15228 channels output. The newly produced LFE channel have enhanced virtual
15229 bass originally obtained from both stereo channels. This filter
15230 outputs front left and front right channels unchanged as available in
15231 stereo input.
15232
15233 The filter accepts the following options:
15234
15235 cutoff
15236 Set the virtual bass cutoff frequency. Default value is 250 Hz.
15237 Allowed range is from 100 to 500 Hz.
15238
15239 strength
15240 Set the virtual bass strength. Allowed range is from 0.5 to 3.
15241 Default value is 3.
15242
15243 volume
15244 Adjust the input audio volume.
15245
15246 It accepts the following parameters:
15247
15248 volume
15249 Set audio volume expression.
15250
15251 Output values are clipped to the maximum value.
15252
15253 The output audio volume is given by the relation:
15254
15255 <output_volume> = <volume> * <input_volume>
15256
15257 The default value for volume is "1.0".
15258
15259 precision
15260 This parameter represents the mathematical precision.
15261
15262 It determines which input sample formats will be allowed, which
15263 affects the precision of the volume scaling.
15264
15265 fixed
15266 8-bit fixed-point; this limits input sample format to U8, S16,
15267 and S32.
15268
15269 float
15270 32-bit floating-point; this limits input sample format to FLT.
15271 (default)
15272
15273 double
15274 64-bit floating-point; this limits input sample format to DBL.
15275
15276 replaygain
15277 Choose the behaviour on encountering ReplayGain side data in input
15278 frames.
15279
15280 drop
15281 Remove ReplayGain side data, ignoring its contents (the
15282 default).
15283
15284 ignore
15285 Ignore ReplayGain side data, but leave it in the frame.
15286
15287 track
15288 Prefer the track gain, if present.
15289
15290 album
15291 Prefer the album gain, if present.
15292
15293 replaygain_preamp
15294 Pre-amplification gain in dB to apply to the selected replaygain
15295 gain.
15296
15297 Default value for replaygain_preamp is 0.0.
15298
15299 replaygain_noclip
15300 Prevent clipping by limiting the gain applied.
15301
15302 Default value for replaygain_noclip is 1.
15303
15304 eval
15305 Set when the volume expression is evaluated.
15306
15307 It accepts the following values:
15308
15309 once
15310 only evaluate expression once during the filter initialization,
15311 or when the volume command is sent
15312
15313 frame
15314 evaluate expression for each incoming frame
15315
15316 Default value is once.
15317
15318 The volume expression can contain the following parameters.
15319
15320 n frame number (starting at zero)
15321
15322 nb_channels
15323 number of channels
15324
15325 nb_consumed_samples
15326 number of samples consumed by the filter
15327
15328 nb_samples
15329 number of samples in the current frame
15330
15331 pos original frame position in the file
15332
15333 pts frame PTS
15334
15335 sample_rate
15336 sample rate
15337
15338 startpts
15339 PTS at start of stream
15340
15341 startt
15342 time at start of stream
15343
15344 t frame time
15345
15346 tb timestamp timebase
15347
15348 volume
15349 last set volume value
15350
15351 Note that when eval is set to once only the sample_rate and tb
15352 variables are available, all other variables will evaluate to NAN.
15353
15354 Commands
15355
15356 This filter supports the following commands:
15357
15358 volume
15359 Modify the volume expression. The command accepts the same syntax
15360 of the corresponding option.
15361
15362 If the specified expression is not valid, it is kept at its current
15363 value.
15364
15365 Examples
15366
15367 • Halve the input audio volume:
15368
15369 volume=volume=0.5
15370 volume=volume=1/2
15371 volume=volume=-6.0206dB
15372
15373 In all the above example the named key for volume can be omitted,
15374 for example like in:
15375
15376 volume=0.5
15377
15378 • Increase input audio power by 6 decibels using fixed-point
15379 precision:
15380
15381 volume=volume=6dB:precision=fixed
15382
15383 • Fade volume after time 10 with an annihilation period of 5 seconds:
15384
15385 volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
15386
15387 volumedetect
15388 Detect the volume of the input video.
15389
15390 The filter has no parameters. It supports only 16-bit signed integer
15391 samples, so the input will be converted when needed. Statistics about
15392 the volume will be printed in the log when the input stream end is
15393 reached.
15394
15395 In particular it will show the mean volume (root mean square), maximum
15396 volume (on a per-sample basis), and the beginning of a histogram of the
15397 registered volume values (from the maximum value to a cumulated 1/1000
15398 of the samples).
15399
15400 All volumes are in decibels relative to the maximum PCM value.
15401
15402 Examples
15403
15404 Here is an excerpt of the output:
15405
15406 [Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB
15407 [Parsed_volumedetect_0 0xa23120] max_volume: -4 dB
15408 [Parsed_volumedetect_0 0xa23120] histogram_4db: 6
15409 [Parsed_volumedetect_0 0xa23120] histogram_5db: 62
15410 [Parsed_volumedetect_0 0xa23120] histogram_6db: 286
15411 [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042
15412 [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551
15413 [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609
15414 [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
15415
15416 It means that:
15417
15418 • The mean square energy is approximately -27 dB, or 10^-2.7.
15419
15420 • The largest sample is at -4 dB, or more precisely between -4 dB and
15421 -5 dB.
15422
15423 • There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc.
15424
15425 In other words, raising the volume by +4 dB does not cause any
15426 clipping, raising it by +5 dB causes clipping for 6 samples, etc.
15427
15429 Below is a description of the currently available audio sources.
15430
15431 abuffer
15432 Buffer audio frames, and make them available to the filter chain.
15433
15434 This source is mainly intended for a programmatic use, in particular
15435 through the interface defined in libavfilter/buffersrc.h.
15436
15437 It accepts the following parameters:
15438
15439 time_base
15440 The timebase which will be used for timestamps of submitted frames.
15441 It must be either a floating-point number or in
15442 numerator/denominator form.
15443
15444 sample_rate
15445 The sample rate of the incoming audio buffers.
15446
15447 sample_fmt
15448 The sample format of the incoming audio buffers. Either a sample
15449 format name or its corresponding integer representation from the
15450 enum AVSampleFormat in libavutil/samplefmt.h
15451
15452 channel_layout
15453 The channel layout of the incoming audio buffers. Either a channel
15454 layout name from channel_layout_map in libavutil/channel_layout.c
15455 or its corresponding integer representation from the AV_CH_LAYOUT_*
15456 macros in libavutil/channel_layout.h
15457
15458 channels
15459 The number of channels of the incoming audio buffers. If both
15460 channels and channel_layout are specified, then they must be
15461 consistent.
15462
15463 Examples
15464
15465 abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
15466
15467 will instruct the source to accept planar 16bit signed stereo at
15468 44100Hz. Since the sample format with name "s16p" corresponds to the
15469 number 6 and the "stereo" channel layout corresponds to the value 0x3,
15470 this is equivalent to:
15471
15472 abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
15473
15474 aevalsrc
15475 Generate an audio signal specified by an expression.
15476
15477 This source accepts in input one or more expressions (one for each
15478 channel), which are evaluated and used to generate a corresponding
15479 audio signal.
15480
15481 This source accepts the following options:
15482
15483 exprs
15484 Set the '|'-separated expressions list for each separate channel.
15485 In case the channel_layout option is not specified, the selected
15486 channel layout depends on the number of provided expressions.
15487 Otherwise the last specified expression is applied to the remaining
15488 output channels.
15489
15490 channel_layout, c
15491 Set the channel layout. The number of channels in the specified
15492 layout must be equal to the number of specified expressions.
15493
15494 duration, d
15495 Set the minimum duration of the sourced audio. See the Time
15496 duration section in the ffmpeg-utils(1) manual for the accepted
15497 syntax. Note that the resulting duration may be greater than the
15498 specified duration, as the generated audio is always cut at the end
15499 of a complete frame.
15500
15501 If not specified, or the expressed duration is negative, the audio
15502 is supposed to be generated forever.
15503
15504 nb_samples, n
15505 Set the number of samples per channel per each output frame,
15506 default to 1024.
15507
15508 sample_rate, s
15509 Specify the sample rate, default to 44100.
15510
15511 Each expression in exprs can contain the following constants:
15512
15513 n number of the evaluated sample, starting from 0
15514
15515 t time of the evaluated sample expressed in seconds, starting from 0
15516
15517 s sample rate
15518
15519 Examples
15520
15521 • Generate silence:
15522
15523 aevalsrc=0
15524
15525 • Generate a sin signal with frequency of 440 Hz, set sample rate to
15526 8000 Hz:
15527
15528 aevalsrc="sin(440*2*PI*t):s=8000"
15529
15530 • Generate a two channels signal, specify the channel layout (Front
15531 Center + Back Center) explicitly:
15532
15533 aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
15534
15535 • Generate white noise:
15536
15537 aevalsrc="-2+random(0)"
15538
15539 • Generate an amplitude modulated signal:
15540
15541 aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
15542
15543 • Generate 2.5 Hz binaural beats on a 360 Hz carrier:
15544
15545 aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
15546
15547 afirsrc
15548 Generate a FIR coefficients using frequency sampling method.
15549
15550 The resulting stream can be used with afir filter for filtering the
15551 audio signal.
15552
15553 The filter accepts the following options:
15554
15555 taps, t
15556 Set number of filter coefficents in output audio stream. Default
15557 value is 1025.
15558
15559 frequency, f
15560 Set frequency points from where magnitude and phase are set. This
15561 must be in non decreasing order, and first element must be 0, while
15562 last element must be 1. Elements are separated by white spaces.
15563
15564 magnitude, m
15565 Set magnitude value for every frequency point set by frequency.
15566 Number of values must be same as number of frequency points.
15567 Values are separated by white spaces.
15568
15569 phase, p
15570 Set phase value for every frequency point set by frequency. Number
15571 of values must be same as number of frequency points. Values are
15572 separated by white spaces.
15573
15574 sample_rate, r
15575 Set sample rate, default is 44100.
15576
15577 nb_samples, n
15578 Set number of samples per each frame. Default is 1024.
15579
15580 win_func, w
15581 Set window function. Default is blackman.
15582
15583 anullsrc
15584 The null audio source, return unprocessed audio frames. It is mainly
15585 useful as a template and to be employed in analysis / debugging tools,
15586 or as the source for filters which ignore the input data (for example
15587 the sox synth filter).
15588
15589 This source accepts the following options:
15590
15591 channel_layout, cl
15592 Specifies the channel layout, and can be either an integer or a
15593 string representing a channel layout. The default value of
15594 channel_layout is "stereo".
15595
15596 Check the channel_layout_map definition in
15597 libavutil/channel_layout.c for the mapping between strings and
15598 channel layout values.
15599
15600 sample_rate, r
15601 Specifies the sample rate, and defaults to 44100.
15602
15603 nb_samples, n
15604 Set the number of samples per requested frames.
15605
15606 duration, d
15607 Set the duration of the sourced audio. See the Time duration
15608 section in the ffmpeg-utils(1) manual for the accepted syntax.
15609
15610 If not specified, or the expressed duration is negative, the audio
15611 is supposed to be generated forever.
15612
15613 Examples
15614
15615 • Set the sample rate to 48000 Hz and the channel layout to
15616 AV_CH_LAYOUT_MONO.
15617
15618 anullsrc=r=48000:cl=4
15619
15620 • Do the same operation with a more obvious syntax:
15621
15622 anullsrc=r=48000:cl=mono
15623
15624 All the parameters need to be explicitly defined.
15625
15626 flite
15627 Synthesize a voice utterance using the libflite library.
15628
15629 To enable compilation of this filter you need to configure FFmpeg with
15630 "--enable-libflite".
15631
15632 Note that versions of the flite library prior to 2.0 are not thread-
15633 safe.
15634
15635 The filter accepts the following options:
15636
15637 list_voices
15638 If set to 1, list the names of the available voices and exit
15639 immediately. Default value is 0.
15640
15641 nb_samples, n
15642 Set the maximum number of samples per frame. Default value is 512.
15643
15644 textfile
15645 Set the filename containing the text to speak.
15646
15647 text
15648 Set the text to speak.
15649
15650 voice, v
15651 Set the voice to use for the speech synthesis. Default value is
15652 "kal". See also the list_voices option.
15653
15654 Examples
15655
15656 • Read from file speech.txt, and synthesize the text using the
15657 standard flite voice:
15658
15659 flite=textfile=speech.txt
15660
15661 • Read the specified text selecting the "slt" voice:
15662
15663 flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15664
15665 • Input text to ffmpeg:
15666
15667 ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15668
15669 • Make ffplay speak the specified text, using "flite" and the "lavfi"
15670 device:
15671
15672 ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
15673
15674 For more information about libflite, check:
15675 <http://www.festvox.org/flite/>
15676
15677 anoisesrc
15678 Generate a noise audio signal.
15679
15680 The filter accepts the following options:
15681
15682 sample_rate, r
15683 Specify the sample rate. Default value is 48000 Hz.
15684
15685 amplitude, a
15686 Specify the amplitude (0.0 - 1.0) of the generated audio stream.
15687 Default value is 1.0.
15688
15689 duration, d
15690 Specify the duration of the generated audio stream. Not specifying
15691 this option results in noise with an infinite length.
15692
15693 color, colour, c
15694 Specify the color of noise. Available noise colors are white, pink,
15695 brown, blue, violet and velvet. Default color is white.
15696
15697 seed, s
15698 Specify a value used to seed the PRNG.
15699
15700 nb_samples, n
15701 Set the number of samples per each output frame, default is 1024.
15702
15703 Examples
15704
15705 • Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
15706 and an amplitude of 0.5:
15707
15708 anoisesrc=d=60:c=pink:r=44100:a=0.5
15709
15710 hilbert
15711 Generate odd-tap Hilbert transform FIR coefficients.
15712
15713 The resulting stream can be used with afir filter for phase-shifting
15714 the signal by 90 degrees.
15715
15716 This is used in many matrix coding schemes and for analytic signal
15717 generation. The process is often written as a multiplication by i (or
15718 j), the imaginary unit.
15719
15720 The filter accepts the following options:
15721
15722 sample_rate, s
15723 Set sample rate, default is 44100.
15724
15725 taps, t
15726 Set length of FIR filter, default is 22051.
15727
15728 nb_samples, n
15729 Set number of samples per each frame.
15730
15731 win_func, w
15732 Set window function to be used when generating FIR coefficients.
15733
15734 sinc
15735 Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
15736 band-reject FIR coefficients.
15737
15738 The resulting stream can be used with afir filter for filtering the
15739 audio signal.
15740
15741 The filter accepts the following options:
15742
15743 sample_rate, r
15744 Set sample rate, default is 44100.
15745
15746 nb_samples, n
15747 Set number of samples per each frame. Default is 1024.
15748
15749 hp Set high-pass frequency. Default is 0.
15750
15751 lp Set low-pass frequency. Default is 0. If high-pass frequency is
15752 lower than low-pass frequency and low-pass frequency is higher than
15753 0 then filter will create band-pass filter coefficients, otherwise
15754 band-reject filter coefficients.
15755
15756 phase
15757 Set filter phase response. Default is 50. Allowed range is from 0
15758 to 100.
15759
15760 beta
15761 Set Kaiser window beta.
15762
15763 att Set stop-band attenuation. Default is 120dB, allowed range is from
15764 40 to 180 dB.
15765
15766 round
15767 Enable rounding, by default is disabled.
15768
15769 hptaps
15770 Set number of taps for high-pass filter.
15771
15772 lptaps
15773 Set number of taps for low-pass filter.
15774
15775 sine
15776 Generate an audio signal made of a sine wave with amplitude 1/8.
15777
15778 The audio signal is bit-exact.
15779
15780 The filter accepts the following options:
15781
15782 frequency, f
15783 Set the carrier frequency. Default is 440 Hz.
15784
15785 beep_factor, b
15786 Enable a periodic beep every second with frequency beep_factor
15787 times the carrier frequency. Default is 0, meaning the beep is
15788 disabled.
15789
15790 sample_rate, r
15791 Specify the sample rate, default is 44100.
15792
15793 duration, d
15794 Specify the duration of the generated audio stream.
15795
15796 samples_per_frame
15797 Set the number of samples per output frame.
15798
15799 The expression can contain the following constants:
15800
15801 n The (sequential) number of the output audio frame, starting
15802 from 0.
15803
15804 pts The PTS (Presentation TimeStamp) of the output audio frame,
15805 expressed in TB units.
15806
15807 t The PTS of the output audio frame, expressed in seconds.
15808
15809 TB The timebase of the output audio frames.
15810
15811 Default is 1024.
15812
15813 Examples
15814
15815 • Generate a simple 440 Hz sine wave:
15816
15817 sine
15818
15819 • Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
15820 seconds:
15821
15822 sine=220:4:d=5
15823 sine=f=220:b=4:d=5
15824 sine=frequency=220:beep_factor=4:duration=5
15825
15826 • Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
15827 NTSC pattern:
15828
15829 sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
15830
15832 Below is a description of the currently available audio sinks.
15833
15834 abuffersink
15835 Buffer audio frames, and make them available to the end of filter
15836 chain.
15837
15838 This sink is mainly intended for programmatic use, in particular
15839 through the interface defined in libavfilter/buffersink.h or the
15840 options system.
15841
15842 It accepts a pointer to an AVABufferSinkContext structure, which
15843 defines the incoming buffers' formats, to be passed as the opaque
15844 parameter to "avfilter_init_filter" for initialization.
15845
15846 anullsink
15847 Null audio sink; do absolutely nothing with the input audio. It is
15848 mainly useful as a template and for use in analysis / debugging tools.
15849
15851 When you configure your FFmpeg build, you can disable any of the
15852 existing filters using "--disable-filters". The configure output will
15853 show the video filters included in your build.
15854
15855 Below is a description of the currently available video filters.
15856
15857 addroi
15858 Mark a region of interest in a video frame.
15859
15860 The frame data is passed through unchanged, but metadata is attached to
15861 the frame indicating regions of interest which can affect the behaviour
15862 of later encoding. Multiple regions can be marked by applying the
15863 filter multiple times.
15864
15865 x Region distance in pixels from the left edge of the frame.
15866
15867 y Region distance in pixels from the top edge of the frame.
15868
15869 w Region width in pixels.
15870
15871 h Region height in pixels.
15872
15873 The parameters x, y, w and h are expressions, and may contain the
15874 following variables:
15875
15876 iw Width of the input frame.
15877
15878 ih Height of the input frame.
15879
15880 qoffset
15881 Quantisation offset to apply within the region.
15882
15883 This must be a real value in the range -1 to +1. A value of zero
15884 indicates no quality change. A negative value asks for better
15885 quality (less quantisation), while a positive value asks for worse
15886 quality (greater quantisation).
15887
15888 The range is calibrated so that the extreme values indicate the
15889 largest possible offset - if the rest of the frame is encoded with
15890 the worst possible quality, an offset of -1 indicates that this
15891 region should be encoded with the best possible quality anyway.
15892 Intermediate values are then interpolated in some codec-dependent
15893 way.
15894
15895 For example, in 10-bit H.264 the quantisation parameter varies
15896 between -12 and 51. A typical qoffset value of -1/10 therefore
15897 indicates that this region should be encoded with a QP around one-
15898 tenth of the full range better than the rest of the frame. So, if
15899 most of the frame were to be encoded with a QP of around 30, this
15900 region would get a QP of around 24 (an offset of approximately
15901 -1/10 * (51 - -12) = -6.3). An extreme value of -1 would indicate
15902 that this region should be encoded with the best possible quality
15903 regardless of the treatment of the rest of the frame - that is,
15904 should be encoded at a QP of -12.
15905
15906 clear
15907 If set to true, remove any existing regions of interest marked on
15908 the frame before adding the new one.
15909
15910 Examples
15911
15912 • Mark the centre quarter of the frame as interesting.
15913
15914 addroi=iw/4:ih/4:iw/2:ih/2:-1/10
15915
15916 • Mark the 100-pixel-wide region on the left edge of the frame as
15917 very uninteresting (to be encoded at much lower quality than the
15918 rest of the frame).
15919
15920 addroi=0:0:100:ih:+1/5
15921
15922 alphaextract
15923 Extract the alpha component from the input as a grayscale video. This
15924 is especially useful with the alphamerge filter.
15925
15926 alphamerge
15927 Add or replace the alpha component of the primary input with the
15928 grayscale value of a second input. This is intended for use with
15929 alphaextract to allow the transmission or storage of frame sequences
15930 that have alpha in a format that doesn't support an alpha channel.
15931
15932 For example, to reconstruct full frames from a normal YUV-encoded video
15933 and a separate video created with alphaextract, you might use:
15934
15935 movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
15936
15937 amplify
15938 Amplify differences between current pixel and pixels of adjacent frames
15939 in same pixel location.
15940
15941 This filter accepts the following options:
15942
15943 radius
15944 Set frame radius. Default is 2. Allowed range is from 1 to 63. For
15945 example radius of 3 will instruct filter to calculate average of 7
15946 frames.
15947
15948 factor
15949 Set factor to amplify difference. Default is 2. Allowed range is
15950 from 0 to 65535.
15951
15952 threshold
15953 Set threshold for difference amplification. Any difference greater
15954 or equal to this value will not alter source pixel. Default is 10.
15955 Allowed range is from 0 to 65535.
15956
15957 tolerance
15958 Set tolerance for difference amplification. Any difference lower to
15959 this value will not alter source pixel. Default is 0. Allowed
15960 range is from 0 to 65535.
15961
15962 low Set lower limit for changing source pixel. Default is 65535.
15963 Allowed range is from 0 to 65535. This option controls maximum
15964 possible value that will decrease source pixel value.
15965
15966 high
15967 Set high limit for changing source pixel. Default is 65535. Allowed
15968 range is from 0 to 65535. This option controls maximum possible
15969 value that will increase source pixel value.
15970
15971 planes
15972 Set which planes to filter. Default is all. Allowed range is from 0
15973 to 15.
15974
15975 Commands
15976
15977 This filter supports the following commands that corresponds to option
15978 of same name:
15979
15980 factor
15981 threshold
15982 tolerance
15983 low
15984 high
15985 planes
15986
15987 ass
15988 Same as the subtitles filter, except that it doesn't require libavcodec
15989 and libavformat to work. On the other hand, it is limited to ASS
15990 (Advanced Substation Alpha) subtitles files.
15991
15992 This filter accepts the following option in addition to the common
15993 options from the subtitles filter:
15994
15995 shaping
15996 Set the shaping engine
15997
15998 Available values are:
15999
16000 auto
16001 The default libass shaping engine, which is the best available.
16002
16003 simple
16004 Fast, font-agnostic shaper that can do only substitutions
16005
16006 complex
16007 Slower shaper using OpenType for substitutions and positioning
16008
16009 The default is "auto".
16010
16011 atadenoise
16012 Apply an Adaptive Temporal Averaging Denoiser to the video input.
16013
16014 The filter accepts the following options:
16015
16016 0a Set threshold A for 1st plane. Default is 0.02. Valid range is 0
16017 to 0.3.
16018
16019 0b Set threshold B for 1st plane. Default is 0.04. Valid range is 0
16020 to 5.
16021
16022 1a Set threshold A for 2nd plane. Default is 0.02. Valid range is 0
16023 to 0.3.
16024
16025 1b Set threshold B for 2nd plane. Default is 0.04. Valid range is 0
16026 to 5.
16027
16028 2a Set threshold A for 3rd plane. Default is 0.02. Valid range is 0
16029 to 0.3.
16030
16031 2b Set threshold B for 3rd plane. Default is 0.04. Valid range is 0
16032 to 5.
16033
16034 Threshold A is designed to react on abrupt changes in the input
16035 signal and threshold B is designed to react on continuous changes
16036 in the input signal.
16037
16038 s Set number of frames filter will use for averaging. Default is 9.
16039 Must be odd number in range [5, 129].
16040
16041 p Set what planes of frame filter will use for averaging. Default is
16042 all.
16043
16044 a Set what variant of algorithm filter will use for averaging.
16045 Default is "p" parallel. Alternatively can be set to "s" serial.
16046
16047 Parallel can be faster then serial, while other way around is never
16048 true. Parallel will abort early on first change being greater then
16049 thresholds, while serial will continue processing other side of
16050 frames if they are equal or below thresholds.
16051
16052 0s
16053 1s
16054 2s Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
16055 Valid range is from 0 to 32767. This options controls weight for
16056 each pixel in radius defined by size. Default value means every
16057 pixel have same weight. Setting this option to 0 effectively
16058 disables filtering.
16059
16060 Commands
16061
16062 This filter supports same commands as options except option "s". The
16063 command accepts the same syntax of the corresponding option.
16064
16065 avgblur
16066 Apply average blur filter.
16067
16068 The filter accepts the following options:
16069
16070 sizeX
16071 Set horizontal radius size.
16072
16073 planes
16074 Set which planes to filter. By default all planes are filtered.
16075
16076 sizeY
16077 Set vertical radius size, if zero it will be same as "sizeX".
16078 Default is 0.
16079
16080 Commands
16081
16082 This filter supports same commands as options. The command accepts the
16083 same syntax of the corresponding option.
16084
16085 If the specified expression is not valid, it is kept at its current
16086 value.
16087
16088 bbox
16089 Compute the bounding box for the non-black pixels in the input frame
16090 luminance plane.
16091
16092 This filter computes the bounding box containing all the pixels with a
16093 luminance value greater than the minimum allowed value. The parameters
16094 describing the bounding box are printed on the filter log.
16095
16096 The filter accepts the following option:
16097
16098 min_val
16099 Set the minimal luminance value. Default is 16.
16100
16101 Commands
16102
16103 This filter supports the all above options as commands.
16104
16105 bilateral
16106 Apply bilateral filter, spatial smoothing while preserving edges.
16107
16108 The filter accepts the following options:
16109
16110 sigmaS
16111 Set sigma of gaussian function to calculate spatial weight.
16112 Allowed range is 0 to 512. Default is 0.1.
16113
16114 sigmaR
16115 Set sigma of gaussian function to calculate range weight. Allowed
16116 range is 0 to 1. Default is 0.1.
16117
16118 planes
16119 Set planes to filter. Default is first only.
16120
16121 Commands
16122
16123 This filter supports the all above options as commands.
16124
16125 bitplanenoise
16126 Show and measure bit plane noise.
16127
16128 The filter accepts the following options:
16129
16130 bitplane
16131 Set which plane to analyze. Default is 1.
16132
16133 filter
16134 Filter out noisy pixels from "bitplane" set above. Default is
16135 disabled.
16136
16137 blackdetect
16138 Detect video intervals that are (almost) completely black. Can be
16139 useful to detect chapter transitions, commercials, or invalid
16140 recordings.
16141
16142 The filter outputs its detection analysis to both the log as well as
16143 frame metadata. If a black segment of at least the specified minimum
16144 duration is found, a line with the start and end timestamps as well as
16145 duration is printed to the log with level "info". In addition, a log
16146 line with level "debug" is printed per frame showing the black amount
16147 detected for that frame.
16148
16149 The filter also attaches metadata to the first frame of a black segment
16150 with key "lavfi.black_start" and to the first frame after the black
16151 segment ends with key "lavfi.black_end". The value is the frame's
16152 timestamp. This metadata is added regardless of the minimum duration
16153 specified.
16154
16155 The filter accepts the following options:
16156
16157 black_min_duration, d
16158 Set the minimum detected black duration expressed in seconds. It
16159 must be a non-negative floating point number.
16160
16161 Default value is 2.0.
16162
16163 picture_black_ratio_th, pic_th
16164 Set the threshold for considering a picture "black". Express the
16165 minimum value for the ratio:
16166
16167 <nb_black_pixels> / <nb_pixels>
16168
16169 for which a picture is considered black. Default value is 0.98.
16170
16171 pixel_black_th, pix_th
16172 Set the threshold for considering a pixel "black".
16173
16174 The threshold expresses the maximum pixel luminance value for which
16175 a pixel is considered "black". The provided value is scaled
16176 according to the following equation:
16177
16178 <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
16179
16180 luminance_range_size and luminance_minimum_value depend on the
16181 input video format, the range is [0-255] for YUV full-range formats
16182 and [16-235] for YUV non full-range formats.
16183
16184 Default value is 0.10.
16185
16186 The following example sets the maximum pixel threshold to the minimum
16187 value, and detects only black intervals of 2 or more seconds:
16188
16189 blackdetect=d=2:pix_th=0.00
16190
16191 blackframe
16192 Detect frames that are (almost) completely black. Can be useful to
16193 detect chapter transitions or commercials. Output lines consist of the
16194 frame number of the detected frame, the percentage of blackness, the
16195 position in the file if known or -1 and the timestamp in seconds.
16196
16197 In order to display the output lines, you need to set the loglevel at
16198 least to the AV_LOG_INFO value.
16199
16200 This filter exports frame metadata "lavfi.blackframe.pblack". The
16201 value represents the percentage of pixels in the picture that are below
16202 the threshold value.
16203
16204 It accepts the following parameters:
16205
16206 amount
16207 The percentage of the pixels that have to be below the threshold;
16208 it defaults to 98.
16209
16210 threshold, thresh
16211 The threshold below which a pixel value is considered black; it
16212 defaults to 32.
16213
16214 blend
16215 Blend two video frames into each other.
16216
16217 The "blend" filter takes two input streams and outputs one stream, the
16218 first input is the "top" layer and second input is "bottom" layer. By
16219 default, the output terminates when the longest input terminates.
16220
16221 The "tblend" (time blend) filter takes two consecutive frames from one
16222 single stream, and outputs the result obtained by blending the new
16223 frame on top of the old frame.
16224
16225 A description of the accepted options follows.
16226
16227 c0_mode
16228 c1_mode
16229 c2_mode
16230 c3_mode
16231 all_mode
16232 Set blend mode for specific pixel component or all pixel components
16233 in case of all_mode. Default value is "normal".
16234
16235 Available values for component modes are:
16236
16237 addition
16238 and
16239 average
16240 bleach
16241 burn
16242 darken
16243 difference
16244 divide
16245 dodge
16246 exclusion
16247 extremity
16248 freeze
16249 geometric
16250 glow
16251 grainextract
16252 grainmerge
16253 hardlight
16254 hardmix
16255 hardoverlay
16256 harmonic
16257 heat
16258 interpolate
16259 lighten
16260 linearlight
16261 multiply
16262 multiply128
16263 negation
16264 normal
16265 or
16266 overlay
16267 phoenix
16268 pinlight
16269 reflect
16270 screen
16271 softdifference
16272 softlight
16273 stain
16274 subtract
16275 vividlight
16276 xor
16277 c0_opacity
16278 c1_opacity
16279 c2_opacity
16280 c3_opacity
16281 all_opacity
16282 Set blend opacity for specific pixel component or all pixel
16283 components in case of all_opacity. Only used in combination with
16284 pixel component blend modes.
16285
16286 c0_expr
16287 c1_expr
16288 c2_expr
16289 c3_expr
16290 all_expr
16291 Set blend expression for specific pixel component or all pixel
16292 components in case of all_expr. Note that related mode options will
16293 be ignored if those are set.
16294
16295 The expressions can use the following variables:
16296
16297 N The sequential number of the filtered frame, starting from 0.
16298
16299 X
16300 Y the coordinates of the current sample
16301
16302 W
16303 H the width and height of currently filtered plane
16304
16305 SW
16306 SH Width and height scale for the plane being filtered. It is the
16307 ratio between the dimensions of the current plane to the luma
16308 plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
16309 luma plane and "0.5,0.5" for the chroma planes.
16310
16311 T Time of the current frame, expressed in seconds.
16312
16313 TOP, A
16314 Value of pixel component at current location for first video
16315 frame (top layer).
16316
16317 BOTTOM, B
16318 Value of pixel component at current location for second video
16319 frame (bottom layer).
16320
16321 The "blend" filter also supports the framesync options.
16322
16323 Examples
16324
16325 • Apply transition from bottom layer to top layer in first 10
16326 seconds:
16327
16328 blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
16329
16330 • Apply linear horizontal transition from top layer to bottom layer:
16331
16332 blend=all_expr='A*(X/W)+B*(1-X/W)'
16333
16334 • Apply 1x1 checkerboard effect:
16335
16336 blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
16337
16338 • Apply uncover left effect:
16339
16340 blend=all_expr='if(gte(N*SW+X,W),A,B)'
16341
16342 • Apply uncover down effect:
16343
16344 blend=all_expr='if(gte(Y-N*SH,0),A,B)'
16345
16346 • Apply uncover up-left effect:
16347
16348 blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
16349
16350 • Split diagonally video and shows top and bottom layer on each side:
16351
16352 blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
16353
16354 • Display differences between the current and the previous frame:
16355
16356 tblend=all_mode=grainextract
16357
16358 Commands
16359
16360 This filter supports same commands as options.
16361
16362 blockdetect
16363 Determines blockiness of frames without altering the input frames.
16364
16365 Based on Remco Muijs and Ihor Kirenko: "A no-reference blocking
16366 artifact measure for adaptive video processing." 2005 13th European
16367 signal processing conference.
16368
16369 The filter accepts the following options:
16370
16371 period_min
16372 period_max
16373 Set minimum and maximum values for determining pixel grids
16374 (periods). Default values are [3,24].
16375
16376 planes
16377 Set planes to filter. Default is first only.
16378
16379 Examples
16380
16381 • Determine blockiness for the first plane and search for periods
16382 within [8,32]:
16383
16384 blockdetect=period_min=8:period_max=32:planes=1
16385
16386 blurdetect
16387 Determines blurriness of frames without altering the input frames.
16388
16389 Based on Marziliano, Pina, et al. "A no-reference perceptual blur
16390 metric." Allows for a block-based abbreviation.
16391
16392 The filter accepts the following options:
16393
16394 low
16395 high
16396 Set low and high threshold values used by the Canny thresholding
16397 algorithm.
16398
16399 The high threshold selects the "strong" edge pixels, which are then
16400 connected through 8-connectivity with the "weak" edge pixels
16401 selected by the low threshold.
16402
16403 low and high threshold values must be chosen in the range [0,1],
16404 and low should be lesser or equal to high.
16405
16406 Default value for low is "20/255", and default value for high is
16407 "50/255".
16408
16409 radius
16410 Define the radius to search around an edge pixel for local maxima.
16411
16412 block_pct
16413 Determine blurriness only for the most significant blocks, given in
16414 percentage.
16415
16416 block_width
16417 Determine blurriness for blocks of width block_width. If set to any
16418 value smaller 1, no blocks are used and the whole image is
16419 processed as one no matter of block_height.
16420
16421 block_height
16422 Determine blurriness for blocks of height block_height. If set to
16423 any value smaller 1, no blocks are used and the whole image is
16424 processed as one no matter of block_width.
16425
16426 planes
16427 Set planes to filter. Default is first only.
16428
16429 Examples
16430
16431 • Determine blur for 80% of most significant 32x32 blocks:
16432
16433 blurdetect=block_width=32:block_height=32:block_pct=80
16434
16435 bm3d
16436 Denoise frames using Block-Matching 3D algorithm.
16437
16438 The filter accepts the following options.
16439
16440 sigma
16441 Set denoising strength. Default value is 1. Allowed range is from
16442 0 to 999.9. The denoising algorithm is very sensitive to sigma, so
16443 adjust it according to the source.
16444
16445 block
16446 Set local patch size. This sets dimensions in 2D.
16447
16448 bstep
16449 Set sliding step for processing blocks. Default value is 4.
16450 Allowed range is from 1 to 64. Smaller values allows processing
16451 more reference blocks and is slower.
16452
16453 group
16454 Set maximal number of similar blocks for 3rd dimension. Default
16455 value is 1. When set to 1, no block matching is done. Larger
16456 values allows more blocks in single group. Allowed range is from 1
16457 to 256.
16458
16459 range
16460 Set radius for search block matching. Default is 9. Allowed range
16461 is from 1 to INT32_MAX.
16462
16463 mstep
16464 Set step between two search locations for block matching. Default
16465 is 1. Allowed range is from 1 to 64. Smaller is slower.
16466
16467 thmse
16468 Set threshold of mean square error for block matching. Valid range
16469 is 0 to INT32_MAX.
16470
16471 hdthr
16472 Set thresholding parameter for hard thresholding in 3D transformed
16473 domain. Larger values results in stronger hard-thresholding
16474 filtering in frequency domain.
16475
16476 estim
16477 Set filtering estimation mode. Can be "basic" or "final". Default
16478 is "basic".
16479
16480 ref If enabled, filter will use 2nd stream for block matching. Default
16481 is disabled for "basic" value of estim option, and always enabled
16482 if value of estim is "final".
16483
16484 planes
16485 Set planes to filter. Default is all available except alpha.
16486
16487 Examples
16488
16489 • Basic filtering with bm3d:
16490
16491 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
16492
16493 • Same as above, but filtering only luma:
16494
16495 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
16496
16497 • Same as above, but with both estimation modes:
16498
16499 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
16500
16501 • Same as above, but prefilter with nlmeans filter instead:
16502
16503 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
16504
16505 boxblur
16506 Apply a boxblur algorithm to the input video.
16507
16508 It accepts the following parameters:
16509
16510 luma_radius, lr
16511 luma_power, lp
16512 chroma_radius, cr
16513 chroma_power, cp
16514 alpha_radius, ar
16515 alpha_power, ap
16516
16517 A description of the accepted options follows.
16518
16519 luma_radius, lr
16520 chroma_radius, cr
16521 alpha_radius, ar
16522 Set an expression for the box radius in pixels used for blurring
16523 the corresponding input plane.
16524
16525 The radius value must be a non-negative number, and must not be
16526 greater than the value of the expression "min(w,h)/2" for the luma
16527 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
16528
16529 Default value for luma_radius is "2". If not specified,
16530 chroma_radius and alpha_radius default to the corresponding value
16531 set for luma_radius.
16532
16533 The expressions can contain the following constants:
16534
16535 w
16536 h The input width and height in pixels.
16537
16538 cw
16539 ch The input chroma image width and height in pixels.
16540
16541 hsub
16542 vsub
16543 The horizontal and vertical chroma subsample values. For
16544 example, for the pixel format "yuv422p", hsub is 2 and vsub is
16545 1.
16546
16547 luma_power, lp
16548 chroma_power, cp
16549 alpha_power, ap
16550 Specify how many times the boxblur filter is applied to the
16551 corresponding plane.
16552
16553 Default value for luma_power is 2. If not specified, chroma_power
16554 and alpha_power default to the corresponding value set for
16555 luma_power.
16556
16557 A value of 0 will disable the effect.
16558
16559 Examples
16560
16561 • Apply a boxblur filter with the luma, chroma, and alpha radii set
16562 to 2:
16563
16564 boxblur=luma_radius=2:luma_power=1
16565 boxblur=2:1
16566
16567 • Set the luma radius to 2, and alpha and chroma radius to 0:
16568
16569 boxblur=2:1:cr=0:ar=0
16570
16571 • Set the luma and chroma radii to a fraction of the video dimension:
16572
16573 boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
16574
16575 bwdif
16576 Deinterlace the input video ("bwdif" stands for "Bob Weaver
16577 Deinterlacing Filter").
16578
16579 Motion adaptive deinterlacing based on yadif with the use of w3fdif and
16580 cubic interpolation algorithms. It accepts the following parameters:
16581
16582 mode
16583 The interlacing mode to adopt. It accepts one of the following
16584 values:
16585
16586 0, send_frame
16587 Output one frame for each frame.
16588
16589 1, send_field
16590 Output one frame for each field.
16591
16592 The default value is "send_field".
16593
16594 parity
16595 The picture field parity assumed for the input interlaced video. It
16596 accepts one of the following values:
16597
16598 0, tff
16599 Assume the top field is first.
16600
16601 1, bff
16602 Assume the bottom field is first.
16603
16604 -1, auto
16605 Enable automatic detection of field parity.
16606
16607 The default value is "auto". If the interlacing is unknown or the
16608 decoder does not export this information, top field first will be
16609 assumed.
16610
16611 deint
16612 Specify which frames to deinterlace. Accepts one of the following
16613 values:
16614
16615 0, all
16616 Deinterlace all frames.
16617
16618 1, interlaced
16619 Only deinterlace frames marked as interlaced.
16620
16621 The default value is "all".
16622
16623 cas
16624 Apply Contrast Adaptive Sharpen filter to video stream.
16625
16626 The filter accepts the following options:
16627
16628 strength
16629 Set the sharpening strength. Default value is 0.
16630
16631 planes
16632 Set planes to filter. Default value is to filter all planes except
16633 alpha plane.
16634
16635 Commands
16636
16637 This filter supports same commands as options.
16638
16639 chromahold
16640 Remove all color information for all colors except for certain one.
16641
16642 The filter accepts the following options:
16643
16644 color
16645 The color which will not be replaced with neutral chroma.
16646
16647 similarity
16648 Similarity percentage with the above color. 0.01 matches only the
16649 exact key color, while 1.0 matches everything.
16650
16651 blend
16652 Blend percentage. 0.0 makes pixels either fully gray, or not gray
16653 at all. Higher values result in more preserved color.
16654
16655 yuv Signals that the color passed is already in YUV instead of RGB.
16656
16657 Literal colors like "green" or "red" don't make sense with this
16658 enabled anymore. This can be used to pass exact YUV values as
16659 hexadecimal numbers.
16660
16661 Commands
16662
16663 This filter supports same commands as options. The command accepts the
16664 same syntax of the corresponding option.
16665
16666 If the specified expression is not valid, it is kept at its current
16667 value.
16668
16669 chromakey
16670 YUV colorspace color/chroma keying.
16671
16672 The filter accepts the following options:
16673
16674 color
16675 The color which will be replaced with transparency.
16676
16677 similarity
16678 Similarity percentage with the key color.
16679
16680 0.01 matches only the exact key color, while 1.0 matches
16681 everything.
16682
16683 blend
16684 Blend percentage.
16685
16686 0.0 makes pixels either fully transparent, or not transparent at
16687 all.
16688
16689 Higher values result in semi-transparent pixels, with a higher
16690 transparency the more similar the pixels color is to the key color.
16691
16692 yuv Signals that the color passed is already in YUV instead of RGB.
16693
16694 Literal colors like "green" or "red" don't make sense with this
16695 enabled anymore. This can be used to pass exact YUV values as
16696 hexadecimal numbers.
16697
16698 Commands
16699
16700 This filter supports same commands as options. The command accepts the
16701 same syntax of the corresponding option.
16702
16703 If the specified expression is not valid, it is kept at its current
16704 value.
16705
16706 Examples
16707
16708 • Make every green pixel in the input image transparent:
16709
16710 ffmpeg -i input.png -vf chromakey=green out.png
16711
16712 • Overlay a greenscreen-video on top of a static black background.
16713
16714 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
16715
16716 chromakey_cuda
16717 CUDA accelerated YUV colorspace color/chroma keying.
16718
16719 This filter works like normal chromakey filter but operates on CUDA
16720 frames. for more details and parameters see chromakey.
16721
16722 Examples
16723
16724 • Make all the green pixels in the input video transparent and use it
16725 as an overlay for another video:
16726
16727 ./ffmpeg \
16728 -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4 \
16729 -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
16730 -init_hw_device cuda \
16731 -filter_complex \
16732 " \
16733 [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
16734 [1:v]scale_cuda=format=yuv420p[base]; \
16735 [base][overlay_video]overlay_cuda" \
16736 -an -sn -c:v h264_nvenc -cq 20 output.mp4
16737
16738 • Process two software sources, explicitly uploading the frames:
16739
16740 ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
16741 -f lavfi -i color=size=800x600:color=white,format=yuv420p \
16742 -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
16743 -filter_complex \
16744 " \
16745 [0]hwupload[under]; \
16746 [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
16747 [under][over]overlay_cuda" \
16748 -c:v hevc_nvenc -cq 18 -preset slow output.mp4
16749
16750 chromanr
16751 Reduce chrominance noise.
16752
16753 The filter accepts the following options:
16754
16755 thres
16756 Set threshold for averaging chrominance values. Sum of absolute
16757 difference of Y, U and V pixel components of current pixel and
16758 neighbour pixels lower than this threshold will be used in
16759 averaging. Luma component is left unchanged and is copied to
16760 output. Default value is 30. Allowed range is from 1 to 200.
16761
16762 sizew
16763 Set horizontal radius of rectangle used for averaging. Allowed
16764 range is from 1 to 100. Default value is 5.
16765
16766 sizeh
16767 Set vertical radius of rectangle used for averaging. Allowed range
16768 is from 1 to 100. Default value is 5.
16769
16770 stepw
16771 Set horizontal step when averaging. Default value is 1. Allowed
16772 range is from 1 to 50. Mostly useful to speed-up filtering.
16773
16774 steph
16775 Set vertical step when averaging. Default value is 1. Allowed
16776 range is from 1 to 50. Mostly useful to speed-up filtering.
16777
16778 threy
16779 Set Y threshold for averaging chrominance values. Set finer
16780 control for max allowed difference between Y components of current
16781 pixel and neigbour pixels. Default value is 200. Allowed range is
16782 from 1 to 200.
16783
16784 threu
16785 Set U threshold for averaging chrominance values. Set finer
16786 control for max allowed difference between U components of current
16787 pixel and neigbour pixels. Default value is 200. Allowed range is
16788 from 1 to 200.
16789
16790 threv
16791 Set V threshold for averaging chrominance values. Set finer
16792 control for max allowed difference between V components of current
16793 pixel and neigbour pixels. Default value is 200. Allowed range is
16794 from 1 to 200.
16795
16796 distance
16797 Set distance type used in calculations.
16798
16799 manhattan
16800 Absolute difference.
16801
16802 euclidean
16803 Difference squared.
16804
16805 Default distance type is manhattan.
16806
16807 Commands
16808
16809 This filter supports same commands as options. The command accepts the
16810 same syntax of the corresponding option.
16811
16812 chromashift
16813 Shift chroma pixels horizontally and/or vertically.
16814
16815 The filter accepts the following options:
16816
16817 cbh Set amount to shift chroma-blue horizontally.
16818
16819 cbv Set amount to shift chroma-blue vertically.
16820
16821 crh Set amount to shift chroma-red horizontally.
16822
16823 crv Set amount to shift chroma-red vertically.
16824
16825 edge
16826 Set edge mode, can be smear, default, or warp.
16827
16828 Commands
16829
16830 This filter supports the all above options as commands.
16831
16832 ciescope
16833 Display CIE color diagram with pixels overlaid onto it.
16834
16835 The filter accepts the following options:
16836
16837 system
16838 Set color system.
16839
16840 ntsc, 470m
16841 ebu, 470bg
16842 smpte
16843 240m
16844 apple
16845 widergb
16846 cie1931
16847 rec709, hdtv
16848 uhdtv, rec2020
16849 dcip3
16850 cie Set CIE system.
16851
16852 xyy
16853 ucs
16854 luv
16855 gamuts
16856 Set what gamuts to draw.
16857
16858 See "system" option for available values.
16859
16860 size, s
16861 Set ciescope size, by default set to 512.
16862
16863 intensity, i
16864 Set intensity used to map input pixel values to CIE diagram.
16865
16866 contrast
16867 Set contrast used to draw tongue colors that are out of active
16868 color system gamut.
16869
16870 corrgamma
16871 Correct gamma displayed on scope, by default enabled.
16872
16873 showwhite
16874 Show white point on CIE diagram, by default disabled.
16875
16876 gamma
16877 Set input gamma. Used only with XYZ input color space.
16878
16879 fill
16880 Fill with CIE colors. By default is enabled.
16881
16882 codecview
16883 Visualize information exported by some codecs.
16884
16885 Some codecs can export information through frames using side-data or
16886 other means. For example, some MPEG based codecs export motion vectors
16887 through the export_mvs flag in the codec flags2 option.
16888
16889 The filter accepts the following option:
16890
16891 block
16892 Display block partition structure using the luma plane.
16893
16894 mv Set motion vectors to visualize.
16895
16896 Available flags for mv are:
16897
16898 pf forward predicted MVs of P-frames
16899
16900 bf forward predicted MVs of B-frames
16901
16902 bb backward predicted MVs of B-frames
16903
16904 qp Display quantization parameters using the chroma planes.
16905
16906 mv_type, mvt
16907 Set motion vectors type to visualize. Includes MVs from all frames
16908 unless specified by frame_type option.
16909
16910 Available flags for mv_type are:
16911
16912 fp forward predicted MVs
16913
16914 bp backward predicted MVs
16915
16916 frame_type, ft
16917 Set frame type to visualize motion vectors of.
16918
16919 Available flags for frame_type are:
16920
16921 if intra-coded frames (I-frames)
16922
16923 pf predicted frames (P-frames)
16924
16925 bf bi-directionally predicted frames (B-frames)
16926
16927 Examples
16928
16929 • Visualize forward predicted MVs of all frames using ffplay:
16930
16931 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
16932
16933 • Visualize multi-directionals MVs of P and B-Frames using ffplay:
16934
16935 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
16936
16937 colorbalance
16938 Modify intensity of primary colors (red, green and blue) of input
16939 frames.
16940
16941 The filter allows an input frame to be adjusted in the shadows,
16942 midtones or highlights regions for the red-cyan, green-magenta or blue-
16943 yellow balance.
16944
16945 A positive adjustment value shifts the balance towards the primary
16946 color, a negative value towards the complementary color.
16947
16948 The filter accepts the following options:
16949
16950 rs
16951 gs
16952 bs Adjust red, green and blue shadows (darkest pixels).
16953
16954 rm
16955 gm
16956 bm Adjust red, green and blue midtones (medium pixels).
16957
16958 rh
16959 gh
16960 bh Adjust red, green and blue highlights (brightest pixels).
16961
16962 Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
16963
16964 pl Preserve lightness when changing color balance. Default is
16965 disabled.
16966
16967 Examples
16968
16969 • Add red color cast to shadows:
16970
16971 colorbalance=rs=.3
16972
16973 Commands
16974
16975 This filter supports the all above options as commands.
16976
16977 colorcontrast
16978 Adjust color contrast between RGB components.
16979
16980 The filter accepts the following options:
16981
16982 rc Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
16983 -1.0 to 1.0.
16984
16985 gm Set the green-magenta contrast. Defaults is 0.0. Allowed range is
16986 from -1.0 to 1.0.
16987
16988 by Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
16989 from -1.0 to 1.0.
16990
16991 rcw
16992 gmw
16993 byw Set the weight of each "rc", "gm", "by" option value. Default value
16994 is 0.0. Allowed range is from 0.0 to 1.0. If all weights are 0.0
16995 filtering is disabled.
16996
16997 pl Set the amount of preserving lightness. Default value is 0.0.
16998 Allowed range is from 0.0 to 1.0.
16999
17000 Commands
17001
17002 This filter supports the all above options as commands.
17003
17004 colorcorrect
17005 Adjust color white balance selectively for blacks and whites. This
17006 filter operates in YUV colorspace.
17007
17008 The filter accepts the following options:
17009
17010 rl Set the red shadow spot. Allowed range is from -1.0 to 1.0.
17011 Default value is 0.
17012
17013 bl Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
17014 Default value is 0.
17015
17016 rh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17017 Default value is 0.
17018
17019 bh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17020 Default value is 0.
17021
17022 saturation
17023 Set the amount of saturation. Allowed range is from -3.0 to 3.0.
17024 Default value is 1.
17025
17026 analyze
17027 If set to anything other than "manual" it will analyze every frame
17028 and use derived parameters for filtering output frame.
17029
17030 Possible values are:
17031
17032 manual
17033 average
17034 minmax
17035 median
17036
17037 Default value is "manual".
17038
17039 Commands
17040
17041 This filter supports the all above options as commands.
17042
17043 colorchannelmixer
17044 Adjust video input frames by re-mixing color channels.
17045
17046 This filter modifies a color channel by adding the values associated to
17047 the other channels of the same pixels. For example if the value to
17048 modify is red, the output value will be:
17049
17050 <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
17051
17052 The filter accepts the following options:
17053
17054 rr
17055 rg
17056 rb
17057 ra Adjust contribution of input red, green, blue and alpha channels
17058 for output red channel. Default is 1 for rr, and 0 for rg, rb and
17059 ra.
17060
17061 gr
17062 gg
17063 gb
17064 ga Adjust contribution of input red, green, blue and alpha channels
17065 for output green channel. Default is 1 for gg, and 0 for gr, gb
17066 and ga.
17067
17068 br
17069 bg
17070 bb
17071 ba Adjust contribution of input red, green, blue and alpha channels
17072 for output blue channel. Default is 1 for bb, and 0 for br, bg and
17073 ba.
17074
17075 ar
17076 ag
17077 ab
17078 aa Adjust contribution of input red, green, blue and alpha channels
17079 for output alpha channel. Default is 1 for aa, and 0 for ar, ag
17080 and ab.
17081
17082 Allowed ranges for options are "[-2.0, 2.0]".
17083
17084 pc Set preserve color mode. The accepted values are:
17085
17086 none
17087 Disable color preserving, this is default.
17088
17089 lum Preserve luminance.
17090
17091 max Preserve max value of RGB triplet.
17092
17093 avg Preserve average value of RGB triplet.
17094
17095 sum Preserve sum value of RGB triplet.
17096
17097 nrm Preserve normalized value of RGB triplet.
17098
17099 pwr Preserve power value of RGB triplet.
17100
17101 pa Set the preserve color amount when changing colors. Allowed range
17102 is from "[0.0, 1.0]". Default is 0.0, thus disabled.
17103
17104 Examples
17105
17106 • Convert source to grayscale:
17107
17108 colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
17109
17110 • Simulate sepia tones:
17111
17112 colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
17113
17114 Commands
17115
17116 This filter supports the all above options as commands.
17117
17118 colorize
17119 Overlay a solid color on the video stream.
17120
17121 The filter accepts the following options:
17122
17123 hue Set the color hue. Allowed range is from 0 to 360. Default value
17124 is 0.
17125
17126 saturation
17127 Set the color saturation. Allowed range is from 0 to 1. Default
17128 value is 0.5.
17129
17130 lightness
17131 Set the color lightness. Allowed range is from 0 to 1. Default
17132 value is 0.5.
17133
17134 mix Set the mix of source lightness. By default is set to 1.0. Allowed
17135 range is from 0.0 to 1.0.
17136
17137 Commands
17138
17139 This filter supports the all above options as commands.
17140
17141 colorkey
17142 RGB colorspace color keying. This filter operates on 8-bit RGB format
17143 frames by setting the alpha component of each pixel which falls within
17144 the similarity radius of the key color to 0. The alpha value for pixels
17145 outside the similarity radius depends on the value of the blend option.
17146
17147 The filter accepts the following options:
17148
17149 color
17150 Set the color for which alpha will be set to 0 (full transparency).
17151 See "Color" section in the ffmpeg-utils manual. Default is
17152 "black".
17153
17154 similarity
17155 Set the radius from the key color within which other colors also
17156 have full transparency. The computed distance is related to the
17157 unit fractional distance in 3D space between the RGB values of the
17158 key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
17159 within a very small radius around the exact key color, while 1.0
17160 matches everything. Default is 0.01.
17161
17162 blend
17163 Set how the alpha value for pixels that fall outside the similarity
17164 radius is computed. 0.0 makes pixels either fully transparent or
17165 fully opaque. Higher values result in semi-transparent pixels,
17166 with greater transparency the more similar the pixel color is to
17167 the key color. Range is 0.0 to 1.0. Default is 0.0.
17168
17169 Examples
17170
17171 • Make every green pixel in the input image transparent:
17172
17173 ffmpeg -i input.png -vf colorkey=green out.png
17174
17175 • Overlay a greenscreen-video on top of a static background image.
17176
17177 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
17178
17179 Commands
17180
17181 This filter supports same commands as options. The command accepts the
17182 same syntax of the corresponding option.
17183
17184 If the specified expression is not valid, it is kept at its current
17185 value.
17186
17187 colorhold
17188 Remove all color information for all RGB colors except for certain one.
17189
17190 The filter accepts the following options:
17191
17192 color
17193 The color which will not be replaced with neutral gray.
17194
17195 similarity
17196 Similarity percentage with the above color. 0.01 matches only the
17197 exact key color, while 1.0 matches everything.
17198
17199 blend
17200 Blend percentage. 0.0 makes pixels fully gray. Higher values
17201 result in more preserved color.
17202
17203 Commands
17204
17205 This filter supports same commands as options. The command accepts the
17206 same syntax of the corresponding option.
17207
17208 If the specified expression is not valid, it is kept at its current
17209 value.
17210
17211 colorlevels
17212 Adjust video input frames using levels.
17213
17214 The filter accepts the following options:
17215
17216 rimin
17217 gimin
17218 bimin
17219 aimin
17220 Adjust red, green, blue and alpha input black point. Allowed
17221 ranges for options are "[-1.0, 1.0]". Defaults are 0.
17222
17223 rimax
17224 gimax
17225 bimax
17226 aimax
17227 Adjust red, green, blue and alpha input white point. Allowed
17228 ranges for options are "[-1.0, 1.0]". Defaults are 1.
17229
17230 Input levels are used to lighten highlights (bright tones), darken
17231 shadows (dark tones), change the balance of bright and dark tones.
17232
17233 romin
17234 gomin
17235 bomin
17236 aomin
17237 Adjust red, green, blue and alpha output black point. Allowed
17238 ranges for options are "[0, 1.0]". Defaults are 0.
17239
17240 romax
17241 gomax
17242 bomax
17243 aomax
17244 Adjust red, green, blue and alpha output white point. Allowed
17245 ranges for options are "[0, 1.0]". Defaults are 1.
17246
17247 Output levels allows manual selection of a constrained output level
17248 range.
17249
17250 preserve
17251 Set preserve color mode. The accepted values are:
17252
17253 none
17254 Disable color preserving, this is default.
17255
17256 lum Preserve luminance.
17257
17258 max Preserve max value of RGB triplet.
17259
17260 avg Preserve average value of RGB triplet.
17261
17262 sum Preserve sum value of RGB triplet.
17263
17264 nrm Preserve normalized value of RGB triplet.
17265
17266 pwr Preserve power value of RGB triplet.
17267
17268 Examples
17269
17270 • Make video output darker:
17271
17272 colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
17273
17274 • Increase contrast:
17275
17276 colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
17277
17278 • Make video output lighter:
17279
17280 colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
17281
17282 • Increase brightness:
17283
17284 colorlevels=romin=0.5:gomin=0.5:bomin=0.5
17285
17286 Commands
17287
17288 This filter supports the all above options as commands.
17289
17290 colormap
17291 Apply custom color maps to video stream.
17292
17293 This filter needs three input video streams. First stream is video
17294 stream that is going to be filtered out. Second and third video stream
17295 specify color patches for source color to target color mapping.
17296
17297 The filter accepts the following options:
17298
17299 patch_size
17300 Set the source and target video stream patch size in pixels.
17301
17302 nb_patches
17303 Set the max number of used patches from source and target video
17304 stream. Default value is number of patches available in additional
17305 video streams. Max allowed number of patches is 64.
17306
17307 type
17308 Set the adjustments used for target colors. Can be "relative" or
17309 "absolute". Defaults is "absolute".
17310
17311 kernel
17312 Set the kernel used to measure color differences between mapped
17313 colors.
17314
17315 The accepted values are:
17316
17317 euclidean
17318 weuclidean
17319
17320 Default is "euclidean".
17321
17322 colormatrix
17323 Convert color matrix.
17324
17325 The filter accepts the following options:
17326
17327 src
17328 dst Specify the source and destination color matrix. Both values must
17329 be specified.
17330
17331 The accepted values are:
17332
17333 bt709
17334 BT.709
17335
17336 fcc FCC
17337
17338 bt601
17339 BT.601
17340
17341 bt470
17342 BT.470
17343
17344 bt470bg
17345 BT.470BG
17346
17347 smpte170m
17348 SMPTE-170M
17349
17350 smpte240m
17351 SMPTE-240M
17352
17353 bt2020
17354 BT.2020
17355
17356 For example to convert from BT.601 to SMPTE-240M, use the command:
17357
17358 colormatrix=bt601:smpte240m
17359
17360 colorspace
17361 Convert colorspace, transfer characteristics or color primaries. Input
17362 video needs to have an even size.
17363
17364 The filter accepts the following options:
17365
17366 all Specify all color properties at once.
17367
17368 The accepted values are:
17369
17370 bt470m
17371 BT.470M
17372
17373 bt470bg
17374 BT.470BG
17375
17376 bt601-6-525
17377 BT.601-6 525
17378
17379 bt601-6-625
17380 BT.601-6 625
17381
17382 bt709
17383 BT.709
17384
17385 smpte170m
17386 SMPTE-170M
17387
17388 smpte240m
17389 SMPTE-240M
17390
17391 bt2020
17392 BT.2020
17393
17394 space
17395 Specify output colorspace.
17396
17397 The accepted values are:
17398
17399 bt709
17400 BT.709
17401
17402 fcc FCC
17403
17404 bt470bg
17405 BT.470BG or BT.601-6 625
17406
17407 smpte170m
17408 SMPTE-170M or BT.601-6 525
17409
17410 smpte240m
17411 SMPTE-240M
17412
17413 ycgco
17414 YCgCo
17415
17416 bt2020ncl
17417 BT.2020 with non-constant luminance
17418
17419 trc Specify output transfer characteristics.
17420
17421 The accepted values are:
17422
17423 bt709
17424 BT.709
17425
17426 bt470m
17427 BT.470M
17428
17429 bt470bg
17430 BT.470BG
17431
17432 gamma22
17433 Constant gamma of 2.2
17434
17435 gamma28
17436 Constant gamma of 2.8
17437
17438 smpte170m
17439 SMPTE-170M, BT.601-6 625 or BT.601-6 525
17440
17441 smpte240m
17442 SMPTE-240M
17443
17444 srgb
17445 SRGB
17446
17447 iec61966-2-1
17448 iec61966-2-1
17449
17450 iec61966-2-4
17451 iec61966-2-4
17452
17453 xvycc
17454 xvycc
17455
17456 bt2020-10
17457 BT.2020 for 10-bits content
17458
17459 bt2020-12
17460 BT.2020 for 12-bits content
17461
17462 primaries
17463 Specify output color primaries.
17464
17465 The accepted values are:
17466
17467 bt709
17468 BT.709
17469
17470 bt470m
17471 BT.470M
17472
17473 bt470bg
17474 BT.470BG or BT.601-6 625
17475
17476 smpte170m
17477 SMPTE-170M or BT.601-6 525
17478
17479 smpte240m
17480 SMPTE-240M
17481
17482 film
17483 film
17484
17485 smpte431
17486 SMPTE-431
17487
17488 smpte432
17489 SMPTE-432
17490
17491 bt2020
17492 BT.2020
17493
17494 jedec-p22
17495 JEDEC P22 phosphors
17496
17497 range
17498 Specify output color range.
17499
17500 The accepted values are:
17501
17502 tv TV (restricted) range
17503
17504 mpeg
17505 MPEG (restricted) range
17506
17507 pc PC (full) range
17508
17509 jpeg
17510 JPEG (full) range
17511
17512 format
17513 Specify output color format.
17514
17515 The accepted values are:
17516
17517 yuv420p
17518 YUV 4:2:0 planar 8-bits
17519
17520 yuv420p10
17521 YUV 4:2:0 planar 10-bits
17522
17523 yuv420p12
17524 YUV 4:2:0 planar 12-bits
17525
17526 yuv422p
17527 YUV 4:2:2 planar 8-bits
17528
17529 yuv422p10
17530 YUV 4:2:2 planar 10-bits
17531
17532 yuv422p12
17533 YUV 4:2:2 planar 12-bits
17534
17535 yuv444p
17536 YUV 4:4:4 planar 8-bits
17537
17538 yuv444p10
17539 YUV 4:4:4 planar 10-bits
17540
17541 yuv444p12
17542 YUV 4:4:4 planar 12-bits
17543
17544 fast
17545 Do a fast conversion, which skips gamma/primary correction. This
17546 will take significantly less CPU, but will be mathematically
17547 incorrect. To get output compatible with that produced by the
17548 colormatrix filter, use fast=1.
17549
17550 dither
17551 Specify dithering mode.
17552
17553 The accepted values are:
17554
17555 none
17556 No dithering
17557
17558 fsb Floyd-Steinberg dithering
17559
17560 wpadapt
17561 Whitepoint adaptation mode.
17562
17563 The accepted values are:
17564
17565 bradford
17566 Bradford whitepoint adaptation
17567
17568 vonkries
17569 von Kries whitepoint adaptation
17570
17571 identity
17572 identity whitepoint adaptation (i.e. no whitepoint adaptation)
17573
17574 iall
17575 Override all input properties at once. Same accepted values as all.
17576
17577 ispace
17578 Override input colorspace. Same accepted values as space.
17579
17580 iprimaries
17581 Override input color primaries. Same accepted values as primaries.
17582
17583 itrc
17584 Override input transfer characteristics. Same accepted values as
17585 trc.
17586
17587 irange
17588 Override input color range. Same accepted values as range.
17589
17590 The filter converts the transfer characteristics, color space and color
17591 primaries to the specified user values. The output value, if not
17592 specified, is set to a default value based on the "all" property. If
17593 that property is also not specified, the filter will log an error. The
17594 output color range and format default to the same value as the input
17595 color range and format. The input transfer characteristics, color
17596 space, color primaries and color range should be set on the input data.
17597 If any of these are missing, the filter will log an error and no
17598 conversion will take place.
17599
17600 For example to convert the input to SMPTE-240M, use the command:
17601
17602 colorspace=smpte240m
17603
17604 colortemperature
17605 Adjust color temperature in video to simulate variations in ambient
17606 color temperature.
17607
17608 The filter accepts the following options:
17609
17610 temperature
17611 Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
17612 Default value is 6500 K.
17613
17614 mix Set mixing with filtered output. Allowed range is from 0 to 1.
17615 Default value is 1.
17616
17617 pl Set the amount of preserving lightness. Allowed range is from 0 to
17618 1. Default value is 0.
17619
17620 Commands
17621
17622 This filter supports same commands as options.
17623
17624 convolution
17625 Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
17626 elements.
17627
17628 The filter accepts the following options:
17629
17630 0m
17631 1m
17632 2m
17633 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
17634 signed integers in square mode, and from 1 to 49 odd number of
17635 signed integers in row mode.
17636
17637 0rdiv
17638 1rdiv
17639 2rdiv
17640 3rdiv
17641 Set multiplier for calculated value for each plane. If unset or 0,
17642 it will be sum of all matrix elements.
17643
17644 0bias
17645 1bias
17646 2bias
17647 3bias
17648 Set bias for each plane. This value is added to the result of the
17649 multiplication. Useful for making the overall image brighter or
17650 darker. Default is 0.0.
17651
17652 0mode
17653 1mode
17654 2mode
17655 3mode
17656 Set matrix mode for each plane. Can be square, row or column.
17657 Default is square.
17658
17659 Commands
17660
17661 This filter supports the all above options as commands.
17662
17663 Examples
17664
17665 • Apply sharpen:
17666
17667 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"
17668
17669 • Apply blur:
17670
17671 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"
17672
17673 • Apply edge enhance:
17674
17675 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"
17676
17677 • Apply edge detect:
17678
17679 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"
17680
17681 • Apply laplacian edge detector which includes diagonals:
17682
17683 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"
17684
17685 • Apply emboss:
17686
17687 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"
17688
17689 convolve
17690 Apply 2D convolution of video stream in frequency domain using second
17691 stream as impulse.
17692
17693 The filter accepts the following options:
17694
17695 planes
17696 Set which planes to process.
17697
17698 impulse
17699 Set which impulse video frames will be processed, can be first or
17700 all. Default is all.
17701
17702 The "convolve" filter also supports the framesync options.
17703
17704 copy
17705 Copy the input video source unchanged to the output. This is mainly
17706 useful for testing purposes.
17707
17708 coreimage
17709 Video filtering on GPU using Apple's CoreImage API on OSX.
17710
17711 Hardware acceleration is based on an OpenGL context. Usually, this
17712 means it is processed by video hardware. However, software-based OpenGL
17713 implementations exist which means there is no guarantee for hardware
17714 processing. It depends on the respective OSX.
17715
17716 There are many filters and image generators provided by Apple that come
17717 with a large variety of options. The filter has to be referenced by its
17718 name along with its options.
17719
17720 The coreimage filter accepts the following options:
17721
17722 list_filters
17723 List all available filters and generators along with all their
17724 respective options as well as possible minimum and maximum values
17725 along with the default values.
17726
17727 list_filters=true
17728
17729 filter
17730 Specify all filters by their respective name and options. Use
17731 list_filters to determine all valid filter names and options.
17732 Numerical options are specified by a float value and are
17733 automatically clamped to their respective value range. Vector and
17734 color options have to be specified by a list of space separated
17735 float values. Character escaping has to be done. A special option
17736 name "default" is available to use default options for a filter.
17737
17738 It is required to specify either "default" or at least one of the
17739 filter options. All omitted options are used with their default
17740 values. The syntax of the filter string is as follows:
17741
17742 filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
17743
17744 output_rect
17745 Specify a rectangle where the output of the filter chain is copied
17746 into the input image. It is given by a list of space separated
17747 float values:
17748
17749 output_rect=x\ y\ width\ height
17750
17751 If not given, the output rectangle equals the dimensions of the
17752 input image. The output rectangle is automatically cropped at the
17753 borders of the input image. Negative values are valid for each
17754 component.
17755
17756 output_rect=25\ 25\ 100\ 100
17757
17758 Several filters can be chained for successive processing without GPU-
17759 HOST transfers allowing for fast processing of complex filter chains.
17760 Currently, only filters with zero (generators) or exactly one (filters)
17761 input image and one output image are supported. Also, transition
17762 filters are not yet usable as intended.
17763
17764 Some filters generate output images with additional padding depending
17765 on the respective filter kernel. The padding is automatically removed
17766 to ensure the filter output has the same size as the input image.
17767
17768 For image generators, the size of the output image is determined by the
17769 previous output image of the filter chain or the input image of the
17770 whole filterchain, respectively. The generators do not use the pixel
17771 information of this image to generate their output. However, the
17772 generated output is blended onto this image, resulting in partial or
17773 complete coverage of the output image.
17774
17775 The coreimagesrc video source can be used for generating input images
17776 which are directly fed into the filter chain. By using it, providing
17777 input images by another video source or an input video is not required.
17778
17779 Examples
17780
17781 • List all filters available:
17782
17783 coreimage=list_filters=true
17784
17785 • Use the CIBoxBlur filter with default options to blur an image:
17786
17787 coreimage=filter=CIBoxBlur@default
17788
17789 • Use a filter chain with CISepiaTone at default values and
17790 CIVignetteEffect with its center at 100x100 and a radius of 50
17791 pixels:
17792
17793 coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
17794
17795 • Use nullsrc and CIQRCodeGenerator to create a QR code for the
17796 FFmpeg homepage, given as complete and escaped command-line for
17797 Apple's standard bash shell:
17798
17799 ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
17800
17801 cover_rect
17802 Cover a rectangular object
17803
17804 It accepts the following options:
17805
17806 cover
17807 Filepath of the optional cover image, needs to be in yuv420.
17808
17809 mode
17810 Set covering mode.
17811
17812 It accepts the following values:
17813
17814 cover
17815 cover it by the supplied image
17816
17817 blur
17818 cover it by interpolating the surrounding pixels
17819
17820 Default value is blur.
17821
17822 Examples
17823
17824 • Cover a rectangular object by the supplied image of a given video
17825 using ffmpeg:
17826
17827 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
17828
17829 crop
17830 Crop the input video to given dimensions.
17831
17832 It accepts the following parameters:
17833
17834 w, out_w
17835 The width of the output video. It defaults to "iw". This
17836 expression is evaluated only once during the filter configuration,
17837 or when the w or out_w command is sent.
17838
17839 h, out_h
17840 The height of the output video. It defaults to "ih". This
17841 expression is evaluated only once during the filter configuration,
17842 or when the h or out_h command is sent.
17843
17844 x The horizontal position, in the input video, of the left edge of
17845 the output video. It defaults to "(in_w-out_w)/2". This expression
17846 is evaluated per-frame.
17847
17848 y The vertical position, in the input video, of the top edge of the
17849 output video. It defaults to "(in_h-out_h)/2". This expression is
17850 evaluated per-frame.
17851
17852 keep_aspect
17853 If set to 1 will force the output display aspect ratio to be the
17854 same of the input, by changing the output sample aspect ratio. It
17855 defaults to 0.
17856
17857 exact
17858 Enable exact cropping. If enabled, subsampled videos will be
17859 cropped at exact width/height/x/y as specified and will not be
17860 rounded to nearest smaller value. It defaults to 0.
17861
17862 The out_w, out_h, x, y parameters are expressions containing the
17863 following constants:
17864
17865 x
17866 y The computed values for x and y. They are evaluated for each new
17867 frame.
17868
17869 in_w
17870 in_h
17871 The input width and height.
17872
17873 iw
17874 ih These are the same as in_w and in_h.
17875
17876 out_w
17877 out_h
17878 The output (cropped) width and height.
17879
17880 ow
17881 oh These are the same as out_w and out_h.
17882
17883 a same as iw / ih
17884
17885 sar input sample aspect ratio
17886
17887 dar input display aspect ratio, it is the same as (iw / ih) * sar
17888
17889 hsub
17890 vsub
17891 horizontal and vertical chroma subsample values. For example for
17892 the pixel format "yuv422p" hsub is 2 and vsub is 1.
17893
17894 n The number of the input frame, starting from 0.
17895
17896 pos the position in the file of the input frame, NAN if unknown
17897
17898 t The timestamp expressed in seconds. It's NAN if the input timestamp
17899 is unknown.
17900
17901 The expression for out_w may depend on the value of out_h, and the
17902 expression for out_h may depend on out_w, but they cannot depend on x
17903 and y, as x and y are evaluated after out_w and out_h.
17904
17905 The x and y parameters specify the expressions for the position of the
17906 top-left corner of the output (non-cropped) area. They are evaluated
17907 for each frame. If the evaluated value is not valid, it is approximated
17908 to the nearest valid value.
17909
17910 The expression for x may depend on y, and the expression for y may
17911 depend on x.
17912
17913 Examples
17914
17915 • Crop area with size 100x100 at position (12,34).
17916
17917 crop=100:100:12:34
17918
17919 Using named options, the example above becomes:
17920
17921 crop=w=100:h=100:x=12:y=34
17922
17923 • Crop the central input area with size 100x100:
17924
17925 crop=100:100
17926
17927 • Crop the central input area with size 2/3 of the input video:
17928
17929 crop=2/3*in_w:2/3*in_h
17930
17931 • Crop the input video central square:
17932
17933 crop=out_w=in_h
17934 crop=in_h
17935
17936 • Delimit the rectangle with the top-left corner placed at position
17937 100:100 and the right-bottom corner corresponding to the right-
17938 bottom corner of the input image.
17939
17940 crop=in_w-100:in_h-100:100:100
17941
17942 • Crop 10 pixels from the left and right borders, and 20 pixels from
17943 the top and bottom borders
17944
17945 crop=in_w-2*10:in_h-2*20
17946
17947 • Keep only the bottom right quarter of the input image:
17948
17949 crop=in_w/2:in_h/2:in_w/2:in_h/2
17950
17951 • Crop height for getting Greek harmony:
17952
17953 crop=in_w:1/PHI*in_w
17954
17955 • Apply trembling effect:
17956
17957 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)
17958
17959 • Apply erratic camera effect depending on timestamp:
17960
17961 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)"
17962
17963 • Set x depending on the value of y:
17964
17965 crop=in_w/2:in_h/2:y:10+10*sin(n/10)
17966
17967 Commands
17968
17969 This filter supports the following commands:
17970
17971 w, out_w
17972 h, out_h
17973 x
17974 y Set width/height of the output video and the horizontal/vertical
17975 position in the input video. The command accepts the same syntax
17976 of the corresponding option.
17977
17978 If the specified expression is not valid, it is kept at its current
17979 value.
17980
17981 cropdetect
17982 Auto-detect the crop size.
17983
17984 It calculates the necessary cropping parameters and prints the
17985 recommended parameters via the logging system. The detected dimensions
17986 correspond to the non-black area of the input video.
17987
17988 It accepts the following parameters:
17989
17990 limit
17991 Set higher black value threshold, which can be optionally specified
17992 from nothing (0) to everything (255 for 8-bit based formats). An
17993 intensity value greater to the set value is considered non-black.
17994 It defaults to 24. You can also specify a value between 0.0 and
17995 1.0 which will be scaled depending on the bitdepth of the pixel
17996 format.
17997
17998 round
17999 The value which the width/height should be divisible by. It
18000 defaults to 16. The offset is automatically adjusted to center the
18001 video. Use 2 to get only even dimensions (needed for 4:2:2 video).
18002 16 is best when encoding to most video codecs.
18003
18004 skip
18005 Set the number of initial frames for which evaluation is skipped.
18006 Default is 2. Range is 0 to INT_MAX.
18007
18008 reset_count, reset
18009 Set the counter that determines after how many frames cropdetect
18010 will reset the previously detected largest video area and start
18011 over to detect the current optimal crop area. Default value is 0.
18012
18013 This can be useful when channel logos distort the video area. 0
18014 indicates 'never reset', and returns the largest area encountered
18015 during playback.
18016
18017 cue
18018 Delay video filtering until a given wallclock timestamp. The filter
18019 first passes on preroll amount of frames, then it buffers at most
18020 buffer amount of frames and waits for the cue. After reaching the cue
18021 it forwards the buffered frames and also any subsequent frames coming
18022 in its input.
18023
18024 The filter can be used synchronize the output of multiple ffmpeg
18025 processes for realtime output devices like decklink. By putting the
18026 delay in the filtering chain and pre-buffering frames the process can
18027 pass on data to output almost immediately after the target wallclock
18028 timestamp is reached.
18029
18030 Perfect frame accuracy cannot be guaranteed, but the result is good
18031 enough for some use cases.
18032
18033 cue The cue timestamp expressed in a UNIX timestamp in microseconds.
18034 Default is 0.
18035
18036 preroll
18037 The duration of content to pass on as preroll expressed in seconds.
18038 Default is 0.
18039
18040 buffer
18041 The maximum duration of content to buffer before waiting for the
18042 cue expressed in seconds. Default is 0.
18043
18044 curves
18045 Apply color adjustments using curves.
18046
18047 This filter is similar to the Adobe Photoshop and GIMP curves tools.
18048 Each component (red, green and blue) has its values defined by N key
18049 points tied from each other using a smooth curve. The x-axis represents
18050 the pixel values from the input frame, and the y-axis the new pixel
18051 values to be set for the output frame.
18052
18053 By default, a component curve is defined by the two points (0;0) and
18054 (1;1). This creates a straight line where each original pixel value is
18055 "adjusted" to its own value, which means no change to the image.
18056
18057 The filter allows you to redefine these two points and add some more. A
18058 new curve (using a natural cubic spline interpolation) will be define
18059 to pass smoothly through all these new coordinates. The new defined
18060 points needs to be strictly increasing over the x-axis, and their x and
18061 y values must be in the [0;1] interval. If the computed curves
18062 happened to go outside the vector spaces, the values will be clipped
18063 accordingly.
18064
18065 The filter accepts the following options:
18066
18067 preset
18068 Select one of the available color presets. This option can be used
18069 in addition to the r, g, b parameters; in this case, the later
18070 options takes priority on the preset values. Available presets
18071 are:
18072
18073 none
18074 color_negative
18075 cross_process
18076 darker
18077 increase_contrast
18078 lighter
18079 linear_contrast
18080 medium_contrast
18081 negative
18082 strong_contrast
18083 vintage
18084
18085 Default is "none".
18086
18087 master, m
18088 Set the master key points. These points will define a second pass
18089 mapping. It is sometimes called a "luminance" or "value" mapping.
18090 It can be used with r, g, b or all since it acts like a post-
18091 processing LUT.
18092
18093 red, r
18094 Set the key points for the red component.
18095
18096 green, g
18097 Set the key points for the green component.
18098
18099 blue, b
18100 Set the key points for the blue component.
18101
18102 all Set the key points for all components (not including master). Can
18103 be used in addition to the other key points component options. In
18104 this case, the unset component(s) will fallback on this all
18105 setting.
18106
18107 psfile
18108 Specify a Photoshop curves file (".acv") to import the settings
18109 from.
18110
18111 plot
18112 Save Gnuplot script of the curves in specified file.
18113
18114 To avoid some filtergraph syntax conflicts, each key points list need
18115 to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
18116
18117 Commands
18118
18119 This filter supports same commands as options.
18120
18121 Examples
18122
18123 • Increase slightly the middle level of blue:
18124
18125 curves=blue='0/0 0.5/0.58 1/1'
18126
18127 • Vintage effect:
18128
18129 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'
18130
18131 Here we obtain the following coordinates for each components:
18132
18133 red "(0;0.11) (0.42;0.51) (1;0.95)"
18134
18135 green
18136 "(0;0) (0.50;0.48) (1;1)"
18137
18138 blue
18139 "(0;0.22) (0.49;0.44) (1;0.80)"
18140
18141 • The previous example can also be achieved with the associated
18142 built-in preset:
18143
18144 curves=preset=vintage
18145
18146 • Or simply:
18147
18148 curves=vintage
18149
18150 • Use a Photoshop preset and redefine the points of the green
18151 component:
18152
18153 curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
18154
18155 • Check out the curves of the "cross_process" profile using ffmpeg
18156 and gnuplot:
18157
18158 ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
18159 gnuplot -p /tmp/curves.plt
18160
18161 datascope
18162 Video data analysis filter.
18163
18164 This filter shows hexadecimal pixel values of part of video.
18165
18166 The filter accepts the following options:
18167
18168 size, s
18169 Set output video size.
18170
18171 x Set x offset from where to pick pixels.
18172
18173 y Set y offset from where to pick pixels.
18174
18175 mode
18176 Set scope mode, can be one of the following:
18177
18178 mono
18179 Draw hexadecimal pixel values with white color on black
18180 background.
18181
18182 color
18183 Draw hexadecimal pixel values with input video pixel color on
18184 black background.
18185
18186 color2
18187 Draw hexadecimal pixel values on color background picked from
18188 input video, the text color is picked in such way so its always
18189 visible.
18190
18191 axis
18192 Draw rows and columns numbers on left and top of video.
18193
18194 opacity
18195 Set background opacity.
18196
18197 format
18198 Set display number format. Can be "hex", or "dec". Default is
18199 "hex".
18200
18201 components
18202 Set pixel components to display. By default all pixel components
18203 are displayed.
18204
18205 Commands
18206
18207 This filter supports same commands as options excluding "size" option.
18208
18209 dblur
18210 Apply Directional blur filter.
18211
18212 The filter accepts the following options:
18213
18214 angle
18215 Set angle of directional blur. Default is 45.
18216
18217 radius
18218 Set radius of directional blur. Default is 5.
18219
18220 planes
18221 Set which planes to filter. By default all planes are filtered.
18222
18223 Commands
18224
18225 This filter supports same commands as options. The command accepts the
18226 same syntax of the corresponding option.
18227
18228 If the specified expression is not valid, it is kept at its current
18229 value.
18230
18231 dctdnoiz
18232 Denoise frames using 2D DCT (frequency domain filtering).
18233
18234 This filter is not designed for real time.
18235
18236 The filter accepts the following options:
18237
18238 sigma, s
18239 Set the noise sigma constant.
18240
18241 This sigma defines a hard threshold of "3 * sigma"; every DCT
18242 coefficient (absolute value) below this threshold with be dropped.
18243
18244 If you need a more advanced filtering, see expr.
18245
18246 Default is 0.
18247
18248 overlap
18249 Set number overlapping pixels for each block. Since the filter can
18250 be slow, you may want to reduce this value, at the cost of a less
18251 effective filter and the risk of various artefacts.
18252
18253 If the overlapping value doesn't permit processing the whole input
18254 width or height, a warning will be displayed and according borders
18255 won't be denoised.
18256
18257 Default value is blocksize-1, which is the best possible setting.
18258
18259 expr, e
18260 Set the coefficient factor expression.
18261
18262 For each coefficient of a DCT block, this expression will be
18263 evaluated as a multiplier value for the coefficient.
18264
18265 If this is option is set, the sigma option will be ignored.
18266
18267 The absolute value of the coefficient can be accessed through the c
18268 variable.
18269
18270 n Set the blocksize using the number of bits. "1<<n" defines the
18271 blocksize, which is the width and height of the processed blocks.
18272
18273 The default value is 3 (8x8) and can be raised to 4 for a blocksize
18274 of 16x16. Note that changing this setting has huge consequences on
18275 the speed processing. Also, a larger block size does not
18276 necessarily means a better de-noising.
18277
18278 Examples
18279
18280 Apply a denoise with a sigma of 4.5:
18281
18282 dctdnoiz=4.5
18283
18284 The same operation can be achieved using the expression system:
18285
18286 dctdnoiz=e='gte(c, 4.5*3)'
18287
18288 Violent denoise using a block size of "16x16":
18289
18290 dctdnoiz=15:n=4
18291
18292 deband
18293 Remove banding artifacts from input video. It works by replacing
18294 banded pixels with average value of referenced pixels.
18295
18296 The filter accepts the following options:
18297
18298 1thr
18299 2thr
18300 3thr
18301 4thr
18302 Set banding detection threshold for each plane. Default is 0.02.
18303 Valid range is 0.00003 to 0.5. If difference between current pixel
18304 and reference pixel is less than threshold, it will be considered
18305 as banded.
18306
18307 range, r
18308 Banding detection range in pixels. Default is 16. If positive,
18309 random number in range 0 to set value will be used. If negative,
18310 exact absolute value will be used. The range defines square of
18311 four pixels around current pixel.
18312
18313 direction, d
18314 Set direction in radians from which four pixel will be compared. If
18315 positive, random direction from 0 to set direction will be picked.
18316 If negative, exact of absolute value will be picked. For example
18317 direction 0, -PI or -2*PI radians will pick only pixels on same row
18318 and -PI/2 will pick only pixels on same column.
18319
18320 blur, b
18321 If enabled, current pixel is compared with average value of all
18322 four surrounding pixels. The default is enabled. If disabled
18323 current pixel is compared with all four surrounding pixels. The
18324 pixel is considered banded if only all four differences with
18325 surrounding pixels are less than threshold.
18326
18327 coupling, c
18328 If enabled, current pixel is changed if and only if all pixel
18329 components are banded, e.g. banding detection threshold is
18330 triggered for all color components. The default is disabled.
18331
18332 Commands
18333
18334 This filter supports the all above options as commands.
18335
18336 deblock
18337 Remove blocking artifacts from input video.
18338
18339 The filter accepts the following options:
18340
18341 filter
18342 Set filter type, can be weak or strong. Default is strong. This
18343 controls what kind of deblocking is applied.
18344
18345 block
18346 Set size of block, allowed range is from 4 to 512. Default is 8.
18347
18348 alpha
18349 beta
18350 gamma
18351 delta
18352 Set blocking detection thresholds. Allowed range is 0 to 1.
18353 Defaults are: 0.098 for alpha and 0.05 for the rest. Using higher
18354 threshold gives more deblocking strength. Setting alpha controls
18355 threshold detection at exact edge of block. Remaining options
18356 controls threshold detection near the edge. Each one for
18357 below/above or left/right. Setting any of those to 0 disables
18358 deblocking.
18359
18360 planes
18361 Set planes to filter. Default is to filter all available planes.
18362
18363 Examples
18364
18365 • Deblock using weak filter and block size of 4 pixels.
18366
18367 deblock=filter=weak:block=4
18368
18369 • Deblock using strong filter, block size of 4 pixels and custom
18370 thresholds for deblocking more edges.
18371
18372 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
18373
18374 • Similar as above, but filter only first plane.
18375
18376 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
18377
18378 • Similar as above, but filter only second and third plane.
18379
18380 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
18381
18382 Commands
18383
18384 This filter supports the all above options as commands.
18385
18386 decimate
18387 Drop duplicated frames at regular intervals.
18388
18389 The filter accepts the following options:
18390
18391 cycle
18392 Set the number of frames from which one will be dropped. Setting
18393 this to N means one frame in every batch of N frames will be
18394 dropped. Default is 5.
18395
18396 dupthresh
18397 Set the threshold for duplicate detection. If the difference metric
18398 for a frame is less than or equal to this value, then it is
18399 declared as duplicate. Default is 1.1
18400
18401 scthresh
18402 Set scene change threshold. Default is 15.
18403
18404 blockx
18405 blocky
18406 Set the size of the x and y-axis blocks used during metric
18407 calculations. Larger blocks give better noise suppression, but
18408 also give worse detection of small movements. Must be a power of
18409 two. Default is 32.
18410
18411 ppsrc
18412 Mark main input as a pre-processed input and activate clean source
18413 input stream. This allows the input to be pre-processed with
18414 various filters to help the metrics calculation while keeping the
18415 frame selection lossless. When set to 1, the first stream is for
18416 the pre-processed input, and the second stream is the clean source
18417 from where the kept frames are chosen. Default is 0.
18418
18419 chroma
18420 Set whether or not chroma is considered in the metric calculations.
18421 Default is 1.
18422
18423 deconvolve
18424 Apply 2D deconvolution of video stream in frequency domain using second
18425 stream as impulse.
18426
18427 The filter accepts the following options:
18428
18429 planes
18430 Set which planes to process.
18431
18432 impulse
18433 Set which impulse video frames will be processed, can be first or
18434 all. Default is all.
18435
18436 noise
18437 Set noise when doing divisions. Default is 0.0000001. Useful when
18438 width and height are not same and not power of 2 or if stream prior
18439 to convolving had noise.
18440
18441 The "deconvolve" filter also supports the framesync options.
18442
18443 dedot
18444 Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
18445 video.
18446
18447 It accepts the following options:
18448
18449 m Set mode of operation. Can be combination of dotcrawl for cross-
18450 luminance reduction and/or rainbows for cross-color reduction.
18451
18452 lt Set spatial luma threshold. Lower values increases reduction of
18453 cross-luminance.
18454
18455 tl Set tolerance for temporal luma. Higher values increases reduction
18456 of cross-luminance.
18457
18458 tc Set tolerance for chroma temporal variation. Higher values
18459 increases reduction of cross-color.
18460
18461 ct Set temporal chroma threshold. Lower values increases reduction of
18462 cross-color.
18463
18464 deflate
18465 Apply deflate effect to the video.
18466
18467 This filter replaces the pixel by the local(3x3) average by taking into
18468 account only values lower than the pixel.
18469
18470 It accepts the following options:
18471
18472 threshold0
18473 threshold1
18474 threshold2
18475 threshold3
18476 Limit the maximum change for each plane, default is 65535. If 0,
18477 plane will remain unchanged.
18478
18479 Commands
18480
18481 This filter supports the all above options as commands.
18482
18483 deflicker
18484 Remove temporal frame luminance variations.
18485
18486 It accepts the following options:
18487
18488 size, s
18489 Set moving-average filter size in frames. Default is 5. Allowed
18490 range is 2 - 129.
18491
18492 mode, m
18493 Set averaging mode to smooth temporal luminance variations.
18494
18495 Available values are:
18496
18497 am Arithmetic mean
18498
18499 gm Geometric mean
18500
18501 hm Harmonic mean
18502
18503 qm Quadratic mean
18504
18505 cm Cubic mean
18506
18507 pm Power mean
18508
18509 median
18510 Median
18511
18512 bypass
18513 Do not actually modify frame. Useful when one only wants metadata.
18514
18515 dejudder
18516 Remove judder produced by partially interlaced telecined content.
18517
18518 Judder can be introduced, for instance, by pullup filter. If the
18519 original source was partially telecined content then the output of
18520 "pullup,dejudder" will have a variable frame rate. May change the
18521 recorded frame rate of the container. Aside from that change, this
18522 filter will not affect constant frame rate video.
18523
18524 The option available in this filter is:
18525
18526 cycle
18527 Specify the length of the window over which the judder repeats.
18528
18529 Accepts any integer greater than 1. Useful values are:
18530
18531 4 If the original was telecined from 24 to 30 fps (Film to NTSC).
18532
18533 5 If the original was telecined from 25 to 30 fps (PAL to NTSC).
18534
18535 20 If a mixture of the two.
18536
18537 The default is 4.
18538
18539 delogo
18540 Suppress a TV station logo by a simple interpolation of the surrounding
18541 pixels. Just set a rectangle covering the logo and watch it disappear
18542 (and sometimes something even uglier appear - your mileage may vary).
18543
18544 It accepts the following parameters:
18545
18546 x
18547 y Specify the top left corner coordinates of the logo. They must be
18548 specified.
18549
18550 w
18551 h Specify the width and height of the logo to clear. They must be
18552 specified.
18553
18554 show
18555 When set to 1, a green rectangle is drawn on the screen to simplify
18556 finding the right x, y, w, and h parameters. The default value is
18557 0.
18558
18559 The rectangle is drawn on the outermost pixels which will be
18560 (partly) replaced with interpolated values. The values of the next
18561 pixels immediately outside this rectangle in each direction will be
18562 used to compute the interpolated pixel values inside the rectangle.
18563
18564 Examples
18565
18566 • Set a rectangle covering the area with top left corner coordinates
18567 0,0 and size 100x77:
18568
18569 delogo=x=0:y=0:w=100:h=77
18570
18571 derain
18572 Remove the rain in the input image/video by applying the derain methods
18573 based on convolutional neural networks. Supported models:
18574
18575 • Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
18576 See
18577 <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
18578
18579 Training as well as model generation scripts are provided in the
18580 repository at <https://github.com/XueweiMeng/derain_filter.git>.
18581
18582 Native model files (.model) can be generated from TensorFlow model
18583 files (.pb) by using tools/python/convert.py
18584
18585 The filter accepts the following options:
18586
18587 filter_type
18588 Specify which filter to use. This option accepts the following
18589 values:
18590
18591 derain
18592 Derain filter. To conduct derain filter, you need to use a
18593 derain model.
18594
18595 dehaze
18596 Dehaze filter. To conduct dehaze filter, you need to use a
18597 dehaze model.
18598
18599 Default value is derain.
18600
18601 dnn_backend
18602 Specify which DNN backend to use for model loading and execution.
18603 This option accepts the following values:
18604
18605 native
18606 Native implementation of DNN loading and execution.
18607
18608 tensorflow
18609 TensorFlow backend. To enable this backend you need to install
18610 the TensorFlow for C library (see
18611 <https://www.tensorflow.org/install/lang_c>) and configure
18612 FFmpeg with "--enable-libtensorflow"
18613
18614 Default value is native.
18615
18616 model
18617 Set path to model file specifying network architecture and its
18618 parameters. Note that different backends use different file
18619 formats. TensorFlow and native backend can load files for only its
18620 format.
18621
18622 To get full functionality (such as async execution), please use the
18623 dnn_processing filter.
18624
18625 deshake
18626 Attempt to fix small changes in horizontal and/or vertical shift. This
18627 filter helps remove camera shake from hand-holding a camera, bumping a
18628 tripod, moving on a vehicle, etc.
18629
18630 The filter accepts the following options:
18631
18632 x
18633 y
18634 w
18635 h Specify a rectangular area where to limit the search for motion
18636 vectors. If desired the search for motion vectors can be limited
18637 to a rectangular area of the frame defined by its top left corner,
18638 width and height. These parameters have the same meaning as the
18639 drawbox filter which can be used to visualise the position of the
18640 bounding box.
18641
18642 This is useful when simultaneous movement of subjects within the
18643 frame might be confused for camera motion by the motion vector
18644 search.
18645
18646 If any or all of x, y, w and h are set to -1 then the full frame is
18647 used. This allows later options to be set without specifying the
18648 bounding box for the motion vector search.
18649
18650 Default - search the whole frame.
18651
18652 rx
18653 ry Specify the maximum extent of movement in x and y directions in the
18654 range 0-64 pixels. Default 16.
18655
18656 edge
18657 Specify how to generate pixels to fill blanks at the edge of the
18658 frame. Available values are:
18659
18660 blank, 0
18661 Fill zeroes at blank locations
18662
18663 original, 1
18664 Original image at blank locations
18665
18666 clamp, 2
18667 Extruded edge value at blank locations
18668
18669 mirror, 3
18670 Mirrored edge at blank locations
18671
18672 Default value is mirror.
18673
18674 blocksize
18675 Specify the blocksize to use for motion search. Range 4-128 pixels,
18676 default 8.
18677
18678 contrast
18679 Specify the contrast threshold for blocks. Only blocks with more
18680 than the specified contrast (difference between darkest and
18681 lightest pixels) will be considered. Range 1-255, default 125.
18682
18683 search
18684 Specify the search strategy. Available values are:
18685
18686 exhaustive, 0
18687 Set exhaustive search
18688
18689 less, 1
18690 Set less exhaustive search.
18691
18692 Default value is exhaustive.
18693
18694 filename
18695 If set then a detailed log of the motion search is written to the
18696 specified file.
18697
18698 despill
18699 Remove unwanted contamination of foreground colors, caused by reflected
18700 color of greenscreen or bluescreen.
18701
18702 This filter accepts the following options:
18703
18704 type
18705 Set what type of despill to use.
18706
18707 mix Set how spillmap will be generated.
18708
18709 expand
18710 Set how much to get rid of still remaining spill.
18711
18712 red Controls amount of red in spill area.
18713
18714 green
18715 Controls amount of green in spill area. Should be -1 for
18716 greenscreen.
18717
18718 blue
18719 Controls amount of blue in spill area. Should be -1 for
18720 bluescreen.
18721
18722 brightness
18723 Controls brightness of spill area, preserving colors.
18724
18725 alpha
18726 Modify alpha from generated spillmap.
18727
18728 Commands
18729
18730 This filter supports the all above options as commands.
18731
18732 detelecine
18733 Apply an exact inverse of the telecine operation. It requires a
18734 predefined pattern specified using the pattern option which must be the
18735 same as that passed to the telecine filter.
18736
18737 This filter accepts the following options:
18738
18739 first_field
18740 top, t
18741 top field first
18742
18743 bottom, b
18744 bottom field first The default value is "top".
18745
18746 pattern
18747 A string of numbers representing the pulldown pattern you wish to
18748 apply. The default value is 23.
18749
18750 start_frame
18751 A number representing position of the first frame with respect to
18752 the telecine pattern. This is to be used if the stream is cut. The
18753 default value is 0.
18754
18755 dilation
18756 Apply dilation effect to the video.
18757
18758 This filter replaces the pixel by the local(3x3) maximum.
18759
18760 It accepts the following options:
18761
18762 threshold0
18763 threshold1
18764 threshold2
18765 threshold3
18766 Limit the maximum change for each plane, default is 65535. If 0,
18767 plane will remain unchanged.
18768
18769 coordinates
18770 Flag which specifies the pixel to refer to. Default is 255 i.e. all
18771 eight pixels are used.
18772
18773 Flags to local 3x3 coordinates maps like this:
18774
18775 1 2 3
18776 4 5
18777 6 7 8
18778
18779 Commands
18780
18781 This filter supports the all above options as commands.
18782
18783 displace
18784 Displace pixels as indicated by second and third input stream.
18785
18786 It takes three input streams and outputs one stream, the first input is
18787 the source, and second and third input are displacement maps.
18788
18789 The second input specifies how much to displace pixels along the
18790 x-axis, while the third input specifies how much to displace pixels
18791 along the y-axis. If one of displacement map streams terminates, last
18792 frame from that displacement map will be used.
18793
18794 Note that once generated, displacements maps can be reused over and
18795 over again.
18796
18797 A description of the accepted options follows.
18798
18799 edge
18800 Set displace behavior for pixels that are out of range.
18801
18802 Available values are:
18803
18804 blank
18805 Missing pixels are replaced by black pixels.
18806
18807 smear
18808 Adjacent pixels will spread out to replace missing pixels.
18809
18810 wrap
18811 Out of range pixels are wrapped so they point to pixels of
18812 other side.
18813
18814 mirror
18815 Out of range pixels will be replaced with mirrored pixels.
18816
18817 Default is smear.
18818
18819 Examples
18820
18821 • Add ripple effect to rgb input of video size hd720:
18822
18823 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
18824
18825 • Add wave effect to rgb input of video size hd720:
18826
18827 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
18828
18829 dnn_classify
18830 Do classification with deep neural networks based on bounding boxes.
18831
18832 The filter accepts the following options:
18833
18834 dnn_backend
18835 Specify which DNN backend to use for model loading and execution.
18836 This option accepts only openvino now, tensorflow backends will be
18837 added.
18838
18839 model
18840 Set path to model file specifying network architecture and its
18841 parameters. Note that different backends use different file
18842 formats.
18843
18844 input
18845 Set the input name of the dnn network.
18846
18847 output
18848 Set the output name of the dnn network.
18849
18850 confidence
18851 Set the confidence threshold (default: 0.5).
18852
18853 labels
18854 Set path to label file specifying the mapping between label id and
18855 name. Each label name is written in one line, tailing spaces and
18856 empty lines are skipped. The first line is the name of label id 0,
18857 and the second line is the name of label id 1, etc. The label id
18858 is considered as name if the label file is not provided.
18859
18860 backend_configs
18861 Set the configs to be passed into backend
18862
18863 For tensorflow backend, you can set its configs with sess_config
18864 options, please use tools/python/tf_sess_config.py to get the
18865 configs for your system.
18866
18867 dnn_detect
18868 Do object detection with deep neural networks.
18869
18870 The filter accepts the following options:
18871
18872 dnn_backend
18873 Specify which DNN backend to use for model loading and execution.
18874 This option accepts only openvino now, tensorflow backends will be
18875 added.
18876
18877 model
18878 Set path to model file specifying network architecture and its
18879 parameters. Note that different backends use different file
18880 formats.
18881
18882 input
18883 Set the input name of the dnn network.
18884
18885 output
18886 Set the output name of the dnn network.
18887
18888 confidence
18889 Set the confidence threshold (default: 0.5).
18890
18891 labels
18892 Set path to label file specifying the mapping between label id and
18893 name. Each label name is written in one line, tailing spaces and
18894 empty lines are skipped. The first line is the name of label id 0
18895 (usually it is 'background'), and the second line is the name of
18896 label id 1, etc. The label id is considered as name if the label
18897 file is not provided.
18898
18899 backend_configs
18900 Set the configs to be passed into backend. To use async execution,
18901 set async (default: set). Roll back to sync execution if the
18902 backend does not support async.
18903
18904 dnn_processing
18905 Do image processing with deep neural networks. It works together with
18906 another filter which converts the pixel format of the Frame to what the
18907 dnn network requires.
18908
18909 The filter accepts the following options:
18910
18911 dnn_backend
18912 Specify which DNN backend to use for model loading and execution.
18913 This option accepts the following values:
18914
18915 native
18916 Native implementation of DNN loading and execution.
18917
18918 tensorflow
18919 TensorFlow backend. To enable this backend you need to install
18920 the TensorFlow for C library (see
18921 <https://www.tensorflow.org/install/lang_c>) and configure
18922 FFmpeg with "--enable-libtensorflow"
18923
18924 openvino
18925 OpenVINO backend. To enable this backend you need to build and
18926 install the OpenVINO for C library (see
18927 <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
18928 and configure FFmpeg with "--enable-libopenvino"
18929 (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
18930 the header files and libraries are not installed into system
18931 path)
18932
18933 Default value is native.
18934
18935 model
18936 Set path to model file specifying network architecture and its
18937 parameters. Note that different backends use different file
18938 formats. TensorFlow, OpenVINO and native backend can load files for
18939 only its format.
18940
18941 Native model file (.model) can be generated from TensorFlow model
18942 file (.pb) by using tools/python/convert.py
18943
18944 input
18945 Set the input name of the dnn network.
18946
18947 output
18948 Set the output name of the dnn network.
18949
18950 backend_configs
18951 Set the configs to be passed into backend. To use async execution,
18952 set async (default: set). Roll back to sync execution if the
18953 backend does not support async.
18954
18955 For tensorflow backend, you can set its configs with sess_config
18956 options, please use tools/python/tf_sess_config.py to get the
18957 configs of TensorFlow backend for your system.
18958
18959 Examples
18960
18961 • Remove rain in rgb24 frame with can.pb (see derain filter):
18962
18963 ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
18964
18965 • Halve the pixel value of the frame with format gray32f:
18966
18967 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
18968
18969 • Handle the Y channel with srcnn.pb (see sr filter) for frame with
18970 yuv420p (planar YUV formats supported):
18971
18972 ./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
18973
18974 • Handle the Y channel with espcn.pb (see sr filter), which changes
18975 frame size, for format yuv420p (planar YUV formats supported),
18976 please use tools/python/tf_sess_config.py to get the configs of
18977 TensorFlow backend for your system.
18978
18979 ./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
18980
18981 drawbox
18982 Draw a colored box on the input image.
18983
18984 It accepts the following parameters:
18985
18986 x
18987 y The expressions which specify the top left corner coordinates of
18988 the box. It defaults to 0.
18989
18990 width, w
18991 height, h
18992 The expressions which specify the width and height of the box; if 0
18993 they are interpreted as the input width and height. It defaults to
18994 0.
18995
18996 color, c
18997 Specify the color of the box to write. For the general syntax of
18998 this option, check the "Color" section in the ffmpeg-utils manual.
18999 If the special value "invert" is used, the box edge color is the
19000 same as the video with inverted luma.
19001
19002 thickness, t
19003 The expression which sets the thickness of the box edge. A value
19004 of "fill" will create a filled box. Default value is 3.
19005
19006 See below for the list of accepted constants.
19007
19008 replace
19009 Applicable if the input has alpha. With value 1, the pixels of the
19010 painted box will overwrite the video's color and alpha pixels.
19011 Default is 0, which composites the box onto the input, leaving the
19012 video's alpha intact.
19013
19014 The parameters for x, y, w and h and t are expressions containing the
19015 following constants:
19016
19017 dar The input display aspect ratio, it is the same as (w / h) * sar.
19018
19019 hsub
19020 vsub
19021 horizontal and vertical chroma subsample values. For example for
19022 the pixel format "yuv422p" hsub is 2 and vsub is 1.
19023
19024 in_h, ih
19025 in_w, iw
19026 The input width and height.
19027
19028 sar The input sample aspect ratio.
19029
19030 x
19031 y The x and y offset coordinates where the box is drawn.
19032
19033 w
19034 h The width and height of the drawn box.
19035
19036 box_source
19037 Box source can be set as side_data_detection_bboxes if you want to
19038 use box data in detection bboxes of side data.
19039
19040 If box_source is set, the x, y, width and height will be ignored
19041 and still use box data in detection bboxes of side data. So please
19042 do not use this parameter if you were not sure about the box
19043 source.
19044
19045 t The thickness of the drawn box.
19046
19047 These constants allow the x, y, w, h and t expressions to refer to
19048 each other, so you may for example specify "y=x/dar" or "h=w/dar".
19049
19050 Examples
19051
19052 • Draw a black box around the edge of the input image:
19053
19054 drawbox
19055
19056 • Draw a box with color red and an opacity of 50%:
19057
19058 drawbox=10:20:200:60:red@0.5
19059
19060 The previous example can be specified as:
19061
19062 drawbox=x=10:y=20:w=200:h=60:color=red@0.5
19063
19064 • Fill the box with pink color:
19065
19066 drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
19067
19068 • Draw a 2-pixel red 2.40:1 mask:
19069
19070 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
19071
19072 Commands
19073
19074 This filter supports same commands as options. The command accepts the
19075 same syntax of the corresponding option.
19076
19077 If the specified expression is not valid, it is kept at its current
19078 value.
19079
19080 drawgraph
19081 Draw a graph using input video metadata.
19082
19083 It accepts the following parameters:
19084
19085 m1 Set 1st frame metadata key from which metadata values will be used
19086 to draw a graph.
19087
19088 fg1 Set 1st foreground color expression.
19089
19090 m2 Set 2nd frame metadata key from which metadata values will be used
19091 to draw a graph.
19092
19093 fg2 Set 2nd foreground color expression.
19094
19095 m3 Set 3rd frame metadata key from which metadata values will be used
19096 to draw a graph.
19097
19098 fg3 Set 3rd foreground color expression.
19099
19100 m4 Set 4th frame metadata key from which metadata values will be used
19101 to draw a graph.
19102
19103 fg4 Set 4th foreground color expression.
19104
19105 min Set minimal value of metadata value.
19106
19107 max Set maximal value of metadata value.
19108
19109 bg Set graph background color. Default is white.
19110
19111 mode
19112 Set graph mode.
19113
19114 Available values for mode is:
19115
19116 bar
19117 dot
19118 line
19119
19120 Default is "line".
19121
19122 slide
19123 Set slide mode.
19124
19125 Available values for slide is:
19126
19127 frame
19128 Draw new frame when right border is reached.
19129
19130 replace
19131 Replace old columns with new ones.
19132
19133 scroll
19134 Scroll from right to left.
19135
19136 rscroll
19137 Scroll from left to right.
19138
19139 picture
19140 Draw single picture.
19141
19142 Default is "frame".
19143
19144 size
19145 Set size of graph video. For the syntax of this option, check the
19146 "Video size" section in the ffmpeg-utils manual. The default value
19147 is "900x256".
19148
19149 rate, r
19150 Set the output frame rate. Default value is 25.
19151
19152 The foreground color expressions can use the following variables:
19153
19154 MIN Minimal value of metadata value.
19155
19156 MAX Maximal value of metadata value.
19157
19158 VAL Current metadata key value.
19159
19160 The color is defined as 0xAABBGGRR.
19161
19162 Example using metadata from signalstats filter:
19163
19164 signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
19165
19166 Example using metadata from ebur128 filter:
19167
19168 ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
19169
19170 drawgrid
19171 Draw a grid on the input image.
19172
19173 It accepts the following parameters:
19174
19175 x
19176 y The expressions which specify the coordinates of some point of grid
19177 intersection (meant to configure offset). Both default to 0.
19178
19179 width, w
19180 height, h
19181 The expressions which specify the width and height of the grid
19182 cell, if 0 they are interpreted as the input width and height,
19183 respectively, minus "thickness", so image gets framed. Default to
19184 0.
19185
19186 color, c
19187 Specify the color of the grid. For the general syntax of this
19188 option, check the "Color" section in the ffmpeg-utils manual. If
19189 the special value "invert" is used, the grid color is the same as
19190 the video with inverted luma.
19191
19192 thickness, t
19193 The expression which sets the thickness of the grid line. Default
19194 value is 1.
19195
19196 See below for the list of accepted constants.
19197
19198 replace
19199 Applicable if the input has alpha. With 1 the pixels of the painted
19200 grid will overwrite the video's color and alpha pixels. Default is
19201 0, which composites the grid onto the input, leaving the video's
19202 alpha intact.
19203
19204 The parameters for x, y, w and h and t are expressions containing the
19205 following constants:
19206
19207 dar The input display aspect ratio, it is the same as (w / h) * sar.
19208
19209 hsub
19210 vsub
19211 horizontal and vertical chroma subsample values. For example for
19212 the pixel format "yuv422p" hsub is 2 and vsub is 1.
19213
19214 in_h, ih
19215 in_w, iw
19216 The input grid cell width and height.
19217
19218 sar The input sample aspect ratio.
19219
19220 x
19221 y The x and y coordinates of some point of grid intersection (meant
19222 to configure offset).
19223
19224 w
19225 h The width and height of the drawn cell.
19226
19227 t The thickness of the drawn cell.
19228
19229 These constants allow the x, y, w, h and t expressions to refer to
19230 each other, so you may for example specify "y=x/dar" or "h=w/dar".
19231
19232 Examples
19233
19234 • Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
19235 color red and an opacity of 50%:
19236
19237 drawgrid=width=100:height=100:thickness=2:color=red@0.5
19238
19239 • Draw a white 3x3 grid with an opacity of 50%:
19240
19241 drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
19242
19243 Commands
19244
19245 This filter supports same commands as options. The command accepts the
19246 same syntax of the corresponding option.
19247
19248 If the specified expression is not valid, it is kept at its current
19249 value.
19250
19251 drawtext
19252 Draw a text string or text from a specified file on top of a video,
19253 using the libfreetype library.
19254
19255 To enable compilation of this filter, you need to configure FFmpeg with
19256 "--enable-libfreetype". To enable default font fallback and the font
19257 option you need to configure FFmpeg with "--enable-libfontconfig". To
19258 enable the text_shaping option, you need to configure FFmpeg with
19259 "--enable-libfribidi".
19260
19261 Syntax
19262
19263 It accepts the following parameters:
19264
19265 box Used to draw a box around text using the background color. The
19266 value must be either 1 (enable) or 0 (disable). The default value
19267 of box is 0.
19268
19269 boxborderw
19270 Set the width of the border to be drawn around the box using
19271 boxcolor. The default value of boxborderw is 0.
19272
19273 boxcolor
19274 The color to be used for drawing box around text. For the syntax of
19275 this option, check the "Color" section in the ffmpeg-utils manual.
19276
19277 The default value of boxcolor is "white".
19278
19279 line_spacing
19280 Set the line spacing in pixels of the border to be drawn around the
19281 box using box. The default value of line_spacing is 0.
19282
19283 borderw
19284 Set the width of the border to be drawn around the text using
19285 bordercolor. The default value of borderw is 0.
19286
19287 bordercolor
19288 Set the color to be used for drawing border around text. For the
19289 syntax of this option, check the "Color" section in the ffmpeg-
19290 utils manual.
19291
19292 The default value of bordercolor is "black".
19293
19294 expansion
19295 Select how the text is expanded. Can be either "none", "strftime"
19296 (deprecated) or "normal" (default). See the drawtext_expansion,
19297 Text expansion section below for details.
19298
19299 basetime
19300 Set a start time for the count. Value is in microseconds. Only
19301 applied in the deprecated strftime expansion mode. To emulate in
19302 normal expansion mode use the "pts" function, supplying the start
19303 time (in seconds) as the second argument.
19304
19305 fix_bounds
19306 If true, check and fix text coords to avoid clipping.
19307
19308 fontcolor
19309 The color to be used for drawing fonts. For the syntax of this
19310 option, check the "Color" section in the ffmpeg-utils manual.
19311
19312 The default value of fontcolor is "black".
19313
19314 fontcolor_expr
19315 String which is expanded the same way as text to obtain dynamic
19316 fontcolor value. By default this option has empty value and is not
19317 processed. When this option is set, it overrides fontcolor option.
19318
19319 font
19320 The font family to be used for drawing text. By default Sans.
19321
19322 fontfile
19323 The font file to be used for drawing text. The path must be
19324 included. This parameter is mandatory if the fontconfig support is
19325 disabled.
19326
19327 alpha
19328 Draw the text applying alpha blending. The value can be a number
19329 between 0.0 and 1.0. The expression accepts the same variables x,
19330 y as well. The default value is 1. Please see fontcolor_expr.
19331
19332 fontsize
19333 The font size to be used for drawing text. The default value of
19334 fontsize is 16.
19335
19336 text_shaping
19337 If set to 1, attempt to shape the text (for example, reverse the
19338 order of right-to-left text and join Arabic characters) before
19339 drawing it. Otherwise, just draw the text exactly as given. By
19340 default 1 (if supported).
19341
19342 ft_load_flags
19343 The flags to be used for loading the fonts.
19344
19345 The flags map the corresponding flags supported by libfreetype, and
19346 are a combination of the following values:
19347
19348 default
19349 no_scale
19350 no_hinting
19351 render
19352 no_bitmap
19353 vertical_layout
19354 force_autohint
19355 crop_bitmap
19356 pedantic
19357 ignore_global_advance_width
19358 no_recurse
19359 ignore_transform
19360 monochrome
19361 linear_design
19362 no_autohint
19363
19364 Default value is "default".
19365
19366 For more information consult the documentation for the FT_LOAD_*
19367 libfreetype flags.
19368
19369 shadowcolor
19370 The color to be used for drawing a shadow behind the drawn text.
19371 For the syntax of this option, check the "Color" section in the
19372 ffmpeg-utils manual.
19373
19374 The default value of shadowcolor is "black".
19375
19376 shadowx
19377 shadowy
19378 The x and y offsets for the text shadow position with respect to
19379 the position of the text. They can be either positive or negative
19380 values. The default value for both is "0".
19381
19382 start_number
19383 The starting frame number for the n/frame_num variable. The default
19384 value is "0".
19385
19386 tabsize
19387 The size in number of spaces to use for rendering the tab. Default
19388 value is 4.
19389
19390 timecode
19391 Set the initial timecode representation in "hh:mm:ss[:;.]ff"
19392 format. It can be used with or without text parameter.
19393 timecode_rate option must be specified.
19394
19395 timecode_rate, rate, r
19396 Set the timecode frame rate (timecode only). Value will be rounded
19397 to nearest integer. Minimum value is "1". Drop-frame timecode is
19398 supported for frame rates 30 & 60.
19399
19400 tc24hmax
19401 If set to 1, the output of the timecode option will wrap around at
19402 24 hours. Default is 0 (disabled).
19403
19404 text
19405 The text string to be drawn. The text must be a sequence of UTF-8
19406 encoded characters. This parameter is mandatory if no file is
19407 specified with the parameter textfile.
19408
19409 textfile
19410 A text file containing text to be drawn. The text must be a
19411 sequence of UTF-8 encoded characters.
19412
19413 This parameter is mandatory if no text string is specified with the
19414 parameter text.
19415
19416 If both text and textfile are specified, an error is thrown.
19417
19418 text_source
19419 Text source should be set as side_data_detection_bboxes if you want
19420 to use text data in detection bboxes of side data.
19421
19422 If text source is set, text and textfile will be ignored and still
19423 use text data in detection bboxes of side data. So please do not
19424 use this parameter if you are not sure about the text source.
19425
19426 reload
19427 The textfile will be reloaded at specified frame interval. Be sure
19428 to update textfile atomically, or it may be read partially, or even
19429 fail. Range is 0 to INT_MAX. Default is 0.
19430
19431 x
19432 y The expressions which specify the offsets where text will be drawn
19433 within the video frame. They are relative to the top/left border of
19434 the output image.
19435
19436 The default value of x and y is "0".
19437
19438 See below for the list of accepted constants and functions.
19439
19440 The parameters for x and y are expressions containing the following
19441 constants and functions:
19442
19443 dar input display aspect ratio, it is the same as (w / h) * sar
19444
19445 hsub
19446 vsub
19447 horizontal and vertical chroma subsample values. For example for
19448 the pixel format "yuv422p" hsub is 2 and vsub is 1.
19449
19450 line_h, lh
19451 the height of each text line
19452
19453 main_h, h, H
19454 the input height
19455
19456 main_w, w, W
19457 the input width
19458
19459 max_glyph_a, ascent
19460 the maximum distance from the baseline to the highest/upper grid
19461 coordinate used to place a glyph outline point, for all the
19462 rendered glyphs. It is a positive value, due to the grid's
19463 orientation with the Y axis upwards.
19464
19465 max_glyph_d, descent
19466 the maximum distance from the baseline to the lowest grid
19467 coordinate used to place a glyph outline point, for all the
19468 rendered glyphs. This is a negative value, due to the grid's
19469 orientation, with the Y axis upwards.
19470
19471 max_glyph_h
19472 maximum glyph height, that is the maximum height for all the glyphs
19473 contained in the rendered text, it is equivalent to ascent -
19474 descent.
19475
19476 max_glyph_w
19477 maximum glyph width, that is the maximum width for all the glyphs
19478 contained in the rendered text
19479
19480 n the number of input frame, starting from 0
19481
19482 rand(min, max)
19483 return a random number included between min and max
19484
19485 sar The input sample aspect ratio.
19486
19487 t timestamp expressed in seconds, NAN if the input timestamp is
19488 unknown
19489
19490 text_h, th
19491 the height of the rendered text
19492
19493 text_w, tw
19494 the width of the rendered text
19495
19496 x
19497 y the x and y offset coordinates where the text is drawn.
19498
19499 These parameters allow the x and y expressions to refer to each
19500 other, so you can for example specify "y=x/dar".
19501
19502 pict_type
19503 A one character description of the current frame's picture type.
19504
19505 pkt_pos
19506 The current packet's position in the input file or stream (in
19507 bytes, from the start of the input). A value of -1 indicates this
19508 info is not available.
19509
19510 pkt_duration
19511 The current packet's duration, in seconds.
19512
19513 pkt_size
19514 The current packet's size (in bytes).
19515
19516 Text expansion
19517
19518 If expansion is set to "strftime", the filter recognizes strftime()
19519 sequences in the provided text and expands them accordingly. Check the
19520 documentation of strftime(). This feature is deprecated.
19521
19522 If expansion is set to "none", the text is printed verbatim.
19523
19524 If expansion is set to "normal" (which is the default), the following
19525 expansion mechanism is used.
19526
19527 The backslash character \, followed by any character, always expands to
19528 the second character.
19529
19530 Sequences of the form "%{...}" are expanded. The text between the
19531 braces is a function name, possibly followed by arguments separated by
19532 ':'. If the arguments contain special characters or delimiters (':' or
19533 '}'), they should be escaped.
19534
19535 Note that they probably must also be escaped as the value for the text
19536 option in the filter argument string and as the filter argument in the
19537 filtergraph description, and possibly also for the shell, that makes up
19538 to four levels of escaping; using a text file avoids these problems.
19539
19540 The following functions are available:
19541
19542 expr, e
19543 The expression evaluation result.
19544
19545 It must take one argument specifying the expression to be
19546 evaluated, which accepts the same constants and functions as the x
19547 and y values. Note that not all constants should be used, for
19548 example the text size is not known when evaluating the expression,
19549 so the constants text_w and text_h will have an undefined value.
19550
19551 expr_int_format, eif
19552 Evaluate the expression's value and output as formatted integer.
19553
19554 The first argument is the expression to be evaluated, just as for
19555 the expr function. The second argument specifies the output
19556 format. Allowed values are x, X, d and u. They are treated exactly
19557 as in the "printf" function. The third parameter is optional and
19558 sets the number of positions taken by the output. It can be used
19559 to add padding with zeros from the left.
19560
19561 gmtime
19562 The time at which the filter is running, expressed in UTC. It can
19563 accept an argument: a strftime() format string. The format string
19564 is extended to support the variable %[1-6]N which prints fractions
19565 of the second with optionally specified number of digits.
19566
19567 localtime
19568 The time at which the filter is running, expressed in the local
19569 time zone. It can accept an argument: a strftime() format string.
19570 The format string is extended to support the variable %[1-6]N which
19571 prints fractions of the second with optionally specified number of
19572 digits.
19573
19574 metadata
19575 Frame metadata. Takes one or two arguments.
19576
19577 The first argument is mandatory and specifies the metadata key.
19578
19579 The second argument is optional and specifies a default value, used
19580 when the metadata key is not found or empty.
19581
19582 Available metadata can be identified by inspecting entries starting
19583 with TAG included within each frame section printed by running
19584 "ffprobe -show_frames".
19585
19586 String metadata generated in filters leading to the drawtext filter
19587 are also available.
19588
19589 n, frame_num
19590 The frame number, starting from 0.
19591
19592 pict_type
19593 A one character description of the current picture type.
19594
19595 pts The timestamp of the current frame. It can take up to three
19596 arguments.
19597
19598 The first argument is the format of the timestamp; it defaults to
19599 "flt" for seconds as a decimal number with microsecond accuracy;
19600 "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
19601 millisecond accuracy. "gmtime" stands for the timestamp of the
19602 frame formatted as UTC time; "localtime" stands for the timestamp
19603 of the frame formatted as local time zone time.
19604
19605 The second argument is an offset added to the timestamp.
19606
19607 If the format is set to "hms", a third argument "24HH" may be
19608 supplied to present the hour part of the formatted timestamp in 24h
19609 format (00-23).
19610
19611 If the format is set to "localtime" or "gmtime", a third argument
19612 may be supplied: a strftime() format string. By default, YYYY-MM-
19613 DD HH:MM:SS format will be used.
19614
19615 Commands
19616
19617 This filter supports altering parameters via commands:
19618
19619 reinit
19620 Alter existing filter parameters.
19621
19622 Syntax for the argument is the same as for filter invocation, e.g.
19623
19624 fontsize=56:fontcolor=green:text='Hello World'
19625
19626 Full filter invocation with sendcmd would look like this:
19627
19628 sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
19629
19630 If the entire argument can't be parsed or applied as valid values then
19631 the filter will continue with its existing parameters.
19632
19633 Examples
19634
19635 • Draw "Test Text" with font FreeSerif, using the default values for
19636 the optional parameters.
19637
19638 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
19639
19640 • Draw 'Test Text' with font FreeSerif of size 24 at position x=100
19641 and y=50 (counting from the top-left corner of the screen), text is
19642 yellow with a red box around it. Both the text and the box have an
19643 opacity of 20%.
19644
19645 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
19646 x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
19647
19648 Note that the double quotes are not necessary if spaces are not
19649 used within the parameter list.
19650
19651 • Show the text at the center of the video frame:
19652
19653 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
19654
19655 • Show the text at a random position, switching to a new position
19656 every 30 seconds:
19657
19658 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)"
19659
19660 • Show a text line sliding from right to left in the last row of the
19661 video frame. The file LONG_LINE is assumed to contain a single line
19662 with no newlines.
19663
19664 drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
19665
19666 • Show the content of file CREDITS off the bottom of the frame and
19667 scroll up.
19668
19669 drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
19670
19671 • Draw a single green letter "g", at the center of the input video.
19672 The glyph baseline is placed at half screen height.
19673
19674 drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
19675
19676 • Show text for 1 second every 3 seconds:
19677
19678 drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
19679
19680 • Use fontconfig to set the font. Note that the colons need to be
19681 escaped.
19682
19683 drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
19684
19685 • Draw "Test Text" with font size dependent on height of the video.
19686
19687 drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
19688
19689 • Print the date of a real-time encoding (see strftime(3)):
19690
19691 drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
19692
19693 • Show text fading in and out (appearing/disappearing):
19694
19695 #!/bin/sh
19696 DS=1.0 # display start
19697 DE=10.0 # display end
19698 FID=1.5 # fade in duration
19699 FOD=5 # fade out duration
19700 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 }"
19701
19702 • Horizontally align multiple separate texts. Note that max_glyph_a
19703 and the fontsize value are included in the y offset.
19704
19705 drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
19706 drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
19707
19708 • Plot special lavf.image2dec.source_basename metadata onto each
19709 frame if such metadata exists. Otherwise, plot the string "NA".
19710 Note that image2 demuxer must have option -export_path_metadata 1
19711 for the special metadata fields to be available for filters.
19712
19713 drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
19714
19715 For more information about libfreetype, check:
19716 <http://www.freetype.org/>.
19717
19718 For more information about fontconfig, check:
19719 <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
19720
19721 For more information about libfribidi, check: <http://fribidi.org/>.
19722
19723 edgedetect
19724 Detect and draw edges. The filter uses the Canny Edge Detection
19725 algorithm.
19726
19727 The filter accepts the following options:
19728
19729 low
19730 high
19731 Set low and high threshold values used by the Canny thresholding
19732 algorithm.
19733
19734 The high threshold selects the "strong" edge pixels, which are then
19735 connected through 8-connectivity with the "weak" edge pixels
19736 selected by the low threshold.
19737
19738 low and high threshold values must be chosen in the range [0,1],
19739 and low should be lesser or equal to high.
19740
19741 Default value for low is "20/255", and default value for high is
19742 "50/255".
19743
19744 mode
19745 Define the drawing mode.
19746
19747 wires
19748 Draw white/gray wires on black background.
19749
19750 colormix
19751 Mix the colors to create a paint/cartoon effect.
19752
19753 canny
19754 Apply Canny edge detector on all selected planes.
19755
19756 Default value is wires.
19757
19758 planes
19759 Select planes for filtering. By default all available planes are
19760 filtered.
19761
19762 Examples
19763
19764 • Standard edge detection with custom values for the hysteresis
19765 thresholding:
19766
19767 edgedetect=low=0.1:high=0.4
19768
19769 • Painting effect without thresholding:
19770
19771 edgedetect=mode=colormix:high=0
19772
19773 elbg
19774 Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
19775
19776 For each input image, the filter will compute the optimal mapping from
19777 the input to the output given the codebook length, that is the number
19778 of distinct output colors.
19779
19780 This filter accepts the following options.
19781
19782 codebook_length, l
19783 Set codebook length. The value must be a positive integer, and
19784 represents the number of distinct output colors. Default value is
19785 256.
19786
19787 nb_steps, n
19788 Set the maximum number of iterations to apply for computing the
19789 optimal mapping. The higher the value the better the result and the
19790 higher the computation time. Default value is 1.
19791
19792 seed, s
19793 Set a random seed, must be an integer included between 0 and
19794 UINT32_MAX. If not specified, or if explicitly set to -1, the
19795 filter will try to use a good random seed on a best effort basis.
19796
19797 pal8
19798 Set pal8 output pixel format. This option does not work with
19799 codebook length greater than 256. Default is disabled.
19800
19801 use_alpha
19802 Include alpha values in the quantization calculation. Allows
19803 creating palettized output images (e.g. PNG8) with multiple alpha
19804 smooth blending.
19805
19806 entropy
19807 Measure graylevel entropy in histogram of color channels of video
19808 frames.
19809
19810 It accepts the following parameters:
19811
19812 mode
19813 Can be either normal or diff. Default is normal.
19814
19815 diff mode measures entropy of histogram delta values, absolute
19816 differences between neighbour histogram values.
19817
19818 epx
19819 Apply the EPX magnification filter which is designed for pixel art.
19820
19821 It accepts the following option:
19822
19823 n Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX". Default
19824 is 3.
19825
19826 eq
19827 Set brightness, contrast, saturation and approximate gamma adjustment.
19828
19829 The filter accepts the following options:
19830
19831 contrast
19832 Set the contrast expression. The value must be a float value in
19833 range "-1000.0" to 1000.0. The default value is "1".
19834
19835 brightness
19836 Set the brightness expression. The value must be a float value in
19837 range "-1.0" to 1.0. The default value is "0".
19838
19839 saturation
19840 Set the saturation expression. The value must be a float in range
19841 0.0 to 3.0. The default value is "1".
19842
19843 gamma
19844 Set the gamma expression. The value must be a float in range 0.1 to
19845 10.0. The default value is "1".
19846
19847 gamma_r
19848 Set the gamma expression for red. The value must be a float in
19849 range 0.1 to 10.0. The default value is "1".
19850
19851 gamma_g
19852 Set the gamma expression for green. The value must be a float in
19853 range 0.1 to 10.0. The default value is "1".
19854
19855 gamma_b
19856 Set the gamma expression for blue. The value must be a float in
19857 range 0.1 to 10.0. The default value is "1".
19858
19859 gamma_weight
19860 Set the gamma weight expression. It can be used to reduce the
19861 effect of a high gamma value on bright image areas, e.g. keep them
19862 from getting overamplified and just plain white. The value must be
19863 a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
19864 correction all the way down while 1.0 leaves it at its full
19865 strength. Default is "1".
19866
19867 eval
19868 Set when the expressions for brightness, contrast, saturation and
19869 gamma expressions are evaluated.
19870
19871 It accepts the following values:
19872
19873 init
19874 only evaluate expressions once during the filter initialization
19875 or when a command is processed
19876
19877 frame
19878 evaluate expressions for each incoming frame
19879
19880 Default value is init.
19881
19882 The expressions accept the following parameters:
19883
19884 n frame count of the input frame starting from 0
19885
19886 pos byte position of the corresponding packet in the input file, NAN if
19887 unspecified
19888
19889 r frame rate of the input video, NAN if the input frame rate is
19890 unknown
19891
19892 t timestamp expressed in seconds, NAN if the input timestamp is
19893 unknown
19894
19895 Commands
19896
19897 The filter supports the following commands:
19898
19899 contrast
19900 Set the contrast expression.
19901
19902 brightness
19903 Set the brightness expression.
19904
19905 saturation
19906 Set the saturation expression.
19907
19908 gamma
19909 Set the gamma expression.
19910
19911 gamma_r
19912 Set the gamma_r expression.
19913
19914 gamma_g
19915 Set gamma_g expression.
19916
19917 gamma_b
19918 Set gamma_b expression.
19919
19920 gamma_weight
19921 Set gamma_weight expression.
19922
19923 The command accepts the same syntax of the corresponding option.
19924
19925 If the specified expression is not valid, it is kept at its current
19926 value.
19927
19928 erosion
19929 Apply erosion effect to the video.
19930
19931 This filter replaces the pixel by the local(3x3) minimum.
19932
19933 It accepts the following options:
19934
19935 threshold0
19936 threshold1
19937 threshold2
19938 threshold3
19939 Limit the maximum change for each plane, default is 65535. If 0,
19940 plane will remain unchanged.
19941
19942 coordinates
19943 Flag which specifies the pixel to refer to. Default is 255 i.e. all
19944 eight pixels are used.
19945
19946 Flags to local 3x3 coordinates maps like this:
19947
19948 1 2 3
19949 4 5
19950 6 7 8
19951
19952 Commands
19953
19954 This filter supports the all above options as commands.
19955
19956 estdif
19957 Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
19958 Deinterlacing Filter").
19959
19960 Spatial only filter that uses edge slope tracing algorithm to
19961 interpolate missing lines. It accepts the following parameters:
19962
19963 mode
19964 The interlacing mode to adopt. It accepts one of the following
19965 values:
19966
19967 frame
19968 Output one frame for each frame.
19969
19970 field
19971 Output one frame for each field.
19972
19973 The default value is "field".
19974
19975 parity
19976 The picture field parity assumed for the input interlaced video. It
19977 accepts one of the following values:
19978
19979 tff Assume the top field is first.
19980
19981 bff Assume the bottom field is first.
19982
19983 auto
19984 Enable automatic detection of field parity.
19985
19986 The default value is "auto". If the interlacing is unknown or the
19987 decoder does not export this information, top field first will be
19988 assumed.
19989
19990 deint
19991 Specify which frames to deinterlace. Accepts one of the following
19992 values:
19993
19994 all Deinterlace all frames.
19995
19996 interlaced
19997 Only deinterlace frames marked as interlaced.
19998
19999 The default value is "all".
20000
20001 rslope
20002 Specify the search radius for edge slope tracing. Default value is
20003 1. Allowed range is from 1 to 15.
20004
20005 redge
20006 Specify the search radius for best edge matching. Default value is
20007 2. Allowed range is from 0 to 15.
20008
20009 ecost
20010 Specify the edge cost for edge matching. Default value is 1.0.
20011 Allowed range is from 0 to 9.
20012
20013 mcost
20014 Specify the middle cost for edge matching. Default value is 0.5.
20015 Allowed range is from 0 to 1.
20016
20017 dcost
20018 Specify the distance cost for edge matching. Default value is 0.5.
20019 Allowed range is from 0 to 1.
20020
20021 interp
20022 Specify the interpolation used. Default is 4-point interpolation.
20023 It accepts one of the following values:
20024
20025 2p Two-point interpolation.
20026
20027 4p Four-point interpolation.
20028
20029 6p Six-point interpolation.
20030
20031 Commands
20032
20033 This filter supports same commands as options.
20034
20035 exposure
20036 Adjust exposure of the video stream.
20037
20038 The filter accepts the following options:
20039
20040 exposure
20041 Set the exposure correction in EV. Allowed range is from -3.0 to
20042 3.0 EV Default value is 0 EV.
20043
20044 black
20045 Set the black level correction. Allowed range is from -1.0 to 1.0.
20046 Default value is 0.
20047
20048 Commands
20049
20050 This filter supports same commands as options.
20051
20052 extractplanes
20053 Extract color channel components from input video stream into separate
20054 grayscale video streams.
20055
20056 The filter accepts the following option:
20057
20058 planes
20059 Set plane(s) to extract.
20060
20061 Available values for planes are:
20062
20063 y
20064 u
20065 v
20066 a
20067 r
20068 g
20069 b
20070
20071 Choosing planes not available in the input will result in an error.
20072 That means you cannot select "r", "g", "b" planes with "y", "u",
20073 "v" planes at same time.
20074
20075 Examples
20076
20077 • Extract luma, u and v color channel component from input video
20078 frame into 3 grayscale outputs:
20079
20080 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
20081
20082 fade
20083 Apply a fade-in/out effect to the input video.
20084
20085 It accepts the following parameters:
20086
20087 type, t
20088 The effect type can be either "in" for a fade-in, or "out" for a
20089 fade-out effect. Default is "in".
20090
20091 start_frame, s
20092 Specify the number of the frame to start applying the fade effect
20093 at. Default is 0.
20094
20095 nb_frames, n
20096 The number of frames that the fade effect lasts. At the end of the
20097 fade-in effect, the output video will have the same intensity as
20098 the input video. At the end of the fade-out transition, the output
20099 video will be filled with the selected color. Default is 25.
20100
20101 alpha
20102 If set to 1, fade only alpha channel, if one exists on the input.
20103 Default value is 0.
20104
20105 start_time, st
20106 Specify the timestamp (in seconds) of the frame to start to apply
20107 the fade effect. If both start_frame and start_time are specified,
20108 the fade will start at whichever comes last. Default is 0.
20109
20110 duration, d
20111 The number of seconds for which the fade effect has to last. At the
20112 end of the fade-in effect the output video will have the same
20113 intensity as the input video, at the end of the fade-out transition
20114 the output video will be filled with the selected color. If both
20115 duration and nb_frames are specified, duration is used. Default is
20116 0 (nb_frames is used by default).
20117
20118 color, c
20119 Specify the color of the fade. Default is "black".
20120
20121 Examples
20122
20123 • Fade in the first 30 frames of video:
20124
20125 fade=in:0:30
20126
20127 The command above is equivalent to:
20128
20129 fade=t=in:s=0:n=30
20130
20131 • Fade out the last 45 frames of a 200-frame video:
20132
20133 fade=out:155:45
20134 fade=type=out:start_frame=155:nb_frames=45
20135
20136 • Fade in the first 25 frames and fade out the last 25 frames of a
20137 1000-frame video:
20138
20139 fade=in:0:25, fade=out:975:25
20140
20141 • Make the first 5 frames yellow, then fade in from frame 5-24:
20142
20143 fade=in:5:20:color=yellow
20144
20145 • Fade in alpha over first 25 frames of video:
20146
20147 fade=in:0:25:alpha=1
20148
20149 • Make the first 5.5 seconds black, then fade in for 0.5 seconds:
20150
20151 fade=t=in:st=5.5:d=0.5
20152
20153 feedback
20154 Apply feedback video filter.
20155
20156 This filter pass cropped input frames to 2nd output. From there it can
20157 be filtered with other video filters. After filter receives frame from
20158 2nd input, that frame is combined on top of original frame from 1st
20159 input and passed to 1st output.
20160
20161 The typical usage is filter only part of frame.
20162
20163 The filter accepts the following options:
20164
20165 x
20166 y Set the top left crop position.
20167
20168 w
20169 h Set the crop size.
20170
20171 Examples
20172
20173 • Blur only top left rectangular part of video frame size 100x100
20174 with gblur filter.
20175
20176 [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
20177
20178 • Draw black box on top left part of video frame of size 100x100 with
20179 drawbox filter.
20180
20181 [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]drawbox=x=0:y=0:w=100:h=100:t=100[blurin]
20182
20183 fftdnoiz
20184 Denoise frames using 3D FFT (frequency domain filtering).
20185
20186 The filter accepts the following options:
20187
20188 sigma
20189 Set the noise sigma constant. This sets denoising strength.
20190 Default value is 1. Allowed range is from 0 to 30. Using very high
20191 sigma with low overlap may give blocking artifacts.
20192
20193 amount
20194 Set amount of denoising. By default all detected noise is reduced.
20195 Default value is 1. Allowed range is from 0 to 1.
20196
20197 block
20198 Set size of block in pixels, Default is 32, can be 8 to 256.
20199
20200 overlap
20201 Set block overlap. Default is 0.5. Allowed range is from 0.2 to
20202 0.8.
20203
20204 method
20205 Set denoising method. Default is "wiener", can also be "hard".
20206
20207 prev
20208 Set number of previous frames to use for denoising. By default is
20209 set to 0.
20210
20211 next
20212 Set number of next frames to to use for denoising. By default is
20213 set to 0.
20214
20215 planes
20216 Set planes which will be filtered, by default are all available
20217 filtered except alpha.
20218
20219 fftfilt
20220 Apply arbitrary expressions to samples in frequency domain
20221
20222 dc_Y
20223 Adjust the dc value (gain) of the luma plane of the image. The
20224 filter accepts an integer value in range 0 to 1000. The default
20225 value is set to 0.
20226
20227 dc_U
20228 Adjust the dc value (gain) of the 1st chroma plane of the image.
20229 The filter accepts an integer value in range 0 to 1000. The default
20230 value is set to 0.
20231
20232 dc_V
20233 Adjust the dc value (gain) of the 2nd chroma plane of the image.
20234 The filter accepts an integer value in range 0 to 1000. The default
20235 value is set to 0.
20236
20237 weight_Y
20238 Set the frequency domain weight expression for the luma plane.
20239
20240 weight_U
20241 Set the frequency domain weight expression for the 1st chroma
20242 plane.
20243
20244 weight_V
20245 Set the frequency domain weight expression for the 2nd chroma
20246 plane.
20247
20248 eval
20249 Set when the expressions are evaluated.
20250
20251 It accepts the following values:
20252
20253 init
20254 Only evaluate expressions once during the filter
20255 initialization.
20256
20257 frame
20258 Evaluate expressions for each incoming frame.
20259
20260 Default value is init.
20261
20262 The filter accepts the following variables:
20263
20264 X
20265 Y The coordinates of the current sample.
20266
20267 W
20268 H The width and height of the image.
20269
20270 N The number of input frame, starting from 0.
20271
20272 WS
20273 HS The size of FFT array for horizontal and vertical processing.
20274
20275 Examples
20276
20277 • High-pass:
20278
20279 fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
20280
20281 • Low-pass:
20282
20283 fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
20284
20285 • Sharpen:
20286
20287 fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
20288
20289 • Blur:
20290
20291 fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
20292
20293 field
20294 Extract a single field from an interlaced image using stride arithmetic
20295 to avoid wasting CPU time. The output frames are marked as non-
20296 interlaced.
20297
20298 The filter accepts the following options:
20299
20300 type
20301 Specify whether to extract the top (if the value is 0 or "top") or
20302 the bottom field (if the value is 1 or "bottom").
20303
20304 fieldhint
20305 Create new frames by copying the top and bottom fields from surrounding
20306 frames supplied as numbers by the hint file.
20307
20308 hint
20309 Set file containing hints: absolute/relative frame numbers.
20310
20311 There must be one line for each frame in a clip. Each line must
20312 contain two numbers separated by the comma, optionally followed by
20313 "-" or "+". Numbers supplied on each line of file can not be out
20314 of [N-1,N+1] where N is current frame number for "absolute" mode or
20315 out of [-1, 1] range for "relative" mode. First number tells from
20316 which frame to pick up top field and second number tells from which
20317 frame to pick up bottom field.
20318
20319 If optionally followed by "+" output frame will be marked as
20320 interlaced, else if followed by "-" output frame will be marked as
20321 progressive, else it will be marked same as input frame. If
20322 optionally followed by "t" output frame will use only top field, or
20323 in case of "b" it will use only bottom field. If line starts with
20324 "#" or ";" that line is skipped.
20325
20326 mode
20327 Can be item "absolute" or "relative" or "pattern". Default is
20328 "absolute". The "pattern" mode is same as "relative" mode, except
20329 at last entry of file if there are more frames to process than
20330 "hint" file is seek back to start.
20331
20332 Example of first several lines of "hint" file for "relative" mode:
20333
20334 0,0 - # first frame
20335 1,0 - # second frame, use third's frame top field and second's frame bottom field
20336 1,0 - # third frame, use fourth's frame top field and third's frame bottom field
20337 1,0 -
20338 0,0 -
20339 0,0 -
20340 1,0 -
20341 1,0 -
20342 1,0 -
20343 0,0 -
20344 0,0 -
20345 1,0 -
20346 1,0 -
20347 1,0 -
20348 0,0 -
20349
20350 fieldmatch
20351 Field matching filter for inverse telecine. It is meant to reconstruct
20352 the progressive frames from a telecined stream. The filter does not
20353 drop duplicated frames, so to achieve a complete inverse telecine
20354 "fieldmatch" needs to be followed by a decimation filter such as
20355 decimate in the filtergraph.
20356
20357 The separation of the field matching and the decimation is notably
20358 motivated by the possibility of inserting a de-interlacing filter
20359 fallback between the two. If the source has mixed telecined and real
20360 interlaced content, "fieldmatch" will not be able to match fields for
20361 the interlaced parts. But these remaining combed frames will be marked
20362 as interlaced, and thus can be de-interlaced by a later filter such as
20363 yadif before decimation.
20364
20365 In addition to the various configuration options, "fieldmatch" can take
20366 an optional second stream, activated through the ppsrc option. If
20367 enabled, the frames reconstruction will be based on the fields and
20368 frames from this second stream. This allows the first input to be pre-
20369 processed in order to help the various algorithms of the filter, while
20370 keeping the output lossless (assuming the fields are matched properly).
20371 Typically, a field-aware denoiser, or brightness/contrast adjustments
20372 can help.
20373
20374 Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
20375 project) and VIVTC/VFM (VapourSynth project). The later is a light
20376 clone of TFM from which "fieldmatch" is based on. While the semantic
20377 and usage are very close, some behaviour and options names can differ.
20378
20379 The decimate filter currently only works for constant frame rate input.
20380 If your input has mixed telecined (30fps) and progressive content with
20381 a lower framerate like 24fps use the following filterchain to produce
20382 the necessary cfr stream:
20383 "dejudder,fps=30000/1001,fieldmatch,decimate".
20384
20385 The filter accepts the following options:
20386
20387 order
20388 Specify the assumed field order of the input stream. Available
20389 values are:
20390
20391 auto
20392 Auto detect parity (use FFmpeg's internal parity value).
20393
20394 bff Assume bottom field first.
20395
20396 tff Assume top field first.
20397
20398 Note that it is sometimes recommended not to trust the parity
20399 announced by the stream.
20400
20401 Default value is auto.
20402
20403 mode
20404 Set the matching mode or strategy to use. pc mode is the safest in
20405 the sense that it won't risk creating jerkiness due to duplicate
20406 frames when possible, but if there are bad edits or blended fields
20407 it will end up outputting combed frames when a good match might
20408 actually exist. On the other hand, pcn_ub mode is the most risky in
20409 terms of creating jerkiness, but will almost always find a good
20410 frame if there is one. The other values are all somewhere in
20411 between pc and pcn_ub in terms of risking jerkiness and creating
20412 duplicate frames versus finding good matches in sections with bad
20413 edits, orphaned fields, blended fields, etc.
20414
20415 More details about p/c/n/u/b are available in p/c/n/u/b meaning
20416 section.
20417
20418 Available values are:
20419
20420 pc 2-way matching (p/c)
20421
20422 pc_n
20423 2-way matching, and trying 3rd match if still combed (p/c + n)
20424
20425 pc_u
20426 2-way matching, and trying 3rd match (same order) if still
20427 combed (p/c + u)
20428
20429 pc_n_ub
20430 2-way matching, trying 3rd match if still combed, and trying
20431 4th/5th matches if still combed (p/c + n + u/b)
20432
20433 pcn 3-way matching (p/c/n)
20434
20435 pcn_ub
20436 3-way matching, and trying 4th/5th matches if all 3 of the
20437 original matches are detected as combed (p/c/n + u/b)
20438
20439 The parenthesis at the end indicate the matches that would be used
20440 for that mode assuming order=tff (and field on auto or top).
20441
20442 In terms of speed pc mode is by far the fastest and pcn_ub is the
20443 slowest.
20444
20445 Default value is pc_n.
20446
20447 ppsrc
20448 Mark the main input stream as a pre-processed input, and enable the
20449 secondary input stream as the clean source to pick the fields from.
20450 See the filter introduction for more details. It is similar to the
20451 clip2 feature from VFM/TFM.
20452
20453 Default value is 0 (disabled).
20454
20455 field
20456 Set the field to match from. It is recommended to set this to the
20457 same value as order unless you experience matching failures with
20458 that setting. In certain circumstances changing the field that is
20459 used to match from can have a large impact on matching performance.
20460 Available values are:
20461
20462 auto
20463 Automatic (same value as order).
20464
20465 bottom
20466 Match from the bottom field.
20467
20468 top Match from the top field.
20469
20470 Default value is auto.
20471
20472 mchroma
20473 Set whether or not chroma is included during the match comparisons.
20474 In most cases it is recommended to leave this enabled. You should
20475 set this to 0 only if your clip has bad chroma problems such as
20476 heavy rainbowing or other artifacts. Setting this to 0 could also
20477 be used to speed things up at the cost of some accuracy.
20478
20479 Default value is 1.
20480
20481 y0
20482 y1 These define an exclusion band which excludes the lines between y0
20483 and y1 from being included in the field matching decision. An
20484 exclusion band can be used to ignore subtitles, a logo, or other
20485 things that may interfere with the matching. y0 sets the starting
20486 scan line and y1 sets the ending line; all lines in between y0 and
20487 y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
20488 same value will disable the feature. y0 and y1 defaults to 0.
20489
20490 scthresh
20491 Set the scene change detection threshold as a percentage of maximum
20492 change on the luma plane. Good values are in the "[8.0, 14.0]"
20493 range. Scene change detection is only relevant in case
20494 combmatch=sc. The range for scthresh is "[0.0, 100.0]".
20495
20496 Default value is 12.0.
20497
20498 combmatch
20499 When combatch is not none, "fieldmatch" will take into account the
20500 combed scores of matches when deciding what match to use as the
20501 final match. Available values are:
20502
20503 none
20504 No final matching based on combed scores.
20505
20506 sc Combed scores are only used when a scene change is detected.
20507
20508 full
20509 Use combed scores all the time.
20510
20511 Default is sc.
20512
20513 combdbg
20514 Force "fieldmatch" to calculate the combed metrics for certain
20515 matches and print them. This setting is known as micout in TFM/VFM
20516 vocabulary. Available values are:
20517
20518 none
20519 No forced calculation.
20520
20521 pcn Force p/c/n calculations.
20522
20523 pcnub
20524 Force p/c/n/u/b calculations.
20525
20526 Default value is none.
20527
20528 cthresh
20529 This is the area combing threshold used for combed frame detection.
20530 This essentially controls how "strong" or "visible" combing must be
20531 to be detected. Larger values mean combing must be more visible
20532 and smaller values mean combing can be less visible or strong and
20533 still be detected. Valid settings are from "-1" (every pixel will
20534 be detected as combed) to 255 (no pixel will be detected as
20535 combed). This is basically a pixel difference value. A good range
20536 is "[8, 12]".
20537
20538 Default value is 9.
20539
20540 chroma
20541 Sets whether or not chroma is considered in the combed frame
20542 decision. Only disable this if your source has chroma problems
20543 (rainbowing, etc.) that are causing problems for the combed frame
20544 detection with chroma enabled. Actually, using chroma=0 is usually
20545 more reliable, except for the case where there is chroma only
20546 combing in the source.
20547
20548 Default value is 0.
20549
20550 blockx
20551 blocky
20552 Respectively set the x-axis and y-axis size of the window used
20553 during combed frame detection. This has to do with the size of the
20554 area in which combpel pixels are required to be detected as combed
20555 for a frame to be declared combed. See the combpel parameter
20556 description for more info. Possible values are any number that is
20557 a power of 2 starting at 4 and going up to 512.
20558
20559 Default value is 16.
20560
20561 combpel
20562 The number of combed pixels inside any of the blocky by blockx size
20563 blocks on the frame for the frame to be detected as combed. While
20564 cthresh controls how "visible" the combing must be, this setting
20565 controls "how much" combing there must be in any localized area (a
20566 window defined by the blockx and blocky settings) on the frame.
20567 Minimum value is 0 and maximum is "blocky x blockx" (at which point
20568 no frames will ever be detected as combed). This setting is known
20569 as MI in TFM/VFM vocabulary.
20570
20571 Default value is 80.
20572
20573 p/c/n/u/b meaning
20574
20575 p/c/n
20576
20577 We assume the following telecined stream:
20578
20579 Top fields: 1 2 2 3 4
20580 Bottom fields: 1 2 3 4 4
20581
20582 The numbers correspond to the progressive frame the fields relate to.
20583 Here, the first two frames are progressive, the 3rd and 4th are combed,
20584 and so on.
20585
20586 When "fieldmatch" is configured to run a matching from bottom
20587 (field=bottom) this is how this input stream get transformed:
20588
20589 Input stream:
20590 T 1 2 2 3 4
20591 B 1 2 3 4 4 <-- matching reference
20592
20593 Matches: c c n n c
20594
20595 Output stream:
20596 T 1 2 3 4 4
20597 B 1 2 3 4 4
20598
20599 As a result of the field matching, we can see that some frames get
20600 duplicated. To perform a complete inverse telecine, you need to rely
20601 on a decimation filter after this operation. See for instance the
20602 decimate filter.
20603
20604 The same operation now matching from top fields (field=top) looks like
20605 this:
20606
20607 Input stream:
20608 T 1 2 2 3 4 <-- matching reference
20609 B 1 2 3 4 4
20610
20611 Matches: c c p p c
20612
20613 Output stream:
20614 T 1 2 2 3 4
20615 B 1 2 2 3 4
20616
20617 In these examples, we can see what p, c and n mean; basically, they
20618 refer to the frame and field of the opposite parity:
20619
20620 *<p matches the field of the opposite parity in the previous frame>
20621 *<c matches the field of the opposite parity in the current frame>
20622 *<n matches the field of the opposite parity in the next frame>
20623
20624 u/b
20625
20626 The u and b matching are a bit special in the sense that they match
20627 from the opposite parity flag. In the following examples, we assume
20628 that we are currently matching the 2nd frame (Top:2, bottom:2).
20629 According to the match, a 'x' is placed above and below each matched
20630 fields.
20631
20632 With bottom matching (field=bottom):
20633
20634 Match: c p n b u
20635
20636 x x x x x
20637 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
20638 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
20639 x x x x x
20640
20641 Output frames:
20642 2 1 2 2 2
20643 2 2 2 1 3
20644
20645 With top matching (field=top):
20646
20647 Match: c p n b u
20648
20649 x x x x x
20650 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
20651 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
20652 x x x x x
20653
20654 Output frames:
20655 2 2 2 1 2
20656 2 1 3 2 2
20657
20658 Examples
20659
20660 Simple IVTC of a top field first telecined stream:
20661
20662 fieldmatch=order=tff:combmatch=none, decimate
20663
20664 Advanced IVTC, with fallback on yadif for still combed frames:
20665
20666 fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
20667
20668 fieldorder
20669 Transform the field order of the input video.
20670
20671 It accepts the following parameters:
20672
20673 order
20674 The output field order. Valid values are tff for top field first or
20675 bff for bottom field first.
20676
20677 The default value is tff.
20678
20679 The transformation is done by shifting the picture content up or down
20680 by one line, and filling the remaining line with appropriate picture
20681 content. This method is consistent with most broadcast field order
20682 converters.
20683
20684 If the input video is not flagged as being interlaced, or it is already
20685 flagged as being of the required output field order, then this filter
20686 does not alter the incoming video.
20687
20688 It is very useful when converting to or from PAL DV material, which is
20689 bottom field first.
20690
20691 For example:
20692
20693 ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
20694
20695 fifo, afifo
20696 Buffer input images and send them when they are requested.
20697
20698 It is mainly useful when auto-inserted by the libavfilter framework.
20699
20700 It does not take parameters.
20701
20702 fillborders
20703 Fill borders of the input video, without changing video stream
20704 dimensions. Sometimes video can have garbage at the four edges and you
20705 may not want to crop video input to keep size multiple of some number.
20706
20707 This filter accepts the following options:
20708
20709 left
20710 Number of pixels to fill from left border.
20711
20712 right
20713 Number of pixels to fill from right border.
20714
20715 top Number of pixels to fill from top border.
20716
20717 bottom
20718 Number of pixels to fill from bottom border.
20719
20720 mode
20721 Set fill mode.
20722
20723 It accepts the following values:
20724
20725 smear
20726 fill pixels using outermost pixels
20727
20728 mirror
20729 fill pixels using mirroring (half sample symmetric)
20730
20731 fixed
20732 fill pixels with constant value
20733
20734 reflect
20735 fill pixels using reflecting (whole sample symmetric)
20736
20737 wrap
20738 fill pixels using wrapping
20739
20740 fade
20741 fade pixels to constant value
20742
20743 margins
20744 fill pixels at top and bottom with weighted averages pixels
20745 near borders
20746
20747 Default is smear.
20748
20749 color
20750 Set color for pixels in fixed or fade mode. Default is black.
20751
20752 Commands
20753
20754 This filter supports same commands as options. The command accepts the
20755 same syntax of the corresponding option.
20756
20757 If the specified expression is not valid, it is kept at its current
20758 value.
20759
20760 find_rect
20761 Find a rectangular object
20762
20763 It accepts the following options:
20764
20765 object
20766 Filepath of the object image, needs to be in gray8.
20767
20768 threshold
20769 Detection threshold, default is 0.5.
20770
20771 mipmaps
20772 Number of mipmaps, default is 3.
20773
20774 xmin, ymin, xmax, ymax
20775 Specifies the rectangle in which to search.
20776
20777 discard
20778 Discard frames where object is not detected. Default is disabled.
20779
20780 Examples
20781
20782 • Cover a rectangular object by the supplied image of a given video
20783 using ffmpeg:
20784
20785 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
20786
20787 floodfill
20788 Flood area with values of same pixel components with another values.
20789
20790 It accepts the following options:
20791
20792 x Set pixel x coordinate.
20793
20794 y Set pixel y coordinate.
20795
20796 s0 Set source #0 component value.
20797
20798 s1 Set source #1 component value.
20799
20800 s2 Set source #2 component value.
20801
20802 s3 Set source #3 component value.
20803
20804 d0 Set destination #0 component value.
20805
20806 d1 Set destination #1 component value.
20807
20808 d2 Set destination #2 component value.
20809
20810 d3 Set destination #3 component value.
20811
20812 format
20813 Convert the input video to one of the specified pixel formats.
20814 Libavfilter will try to pick one that is suitable as input to the next
20815 filter.
20816
20817 It accepts the following parameters:
20818
20819 pix_fmts
20820 A '|'-separated list of pixel format names, such as
20821 "pix_fmts=yuv420p|monow|rgb24".
20822
20823 Examples
20824
20825 • Convert the input video to the yuv420p format
20826
20827 format=pix_fmts=yuv420p
20828
20829 Convert the input video to any of the formats in the list
20830
20831 format=pix_fmts=yuv420p|yuv444p|yuv410p
20832
20833 fps
20834 Convert the video to specified constant frame rate by duplicating or
20835 dropping frames as necessary.
20836
20837 It accepts the following parameters:
20838
20839 fps The desired output frame rate. It accepts expressions containing
20840 the following constants:
20841
20842 source_fps
20843 The input's frame rate
20844
20845 ntsc
20846 NTSC frame rate of "30000/1001"
20847
20848 pal PAL frame rate of 25.0
20849
20850 film
20851 Film frame rate of 24.0
20852
20853 ntsc_film
20854 NTSC-film frame rate of "24000/1001"
20855
20856 The default is 25.
20857
20858 start_time
20859 Assume the first PTS should be the given value, in seconds. This
20860 allows for padding/trimming at the start of stream. By default, no
20861 assumption is made about the first frame's expected PTS, so no
20862 padding or trimming is done. For example, this could be set to 0
20863 to pad the beginning with duplicates of the first frame if a video
20864 stream starts after the audio stream or to trim any frames with a
20865 negative PTS.
20866
20867 round
20868 Timestamp (PTS) rounding method.
20869
20870 Possible values are:
20871
20872 zero
20873 round towards 0
20874
20875 inf round away from 0
20876
20877 down
20878 round towards -infinity
20879
20880 up round towards +infinity
20881
20882 near
20883 round to nearest
20884
20885 The default is "near".
20886
20887 eof_action
20888 Action performed when reading the last frame.
20889
20890 Possible values are:
20891
20892 round
20893 Use same timestamp rounding method as used for other frames.
20894
20895 pass
20896 Pass through last frame if input duration has not been reached
20897 yet.
20898
20899 The default is "round".
20900
20901 Alternatively, the options can be specified as a flat string:
20902 fps[:start_time[:round]].
20903
20904 See also the setpts filter.
20905
20906 Examples
20907
20908 • A typical usage in order to set the fps to 25:
20909
20910 fps=fps=25
20911
20912 • Sets the fps to 24, using abbreviation and rounding method to round
20913 to nearest:
20914
20915 fps=fps=film:round=near
20916
20917 framepack
20918 Pack two different video streams into a stereoscopic video, setting
20919 proper metadata on supported codecs. The two views should have the same
20920 size and framerate and processing will stop when the shorter video
20921 ends. Please note that you may conveniently adjust view properties with
20922 the scale and fps filters.
20923
20924 It accepts the following parameters:
20925
20926 format
20927 The desired packing format. Supported values are:
20928
20929 sbs The views are next to each other (default).
20930
20931 tab The views are on top of each other.
20932
20933 lines
20934 The views are packed by line.
20935
20936 columns
20937 The views are packed by column.
20938
20939 frameseq
20940 The views are temporally interleaved.
20941
20942 Some examples:
20943
20944 # Convert left and right views into a frame-sequential video
20945 ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
20946
20947 # Convert views into a side-by-side video with the same output resolution as the input
20948 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
20949
20950 framerate
20951 Change the frame rate by interpolating new video output frames from the
20952 source frames.
20953
20954 This filter is not designed to function correctly with interlaced
20955 media. If you wish to change the frame rate of interlaced media then
20956 you are required to deinterlace before this filter and re-interlace
20957 after this filter.
20958
20959 A description of the accepted options follows.
20960
20961 fps Specify the output frames per second. This option can also be
20962 specified as a value alone. The default is 50.
20963
20964 interp_start
20965 Specify the start of a range where the output frame will be created
20966 as a linear interpolation of two frames. The range is [0-255], the
20967 default is 15.
20968
20969 interp_end
20970 Specify the end of a range where the output frame will be created
20971 as a linear interpolation of two frames. The range is [0-255], the
20972 default is 240.
20973
20974 scene
20975 Specify the level at which a scene change is detected as a value
20976 between 0 and 100 to indicate a new scene; a low value reflects a
20977 low probability for the current frame to introduce a new scene,
20978 while a higher value means the current frame is more likely to be
20979 one. The default is 8.2.
20980
20981 flags
20982 Specify flags influencing the filter process.
20983
20984 Available value for flags is:
20985
20986 scene_change_detect, scd
20987 Enable scene change detection using the value of the option
20988 scene. This flag is enabled by default.
20989
20990 framestep
20991 Select one frame every N-th frame.
20992
20993 This filter accepts the following option:
20994
20995 step
20996 Select frame after every "step" frames. Allowed values are
20997 positive integers higher than 0. Default value is 1.
20998
20999 freezedetect
21000 Detect frozen video.
21001
21002 This filter logs a message and sets frame metadata when it detects that
21003 the input video has no significant change in content during a specified
21004 duration. Video freeze detection calculates the mean average absolute
21005 difference of all the components of video frames and compares it to a
21006 noise floor.
21007
21008 The printed times and duration are expressed in seconds. The
21009 "lavfi.freezedetect.freeze_start" metadata key is set on the first
21010 frame whose timestamp equals or exceeds the detection duration and it
21011 contains the timestamp of the first frame of the freeze. The
21012 "lavfi.freezedetect.freeze_duration" and
21013 "lavfi.freezedetect.freeze_end" metadata keys are set on the first
21014 frame after the freeze.
21015
21016 The filter accepts the following options:
21017
21018 noise, n
21019 Set noise tolerance. Can be specified in dB (in case "dB" is
21020 appended to the specified value) or as a difference ratio between 0
21021 and 1. Default is -60dB, or 0.001.
21022
21023 duration, d
21024 Set freeze duration until notification (default is 2 seconds).
21025
21026 freezeframes
21027 Freeze video frames.
21028
21029 This filter freezes video frames using frame from 2nd input.
21030
21031 The filter accepts the following options:
21032
21033 first
21034 Set number of first frame from which to start freeze.
21035
21036 last
21037 Set number of last frame from which to end freeze.
21038
21039 replace
21040 Set number of frame from 2nd input which will be used instead of
21041 replaced frames.
21042
21043 frei0r
21044 Apply a frei0r effect to the input video.
21045
21046 To enable the compilation of this filter, you need to install the
21047 frei0r header and configure FFmpeg with "--enable-frei0r".
21048
21049 It accepts the following parameters:
21050
21051 filter_name
21052 The name of the frei0r effect to load. If the environment variable
21053 FREI0R_PATH is defined, the frei0r effect is searched for in each
21054 of the directories specified by the colon-separated list in
21055 FREI0R_PATH. Otherwise, the standard frei0r paths are searched, in
21056 this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
21057 /usr/lib/frei0r-1/.
21058
21059 filter_params
21060 A '|'-separated list of parameters to pass to the frei0r effect.
21061
21062 A frei0r effect parameter can be a boolean (its value is either "y" or
21063 "n"), a double, a color (specified as R/G/B, where R, G, and B are
21064 floating point numbers between 0.0 and 1.0, inclusive) or a color
21065 description as specified in the "Color" section in the ffmpeg-utils
21066 manual, a position (specified as X/Y, where X and Y are floating point
21067 numbers) and/or a string.
21068
21069 The number and types of parameters depend on the loaded effect. If an
21070 effect parameter is not specified, the default value is set.
21071
21072 Examples
21073
21074 • Apply the distort0r effect, setting the first two double
21075 parameters:
21076
21077 frei0r=filter_name=distort0r:filter_params=0.5|0.01
21078
21079 • Apply the colordistance effect, taking a color as the first
21080 parameter:
21081
21082 frei0r=colordistance:0.2/0.3/0.4
21083 frei0r=colordistance:violet
21084 frei0r=colordistance:0x112233
21085
21086 • Apply the perspective effect, specifying the top left and top right
21087 image positions:
21088
21089 frei0r=perspective:0.2/0.2|0.8/0.2
21090
21091 For more information, see <http://frei0r.dyne.org>
21092
21093 Commands
21094
21095 This filter supports the filter_params option as commands.
21096
21097 fspp
21098 Apply fast and simple postprocessing. It is a faster version of spp.
21099
21100 It splits (I)DCT into horizontal/vertical passes. Unlike the simple
21101 post- processing filter, one of them is performed once per block, not
21102 per pixel. This allows for much higher speed.
21103
21104 The filter accepts the following options:
21105
21106 quality
21107 Set quality. This option defines the number of levels for
21108 averaging. It accepts an integer in the range 4-5. Default value is
21109 4.
21110
21111 qp Force a constant quantization parameter. It accepts an integer in
21112 range 0-63. If not set, the filter will use the QP from the video
21113 stream (if available).
21114
21115 strength
21116 Set filter strength. It accepts an integer in range -15 to 32.
21117 Lower values mean more details but also more artifacts, while
21118 higher values make the image smoother but also blurrier. Default
21119 value is 0 X PSNR optimal.
21120
21121 use_bframe_qp
21122 Enable the use of the QP from the B-Frames if set to 1. Using this
21123 option may cause flicker since the B-Frames have often larger QP.
21124 Default is 0 (not enabled).
21125
21126 gblur
21127 Apply Gaussian blur filter.
21128
21129 The filter accepts the following options:
21130
21131 sigma
21132 Set horizontal sigma, standard deviation of Gaussian blur. Default
21133 is 0.5.
21134
21135 steps
21136 Set number of steps for Gaussian approximation. Default is 1.
21137
21138 planes
21139 Set which planes to filter. By default all planes are filtered.
21140
21141 sigmaV
21142 Set vertical sigma, if negative it will be same as "sigma".
21143 Default is "-1".
21144
21145 Commands
21146
21147 This filter supports same commands as options. The command accepts the
21148 same syntax of the corresponding option.
21149
21150 If the specified expression is not valid, it is kept at its current
21151 value.
21152
21153 geq
21154 Apply generic equation to each pixel.
21155
21156 The filter accepts the following options:
21157
21158 lum_expr, lum
21159 Set the luminance expression.
21160
21161 cb_expr, cb
21162 Set the chrominance blue expression.
21163
21164 cr_expr, cr
21165 Set the chrominance red expression.
21166
21167 alpha_expr, a
21168 Set the alpha expression.
21169
21170 red_expr, r
21171 Set the red expression.
21172
21173 green_expr, g
21174 Set the green expression.
21175
21176 blue_expr, b
21177 Set the blue expression.
21178
21179 The colorspace is selected according to the specified options. If one
21180 of the lum_expr, cb_expr, or cr_expr options is specified, the filter
21181 will automatically select a YCbCr colorspace. If one of the red_expr,
21182 green_expr, or blue_expr options is specified, it will select an RGB
21183 colorspace.
21184
21185 If one of the chrominance expression is not defined, it falls back on
21186 the other one. If no alpha expression is specified it will evaluate to
21187 opaque value. If none of chrominance expressions are specified, they
21188 will evaluate to the luminance expression.
21189
21190 The expressions can use the following variables and functions:
21191
21192 N The sequential number of the filtered frame, starting from 0.
21193
21194 X
21195 Y The coordinates of the current sample.
21196
21197 W
21198 H The width and height of the image.
21199
21200 SW
21201 SH Width and height scale depending on the currently filtered plane.
21202 It is the ratio between the corresponding luma plane number of
21203 pixels and the current plane ones. E.g. for YUV4:2:0 the values are
21204 "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
21205
21206 T Time of the current frame, expressed in seconds.
21207
21208 p(x, y)
21209 Return the value of the pixel at location (x,y) of the current
21210 plane.
21211
21212 lum(x, y)
21213 Return the value of the pixel at location (x,y) of the luminance
21214 plane.
21215
21216 cb(x, y)
21217 Return the value of the pixel at location (x,y) of the blue-
21218 difference chroma plane. Return 0 if there is no such plane.
21219
21220 cr(x, y)
21221 Return the value of the pixel at location (x,y) of the red-
21222 difference chroma plane. Return 0 if there is no such plane.
21223
21224 r(x, y)
21225 g(x, y)
21226 b(x, y)
21227 Return the value of the pixel at location (x,y) of the
21228 red/green/blue component. Return 0 if there is no such component.
21229
21230 alpha(x, y)
21231 Return the value of the pixel at location (x,y) of the alpha plane.
21232 Return 0 if there is no such plane.
21233
21234 psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
21235 bsum(x,y), alphasum(x,y)
21236 Sum of sample values in the rectangle from (0,0) to (x,y), this
21237 allows obtaining sums of samples within a rectangle. See the
21238 functions without the sum postfix.
21239
21240 interpolation
21241 Set one of interpolation methods:
21242
21243 nearest, n
21244 bilinear, b
21245
21246 Default is bilinear.
21247
21248 For functions, if x and y are outside the area, the value will be
21249 automatically clipped to the closer edge.
21250
21251 Please note that this filter can use multiple threads in which case
21252 each slice will have its own expression state. If you want to use only
21253 a single expression state because your expressions depend on previous
21254 state then you should limit the number of filter threads to 1.
21255
21256 Examples
21257
21258 • Flip the image horizontally:
21259
21260 geq=p(W-X\,Y)
21261
21262 • Generate a bidimensional sine wave, with angle "PI/3" and a
21263 wavelength of 100 pixels:
21264
21265 geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
21266
21267 • Generate a fancy enigmatic moving light:
21268
21269 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
21270
21271 • Generate a quick emboss effect:
21272
21273 format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
21274
21275 • Modify RGB components depending on pixel position:
21276
21277 geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
21278
21279 • Create a radial gradient that is the same size as the input (also
21280 see the vignette filter):
21281
21282 geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
21283
21284 gradfun
21285 Fix the banding artifacts that are sometimes introduced into nearly
21286 flat regions by truncation to 8-bit color depth. Interpolate the
21287 gradients that should go where the bands are, and dither them.
21288
21289 It is designed for playback only. Do not use it prior to lossy
21290 compression, because compression tends to lose the dither and bring
21291 back the bands.
21292
21293 It accepts the following parameters:
21294
21295 strength
21296 The maximum amount by which the filter will change any one pixel.
21297 This is also the threshold for detecting nearly flat regions.
21298 Acceptable values range from .51 to 64; the default value is 1.2.
21299 Out-of-range values will be clipped to the valid range.
21300
21301 radius
21302 The neighborhood to fit the gradient to. A larger radius makes for
21303 smoother gradients, but also prevents the filter from modifying the
21304 pixels near detailed regions. Acceptable values are 8-32; the
21305 default value is 16. Out-of-range values will be clipped to the
21306 valid range.
21307
21308 Alternatively, the options can be specified as a flat string:
21309 strength[:radius]
21310
21311 Examples
21312
21313 • Apply the filter with a 3.5 strength and radius of 8:
21314
21315 gradfun=3.5:8
21316
21317 • Specify radius, omitting the strength (which will fall-back to the
21318 default value):
21319
21320 gradfun=radius=8
21321
21322 graphmonitor
21323 Show various filtergraph stats.
21324
21325 With this filter one can debug complete filtergraph. Especially issues
21326 with links filling with queued frames.
21327
21328 The filter accepts the following options:
21329
21330 size, s
21331 Set video output size. Default is hd720.
21332
21333 opacity, o
21334 Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
21335
21336 mode, m
21337 Set output mode, can be fulll or compact. In compact mode only
21338 filters with some queued frames have displayed stats.
21339
21340 flags, f
21341 Set flags which enable which stats are shown in video.
21342
21343 Available values for flags are:
21344
21345 queue
21346 Display number of queued frames in each link.
21347
21348 frame_count_in
21349 Display number of frames taken from filter.
21350
21351 frame_count_out
21352 Display number of frames given out from filter.
21353
21354 frame_count_delta
21355 Display delta number of frames between above two values.
21356
21357 pts Display current filtered frame pts.
21358
21359 pts_delta
21360 Display pts delta between current and previous frame.
21361
21362 time
21363 Display current filtered frame time.
21364
21365 time_delta
21366 Display time delta between current and previous frame.
21367
21368 timebase
21369 Display time base for filter link.
21370
21371 format
21372 Display used format for filter link.
21373
21374 size
21375 Display video size or number of audio channels in case of audio
21376 used by filter link.
21377
21378 rate
21379 Display video frame rate or sample rate in case of audio used
21380 by filter link.
21381
21382 eof Display link output status.
21383
21384 sample_count_in
21385 Display number of samples taken from filter.
21386
21387 sample_count_out
21388 Display number of samples given out from filter.
21389
21390 sample_count_delta
21391 Display delta number of samples between above two values.
21392
21393 rate, r
21394 Set upper limit for video rate of output stream, Default value is
21395 25. This guarantee that output video frame rate will not be higher
21396 than this value.
21397
21398 grayworld
21399 A color constancy filter that applies color correction based on the
21400 grayworld assumption
21401
21402 See:
21403 <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
21404
21405 The algorithm uses linear light, so input data should be linearized
21406 beforehand (and possibly correctly tagged).
21407
21408 ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
21409
21410 greyedge
21411 A color constancy variation filter which estimates scene illumination
21412 via grey edge algorithm and corrects the scene colors accordingly.
21413
21414 See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
21415
21416 The filter accepts the following options:
21417
21418 difford
21419 The order of differentiation to be applied on the scene. Must be
21420 chosen in the range [0,2] and default value is 1.
21421
21422 minknorm
21423 The Minkowski parameter to be used for calculating the Minkowski
21424 distance. Must be chosen in the range [0,20] and default value is
21425 1. Set to 0 for getting max value instead of calculating Minkowski
21426 distance.
21427
21428 sigma
21429 The standard deviation of Gaussian blur to be applied on the scene.
21430 Must be chosen in the range [0,1024.0] and default value = 1.
21431 floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
21432 is greater than 0.
21433
21434 Examples
21435
21436 • Grey Edge:
21437
21438 greyedge=difford=1:minknorm=5:sigma=2
21439
21440 • Max Edge:
21441
21442 greyedge=difford=1:minknorm=0:sigma=2
21443
21444 guided
21445 Apply guided filter for edge-preserving smoothing, dehazing and so on.
21446
21447 The filter accepts the following options:
21448
21449 radius
21450 Set the box radius in pixels. Allowed range is 1 to 20. Default is
21451 3.
21452
21453 eps Set regularization parameter (with square). Allowed range is 0 to
21454 1. Default is 0.01.
21455
21456 mode
21457 Set filter mode. Can be "basic" or "fast". Default is "basic".
21458
21459 sub Set subsampling ratio for "fast" mode. Range is 2 to 64. Default
21460 is 4. No subsampling occurs in "basic" mode.
21461
21462 guidance
21463 Set guidance mode. Can be "off" or "on". Default is "off". If
21464 "off", single input is required. If "on", two inputs of the same
21465 resolution and pixel format are required. The second input serves
21466 as the guidance.
21467
21468 planes
21469 Set planes to filter. Default is first only.
21470
21471 Commands
21472
21473 This filter supports the all above options as commands.
21474
21475 Examples
21476
21477 • Edge-preserving smoothing with guided filter:
21478
21479 ffmpeg -i in.png -vf guided out.png
21480
21481 • Dehazing, structure-transferring filtering, detail enhancement with
21482 guided filter. For the generation of guidance image, refer to
21483 paper "Guided Image Filtering". See:
21484 <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
21485
21486 ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
21487
21488 haldclut
21489 Apply a Hald CLUT to a video stream.
21490
21491 First input is the video stream to process, and second one is the Hald
21492 CLUT. The Hald CLUT input can be a simple picture or a complete video
21493 stream.
21494
21495 The filter accepts the following options:
21496
21497 clut
21498 Set which CLUT video frames will be processed from second input
21499 stream, can be first or all. Default is all.
21500
21501 shortest
21502 Force termination when the shortest input terminates. Default is 0.
21503
21504 repeatlast
21505 Continue applying the last CLUT after the end of the stream. A
21506 value of 0 disable the filter after the last frame of the CLUT is
21507 reached. Default is 1.
21508
21509 "haldclut" also has the same interpolation options as lut3d (both
21510 filters share the same internals).
21511
21512 This filter also supports the framesync options.
21513
21514 More information about the Hald CLUT can be found on Eskil Steenberg's
21515 website (Hald CLUT author) at
21516 <http://www.quelsolaar.com/technology/clut.html>.
21517
21518 Commands
21519
21520 This filter supports the "interp" option as commands.
21521
21522 Workflow examples
21523
21524 Hald CLUT video stream
21525
21526 Generate an identity Hald CLUT stream altered with various effects:
21527
21528 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
21529
21530 Note: make sure you use a lossless codec.
21531
21532 Then use it with "haldclut" to apply it on some random stream:
21533
21534 ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
21535
21536 The Hald CLUT will be applied to the 10 first seconds (duration of
21537 clut.nut), then the latest picture of that CLUT stream will be applied
21538 to the remaining frames of the "mandelbrot" stream.
21539
21540 Hald CLUT with preview
21541
21542 A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
21543 "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
21544 the biggest possible square starting at the top left of the picture.
21545 The remaining padding pixels (bottom or right) will be ignored. This
21546 area can be used to add a preview of the Hald CLUT.
21547
21548 Typically, the following generated Hald CLUT will be supported by the
21549 "haldclut" filter:
21550
21551 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
21552 pad=iw+320 [padded_clut];
21553 smptebars=s=320x256, split [a][b];
21554 [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
21555 [main][b] overlay=W-320" -frames:v 1 clut.png
21556
21557 It contains the original and a preview of the effect of the CLUT: SMPTE
21558 color bars are displayed on the right-top, and below the same color
21559 bars processed by the color changes.
21560
21561 Then, the effect of this Hald CLUT can be visualized with:
21562
21563 ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
21564
21565 hflip
21566 Flip the input video horizontally.
21567
21568 For example, to horizontally flip the input video with ffmpeg:
21569
21570 ffmpeg -i in.avi -vf "hflip" out.avi
21571
21572 histeq
21573 This filter applies a global color histogram equalization on a per-
21574 frame basis.
21575
21576 It can be used to correct video that has a compressed range of pixel
21577 intensities. The filter redistributes the pixel intensities to
21578 equalize their distribution across the intensity range. It may be
21579 viewed as an "automatically adjusting contrast filter". This filter is
21580 useful only for correcting degraded or poorly captured source video.
21581
21582 The filter accepts the following options:
21583
21584 strength
21585 Determine the amount of equalization to be applied. As the
21586 strength is reduced, the distribution of pixel intensities more-
21587 and-more approaches that of the input frame. The value must be a
21588 float number in the range [0,1] and defaults to 0.200.
21589
21590 intensity
21591 Set the maximum intensity that can generated and scale the output
21592 values appropriately. The strength should be set as desired and
21593 then the intensity can be limited if needed to avoid washing-out.
21594 The value must be a float number in the range [0,1] and defaults to
21595 0.210.
21596
21597 antibanding
21598 Set the antibanding level. If enabled the filter will randomly vary
21599 the luminance of output pixels by a small amount to avoid banding
21600 of the histogram. Possible values are "none", "weak" or "strong".
21601 It defaults to "none".
21602
21603 histogram
21604 Compute and draw a color distribution histogram for the input video.
21605
21606 The computed histogram is a representation of the color component
21607 distribution in an image.
21608
21609 Standard histogram displays the color components distribution in an
21610 image. Displays color graph for each color component. Shows
21611 distribution of the Y, U, V, A or R, G, B components, depending on
21612 input format, in the current frame. Below each graph a color component
21613 scale meter is shown.
21614
21615 The filter accepts the following options:
21616
21617 level_height
21618 Set height of level. Default value is 200. Allowed range is [50,
21619 2048].
21620
21621 scale_height
21622 Set height of color scale. Default value is 12. Allowed range is
21623 [0, 40].
21624
21625 display_mode
21626 Set display mode. It accepts the following values:
21627
21628 stack
21629 Per color component graphs are placed below each other.
21630
21631 parade
21632 Per color component graphs are placed side by side.
21633
21634 overlay
21635 Presents information identical to that in the "parade", except
21636 that the graphs representing color components are superimposed
21637 directly over one another.
21638
21639 Default is "stack".
21640
21641 levels_mode
21642 Set mode. Can be either "linear", or "logarithmic". Default is
21643 "linear".
21644
21645 components
21646 Set what color components to display. Default is 7.
21647
21648 fgopacity
21649 Set foreground opacity. Default is 0.7.
21650
21651 bgopacity
21652 Set background opacity. Default is 0.5.
21653
21654 colors_mode
21655 Set colors mode. It accepts the following values:
21656
21657 whiteonblack
21658 blackonwhite
21659 whiteongray
21660 blackongray
21661 coloronblack
21662 coloronwhite
21663 colorongray
21664 blackoncolor
21665 whiteoncolor
21666 grayoncolor
21667
21668 Default is "whiteonblack".
21669
21670 Examples
21671
21672 • Calculate and draw histogram:
21673
21674 ffplay -i input -vf histogram
21675
21676 hqdn3d
21677 This is a high precision/quality 3d denoise filter. It aims to reduce
21678 image noise, producing smooth images and making still images really
21679 still. It should enhance compressibility.
21680
21681 It accepts the following optional parameters:
21682
21683 luma_spatial
21684 A non-negative floating point number which specifies spatial luma
21685 strength. It defaults to 4.0.
21686
21687 chroma_spatial
21688 A non-negative floating point number which specifies spatial chroma
21689 strength. It defaults to 3.0*luma_spatial/4.0.
21690
21691 luma_tmp
21692 A floating point number which specifies luma temporal strength. It
21693 defaults to 6.0*luma_spatial/4.0.
21694
21695 chroma_tmp
21696 A floating point number which specifies chroma temporal strength.
21697 It defaults to luma_tmp*chroma_spatial/luma_spatial.
21698
21699 Commands
21700
21701 This filter supports same commands as options. The command accepts the
21702 same syntax of the corresponding option.
21703
21704 If the specified expression is not valid, it is kept at its current
21705 value.
21706
21707 hwdownload
21708 Download hardware frames to system memory.
21709
21710 The input must be in hardware frames, and the output a non-hardware
21711 format. Not all formats will be supported on the output - it may be
21712 necessary to insert an additional format filter immediately following
21713 in the graph to get the output in a supported format.
21714
21715 hwmap
21716 Map hardware frames to system memory or to another device.
21717
21718 This filter has several different modes of operation; which one is used
21719 depends on the input and output formats:
21720
21721 • Hardware frame input, normal frame output
21722
21723 Map the input frames to system memory and pass them to the output.
21724 If the original hardware frame is later required (for example,
21725 after overlaying something else on part of it), the hwmap filter
21726 can be used again in the next mode to retrieve it.
21727
21728 • Normal frame input, hardware frame output
21729
21730 If the input is actually a software-mapped hardware frame, then
21731 unmap it - that is, return the original hardware frame.
21732
21733 Otherwise, a device must be provided. Create new hardware surfaces
21734 on that device for the output, then map them back to the software
21735 format at the input and give those frames to the preceding filter.
21736 This will then act like the hwupload filter, but may be able to
21737 avoid an additional copy when the input is already in a compatible
21738 format.
21739
21740 • Hardware frame input and output
21741
21742 A device must be supplied for the output, either directly or with
21743 the derive_device option. The input and output devices must be of
21744 different types and compatible - the exact meaning of this is
21745 system-dependent, but typically it means that they must refer to
21746 the same underlying hardware context (for example, refer to the
21747 same graphics card).
21748
21749 If the input frames were originally created on the output device,
21750 then unmap to retrieve the original frames.
21751
21752 Otherwise, map the frames to the output device - create new
21753 hardware frames on the output corresponding to the frames on the
21754 input.
21755
21756 The following additional parameters are accepted:
21757
21758 mode
21759 Set the frame mapping mode. Some combination of:
21760
21761 read
21762 The mapped frame should be readable.
21763
21764 write
21765 The mapped frame should be writeable.
21766
21767 overwrite
21768 The mapping will always overwrite the entire frame.
21769
21770 This may improve performance in some cases, as the original
21771 contents of the frame need not be loaded.
21772
21773 direct
21774 The mapping must not involve any copying.
21775
21776 Indirect mappings to copies of frames are created in some cases
21777 where either direct mapping is not possible or it would have
21778 unexpected properties. Setting this flag ensures that the
21779 mapping is direct and will fail if that is not possible.
21780
21781 Defaults to read+write if not specified.
21782
21783 derive_device type
21784 Rather than using the device supplied at initialisation, instead
21785 derive a new device of type type from the device the input frames
21786 exist on.
21787
21788 reverse
21789 In a hardware to hardware mapping, map in reverse - create frames
21790 in the sink and map them back to the source. This may be necessary
21791 in some cases where a mapping in one direction is required but only
21792 the opposite direction is supported by the devices being used.
21793
21794 This option is dangerous - it may break the preceding filter in
21795 undefined ways if there are any additional constraints on that
21796 filter's output. Do not use it without fully understanding the
21797 implications of its use.
21798
21799 hwupload
21800 Upload system memory frames to hardware surfaces.
21801
21802 The device to upload to must be supplied when the filter is
21803 initialised. If using ffmpeg, select the appropriate device with the
21804 -filter_hw_device option or with the derive_device option. The input
21805 and output devices must be of different types and compatible - the
21806 exact meaning of this is system-dependent, but typically it means that
21807 they must refer to the same underlying hardware context (for example,
21808 refer to the same graphics card).
21809
21810 The following additional parameters are accepted:
21811
21812 derive_device type
21813 Rather than using the device supplied at initialisation, instead
21814 derive a new device of type type from the device the input frames
21815 exist on.
21816
21817 hwupload_cuda
21818 Upload system memory frames to a CUDA device.
21819
21820 It accepts the following optional parameters:
21821
21822 device
21823 The number of the CUDA device to use
21824
21825 hqx
21826 Apply a high-quality magnification filter designed for pixel art. This
21827 filter was originally created by Maxim Stepin.
21828
21829 It accepts the following option:
21830
21831 n Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
21832 "hq4x". Default is 3.
21833
21834 hstack
21835 Stack input videos horizontally.
21836
21837 All streams must be of same pixel format and of same height.
21838
21839 Note that this filter is faster than using overlay and pad filter to
21840 create same output.
21841
21842 The filter accepts the following option:
21843
21844 inputs
21845 Set number of input streams. Default is 2.
21846
21847 shortest
21848 If set to 1, force the output to terminate when the shortest input
21849 terminates. Default value is 0.
21850
21851 hsvhold
21852 Turns a certain HSV range into gray values.
21853
21854 This filter measures color difference between set HSV color in options
21855 and ones measured in video stream. Depending on options, output colors
21856 can be changed to be gray or not.
21857
21858 The filter accepts the following options:
21859
21860 hue Set the hue value which will be used in color difference
21861 calculation. Allowed range is from -360 to 360. Default value is
21862 0.
21863
21864 sat Set the saturation value which will be used in color difference
21865 calculation. Allowed range is from -1 to 1. Default value is 0.
21866
21867 val Set the value which will be used in color difference calculation.
21868 Allowed range is from -1 to 1. Default value is 0.
21869
21870 similarity
21871 Set similarity percentage with the key color. Allowed range is
21872 from 0 to 1. Default value is 0.01.
21873
21874 0.00001 matches only the exact key color, while 1.0 matches
21875 everything.
21876
21877 blend
21878 Blend percentage. Allowed range is from 0 to 1. Default value is
21879 0.
21880
21881 0.0 makes pixels either fully gray, or not gray at all.
21882
21883 Higher values result in more gray pixels, with a higher gray pixel
21884 the more similar the pixels color is to the key color.
21885
21886 hsvkey
21887 Turns a certain HSV range into transparency.
21888
21889 This filter measures color difference between set HSV color in options
21890 and ones measured in video stream. Depending on options, output colors
21891 can be changed to transparent by adding alpha channel.
21892
21893 The filter accepts the following options:
21894
21895 hue Set the hue value which will be used in color difference
21896 calculation. Allowed range is from -360 to 360. Default value is
21897 0.
21898
21899 sat Set the saturation value which will be used in color difference
21900 calculation. Allowed range is from -1 to 1. Default value is 0.
21901
21902 val Set the value which will be used in color difference calculation.
21903 Allowed range is from -1 to 1. Default value is 0.
21904
21905 similarity
21906 Set similarity percentage with the key color. Allowed range is
21907 from 0 to 1. Default value is 0.01.
21908
21909 0.00001 matches only the exact key color, while 1.0 matches
21910 everything.
21911
21912 blend
21913 Blend percentage. Allowed range is from 0 to 1. Default value is
21914 0.
21915
21916 0.0 makes pixels either fully transparent, or not transparent at
21917 all.
21918
21919 Higher values result in semi-transparent pixels, with a higher
21920 transparency the more similar the pixels color is to the key color.
21921
21922 hue
21923 Modify the hue and/or the saturation of the input.
21924
21925 It accepts the following parameters:
21926
21927 h Specify the hue angle as a number of degrees. It accepts an
21928 expression, and defaults to "0".
21929
21930 s Specify the saturation in the [-10,10] range. It accepts an
21931 expression and defaults to "1".
21932
21933 H Specify the hue angle as a number of radians. It accepts an
21934 expression, and defaults to "0".
21935
21936 b Specify the brightness in the [-10,10] range. It accepts an
21937 expression and defaults to "0".
21938
21939 h and H are mutually exclusive, and can't be specified at the same
21940 time.
21941
21942 The b, h, H and s option values are expressions containing the
21943 following constants:
21944
21945 n frame count of the input frame starting from 0
21946
21947 pts presentation timestamp of the input frame expressed in time base
21948 units
21949
21950 r frame rate of the input video, NAN if the input frame rate is
21951 unknown
21952
21953 t timestamp expressed in seconds, NAN if the input timestamp is
21954 unknown
21955
21956 tb time base of the input video
21957
21958 Examples
21959
21960 • Set the hue to 90 degrees and the saturation to 1.0:
21961
21962 hue=h=90:s=1
21963
21964 • Same command but expressing the hue in radians:
21965
21966 hue=H=PI/2:s=1
21967
21968 • Rotate hue and make the saturation swing between 0 and 2 over a
21969 period of 1 second:
21970
21971 hue="H=2*PI*t: s=sin(2*PI*t)+1"
21972
21973 • Apply a 3 seconds saturation fade-in effect starting at 0:
21974
21975 hue="s=min(t/3\,1)"
21976
21977 The general fade-in expression can be written as:
21978
21979 hue="s=min(0\, max((t-START)/DURATION\, 1))"
21980
21981 • Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
21982
21983 hue="s=max(0\, min(1\, (8-t)/3))"
21984
21985 The general fade-out expression can be written as:
21986
21987 hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
21988
21989 Commands
21990
21991 This filter supports the following commands:
21992
21993 b
21994 s
21995 h
21996 H Modify the hue and/or the saturation and/or brightness of the input
21997 video. The command accepts the same syntax of the corresponding
21998 option.
21999
22000 If the specified expression is not valid, it is kept at its current
22001 value.
22002
22003 huesaturation
22004 Apply hue-saturation-intensity adjustments to input video stream.
22005
22006 This filter operates in RGB colorspace.
22007
22008 This filter accepts the following options:
22009
22010 hue Set the hue shift in degrees to apply. Default is 0. Allowed range
22011 is from -180 to 180.
22012
22013 saturation
22014 Set the saturation shift. Default is 0. Allowed range is from -1
22015 to 1.
22016
22017 intensity
22018 Set the intensity shift. Default is 0. Allowed range is from -1 to
22019 1.
22020
22021 colors
22022 Set which primary and complementary colors are going to be
22023 adjusted. This options is set by providing one or multiple values.
22024 This can select multiple colors at once. By default all colors are
22025 selected.
22026
22027 r Adjust reds.
22028
22029 y Adjust yellows.
22030
22031 g Adjust greens.
22032
22033 c Adjust cyans.
22034
22035 b Adjust blues.
22036
22037 m Adjust magentas.
22038
22039 a Adjust all colors.
22040
22041 strength
22042 Set strength of filtering. Allowed range is from 0 to 100. Default
22043 value is 1.
22044
22045 rw, gw, bw
22046 Set weight for each RGB component. Allowed range is from 0 to 1.
22047 By default is set to 0.333, 0.334, 0.333. Those options are used
22048 in saturation and lightess processing.
22049
22050 lightness
22051 Set preserving lightness, by default is disabled. Adjusting hues
22052 can change lightness from original RGB triplet, with this option
22053 enabled lightness is kept at same value.
22054
22055 hysteresis
22056 Grow first stream into second stream by connecting components. This
22057 makes it possible to build more robust edge masks.
22058
22059 This filter accepts the following options:
22060
22061 planes
22062 Set which planes will be processed as bitmap, unprocessed planes
22063 will be copied from first stream. By default value 0xf, all planes
22064 will be processed.
22065
22066 threshold
22067 Set threshold which is used in filtering. If pixel component value
22068 is higher than this value filter algorithm for connecting
22069 components is activated. By default value is 0.
22070
22071 The "hysteresis" filter also supports the framesync options.
22072
22073 iccdetect
22074 Detect the colorspace from an embedded ICC profile (if present), and
22075 update the frame's tags accordingly.
22076
22077 This filter accepts the following options:
22078
22079 force
22080 If true, the frame's existing colorspace tags will always be
22081 overridden by values detected from an ICC profile. Otherwise, they
22082 will only be assigned if they contain "unknown". Enabled by
22083 default.
22084
22085 iccgen
22086 Generate ICC profiles and attach them to frames.
22087
22088 This filter accepts the following options:
22089
22090 color_primaries
22091 color_trc
22092 Configure the colorspace that the ICC profile will be generated
22093 for. The default value of "auto" infers the value from the input
22094 frame's metadata, defaulting to BT.709/sRGB as appropriate.
22095
22096 See the setparams filter for a list of possible values, but note
22097 that "unknown" are not valid values for this filter.
22098
22099 force
22100 If true, an ICC profile will be generated even if it would
22101 overwrite an already existing ICC profile. Disabled by default.
22102
22103 identity
22104 Obtain the identity score between two input videos.
22105
22106 This filter takes two input videos.
22107
22108 Both input videos must have the same resolution and pixel format for
22109 this filter to work correctly. Also it assumes that both inputs have
22110 the same number of frames, which are compared one by one.
22111
22112 The obtained per component, average, min and max identity score is
22113 printed through the logging system.
22114
22115 The filter stores the calculated identity scores of each frame in frame
22116 metadata.
22117
22118 In the below example the input file main.mpg being processed is
22119 compared with the reference file ref.mpg.
22120
22121 ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
22122
22123 idet
22124 Detect video interlacing type.
22125
22126 This filter tries to detect if the input frames are interlaced,
22127 progressive, top or bottom field first. It will also try to detect
22128 fields that are repeated between adjacent frames (a sign of telecine).
22129
22130 Single frame detection considers only immediately adjacent frames when
22131 classifying each frame. Multiple frame detection incorporates the
22132 classification history of previous frames.
22133
22134 The filter will log these metadata values:
22135
22136 single.current_frame
22137 Detected type of current frame using single-frame detection. One
22138 of: ``tff'' (top field first), ``bff'' (bottom field first),
22139 ``progressive'', or ``undetermined''
22140
22141 single.tff
22142 Cumulative number of frames detected as top field first using
22143 single-frame detection.
22144
22145 multiple.tff
22146 Cumulative number of frames detected as top field first using
22147 multiple-frame detection.
22148
22149 single.bff
22150 Cumulative number of frames detected as bottom field first using
22151 single-frame detection.
22152
22153 multiple.current_frame
22154 Detected type of current frame using multiple-frame detection. One
22155 of: ``tff'' (top field first), ``bff'' (bottom field first),
22156 ``progressive'', or ``undetermined''
22157
22158 multiple.bff
22159 Cumulative number of frames detected as bottom field first using
22160 multiple-frame detection.
22161
22162 single.progressive
22163 Cumulative number of frames detected as progressive using single-
22164 frame detection.
22165
22166 multiple.progressive
22167 Cumulative number of frames detected as progressive using multiple-
22168 frame detection.
22169
22170 single.undetermined
22171 Cumulative number of frames that could not be classified using
22172 single-frame detection.
22173
22174 multiple.undetermined
22175 Cumulative number of frames that could not be classified using
22176 multiple-frame detection.
22177
22178 repeated.current_frame
22179 Which field in the current frame is repeated from the last. One of
22180 ``neither'', ``top'', or ``bottom''.
22181
22182 repeated.neither
22183 Cumulative number of frames with no repeated field.
22184
22185 repeated.top
22186 Cumulative number of frames with the top field repeated from the
22187 previous frame's top field.
22188
22189 repeated.bottom
22190 Cumulative number of frames with the bottom field repeated from the
22191 previous frame's bottom field.
22192
22193 The filter accepts the following options:
22194
22195 intl_thres
22196 Set interlacing threshold.
22197
22198 prog_thres
22199 Set progressive threshold.
22200
22201 rep_thres
22202 Threshold for repeated field detection.
22203
22204 half_life
22205 Number of frames after which a given frame's contribution to the
22206 statistics is halved (i.e., it contributes only 0.5 to its
22207 classification). The default of 0 means that all frames seen are
22208 given full weight of 1.0 forever.
22209
22210 analyze_interlaced_flag
22211 When this is not 0 then idet will use the specified number of
22212 frames to determine if the interlaced flag is accurate, it will not
22213 count undetermined frames. If the flag is found to be accurate it
22214 will be used without any further computations, if it is found to be
22215 inaccurate it will be cleared without any further computations.
22216 This allows inserting the idet filter as a low computational method
22217 to clean up the interlaced flag
22218
22219 il
22220 Deinterleave or interleave fields.
22221
22222 This filter allows one to process interlaced images fields without
22223 deinterlacing them. Deinterleaving splits the input frame into 2 fields
22224 (so called half pictures). Odd lines are moved to the top half of the
22225 output image, even lines to the bottom half. You can process (filter)
22226 them independently and then re-interleave them.
22227
22228 The filter accepts the following options:
22229
22230 luma_mode, l
22231 chroma_mode, c
22232 alpha_mode, a
22233 Available values for luma_mode, chroma_mode and alpha_mode are:
22234
22235 none
22236 Do nothing.
22237
22238 deinterleave, d
22239 Deinterleave fields, placing one above the other.
22240
22241 interleave, i
22242 Interleave fields. Reverse the effect of deinterleaving.
22243
22244 Default value is "none".
22245
22246 luma_swap, ls
22247 chroma_swap, cs
22248 alpha_swap, as
22249 Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
22250 value is 0.
22251
22252 Commands
22253
22254 This filter supports the all above options as commands.
22255
22256 inflate
22257 Apply inflate effect to the video.
22258
22259 This filter replaces the pixel by the local(3x3) average by taking into
22260 account only values higher than the pixel.
22261
22262 It accepts the following options:
22263
22264 threshold0
22265 threshold1
22266 threshold2
22267 threshold3
22268 Limit the maximum change for each plane, default is 65535. If 0,
22269 plane will remain unchanged.
22270
22271 Commands
22272
22273 This filter supports the all above options as commands.
22274
22275 interlace
22276 Simple interlacing filter from progressive contents. This interleaves
22277 upper (or lower) lines from odd frames with lower (or upper) lines from
22278 even frames, halving the frame rate and preserving image height.
22279
22280 Original Original New Frame
22281 Frame 'j' Frame 'j+1' (tff)
22282 ========== =========== ==================
22283 Line 0 --------------------> Frame 'j' Line 0
22284 Line 1 Line 1 ----> Frame 'j+1' Line 1
22285 Line 2 ---------------------> Frame 'j' Line 2
22286 Line 3 Line 3 ----> Frame 'j+1' Line 3
22287 ... ... ...
22288 New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
22289
22290 It accepts the following optional parameters:
22291
22292 scan
22293 This determines whether the interlaced frame is taken from the even
22294 (tff - default) or odd (bff) lines of the progressive frame.
22295
22296 lowpass
22297 Vertical lowpass filter to avoid twitter interlacing and reduce
22298 moire patterns.
22299
22300 0, off
22301 Disable vertical lowpass filter
22302
22303 1, linear
22304 Enable linear filter (default)
22305
22306 2, complex
22307 Enable complex filter. This will slightly less reduce twitter
22308 and moire but better retain detail and subjective sharpness
22309 impression.
22310
22311 kerndeint
22312 Deinterlace input video by applying Donald Graft's adaptive kernel
22313 deinterling. Work on interlaced parts of a video to produce progressive
22314 frames.
22315
22316 The description of the accepted parameters follows.
22317
22318 thresh
22319 Set the threshold which affects the filter's tolerance when
22320 determining if a pixel line must be processed. It must be an
22321 integer in the range [0,255] and defaults to 10. A value of 0 will
22322 result in applying the process on every pixels.
22323
22324 map Paint pixels exceeding the threshold value to white if set to 1.
22325 Default is 0.
22326
22327 order
22328 Set the fields order. Swap fields if set to 1, leave fields alone
22329 if 0. Default is 0.
22330
22331 sharp
22332 Enable additional sharpening if set to 1. Default is 0.
22333
22334 twoway
22335 Enable twoway sharpening if set to 1. Default is 0.
22336
22337 Examples
22338
22339 • Apply default values:
22340
22341 kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
22342
22343 • Enable additional sharpening:
22344
22345 kerndeint=sharp=1
22346
22347 • Paint processed pixels in white:
22348
22349 kerndeint=map=1
22350
22351 kirsch
22352 Apply kirsch operator to input video stream.
22353
22354 The filter accepts the following option:
22355
22356 planes
22357 Set which planes will be processed, unprocessed planes will be
22358 copied. By default value 0xf, all planes will be processed.
22359
22360 scale
22361 Set value which will be multiplied with filtered result.
22362
22363 delta
22364 Set value which will be added to filtered result.
22365
22366 Commands
22367
22368 This filter supports the all above options as commands.
22369
22370 lagfun
22371 Slowly update darker pixels.
22372
22373 This filter makes short flashes of light appear longer. This filter
22374 accepts the following options:
22375
22376 decay
22377 Set factor for decaying. Default is .95. Allowed range is from 0 to
22378 1.
22379
22380 planes
22381 Set which planes to filter. Default is all. Allowed range is from 0
22382 to 15.
22383
22384 Commands
22385
22386 This filter supports the all above options as commands.
22387
22388 lenscorrection
22389 Correct radial lens distortion
22390
22391 This filter can be used to correct for radial distortion as can result
22392 from the use of wide angle lenses, and thereby re-rectify the image. To
22393 find the right parameters one can use tools available for example as
22394 part of opencv or simply trial-and-error. To use opencv use the
22395 calibration sample (under samples/cpp) from the opencv sources and
22396 extract the k1 and k2 coefficients from the resulting matrix.
22397
22398 Note that effectively the same filter is available in the open-source
22399 tools Krita and Digikam from the KDE project.
22400
22401 In contrast to the vignette filter, which can also be used to
22402 compensate lens errors, this filter corrects the distortion of the
22403 image, whereas vignette corrects the brightness distribution, so you
22404 may want to use both filters together in certain cases, though you will
22405 have to take care of ordering, i.e. whether vignetting should be
22406 applied before or after lens correction.
22407
22408 Options
22409
22410 The filter accepts the following options:
22411
22412 cx Relative x-coordinate of the focal point of the image, and thereby
22413 the center of the distortion. This value has a range [0,1] and is
22414 expressed as fractions of the image width. Default is 0.5.
22415
22416 cy Relative y-coordinate of the focal point of the image, and thereby
22417 the center of the distortion. This value has a range [0,1] and is
22418 expressed as fractions of the image height. Default is 0.5.
22419
22420 k1 Coefficient of the quadratic correction term. This value has a
22421 range [-1,1]. 0 means no correction. Default is 0.
22422
22423 k2 Coefficient of the double quadratic correction term. This value has
22424 a range [-1,1]. 0 means no correction. Default is 0.
22425
22426 i Set interpolation type. Can be "nearest" or "bilinear". Default is
22427 "nearest".
22428
22429 fc Specify the color of the unmapped pixels. For the syntax of this
22430 option, check the "Color" section in the ffmpeg-utils manual.
22431 Default color is "black@0".
22432
22433 The formula that generates the correction is:
22434
22435 r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
22436
22437 where r_0 is halve of the image diagonal and r_src and r_tgt are the
22438 distances from the focal point in the source and target images,
22439 respectively.
22440
22441 Commands
22442
22443 This filter supports the all above options as commands.
22444
22445 lensfun
22446 Apply lens correction via the lensfun library
22447 (<http://lensfun.sourceforge.net/>).
22448
22449 The "lensfun" filter requires the camera make, camera model, and lens
22450 model to apply the lens correction. The filter will load the lensfun
22451 database and query it to find the corresponding camera and lens entries
22452 in the database. As long as these entries can be found with the given
22453 options, the filter can perform corrections on frames. Note that
22454 incomplete strings will result in the filter choosing the best match
22455 with the given options, and the filter will output the chosen camera
22456 and lens models (logged with level "info"). You must provide the make,
22457 camera model, and lens model as they are required.
22458
22459 To obtain a list of available makes and models, leave out one or both
22460 of "make" and "model" options. The filter will send the full list to
22461 the log with level "INFO". The first column is the make and the second
22462 column is the model. To obtain a list of available lenses, set any
22463 values for make and model and leave out the "lens_model" option. The
22464 filter will send the full list of lenses in the log with level "INFO".
22465 The ffmpeg tool will exit after the list is printed.
22466
22467 The filter accepts the following options:
22468
22469 make
22470 The make of the camera (for example, "Canon"). This option is
22471 required.
22472
22473 model
22474 The model of the camera (for example, "Canon EOS 100D"). This
22475 option is required.
22476
22477 lens_model
22478 The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
22479 IS STM"). This option is required.
22480
22481 db_path
22482 The full path to the lens database folder. If not set, the filter
22483 will attempt to load the database from the install path when the
22484 library was built. Default is unset.
22485
22486 mode
22487 The type of correction to apply. The following values are valid
22488 options:
22489
22490 vignetting
22491 Enables fixing lens vignetting.
22492
22493 geometry
22494 Enables fixing lens geometry. This is the default.
22495
22496 subpixel
22497 Enables fixing chromatic aberrations.
22498
22499 vig_geo
22500 Enables fixing lens vignetting and lens geometry.
22501
22502 vig_subpixel
22503 Enables fixing lens vignetting and chromatic aberrations.
22504
22505 distortion
22506 Enables fixing both lens geometry and chromatic aberrations.
22507
22508 all Enables all possible corrections.
22509
22510 focal_length
22511 The focal length of the image/video (zoom; expected constant for
22512 video). For example, a 18--55mm lens has focal length range of
22513 [18--55], so a value in that range should be chosen when using that
22514 lens. Default 18.
22515
22516 aperture
22517 The aperture of the image/video (expected constant for video). Note
22518 that aperture is only used for vignetting correction. Default 3.5.
22519
22520 focus_distance
22521 The focus distance of the image/video (expected constant for
22522 video). Note that focus distance is only used for vignetting and
22523 only slightly affects the vignetting correction process. If
22524 unknown, leave it at the default value (which is 1000).
22525
22526 scale
22527 The scale factor which is applied after transformation. After
22528 correction the video is no longer necessarily rectangular. This
22529 parameter controls how much of the resulting image is visible. The
22530 value 0 means that a value will be chosen automatically such that
22531 there is little or no unmapped area in the output image. 1.0 means
22532 that no additional scaling is done. Lower values may result in more
22533 of the corrected image being visible, while higher values may avoid
22534 unmapped areas in the output.
22535
22536 target_geometry
22537 The target geometry of the output image/video. The following values
22538 are valid options:
22539
22540 rectilinear (default)
22541 fisheye
22542 panoramic
22543 equirectangular
22544 fisheye_orthographic
22545 fisheye_stereographic
22546 fisheye_equisolid
22547 fisheye_thoby
22548 reverse
22549 Apply the reverse of image correction (instead of correcting
22550 distortion, apply it).
22551
22552 interpolation
22553 The type of interpolation used when correcting distortion. The
22554 following values are valid options:
22555
22556 nearest
22557 linear (default)
22558 lanczos
22559
22560 Examples
22561
22562 • Apply lens correction with make "Canon", camera model "Canon EOS
22563 100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
22564 focal length of "18" and aperture of "8.0".
22565
22566 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
22567
22568 • Apply the same as before, but only for the first 5 seconds of
22569 video.
22570
22571 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
22572
22573 libplacebo
22574 Flexible GPU-accelerated processing filter based on libplacebo
22575 (<https://code.videolan.org/videolan/libplacebo>). Note that this
22576 filter currently only accepts Vulkan input frames.
22577
22578 Options
22579
22580 The options for this filter are divided into the following sections:
22581
22582 Output mode
22583
22584 These options control the overall output mode. By default, libplacebo
22585 will try to preserve the source colorimetry and size as best as it can,
22586 but it will apply any embedded film grain, dolby vision metadata or
22587 anamorphic SAR present in source frames.
22588
22589 w
22590 h Set the output video dimension expression. Default value is the
22591 input dimension.
22592
22593 Allows for the same expressions as the scale filter.
22594
22595 format
22596 Set the output format override. If unset (the default), frames will
22597 be output in the same format as the respective input frames.
22598 Otherwise, format conversion will be performed.
22599
22600 force_original_aspect_ratio
22601 force_divisible_by
22602 Work the same as the identical scale filter options.
22603
22604 normalize_sar
22605 If enabled (the default), output frames will always have a pixel
22606 aspect ratio of 1:1. If disabled, any aspect ratio mismatches,
22607 including those from e.g. anamorphic video sources, are forwarded
22608 to the output pixel aspect ratio.
22609
22610 pad_crop_ratio
22611 Specifies a ratio (between 0.0 and 1.0) between padding and
22612 cropping when the input aspect ratio does not match the output
22613 aspect ratio and normalize_sar is in effect. The default of 0.0
22614 always pads the content with black borders, while a value of 1.0
22615 always crops off parts of the content. Intermediate values are
22616 possible, leading to a mix of the two approaches.
22617
22618 colorspace
22619 color_primaries
22620 color_trc
22621 range
22622 Configure the colorspace that output frames will be delivered in.
22623 The default value of "auto" outputs frames in the same format as
22624 the input frames, leading to no change. For any other value,
22625 conversion will be performed.
22626
22627 See the setparams filter for a list of possible values.
22628
22629 apply_filmgrain
22630 Apply film grain (e.g. AV1 or H.274) if present in source frames,
22631 and strip it from the output. Enabled by default.
22632
22633 apply_dolbyvision
22634 Apply Dolby Vision RPU metadata if present in source frames, and
22635 strip it from the output. Enabled by default. Note that Dolby
22636 Vision will always output BT.2020+PQ, overriding the usual input
22637 frame metadata. These will also be picked as the values of "auto"
22638 for the respective frame output options.
22639
22640 Scaling
22641
22642 The options in this section control how libplacebo performs upscaling
22643 and (if necessary) downscaling. Note that libplacebo will always
22644 internally operate on 4:4:4 content, so any sub-sampled chroma formats
22645 such as "yuv420p" will necessarily be upsampled and downsampled as part
22646 of the rendering process. That means scaling might be in effect even if
22647 the source and destination resolution are the same.
22648
22649 upscaler
22650 downscaler
22651 Configure the filter kernel used for upscaling and downscaling. The
22652 respective defaults are "spline36" and "mitchell". For a full list
22653 of possible values, pass "help" to these options. The most
22654 important values are:
22655
22656 none
22657 Forces the use of built-in GPU texture sampling (typically
22658 bilinear). Extremely fast but poor quality, especially when
22659 downscaling.
22660
22661 bilinear
22662 Bilinear interpolation. Can generally be done for free on GPUs,
22663 except when doing so would lead to aliasing. Fast and low
22664 quality.
22665
22666 nearest
22667 Nearest-neighbour interpolation. Sharp but highly aliasing.
22668
22669 oversample
22670 Algorithm that looks visually similar to nearest-neighbour
22671 interpolation but tries to preserve pixel aspect ratio. Good
22672 for pixel art, since it results in minimal distortion of the
22673 artistic appearance.
22674
22675 lanczos
22676 Standard sinc-sinc interpolation kernel.
22677
22678 spline36
22679 Cubic spline approximation of lanczos. No difference in
22680 performance, but has very slightly less ringing.
22681
22682 ewa_lanczos
22683 Elliptically weighted average version of lanczos, based on a
22684 jinc-sinc kernel. This is also popularly referred to as just
22685 "Jinc scaling". Slow but very high quality.
22686
22687 gaussian
22688 Gaussian kernel. Has certain ideal mathematical properties, but
22689 subjectively very blurry.
22690
22691 mitchell
22692 Cubic BC spline with parameters recommended by Mitchell and
22693 Netravali. Very little ringing.
22694
22695 lut_entries
22696 Configures the size of scaler LUTs, ranging from 1 to 256. The
22697 default of 0 will pick libplacebo's internal default, typically 64.
22698
22699 antiringing
22700 Enables anti-ringing (for non-EWA filters). The value (between 0.0
22701 and 1.0) configures the strength of the anti-ringing algorithm. May
22702 increase aliasing if set too high. Disabled by default.
22703
22704 sigmoid
22705 Enable sigmoidal compression during upscaling. Reduces ringing
22706 slightly. Enabled by default.
22707
22708 Debanding
22709
22710 Libplacebo comes with a built-in debanding filter that is good at
22711 counteracting many common sources of banding and blocking. Turning this
22712 on is highly recommended whenever quality is desired.
22713
22714 deband
22715 Enable (fast) debanding algorithm. Disabled by default.
22716
22717 deband_iterations
22718 Number of deband iterations of the debanding algorithm. Each
22719 iteration is performed with progressively increased radius (and
22720 diminished threshold). Recommended values are in the range 1 to 4.
22721 Defaults to 1.
22722
22723 deband_threshold
22724 Debanding filter strength. Higher numbers lead to more aggressive
22725 debanding. Defaults to 4.0.
22726
22727 deband_radius
22728 Debanding filter radius. A higher radius is better for slow
22729 gradients, while a lower radius is better for steep gradients.
22730 Defaults to 16.0.
22731
22732 deband_grain
22733 Amount of extra output grain to add. Helps hide imperfections.
22734 Defaults to 6.0.
22735
22736 Color adjustment
22737
22738 A collection of subjective color controls. Not very rigorous, so the
22739 exact effect will vary somewhat depending on the input primaries and
22740 colorspace.
22741
22742 brightness
22743 Brightness boost, between "-1.0" and 1.0. Defaults to 0.0.
22744
22745 contrast
22746 Contrast gain, between 0.0 and 16.0. Defaults to 1.0.
22747
22748 saturation
22749 Saturation gain, between 0.0 and 16.0. Defaults to 1.0.
22750
22751 hue Hue shift in radians, between "-3.14" and 3.14. Defaults to 0.0.
22752 This will rotate the UV subvector, defaulting to BT.709
22753 coefficients for RGB inputs.
22754
22755 gamma
22756 Gamma adjustment, between 0.0 and 16.0. Defaults to 1.0.
22757
22758 cones
22759 Cone model to use for color blindness simulation. Accepts any
22760 combination of "l", "m" and "s". Here are some examples:
22761
22762 m Deuteranomaly / deuteranopia (affecting 3%-4% of the
22763 population)
22764
22765 l Protanomaly / protanopia (affecting 1%-2% of the population)
22766
22767 l+m Monochromacy (very rare)
22768
22769 l+m+s
22770 Achromatopsy (complete loss of daytime vision, extremely rare)
22771
22772 cone-strength
22773 Gain factor for the cones specified by "cones", between 0.0 and
22774 10.0. A value of 1.0 results in no change to color vision. A value
22775 of 0.0 (the default) simulates complete loss of those cones. Values
22776 above 1.0 result in exaggerating the differences between cones,
22777 which may help compensate for reduced color vision.
22778
22779 Peak detection
22780
22781 To help deal with sources that only have static HDR10 metadata (or no
22782 tagging whatsoever), libplacebo uses its own internal frame analysis
22783 compute shader to analyze source frames and adapt the tone mapping
22784 function in realtime. If this is too slow, or if exactly reproducible
22785 frame-perfect results are needed, it's recommended to turn this feature
22786 off.
22787
22788 peak_detect
22789 Enable HDR peak detection. Ignores static MaxCLL/MaxFALL values in
22790 favor of dynamic detection from the input. Note that the detected
22791 values do not get written back to the output frames, they merely
22792 guide the internal tone mapping process. Enabled by default.
22793
22794 smoothing_period
22795 Peak detection smoothing period, between 0.0 and 1000.0. Higher
22796 values result in peak detection becoming less responsive to changes
22797 in the input. Defaults to 100.0.
22798
22799 minimum_peak
22800 Lower bound on the detected peak (relative to SDR white), between
22801 0.0 and 100.0. Defaults to 1.0.
22802
22803 scene_threshold_low
22804 scene_threshold_high
22805 Lower and upper thresholds for scene change detection. Expressed in
22806 a logarithmic scale between 0.0 and 100.0. Default to 5.5 and 10.0,
22807 respectively. Setting either to a negative value disables this
22808 functionality.
22809
22810 overshoot
22811 Peak smoothing overshoot margin, between 0.0 and 1.0. Provides a
22812 safety margin to prevent clipping as a result of peak smoothing.
22813 Defaults to 0.05, corresponding to a margin of 5%.
22814
22815 Tone mapping
22816
22817 The options in this section control how libplacebo performs tone-
22818 mapping and gamut-mapping when dealing with mismatches between wide-
22819 gamut or HDR content. In general, libplacebo relies on accurate source
22820 tagging and mastering display gamut information to produce the best
22821 results.
22822
22823 intent
22824 Rendering intent to use when adapting between different primary
22825 color gamuts (after tone-mapping).
22826
22827 perceptual
22828 Perceptual gamut mapping. Currently equivalent to relative
22829 colorimetric.
22830
22831 relative
22832 Relative colorimetric. This is the default.
22833
22834 absolute
22835 Absolute colorimetric.
22836
22837 saturation
22838 Saturation mapping. Forcibly stretches the source gamut to the
22839 target gamut.
22840
22841 gamut_mode
22842 How to handle out-of-gamut colors that can occur as a result of
22843 colorimetric gamut mapping.
22844
22845 clip
22846 Do nothing, simply clip out-of-range colors to the RGB volume.
22847 This is the default.
22848
22849 warn
22850 Highlight out-of-gamut pixels (by coloring them pink).
22851
22852 darken
22853 Linearly reduces content brightness to preserves saturated
22854 details, followed by clipping the remaining out-of-gamut
22855 colors. As the name implies, this makes everything darker, but
22856 provides a good balance between preserving details and colors.
22857
22858 desaturate
22859 Hard-desaturates out-of-gamut colors towards white, while
22860 preserving the luminance. Has a tendency to shift colors.
22861
22862 tonemapping
22863 Tone-mapping algorithm to use. Available values are:
22864
22865 auto
22866 Automatic selection based on internal heuristics. This is the
22867 default.
22868
22869 clip
22870 Performs no tone-mapping, just clips out-of-range colors.
22871 Retains perfect color accuracy for in-range colors but
22872 completely destroys out-of-range information. Does not perform
22873 any black point adaptation. Not configurable.
22874
22875 bt.2390
22876 EETF from the ITU-R Report BT.2390, a hermite spline roll-off
22877 with linear segment. The knee point offset is configurable.
22878 Note that this parameter defaults to 1.0, rather than the value
22879 of 0.5 from the ITU-R spec.
22880
22881 bt.2446a
22882 EETF from ITU-R Report BT.2446, method A. Designed for well-
22883 mastered HDR sources. Can be used for both forward and inverse
22884 tone mapping. Not configurable.
22885
22886 spline
22887 Simple spline consisting of two polynomials, joined by a single
22888 pivot point. The parameter gives the pivot point (in PQ
22889 space), defaulting to 0.30. Can be used for both forward and
22890 inverse tone mapping.
22891
22892 reinhard
22893 Simple non-linear, global tone mapping algorithm. The parameter
22894 specifies the local contrast coefficient at the display peak.
22895 Essentially, a parameter of 0.5 implies that the reference
22896 white will be about half as bright as when clipping. Defaults
22897 to 0.5, which results in the simplest formulation of this
22898 function.
22899
22900 mobius
22901 Generalization of the reinhard tone mapping algorithm to
22902 support an additional linear slope near black. The tone mapping
22903 parameter indicates the trade-off between the linear section
22904 and the non-linear section. Essentially, for a given parameter
22905 x, every color value below x will be mapped linearly, while
22906 higher values get non-linearly tone-mapped. Values near 1.0
22907 make this curve behave like "clip", while values near 0.0 make
22908 this curve behave like "reinhard". The default value is 0.3,
22909 which provides a good balance between colorimetric accuracy and
22910 preserving out-of-gamut details.
22911
22912 hable
22913 Piece-wise, filmic tone-mapping algorithm developed by John
22914 Hable for use in Uncharted 2, inspired by a similar tone-
22915 mapping algorithm used by Kodak. Popularized by its use in
22916 video games with HDR rendering. Preserves both dark and bright
22917 details very well, but comes with the drawback of changing the
22918 average brightness quite significantly. This is sort of similar
22919 to "reinhard" with parameter 0.24.
22920
22921 gamma
22922 Fits a gamma (power) function to transfer between the source
22923 and target color spaces, effectively resulting in a perceptual
22924 hard-knee joining two roughly linear sections. This preserves
22925 details at all scales fairly accurately, but can result in an
22926 image with a muted or dull appearance. The parameter is used as
22927 the cutoff point, defaulting to 0.5.
22928
22929 linear
22930 Linearly stretches the input range to the output range, in PQ
22931 space. This will preserve all details accurately, but results
22932 in a significantly different average brightness. Can be used
22933 for inverse tone-mapping in addition to regular tone-mapping.
22934 The parameter can be used as an additional linear gain
22935 coefficient (defaulting to 1.0).
22936
22937 tonemapping_param
22938 For tunable tone mapping functions, this parameter can be used to
22939 fine-tune the curve behavior. Refer to the documentation of
22940 "tonemapping". The default value of 0.0 is replaced by the curve's
22941 preferred default setting.
22942
22943 tonemapping_mode
22944 This option determines how the tone mapping function specified by
22945 "tonemapping" is applied to the colors in a scene. Possible values
22946 are:
22947
22948 auto
22949 Automatic selection based on internal heuristics. This is the
22950 default.
22951
22952 rgb Apply the function per-channel in the RGB colorspace. Per-
22953 channel tone-mapping in RGB. Guarantees no clipping and heavily
22954 desaturates the output, but distorts the colors quite
22955 significantly. Very similar to the "Hollywood" look and feel.
22956
22957 max Tone-mapping is performed on the brightest component found in
22958 the signal. Good at preserving details in highlights, but has a
22959 tendency to crush blacks.
22960
22961 hybrid
22962 Tone-map per-channel for highlights and linearly (luma-based)
22963 for midtones/shadows, based on a fixed gamma 2.4 coefficient
22964 curve.
22965
22966 luma
22967 Tone-map linearly on the luma component (CIE Y), and adjust
22968 (desaturate) the chromaticities to compensate using a simple
22969 constant factor. This is essentially the mode used in ITU-R
22970 BT.2446 method A.
22971
22972 inverse_tonemapping
22973 If enabled, this filter will also attempt stretching SDR signals to
22974 fill HDR output color volumes. Disabled by default.
22975
22976 tonemapping_crosstalk
22977 Extra tone-mapping crosstalk factor, between 0.0 and 0.3. This can
22978 help reduce issues tone-mapping certain bright spectral colors.
22979 Defaults to 0.04.
22980
22981 tonemapping_lut_size
22982 Size of the tone-mapping LUT, between 2 and 1024. Defaults to 256.
22983 Note that this figure is squared when combined with "peak_detect".
22984
22985 Dithering
22986
22987 By default, libplacebo will dither whenever necessary, which includes
22988 rendering to any integer format below 16-bit precision. It's
22989 recommended to always leave this on, since not doing so may result in
22990 visible banding in the output, even if the "debanding" filter is
22991 enabled. If maximum performance is needed, use "ordered_fixed" instead
22992 of disabling dithering.
22993
22994 dithering
22995 Dithering method to use. Accepts the following values:
22996
22997 none
22998 Disables dithering completely. May result in visible banding.
22999
23000 blue
23001 Dither with pseudo-blue noise. This is the default.
23002
23003 ordered
23004 Tunable ordered dither pattern.
23005
23006 ordered_fixed
23007 Faster ordered dither with a fixed size of 6. Texture-less.
23008
23009 white
23010 Dither with white noise. Texture-less.
23011
23012 dither_lut_size
23013 Dither LUT size, as log base2 between 1 and 8. Defaults to 6,
23014 corresponding to a LUT size of "64x64".
23015
23016 dither_temporal
23017 Enables temporal dithering. Disabled by default.
23018
23019 Custom shaders
23020
23021 libplacebo supports a number of custom shaders based on the mpv .hook
23022 GLSL syntax. A collection of such shaders can be found here:
23023 <https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders>
23024
23025 A full description of the mpv shader format is beyond the scope of this
23026 section, but a summary can be found here:
23027 <https://mpv.io/manual/master/#options-glsl-shader>
23028
23029 custom_shader_path
23030 Specifies a path to a custom shader file to load at runtime.
23031
23032 custom_shader_bin
23033 Specifies a complete custom shader as a raw string.
23034
23035 Debugging / performance
23036
23037 All of the options in this section default off. They may be of
23038 assistance when attempting to squeeze the maximum performance at the
23039 cost of quality.
23040
23041 skip_aa
23042 Disable anti-aliasing when downscaling.
23043
23044 polar_cutoff
23045 Truncate polar (EWA) scaler kernels below this absolute magnitude,
23046 between 0.0 and 1.0.
23047
23048 disable_linear
23049 Disable linear light scaling.
23050
23051 disable_builtin
23052 Disable built-in GPU sampling (forces LUT).
23053
23054 force_icc_lut
23055 Force the use of a full ICC 3DLUT for gamut mapping.
23056
23057 disable_fbos
23058 Forcibly disable FBOs, resulting in loss of almost all
23059 functionality, but offering the maximum possible speed.
23060
23061 Commands
23062
23063 This filter supports almost all of the above options as commands.
23064
23065 Examples
23066
23067 • Complete example for how to initialize the Vulkan device, upload
23068 frames to the GPU, perform filter conversion to yuv420p, and
23069 download frames back to the CPU for output. Note that in specific
23070 cases you can get around the need to perform format conversion by
23071 specifying the correct "format" filter option corresponding to the
23072 input frames.
23073
23074 ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
23075
23076 • Tone-map input to standard gamut BT.709 output:
23077
23078 libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
23079
23080 • Rescale input to fit into standard 1080p, with high quality
23081 scaling:
23082
23083 libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
23084
23085 • Convert input to standard sRGB JPEG:
23086
23087 libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
23088
23089 • Use higher quality debanding settings:
23090
23091 libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
23092
23093 • Run this filter on the CPU, on systems with Mesa installed (and
23094 with the most expensive options disabled):
23095
23096 ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
23097
23098 • Suppress CPU-based AV1/H.274 film grain application in the decoder,
23099 in favor of doing it with this filter. Note that this is only a
23100 gain if the frames are either already on the GPU, or if you're
23101 using libplacebo for other purposes, since otherwise the VRAM
23102 roundtrip will more than offset any expected speedup.
23103
23104 ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
23105
23106 libvmaf
23107 Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
23108 reference/distorted pair of input videos.
23109
23110 The first input is the distorted video, and the second input is the
23111 reference video.
23112
23113 The obtained VMAF score is printed through the logging system.
23114
23115 It requires Netflix's vmaf library (libvmaf) as a pre-requisite. After
23116 installing the library it can be enabled using: "./configure
23117 --enable-libvmaf".
23118
23119 The filter has following options:
23120
23121 model
23122 A `|` delimited list of vmaf models. Each model can be configured
23123 with a number of parameters. Default value: "version=vmaf_v0.6.1"
23124
23125 model_path
23126 Deprecated, use model='path=...'.
23127
23128 enable_transform
23129 Deprecated, use model='enable_transform=true'.
23130
23131 phone_model
23132 Deprecated, use model='enable_transform=true'.
23133
23134 enable_conf_interval
23135 Deprecated, use model='enable_conf_interval=true'.
23136
23137 feature
23138 A `|` delimited list of features. Each feature can be configured
23139 with a number of parameters.
23140
23141 psnr
23142 Deprecated, use feature='name=psnr'.
23143
23144 ssim
23145 Deprecated, use feature='name=ssim'.
23146
23147 ms_ssim
23148 Deprecated, use feature='name=ms_ssim'.
23149
23150 log_path
23151 Set the file path to be used to store log files.
23152
23153 log_fmt
23154 Set the format of the log file (xml, json, csv, or sub).
23155
23156 n_threads
23157 Set number of threads to be used when initializing libvmaf.
23158 Default value: 0, no threads.
23159
23160 n_subsample
23161 Set frame subsampling interval to be used.
23162
23163 This filter also supports the framesync options.
23164
23165 Examples
23166
23167 • In the examples below, a distorted video distorted.mpg is compared
23168 with a reference file reference.mpg.
23169
23170 • Basic usage:
23171
23172 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
23173
23174 • Example with multiple models:
23175
23176 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null -
23177
23178 • Example with multiple addtional features:
23179
23180 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
23181
23182 • Example with options and different containers:
23183
23184 ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
23185
23186 limitdiff
23187 Apply limited difference filter using second and optionally third video
23188 stream.
23189
23190 The filter accepts the following options:
23191
23192 threshold
23193 Set the threshold to use when allowing certain differences between
23194 video streams. Any absolute difference value lower or exact than
23195 this threshold will pick pixel components from first video stream.
23196
23197 elasticity
23198 Set the elasticity of soft thresholding when processing video
23199 streams. This value multiplied with first one sets second
23200 threshold. Any absolute difference value greater or exact than
23201 second threshold will pick pixel components from second video
23202 stream. For values between those two threshold linear interpolation
23203 between first and second video stream will be used.
23204
23205 reference
23206 Enable the reference (third) video stream processing. By default is
23207 disabled. If set, this video stream will be used for calculating
23208 absolute difference with first video stream.
23209
23210 planes
23211 Specify which planes will be processed. Defaults to all available.
23212
23213 Commands
23214
23215 This filter supports the all above options as commands except option
23216 reference.
23217
23218 limiter
23219 Limits the pixel components values to the specified range [min, max].
23220
23221 The filter accepts the following options:
23222
23223 min Lower bound. Defaults to the lowest allowed value for the input.
23224
23225 max Upper bound. Defaults to the highest allowed value for the input.
23226
23227 planes
23228 Specify which planes will be processed. Defaults to all available.
23229
23230 Commands
23231
23232 This filter supports the all above options as commands.
23233
23234 loop
23235 Loop video frames.
23236
23237 The filter accepts the following options:
23238
23239 loop
23240 Set the number of loops. Setting this value to -1 will result in
23241 infinite loops. Default is 0.
23242
23243 size
23244 Set maximal size in number of frames. Default is 0.
23245
23246 start
23247 Set first frame of loop. Default is 0.
23248
23249 Examples
23250
23251 • Loop single first frame infinitely:
23252
23253 loop=loop=-1:size=1:start=0
23254
23255 • Loop single first frame 10 times:
23256
23257 loop=loop=10:size=1:start=0
23258
23259 • Loop 10 first frames 5 times:
23260
23261 loop=loop=5:size=10:start=0
23262
23263 lut1d
23264 Apply a 1D LUT to an input video.
23265
23266 The filter accepts the following options:
23267
23268 file
23269 Set the 1D LUT file name.
23270
23271 Currently supported formats:
23272
23273 cube
23274 Iridas
23275
23276 csp cineSpace
23277
23278 interp
23279 Select interpolation mode.
23280
23281 Available values are:
23282
23283 nearest
23284 Use values from the nearest defined point.
23285
23286 linear
23287 Interpolate values using the linear interpolation.
23288
23289 cosine
23290 Interpolate values using the cosine interpolation.
23291
23292 cubic
23293 Interpolate values using the cubic interpolation.
23294
23295 spline
23296 Interpolate values using the spline interpolation.
23297
23298 Commands
23299
23300 This filter supports the all above options as commands.
23301
23302 lut3d
23303 Apply a 3D LUT to an input video.
23304
23305 The filter accepts the following options:
23306
23307 file
23308 Set the 3D LUT file name.
23309
23310 Currently supported formats:
23311
23312 3dl AfterEffects
23313
23314 cube
23315 Iridas
23316
23317 dat DaVinci
23318
23319 m3d Pandora
23320
23321 csp cineSpace
23322
23323 interp
23324 Select interpolation mode.
23325
23326 Available values are:
23327
23328 nearest
23329 Use values from the nearest defined point.
23330
23331 trilinear
23332 Interpolate values using the 8 points defining a cube.
23333
23334 tetrahedral
23335 Interpolate values using a tetrahedron.
23336
23337 pyramid
23338 Interpolate values using a pyramid.
23339
23340 prism
23341 Interpolate values using a prism.
23342
23343 Commands
23344
23345 This filter supports the "interp" option as commands.
23346
23347 lumakey
23348 Turn certain luma values into transparency.
23349
23350 The filter accepts the following options:
23351
23352 threshold
23353 Set the luma which will be used as base for transparency. Default
23354 value is 0.
23355
23356 tolerance
23357 Set the range of luma values to be keyed out. Default value is
23358 0.01.
23359
23360 softness
23361 Set the range of softness. Default value is 0. Use this to control
23362 gradual transition from zero to full transparency.
23363
23364 Commands
23365
23366 This filter supports same commands as options. The command accepts the
23367 same syntax of the corresponding option.
23368
23369 If the specified expression is not valid, it is kept at its current
23370 value.
23371
23372 lut, lutrgb, lutyuv
23373 Compute a look-up table for binding each pixel component input value to
23374 an output value, and apply it to the input video.
23375
23376 lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
23377 input video.
23378
23379 These filters accept the following parameters:
23380
23381 c0 set first pixel component expression
23382
23383 c1 set second pixel component expression
23384
23385 c2 set third pixel component expression
23386
23387 c3 set fourth pixel component expression, corresponds to the alpha
23388 component
23389
23390 r set red component expression
23391
23392 g set green component expression
23393
23394 b set blue component expression
23395
23396 a alpha component expression
23397
23398 y set Y/luminance component expression
23399
23400 u set U/Cb component expression
23401
23402 v set V/Cr component expression
23403
23404 Each of them specifies the expression to use for computing the lookup
23405 table for the corresponding pixel component values.
23406
23407 The exact component associated to each of the c* options depends on the
23408 format in input.
23409
23410 The lut filter requires either YUV or RGB pixel formats in input,
23411 lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
23412
23413 The expressions can contain the following constants and functions:
23414
23415 w
23416 h The input width and height.
23417
23418 val The input value for the pixel component.
23419
23420 clipval
23421 The input value, clipped to the minval-maxval range.
23422
23423 maxval
23424 The maximum value for the pixel component.
23425
23426 minval
23427 The minimum value for the pixel component.
23428
23429 negval
23430 The negated value for the pixel component value, clipped to the
23431 minval-maxval range; it corresponds to the expression
23432 "maxval-clipval+minval".
23433
23434 clip(val)
23435 The computed value in val, clipped to the minval-maxval range.
23436
23437 gammaval(gamma)
23438 The computed gamma correction value of the pixel component value,
23439 clipped to the minval-maxval range. It corresponds to the
23440 expression
23441 "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
23442
23443 All expressions default to "clipval".
23444
23445 Commands
23446
23447 This filter supports same commands as options.
23448
23449 Examples
23450
23451 • Negate input video:
23452
23453 lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
23454 lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
23455
23456 The above is the same as:
23457
23458 lutrgb="r=negval:g=negval:b=negval"
23459 lutyuv="y=negval:u=negval:v=negval"
23460
23461 • Negate luminance:
23462
23463 lutyuv=y=negval
23464
23465 • Remove chroma components, turning the video into a graytone image:
23466
23467 lutyuv="u=128:v=128"
23468
23469 • Apply a luma burning effect:
23470
23471 lutyuv="y=2*val"
23472
23473 • Remove green and blue components:
23474
23475 lutrgb="g=0:b=0"
23476
23477 • Set a constant alpha channel value on input:
23478
23479 format=rgba,lutrgb=a="maxval-minval/2"
23480
23481 • Correct luminance gamma by a factor of 0.5:
23482
23483 lutyuv=y=gammaval(0.5)
23484
23485 • Discard least significant bits of luma:
23486
23487 lutyuv=y='bitand(val, 128+64+32)'
23488
23489 • Technicolor like effect:
23490
23491 lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
23492
23493 lut2, tlut2
23494 The "lut2" filter takes two input streams and outputs one stream.
23495
23496 The "tlut2" (time lut2) filter takes two consecutive frames from one
23497 single stream.
23498
23499 This filter accepts the following parameters:
23500
23501 c0 set first pixel component expression
23502
23503 c1 set second pixel component expression
23504
23505 c2 set third pixel component expression
23506
23507 c3 set fourth pixel component expression, corresponds to the alpha
23508 component
23509
23510 d set output bit depth, only available for "lut2" filter. By default
23511 is 0, which means bit depth is automatically picked from first
23512 input format.
23513
23514 The "lut2" filter also supports the framesync options.
23515
23516 Each of them specifies the expression to use for computing the lookup
23517 table for the corresponding pixel component values.
23518
23519 The exact component associated to each of the c* options depends on the
23520 format in inputs.
23521
23522 The expressions can contain the following constants:
23523
23524 w
23525 h The input width and height.
23526
23527 x The first input value for the pixel component.
23528
23529 y The second input value for the pixel component.
23530
23531 bdx The first input video bit depth.
23532
23533 bdy The second input video bit depth.
23534
23535 All expressions default to "x".
23536
23537 Commands
23538
23539 This filter supports the all above options as commands except option
23540 "d".
23541
23542 Examples
23543
23544 • Highlight differences between two RGB video streams:
23545
23546 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)'
23547
23548 • Highlight differences between two YUV video streams:
23549
23550 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)'
23551
23552 • Show max difference between two video streams:
23553
23554 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)))'
23555
23556 maskedclamp
23557 Clamp the first input stream with the second input and third input
23558 stream.
23559
23560 Returns the value of first stream to be between second input stream -
23561 "undershoot" and third input stream + "overshoot".
23562
23563 This filter accepts the following options:
23564
23565 undershoot
23566 Default value is 0.
23567
23568 overshoot
23569 Default value is 0.
23570
23571 planes
23572 Set which planes will be processed as bitmap, unprocessed planes
23573 will be copied from first stream. By default value 0xf, all planes
23574 will be processed.
23575
23576 Commands
23577
23578 This filter supports the all above options as commands.
23579
23580 maskedmax
23581 Merge the second and third input stream into output stream using
23582 absolute differences between second input stream and first input stream
23583 and absolute difference between third input stream and first input
23584 stream. The picked value will be from second input stream if second
23585 absolute difference is greater than first one or from third input
23586 stream otherwise.
23587
23588 This filter accepts the following options:
23589
23590 planes
23591 Set which planes will be processed as bitmap, unprocessed planes
23592 will be copied from first stream. By default value 0xf, all planes
23593 will be processed.
23594
23595 Commands
23596
23597 This filter supports the all above options as commands.
23598
23599 maskedmerge
23600 Merge the first input stream with the second input stream using per
23601 pixel weights in the third input stream.
23602
23603 A value of 0 in the third stream pixel component means that pixel
23604 component from first stream is returned unchanged, while maximum value
23605 (eg. 255 for 8-bit videos) means that pixel component from second
23606 stream is returned unchanged. Intermediate values define the amount of
23607 merging between both input stream's pixel components.
23608
23609 This filter accepts the following options:
23610
23611 planes
23612 Set which planes will be processed as bitmap, unprocessed planes
23613 will be copied from first stream. By default value 0xf, all planes
23614 will be processed.
23615
23616 Commands
23617
23618 This filter supports the all above options as commands.
23619
23620 maskedmin
23621 Merge the second and third input stream into output stream using
23622 absolute differences between second input stream and first input stream
23623 and absolute difference between third input stream and first input
23624 stream. The picked value will be from second input stream if second
23625 absolute difference is less than first one or from third input stream
23626 otherwise.
23627
23628 This filter accepts the following options:
23629
23630 planes
23631 Set which planes will be processed as bitmap, unprocessed planes
23632 will be copied from first stream. By default value 0xf, all planes
23633 will be processed.
23634
23635 Commands
23636
23637 This filter supports the all above options as commands.
23638
23639 maskedthreshold
23640 Pick pixels comparing absolute difference of two video streams with
23641 fixed threshold.
23642
23643 If absolute difference between pixel component of first and second
23644 video stream is equal or lower than user supplied threshold than pixel
23645 component from first video stream is picked, otherwise pixel component
23646 from second video stream is picked.
23647
23648 This filter accepts the following options:
23649
23650 threshold
23651 Set threshold used when picking pixels from absolute difference
23652 from two input video streams.
23653
23654 planes
23655 Set which planes will be processed as bitmap, unprocessed planes
23656 will be copied from second stream. By default value 0xf, all
23657 planes will be processed.
23658
23659 Commands
23660
23661 This filter supports the all above options as commands.
23662
23663 maskfun
23664 Create mask from input video.
23665
23666 For example it is useful to create motion masks after "tblend" filter.
23667
23668 This filter accepts the following options:
23669
23670 low Set low threshold. Any pixel component lower or exact than this
23671 value will be set to 0.
23672
23673 high
23674 Set high threshold. Any pixel component higher than this value will
23675 be set to max value allowed for current pixel format.
23676
23677 planes
23678 Set planes to filter, by default all available planes are filtered.
23679
23680 fill
23681 Fill all frame pixels with this value.
23682
23683 sum Set max average pixel value for frame. If sum of all pixel
23684 components is higher that this average, output frame will be
23685 completely filled with value set by fill option. Typically useful
23686 for scene changes when used in combination with "tblend" filter.
23687
23688 Commands
23689
23690 This filter supports the all above options as commands.
23691
23692 mcdeint
23693 Apply motion-compensation deinterlacing.
23694
23695 It needs one field per frame as input and must thus be used together
23696 with yadif=1/3 or equivalent.
23697
23698 This filter is only available in ffmpeg version 4.4 or earlier.
23699
23700 This filter accepts the following options:
23701
23702 mode
23703 Set the deinterlacing mode.
23704
23705 It accepts one of the following values:
23706
23707 fast
23708 medium
23709 slow
23710 use iterative motion estimation
23711
23712 extra_slow
23713 like slow, but use multiple reference frames.
23714
23715 Default value is fast.
23716
23717 parity
23718 Set the picture field parity assumed for the input video. It must
23719 be one of the following values:
23720
23721 0, tff
23722 assume top field first
23723
23724 1, bff
23725 assume bottom field first
23726
23727 Default value is bff.
23728
23729 qp Set per-block quantization parameter (QP) used by the internal
23730 encoder.
23731
23732 Higher values should result in a smoother motion vector field but
23733 less optimal individual vectors. Default value is 1.
23734
23735 median
23736 Pick median pixel from certain rectangle defined by radius.
23737
23738 This filter accepts the following options:
23739
23740 radius
23741 Set horizontal radius size. Default value is 1. Allowed range is
23742 integer from 1 to 127.
23743
23744 planes
23745 Set which planes to process. Default is 15, which is all available
23746 planes.
23747
23748 radiusV
23749 Set vertical radius size. Default value is 0. Allowed range is
23750 integer from 0 to 127. If it is 0, value will be picked from
23751 horizontal "radius" option.
23752
23753 percentile
23754 Set median percentile. Default value is 0.5. Default value of 0.5
23755 will pick always median values, while 0 will pick minimum values,
23756 and 1 maximum values.
23757
23758 Commands
23759
23760 This filter supports same commands as options. The command accepts the
23761 same syntax of the corresponding option.
23762
23763 If the specified expression is not valid, it is kept at its current
23764 value.
23765
23766 mergeplanes
23767 Merge color channel components from several video streams.
23768
23769 The filter accepts up to 4 input streams, and merge selected input
23770 planes to the output video.
23771
23772 This filter accepts the following options:
23773
23774 mapping
23775 Set input to output plane mapping. Default is 0.
23776
23777 The mappings is specified as a bitmap. It should be specified as a
23778 hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
23779 mapping for the first plane of the output stream. 'A' sets the
23780 number of the input stream to use (from 0 to 3), and 'a' the plane
23781 number of the corresponding input to use (from 0 to 3). The rest of
23782 the mappings is similar, 'Bb' describes the mapping for the output
23783 stream second plane, 'Cc' describes the mapping for the output
23784 stream third plane and 'Dd' describes the mapping for the output
23785 stream fourth plane.
23786
23787 format
23788 Set output pixel format. Default is "yuva444p".
23789
23790 map0s
23791 map1s
23792 map2s
23793 map3s
23794 Set input to output stream mapping for output Nth plane. Default is
23795 0.
23796
23797 map0p
23798 map1p
23799 map2p
23800 map3p
23801 Set input to output plane mapping for output Nth plane. Default is
23802 0.
23803
23804 Examples
23805
23806 • Merge three gray video streams of same width and height into single
23807 video stream:
23808
23809 [a0][a1][a2]mergeplanes=0x001020:yuv444p
23810
23811 • Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
23812 video stream:
23813
23814 [a0][a1]mergeplanes=0x00010210:yuva444p
23815
23816 • Swap Y and A plane in yuva444p stream:
23817
23818 format=yuva444p,mergeplanes=0x03010200:yuva444p
23819
23820 • Swap U and V plane in yuv420p stream:
23821
23822 format=yuv420p,mergeplanes=0x000201:yuv420p
23823
23824 • Cast a rgb24 clip to yuv444p:
23825
23826 format=rgb24,mergeplanes=0x000102:yuv444p
23827
23828 mestimate
23829 Estimate and export motion vectors using block matching algorithms.
23830 Motion vectors are stored in frame side data to be used by other
23831 filters.
23832
23833 This filter accepts the following options:
23834
23835 method
23836 Specify the motion estimation method. Accepts one of the following
23837 values:
23838
23839 esa Exhaustive search algorithm.
23840
23841 tss Three step search algorithm.
23842
23843 tdls
23844 Two dimensional logarithmic search algorithm.
23845
23846 ntss
23847 New three step search algorithm.
23848
23849 fss Four step search algorithm.
23850
23851 ds Diamond search algorithm.
23852
23853 hexbs
23854 Hexagon-based search algorithm.
23855
23856 epzs
23857 Enhanced predictive zonal search algorithm.
23858
23859 umh Uneven multi-hexagon search algorithm.
23860
23861 Default value is esa.
23862
23863 mb_size
23864 Macroblock size. Default 16.
23865
23866 search_param
23867 Search parameter. Default 7.
23868
23869 midequalizer
23870 Apply Midway Image Equalization effect using two video streams.
23871
23872 Midway Image Equalization adjusts a pair of images to have the same
23873 histogram, while maintaining their dynamics as much as possible. It's
23874 useful for e.g. matching exposures from a pair of stereo cameras.
23875
23876 This filter has two inputs and one output, which must be of same pixel
23877 format, but may be of different sizes. The output of filter is first
23878 input adjusted with midway histogram of both inputs.
23879
23880 This filter accepts the following option:
23881
23882 planes
23883 Set which planes to process. Default is 15, which is all available
23884 planes.
23885
23886 minterpolate
23887 Convert the video to specified frame rate using motion interpolation.
23888
23889 This filter accepts the following options:
23890
23891 fps Specify the output frame rate. This can be rational e.g.
23892 "60000/1001". Frames are dropped if fps is lower than source fps.
23893 Default 60.
23894
23895 mi_mode
23896 Motion interpolation mode. Following values are accepted:
23897
23898 dup Duplicate previous or next frame for interpolating new ones.
23899
23900 blend
23901 Blend source frames. Interpolated frame is mean of previous and
23902 next frames.
23903
23904 mci Motion compensated interpolation. Following options are
23905 effective when this mode is selected:
23906
23907 mc_mode
23908 Motion compensation mode. Following values are accepted:
23909
23910 obmc
23911 Overlapped block motion compensation.
23912
23913 aobmc
23914 Adaptive overlapped block motion compensation. Window
23915 weighting coefficients are controlled adaptively
23916 according to the reliabilities of the neighboring
23917 motion vectors to reduce oversmoothing.
23918
23919 Default mode is obmc.
23920
23921 me_mode
23922 Motion estimation mode. Following values are accepted:
23923
23924 bidir
23925 Bidirectional motion estimation. Motion vectors are
23926 estimated for each source frame in both forward and
23927 backward directions.
23928
23929 bilat
23930 Bilateral motion estimation. Motion vectors are
23931 estimated directly for interpolated frame.
23932
23933 Default mode is bilat.
23934
23935 me The algorithm to be used for motion estimation. Following
23936 values are accepted:
23937
23938 esa Exhaustive search algorithm.
23939
23940 tss Three step search algorithm.
23941
23942 tdls
23943 Two dimensional logarithmic search algorithm.
23944
23945 ntss
23946 New three step search algorithm.
23947
23948 fss Four step search algorithm.
23949
23950 ds Diamond search algorithm.
23951
23952 hexbs
23953 Hexagon-based search algorithm.
23954
23955 epzs
23956 Enhanced predictive zonal search algorithm.
23957
23958 umh Uneven multi-hexagon search algorithm.
23959
23960 Default algorithm is epzs.
23961
23962 mb_size
23963 Macroblock size. Default 16.
23964
23965 search_param
23966 Motion estimation search parameter. Default 32.
23967
23968 vsbmc
23969 Enable variable-size block motion compensation. Motion
23970 estimation is applied with smaller block sizes at object
23971 boundaries in order to make the them less blur. Default is
23972 0 (disabled).
23973
23974 scd Scene change detection method. Scene change leads motion vectors to
23975 be in random direction. Scene change detection replace interpolated
23976 frames by duplicate ones. May not be needed for other modes.
23977 Following values are accepted:
23978
23979 none
23980 Disable scene change detection.
23981
23982 fdiff
23983 Frame difference. Corresponding pixel values are compared and
23984 if it satisfies scd_threshold scene change is detected.
23985
23986 Default method is fdiff.
23987
23988 scd_threshold
23989 Scene change detection threshold. Default is 10..
23990
23991 mix
23992 Mix several video input streams into one video stream.
23993
23994 A description of the accepted options follows.
23995
23996 inputs
23997 The number of inputs. If unspecified, it defaults to 2.
23998
23999 weights
24000 Specify weight of each input video stream as sequence. Each weight
24001 is separated by space. If number of weights is smaller than number
24002 of frames last specified weight will be used for all remaining
24003 unset weights.
24004
24005 scale
24006 Specify scale, if it is set it will be multiplied with sum of each
24007 weight multiplied with pixel values to give final destination pixel
24008 value. By default scale is auto scaled to sum of weights.
24009
24010 planes
24011 Set which planes to filter. Default is all. Allowed range is from 0
24012 to 15.
24013
24014 duration
24015 Specify how end of stream is determined.
24016
24017 longest
24018 The duration of the longest input. (default)
24019
24020 shortest
24021 The duration of the shortest input.
24022
24023 first
24024 The duration of the first input.
24025
24026 Commands
24027
24028 This filter supports the following commands:
24029
24030 weights
24031 scale
24032 planes
24033 Syntax is same as option with same name.
24034
24035 monochrome
24036 Convert video to gray using custom color filter.
24037
24038 A description of the accepted options follows.
24039
24040 cb Set the chroma blue spot. Allowed range is from -1 to 1. Default
24041 value is 0.
24042
24043 cr Set the chroma red spot. Allowed range is from -1 to 1. Default
24044 value is 0.
24045
24046 size
24047 Set the color filter size. Allowed range is from .1 to 10. Default
24048 value is 1.
24049
24050 high
24051 Set the highlights strength. Allowed range is from 0 to 1. Default
24052 value is 0.
24053
24054 Commands
24055
24056 This filter supports the all above options as commands.
24057
24058 morpho
24059 This filter allows to apply main morphological grayscale transforms,
24060 erode and dilate with arbitrary structures set in second input stream.
24061
24062 Unlike naive implementation and much slower performance in erosion and
24063 dilation filters, when speed is critical "morpho" filter should be used
24064 instead.
24065
24066 A description of accepted options follows,
24067
24068 mode
24069 Set morphological transform to apply, can be:
24070
24071 erode
24072 dilate
24073 open
24074 close
24075 gradient
24076 tophat
24077 blackhat
24078
24079 Default is "erode".
24080
24081 planes
24082 Set planes to filter, by default all planes except alpha are
24083 filtered.
24084
24085 structure
24086 Set which structure video frames will be processed from second
24087 input stream, can be first or all. Default is all.
24088
24089 The "morpho" filter also supports the framesync options.
24090
24091 Commands
24092
24093 This filter supports same commands as options.
24094
24095 mpdecimate
24096 Drop frames that do not differ greatly from the previous frame in order
24097 to reduce frame rate.
24098
24099 The main use of this filter is for very-low-bitrate encoding (e.g.
24100 streaming over dialup modem), but it could in theory be used for fixing
24101 movies that were inverse-telecined incorrectly.
24102
24103 A description of the accepted options follows.
24104
24105 max Set the maximum number of consecutive frames which can be dropped
24106 (if positive), or the minimum interval between dropped frames (if
24107 negative). If the value is 0, the frame is dropped disregarding the
24108 number of previous sequentially dropped frames.
24109
24110 Default value is 0.
24111
24112 hi
24113 lo
24114 frac
24115 Set the dropping threshold values.
24116
24117 Values for hi and lo are for 8x8 pixel blocks and represent actual
24118 pixel value differences, so a threshold of 64 corresponds to 1 unit
24119 of difference for each pixel, or the same spread out differently
24120 over the block.
24121
24122 A frame is a candidate for dropping if no 8x8 blocks differ by more
24123 than a threshold of hi, and if no more than frac blocks (1 meaning
24124 the whole image) differ by more than a threshold of lo.
24125
24126 Default value for hi is 64*12, default value for lo is 64*5, and
24127 default value for frac is 0.33.
24128
24129 msad
24130 Obtain the MSAD (Mean Sum of Absolute Differences) between two input
24131 videos.
24132
24133 This filter takes two input videos.
24134
24135 Both input videos must have the same resolution and pixel format for
24136 this filter to work correctly. Also it assumes that both inputs have
24137 the same number of frames, which are compared one by one.
24138
24139 The obtained per component, average, min and max MSAD is printed
24140 through the logging system.
24141
24142 The filter stores the calculated MSAD of each frame in frame metadata.
24143
24144 In the below example the input file main.mpg being processed is
24145 compared with the reference file ref.mpg.
24146
24147 ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
24148
24149 multiply
24150 Multiply first video stream pixels values with second video stream
24151 pixels values.
24152
24153 The filter accepts the following options:
24154
24155 scale
24156 Set the scale applied to second video stream. By default is 1.
24157 Allowed range is from 0 to 9.
24158
24159 offset
24160 Set the offset applied to second video stream. By default is 0.5.
24161 Allowed range is from "-1" to 1.
24162
24163 planes
24164 Specify planes from input video stream that will be processed. By
24165 default all planes are processed.
24166
24167 Commands
24168
24169 This filter supports same commands as options.
24170
24171 negate
24172 Negate (invert) the input video.
24173
24174 It accepts the following option:
24175
24176 components
24177 Set components to negate.
24178
24179 Available values for components are:
24180
24181 y
24182 u
24183 v
24184 a
24185 r
24186 g
24187 b
24188 negate_alpha
24189 With value 1, it negates the alpha component, if present. Default
24190 value is 0.
24191
24192 Commands
24193
24194 This filter supports same commands as options.
24195
24196 nlmeans
24197 Denoise frames using Non-Local Means algorithm.
24198
24199 Each pixel is adjusted by looking for other pixels with similar
24200 contexts. This context similarity is defined by comparing their
24201 surrounding patches of size pxp. Patches are searched in an area of rxr
24202 around the pixel.
24203
24204 Note that the research area defines centers for patches, which means
24205 some patches will be made of pixels outside that research area.
24206
24207 The filter accepts the following options.
24208
24209 s Set denoising strength. Default is 1.0. Must be in range [1.0,
24210 30.0].
24211
24212 p Set patch size. Default is 7. Must be odd number in range [0, 99].
24213
24214 pc Same as p but for chroma planes.
24215
24216 The default value is 0 and means automatic.
24217
24218 r Set research size. Default is 15. Must be odd number in range [0,
24219 99].
24220
24221 rc Same as r but for chroma planes.
24222
24223 The default value is 0 and means automatic.
24224
24225 nnedi
24226 Deinterlace video using neural network edge directed interpolation.
24227
24228 This filter accepts the following options:
24229
24230 weights
24231 Mandatory option, without binary file filter can not work.
24232 Currently file can be found here:
24233 https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
24234
24235 deint
24236 Set which frames to deinterlace, by default it is "all". Can be
24237 "all" or "interlaced".
24238
24239 field
24240 Set mode of operation.
24241
24242 Can be one of the following:
24243
24244 af Use frame flags, both fields.
24245
24246 a Use frame flags, single field.
24247
24248 t Use top field only.
24249
24250 b Use bottom field only.
24251
24252 tf Use both fields, top first.
24253
24254 bf Use both fields, bottom first.
24255
24256 planes
24257 Set which planes to process, by default filter process all frames.
24258
24259 nsize
24260 Set size of local neighborhood around each pixel, used by the
24261 predictor neural network.
24262
24263 Can be one of the following:
24264
24265 s8x6
24266 s16x6
24267 s32x6
24268 s48x6
24269 s8x4
24270 s16x4
24271 s32x4
24272 nns Set the number of neurons in predictor neural network. Can be one
24273 of the following:
24274
24275 n16
24276 n32
24277 n64
24278 n128
24279 n256
24280 qual
24281 Controls the number of different neural network predictions that
24282 are blended together to compute the final output value. Can be
24283 "fast", default or "slow".
24284
24285 etype
24286 Set which set of weights to use in the predictor. Can be one of
24287 the following:
24288
24289 a, abs
24290 weights trained to minimize absolute error
24291
24292 s, mse
24293 weights trained to minimize squared error
24294
24295 pscrn
24296 Controls whether or not the prescreener neural network is used to
24297 decide which pixels should be processed by the predictor neural
24298 network and which can be handled by simple cubic interpolation.
24299 The prescreener is trained to know whether cubic interpolation will
24300 be sufficient for a pixel or whether it should be predicted by the
24301 predictor nn. The computational complexity of the prescreener nn
24302 is much less than that of the predictor nn. Since most pixels can
24303 be handled by cubic interpolation, using the prescreener generally
24304 results in much faster processing. The prescreener is pretty
24305 accurate, so the difference between using it and not using it is
24306 almost always unnoticeable.
24307
24308 Can be one of the following:
24309
24310 none
24311 original
24312 new
24313 new2
24314 new3
24315
24316 Default is "new".
24317
24318 Commands
24319
24320 This filter supports same commands as options, excluding weights
24321 option.
24322
24323 noformat
24324 Force libavfilter not to use any of the specified pixel formats for the
24325 input to the next filter.
24326
24327 It accepts the following parameters:
24328
24329 pix_fmts
24330 A '|'-separated list of pixel format names, such as
24331 pix_fmts=yuv420p|monow|rgb24".
24332
24333 Examples
24334
24335 • Force libavfilter to use a format different from yuv420p for the
24336 input to the vflip filter:
24337
24338 noformat=pix_fmts=yuv420p,vflip
24339
24340 • Convert the input video to any of the formats not contained in the
24341 list:
24342
24343 noformat=yuv420p|yuv444p|yuv410p
24344
24345 noise
24346 Add noise on video input frame.
24347
24348 The filter accepts the following options:
24349
24350 all_seed
24351 c0_seed
24352 c1_seed
24353 c2_seed
24354 c3_seed
24355 Set noise seed for specific pixel component or all pixel components
24356 in case of all_seed. Default value is 123457.
24357
24358 all_strength, alls
24359 c0_strength, c0s
24360 c1_strength, c1s
24361 c2_strength, c2s
24362 c3_strength, c3s
24363 Set noise strength for specific pixel component or all pixel
24364 components in case all_strength. Default value is 0. Allowed range
24365 is [0, 100].
24366
24367 all_flags, allf
24368 c0_flags, c0f
24369 c1_flags, c1f
24370 c2_flags, c2f
24371 c3_flags, c3f
24372 Set pixel component flags or set flags for all components if
24373 all_flags. Available values for component flags are:
24374
24375 a averaged temporal noise (smoother)
24376
24377 p mix random noise with a (semi)regular pattern
24378
24379 t temporal noise (noise pattern changes between frames)
24380
24381 u uniform noise (gaussian otherwise)
24382
24383 Examples
24384
24385 Add temporal and uniform noise to input video:
24386
24387 noise=alls=20:allf=t+u
24388
24389 normalize
24390 Normalize RGB video (aka histogram stretching, contrast stretching).
24391 See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
24392
24393 For each channel of each frame, the filter computes the input range and
24394 maps it linearly to the user-specified output range. The output range
24395 defaults to the full dynamic range from pure black to pure white.
24396
24397 Temporal smoothing can be used on the input range to reduce flickering
24398 (rapid changes in brightness) caused when small dark or bright objects
24399 enter or leave the scene. This is similar to the auto-exposure
24400 (automatic gain control) on a video camera, and, like a video camera,
24401 it may cause a period of over- or under-exposure of the video.
24402
24403 The R,G,B channels can be normalized independently, which may cause
24404 some color shifting, or linked together as a single channel, which
24405 prevents color shifting. Linked normalization preserves hue.
24406 Independent normalization does not, so it can be used to remove some
24407 color casts. Independent and linked normalization can be combined in
24408 any ratio.
24409
24410 The normalize filter accepts the following options:
24411
24412 blackpt
24413 whitept
24414 Colors which define the output range. The minimum input value is
24415 mapped to the blackpt. The maximum input value is mapped to the
24416 whitept. The defaults are black and white respectively. Specifying
24417 white for blackpt and black for whitept will give color-inverted,
24418 normalized video. Shades of grey can be used to reduce the dynamic
24419 range (contrast). Specifying saturated colors here can create some
24420 interesting effects.
24421
24422 smoothing
24423 The number of previous frames to use for temporal smoothing. The
24424 input range of each channel is smoothed using a rolling average
24425 over the current frame and the smoothing previous frames. The
24426 default is 0 (no temporal smoothing).
24427
24428 independence
24429 Controls the ratio of independent (color shifting) channel
24430 normalization to linked (color preserving) normalization. 0.0 is
24431 fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
24432 independent).
24433
24434 strength
24435 Overall strength of the filter. 1.0 is full strength. 0.0 is a
24436 rather expensive no-op. Defaults to 1.0 (full strength).
24437
24438 Commands
24439
24440 This filter supports same commands as options, excluding smoothing
24441 option. The command accepts the same syntax of the corresponding
24442 option.
24443
24444 If the specified expression is not valid, it is kept at its current
24445 value.
24446
24447 Examples
24448
24449 Stretch video contrast to use the full dynamic range, with no temporal
24450 smoothing; may flicker depending on the source content:
24451
24452 normalize=blackpt=black:whitept=white:smoothing=0
24453
24454 As above, but with 50 frames of temporal smoothing; flicker should be
24455 reduced, depending on the source content:
24456
24457 normalize=blackpt=black:whitept=white:smoothing=50
24458
24459 As above, but with hue-preserving linked channel normalization:
24460
24461 normalize=blackpt=black:whitept=white:smoothing=50:independence=0
24462
24463 As above, but with half strength:
24464
24465 normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
24466
24467 Map the darkest input color to red, the brightest input color to cyan:
24468
24469 normalize=blackpt=red:whitept=cyan
24470
24471 null
24472 Pass the video source unchanged to the output.
24473
24474 ocr
24475 Optical Character Recognition
24476
24477 This filter uses Tesseract for optical character recognition. To enable
24478 compilation of this filter, you need to configure FFmpeg with
24479 "--enable-libtesseract".
24480
24481 It accepts the following options:
24482
24483 datapath
24484 Set datapath to tesseract data. Default is to use whatever was set
24485 at installation.
24486
24487 language
24488 Set language, default is "eng".
24489
24490 whitelist
24491 Set character whitelist.
24492
24493 blacklist
24494 Set character blacklist.
24495
24496 The filter exports recognized text as the frame metadata
24497 "lavfi.ocr.text". The filter exports confidence of recognized words as
24498 the frame metadata "lavfi.ocr.confidence".
24499
24500 ocv
24501 Apply a video transform using libopencv.
24502
24503 To enable this filter, install the libopencv library and headers and
24504 configure FFmpeg with "--enable-libopencv".
24505
24506 It accepts the following parameters:
24507
24508 filter_name
24509 The name of the libopencv filter to apply.
24510
24511 filter_params
24512 The parameters to pass to the libopencv filter. If not specified,
24513 the default values are assumed.
24514
24515 Refer to the official libopencv documentation for more precise
24516 information:
24517 <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
24518
24519 Several libopencv filters are supported; see the following subsections.
24520
24521 dilate
24522
24523 Dilate an image by using a specific structuring element. It
24524 corresponds to the libopencv function "cvDilate".
24525
24526 It accepts the parameters: struct_el|nb_iterations.
24527
24528 struct_el represents a structuring element, and has the syntax:
24529 colsxrows+anchor_xxanchor_y/shape
24530
24531 cols and rows represent the number of columns and rows of the
24532 structuring element, anchor_x and anchor_y the anchor point, and shape
24533 the shape for the structuring element. shape must be "rect", "cross",
24534 "ellipse", or "custom".
24535
24536 If the value for shape is "custom", it must be followed by a string of
24537 the form "=filename". The file with name filename is assumed to
24538 represent a binary image, with each printable character corresponding
24539 to a bright pixel. When a custom shape is used, cols and rows are
24540 ignored, the number or columns and rows of the read file are assumed
24541 instead.
24542
24543 The default value for struct_el is "3x3+0x0/rect".
24544
24545 nb_iterations specifies the number of times the transform is applied to
24546 the image, and defaults to 1.
24547
24548 Some examples:
24549
24550 # Use the default values
24551 ocv=dilate
24552
24553 # Dilate using a structuring element with a 5x5 cross, iterating two times
24554 ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
24555
24556 # Read the shape from the file diamond.shape, iterating two times.
24557 # The file diamond.shape may contain a pattern of characters like this
24558 # *
24559 # ***
24560 # *****
24561 # ***
24562 # *
24563 # The specified columns and rows are ignored
24564 # but the anchor point coordinates are not
24565 ocv=dilate:0x0+2x2/custom=diamond.shape|2
24566
24567 erode
24568
24569 Erode an image by using a specific structuring element. It corresponds
24570 to the libopencv function "cvErode".
24571
24572 It accepts the parameters: struct_el:nb_iterations, with the same
24573 syntax and semantics as the dilate filter.
24574
24575 smooth
24576
24577 Smooth the input video.
24578
24579 The filter takes the following parameters:
24580 type|param1|param2|param3|param4.
24581
24582 type is the type of smooth filter to apply, and must be one of the
24583 following values: "blur", "blur_no_scale", "median", "gaussian", or
24584 "bilateral". The default value is "gaussian".
24585
24586 The meaning of param1, param2, param3, and param4 depends on the smooth
24587 type. param1 and param2 accept integer positive values or 0. param3 and
24588 param4 accept floating point values.
24589
24590 The default value for param1 is 3. The default value for the other
24591 parameters is 0.
24592
24593 These parameters correspond to the parameters assigned to the libopencv
24594 function "cvSmooth".
24595
24596 oscilloscope
24597 2D Video Oscilloscope.
24598
24599 Useful to measure spatial impulse, step responses, chroma delays, etc.
24600
24601 It accepts the following parameters:
24602
24603 x Set scope center x position.
24604
24605 y Set scope center y position.
24606
24607 s Set scope size, relative to frame diagonal.
24608
24609 t Set scope tilt/rotation.
24610
24611 o Set trace opacity.
24612
24613 tx Set trace center x position.
24614
24615 ty Set trace center y position.
24616
24617 tw Set trace width, relative to width of frame.
24618
24619 th Set trace height, relative to height of frame.
24620
24621 c Set which components to trace. By default it traces first three
24622 components.
24623
24624 g Draw trace grid. By default is enabled.
24625
24626 st Draw some statistics. By default is enabled.
24627
24628 sc Draw scope. By default is enabled.
24629
24630 Commands
24631
24632 This filter supports same commands as options. The command accepts the
24633 same syntax of the corresponding option.
24634
24635 If the specified expression is not valid, it is kept at its current
24636 value.
24637
24638 Examples
24639
24640 • Inspect full first row of video frame.
24641
24642 oscilloscope=x=0.5:y=0:s=1
24643
24644 • Inspect full last row of video frame.
24645
24646 oscilloscope=x=0.5:y=1:s=1
24647
24648 • Inspect full 5th line of video frame of height 1080.
24649
24650 oscilloscope=x=0.5:y=5/1080:s=1
24651
24652 • Inspect full last column of video frame.
24653
24654 oscilloscope=x=1:y=0.5:s=1:t=1
24655
24656 overlay
24657 Overlay one video on top of another.
24658
24659 It takes two inputs and has one output. The first input is the "main"
24660 video on which the second input is overlaid.
24661
24662 It accepts the following parameters:
24663
24664 A description of the accepted options follows.
24665
24666 x
24667 y Set the expression for the x and y coordinates of the overlaid
24668 video on the main video. Default value is "0" for both expressions.
24669 In case the expression is invalid, it is set to a huge value
24670 (meaning that the overlay will not be displayed within the output
24671 visible area).
24672
24673 eof_action
24674 See framesync.
24675
24676 eval
24677 Set when the expressions for x, and y are evaluated.
24678
24679 It accepts the following values:
24680
24681 init
24682 only evaluate expressions once during the filter initialization
24683 or when a command is processed
24684
24685 frame
24686 evaluate expressions for each incoming frame
24687
24688 Default value is frame.
24689
24690 shortest
24691 See framesync.
24692
24693 format
24694 Set the format for the output video.
24695
24696 It accepts the following values:
24697
24698 yuv420
24699 force YUV420 output
24700
24701 yuv420p10
24702 force YUV420p10 output
24703
24704 yuv422
24705 force YUV422 output
24706
24707 yuv422p10
24708 force YUV422p10 output
24709
24710 yuv444
24711 force YUV444 output
24712
24713 rgb force packed RGB output
24714
24715 gbrp
24716 force planar RGB output
24717
24718 auto
24719 automatically pick format
24720
24721 Default value is yuv420.
24722
24723 repeatlast
24724 See framesync.
24725
24726 alpha
24727 Set format of alpha of the overlaid video, it can be straight or
24728 premultiplied. Default is straight.
24729
24730 The x, and y expressions can contain the following parameters.
24731
24732 main_w, W
24733 main_h, H
24734 The main input width and height.
24735
24736 overlay_w, w
24737 overlay_h, h
24738 The overlay input width and height.
24739
24740 x
24741 y The computed values for x and y. They are evaluated for each new
24742 frame.
24743
24744 hsub
24745 vsub
24746 horizontal and vertical chroma subsample values of the output
24747 format. For example for the pixel format "yuv422p" hsub is 2 and
24748 vsub is 1.
24749
24750 n the number of input frame, starting from 0
24751
24752 pos the position in the file of the input frame, NAN if unknown
24753
24754 t The timestamp, expressed in seconds. It's NAN if the input
24755 timestamp is unknown.
24756
24757 This filter also supports the framesync options.
24758
24759 Note that the n, pos, t variables are available only when evaluation is
24760 done per frame, and will evaluate to NAN when eval is set to init.
24761
24762 Be aware that frames are taken from each input video in timestamp
24763 order, hence, if their initial timestamps differ, it is a good idea to
24764 pass the two inputs through a setpts=PTS-STARTPTS filter to have them
24765 begin in the same zero timestamp, as the example for the movie filter
24766 does.
24767
24768 You can chain together more overlays but you should test the efficiency
24769 of such approach.
24770
24771 Commands
24772
24773 This filter supports the following commands:
24774
24775 x
24776 y Modify the x and y of the overlay input. The command accepts the
24777 same syntax of the corresponding option.
24778
24779 If the specified expression is not valid, it is kept at its current
24780 value.
24781
24782 Examples
24783
24784 • Draw the overlay at 10 pixels from the bottom right corner of the
24785 main video:
24786
24787 overlay=main_w-overlay_w-10:main_h-overlay_h-10
24788
24789 Using named options the example above becomes:
24790
24791 overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
24792
24793 • Insert a transparent PNG logo in the bottom left corner of the
24794 input, using the ffmpeg tool with the "-filter_complex" option:
24795
24796 ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
24797
24798 • Insert 2 different transparent PNG logos (second logo on bottom
24799 right corner) using the ffmpeg tool:
24800
24801 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
24802
24803 • Add a transparent color layer on top of the main video; "WxH" must
24804 specify the size of the main input to the overlay filter:
24805
24806 color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
24807
24808 • Play an original video and a filtered version (here with the
24809 deshake filter) side by side using the ffplay tool:
24810
24811 ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
24812
24813 The above command is the same as:
24814
24815 ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
24816
24817 • Make a sliding overlay appearing from the left to the right top
24818 part of the screen starting since time 2:
24819
24820 overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
24821
24822 • Compose output by putting two input videos side to side:
24823
24824 ffmpeg -i left.avi -i right.avi -filter_complex "
24825 nullsrc=size=200x100 [background];
24826 [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
24827 [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
24828 [background][left] overlay=shortest=1 [background+left];
24829 [background+left][right] overlay=shortest=1:x=100 [left+right]
24830 "
24831
24832 • Mask 10-20 seconds of a video by applying the delogo filter to a
24833 section
24834
24835 ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
24836 -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]'
24837 masked.avi
24838
24839 • Chain several overlays in cascade:
24840
24841 nullsrc=s=200x200 [bg];
24842 testsrc=s=100x100, split=4 [in0][in1][in2][in3];
24843 [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0];
24844 [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1];
24845 [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2];
24846 [in3] null, [mid2] overlay=100:100 [out0]
24847
24848 overlay_cuda
24849 Overlay one video on top of another.
24850
24851 This is the CUDA variant of the overlay filter. It only accepts CUDA
24852 frames. The underlying input pixel formats have to match.
24853
24854 It takes two inputs and has one output. The first input is the "main"
24855 video on which the second input is overlaid.
24856
24857 It accepts the following parameters:
24858
24859 x
24860 y Set expressions for the x and y coordinates of the overlaid video
24861 on the main video.
24862
24863 They can contain the following parameters:
24864
24865 main_w, W
24866 main_h, H
24867 The main input width and height.
24868
24869 overlay_w, w
24870 overlay_h, h
24871 The overlay input width and height.
24872
24873 x
24874 y The computed values for x and y. They are evaluated for each
24875 new frame.
24876
24877 n The ordinal index of the main input frame, starting from 0.
24878
24879 pos The byte offset position in the file of the main input frame,
24880 NAN if unknown.
24881
24882 t The timestamp of the main input frame, expressed in seconds,
24883 NAN if unknown.
24884
24885 Default value is "0" for both expressions.
24886
24887 eval
24888 Set when the expressions for x and y are evaluated.
24889
24890 It accepts the following values:
24891
24892 init
24893 Evaluate expressions once during filter initialization or when
24894 a command is processed.
24895
24896 frame
24897 Evaluate expressions for each incoming frame
24898
24899 Default value is frame.
24900
24901 eof_action
24902 See framesync.
24903
24904 shortest
24905 See framesync.
24906
24907 repeatlast
24908 See framesync.
24909
24910 This filter also supports the framesync options.
24911
24912 owdenoise
24913 Apply Overcomplete Wavelet denoiser.
24914
24915 The filter accepts the following options:
24916
24917 depth
24918 Set depth.
24919
24920 Larger depth values will denoise lower frequency components more,
24921 but slow down filtering.
24922
24923 Must be an int in the range 8-16, default is 8.
24924
24925 luma_strength, ls
24926 Set luma strength.
24927
24928 Must be a double value in the range 0-1000, default is 1.0.
24929
24930 chroma_strength, cs
24931 Set chroma strength.
24932
24933 Must be a double value in the range 0-1000, default is 1.0.
24934
24935 pad
24936 Add paddings to the input image, and place the original input at the
24937 provided x, y coordinates.
24938
24939 It accepts the following parameters:
24940
24941 width, w
24942 height, h
24943 Specify an expression for the size of the output image with the
24944 paddings added. If the value for width or height is 0, the
24945 corresponding input size is used for the output.
24946
24947 The width expression can reference the value set by the height
24948 expression, and vice versa.
24949
24950 The default value of width and height is 0.
24951
24952 x
24953 y Specify the offsets to place the input image at within the padded
24954 area, with respect to the top/left border of the output image.
24955
24956 The x expression can reference the value set by the y expression,
24957 and vice versa.
24958
24959 The default value of x and y is 0.
24960
24961 If x or y evaluate to a negative number, they'll be changed so the
24962 input image is centered on the padded area.
24963
24964 color
24965 Specify the color of the padded area. For the syntax of this
24966 option, check the "Color" section in the ffmpeg-utils manual.
24967
24968 The default value of color is "black".
24969
24970 eval
24971 Specify when to evaluate width, height, x and y expression.
24972
24973 It accepts the following values:
24974
24975 init
24976 Only evaluate expressions once during the filter initialization
24977 or when a command is processed.
24978
24979 frame
24980 Evaluate expressions for each incoming frame.
24981
24982 Default value is init.
24983
24984 aspect
24985 Pad to aspect instead to a resolution.
24986
24987 The value for the width, height, x, and y options are expressions
24988 containing the following constants:
24989
24990 in_w
24991 in_h
24992 The input video width and height.
24993
24994 iw
24995 ih These are the same as in_w and in_h.
24996
24997 out_w
24998 out_h
24999 The output width and height (the size of the padded area), as
25000 specified by the width and height expressions.
25001
25002 ow
25003 oh These are the same as out_w and out_h.
25004
25005 x
25006 y The x and y offsets as specified by the x and y expressions, or NAN
25007 if not yet specified.
25008
25009 a same as iw / ih
25010
25011 sar input sample aspect ratio
25012
25013 dar input display aspect ratio, it is the same as (iw / ih) * sar
25014
25015 hsub
25016 vsub
25017 The horizontal and vertical chroma subsample values. For example
25018 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
25019
25020 Examples
25021
25022 • Add paddings with the color "violet" to the input video. The output
25023 video size is 640x480, and the top-left corner of the input video
25024 is placed at column 0, row 40
25025
25026 pad=640:480:0:40:violet
25027
25028 The example above is equivalent to the following command:
25029
25030 pad=width=640:height=480:x=0:y=40:color=violet
25031
25032 • Pad the input to get an output with dimensions increased by 3/2,
25033 and put the input video at the center of the padded area:
25034
25035 pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
25036
25037 • Pad the input to get a squared output with size equal to the
25038 maximum value between the input width and height, and put the input
25039 video at the center of the padded area:
25040
25041 pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
25042
25043 • Pad the input to get a final w/h ratio of 16:9:
25044
25045 pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
25046
25047 • In case of anamorphic video, in order to set the output display
25048 aspect correctly, it is necessary to use sar in the expression,
25049 according to the relation:
25050
25051 (ih * X / ih) * sar = output_dar
25052 X = output_dar / sar
25053
25054 Thus the previous example needs to be modified to:
25055
25056 pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
25057
25058 • Double the output size and put the input video in the bottom-right
25059 corner of the output padded area:
25060
25061 pad="2*iw:2*ih:ow-iw:oh-ih"
25062
25063 palettegen
25064 Generate one palette for a whole video stream.
25065
25066 It accepts the following options:
25067
25068 max_colors
25069 Set the maximum number of colors to quantize in the palette. Note:
25070 the palette will still contain 256 colors; the unused palette
25071 entries will be black.
25072
25073 reserve_transparent
25074 Create a palette of 255 colors maximum and reserve the last one for
25075 transparency. Reserving the transparency color is useful for GIF
25076 optimization. If not set, the maximum of colors in the palette
25077 will be 256. You probably want to disable this option for a
25078 standalone image. Set by default.
25079
25080 transparency_color
25081 Set the color that will be used as background for transparency.
25082
25083 stats_mode
25084 Set statistics mode.
25085
25086 It accepts the following values:
25087
25088 full
25089 Compute full frame histograms.
25090
25091 diff
25092 Compute histograms only for the part that differs from previous
25093 frame. This might be relevant to give more importance to the
25094 moving part of your input if the background is static.
25095
25096 single
25097 Compute new histogram for each frame.
25098
25099 Default value is full.
25100
25101 use_alpha
25102 Create a palette of colors with alpha components. Setting this,
25103 will automatically disable 'reserve_transparent'.
25104
25105 The filter also exports the frame metadata "lavfi.color_quant_ratio"
25106 ("nb_color_in / nb_color_out") which you can use to evaluate the degree
25107 of color quantization of the palette. This information is also visible
25108 at info logging level.
25109
25110 Examples
25111
25112 • Generate a representative palette of a given video using ffmpeg:
25113
25114 ffmpeg -i input.mkv -vf palettegen palette.png
25115
25116 paletteuse
25117 Use a palette to downsample an input video stream.
25118
25119 The filter takes two inputs: one video stream and a palette. The
25120 palette must be a 256 pixels image.
25121
25122 It accepts the following options:
25123
25124 dither
25125 Select dithering mode. Available algorithms are:
25126
25127 bayer
25128 Ordered 8x8 bayer dithering (deterministic)
25129
25130 heckbert
25131 Dithering as defined by Paul Heckbert in 1982 (simple error
25132 diffusion). Note: this dithering is sometimes considered
25133 "wrong" and is included as a reference.
25134
25135 floyd_steinberg
25136 Floyd and Steingberg dithering (error diffusion)
25137
25138 sierra2
25139 Frankie Sierra dithering v2 (error diffusion)
25140
25141 sierra2_4a
25142 Frankie Sierra dithering v2 "Lite" (error diffusion)
25143
25144 Default is sierra2_4a.
25145
25146 bayer_scale
25147 When bayer dithering is selected, this option defines the scale of
25148 the pattern (how much the crosshatch pattern is visible). A low
25149 value means more visible pattern for less banding, and higher value
25150 means less visible pattern at the cost of more banding.
25151
25152 The option must be an integer value in the range [0,5]. Default is
25153 2.
25154
25155 diff_mode
25156 If set, define the zone to process
25157
25158 rectangle
25159 Only the changing rectangle will be reprocessed. This is
25160 similar to GIF cropping/offsetting compression mechanism. This
25161 option can be useful for speed if only a part of the image is
25162 changing, and has use cases such as limiting the scope of the
25163 error diffusal dither to the rectangle that bounds the moving
25164 scene (it leads to more deterministic output if the scene
25165 doesn't change much, and as a result less moving noise and
25166 better GIF compression).
25167
25168 Default is none.
25169
25170 new Take new palette for each output frame.
25171
25172 alpha_threshold
25173 Sets the alpha threshold for transparency. Alpha values above this
25174 threshold will be treated as completely opaque, and values below
25175 this threshold will be treated as completely transparent.
25176
25177 The option must be an integer value in the range [0,255]. Default
25178 is 128.
25179
25180 use_alpha
25181 Apply the palette by taking alpha values into account. Only useful
25182 with palettes that are containing multiple colors with alpha
25183 components. Setting this will automatically disable
25184 'alpha_treshold'.
25185
25186 Examples
25187
25188 • Use a palette (generated for example with palettegen) to encode a
25189 GIF using ffmpeg:
25190
25191 ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
25192
25193 perspective
25194 Correct perspective of video not recorded perpendicular to the screen.
25195
25196 A description of the accepted parameters follows.
25197
25198 x0
25199 y0
25200 x1
25201 y1
25202 x2
25203 y2
25204 x3
25205 y3 Set coordinates expression for top left, top right, bottom left and
25206 bottom right corners. Default values are "0:0:W:0:0:H:W:H" with
25207 which perspective will remain unchanged. If the "sense" option is
25208 set to "source", then the specified points will be sent to the
25209 corners of the destination. If the "sense" option is set to
25210 "destination", then the corners of the source will be sent to the
25211 specified coordinates.
25212
25213 The expressions can use the following variables:
25214
25215 W
25216 H the width and height of video frame.
25217
25218 in Input frame count.
25219
25220 on Output frame count.
25221
25222 interpolation
25223 Set interpolation for perspective correction.
25224
25225 It accepts the following values:
25226
25227 linear
25228 cubic
25229
25230 Default value is linear.
25231
25232 sense
25233 Set interpretation of coordinate options.
25234
25235 It accepts the following values:
25236
25237 0, source
25238 Send point in the source specified by the given coordinates to
25239 the corners of the destination.
25240
25241 1, destination
25242 Send the corners of the source to the point in the destination
25243 specified by the given coordinates.
25244
25245 Default value is source.
25246
25247 eval
25248 Set when the expressions for coordinates x0,y0,...x3,y3 are
25249 evaluated.
25250
25251 It accepts the following values:
25252
25253 init
25254 only evaluate expressions once during the filter initialization
25255 or when a command is processed
25256
25257 frame
25258 evaluate expressions for each incoming frame
25259
25260 Default value is init.
25261
25262 phase
25263 Delay interlaced video by one field time so that the field order
25264 changes.
25265
25266 The intended use is to fix PAL movies that have been captured with the
25267 opposite field order to the film-to-video transfer.
25268
25269 A description of the accepted parameters follows.
25270
25271 mode
25272 Set phase mode.
25273
25274 It accepts the following values:
25275
25276 t Capture field order top-first, transfer bottom-first. Filter
25277 will delay the bottom field.
25278
25279 b Capture field order bottom-first, transfer top-first. Filter
25280 will delay the top field.
25281
25282 p Capture and transfer with the same field order. This mode only
25283 exists for the documentation of the other options to refer to,
25284 but if you actually select it, the filter will faithfully do
25285 nothing.
25286
25287 a Capture field order determined automatically by field flags,
25288 transfer opposite. Filter selects among t and b modes on a
25289 frame by frame basis using field flags. If no field information
25290 is available, then this works just like u.
25291
25292 u Capture unknown or varying, transfer opposite. Filter selects
25293 among t and b on a frame by frame basis by analyzing the images
25294 and selecting the alternative that produces best match between
25295 the fields.
25296
25297 T Capture top-first, transfer unknown or varying. Filter selects
25298 among t and p using image analysis.
25299
25300 B Capture bottom-first, transfer unknown or varying. Filter
25301 selects among b and p using image analysis.
25302
25303 A Capture determined by field flags, transfer unknown or varying.
25304 Filter selects among t, b and p using field flags and image
25305 analysis. If no field information is available, then this works
25306 just like U. This is the default mode.
25307
25308 U Both capture and transfer unknown or varying. Filter selects
25309 among t, b and p using image analysis only.
25310
25311 Commands
25312
25313 This filter supports the all above options as commands.
25314
25315 photosensitivity
25316 Reduce various flashes in video, so to help users with epilepsy.
25317
25318 It accepts the following options:
25319
25320 frames, f
25321 Set how many frames to use when filtering. Default is 30.
25322
25323 threshold, t
25324 Set detection threshold factor. Default is 1. Lower is stricter.
25325
25326 skip
25327 Set how many pixels to skip when sampling frames. Default is 1.
25328 Allowed range is from 1 to 1024.
25329
25330 bypass
25331 Leave frames unchanged. Default is disabled.
25332
25333 pixdesctest
25334 Pixel format descriptor test filter, mainly useful for internal
25335 testing. The output video should be equal to the input video.
25336
25337 For example:
25338
25339 format=monow, pixdesctest
25340
25341 can be used to test the monowhite pixel format descriptor definition.
25342
25343 pixelize
25344 Apply pixelization to video stream.
25345
25346 The filter accepts the following options:
25347
25348 width, w
25349 height, h
25350 Set block dimensions that will be used for pixelization. Default
25351 value is 16.
25352
25353 mode, m
25354 Set the mode of pixelization used.
25355
25356 Possible values are:
25357
25358 avg
25359 min
25360 max
25361
25362 Default value is "avg".
25363
25364 planes, p
25365 Set what planes to filter. Default is to filter all planes.
25366
25367 Commands
25368
25369 This filter supports all options as commands.
25370
25371 pixscope
25372 Display sample values of color channels. Mainly useful for checking
25373 color and levels. Minimum supported resolution is 640x480.
25374
25375 The filters accept the following options:
25376
25377 x Set scope X position, relative offset on X axis.
25378
25379 y Set scope Y position, relative offset on Y axis.
25380
25381 w Set scope width.
25382
25383 h Set scope height.
25384
25385 o Set window opacity. This window also holds statistics about pixel
25386 area.
25387
25388 wx Set window X position, relative offset on X axis.
25389
25390 wy Set window Y position, relative offset on Y axis.
25391
25392 Commands
25393
25394 This filter supports same commands as options.
25395
25396 pp
25397 Enable the specified chain of postprocessing subfilters using
25398 libpostproc. This library should be automatically selected with a GPL
25399 build ("--enable-gpl"). Subfilters must be separated by '/' and can be
25400 disabled by prepending a '-'. Each subfilter and some options have a
25401 short and a long name that can be used interchangeably, i.e. dr/dering
25402 are the same.
25403
25404 The filters accept the following options:
25405
25406 subfilters
25407 Set postprocessing subfilters string.
25408
25409 All subfilters share common options to determine their scope:
25410
25411 a/autoq
25412 Honor the quality commands for this subfilter.
25413
25414 c/chrom
25415 Do chrominance filtering, too (default).
25416
25417 y/nochrom
25418 Do luminance filtering only (no chrominance).
25419
25420 n/noluma
25421 Do chrominance filtering only (no luminance).
25422
25423 These options can be appended after the subfilter name, separated by a
25424 '|'.
25425
25426 Available subfilters are:
25427
25428 hb/hdeblock[|difference[|flatness]]
25429 Horizontal deblocking filter
25430
25431 difference
25432 Difference factor where higher values mean more deblocking
25433 (default: 32).
25434
25435 flatness
25436 Flatness threshold where lower values mean more deblocking
25437 (default: 39).
25438
25439 vb/vdeblock[|difference[|flatness]]
25440 Vertical deblocking filter
25441
25442 difference
25443 Difference factor where higher values mean more deblocking
25444 (default: 32).
25445
25446 flatness
25447 Flatness threshold where lower values mean more deblocking
25448 (default: 39).
25449
25450 ha/hadeblock[|difference[|flatness]]
25451 Accurate horizontal deblocking filter
25452
25453 difference
25454 Difference factor where higher values mean more deblocking
25455 (default: 32).
25456
25457 flatness
25458 Flatness threshold where lower values mean more deblocking
25459 (default: 39).
25460
25461 va/vadeblock[|difference[|flatness]]
25462 Accurate vertical deblocking filter
25463
25464 difference
25465 Difference factor where higher values mean more deblocking
25466 (default: 32).
25467
25468 flatness
25469 Flatness threshold where lower values mean more deblocking
25470 (default: 39).
25471
25472 The horizontal and vertical deblocking filters share the difference and
25473 flatness values so you cannot set different horizontal and vertical
25474 thresholds.
25475
25476 h1/x1hdeblock
25477 Experimental horizontal deblocking filter
25478
25479 v1/x1vdeblock
25480 Experimental vertical deblocking filter
25481
25482 dr/dering
25483 Deringing filter
25484
25485 tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
25486 reducer
25487 threshold1
25488 larger -> stronger filtering
25489
25490 threshold2
25491 larger -> stronger filtering
25492
25493 threshold3
25494 larger -> stronger filtering
25495
25496 al/autolevels[:f/fullyrange], automatic brightness / contrast
25497 correction
25498 f/fullyrange
25499 Stretch luminance to "0-255".
25500
25501 lb/linblenddeint
25502 Linear blend deinterlacing filter that deinterlaces the given block
25503 by filtering all lines with a "(1 2 1)" filter.
25504
25505 li/linipoldeint
25506 Linear interpolating deinterlacing filter that deinterlaces the
25507 given block by linearly interpolating every second line.
25508
25509 ci/cubicipoldeint
25510 Cubic interpolating deinterlacing filter deinterlaces the given
25511 block by cubically interpolating every second line.
25512
25513 md/mediandeint
25514 Median deinterlacing filter that deinterlaces the given block by
25515 applying a median filter to every second line.
25516
25517 fd/ffmpegdeint
25518 FFmpeg deinterlacing filter that deinterlaces the given block by
25519 filtering every second line with a "(-1 4 2 4 -1)" filter.
25520
25521 l5/lowpass5
25522 Vertically applied FIR lowpass deinterlacing filter that
25523 deinterlaces the given block by filtering all lines with a "(-1 2 6
25524 2 -1)" filter.
25525
25526 fq/forceQuant[|quantizer]
25527 Overrides the quantizer table from the input with the constant
25528 quantizer you specify.
25529
25530 quantizer
25531 Quantizer to use
25532
25533 de/default
25534 Default pp filter combination ("hb|a,vb|a,dr|a")
25535
25536 fa/fast
25537 Fast pp filter combination ("h1|a,v1|a,dr|a")
25538
25539 ac High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
25540
25541 Examples
25542
25543 • Apply horizontal and vertical deblocking, deringing and automatic
25544 brightness/contrast:
25545
25546 pp=hb/vb/dr/al
25547
25548 • Apply default filters without brightness/contrast correction:
25549
25550 pp=de/-al
25551
25552 • Apply default filters and temporal denoiser:
25553
25554 pp=default/tmpnoise|1|2|3
25555
25556 • Apply deblocking on luminance only, and switch vertical deblocking
25557 on or off automatically depending on available CPU time:
25558
25559 pp=hb|y/vb|a
25560
25561 pp7
25562 Apply Postprocessing filter 7. It is variant of the spp filter, similar
25563 to spp = 6 with 7 point DCT, where only the center sample is used after
25564 IDCT.
25565
25566 The filter accepts the following options:
25567
25568 qp Force a constant quantization parameter. It accepts an integer in
25569 range 0 to 63. If not set, the filter will use the QP from the
25570 video stream (if available).
25571
25572 mode
25573 Set thresholding mode. Available modes are:
25574
25575 hard
25576 Set hard thresholding.
25577
25578 soft
25579 Set soft thresholding (better de-ringing effect, but likely
25580 blurrier).
25581
25582 medium
25583 Set medium thresholding (good results, default).
25584
25585 premultiply
25586 Apply alpha premultiply effect to input video stream using first plane
25587 of second stream as alpha.
25588
25589 Both streams must have same dimensions and same pixel format.
25590
25591 The filter accepts the following option:
25592
25593 planes
25594 Set which planes will be processed, unprocessed planes will be
25595 copied. By default value 0xf, all planes will be processed.
25596
25597 inplace
25598 Do not require 2nd input for processing, instead use alpha plane
25599 from input stream.
25600
25601 prewitt
25602 Apply prewitt operator to input video stream.
25603
25604 The filter accepts the following option:
25605
25606 planes
25607 Set which planes will be processed, unprocessed planes will be
25608 copied. By default value 0xf, all planes will be processed.
25609
25610 scale
25611 Set value which will be multiplied with filtered result.
25612
25613 delta
25614 Set value which will be added to filtered result.
25615
25616 Commands
25617
25618 This filter supports the all above options as commands.
25619
25620 pseudocolor
25621 Alter frame colors in video with pseudocolors.
25622
25623 This filter accepts the following options:
25624
25625 c0 set pixel first component expression
25626
25627 c1 set pixel second component expression
25628
25629 c2 set pixel third component expression
25630
25631 c3 set pixel fourth component expression, corresponds to the alpha
25632 component
25633
25634 index, i
25635 set component to use as base for altering colors
25636
25637 preset, p
25638 Pick one of built-in LUTs. By default is set to none.
25639
25640 Available LUTs:
25641
25642 magma
25643 inferno
25644 plasma
25645 viridis
25646 turbo
25647 cividis
25648 range1
25649 range2
25650 shadows
25651 highlights
25652 solar
25653 nominal
25654 preferred
25655 total
25656 opacity
25657 Set opacity of output colors. Allowed range is from 0 to 1.
25658 Default value is set to 1.
25659
25660 Each of the expression options specifies the expression to use for
25661 computing the lookup table for the corresponding pixel component
25662 values.
25663
25664 The expressions can contain the following constants and functions:
25665
25666 w
25667 h The input width and height.
25668
25669 val The input value for the pixel component.
25670
25671 ymin, umin, vmin, amin
25672 The minimum allowed component value.
25673
25674 ymax, umax, vmax, amax
25675 The maximum allowed component value.
25676
25677 All expressions default to "val".
25678
25679 Commands
25680
25681 This filter supports the all above options as commands.
25682
25683 Examples
25684
25685 • Change too high luma values to gradient:
25686
25687 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'"
25688
25689 psnr
25690 Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
25691 Ratio) between two input videos.
25692
25693 This filter takes in input two input videos, the first input is
25694 considered the "main" source and is passed unchanged to the output. The
25695 second input is used as a "reference" video for computing the PSNR.
25696
25697 Both video inputs must have the same resolution and pixel format for
25698 this filter to work correctly. Also it assumes that both inputs have
25699 the same number of frames, which are compared one by one.
25700
25701 The obtained average PSNR is printed through the logging system.
25702
25703 The filter stores the accumulated MSE (mean squared error) of each
25704 frame, and at the end of the processing it is averaged across all
25705 frames equally, and the following formula is applied to obtain the
25706 PSNR:
25707
25708 PSNR = 10*log10(MAX^2/MSE)
25709
25710 Where MAX is the average of the maximum values of each component of the
25711 image.
25712
25713 The description of the accepted parameters follows.
25714
25715 stats_file, f
25716 If specified the filter will use the named file to save the PSNR of
25717 each individual frame. When filename equals "-" the data is sent to
25718 standard output.
25719
25720 stats_version
25721 Specifies which version of the stats file format to use. Details of
25722 each format are written below. Default value is 1.
25723
25724 stats_add_max
25725 Determines whether the max value is output to the stats log.
25726 Default value is 0. Requires stats_version >= 2. If this is set
25727 and stats_version < 2, the filter will return an error.
25728
25729 This filter also supports the framesync options.
25730
25731 The file printed if stats_file is selected, contains a sequence of
25732 key/value pairs of the form key:value for each compared couple of
25733 frames.
25734
25735 If a stats_version greater than 1 is specified, a header line precedes
25736 the list of per-frame-pair stats, with key value pairs following the
25737 frame format with the following parameters:
25738
25739 psnr_log_version
25740 The version of the log file format. Will match stats_version.
25741
25742 fields
25743 A comma separated list of the per-frame-pair parameters included in
25744 the log.
25745
25746 A description of each shown per-frame-pair parameter follows:
25747
25748 n sequential number of the input frame, starting from 1
25749
25750 mse_avg
25751 Mean Square Error pixel-by-pixel average difference of the compared
25752 frames, averaged over all the image components.
25753
25754 mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
25755 Mean Square Error pixel-by-pixel average difference of the compared
25756 frames for the component specified by the suffix.
25757
25758 psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
25759 Peak Signal to Noise ratio of the compared frames for the component
25760 specified by the suffix.
25761
25762 max_avg, max_y, max_u, max_v
25763 Maximum allowed value for each channel, and average over all
25764 channels.
25765
25766 Examples
25767
25768 • For example:
25769
25770 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
25771 [main][ref] psnr="stats_file=stats.log" [out]
25772
25773 On this example the input file being processed is compared with the
25774 reference file ref_movie.mpg. The PSNR of each individual frame is
25775 stored in stats.log.
25776
25777 • Another example with different containers:
25778
25779 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 -
25780
25781 pullup
25782 Pulldown reversal (inverse telecine) filter, capable of handling mixed
25783 hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
25784 progressive content.
25785
25786 The pullup filter is designed to take advantage of future context in
25787 making its decisions. This filter is stateless in the sense that it
25788 does not lock onto a pattern to follow, but it instead looks forward to
25789 the following fields in order to identify matches and rebuild
25790 progressive frames.
25791
25792 To produce content with an even framerate, insert the fps filter after
25793 pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
25794 "fps=24" for 30fps and the (rare) telecined 25fps input.
25795
25796 The filter accepts the following options:
25797
25798 jl
25799 jr
25800 jt
25801 jb These options set the amount of "junk" to ignore at the left,
25802 right, top, and bottom of the image, respectively. Left and right
25803 are in units of 8 pixels, while top and bottom are in units of 2
25804 lines. The default is 8 pixels on each side.
25805
25806 sb Set the strict breaks. Setting this option to 1 will reduce the
25807 chances of filter generating an occasional mismatched frame, but it
25808 may also cause an excessive number of frames to be dropped during
25809 high motion sequences. Conversely, setting it to -1 will make
25810 filter match fields more easily. This may help processing of video
25811 where there is slight blurring between the fields, but may also
25812 cause there to be interlaced frames in the output. Default value
25813 is 0.
25814
25815 mp Set the metric plane to use. It accepts the following values:
25816
25817 l Use luma plane.
25818
25819 u Use chroma blue plane.
25820
25821 v Use chroma red plane.
25822
25823 This option may be set to use chroma plane instead of the default
25824 luma plane for doing filter's computations. This may improve
25825 accuracy on very clean source material, but more likely will
25826 decrease accuracy, especially if there is chroma noise (rainbow
25827 effect) or any grayscale video. The main purpose of setting mp to
25828 a chroma plane is to reduce CPU load and make pullup usable in
25829 realtime on slow machines.
25830
25831 For best results (without duplicated frames in the output file) it is
25832 necessary to change the output frame rate. For example, to inverse
25833 telecine NTSC input:
25834
25835 ffmpeg -i input -vf pullup -r 24000/1001 ...
25836
25837 qp
25838 Change video quantization parameters (QP).
25839
25840 The filter accepts the following option:
25841
25842 qp Set expression for quantization parameter.
25843
25844 The expression is evaluated through the eval API and can contain, among
25845 others, the following constants:
25846
25847 known
25848 1 if index is not 129, 0 otherwise.
25849
25850 qp Sequential index starting from -129 to 128.
25851
25852 Examples
25853
25854 • Some equation like:
25855
25856 qp=2+2*sin(PI*qp)
25857
25858 random
25859 Flush video frames from internal cache of frames into a random order.
25860 No frame is discarded. Inspired by frei0r nervous filter.
25861
25862 frames
25863 Set size in number of frames of internal cache, in range from 2 to
25864 512. Default is 30.
25865
25866 seed
25867 Set seed for random number generator, must be an integer included
25868 between 0 and "UINT32_MAX". If not specified, or if explicitly set
25869 to less than 0, the filter will try to use a good random seed on a
25870 best effort basis.
25871
25872 readeia608
25873 Read closed captioning (EIA-608) information from the top lines of a
25874 video frame.
25875
25876 This filter adds frame metadata for "lavfi.readeia608.X.cc" and
25877 "lavfi.readeia608.X.line", where "X" is the number of the identified
25878 line with EIA-608 data (starting from 0). A description of each
25879 metadata value follows:
25880
25881 lavfi.readeia608.X.cc
25882 The two bytes stored as EIA-608 data (printed in hexadecimal).
25883
25884 lavfi.readeia608.X.line
25885 The number of the line on which the EIA-608 data was identified and
25886 read.
25887
25888 This filter accepts the following options:
25889
25890 scan_min
25891 Set the line to start scanning for EIA-608 data. Default is 0.
25892
25893 scan_max
25894 Set the line to end scanning for EIA-608 data. Default is 29.
25895
25896 spw Set the ratio of width reserved for sync code detection. Default
25897 is 0.27. Allowed range is "[0.1 - 0.7]".
25898
25899 chp Enable checking the parity bit. In the event of a parity error, the
25900 filter will output 0x00 for that character. Default is false.
25901
25902 lp Lowpass lines prior to further processing. Default is enabled.
25903
25904 Commands
25905
25906 This filter supports the all above options as commands.
25907
25908 Examples
25909
25910 • Output a csv with presentation time and the first two lines of
25911 identified EIA-608 captioning data.
25912
25913 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
25914
25915 readvitc
25916 Read vertical interval timecode (VITC) information from the top lines
25917 of a video frame.
25918
25919 The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
25920 timecode value, if a valid timecode has been detected. Further metadata
25921 key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
25922 data has been found or not.
25923
25924 This filter accepts the following options:
25925
25926 scan_max
25927 Set the maximum number of lines to scan for VITC data. If the value
25928 is set to "-1" the full video frame is scanned. Default is 45.
25929
25930 thr_b
25931 Set the luma threshold for black. Accepts float numbers in the
25932 range [0.0,1.0], default value is 0.2. The value must be equal or
25933 less than "thr_w".
25934
25935 thr_w
25936 Set the luma threshold for white. Accepts float numbers in the
25937 range [0.0,1.0], default value is 0.6. The value must be equal or
25938 greater than "thr_b".
25939
25940 Examples
25941
25942 • Detect and draw VITC data onto the video frame; if no valid VITC is
25943 detected, draw "--:--:--:--" as a placeholder:
25944
25945 ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
25946
25947 remap
25948 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
25949
25950 Destination pixel at position (X, Y) will be picked from source (x, y)
25951 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
25952 out of range, zero value for pixel will be used for destination pixel.
25953
25954 Xmap and Ymap input video streams must be of same dimensions. Output
25955 video stream will have Xmap/Ymap video stream dimensions. Xmap and
25956 Ymap input video streams are 16bit depth, single channel.
25957
25958 format
25959 Specify pixel format of output from this filter. Can be "color" or
25960 "gray". Default is "color".
25961
25962 fill
25963 Specify the color of the unmapped pixels. For the syntax of this
25964 option, check the "Color" section in the ffmpeg-utils manual.
25965 Default color is "black".
25966
25967 removegrain
25968 The removegrain filter is a spatial denoiser for progressive video.
25969
25970 m0 Set mode for the first plane.
25971
25972 m1 Set mode for the second plane.
25973
25974 m2 Set mode for the third plane.
25975
25976 m3 Set mode for the fourth plane.
25977
25978 Range of mode is from 0 to 24. Description of each mode follows:
25979
25980 0 Leave input plane unchanged. Default.
25981
25982 1 Clips the pixel with the minimum and maximum of the 8 neighbour
25983 pixels.
25984
25985 2 Clips the pixel with the second minimum and maximum of the 8
25986 neighbour pixels.
25987
25988 3 Clips the pixel with the third minimum and maximum of the 8
25989 neighbour pixels.
25990
25991 4 Clips the pixel with the fourth minimum and maximum of the 8
25992 neighbour pixels. This is equivalent to a median filter.
25993
25994 5 Line-sensitive clipping giving the minimal change.
25995
25996 6 Line-sensitive clipping, intermediate.
25997
25998 7 Line-sensitive clipping, intermediate.
25999
26000 8 Line-sensitive clipping, intermediate.
26001
26002 9 Line-sensitive clipping on a line where the neighbours pixels are
26003 the closest.
26004
26005 10 Replaces the target pixel with the closest neighbour.
26006
26007 11 [1 2 1] horizontal and vertical kernel blur.
26008
26009 12 Same as mode 11.
26010
26011 13 Bob mode, interpolates top field from the line where the neighbours
26012 pixels are the closest.
26013
26014 14 Bob mode, interpolates bottom field from the line where the
26015 neighbours pixels are the closest.
26016
26017 15 Bob mode, interpolates top field. Same as 13 but with a more
26018 complicated interpolation formula.
26019
26020 16 Bob mode, interpolates bottom field. Same as 14 but with a more
26021 complicated interpolation formula.
26022
26023 17 Clips the pixel with the minimum and maximum of respectively the
26024 maximum and minimum of each pair of opposite neighbour pixels.
26025
26026 18 Line-sensitive clipping using opposite neighbours whose greatest
26027 distance from the current pixel is minimal.
26028
26029 19 Replaces the pixel with the average of its 8 neighbours.
26030
26031 20 Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
26032
26033 21 Clips pixels using the averages of opposite neighbour.
26034
26035 22 Same as mode 21 but simpler and faster.
26036
26037 23 Small edge and halo removal, but reputed useless.
26038
26039 24 Similar as 23.
26040
26041 removelogo
26042 Suppress a TV station logo, using an image file to determine which
26043 pixels comprise the logo. It works by filling in the pixels that
26044 comprise the logo with neighboring pixels.
26045
26046 The filter accepts the following options:
26047
26048 filename, f
26049 Set the filter bitmap file, which can be any image format supported
26050 by libavformat. The width and height of the image file must match
26051 those of the video stream being processed.
26052
26053 Pixels in the provided bitmap image with a value of zero are not
26054 considered part of the logo, non-zero pixels are considered part of the
26055 logo. If you use white (255) for the logo and black (0) for the rest,
26056 you will be safe. For making the filter bitmap, it is recommended to
26057 take a screen capture of a black frame with the logo visible, and then
26058 using a threshold filter followed by the erode filter once or twice.
26059
26060 If needed, little splotches can be fixed manually. Remember that if
26061 logo pixels are not covered, the filter quality will be much reduced.
26062 Marking too many pixels as part of the logo does not hurt as much, but
26063 it will increase the amount of blurring needed to cover over the image
26064 and will destroy more information than necessary, and extra pixels will
26065 slow things down on a large logo.
26066
26067 repeatfields
26068 This filter uses the repeat_field flag from the Video ES headers and
26069 hard repeats fields based on its value.
26070
26071 reverse
26072 Reverse a video clip.
26073
26074 Warning: This filter requires memory to buffer the entire clip, so
26075 trimming is suggested.
26076
26077 Examples
26078
26079 • Take the first 5 seconds of a clip, and reverse it.
26080
26081 trim=end=5,reverse
26082
26083 rgbashift
26084 Shift R/G/B/A pixels horizontally and/or vertically.
26085
26086 The filter accepts the following options:
26087
26088 rh Set amount to shift red horizontally.
26089
26090 rv Set amount to shift red vertically.
26091
26092 gh Set amount to shift green horizontally.
26093
26094 gv Set amount to shift green vertically.
26095
26096 bh Set amount to shift blue horizontally.
26097
26098 bv Set amount to shift blue vertically.
26099
26100 ah Set amount to shift alpha horizontally.
26101
26102 av Set amount to shift alpha vertically.
26103
26104 edge
26105 Set edge mode, can be smear, default, or warp.
26106
26107 Commands
26108
26109 This filter supports the all above options as commands.
26110
26111 roberts
26112 Apply roberts cross operator to input video stream.
26113
26114 The filter accepts the following option:
26115
26116 planes
26117 Set which planes will be processed, unprocessed planes will be
26118 copied. By default value 0xf, all planes will be processed.
26119
26120 scale
26121 Set value which will be multiplied with filtered result.
26122
26123 delta
26124 Set value which will be added to filtered result.
26125
26126 Commands
26127
26128 This filter supports the all above options as commands.
26129
26130 rotate
26131 Rotate video by an arbitrary angle expressed in radians.
26132
26133 The filter accepts the following options:
26134
26135 A description of the optional parameters follows.
26136
26137 angle, a
26138 Set an expression for the angle by which to rotate the input video
26139 clockwise, expressed as a number of radians. A negative value will
26140 result in a counter-clockwise rotation. By default it is set to
26141 "0".
26142
26143 This expression is evaluated for each frame.
26144
26145 out_w, ow
26146 Set the output width expression, default value is "iw". This
26147 expression is evaluated just once during configuration.
26148
26149 out_h, oh
26150 Set the output height expression, default value is "ih". This
26151 expression is evaluated just once during configuration.
26152
26153 bilinear
26154 Enable bilinear interpolation if set to 1, a value of 0 disables
26155 it. Default value is 1.
26156
26157 fillcolor, c
26158 Set the color used to fill the output area not covered by the
26159 rotated image. For the general syntax of this option, check the
26160 "Color" section in the ffmpeg-utils manual. If the special value
26161 "none" is selected then no background is printed (useful for
26162 example if the background is never shown).
26163
26164 Default value is "black".
26165
26166 The expressions for the angle and the output size can contain the
26167 following constants and functions:
26168
26169 n sequential number of the input frame, starting from 0. It is always
26170 NAN before the first frame is filtered.
26171
26172 t time in seconds of the input frame, it is set to 0 when the filter
26173 is configured. It is always NAN before the first frame is filtered.
26174
26175 hsub
26176 vsub
26177 horizontal and vertical chroma subsample values. For example for
26178 the pixel format "yuv422p" hsub is 2 and vsub is 1.
26179
26180 in_w, iw
26181 in_h, ih
26182 the input video width and height
26183
26184 out_w, ow
26185 out_h, oh
26186 the output width and height, that is the size of the padded area as
26187 specified by the width and height expressions
26188
26189 rotw(a)
26190 roth(a)
26191 the minimal width/height required for completely containing the
26192 input video rotated by a radians.
26193
26194 These are only available when computing the out_w and out_h
26195 expressions.
26196
26197 Examples
26198
26199 • Rotate the input by PI/6 radians clockwise:
26200
26201 rotate=PI/6
26202
26203 • Rotate the input by PI/6 radians counter-clockwise:
26204
26205 rotate=-PI/6
26206
26207 • Rotate the input by 45 degrees clockwise:
26208
26209 rotate=45*PI/180
26210
26211 • Apply a constant rotation with period T, starting from an angle of
26212 PI/3:
26213
26214 rotate=PI/3+2*PI*t/T
26215
26216 • Make the input video rotation oscillating with a period of T
26217 seconds and an amplitude of A radians:
26218
26219 rotate=A*sin(2*PI/T*t)
26220
26221 • Rotate the video, output size is chosen so that the whole rotating
26222 input video is always completely contained in the output:
26223
26224 rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
26225
26226 • Rotate the video, reduce the output size so that no background is
26227 ever shown:
26228
26229 rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
26230
26231 Commands
26232
26233 The filter supports the following commands:
26234
26235 a, angle
26236 Set the angle expression. The command accepts the same syntax of
26237 the corresponding option.
26238
26239 If the specified expression is not valid, it is kept at its current
26240 value.
26241
26242 sab
26243 Apply Shape Adaptive Blur.
26244
26245 The filter accepts the following options:
26246
26247 luma_radius, lr
26248 Set luma blur filter strength, must be a value in range 0.1-4.0,
26249 default value is 1.0. A greater value will result in a more blurred
26250 image, and in slower processing.
26251
26252 luma_pre_filter_radius, lpfr
26253 Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
26254 default value is 1.0.
26255
26256 luma_strength, ls
26257 Set luma maximum difference between pixels to still be considered,
26258 must be a value in the 0.1-100.0 range, default value is 1.0.
26259
26260 chroma_radius, cr
26261 Set chroma blur filter strength, must be a value in range -0.9-4.0.
26262 A greater value will result in a more blurred image, and in slower
26263 processing.
26264
26265 chroma_pre_filter_radius, cpfr
26266 Set chroma pre-filter radius, must be a value in the -0.9-2.0
26267 range.
26268
26269 chroma_strength, cs
26270 Set chroma maximum difference between pixels to still be
26271 considered, must be a value in the -0.9-100.0 range.
26272
26273 Each chroma option value, if not explicitly specified, is set to the
26274 corresponding luma option value.
26275
26276 scale
26277 Scale (resize) the input video, using the libswscale library.
26278
26279 The scale filter forces the output display aspect ratio to be the same
26280 of the input, by changing the output sample aspect ratio.
26281
26282 If the input image format is different from the format requested by the
26283 next filter, the scale filter will convert the input to the requested
26284 format.
26285
26286 Options
26287
26288 The filter accepts the following options, or any of the options
26289 supported by the libswscale scaler.
26290
26291 See the ffmpeg-scaler manual for the complete list of scaler options.
26292
26293 width, w
26294 height, h
26295 Set the output video dimension expression. Default value is the
26296 input dimension.
26297
26298 If the width or w value is 0, the input width is used for the
26299 output. If the height or h value is 0, the input height is used for
26300 the output.
26301
26302 If one and only one of the values is -n with n >= 1, the scale
26303 filter will use a value that maintains the aspect ratio of the
26304 input image, calculated from the other specified dimension. After
26305 that it will, however, make sure that the calculated dimension is
26306 divisible by n and adjust the value if necessary.
26307
26308 If both values are -n with n >= 1, the behavior will be identical
26309 to both values being set to 0 as previously detailed.
26310
26311 See below for the list of accepted constants for use in the
26312 dimension expression.
26313
26314 eval
26315 Specify when to evaluate width and height expression. It accepts
26316 the following values:
26317
26318 init
26319 Only evaluate expressions once during the filter initialization
26320 or when a command is processed.
26321
26322 frame
26323 Evaluate expressions for each incoming frame.
26324
26325 Default value is init.
26326
26327 interl
26328 Set the interlacing mode. It accepts the following values:
26329
26330 1 Force interlaced aware scaling.
26331
26332 0 Do not apply interlaced scaling.
26333
26334 -1 Select interlaced aware scaling depending on whether the source
26335 frames are flagged as interlaced or not.
26336
26337 Default value is 0.
26338
26339 flags
26340 Set libswscale scaling flags. See the ffmpeg-scaler manual for the
26341 complete list of values. If not explicitly specified the filter
26342 applies the default flags.
26343
26344 param0, param1
26345 Set libswscale input parameters for scaling algorithms that need
26346 them. See the ffmpeg-scaler manual for the complete documentation.
26347 If not explicitly specified the filter applies empty parameters.
26348
26349 size, s
26350 Set the video size. For the syntax of this option, check the "Video
26351 size" section in the ffmpeg-utils manual.
26352
26353 in_color_matrix
26354 out_color_matrix
26355 Set in/output YCbCr color space type.
26356
26357 This allows the autodetected value to be overridden as well as
26358 allows forcing a specific value used for the output and encoder.
26359
26360 If not specified, the color space type depends on the pixel format.
26361
26362 Possible values:
26363
26364 auto
26365 Choose automatically.
26366
26367 bt709
26368 Format conforming to International Telecommunication Union
26369 (ITU) Recommendation BT.709.
26370
26371 fcc Set color space conforming to the United States Federal
26372 Communications Commission (FCC) Code of Federal Regulations
26373 (CFR) Title 47 (2003) 73.682 (a).
26374
26375 bt601
26376 bt470
26377 smpte170m
26378 Set color space conforming to:
26379
26380 • ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
26381
26382 • ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
26383
26384 • Society of Motion Picture and Television Engineers (SMPTE)
26385 ST 170:2004
26386
26387 smpte240m
26388 Set color space conforming to SMPTE ST 240:1999.
26389
26390 bt2020
26391 Set color space conforming to ITU-R BT.2020 non-constant
26392 luminance system.
26393
26394 in_range
26395 out_range
26396 Set in/output YCbCr sample range.
26397
26398 This allows the autodetected value to be overridden as well as
26399 allows forcing a specific value used for the output and encoder. If
26400 not specified, the range depends on the pixel format. Possible
26401 values:
26402
26403 auto/unknown
26404 Choose automatically.
26405
26406 jpeg/full/pc
26407 Set full range (0-255 in case of 8-bit luma).
26408
26409 mpeg/limited/tv
26410 Set "MPEG" range (16-235 in case of 8-bit luma).
26411
26412 force_original_aspect_ratio
26413 Enable decreasing or increasing output video width or height if
26414 necessary to keep the original aspect ratio. Possible values:
26415
26416 disable
26417 Scale the video as specified and disable this feature.
26418
26419 decrease
26420 The output video dimensions will automatically be decreased if
26421 needed.
26422
26423 increase
26424 The output video dimensions will automatically be increased if
26425 needed.
26426
26427 One useful instance of this option is that when you know a specific
26428 device's maximum allowed resolution, you can use this to limit the
26429 output video to that, while retaining the aspect ratio. For
26430 example, device A allows 1280x720 playback, and your video is
26431 1920x800. Using this option (set it to decrease) and specifying
26432 1280x720 to the command line makes the output 1280x533.
26433
26434 Please note that this is a different thing than specifying -1 for w
26435 or h, you still need to specify the output resolution for this
26436 option to work.
26437
26438 force_divisible_by
26439 Ensures that both the output dimensions, width and height, are
26440 divisible by the given integer when used together with
26441 force_original_aspect_ratio. This works similar to using "-n" in
26442 the w and h options.
26443
26444 This option respects the value set for force_original_aspect_ratio,
26445 increasing or decreasing the resolution accordingly. The video's
26446 aspect ratio may be slightly modified.
26447
26448 This option can be handy if you need to have a video fit within or
26449 exceed a defined resolution using force_original_aspect_ratio but
26450 also have encoder restrictions on width or height divisibility.
26451
26452 The values of the w and h options are expressions containing the
26453 following constants:
26454
26455 in_w
26456 in_h
26457 The input width and height
26458
26459 iw
26460 ih These are the same as in_w and in_h.
26461
26462 out_w
26463 out_h
26464 The output (scaled) width and height
26465
26466 ow
26467 oh These are the same as out_w and out_h
26468
26469 a The same as iw / ih
26470
26471 sar input sample aspect ratio
26472
26473 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
26474
26475 hsub
26476 vsub
26477 horizontal and vertical input chroma subsample values. For example
26478 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
26479
26480 ohsub
26481 ovsub
26482 horizontal and vertical output chroma subsample values. For example
26483 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
26484
26485 n The (sequential) number of the input frame, starting from 0. Only
26486 available with "eval=frame".
26487
26488 t The presentation timestamp of the input frame, expressed as a
26489 number of seconds. Only available with "eval=frame".
26490
26491 pos The position (byte offset) of the frame in the input stream, or NaN
26492 if this information is unavailable and/or meaningless (for example
26493 in case of synthetic video). Only available with "eval=frame".
26494
26495 Examples
26496
26497 • Scale the input video to a size of 200x100
26498
26499 scale=w=200:h=100
26500
26501 This is equivalent to:
26502
26503 scale=200:100
26504
26505 or:
26506
26507 scale=200x100
26508
26509 • Specify a size abbreviation for the output size:
26510
26511 scale=qcif
26512
26513 which can also be written as:
26514
26515 scale=size=qcif
26516
26517 • Scale the input to 2x:
26518
26519 scale=w=2*iw:h=2*ih
26520
26521 • The above is the same as:
26522
26523 scale=2*in_w:2*in_h
26524
26525 • Scale the input to 2x with forced interlaced scaling:
26526
26527 scale=2*iw:2*ih:interl=1
26528
26529 • Scale the input to half size:
26530
26531 scale=w=iw/2:h=ih/2
26532
26533 • Increase the width, and set the height to the same size:
26534
26535 scale=3/2*iw:ow
26536
26537 • Seek Greek harmony:
26538
26539 scale=iw:1/PHI*iw
26540 scale=ih*PHI:ih
26541
26542 • Increase the height, and set the width to 3/2 of the height:
26543
26544 scale=w=3/2*oh:h=3/5*ih
26545
26546 • Increase the size, making the size a multiple of the chroma
26547 subsample values:
26548
26549 scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
26550
26551 • Increase the width to a maximum of 500 pixels, keeping the same
26552 aspect ratio as the input:
26553
26554 scale=w='min(500\, iw*3/2):h=-1'
26555
26556 • Make pixels square by combining scale and setsar:
26557
26558 scale='trunc(ih*dar):ih',setsar=1/1
26559
26560 • Make pixels square by combining scale and setsar, making sure the
26561 resulting resolution is even (required by some codecs):
26562
26563 scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
26564
26565 Commands
26566
26567 This filter supports the following commands:
26568
26569 width, w
26570 height, h
26571 Set the output video dimension expression. The command accepts the
26572 same syntax of the corresponding option.
26573
26574 If the specified expression is not valid, it is kept at its current
26575 value.
26576
26577 scale_cuda
26578 Scale (resize) and convert (pixel format) the input video, using
26579 accelerated CUDA kernels. Setting the output width and height works in
26580 the same way as for the scale filter.
26581
26582 The filter accepts the following options:
26583
26584 w
26585 h Set the output video dimension expression. Default value is the
26586 input dimension.
26587
26588 Allows for the same expressions as the scale filter.
26589
26590 interp_algo
26591 Sets the algorithm used for scaling:
26592
26593 nearest
26594 Nearest neighbour
26595
26596 Used by default if input parameters match the desired output.
26597
26598 bilinear
26599 Bilinear
26600
26601 bicubic
26602 Bicubic
26603
26604 This is the default.
26605
26606 lanczos
26607 Lanczos
26608
26609 format
26610 Controls the output pixel format. By default, or if none is
26611 specified, the input pixel format is used.
26612
26613 The filter does not support converting between YUV and RGB pixel
26614 formats.
26615
26616 passthrough
26617 If set to 0, every frame is processed, even if no conversion is
26618 neccesary. This mode can be useful to use the filter as a buffer
26619 for a downstream frame-consumer that exhausts the limited decoder
26620 frame pool.
26621
26622 If set to 1, frames are passed through as-is if they match the
26623 desired output parameters. This is the default behaviour.
26624
26625 param
26626 Algorithm-Specific parameter.
26627
26628 Affects the curves of the bicubic algorithm.
26629
26630 force_original_aspect_ratio
26631 force_divisible_by
26632 Work the same as the identical scale filter options.
26633
26634 Examples
26635
26636 • Scale input to 720p, keeping aspect ratio and ensuring the output
26637 is yuv420p.
26638
26639 scale_cuda=-2:720:format=yuv420p
26640
26641 • Upscale to 4K using nearest neighbour algorithm.
26642
26643 scale_cuda=4096:2160:interp_algo=nearest
26644
26645 • Don't do any conversion or scaling, but copy all input frames into
26646 newly allocated ones. This can be useful to deal with a filter and
26647 encode chain that otherwise exhausts the decoders frame pool.
26648
26649 scale_cuda=passthrough=0
26650
26651 scale_npp
26652 Use the NVIDIA Performance Primitives (libnpp) to perform scaling
26653 and/or pixel format conversion on CUDA video frames. Setting the output
26654 width and height works in the same way as for the scale filter.
26655
26656 The following additional options are accepted:
26657
26658 format
26659 The pixel format of the output CUDA frames. If set to the string
26660 "same" (the default), the input format will be kept. Note that
26661 automatic format negotiation and conversion is not yet supported
26662 for hardware frames
26663
26664 interp_algo
26665 The interpolation algorithm used for resizing. One of the
26666 following:
26667
26668 nn Nearest neighbour.
26669
26670 linear
26671 cubic
26672 cubic2p_bspline
26673 2-parameter cubic (B=1, C=0)
26674
26675 cubic2p_catmullrom
26676 2-parameter cubic (B=0, C=1/2)
26677
26678 cubic2p_b05c03
26679 2-parameter cubic (B=1/2, C=3/10)
26680
26681 super
26682 Supersampling
26683
26684 lanczos
26685 force_original_aspect_ratio
26686 Enable decreasing or increasing output video width or height if
26687 necessary to keep the original aspect ratio. Possible values:
26688
26689 disable
26690 Scale the video as specified and disable this feature.
26691
26692 decrease
26693 The output video dimensions will automatically be decreased if
26694 needed.
26695
26696 increase
26697 The output video dimensions will automatically be increased if
26698 needed.
26699
26700 One useful instance of this option is that when you know a specific
26701 device's maximum allowed resolution, you can use this to limit the
26702 output video to that, while retaining the aspect ratio. For
26703 example, device A allows 1280x720 playback, and your video is
26704 1920x800. Using this option (set it to decrease) and specifying
26705 1280x720 to the command line makes the output 1280x533.
26706
26707 Please note that this is a different thing than specifying -1 for w
26708 or h, you still need to specify the output resolution for this
26709 option to work.
26710
26711 force_divisible_by
26712 Ensures that both the output dimensions, width and height, are
26713 divisible by the given integer when used together with
26714 force_original_aspect_ratio. This works similar to using "-n" in
26715 the w and h options.
26716
26717 This option respects the value set for force_original_aspect_ratio,
26718 increasing or decreasing the resolution accordingly. The video's
26719 aspect ratio may be slightly modified.
26720
26721 This option can be handy if you need to have a video fit within or
26722 exceed a defined resolution using force_original_aspect_ratio but
26723 also have encoder restrictions on width or height divisibility.
26724
26725 eval
26726 Specify when to evaluate width and height expression. It accepts
26727 the following values:
26728
26729 init
26730 Only evaluate expressions once during the filter initialization
26731 or when a command is processed.
26732
26733 frame
26734 Evaluate expressions for each incoming frame.
26735
26736 The values of the w and h options are expressions containing the
26737 following constants:
26738
26739 in_w
26740 in_h
26741 The input width and height
26742
26743 iw
26744 ih These are the same as in_w and in_h.
26745
26746 out_w
26747 out_h
26748 The output (scaled) width and height
26749
26750 ow
26751 oh These are the same as out_w and out_h
26752
26753 a The same as iw / ih
26754
26755 sar input sample aspect ratio
26756
26757 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
26758
26759 n The (sequential) number of the input frame, starting from 0. Only
26760 available with "eval=frame".
26761
26762 t The presentation timestamp of the input frame, expressed as a
26763 number of seconds. Only available with "eval=frame".
26764
26765 pos The position (byte offset) of the frame in the input stream, or NaN
26766 if this information is unavailable and/or meaningless (for example
26767 in case of synthetic video). Only available with "eval=frame".
26768
26769 scale2ref
26770 Scale (resize) the input video, based on a reference video.
26771
26772 See the scale filter for available options, scale2ref supports the same
26773 but uses the reference video instead of the main input as basis.
26774 scale2ref also supports the following additional constants for the w
26775 and h options:
26776
26777 main_w
26778 main_h
26779 The main input video's width and height
26780
26781 main_a
26782 The same as main_w / main_h
26783
26784 main_sar
26785 The main input video's sample aspect ratio
26786
26787 main_dar, mdar
26788 The main input video's display aspect ratio. Calculated from
26789 "(main_w / main_h) * main_sar".
26790
26791 main_hsub
26792 main_vsub
26793 The main input video's horizontal and vertical chroma subsample
26794 values. For example for the pixel format "yuv422p" hsub is 2 and
26795 vsub is 1.
26796
26797 main_n
26798 The (sequential) number of the main input frame, starting from 0.
26799 Only available with "eval=frame".
26800
26801 main_t
26802 The presentation timestamp of the main input frame, expressed as a
26803 number of seconds. Only available with "eval=frame".
26804
26805 main_pos
26806 The position (byte offset) of the frame in the main input stream,
26807 or NaN if this information is unavailable and/or meaningless (for
26808 example in case of synthetic video). Only available with
26809 "eval=frame".
26810
26811 Examples
26812
26813 • Scale a subtitle stream (b) to match the main video (a) in size
26814 before overlaying
26815
26816 'scale2ref[b][a];[a][b]overlay'
26817
26818 • Scale a logo to 1/10th the height of a video, while preserving its
26819 display aspect ratio.
26820
26821 [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
26822
26823 Commands
26824
26825 This filter supports the following commands:
26826
26827 width, w
26828 height, h
26829 Set the output video dimension expression. The command accepts the
26830 same syntax of the corresponding option.
26831
26832 If the specified expression is not valid, it is kept at its current
26833 value.
26834
26835 scale2ref_npp
26836 Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
26837 input video, based on a reference video.
26838
26839 See the scale_npp filter for available options, scale2ref_npp supports
26840 the same but uses the reference video instead of the main input as
26841 basis. scale2ref_npp also supports the following additional constants
26842 for the w and h options:
26843
26844 main_w
26845 main_h
26846 The main input video's width and height
26847
26848 main_a
26849 The same as main_w / main_h
26850
26851 main_sar
26852 The main input video's sample aspect ratio
26853
26854 main_dar, mdar
26855 The main input video's display aspect ratio. Calculated from
26856 "(main_w / main_h) * main_sar".
26857
26858 main_n
26859 The (sequential) number of the main input frame, starting from 0.
26860 Only available with "eval=frame".
26861
26862 main_t
26863 The presentation timestamp of the main input frame, expressed as a
26864 number of seconds. Only available with "eval=frame".
26865
26866 main_pos
26867 The position (byte offset) of the frame in the main input stream,
26868 or NaN if this information is unavailable and/or meaningless (for
26869 example in case of synthetic video). Only available with
26870 "eval=frame".
26871
26872 Examples
26873
26874 • Scale a subtitle stream (b) to match the main video (a) in size
26875 before overlaying
26876
26877 'scale2ref_npp[b][a];[a][b]overlay_cuda'
26878
26879 • Scale a logo to 1/10th the height of a video, while preserving its
26880 display aspect ratio.
26881
26882 [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
26883
26884 scharr
26885 Apply scharr operator to input video stream.
26886
26887 The filter accepts the following option:
26888
26889 planes
26890 Set which planes will be processed, unprocessed planes will be
26891 copied. By default value 0xf, all planes will be processed.
26892
26893 scale
26894 Set value which will be multiplied with filtered result.
26895
26896 delta
26897 Set value which will be added to filtered result.
26898
26899 Commands
26900
26901 This filter supports the all above options as commands.
26902
26903 scroll
26904 Scroll input video horizontally and/or vertically by constant speed.
26905
26906 The filter accepts the following options:
26907
26908 horizontal, h
26909 Set the horizontal scrolling speed. Default is 0. Allowed range is
26910 from -1 to 1. Negative values changes scrolling direction.
26911
26912 vertical, v
26913 Set the vertical scrolling speed. Default is 0. Allowed range is
26914 from -1 to 1. Negative values changes scrolling direction.
26915
26916 hpos
26917 Set the initial horizontal scrolling position. Default is 0.
26918 Allowed range is from 0 to 1.
26919
26920 vpos
26921 Set the initial vertical scrolling position. Default is 0. Allowed
26922 range is from 0 to 1.
26923
26924 Commands
26925
26926 This filter supports the following commands:
26927
26928 horizontal, h
26929 Set the horizontal scrolling speed.
26930
26931 vertical, v
26932 Set the vertical scrolling speed.
26933
26934 scdet
26935 Detect video scene change.
26936
26937 This filter sets frame metadata with mafd between frame, the scene
26938 score, and forward the frame to the next filter, so they can use these
26939 metadata to detect scene change or others.
26940
26941 In addition, this filter logs a message and sets frame metadata when it
26942 detects a scene change by threshold.
26943
26944 "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
26945
26946 "lavfi.scd.score" metadata keys are set with scene change score for
26947 every frame to detect scene change.
26948
26949 "lavfi.scd.time" metadata keys are set with current filtered frame time
26950 which detect scene change with threshold.
26951
26952 The filter accepts the following options:
26953
26954 threshold, t
26955 Set the scene change detection threshold as a percentage of maximum
26956 change. Good values are in the "[8.0, 14.0]" range. The range for
26957 threshold is "[0., 100.]".
26958
26959 Default value is 10..
26960
26961 sc_pass, s
26962 Set the flag to pass scene change frames to the next filter.
26963 Default value is 0 You can enable it if you want to get snapshot of
26964 scene change frames only.
26965
26966 selectivecolor
26967 Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
26968 colors (such as "reds", "yellows", "greens", "cyans", ...). The
26969 adjustment range is defined by the "purity" of the color (that is, how
26970 saturated it already is).
26971
26972 This filter is similar to the Adobe Photoshop Selective Color tool.
26973
26974 The filter accepts the following options:
26975
26976 correction_method
26977 Select color correction method.
26978
26979 Available values are:
26980
26981 absolute
26982 Specified adjustments are applied "as-is" (added/subtracted to
26983 original pixel component value).
26984
26985 relative
26986 Specified adjustments are relative to the original component
26987 value.
26988
26989 Default is "absolute".
26990
26991 reds
26992 Adjustments for red pixels (pixels where the red component is the
26993 maximum)
26994
26995 yellows
26996 Adjustments for yellow pixels (pixels where the blue component is
26997 the minimum)
26998
26999 greens
27000 Adjustments for green pixels (pixels where the green component is
27001 the maximum)
27002
27003 cyans
27004 Adjustments for cyan pixels (pixels where the red component is the
27005 minimum)
27006
27007 blues
27008 Adjustments for blue pixels (pixels where the blue component is the
27009 maximum)
27010
27011 magentas
27012 Adjustments for magenta pixels (pixels where the green component is
27013 the minimum)
27014
27015 whites
27016 Adjustments for white pixels (pixels where all components are
27017 greater than 128)
27018
27019 neutrals
27020 Adjustments for all pixels except pure black and pure white
27021
27022 blacks
27023 Adjustments for black pixels (pixels where all components are
27024 lesser than 128)
27025
27026 psfile
27027 Specify a Photoshop selective color file (".asv") to import the
27028 settings from.
27029
27030 All the adjustment settings (reds, yellows, ...) accept up to 4 space
27031 separated floating point adjustment values in the [-1,1] range,
27032 respectively to adjust the amount of cyan, magenta, yellow and black
27033 for the pixels of its range.
27034
27035 Examples
27036
27037 • Increase cyan by 50% and reduce yellow by 33% in every green areas,
27038 and increase magenta by 27% in blue areas:
27039
27040 selectivecolor=greens=.5 0 -.33 0:blues=0 .27
27041
27042 • Use a Photoshop selective color preset:
27043
27044 selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
27045
27046 separatefields
27047 The "separatefields" takes a frame-based video input and splits each
27048 frame into its components fields, producing a new half height clip with
27049 twice the frame rate and twice the frame count.
27050
27051 This filter use field-dominance information in frame to decide which of
27052 each pair of fields to place first in the output. If it gets it wrong
27053 use setfield filter before "separatefields" filter.
27054
27055 setdar, setsar
27056 The "setdar" filter sets the Display Aspect Ratio for the filter output
27057 video.
27058
27059 This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
27060 according to the following equation:
27061
27062 <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
27063
27064 Keep in mind that the "setdar" filter does not modify the pixel
27065 dimensions of the video frame. Also, the display aspect ratio set by
27066 this filter may be changed by later filters in the filterchain, e.g. in
27067 case of scaling or if another "setdar" or a "setsar" filter is applied.
27068
27069 The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
27070 filter output video.
27071
27072 Note that as a consequence of the application of this filter, the
27073 output display aspect ratio will change according to the equation
27074 above.
27075
27076 Keep in mind that the sample aspect ratio set by the "setsar" filter
27077 may be changed by later filters in the filterchain, e.g. if another
27078 "setsar" or a "setdar" filter is applied.
27079
27080 It accepts the following parameters:
27081
27082 r, ratio, dar ("setdar" only), sar ("setsar" only)
27083 Set the aspect ratio used by the filter.
27084
27085 The parameter can be a floating point number string, an expression,
27086 or a string of the form num:den, where num and den are the
27087 numerator and denominator of the aspect ratio. If the parameter is
27088 not specified, it is assumed the value "0". In case the form
27089 "num:den" is used, the ":" character should be escaped.
27090
27091 max Set the maximum integer value to use for expressing numerator and
27092 denominator when reducing the expressed aspect ratio to a rational.
27093 Default value is 100.
27094
27095 The parameter sar is an expression containing the following constants:
27096
27097 E, PI, PHI
27098 These are approximated values for the mathematical constants e
27099 (Euler's number), pi (Greek pi), and phi (the golden ratio).
27100
27101 w, h
27102 The input width and height.
27103
27104 a These are the same as w / h.
27105
27106 sar The input sample aspect ratio.
27107
27108 dar The input display aspect ratio. It is the same as (w / h) * sar.
27109
27110 hsub, vsub
27111 Horizontal and vertical chroma subsample values. For example, for
27112 the pixel format "yuv422p" hsub is 2 and vsub is 1.
27113
27114 Examples
27115
27116 • To change the display aspect ratio to 16:9, specify one of the
27117 following:
27118
27119 setdar=dar=1.77777
27120 setdar=dar=16/9
27121
27122 • To change the sample aspect ratio to 10:11, specify:
27123
27124 setsar=sar=10/11
27125
27126 • To set a display aspect ratio of 16:9, and specify a maximum
27127 integer value of 1000 in the aspect ratio reduction, use the
27128 command:
27129
27130 setdar=ratio=16/9:max=1000
27131
27132 setfield
27133 Force field for the output video frame.
27134
27135 The "setfield" filter marks the interlace type field for the output
27136 frames. It does not change the input frame, but only sets the
27137 corresponding property, which affects how the frame is treated by
27138 following filters (e.g. "fieldorder" or "yadif").
27139
27140 The filter accepts the following options:
27141
27142 mode
27143 Available values are:
27144
27145 auto
27146 Keep the same field property.
27147
27148 bff Mark the frame as bottom-field-first.
27149
27150 tff Mark the frame as top-field-first.
27151
27152 prog
27153 Mark the frame as progressive.
27154
27155 setparams
27156 Force frame parameter for the output video frame.
27157
27158 The "setparams" filter marks interlace and color range for the output
27159 frames. It does not change the input frame, but only sets the
27160 corresponding property, which affects how the frame is treated by
27161 filters/encoders.
27162
27163 field_mode
27164 Available values are:
27165
27166 auto
27167 Keep the same field property (default).
27168
27169 bff Mark the frame as bottom-field-first.
27170
27171 tff Mark the frame as top-field-first.
27172
27173 prog
27174 Mark the frame as progressive.
27175
27176 range
27177 Available values are:
27178
27179 auto
27180 Keep the same color range property (default).
27181
27182 unspecified, unknown
27183 Mark the frame as unspecified color range.
27184
27185 limited, tv, mpeg
27186 Mark the frame as limited range.
27187
27188 full, pc, jpeg
27189 Mark the frame as full range.
27190
27191 color_primaries
27192 Set the color primaries. Available values are:
27193
27194 auto
27195 Keep the same color primaries property (default).
27196
27197 bt709
27198 unknown
27199 bt470m
27200 bt470bg
27201 smpte170m
27202 smpte240m
27203 film
27204 bt2020
27205 smpte428
27206 smpte431
27207 smpte432
27208 jedec-p22
27209 color_trc
27210 Set the color transfer. Available values are:
27211
27212 auto
27213 Keep the same color trc property (default).
27214
27215 bt709
27216 unknown
27217 bt470m
27218 bt470bg
27219 smpte170m
27220 smpte240m
27221 linear
27222 log100
27223 log316
27224 iec61966-2-4
27225 bt1361e
27226 iec61966-2-1
27227 bt2020-10
27228 bt2020-12
27229 smpte2084
27230 smpte428
27231 arib-std-b67
27232 colorspace
27233 Set the colorspace. Available values are:
27234
27235 auto
27236 Keep the same colorspace property (default).
27237
27238 gbr
27239 bt709
27240 unknown
27241 fcc
27242 bt470bg
27243 smpte170m
27244 smpte240m
27245 ycgco
27246 bt2020nc
27247 bt2020c
27248 smpte2085
27249 chroma-derived-nc
27250 chroma-derived-c
27251 ictcp
27252
27253 sharpen_npp
27254 Use the NVIDIA Performance Primitives (libnpp) to perform image
27255 sharpening with border control.
27256
27257 The following additional options are accepted:
27258
27259 border_type
27260 Type of sampling to be used ad frame borders. One of the following:
27261
27262 replicate
27263 Replicate pixel values.
27264
27265 shear
27266 Apply shear transform to input video.
27267
27268 This filter supports the following options:
27269
27270 shx Shear factor in X-direction. Default value is 0. Allowed range is
27271 from -2 to 2.
27272
27273 shy Shear factor in Y-direction. Default value is 0. Allowed range is
27274 from -2 to 2.
27275
27276 fillcolor, c
27277 Set the color used to fill the output area not covered by the
27278 transformed video. For the general syntax of this option, check the
27279 "Color" section in the ffmpeg-utils manual. If the special value
27280 "none" is selected then no background is printed (useful for
27281 example if the background is never shown).
27282
27283 Default value is "black".
27284
27285 interp
27286 Set interpolation type. Can be "bilinear" or "nearest". Default is
27287 "bilinear".
27288
27289 Commands
27290
27291 This filter supports the all above options as commands.
27292
27293 showinfo
27294 Show a line containing various information for each input video frame.
27295 The input video is not modified.
27296
27297 This filter supports the following options:
27298
27299 checksum
27300 Calculate checksums of each plane. By default enabled.
27301
27302 The shown line contains a sequence of key/value pairs of the form
27303 key:value.
27304
27305 The following values are shown in the output:
27306
27307 n The (sequential) number of the input frame, starting from 0.
27308
27309 pts The Presentation TimeStamp of the input frame, expressed as a
27310 number of time base units. The time base unit depends on the filter
27311 input pad.
27312
27313 pts_time
27314 The Presentation TimeStamp of the input frame, expressed as a
27315 number of seconds.
27316
27317 pos The position of the frame in the input stream, or -1 if this
27318 information is unavailable and/or meaningless (for example in case
27319 of synthetic video).
27320
27321 fmt The pixel format name.
27322
27323 sar The sample aspect ratio of the input frame, expressed in the form
27324 num/den.
27325
27326 s The size of the input frame. For the syntax of this option, check
27327 the "Video size" section in the ffmpeg-utils manual.
27328
27329 i The type of interlaced mode ("P" for "progressive", "T" for top
27330 field first, "B" for bottom field first).
27331
27332 iskey
27333 This is 1 if the frame is a key frame, 0 otherwise.
27334
27335 type
27336 The picture type of the input frame ("I" for an I-frame, "P" for a
27337 P-frame, "B" for a B-frame, or "?" for an unknown type). Also
27338 refer to the documentation of the "AVPictureType" enum and of the
27339 "av_get_picture_type_char" function defined in libavutil/avutil.h.
27340
27341 checksum
27342 The Adler-32 checksum (printed in hexadecimal) of all the planes of
27343 the input frame.
27344
27345 plane_checksum
27346 The Adler-32 checksum (printed in hexadecimal) of each plane of the
27347 input frame, expressed in the form "[c0 c1 c2 c3]".
27348
27349 mean
27350 The mean value of pixels in each plane of the input frame,
27351 expressed in the form "[mean0 mean1 mean2 mean3]".
27352
27353 stdev
27354 The standard deviation of pixel values in each plane of the input
27355 frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
27356
27357 showpalette
27358 Displays the 256 colors palette of each frame. This filter is only
27359 relevant for pal8 pixel format frames.
27360
27361 It accepts the following option:
27362
27363 s Set the size of the box used to represent one palette color entry.
27364 Default is 30 (for a "30x30" pixel box).
27365
27366 shuffleframes
27367 Reorder and/or duplicate and/or drop video frames.
27368
27369 It accepts the following parameters:
27370
27371 mapping
27372 Set the destination indexes of input frames. This is space or '|'
27373 separated list of indexes that maps input frames to output frames.
27374 Number of indexes also sets maximal value that each index may have.
27375 '-1' index have special meaning and that is to drop frame.
27376
27377 The first frame has the index 0. The default is to keep the input
27378 unchanged.
27379
27380 Examples
27381
27382 • Swap second and third frame of every three frames of the input:
27383
27384 ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
27385
27386 • Swap 10th and 1st frame of every ten frames of the input:
27387
27388 ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
27389
27390 shufflepixels
27391 Reorder pixels in video frames.
27392
27393 This filter accepts the following options:
27394
27395 direction, d
27396 Set shuffle direction. Can be forward or inverse direction.
27397 Default direction is forward.
27398
27399 mode, m
27400 Set shuffle mode. Can be horizontal, vertical or block mode.
27401
27402 width, w
27403 height, h
27404 Set shuffle block_size. In case of horizontal shuffle mode only
27405 width part of size is used, and in case of vertical shuffle mode
27406 only height part of size is used.
27407
27408 seed, s
27409 Set random seed used with shuffling pixels. Mainly useful to set to
27410 be able to reverse filtering process to get original input. For
27411 example, to reverse forward shuffle you need to use same parameters
27412 and exact same seed and to set direction to inverse.
27413
27414 shuffleplanes
27415 Reorder and/or duplicate video planes.
27416
27417 It accepts the following parameters:
27418
27419 map0
27420 The index of the input plane to be used as the first output plane.
27421
27422 map1
27423 The index of the input plane to be used as the second output plane.
27424
27425 map2
27426 The index of the input plane to be used as the third output plane.
27427
27428 map3
27429 The index of the input plane to be used as the fourth output plane.
27430
27431 The first plane has the index 0. The default is to keep the input
27432 unchanged.
27433
27434 Examples
27435
27436 • Swap the second and third planes of the input:
27437
27438 ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
27439
27440 signalstats
27441 Evaluate various visual metrics that assist in determining issues
27442 associated with the digitization of analog video media.
27443
27444 By default the filter will log these metadata values:
27445
27446 YMIN
27447 Display the minimal Y value contained within the input frame.
27448 Expressed in range of [0-255].
27449
27450 YLOW
27451 Display the Y value at the 10% percentile within the input frame.
27452 Expressed in range of [0-255].
27453
27454 YAVG
27455 Display the average Y value within the input frame. Expressed in
27456 range of [0-255].
27457
27458 YHIGH
27459 Display the Y value at the 90% percentile within the input frame.
27460 Expressed in range of [0-255].
27461
27462 YMAX
27463 Display the maximum Y value contained within the input frame.
27464 Expressed in range of [0-255].
27465
27466 UMIN
27467 Display the minimal U value contained within the input frame.
27468 Expressed in range of [0-255].
27469
27470 ULOW
27471 Display the U value at the 10% percentile within the input frame.
27472 Expressed in range of [0-255].
27473
27474 UAVG
27475 Display the average U value within the input frame. Expressed in
27476 range of [0-255].
27477
27478 UHIGH
27479 Display the U value at the 90% percentile within the input frame.
27480 Expressed in range of [0-255].
27481
27482 UMAX
27483 Display the maximum U value contained within the input frame.
27484 Expressed in range of [0-255].
27485
27486 VMIN
27487 Display the minimal V value contained within the input frame.
27488 Expressed in range of [0-255].
27489
27490 VLOW
27491 Display the V value at the 10% percentile within the input frame.
27492 Expressed in range of [0-255].
27493
27494 VAVG
27495 Display the average V value within the input frame. Expressed in
27496 range of [0-255].
27497
27498 VHIGH
27499 Display the V value at the 90% percentile within the input frame.
27500 Expressed in range of [0-255].
27501
27502 VMAX
27503 Display the maximum V value contained within the input frame.
27504 Expressed in range of [0-255].
27505
27506 SATMIN
27507 Display the minimal saturation value contained within the input
27508 frame. Expressed in range of [0-~181.02].
27509
27510 SATLOW
27511 Display the saturation value at the 10% percentile within the input
27512 frame. Expressed in range of [0-~181.02].
27513
27514 SATAVG
27515 Display the average saturation value within the input frame.
27516 Expressed in range of [0-~181.02].
27517
27518 SATHIGH
27519 Display the saturation value at the 90% percentile within the input
27520 frame. Expressed in range of [0-~181.02].
27521
27522 SATMAX
27523 Display the maximum saturation value contained within the input
27524 frame. Expressed in range of [0-~181.02].
27525
27526 HUEMED
27527 Display the median value for hue within the input frame. Expressed
27528 in range of [0-360].
27529
27530 HUEAVG
27531 Display the average value for hue within the input frame. Expressed
27532 in range of [0-360].
27533
27534 YDIF
27535 Display the average of sample value difference between all values
27536 of the Y plane in the current frame and corresponding values of the
27537 previous input frame. Expressed in range of [0-255].
27538
27539 UDIF
27540 Display the average of sample value difference between all values
27541 of the U plane in the current frame and corresponding values of the
27542 previous input frame. Expressed in range of [0-255].
27543
27544 VDIF
27545 Display the average of sample value difference between all values
27546 of the V plane in the current frame and corresponding values of the
27547 previous input frame. Expressed in range of [0-255].
27548
27549 YBITDEPTH
27550 Display bit depth of Y plane in current frame. Expressed in range
27551 of [0-16].
27552
27553 UBITDEPTH
27554 Display bit depth of U plane in current frame. Expressed in range
27555 of [0-16].
27556
27557 VBITDEPTH
27558 Display bit depth of V plane in current frame. Expressed in range
27559 of [0-16].
27560
27561 The filter accepts the following options:
27562
27563 stat
27564 out stat specify an additional form of image analysis. out output
27565 video with the specified type of pixel highlighted.
27566
27567 Both options accept the following values:
27568
27569 tout
27570 Identify temporal outliers pixels. A temporal outlier is a
27571 pixel unlike the neighboring pixels of the same field. Examples
27572 of temporal outliers include the results of video dropouts,
27573 head clogs, or tape tracking issues.
27574
27575 vrep
27576 Identify vertical line repetition. Vertical line repetition
27577 includes similar rows of pixels within a frame. In born-digital
27578 video vertical line repetition is common, but this pattern is
27579 uncommon in video digitized from an analog source. When it
27580 occurs in video that results from the digitization of an analog
27581 source it can indicate concealment from a dropout compensator.
27582
27583 brng
27584 Identify pixels that fall outside of legal broadcast range.
27585
27586 color, c
27587 Set the highlight color for the out option. The default color is
27588 yellow.
27589
27590 Examples
27591
27592 • Output data of various video metrics:
27593
27594 ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
27595
27596 • Output specific data about the minimum and maximum values of the Y
27597 plane per frame:
27598
27599 ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
27600
27601 • Playback video while highlighting pixels that are outside of
27602 broadcast range in red.
27603
27604 ffplay example.mov -vf signalstats="out=brng:color=red"
27605
27606 • Playback video with signalstats metadata drawn over the frame.
27607
27608 ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
27609
27610 The contents of signalstat_drawtext.txt used in the command are:
27611
27612 time %{pts:hms}
27613 Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
27614 U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
27615 V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
27616 saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
27617
27618 signature
27619 Calculates the MPEG-7 Video Signature. The filter can handle more than
27620 one input. In this case the matching between the inputs can be
27621 calculated additionally. The filter always passes through the first
27622 input. The signature of each stream can be written into a file.
27623
27624 It accepts the following options:
27625
27626 detectmode
27627 Enable or disable the matching process.
27628
27629 Available values are:
27630
27631 off Disable the calculation of a matching (default).
27632
27633 full
27634 Calculate the matching for the whole video and output whether
27635 the whole video matches or only parts.
27636
27637 fast
27638 Calculate only until a matching is found or the video ends.
27639 Should be faster in some cases.
27640
27641 nb_inputs
27642 Set the number of inputs. The option value must be a non negative
27643 integer. Default value is 1.
27644
27645 filename
27646 Set the path to which the output is written. If there is more than
27647 one input, the path must be a prototype, i.e. must contain %d or
27648 %0nd (where n is a positive integer), that will be replaced with
27649 the input number. If no filename is specified, no output will be
27650 written. This is the default.
27651
27652 format
27653 Choose the output format.
27654
27655 Available values are:
27656
27657 binary
27658 Use the specified binary representation (default).
27659
27660 xml Use the specified xml representation.
27661
27662 th_d
27663 Set threshold to detect one word as similar. The option value must
27664 be an integer greater than zero. The default value is 9000.
27665
27666 th_dc
27667 Set threshold to detect all words as similar. The option value must
27668 be an integer greater than zero. The default value is 60000.
27669
27670 th_xh
27671 Set threshold to detect frames as similar. The option value must be
27672 an integer greater than zero. The default value is 116.
27673
27674 th_di
27675 Set the minimum length of a sequence in frames to recognize it as
27676 matching sequence. The option value must be a non negative integer
27677 value. The default value is 0.
27678
27679 th_it
27680 Set the minimum relation, that matching frames to all frames must
27681 have. The option value must be a double value between 0 and 1. The
27682 default value is 0.5.
27683
27684 Examples
27685
27686 • To calculate the signature of an input video and store it in
27687 signature.bin:
27688
27689 ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
27690
27691 • To detect whether two videos match and store the signatures in XML
27692 format in signature0.xml and signature1.xml:
27693
27694 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 -
27695
27696 siti
27697 Calculate Spatial Info (SI) and Temporal Info (TI) scores for a video,
27698 as defined in ITU-T P.910: Subjective video quality assessment methods
27699 for multimedia applications. Available PDF at
27700 <https://www.itu.int/rec/T-REC-P.910-199909-S/en >.
27701
27702 It accepts the following option:
27703
27704 print_summary
27705 If set to 1, Summary statistics will be printed to the console.
27706 Default 0.
27707
27708 Examples
27709
27710 • To calculate SI/TI metrics and print summary:
27711
27712 ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
27713
27714 smartblur
27715 Blur the input video without impacting the outlines.
27716
27717 It accepts the following options:
27718
27719 luma_radius, lr
27720 Set the luma radius. The option value must be a float number in the
27721 range [0.1,5.0] that specifies the variance of the gaussian filter
27722 used to blur the image (slower if larger). Default value is 1.0.
27723
27724 luma_strength, ls
27725 Set the luma strength. The option value must be a float number in
27726 the range [-1.0,1.0] that configures the blurring. A value included
27727 in [0.0,1.0] will blur the image whereas a value included in
27728 [-1.0,0.0] will sharpen the image. Default value is 1.0.
27729
27730 luma_threshold, lt
27731 Set the luma threshold used as a coefficient to determine whether a
27732 pixel should be blurred or not. The option value must be an integer
27733 in the range [-30,30]. A value of 0 will filter all the image, a
27734 value included in [0,30] will filter flat areas and a value
27735 included in [-30,0] will filter edges. Default value is 0.
27736
27737 chroma_radius, cr
27738 Set the chroma radius. The option value must be a float number in
27739 the range [0.1,5.0] that specifies the variance of the gaussian
27740 filter used to blur the image (slower if larger). Default value is
27741 luma_radius.
27742
27743 chroma_strength, cs
27744 Set the chroma strength. The option value must be a float number in
27745 the range [-1.0,1.0] that configures the blurring. A value included
27746 in [0.0,1.0] will blur the image whereas a value included in
27747 [-1.0,0.0] will sharpen the image. Default value is luma_strength.
27748
27749 chroma_threshold, ct
27750 Set the chroma threshold used as a coefficient to determine whether
27751 a pixel should be blurred or not. The option value must be an
27752 integer in the range [-30,30]. A value of 0 will filter all the
27753 image, a value included in [0,30] will filter flat areas and a
27754 value included in [-30,0] will filter edges. Default value is
27755 luma_threshold.
27756
27757 If a chroma option is not explicitly set, the corresponding luma value
27758 is set.
27759
27760 sobel
27761 Apply sobel operator to input video stream.
27762
27763 The filter accepts the following option:
27764
27765 planes
27766 Set which planes will be processed, unprocessed planes will be
27767 copied. By default value 0xf, all planes will be processed.
27768
27769 scale
27770 Set value which will be multiplied with filtered result.
27771
27772 delta
27773 Set value which will be added to filtered result.
27774
27775 Commands
27776
27777 This filter supports the all above options as commands.
27778
27779 spp
27780 Apply a simple postprocessing filter that compresses and decompresses
27781 the image at several (or - in the case of quality level 6 - all) shifts
27782 and average the results.
27783
27784 The filter accepts the following options:
27785
27786 quality
27787 Set quality. This option defines the number of levels for
27788 averaging. It accepts an integer in the range 0-6. If set to 0, the
27789 filter will have no effect. A value of 6 means the higher quality.
27790 For each increment of that value the speed drops by a factor of
27791 approximately 2. Default value is 3.
27792
27793 qp Force a constant quantization parameter. If not set, the filter
27794 will use the QP from the video stream (if available).
27795
27796 mode
27797 Set thresholding mode. Available modes are:
27798
27799 hard
27800 Set hard thresholding (default).
27801
27802 soft
27803 Set soft thresholding (better de-ringing effect, but likely
27804 blurrier).
27805
27806 use_bframe_qp
27807 Enable the use of the QP from the B-Frames if set to 1. Using this
27808 option may cause flicker since the B-Frames have often larger QP.
27809 Default is 0 (not enabled).
27810
27811 Commands
27812
27813 This filter supports the following commands:
27814
27815 quality, level
27816 Set quality level. The value "max" can be used to set the maximum
27817 level, currently 6.
27818
27819 sr
27820 Scale the input by applying one of the super-resolution methods based
27821 on convolutional neural networks. Supported models:
27822
27823 • Super-Resolution Convolutional Neural Network model (SRCNN). See
27824 <https://arxiv.org/abs/1501.00092>.
27825
27826 • Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
27827 See <https://arxiv.org/abs/1609.05158>.
27828
27829 Training scripts as well as scripts for model file (.pb) saving can be
27830 found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
27831 Original repository is at
27832 <https://github.com/HighVoltageRocknRoll/sr.git>.
27833
27834 Native model files (.model) can be generated from TensorFlow model
27835 files (.pb) by using tools/python/convert.py
27836
27837 The filter accepts the following options:
27838
27839 dnn_backend
27840 Specify which DNN backend to use for model loading and execution.
27841 This option accepts the following values:
27842
27843 native
27844 Native implementation of DNN loading and execution.
27845
27846 tensorflow
27847 TensorFlow backend. To enable this backend you need to install
27848 the TensorFlow for C library (see
27849 <https://www.tensorflow.org/install/lang_c>) and configure
27850 FFmpeg with "--enable-libtensorflow"
27851
27852 Default value is native.
27853
27854 model
27855 Set path to model file specifying network architecture and its
27856 parameters. Note that different backends use different file
27857 formats. TensorFlow backend can load files for both formats, while
27858 native backend can load files for only its format.
27859
27860 scale_factor
27861 Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
27862 Default value is 2. Scale factor is necessary for SRCNN model,
27863 because it accepts input upscaled using bicubic upscaling with
27864 proper scale factor.
27865
27866 To get full functionality (such as async execution), please use the
27867 dnn_processing filter.
27868
27869 ssim
27870 Obtain the SSIM (Structural SImilarity Metric) between two input
27871 videos.
27872
27873 This filter takes in input two input videos, the first input is
27874 considered the "main" source and is passed unchanged to the output. The
27875 second input is used as a "reference" video for computing the SSIM.
27876
27877 Both video inputs must have the same resolution and pixel format for
27878 this filter to work correctly. Also it assumes that both inputs have
27879 the same number of frames, which are compared one by one.
27880
27881 The filter stores the calculated SSIM of each frame.
27882
27883 The description of the accepted parameters follows.
27884
27885 stats_file, f
27886 If specified the filter will use the named file to save the SSIM of
27887 each individual frame. When filename equals "-" the data is sent to
27888 standard output.
27889
27890 The file printed if stats_file is selected, contains a sequence of
27891 key/value pairs of the form key:value for each compared couple of
27892 frames.
27893
27894 A description of each shown parameter follows:
27895
27896 n sequential number of the input frame, starting from 1
27897
27898 Y, U, V, R, G, B
27899 SSIM of the compared frames for the component specified by the
27900 suffix.
27901
27902 All SSIM of the compared frames for the whole frame.
27903
27904 dB Same as above but in dB representation.
27905
27906 This filter also supports the framesync options.
27907
27908 Examples
27909
27910 • For example:
27911
27912 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
27913 [main][ref] ssim="stats_file=stats.log" [out]
27914
27915 On this example the input file being processed is compared with the
27916 reference file ref_movie.mpg. The SSIM of each individual frame is
27917 stored in stats.log.
27918
27919 • Another example with both psnr and ssim at same time:
27920
27921 ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null -
27922
27923 • Another example with different containers:
27924
27925 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 -
27926
27927 stereo3d
27928 Convert between different stereoscopic image formats.
27929
27930 The filters accept the following options:
27931
27932 in Set stereoscopic image format of input.
27933
27934 Available values for input image formats are:
27935
27936 sbsl
27937 side by side parallel (left eye left, right eye right)
27938
27939 sbsr
27940 side by side crosseye (right eye left, left eye right)
27941
27942 sbs2l
27943 side by side parallel with half width resolution (left eye
27944 left, right eye right)
27945
27946 sbs2r
27947 side by side crosseye with half width resolution (right eye
27948 left, left eye right)
27949
27950 abl
27951 tbl above-below (left eye above, right eye below)
27952
27953 abr
27954 tbr above-below (right eye above, left eye below)
27955
27956 ab2l
27957 tb2l
27958 above-below with half height resolution (left eye above, right
27959 eye below)
27960
27961 ab2r
27962 tb2r
27963 above-below with half height resolution (right eye above, left
27964 eye below)
27965
27966 al alternating frames (left eye first, right eye second)
27967
27968 ar alternating frames (right eye first, left eye second)
27969
27970 irl interleaved rows (left eye has top row, right eye starts on
27971 next row)
27972
27973 irr interleaved rows (right eye has top row, left eye starts on
27974 next row)
27975
27976 icl interleaved columns, left eye first
27977
27978 icr interleaved columns, right eye first
27979
27980 Default value is sbsl.
27981
27982 out Set stereoscopic image format of output.
27983
27984 sbsl
27985 side by side parallel (left eye left, right eye right)
27986
27987 sbsr
27988 side by side crosseye (right eye left, left eye right)
27989
27990 sbs2l
27991 side by side parallel with half width resolution (left eye
27992 left, right eye right)
27993
27994 sbs2r
27995 side by side crosseye with half width resolution (right eye
27996 left, left eye right)
27997
27998 abl
27999 tbl above-below (left eye above, right eye below)
28000
28001 abr
28002 tbr above-below (right eye above, left eye below)
28003
28004 ab2l
28005 tb2l
28006 above-below with half height resolution (left eye above, right
28007 eye below)
28008
28009 ab2r
28010 tb2r
28011 above-below with half height resolution (right eye above, left
28012 eye below)
28013
28014 al alternating frames (left eye first, right eye second)
28015
28016 ar alternating frames (right eye first, left eye second)
28017
28018 irl interleaved rows (left eye has top row, right eye starts on
28019 next row)
28020
28021 irr interleaved rows (right eye has top row, left eye starts on
28022 next row)
28023
28024 arbg
28025 anaglyph red/blue gray (red filter on left eye, blue filter on
28026 right eye)
28027
28028 argg
28029 anaglyph red/green gray (red filter on left eye, green filter
28030 on right eye)
28031
28032 arcg
28033 anaglyph red/cyan gray (red filter on left eye, cyan filter on
28034 right eye)
28035
28036 arch
28037 anaglyph red/cyan half colored (red filter on left eye, cyan
28038 filter on right eye)
28039
28040 arcc
28041 anaglyph red/cyan color (red filter on left eye, cyan filter on
28042 right eye)
28043
28044 arcd
28045 anaglyph red/cyan color optimized with the least squares
28046 projection of dubois (red filter on left eye, cyan filter on
28047 right eye)
28048
28049 agmg
28050 anaglyph green/magenta gray (green filter on left eye, magenta
28051 filter on right eye)
28052
28053 agmh
28054 anaglyph green/magenta half colored (green filter on left eye,
28055 magenta filter on right eye)
28056
28057 agmc
28058 anaglyph green/magenta colored (green filter on left eye,
28059 magenta filter on right eye)
28060
28061 agmd
28062 anaglyph green/magenta color optimized with the least squares
28063 projection of dubois (green filter on left eye, magenta filter
28064 on right eye)
28065
28066 aybg
28067 anaglyph yellow/blue gray (yellow filter on left eye, blue
28068 filter on right eye)
28069
28070 aybh
28071 anaglyph yellow/blue half colored (yellow filter on left eye,
28072 blue filter on right eye)
28073
28074 aybc
28075 anaglyph yellow/blue colored (yellow filter on left eye, blue
28076 filter on right eye)
28077
28078 aybd
28079 anaglyph yellow/blue color optimized with the least squares
28080 projection of dubois (yellow filter on left eye, blue filter on
28081 right eye)
28082
28083 ml mono output (left eye only)
28084
28085 mr mono output (right eye only)
28086
28087 chl checkerboard, left eye first
28088
28089 chr checkerboard, right eye first
28090
28091 icl interleaved columns, left eye first
28092
28093 icr interleaved columns, right eye first
28094
28095 hdmi
28096 HDMI frame pack
28097
28098 Default value is arcd.
28099
28100 Examples
28101
28102 • Convert input video from side by side parallel to anaglyph
28103 yellow/blue dubois:
28104
28105 stereo3d=sbsl:aybd
28106
28107 • Convert input video from above below (left eye above, right eye
28108 below) to side by side crosseye.
28109
28110 stereo3d=abl:sbsr
28111
28112 streamselect, astreamselect
28113 Select video or audio streams.
28114
28115 The filter accepts the following options:
28116
28117 inputs
28118 Set number of inputs. Default is 2.
28119
28120 map Set input indexes to remap to outputs.
28121
28122 Commands
28123
28124 The "streamselect" and "astreamselect" filter supports the following
28125 commands:
28126
28127 map Set input indexes to remap to outputs.
28128
28129 Examples
28130
28131 • Select first 5 seconds 1st stream and rest of time 2nd stream:
28132
28133 sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
28134
28135 • Same as above, but for audio:
28136
28137 asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
28138
28139 subtitles
28140 Draw subtitles on top of input video using the libass library.
28141
28142 To enable compilation of this filter you need to configure FFmpeg with
28143 "--enable-libass". This filter also requires a build with libavcodec
28144 and libavformat to convert the passed subtitles file to ASS (Advanced
28145 Substation Alpha) subtitles format.
28146
28147 The filter accepts the following options:
28148
28149 filename, f
28150 Set the filename of the subtitle file to read. It must be
28151 specified.
28152
28153 original_size
28154 Specify the size of the original video, the video for which the ASS
28155 file was composed. For the syntax of this option, check the "Video
28156 size" section in the ffmpeg-utils manual. Due to a misdesign in
28157 ASS aspect ratio arithmetic, this is necessary to correctly scale
28158 the fonts if the aspect ratio has been changed.
28159
28160 fontsdir
28161 Set a directory path containing fonts that can be used by the
28162 filter. These fonts will be used in addition to whatever the font
28163 provider uses.
28164
28165 alpha
28166 Process alpha channel, by default alpha channel is untouched.
28167
28168 charenc
28169 Set subtitles input character encoding. "subtitles" filter only.
28170 Only useful if not UTF-8.
28171
28172 stream_index, si
28173 Set subtitles stream index. "subtitles" filter only.
28174
28175 force_style
28176 Override default style or script info parameters of the subtitles.
28177 It accepts a string containing ASS style format "KEY=VALUE" couples
28178 separated by ",".
28179
28180 If the first key is not specified, it is assumed that the first value
28181 specifies the filename.
28182
28183 For example, to render the file sub.srt on top of the input video, use
28184 the command:
28185
28186 subtitles=sub.srt
28187
28188 which is equivalent to:
28189
28190 subtitles=filename=sub.srt
28191
28192 To render the default subtitles stream from file video.mkv, use:
28193
28194 subtitles=video.mkv
28195
28196 To render the second subtitles stream from that file, use:
28197
28198 subtitles=video.mkv:si=1
28199
28200 To make the subtitles stream from sub.srt appear in 80% transparent
28201 blue "DejaVu Serif", use:
28202
28203 subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
28204
28205 super2xsai
28206 Scale the input by 2x and smooth using the Super2xSaI (Scale and
28207 Interpolate) pixel art scaling algorithm.
28208
28209 Useful for enlarging pixel art images without reducing sharpness.
28210
28211 swaprect
28212 Swap two rectangular objects in video.
28213
28214 This filter accepts the following options:
28215
28216 w Set object width.
28217
28218 h Set object height.
28219
28220 x1 Set 1st rect x coordinate.
28221
28222 y1 Set 1st rect y coordinate.
28223
28224 x2 Set 2nd rect x coordinate.
28225
28226 y2 Set 2nd rect y coordinate.
28227
28228 All expressions are evaluated once for each frame.
28229
28230 The all options are expressions containing the following constants:
28231
28232 w
28233 h The input width and height.
28234
28235 a same as w / h
28236
28237 sar input sample aspect ratio
28238
28239 dar input display aspect ratio, it is the same as (w / h) * sar
28240
28241 n The number of the input frame, starting from 0.
28242
28243 t The timestamp expressed in seconds. It's NAN if the input timestamp
28244 is unknown.
28245
28246 pos the position in the file of the input frame, NAN if unknown
28247
28248 Commands
28249
28250 This filter supports the all above options as commands.
28251
28252 swapuv
28253 Swap U & V plane.
28254
28255 tblend
28256 Blend successive video frames.
28257
28258 See blend
28259
28260 telecine
28261 Apply telecine process to the video.
28262
28263 This filter accepts the following options:
28264
28265 first_field
28266 top, t
28267 top field first
28268
28269 bottom, b
28270 bottom field first The default value is "top".
28271
28272 pattern
28273 A string of numbers representing the pulldown pattern you wish to
28274 apply. The default value is 23.
28275
28276 Some typical patterns:
28277
28278 NTSC output (30i):
28279 27.5p: 32222
28280 24p: 23 (classic)
28281 24p: 2332 (preferred)
28282 20p: 33
28283 18p: 334
28284 16p: 3444
28285
28286 PAL output (25i):
28287 27.5p: 12222
28288 24p: 222222222223 ("Euro pulldown")
28289 16.67p: 33
28290 16p: 33333334
28291
28292 thistogram
28293 Compute and draw a color distribution histogram for the input video
28294 across time.
28295
28296 Unlike histogram video filter which only shows histogram of single
28297 input frame at certain time, this filter shows also past histograms of
28298 number of frames defined by "width" option.
28299
28300 The computed histogram is a representation of the color component
28301 distribution in an image.
28302
28303 The filter accepts the following options:
28304
28305 width, w
28306 Set width of single color component output. Default value is 0.
28307 Value of 0 means width will be picked from input video. This also
28308 set number of passed histograms to keep. Allowed range is [0,
28309 8192].
28310
28311 display_mode, d
28312 Set display mode. It accepts the following values:
28313
28314 stack
28315 Per color component graphs are placed below each other.
28316
28317 parade
28318 Per color component graphs are placed side by side.
28319
28320 overlay
28321 Presents information identical to that in the "parade", except
28322 that the graphs representing color components are superimposed
28323 directly over one another.
28324
28325 Default is "stack".
28326
28327 levels_mode, m
28328 Set mode. Can be either "linear", or "logarithmic". Default is
28329 "linear".
28330
28331 components, c
28332 Set what color components to display. Default is 7.
28333
28334 bgopacity, b
28335 Set background opacity. Default is 0.9.
28336
28337 envelope, e
28338 Show envelope. Default is disabled.
28339
28340 ecolor, ec
28341 Set envelope color. Default is "gold".
28342
28343 slide
28344 Set slide mode.
28345
28346 Available values for slide is:
28347
28348 frame
28349 Draw new frame when right border is reached.
28350
28351 replace
28352 Replace old columns with new ones.
28353
28354 scroll
28355 Scroll from right to left.
28356
28357 rscroll
28358 Scroll from left to right.
28359
28360 picture
28361 Draw single picture.
28362
28363 Default is "replace".
28364
28365 threshold
28366 Apply threshold effect to video stream.
28367
28368 This filter needs four video streams to perform thresholding. First
28369 stream is stream we are filtering. Second stream is holding threshold
28370 values, third stream is holding min values, and last, fourth stream is
28371 holding max values.
28372
28373 The filter accepts the following option:
28374
28375 planes
28376 Set which planes will be processed, unprocessed planes will be
28377 copied. By default value 0xf, all planes will be processed.
28378
28379 For example if first stream pixel's component value is less then
28380 threshold value of pixel component from 2nd threshold stream, third
28381 stream value will picked, otherwise fourth stream pixel component value
28382 will be picked.
28383
28384 Using color source filter one can perform various types of
28385 thresholding:
28386
28387 Commands
28388
28389 This filter supports the all options as commands.
28390
28391 Examples
28392
28393 • Binary threshold, using gray color as threshold:
28394
28395 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
28396
28397 • Inverted binary threshold, using gray color as threshold:
28398
28399 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
28400
28401 • Truncate binary threshold, using gray color as threshold:
28402
28403 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
28404
28405 • Threshold to zero, using gray color as threshold:
28406
28407 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
28408
28409 • Inverted threshold to zero, using gray color as threshold:
28410
28411 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
28412
28413 thumbnail
28414 Select the most representative frame in a given sequence of consecutive
28415 frames.
28416
28417 The filter accepts the following options:
28418
28419 n Set the frames batch size to analyze; in a set of n frames, the
28420 filter will pick one of them, and then handle the next batch of n
28421 frames until the end. Default is 100.
28422
28423 Since the filter keeps track of the whole frames sequence, a bigger n
28424 value will result in a higher memory usage, so a high value is not
28425 recommended.
28426
28427 Examples
28428
28429 • Extract one picture each 50 frames:
28430
28431 thumbnail=50
28432
28433 • Complete example of a thumbnail creation with ffmpeg:
28434
28435 ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
28436
28437 tile
28438 Tile several successive frames together.
28439
28440 The untile filter can do the reverse.
28441
28442 The filter accepts the following options:
28443
28444 layout
28445 Set the grid size in the form "COLUMNSxROWS". Range is upto
28446 UINT_MAX cells. Default is "6x5".
28447
28448 nb_frames
28449 Set the maximum number of frames to render in the given area. It
28450 must be less than or equal to wxh. The default value is 0, meaning
28451 all the area will be used.
28452
28453 margin
28454 Set the outer border margin in pixels. Range is 0 to 1024. Default
28455 is 0.
28456
28457 padding
28458 Set the inner border thickness (i.e. the number of pixels between
28459 frames). For more advanced padding options (such as having
28460 different values for the edges), refer to the pad video filter.
28461 Range is 0 to 1024. Default is 0.
28462
28463 color
28464 Specify the color of the unused area. For the syntax of this
28465 option, check the "Color" section in the ffmpeg-utils manual. The
28466 default value of color is "black".
28467
28468 overlap
28469 Set the number of frames to overlap when tiling several successive
28470 frames together. The value must be between 0 and nb_frames - 1.
28471 Default is 0.
28472
28473 init_padding
28474 Set the number of frames to initially be empty before displaying
28475 first output frame. This controls how soon will one get first
28476 output frame. The value must be between 0 and nb_frames - 1.
28477 Default is 0.
28478
28479 Examples
28480
28481 • Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
28482 movie:
28483
28484 ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
28485
28486 The -vsync 0 is necessary to prevent ffmpeg from duplicating each
28487 output frame to accommodate the originally detected frame rate.
28488
28489 • Display 5 pictures in an area of "3x2" frames, with 7 pixels
28490 between them, and 2 pixels of initial margin, using mixed flat and
28491 named options:
28492
28493 tile=3x2:nb_frames=5:padding=7:margin=2
28494
28495 tinterlace
28496 Perform various types of temporal field interlacing.
28497
28498 Frames are counted starting from 1, so the first input frame is
28499 considered odd.
28500
28501 The filter accepts the following options:
28502
28503 mode
28504 Specify the mode of the interlacing. This option can also be
28505 specified as a value alone. See below for a list of values for this
28506 option.
28507
28508 Available values are:
28509
28510 merge, 0
28511 Move odd frames into the upper field, even into the lower
28512 field, generating a double height frame at half frame rate.
28513
28514 ------> time
28515 Input:
28516 Frame 1 Frame 2 Frame 3 Frame 4
28517
28518 11111 22222 33333 44444
28519 11111 22222 33333 44444
28520 11111 22222 33333 44444
28521 11111 22222 33333 44444
28522
28523 Output:
28524 11111 33333
28525 22222 44444
28526 11111 33333
28527 22222 44444
28528 11111 33333
28529 22222 44444
28530 11111 33333
28531 22222 44444
28532
28533 drop_even, 1
28534 Only output odd frames, even frames are dropped, generating a
28535 frame with unchanged height at half frame rate.
28536
28537 ------> time
28538 Input:
28539 Frame 1 Frame 2 Frame 3 Frame 4
28540
28541 11111 22222 33333 44444
28542 11111 22222 33333 44444
28543 11111 22222 33333 44444
28544 11111 22222 33333 44444
28545
28546 Output:
28547 11111 33333
28548 11111 33333
28549 11111 33333
28550 11111 33333
28551
28552 drop_odd, 2
28553 Only output even frames, odd frames are dropped, generating a
28554 frame with unchanged height at half frame rate.
28555
28556 ------> time
28557 Input:
28558 Frame 1 Frame 2 Frame 3 Frame 4
28559
28560 11111 22222 33333 44444
28561 11111 22222 33333 44444
28562 11111 22222 33333 44444
28563 11111 22222 33333 44444
28564
28565 Output:
28566 22222 44444
28567 22222 44444
28568 22222 44444
28569 22222 44444
28570
28571 pad, 3
28572 Expand each frame to full height, but pad alternate lines with
28573 black, generating a frame with double height at the same input
28574 frame rate.
28575
28576 ------> time
28577 Input:
28578 Frame 1 Frame 2 Frame 3 Frame 4
28579
28580 11111 22222 33333 44444
28581 11111 22222 33333 44444
28582 11111 22222 33333 44444
28583 11111 22222 33333 44444
28584
28585 Output:
28586 11111 ..... 33333 .....
28587 ..... 22222 ..... 44444
28588 11111 ..... 33333 .....
28589 ..... 22222 ..... 44444
28590 11111 ..... 33333 .....
28591 ..... 22222 ..... 44444
28592 11111 ..... 33333 .....
28593 ..... 22222 ..... 44444
28594
28595 interleave_top, 4
28596 Interleave the upper field from odd frames with the lower field
28597 from even frames, generating a frame with unchanged height at
28598 half frame rate.
28599
28600 ------> time
28601 Input:
28602 Frame 1 Frame 2 Frame 3 Frame 4
28603
28604 11111<- 22222 33333<- 44444
28605 11111 22222<- 33333 44444<-
28606 11111<- 22222 33333<- 44444
28607 11111 22222<- 33333 44444<-
28608
28609 Output:
28610 11111 33333
28611 22222 44444
28612 11111 33333
28613 22222 44444
28614
28615 interleave_bottom, 5
28616 Interleave the lower field from odd frames with the upper field
28617 from even frames, generating a frame with unchanged height at
28618 half frame rate.
28619
28620 ------> time
28621 Input:
28622 Frame 1 Frame 2 Frame 3 Frame 4
28623
28624 11111 22222<- 33333 44444<-
28625 11111<- 22222 33333<- 44444
28626 11111 22222<- 33333 44444<-
28627 11111<- 22222 33333<- 44444
28628
28629 Output:
28630 22222 44444
28631 11111 33333
28632 22222 44444
28633 11111 33333
28634
28635 interlacex2, 6
28636 Double frame rate with unchanged height. Frames are inserted
28637 each containing the second temporal field from the previous
28638 input frame and the first temporal field from the next input
28639 frame. This mode relies on the top_field_first flag. Useful for
28640 interlaced video displays with no field synchronisation.
28641
28642 ------> time
28643 Input:
28644 Frame 1 Frame 2 Frame 3 Frame 4
28645
28646 11111 22222 33333 44444
28647 11111 22222 33333 44444
28648 11111 22222 33333 44444
28649 11111 22222 33333 44444
28650
28651 Output:
28652 11111 22222 22222 33333 33333 44444 44444
28653 11111 11111 22222 22222 33333 33333 44444
28654 11111 22222 22222 33333 33333 44444 44444
28655 11111 11111 22222 22222 33333 33333 44444
28656
28657 mergex2, 7
28658 Move odd frames into the upper field, even into the lower
28659 field, generating a double height frame at same frame rate.
28660
28661 ------> time
28662 Input:
28663 Frame 1 Frame 2 Frame 3 Frame 4
28664
28665 11111 22222 33333 44444
28666 11111 22222 33333 44444
28667 11111 22222 33333 44444
28668 11111 22222 33333 44444
28669
28670 Output:
28671 11111 33333 33333 55555
28672 22222 22222 44444 44444
28673 11111 33333 33333 55555
28674 22222 22222 44444 44444
28675 11111 33333 33333 55555
28676 22222 22222 44444 44444
28677 11111 33333 33333 55555
28678 22222 22222 44444 44444
28679
28680 Numeric values are deprecated but are accepted for backward
28681 compatibility reasons.
28682
28683 Default mode is "merge".
28684
28685 flags
28686 Specify flags influencing the filter process.
28687
28688 Available value for flags is:
28689
28690 low_pass_filter, vlpf
28691 Enable linear vertical low-pass filtering in the filter.
28692 Vertical low-pass filtering is required when creating an
28693 interlaced destination from a progressive source which contains
28694 high-frequency vertical detail. Filtering will reduce interlace
28695 'twitter' and Moire patterning.
28696
28697 complex_filter, cvlpf
28698 Enable complex vertical low-pass filtering. This will slightly
28699 less reduce interlace 'twitter' and Moire patterning but better
28700 retain detail and subjective sharpness impression.
28701
28702 bypass_il
28703 Bypass already interlaced frames, only adjust the frame rate.
28704
28705 Vertical low-pass filtering and bypassing already interlaced frames
28706 can only be enabled for mode interleave_top and interleave_bottom.
28707
28708 tmedian
28709 Pick median pixels from several successive input video frames.
28710
28711 The filter accepts the following options:
28712
28713 radius
28714 Set radius of median filter. Default is 1. Allowed range is from 1
28715 to 127.
28716
28717 planes
28718 Set which planes to filter. Default value is 15, by which all
28719 planes are processed.
28720
28721 percentile
28722 Set median percentile. Default value is 0.5. Default value of 0.5
28723 will pick always median values, while 0 will pick minimum values,
28724 and 1 maximum values.
28725
28726 Commands
28727
28728 This filter supports all above options as commands, excluding option
28729 "radius".
28730
28731 tmidequalizer
28732 Apply Temporal Midway Video Equalization effect.
28733
28734 Midway Video Equalization adjusts a sequence of video frames to have
28735 the same histograms, while maintaining their dynamics as much as
28736 possible. It's useful for e.g. matching exposures from a video frames
28737 sequence.
28738
28739 This filter accepts the following option:
28740
28741 radius
28742 Set filtering radius. Default is 5. Allowed range is from 1 to 127.
28743
28744 sigma
28745 Set filtering sigma. Default is 0.5. This controls strength of
28746 filtering. Setting this option to 0 effectively does nothing.
28747
28748 planes
28749 Set which planes to process. Default is 15, which is all available
28750 planes.
28751
28752 tmix
28753 Mix successive video frames.
28754
28755 A description of the accepted options follows.
28756
28757 frames
28758 The number of successive frames to mix. If unspecified, it defaults
28759 to 3.
28760
28761 weights
28762 Specify weight of each input video frame. Each weight is separated
28763 by space. If number of weights is smaller than number of frames
28764 last specified weight will be used for all remaining unset weights.
28765
28766 scale
28767 Specify scale, if it is set it will be multiplied with sum of each
28768 weight multiplied with pixel values to give final destination pixel
28769 value. By default scale is auto scaled to sum of weights.
28770
28771 planes
28772 Set which planes to filter. Default is all. Allowed range is from 0
28773 to 15.
28774
28775 Examples
28776
28777 • Average 7 successive frames:
28778
28779 tmix=frames=7:weights="1 1 1 1 1 1 1"
28780
28781 • Apply simple temporal convolution:
28782
28783 tmix=frames=3:weights="-1 3 -1"
28784
28785 • Similar as above but only showing temporal differences:
28786
28787 tmix=frames=3:weights="-1 2 -1":scale=1
28788
28789 Commands
28790
28791 This filter supports the following commands:
28792
28793 weights
28794 scale
28795 planes
28796 Syntax is same as option with same name.
28797
28798 tonemap
28799 Tone map colors from different dynamic ranges.
28800
28801 This filter expects data in single precision floating point, as it
28802 needs to operate on (and can output) out-of-range values. Another
28803 filter, such as zscale, is needed to convert the resulting frame to a
28804 usable format.
28805
28806 The tonemapping algorithms implemented only work on linear light, so
28807 input data should be linearized beforehand (and possibly correctly
28808 tagged).
28809
28810 ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
28811
28812 Options
28813
28814 The filter accepts the following options.
28815
28816 tonemap
28817 Set the tone map algorithm to use.
28818
28819 Possible values are:
28820
28821 none
28822 Do not apply any tone map, only desaturate overbright pixels.
28823
28824 clip
28825 Hard-clip any out-of-range values. Use it for perfect color
28826 accuracy for in-range values, while distorting out-of-range
28827 values.
28828
28829 linear
28830 Stretch the entire reference gamut to a linear multiple of the
28831 display.
28832
28833 gamma
28834 Fit a logarithmic transfer between the tone curves.
28835
28836 reinhard
28837 Preserve overall image brightness with a simple curve, using
28838 nonlinear contrast, which results in flattening details and
28839 degrading color accuracy.
28840
28841 hable
28842 Preserve both dark and bright details better than reinhard, at
28843 the cost of slightly darkening everything. Use it when detail
28844 preservation is more important than color and brightness
28845 accuracy.
28846
28847 mobius
28848 Smoothly map out-of-range values, while retaining contrast and
28849 colors for in-range material as much as possible. Use it when
28850 color accuracy is more important than detail preservation.
28851
28852 Default is none.
28853
28854 param
28855 Tune the tone mapping algorithm.
28856
28857 This affects the following algorithms:
28858
28859 none
28860 Ignored.
28861
28862 linear
28863 Specifies the scale factor to use while stretching. Default to
28864 1.0.
28865
28866 gamma
28867 Specifies the exponent of the function. Default to 1.8.
28868
28869 clip
28870 Specify an extra linear coefficient to multiply into the signal
28871 before clipping. Default to 1.0.
28872
28873 reinhard
28874 Specify the local contrast coefficient at the display peak.
28875 Default to 0.5, which means that in-gamut values will be about
28876 half as bright as when clipping.
28877
28878 hable
28879 Ignored.
28880
28881 mobius
28882 Specify the transition point from linear to mobius transform.
28883 Every value below this point is guaranteed to be mapped 1:1.
28884 The higher the value, the more accurate the result will be, at
28885 the cost of losing bright details. Default to 0.3, which due
28886 to the steep initial slope still preserves in-range colors
28887 fairly accurately.
28888
28889 desat
28890 Apply desaturation for highlights that exceed this level of
28891 brightness. The higher the parameter, the more color information
28892 will be preserved. This setting helps prevent unnaturally blown-out
28893 colors for super-highlights, by (smoothly) turning into white
28894 instead. This makes images feel more natural, at the cost of
28895 reducing information about out-of-range colors.
28896
28897 The default of 2.0 is somewhat conservative and will mostly just
28898 apply to skies or directly sunlit surfaces. A setting of 0.0
28899 disables this option.
28900
28901 This option works only if the input frame has a supported color
28902 tag.
28903
28904 peak
28905 Override signal/nominal/reference peak with this value. Useful when
28906 the embedded peak information in display metadata is not reliable
28907 or when tone mapping from a lower range to a higher range.
28908
28909 tpad
28910 Temporarily pad video frames.
28911
28912 The filter accepts the following options:
28913
28914 start
28915 Specify number of delay frames before input video stream. Default
28916 is 0.
28917
28918 stop
28919 Specify number of padding frames after input video stream. Set to
28920 -1 to pad indefinitely. Default is 0.
28921
28922 start_mode
28923 Set kind of frames added to beginning of stream. Can be either add
28924 or clone. With add frames of solid-color are added. With clone
28925 frames are clones of first frame. Default is add.
28926
28927 stop_mode
28928 Set kind of frames added to end of stream. Can be either add or
28929 clone. With add frames of solid-color are added. With clone
28930 frames are clones of last frame. Default is add.
28931
28932 start_duration, stop_duration
28933 Specify the duration of the start/stop delay. See the Time duration
28934 section in the ffmpeg-utils(1) manual for the accepted syntax.
28935 These options override start and stop. Default is 0.
28936
28937 color
28938 Specify the color of the padded area. For the syntax of this
28939 option, check the "Color" section in the ffmpeg-utils manual.
28940
28941 The default value of color is "black".
28942
28943 transpose
28944 Transpose rows with columns in the input video and optionally flip it.
28945
28946 It accepts the following parameters:
28947
28948 dir Specify the transposition direction.
28949
28950 Can assume the following values:
28951
28952 0, 4, cclock_flip
28953 Rotate by 90 degrees counterclockwise and vertically flip
28954 (default), that is:
28955
28956 L.R L.l
28957 . . -> . .
28958 l.r R.r
28959
28960 1, 5, clock
28961 Rotate by 90 degrees clockwise, that is:
28962
28963 L.R l.L
28964 . . -> . .
28965 l.r r.R
28966
28967 2, 6, cclock
28968 Rotate by 90 degrees counterclockwise, that is:
28969
28970 L.R R.r
28971 . . -> . .
28972 l.r L.l
28973
28974 3, 7, clock_flip
28975 Rotate by 90 degrees clockwise and vertically flip, that is:
28976
28977 L.R r.R
28978 . . -> . .
28979 l.r l.L
28980
28981 For values between 4-7, the transposition is only done if the input
28982 video geometry is portrait and not landscape. These values are
28983 deprecated, the "passthrough" option should be used instead.
28984
28985 Numerical values are deprecated, and should be dropped in favor of
28986 symbolic constants.
28987
28988 passthrough
28989 Do not apply the transposition if the input geometry matches the
28990 one specified by the specified value. It accepts the following
28991 values:
28992
28993 none
28994 Always apply transposition.
28995
28996 portrait
28997 Preserve portrait geometry (when height >= width).
28998
28999 landscape
29000 Preserve landscape geometry (when width >= height).
29001
29002 Default value is "none".
29003
29004 For example to rotate by 90 degrees clockwise and preserve portrait
29005 layout:
29006
29007 transpose=dir=1:passthrough=portrait
29008
29009 The command above can also be specified as:
29010
29011 transpose=1:portrait
29012
29013 transpose_npp
29014 Transpose rows with columns in the input video and optionally flip it.
29015 For more in depth examples see the transpose video filter, which shares
29016 mostly the same options.
29017
29018 It accepts the following parameters:
29019
29020 dir Specify the transposition direction.
29021
29022 Can assume the following values:
29023
29024 cclock_flip
29025 Rotate by 90 degrees counterclockwise and vertically flip.
29026 (default)
29027
29028 clock
29029 Rotate by 90 degrees clockwise.
29030
29031 cclock
29032 Rotate by 90 degrees counterclockwise.
29033
29034 clock_flip
29035 Rotate by 90 degrees clockwise and vertically flip.
29036
29037 passthrough
29038 Do not apply the transposition if the input geometry matches the
29039 one specified by the specified value. It accepts the following
29040 values:
29041
29042 none
29043 Always apply transposition. (default)
29044
29045 portrait
29046 Preserve portrait geometry (when height >= width).
29047
29048 landscape
29049 Preserve landscape geometry (when width >= height).
29050
29051 trim
29052 Trim the input so that the output contains one continuous subpart of
29053 the input.
29054
29055 It accepts the following parameters:
29056
29057 start
29058 Specify the time of the start of the kept section, i.e. the frame
29059 with the timestamp start will be the first frame in the output.
29060
29061 end Specify the time of the first frame that will be dropped, i.e. the
29062 frame immediately preceding the one with the timestamp end will be
29063 the last frame in the output.
29064
29065 start_pts
29066 This is the same as start, except this option sets the start
29067 timestamp in timebase units instead of seconds.
29068
29069 end_pts
29070 This is the same as end, except this option sets the end timestamp
29071 in timebase units instead of seconds.
29072
29073 duration
29074 The maximum duration of the output in seconds.
29075
29076 start_frame
29077 The number of the first frame that should be passed to the output.
29078
29079 end_frame
29080 The number of the first frame that should be dropped.
29081
29082 start, end, and duration are expressed as time duration specifications;
29083 see the Time duration section in the ffmpeg-utils(1) manual for the
29084 accepted syntax.
29085
29086 Note that the first two sets of the start/end options and the duration
29087 option look at the frame timestamp, while the _frame variants simply
29088 count the frames that pass through the filter. Also note that this
29089 filter does not modify the timestamps. If you wish for the output
29090 timestamps to start at zero, insert a setpts filter after the trim
29091 filter.
29092
29093 If multiple start or end options are set, this filter tries to be
29094 greedy and keep all the frames that match at least one of the specified
29095 constraints. To keep only the part that matches all the constraints at
29096 once, chain multiple trim filters.
29097
29098 The defaults are such that all the input is kept. So it is possible to
29099 set e.g. just the end values to keep everything before the specified
29100 time.
29101
29102 Examples:
29103
29104 • Drop everything except the second minute of input:
29105
29106 ffmpeg -i INPUT -vf trim=60:120
29107
29108 • Keep only the first second:
29109
29110 ffmpeg -i INPUT -vf trim=duration=1
29111
29112 unpremultiply
29113 Apply alpha unpremultiply effect to input video stream using first
29114 plane of second stream as alpha.
29115
29116 Both streams must have same dimensions and same pixel format.
29117
29118 The filter accepts the following option:
29119
29120 planes
29121 Set which planes will be processed, unprocessed planes will be
29122 copied. By default value 0xf, all planes will be processed.
29123
29124 If the format has 1 or 2 components, then luma is bit 0. If the
29125 format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
29126 is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
29127 chroma-U and bit 2 is chroma-V. If present, the alpha channel is
29128 always the last bit.
29129
29130 inplace
29131 Do not require 2nd input for processing, instead use alpha plane
29132 from input stream.
29133
29134 unsharp
29135 Sharpen or blur the input video.
29136
29137 It accepts the following parameters:
29138
29139 luma_msize_x, lx
29140 Set the luma matrix horizontal size. It must be an odd integer
29141 between 3 and 23. The default value is 5.
29142
29143 luma_msize_y, ly
29144 Set the luma matrix vertical size. It must be an odd integer
29145 between 3 and 23. The default value is 5.
29146
29147 luma_amount, la
29148 Set the luma effect strength. It must be a floating point number,
29149 reasonable values lay between -1.5 and 1.5.
29150
29151 Negative values will blur the input video, while positive values
29152 will sharpen it, a value of zero will disable the effect.
29153
29154 Default value is 1.0.
29155
29156 chroma_msize_x, cx
29157 Set the chroma matrix horizontal size. It must be an odd integer
29158 between 3 and 23. The default value is 5.
29159
29160 chroma_msize_y, cy
29161 Set the chroma matrix vertical size. It must be an odd integer
29162 between 3 and 23. The default value is 5.
29163
29164 chroma_amount, ca
29165 Set the chroma effect strength. It must be a floating point number,
29166 reasonable values lay between -1.5 and 1.5.
29167
29168 Negative values will blur the input video, while positive values
29169 will sharpen it, a value of zero will disable the effect.
29170
29171 Default value is 0.0.
29172
29173 alpha_msize_x, ax
29174 Set the alpha matrix horizontal size. It must be an odd integer
29175 between 3 and 23. The default value is 5.
29176
29177 alpha_msize_y, ay
29178 Set the alpha matrix vertical size. It must be an odd integer
29179 between 3 and 23. The default value is 5.
29180
29181 alpha_amount, aa
29182 Set the alpha effect strength. It must be a floating point number,
29183 reasonable values lay between -1.5 and 1.5.
29184
29185 Negative values will blur the input video, while positive values
29186 will sharpen it, a value of zero will disable the effect.
29187
29188 Default value is 0.0.
29189
29190 All parameters are optional and default to the equivalent of the string
29191 '5:5:1.0:5:5:0.0'.
29192
29193 Examples
29194
29195 • Apply strong luma sharpen effect:
29196
29197 unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
29198
29199 • Apply a strong blur of both luma and chroma parameters:
29200
29201 unsharp=7:7:-2:7:7:-2
29202
29203 untile
29204 Decompose a video made of tiled images into the individual images.
29205
29206 The frame rate of the output video is the frame rate of the input video
29207 multiplied by the number of tiles.
29208
29209 This filter does the reverse of tile.
29210
29211 The filter accepts the following options:
29212
29213 layout
29214 Set the grid size (i.e. the number of lines and columns). For the
29215 syntax of this option, check the "Video size" section in the
29216 ffmpeg-utils manual.
29217
29218 Examples
29219
29220 • Produce a 1-second video from a still image file made of 25 frames
29221 stacked vertically, like an analogic film reel:
29222
29223 ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
29224
29225 uspp
29226 Apply ultra slow/simple postprocessing filter that compresses and
29227 decompresses the image at several (or - in the case of quality level 8
29228 - all) shifts and average the results.
29229
29230 The way this differs from the behavior of spp is that uspp actually
29231 encodes & decodes each case with libavcodec Snow, whereas spp uses a
29232 simplified intra only 8x8 DCT similar to MJPEG.
29233
29234 This filter is only available in ffmpeg version 4.4 or earlier.
29235
29236 The filter accepts the following options:
29237
29238 quality
29239 Set quality. This option defines the number of levels for
29240 averaging. It accepts an integer in the range 0-8. If set to 0, the
29241 filter will have no effect. A value of 8 means the higher quality.
29242 For each increment of that value the speed drops by a factor of
29243 approximately 2. Default value is 3.
29244
29245 qp Force a constant quantization parameter. If not set, the filter
29246 will use the QP from the video stream (if available).
29247
29248 v360
29249 Convert 360 videos between various formats.
29250
29251 The filter accepts the following options:
29252
29253 input
29254 output
29255 Set format of the input/output video.
29256
29257 Available formats:
29258
29259 e
29260 equirect
29261 Equirectangular projection.
29262
29263 c3x2
29264 c6x1
29265 c1x6
29266 Cubemap with 3x2/6x1/1x6 layout.
29267
29268 Format specific options:
29269
29270 in_pad
29271 out_pad
29272 Set padding proportion for the input/output cubemap. Values
29273 in decimals.
29274
29275 Example values:
29276
29277 0 No padding.
29278
29279 0.01
29280 1% of face is padding. For example, with 1920x1280
29281 resolution face size would be 640x640 and padding would
29282 be 3 pixels from each side. (640 * 0.01 = 6 pixels)
29283
29284 Default value is @samp{0}. Maximum value is @samp{0.1}.
29285
29286 fin_pad
29287 fout_pad
29288 Set fixed padding for the input/output cubemap. Values in
29289 pixels.
29290
29291 Default value is @samp{0}. If greater than zero it
29292 overrides other padding options.
29293
29294 in_forder
29295 out_forder
29296 Set order of faces for the input/output cubemap. Choose one
29297 direction for each position.
29298
29299 Designation of directions:
29300
29301 r right
29302
29303 l left
29304
29305 u up
29306
29307 d down
29308
29309 f forward
29310
29311 b back
29312
29313 Default value is @samp{rludfb}.
29314
29315 in_frot
29316 out_frot
29317 Set rotation of faces for the input/output cubemap. Choose
29318 one angle for each position.
29319
29320 Designation of angles:
29321
29322 0 0 degrees clockwise
29323
29324 1 90 degrees clockwise
29325
29326 2 180 degrees clockwise
29327
29328 3 270 degrees clockwise
29329
29330 Default value is @samp{000000}.
29331
29332 eac Equi-Angular Cubemap.
29333
29334 flat
29335 gnomonic
29336 rectilinear
29337 Regular video.
29338
29339 Format specific options:
29340
29341 h_fov
29342 v_fov
29343 d_fov
29344 Set output horizontal/vertical/diagonal field of view.
29345 Values in degrees.
29346
29347 If diagonal field of view is set it overrides horizontal
29348 and vertical field of view.
29349
29350 ih_fov
29351 iv_fov
29352 id_fov
29353 Set input horizontal/vertical/diagonal field of view.
29354 Values in degrees.
29355
29356 If diagonal field of view is set it overrides horizontal
29357 and vertical field of view.
29358
29359 dfisheye
29360 Dual fisheye.
29361
29362 Format specific options:
29363
29364 h_fov
29365 v_fov
29366 d_fov
29367 Set output horizontal/vertical/diagonal field of view.
29368 Values in degrees.
29369
29370 If diagonal field of view is set it overrides horizontal
29371 and vertical field of view.
29372
29373 ih_fov
29374 iv_fov
29375 id_fov
29376 Set input horizontal/vertical/diagonal field of view.
29377 Values in degrees.
29378
29379 If diagonal field of view is set it overrides horizontal
29380 and vertical field of view.
29381
29382 barrel
29383 fb
29384 barrelsplit
29385 Facebook's 360 formats.
29386
29387 sg Stereographic format.
29388
29389 Format specific options:
29390
29391 h_fov
29392 v_fov
29393 d_fov
29394 Set output horizontal/vertical/diagonal field of view.
29395 Values in degrees.
29396
29397 If diagonal field of view is set it overrides horizontal
29398 and vertical field of view.
29399
29400 ih_fov
29401 iv_fov
29402 id_fov
29403 Set input horizontal/vertical/diagonal field of view.
29404 Values in degrees.
29405
29406 If diagonal field of view is set it overrides horizontal
29407 and vertical field of view.
29408
29409 mercator
29410 Mercator format.
29411
29412 ball
29413 Ball format, gives significant distortion toward the back.
29414
29415 hammer
29416 Hammer-Aitoff map projection format.
29417
29418 sinusoidal
29419 Sinusoidal map projection format.
29420
29421 fisheye
29422 Fisheye projection.
29423
29424 Format specific options:
29425
29426 h_fov
29427 v_fov
29428 d_fov
29429 Set output horizontal/vertical/diagonal field of view.
29430 Values in degrees.
29431
29432 If diagonal field of view is set it overrides horizontal
29433 and vertical field of view.
29434
29435 ih_fov
29436 iv_fov
29437 id_fov
29438 Set input horizontal/vertical/diagonal field of view.
29439 Values in degrees.
29440
29441 If diagonal field of view is set it overrides horizontal
29442 and vertical field of view.
29443
29444 pannini
29445 Pannini projection.
29446
29447 Format specific options:
29448
29449 h_fov
29450 Set output pannini parameter.
29451
29452 ih_fov
29453 Set input pannini parameter.
29454
29455 cylindrical
29456 Cylindrical projection.
29457
29458 Format specific options:
29459
29460 h_fov
29461 v_fov
29462 d_fov
29463 Set output horizontal/vertical/diagonal field of view.
29464 Values in degrees.
29465
29466 If diagonal field of view is set it overrides horizontal
29467 and vertical field of view.
29468
29469 ih_fov
29470 iv_fov
29471 id_fov
29472 Set input horizontal/vertical/diagonal field of view.
29473 Values in degrees.
29474
29475 If diagonal field of view is set it overrides horizontal
29476 and vertical field of view.
29477
29478 perspective
29479 Perspective projection. (output only)
29480
29481 Format specific options:
29482
29483 v_fov
29484 Set perspective parameter.
29485
29486 tetrahedron
29487 Tetrahedron projection.
29488
29489 tsp Truncated square pyramid projection.
29490
29491 he
29492 hequirect
29493 Half equirectangular projection.
29494
29495 equisolid
29496 Equisolid format.
29497
29498 Format specific options:
29499
29500 h_fov
29501 v_fov
29502 d_fov
29503 Set output horizontal/vertical/diagonal field of view.
29504 Values in degrees.
29505
29506 If diagonal field of view is set it overrides horizontal
29507 and vertical field of view.
29508
29509 ih_fov
29510 iv_fov
29511 id_fov
29512 Set input horizontal/vertical/diagonal field of view.
29513 Values in degrees.
29514
29515 If diagonal field of view is set it overrides horizontal
29516 and vertical field of view.
29517
29518 og Orthographic format.
29519
29520 Format specific options:
29521
29522 h_fov
29523 v_fov
29524 d_fov
29525 Set output horizontal/vertical/diagonal field of view.
29526 Values in degrees.
29527
29528 If diagonal field of view is set it overrides horizontal
29529 and vertical field of view.
29530
29531 ih_fov
29532 iv_fov
29533 id_fov
29534 Set input horizontal/vertical/diagonal field of view.
29535 Values in degrees.
29536
29537 If diagonal field of view is set it overrides horizontal
29538 and vertical field of view.
29539
29540 octahedron
29541 Octahedron projection.
29542
29543 cylindricalea
29544 Cylindrical Equal Area projection.
29545
29546 interp
29547 Set interpolation method.Note: more complex interpolation methods
29548 require much more memory to run.
29549
29550 Available methods:
29551
29552 near
29553 nearest
29554 Nearest neighbour.
29555
29556 line
29557 linear
29558 Bilinear interpolation.
29559
29560 lagrange9
29561 Lagrange9 interpolation.
29562
29563 cube
29564 cubic
29565 Bicubic interpolation.
29566
29567 lanc
29568 lanczos
29569 Lanczos interpolation.
29570
29571 sp16
29572 spline16
29573 Spline16 interpolation.
29574
29575 gauss
29576 gaussian
29577 Gaussian interpolation.
29578
29579 mitchell
29580 Mitchell interpolation.
29581
29582 Default value is @samp{line}.
29583
29584 w
29585 h Set the output video resolution.
29586
29587 Default resolution depends on formats.
29588
29589 in_stereo
29590 out_stereo
29591 Set the input/output stereo format.
29592
29593 2d 2D mono
29594
29595 sbs Side by side
29596
29597 tb Top bottom
29598
29599 Default value is @samp{2d} for input and output format.
29600
29601 yaw
29602 pitch
29603 roll
29604 Set rotation for the output video. Values in degrees.
29605
29606 rorder
29607 Set rotation order for the output video. Choose one item for each
29608 position.
29609
29610 y, Y
29611 yaw
29612
29613 p, P
29614 pitch
29615
29616 r, R
29617 roll
29618
29619 Default value is @samp{ypr}.
29620
29621 h_flip
29622 v_flip
29623 d_flip
29624 Flip the output video horizontally(swaps
29625 left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
29626 Boolean values.
29627
29628 ih_flip
29629 iv_flip
29630 Set if input video is flipped horizontally/vertically. Boolean
29631 values.
29632
29633 in_trans
29634 Set if input video is transposed. Boolean value, by default
29635 disabled.
29636
29637 out_trans
29638 Set if output video needs to be transposed. Boolean value, by
29639 default disabled.
29640
29641 h_offset
29642 v_offset
29643 Set output horizontal/vertical off-axis offset. Default is set to
29644 0. Allowed range is from -1 to 1.
29645
29646 alpha_mask
29647 Build mask in alpha plane for all unmapped pixels by marking them
29648 fully transparent. Boolean value, by default disabled.
29649
29650 reset_rot
29651 Reset rotation of output video. Boolean value, by default disabled.
29652
29653 Examples
29654
29655 • Convert equirectangular video to cubemap with 3x2 layout and 1%
29656 padding using bicubic interpolation:
29657
29658 ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
29659
29660 • Extract back view of Equi-Angular Cubemap:
29661
29662 ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
29663
29664 • Convert transposed and horizontally flipped Equi-Angular Cubemap in
29665 side-by-side stereo format to equirectangular top-bottom stereo
29666 format:
29667
29668 v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
29669
29670 Commands
29671
29672 This filter supports subset of above options as commands.
29673
29674 vaguedenoiser
29675 Apply a wavelet based denoiser.
29676
29677 It transforms each frame from the video input into the wavelet domain,
29678 using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
29679 the obtained coefficients. It does an inverse wavelet transform after.
29680 Due to wavelet properties, it should give a nice smoothed result, and
29681 reduced noise, without blurring picture features.
29682
29683 This filter accepts the following options:
29684
29685 threshold
29686 The filtering strength. The higher, the more filtered the video
29687 will be. Hard thresholding can use a higher threshold than soft
29688 thresholding before the video looks overfiltered. Default value is
29689 2.
29690
29691 method
29692 The filtering method the filter will use.
29693
29694 It accepts the following values:
29695
29696 hard
29697 All values under the threshold will be zeroed.
29698
29699 soft
29700 All values under the threshold will be zeroed. All values above
29701 will be reduced by the threshold.
29702
29703 garrote
29704 Scales or nullifies coefficients - intermediary between (more)
29705 soft and (less) hard thresholding.
29706
29707 Default is garrote.
29708
29709 nsteps
29710 Number of times, the wavelet will decompose the picture. Picture
29711 can't be decomposed beyond a particular point (typically, 8 for a
29712 640x480 frame - as 2^9 = 512 > 480). Valid values are integers
29713 between 1 and 32. Default value is 6.
29714
29715 percent
29716 Partial of full denoising (limited coefficients shrinking), from 0
29717 to 100. Default value is 85.
29718
29719 planes
29720 A list of the planes to process. By default all planes are
29721 processed.
29722
29723 type
29724 The threshold type the filter will use.
29725
29726 It accepts the following values:
29727
29728 universal
29729 Threshold used is same for all decompositions.
29730
29731 bayes
29732 Threshold used depends also on each decomposition coefficients.
29733
29734 Default is universal.
29735
29736 varblur
29737 Apply variable blur filter by using 2nd video stream to set blur
29738 radius. The 2nd stream must have the same dimensions.
29739
29740 This filter accepts the following options:
29741
29742 min_r
29743 Set min allowed radius. Allowed range is from 0 to 254. Default is
29744 0.
29745
29746 max_r
29747 Set max allowed radius. Allowed range is from 1 to 255. Default is
29748 8.
29749
29750 planes
29751 Set which planes to process. By default, all are used.
29752
29753 The "varblur" filter also supports the framesync options.
29754
29755 Commands
29756
29757 This filter supports all the above options as commands.
29758
29759 vectorscope
29760 Display 2 color component values in the two dimensional graph (which is
29761 called a vectorscope).
29762
29763 This filter accepts the following options:
29764
29765 mode, m
29766 Set vectorscope mode.
29767
29768 It accepts the following values:
29769
29770 gray
29771 tint
29772 Gray values are displayed on graph, higher brightness means
29773 more pixels have same component color value on location in
29774 graph. This is the default mode.
29775
29776 color
29777 Gray values are displayed on graph. Surrounding pixels values
29778 which are not present in video frame are drawn in gradient of 2
29779 color components which are set by option "x" and "y". The 3rd
29780 color component is static.
29781
29782 color2
29783 Actual color components values present in video frame are
29784 displayed on graph.
29785
29786 color3
29787 Similar as color2 but higher frequency of same values "x" and
29788 "y" on graph increases value of another color component, which
29789 is luminance by default values of "x" and "y".
29790
29791 color4
29792 Actual colors present in video frame are displayed on graph. If
29793 two different colors map to same position on graph then color
29794 with higher value of component not present in graph is picked.
29795
29796 color5
29797 Gray values are displayed on graph. Similar to "color" but with
29798 3rd color component picked from radial gradient.
29799
29800 x Set which color component will be represented on X-axis. Default is
29801 1.
29802
29803 y Set which color component will be represented on Y-axis. Default is
29804 2.
29805
29806 intensity, i
29807 Set intensity, used by modes: gray, color, color3 and color5 for
29808 increasing brightness of color component which represents frequency
29809 of (X, Y) location in graph.
29810
29811 envelope, e
29812 none
29813 No envelope, this is default.
29814
29815 instant
29816 Instant envelope, even darkest single pixel will be clearly
29817 highlighted.
29818
29819 peak
29820 Hold maximum and minimum values presented in graph over time.
29821 This way you can still spot out of range values without
29822 constantly looking at vectorscope.
29823
29824 peak+instant
29825 Peak and instant envelope combined together.
29826
29827 graticule, g
29828 Set what kind of graticule to draw.
29829
29830 none
29831 green
29832 color
29833 invert
29834 opacity, o
29835 Set graticule opacity.
29836
29837 flags, f
29838 Set graticule flags.
29839
29840 white
29841 Draw graticule for white point.
29842
29843 black
29844 Draw graticule for black point.
29845
29846 name
29847 Draw color points short names.
29848
29849 bgopacity, b
29850 Set background opacity.
29851
29852 lthreshold, l
29853 Set low threshold for color component not represented on X or Y
29854 axis. Values lower than this value will be ignored. Default is 0.
29855 Note this value is multiplied with actual max possible value one
29856 pixel component can have. So for 8-bit input and low threshold
29857 value of 0.1 actual threshold is 0.1 * 255 = 25.
29858
29859 hthreshold, h
29860 Set high threshold for color component not represented on X or Y
29861 axis. Values higher than this value will be ignored. Default is 1.
29862 Note this value is multiplied with actual max possible value one
29863 pixel component can have. So for 8-bit input and high threshold
29864 value of 0.9 actual threshold is 0.9 * 255 = 230.
29865
29866 colorspace, c
29867 Set what kind of colorspace to use when drawing graticule.
29868
29869 auto
29870 601
29871 709
29872
29873 Default is auto.
29874
29875 tint0, t0
29876 tint1, t1
29877 Set color tint for gray/tint vectorscope mode. By default both
29878 options are zero. This means no tint, and output will remain gray.
29879
29880 vidstabdetect
29881 Analyze video stabilization/deshaking. Perform pass 1 of 2, see
29882 vidstabtransform for pass 2.
29883
29884 This filter generates a file with relative translation and rotation
29885 transform information about subsequent frames, which is then used by
29886 the vidstabtransform filter.
29887
29888 To enable compilation of this filter you need to configure FFmpeg with
29889 "--enable-libvidstab".
29890
29891 This filter accepts the following options:
29892
29893 result
29894 Set the path to the file used to write the transforms information.
29895 Default value is transforms.trf.
29896
29897 shakiness
29898 Set how shaky the video is and how quick the camera is. It accepts
29899 an integer in the range 1-10, a value of 1 means little shakiness,
29900 a value of 10 means strong shakiness. Default value is 5.
29901
29902 accuracy
29903 Set the accuracy of the detection process. It must be a value in
29904 the range 1-15. A value of 1 means low accuracy, a value of 15
29905 means high accuracy. Default value is 15.
29906
29907 stepsize
29908 Set stepsize of the search process. The region around minimum is
29909 scanned with 1 pixel resolution. Default value is 6.
29910
29911 mincontrast
29912 Set minimum contrast. Below this value a local measurement field is
29913 discarded. Must be a floating point value in the range 0-1. Default
29914 value is 0.3.
29915
29916 tripod
29917 Set reference frame number for tripod mode.
29918
29919 If enabled, the motion of the frames is compared to a reference
29920 frame in the filtered stream, identified by the specified number.
29921 The idea is to compensate all movements in a more-or-less static
29922 scene and keep the camera view absolutely still.
29923
29924 If set to 0, it is disabled. The frames are counted starting from
29925 1.
29926
29927 show
29928 Show fields and transforms in the resulting frames. It accepts an
29929 integer in the range 0-2. Default value is 0, which disables any
29930 visualization.
29931
29932 Examples
29933
29934 • Use default values:
29935
29936 vidstabdetect
29937
29938 • Analyze strongly shaky movie and put the results in file
29939 mytransforms.trf:
29940
29941 vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
29942
29943 • Visualize the result of internal transformations in the resulting
29944 video:
29945
29946 vidstabdetect=show=1
29947
29948 • Analyze a video with medium shakiness using ffmpeg:
29949
29950 ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
29951
29952 vidstabtransform
29953 Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
29954 1.
29955
29956 Read a file with transform information for each frame and
29957 apply/compensate them. Together with the vidstabdetect filter this can
29958 be used to deshake videos. See also
29959 <http://public.hronopik.de/vid.stab>. It is important to also use the
29960 unsharp filter, see below.
29961
29962 To enable compilation of this filter you need to configure FFmpeg with
29963 "--enable-libvidstab".
29964
29965 Options
29966
29967 input
29968 Set path to the file used to read the transforms. Default value is
29969 transforms.trf.
29970
29971 smoothing
29972 Set the number of frames (value*2 + 1) used for lowpass filtering
29973 the camera movements. Default value is 10.
29974
29975 For example a number of 10 means that 21 frames are used (10 in the
29976 past and 10 in the future) to smoothen the motion in the video. A
29977 larger value leads to a smoother video, but limits the acceleration
29978 of the camera (pan/tilt movements). 0 is a special case where a
29979 static camera is simulated.
29980
29981 optalgo
29982 Set the camera path optimization algorithm.
29983
29984 Accepted values are:
29985
29986 gauss
29987 gaussian kernel low-pass filter on camera motion (default)
29988
29989 avg averaging on transformations
29990
29991 maxshift
29992 Set maximal number of pixels to translate frames. Default value is
29993 -1, meaning no limit.
29994
29995 maxangle
29996 Set maximal angle in radians (degree*PI/180) to rotate frames.
29997 Default value is -1, meaning no limit.
29998
29999 crop
30000 Specify how to deal with borders that may be visible due to
30001 movement compensation.
30002
30003 Available values are:
30004
30005 keep
30006 keep image information from previous frame (default)
30007
30008 black
30009 fill the border black
30010
30011 invert
30012 Invert transforms if set to 1. Default value is 0.
30013
30014 relative
30015 Consider transforms as relative to previous frame if set to 1,
30016 absolute if set to 0. Default value is 0.
30017
30018 zoom
30019 Set percentage to zoom. A positive value will result in a zoom-in
30020 effect, a negative value in a zoom-out effect. Default value is 0
30021 (no zoom).
30022
30023 optzoom
30024 Set optimal zooming to avoid borders.
30025
30026 Accepted values are:
30027
30028 0 disabled
30029
30030 1 optimal static zoom value is determined (only very strong
30031 movements will lead to visible borders) (default)
30032
30033 2 optimal adaptive zoom value is determined (no borders will be
30034 visible), see zoomspeed
30035
30036 Note that the value given at zoom is added to the one calculated
30037 here.
30038
30039 zoomspeed
30040 Set percent to zoom maximally each frame (enabled when optzoom is
30041 set to 2). Range is from 0 to 5, default value is 0.25.
30042
30043 interpol
30044 Specify type of interpolation.
30045
30046 Available values are:
30047
30048 no no interpolation
30049
30050 linear
30051 linear only horizontal
30052
30053 bilinear
30054 linear in both directions (default)
30055
30056 bicubic
30057 cubic in both directions (slow)
30058
30059 tripod
30060 Enable virtual tripod mode if set to 1, which is equivalent to
30061 "relative=0:smoothing=0". Default value is 0.
30062
30063 Use also "tripod" option of vidstabdetect.
30064
30065 debug
30066 Increase log verbosity if set to 1. Also the detected global
30067 motions are written to the temporary file global_motions.trf.
30068 Default value is 0.
30069
30070 Examples
30071
30072 • Use ffmpeg for a typical stabilization with default values:
30073
30074 ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
30075
30076 Note the use of the unsharp filter which is always recommended.
30077
30078 • Zoom in a bit more and load transform data from a given file:
30079
30080 vidstabtransform=zoom=5:input="mytransforms.trf"
30081
30082 • Smoothen the video even more:
30083
30084 vidstabtransform=smoothing=30
30085
30086 vflip
30087 Flip the input video vertically.
30088
30089 For example, to vertically flip a video with ffmpeg:
30090
30091 ffmpeg -i in.avi -vf "vflip" out.avi
30092
30093 vfrdet
30094 Detect variable frame rate video.
30095
30096 This filter tries to detect if the input is variable or constant frame
30097 rate.
30098
30099 At end it will output number of frames detected as having variable
30100 delta pts, and ones with constant delta pts. If there was frames with
30101 variable delta, than it will also show min, max and average delta
30102 encountered.
30103
30104 vibrance
30105 Boost or alter saturation.
30106
30107 The filter accepts the following options:
30108
30109 intensity
30110 Set strength of boost if positive value or strength of alter if
30111 negative value. Default is 0. Allowed range is from -2 to 2.
30112
30113 rbal
30114 Set the red balance. Default is 1. Allowed range is from -10 to 10.
30115
30116 gbal
30117 Set the green balance. Default is 1. Allowed range is from -10 to
30118 10.
30119
30120 bbal
30121 Set the blue balance. Default is 1. Allowed range is from -10 to
30122 10.
30123
30124 rlum
30125 Set the red luma coefficient.
30126
30127 glum
30128 Set the green luma coefficient.
30129
30130 blum
30131 Set the blue luma coefficient.
30132
30133 alternate
30134 If "intensity" is negative and this is set to 1, colors will
30135 change, otherwise colors will be less saturated, more towards gray.
30136
30137 Commands
30138
30139 This filter supports the all above options as commands.
30140
30141 vif
30142 Obtain the average VIF (Visual Information Fidelity) between two input
30143 videos.
30144
30145 This filter takes two input videos.
30146
30147 Both input videos must have the same resolution and pixel format for
30148 this filter to work correctly. Also it assumes that both inputs have
30149 the same number of frames, which are compared one by one.
30150
30151 The obtained average VIF score is printed through the logging system.
30152
30153 The filter stores the calculated VIF score of each frame.
30154
30155 In the below example the input file main.mpg being processed is
30156 compared with the reference file ref.mpg.
30157
30158 ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
30159
30160 vignette
30161 Make or reverse a natural vignetting effect.
30162
30163 The filter accepts the following options:
30164
30165 angle, a
30166 Set lens angle expression as a number of radians.
30167
30168 The value is clipped in the "[0,PI/2]" range.
30169
30170 Default value: "PI/5"
30171
30172 x0
30173 y0 Set center coordinates expressions. Respectively "w/2" and "h/2" by
30174 default.
30175
30176 mode
30177 Set forward/backward mode.
30178
30179 Available modes are:
30180
30181 forward
30182 The larger the distance from the central point, the darker the
30183 image becomes.
30184
30185 backward
30186 The larger the distance from the central point, the brighter
30187 the image becomes. This can be used to reverse a vignette
30188 effect, though there is no automatic detection to extract the
30189 lens angle and other settings (yet). It can also be used to
30190 create a burning effect.
30191
30192 Default value is forward.
30193
30194 eval
30195 Set evaluation mode for the expressions (angle, x0, y0).
30196
30197 It accepts the following values:
30198
30199 init
30200 Evaluate expressions only once during the filter
30201 initialization.
30202
30203 frame
30204 Evaluate expressions for each incoming frame. This is way
30205 slower than the init mode since it requires all the scalers to
30206 be re-computed, but it allows advanced dynamic expressions.
30207
30208 Default value is init.
30209
30210 dither
30211 Set dithering to reduce the circular banding effects. Default is 1
30212 (enabled).
30213
30214 aspect
30215 Set vignette aspect. This setting allows one to adjust the shape of
30216 the vignette. Setting this value to the SAR of the input will make
30217 a rectangular vignetting following the dimensions of the video.
30218
30219 Default is "1/1".
30220
30221 Expressions
30222
30223 The alpha, x0 and y0 expressions can contain the following parameters.
30224
30225 w
30226 h input width and height
30227
30228 n the number of input frame, starting from 0
30229
30230 pts the PTS (Presentation TimeStamp) time of the filtered video frame,
30231 expressed in TB units, NAN if undefined
30232
30233 r frame rate of the input video, NAN if the input frame rate is
30234 unknown
30235
30236 t the PTS (Presentation TimeStamp) of the filtered video frame,
30237 expressed in seconds, NAN if undefined
30238
30239 tb time base of the input video
30240
30241 Examples
30242
30243 • Apply simple strong vignetting effect:
30244
30245 vignette=PI/4
30246
30247 • Make a flickering vignetting:
30248
30249 vignette='PI/4+random(1)*PI/50':eval=frame
30250
30251 vmafmotion
30252 Obtain the average VMAF motion score of a video. It is one of the
30253 component metrics of VMAF.
30254
30255 The obtained average motion score is printed through the logging
30256 system.
30257
30258 The filter accepts the following options:
30259
30260 stats_file
30261 If specified, the filter will use the named file to save the motion
30262 score of each frame with respect to the previous frame. When
30263 filename equals "-" the data is sent to standard output.
30264
30265 Example:
30266
30267 ffmpeg -i ref.mpg -vf vmafmotion -f null -
30268
30269 vstack
30270 Stack input videos vertically.
30271
30272 All streams must be of same pixel format and of same width.
30273
30274 Note that this filter is faster than using overlay and pad filter to
30275 create same output.
30276
30277 The filter accepts the following options:
30278
30279 inputs
30280 Set number of input streams. Default is 2.
30281
30282 shortest
30283 If set to 1, force the output to terminate when the shortest input
30284 terminates. Default value is 0.
30285
30286 w3fdif
30287 Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
30288 Deinterlacing Filter").
30289
30290 Based on the process described by Martin Weston for BBC R&D, and
30291 implemented based on the de-interlace algorithm written by Jim
30292 Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
30293 filter coefficients calculated by BBC R&D.
30294
30295 This filter uses field-dominance information in frame to decide which
30296 of each pair of fields to place first in the output. If it gets it
30297 wrong use setfield filter before "w3fdif" filter.
30298
30299 There are two sets of filter coefficients, so called "simple" and
30300 "complex". Which set of filter coefficients is used can be set by
30301 passing an optional parameter:
30302
30303 filter
30304 Set the interlacing filter coefficients. Accepts one of the
30305 following values:
30306
30307 simple
30308 Simple filter coefficient set.
30309
30310 complex
30311 More-complex filter coefficient set.
30312
30313 Default value is complex.
30314
30315 mode
30316 The interlacing mode to adopt. It accepts one of the following
30317 values:
30318
30319 frame
30320 Output one frame for each frame.
30321
30322 field
30323 Output one frame for each field.
30324
30325 The default value is "field".
30326
30327 parity
30328 The picture field parity assumed for the input interlaced video. It
30329 accepts one of the following values:
30330
30331 tff Assume the top field is first.
30332
30333 bff Assume the bottom field is first.
30334
30335 auto
30336 Enable automatic detection of field parity.
30337
30338 The default value is "auto". If the interlacing is unknown or the
30339 decoder does not export this information, top field first will be
30340 assumed.
30341
30342 deint
30343 Specify which frames to deinterlace. Accepts one of the following
30344 values:
30345
30346 all Deinterlace all frames,
30347
30348 interlaced
30349 Only deinterlace frames marked as interlaced.
30350
30351 Default value is all.
30352
30353 Commands
30354
30355 This filter supports same commands as options.
30356
30357 waveform
30358 Video waveform monitor.
30359
30360 The waveform monitor plots color component intensity. By default
30361 luminance only. Each column of the waveform corresponds to a column of
30362 pixels in the source video.
30363
30364 It accepts the following options:
30365
30366 mode, m
30367 Can be either "row", or "column". Default is "column". In row
30368 mode, the graph on the left side represents color component value 0
30369 and the right side represents value = 255. In column mode, the top
30370 side represents color component value = 0 and bottom side
30371 represents value = 255.
30372
30373 intensity, i
30374 Set intensity. Smaller values are useful to find out how many
30375 values of the same luminance are distributed across input
30376 rows/columns. Default value is 0.04. Allowed range is [0, 1].
30377
30378 mirror, r
30379 Set mirroring mode. 0 means unmirrored, 1 means mirrored. In
30380 mirrored mode, higher values will be represented on the left side
30381 for "row" mode and at the top for "column" mode. Default is 1
30382 (mirrored).
30383
30384 display, d
30385 Set display mode. It accepts the following values:
30386
30387 overlay
30388 Presents information identical to that in the "parade", except
30389 that the graphs representing color components are superimposed
30390 directly over one another.
30391
30392 This display mode makes it easier to spot relative differences
30393 or similarities in overlapping areas of the color components
30394 that are supposed to be identical, such as neutral whites,
30395 grays, or blacks.
30396
30397 stack
30398 Display separate graph for the color components side by side in
30399 "row" mode or one below the other in "column" mode.
30400
30401 parade
30402 Display separate graph for the color components side by side in
30403 "column" mode or one below the other in "row" mode.
30404
30405 Using this display mode makes it easy to spot color casts in
30406 the highlights and shadows of an image, by comparing the
30407 contours of the top and the bottom graphs of each waveform.
30408 Since whites, grays, and blacks are characterized by exactly
30409 equal amounts of red, green, and blue, neutral areas of the
30410 picture should display three waveforms of roughly equal
30411 width/height. If not, the correction is easy to perform by
30412 making level adjustments the three waveforms.
30413
30414 Default is "stack".
30415
30416 components, c
30417 Set which color components to display. Default is 1, which means
30418 only luminance or red color component if input is in RGB
30419 colorspace. If is set for example to 7 it will display all 3 (if)
30420 available color components.
30421
30422 envelope, e
30423 none
30424 No envelope, this is default.
30425
30426 instant
30427 Instant envelope, minimum and maximum values presented in graph
30428 will be easily visible even with small "step" value.
30429
30430 peak
30431 Hold minimum and maximum values presented in graph across time.
30432 This way you can still spot out of range values without
30433 constantly looking at waveforms.
30434
30435 peak+instant
30436 Peak and instant envelope combined together.
30437
30438 filter, f
30439 lowpass
30440 No filtering, this is default.
30441
30442 flat
30443 Luma and chroma combined together.
30444
30445 aflat
30446 Similar as above, but shows difference between blue and red
30447 chroma.
30448
30449 xflat
30450 Similar as above, but use different colors.
30451
30452 yflat
30453 Similar as above, but again with different colors.
30454
30455 chroma
30456 Displays only chroma.
30457
30458 color
30459 Displays actual color value on waveform.
30460
30461 acolor
30462 Similar as above, but with luma showing frequency of chroma
30463 values.
30464
30465 graticule, g
30466 Set which graticule to display.
30467
30468 none
30469 Do not display graticule.
30470
30471 green
30472 Display green graticule showing legal broadcast ranges.
30473
30474 orange
30475 Display orange graticule showing legal broadcast ranges.
30476
30477 invert
30478 Display invert graticule showing legal broadcast ranges.
30479
30480 opacity, o
30481 Set graticule opacity.
30482
30483 flags, fl
30484 Set graticule flags.
30485
30486 numbers
30487 Draw numbers above lines. By default enabled.
30488
30489 dots
30490 Draw dots instead of lines.
30491
30492 scale, s
30493 Set scale used for displaying graticule.
30494
30495 digital
30496 millivolts
30497 ire
30498
30499 Default is digital.
30500
30501 bgopacity, b
30502 Set background opacity.
30503
30504 tint0, t0
30505 tint1, t1
30506 Set tint for output. Only used with lowpass filter and when
30507 display is not overlay and input pixel formats are not RGB.
30508
30509 fitmode, fm
30510 Set sample aspect ratio of video output frames. Can be used to
30511 configure waveform so it is not streched too much in one of
30512 directions.
30513
30514 none
30515 Set sample aspect ration to 1/1.
30516
30517 size
30518 Set sample aspect ratio to match input size of video
30519
30520 Default is none.
30521
30522 weave, doubleweave
30523 The "weave" takes a field-based video input and join each two
30524 sequential fields into single frame, producing a new double height clip
30525 with half the frame rate and half the frame count.
30526
30527 The "doubleweave" works same as "weave" but without halving frame rate
30528 and frame count.
30529
30530 It accepts the following option:
30531
30532 first_field
30533 Set first field. Available values are:
30534
30535 top, t
30536 Set the frame as top-field-first.
30537
30538 bottom, b
30539 Set the frame as bottom-field-first.
30540
30541 Examples
30542
30543 • Interlace video using select and separatefields filter:
30544
30545 separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
30546
30547 xbr
30548 Apply the xBR high-quality magnification filter which is designed for
30549 pixel art. It follows a set of edge-detection rules, see
30550 <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
30551
30552 It accepts the following option:
30553
30554 n Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
30555 "4xBR". Default is 3.
30556
30557 xcorrelate
30558 Apply normalized cross-correlation between first and second input video
30559 stream.
30560
30561 Second input video stream dimensions must be lower than first input
30562 video stream.
30563
30564 The filter accepts the following options:
30565
30566 planes
30567 Set which planes to process.
30568
30569 secondary
30570 Set which secondary video frames will be processed from second
30571 input video stream, can be first or all. Default is all.
30572
30573 The "xcorrelate" filter also supports the framesync options.
30574
30575 xfade
30576 Apply cross fade from one input video stream to another input video
30577 stream. The cross fade is applied for specified duration.
30578
30579 Both inputs must be constant frame-rate and have the same resolution,
30580 pixel format, frame rate and timebase.
30581
30582 The filter accepts the following options:
30583
30584 transition
30585 Set one of available transition effects:
30586
30587 custom
30588 fade
30589 wipeleft
30590 wiperight
30591 wipeup
30592 wipedown
30593 slideleft
30594 slideright
30595 slideup
30596 slidedown
30597 circlecrop
30598 rectcrop
30599 distance
30600 fadeblack
30601 fadewhite
30602 radial
30603 smoothleft
30604 smoothright
30605 smoothup
30606 smoothdown
30607 circleopen
30608 circleclose
30609 vertopen
30610 vertclose
30611 horzopen
30612 horzclose
30613 dissolve
30614 pixelize
30615 diagtl
30616 diagtr
30617 diagbl
30618 diagbr
30619 hlslice
30620 hrslice
30621 vuslice
30622 vdslice
30623 hblur
30624 fadegrays
30625 wipetl
30626 wipetr
30627 wipebl
30628 wipebr
30629 squeezeh
30630 squeezev
30631 zoomin
30632 fadefast
30633 fadeslow
30634
30635 Default transition effect is fade.
30636
30637 duration
30638 Set cross fade duration in seconds. Range is 0 to 60 seconds.
30639 Default duration is 1 second.
30640
30641 offset
30642 Set cross fade start relative to first input stream in seconds.
30643 Default offset is 0.
30644
30645 expr
30646 Set expression for custom transition effect.
30647
30648 The expressions can use the following variables and functions:
30649
30650 X
30651 Y The coordinates of the current sample.
30652
30653 W
30654 H The width and height of the image.
30655
30656 P Progress of transition effect.
30657
30658 PLANE
30659 Currently processed plane.
30660
30661 A Return value of first input at current location and plane.
30662
30663 B Return value of second input at current location and plane.
30664
30665 a0(x, y)
30666 a1(x, y)
30667 a2(x, y)
30668 a3(x, y)
30669 Return the value of the pixel at location (x,y) of the
30670 first/second/third/fourth component of first input.
30671
30672 b0(x, y)
30673 b1(x, y)
30674 b2(x, y)
30675 b3(x, y)
30676 Return the value of the pixel at location (x,y) of the
30677 first/second/third/fourth component of second input.
30678
30679 Examples
30680
30681 • Cross fade from one input video to another input video, with fade
30682 transition and duration of transition of 2 seconds starting at
30683 offset of 5 seconds:
30684
30685 ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
30686
30687 xmedian
30688 Pick median pixels from several input videos.
30689
30690 The filter accepts the following options:
30691
30692 inputs
30693 Set number of inputs. Default is 3. Allowed range is from 3 to
30694 255. If number of inputs is even number, than result will be mean
30695 value between two median values.
30696
30697 planes
30698 Set which planes to filter. Default value is 15, by which all
30699 planes are processed.
30700
30701 percentile
30702 Set median percentile. Default value is 0.5. Default value of 0.5
30703 will pick always median values, while 0 will pick minimum values,
30704 and 1 maximum values.
30705
30706 Commands
30707
30708 This filter supports all above options as commands, excluding option
30709 "inputs".
30710
30711 xstack
30712 Stack video inputs into custom layout.
30713
30714 All streams must be of same pixel format.
30715
30716 The filter accepts the following options:
30717
30718 inputs
30719 Set number of input streams. Default is 2.
30720
30721 layout
30722 Specify layout of inputs. This option requires the desired layout
30723 configuration to be explicitly set by the user. This sets position
30724 of each video input in output. Each input is separated by '|'. The
30725 first number represents the column, and the second number
30726 represents the row. Numbers start at 0 and are separated by '_'.
30727 Optionally one can use wX and hX, where X is video input from which
30728 to take width or height. Multiple values can be used when
30729 separated by '+'. In such case values are summed together.
30730
30731 Note that if inputs are of different sizes gaps may appear, as not
30732 all of the output video frame will be filled. Similarly, videos can
30733 overlap each other if their position doesn't leave enough space for
30734 the full frame of adjoining videos.
30735
30736 For 2 inputs, a default layout of "0_0|w0_0" (equivalent to
30737 "grid=2x1") is set. In all other cases, a layout or a grid must be
30738 set by the user. Either "grid" or "layout" can be specified at a
30739 time. Specifying both will result in an error.
30740
30741 grid
30742 Specify a fixed size grid of inputs. This option is used to create
30743 a fixed size grid of the input streams. Set the grid size in the
30744 form "COLUMNSxROWS". There must be "ROWS * COLUMNS" input streams
30745 and they will be arranged as a grid with "ROWS" rows and "COLUMNS"
30746 columns. When using this option, each input stream within a row
30747 must have the same height and all the rows must have the same
30748 width.
30749
30750 If "grid" is set, then "inputs" option is ignored and is implicitly
30751 set to "ROWS * COLUMNS".
30752
30753 For 2 inputs, a default grid of "2x1" (equivalent to
30754 "layout=0_0|w0_0") is set. In all other cases, a layout or a grid
30755 must be set by the user. Either "grid" or "layout" can be specified
30756 at a time. Specifying both will result in an error.
30757
30758 shortest
30759 If set to 1, force the output to terminate when the shortest input
30760 terminates. Default value is 0.
30761
30762 fill
30763 If set to valid color, all unused pixels will be filled with that
30764 color. By default fill is set to none, so it is disabled.
30765
30766 Examples
30767
30768 • Display 4 inputs into 2x2 grid.
30769
30770 Layout:
30771
30772 input1(0, 0) | input3(w0, 0)
30773 input2(0, h0) | input4(w0, h0)
30774
30775
30776
30777 xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
30778
30779 Note that if inputs are of different sizes, gaps or overlaps may
30780 occur.
30781
30782 • Display 4 inputs into 1x4 grid.
30783
30784 Layout:
30785
30786 input1(0, 0)
30787 input2(0, h0)
30788 input3(0, h0+h1)
30789 input4(0, h0+h1+h2)
30790
30791
30792
30793 xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
30794
30795 Note that if inputs are of different widths, unused space will
30796 appear.
30797
30798 • Display 9 inputs into 3x3 grid.
30799
30800 Layout:
30801
30802 input1(0, 0) | input4(w0, 0) | input7(w0+w3, 0)
30803 input2(0, h0) | input5(w0, h0) | input8(w0+w3, h0)
30804 input3(0, h0+h1) | input6(w0, h0+h1) | input9(w0+w3, h0+h1)
30805
30806
30807
30808 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
30809
30810 Note that if inputs are of different sizes, gaps or overlaps may
30811 occur.
30812
30813 • Display 16 inputs into 4x4 grid.
30814
30815 Layout:
30816
30817 input1(0, 0) | input5(w0, 0) | input9 (w0+w4, 0) | input13(w0+w4+w8, 0)
30818 input2(0, h0) | input6(w0, h0) | input10(w0+w4, h0) | input14(w0+w4+w8, h0)
30819 input3(0, h0+h1) | input7(w0, h0+h1) | input11(w0+w4, h0+h1) | input15(w0+w4+w8, h0+h1)
30820 input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
30821
30822
30823
30824 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|
30825 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
30826
30827 Note that if inputs are of different sizes, gaps or overlaps may
30828 occur.
30829
30830 yadif
30831 Deinterlace the input video ("yadif" means "yet another deinterlacing
30832 filter").
30833
30834 It accepts the following parameters:
30835
30836 mode
30837 The interlacing mode to adopt. It accepts one of the following
30838 values:
30839
30840 0, send_frame
30841 Output one frame for each frame.
30842
30843 1, send_field
30844 Output one frame for each field.
30845
30846 2, send_frame_nospatial
30847 Like "send_frame", but it skips the spatial interlacing check.
30848
30849 3, send_field_nospatial
30850 Like "send_field", but it skips the spatial interlacing check.
30851
30852 The default value is "send_frame".
30853
30854 parity
30855 The picture field parity assumed for the input interlaced video. It
30856 accepts one of the following values:
30857
30858 0, tff
30859 Assume the top field is first.
30860
30861 1, bff
30862 Assume the bottom field is first.
30863
30864 -1, auto
30865 Enable automatic detection of field parity.
30866
30867 The default value is "auto". If the interlacing is unknown or the
30868 decoder does not export this information, top field first will be
30869 assumed.
30870
30871 deint
30872 Specify which frames to deinterlace. Accepts one of the following
30873 values:
30874
30875 0, all
30876 Deinterlace all frames.
30877
30878 1, interlaced
30879 Only deinterlace frames marked as interlaced.
30880
30881 The default value is "all".
30882
30883 yadif_cuda
30884 Deinterlace the input video using the yadif algorithm, but implemented
30885 in CUDA so that it can work as part of a GPU accelerated pipeline with
30886 nvdec and/or nvenc.
30887
30888 It accepts the following parameters:
30889
30890 mode
30891 The interlacing mode to adopt. It accepts one of the following
30892 values:
30893
30894 0, send_frame
30895 Output one frame for each frame.
30896
30897 1, send_field
30898 Output one frame for each field.
30899
30900 2, send_frame_nospatial
30901 Like "send_frame", but it skips the spatial interlacing check.
30902
30903 3, send_field_nospatial
30904 Like "send_field", but it skips the spatial interlacing check.
30905
30906 The default value is "send_frame".
30907
30908 parity
30909 The picture field parity assumed for the input interlaced video. It
30910 accepts one of the following values:
30911
30912 0, tff
30913 Assume the top field is first.
30914
30915 1, bff
30916 Assume the bottom field is first.
30917
30918 -1, auto
30919 Enable automatic detection of field parity.
30920
30921 The default value is "auto". If the interlacing is unknown or the
30922 decoder does not export this information, top field first will be
30923 assumed.
30924
30925 deint
30926 Specify which frames to deinterlace. Accepts one of the following
30927 values:
30928
30929 0, all
30930 Deinterlace all frames.
30931
30932 1, interlaced
30933 Only deinterlace frames marked as interlaced.
30934
30935 The default value is "all".
30936
30937 yaepblur
30938 Apply blur filter while preserving edges ("yaepblur" means "yet another
30939 edge preserving blur filter"). The algorithm is described in "J. S.
30940 Lee, Digital image enhancement and noise filtering by use of local
30941 statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
30942
30943 It accepts the following parameters:
30944
30945 radius, r
30946 Set the window radius. Default value is 3.
30947
30948 planes, p
30949 Set which planes to filter. Default is only the first plane.
30950
30951 sigma, s
30952 Set blur strength. Default value is 128.
30953
30954 Commands
30955
30956 This filter supports same commands as options.
30957
30958 zoompan
30959 Apply Zoom & Pan effect.
30960
30961 This filter accepts the following options:
30962
30963 zoom, z
30964 Set the zoom expression. Range is 1-10. Default is 1.
30965
30966 x
30967 y Set the x and y expression. Default is 0.
30968
30969 d Set the duration expression in number of frames. This sets for how
30970 many number of frames effect will last for single input image.
30971 Default is 90.
30972
30973 s Set the output image size, default is 'hd720'.
30974
30975 fps Set the output frame rate, default is '25'.
30976
30977 Each expression can contain the following constants:
30978
30979 in_w, iw
30980 Input width.
30981
30982 in_h, ih
30983 Input height.
30984
30985 out_w, ow
30986 Output width.
30987
30988 out_h, oh
30989 Output height.
30990
30991 in Input frame count.
30992
30993 on Output frame count.
30994
30995 in_time, it
30996 The input timestamp expressed in seconds. It's NAN if the input
30997 timestamp is unknown.
30998
30999 out_time, time, ot
31000 The output timestamp expressed in seconds.
31001
31002 x
31003 y Last calculated 'x' and 'y' position from 'x' and 'y' expression
31004 for current input frame.
31005
31006 px
31007 py 'x' and 'y' of last output frame of previous input frame or 0 when
31008 there was not yet such frame (first input frame).
31009
31010 zoom
31011 Last calculated zoom from 'z' expression for current input frame.
31012
31013 pzoom
31014 Last calculated zoom of last output frame of previous input frame.
31015
31016 duration
31017 Number of output frames for current input frame. Calculated from
31018 'd' expression for each input frame.
31019
31020 pduration
31021 number of output frames created for previous input frame
31022
31023 a Rational number: input width / input height
31024
31025 sar sample aspect ratio
31026
31027 dar display aspect ratio
31028
31029 Examples
31030
31031 • Zoom in up to 1.5x and pan at same time to some spot near center of
31032 picture:
31033
31034 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
31035
31036 • Zoom in up to 1.5x and pan always at center of picture:
31037
31038 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31039
31040 • Same as above but without pausing:
31041
31042 zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31043
31044 • Zoom in 2x into center of picture only for the first second of the
31045 input video:
31046
31047 zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31048
31049 zscale
31050 Scale (resize) the input video, using the z.lib library:
31051 <https://github.com/sekrit-twc/zimg>. To enable compilation of this
31052 filter, you need to configure FFmpeg with "--enable-libzimg".
31053
31054 The zscale filter forces the output display aspect ratio to be the same
31055 as the input, by changing the output sample aspect ratio.
31056
31057 If the input image format is different from the format requested by the
31058 next filter, the zscale filter will convert the input to the requested
31059 format.
31060
31061 Options
31062
31063 The filter accepts the following options.
31064
31065 width, w
31066 height, h
31067 Set the output video dimension expression. Default value is the
31068 input dimension.
31069
31070 If the width or w value is 0, the input width is used for the
31071 output. If the height or h value is 0, the input height is used for
31072 the output.
31073
31074 If one and only one of the values is -n with n >= 1, the zscale
31075 filter will use a value that maintains the aspect ratio of the
31076 input image, calculated from the other specified dimension. After
31077 that it will, however, make sure that the calculated dimension is
31078 divisible by n and adjust the value if necessary.
31079
31080 If both values are -n with n >= 1, the behavior will be identical
31081 to both values being set to 0 as previously detailed.
31082
31083 See below for the list of accepted constants for use in the
31084 dimension expression.
31085
31086 size, s
31087 Set the video size. For the syntax of this option, check the "Video
31088 size" section in the ffmpeg-utils manual.
31089
31090 dither, d
31091 Set the dither type.
31092
31093 Possible values are:
31094
31095 none
31096 ordered
31097 random
31098 error_diffusion
31099
31100 Default is none.
31101
31102 filter, f
31103 Set the resize filter type.
31104
31105 Possible values are:
31106
31107 point
31108 bilinear
31109 bicubic
31110 spline16
31111 spline36
31112 lanczos
31113
31114 Default is bilinear.
31115
31116 range, r
31117 Set the color range.
31118
31119 Possible values are:
31120
31121 input
31122 limited
31123 full
31124
31125 Default is same as input.
31126
31127 primaries, p
31128 Set the color primaries.
31129
31130 Possible values are:
31131
31132 input
31133 709
31134 unspecified
31135 170m
31136 240m
31137 2020
31138
31139 Default is same as input.
31140
31141 transfer, t
31142 Set the transfer characteristics.
31143
31144 Possible values are:
31145
31146 input
31147 709
31148 unspecified
31149 601
31150 linear
31151 2020_10
31152 2020_12
31153 smpte2084
31154 iec61966-2-1
31155 arib-std-b67
31156
31157 Default is same as input.
31158
31159 matrix, m
31160 Set the colorspace matrix.
31161
31162 Possible value are:
31163
31164 input
31165 709
31166 unspecified
31167 470bg
31168 170m
31169 2020_ncl
31170 2020_cl
31171
31172 Default is same as input.
31173
31174 rangein, rin
31175 Set the input color range.
31176
31177 Possible values are:
31178
31179 input
31180 limited
31181 full
31182
31183 Default is same as input.
31184
31185 primariesin, pin
31186 Set the input color primaries.
31187
31188 Possible values are:
31189
31190 input
31191 709
31192 unspecified
31193 170m
31194 240m
31195 2020
31196
31197 Default is same as input.
31198
31199 transferin, tin
31200 Set the input transfer characteristics.
31201
31202 Possible values are:
31203
31204 input
31205 709
31206 unspecified
31207 601
31208 linear
31209 2020_10
31210 2020_12
31211
31212 Default is same as input.
31213
31214 matrixin, min
31215 Set the input colorspace matrix.
31216
31217 Possible value are:
31218
31219 input
31220 709
31221 unspecified
31222 470bg
31223 170m
31224 2020_ncl
31225 2020_cl
31226 chromal, c
31227 Set the output chroma location.
31228
31229 Possible values are:
31230
31231 input
31232 left
31233 center
31234 topleft
31235 top
31236 bottomleft
31237 bottom
31238 chromalin, cin
31239 Set the input chroma location.
31240
31241 Possible values are:
31242
31243 input
31244 left
31245 center
31246 topleft
31247 top
31248 bottomleft
31249 bottom
31250 npl Set the nominal peak luminance.
31251
31252 param_a
31253 Parameter A for scaling filters. Parameter "b" for bicubic, and the
31254 number of filter taps for lanczos.
31255
31256 param_b
31257 Parameter B for scaling filters. Parameter "c" for bicubic.
31258
31259 The values of the w and h options are expressions containing the
31260 following constants:
31261
31262 in_w
31263 in_h
31264 The input width and height
31265
31266 iw
31267 ih These are the same as in_w and in_h.
31268
31269 out_w
31270 out_h
31271 The output (scaled) width and height
31272
31273 ow
31274 oh These are the same as out_w and out_h
31275
31276 a The same as iw / ih
31277
31278 sar input sample aspect ratio
31279
31280 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
31281
31282 hsub
31283 vsub
31284 horizontal and vertical input chroma subsample values. For example
31285 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
31286
31287 ohsub
31288 ovsub
31289 horizontal and vertical output chroma subsample values. For example
31290 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
31291
31292 Commands
31293
31294 This filter supports the following commands:
31295
31296 width, w
31297 height, h
31298 Set the output video dimension expression. The command accepts the
31299 same syntax of the corresponding option.
31300
31301 If the specified expression is not valid, it is kept at its current
31302 value.
31303
31305 Below is a description of the currently available OpenCL video filters.
31306
31307 To enable compilation of these filters you need to configure FFmpeg
31308 with "--enable-opencl".
31309
31310 Running OpenCL filters requires you to initialize a hardware device and
31311 to pass that device to all filters in any filter graph.
31312
31313 -init_hw_device opencl[=name][:device[,key=value...]]
31314 Initialise a new hardware device of type opencl called name, using
31315 the given device parameters.
31316
31317 -filter_hw_device name
31318 Pass the hardware device called name to all filters in any filter
31319 graph.
31320
31321 For more detailed information see
31322 <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
31323
31324 • Example of choosing the first device on the second platform and
31325 running avgblur_opencl filter with default parameters on it.
31326
31327 -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
31328
31329 Since OpenCL filters are not able to access frame data in normal
31330 memory, all frame data needs to be uploaded(hwupload) to hardware
31331 surfaces connected to the appropriate device before being used and then
31332 downloaded(hwdownload) back to normal memory. Note that hwupload will
31333 upload to a surface with the same layout as the software frame, so it
31334 may be necessary to add a format filter immediately before to get the
31335 input into the right format and hwdownload does not support all formats
31336 on the output - it may be necessary to insert an additional format
31337 filter immediately following in the graph to get the output in a
31338 supported format.
31339
31340 avgblur_opencl
31341 Apply average blur filter.
31342
31343 The filter accepts the following options:
31344
31345 sizeX
31346 Set horizontal radius size. Range is "[1, 1024]" and default value
31347 is 1.
31348
31349 planes
31350 Set which planes to filter. Default value is 0xf, by which all
31351 planes are processed.
31352
31353 sizeY
31354 Set vertical radius size. Range is "[1, 1024]" and default value is
31355 0. If zero, "sizeX" value will be used.
31356
31357 Example
31358
31359 • Apply average blur filter with horizontal and vertical size of 3,
31360 setting each pixel of the output to the average value of the 7x7
31361 region centered on it in the input. For pixels on the edges of the
31362 image, the region does not extend beyond the image boundaries, and
31363 so out-of-range coordinates are not used in the calculations.
31364
31365 -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
31366
31367 boxblur_opencl
31368 Apply a boxblur algorithm to the input video.
31369
31370 It accepts the following parameters:
31371
31372 luma_radius, lr
31373 luma_power, lp
31374 chroma_radius, cr
31375 chroma_power, cp
31376 alpha_radius, ar
31377 alpha_power, ap
31378
31379 A description of the accepted options follows.
31380
31381 luma_radius, lr
31382 chroma_radius, cr
31383 alpha_radius, ar
31384 Set an expression for the box radius in pixels used for blurring
31385 the corresponding input plane.
31386
31387 The radius value must be a non-negative number, and must not be
31388 greater than the value of the expression "min(w,h)/2" for the luma
31389 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
31390
31391 Default value for luma_radius is "2". If not specified,
31392 chroma_radius and alpha_radius default to the corresponding value
31393 set for luma_radius.
31394
31395 The expressions can contain the following constants:
31396
31397 w
31398 h The input width and height in pixels.
31399
31400 cw
31401 ch The input chroma image width and height in pixels.
31402
31403 hsub
31404 vsub
31405 The horizontal and vertical chroma subsample values. For
31406 example, for the pixel format "yuv422p", hsub is 2 and vsub is
31407 1.
31408
31409 luma_power, lp
31410 chroma_power, cp
31411 alpha_power, ap
31412 Specify how many times the boxblur filter is applied to the
31413 corresponding plane.
31414
31415 Default value for luma_power is 2. If not specified, chroma_power
31416 and alpha_power default to the corresponding value set for
31417 luma_power.
31418
31419 A value of 0 will disable the effect.
31420
31421 Examples
31422
31423 Apply boxblur filter, setting each pixel of the output to the average
31424 value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
31425 plane respectively. The filter will apply luma_power, chroma_power,
31426 alpha_power times onto the corresponding plane. For pixels on the edges
31427 of the image, the radius does not extend beyond the image boundaries,
31428 and so out-of-range coordinates are not used in the calculations.
31429
31430 • Apply a boxblur filter with the luma, chroma, and alpha radius set
31431 to 2 and luma, chroma, and alpha power set to 3. The filter will
31432 run 3 times with box-radius set to 2 for every plane of the image.
31433
31434 -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
31435 -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
31436
31437 • Apply a boxblur filter with luma radius set to 2, luma_power to 1,
31438 chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
31439 alpha_power to 7.
31440
31441 For the luma plane, a 2x2 box radius will be run once.
31442
31443 For the chroma plane, a 4x4 box radius will be run 5 times.
31444
31445 For the alpha plane, a 3x3 box radius will be run 7 times.
31446
31447 -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
31448
31449 colorkey_opencl
31450 RGB colorspace color keying.
31451
31452 The filter accepts the following options:
31453
31454 color
31455 The color which will be replaced with transparency.
31456
31457 similarity
31458 Similarity percentage with the key color.
31459
31460 0.01 matches only the exact key color, while 1.0 matches
31461 everything.
31462
31463 blend
31464 Blend percentage.
31465
31466 0.0 makes pixels either fully transparent, or not transparent at
31467 all.
31468
31469 Higher values result in semi-transparent pixels, with a higher
31470 transparency the more similar the pixels color is to the key color.
31471
31472 Examples
31473
31474 • Make every semi-green pixel in the input transparent with some
31475 slight blending:
31476
31477 -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
31478
31479 convolution_opencl
31480 Apply convolution of 3x3, 5x5, 7x7 matrix.
31481
31482 The filter accepts the following options:
31483
31484 0m
31485 1m
31486 2m
31487 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
31488 signed numbers. Default value for each plane is "0 0 0 0 1 0 0 0
31489 0".
31490
31491 0rdiv
31492 1rdiv
31493 2rdiv
31494 3rdiv
31495 Set multiplier for calculated value for each plane. If unset or 0,
31496 it will be sum of all matrix elements. The option value must be a
31497 float number greater or equal to 0.0. Default value is 1.0.
31498
31499 0bias
31500 1bias
31501 2bias
31502 3bias
31503 Set bias for each plane. This value is added to the result of the
31504 multiplication. Useful for making the overall image brighter or
31505 darker. The option value must be a float number greater or equal
31506 to 0.0. Default value is 0.0.
31507
31508 Examples
31509
31510 • Apply sharpen:
31511
31512 -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
31513
31514 • Apply blur:
31515
31516 -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
31517
31518 • Apply edge enhance:
31519
31520 -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
31521
31522 • Apply edge detect:
31523
31524 -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
31525
31526 • Apply laplacian edge detector which includes diagonals:
31527
31528 -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
31529
31530 • Apply emboss:
31531
31532 -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
31533
31534 erosion_opencl
31535 Apply erosion effect to the video.
31536
31537 This filter replaces the pixel by the local(3x3) minimum.
31538
31539 It accepts the following options:
31540
31541 threshold0
31542 threshold1
31543 threshold2
31544 threshold3
31545 Limit the maximum change for each plane. Range is "[0, 65535]" and
31546 default value is 65535. If 0, plane will remain unchanged.
31547
31548 coordinates
31549 Flag which specifies the pixel to refer to. Range is "[0, 255]"
31550 and default value is 255, i.e. all eight pixels are used.
31551
31552 Flags to local 3x3 coordinates region centered on "x":
31553
31554 1 2 3
31555
31556 4 x 5
31557
31558 6 7 8
31559
31560 Example
31561
31562 • Apply erosion filter with threshold0 set to 30, threshold1 set 40,
31563 threshold2 set to 50 and coordinates set to 231, setting each pixel
31564 of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
31565 of the 3x3 region centered on it in the input. If the difference
31566 between input pixel and local minimum is more then threshold of the
31567 corresponding plane, output pixel will be set to input pixel -
31568 threshold of corresponding plane.
31569
31570 -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
31571
31572 deshake_opencl
31573 Feature-point based video stabilization filter.
31574
31575 The filter accepts the following options:
31576
31577 tripod
31578 Simulates a tripod by preventing any camera movement whatsoever
31579 from the original frame. Defaults to 0.
31580
31581 debug
31582 Whether or not additional debug info should be displayed, both in
31583 the processed output and in the console.
31584
31585 Note that in order to see console debug output you will also need
31586 to pass "-v verbose" to ffmpeg.
31587
31588 Viewing point matches in the output video is only supported for RGB
31589 input.
31590
31591 Defaults to 0.
31592
31593 adaptive_crop
31594 Whether or not to do a tiny bit of cropping at the borders to cut
31595 down on the amount of mirrored pixels.
31596
31597 Defaults to 1.
31598
31599 refine_features
31600 Whether or not feature points should be refined at a sub-pixel
31601 level.
31602
31603 This can be turned off for a slight performance gain at the cost of
31604 precision.
31605
31606 Defaults to 1.
31607
31608 smooth_strength
31609 The strength of the smoothing applied to the camera path from 0.0
31610 to 1.0.
31611
31612 1.0 is the maximum smoothing strength while values less than that
31613 result in less smoothing.
31614
31615 0.0 causes the filter to adaptively choose a smoothing strength on
31616 a per-frame basis.
31617
31618 Defaults to 0.0.
31619
31620 smooth_window_multiplier
31621 Controls the size of the smoothing window (the number of frames
31622 buffered to determine motion information from).
31623
31624 The size of the smoothing window is determined by multiplying the
31625 framerate of the video by this number.
31626
31627 Acceptable values range from 0.1 to 10.0.
31628
31629 Larger values increase the amount of motion data available for
31630 determining how to smooth the camera path, potentially improving
31631 smoothness, but also increase latency and memory usage.
31632
31633 Defaults to 2.0.
31634
31635 Examples
31636
31637 • Stabilize a video with a fixed, medium smoothing strength:
31638
31639 -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
31640
31641 • Stabilize a video with debugging (both in console and in rendered
31642 video):
31643
31644 -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
31645
31646 dilation_opencl
31647 Apply dilation effect to the video.
31648
31649 This filter replaces the pixel by the local(3x3) maximum.
31650
31651 It accepts the following options:
31652
31653 threshold0
31654 threshold1
31655 threshold2
31656 threshold3
31657 Limit the maximum change for each plane. Range is "[0, 65535]" and
31658 default value is 65535. If 0, plane will remain unchanged.
31659
31660 coordinates
31661 Flag which specifies the pixel to refer to. Range is "[0, 255]"
31662 and default value is 255, i.e. all eight pixels are used.
31663
31664 Flags to local 3x3 coordinates region centered on "x":
31665
31666 1 2 3
31667
31668 4 x 5
31669
31670 6 7 8
31671
31672 Example
31673
31674 • Apply dilation filter with threshold0 set to 30, threshold1 set 40,
31675 threshold2 set to 50 and coordinates set to 231, setting each pixel
31676 of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
31677 of the 3x3 region centered on it in the input. If the difference
31678 between input pixel and local maximum is more then threshold of the
31679 corresponding plane, output pixel will be set to input pixel +
31680 threshold of corresponding plane.
31681
31682 -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
31683
31684 nlmeans_opencl
31685 Non-local Means denoise filter through OpenCL, this filter accepts same
31686 options as nlmeans.
31687
31688 overlay_opencl
31689 Overlay one video on top of another.
31690
31691 It takes two inputs and has one output. The first input is the "main"
31692 video on which the second input is overlaid. This filter requires same
31693 memory layout for all the inputs. So, format conversion may be needed.
31694
31695 The filter accepts the following options:
31696
31697 x Set the x coordinate of the overlaid video on the main video.
31698 Default value is 0.
31699
31700 y Set the y coordinate of the overlaid video on the main video.
31701 Default value is 0.
31702
31703 Examples
31704
31705 • Overlay an image LOGO at the top-left corner of the INPUT video.
31706 Both inputs are yuv420p format.
31707
31708 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
31709
31710 • The inputs have same memory layout for color channels , the overlay
31711 has additional alpha plane, like INPUT is yuv420p, and the LOGO is
31712 yuva420p.
31713
31714 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
31715
31716 pad_opencl
31717 Add paddings to the input image, and place the original input at the
31718 provided x, y coordinates.
31719
31720 It accepts the following options:
31721
31722 width, w
31723 height, h
31724 Specify an expression for the size of the output image with the
31725 paddings added. If the value for width or height is 0, the
31726 corresponding input size is used for the output.
31727
31728 The width expression can reference the value set by the height
31729 expression, and vice versa.
31730
31731 The default value of width and height is 0.
31732
31733 x
31734 y Specify the offsets to place the input image at within the padded
31735 area, with respect to the top/left border of the output image.
31736
31737 The x expression can reference the value set by the y expression,
31738 and vice versa.
31739
31740 The default value of x and y is 0.
31741
31742 If x or y evaluate to a negative number, they'll be changed so the
31743 input image is centered on the padded area.
31744
31745 color
31746 Specify the color of the padded area. For the syntax of this
31747 option, check the "Color" section in the ffmpeg-utils manual.
31748
31749 aspect
31750 Pad to an aspect instead to a resolution.
31751
31752 The value for the width, height, x, and y options are expressions
31753 containing the following constants:
31754
31755 in_w
31756 in_h
31757 The input video width and height.
31758
31759 iw
31760 ih These are the same as in_w and in_h.
31761
31762 out_w
31763 out_h
31764 The output width and height (the size of the padded area), as
31765 specified by the width and height expressions.
31766
31767 ow
31768 oh These are the same as out_w and out_h.
31769
31770 x
31771 y The x and y offsets as specified by the x and y expressions, or NAN
31772 if not yet specified.
31773
31774 a same as iw / ih
31775
31776 sar input sample aspect ratio
31777
31778 dar input display aspect ratio, it is the same as (iw / ih) * sar
31779
31780 prewitt_opencl
31781 Apply the Prewitt operator
31782 (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
31783 stream.
31784
31785 The filter accepts the following option:
31786
31787 planes
31788 Set which planes to filter. Default value is 0xf, by which all
31789 planes are processed.
31790
31791 scale
31792 Set value which will be multiplied with filtered result. Range is
31793 "[0.0, 65535]" and default value is 1.0.
31794
31795 delta
31796 Set value which will be added to filtered result. Range is
31797 "[-65535, 65535]" and default value is 0.0.
31798
31799 Example
31800
31801 • Apply the Prewitt operator with scale set to 2 and delta set to 10.
31802
31803 -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
31804
31805 program_opencl
31806 Filter video using an OpenCL program.
31807
31808 source
31809 OpenCL program source file.
31810
31811 kernel
31812 Kernel name in program.
31813
31814 inputs
31815 Number of inputs to the filter. Defaults to 1.
31816
31817 size, s
31818 Size of output frames. Defaults to the same as the first input.
31819
31820 The "program_opencl" filter also supports the framesync options.
31821
31822 The program source file must contain a kernel function with the given
31823 name, which will be run once for each plane of the output. Each run on
31824 a plane gets enqueued as a separate 2D global NDRange with one work-
31825 item for each pixel to be generated. The global ID offset for each
31826 work-item is therefore the coordinates of a pixel in the destination
31827 image.
31828
31829 The kernel function needs to take the following arguments:
31830
31831 • Destination image, __write_only image2d_t.
31832
31833 This image will become the output; the kernel should write all of
31834 it.
31835
31836 • Frame index, unsigned int.
31837
31838 This is a counter starting from zero and increasing by one for each
31839 frame.
31840
31841 • Source images, __read_only image2d_t.
31842
31843 These are the most recent images on each input. The kernel may
31844 read from them to generate the output, but they can't be written
31845 to.
31846
31847 Example programs:
31848
31849 • Copy the input to the output (output must be the same size as the
31850 input).
31851
31852 __kernel void copy(__write_only image2d_t destination,
31853 unsigned int index,
31854 __read_only image2d_t source)
31855 {
31856 const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
31857
31858 int2 location = (int2)(get_global_id(0), get_global_id(1));
31859
31860 float4 value = read_imagef(source, sampler, location);
31861
31862 write_imagef(destination, location, value);
31863 }
31864
31865 • Apply a simple transformation, rotating the input by an amount
31866 increasing with the index counter. Pixel values are linearly
31867 interpolated by the sampler, and the output need not have the same
31868 dimensions as the input.
31869
31870 __kernel void rotate_image(__write_only image2d_t dst,
31871 unsigned int index,
31872 __read_only image2d_t src)
31873 {
31874 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
31875 CLK_FILTER_LINEAR);
31876
31877 float angle = (float)index / 100.0f;
31878
31879 float2 dst_dim = convert_float2(get_image_dim(dst));
31880 float2 src_dim = convert_float2(get_image_dim(src));
31881
31882 float2 dst_cen = dst_dim / 2.0f;
31883 float2 src_cen = src_dim / 2.0f;
31884
31885 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
31886
31887 float2 dst_pos = convert_float2(dst_loc) - dst_cen;
31888 float2 src_pos = {
31889 cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
31890 sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
31891 };
31892 src_pos = src_pos * src_dim / dst_dim;
31893
31894 float2 src_loc = src_pos + src_cen;
31895
31896 if (src_loc.x < 0.0f || src_loc.y < 0.0f ||
31897 src_loc.x > src_dim.x || src_loc.y > src_dim.y)
31898 write_imagef(dst, dst_loc, 0.5f);
31899 else
31900 write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
31901 }
31902
31903 • Blend two inputs together, with the amount of each input used
31904 varying with the index counter.
31905
31906 __kernel void blend_images(__write_only image2d_t dst,
31907 unsigned int index,
31908 __read_only image2d_t src1,
31909 __read_only image2d_t src2)
31910 {
31911 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
31912 CLK_FILTER_LINEAR);
31913
31914 float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
31915
31916 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
31917 int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
31918 int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
31919
31920 float4 val1 = read_imagef(src1, sampler, src1_loc);
31921 float4 val2 = read_imagef(src2, sampler, src2_loc);
31922
31923 write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
31924 }
31925
31926 remap_opencl
31927 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
31928
31929 Destination pixel at position (X, Y) will be picked from source (x, y)
31930 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
31931 out of range, zero value for pixel will be used for destination pixel.
31932
31933 Xmap and Ymap input video streams must be of same dimensions. Output
31934 video stream will have Xmap/Ymap video stream dimensions. Xmap and
31935 Ymap input video streams are 32bit float pixel format, single channel.
31936
31937 interp
31938 Specify interpolation used for remapping of pixels. Allowed values
31939 are "near" and "linear". Default value is "linear".
31940
31941 fill
31942 Specify the color of the unmapped pixels. For the syntax of this
31943 option, check the "Color" section in the ffmpeg-utils manual.
31944 Default color is "black".
31945
31946 roberts_opencl
31947 Apply the Roberts cross operator
31948 (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
31949
31950 The filter accepts the following option:
31951
31952 planes
31953 Set which planes to filter. Default value is 0xf, by which all
31954 planes are processed.
31955
31956 scale
31957 Set value which will be multiplied with filtered result. Range is
31958 "[0.0, 65535]" and default value is 1.0.
31959
31960 delta
31961 Set value which will be added to filtered result. Range is
31962 "[-65535, 65535]" and default value is 0.0.
31963
31964 Example
31965
31966 • Apply the Roberts cross operator with scale set to 2 and delta set
31967 to 10
31968
31969 -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
31970
31971 sobel_opencl
31972 Apply the Sobel operator
31973 (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
31974
31975 The filter accepts the following option:
31976
31977 planes
31978 Set which planes to filter. Default value is 0xf, by which all
31979 planes are processed.
31980
31981 scale
31982 Set value which will be multiplied with filtered result. Range is
31983 "[0.0, 65535]" and default value is 1.0.
31984
31985 delta
31986 Set value which will be added to filtered result. Range is
31987 "[-65535, 65535]" and default value is 0.0.
31988
31989 Example
31990
31991 • Apply sobel operator with scale set to 2 and delta set to 10
31992
31993 -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
31994
31995 tonemap_opencl
31996 Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
31997
31998 It accepts the following parameters:
31999
32000 tonemap
32001 Specify the tone-mapping operator to be used. Same as tonemap
32002 option in tonemap.
32003
32004 param
32005 Tune the tone mapping algorithm. same as param option in tonemap.
32006
32007 desat
32008 Apply desaturation for highlights that exceed this level of
32009 brightness. The higher the parameter, the more color information
32010 will be preserved. This setting helps prevent unnaturally blown-out
32011 colors for super-highlights, by (smoothly) turning into white
32012 instead. This makes images feel more natural, at the cost of
32013 reducing information about out-of-range colors.
32014
32015 The default value is 0.5, and the algorithm here is a little
32016 different from the cpu version tonemap currently. A setting of 0.0
32017 disables this option.
32018
32019 threshold
32020 The tonemapping algorithm parameters is fine-tuned per each scene.
32021 And a threshold is used to detect whether the scene has changed or
32022 not. If the distance between the current frame average brightness
32023 and the current running average exceeds a threshold value, we would
32024 re-calculate scene average and peak brightness. The default value
32025 is 0.2.
32026
32027 format
32028 Specify the output pixel format.
32029
32030 Currently supported formats are:
32031
32032 p010
32033 nv12
32034 range, r
32035 Set the output color range.
32036
32037 Possible values are:
32038
32039 tv/mpeg
32040 pc/jpeg
32041
32042 Default is same as input.
32043
32044 primaries, p
32045 Set the output color primaries.
32046
32047 Possible values are:
32048
32049 bt709
32050 bt2020
32051
32052 Default is same as input.
32053
32054 transfer, t
32055 Set the output transfer characteristics.
32056
32057 Possible values are:
32058
32059 bt709
32060 bt2020
32061
32062 Default is bt709.
32063
32064 matrix, m
32065 Set the output colorspace matrix.
32066
32067 Possible value are:
32068
32069 bt709
32070 bt2020
32071
32072 Default is same as input.
32073
32074 Example
32075
32076 • Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
32077 format using linear operator.
32078
32079 -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
32080
32081 unsharp_opencl
32082 Sharpen or blur the input video.
32083
32084 It accepts the following parameters:
32085
32086 luma_msize_x, lx
32087 Set the luma matrix horizontal size. Range is "[1, 23]" and
32088 default value is 5.
32089
32090 luma_msize_y, ly
32091 Set the luma matrix vertical size. Range is "[1, 23]" and default
32092 value is 5.
32093
32094 luma_amount, la
32095 Set the luma effect strength. Range is "[-10, 10]" and default
32096 value is 1.0.
32097
32098 Negative values will blur the input video, while positive values
32099 will sharpen it, a value of zero will disable the effect.
32100
32101 chroma_msize_x, cx
32102 Set the chroma matrix horizontal size. Range is "[1, 23]" and
32103 default value is 5.
32104
32105 chroma_msize_y, cy
32106 Set the chroma matrix vertical size. Range is "[1, 23]" and
32107 default value is 5.
32108
32109 chroma_amount, ca
32110 Set the chroma effect strength. Range is "[-10, 10]" and default
32111 value is 0.0.
32112
32113 Negative values will blur the input video, while positive values
32114 will sharpen it, a value of zero will disable the effect.
32115
32116 All parameters are optional and default to the equivalent of the string
32117 '5:5:1.0:5:5:0.0'.
32118
32119 Examples
32120
32121 • Apply strong luma sharpen effect:
32122
32123 -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
32124
32125 • Apply a strong blur of both luma and chroma parameters:
32126
32127 -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
32128
32129 xfade_opencl
32130 Cross fade two videos with custom transition effect by using OpenCL.
32131
32132 It accepts the following options:
32133
32134 transition
32135 Set one of possible transition effects.
32136
32137 custom
32138 Select custom transition effect, the actual transition
32139 description will be picked from source and kernel options.
32140
32141 fade
32142 wipeleft
32143 wiperight
32144 wipeup
32145 wipedown
32146 slideleft
32147 slideright
32148 slideup
32149 slidedown
32150 Default transition is fade.
32151
32152 source
32153 OpenCL program source file for custom transition.
32154
32155 kernel
32156 Set name of kernel to use for custom transition from program source
32157 file.
32158
32159 duration
32160 Set duration of video transition.
32161
32162 offset
32163 Set time of start of transition relative to first video.
32164
32165 The program source file must contain a kernel function with the given
32166 name, which will be run once for each plane of the output. Each run on
32167 a plane gets enqueued as a separate 2D global NDRange with one work-
32168 item for each pixel to be generated. The global ID offset for each
32169 work-item is therefore the coordinates of a pixel in the destination
32170 image.
32171
32172 The kernel function needs to take the following arguments:
32173
32174 • Destination image, __write_only image2d_t.
32175
32176 This image will become the output; the kernel should write all of
32177 it.
32178
32179 • First Source image, __read_only image2d_t. Second Source image,
32180 __read_only image2d_t.
32181
32182 These are the most recent images on each input. The kernel may
32183 read from them to generate the output, but they can't be written
32184 to.
32185
32186 • Transition progress, float. This value is always between 0 and 1
32187 inclusive.
32188
32189 Example programs:
32190
32191 • Apply dots curtain transition effect:
32192
32193 __kernel void blend_images(__write_only image2d_t dst,
32194 __read_only image2d_t src1,
32195 __read_only image2d_t src2,
32196 float progress)
32197 {
32198 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32199 CLK_FILTER_LINEAR);
32200 int2 p = (int2)(get_global_id(0), get_global_id(1));
32201 float2 rp = (float2)(get_global_id(0), get_global_id(1));
32202 float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
32203 rp = rp / dim;
32204
32205 float2 dots = (float2)(20.0, 20.0);
32206 float2 center = (float2)(0,0);
32207 float2 unused;
32208
32209 float4 val1 = read_imagef(src1, sampler, p);
32210 float4 val2 = read_imagef(src2, sampler, p);
32211 bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
32212
32213 write_imagef(dst, p, next ? val1 : val2);
32214 }
32215
32217 VAAPI Video filters are usually used with VAAPI decoder and VAAPI
32218 encoder. Below is a description of VAAPI video filters.
32219
32220 To enable compilation of these filters you need to configure FFmpeg
32221 with "--enable-vaapi".
32222
32223 To use vaapi filters, you need to setup the vaapi device correctly. For
32224 more information, please read
32225 <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
32226
32227 overlay_vaapi
32228 Overlay one video on the top of another.
32229
32230 It takes two inputs and has one output. The first input is the "main"
32231 video on which the second input is overlaid. This filter requires same
32232 memory layout for all the inputs. So, format conversion may be needed.
32233
32234 The filter accepts the following options:
32235
32236 x Set the x coordinate of the overlaid video on the main video.
32237 Default value is 0.
32238
32239 y Set the y coordinate of the overlaid video on the main video.
32240 Default value is 0.
32241
32242 w Set the width of the overlaid video on the main video. Default
32243 value is the width of input overlay video.
32244
32245 h Set the height of the overlaid video on the main video. Default
32246 value is the height of input overlay video.
32247
32248 alpha
32249 Set blocking detection thresholds. Allowed range is 0.0 to 1.0, it
32250 requires an input video with alpha channel. Default value is 0.0.
32251
32252 Examples
32253
32254 • Overlay an image LOGO at the top-left corner of the INPUT video.
32255 Both inputs for this filter are yuv420p format.
32256
32257 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
32258
32259 • Overlay an image LOGO at the offset (200, 100) from the top-left
32260 corner of the INPUT video. The inputs have same memory layout for
32261 color channels, the overlay has additional alpha plane, like INPUT
32262 is yuv420p, and the LOGO is yuva420p.
32263
32264 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_vaapi=x=200:y=100:w=400:h=300:alpha=1.0, hwdownload, format=nv12" OUTPUT
32265
32266 tonemap_vaapi
32267 Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
32268 conversion with tone-mapping. It maps the dynamic range of HDR10
32269 content to the SDR content. It currently only accepts HDR10 as input.
32270
32271 It accepts the following parameters:
32272
32273 format
32274 Specify the output pixel format.
32275
32276 Currently supported formats are:
32277
32278 p010
32279 nv12
32280
32281 Default is nv12.
32282
32283 primaries, p
32284 Set the output color primaries.
32285
32286 Default is same as input.
32287
32288 transfer, t
32289 Set the output transfer characteristics.
32290
32291 Default is bt709.
32292
32293 matrix, m
32294 Set the output colorspace matrix.
32295
32296 Default is same as input.
32297
32298 Example
32299
32300 • Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
32301 format
32302
32303 tonemap_vaapi=format=p010:t=bt2020-10
32304
32306 Below is a description of the currently available video sources.
32307
32308 buffer
32309 Buffer video frames, and make them available to the filter chain.
32310
32311 This source is mainly intended for a programmatic use, in particular
32312 through the interface defined in libavfilter/buffersrc.h.
32313
32314 It accepts the following parameters:
32315
32316 video_size
32317 Specify the size (width and height) of the buffered video frames.
32318 For the syntax of this option, check the "Video size" section in
32319 the ffmpeg-utils manual.
32320
32321 width
32322 The input video width.
32323
32324 height
32325 The input video height.
32326
32327 pix_fmt
32328 A string representing the pixel format of the buffered video
32329 frames. It may be a number corresponding to a pixel format, or a
32330 pixel format name.
32331
32332 time_base
32333 Specify the timebase assumed by the timestamps of the buffered
32334 frames.
32335
32336 frame_rate
32337 Specify the frame rate expected for the video stream.
32338
32339 pixel_aspect, sar
32340 The sample (pixel) aspect ratio of the input video.
32341
32342 sws_param
32343 This option is deprecated and ignored. Prepend "sws_flags=flags;"
32344 to the filtergraph description to specify swscale flags for
32345 automatically inserted scalers. See Filtergraph syntax.
32346
32347 hw_frames_ctx
32348 When using a hardware pixel format, this should be a reference to
32349 an AVHWFramesContext describing input frames.
32350
32351 For example:
32352
32353 buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
32354
32355 will instruct the source to accept video frames with size 320x240 and
32356 with format "yuv410p", assuming 1/24 as the timestamps timebase and
32357 square pixels (1:1 sample aspect ratio). Since the pixel format with
32358 name "yuv410p" corresponds to the number 6 (check the enum
32359 AVPixelFormat definition in libavutil/pixfmt.h), this example
32360 corresponds to:
32361
32362 buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
32363
32364 Alternatively, the options can be specified as a flat string, but this
32365 syntax is deprecated:
32366
32367 width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
32368
32369 cellauto
32370 Create a pattern generated by an elementary cellular automaton.
32371
32372 The initial state of the cellular automaton can be defined through the
32373 filename and pattern options. If such options are not specified an
32374 initial state is created randomly.
32375
32376 At each new frame a new row in the video is filled with the result of
32377 the cellular automaton next generation. The behavior when the whole
32378 frame is filled is defined by the scroll option.
32379
32380 This source accepts the following options:
32381
32382 filename, f
32383 Read the initial cellular automaton state, i.e. the starting row,
32384 from the specified file. In the file, each non-whitespace
32385 character is considered an alive cell, a newline will terminate the
32386 row, and further characters in the file will be ignored.
32387
32388 pattern, p
32389 Read the initial cellular automaton state, i.e. the starting row,
32390 from the specified string.
32391
32392 Each non-whitespace character in the string is considered an alive
32393 cell, a newline will terminate the row, and further characters in
32394 the string will be ignored.
32395
32396 rate, r
32397 Set the video rate, that is the number of frames generated per
32398 second. Default is 25.
32399
32400 random_fill_ratio, ratio
32401 Set the random fill ratio for the initial cellular automaton row.
32402 It is a floating point number value ranging from 0 to 1, defaults
32403 to 1/PHI.
32404
32405 This option is ignored when a file or a pattern is specified.
32406
32407 random_seed, seed
32408 Set the seed for filling randomly the initial row, must be an
32409 integer included between 0 and UINT32_MAX. If not specified, or if
32410 explicitly set to -1, the filter will try to use a good random seed
32411 on a best effort basis.
32412
32413 rule
32414 Set the cellular automaton rule, it is a number ranging from 0 to
32415 255. Default value is 110.
32416
32417 size, s
32418 Set the size of the output video. For the syntax of this option,
32419 check the "Video size" section in the ffmpeg-utils manual.
32420
32421 If filename or pattern is specified, the size is set by default to
32422 the width of the specified initial state row, and the height is set
32423 to width * PHI.
32424
32425 If size is set, it must contain the width of the specified pattern
32426 string, and the specified pattern will be centered in the larger
32427 row.
32428
32429 If a filename or a pattern string is not specified, the size value
32430 defaults to "320x518" (used for a randomly generated initial
32431 state).
32432
32433 scroll
32434 If set to 1, scroll the output upward when all the rows in the
32435 output have been already filled. If set to 0, the new generated row
32436 will be written over the top row just after the bottom row is
32437 filled. Defaults to 1.
32438
32439 start_full, full
32440 If set to 1, completely fill the output with generated rows before
32441 outputting the first frame. This is the default behavior, for
32442 disabling set the value to 0.
32443
32444 stitch
32445 If set to 1, stitch the left and right row edges together. This is
32446 the default behavior, for disabling set the value to 0.
32447
32448 Examples
32449
32450 • Read the initial state from pattern, and specify an output of size
32451 200x400.
32452
32453 cellauto=f=pattern:s=200x400
32454
32455 • Generate a random initial row with a width of 200 cells, with a
32456 fill ratio of 2/3:
32457
32458 cellauto=ratio=2/3:s=200x200
32459
32460 • Create a pattern generated by rule 18 starting by a single alive
32461 cell centered on an initial row with width 100:
32462
32463 cellauto=p=@s=100x400:full=0:rule=18
32464
32465 • Specify a more elaborated initial pattern:
32466
32467 cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
32468
32469 coreimagesrc
32470 Video source generated on GPU using Apple's CoreImage API on OSX.
32471
32472 This video source is a specialized version of the coreimage video
32473 filter. Use a core image generator at the beginning of the applied
32474 filterchain to generate the content.
32475
32476 The coreimagesrc video source accepts the following options:
32477
32478 list_generators
32479 List all available generators along with all their respective
32480 options as well as possible minimum and maximum values along with
32481 the default values.
32482
32483 list_generators=true
32484
32485 size, s
32486 Specify the size of the sourced video. For the syntax of this
32487 option, check the "Video size" section in the ffmpeg-utils manual.
32488 The default value is "320x240".
32489
32490 rate, r
32491 Specify the frame rate of the sourced video, as the number of
32492 frames generated per second. It has to be a string in the format
32493 frame_rate_num/frame_rate_den, an integer number, a floating point
32494 number or a valid video frame rate abbreviation. The default value
32495 is "25".
32496
32497 sar Set the sample aspect ratio of the sourced video.
32498
32499 duration, d
32500 Set the duration of the sourced video. See the Time duration
32501 section in the ffmpeg-utils(1) manual for the accepted syntax.
32502
32503 If not specified, or the expressed duration is negative, the video
32504 is supposed to be generated forever.
32505
32506 Additionally, all options of the coreimage video filter are accepted.
32507 A complete filterchain can be used for further processing of the
32508 generated input without CPU-HOST transfer. See coreimage documentation
32509 and examples for details.
32510
32511 Examples
32512
32513 • Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
32514 given as complete and escaped command-line for Apple's standard
32515 bash shell:
32516
32517 ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
32518
32519 This example is equivalent to the QRCode example of coreimage
32520 without the need for a nullsrc video source.
32521
32522 gradients
32523 Generate several gradients.
32524
32525 size, s
32526 Set frame size. For the syntax of this option, check the "Video
32527 size" section in the ffmpeg-utils manual. Default value is
32528 "640x480".
32529
32530 rate, r
32531 Set frame rate, expressed as number of frames per second. Default
32532 value is "25".
32533
32534 c0, c1, c2, c3, c4, c5, c6, c7
32535 Set 8 colors. Default values for colors is to pick random one.
32536
32537 x0, y0, y0, y1
32538 Set gradient line source and destination points. If negative or out
32539 of range, random ones are picked.
32540
32541 nb_colors, n
32542 Set number of colors to use at once. Allowed range is from 2 to 8.
32543 Default value is 2.
32544
32545 seed
32546 Set seed for picking gradient line points.
32547
32548 duration, d
32549 Set the duration of the sourced video. See the Time duration
32550 section in the ffmpeg-utils(1) manual for the accepted syntax.
32551
32552 If not specified, or the expressed duration is negative, the video
32553 is supposed to be generated forever.
32554
32555 speed
32556 Set speed of gradients rotation.
32557
32558 type, t
32559 Set type of gradients, can be "linear" or "radial" or "circular" or
32560 "spiral".
32561
32562 mandelbrot
32563 Generate a Mandelbrot set fractal, and progressively zoom towards the
32564 point specified with start_x and start_y.
32565
32566 This source accepts the following options:
32567
32568 end_pts
32569 Set the terminal pts value. Default value is 400.
32570
32571 end_scale
32572 Set the terminal scale value. Must be a floating point value.
32573 Default value is 0.3.
32574
32575 inner
32576 Set the inner coloring mode, that is the algorithm used to draw the
32577 Mandelbrot fractal internal region.
32578
32579 It shall assume one of the following values:
32580
32581 black
32582 Set black mode.
32583
32584 convergence
32585 Show time until convergence.
32586
32587 mincol
32588 Set color based on point closest to the origin of the
32589 iterations.
32590
32591 period
32592 Set period mode.
32593
32594 Default value is mincol.
32595
32596 bailout
32597 Set the bailout value. Default value is 10.0.
32598
32599 maxiter
32600 Set the maximum of iterations performed by the rendering algorithm.
32601 Default value is 7189.
32602
32603 outer
32604 Set outer coloring mode. It shall assume one of following values:
32605
32606 iteration_count
32607 Set iteration count mode.
32608
32609 normalized_iteration_count
32610 set normalized iteration count mode.
32611
32612 Default value is normalized_iteration_count.
32613
32614 rate, r
32615 Set frame rate, expressed as number of frames per second. Default
32616 value is "25".
32617
32618 size, s
32619 Set frame size. For the syntax of this option, check the "Video
32620 size" section in the ffmpeg-utils manual. Default value is
32621 "640x480".
32622
32623 start_scale
32624 Set the initial scale value. Default value is 3.0.
32625
32626 start_x
32627 Set the initial x position. Must be a floating point value between
32628 -100 and 100. Default value is
32629 -0.743643887037158704752191506114774.
32630
32631 start_y
32632 Set the initial y position. Must be a floating point value between
32633 -100 and 100. Default value is
32634 -0.131825904205311970493132056385139.
32635
32636 mptestsrc
32637 Generate various test patterns, as generated by the MPlayer test
32638 filter.
32639
32640 The size of the generated video is fixed, and is 256x256. This source
32641 is useful in particular for testing encoding features.
32642
32643 This source accepts the following options:
32644
32645 rate, r
32646 Specify the frame rate of the sourced video, as the number of
32647 frames generated per second. It has to be a string in the format
32648 frame_rate_num/frame_rate_den, an integer number, a floating point
32649 number or a valid video frame rate abbreviation. The default value
32650 is "25".
32651
32652 duration, d
32653 Set the duration of the sourced video. See the Time duration
32654 section in the ffmpeg-utils(1) manual for the accepted syntax.
32655
32656 If not specified, or the expressed duration is negative, the video
32657 is supposed to be generated forever.
32658
32659 test, t
32660 Set the number or the name of the test to perform. Supported tests
32661 are:
32662
32663 dc_luma
32664 dc_chroma
32665 freq_luma
32666 freq_chroma
32667 amp_luma
32668 amp_chroma
32669 cbp
32670 mv
32671 ring1
32672 ring2
32673 all
32674 max_frames, m
32675 Set the maximum number of frames generated for each test,
32676 default value is 30.
32677
32678 Default value is "all", which will cycle through the list of all
32679 tests.
32680
32681 Some examples:
32682
32683 mptestsrc=t=dc_luma
32684
32685 will generate a "dc_luma" test pattern.
32686
32687 frei0r_src
32688 Provide a frei0r source.
32689
32690 To enable compilation of this filter you need to install the frei0r
32691 header and configure FFmpeg with "--enable-frei0r".
32692
32693 This source accepts the following parameters:
32694
32695 size
32696 The size of the video to generate. For the syntax of this option,
32697 check the "Video size" section in the ffmpeg-utils manual.
32698
32699 framerate
32700 The framerate of the generated video. It may be a string of the
32701 form num/den or a frame rate abbreviation.
32702
32703 filter_name
32704 The name to the frei0r source to load. For more information
32705 regarding frei0r and how to set the parameters, read the frei0r
32706 section in the video filters documentation.
32707
32708 filter_params
32709 A '|'-separated list of parameters to pass to the frei0r source.
32710
32711 For example, to generate a frei0r partik0l source with size 200x200 and
32712 frame rate 10 which is overlaid on the overlay filter main input:
32713
32714 frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
32715
32716 life
32717 Generate a life pattern.
32718
32719 This source is based on a generalization of John Conway's life game.
32720
32721 The sourced input represents a life grid, each pixel represents a cell
32722 which can be in one of two possible states, alive or dead. Every cell
32723 interacts with its eight neighbours, which are the cells that are
32724 horizontally, vertically, or diagonally adjacent.
32725
32726 At each interaction the grid evolves according to the adopted rule,
32727 which specifies the number of neighbor alive cells which will make a
32728 cell stay alive or born. The rule option allows one to specify the rule
32729 to adopt.
32730
32731 This source accepts the following options:
32732
32733 filename, f
32734 Set the file from which to read the initial grid state. In the
32735 file, each non-whitespace character is considered an alive cell,
32736 and newline is used to delimit the end of each row.
32737
32738 If this option is not specified, the initial grid is generated
32739 randomly.
32740
32741 rate, r
32742 Set the video rate, that is the number of frames generated per
32743 second. Default is 25.
32744
32745 random_fill_ratio, ratio
32746 Set the random fill ratio for the initial random grid. It is a
32747 floating point number value ranging from 0 to 1, defaults to 1/PHI.
32748 It is ignored when a file is specified.
32749
32750 random_seed, seed
32751 Set the seed for filling the initial random grid, must be an
32752 integer included between 0 and UINT32_MAX. If not specified, or if
32753 explicitly set to -1, the filter will try to use a good random seed
32754 on a best effort basis.
32755
32756 rule
32757 Set the life rule.
32758
32759 A rule can be specified with a code of the kind "SNS/BNB", where NS
32760 and NB are sequences of numbers in the range 0-8, NS specifies the
32761 number of alive neighbor cells which make a live cell stay alive,
32762 and NB the number of alive neighbor cells which make a dead cell to
32763 become alive (i.e. to "born"). "s" and "b" can be used in place of
32764 "S" and "B", respectively.
32765
32766 Alternatively a rule can be specified by an 18-bits integer. The 9
32767 high order bits are used to encode the next cell state if it is
32768 alive for each number of neighbor alive cells, the low order bits
32769 specify the rule for "borning" new cells. Higher order bits encode
32770 for an higher number of neighbor cells. For example the number
32771 6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
32772 rule of 9, which corresponds to "S23/B03".
32773
32774 Default value is "S23/B3", which is the original Conway's game of
32775 life rule, and will keep a cell alive if it has 2 or 3 neighbor
32776 alive cells, and will born a new cell if there are three alive
32777 cells around a dead cell.
32778
32779 size, s
32780 Set the size of the output video. For the syntax of this option,
32781 check the "Video size" section in the ffmpeg-utils manual.
32782
32783 If filename is specified, the size is set by default to the same
32784 size of the input file. If size is set, it must contain the size
32785 specified in the input file, and the initial grid defined in that
32786 file is centered in the larger resulting area.
32787
32788 If a filename is not specified, the size value defaults to
32789 "320x240" (used for a randomly generated initial grid).
32790
32791 stitch
32792 If set to 1, stitch the left and right grid edges together, and the
32793 top and bottom edges also. Defaults to 1.
32794
32795 mold
32796 Set cell mold speed. If set, a dead cell will go from death_color
32797 to mold_color with a step of mold. mold can have a value from 0 to
32798 255.
32799
32800 life_color
32801 Set the color of living (or new born) cells.
32802
32803 death_color
32804 Set the color of dead cells. If mold is set, this is the first
32805 color used to represent a dead cell.
32806
32807 mold_color
32808 Set mold color, for definitely dead and moldy cells.
32809
32810 For the syntax of these 3 color options, check the "Color" section
32811 in the ffmpeg-utils manual.
32812
32813 Examples
32814
32815 • Read a grid from pattern, and center it on a grid of size 300x300
32816 pixels:
32817
32818 life=f=pattern:s=300x300
32819
32820 • Generate a random grid of size 200x200, with a fill ratio of 2/3:
32821
32822 life=ratio=2/3:s=200x200
32823
32824 • Specify a custom rule for evolving a randomly generated grid:
32825
32826 life=rule=S14/B34
32827
32828 • Full example with slow death effect (mold) using ffplay:
32829
32830 ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
32831
32832 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc,
32833 pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc,
32834 testsrc2, yuvtestsrc
32835 The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
32836
32837 The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
32838
32839 The "color" source provides an uniformly colored input.
32840
32841 The "colorchart" source provides a colors checker chart.
32842
32843 The "colorspectrum" source provides a color spectrum input.
32844
32845 The "haldclutsrc" source provides an identity Hald CLUT. See also
32846 haldclut filter.
32847
32848 The "nullsrc" source returns unprocessed video frames. It is mainly
32849 useful to be employed in analysis / debugging tools, or as the source
32850 for filters which ignore the input data.
32851
32852 The "pal75bars" source generates a color bars pattern, based on EBU PAL
32853 recommendations with 75% color levels.
32854
32855 The "pal100bars" source generates a color bars pattern, based on EBU
32856 PAL recommendations with 100% color levels.
32857
32858 The "rgbtestsrc" source generates an RGB test pattern useful for
32859 detecting RGB vs BGR issues. You should see a red, green and blue
32860 stripe from top to bottom.
32861
32862 The "smptebars" source generates a color bars pattern, based on the
32863 SMPTE Engineering Guideline EG 1-1990.
32864
32865 The "smptehdbars" source generates a color bars pattern, based on the
32866 SMPTE RP 219-2002.
32867
32868 The "testsrc" source generates a test video pattern, showing a color
32869 pattern, a scrolling gradient and a timestamp. This is mainly intended
32870 for testing purposes.
32871
32872 The "testsrc2" source is similar to testsrc, but supports more pixel
32873 formats instead of just "rgb24". This allows using it as an input for
32874 other tests without requiring a format conversion.
32875
32876 The "yuvtestsrc" source generates an YUV test pattern. You should see a
32877 y, cb and cr stripe from top to bottom.
32878
32879 The sources accept the following parameters:
32880
32881 level
32882 Specify the level of the Hald CLUT, only available in the
32883 "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
32884 by "N*N*N" pixels to be used as identity matrix for 3D lookup
32885 tables. Each component is coded on a "1/(N*N)" scale.
32886
32887 color, c
32888 Specify the color of the source, only available in the "color"
32889 source. For the syntax of this option, check the "Color" section in
32890 the ffmpeg-utils manual.
32891
32892 size, s
32893 Specify the size of the sourced video. For the syntax of this
32894 option, check the "Video size" section in the ffmpeg-utils manual.
32895 The default value is "320x240".
32896
32897 This option is not available with the "allrgb", "allyuv", and
32898 "haldclutsrc" filters.
32899
32900 rate, r
32901 Specify the frame rate of the sourced video, as the number of
32902 frames generated per second. It has to be a string in the format
32903 frame_rate_num/frame_rate_den, an integer number, a floating point
32904 number or a valid video frame rate abbreviation. The default value
32905 is "25".
32906
32907 duration, d
32908 Set the duration of the sourced video. See the Time duration
32909 section in the ffmpeg-utils(1) manual for the accepted syntax.
32910
32911 If not specified, or the expressed duration is negative, the video
32912 is supposed to be generated forever.
32913
32914 Since the frame rate is used as time base, all frames including the
32915 last one will have their full duration. If the specified duration
32916 is not a multiple of the frame duration, it will be rounded up.
32917
32918 sar Set the sample aspect ratio of the sourced video.
32919
32920 alpha
32921 Specify the alpha (opacity) of the background, only available in
32922 the "testsrc2" source. The value must be between 0 (fully
32923 transparent) and 255 (fully opaque, the default).
32924
32925 decimals, n
32926 Set the number of decimals to show in the timestamp, only available
32927 in the "testsrc" source.
32928
32929 The displayed timestamp value will correspond to the original
32930 timestamp value multiplied by the power of 10 of the specified
32931 value. Default value is 0.
32932
32933 type
32934 Set the type of the color spectrum, only available in the
32935 "colorspectrum" source. Can be one of the following:
32936
32937 black
32938 white
32939 all
32940 patch_size
32941 Set patch size of single color patch, only available in the
32942 "colorchart" source. Default is "64x64".
32943
32944 preset
32945 Set colorchecker colors preset, only available in the "colorchart"
32946 source.
32947
32948 Available values are:
32949
32950 reference
32951 skintones
32952
32953 Default value is "reference".
32954
32955 Examples
32956
32957 • Generate a video with a duration of 5.3 seconds, with size 176x144
32958 and a frame rate of 10 frames per second:
32959
32960 testsrc=duration=5.3:size=qcif:rate=10
32961
32962 • The following graph description will generate a red source with an
32963 opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
32964 second:
32965
32966 color=c=red@0.2:s=qcif:r=10
32967
32968 • If the input content is to be ignored, "nullsrc" can be used. The
32969 following command generates noise in the luminance plane by
32970 employing the "geq" filter:
32971
32972 nullsrc=s=256x256, geq=random(1)*255:128:128
32973
32974 Commands
32975
32976 The "color" source supports the following commands:
32977
32978 c, color
32979 Set the color of the created image. Accepts the same syntax of the
32980 corresponding color option.
32981
32982 openclsrc
32983 Generate video using an OpenCL program.
32984
32985 source
32986 OpenCL program source file.
32987
32988 kernel
32989 Kernel name in program.
32990
32991 size, s
32992 Size of frames to generate. This must be set.
32993
32994 format
32995 Pixel format to use for the generated frames. This must be set.
32996
32997 rate, r
32998 Number of frames generated every second. Default value is '25'.
32999
33000 For details of how the program loading works, see the program_opencl
33001 filter.
33002
33003 Example programs:
33004
33005 • Generate a colour ramp by setting pixel values from the position of
33006 the pixel in the output image. (Note that this will work with all
33007 pixel formats, but the generated output will not be the same.)
33008
33009 __kernel void ramp(__write_only image2d_t dst,
33010 unsigned int index)
33011 {
33012 int2 loc = (int2)(get_global_id(0), get_global_id(1));
33013
33014 float4 val;
33015 val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
33016
33017 write_imagef(dst, loc, val);
33018 }
33019
33020 • Generate a Sierpinski carpet pattern, panning by a single pixel
33021 each frame.
33022
33023 __kernel void sierpinski_carpet(__write_only image2d_t dst,
33024 unsigned int index)
33025 {
33026 int2 loc = (int2)(get_global_id(0), get_global_id(1));
33027
33028 float4 value = 0.0f;
33029 int x = loc.x + index;
33030 int y = loc.y + index;
33031 while (x > 0 || y > 0) {
33032 if (x % 3 == 1 && y % 3 == 1) {
33033 value = 1.0f;
33034 break;
33035 }
33036 x /= 3;
33037 y /= 3;
33038 }
33039
33040 write_imagef(dst, loc, value);
33041 }
33042
33043 sierpinski
33044 Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
33045
33046 This source accepts the following options:
33047
33048 size, s
33049 Set frame size. For the syntax of this option, check the "Video
33050 size" section in the ffmpeg-utils manual. Default value is
33051 "640x480".
33052
33053 rate, r
33054 Set frame rate, expressed as number of frames per second. Default
33055 value is "25".
33056
33057 seed
33058 Set seed which is used for random panning.
33059
33060 jump
33061 Set max jump for single pan destination. Allowed range is from 1 to
33062 10000.
33063
33064 type
33065 Set fractal type, can be default "carpet" or "triangle".
33066
33068 Below is a description of the currently available video sinks.
33069
33070 buffersink
33071 Buffer video frames, and make them available to the end of the filter
33072 graph.
33073
33074 This sink is mainly intended for programmatic use, in particular
33075 through the interface defined in libavfilter/buffersink.h or the
33076 options system.
33077
33078 It accepts a pointer to an AVBufferSinkContext structure, which defines
33079 the incoming buffers' formats, to be passed as the opaque parameter to
33080 "avfilter_init_filter" for initialization.
33081
33082 nullsink
33083 Null video sink: do absolutely nothing with the input video. It is
33084 mainly useful as a template and for use in analysis / debugging tools.
33085
33087 Below is a description of the currently available multimedia filters.
33088
33089 abitscope
33090 Convert input audio to a video output, displaying the audio bit scope.
33091
33092 The filter accepts the following options:
33093
33094 rate, r
33095 Set frame rate, expressed as number of frames per second. Default
33096 value is "25".
33097
33098 size, s
33099 Specify the video size for the output. For the syntax of this
33100 option, check the "Video size" section in the ffmpeg-utils manual.
33101 Default value is "1024x256".
33102
33103 colors
33104 Specify list of colors separated by space or by '|' which will be
33105 used to draw channels. Unrecognized or missing colors will be
33106 replaced by white color.
33107
33108 mode, m
33109 Set output mode. Can be "bars" or "trace". Default is "bars".
33110
33111 adrawgraph
33112 Draw a graph using input audio metadata.
33113
33114 See drawgraph
33115
33116 agraphmonitor
33117 See graphmonitor.
33118
33119 ahistogram
33120 Convert input audio to a video output, displaying the volume histogram.
33121
33122 The filter accepts the following options:
33123
33124 dmode
33125 Specify how histogram is calculated.
33126
33127 It accepts the following values:
33128
33129 single
33130 Use single histogram for all channels.
33131
33132 separate
33133 Use separate histogram for each channel.
33134
33135 Default is "single".
33136
33137 rate, r
33138 Set frame rate, expressed as number of frames per second. Default
33139 value is "25".
33140
33141 size, s
33142 Specify the video size for the output. For the syntax of this
33143 option, check the "Video size" section in the ffmpeg-utils manual.
33144 Default value is "hd720".
33145
33146 scale
33147 Set display scale.
33148
33149 It accepts the following values:
33150
33151 log logarithmic
33152
33153 sqrt
33154 square root
33155
33156 cbrt
33157 cubic root
33158
33159 lin linear
33160
33161 rlog
33162 reverse logarithmic
33163
33164 Default is "log".
33165
33166 ascale
33167 Set amplitude scale.
33168
33169 It accepts the following values:
33170
33171 log logarithmic
33172
33173 lin linear
33174
33175 Default is "log".
33176
33177 acount
33178 Set how much frames to accumulate in histogram. Default is 1.
33179 Setting this to -1 accumulates all frames.
33180
33181 rheight
33182 Set histogram ratio of window height.
33183
33184 slide
33185 Set sonogram sliding.
33186
33187 It accepts the following values:
33188
33189 replace
33190 replace old rows with new ones.
33191
33192 scroll
33193 scroll from top to bottom.
33194
33195 Default is "replace".
33196
33197 hmode
33198 Set histogram mode.
33199
33200 It accepts the following values:
33201
33202 abs Use absolute values of samples.
33203
33204 sign
33205 Use untouched values of samples.
33206
33207 Default is "abs".
33208
33209 aphasemeter
33210 Measures phase of input audio, which is exported as metadata
33211 "lavfi.aphasemeter.phase", representing mean phase of current audio
33212 frame. A video output can also be produced and is enabled by default.
33213 The audio is passed through as first output.
33214
33215 Audio will be rematrixed to stereo if it has a different channel
33216 layout. Phase value is in range "[-1, 1]" where "-1" means left and
33217 right channels are completely out of phase and 1 means channels are in
33218 phase.
33219
33220 The filter accepts the following options, all related to its video
33221 output:
33222
33223 rate, r
33224 Set the output frame rate. Default value is 25.
33225
33226 size, s
33227 Set the video size for the output. For the syntax of this option,
33228 check the "Video size" section in the ffmpeg-utils manual. Default
33229 value is "800x400".
33230
33231 rc
33232 gc
33233 bc Specify the red, green, blue contrast. Default values are 2, 7 and
33234 1. Allowed range is "[0, 255]".
33235
33236 mpc Set color which will be used for drawing median phase. If color is
33237 "none" which is default, no median phase value will be drawn.
33238
33239 video
33240 Enable video output. Default is enabled.
33241
33242 phasing detection
33243
33244 The filter also detects out of phase and mono sequences in stereo
33245 streams. It logs the sequence start, end and duration when it lasts
33246 longer or as long as the minimum set.
33247
33248 The filter accepts the following options for this detection:
33249
33250 phasing
33251 Enable mono and out of phase detection. Default is disabled.
33252
33253 tolerance, t
33254 Set phase tolerance for mono detection, in amplitude ratio. Default
33255 is 0. Allowed range is "[0, 1]".
33256
33257 angle, a
33258 Set angle threshold for out of phase detection, in degree. Default
33259 is 170. Allowed range is "[90, 180]".
33260
33261 duration, d
33262 Set mono or out of phase duration until notification, expressed in
33263 seconds. Default is 2.
33264
33265 Examples
33266
33267 • Complete example with ffmpeg to detect 1 second of mono with 0.001
33268 phase tolerance:
33269
33270 ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
33271
33272 avectorscope
33273 Convert input audio to a video output, representing the audio vector
33274 scope.
33275
33276 The filter is used to measure the difference between channels of stereo
33277 audio stream. A monaural signal, consisting of identical left and right
33278 signal, results in straight vertical line. Any stereo separation is
33279 visible as a deviation from this line, creating a Lissajous figure. If
33280 the straight (or deviation from it) but horizontal line appears this
33281 indicates that the left and right channels are out of phase.
33282
33283 The filter accepts the following options:
33284
33285 mode, m
33286 Set the vectorscope mode.
33287
33288 Available values are:
33289
33290 lissajous
33291 Lissajous rotated by 45 degrees.
33292
33293 lissajous_xy
33294 Same as above but not rotated.
33295
33296 polar
33297 Shape resembling half of circle.
33298
33299 Default value is lissajous.
33300
33301 size, s
33302 Set the video size for the output. For the syntax of this option,
33303 check the "Video size" section in the ffmpeg-utils manual. Default
33304 value is "400x400".
33305
33306 rate, r
33307 Set the output frame rate. Default value is 25.
33308
33309 rc
33310 gc
33311 bc
33312 ac Specify the red, green, blue and alpha contrast. Default values are
33313 40, 160, 80 and 255. Allowed range is "[0, 255]".
33314
33315 rf
33316 gf
33317 bf
33318 af Specify the red, green, blue and alpha fade. Default values are 15,
33319 10, 5 and 5. Allowed range is "[0, 255]".
33320
33321 zoom
33322 Set the zoom factor. Default value is 1. Allowed range is "[0,
33323 10]". Values lower than 1 will auto adjust zoom factor to maximal
33324 possible value.
33325
33326 draw
33327 Set the vectorscope drawing mode.
33328
33329 Available values are:
33330
33331 dot Draw dot for each sample.
33332
33333 line
33334 Draw line between previous and current sample.
33335
33336 Default value is dot.
33337
33338 scale
33339 Specify amplitude scale of audio samples.
33340
33341 Available values are:
33342
33343 lin Linear.
33344
33345 sqrt
33346 Square root.
33347
33348 cbrt
33349 Cubic root.
33350
33351 log Logarithmic.
33352
33353 swap
33354 Swap left channel axis with right channel axis.
33355
33356 mirror
33357 Mirror axis.
33358
33359 none
33360 No mirror.
33361
33362 x Mirror only x axis.
33363
33364 y Mirror only y axis.
33365
33366 xy Mirror both axis.
33367
33368 Examples
33369
33370 • Complete example using ffplay:
33371
33372 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
33373 [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
33374
33375 Commands
33376
33377 This filter supports the all above options as commands except options
33378 "size" and "rate".
33379
33380 bench, abench
33381 Benchmark part of a filtergraph.
33382
33383 The filter accepts the following options:
33384
33385 action
33386 Start or stop a timer.
33387
33388 Available values are:
33389
33390 start
33391 Get the current time, set it as frame metadata (using the key
33392 "lavfi.bench.start_time"), and forward the frame to the next
33393 filter.
33394
33395 stop
33396 Get the current time and fetch the "lavfi.bench.start_time"
33397 metadata from the input frame metadata to get the time
33398 difference. Time difference, average, maximum and minimum time
33399 (respectively "t", "avg", "max" and "min") are then printed.
33400 The timestamps are expressed in seconds.
33401
33402 Examples
33403
33404 • Benchmark selectivecolor filter:
33405
33406 bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
33407
33408 concat
33409 Concatenate audio and video streams, joining them together one after
33410 the other.
33411
33412 The filter works on segments of synchronized video and audio streams.
33413 All segments must have the same number of streams of each type, and
33414 that will also be the number of streams at output.
33415
33416 The filter accepts the following options:
33417
33418 n Set the number of segments. Default is 2.
33419
33420 v Set the number of output video streams, that is also the number of
33421 video streams in each segment. Default is 1.
33422
33423 a Set the number of output audio streams, that is also the number of
33424 audio streams in each segment. Default is 0.
33425
33426 unsafe
33427 Activate unsafe mode: do not fail if segments have a different
33428 format.
33429
33430 The filter has v+a outputs: first v video outputs, then a audio
33431 outputs.
33432
33433 There are nx(v+a) inputs: first the inputs for the first segment, in
33434 the same order as the outputs, then the inputs for the second segment,
33435 etc.
33436
33437 Related streams do not always have exactly the same duration, for
33438 various reasons including codec frame size or sloppy authoring. For
33439 that reason, related synchronized streams (e.g. a video and its audio
33440 track) should be concatenated at once. The concat filter will use the
33441 duration of the longest stream in each segment (except the last one),
33442 and if necessary pad shorter audio streams with silence.
33443
33444 For this filter to work correctly, all segments must start at timestamp
33445 0.
33446
33447 All corresponding streams must have the same parameters in all
33448 segments; the filtering system will automatically select a common pixel
33449 format for video streams, and a common sample format, sample rate and
33450 channel layout for audio streams, but other settings, such as
33451 resolution, must be converted explicitly by the user.
33452
33453 Different frame rates are acceptable but will result in variable frame
33454 rate at output; be sure to configure the output file to handle it.
33455
33456 Examples
33457
33458 • Concatenate an opening, an episode and an ending, all in bilingual
33459 version (video in stream 0, audio in streams 1 and 2):
33460
33461 ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
33462 '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
33463 concat=n=3:v=1:a=2 [v] [a1] [a2]' \
33464 -map '[v]' -map '[a1]' -map '[a2]' output.mkv
33465
33466 • Concatenate two parts, handling audio and video separately, using
33467 the (a)movie sources, and adjusting the resolution:
33468
33469 movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
33470 movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
33471 [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
33472
33473 Note that a desync will happen at the stitch if the audio and video
33474 streams do not have exactly the same duration in the first file.
33475
33476 Commands
33477
33478 This filter supports the following commands:
33479
33480 next
33481 Close the current segment and step to the next one
33482
33483 ebur128
33484 EBU R128 scanner filter. This filter takes an audio stream and analyzes
33485 its loudness level. By default, it logs a message at a frequency of
33486 10Hz with the Momentary loudness (identified by "M"), Short-term
33487 loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
33488
33489 The filter can only analyze streams which have sample format is double-
33490 precision floating point. The input stream will be converted to this
33491 specification, if needed. Users may need to insert aformat and/or
33492 aresample filters after this filter to obtain the original parameters.
33493
33494 The filter also has a video output (see the video option) with a real
33495 time graph to observe the loudness evolution. The graphic contains the
33496 logged message mentioned above, so it is not printed anymore when this
33497 option is set, unless the verbose logging is set. The main graphing
33498 area contains the short-term loudness (3 seconds of analysis), and the
33499 gauge on the right is for the momentary loudness (400 milliseconds),
33500 but can optionally be configured to instead display short-term loudness
33501 (see gauge).
33502
33503 The green area marks a +/- 1LU target range around the target loudness
33504 (-23LUFS by default, unless modified through target).
33505
33506 More information about the Loudness Recommendation EBU R128 on
33507 <http://tech.ebu.ch/loudness>.
33508
33509 The filter accepts the following options:
33510
33511 video
33512 Activate the video output. The audio stream is passed unchanged
33513 whether this option is set or no. The video stream will be the
33514 first output stream if activated. Default is 0.
33515
33516 size
33517 Set the video size. This option is for video only. For the syntax
33518 of this option, check the "Video size" section in the ffmpeg-utils
33519 manual. Default and minimum resolution is "640x480".
33520
33521 meter
33522 Set the EBU scale meter. Default is 9. Common values are 9 and 18,
33523 respectively for EBU scale meter +9 and EBU scale meter +18. Any
33524 other integer value between this range is allowed.
33525
33526 metadata
33527 Set metadata injection. If set to 1, the audio input will be
33528 segmented into 100ms output frames, each of them containing various
33529 loudness information in metadata. All the metadata keys are
33530 prefixed with "lavfi.r128.".
33531
33532 Default is 0.
33533
33534 framelog
33535 Force the frame logging level.
33536
33537 Available values are:
33538
33539 info
33540 information logging level
33541
33542 verbose
33543 verbose logging level
33544
33545 By default, the logging level is set to info. If the video or the
33546 metadata options are set, it switches to verbose.
33547
33548 peak
33549 Set peak mode(s).
33550
33551 Available modes can be cumulated (the option is a "flag" type).
33552 Possible values are:
33553
33554 none
33555 Disable any peak mode (default).
33556
33557 sample
33558 Enable sample-peak mode.
33559
33560 Simple peak mode looking for the higher sample value. It logs a
33561 message for sample-peak (identified by "SPK").
33562
33563 true
33564 Enable true-peak mode.
33565
33566 If enabled, the peak lookup is done on an over-sampled version
33567 of the input stream for better peak accuracy. It logs a message
33568 for true-peak. (identified by "TPK") and true-peak per frame
33569 (identified by "FTPK"). This mode requires a build with
33570 "libswresample".
33571
33572 dualmono
33573 Treat mono input files as "dual mono". If a mono file is intended
33574 for playback on a stereo system, its EBU R128 measurement will be
33575 perceptually incorrect. If set to "true", this option will
33576 compensate for this effect. Multi-channel input files are not
33577 affected by this option.
33578
33579 panlaw
33580 Set a specific pan law to be used for the measurement of dual mono
33581 files. This parameter is optional, and has a default value of
33582 -3.01dB.
33583
33584 target
33585 Set a specific target level (in LUFS) used as relative zero in the
33586 visualization. This parameter is optional and has a default value
33587 of -23LUFS as specified by EBU R128. However, material published
33588 online may prefer a level of -16LUFS (e.g. for use with podcasts or
33589 video platforms).
33590
33591 gauge
33592 Set the value displayed by the gauge. Valid values are "momentary"
33593 and s "shortterm". By default the momentary value will be used, but
33594 in certain scenarios it may be more useful to observe the short
33595 term value instead (e.g. live mixing).
33596
33597 scale
33598 Sets the display scale for the loudness. Valid parameters are
33599 "absolute" (in LUFS) or "relative" (LU) relative to the target.
33600 This only affects the video output, not the summary or continuous
33601 log output.
33602
33603 Examples
33604
33605 • Real-time graph using ffplay, with a EBU scale meter +18:
33606
33607 ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
33608
33609 • Run an analysis with ffmpeg:
33610
33611 ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
33612
33613 interleave, ainterleave
33614 Temporally interleave frames from several inputs.
33615
33616 "interleave" works with video inputs, "ainterleave" with audio.
33617
33618 These filters read frames from several inputs and send the oldest
33619 queued frame to the output.
33620
33621 Input streams must have well defined, monotonically increasing frame
33622 timestamp values.
33623
33624 In order to submit one frame to output, these filters need to enqueue
33625 at least one frame for each input, so they cannot work in case one
33626 input is not yet terminated and will not receive incoming frames.
33627
33628 For example consider the case when one input is a "select" filter which
33629 always drops input frames. The "interleave" filter will keep reading
33630 from that input, but it will never be able to send new frames to output
33631 until the input sends an end-of-stream signal.
33632
33633 Also, depending on inputs synchronization, the filters will drop frames
33634 in case one input receives more frames than the other ones, and the
33635 queue is already filled.
33636
33637 These filters accept the following options:
33638
33639 nb_inputs, n
33640 Set the number of different inputs, it is 2 by default.
33641
33642 duration
33643 How to determine the end-of-stream.
33644
33645 longest
33646 The duration of the longest input. (default)
33647
33648 shortest
33649 The duration of the shortest input.
33650
33651 first
33652 The duration of the first input.
33653
33654 Examples
33655
33656 • Interleave frames belonging to different streams using ffmpeg:
33657
33658 ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
33659
33660 • Add flickering blur effect:
33661
33662 select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
33663
33664 latency, alatency
33665 Measure filtering latency.
33666
33667 Report previous filter filtering latency, delay in number of audio
33668 samples for audio filters or number of video frames for video filters.
33669
33670 On end of input stream, filter will report min and max measured latency
33671 for previous running filter in filtergraph.
33672
33673 metadata, ametadata
33674 Manipulate frame metadata.
33675
33676 This filter accepts the following options:
33677
33678 mode
33679 Set mode of operation of the filter.
33680
33681 Can be one of the following:
33682
33683 select
33684 If both "value" and "key" is set, select frames which have such
33685 metadata. If only "key" is set, select every frame that has
33686 such key in metadata.
33687
33688 add Add new metadata "key" and "value". If key is already available
33689 do nothing.
33690
33691 modify
33692 Modify value of already present key.
33693
33694 delete
33695 If "value" is set, delete only keys that have such value.
33696 Otherwise, delete key. If "key" is not set, delete all metadata
33697 values in the frame.
33698
33699 print
33700 Print key and its value if metadata was found. If "key" is not
33701 set print all metadata values available in frame.
33702
33703 key Set key used with all modes. Must be set for all modes except
33704 "print" and "delete".
33705
33706 value
33707 Set metadata value which will be used. This option is mandatory for
33708 "modify" and "add" mode.
33709
33710 function
33711 Which function to use when comparing metadata value and "value".
33712
33713 Can be one of following:
33714
33715 same_str
33716 Values are interpreted as strings, returns true if metadata
33717 value is same as "value".
33718
33719 starts_with
33720 Values are interpreted as strings, returns true if metadata
33721 value starts with the "value" option string.
33722
33723 less
33724 Values are interpreted as floats, returns true if metadata
33725 value is less than "value".
33726
33727 equal
33728 Values are interpreted as floats, returns true if "value" is
33729 equal with metadata value.
33730
33731 greater
33732 Values are interpreted as floats, returns true if metadata
33733 value is greater than "value".
33734
33735 expr
33736 Values are interpreted as floats, returns true if expression
33737 from option "expr" evaluates to true.
33738
33739 ends_with
33740 Values are interpreted as strings, returns true if metadata
33741 value ends with the "value" option string.
33742
33743 expr
33744 Set expression which is used when "function" is set to "expr". The
33745 expression is evaluated through the eval API and can contain the
33746 following constants:
33747
33748 VALUE1, FRAMEVAL
33749 Float representation of "value" from metadata key.
33750
33751 VALUE2, USERVAL
33752 Float representation of "value" as supplied by user in "value"
33753 option.
33754
33755 file
33756 If specified in "print" mode, output is written to the named file.
33757 Instead of plain filename any writable url can be specified.
33758 Filename ``-'' is a shorthand for standard output. If "file" option
33759 is not set, output is written to the log with AV_LOG_INFO loglevel.
33760
33761 direct
33762 Reduces buffering in print mode when output is written to a URL set
33763 using file.
33764
33765 Examples
33766
33767 • Print all metadata values for frames with key
33768 "lavfi.signalstats.YDIF" with values between 0 and 1.
33769
33770 signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
33771
33772 • Print silencedetect output to file metadata.txt.
33773
33774 silencedetect,ametadata=mode=print:file=metadata.txt
33775
33776 • Direct all metadata to a pipe with file descriptor 4.
33777
33778 metadata=mode=print:file='pipe\:4'
33779
33780 perms, aperms
33781 Set read/write permissions for the output frames.
33782
33783 These filters are mainly aimed at developers to test direct path in the
33784 following filter in the filtergraph.
33785
33786 The filters accept the following options:
33787
33788 mode
33789 Select the permissions mode.
33790
33791 It accepts the following values:
33792
33793 none
33794 Do nothing. This is the default.
33795
33796 ro Set all the output frames read-only.
33797
33798 rw Set all the output frames directly writable.
33799
33800 toggle
33801 Make the frame read-only if writable, and writable if read-
33802 only.
33803
33804 random
33805 Set each output frame read-only or writable randomly.
33806
33807 seed
33808 Set the seed for the random mode, must be an integer included
33809 between 0 and "UINT32_MAX". If not specified, or if explicitly set
33810 to "-1", the filter will try to use a good random seed on a best
33811 effort basis.
33812
33813 Note: in case of auto-inserted filter between the permission filter and
33814 the following one, the permission might not be received as expected in
33815 that following filter. Inserting a format or aformat filter before the
33816 perms/aperms filter can avoid this problem.
33817
33818 realtime, arealtime
33819 Slow down filtering to match real time approximately.
33820
33821 These filters will pause the filtering for a variable amount of time to
33822 match the output rate with the input timestamps. They are similar to
33823 the re option to "ffmpeg".
33824
33825 They accept the following options:
33826
33827 limit
33828 Time limit for the pauses. Any pause longer than that will be
33829 considered a timestamp discontinuity and reset the timer. Default
33830 is 2 seconds.
33831
33832 speed
33833 Speed factor for processing. The value must be a float larger than
33834 zero. Values larger than 1.0 will result in faster than realtime
33835 processing, smaller will slow processing down. The limit is
33836 automatically adapted accordingly. Default is 1.0.
33837
33838 A processing speed faster than what is possible without these
33839 filters cannot be achieved.
33840
33841 Commands
33842
33843 Both filters supports the all above options as commands.
33844
33845 segment, asegment
33846 Split single input stream into multiple streams.
33847
33848 This filter does opposite of concat filters.
33849
33850 "segment" works on video frames, "asegment" on audio samples.
33851
33852 This filter accepts the following options:
33853
33854 timestamps
33855 Timestamps of output segments separated by '|'. The first segment
33856 will run from the beginning of the input stream. The last segment
33857 will run until the end of the input stream
33858
33859 frames, samples
33860 Exact frame/sample count to split the segments.
33861
33862 In all cases, prefixing an each segment with '+' will make it relative
33863 to the previous segment.
33864
33865 Examples
33866
33867 • Split input audio stream into three output audio streams, starting
33868 at start of input audio stream and storing that in 1st output audio
33869 stream, then following at 60th second and storing than in 2nd
33870 output audio stream, and last after 150th second of input audio
33871 stream store in 3rd output audio stream:
33872
33873 asegment=timestamps="60|150"
33874
33875 select, aselect
33876 Select frames to pass in output.
33877
33878 This filter accepts the following options:
33879
33880 expr, e
33881 Set expression, which is evaluated for each input frame.
33882
33883 If the expression is evaluated to zero, the frame is discarded.
33884
33885 If the evaluation result is negative or NaN, the frame is sent to
33886 the first output; otherwise it is sent to the output with index
33887 "ceil(val)-1", assuming that the input index starts from 0.
33888
33889 For example a value of 1.2 corresponds to the output with index
33890 "ceil(1.2)-1 = 2-1 = 1", that is the second output.
33891
33892 outputs, n
33893 Set the number of outputs. The output to which to send the selected
33894 frame is based on the result of the evaluation. Default value is 1.
33895
33896 The expression can contain the following constants:
33897
33898 n The (sequential) number of the filtered frame, starting from 0.
33899
33900 selected_n
33901 The (sequential) number of the selected frame, starting from 0.
33902
33903 prev_selected_n
33904 The sequential number of the last selected frame. It's NAN if
33905 undefined.
33906
33907 TB The timebase of the input timestamps.
33908
33909 pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
33910 in TB units. It's NAN if undefined.
33911
33912 t The PTS of the filtered frame, expressed in seconds. It's NAN if
33913 undefined.
33914
33915 prev_pts
33916 The PTS of the previously filtered frame. It's NAN if undefined.
33917
33918 prev_selected_pts
33919 The PTS of the last previously filtered frame. It's NAN if
33920 undefined.
33921
33922 prev_selected_t
33923 The PTS of the last previously selected frame, expressed in
33924 seconds. It's NAN if undefined.
33925
33926 start_pts
33927 The first PTS in the stream which is not NAN. It remains NAN if not
33928 found.
33929
33930 start_t
33931 The first PTS, in seconds, in the stream which is not NAN. It
33932 remains NAN if not found.
33933
33934 pict_type (video only)
33935 The type of the filtered frame. It can assume one of the following
33936 values:
33937
33938 I
33939 P
33940 B
33941 S
33942 SI
33943 SP
33944 BI
33945 interlace_type (video only)
33946 The frame interlace type. It can assume one of the following
33947 values:
33948
33949 PROGRESSIVE
33950 The frame is progressive (not interlaced).
33951
33952 TOPFIRST
33953 The frame is top-field-first.
33954
33955 BOTTOMFIRST
33956 The frame is bottom-field-first.
33957
33958 consumed_sample_n (audio only)
33959 the number of selected samples before the current frame
33960
33961 samples_n (audio only)
33962 the number of samples in the current frame
33963
33964 sample_rate (audio only)
33965 the input sample rate
33966
33967 key This is 1 if the filtered frame is a key-frame, 0 otherwise.
33968
33969 pos the position in the file of the filtered frame, -1 if the
33970 information is not available (e.g. for synthetic video)
33971
33972 scene (video only)
33973 value between 0 and 1 to indicate a new scene; a low value reflects
33974 a low probability for the current frame to introduce a new scene,
33975 while a higher value means the current frame is more likely to be
33976 one (see the example below)
33977
33978 concatdec_select
33979 The concat demuxer can select only part of a concat input file by
33980 setting an inpoint and an outpoint, but the output packets may not
33981 be entirely contained in the selected interval. By using this
33982 variable, it is possible to skip frames generated by the concat
33983 demuxer which are not exactly contained in the selected interval.
33984
33985 This works by comparing the frame pts against the
33986 lavf.concat.start_time and the lavf.concat.duration packet metadata
33987 values which are also present in the decoded frames.
33988
33989 The concatdec_select variable is -1 if the frame pts is at least
33990 start_time and either the duration metadata is missing or the frame
33991 pts is less than start_time + duration, 0 otherwise, and NaN if the
33992 start_time metadata is missing.
33993
33994 That basically means that an input frame is selected if its pts is
33995 within the interval set by the concat demuxer.
33996
33997 The default value of the select expression is "1".
33998
33999 Examples
34000
34001 • Select all frames in input:
34002
34003 select
34004
34005 The example above is the same as:
34006
34007 select=1
34008
34009 • Skip all frames:
34010
34011 select=0
34012
34013 • Select only I-frames:
34014
34015 select='eq(pict_type\,I)'
34016
34017 • Select one frame every 100:
34018
34019 select='not(mod(n\,100))'
34020
34021 • Select only frames contained in the 10-20 time interval:
34022
34023 select=between(t\,10\,20)
34024
34025 • Select only I-frames contained in the 10-20 time interval:
34026
34027 select=between(t\,10\,20)*eq(pict_type\,I)
34028
34029 • Select frames with a minimum distance of 10 seconds:
34030
34031 select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
34032
34033 • Use aselect to select only audio frames with samples number > 100:
34034
34035 aselect='gt(samples_n\,100)'
34036
34037 • Create a mosaic of the first scenes:
34038
34039 ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
34040
34041 Comparing scene against a value between 0.3 and 0.5 is generally a
34042 sane choice.
34043
34044 • Send even and odd frames to separate outputs, and compose them:
34045
34046 select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
34047
34048 • Select useful frames from an ffconcat file which is using inpoints
34049 and outpoints but where the source files are not intra frame only.
34050
34051 ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
34052
34053 sendcmd, asendcmd
34054 Send commands to filters in the filtergraph.
34055
34056 These filters read commands to be sent to other filters in the
34057 filtergraph.
34058
34059 "sendcmd" must be inserted between two video filters, "asendcmd" must
34060 be inserted between two audio filters, but apart from that they act the
34061 same way.
34062
34063 The specification of commands can be provided in the filter arguments
34064 with the commands option, or in a file specified by the filename
34065 option.
34066
34067 These filters accept the following options:
34068
34069 commands, c
34070 Set the commands to be read and sent to the other filters.
34071
34072 filename, f
34073 Set the filename of the commands to be read and sent to the other
34074 filters.
34075
34076 Commands syntax
34077
34078 A commands description consists of a sequence of interval
34079 specifications, comprising a list of commands to be executed when a
34080 particular event related to that interval occurs. The occurring event
34081 is typically the current frame time entering or leaving a given time
34082 interval.
34083
34084 An interval is specified by the following syntax:
34085
34086 <START>[-<END>] <COMMANDS>;
34087
34088 The time interval is specified by the START and END times. END is
34089 optional and defaults to the maximum time.
34090
34091 The current frame time is considered within the specified interval if
34092 it is included in the interval [START, END), that is when the time is
34093 greater or equal to START and is lesser than END.
34094
34095 COMMANDS consists of a sequence of one or more command specifications,
34096 separated by ",", relating to that interval. The syntax of a command
34097 specification is given by:
34098
34099 [<FLAGS>] <TARGET> <COMMAND> <ARG>
34100
34101 FLAGS is optional and specifies the type of events relating to the time
34102 interval which enable sending the specified command, and must be a non-
34103 null sequence of identifier flags separated by "+" or "|" and enclosed
34104 between "[" and "]".
34105
34106 The following flags are recognized:
34107
34108 enter
34109 The command is sent when the current frame timestamp enters the
34110 specified interval. In other words, the command is sent when the
34111 previous frame timestamp was not in the given interval, and the
34112 current is.
34113
34114 leave
34115 The command is sent when the current frame timestamp leaves the
34116 specified interval. In other words, the command is sent when the
34117 previous frame timestamp was in the given interval, and the current
34118 is not.
34119
34120 expr
34121 The command ARG is interpreted as expression and result of
34122 expression is passed as ARG.
34123
34124 The expression is evaluated through the eval API and can contain
34125 the following constants:
34126
34127 POS Original position in the file of the frame, or undefined if
34128 undefined for the current frame.
34129
34130 PTS The presentation timestamp in input.
34131
34132 N The count of the input frame for video or audio, starting from
34133 0.
34134
34135 T The time in seconds of the current frame.
34136
34137 TS The start time in seconds of the current command interval.
34138
34139 TE The end time in seconds of the current command interval.
34140
34141 TI The interpolated time of the current command interval, TI = (T
34142 - TS) / (TE - TS).
34143
34144 W The video frame width.
34145
34146 H The video frame height.
34147
34148 If FLAGS is not specified, a default value of "[enter]" is assumed.
34149
34150 TARGET specifies the target of the command, usually the name of the
34151 filter class or a specific filter instance name.
34152
34153 COMMAND specifies the name of the command for the target filter.
34154
34155 ARG is optional and specifies the optional list of argument for the
34156 given COMMAND.
34157
34158 Between one interval specification and another, whitespaces, or
34159 sequences of characters starting with "#" until the end of line, are
34160 ignored and can be used to annotate comments.
34161
34162 A simplified BNF description of the commands specification syntax
34163 follows:
34164
34165 <COMMAND_FLAG> ::= "enter" | "leave"
34166 <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
34167 <COMMAND> ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
34168 <COMMANDS> ::= <COMMAND> [,<COMMANDS>]
34169 <INTERVAL> ::= <START>[-<END>] <COMMANDS>
34170 <INTERVALS> ::= <INTERVAL>[;<INTERVALS>]
34171
34172 Examples
34173
34174 • Specify audio tempo change at second 4:
34175
34176 asendcmd=c='4.0 atempo tempo 1.5',atempo
34177
34178 • Target a specific filter instance:
34179
34180 asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
34181
34182 • Specify a list of drawtext and hue commands in a file.
34183
34184 # show text in the interval 5-10
34185 5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
34186 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
34187
34188 # desaturate the image in the interval 15-20
34189 15.0-20.0 [enter] hue s 0,
34190 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
34191 [leave] hue s 1,
34192 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
34193
34194 # apply an exponential saturation fade-out effect, starting from time 25
34195 25 [enter] hue s exp(25-t)
34196
34197 A filtergraph allowing to read and process the above command list
34198 stored in a file test.cmd, can be specified with:
34199
34200 sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
34201
34202 setpts, asetpts
34203 Change the PTS (presentation timestamp) of the input frames.
34204
34205 "setpts" works on video frames, "asetpts" on audio frames.
34206
34207 This filter accepts the following options:
34208
34209 expr
34210 The expression which is evaluated for each frame to construct its
34211 timestamp.
34212
34213 The expression is evaluated through the eval API and can contain the
34214 following constants:
34215
34216 FRAME_RATE, FR
34217 frame rate, only defined for constant frame-rate video
34218
34219 PTS The presentation timestamp in input
34220
34221 N The count of the input frame for video or the number of consumed
34222 samples, not including the current frame for audio, starting from
34223 0.
34224
34225 NB_CONSUMED_SAMPLES
34226 The number of consumed samples, not including the current frame
34227 (only audio)
34228
34229 NB_SAMPLES, S
34230 The number of samples in the current frame (only audio)
34231
34232 SAMPLE_RATE, SR
34233 The audio sample rate.
34234
34235 STARTPTS
34236 The PTS of the first frame.
34237
34238 STARTT
34239 the time in seconds of the first frame
34240
34241 INTERLACED
34242 State whether the current frame is interlaced.
34243
34244 T the time in seconds of the current frame
34245
34246 POS original position in the file of the frame, or undefined if
34247 undefined for the current frame
34248
34249 PREV_INPTS
34250 The previous input PTS.
34251
34252 PREV_INT
34253 previous input time in seconds
34254
34255 PREV_OUTPTS
34256 The previous output PTS.
34257
34258 PREV_OUTT
34259 previous output time in seconds
34260
34261 RTCTIME
34262 The wallclock (RTC) time in microseconds. This is deprecated, use
34263 time(0) instead.
34264
34265 RTCSTART
34266 The wallclock (RTC) time at the start of the movie in microseconds.
34267
34268 TB The timebase of the input timestamps.
34269
34270 Examples
34271
34272 • Start counting PTS from zero
34273
34274 setpts=PTS-STARTPTS
34275
34276 • Apply fast motion effect:
34277
34278 setpts=0.5*PTS
34279
34280 • Apply slow motion effect:
34281
34282 setpts=2.0*PTS
34283
34284 • Set fixed rate of 25 frames per second:
34285
34286 setpts=N/(25*TB)
34287
34288 • Set fixed rate 25 fps with some jitter:
34289
34290 setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
34291
34292 • Apply an offset of 10 seconds to the input PTS:
34293
34294 setpts=PTS+10/TB
34295
34296 • Generate timestamps from a "live source" and rebase onto the
34297 current timebase:
34298
34299 setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
34300
34301 • Generate timestamps by counting samples:
34302
34303 asetpts=N/SR/TB
34304
34305 setrange
34306 Force color range for the output video frame.
34307
34308 The "setrange" filter marks the color range property for the output
34309 frames. It does not change the input frame, but only sets the
34310 corresponding property, which affects how the frame is treated by
34311 following filters.
34312
34313 The filter accepts the following options:
34314
34315 range
34316 Available values are:
34317
34318 auto
34319 Keep the same color range property.
34320
34321 unspecified, unknown
34322 Set the color range as unspecified.
34323
34324 limited, tv, mpeg
34325 Set the color range as limited.
34326
34327 full, pc, jpeg
34328 Set the color range as full.
34329
34330 settb, asettb
34331 Set the timebase to use for the output frames timestamps. It is mainly
34332 useful for testing timebase configuration.
34333
34334 It accepts the following parameters:
34335
34336 expr, tb
34337 The expression which is evaluated into the output timebase.
34338
34339 The value for tb is an arithmetic expression representing a rational.
34340 The expression can contain the constants "AVTB" (the default timebase),
34341 "intb" (the input timebase) and "sr" (the sample rate, audio only).
34342 Default value is "intb".
34343
34344 Examples
34345
34346 • Set the timebase to 1/25:
34347
34348 settb=expr=1/25
34349
34350 • Set the timebase to 1/10:
34351
34352 settb=expr=0.1
34353
34354 • Set the timebase to 1001/1000:
34355
34356 settb=1+0.001
34357
34358 • Set the timebase to 2*intb:
34359
34360 settb=2*intb
34361
34362 • Set the default timebase value:
34363
34364 settb=AVTB
34365
34366 showcqt
34367 Convert input audio to a video output representing frequency spectrum
34368 logarithmically using Brown-Puckette constant Q transform algorithm
34369 with direct frequency domain coefficient calculation (but the transform
34370 itself is not really constant Q, instead the Q factor is actually
34371 variable/clamped), with musical tone scale, from E0 to D#10.
34372
34373 The filter accepts the following options:
34374
34375 size, s
34376 Specify the video size for the output. It must be even. For the
34377 syntax of this option, check the "Video size" section in the
34378 ffmpeg-utils manual. Default value is "1920x1080".
34379
34380 fps, rate, r
34381 Set the output frame rate. Default value is 25.
34382
34383 bar_h
34384 Set the bargraph height. It must be even. Default value is "-1"
34385 which computes the bargraph height automatically.
34386
34387 axis_h
34388 Set the axis height. It must be even. Default value is "-1" which
34389 computes the axis height automatically.
34390
34391 sono_h
34392 Set the sonogram height. It must be even. Default value is "-1"
34393 which computes the sonogram height automatically.
34394
34395 fullhd
34396 Set the fullhd resolution. This option is deprecated, use size, s
34397 instead. Default value is 1.
34398
34399 sono_v, volume
34400 Specify the sonogram volume expression. It can contain variables:
34401
34402 bar_v
34403 the bar_v evaluated expression
34404
34405 frequency, freq, f
34406 the frequency where it is evaluated
34407
34408 timeclamp, tc
34409 the value of timeclamp option
34410
34411 and functions:
34412
34413 a_weighting(f)
34414 A-weighting of equal loudness
34415
34416 b_weighting(f)
34417 B-weighting of equal loudness
34418
34419 c_weighting(f)
34420 C-weighting of equal loudness.
34421
34422 Default value is 16.
34423
34424 bar_v, volume2
34425 Specify the bargraph volume expression. It can contain variables:
34426
34427 sono_v
34428 the sono_v evaluated expression
34429
34430 frequency, freq, f
34431 the frequency where it is evaluated
34432
34433 timeclamp, tc
34434 the value of timeclamp option
34435
34436 and functions:
34437
34438 a_weighting(f)
34439 A-weighting of equal loudness
34440
34441 b_weighting(f)
34442 B-weighting of equal loudness
34443
34444 c_weighting(f)
34445 C-weighting of equal loudness.
34446
34447 Default value is "sono_v".
34448
34449 sono_g, gamma
34450 Specify the sonogram gamma. Lower gamma makes the spectrum more
34451 contrast, higher gamma makes the spectrum having more range.
34452 Default value is 3. Acceptable range is "[1, 7]".
34453
34454 bar_g, gamma2
34455 Specify the bargraph gamma. Default value is 1. Acceptable range is
34456 "[1, 7]".
34457
34458 bar_t
34459 Specify the bargraph transparency level. Lower value makes the
34460 bargraph sharper. Default value is 1. Acceptable range is "[0,
34461 1]".
34462
34463 timeclamp, tc
34464 Specify the transform timeclamp. At low frequency, there is trade-
34465 off between accuracy in time domain and frequency domain. If
34466 timeclamp is lower, event in time domain is represented more
34467 accurately (such as fast bass drum), otherwise event in frequency
34468 domain is represented more accurately (such as bass guitar).
34469 Acceptable range is "[0.002, 1]". Default value is 0.17.
34470
34471 attack
34472 Set attack time in seconds. The default is 0 (disabled). Otherwise,
34473 it limits future samples by applying asymmetric windowing in time
34474 domain, useful when low latency is required. Accepted range is "[0,
34475 1]".
34476
34477 basefreq
34478 Specify the transform base frequency. Default value is
34479 20.01523126408007475, which is frequency 50 cents below E0.
34480 Acceptable range is "[10, 100000]".
34481
34482 endfreq
34483 Specify the transform end frequency. Default value is
34484 20495.59681441799654, which is frequency 50 cents above D#10.
34485 Acceptable range is "[10, 100000]".
34486
34487 coeffclamp
34488 This option is deprecated and ignored.
34489
34490 tlength
34491 Specify the transform length in time domain. Use this option to
34492 control accuracy trade-off between time domain and frequency domain
34493 at every frequency sample. It can contain variables:
34494
34495 frequency, freq, f
34496 the frequency where it is evaluated
34497
34498 timeclamp, tc
34499 the value of timeclamp option.
34500
34501 Default value is "384*tc/(384+tc*f)".
34502
34503 count
34504 Specify the transform count for every video frame. Default value is
34505 6. Acceptable range is "[1, 30]".
34506
34507 fcount
34508 Specify the transform count for every single pixel. Default value
34509 is 0, which makes it computed automatically. Acceptable range is
34510 "[0, 10]".
34511
34512 fontfile
34513 Specify font file for use with freetype to draw the axis. If not
34514 specified, use embedded font. Note that drawing with font file or
34515 embedded font is not implemented with custom basefreq and endfreq,
34516 use axisfile option instead.
34517
34518 font
34519 Specify fontconfig pattern. This has lower priority than fontfile.
34520 The ":" in the pattern may be replaced by "|" to avoid unnecessary
34521 escaping.
34522
34523 fontcolor
34524 Specify font color expression. This is arithmetic expression that
34525 should return integer value 0xRRGGBB. It can contain variables:
34526
34527 frequency, freq, f
34528 the frequency where it is evaluated
34529
34530 timeclamp, tc
34531 the value of timeclamp option
34532
34533 and functions:
34534
34535 midi(f)
34536 midi number of frequency f, some midi numbers: E0(16), C1(24),
34537 C2(36), A4(69)
34538
34539 r(x), g(x), b(x)
34540 red, green, and blue value of intensity x.
34541
34542 Default value is "st(0, (midi(f)-59.5)/12); st(1,
34543 if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
34544 b(ld(1))".
34545
34546 axisfile
34547 Specify image file to draw the axis. This option override fontfile
34548 and fontcolor option.
34549
34550 axis, text
34551 Enable/disable drawing text to the axis. If it is set to 0, drawing
34552 to the axis is disabled, ignoring fontfile and axisfile option.
34553 Default value is 1.
34554
34555 csp Set colorspace. The accepted values are:
34556
34557 unspecified
34558 Unspecified (default)
34559
34560 bt709
34561 BT.709
34562
34563 fcc FCC
34564
34565 bt470bg
34566 BT.470BG or BT.601-6 625
34567
34568 smpte170m
34569 SMPTE-170M or BT.601-6 525
34570
34571 smpte240m
34572 SMPTE-240M
34573
34574 bt2020ncl
34575 BT.2020 with non-constant luminance
34576
34577 cscheme
34578 Set spectrogram color scheme. This is list of floating point values
34579 with format "left_r|left_g|left_b|right_r|right_g|right_b". The
34580 default is "1|0.5|0|0|0.5|1".
34581
34582 Examples
34583
34584 • Playing audio while showing the spectrum:
34585
34586 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
34587
34588 • Same as above, but with frame rate 30 fps:
34589
34590 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
34591
34592 • Playing at 1280x720:
34593
34594 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
34595
34596 • Disable sonogram display:
34597
34598 sono_h=0
34599
34600 • A1 and its harmonics: A1, A2, (near)E3, A3:
34601
34602 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),
34603 asplit[a][out1]; [a] showcqt [out0]'
34604
34605 • Same as above, but with more accuracy in frequency domain:
34606
34607 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),
34608 asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
34609
34610 • Custom volume:
34611
34612 bar_v=10:sono_v=bar_v*a_weighting(f)
34613
34614 • Custom gamma, now spectrum is linear to the amplitude.
34615
34616 bar_g=2:sono_g=2
34617
34618 • Custom tlength equation:
34619
34620 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)))'
34621
34622 • Custom fontcolor and fontfile, C-note is colored green, others are
34623 colored blue:
34624
34625 fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
34626
34627 • Custom font using fontconfig:
34628
34629 font='Courier New,Monospace,mono|bold'
34630
34631 • Custom frequency range with custom axis using image file:
34632
34633 axisfile=myaxis.png:basefreq=40:endfreq=10000
34634
34635 showfreqs
34636 Convert input audio to video output representing the audio power
34637 spectrum. Audio amplitude is on Y-axis while frequency is on X-axis.
34638
34639 The filter accepts the following options:
34640
34641 size, s
34642 Specify size of video. For the syntax of this option, check the
34643 "Video size" section in the ffmpeg-utils manual. Default is
34644 "1024x512".
34645
34646 rate, r
34647 Set video rate. Default is 25.
34648
34649 mode
34650 Set display mode. This set how each frequency bin will be
34651 represented.
34652
34653 It accepts the following values:
34654
34655 line
34656 bar
34657 dot
34658
34659 Default is "bar".
34660
34661 ascale
34662 Set amplitude scale.
34663
34664 It accepts the following values:
34665
34666 lin Linear scale.
34667
34668 sqrt
34669 Square root scale.
34670
34671 cbrt
34672 Cubic root scale.
34673
34674 log Logarithmic scale.
34675
34676 Default is "log".
34677
34678 fscale
34679 Set frequency scale.
34680
34681 It accepts the following values:
34682
34683 lin Linear scale.
34684
34685 log Logarithmic scale.
34686
34687 rlog
34688 Reverse logarithmic scale.
34689
34690 Default is "lin".
34691
34692 win_size
34693 Set window size. Allowed range is from 16 to 65536.
34694
34695 Default is 2048
34696
34697 win_func
34698 Set windowing function.
34699
34700 It accepts the following values:
34701
34702 rect
34703 bartlett
34704 hanning
34705 hamming
34706 blackman
34707 welch
34708 flattop
34709 bharris
34710 bnuttall
34711 bhann
34712 sine
34713 nuttall
34714 lanczos
34715 gauss
34716 tukey
34717 dolph
34718 cauchy
34719 parzen
34720 poisson
34721 bohman
34722
34723 Default is "hanning".
34724
34725 overlap
34726 Set window overlap. In range "[0, 1]". Default is 1, which means
34727 optimal overlap for selected window function will be picked.
34728
34729 averaging
34730 Set time averaging. Setting this to 0 will display current maximal
34731 peaks. Default is 1, which means time averaging is disabled.
34732
34733 colors
34734 Specify list of colors separated by space or by '|' which will be
34735 used to draw channel frequencies. Unrecognized or missing colors
34736 will be replaced by white color.
34737
34738 cmode
34739 Set channel display mode.
34740
34741 It accepts the following values:
34742
34743 combined
34744 separate
34745
34746 Default is "combined".
34747
34748 minamp
34749 Set minimum amplitude used in "log" amplitude scaler.
34750
34751 data
34752 Set data display mode.
34753
34754 It accepts the following values:
34755
34756 magnitude
34757 phase
34758 delay
34759
34760 Default is "magnitude".
34761
34762 channels
34763 Set channels to use when processing audio. By default all are
34764 processed.
34765
34766 showspatial
34767 Convert stereo input audio to a video output, representing the spatial
34768 relationship between two channels.
34769
34770 The filter accepts the following options:
34771
34772 size, s
34773 Specify the video size for the output. For the syntax of this
34774 option, check the "Video size" section in the ffmpeg-utils manual.
34775 Default value is "512x512".
34776
34777 win_size
34778 Set window size. Allowed range is from 1024 to 65536. Default size
34779 is 4096.
34780
34781 win_func
34782 Set window function.
34783
34784 It accepts the following values:
34785
34786 rect
34787 bartlett
34788 hann
34789 hanning
34790 hamming
34791 blackman
34792 welch
34793 flattop
34794 bharris
34795 bnuttall
34796 bhann
34797 sine
34798 nuttall
34799 lanczos
34800 gauss
34801 tukey
34802 dolph
34803 cauchy
34804 parzen
34805 poisson
34806 bohman
34807
34808 Default value is "hann".
34809
34810 overlap
34811 Set ratio of overlap window. Default value is 0.5. When value is 1
34812 overlap is set to recommended size for specific window function
34813 currently used.
34814
34815 showspectrum
34816 Convert input audio to a video output, representing the audio frequency
34817 spectrum.
34818
34819 The filter accepts the following options:
34820
34821 size, s
34822 Specify the video size for the output. For the syntax of this
34823 option, check the "Video size" section in the ffmpeg-utils manual.
34824 Default value is "640x512".
34825
34826 slide
34827 Specify how the spectrum should slide along the window.
34828
34829 It accepts the following values:
34830
34831 replace
34832 the samples start again on the left when they reach the right
34833
34834 scroll
34835 the samples scroll from right to left
34836
34837 fullframe
34838 frames are only produced when the samples reach the right
34839
34840 rscroll
34841 the samples scroll from left to right
34842
34843 lreplace
34844 the samples start again on the right when they reach the left
34845
34846 Default value is "replace".
34847
34848 mode
34849 Specify display mode.
34850
34851 It accepts the following values:
34852
34853 combined
34854 all channels are displayed in the same row
34855
34856 separate
34857 all channels are displayed in separate rows
34858
34859 Default value is combined.
34860
34861 color
34862 Specify display color mode.
34863
34864 It accepts the following values:
34865
34866 channel
34867 each channel is displayed in a separate color
34868
34869 intensity
34870 each channel is displayed using the same color scheme
34871
34872 rainbow
34873 each channel is displayed using the rainbow color scheme
34874
34875 moreland
34876 each channel is displayed using the moreland color scheme
34877
34878 nebulae
34879 each channel is displayed using the nebulae color scheme
34880
34881 fire
34882 each channel is displayed using the fire color scheme
34883
34884 fiery
34885 each channel is displayed using the fiery color scheme
34886
34887 fruit
34888 each channel is displayed using the fruit color scheme
34889
34890 cool
34891 each channel is displayed using the cool color scheme
34892
34893 magma
34894 each channel is displayed using the magma color scheme
34895
34896 green
34897 each channel is displayed using the green color scheme
34898
34899 viridis
34900 each channel is displayed using the viridis color scheme
34901
34902 plasma
34903 each channel is displayed using the plasma color scheme
34904
34905 cividis
34906 each channel is displayed using the cividis color scheme
34907
34908 terrain
34909 each channel is displayed using the terrain color scheme
34910
34911 Default value is channel.
34912
34913 scale
34914 Specify scale used for calculating intensity color values.
34915
34916 It accepts the following values:
34917
34918 lin linear
34919
34920 sqrt
34921 square root, default
34922
34923 cbrt
34924 cubic root
34925
34926 log logarithmic
34927
34928 4thrt
34929 4th root
34930
34931 5thrt
34932 5th root
34933
34934 Default value is sqrt.
34935
34936 fscale
34937 Specify frequency scale.
34938
34939 It accepts the following values:
34940
34941 lin linear
34942
34943 log logarithmic
34944
34945 Default value is lin.
34946
34947 saturation
34948 Set saturation modifier for displayed colors. Negative values
34949 provide alternative color scheme. 0 is no saturation at all.
34950 Saturation must be in [-10.0, 10.0] range. Default value is 1.
34951
34952 win_func
34953 Set window function.
34954
34955 It accepts the following values:
34956
34957 rect
34958 bartlett
34959 hann
34960 hanning
34961 hamming
34962 blackman
34963 welch
34964 flattop
34965 bharris
34966 bnuttall
34967 bhann
34968 sine
34969 nuttall
34970 lanczos
34971 gauss
34972 tukey
34973 dolph
34974 cauchy
34975 parzen
34976 poisson
34977 bohman
34978
34979 Default value is "hann".
34980
34981 orientation
34982 Set orientation of time vs frequency axis. Can be "vertical" or
34983 "horizontal". Default is "vertical".
34984
34985 overlap
34986 Set ratio of overlap window. Default value is 0. When value is 1
34987 overlap is set to recommended size for specific window function
34988 currently used.
34989
34990 gain
34991 Set scale gain for calculating intensity color values. Default
34992 value is 1.
34993
34994 data
34995 Set which data to display. Can be "magnitude", default or "phase",
34996 or unwrapped phase: "uphase".
34997
34998 rotation
34999 Set color rotation, must be in [-1.0, 1.0] range. Default value is
35000 0.
35001
35002 start
35003 Set start frequency from which to display spectrogram. Default is
35004 0.
35005
35006 stop
35007 Set stop frequency to which to display spectrogram. Default is 0.
35008
35009 fps Set upper frame rate limit. Default is "auto", unlimited.
35010
35011 legend
35012 Draw time and frequency axes and legends. Default is disabled.
35013
35014 drange
35015 Set dynamic range used to calculate intensity color values. Default
35016 is 120 dBFS. Allowed range is from 10 to 200.
35017
35018 limit
35019 Set upper limit of input audio samples volume in dBFS. Default is 0
35020 dBFS. Allowed range is from -100 to 100.
35021
35022 opacity
35023 Set opacity strength when using pixel format output with alpha
35024 component.
35025
35026 The usage is very similar to the showwaves filter; see the examples in
35027 that section.
35028
35029 Examples
35030
35031 • Large window with logarithmic color scaling:
35032
35033 showspectrum=s=1280x480:scale=log
35034
35035 • Complete example for a colored and sliding spectrum per channel
35036 using ffplay:
35037
35038 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
35039 [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
35040
35041 showspectrumpic
35042 Convert input audio to a single video frame, representing the audio
35043 frequency spectrum.
35044
35045 The filter accepts the following options:
35046
35047 size, s
35048 Specify the video size for the output. For the syntax of this
35049 option, check the "Video size" section in the ffmpeg-utils manual.
35050 Default value is "4096x2048".
35051
35052 mode
35053 Specify display mode.
35054
35055 It accepts the following values:
35056
35057 combined
35058 all channels are displayed in the same row
35059
35060 separate
35061 all channels are displayed in separate rows
35062
35063 Default value is combined.
35064
35065 color
35066 Specify display color mode.
35067
35068 It accepts the following values:
35069
35070 channel
35071 each channel is displayed in a separate color
35072
35073 intensity
35074 each channel is displayed using the same color scheme
35075
35076 rainbow
35077 each channel is displayed using the rainbow color scheme
35078
35079 moreland
35080 each channel is displayed using the moreland color scheme
35081
35082 nebulae
35083 each channel is displayed using the nebulae color scheme
35084
35085 fire
35086 each channel is displayed using the fire color scheme
35087
35088 fiery
35089 each channel is displayed using the fiery color scheme
35090
35091 fruit
35092 each channel is displayed using the fruit color scheme
35093
35094 cool
35095 each channel is displayed using the cool color scheme
35096
35097 magma
35098 each channel is displayed using the magma color scheme
35099
35100 green
35101 each channel is displayed using the green color scheme
35102
35103 viridis
35104 each channel is displayed using the viridis color scheme
35105
35106 plasma
35107 each channel is displayed using the plasma color scheme
35108
35109 cividis
35110 each channel is displayed using the cividis color scheme
35111
35112 terrain
35113 each channel is displayed using the terrain color scheme
35114
35115 Default value is intensity.
35116
35117 scale
35118 Specify scale used for calculating intensity color values.
35119
35120 It accepts the following values:
35121
35122 lin linear
35123
35124 sqrt
35125 square root, default
35126
35127 cbrt
35128 cubic root
35129
35130 log logarithmic
35131
35132 4thrt
35133 4th root
35134
35135 5thrt
35136 5th root
35137
35138 Default value is log.
35139
35140 fscale
35141 Specify frequency scale.
35142
35143 It accepts the following values:
35144
35145 lin linear
35146
35147 log logarithmic
35148
35149 Default value is lin.
35150
35151 saturation
35152 Set saturation modifier for displayed colors. Negative values
35153 provide alternative color scheme. 0 is no saturation at all.
35154 Saturation must be in [-10.0, 10.0] range. Default value is 1.
35155
35156 win_func
35157 Set window function.
35158
35159 It accepts the following values:
35160
35161 rect
35162 bartlett
35163 hann
35164 hanning
35165 hamming
35166 blackman
35167 welch
35168 flattop
35169 bharris
35170 bnuttall
35171 bhann
35172 sine
35173 nuttall
35174 lanczos
35175 gauss
35176 tukey
35177 dolph
35178 cauchy
35179 parzen
35180 poisson
35181 bohman
35182
35183 Default value is "hann".
35184
35185 orientation
35186 Set orientation of time vs frequency axis. Can be "vertical" or
35187 "horizontal". Default is "vertical".
35188
35189 gain
35190 Set scale gain for calculating intensity color values. Default
35191 value is 1.
35192
35193 legend
35194 Draw time and frequency axes and legends. Default is enabled.
35195
35196 rotation
35197 Set color rotation, must be in [-1.0, 1.0] range. Default value is
35198 0.
35199
35200 start
35201 Set start frequency from which to display spectrogram. Default is
35202 0.
35203
35204 stop
35205 Set stop frequency to which to display spectrogram. Default is 0.
35206
35207 drange
35208 Set dynamic range used to calculate intensity color values. Default
35209 is 120 dBFS. Allowed range is from 10 to 200.
35210
35211 limit
35212 Set upper limit of input audio samples volume in dBFS. Default is 0
35213 dBFS. Allowed range is from -100 to 100.
35214
35215 opacity
35216 Set opacity strength when using pixel format output with alpha
35217 component.
35218
35219 Examples
35220
35221 • Extract an audio spectrogram of a whole audio track in a 1024x1024
35222 picture using ffmpeg:
35223
35224 ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
35225
35226 showvolume
35227 Convert input audio volume to a video output.
35228
35229 The filter accepts the following options:
35230
35231 rate, r
35232 Set video rate.
35233
35234 b Set border width, allowed range is [0, 5]. Default is 1.
35235
35236 w Set channel width, allowed range is [80, 8192]. Default is 400.
35237
35238 h Set channel height, allowed range is [1, 900]. Default is 20.
35239
35240 f Set fade, allowed range is [0, 1]. Default is 0.95.
35241
35242 c Set volume color expression.
35243
35244 The expression can use the following variables:
35245
35246 VOLUME
35247 Current max volume of channel in dB.
35248
35249 PEAK
35250 Current peak.
35251
35252 CHANNEL
35253 Current channel number, starting from 0.
35254
35255 t If set, displays channel names. Default is enabled.
35256
35257 v If set, displays volume values. Default is enabled.
35258
35259 o Set orientation, can be horizontal: "h" or vertical: "v", default
35260 is "h".
35261
35262 s Set step size, allowed range is [0, 5]. Default is 0, which means
35263 step is disabled.
35264
35265 p Set background opacity, allowed range is [0, 1]. Default is 0.
35266
35267 m Set metering mode, can be peak: "p" or rms: "r", default is "p".
35268
35269 ds Set display scale, can be linear: "lin" or log: "log", default is
35270 "lin".
35271
35272 dm In second. If set to > 0., display a line for the max level in the
35273 previous seconds. default is disabled: 0.
35274
35275 dmc The color of the max line. Use when "dm" option is set to > 0.
35276 default is: "orange"
35277
35278 showwaves
35279 Convert input audio to a video output, representing the samples waves.
35280
35281 The filter accepts the following options:
35282
35283 size, s
35284 Specify the video size for the output. For the syntax of this
35285 option, check the "Video size" section in the ffmpeg-utils manual.
35286 Default value is "600x240".
35287
35288 mode
35289 Set display mode.
35290
35291 Available values are:
35292
35293 point
35294 Draw a point for each sample.
35295
35296 line
35297 Draw a vertical line for each sample.
35298
35299 p2p Draw a point for each sample and a line between them.
35300
35301 cline
35302 Draw a centered vertical line for each sample.
35303
35304 Default value is "point".
35305
35306 n Set the number of samples which are printed on the same column. A
35307 larger value will decrease the frame rate. Must be a positive
35308 integer. This option can be set only if the value for rate is not
35309 explicitly specified.
35310
35311 rate, r
35312 Set the (approximate) output frame rate. This is done by setting
35313 the option n. Default value is "25".
35314
35315 split_channels
35316 Set if channels should be drawn separately or overlap. Default
35317 value is 0.
35318
35319 colors
35320 Set colors separated by '|' which are going to be used for drawing
35321 of each channel.
35322
35323 scale
35324 Set amplitude scale.
35325
35326 Available values are:
35327
35328 lin Linear.
35329
35330 log Logarithmic.
35331
35332 sqrt
35333 Square root.
35334
35335 cbrt
35336 Cubic root.
35337
35338 Default is linear.
35339
35340 draw
35341 Set the draw mode. This is mostly useful to set for high n.
35342
35343 Available values are:
35344
35345 scale
35346 Scale pixel values for each drawn sample.
35347
35348 full
35349 Draw every sample directly.
35350
35351 Default value is "scale".
35352
35353 Examples
35354
35355 • Output the input file audio and the corresponding video
35356 representation at the same time:
35357
35358 amovie=a.mp3,asplit[out0],showwaves[out1]
35359
35360 • Create a synthetic signal and show it with showwaves, forcing a
35361 frame rate of 30 frames per second:
35362
35363 aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
35364
35365 showwavespic
35366 Convert input audio to a single video frame, representing the samples
35367 waves.
35368
35369 The filter accepts the following options:
35370
35371 size, s
35372 Specify the video size for the output. For the syntax of this
35373 option, check the "Video size" section in the ffmpeg-utils manual.
35374 Default value is "600x240".
35375
35376 split_channels
35377 Set if channels should be drawn separately or overlap. Default
35378 value is 0.
35379
35380 colors
35381 Set colors separated by '|' which are going to be used for drawing
35382 of each channel.
35383
35384 scale
35385 Set amplitude scale.
35386
35387 Available values are:
35388
35389 lin Linear.
35390
35391 log Logarithmic.
35392
35393 sqrt
35394 Square root.
35395
35396 cbrt
35397 Cubic root.
35398
35399 Default is linear.
35400
35401 draw
35402 Set the draw mode.
35403
35404 Available values are:
35405
35406 scale
35407 Scale pixel values for each drawn sample.
35408
35409 full
35410 Draw every sample directly.
35411
35412 Default value is "scale".
35413
35414 filter
35415 Set the filter mode.
35416
35417 Available values are:
35418
35419 average
35420 Use average samples values for each drawn sample.
35421
35422 peak
35423 Use peak samples values for each drawn sample.
35424
35425 Default value is "average".
35426
35427 Examples
35428
35429 • Extract a channel split representation of the wave form of a whole
35430 audio track in a 1024x800 picture using ffmpeg:
35431
35432 ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
35433
35434 sidedata, asidedata
35435 Delete frame side data, or select frames based on it.
35436
35437 This filter accepts the following options:
35438
35439 mode
35440 Set mode of operation of the filter.
35441
35442 Can be one of the following:
35443
35444 select
35445 Select every frame with side data of "type".
35446
35447 delete
35448 Delete side data of "type". If "type" is not set, delete all
35449 side data in the frame.
35450
35451 type
35452 Set side data type used with all modes. Must be set for "select"
35453 mode. For the list of frame side data types, refer to the
35454 "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
35455 choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
35456 "PANSCAN".
35457
35458 spectrumsynth
35459 Synthesize audio from 2 input video spectrums, first input stream
35460 represents magnitude across time and second represents phase across
35461 time. The filter will transform from frequency domain as displayed in
35462 videos back to time domain as presented in audio output.
35463
35464 This filter is primarily created for reversing processed showspectrum
35465 filter outputs, but can synthesize sound from other spectrograms too.
35466 But in such case results are going to be poor if the phase data is not
35467 available, because in such cases phase data need to be recreated,
35468 usually it's just recreated from random noise. For best results use
35469 gray only output ("channel" color mode in showspectrum filter) and
35470 "log" scale for magnitude video and "lin" scale for phase video. To
35471 produce phase, for 2nd video, use "data" option. Inputs videos should
35472 generally use "fullframe" slide mode as that saves resources needed for
35473 decoding video.
35474
35475 The filter accepts the following options:
35476
35477 sample_rate
35478 Specify sample rate of output audio, the sample rate of audio from
35479 which spectrum was generated may differ.
35480
35481 channels
35482 Set number of channels represented in input video spectrums.
35483
35484 scale
35485 Set scale which was used when generating magnitude input spectrum.
35486 Can be "lin" or "log". Default is "log".
35487
35488 slide
35489 Set slide which was used when generating inputs spectrums. Can be
35490 "replace", "scroll", "fullframe" or "rscroll". Default is
35491 "fullframe".
35492
35493 win_func
35494 Set window function used for resynthesis.
35495
35496 overlap
35497 Set window overlap. In range "[0, 1]". Default is 1, which means
35498 optimal overlap for selected window function will be picked.
35499
35500 orientation
35501 Set orientation of input videos. Can be "vertical" or "horizontal".
35502 Default is "vertical".
35503
35504 Examples
35505
35506 • First create magnitude and phase videos from audio, assuming audio
35507 is stereo with 44100 sample rate, then resynthesize videos back to
35508 audio with spectrumsynth:
35509
35510 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
35511 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
35512 ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
35513
35514 split, asplit
35515 Split input into several identical outputs.
35516
35517 "asplit" works with audio input, "split" with video.
35518
35519 The filter accepts a single parameter which specifies the number of
35520 outputs. If unspecified, it defaults to 2.
35521
35522 Examples
35523
35524 • Create two separate outputs from the same input:
35525
35526 [in] split [out0][out1]
35527
35528 • To create 3 or more outputs, you need to specify the number of
35529 outputs, like in:
35530
35531 [in] asplit=3 [out0][out1][out2]
35532
35533 • Create two separate outputs from the same input, one cropped and
35534 one padded:
35535
35536 [in] split [splitout1][splitout2];
35537 [splitout1] crop=100:100:0:0 [cropout];
35538 [splitout2] pad=200:200:100:100 [padout];
35539
35540 • Create 5 copies of the input audio with ffmpeg:
35541
35542 ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
35543
35544 zmq, azmq
35545 Receive commands sent through a libzmq client, and forward them to
35546 filters in the filtergraph.
35547
35548 "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
35549 between two video filters, "azmq" between two audio filters. Both are
35550 capable to send messages to any filter type.
35551
35552 To enable these filters you need to install the libzmq library and
35553 headers and configure FFmpeg with "--enable-libzmq".
35554
35555 For more information about libzmq see: <http://www.zeromq.org/>
35556
35557 The "zmq" and "azmq" filters work as a libzmq server, which receives
35558 messages sent through a network interface defined by the bind_address
35559 (or the abbreviation "b") option. Default value of this option is
35560 tcp://localhost:5555. You may want to alter this value to your needs,
35561 but do not forget to escape any ':' signs (see filtergraph escaping).
35562
35563 The received message must be in the form:
35564
35565 <TARGET> <COMMAND> [<ARG>]
35566
35567 TARGET specifies the target of the command, usually the name of the
35568 filter class or a specific filter instance name. The default filter
35569 instance name uses the pattern Parsed_<filter_name>_<index>, but you
35570 can override this by using the filter_name@id syntax (see Filtergraph
35571 syntax).
35572
35573 COMMAND specifies the name of the command for the target filter.
35574
35575 ARG is optional and specifies the optional argument list for the given
35576 COMMAND.
35577
35578 Upon reception, the message is processed and the corresponding command
35579 is injected into the filtergraph. Depending on the result, the filter
35580 will send a reply to the client, adopting the format:
35581
35582 <ERROR_CODE> <ERROR_REASON>
35583 <MESSAGE>
35584
35585 MESSAGE is optional.
35586
35587 Examples
35588
35589 Look at tools/zmqsend for an example of a zmq client which can be used
35590 to send commands processed by these filters.
35591
35592 Consider the following filtergraph generated by ffplay. In this
35593 example the last overlay filter has an instance name. All other filters
35594 will have default instance names.
35595
35596 ffplay -dumpgraph 1 -f lavfi "
35597 color=s=100x100:c=red [l];
35598 color=s=100x100:c=blue [r];
35599 nullsrc=s=200x100, zmq [bg];
35600 [bg][l] overlay [bg+l];
35601 [bg+l][r] overlay@my=x=100 "
35602
35603 To change the color of the left side of the video, the following
35604 command can be used:
35605
35606 echo Parsed_color_0 c yellow | tools/zmqsend
35607
35608 To change the right side:
35609
35610 echo Parsed_color_1 c pink | tools/zmqsend
35611
35612 To change the position of the right side:
35613
35614 echo overlay@my x 150 | tools/zmqsend
35615
35617 Below is a description of the currently available multimedia sources.
35618
35619 amovie
35620 This is the same as movie source, except it selects an audio stream by
35621 default.
35622
35623 avsynctest
35624 Generate an Audio/Video Sync Test.
35625
35626 Generated stream periodically shows flash video frame and emits beep in
35627 audio. Useful to inspect A/V sync issues.
35628
35629 It accepts the following options:
35630
35631 size, s
35632 Set output video size. Default value is "hd720".
35633
35634 framerate, fr
35635 Set output video frame rate. Default value is 30.
35636
35637 samplerate, sr
35638 Set output audio sample rate. Default value is 44100.
35639
35640 amplitude, a
35641 Set output audio beep amplitude. Default value is 0.7.
35642
35643 period, p
35644 Set output audio beep period in seconds. Default value is 3.
35645
35646 delay, dl
35647 Set output video flash delay in number of frames. Default value is
35648 0.
35649
35650 cycle, c
35651 Enable cycling of video delays, by default is disabled.
35652
35653 duration, d
35654 Set stream output duration. By default duration is unlimited.
35655
35656 fg, bg, ag
35657 Set foreground/background/additional color.
35658
35659 movie
35660 Read audio and/or video stream(s) from a movie container.
35661
35662 It accepts the following parameters:
35663
35664 filename
35665 The name of the resource to read (not necessarily a file; it can
35666 also be a device or a stream accessed through some protocol).
35667
35668 format_name, f
35669 Specifies the format assumed for the movie to read, and can be
35670 either the name of a container or an input device. If not
35671 specified, the format is guessed from movie_name or by probing.
35672
35673 seek_point, sp
35674 Specifies the seek point in seconds. The frames will be output
35675 starting from this seek point. The parameter is evaluated with
35676 "av_strtod", so the numerical value may be suffixed by an IS
35677 postfix. The default value is "0".
35678
35679 streams, s
35680 Specifies the streams to read. Several streams can be specified,
35681 separated by "+". The source will then have as many outputs, in the
35682 same order. The syntax is explained in the "Stream specifiers"
35683 section in the ffmpeg manual. Two special names, "dv" and "da"
35684 specify respectively the default (best suited) video and audio
35685 stream. Default is "dv", or "da" if the filter is called as
35686 "amovie".
35687
35688 stream_index, si
35689 Specifies the index of the video stream to read. If the value is
35690 -1, the most suitable video stream will be automatically selected.
35691 The default value is "-1". Deprecated. If the filter is called
35692 "amovie", it will select audio instead of video.
35693
35694 loop
35695 Specifies how many times to read the stream in sequence. If the
35696 value is 0, the stream will be looped infinitely. Default value is
35697 "1".
35698
35699 Note that when the movie is looped the source timestamps are not
35700 changed, so it will generate non monotonically increasing
35701 timestamps.
35702
35703 discontinuity
35704 Specifies the time difference between frames above which the point
35705 is considered a timestamp discontinuity which is removed by
35706 adjusting the later timestamps.
35707
35708 dec_threads
35709 Specifies the number of threads for decoding
35710
35711 format_opts
35712 Specify format options for the opened file. Format options can be
35713 specified as a list of key=value pairs separated by ':'. The
35714 following example shows how to add protocol_whitelist and
35715 protocol_blacklist options:
35716
35717 ffplay -f lavfi
35718 "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
35719
35720 It allows overlaying a second video on top of the main input of a
35721 filtergraph, as shown in this graph:
35722
35723 input -----------> deltapts0 --> overlay --> output
35724 ^
35725 |
35726 movie --> scale--> deltapts1 -------+
35727
35728 Examples
35729
35730 • Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
35731 it on top of the input labelled "in":
35732
35733 movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
35734 [in] setpts=PTS-STARTPTS [main];
35735 [main][over] overlay=16:16 [out]
35736
35737 • Read from a video4linux2 device, and overlay it on top of the input
35738 labelled "in":
35739
35740 movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
35741 [in] setpts=PTS-STARTPTS [main];
35742 [main][over] overlay=16:16 [out]
35743
35744 • Read the first video stream and the audio stream with id 0x81 from
35745 dvd.vob; the video is connected to the pad named "video" and the
35746 audio is connected to the pad named "audio":
35747
35748 movie=dvd.vob:s=v:0+#0x81 [video] [audio]
35749
35750 Commands
35751
35752 Both movie and amovie support the following commands:
35753
35754 seek
35755 Perform seek using "av_seek_frame". The syntax is: seek
35756 stream_index|timestamp|flags
35757
35758 • stream_index: If stream_index is -1, a default stream is
35759 selected, and timestamp is automatically converted from
35760 AV_TIME_BASE units to the stream specific time_base.
35761
35762 • timestamp: Timestamp in AVStream.time_base units or, if no
35763 stream is specified, in AV_TIME_BASE units.
35764
35765 • flags: Flags which select direction and seeking mode.
35766
35767 get_duration
35768 Get movie duration in AV_TIME_BASE units.
35769
35771 FFmpeg can be hooked up with a number of external libraries to add
35772 support for more formats. None of them are used by default, their use
35773 has to be explicitly requested by passing the appropriate flags to
35774 ./configure.
35775
35776 Alliance for Open Media (AOM)
35777 FFmpeg can make use of the AOM library for AV1 decoding and encoding.
35778
35779 Go to <http://aomedia.org/> and follow the instructions for installing
35780 the library. Then pass "--enable-libaom" to configure to enable it.
35781
35782 AMD AMF/VCE
35783 FFmpeg can use the AMD Advanced Media Framework library for accelerated
35784 H.264 and HEVC(only windows) encoding on hardware with Video Coding
35785 Engine (VCE).
35786
35787 To enable support you must obtain the AMF framework header
35788 files(version 1.4.9+) from
35789 <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
35790
35791 Create an "AMF/" directory in the system include path. Copy the
35792 contents of "AMF/amf/public/include/" into that directory. Then
35793 configure FFmpeg with "--enable-amf".
35794
35795 Initialization of amf encoder occurs in this order: 1) trying to
35796 initialize through dx11(only windows) 2) trying to initialize through
35797 dx9(only windows) 3) trying to initialize through vulkan
35798
35799 To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
35800 amf-amdgpu-pro package(amdgru-pro contains, but does not install
35801 automatically) are required.
35802
35803 This driver can be installed using amdgpu-pro-install script in
35804 official amd driver archive.
35805
35806 AviSynth
35807 FFmpeg can read AviSynth scripts as input. To enable support, pass
35808 "--enable-avisynth" to configure after installing the headers provided
35809 by <https://github.com/AviSynth/AviSynthPlus>. AviSynth+ can be
35810 configured to install only the headers by either passing
35811 "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
35812 using the supplied "GNUmakefile".
35813
35814 For Windows, supported AviSynth variants are <http://avisynth.nl> for
35815 32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
35816 and 64-bit builds.
35817
35818 For Linux, macOS, and BSD, the only supported AviSynth variant is
35819 <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
35820
35821 In 2016, AviSynth+ added support for building with GCC. However,
35822 due to the eccentricities of Windows' calling conventions, 32-bit
35823 GCC builds of AviSynth+ are not compatible with typical 32-bit
35824 builds of FFmpeg.
35825
35826 By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
35827 AviSynth+ since that is the most widely-used and entrenched build
35828 configuration. Users can override this and enable support for
35829 32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
35830 "--extra-cflags" when configuring FFmpeg.
35831
35832 64-bit builds of FFmpeg are not affected, and can use either MSVC
35833 or GCC builds of AviSynth+ without any special flags.
35834
35835 AviSynth(+) is loaded dynamically. Distributors can build FFmpeg
35836 with "--enable-avisynth", and the binaries will work regardless of
35837 the end user having AviSynth installed. If/when an end user would
35838 like to use AviSynth scripts, then they can install AviSynth(+) and
35839 FFmpeg will be able to find and use it to open scripts.
35840
35841 Chromaprint
35842 FFmpeg can make use of the Chromaprint library for generating audio
35843 fingerprints. Pass "--enable-chromaprint" to configure to enable it.
35844 See <https://acoustid.org/chromaprint>.
35845
35846 codec2
35847 FFmpeg can make use of the codec2 library for codec2 decoding and
35848 encoding. There is currently no native decoder, so libcodec2 must be
35849 used for decoding.
35850
35851 Go to <http://freedv.org/>, download "Codec 2 source archive". Build
35852 and install using CMake. Debian users can install the libcodec2-dev
35853 package instead. Once libcodec2 is installed you can pass
35854 "--enable-libcodec2" to configure to enable it.
35855
35856 The easiest way to use codec2 is with .c2 files, since they contain the
35857 mode information required for decoding. To encode such a file, use a
35858 .c2 file extension and give the libcodec2 encoder the -mode option:
35859 "ffmpeg -i input.wav -mode 700C output.c2". Playback is as simple as
35860 "ffplay output.c2". For a list of supported modes, run "ffmpeg -h
35861 encoder=libcodec2". Raw codec2 files are also supported. To make
35862 sense of them the mode in use needs to be specified as a format option:
35863 "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
35864
35865 dav1d
35866 FFmpeg can make use of the dav1d library for AV1 video decoding.
35867
35868 Go to <https://code.videolan.org/videolan/dav1d> and follow the
35869 instructions for installing the library. Then pass "--enable-libdav1d"
35870 to configure to enable it.
35871
35872 davs2
35873 FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
35874 decoding.
35875
35876 Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
35877 installing the library. Then pass "--enable-libdavs2" to configure to
35878 enable it.
35879
35880 libdavs2 is under the GNU Public License Version 2 or later (see
35881 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
35882 details), you must upgrade FFmpeg's license to GPL in order to use
35883 it.
35884
35885 uavs3d
35886 FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
35887 decoding.
35888
35889 Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
35890 installing the library. Then pass "--enable-libuavs3d" to configure to
35891 enable it.
35892
35893 Game Music Emu
35894 FFmpeg can make use of the Game Music Emu library to read audio from
35895 supported video game music file formats. Pass "--enable-libgme" to
35896 configure to enable it. See
35897 <https://bitbucket.org/mpyne/game-music-emu/overview>.
35898
35899 Intel QuickSync Video
35900 FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
35901 encoding of multiple codecs. To use QSV, FFmpeg must be linked against
35902 the "libmfx" dispatcher, which loads the actual decoding libraries.
35903
35904 The dispatcher is open source and can be downloaded from
35905 <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
35906 configured with the "--enable-libmfx" option and "pkg-config" needs to
35907 be able to locate the dispatcher's ".pc" files.
35908
35909 Kvazaar
35910 FFmpeg can make use of the Kvazaar library for HEVC encoding.
35911
35912 Go to <https://github.com/ultravideo/kvazaar> and follow the
35913 instructions for installing the library. Then pass
35914 "--enable-libkvazaar" to configure to enable it.
35915
35916 LAME
35917 FFmpeg can make use of the LAME library for MP3 encoding.
35918
35919 Go to <http://lame.sourceforge.net/> and follow the instructions for
35920 installing the library. Then pass "--enable-libmp3lame" to configure
35921 to enable it.
35922
35923 libilbc
35924 iLBC is a narrowband speech codec that has been made freely available
35925 by Google as part of the WebRTC project. libilbc is a packaging
35926 friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
35927 library for iLBC decoding and encoding.
35928
35929 Go to <https://github.com/TimothyGu/libilbc> and follow the
35930 instructions for installing the library. Then pass "--enable-libilbc"
35931 to configure to enable it.
35932
35933 libjxl
35934 JPEG XL is an image format intended to fully replace legacy JPEG for an
35935 extended period of life. See <https://jpegxl.info/> for more
35936 information, and see <https://github.com/libjxl/libjxl> for the library
35937 source. You can pass "--enable-libjxl" to configure in order enable the
35938 libjxl wrapper.
35939
35940 libvpx
35941 FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
35942 encoding.
35943
35944 Go to <http://www.webmproject.org/> and follow the instructions for
35945 installing the library. Then pass "--enable-libvpx" to configure to
35946 enable it.
35947
35948 ModPlug
35949 FFmpeg can make use of this library, originating in Modplug-XMMS, to
35950 read from MOD-like music files. See
35951 <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
35952 to configure to enable it.
35953
35954 OpenCORE, VisualOn, and Fraunhofer libraries
35955 Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
35956 libraries provide encoders for a number of audio codecs.
35957
35958 OpenCORE and VisualOn libraries are under the Apache License 2.0
35959 (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
35960 which is incompatible to the LGPL version 2.1 and GPL version 2.
35961 You have to upgrade FFmpeg's license to LGPL version 3 (or if you
35962 have enabled GPL components, GPL version 3) by passing
35963 "--enable-version3" to configure in order to use it.
35964
35965 The license of the Fraunhofer AAC library is incompatible with the
35966 GPL. Therefore, for GPL builds, you have to pass
35967 "--enable-nonfree" to configure in order to use it. To the best of
35968 our knowledge, it is compatible with the LGPL.
35969
35970 OpenCORE AMR
35971
35972 FFmpeg can make use of the OpenCORE libraries for AMR-NB
35973 decoding/encoding and AMR-WB decoding.
35974
35975 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
35976 instructions for installing the libraries. Then pass
35977 "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
35978 configure to enable them.
35979
35980 VisualOn AMR-WB encoder library
35981
35982 FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
35983 encoding.
35984
35985 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
35986 instructions for installing the library. Then pass
35987 "--enable-libvo-amrwbenc" to configure to enable it.
35988
35989 Fraunhofer AAC library
35990
35991 FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
35992 encoding.
35993
35994 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
35995 instructions for installing the library. Then pass
35996 "--enable-libfdk-aac" to configure to enable it.
35997
35998 OpenH264
35999 FFmpeg can make use of the OpenH264 library for H.264 decoding and
36000 encoding.
36001
36002 Go to <http://www.openh264.org/> and follow the instructions for
36003 installing the library. Then pass "--enable-libopenh264" to configure
36004 to enable it.
36005
36006 For decoding, this library is much more limited than the built-in
36007 decoder in libavcodec; currently, this library lacks support for
36008 decoding B-frames and some other main/high profile features. (It
36009 currently only supports constrained baseline profile and CABAC.) Using
36010 it is mostly useful for testing and for taking advantage of Cisco's
36011 patent portfolio license
36012 (<http://www.openh264.org/BINARY_LICENSE.txt>).
36013
36014 OpenJPEG
36015 FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
36016 Go to <http://www.openjpeg.org/> to get the libraries and follow the
36017 installation instructions. To enable using OpenJPEG in FFmpeg, pass
36018 "--enable-libopenjpeg" to ./configure.
36019
36020 rav1e
36021 FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
36022 encode videos. Go to <https://github.com/xiph/rav1e/> and follow the
36023 instructions to build the C library. To enable using rav1e in FFmpeg,
36024 pass "--enable-librav1e" to ./configure.
36025
36026 SVT-AV1
36027 FFmpeg can make use of the Scalable Video Technology for AV1 library
36028 for AV1 encoding.
36029
36030 Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
36031 instructions for installing the library. Then pass "--enable-libsvtav1"
36032 to configure to enable it.
36033
36034 TwoLAME
36035 FFmpeg can make use of the TwoLAME library for MP2 encoding.
36036
36037 Go to <http://www.twolame.org/> and follow the instructions for
36038 installing the library. Then pass "--enable-libtwolame" to configure
36039 to enable it.
36040
36041 VapourSynth
36042 FFmpeg can read VapourSynth scripts as input. To enable support, pass
36043 "--enable-vapoursynth" to configure. Vapoursynth is detected via
36044 "pkg-config". Versions 42 or greater supported. See
36045 <http://www.vapoursynth.com/>.
36046
36047 Due to security concerns, Vapoursynth scripts will not be autodetected
36048 so the input format has to be forced. For ff* CLI tools, add "-f
36049 vapoursynth" before the input "-i yourscript.vpy".
36050
36051 x264
36052 FFmpeg can make use of the x264 library for H.264 encoding.
36053
36054 Go to <http://www.videolan.org/developers/x264.html> and follow the
36055 instructions for installing the library. Then pass "--enable-libx264"
36056 to configure to enable it.
36057
36058 x264 is under the GNU Public License Version 2 or later (see
36059 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36060 details), you must upgrade FFmpeg's license to GPL in order to use
36061 it.
36062
36063 x265
36064 FFmpeg can make use of the x265 library for HEVC encoding.
36065
36066 Go to <http://x265.org/developers.html> and follow the instructions for
36067 installing the library. Then pass "--enable-libx265" to configure to
36068 enable it.
36069
36070 x265 is under the GNU Public License Version 2 or later (see
36071 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36072 details), you must upgrade FFmpeg's license to GPL in order to use
36073 it.
36074
36075 xavs
36076 FFmpeg can make use of the xavs library for AVS encoding.
36077
36078 Go to <http://xavs.sf.net/> and follow the instructions for installing
36079 the library. Then pass "--enable-libxavs" to configure to enable it.
36080
36081 xavs2
36082 FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
36083 encoding.
36084
36085 Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
36086 installing the library. Then pass "--enable-libxavs2" to configure to
36087 enable it.
36088
36089 libxavs2 is under the GNU Public License Version 2 or later (see
36090 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36091 details), you must upgrade FFmpeg's license to GPL in order to use
36092 it.
36093
36094 ZVBI
36095 ZVBI is a VBI decoding library which can be used by FFmpeg to decode
36096 DVB teletext pages and DVB teletext subtitles.
36097
36098 Go to <http://sourceforge.net/projects/zapping/> and follow the
36099 instructions for installing the library. Then pass "--enable-libzvbi"
36100 to configure to enable it.
36101
36103 You can use the "-formats" and "-codecs" options to have an exhaustive
36104 list.
36105
36106 File Formats
36107 FFmpeg supports the following file formats through the "libavformat"
36108 library:
36109
36110 Name : Encoding @tab Decoding @tab Comments
36111 3dostr : @tab X
36112 4xm : @tab X
36113 @tab 4X Technologies format, used in some games.
36114
36115 8088flex TMV : @tab X
36116 AAX : @tab X
36117 @tab Audible Enhanced Audio format, used in audiobooks.
36118
36119 AA : @tab X
36120 @tab Audible Format 2, 3, and 4, used in audiobooks.
36121
36122 ACT Voice : @tab X
36123 @tab contains G.729 audio
36124
36125 Adobe Filmstrip : X @tab X
36126 Audio IFF (AIFF) : X @tab X
36127 American Laser Games MM : @tab X
36128 @tab Multimedia format used in games like Mad Dog McCree.
36129
36130 3GPP AMR : X @tab X
36131 Amazing Studio Packed Animation File : @tab X
36132 @tab Multimedia format used in game Heart Of Darkness.
36133
36134 Apple HTTP Live Streaming : @tab X
36135 Artworx Data Format : @tab X
36136 Interplay ACM : @tab X
36137 @tab Audio only format used in some Interplay games.
36138
36139 ADP : @tab X
36140 @tab Audio format used on the Nintendo Gamecube.
36141
36142 AFC : @tab X
36143 @tab Audio format used on the Nintendo Gamecube.
36144
36145 ADS/SS2 : @tab X
36146 @tab Audio format used on the PS2.
36147
36148 APNG : X @tab X
36149 ASF : X @tab X
36150 @tab Advanced / Active Streaming Format.
36151
36152 AST : X @tab X
36153 @tab Audio format used on the Nintendo Wii.
36154
36155 AVI : X @tab X
36156 AviSynth : @tab X
36157 AVR : @tab X
36158 @tab Audio format used on Mac.
36159
36160 AVS : @tab X
36161 @tab Multimedia format used by the Creature Shock game.
36162
36163 Beam Software SIFF : @tab X
36164 @tab Audio and video format used in some games by Beam Software.
36165
36166 Bethesda Softworks VID : @tab X
36167 @tab Used in some games from Bethesda Softworks.
36168
36169 Binary text : @tab X
36170 Bink : @tab X
36171 @tab Multimedia format used by many games.
36172
36173 Bink Audio : @tab X
36174 @tab Audio only multimedia format used by some games.
36175
36176 Bitmap Brothers JV : @tab X
36177 @tab Used in Z and Z95 games.
36178
36179 BRP : @tab X
36180 @tab Argonaut Games format.
36181
36182 Brute Force & Ignorance : @tab X
36183 @tab Used in the game Flash Traffic: City of Angels.
36184
36185 BFSTM : @tab X
36186 @tab Audio format used on the Nintendo WiiU (based on BRSTM).
36187
36188 BRSTM : @tab X
36189 @tab Audio format used on the Nintendo Wii.
36190
36191 BW64 : @tab X
36192 @tab Broadcast Wave 64bit.
36193
36194 BWF : X @tab X
36195 codec2 (raw) : X @tab X
36196 @tab Must be given -mode format option to decode correctly.
36197
36198 codec2 (.c2 files) : X @tab X
36199 @tab Contains header with version and mode info, simplifying playback.
36200
36201 CRI ADX : X @tab X
36202 @tab Audio-only format used in console video games.
36203
36204 CRI AIX : @tab X
36205 CRI HCA : @tab X
36206 @tab Audio-only format used in console video games.
36207
36208 Discworld II BMV : @tab X
36209 Interplay C93 : @tab X
36210 @tab Used in the game Cyberia from Interplay.
36211
36212 Delphine Software International CIN : @tab X
36213 @tab Multimedia format used by Delphine Software games.
36214
36215 Digital Speech Standard (DSS) : @tab X
36216 CD+G : @tab X
36217 @tab Video format used by CD+G karaoke disks
36218
36219 Phantom Cine : @tab X
36220 Commodore CDXL : @tab X
36221 @tab Amiga CD video format
36222
36223 Core Audio Format : X @tab X
36224 @tab Apple Core Audio Format
36225
36226 CRC testing format : X @tab
36227 Creative Voice : X @tab X
36228 @tab Created for the Sound Blaster Pro.
36229
36230 CRYO APC : @tab X
36231 @tab Audio format used in some games by CRYO Interactive Entertainment.
36232
36233 D-Cinema audio : X @tab X
36234 Deluxe Paint Animation : @tab X
36235 DCSTR : @tab X
36236 DFA : @tab X
36237 @tab This format is used in Chronomaster game
36238
36239 DirectDraw Surface : @tab X
36240 DSD Stream File (DSF) : @tab X
36241 DV video : X @tab X
36242 DXA : @tab X
36243 @tab This format is used in the non-Windows version of the Feeble Files
36244 game and different game cutscenes repacked for use with ScummVM.
36245
36246 Electronic Arts cdata : @tab X
36247 Electronic Arts Multimedia : @tab X
36248 @tab Used in various EA games; files have extensions like WVE and UV2.
36249
36250 Ensoniq Paris Audio File : @tab X
36251 FFM (FFserver live feed) : X @tab X
36252 Flash (SWF) : X @tab X
36253 Flash 9 (AVM2) : X @tab X
36254 @tab Only embedded audio is decoded.
36255
36256 FLI/FLC/FLX animation : @tab X
36257 @tab .fli/.flc files
36258
36259 Flash Video (FLV) : X @tab X
36260 @tab Macromedia Flash video files
36261
36262 framecrc testing format : X @tab
36263 FunCom ISS : @tab X
36264 @tab Audio format used in various games from FunCom like The Longest Journey.
36265
36266 G.723.1 : X @tab X
36267 G.726 : @tab X @tab Both left- and right-
36268 justified.
36269 G.729 BIT : X @tab X
36270 G.729 raw : @tab X
36271 GENH : @tab X
36272 @tab Audio format for various games.
36273
36274 GIF Animation : X @tab X
36275 GXF : X @tab X
36276 @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
36277 playout servers.
36278
36279 HNM : @tab X
36280 @tab Only version 4 supported, used in some games from Cryo Interactive
36281
36282 iCEDraw File : @tab X
36283 ICO : X @tab X
36284 @tab Microsoft Windows ICO
36285
36286 id Quake II CIN video : @tab X
36287 id RoQ : X @tab X
36288 @tab Used in Quake III, Jedi Knight 2 and other computer games.
36289
36290 IEC61937 encapsulation : X @tab X
36291 IFF : @tab X
36292 @tab Interchange File Format
36293
36294 IFV : @tab X
36295 @tab A format used by some old CCTV DVRs.
36296
36297 iLBC : X @tab X
36298 Interplay MVE : @tab X
36299 @tab Format used in various Interplay computer games.
36300
36301 Iterated Systems ClearVideo : @tab X
36302 @tab I-frames only
36303
36304 IV8 : @tab X
36305 @tab A format generated by IndigoVision 8000 video server.
36306
36307 IVF (On2) : X @tab X
36308 @tab A format used by libvpx
36309
36310 Internet Video Recording : @tab X
36311 IRCAM : X @tab X
36312 LATM : X @tab X
36313 LMLM4 : @tab X
36314 @tab Used by Linux Media Labs MPEG-4 PCI boards
36315
36316 LOAS : @tab X
36317 @tab contains LATM multiplexed AAC audio
36318
36319 LRC : X @tab X
36320 LVF : @tab X
36321 LXF : @tab X
36322 @tab VR native stream format, used by Leitch/Harris' video servers.
36323
36324 Magic Lantern Video (MLV) : @tab X
36325 Matroska : X @tab X
36326 Matroska audio : X @tab
36327 FFmpeg metadata : X @tab X
36328 @tab Metadata in text format.
36329
36330 MAXIS XA : @tab X
36331 @tab Used in Sim City 3000; file extension .xa.
36332
36333 MCA : @tab X
36334 @tab Used in some games from Capcom; file extension .mca.
36335
36336 MD Studio : @tab X
36337 Metal Gear Solid: The Twin Snakes : @tab X
36338 Megalux Frame : @tab X
36339 @tab Used by Megalux Ultimate Paint
36340
36341 Mobotix .mxg : @tab X
36342 Monkey's Audio : @tab X
36343 Motion Pixels MVI : @tab X
36344 MOV/QuickTime/MP4 : X @tab X
36345 @tab 3GP, 3GP2, PSP, iPod variants supported
36346
36347 MP2 : X @tab X
36348 MP3 : X @tab X
36349 MPEG-1 System : X @tab X
36350 @tab muxed audio and video, VCD format supported
36351
36352 MPEG-PS (program stream) : X @tab X
36353 @tab also known as C<VOB> file, SVCD and DVD format supported
36354
36355 MPEG-TS (transport stream) : X @tab X
36356 @tab also known as DVB Transport Stream
36357
36358 MPEG-4 : X @tab X
36359 @tab MPEG-4 is a variant of QuickTime.
36360
36361 MSF : @tab X
36362 @tab Audio format used on the PS3.
36363
36364 Mirillis FIC video : @tab X
36365 @tab No cursor rendering.
36366
36367 MIDI Sample Dump Standard : @tab X
36368 MIME multipart JPEG : X @tab
36369 MSN TCP webcam : @tab X
36370 @tab Used by MSN Messenger webcam streams.
36371
36372 MTV : @tab X
36373 Musepack : @tab X
36374 Musepack SV8 : @tab X
36375 Material eXchange Format (MXF) : X @tab X
36376 @tab SMPTE 377M, used by D-Cinema, broadcast industry.
36377
36378 Material eXchange Format (MXF), D-10 Mapping : X @tab X
36379 @tab SMPTE 386M, D-10/IMX Mapping.
36380
36381 NC camera feed : @tab X
36382 @tab NC (AVIP NC4600) camera streams
36383
36384 NIST SPeech HEader REsources : @tab X
36385 Computerized Speech Lab NSP : @tab X
36386 NTT TwinVQ (VQF) : @tab X
36387 @tab Nippon Telegraph and Telephone Corporation TwinVQ.
36388
36389 Nullsoft Streaming Video : @tab X
36390 NuppelVideo : @tab X
36391 NUT : X @tab X
36392 @tab NUT Open Container Format
36393
36394 Ogg : X @tab X
36395 Playstation Portable PMP : @tab X
36396 Portable Voice Format : @tab X
36397 TechnoTrend PVA : @tab X
36398 @tab Used by TechnoTrend DVB PCI boards.
36399
36400 QCP : @tab X
36401 raw ADTS (AAC) : X @tab X
36402 raw AC-3 : X @tab X
36403 raw AMR-NB : @tab X
36404 raw AMR-WB : @tab X
36405 raw aptX : X @tab X
36406 raw aptX HD : X @tab X
36407 raw Chinese AVS video : X @tab X
36408 raw DFPWM : X @tab X
36409 raw Dirac : X @tab X
36410 raw DNxHD : X @tab X
36411 raw DTS : X @tab X
36412 raw DTS-HD : @tab X
36413 raw E-AC-3 : X @tab X
36414 raw FLAC : X @tab X
36415 raw GSM : @tab X
36416 raw H.261 : X @tab X
36417 raw H.263 : X @tab X
36418 raw H.264 : X @tab X
36419 raw HEVC : X @tab X
36420 raw Ingenient MJPEG : @tab X
36421 raw MJPEG : X @tab X
36422 raw MLP : @tab X
36423 raw MPEG : @tab X
36424 raw MPEG-1 : @tab X
36425 raw MPEG-2 : @tab X
36426 raw MPEG-4 : X @tab X
36427 raw NULL : X @tab
36428 raw video : X @tab X
36429 raw id RoQ : X @tab
36430 raw OBU : X @tab X
36431 raw SBC : X @tab X
36432 raw Shorten : @tab X
36433 raw TAK : @tab X
36434 raw TrueHD : X @tab X
36435 raw VC-1 : X @tab X
36436 raw PCM A-law : X @tab X
36437 raw PCM mu-law : X @tab X
36438 raw PCM Archimedes VIDC : X @tab X
36439 raw PCM signed 8 bit : X @tab X
36440 raw PCM signed 16 bit big-endian : X @tab X
36441 raw PCM signed 16 bit little-endian : X @tab X
36442 raw PCM signed 24 bit big-endian : X @tab X
36443 raw PCM signed 24 bit little-endian : X @tab X
36444 raw PCM signed 32 bit big-endian : X @tab X
36445 raw PCM signed 32 bit little-endian : X @tab X
36446 raw PCM signed 64 bit big-endian : X @tab X
36447 raw PCM signed 64 bit little-endian : X @tab X
36448 raw PCM unsigned 8 bit : X @tab X
36449 raw PCM unsigned 16 bit big-endian : X @tab X
36450 raw PCM unsigned 16 bit little-endian : X @tab X
36451 raw PCM unsigned 24 bit big-endian : X @tab X
36452 raw PCM unsigned 24 bit little-endian : X @tab X
36453 raw PCM unsigned 32 bit big-endian : X @tab X
36454 raw PCM unsigned 32 bit little-endian : X @tab X
36455 raw PCM 16.8 floating point little-endian : @tab X
36456 raw PCM 24.0 floating point little-endian : @tab X
36457 raw PCM floating-point 32 bit big-endian : X @tab X
36458 raw PCM floating-point 32 bit little-endian : X @tab X
36459 raw PCM floating-point 64 bit big-endian : X @tab X
36460 raw PCM floating-point 64 bit little-endian : X @tab X
36461 RDT : @tab X
36462 REDCODE R3D : @tab X
36463 @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
36464
36465 RealMedia : X @tab X
36466 Redirector : @tab X
36467 RedSpark : @tab X
36468 Renderware TeXture Dictionary : @tab X
36469 Resolume DXV : @tab X
36470 RF64 : @tab X
36471 RL2 : @tab X
36472 @tab Audio and video format used in some games by Entertainment Software Partners.
36473
36474 RPL/ARMovie : @tab X
36475 Lego Mindstorms RSO : X @tab X
36476 RSD : @tab X
36477 RTMP : X @tab X
36478 @tab Output is performed by publishing stream to RTMP server
36479
36480 RTP : X @tab X
36481 RTSP : X @tab X
36482 Sample Dump eXchange : @tab X
36483 SAP : X @tab X
36484 SBG : @tab X
36485 SDP : @tab X
36486 SER : @tab X
36487 Sega FILM/CPK : X @tab X
36488 @tab Used in many Sega Saturn console games.
36489
36490 Silicon Graphics Movie : @tab X
36491 Sierra SOL : @tab X
36492 @tab .sol files used in Sierra Online games.
36493
36494 Sierra VMD : @tab X
36495 @tab Used in Sierra CD-ROM games.
36496
36497 Smacker : @tab X
36498 @tab Multimedia format used by many games.
36499
36500 SMJPEG : X @tab X
36501 @tab Used in certain Loki game ports.
36502
36503 SMPTE 337M encapsulation : @tab X
36504 Smush : @tab X
36505 @tab Multimedia format used in some LucasArts games.
36506
36507 Sony OpenMG (OMA) : X @tab X
36508 @tab Audio format used in Sony Sonic Stage and Sony Vegas.
36509
36510 Sony PlayStation STR : @tab X
36511 Sony Wave64 (W64) : X @tab X
36512 SoX native format : X @tab X
36513 SUN AU format : X @tab X
36514 SUP raw PGS subtitles : X @tab X
36515 SVAG : @tab X
36516 @tab Audio format used in Konami PS2 games.
36517
36518 TDSC : @tab X
36519 Text files : @tab X
36520 THP : @tab X
36521 @tab Used on the Nintendo GameCube.
36522
36523 Tiertex Limited SEQ : @tab X
36524 @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
36525
36526 True Audio : X @tab X
36527 VAG : @tab X
36528 @tab Audio format used in many Sony PS2 games.
36529
36530 VC-1 test bitstream : X @tab X
36531 Vidvox Hap : X @tab X
36532 Vivo : @tab X
36533 VPK : @tab X
36534 @tab Audio format used in Sony PS games.
36535
36536 WAV : X @tab X
36537 WavPack : X @tab X
36538 WebM : X @tab X
36539 Windows Televison (WTV) : X @tab X
36540 Wing Commander III movie : @tab X
36541 @tab Multimedia format used in Origin's Wing Commander III computer game.
36542
36543 Westwood Studios audio : X @tab X
36544 @tab Multimedia format used in Westwood Studios games.
36545
36546 Westwood Studios VQA : @tab X
36547 @tab Multimedia format used in Westwood Studios games.
36548
36549 Wideband Single-bit Data (WSD) : @tab X
36550 WVE : @tab X
36551 XMV : @tab X
36552 @tab Microsoft video container used in Xbox games.
36553
36554 XVAG : @tab X
36555 @tab Audio format used on the PS3.
36556
36557 xWMA : @tab X
36558 @tab Microsoft audio container used by XAudio 2.
36559
36560 eXtended BINary text (XBIN) : @tab X
36561 YUV4MPEG pipe : X @tab X
36562 Psygnosis YOP : @tab X
36563
36564 "X" means that the feature in that column (encoding / decoding) is
36565 supported.
36566
36567 Image Formats
36568 FFmpeg can read and write images for each frame of a video sequence.
36569 The following image formats are supported:
36570
36571 Name : Encoding @tab Decoding @tab Comments
36572 .Y.U.V : X @tab X
36573 @tab one raw file per component
36574
36575 Alias PIX : X @tab X
36576 @tab Alias/Wavefront PIX image format
36577
36578 animated GIF : X @tab X
36579 APNG : X @tab X
36580 @tab Animated Portable Network Graphics
36581
36582 BMP : X @tab X
36583 @tab Microsoft BMP image
36584
36585 BRender PIX : @tab X
36586 @tab Argonaut BRender 3D engine image format.
36587
36588 CRI : @tab X
36589 @tab Cintel RAW
36590
36591 DPX : X @tab X
36592 @tab Digital Picture Exchange
36593
36594 EXR : @tab X
36595 @tab OpenEXR
36596
36597 FITS : X @tab X
36598 @tab Flexible Image Transport System
36599
36600 IMG : @tab X
36601 @tab GEM Raster image
36602
36603 JPEG : X @tab X
36604 @tab Progressive JPEG is not supported.
36605
36606 JPEG 2000 : X @tab X
36607 JPEG-LS : X @tab X
36608 LJPEG : X @tab
36609 @tab Lossless JPEG
36610
36611 MSP : @tab X
36612 @tab Microsoft Paint image
36613
36614 PAM : X @tab X
36615 @tab PAM is a PNM extension with alpha support.
36616
36617 PBM : X @tab X
36618 @tab Portable BitMap image
36619
36620 PCD : @tab X
36621 @tab PhotoCD
36622
36623 PCX : X @tab X
36624 @tab PC Paintbrush
36625
36626 PFM : X @tab X
36627 @tab Portable FloatMap image
36628
36629 PGM : X @tab X
36630 @tab Portable GrayMap image
36631
36632 PGMYUV : X @tab X
36633 @tab PGM with U and V components in YUV 4:2:0
36634
36635 PGX : @tab X
36636 @tab PGX file decoder
36637
36638 PHM : X @tab X
36639 @tab Portable HalfFloatMap image
36640
36641 PIC : @tab X
36642 @tab Pictor/PC Paint
36643
36644 PNG : X @tab X
36645 @tab Portable Network Graphics image
36646
36647 PPM : X @tab X
36648 @tab Portable PixelMap image
36649
36650 PSD : @tab X
36651 @tab Photoshop
36652
36653 PTX : @tab X
36654 @tab V.Flash PTX format
36655
36656 QOI : X @tab X
36657 @tab Quite OK Image format
36658
36659 SGI : X @tab X
36660 @tab SGI RGB image format
36661
36662 Sun Rasterfile : X @tab X
36663 @tab Sun RAS image format
36664
36665 TIFF : X @tab X
36666 @tab YUV, JPEG and some extension is not supported yet.
36667
36668 Truevision Targa : X @tab X
36669 @tab Targa (.TGA) image format
36670
36671 VBN : X @tab X
36672 @tab Vizrt Binary Image format
36673
36674 WebP : E @tab X
36675 @tab WebP image format, encoding supported through external library libwebp
36676
36677 XBM : X @tab X
36678 @tab X BitMap image format
36679
36680 XFace : X @tab X
36681 @tab X-Face image format
36682
36683 XPM : @tab X
36684 @tab X PixMap image format
36685
36686 XWD : X @tab X
36687 @tab X Window Dump image format
36688
36689 "X" means that the feature in that column (encoding / decoding) is
36690 supported.
36691
36692 "E" means that support is provided through an external library.
36693
36694 Video Codecs
36695 Name : Encoding @tab Decoding @tab Comments
36696 4X Movie : @tab X
36697 @tab Used in certain computer games.
36698
36699 8088flex TMV : @tab X
36700 A64 multicolor : X @tab
36701 @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
36702
36703 Amazing Studio PAF Video : @tab X
36704 American Laser Games MM : @tab X
36705 @tab Used in games like Mad Dog McCree.
36706
36707 Amuse Graphics Movie : @tab X
36708 AMV Video : X @tab X
36709 @tab Used in Chinese MP3 players.
36710
36711 ANSI/ASCII art : @tab X
36712 Apple Intermediate Codec : @tab X
36713 Apple MJPEG-B : @tab X
36714 Apple Pixlet : @tab X
36715 Apple ProRes : X @tab X
36716 @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
36717
36718 Apple QuickDraw : @tab X
36719 @tab fourcc: qdrw
36720
36721 Argonaut Video : @tab X
36722 @tab Used in some Argonaut games.
36723
36724 Asus v1 : X @tab X
36725 @tab fourcc: ASV1
36726
36727 Asus v2 : X @tab X
36728 @tab fourcc: ASV2
36729
36730 ATI VCR1 : @tab X
36731 @tab fourcc: VCR1
36732
36733 ATI VCR2 : @tab X
36734 @tab fourcc: VCR2
36735
36736 Auravision Aura : @tab X
36737 Auravision Aura 2 : @tab X
36738 Autodesk Animator Flic video : @tab X
36739 Autodesk RLE : @tab X
36740 @tab fourcc: AASC
36741
36742 AV1 : E @tab E
36743 @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
36744
36745 Avid 1:1 10-bit RGB Packer : X @tab X
36746 @tab fourcc: AVrp
36747
36748 AVS (Audio Video Standard) video : @tab X
36749 @tab Video encoding used by the Creature Shock game.
36750
36751 AVS2-P2/IEEE1857.4 : E @tab E
36752 @tab Supported through external libraries libxavs2 and libdavs2
36753
36754 AVS3-P2/IEEE1857.10 : @tab E
36755 @tab Supported through external library libuavs3d
36756
36757 AYUV : X @tab X
36758 @tab Microsoft uncompressed packed 4:4:4:4
36759
36760 Beam Software VB : @tab X
36761 Bethesda VID video : @tab X
36762 @tab Used in some games from Bethesda Softworks.
36763
36764 Bink Video : @tab X
36765 BitJazz SheerVideo : @tab X
36766 Bitmap Brothers JV video : @tab X
36767 y41p Brooktree uncompressed 4:1:1 12-bit : X @tab X
36768 Brooktree ProSumer Video : @tab X
36769 @tab fourcc: BT20
36770
36771 Brute Force & Ignorance : @tab X
36772 @tab Used in the game Flash Traffic: City of Angels.
36773
36774 C93 video : @tab X
36775 @tab Codec used in Cyberia game.
36776
36777 CamStudio : @tab X
36778 @tab fourcc: CSCD
36779
36780 CD+G : @tab X
36781 @tab Video codec for CD+G karaoke disks
36782
36783 CDXL : @tab X
36784 @tab Amiga CD video codec
36785
36786 Chinese AVS video : E @tab X
36787 @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
36788
36789 Delphine Software International CIN video : @tab X
36790 @tab Codec used in Delphine Software International games.
36791
36792 Discworld II BMV Video : @tab X
36793 CineForm HD : X @tab X
36794 Canopus HQ : @tab X
36795 Canopus HQA : @tab X
36796 Canopus HQX : @tab X
36797 Canopus Lossless Codec : @tab X
36798 CDToons : @tab X
36799 @tab Codec used in various Broderbund games.
36800
36801 Cinepak : @tab X
36802 Cirrus Logic AccuPak : X @tab X
36803 @tab fourcc: CLJR
36804
36805 CPiA Video Format : @tab X
36806 Creative YUV (CYUV) : @tab X
36807 DFA : @tab X
36808 @tab Codec used in Chronomaster game.
36809
36810 Dirac : E @tab X
36811 @tab supported though the native vc2 (Dirac Pro) encoder
36812
36813 Deluxe Paint Animation : @tab X
36814 DNxHD : X @tab X
36815 @tab aka SMPTE VC3
36816
36817 Duck TrueMotion 1.0 : @tab X
36818 @tab fourcc: DUCK
36819
36820 Duck TrueMotion 2.0 : @tab X
36821 @tab fourcc: TM20
36822
36823 Duck TrueMotion 2.0 RT : @tab X
36824 @tab fourcc: TR20
36825
36826 DV (Digital Video) : X @tab X
36827 Dxtory capture format : @tab X
36828 Feeble Files/ScummVM DXA : @tab X
36829 @tab Codec originally used in Feeble Files game.
36830
36831 Electronic Arts CMV video : @tab X
36832 @tab Used in NHL 95 game.
36833
36834 Electronic Arts Madcow video : @tab X
36835 Electronic Arts TGV video : @tab X
36836 Electronic Arts TGQ video : @tab X
36837 Electronic Arts TQI video : @tab X
36838 Escape 124 : @tab X
36839 Escape 130 : @tab X
36840 FFmpeg video codec #1 : X @tab X
36841 @tab lossless codec (fourcc: FFV1)
36842
36843 Flash Screen Video v1 : X @tab X
36844 @tab fourcc: FSV1
36845
36846 Flash Screen Video v2 : X @tab X
36847 Flash Video (FLV) : X @tab X
36848 @tab Sorenson H.263 used in Flash
36849
36850 FM Screen Capture Codec : @tab X
36851 Forward Uncompressed : @tab X
36852 Fraps : @tab X
36853 Go2Meeting : @tab X
36854 @tab fourcc: G2M2, G2M3
36855
36856 Go2Webinar : @tab X
36857 @tab fourcc: G2M4
36858
36859 Gremlin Digital Video : @tab X
36860 H.261 : X @tab X
36861 H.263 / H.263-1996 : X @tab X
36862 H.263+ / H.263-1998 / H.263 version 2 : X @tab X
36863 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 : E @tab X
36864 @tab encoding supported through external library libx264 and OpenH264
36865
36866 HEVC : X @tab X
36867 @tab encoding supported through external library libx265 and libkvazaar
36868
36869 HNM version 4 : @tab X
36870 HuffYUV : X @tab X
36871 HuffYUV FFmpeg variant : X @tab X
36872 IBM Ultimotion : @tab X
36873 @tab fourcc: ULTI
36874
36875 id Cinematic video : @tab X
36876 @tab Used in Quake II.
36877
36878 id RoQ video : X @tab X
36879 @tab Used in Quake III, Jedi Knight 2, other computer games.
36880
36881 IFF ILBM : @tab X
36882 @tab IFF interleaved bitmap
36883
36884 IFF ByteRun1 : @tab X
36885 @tab IFF run length encoded bitmap
36886
36887 Infinity IMM4 : @tab X
36888 Intel H.263 : @tab X
36889 Intel Indeo 2 : @tab X
36890 Intel Indeo 3 : @tab X
36891 Intel Indeo 4 : @tab X
36892 Intel Indeo 5 : @tab X
36893 Interplay C93 : @tab X
36894 @tab Used in the game Cyberia from Interplay.
36895
36896 Interplay MVE video : @tab X
36897 @tab Used in Interplay .MVE files.
36898
36899 J2K : X @tab X
36900 Karl Morton's video codec : @tab X
36901 @tab Codec used in Worms games.
36902
36903 Kega Game Video (KGV1) : @tab X
36904 @tab Kega emulator screen capture codec.
36905
36906 Lagarith : @tab X
36907 LCL (LossLess Codec Library) MSZH : @tab X
36908 LCL (LossLess Codec Library) ZLIB : E @tab E
36909 LOCO : @tab X
36910 LucasArts SANM/Smush : @tab X
36911 @tab Used in LucasArts games / SMUSH animations.
36912
36913 lossless MJPEG : X @tab X
36914 MagicYUV Video : X @tab X
36915 Mandsoft Screen Capture Codec : @tab X
36916 Microsoft ATC Screen : @tab X
36917 @tab Also known as Microsoft Screen 3.
36918
36919 Microsoft Expression Encoder Screen : @tab X
36920 @tab Also known as Microsoft Titanium Screen 2.
36921
36922 Microsoft RLE : @tab X
36923 Microsoft Screen 1 : @tab X
36924 @tab Also known as Windows Media Video V7 Screen.
36925
36926 Microsoft Screen 2 : @tab X
36927 @tab Also known as Windows Media Video V9 Screen.
36928
36929 Microsoft Video 1 : @tab X
36930 Mimic : @tab X
36931 @tab Used in MSN Messenger Webcam streams.
36932
36933 Miro VideoXL : @tab X
36934 @tab fourcc: VIXL
36935
36936 MJPEG (Motion JPEG) : X @tab X
36937 Mobotix MxPEG video : @tab X
36938 Motion Pixels video : @tab X
36939 MPEG-1 video : X @tab X
36940 MPEG-2 video : X @tab X
36941 MPEG-4 part 2 : X @tab X
36942 @tab libxvidcore can be used alternatively for encoding.
36943
36944 MPEG-4 part 2 Microsoft variant version 1 : @tab X
36945 MPEG-4 part 2 Microsoft variant version 2 : X @tab X
36946 MPEG-4 part 2 Microsoft variant version 3 : X @tab X
36947 Newtek SpeedHQ : X @tab X
36948 Nintendo Gamecube THP video : @tab X
36949 NotchLC : @tab X
36950 NuppelVideo/RTjpeg : @tab X
36951 @tab Video encoding used in NuppelVideo files.
36952
36953 On2 VP3 : @tab X
36954 @tab still experimental
36955
36956 On2 VP4 : @tab X
36957 @tab fourcc: VP40
36958
36959 On2 VP5 : @tab X
36960 @tab fourcc: VP50
36961
36962 On2 VP6 : @tab X
36963 @tab fourcc: VP60,VP61,VP62
36964
36965 On2 VP7 : @tab X
36966 @tab fourcc: VP70,VP71
36967
36968 VP8 : E @tab X
36969 @tab fourcc: VP80, encoding supported through external library libvpx
36970
36971 VP9 : E @tab X
36972 @tab encoding supported through external library libvpx
36973
36974 Pinnacle TARGA CineWave YUV16 : @tab X
36975 @tab fourcc: Y216
36976
36977 Q-team QPEG : @tab X
36978 @tab fourccs: QPEG, Q1.0, Q1.1
36979
36980 QuickTime 8BPS video : @tab X
36981 QuickTime Animation (RLE) video : X @tab X
36982 @tab fourcc: 'rle '
36983
36984 QuickTime Graphics (SMC) : X @tab X
36985 @tab fourcc: 'smc '
36986
36987 QuickTime video (RPZA) : X @tab X
36988 @tab fourcc: rpza
36989
36990 R10K AJA Kona 10-bit RGB Codec : X @tab X
36991 R210 Quicktime Uncompressed RGB 10-bit : X @tab X
36992 Raw Video : X @tab X
36993 RealVideo 1.0 : X @tab X
36994 RealVideo 2.0 : X @tab X
36995 RealVideo 3.0 : @tab X
36996 @tab still far from ideal
36997
36998 RealVideo 4.0 : @tab X
36999 Renderware TXD (TeXture Dictionary) : @tab X
37000 @tab Texture dictionaries used by the Renderware Engine.
37001
37002 RL2 video : @tab X
37003 @tab used in some games by Entertainment Software Partners
37004
37005 ScreenPressor : @tab X
37006 Screenpresso : @tab X
37007 Screen Recorder Gold Codec : @tab X
37008 Sierra VMD video : @tab X
37009 @tab Used in Sierra VMD files.
37010
37011 Silicon Graphics Motion Video Compressor 1 (MVC1) : @tab X
37012 Silicon Graphics Motion Video Compressor 2 (MVC2) : @tab X
37013 Silicon Graphics RLE 8-bit video : @tab X
37014 Smacker video : @tab X
37015 @tab Video encoding used in Smacker.
37016
37017 SMPTE VC-1 : @tab X
37018 Snow : X @tab X
37019 @tab experimental wavelet codec (fourcc: SNOW)
37020
37021 Sony PlayStation MDEC (Motion DECoder) : @tab X
37022 Sorenson Vector Quantizer 1 : X @tab X
37023 @tab fourcc: SVQ1
37024
37025 Sorenson Vector Quantizer 3 : @tab X
37026 @tab fourcc: SVQ3
37027
37028 Sunplus JPEG (SP5X) : @tab X
37029 @tab fourcc: SP5X
37030
37031 TechSmith Screen Capture Codec : @tab X
37032 @tab fourcc: TSCC
37033
37034 TechSmith Screen Capture Codec 2 : @tab X
37035 @tab fourcc: TSC2
37036
37037 Theora : E @tab X
37038 @tab encoding supported through external library libtheora
37039
37040 Tiertex Limited SEQ video : @tab X
37041 @tab Codec used in DOS CD-ROM FlashBack game.
37042
37043 Ut Video : X @tab X
37044 v210 QuickTime uncompressed 4:2:2 10-bit : X @tab X
37045 v308 QuickTime uncompressed 4:4:4 : X @tab X
37046 v408 QuickTime uncompressed 4:4:4:4 : X @tab X
37047 v410 QuickTime uncompressed 4:4:4 10-bit : X @tab X
37048 VBLE Lossless Codec : @tab X
37049 VMware Screen Codec / VMware Video : @tab X
37050 @tab Codec used in videos captured by VMware.
37051
37052 Westwood Studios VQA (Vector Quantized Animation) video : @tab
37053 X
37054 Windows Media Image : @tab X
37055 Windows Media Video 7 : X @tab X
37056 Windows Media Video 8 : X @tab X
37057 Windows Media Video 9 : @tab X
37058 @tab not completely working
37059
37060 Wing Commander III / Xan : @tab X
37061 @tab Used in Wing Commander III .MVE files.
37062
37063 Wing Commander IV / Xan : @tab X
37064 @tab Used in Wing Commander IV.
37065
37066 Winnov WNV1 : @tab X
37067 WMV7 : X @tab X
37068 YAMAHA SMAF : X @tab X
37069 Psygnosis YOP Video : @tab X
37070 yuv4 : X @tab X
37071 @tab libquicktime uncompressed packed 4:2:0
37072
37073 ZeroCodec Lossless Video : @tab X
37074 ZLIB : X @tab X
37075 @tab part of LCL, encoder experimental
37076
37077 Zip Motion Blocks Video : X @tab X
37078 @tab Encoder works only in PAL8.
37079
37080 "X" means that the feature in that column (encoding / decoding) is
37081 supported.
37082
37083 "E" means that support is provided through an external library.
37084
37085 Audio Codecs
37086 Name : Encoding @tab Decoding @tab Comments
37087 8SVX exponential : @tab X
37088 8SVX fibonacci : @tab X
37089 AAC : EX @tab X
37090 @tab encoding supported through internal encoder and external library libfdk-aac
37091
37092 AAC+ : E @tab IX
37093 @tab encoding supported through external library libfdk-aac
37094
37095 AC-3 : IX @tab IX
37096 ACELP.KELVIN : @tab X
37097 ADPCM 4X Movie : @tab X
37098 ADPCM Yamaha AICA : @tab X
37099 ADPCM AmuseGraphics Movie : @tab X
37100 ADPCM Argonaut Games : X @tab X
37101 ADPCM CDROM XA : @tab X
37102 ADPCM Creative Technology : @tab X
37103 @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
37104
37105 ADPCM Electronic Arts : @tab X
37106 @tab Used in various EA titles.
37107
37108 ADPCM Electronic Arts Maxis CDROM XS : @tab X
37109 @tab Used in Sim City 3000.
37110
37111 ADPCM Electronic Arts R1 : @tab X
37112 ADPCM Electronic Arts R2 : @tab X
37113 ADPCM Electronic Arts R3 : @tab X
37114 ADPCM Electronic Arts XAS : @tab X
37115 ADPCM G.722 : X @tab X
37116 ADPCM G.726 : X @tab X
37117 ADPCM IMA Acorn Replay : @tab X
37118 ADPCM IMA AMV : X @tab X
37119 @tab Used in AMV files
37120
37121 ADPCM IMA Cunning Developments : @tab X
37122 ADPCM IMA Electronic Arts EACS : @tab X
37123 ADPCM IMA Electronic Arts SEAD : @tab X
37124 ADPCM IMA Funcom : @tab X
37125 ADPCM IMA High Voltage Software ALP : X @tab X
37126 ADPCM IMA QuickTime : X @tab X
37127 ADPCM IMA Simon & Schuster Interactive : X @tab X
37128 ADPCM IMA Ubisoft APM : X @tab X
37129 ADPCM IMA Loki SDL MJPEG : @tab X
37130 ADPCM IMA WAV : X @tab X
37131 ADPCM IMA Westwood : @tab X
37132 ADPCM ISS IMA : @tab X
37133 @tab Used in FunCom games.
37134
37135 ADPCM IMA Dialogic : @tab X
37136 ADPCM IMA Duck DK3 : @tab X
37137 @tab Used in some Sega Saturn console games.
37138
37139 ADPCM IMA Duck DK4 : @tab X
37140 @tab Used in some Sega Saturn console games.
37141
37142 ADPCM IMA Radical : @tab X
37143 ADPCM Microsoft : X @tab X
37144 ADPCM MS IMA : X @tab X
37145 ADPCM Nintendo Gamecube AFC : @tab X
37146 ADPCM Nintendo Gamecube DTK : @tab X
37147 ADPCM Nintendo THP : @tab X
37148 ADPCM Playstation : @tab X
37149 ADPCM QT IMA : X @tab X
37150 ADPCM SEGA CRI ADX : X @tab X
37151 @tab Used in Sega Dreamcast games.
37152
37153 ADPCM Shockwave Flash : X @tab X
37154 ADPCM Sound Blaster Pro 2-bit : @tab X
37155 ADPCM Sound Blaster Pro 2.6-bit : @tab X
37156 ADPCM Sound Blaster Pro 4-bit : @tab X
37157 ADPCM VIMA : @tab X
37158 @tab Used in LucasArts SMUSH animations.
37159
37160 ADPCM Westwood Studios IMA : X @tab X
37161 @tab Used in Westwood Studios games like Command and Conquer.
37162
37163 ADPCM Yamaha : X @tab X
37164 ADPCM Zork : @tab X
37165 AMR-NB : E @tab X
37166 @tab encoding supported through external library libopencore-amrnb
37167
37168 AMR-WB : E @tab X
37169 @tab encoding supported through external library libvo-amrwbenc
37170
37171 Amazing Studio PAF Audio : @tab X
37172 Apple lossless audio : X @tab X
37173 @tab QuickTime fourcc 'alac'
37174
37175 aptX : X @tab X
37176 @tab Used in Bluetooth A2DP
37177
37178 aptX HD : X @tab X
37179 @tab Used in Bluetooth A2DP
37180
37181 ATRAC1 : @tab X
37182 ATRAC3 : @tab X
37183 ATRAC3+ : @tab X
37184 ATRAC9 : @tab X
37185 Bink Audio : @tab X
37186 @tab Used in Bink and Smacker files in many games.
37187
37188 CELT : @tab E
37189 @tab decoding supported through external library libcelt
37190
37191 codec2 : E @tab E
37192 @tab en/decoding supported through external library libcodec2
37193
37194 CRI HCA : @tab X
37195 Delphine Software International CIN audio : @tab X
37196 @tab Codec used in Delphine Software International games.
37197
37198 DFPWM : X @tab X
37199 Digital Speech Standard - Standard Play mode (DSS SP) : @tab X
37200 Discworld II BMV Audio : @tab X
37201 COOK : @tab X
37202 @tab All versions except 5.1 are supported.
37203
37204 DCA (DTS Coherent Acoustics) : X @tab X
37205 @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
37206
37207 Dolby E : @tab X
37208 DPCM Gremlin : @tab X
37209 DPCM id RoQ : X @tab X
37210 @tab Used in Quake III, Jedi Knight 2 and other computer games.
37211
37212 DPCM Interplay : @tab X
37213 @tab Used in various Interplay computer games.
37214
37215 DPCM Squareroot-Delta-Exact : @tab X
37216 @tab Used in various games.
37217
37218 DPCM Sierra Online : @tab X
37219 @tab Used in Sierra Online game audio files.
37220
37221 DPCM Sol : @tab X
37222 DPCM Xan : @tab X
37223 @tab Used in Origin's Wing Commander IV AVI files.
37224
37225 DPCM Xilam DERF : @tab X
37226 DSD (Direct Stream Digital), least significant bit first : @tab X
37227 DSD (Direct Stream Digital), most significant bit first : @tab X
37228 DSD (Direct Stream Digital), least significant bit first, planar :
37229 @tab X
37230 DSD (Direct Stream Digital), most significant bit first, planar :
37231 @tab X
37232 DSP Group TrueSpeech : @tab X
37233 DST (Direct Stream Transfer) : @tab X
37234 DV audio : @tab X
37235 Enhanced AC-3 : X @tab X
37236 EVRC (Enhanced Variable Rate Codec) : @tab X
37237 FLAC (Free Lossless Audio Codec) : X @tab IX
37238 G.723.1 : X @tab X
37239 G.729 : @tab X
37240 GSM : E @tab X
37241 @tab encoding supported through external library libgsm
37242
37243 GSM Microsoft variant : E @tab X
37244 @tab encoding supported through external library libgsm
37245
37246 IAC (Indeo Audio Coder) : @tab X
37247 iLBC (Internet Low Bitrate Codec) : E @tab EX
37248 @tab encoding and decoding supported through external library libilbc
37249
37250 IMC (Intel Music Coder) : @tab X
37251 Interplay ACM : @tab X
37252 MACE (Macintosh Audio Compression/Expansion) 3:1 : @tab X
37253 MACE (Macintosh Audio Compression/Expansion) 6:1 : @tab X
37254 MLP (Meridian Lossless Packing) : X @tab X
37255 @tab Used in DVD-Audio discs.
37256
37257 Monkey's Audio : @tab X
37258 MP1 (MPEG audio layer 1) : @tab IX
37259 MP2 (MPEG audio layer 2) : IX @tab IX
37260 @tab encoding supported also through external library TwoLAME
37261
37262 MP3 (MPEG audio layer 3) : E @tab IX
37263 @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
37264
37265 MPEG-4 Audio Lossless Coding (ALS) : @tab X
37266 Musepack SV7 : @tab X
37267 Musepack SV8 : @tab X
37268 Nellymoser Asao : X @tab X
37269 On2 AVC (Audio for Video Codec) : @tab X
37270 Opus : E @tab X
37271 @tab encoding supported through external library libopus
37272
37273 PCM A-law : X @tab X
37274 PCM mu-law : X @tab X
37275 PCM Archimedes VIDC : X @tab X
37276 PCM signed 8-bit planar : X @tab X
37277 PCM signed 16-bit big-endian planar : X @tab X
37278 PCM signed 16-bit little-endian planar : X @tab X
37279 PCM signed 24-bit little-endian planar : X @tab X
37280 PCM signed 32-bit little-endian planar : X @tab X
37281 PCM 32-bit floating point big-endian : X @tab X
37282 PCM 32-bit floating point little-endian : X @tab X
37283 PCM 64-bit floating point big-endian : X @tab X
37284 PCM 64-bit floating point little-endian : X @tab X
37285 PCM D-Cinema audio signed 24-bit : X @tab X
37286 PCM signed 8-bit : X @tab X
37287 PCM signed 16-bit big-endian : X @tab X
37288 PCM signed 16-bit little-endian : X @tab X
37289 PCM signed 24-bit big-endian : X @tab X
37290 PCM signed 24-bit little-endian : X @tab X
37291 PCM signed 32-bit big-endian : X @tab X
37292 PCM signed 32-bit little-endian : X @tab X
37293 PCM signed 16/20/24-bit big-endian in MPEG-TS : @tab X
37294 PCM unsigned 8-bit : X @tab X
37295 PCM unsigned 16-bit big-endian : X @tab X
37296 PCM unsigned 16-bit little-endian : X @tab X
37297 PCM unsigned 24-bit big-endian : X @tab X
37298 PCM unsigned 24-bit little-endian : X @tab X
37299 PCM unsigned 32-bit big-endian : X @tab X
37300 PCM unsigned 32-bit little-endian : X @tab X
37301 QCELP / PureVoice : @tab X
37302 QDesign Music Codec 1 : @tab X
37303 QDesign Music Codec 2 : @tab X
37304 @tab There are still some distortions.
37305
37306 RealAudio 1.0 (14.4K) : X @tab X
37307 @tab Real 14400 bit/s codec
37308
37309 RealAudio 2.0 (28.8K) : @tab X
37310 @tab Real 28800 bit/s codec
37311
37312 RealAudio 3.0 (dnet) : IX @tab X
37313 @tab Real low bitrate AC-3 codec
37314
37315 RealAudio Lossless : @tab X
37316 RealAudio SIPR / ACELP.NET : @tab X
37317 SBC (low-complexity subband codec) : X @tab X
37318 @tab Used in Bluetooth A2DP
37319
37320 Shorten : @tab X
37321 Sierra VMD audio : @tab X
37322 @tab Used in Sierra VMD files.
37323
37324 Smacker audio : @tab X
37325 SMPTE 302M AES3 audio : X @tab X
37326 Sonic : X @tab X
37327 @tab experimental codec
37328
37329 Sonic lossless : X @tab X
37330 @tab experimental codec
37331
37332 Speex : E @tab EX
37333 @tab supported through external library libspeex
37334
37335 TAK (Tom's lossless Audio Kompressor) : @tab X
37336 True Audio (TTA) : X @tab X
37337 TrueHD : X @tab X
37338 @tab Used in HD-DVD and Blu-Ray discs.
37339
37340 TwinVQ (VQF flavor) : @tab X
37341 VIMA : @tab X
37342 @tab Used in LucasArts SMUSH animations.
37343
37344 Vorbis : E @tab X
37345 @tab A native but very primitive encoder exists.
37346
37347 Voxware MetaSound : @tab X
37348 WavPack : X @tab X
37349 Westwood Audio (SND1) : @tab X
37350 Windows Media Audio 1 : X @tab X
37351 Windows Media Audio 2 : X @tab X
37352 Windows Media Audio Lossless : @tab X
37353 Windows Media Audio Pro : @tab X
37354 Windows Media Audio Voice : @tab X
37355 Xbox Media Audio 1 : @tab X
37356 Xbox Media Audio 2 : @tab X
37357
37358 "X" means that the feature in that column (encoding / decoding) is
37359 supported.
37360
37361 "E" means that support is provided through an external library.
37362
37363 "I" means that an integer-only version is available, too (ensures high
37364 performance on systems without hardware floating point support).
37365
37366 Subtitle Formats
37367 Name : Muxing @tab Demuxing @tab Encoding @tab Decoding
37368 3GPP Timed Text : @tab @tab X @tab X
37369 AQTitle : @tab X @tab @tab X
37370 DVB : X @tab X @tab X @tab X
37371 DVB teletext : @tab X @tab @tab E
37372 DVD : X @tab X @tab X @tab X
37373 JACOsub : X @tab X @tab @tab X
37374 MicroDVD : X @tab X @tab @tab X
37375 MPL2 : @tab X @tab @tab X
37376 MPsub (MPlayer) : @tab X @tab @tab X
37377 PGS : @tab @tab @tab X
37378 PJS (Phoenix) : @tab X @tab @tab X
37379 RealText : @tab X @tab @tab X
37380 SAMI : @tab X @tab @tab X
37381 Spruce format (STL) : @tab X @tab @tab X
37382 SSA/ASS : X @tab X @tab X @tab X
37383 SubRip (SRT) : X @tab X @tab X @tab X
37384 SubViewer v1 : @tab X @tab @tab X
37385 SubViewer : @tab X @tab @tab X
37386 TED Talks captions : @tab X @tab @tab X
37387 TTML : X @tab @tab X @tab
37388 VobSub (IDX+SUB) : @tab X @tab @tab X
37389 VPlayer : @tab X @tab @tab X
37390 WebVTT : X @tab X @tab X @tab X
37391 XSUB : @tab @tab X @tab X
37392
37393 "X" means that the feature is supported.
37394
37395 "E" means that support is provided through an external library.
37396
37397 Network Protocols
37398 Name : Support
37399 AMQP : E
37400 file : X
37401 FTP : X
37402 Gopher : X
37403 Gophers : X
37404 HLS : X
37405 HTTP : X
37406 HTTPS : X
37407 Icecast : X
37408 MMSH : X
37409 MMST : X
37410 pipe : X
37411 Pro-MPEG FEC : X
37412 RTMP : X
37413 RTMPE : X
37414 RTMPS : X
37415 RTMPT : X
37416 RTMPTE : X
37417 RTMPTS : X
37418 RTP : X
37419 SAMBA : E
37420 SCTP : X
37421 SFTP : E
37422 TCP : X
37423 TLS : X
37424 UDP : X
37425 ZMQ : E
37426
37427 "X" means that the protocol is supported.
37428
37429 "E" means that support is provided through an external library.
37430
37431 Input/Output Devices
37432 Name : Input @tab Output
37433 ALSA : X @tab X
37434 BKTR : X @tab
37435 caca : @tab X
37436 DV1394 : X @tab
37437 Lavfi virtual device : X @tab
37438 Linux framebuffer : X @tab X
37439 JACK : X @tab
37440 LIBCDIO : X
37441 LIBDC1394 : X @tab
37442 OpenAL : X
37443 OpenGL : @tab X
37444 OSS : X @tab X
37445 PulseAudio : X @tab X
37446 SDL : @tab X
37447 Video4Linux2 : X @tab X
37448 VfW capture : X @tab
37449 X11 grabbing : X @tab
37450 Win32 grabbing : X @tab
37451
37452 "X" means that input/output is supported.
37453
37454 Timecode
37455 Codec/format : Read @tab Write
37456 AVI : X @tab X
37457 DV : X @tab X
37458 GXF : X @tab X
37459 MOV : X @tab X
37460 MPEG1/2 : X @tab X
37461 MXF : X @tab X
37462
37464 ffplay(1), ffmpeg(1), ffprobe(1), ffmpeg-utils(1), ffmpeg-scaler(1),
37465 ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
37466 ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
37467 ffmpeg-filters(1)
37468
37470 The FFmpeg developers.
37471
37472 For details about the authorship, see the Git history of the project
37473 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
37474 the FFmpeg source directory, or browsing the online repository at
37475 <http://source.ffmpeg.org>.
37476
37477 Maintainers for the specific components are listed in the file
37478 MAINTAINERS in the source code tree.
37479
37480
37481
37482 FFPLAY-ALL(1)