1FFMPEG-ALL(1) FFMPEG-ALL(1)
2
3
4
6 ffmpeg - ffmpeg video converter
7
9 ffmpeg [global_options] {[input_file_options] -i input_url} ...
10 {[output_file_options] output_url} ...
11
13 ffmpeg is a very fast video and audio converter that can also grab from
14 a live audio/video source. It can also convert between arbitrary sample
15 rates and resize video on the fly with a high quality polyphase filter.
16
17 ffmpeg reads from an arbitrary number of input "files" (which can be
18 regular files, pipes, network streams, grabbing devices, etc.),
19 specified by the "-i" option, and writes to an arbitrary number of
20 output "files", which are specified by a plain output url. Anything
21 found on the command line which cannot be interpreted as an option is
22 considered to be an output url.
23
24 Each input or output url can, in principle, contain any number of
25 streams of different types (video/audio/subtitle/attachment/data). The
26 allowed number and/or types of streams may be limited by the container
27 format. Selecting which streams from which inputs will go into which
28 output is either done automatically or with the "-map" option (see the
29 Stream selection chapter).
30
31 To refer to input files in options, you must use their indices
32 (0-based). E.g. the first input file is 0, the second is 1, etc.
33 Similarly, streams within a file are referred to by their indices. E.g.
34 "2:3" refers to the fourth stream in the third input file. Also see the
35 Stream specifiers chapter.
36
37 As a general rule, options are applied to the next specified file.
38 Therefore, order is important, and you can have the same option on the
39 command line multiple times. Each occurrence is then applied to the
40 next input or output file. Exceptions from this rule are the global
41 options (e.g. verbosity level), which should be specified first.
42
43 Do not mix input and output files -- first specify all input files,
44 then all output files. Also do not mix options which belong to
45 different files. All options apply ONLY to the next input or output
46 file and are reset between files.
47
48 • To set the video bitrate of the output file to 64 kbit/s:
49
50 ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
51
52 • To force the frame rate of the output file to 24 fps:
53
54 ffmpeg -i input.avi -r 24 output.avi
55
56 • To force the frame rate of the input file (valid for raw formats
57 only) to 1 fps and the frame rate of the output file to 24 fps:
58
59 ffmpeg -r 1 -i input.m2v -r 24 output.avi
60
61 The format option may be needed for raw input files.
62
64 The transcoding process in ffmpeg for each output can be described by
65 the following diagram:
66
67 _______ ______________
68 | | | |
69 | input | demuxer | encoded data | decoder
70 | file | ---------> | packets | -----+
71 |_______| |______________| |
72 v
73 _________
74 | |
75 | decoded |
76 | frames |
77 |_________|
78 ________ ______________ |
79 | | | | |
80 | output | <-------- | encoded data | <----+
81 | file | muxer | packets | encoder
82 |________| |______________|
83
84 ffmpeg calls the libavformat library (containing demuxers) to read
85 input files and get packets containing encoded data from them. When
86 there are multiple input files, ffmpeg tries to keep them synchronized
87 by tracking lowest timestamp on any active input stream.
88
89 Encoded packets are then passed to the decoder (unless streamcopy is
90 selected for the stream, see further for a description). The decoder
91 produces uncompressed frames (raw video/PCM audio/...) which can be
92 processed further by filtering (see next section). After filtering, the
93 frames are passed to the encoder, which encodes them and outputs
94 encoded packets. Finally those are passed to the muxer, which writes
95 the encoded packets to the output file.
96
97 Filtering
98 Before encoding, ffmpeg can process raw audio and video frames using
99 filters from the libavfilter library. Several chained filters form a
100 filter graph. ffmpeg distinguishes between two types of filtergraphs:
101 simple and complex.
102
103 Simple filtergraphs
104
105 Simple filtergraphs are those that have exactly one input and output,
106 both of the same type. In the above diagram they can be represented by
107 simply inserting an additional step between decoding and encoding:
108
109 _________ ______________
110 | | | |
111 | decoded | | encoded data |
112 | frames |\ _ | packets |
113 |_________| \ /||______________|
114 \ __________ /
115 simple _\|| | / encoder
116 filtergraph | filtered |/
117 | frames |
118 |__________|
119
120 Simple filtergraphs are configured with the per-stream -filter option
121 (with -vf and -af aliases for video and audio respectively). A simple
122 filtergraph for video can look for example like this:
123
124 _______ _____________ _______ ________
125 | | | | | | | |
126 | input | ---> | deinterlace | ---> | scale | ---> | output |
127 |_______| |_____________| |_______| |________|
128
129 Note that some filters change frame properties but not frame contents.
130 E.g. the "fps" filter in the example above changes number of frames,
131 but does not touch the frame contents. Another example is the "setpts"
132 filter, which only sets timestamps and otherwise passes the frames
133 unchanged.
134
135 Complex filtergraphs
136
137 Complex filtergraphs are those which cannot be described as simply a
138 linear processing chain applied to one stream. This is the case, for
139 example, when the graph has more than one input and/or output, or when
140 output stream type is different from input. They can be represented
141 with the following diagram:
142
143 _________
144 | |
145 | input 0 |\ __________
146 |_________| \ | |
147 \ _________ /| output 0 |
148 \ | | / |__________|
149 _________ \| complex | /
150 | | | |/
151 | input 1 |---->| filter |\
152 |_________| | | \ __________
153 /| graph | \ | |
154 / | | \| output 1 |
155 _________ / |_________| |__________|
156 | | /
157 | input 2 |/
158 |_________|
159
160 Complex filtergraphs are configured with the -filter_complex option.
161 Note that this option is global, since a complex filtergraph, by its
162 nature, cannot be unambiguously associated with a single stream or
163 file.
164
165 The -lavfi option is equivalent to -filter_complex.
166
167 A trivial example of a complex filtergraph is the "overlay" filter,
168 which has two video inputs and one video output, containing one video
169 overlaid on top of the other. Its audio counterpart is the "amix"
170 filter.
171
172 Stream copy
173 Stream copy is a mode selected by supplying the "copy" parameter to the
174 -codec option. It makes ffmpeg omit the decoding and encoding step for
175 the specified stream, so it does only demuxing and muxing. It is useful
176 for changing the container format or modifying container-level
177 metadata. The diagram above will, in this case, simplify to this:
178
179 _______ ______________ ________
180 | | | | | |
181 | input | demuxer | encoded data | muxer | output |
182 | file | ---------> | packets | -------> | file |
183 |_______| |______________| |________|
184
185 Since there is no decoding or encoding, it is very fast and there is no
186 quality loss. However, it might not work in some cases because of many
187 factors. Applying filters is obviously also impossible, since filters
188 work on uncompressed data.
189
191 ffmpeg provides the "-map" option for manual control of stream
192 selection in each output file. Users can skip "-map" and let ffmpeg
193 perform automatic stream selection as described below. The "-vn / -an /
194 -sn / -dn" options can be used to skip inclusion of video, audio,
195 subtitle and data streams respectively, whether manually mapped or
196 automatically selected, except for those streams which are outputs of
197 complex filtergraphs.
198
199 Description
200 The sub-sections that follow describe the various rules that are
201 involved in stream selection. The examples that follow next show how
202 these rules are applied in practice.
203
204 While every effort is made to accurately reflect the behavior of the
205 program, FFmpeg is under continuous development and the code may have
206 changed since the time of this writing.
207
208 Automatic stream selection
209
210 In the absence of any map options for a particular output file, ffmpeg
211 inspects the output format to check which type of streams can be
212 included in it, viz. video, audio and/or subtitles. For each acceptable
213 stream type, ffmpeg will pick one stream, when available, from among
214 all the inputs.
215
216 It will select that stream based upon the following criteria:
217
218 • for video, it is the stream with the highest resolution,
219
220 • for audio, it is the stream with the most channels,
221
222 • for subtitles, it is the first subtitle stream found but there's a
223 caveat. The output format's default subtitle encoder can be either
224 text-based or image-based, and only a subtitle stream of the same
225 type will be chosen.
226
227 In the case where several streams of the same type rate equally, the
228 stream with the lowest index is chosen.
229
230 Data or attachment streams are not automatically selected and can only
231 be included using "-map".
232
233 Manual stream selection
234
235 When "-map" is used, only user-mapped streams are included in that
236 output file, with one possible exception for filtergraph outputs
237 described below.
238
239 Complex filtergraphs
240
241 If there are any complex filtergraph output streams with unlabeled
242 pads, they will be added to the first output file. This will lead to a
243 fatal error if the stream type is not supported by the output format.
244 In the absence of the map option, the inclusion of these streams leads
245 to the automatic stream selection of their types being skipped. If map
246 options are present, these filtergraph streams are included in addition
247 to the mapped streams.
248
249 Complex filtergraph output streams with labeled pads must be mapped
250 once and exactly once.
251
252 Stream handling
253
254 Stream handling is independent of stream selection, with an exception
255 for subtitles described below. Stream handling is set via the "-codec"
256 option addressed to streams within a specific output file. In
257 particular, codec options are applied by ffmpeg after the stream
258 selection process and thus do not influence the latter. If no "-codec"
259 option is specified for a stream type, ffmpeg will select the default
260 encoder registered by the output file muxer.
261
262 An exception exists for subtitles. If a subtitle encoder is specified
263 for an output file, the first subtitle stream found of any type, text
264 or image, will be included. ffmpeg does not validate if the specified
265 encoder can convert the selected stream or if the converted stream is
266 acceptable within the output format. This applies generally as well:
267 when the user sets an encoder manually, the stream selection process
268 cannot check if the encoded stream can be muxed into the output file.
269 If it cannot, ffmpeg will abort and all output files will fail to be
270 processed.
271
272 Examples
273 The following examples illustrate the behavior, quirks and limitations
274 of ffmpeg's stream selection methods.
275
276 They assume the following three input files.
277
278 input file 'A.avi'
279 stream 0: video 640x360
280 stream 1: audio 2 channels
281
282 input file 'B.mp4'
283 stream 0: video 1920x1080
284 stream 1: audio 2 channels
285 stream 2: subtitles (text)
286 stream 3: audio 5.1 channels
287 stream 4: subtitles (text)
288
289 input file 'C.mkv'
290 stream 0: video 1280x720
291 stream 1: audio 2 channels
292 stream 2: subtitles (image)
293
294 Example: automatic stream selection
295
296 ffmpeg -i A.avi -i B.mp4 out1.mkv out2.wav -map 1:a -c:a copy out3.mov
297
298 There are three output files specified, and for the first two, no
299 "-map" options are set, so ffmpeg will select streams for these two
300 files automatically.
301
302 out1.mkv is a Matroska container file and accepts video, audio and
303 subtitle streams, so ffmpeg will try to select one of each type.For
304 video, it will select "stream 0" from B.mp4, which has the highest
305 resolution among all the input video streams.For audio, it will select
306 "stream 3" from B.mp4, since it has the greatest number of channels.For
307 subtitles, it will select "stream 2" from B.mp4, which is the first
308 subtitle stream from among A.avi and B.mp4.
309
310 out2.wav accepts only audio streams, so only "stream 3" from B.mp4 is
311 selected.
312
313 For out3.mov, since a "-map" option is set, no automatic stream
314 selection will occur. The "-map 1:a" option will select all audio
315 streams from the second input B.mp4. No other streams will be included
316 in this output file.
317
318 For the first two outputs, all included streams will be transcoded. The
319 encoders chosen will be the default ones registered by each output
320 format, which may not match the codec of the selected input streams.
321
322 For the third output, codec option for audio streams has been set to
323 "copy", so no decoding-filtering-encoding operations will occur, or can
324 occur. Packets of selected streams shall be conveyed from the input
325 file and muxed within the output file.
326
327 Example: automatic subtitles selection
328
329 ffmpeg -i C.mkv out1.mkv -c:s dvdsub -an out2.mkv
330
331 Although out1.mkv is a Matroska container file which accepts subtitle
332 streams, only a video and audio stream shall be selected. The subtitle
333 stream of C.mkv is image-based and the default subtitle encoder of the
334 Matroska muxer is text-based, so a transcode operation for the
335 subtitles is expected to fail and hence the stream isn't selected.
336 However, in out2.mkv, a subtitle encoder is specified in the command
337 and so, the subtitle stream is selected, in addition to the video
338 stream. The presence of "-an" disables audio stream selection for
339 out2.mkv.
340
341 Example: unlabeled filtergraph outputs
342
343 ffmpeg -i A.avi -i C.mkv -i B.mp4 -filter_complex "overlay" out1.mp4 out2.srt
344
345 A filtergraph is setup here using the "-filter_complex" option and
346 consists of a single video filter. The "overlay" filter requires
347 exactly two video inputs, but none are specified, so the first two
348 available video streams are used, those of A.avi and C.mkv. The output
349 pad of the filter has no label and so is sent to the first output file
350 out1.mp4. Due to this, automatic selection of the video stream is
351 skipped, which would have selected the stream in B.mp4. The audio
352 stream with most channels viz. "stream 3" in B.mp4, is chosen
353 automatically. No subtitle stream is chosen however, since the MP4
354 format has no default subtitle encoder registered, and the user hasn't
355 specified a subtitle encoder.
356
357 The 2nd output file, out2.srt, only accepts text-based subtitle
358 streams. So, even though the first subtitle stream available belongs to
359 C.mkv, it is image-based and hence skipped. The selected stream,
360 "stream 2" in B.mp4, is the first text-based subtitle stream.
361
362 Example: labeled filtergraph outputs
363
364 ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0[outv];overlay;aresample" \
365 -map '[outv]' -an out1.mp4 \
366 out2.mkv \
367 -map '[outv]' -map 1:a:0 out3.mkv
368
369 The above command will fail, as the output pad labelled "[outv]" has
370 been mapped twice. None of the output files shall be processed.
371
372 ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0[outv];overlay;aresample" \
373 -an out1.mp4 \
374 out2.mkv \
375 -map 1:a:0 out3.mkv
376
377 This command above will also fail as the hue filter output has a label,
378 "[outv]", and hasn't been mapped anywhere.
379
380 The command should be modified as follows,
381
382 ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0,split=2[outv1][outv2];overlay;aresample" \
383 -map '[outv1]' -an out1.mp4 \
384 out2.mkv \
385 -map '[outv2]' -map 1:a:0 out3.mkv
386
387 The video stream from B.mp4 is sent to the hue filter, whose output is
388 cloned once using the split filter, and both outputs labelled. Then a
389 copy each is mapped to the first and third output files.
390
391 The overlay filter, requiring two video inputs, uses the first two
392 unused video streams. Those are the streams from A.avi and C.mkv. The
393 overlay output isn't labelled, so it is sent to the first output file
394 out1.mp4, regardless of the presence of the "-map" option.
395
396 The aresample filter is sent the first unused audio stream, that of
397 A.avi. Since this filter output is also unlabelled, it too is mapped to
398 the first output file. The presence of "-an" only suppresses automatic
399 or manual stream selection of audio streams, not outputs sent from
400 filtergraphs. Both these mapped streams shall be ordered before the
401 mapped stream in out1.mp4.
402
403 The video, audio and subtitle streams mapped to "out2.mkv" are entirely
404 determined by automatic stream selection.
405
406 out3.mkv consists of the cloned video output from the hue filter and
407 the first audio stream from B.mp4.
408
410 All the numerical options, if not specified otherwise, accept a string
411 representing a number as input, which may be followed by one of the SI
412 unit prefixes, for example: 'K', 'M', or 'G'.
413
414 If 'i' is appended to the SI unit prefix, the complete prefix will be
415 interpreted as a unit prefix for binary multiples, which are based on
416 powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
417 prefix multiplies the value by 8. This allows using, for example: 'KB',
418 'MiB', 'G' and 'B' as number suffixes.
419
420 Options which do not take arguments are boolean options, and set the
421 corresponding value to true. They can be set to false by prefixing the
422 option name with "no". For example using "-nofoo" will set the boolean
423 option with name "foo" to false.
424
425 Stream specifiers
426 Some options are applied per-stream, e.g. bitrate or codec. Stream
427 specifiers are used to precisely specify which stream(s) a given option
428 belongs to.
429
430 A stream specifier is a string generally appended to the option name
431 and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the
432 "a:1" stream specifier, which matches the second audio stream.
433 Therefore, it would select the ac3 codec for the second audio stream.
434
435 A stream specifier can match several streams, so that the option is
436 applied to all of them. E.g. the stream specifier in "-b:a 128k"
437 matches all audio streams.
438
439 An empty stream specifier matches all streams. For example, "-codec
440 copy" or "-codec: copy" would copy all the streams without reencoding.
441
442 Possible forms of stream specifiers are:
443
444 stream_index
445 Matches the stream with this index. E.g. "-threads:1 4" would set
446 the thread count for the second stream to 4. If stream_index is
447 used as an additional stream specifier (see below), then it selects
448 stream number stream_index from the matching streams. Stream
449 numbering is based on the order of the streams as detected by
450 libavformat except when a program ID is also specified. In this
451 case it is based on the ordering of the streams in the program.
452
453 stream_type[:additional_stream_specifier]
454 stream_type is one of following: 'v' or 'V' for video, 'a' for
455 audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v'
456 matches all video streams, 'V' only matches video streams which are
457 not attached pictures, video thumbnails or cover arts. If
458 additional_stream_specifier is used, then it matches streams which
459 both have this type and match the additional_stream_specifier.
460 Otherwise, it matches all streams of the specified type.
461
462 p:program_id[:additional_stream_specifier]
463 Matches streams which are in the program with the id program_id. If
464 additional_stream_specifier is used, then it matches streams which
465 both are part of the program and match the
466 additional_stream_specifier.
467
468 #stream_id or i:stream_id
469 Match the stream by stream id (e.g. PID in MPEG-TS container).
470
471 m:key[:value]
472 Matches streams with the metadata tag key having the specified
473 value. If value is not given, matches streams that contain the
474 given tag with any value.
475
476 u Matches streams with usable configuration, the codec must be
477 defined and the essential information such as video dimension or
478 audio sample rate must be present.
479
480 Note that in ffmpeg, matching by metadata will only work properly
481 for input files.
482
483 Generic options
484 These options are shared amongst the ff* tools.
485
486 -L Show license.
487
488 -h, -?, -help, --help [arg]
489 Show help. An optional parameter may be specified to print help
490 about a specific item. If no argument is specified, only basic (non
491 advanced) tool options are shown.
492
493 Possible values of arg are:
494
495 long
496 Print advanced tool options in addition to the basic tool
497 options.
498
499 full
500 Print complete list of options, including shared and private
501 options for encoders, decoders, demuxers, muxers, filters, etc.
502
503 decoder=decoder_name
504 Print detailed information about the decoder named
505 decoder_name. Use the -decoders option to get a list of all
506 decoders.
507
508 encoder=encoder_name
509 Print detailed information about the encoder named
510 encoder_name. Use the -encoders option to get a list of all
511 encoders.
512
513 demuxer=demuxer_name
514 Print detailed information about the demuxer named
515 demuxer_name. Use the -formats option to get a list of all
516 demuxers and muxers.
517
518 muxer=muxer_name
519 Print detailed information about the muxer named muxer_name.
520 Use the -formats option to get a list of all muxers and
521 demuxers.
522
523 filter=filter_name
524 Print detailed information about the filter named filter_name.
525 Use the -filters option to get a list of all filters.
526
527 bsf=bitstream_filter_name
528 Print detailed information about the bitstream filter named
529 bitstream_filter_name. Use the -bsfs option to get a list of
530 all bitstream filters.
531
532 protocol=protocol_name
533 Print detailed information about the protocol named
534 protocol_name. Use the -protocols option to get a list of all
535 protocols.
536
537 -version
538 Show version.
539
540 -buildconf
541 Show the build configuration, one option per line.
542
543 -formats
544 Show available formats (including devices).
545
546 -demuxers
547 Show available demuxers.
548
549 -muxers
550 Show available muxers.
551
552 -devices
553 Show available devices.
554
555 -codecs
556 Show all codecs known to libavcodec.
557
558 Note that the term 'codec' is used throughout this documentation as
559 a shortcut for what is more correctly called a media bitstream
560 format.
561
562 -decoders
563 Show available decoders.
564
565 -encoders
566 Show all available encoders.
567
568 -bsfs
569 Show available bitstream filters.
570
571 -protocols
572 Show available protocols.
573
574 -filters
575 Show available libavfilter filters.
576
577 -pix_fmts
578 Show available pixel formats.
579
580 -sample_fmts
581 Show available sample formats.
582
583 -layouts
584 Show channel names and standard channel layouts.
585
586 -dispositions
587 Show stream dispositions.
588
589 -colors
590 Show recognized color names.
591
592 -sources device[,opt1=val1[,opt2=val2]...]
593 Show autodetected sources of the input device. Some devices may
594 provide system-dependent source names that cannot be autodetected.
595 The returned list cannot be assumed to be always complete.
596
597 ffmpeg -sources pulse,server=192.168.0.4
598
599 -sinks device[,opt1=val1[,opt2=val2]...]
600 Show autodetected sinks of the output device. Some devices may
601 provide system-dependent sink names that cannot be autodetected.
602 The returned list cannot be assumed to be always complete.
603
604 ffmpeg -sinks pulse,server=192.168.0.4
605
606 -loglevel [flags+]loglevel | -v [flags+]loglevel
607 Set logging level and flags used by the library.
608
609 The optional flags prefix can consist of the following values:
610
611 repeat
612 Indicates that repeated log output should not be compressed to
613 the first line and the "Last message repeated n times" line
614 will be omitted.
615
616 level
617 Indicates that log output should add a "[level]" prefix to each
618 message line. This can be used as an alternative to log
619 coloring, e.g. when dumping the log to file.
620
621 Flags can also be used alone by adding a '+'/'-' prefix to
622 set/reset a single flag without affecting other flags or changing
623 loglevel. When setting both flags and loglevel, a '+' separator is
624 expected between the last flags value and before loglevel.
625
626 loglevel is a string or a number containing one of the following
627 values:
628
629 quiet, -8
630 Show nothing at all; be silent.
631
632 panic, 0
633 Only show fatal errors which could lead the process to crash,
634 such as an assertion failure. This is not currently used for
635 anything.
636
637 fatal, 8
638 Only show fatal errors. These are errors after which the
639 process absolutely cannot continue.
640
641 error, 16
642 Show all errors, including ones which can be recovered from.
643
644 warning, 24
645 Show all warnings and errors. Any message related to possibly
646 incorrect or unexpected events will be shown.
647
648 info, 32
649 Show informative messages during processing. This is in
650 addition to warnings and errors. This is the default value.
651
652 verbose, 40
653 Same as "info", except more verbose.
654
655 debug, 48
656 Show everything, including debugging information.
657
658 trace, 56
659
660 For example to enable repeated log output, add the "level" prefix,
661 and set loglevel to "verbose":
662
663 ffmpeg -loglevel repeat+level+verbose -i input output
664
665 Another example that enables repeated log output without affecting
666 current state of "level" prefix flag or loglevel:
667
668 ffmpeg [...] -loglevel +repeat
669
670 By default the program logs to stderr. If coloring is supported by
671 the terminal, colors are used to mark errors and warnings. Log
672 coloring can be disabled setting the environment variable
673 AV_LOG_FORCE_NOCOLOR, or can be forced setting the environment
674 variable AV_LOG_FORCE_COLOR.
675
676 -report
677 Dump full command line and log output to a file named
678 "program-YYYYMMDD-HHMMSS.log" in the current directory. This file
679 can be useful for bug reports. It also implies "-loglevel debug".
680
681 Setting the environment variable FFREPORT to any value has the same
682 effect. If the value is a ':'-separated key=value sequence, these
683 options will affect the report; option values must be escaped if
684 they contain special characters or the options delimiter ':' (see
685 the ``Quoting and escaping'' section in the ffmpeg-utils manual).
686
687 The following options are recognized:
688
689 file
690 set the file name to use for the report; %p is expanded to the
691 name of the program, %t is expanded to a timestamp, "%%" is
692 expanded to a plain "%"
693
694 level
695 set the log verbosity level using a numerical value (see
696 "-loglevel").
697
698 For example, to output a report to a file named ffreport.log using
699 a log level of 32 (alias for log level "info"):
700
701 FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
702
703 Errors in parsing the environment variable are not fatal, and will
704 not appear in the report.
705
706 -hide_banner
707 Suppress printing banner.
708
709 All FFmpeg tools will normally show a copyright notice, build
710 options and library versions. This option can be used to suppress
711 printing this information.
712
713 -cpuflags flags (global)
714 Allows setting and clearing cpu flags. This option is intended for
715 testing. Do not use it unless you know what you're doing.
716
717 ffmpeg -cpuflags -sse+mmx ...
718 ffmpeg -cpuflags mmx ...
719 ffmpeg -cpuflags 0 ...
720
721 Possible flags for this option are:
722
723 x86
724 mmx
725 mmxext
726 sse
727 sse2
728 sse2slow
729 sse3
730 sse3slow
731 ssse3
732 atom
733 sse4.1
734 sse4.2
735 avx
736 avx2
737 xop
738 fma3
739 fma4
740 3dnow
741 3dnowext
742 bmi1
743 bmi2
744 cmov
745 ARM
746 armv5te
747 armv6
748 armv6t2
749 vfp
750 vfpv3
751 neon
752 setend
753 AArch64
754 armv8
755 vfp
756 neon
757 PowerPC
758 altivec
759 Specific Processors
760 pentium2
761 pentium3
762 pentium4
763 k6
764 k62
765 athlon
766 athlonxp
767 k8
768 -cpucount count (global)
769 Override detection of CPU count. This option is intended for
770 testing. Do not use it unless you know what you're doing.
771
772 ffmpeg -cpucount 2
773
774 -max_alloc bytes
775 Set the maximum size limit for allocating a block on the heap by
776 ffmpeg's family of malloc functions. Exercise extreme caution when
777 using this option. Don't use if you do not understand the full
778 consequence of doing so. Default is INT_MAX.
779
780 AVOptions
781 These options are provided directly by the libavformat, libavdevice and
782 libavcodec libraries. To see the list of available AVOptions, use the
783 -help option. They are separated into two categories:
784
785 generic
786 These options can be set for any container, codec or device.
787 Generic options are listed under AVFormatContext options for
788 containers/devices and under AVCodecContext options for codecs.
789
790 private
791 These options are specific to the given container, device or codec.
792 Private options are listed under their corresponding
793 containers/devices/codecs.
794
795 For example to write an ID3v2.3 header instead of a default ID3v2.4 to
796 an MP3 file, use the id3v2_version private option of the MP3 muxer:
797
798 ffmpeg -i input.flac -id3v2_version 3 out.mp3
799
800 All codec AVOptions are per-stream, and thus a stream specifier should
801 be attached to them:
802
803 ffmpeg -i multichannel.mxf -map 0:v:0 -map 0:a:0 -map 0:a:0 -c:a:0 ac3 -b:a:0 640k -ac:a:1 2 -c:a:1 aac -b:2 128k out.mp4
804
805 In the above example, a multichannel audio stream is mapped twice for
806 output. The first instance is encoded with codec ac3 and bitrate 640k.
807 The second instance is downmixed to 2 channels and encoded with codec
808 aac. A bitrate of 128k is specified for it using absolute index of the
809 output stream.
810
811 Note: the -nooption syntax cannot be used for boolean AVOptions, use
812 -option 0/-option 1.
813
814 Note: the old undocumented way of specifying per-stream AVOptions by
815 prepending v/a/s to the options name is now obsolete and will be
816 removed soon.
817
818 Main options
819 -f fmt (input/output)
820 Force input or output file format. The format is normally auto
821 detected for input files and guessed from the file extension for
822 output files, so this option is not needed in most cases.
823
824 -i url (input)
825 input file url
826
827 -y (global)
828 Overwrite output files without asking.
829
830 -n (global)
831 Do not overwrite output files, and exit immediately if a specified
832 output file already exists.
833
834 -stream_loop number (input)
835 Set number of times input stream shall be looped. Loop 0 means no
836 loop, loop -1 means infinite loop.
837
838 -recast_media (global)
839 Allow forcing a decoder of a different media type than the one
840 detected or designated by the demuxer. Useful for decoding media
841 data muxed as data streams.
842
843 -c[:stream_specifier] codec (input/output,per-stream)
844 -codec[:stream_specifier] codec (input/output,per-stream)
845 Select an encoder (when used before an output file) or a decoder
846 (when used before an input file) for one or more streams. codec is
847 the name of a decoder/encoder or a special value "copy" (output
848 only) to indicate that the stream is not to be re-encoded.
849
850 For example
851
852 ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
853
854 encodes all video streams with libx264 and copies all audio
855 streams.
856
857 For each stream, the last matching "c" option is applied, so
858
859 ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
860
861 will copy all the streams except the second video, which will be
862 encoded with libx264, and the 138th audio, which will be encoded
863 with libvorbis.
864
865 -t duration (input/output)
866 When used as an input option (before "-i"), limit the duration of
867 data read from the input file.
868
869 When used as an output option (before an output url), stop writing
870 the output after its duration reaches duration.
871
872 duration must be a time duration specification, see the Time
873 duration section in the ffmpeg-utils(1) manual.
874
875 -to and -t are mutually exclusive and -t has priority.
876
877 -to position (input/output)
878 Stop writing the output or reading the input at position. position
879 must be a time duration specification, see the Time duration
880 section in the ffmpeg-utils(1) manual.
881
882 -to and -t are mutually exclusive and -t has priority.
883
884 -fs limit_size (output)
885 Set the file size limit, expressed in bytes. No further chunk of
886 bytes is written after the limit is exceeded. The size of the
887 output file is slightly more than the requested file size.
888
889 -ss position (input/output)
890 When used as an input option (before "-i"), seeks in this input
891 file to position. Note that in most formats it is not possible to
892 seek exactly, so ffmpeg will seek to the closest seek point before
893 position. When transcoding and -accurate_seek is enabled (the
894 default), this extra segment between the seek point and position
895 will be decoded and discarded. When doing stream copy or when
896 -noaccurate_seek is used, it will be preserved.
897
898 When used as an output option (before an output url), decodes but
899 discards input until the timestamps reach position.
900
901 position must be a time duration specification, see the Time
902 duration section in the ffmpeg-utils(1) manual.
903
904 -sseof position (input)
905 Like the "-ss" option but relative to the "end of file". That is
906 negative values are earlier in the file, 0 is at EOF.
907
908 -itsoffset offset (input)
909 Set the input time offset.
910
911 offset must be a time duration specification, see the Time duration
912 section in the ffmpeg-utils(1) manual.
913
914 The offset is added to the timestamps of the input files.
915 Specifying a positive offset means that the corresponding streams
916 are delayed by the time duration specified in offset.
917
918 -itsscale scale (input,per-stream)
919 Rescale input timestamps. scale should be a floating point number.
920
921 -timestamp date (output)
922 Set the recording timestamp in the container.
923
924 date must be a date specification, see the Date section in the
925 ffmpeg-utils(1) manual.
926
927 -metadata[:metadata_specifier] key=value (output,per-metadata)
928 Set a metadata key/value pair.
929
930 An optional metadata_specifier may be given to set metadata on
931 streams, chapters or programs. See "-map_metadata" documentation
932 for details.
933
934 This option overrides metadata set with "-map_metadata". It is also
935 possible to delete metadata by using an empty value.
936
937 For example, for setting the title in the output file:
938
939 ffmpeg -i in.avi -metadata title="my title" out.flv
940
941 To set the language of the first audio stream:
942
943 ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
944
945 -disposition[:stream_specifier] value (output,per-stream)
946 Sets the disposition for a stream.
947
948 By default, the disposition is copied from the input stream, unless
949 the output stream this option applies to is fed by a complex
950 filtergraph - in that case the disposition is unset by default.
951
952 value is a sequence of items separated by '+' or '-'. The first
953 item may also be prefixed with '+' or '-', in which case this
954 option modifies the default value. Otherwise (the first item is not
955 prefixed) this options overrides the default value. A '+' prefix
956 adds the given disposition, '-' removes it. It is also possible to
957 clear the disposition by setting it to 0.
958
959 If no "-disposition" options were specified for an output file,
960 ffmpeg will automatically set the 'default' disposition on the
961 first stream of each type, when there are multiple streams of this
962 type in the output file and no stream of that type is already
963 marked as default.
964
965 The "-dispositions" option lists the known dispositions.
966
967 For example, to make the second audio stream the default stream:
968
969 ffmpeg -i in.mkv -c copy -disposition:a:1 default out.mkv
970
971 To make the second subtitle stream the default stream and remove
972 the default disposition from the first subtitle stream:
973
974 ffmpeg -i in.mkv -c copy -disposition:s:0 0 -disposition:s:1 default out.mkv
975
976 To add an embedded cover/thumbnail:
977
978 ffmpeg -i in.mp4 -i IMAGE -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4
979
980 Not all muxers support embedded thumbnails, and those who do, only
981 support a few formats, like JPEG or PNG.
982
983 -program
984 [title=title:][program_num=program_num:]st=stream[:st=stream...]
985 (output)
986 Creates a program with the specified title, program_num and adds
987 the specified stream(s) to it.
988
989 -target type (output)
990 Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50"). type
991 may be prefixed with "pal-", "ntsc-" or "film-" to use the
992 corresponding standard. All the format options (bitrate, codecs,
993 buffer sizes) are then set automatically. You can just type:
994
995 ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
996
997 Nevertheless you can specify additional options as long as you know
998 they do not conflict with the standard, as in:
999
1000 ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
1001
1002 The parameters set for each target are as follows.
1003
1004 VCD
1005
1006 <pal>:
1007 -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1008 -s 352x288 -r 25
1009 -codec:v mpeg1video -g 15 -b:v 1150k -maxrate:v 1150v -minrate:v 1150k -bufsize:v 327680
1010 -ar 44100 -ac 2
1011 -codec:a mp2 -b:a 224k
1012
1013 <ntsc>:
1014 -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1015 -s 352x240 -r 30000/1001
1016 -codec:v mpeg1video -g 18 -b:v 1150k -maxrate:v 1150v -minrate:v 1150k -bufsize:v 327680
1017 -ar 44100 -ac 2
1018 -codec:a mp2 -b:a 224k
1019
1020 <film>:
1021 -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1022 -s 352x240 -r 24000/1001
1023 -codec:v mpeg1video -g 18 -b:v 1150k -maxrate:v 1150v -minrate:v 1150k -bufsize:v 327680
1024 -ar 44100 -ac 2
1025 -codec:a mp2 -b:a 224k
1026
1027 SVCD
1028
1029 <pal>:
1030 -f svcd -packetsize 2324
1031 -s 480x576 -pix_fmt yuv420p -r 25
1032 -codec:v mpeg2video -g 15 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1033 -ar 44100
1034 -codec:a mp2 -b:a 224k
1035
1036 <ntsc>:
1037 -f svcd -packetsize 2324
1038 -s 480x480 -pix_fmt yuv420p -r 30000/1001
1039 -codec:v mpeg2video -g 18 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1040 -ar 44100
1041 -codec:a mp2 -b:a 224k
1042
1043 <film>:
1044 -f svcd -packetsize 2324
1045 -s 480x480 -pix_fmt yuv420p -r 24000/1001
1046 -codec:v mpeg2video -g 18 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1047 -ar 44100
1048 -codec:a mp2 -b:a 224k
1049
1050 DVD
1051
1052 <pal>:
1053 -f dvd -muxrate 10080k -packetsize 2048
1054 -s 720x576 -pix_fmt yuv420p -r 25
1055 -codec:v mpeg2video -g 15 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1056 -ar 48000
1057 -codec:a ac3 -b:a 448k
1058
1059 <ntsc>:
1060 -f dvd -muxrate 10080k -packetsize 2048
1061 -s 720x480 -pix_fmt yuv420p -r 30000/1001
1062 -codec:v mpeg2video -g 18 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1063 -ar 48000
1064 -codec:a ac3 -b:a 448k
1065
1066 <film>:
1067 -f dvd -muxrate 10080k -packetsize 2048
1068 -s 720x480 -pix_fmt yuv420p -r 24000/1001
1069 -codec:v mpeg2video -g 18 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1070 -ar 48000
1071 -codec:a ac3 -b:a 448k
1072
1073 DV
1074
1075 <pal>:
1076 -f dv
1077 -s 720x576 -pix_fmt yuv420p -r 25
1078 -ar 48000 -ac 2
1079
1080 <ntsc>:
1081 -f dv
1082 -s 720x480 -pix_fmt yuv411p -r 30000/1001
1083 -ar 48000 -ac 2
1084
1085 <film>:
1086 -f dv
1087 -s 720x480 -pix_fmt yuv411p -r 24000/1001
1088 -ar 48000 -ac 2
1089
1090 The "dv50" target is identical to the "dv" target except that the
1091 pixel format set is "yuv422p" for all three standards.
1092
1093 Any user-set value for a parameter above will override the target
1094 preset value. In that case, the output may not comply with the
1095 target standard.
1096
1097 -dn (input/output)
1098 As an input option, blocks all data streams of a file from being
1099 filtered or being automatically selected or mapped for any output.
1100 See "-discard" option to disable streams individually.
1101
1102 As an output option, disables data recording i.e. automatic
1103 selection or mapping of any data stream. For full manual control
1104 see the "-map" option.
1105
1106 -dframes number (output)
1107 Set the number of data frames to output. This is an obsolete alias
1108 for "-frames:d", which you should use instead.
1109
1110 -frames[:stream_specifier] framecount (output,per-stream)
1111 Stop writing to the stream after framecount frames.
1112
1113 -q[:stream_specifier] q (output,per-stream)
1114 -qscale[:stream_specifier] q (output,per-stream)
1115 Use fixed quality scale (VBR). The meaning of q/qscale is codec-
1116 dependent. If qscale is used without a stream_specifier then it
1117 applies only to the video stream, this is to maintain compatibility
1118 with previous behavior and as specifying the same codec specific
1119 value to 2 different codecs that is audio and video generally is
1120 not what is intended when no stream_specifier is used.
1121
1122 -filter[:stream_specifier] filtergraph (output,per-stream)
1123 Create the filtergraph specified by filtergraph and use it to
1124 filter the stream.
1125
1126 filtergraph is a description of the filtergraph to apply to the
1127 stream, and must have a single input and a single output of the
1128 same type of the stream. In the filtergraph, the input is
1129 associated to the label "in", and the output to the label "out".
1130 See the ffmpeg-filters manual for more information about the
1131 filtergraph syntax.
1132
1133 See the -filter_complex option if you want to create filtergraphs
1134 with multiple inputs and/or outputs.
1135
1136 -filter_script[:stream_specifier] filename (output,per-stream)
1137 This option is similar to -filter, the only difference is that its
1138 argument is the name of the file from which a filtergraph
1139 description is to be read.
1140
1141 -reinit_filter[:stream_specifier] integer (input,per-stream)
1142 This boolean option determines if the filtergraph(s) to which this
1143 stream is fed gets reinitialized when input frame parameters change
1144 mid-stream. This option is enabled by default as most video and all
1145 audio filters cannot handle deviation in input frame properties.
1146 Upon reinitialization, existing filter state is lost, like e.g. the
1147 frame count "n" reference available in some filters. Any frames
1148 buffered at time of reinitialization are lost. The properties
1149 where a change triggers reinitialization are, for video, frame
1150 resolution or pixel format; for audio, sample format, sample rate,
1151 channel count or channel layout.
1152
1153 -filter_threads nb_threads (global)
1154 Defines how many threads are used to process a filter pipeline.
1155 Each pipeline will produce a thread pool with this many threads
1156 available for parallel processing. The default is the number of
1157 available CPUs.
1158
1159 -pre[:stream_specifier] preset_name (output,per-stream)
1160 Specify the preset for matching stream(s).
1161
1162 -stats (global)
1163 Print encoding progress/statistics. It is on by default, to
1164 explicitly disable it you need to specify "-nostats".
1165
1166 -stats_period time (global)
1167 Set period at which encoding progress/statistics are updated.
1168 Default is 0.5 seconds.
1169
1170 -progress url (global)
1171 Send program-friendly progress information to url.
1172
1173 Progress information is written periodically and at the end of the
1174 encoding process. It is made of "key=value" lines. key consists of
1175 only alphanumeric characters. The last key of a sequence of
1176 progress information is always "progress".
1177
1178 The update period is set using "-stats_period".
1179
1180 -stdin
1181 Enable interaction on standard input. On by default unless standard
1182 input is used as an input. To explicitly disable interaction you
1183 need to specify "-nostdin".
1184
1185 Disabling interaction on standard input is useful, for example, if
1186 ffmpeg is in the background process group. Roughly the same result
1187 can be achieved with "ffmpeg ... < /dev/null" but it requires a
1188 shell.
1189
1190 -debug_ts (global)
1191 Print timestamp information. It is off by default. This option is
1192 mostly useful for testing and debugging purposes, and the output
1193 format may change from one version to another, so it should not be
1194 employed by portable scripts.
1195
1196 See also the option "-fdebug ts".
1197
1198 -attach filename (output)
1199 Add an attachment to the output file. This is supported by a few
1200 formats like Matroska for e.g. fonts used in rendering subtitles.
1201 Attachments are implemented as a specific type of stream, so this
1202 option will add a new stream to the file. It is then possible to
1203 use per-stream options on this stream in the usual way. Attachment
1204 streams created with this option will be created after all the
1205 other streams (i.e. those created with "-map" or automatic
1206 mappings).
1207
1208 Note that for Matroska you also have to set the mimetype metadata
1209 tag:
1210
1211 ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
1212
1213 (assuming that the attachment stream will be third in the output
1214 file).
1215
1216 -dump_attachment[:stream_specifier] filename (input,per-stream)
1217 Extract the matching attachment stream into a file named filename.
1218 If filename is empty, then the value of the "filename" metadata tag
1219 will be used.
1220
1221 E.g. to extract the first attachment to a file named 'out.ttf':
1222
1223 ffmpeg -dump_attachment:t:0 out.ttf -i INPUT
1224
1225 To extract all attachments to files determined by the "filename"
1226 tag:
1227
1228 ffmpeg -dump_attachment:t "" -i INPUT
1229
1230 Technical note -- attachments are implemented as codec extradata,
1231 so this option can actually be used to extract extradata from any
1232 stream, not just attachments.
1233
1234 Video Options
1235 -vframes number (output)
1236 Set the number of video frames to output. This is an obsolete alias
1237 for "-frames:v", which you should use instead.
1238
1239 -r[:stream_specifier] fps (input/output,per-stream)
1240 Set frame rate (Hz value, fraction or abbreviation).
1241
1242 As an input option, ignore any timestamps stored in the file and
1243 instead generate timestamps assuming constant frame rate fps. This
1244 is not the same as the -framerate option used for some input
1245 formats like image2 or v4l2 (it used to be the same in older
1246 versions of FFmpeg). If in doubt use -framerate instead of the
1247 input option -r.
1248
1249 As an output option, duplicate or drop input frames to achieve
1250 constant output frame rate fps.
1251
1252 -fpsmax[:stream_specifier] fps (output,per-stream)
1253 Set maximum frame rate (Hz value, fraction or abbreviation).
1254
1255 Clamps output frame rate when output framerate is auto-set and is
1256 higher than this value. Useful in batch processing or when input
1257 framerate is wrongly detected as very high. It cannot be set
1258 together with "-r". It is ignored during streamcopy.
1259
1260 -s[:stream_specifier] size (input/output,per-stream)
1261 Set frame size.
1262
1263 As an input option, this is a shortcut for the video_size private
1264 option, recognized by some demuxers for which the frame size is
1265 either not stored in the file or is configurable -- e.g. raw video
1266 or video grabbers.
1267
1268 As an output option, this inserts the "scale" video filter to the
1269 end of the corresponding filtergraph. Please use the "scale" filter
1270 directly to insert it at the beginning or some other place.
1271
1272 The format is wxh (default - same as source).
1273
1274 -aspect[:stream_specifier] aspect (output,per-stream)
1275 Set the video display aspect ratio specified by aspect.
1276
1277 aspect can be a floating point number string, or a string of the
1278 form num:den, where num and den are the numerator and denominator
1279 of the aspect ratio. For example "4:3", "16:9", "1.3333", and
1280 "1.7777" are valid argument values.
1281
1282 If used together with -vcodec copy, it will affect the aspect ratio
1283 stored at container level, but not the aspect ratio stored in
1284 encoded frames, if it exists.
1285
1286 -vn (input/output)
1287 As an input option, blocks all video streams of a file from being
1288 filtered or being automatically selected or mapped for any output.
1289 See "-discard" option to disable streams individually.
1290
1291 As an output option, disables video recording i.e. automatic
1292 selection or mapping of any video stream. For full manual control
1293 see the "-map" option.
1294
1295 -vcodec codec (output)
1296 Set the video codec. This is an alias for "-codec:v".
1297
1298 -pass[:stream_specifier] n (output,per-stream)
1299 Select the pass number (1 or 2). It is used to do two-pass video
1300 encoding. The statistics of the video are recorded in the first
1301 pass into a log file (see also the option -passlogfile), and in the
1302 second pass that log file is used to generate the video at the
1303 exact requested bitrate. On pass 1, you may just deactivate audio
1304 and set output to null, examples for Windows and Unix:
1305
1306 ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
1307 ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
1308
1309 -passlogfile[:stream_specifier] prefix (output,per-stream)
1310 Set two-pass log file name prefix to prefix, the default file name
1311 prefix is ``ffmpeg2pass''. The complete file name will be
1312 PREFIX-N.log, where N is a number specific to the output stream
1313
1314 -vf filtergraph (output)
1315 Create the filtergraph specified by filtergraph and use it to
1316 filter the stream.
1317
1318 This is an alias for "-filter:v", see the -filter option.
1319
1320 -autorotate
1321 Automatically rotate the video according to file metadata. Enabled
1322 by default, use -noautorotate to disable it.
1323
1324 -autoscale
1325 Automatically scale the video according to the resolution of first
1326 frame. Enabled by default, use -noautoscale to disable it. When
1327 autoscale is disabled, all output frames of filter graph might not
1328 be in the same resolution and may be inadequate for some
1329 encoder/muxer. Therefore, it is not recommended to disable it
1330 unless you really know what you are doing. Disable autoscale at
1331 your own risk.
1332
1333 Advanced Video options
1334 -pix_fmt[:stream_specifier] format (input/output,per-stream)
1335 Set pixel format. Use "-pix_fmts" to show all the supported pixel
1336 formats. If the selected pixel format can not be selected, ffmpeg
1337 will print a warning and select the best pixel format supported by
1338 the encoder. If pix_fmt is prefixed by a "+", ffmpeg will exit
1339 with an error if the requested pixel format can not be selected,
1340 and automatic conversions inside filtergraphs are disabled. If
1341 pix_fmt is a single "+", ffmpeg selects the same pixel format as
1342 the input (or graph output) and automatic conversions are disabled.
1343
1344 -sws_flags flags (input/output)
1345 Set SwScaler flags.
1346
1347 -rc_override[:stream_specifier] override (output,per-stream)
1348 Rate control override for specific intervals, formatted as
1349 "int,int,int" list separated with slashes. Two first values are the
1350 beginning and end frame numbers, last one is quantizer to use if
1351 positive, or quality factor if negative.
1352
1353 -ilme
1354 Force interlacing support in encoder (MPEG-2 and MPEG-4 only). Use
1355 this option if your input file is interlaced and you want to keep
1356 the interlaced format for minimum losses. The alternative is to
1357 deinterlace the input stream by use of a filter such as "yadif" or
1358 "bwdif", but deinterlacing introduces losses.
1359
1360 -psnr
1361 Calculate PSNR of compressed frames.
1362
1363 -vstats
1364 Dump video coding statistics to vstats_HHMMSS.log.
1365
1366 -vstats_file file
1367 Dump video coding statistics to file.
1368
1369 -vstats_version file
1370 Specifies which version of the vstats format to use. Default is 2.
1371
1372 version = 1 :
1373
1374 "frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d s_size= %8.0fkB time=
1375 %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s"
1376
1377 version > 1:
1378
1379 "out= %2d st= %2d frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d
1380 s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s"
1381
1382 -top[:stream_specifier] n (output,per-stream)
1383 top=1/bottom=0/auto=-1 field first
1384
1385 -dc precision
1386 Intra_dc_precision.
1387
1388 -vtag fourcc/tag (output)
1389 Force video tag/fourcc. This is an alias for "-tag:v".
1390
1391 -qphist (global)
1392 Show QP histogram
1393
1394 -vbsf bitstream_filter
1395 Deprecated see -bsf
1396
1397 -force_key_frames[:stream_specifier] time[,time...] (output,per-stream)
1398 -force_key_frames[:stream_specifier] expr:expr (output,per-stream)
1399 -force_key_frames[:stream_specifier] source (output,per-stream)
1400 -force_key_frames[:stream_specifier] source_no_drop (output,per-stream)
1401 force_key_frames can take arguments of the following form:
1402
1403 time[,time...]
1404 If the argument consists of timestamps, ffmpeg will round the
1405 specified times to the nearest output timestamp as per the
1406 encoder time base and force a keyframe at the first frame
1407 having timestamp equal or greater than the computed timestamp.
1408 Note that if the encoder time base is too coarse, then the
1409 keyframes may be forced on frames with timestamps lower than
1410 the specified time. The default encoder time base is the
1411 inverse of the output framerate but may be set otherwise via
1412 "-enc_time_base".
1413
1414 If one of the times is ""chapters"[delta]", it is expanded into
1415 the time of the beginning of all chapters in the file, shifted
1416 by delta, expressed as a time in seconds. This option can be
1417 useful to ensure that a seek point is present at a chapter mark
1418 or any other designated place in the output file.
1419
1420 For example, to insert a key frame at 5 minutes, plus key
1421 frames 0.1 second before the beginning of every chapter:
1422
1423 -force_key_frames 0:05:00,chapters-0.1
1424
1425 expr:expr
1426 If the argument is prefixed with "expr:", the string expr is
1427 interpreted like an expression and is evaluated for each frame.
1428 A key frame is forced in case the evaluation is non-zero.
1429
1430 The expression in expr can contain the following constants:
1431
1432 n the number of current processed frame, starting from 0
1433
1434 n_forced
1435 the number of forced frames
1436
1437 prev_forced_n
1438 the number of the previous forced frame, it is "NAN" when
1439 no keyframe was forced yet
1440
1441 prev_forced_t
1442 the time of the previous forced frame, it is "NAN" when no
1443 keyframe was forced yet
1444
1445 t the time of the current processed frame
1446
1447 For example to force a key frame every 5 seconds, you can
1448 specify:
1449
1450 -force_key_frames expr:gte(t,n_forced*5)
1451
1452 To force a key frame 5 seconds after the time of the last
1453 forced one, starting from second 13:
1454
1455 -force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))
1456
1457 source
1458 If the argument is "source", ffmpeg will force a key frame if
1459 the current frame being encoded is marked as a key frame in its
1460 source.
1461
1462 source_no_drop
1463 If the argument is "source_no_drop", ffmpeg will force a key
1464 frame if the current frame being encoded is marked as a key
1465 frame in its source. In cases where this particular source
1466 frame has to be dropped, enforce the next available frame to
1467 become a key frame instead.
1468
1469 Note that forcing too many keyframes is very harmful for the
1470 lookahead algorithms of certain encoders: using fixed-GOP options
1471 or similar would be more efficient.
1472
1473 -copyinkf[:stream_specifier] (output,per-stream)
1474 When doing stream copy, copy also non-key frames found at the
1475 beginning.
1476
1477 -init_hw_device type[=name][:device[,key=value...]]
1478 Initialise a new hardware device of type type called name, using
1479 the given device parameters. If no name is specified it will
1480 receive a default name of the form "type%d".
1481
1482 The meaning of device and the following arguments depends on the
1483 device type:
1484
1485 cuda
1486 device is the number of the CUDA device.
1487
1488 The following options are recognized:
1489
1490 primary_ctx
1491 If set to 1, uses the primary device context instead of
1492 creating a new one.
1493
1494 Examples:
1495
1496 -init_hw_device cuda:1
1497 Choose the second device on the system.
1498
1499 -init_hw_device cuda:0,primary_ctx=1
1500 Choose the first device and use the primary device context.
1501
1502 dxva2
1503 device is the number of the Direct3D 9 display adapter.
1504
1505 d3d11va
1506 device is the number of the Direct3D 11 display adapter.
1507
1508 vaapi
1509 device is either an X11 display name or a DRM render node. If
1510 not specified, it will attempt to open the default X11 display
1511 ($DISPLAY) and then the first DRM render node
1512 (/dev/dri/renderD128).
1513
1514 vdpau
1515 device is an X11 display name. If not specified, it will
1516 attempt to open the default X11 display ($DISPLAY).
1517
1518 qsv device selects a value in MFX_IMPL_*. Allowed values are:
1519
1520 auto
1521 sw
1522 hw
1523 auto_any
1524 hw_any
1525 hw2
1526 hw3
1527 hw4
1528
1529 If not specified, auto_any is used. (Note that it may be
1530 easier to achieve the desired result for QSV by creating the
1531 platform-appropriate subdevice (dxva2 or d3d11va or vaapi) and
1532 then deriving a QSV device from that.)
1533
1534 Alternatively, child_device_type helps to choose platform-
1535 appropriate subdevice type. On Windows d3d11va is used as
1536 default subdevice type.
1537
1538 Examples:
1539
1540 -init_hw_device qsv:hw,child_device_type=d3d11va
1541 Choose the GPU subdevice with type d3d11va and create QSV
1542 device with MFX_IMPL_HARDWARE.
1543
1544 -init_hw_device qsv:hw,child_device_type=dxva2
1545 Choose the GPU subdevice with type dxva2 and create QSV
1546 device with MFX_IMPL_HARDWARE.
1547
1548 opencl
1549 device selects the platform and device as
1550 platform_index.device_index.
1551
1552 The set of devices can also be filtered using the key-value
1553 pairs to find only devices matching particular platform or
1554 device strings.
1555
1556 The strings usable as filters are:
1557
1558 platform_profile
1559 platform_version
1560 platform_name
1561 platform_vendor
1562 platform_extensions
1563 device_name
1564 device_vendor
1565 driver_version
1566 device_version
1567 device_profile
1568 device_extensions
1569 device_type
1570
1571 The indices and filters must together uniquely select a device.
1572
1573 Examples:
1574
1575 -init_hw_device opencl:0.1
1576 Choose the second device on the first platform.
1577
1578 -init_hw_device opencl:,device_name=Foo9000
1579 Choose the device with a name containing the string
1580 Foo9000.
1581
1582 -init_hw_device
1583 opencl:1,device_type=gpu,device_extensions=cl_khr_fp16
1584 Choose the GPU device on the second platform supporting the
1585 cl_khr_fp16 extension.
1586
1587 vulkan
1588 If device is an integer, it selects the device by its index in
1589 a system-dependent list of devices. If device is any other
1590 string, it selects the first device with a name containing that
1591 string as a substring.
1592
1593 The following options are recognized:
1594
1595 debug
1596 If set to 1, enables the validation layer, if installed.
1597
1598 linear_images
1599 If set to 1, images allocated by the hwcontext will be
1600 linear and locally mappable.
1601
1602 instance_extensions
1603 A plus separated list of additional instance extensions to
1604 enable.
1605
1606 device_extensions
1607 A plus separated list of additional device extensions to
1608 enable.
1609
1610 Examples:
1611
1612 -init_hw_device vulkan:1
1613 Choose the second device on the system.
1614
1615 -init_hw_device vulkan:RADV
1616 Choose the first device with a name containing the string
1617 RADV.
1618
1619 -init_hw_device
1620 vulkan:0,instance_extensions=VK_KHR_wayland_surface+VK_KHR_xcb_surface
1621 Choose the first device and enable the Wayland and XCB
1622 instance extensions.
1623
1624 -init_hw_device type[=name]@source
1625 Initialise a new hardware device of type type called name, deriving
1626 it from the existing device with the name source.
1627
1628 -init_hw_device list
1629 List all hardware device types supported in this build of ffmpeg.
1630
1631 -filter_hw_device name
1632 Pass the hardware device called name to all filters in any filter
1633 graph. This can be used to set the device to upload to with the
1634 "hwupload" filter, or the device to map to with the "hwmap" filter.
1635 Other filters may also make use of this parameter when they require
1636 a hardware device. Note that this is typically only required when
1637 the input is not already in hardware frames - when it is, filters
1638 will derive the device they require from the context of the frames
1639 they receive as input.
1640
1641 This is a global setting, so all filters will receive the same
1642 device.
1643
1644 -hwaccel[:stream_specifier] hwaccel (input,per-stream)
1645 Use hardware acceleration to decode the matching stream(s). The
1646 allowed values of hwaccel are:
1647
1648 none
1649 Do not use any hardware acceleration (the default).
1650
1651 auto
1652 Automatically select the hardware acceleration method.
1653
1654 vdpau
1655 Use VDPAU (Video Decode and Presentation API for Unix) hardware
1656 acceleration.
1657
1658 dxva2
1659 Use DXVA2 (DirectX Video Acceleration) hardware acceleration.
1660
1661 d3d11va
1662 Use D3D11VA (DirectX Video Acceleration) hardware acceleration.
1663
1664 vaapi
1665 Use VAAPI (Video Acceleration API) hardware acceleration.
1666
1667 qsv Use the Intel QuickSync Video acceleration for video
1668 transcoding.
1669
1670 Unlike most other values, this option does not enable
1671 accelerated decoding (that is used automatically whenever a qsv
1672 decoder is selected), but accelerated transcoding, without
1673 copying the frames into the system memory.
1674
1675 For it to work, both the decoder and the encoder must support
1676 QSV acceleration and no filters must be used.
1677
1678 This option has no effect if the selected hwaccel is not available
1679 or not supported by the chosen decoder.
1680
1681 Note that most acceleration methods are intended for playback and
1682 will not be faster than software decoding on modern CPUs.
1683 Additionally, ffmpeg will usually need to copy the decoded frames
1684 from the GPU memory into the system memory, resulting in further
1685 performance loss. This option is thus mainly useful for testing.
1686
1687 -hwaccel_device[:stream_specifier] hwaccel_device (input,per-stream)
1688 Select a device to use for hardware acceleration.
1689
1690 This option only makes sense when the -hwaccel option is also
1691 specified. It can either refer to an existing device created with
1692 -init_hw_device by name, or it can create a new device as if
1693 -init_hw_device type:hwaccel_device were called immediately before.
1694
1695 -hwaccels
1696 List all hardware acceleration components enabled in this build of
1697 ffmpeg. Actual runtime availability depends on the hardware and
1698 its suitable driver being installed.
1699
1700 Audio Options
1701 -aframes number (output)
1702 Set the number of audio frames to output. This is an obsolete alias
1703 for "-frames:a", which you should use instead.
1704
1705 -ar[:stream_specifier] freq (input/output,per-stream)
1706 Set the audio sampling frequency. For output streams it is set by
1707 default to the frequency of the corresponding input stream. For
1708 input streams this option only makes sense for audio grabbing
1709 devices and raw demuxers and is mapped to the corresponding demuxer
1710 options.
1711
1712 -aq q (output)
1713 Set the audio quality (codec-specific, VBR). This is an alias for
1714 -q:a.
1715
1716 -ac[:stream_specifier] channels (input/output,per-stream)
1717 Set the number of audio channels. For output streams it is set by
1718 default to the number of input audio channels. For input streams
1719 this option only makes sense for audio grabbing devices and raw
1720 demuxers and is mapped to the corresponding demuxer options.
1721
1722 -an (input/output)
1723 As an input option, blocks all audio streams of a file from being
1724 filtered or being automatically selected or mapped for any output.
1725 See "-discard" option to disable streams individually.
1726
1727 As an output option, disables audio recording i.e. automatic
1728 selection or mapping of any audio stream. For full manual control
1729 see the "-map" option.
1730
1731 -acodec codec (input/output)
1732 Set the audio codec. This is an alias for "-codec:a".
1733
1734 -sample_fmt[:stream_specifier] sample_fmt (output,per-stream)
1735 Set the audio sample format. Use "-sample_fmts" to get a list of
1736 supported sample formats.
1737
1738 -af filtergraph (output)
1739 Create the filtergraph specified by filtergraph and use it to
1740 filter the stream.
1741
1742 This is an alias for "-filter:a", see the -filter option.
1743
1744 Advanced Audio options
1745 -atag fourcc/tag (output)
1746 Force audio tag/fourcc. This is an alias for "-tag:a".
1747
1748 -absf bitstream_filter
1749 Deprecated, see -bsf
1750
1751 -guess_layout_max channels (input,per-stream)
1752 If some input channel layout is not known, try to guess only if it
1753 corresponds to at most the specified number of channels. For
1754 example, 2 tells to ffmpeg to recognize 1 channel as mono and 2
1755 channels as stereo but not 6 channels as 5.1. The default is to
1756 always try to guess. Use 0 to disable all guessing.
1757
1758 Subtitle options
1759 -scodec codec (input/output)
1760 Set the subtitle codec. This is an alias for "-codec:s".
1761
1762 -sn (input/output)
1763 As an input option, blocks all subtitle streams of a file from
1764 being filtered or being automatically selected or mapped for any
1765 output. See "-discard" option to disable streams individually.
1766
1767 As an output option, disables subtitle recording i.e. automatic
1768 selection or mapping of any subtitle stream. For full manual
1769 control see the "-map" option.
1770
1771 -sbsf bitstream_filter
1772 Deprecated, see -bsf
1773
1774 Advanced Subtitle options
1775 -fix_sub_duration
1776 Fix subtitles durations. For each subtitle, wait for the next
1777 packet in the same stream and adjust the duration of the first to
1778 avoid overlap. This is necessary with some subtitles codecs,
1779 especially DVB subtitles, because the duration in the original
1780 packet is only a rough estimate and the end is actually marked by
1781 an empty subtitle frame. Failing to use this option when necessary
1782 can result in exaggerated durations or muxing failures due to non-
1783 monotonic timestamps.
1784
1785 Note that this option will delay the output of all data until the
1786 next subtitle packet is decoded: it may increase memory consumption
1787 and latency a lot.
1788
1789 -canvas_size size
1790 Set the size of the canvas used to render subtitles.
1791
1792 Advanced options
1793 -map
1794 [-]input_file_id[:stream_specifier][?][,sync_file_id[:stream_specifier]]
1795 | [linklabel] (output)
1796 Designate one or more input streams as a source for the output
1797 file. Each input stream is identified by the input file index
1798 input_file_id and the input stream index input_stream_id within the
1799 input file. Both indices start at 0. If specified,
1800 sync_file_id:stream_specifier sets which input stream is used as a
1801 presentation sync reference.
1802
1803 The first "-map" option on the command line specifies the source
1804 for output stream 0, the second "-map" option specifies the source
1805 for output stream 1, etc.
1806
1807 A "-" character before the stream identifier creates a "negative"
1808 mapping. It disables matching streams from already created
1809 mappings.
1810
1811 A trailing "?" after the stream index will allow the map to be
1812 optional: if the map matches no streams the map will be ignored
1813 instead of failing. Note the map will still fail if an invalid
1814 input file index is used; such as if the map refers to a non-
1815 existent input.
1816
1817 An alternative [linklabel] form will map outputs from complex
1818 filter graphs (see the -filter_complex option) to the output file.
1819 linklabel must correspond to a defined output link label in the
1820 graph.
1821
1822 For example, to map ALL streams from the first input file to output
1823
1824 ffmpeg -i INPUT -map 0 output
1825
1826 For example, if you have two audio streams in the first input file,
1827 these streams are identified by "0:0" and "0:1". You can use "-map"
1828 to select which streams to place in an output file. For example:
1829
1830 ffmpeg -i INPUT -map 0:1 out.wav
1831
1832 will map the input stream in INPUT identified by "0:1" to the
1833 (single) output stream in out.wav.
1834
1835 For example, to select the stream with index 2 from input file
1836 a.mov (specified by the identifier "0:2"), and stream with index 6
1837 from input b.mov (specified by the identifier "1:6"), and copy them
1838 to the output file out.mov:
1839
1840 ffmpeg -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
1841
1842 To select all video and the third audio stream from an input file:
1843
1844 ffmpeg -i INPUT -map 0:v -map 0:a:2 OUTPUT
1845
1846 To map all the streams except the second audio, use negative
1847 mappings
1848
1849 ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT
1850
1851 To map the video and audio streams from the first input, and using
1852 the trailing "?", ignore the audio mapping if no audio streams
1853 exist in the first input:
1854
1855 ffmpeg -i INPUT -map 0:v -map 0:a? OUTPUT
1856
1857 To pick the English audio stream:
1858
1859 ffmpeg -i INPUT -map 0:m:language:eng OUTPUT
1860
1861 Note that using this option disables the default mappings for this
1862 output file.
1863
1864 -ignore_unknown
1865 Ignore input streams with unknown type instead of failing if
1866 copying such streams is attempted.
1867
1868 -copy_unknown
1869 Allow input streams with unknown type to be copied instead of
1870 failing if copying such streams is attempted.
1871
1872 -map_channel
1873 [input_file_id.stream_specifier.channel_id|-1][?][:output_file_id.stream_specifier]
1874 Map an audio channel from a given input to an output. If
1875 output_file_id.stream_specifier is not set, the audio channel will
1876 be mapped on all the audio streams.
1877
1878 Using "-1" instead of input_file_id.stream_specifier.channel_id
1879 will map a muted channel.
1880
1881 A trailing "?" will allow the map_channel to be optional: if the
1882 map_channel matches no channel the map_channel will be ignored
1883 instead of failing.
1884
1885 For example, assuming INPUT is a stereo audio file, you can switch
1886 the two audio channels with the following command:
1887
1888 ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT
1889
1890 If you want to mute the first channel and keep the second:
1891
1892 ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT
1893
1894 The order of the "-map_channel" option specifies the order of the
1895 channels in the output stream. The output channel layout is guessed
1896 from the number of channels mapped (mono if one "-map_channel",
1897 stereo if two, etc.). Using "-ac" in combination of "-map_channel"
1898 makes the channel gain levels to be updated if input and output
1899 channel layouts don't match (for instance two "-map_channel"
1900 options and "-ac 6").
1901
1902 You can also extract each channel of an input to specific outputs;
1903 the following command extracts two channels of the INPUT audio
1904 stream (file 0, stream 0) to the respective OUTPUT_CH0 and
1905 OUTPUT_CH1 outputs:
1906
1907 ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
1908
1909 The following example splits the channels of a stereo input into
1910 two separate streams, which are put into the same output file:
1911
1912 ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg
1913
1914 Note that currently each output stream can only contain channels
1915 from a single input stream; you can't for example use
1916 "-map_channel" to pick multiple input audio channels contained in
1917 different streams (from the same or different files) and merge them
1918 into a single output stream. It is therefore not currently
1919 possible, for example, to turn two separate mono streams into a
1920 single stereo stream. However splitting a stereo stream into two
1921 single channel mono streams is possible.
1922
1923 If you need this feature, a possible workaround is to use the
1924 amerge filter. For example, if you need to merge a media (here
1925 input.mkv) with 2 mono audio streams into one single stereo channel
1926 audio stream (and keep the video stream), you can use the following
1927 command:
1928
1929 ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv
1930
1931 To map the first two audio channels from the first input, and using
1932 the trailing "?", ignore the audio channel mapping if the first
1933 input is mono instead of stereo:
1934
1935 ffmpeg -i INPUT -map_channel 0.0.0 -map_channel 0.0.1? OUTPUT
1936
1937 -map_metadata[:metadata_spec_out] infile[:metadata_spec_in]
1938 (output,per-metadata)
1939 Set metadata information of the next output file from infile. Note
1940 that those are file indices (zero-based), not filenames. Optional
1941 metadata_spec_in/out parameters specify, which metadata to copy. A
1942 metadata specifier can have the following forms:
1943
1944 g global metadata, i.e. metadata that applies to the whole file
1945
1946 s[:stream_spec]
1947 per-stream metadata. stream_spec is a stream specifier as
1948 described in the Stream specifiers chapter. In an input
1949 metadata specifier, the first matching stream is copied from.
1950 In an output metadata specifier, all matching streams are
1951 copied to.
1952
1953 c:chapter_index
1954 per-chapter metadata. chapter_index is the zero-based chapter
1955 index.
1956
1957 p:program_index
1958 per-program metadata. program_index is the zero-based program
1959 index.
1960
1961 If metadata specifier is omitted, it defaults to global.
1962
1963 By default, global metadata is copied from the first input file,
1964 per-stream and per-chapter metadata is copied along with
1965 streams/chapters. These default mappings are disabled by creating
1966 any mapping of the relevant type. A negative file index can be used
1967 to create a dummy mapping that just disables automatic copying.
1968
1969 For example to copy metadata from the first stream of the input
1970 file to global metadata of the output file:
1971
1972 ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
1973
1974 To do the reverse, i.e. copy global metadata to all audio streams:
1975
1976 ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
1977
1978 Note that simple 0 would work as well in this example, since global
1979 metadata is assumed by default.
1980
1981 -map_chapters input_file_index (output)
1982 Copy chapters from input file with index input_file_index to the
1983 next output file. If no chapter mapping is specified, then chapters
1984 are copied from the first input file with at least one chapter. Use
1985 a negative file index to disable any chapter copying.
1986
1987 -benchmark (global)
1988 Show benchmarking information at the end of an encode. Shows real,
1989 system and user time used and maximum memory consumption. Maximum
1990 memory consumption is not supported on all systems, it will usually
1991 display as 0 if not supported.
1992
1993 -benchmark_all (global)
1994 Show benchmarking information during the encode. Shows real,
1995 system and user time used in various steps (audio/video
1996 encode/decode).
1997
1998 -timelimit duration (global)
1999 Exit after ffmpeg has been running for duration seconds in CPU user
2000 time.
2001
2002 -dump (global)
2003 Dump each input packet to stderr.
2004
2005 -hex (global)
2006 When dumping packets, also dump the payload.
2007
2008 -readrate speed (input)
2009 Limit input read speed.
2010
2011 Its value is a floating-point positive number which represents the
2012 maximum duration of media, in seconds, that should be ingested in
2013 one second of wallclock time. Default value is zero and represents
2014 no imposed limitation on speed of ingestion. Value 1 represents
2015 real-time speed and is equivalent to "-re".
2016
2017 Mainly used to simulate a capture device or live input stream (e.g.
2018 when reading from a file). Should not be used with a low value
2019 when input is an actual capture device or live stream as it may
2020 cause packet loss.
2021
2022 It is useful for when flow speed of output packets is important,
2023 such as live streaming.
2024
2025 -re (input)
2026 Read input at native frame rate. This is equivalent to setting
2027 "-readrate 1".
2028
2029 -vsync parameter
2030 Video sync method.
2031
2032 For compatibility reasons some of the values can be specified as
2033 numbers (shown in parentheses in the following table). This is
2034 deprecated and will stop working in the future.
2035
2036 passthrough (0)
2037 Each frame is passed with its timestamp from the demuxer to the
2038 muxer.
2039
2040 cfr (1)
2041 Frames will be duplicated and dropped to achieve exactly the
2042 requested constant frame rate.
2043
2044 vfr (2)
2045 Frames are passed through with their timestamp or dropped so as
2046 to prevent 2 frames from having the same timestamp.
2047
2048 drop
2049 As passthrough but destroys all timestamps, making the muxer
2050 generate fresh timestamps based on frame-rate.
2051
2052 auto (-1)
2053 Chooses between cfr and vfr depending on muxer capabilities.
2054 This is the default method.
2055
2056 Note that the timestamps may be further modified by the muxer,
2057 after this. For example, in the case that the format option
2058 avoid_negative_ts is enabled.
2059
2060 With -map you can select from which stream the timestamps should be
2061 taken. You can leave either video or audio unchanged and sync the
2062 remaining stream(s) to the unchanged one.
2063
2064 -frame_drop_threshold parameter
2065 Frame drop threshold, which specifies how much behind video frames
2066 can be before they are dropped. In frame rate units, so 1.0 is one
2067 frame. The default is -1.1. One possible usecase is to avoid
2068 framedrops in case of noisy timestamps or to increase frame drop
2069 precision in case of exact timestamps.
2070
2071 -async samples_per_second
2072 Audio sync method. "Stretches/squeezes" the audio stream to match
2073 the timestamps, the parameter is the maximum samples per second by
2074 which the audio is changed. -async 1 is a special case where only
2075 the start of the audio stream is corrected without any later
2076 correction.
2077
2078 Note that the timestamps may be further modified by the muxer,
2079 after this. For example, in the case that the format option
2080 avoid_negative_ts is enabled.
2081
2082 This option has been deprecated. Use the "aresample" audio filter
2083 instead.
2084
2085 -adrift_threshold time
2086 Set the minimum difference between timestamps and audio data (in
2087 seconds) to trigger adding/dropping samples to make it match the
2088 timestamps. This option effectively is a threshold to select
2089 between hard (add/drop) and soft (squeeze/stretch) compensation.
2090 "-async" must be set to a positive value.
2091
2092 -apad parameters (output,per-stream)
2093 Pad the output audio stream(s). This is the same as applying "-af
2094 apad". Argument is a string of filter parameters composed the same
2095 as with the "apad" filter. "-shortest" must be set for this output
2096 for the option to take effect.
2097
2098 -copyts
2099 Do not process input timestamps, but keep their values without
2100 trying to sanitize them. In particular, do not remove the initial
2101 start time offset value.
2102
2103 Note that, depending on the vsync option or on specific muxer
2104 processing (e.g. in case the format option avoid_negative_ts is
2105 enabled) the output timestamps may mismatch with the input
2106 timestamps even when this option is selected.
2107
2108 -start_at_zero
2109 When used with copyts, shift input timestamps so they start at
2110 zero.
2111
2112 This means that using e.g. "-ss 50" will make output timestamps
2113 start at 50 seconds, regardless of what timestamp the input file
2114 started at.
2115
2116 -copytb mode
2117 Specify how to set the encoder timebase when stream copying. mode
2118 is an integer numeric value, and can assume one of the following
2119 values:
2120
2121 1 Use the demuxer timebase.
2122
2123 The time base is copied to the output encoder from the
2124 corresponding input demuxer. This is sometimes required to
2125 avoid non monotonically increasing timestamps when copying
2126 video streams with variable frame rate.
2127
2128 0 Use the decoder timebase.
2129
2130 The time base is copied to the output encoder from the
2131 corresponding input decoder.
2132
2133 -1 Try to make the choice automatically, in order to generate a
2134 sane output.
2135
2136 Default value is -1.
2137
2138 -enc_time_base[:stream_specifier] timebase (output,per-stream)
2139 Set the encoder timebase. timebase is a floating point number, and
2140 can assume one of the following values:
2141
2142 0 Assign a default value according to the media type.
2143
2144 For video - use 1/framerate, for audio - use 1/samplerate.
2145
2146 -1 Use the input stream timebase when possible.
2147
2148 If an input stream is not available, the default timebase will
2149 be used.
2150
2151 >0 Use the provided number as the timebase.
2152
2153 This field can be provided as a ratio of two integers (e.g.
2154 1:24, 1:48000) or as a floating point number (e.g. 0.04166,
2155 2.0833e-5)
2156
2157 Default value is 0.
2158
2159 -bitexact (input/output)
2160 Enable bitexact mode for (de)muxer and (de/en)coder
2161
2162 -shortest (output)
2163 Finish encoding when the shortest input stream ends.
2164
2165 -dts_delta_threshold
2166 Timestamp discontinuity delta threshold.
2167
2168 -dts_error_threshold seconds
2169 Timestamp error delta threshold. This threshold use to discard
2170 crazy/damaged timestamps and the default is 30 hours which is
2171 arbitrarily picked and quite conservative.
2172
2173 -muxdelay seconds (output)
2174 Set the maximum demux-decode delay.
2175
2176 -muxpreload seconds (output)
2177 Set the initial demux-decode delay.
2178
2179 -streamid output-stream-index:new-value (output)
2180 Assign a new stream-id value to an output stream. This option
2181 should be specified prior to the output filename to which it
2182 applies. For the situation where multiple output files exist, a
2183 streamid may be reassigned to a different value.
2184
2185 For example, to set the stream 0 PID to 33 and the stream 1 PID to
2186 36 for an output mpegts file:
2187
2188 ffmpeg -i inurl -streamid 0:33 -streamid 1:36 out.ts
2189
2190 -bsf[:stream_specifier] bitstream_filters (output,per-stream)
2191 Set bitstream filters for matching streams. bitstream_filters is a
2192 comma-separated list of bitstream filters. Use the "-bsfs" option
2193 to get the list of bitstream filters.
2194
2195 ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
2196
2197
2198 ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
2199
2200 -tag[:stream_specifier] codec_tag (input/output,per-stream)
2201 Force a tag/fourcc for matching streams.
2202
2203 -timecode hh:mm:ssSEPff
2204 Specify Timecode for writing. SEP is ':' for non drop timecode and
2205 ';' (or '.') for drop.
2206
2207 ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
2208
2209 -filter_complex filtergraph (global)
2210 Define a complex filtergraph, i.e. one with arbitrary number of
2211 inputs and/or outputs. For simple graphs -- those with one input
2212 and one output of the same type -- see the -filter options.
2213 filtergraph is a description of the filtergraph, as described in
2214 the ``Filtergraph syntax'' section of the ffmpeg-filters manual.
2215
2216 Input link labels must refer to input streams using the
2217 "[file_index:stream_specifier]" syntax (i.e. the same as -map
2218 uses). If stream_specifier matches multiple streams, the first one
2219 will be used. An unlabeled input will be connected to the first
2220 unused input stream of the matching type.
2221
2222 Output link labels are referred to with -map. Unlabeled outputs are
2223 added to the first output file.
2224
2225 Note that with this option it is possible to use only lavfi sources
2226 without normal input files.
2227
2228 For example, to overlay an image over video
2229
2230 ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
2231 '[out]' out.mkv
2232
2233 Here "[0:v]" refers to the first video stream in the first input
2234 file, which is linked to the first (main) input of the overlay
2235 filter. Similarly the first video stream in the second input is
2236 linked to the second (overlay) input of overlay.
2237
2238 Assuming there is only one video stream in each input file, we can
2239 omit input labels, so the above is equivalent to
2240
2241 ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
2242 '[out]' out.mkv
2243
2244 Furthermore we can omit the output label and the single output from
2245 the filter graph will be added to the output file automatically, so
2246 we can simply write
2247
2248 ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
2249
2250 As a special exception, you can use a bitmap subtitle stream as
2251 input: it will be converted into a video with the same size as the
2252 largest video in the file, or 720x576 if no video is present. Note
2253 that this is an experimental and temporary solution. It will be
2254 removed once libavfilter has proper support for subtitles.
2255
2256 For example, to hardcode subtitles on top of a DVB-T recording
2257 stored in MPEG-TS format, delaying the subtitles by 1 second:
2258
2259 ffmpeg -i input.ts -filter_complex \
2260 '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
2261 -sn -map '#0x2dc' output.mkv
2262
2263 (0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the
2264 video, audio and subtitles streams; 0:0, 0:3 and 0:7 would have
2265 worked too)
2266
2267 To generate 5 seconds of pure red video using lavfi "color" source:
2268
2269 ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv
2270
2271 -filter_complex_threads nb_threads (global)
2272 Defines how many threads are used to process a filter_complex
2273 graph. Similar to filter_threads but used for "-filter_complex"
2274 graphs only. The default is the number of available CPUs.
2275
2276 -lavfi filtergraph (global)
2277 Define a complex filtergraph, i.e. one with arbitrary number of
2278 inputs and/or outputs. Equivalent to -filter_complex.
2279
2280 -filter_complex_script filename (global)
2281 This option is similar to -filter_complex, the only difference is
2282 that its argument is the name of the file from which a complex
2283 filtergraph description is to be read.
2284
2285 -accurate_seek (input)
2286 This option enables or disables accurate seeking in input files
2287 with the -ss option. It is enabled by default, so seeking is
2288 accurate when transcoding. Use -noaccurate_seek to disable it,
2289 which may be useful e.g. when copying some streams and transcoding
2290 the others.
2291
2292 -seek_timestamp (input)
2293 This option enables or disables seeking by timestamp in input files
2294 with the -ss option. It is disabled by default. If enabled, the
2295 argument to the -ss option is considered an actual timestamp, and
2296 is not offset by the start time of the file. This matters only for
2297 files which do not start from timestamp 0, such as transport
2298 streams.
2299
2300 -thread_queue_size size (input)
2301 This option sets the maximum number of queued packets when reading
2302 from the file or device. With low latency / high rate live streams,
2303 packets may be discarded if they are not read in a timely manner;
2304 setting this value can force ffmpeg to use a separate input thread
2305 and read packets as soon as they arrive. By default ffmpeg only do
2306 this if multiple inputs are specified.
2307
2308 -sdp_file file (global)
2309 Print sdp information for an output stream to file. This allows
2310 dumping sdp information when at least one output isn't an rtp
2311 stream. (Requires at least one of the output formats to be rtp).
2312
2313 -discard (input)
2314 Allows discarding specific streams or frames from streams. Any
2315 input stream can be fully discarded, using value "all" whereas
2316 selective discarding of frames from a stream occurs at the demuxer
2317 and is not supported by all demuxers.
2318
2319 none
2320 Discard no frame.
2321
2322 default
2323 Default, which discards no frames.
2324
2325 noref
2326 Discard all non-reference frames.
2327
2328 bidir
2329 Discard all bidirectional frames.
2330
2331 nokey
2332 Discard all frames excepts keyframes.
2333
2334 all Discard all frames.
2335
2336 -abort_on flags (global)
2337 Stop and abort on various conditions. The following flags are
2338 available:
2339
2340 empty_output
2341 No packets were passed to the muxer, the output is empty.
2342
2343 empty_output_stream
2344 No packets were passed to the muxer in some of the output
2345 streams.
2346
2347 -max_error_rate (global)
2348 Set fraction of decoding frame failures across all inputs which
2349 when crossed ffmpeg will return exit code 69. Crossing this
2350 threshold does not terminate processing. Range is a floating-point
2351 number between 0 to 1. Default is 2/3.
2352
2353 -xerror (global)
2354 Stop and exit on error
2355
2356 -max_muxing_queue_size packets (output,per-stream)
2357 When transcoding audio and/or video streams, ffmpeg will not begin
2358 writing into the output until it has one packet for each such
2359 stream. While waiting for that to happen, packets for other streams
2360 are buffered. This option sets the size of this buffer, in packets,
2361 for the matching output stream.
2362
2363 The default value of this option should be high enough for most
2364 uses, so only touch this option if you are sure that you need it.
2365
2366 -muxing_queue_data_threshold bytes (output,per-stream)
2367 This is a minimum threshold until which the muxing queue size is
2368 not taken into account. Defaults to 50 megabytes per stream, and is
2369 based on the overall size of packets passed to the muxer.
2370
2371 -auto_conversion_filters (global)
2372 Enable automatically inserting format conversion filters in all
2373 filter graphs, including those defined by -vf, -af, -filter_complex
2374 and -lavfi. If filter format negotiation requires a conversion, the
2375 initialization of the filters will fail. Conversions can still be
2376 performed by inserting the relevant conversion filter (scale,
2377 aresample) in the graph. On by default, to explicitly disable it
2378 you need to specify "-noauto_conversion_filters".
2379
2380 -bits_per_raw_sample[:stream_specifier] value (output,per-stream)
2381 Declare the number of bits per raw sample in the given output
2382 stream to be value. Note that this option sets the information
2383 provided to the encoder/muxer, it does not change the stream to
2384 conform to this value. Setting values that do not match the stream
2385 properties may result in encoding failures or invalid output files.
2386
2387 Preset files
2388 A preset file contains a sequence of option=value pairs, one for each
2389 line, specifying a sequence of options which would be awkward to
2390 specify on the command line. Lines starting with the hash ('#')
2391 character are ignored and are used to provide comments. Check the
2392 presets directory in the FFmpeg source tree for examples.
2393
2394 There are two types of preset files: ffpreset and avpreset files.
2395
2396 ffpreset files
2397
2398 ffpreset files are specified with the "vpre", "apre", "spre", and
2399 "fpre" options. The "fpre" option takes the filename of the preset
2400 instead of a preset name as input and can be used for any kind of
2401 codec. For the "vpre", "apre", and "spre" options, the options
2402 specified in a preset file are applied to the currently selected codec
2403 of the same type as the preset option.
2404
2405 The argument passed to the "vpre", "apre", and "spre" preset options
2406 identifies the preset file to use according to the following rules:
2407
2408 First ffmpeg searches for a file named arg.ffpreset in the directories
2409 $FFMPEG_DATADIR (if set), and $HOME/.ffmpeg, and in the datadir defined
2410 at configuration time (usually PREFIX/share/ffmpeg) or in a ffpresets
2411 folder along the executable on win32, in that order. For example, if
2412 the argument is "libvpx-1080p", it will search for the file
2413 libvpx-1080p.ffpreset.
2414
2415 If no such file is found, then ffmpeg will search for a file named
2416 codec_name-arg.ffpreset in the above-mentioned directories, where
2417 codec_name is the name of the codec to which the preset file options
2418 will be applied. For example, if you select the video codec with
2419 "-vcodec libvpx" and use "-vpre 1080p", then it will search for the
2420 file libvpx-1080p.ffpreset.
2421
2422 avpreset files
2423
2424 avpreset files are specified with the "pre" option. They work similar
2425 to ffpreset files, but they only allow encoder- specific options.
2426 Therefore, an option=value pair specifying an encoder cannot be used.
2427
2428 When the "pre" option is specified, ffmpeg will look for files with the
2429 suffix .avpreset in the directories $AVCONV_DATADIR (if set), and
2430 $HOME/.avconv, and in the datadir defined at configuration time
2431 (usually PREFIX/share/ffmpeg), in that order.
2432
2433 First ffmpeg searches for a file named codec_name-arg.avpreset in the
2434 above-mentioned directories, where codec_name is the name of the codec
2435 to which the preset file options will be applied. For example, if you
2436 select the video codec with "-vcodec libvpx" and use "-pre 1080p", then
2437 it will search for the file libvpx-1080p.avpreset.
2438
2439 If no such file is found, then ffmpeg will search for a file named
2440 arg.avpreset in the same directories.
2441
2443 Video and Audio grabbing
2444 If you specify the input format and device then ffmpeg can grab video
2445 and audio directly.
2446
2447 ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
2448
2449 Or with an ALSA audio source (mono input, card id 1) instead of OSS:
2450
2451 ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg
2452
2453 Note that you must activate the right video source and channel before
2454 launching ffmpeg with any TV viewer such as
2455 <http://linux.bytesex.org/xawtv/> by Gerd Knorr. You also have to set
2456 the audio recording levels correctly with a standard mixer.
2457
2458 X11 grabbing
2459 Grab the X11 display with ffmpeg via
2460
2461 ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg
2462
2463 0.0 is display.screen number of your X11 server, same as the DISPLAY
2464 environment variable.
2465
2466 ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg
2467
2468 0.0 is display.screen number of your X11 server, same as the DISPLAY
2469 environment variable. 10 is the x-offset and 20 the y-offset for the
2470 grabbing.
2471
2472 Video and Audio file format conversion
2473 Any supported file format and protocol can serve as input to ffmpeg:
2474
2475 Examples:
2476
2477 • You can use YUV files as input:
2478
2479 ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
2480
2481 It will use the files:
2482
2483 /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
2484 /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
2485
2486 The Y files use twice the resolution of the U and V files. They are
2487 raw files, without header. They can be generated by all decent
2488 video decoders. You must specify the size of the image with the -s
2489 option if ffmpeg cannot guess it.
2490
2491 • You can input from a raw YUV420P file:
2492
2493 ffmpeg -i /tmp/test.yuv /tmp/out.avi
2494
2495 test.yuv is a file containing raw YUV planar data. Each frame is
2496 composed of the Y plane followed by the U and V planes at half
2497 vertical and horizontal resolution.
2498
2499 • You can output to a raw YUV420P file:
2500
2501 ffmpeg -i mydivx.avi hugefile.yuv
2502
2503 • You can set several input files and output files:
2504
2505 ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
2506
2507 Converts the audio file a.wav and the raw YUV video file a.yuv to
2508 MPEG file a.mpg.
2509
2510 • You can also do audio and video conversions at the same time:
2511
2512 ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
2513
2514 Converts a.wav to MPEG audio at 22050 Hz sample rate.
2515
2516 • You can encode to several formats at the same time and define a
2517 mapping from input stream to output streams:
2518
2519 ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2
2520
2521 Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits.
2522 '-map file:index' specifies which input stream is used for each
2523 output stream, in the order of the definition of output streams.
2524
2525 • You can transcode decrypted VOBs:
2526
2527 ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
2528
2529 This is a typical DVD ripping example; the input is a VOB file, the
2530 output an AVI file with MPEG-4 video and MP3 audio. Note that in
2531 this command we use B-frames so the MPEG-4 stream is DivX5
2532 compatible, and GOP size is 300 which means one intra frame every
2533 10 seconds for 29.97fps input video. Furthermore, the audio stream
2534 is MP3-encoded so you need to enable LAME support by passing
2535 "--enable-libmp3lame" to configure. The mapping is particularly
2536 useful for DVD transcoding to get the desired audio language.
2537
2538 NOTE: To see the supported input formats, use "ffmpeg -demuxers".
2539
2540 • You can extract images from a video, or create a video from many
2541 images:
2542
2543 For extracting images from a video:
2544
2545 ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
2546
2547 This will extract one video frame per second from the video and
2548 will output them in files named foo-001.jpeg, foo-002.jpeg, etc.
2549 Images will be rescaled to fit the new WxH values.
2550
2551 If you want to extract just a limited number of frames, you can use
2552 the above command in combination with the "-frames:v" or "-t"
2553 option, or in combination with -ss to start extracting from a
2554 certain point in time.
2555
2556 For creating a video from many images:
2557
2558 ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi
2559
2560 The syntax "foo-%03d.jpeg" specifies to use a decimal number
2561 composed of three digits padded with zeroes to express the sequence
2562 number. It is the same syntax supported by the C printf function,
2563 but only formats accepting a normal integer are suitable.
2564
2565 When importing an image sequence, -i also supports expanding shell-
2566 like wildcard patterns (globbing) internally, by selecting the
2567 image2-specific "-pattern_type glob" option.
2568
2569 For example, for creating a video from filenames matching the glob
2570 pattern "foo-*.jpeg":
2571
2572 ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi
2573
2574 • You can put many streams of the same type in the output:
2575
2576 ffmpeg -i test1.avi -i test2.avi -map 1:1 -map 1:0 -map 0:1 -map 0:0 -c copy -y test12.nut
2577
2578 The resulting output file test12.nut will contain the first four
2579 streams from the input files in reverse order.
2580
2581 • To force CBR video output:
2582
2583 ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
2584
2585 • The four options lmin, lmax, mblmin and mblmax use 'lambda' units,
2586 but you may use the QP2LAMBDA constant to easily convert from 'q'
2587 units:
2588
2589 ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
2590
2592 This section documents the syntax and formats employed by the FFmpeg
2593 libraries and tools.
2594
2595 Quoting and escaping
2596 FFmpeg adopts the following quoting and escaping mechanism, unless
2597 explicitly specified. The following rules are applied:
2598
2599 • ' and \ are special characters (respectively used for quoting and
2600 escaping). In addition to them, there might be other special
2601 characters depending on the specific syntax where the escaping and
2602 quoting are employed.
2603
2604 • A special character is escaped by prefixing it with a \.
2605
2606 • All characters enclosed between '' are included literally in the
2607 parsed string. The quote character ' itself cannot be quoted, so
2608 you may need to close the quote and escape it.
2609
2610 • Leading and trailing whitespaces, unless escaped or quoted, are
2611 removed from the parsed string.
2612
2613 Note that you may need to add a second level of escaping when using the
2614 command line or a script, which depends on the syntax of the adopted
2615 shell language.
2616
2617 The function "av_get_token" defined in libavutil/avstring.h can be used
2618 to parse a token quoted or escaped according to the rules defined
2619 above.
2620
2621 The tool tools/ffescape in the FFmpeg source tree can be used to
2622 automatically quote or escape a string in a script.
2623
2624 Examples
2625
2626 • Escape the string "Crime d'Amour" containing the "'" special
2627 character:
2628
2629 Crime d\'Amour
2630
2631 • The string above contains a quote, so the "'" needs to be escaped
2632 when quoting it:
2633
2634 'Crime d'\''Amour'
2635
2636 • Include leading or trailing whitespaces using quoting:
2637
2638 ' this string starts and ends with whitespaces '
2639
2640 • Escaping and quoting can be mixed together:
2641
2642 ' The string '\'string\'' is a string '
2643
2644 • To include a literal \ you can use either escaping or quoting:
2645
2646 'c:\foo' can be written as c:\\foo
2647
2648 Date
2649 The accepted syntax is:
2650
2651 [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
2652 now
2653
2654 If the value is "now" it takes the current time.
2655
2656 Time is local time unless Z is appended, in which case it is
2657 interpreted as UTC. If the year-month-day part is not specified it
2658 takes the current year-month-day.
2659
2660 Time duration
2661 There are two accepted syntaxes for expressing time duration.
2662
2663 [-][<HH>:]<MM>:<SS>[.<m>...]
2664
2665 HH expresses the number of hours, MM the number of minutes for a
2666 maximum of 2 digits, and SS the number of seconds for a maximum of 2
2667 digits. The m at the end expresses decimal value for SS.
2668
2669 or
2670
2671 [-]<S>+[.<m>...][s|ms|us]
2672
2673 S expresses the number of seconds, with the optional decimal part m.
2674 The optional literal suffixes s, ms or us indicate to interpret the
2675 value as seconds, milliseconds or microseconds, respectively.
2676
2677 In both expressions, the optional - indicates negative duration.
2678
2679 Examples
2680
2681 The following examples are all valid time duration:
2682
2683 55 55 seconds
2684
2685 0.2 0.2 seconds
2686
2687 200ms
2688 200 milliseconds, that's 0.2s
2689
2690 200000us
2691 200000 microseconds, that's 0.2s
2692
2693 12:03:45
2694 12 hours, 03 minutes and 45 seconds
2695
2696 23.189
2697 23.189 seconds
2698
2699 Video size
2700 Specify the size of the sourced video, it may be a string of the form
2701 widthxheight, or the name of a size abbreviation.
2702
2703 The following abbreviations are recognized:
2704
2705 ntsc
2706 720x480
2707
2708 pal 720x576
2709
2710 qntsc
2711 352x240
2712
2713 qpal
2714 352x288
2715
2716 sntsc
2717 640x480
2718
2719 spal
2720 768x576
2721
2722 film
2723 352x240
2724
2725 ntsc-film
2726 352x240
2727
2728 sqcif
2729 128x96
2730
2731 qcif
2732 176x144
2733
2734 cif 352x288
2735
2736 4cif
2737 704x576
2738
2739 16cif
2740 1408x1152
2741
2742 qqvga
2743 160x120
2744
2745 qvga
2746 320x240
2747
2748 vga 640x480
2749
2750 svga
2751 800x600
2752
2753 xga 1024x768
2754
2755 uxga
2756 1600x1200
2757
2758 qxga
2759 2048x1536
2760
2761 sxga
2762 1280x1024
2763
2764 qsxga
2765 2560x2048
2766
2767 hsxga
2768 5120x4096
2769
2770 wvga
2771 852x480
2772
2773 wxga
2774 1366x768
2775
2776 wsxga
2777 1600x1024
2778
2779 wuxga
2780 1920x1200
2781
2782 woxga
2783 2560x1600
2784
2785 wqsxga
2786 3200x2048
2787
2788 wquxga
2789 3840x2400
2790
2791 whsxga
2792 6400x4096
2793
2794 whuxga
2795 7680x4800
2796
2797 cga 320x200
2798
2799 ega 640x350
2800
2801 hd480
2802 852x480
2803
2804 hd720
2805 1280x720
2806
2807 hd1080
2808 1920x1080
2809
2810 2k 2048x1080
2811
2812 2kflat
2813 1998x1080
2814
2815 2kscope
2816 2048x858
2817
2818 4k 4096x2160
2819
2820 4kflat
2821 3996x2160
2822
2823 4kscope
2824 4096x1716
2825
2826 nhd 640x360
2827
2828 hqvga
2829 240x160
2830
2831 wqvga
2832 400x240
2833
2834 fwqvga
2835 432x240
2836
2837 hvga
2838 480x320
2839
2840 qhd 960x540
2841
2842 2kdci
2843 2048x1080
2844
2845 4kdci
2846 4096x2160
2847
2848 uhd2160
2849 3840x2160
2850
2851 uhd4320
2852 7680x4320
2853
2854 Video rate
2855 Specify the frame rate of a video, expressed as the number of frames
2856 generated per second. It has to be a string in the format
2857 frame_rate_num/frame_rate_den, an integer number, a float number or a
2858 valid video frame rate abbreviation.
2859
2860 The following abbreviations are recognized:
2861
2862 ntsc
2863 30000/1001
2864
2865 pal 25/1
2866
2867 qntsc
2868 30000/1001
2869
2870 qpal
2871 25/1
2872
2873 sntsc
2874 30000/1001
2875
2876 spal
2877 25/1
2878
2879 film
2880 24/1
2881
2882 ntsc-film
2883 24000/1001
2884
2885 Ratio
2886 A ratio can be expressed as an expression, or in the form
2887 numerator:denominator.
2888
2889 Note that a ratio with infinite (1/0) or negative value is considered
2890 valid, so you should check on the returned value if you want to exclude
2891 those values.
2892
2893 The undefined value can be expressed using the "0:0" string.
2894
2895 Color
2896 It can be the name of a color as defined below (case insensitive match)
2897 or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
2898 representing the alpha component.
2899
2900 The alpha component may be a string composed by "0x" followed by an
2901 hexadecimal number or a decimal number between 0.0 and 1.0, which
2902 represents the opacity value (0x00 or 0.0 means completely transparent,
2903 0xff or 1.0 completely opaque). If the alpha component is not specified
2904 then 0xff is assumed.
2905
2906 The string random will result in a random color.
2907
2908 The following names of colors are recognized:
2909
2910 AliceBlue
2911 0xF0F8FF
2912
2913 AntiqueWhite
2914 0xFAEBD7
2915
2916 Aqua
2917 0x00FFFF
2918
2919 Aquamarine
2920 0x7FFFD4
2921
2922 Azure
2923 0xF0FFFF
2924
2925 Beige
2926 0xF5F5DC
2927
2928 Bisque
2929 0xFFE4C4
2930
2931 Black
2932 0x000000
2933
2934 BlanchedAlmond
2935 0xFFEBCD
2936
2937 Blue
2938 0x0000FF
2939
2940 BlueViolet
2941 0x8A2BE2
2942
2943 Brown
2944 0xA52A2A
2945
2946 BurlyWood
2947 0xDEB887
2948
2949 CadetBlue
2950 0x5F9EA0
2951
2952 Chartreuse
2953 0x7FFF00
2954
2955 Chocolate
2956 0xD2691E
2957
2958 Coral
2959 0xFF7F50
2960
2961 CornflowerBlue
2962 0x6495ED
2963
2964 Cornsilk
2965 0xFFF8DC
2966
2967 Crimson
2968 0xDC143C
2969
2970 Cyan
2971 0x00FFFF
2972
2973 DarkBlue
2974 0x00008B
2975
2976 DarkCyan
2977 0x008B8B
2978
2979 DarkGoldenRod
2980 0xB8860B
2981
2982 DarkGray
2983 0xA9A9A9
2984
2985 DarkGreen
2986 0x006400
2987
2988 DarkKhaki
2989 0xBDB76B
2990
2991 DarkMagenta
2992 0x8B008B
2993
2994 DarkOliveGreen
2995 0x556B2F
2996
2997 Darkorange
2998 0xFF8C00
2999
3000 DarkOrchid
3001 0x9932CC
3002
3003 DarkRed
3004 0x8B0000
3005
3006 DarkSalmon
3007 0xE9967A
3008
3009 DarkSeaGreen
3010 0x8FBC8F
3011
3012 DarkSlateBlue
3013 0x483D8B
3014
3015 DarkSlateGray
3016 0x2F4F4F
3017
3018 DarkTurquoise
3019 0x00CED1
3020
3021 DarkViolet
3022 0x9400D3
3023
3024 DeepPink
3025 0xFF1493
3026
3027 DeepSkyBlue
3028 0x00BFFF
3029
3030 DimGray
3031 0x696969
3032
3033 DodgerBlue
3034 0x1E90FF
3035
3036 FireBrick
3037 0xB22222
3038
3039 FloralWhite
3040 0xFFFAF0
3041
3042 ForestGreen
3043 0x228B22
3044
3045 Fuchsia
3046 0xFF00FF
3047
3048 Gainsboro
3049 0xDCDCDC
3050
3051 GhostWhite
3052 0xF8F8FF
3053
3054 Gold
3055 0xFFD700
3056
3057 GoldenRod
3058 0xDAA520
3059
3060 Gray
3061 0x808080
3062
3063 Green
3064 0x008000
3065
3066 GreenYellow
3067 0xADFF2F
3068
3069 HoneyDew
3070 0xF0FFF0
3071
3072 HotPink
3073 0xFF69B4
3074
3075 IndianRed
3076 0xCD5C5C
3077
3078 Indigo
3079 0x4B0082
3080
3081 Ivory
3082 0xFFFFF0
3083
3084 Khaki
3085 0xF0E68C
3086
3087 Lavender
3088 0xE6E6FA
3089
3090 LavenderBlush
3091 0xFFF0F5
3092
3093 LawnGreen
3094 0x7CFC00
3095
3096 LemonChiffon
3097 0xFFFACD
3098
3099 LightBlue
3100 0xADD8E6
3101
3102 LightCoral
3103 0xF08080
3104
3105 LightCyan
3106 0xE0FFFF
3107
3108 LightGoldenRodYellow
3109 0xFAFAD2
3110
3111 LightGreen
3112 0x90EE90
3113
3114 LightGrey
3115 0xD3D3D3
3116
3117 LightPink
3118 0xFFB6C1
3119
3120 LightSalmon
3121 0xFFA07A
3122
3123 LightSeaGreen
3124 0x20B2AA
3125
3126 LightSkyBlue
3127 0x87CEFA
3128
3129 LightSlateGray
3130 0x778899
3131
3132 LightSteelBlue
3133 0xB0C4DE
3134
3135 LightYellow
3136 0xFFFFE0
3137
3138 Lime
3139 0x00FF00
3140
3141 LimeGreen
3142 0x32CD32
3143
3144 Linen
3145 0xFAF0E6
3146
3147 Magenta
3148 0xFF00FF
3149
3150 Maroon
3151 0x800000
3152
3153 MediumAquaMarine
3154 0x66CDAA
3155
3156 MediumBlue
3157 0x0000CD
3158
3159 MediumOrchid
3160 0xBA55D3
3161
3162 MediumPurple
3163 0x9370D8
3164
3165 MediumSeaGreen
3166 0x3CB371
3167
3168 MediumSlateBlue
3169 0x7B68EE
3170
3171 MediumSpringGreen
3172 0x00FA9A
3173
3174 MediumTurquoise
3175 0x48D1CC
3176
3177 MediumVioletRed
3178 0xC71585
3179
3180 MidnightBlue
3181 0x191970
3182
3183 MintCream
3184 0xF5FFFA
3185
3186 MistyRose
3187 0xFFE4E1
3188
3189 Moccasin
3190 0xFFE4B5
3191
3192 NavajoWhite
3193 0xFFDEAD
3194
3195 Navy
3196 0x000080
3197
3198 OldLace
3199 0xFDF5E6
3200
3201 Olive
3202 0x808000
3203
3204 OliveDrab
3205 0x6B8E23
3206
3207 Orange
3208 0xFFA500
3209
3210 OrangeRed
3211 0xFF4500
3212
3213 Orchid
3214 0xDA70D6
3215
3216 PaleGoldenRod
3217 0xEEE8AA
3218
3219 PaleGreen
3220 0x98FB98
3221
3222 PaleTurquoise
3223 0xAFEEEE
3224
3225 PaleVioletRed
3226 0xD87093
3227
3228 PapayaWhip
3229 0xFFEFD5
3230
3231 PeachPuff
3232 0xFFDAB9
3233
3234 Peru
3235 0xCD853F
3236
3237 Pink
3238 0xFFC0CB
3239
3240 Plum
3241 0xDDA0DD
3242
3243 PowderBlue
3244 0xB0E0E6
3245
3246 Purple
3247 0x800080
3248
3249 Red 0xFF0000
3250
3251 RosyBrown
3252 0xBC8F8F
3253
3254 RoyalBlue
3255 0x4169E1
3256
3257 SaddleBrown
3258 0x8B4513
3259
3260 Salmon
3261 0xFA8072
3262
3263 SandyBrown
3264 0xF4A460
3265
3266 SeaGreen
3267 0x2E8B57
3268
3269 SeaShell
3270 0xFFF5EE
3271
3272 Sienna
3273 0xA0522D
3274
3275 Silver
3276 0xC0C0C0
3277
3278 SkyBlue
3279 0x87CEEB
3280
3281 SlateBlue
3282 0x6A5ACD
3283
3284 SlateGray
3285 0x708090
3286
3287 Snow
3288 0xFFFAFA
3289
3290 SpringGreen
3291 0x00FF7F
3292
3293 SteelBlue
3294 0x4682B4
3295
3296 Tan 0xD2B48C
3297
3298 Teal
3299 0x008080
3300
3301 Thistle
3302 0xD8BFD8
3303
3304 Tomato
3305 0xFF6347
3306
3307 Turquoise
3308 0x40E0D0
3309
3310 Violet
3311 0xEE82EE
3312
3313 Wheat
3314 0xF5DEB3
3315
3316 White
3317 0xFFFFFF
3318
3319 WhiteSmoke
3320 0xF5F5F5
3321
3322 Yellow
3323 0xFFFF00
3324
3325 YellowGreen
3326 0x9ACD32
3327
3328 Channel Layout
3329 A channel layout specifies the spatial disposition of the channels in a
3330 multi-channel audio stream. To specify a channel layout, FFmpeg makes
3331 use of a special syntax.
3332
3333 Individual channels are identified by an id, as given by the table
3334 below:
3335
3336 FL front left
3337
3338 FR front right
3339
3340 FC front center
3341
3342 LFE low frequency
3343
3344 BL back left
3345
3346 BR back right
3347
3348 FLC front left-of-center
3349
3350 FRC front right-of-center
3351
3352 BC back center
3353
3354 SL side left
3355
3356 SR side right
3357
3358 TC top center
3359
3360 TFL top front left
3361
3362 TFC top front center
3363
3364 TFR top front right
3365
3366 TBL top back left
3367
3368 TBC top back center
3369
3370 TBR top back right
3371
3372 DL downmix left
3373
3374 DR downmix right
3375
3376 WL wide left
3377
3378 WR wide right
3379
3380 SDL surround direct left
3381
3382 SDR surround direct right
3383
3384 LFE2
3385 low frequency 2
3386
3387 Standard channel layout compositions can be specified by using the
3388 following identifiers:
3389
3390 mono
3391 FC
3392
3393 stereo
3394 FL+FR
3395
3396 2.1 FL+FR+LFE
3397
3398 3.0 FL+FR+FC
3399
3400 3.0(back)
3401 FL+FR+BC
3402
3403 4.0 FL+FR+FC+BC
3404
3405 quad
3406 FL+FR+BL+BR
3407
3408 quad(side)
3409 FL+FR+SL+SR
3410
3411 3.1 FL+FR+FC+LFE
3412
3413 5.0 FL+FR+FC+BL+BR
3414
3415 5.0(side)
3416 FL+FR+FC+SL+SR
3417
3418 4.1 FL+FR+FC+LFE+BC
3419
3420 5.1 FL+FR+FC+LFE+BL+BR
3421
3422 5.1(side)
3423 FL+FR+FC+LFE+SL+SR
3424
3425 6.0 FL+FR+FC+BC+SL+SR
3426
3427 6.0(front)
3428 FL+FR+FLC+FRC+SL+SR
3429
3430 hexagonal
3431 FL+FR+FC+BL+BR+BC
3432
3433 6.1 FL+FR+FC+LFE+BC+SL+SR
3434
3435 6.1 FL+FR+FC+LFE+BL+BR+BC
3436
3437 6.1(front)
3438 FL+FR+LFE+FLC+FRC+SL+SR
3439
3440 7.0 FL+FR+FC+BL+BR+SL+SR
3441
3442 7.0(front)
3443 FL+FR+FC+FLC+FRC+SL+SR
3444
3445 7.1 FL+FR+FC+LFE+BL+BR+SL+SR
3446
3447 7.1(wide)
3448 FL+FR+FC+LFE+BL+BR+FLC+FRC
3449
3450 7.1(wide-side)
3451 FL+FR+FC+LFE+FLC+FRC+SL+SR
3452
3453 octagonal
3454 FL+FR+FC+BL+BR+BC+SL+SR
3455
3456 hexadecagonal
3457 FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
3458
3459 downmix
3460 DL+DR
3461
3462 22.2
3463 FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
3464
3465 A custom channel layout can be specified as a sequence of terms,
3466 separated by '+' or '|'. Each term can be:
3467
3468 • the name of a standard channel layout (e.g. mono, stereo, 4.0,
3469 quad, 5.0, etc.)
3470
3471 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
3472
3473 • a number of channels, in decimal, followed by 'c', yielding the
3474 default channel layout for that number of channels (see the
3475 function "av_get_default_channel_layout"). Note that not all
3476 channel counts have a default layout.
3477
3478 • a number of channels, in decimal, followed by 'C', yielding an
3479 unknown channel layout with the specified number of channels. Note
3480 that not all channel layout specification strings support unknown
3481 channel layouts.
3482
3483 • a channel layout mask, in hexadecimal starting with "0x" (see the
3484 "AV_CH_*" macros in libavutil/channel_layout.h.
3485
3486 Before libavutil version 53 the trailing character "c" to specify a
3487 number of channels was optional, but now it is required, while a
3488 channel layout mask can also be specified as a decimal number (if and
3489 only if not followed by "c" or "C").
3490
3491 See also the function "av_get_channel_layout" defined in
3492 libavutil/channel_layout.h.
3493
3495 When evaluating an arithmetic expression, FFmpeg uses an internal
3496 formula evaluator, implemented through the libavutil/eval.h interface.
3497
3498 An expression may contain unary, binary operators, constants, and
3499 functions.
3500
3501 Two expressions expr1 and expr2 can be combined to form another
3502 expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and
3503 the new expression evaluates to the value of expr2.
3504
3505 The following binary operators are available: "+", "-", "*", "/", "^".
3506
3507 The following unary operators are available: "+", "-".
3508
3509 The following functions are available:
3510
3511 abs(x)
3512 Compute absolute value of x.
3513
3514 acos(x)
3515 Compute arccosine of x.
3516
3517 asin(x)
3518 Compute arcsine of x.
3519
3520 atan(x)
3521 Compute arctangent of x.
3522
3523 atan2(x, y)
3524 Compute principal value of the arc tangent of y/x.
3525
3526 between(x, min, max)
3527 Return 1 if x is greater than or equal to min and lesser than or
3528 equal to max, 0 otherwise.
3529
3530 bitand(x, y)
3531 bitor(x, y)
3532 Compute bitwise and/or operation on x and y.
3533
3534 The results of the evaluation of x and y are converted to integers
3535 before executing the bitwise operation.
3536
3537 Note that both the conversion to integer and the conversion back to
3538 floating point can lose precision. Beware of unexpected results for
3539 large numbers (usually 2^53 and larger).
3540
3541 ceil(expr)
3542 Round the value of expression expr upwards to the nearest integer.
3543 For example, "ceil(1.5)" is "2.0".
3544
3545 clip(x, min, max)
3546 Return the value of x clipped between min and max.
3547
3548 cos(x)
3549 Compute cosine of x.
3550
3551 cosh(x)
3552 Compute hyperbolic cosine of x.
3553
3554 eq(x, y)
3555 Return 1 if x and y are equivalent, 0 otherwise.
3556
3557 exp(x)
3558 Compute exponential of x (with base "e", the Euler's number).
3559
3560 floor(expr)
3561 Round the value of expression expr downwards to the nearest
3562 integer. For example, "floor(-1.5)" is "-2.0".
3563
3564 gauss(x)
3565 Compute Gauss function of x, corresponding to "exp(-x*x/2) /
3566 sqrt(2*PI)".
3567
3568 gcd(x, y)
3569 Return the greatest common divisor of x and y. If both x and y are
3570 0 or either or both are less than zero then behavior is undefined.
3571
3572 gt(x, y)
3573 Return 1 if x is greater than y, 0 otherwise.
3574
3575 gte(x, y)
3576 Return 1 if x is greater than or equal to y, 0 otherwise.
3577
3578 hypot(x, y)
3579 This function is similar to the C function with the same name; it
3580 returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
3581 triangle with sides of length x and y, or the distance of the point
3582 (x, y) from the origin.
3583
3584 if(x, y)
3585 Evaluate x, and if the result is non-zero return the result of the
3586 evaluation of y, return 0 otherwise.
3587
3588 if(x, y, z)
3589 Evaluate x, and if the result is non-zero return the evaluation
3590 result of y, otherwise the evaluation result of z.
3591
3592 ifnot(x, y)
3593 Evaluate x, and if the result is zero return the result of the
3594 evaluation of y, return 0 otherwise.
3595
3596 ifnot(x, y, z)
3597 Evaluate x, and if the result is zero return the evaluation result
3598 of y, otherwise the evaluation result of z.
3599
3600 isinf(x)
3601 Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
3602
3603 isnan(x)
3604 Return 1.0 if x is NAN, 0.0 otherwise.
3605
3606 ld(var)
3607 Load the value of the internal variable with number var, which was
3608 previously stored with st(var, expr). The function returns the
3609 loaded value.
3610
3611 lerp(x, y, z)
3612 Return linear interpolation between x and y by amount of z.
3613
3614 log(x)
3615 Compute natural logarithm of x.
3616
3617 lt(x, y)
3618 Return 1 if x is lesser than y, 0 otherwise.
3619
3620 lte(x, y)
3621 Return 1 if x is lesser than or equal to y, 0 otherwise.
3622
3623 max(x, y)
3624 Return the maximum between x and y.
3625
3626 min(x, y)
3627 Return the minimum between x and y.
3628
3629 mod(x, y)
3630 Compute the remainder of division of x by y.
3631
3632 not(expr)
3633 Return 1.0 if expr is zero, 0.0 otherwise.
3634
3635 pow(x, y)
3636 Compute the power of x elevated y, it is equivalent to "(x)^(y)".
3637
3638 print(t)
3639 print(t, l)
3640 Print the value of expression t with loglevel l. If l is not
3641 specified then a default log level is used. Returns the value of
3642 the expression printed.
3643
3644 Prints t with loglevel l
3645
3646 random(x)
3647 Return a pseudo random value between 0.0 and 1.0. x is the index of
3648 the internal variable which will be used to save the seed/state.
3649
3650 root(expr, max)
3651 Find an input value for which the function represented by expr with
3652 argument ld(0) is 0 in the interval 0..max.
3653
3654 The expression in expr must denote a continuous function or the
3655 result is undefined.
3656
3657 ld(0) is used to represent the function input value, which means
3658 that the given expression will be evaluated multiple times with
3659 various input values that the expression can access through ld(0).
3660 When the expression evaluates to 0 then the corresponding input
3661 value will be returned.
3662
3663 round(expr)
3664 Round the value of expression expr to the nearest integer. For
3665 example, "round(1.5)" is "2.0".
3666
3667 sgn(x)
3668 Compute sign of x.
3669
3670 sin(x)
3671 Compute sine of x.
3672
3673 sinh(x)
3674 Compute hyperbolic sine of x.
3675
3676 sqrt(expr)
3677 Compute the square root of expr. This is equivalent to "(expr)^.5".
3678
3679 squish(x)
3680 Compute expression "1/(1 + exp(4*x))".
3681
3682 st(var, expr)
3683 Store the value of the expression expr in an internal variable. var
3684 specifies the number of the variable where to store the value, and
3685 it is a value ranging from 0 to 9. The function returns the value
3686 stored in the internal variable. Note, Variables are currently not
3687 shared between expressions.
3688
3689 tan(x)
3690 Compute tangent of x.
3691
3692 tanh(x)
3693 Compute hyperbolic tangent of x.
3694
3695 taylor(expr, x)
3696 taylor(expr, x, id)
3697 Evaluate a Taylor series at x, given an expression representing the
3698 "ld(id)"-th derivative of a function at 0.
3699
3700 When the series does not converge the result is undefined.
3701
3702 ld(id) is used to represent the derivative order in expr, which
3703 means that the given expression will be evaluated multiple times
3704 with various input values that the expression can access through
3705 "ld(id)". If id is not specified then 0 is assumed.
3706
3707 Note, when you have the derivatives at y instead of 0,
3708 "taylor(expr, x-y)" can be used.
3709
3710 time(0)
3711 Return the current (wallclock) time in seconds.
3712
3713 trunc(expr)
3714 Round the value of expression expr towards zero to the nearest
3715 integer. For example, "trunc(-1.5)" is "-1.0".
3716
3717 while(cond, expr)
3718 Evaluate expression expr while the expression cond is non-zero, and
3719 returns the value of the last expr evaluation, or NAN if cond was
3720 always false.
3721
3722 The following constants are available:
3723
3724 PI area of the unit disc, approximately 3.14
3725
3726 E exp(1) (Euler's number), approximately 2.718
3727
3728 PHI golden ratio (1+sqrt(5))/2, approximately 1.618
3729
3730 Assuming that an expression is considered "true" if it has a non-zero
3731 value, note that:
3732
3733 "*" works like AND
3734
3735 "+" works like OR
3736
3737 For example the construct:
3738
3739 if (A AND B) then C
3740
3741 is equivalent to:
3742
3743 if(A*B, C)
3744
3745 In your C code, you can extend the list of unary and binary functions,
3746 and define recognized constants, so that they are available for your
3747 expressions.
3748
3749 The evaluator also recognizes the International System unit prefixes.
3750 If 'i' is appended after the prefix, binary prefixes are used, which
3751 are based on powers of 1024 instead of powers of 1000. The 'B' postfix
3752 multiplies the value by 8, and can be appended after a unit prefix or
3753 used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
3754 number postfix.
3755
3756 The list of available International System prefixes follows, with
3757 indication of the corresponding powers of 10 and of 2.
3758
3759 y 10^-24 / 2^-80
3760
3761 z 10^-21 / 2^-70
3762
3763 a 10^-18 / 2^-60
3764
3765 f 10^-15 / 2^-50
3766
3767 p 10^-12 / 2^-40
3768
3769 n 10^-9 / 2^-30
3770
3771 u 10^-6 / 2^-20
3772
3773 m 10^-3 / 2^-10
3774
3775 c 10^-2
3776
3777 d 10^-1
3778
3779 h 10^2
3780
3781 k 10^3 / 2^10
3782
3783 K 10^3 / 2^10
3784
3785 M 10^6 / 2^20
3786
3787 G 10^9 / 2^30
3788
3789 T 10^12 / 2^40
3790
3791 P 10^15 / 2^40
3792
3793 E 10^18 / 2^50
3794
3795 Z 10^21 / 2^60
3796
3797 Y 10^24 / 2^70
3798
3800 libavcodec provides some generic global options, which can be set on
3801 all the encoders and decoders. In addition each codec may support so-
3802 called private options, which are specific for a given codec.
3803
3804 Sometimes, a global option may only affect a specific kind of codec,
3805 and may be nonsensical or ignored by another, so you need to be aware
3806 of the meaning of the specified options. Also some options are meant
3807 only for decoding or encoding.
3808
3809 Options may be set by specifying -option value in the FFmpeg tools, or
3810 by setting the value explicitly in the "AVCodecContext" options or
3811 using the libavutil/opt.h API for programmatic use.
3812
3813 The list of supported options follow:
3814
3815 b integer (encoding,audio,video)
3816 Set bitrate in bits/s. Default value is 200K.
3817
3818 ab integer (encoding,audio)
3819 Set audio bitrate (in bits/s). Default value is 128K.
3820
3821 bt integer (encoding,video)
3822 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
3823 tolerance specifies how far ratecontrol is willing to deviate from
3824 the target average bitrate value. This is not related to min/max
3825 bitrate. Lowering tolerance too much has an adverse effect on
3826 quality.
3827
3828 flags flags (decoding/encoding,audio,video,subtitles)
3829 Set generic flags.
3830
3831 Possible values:
3832
3833 mv4 Use four motion vector by macroblock (mpeg4).
3834
3835 qpel
3836 Use 1/4 pel motion compensation.
3837
3838 loop
3839 Use loop filter.
3840
3841 qscale
3842 Use fixed qscale.
3843
3844 pass1
3845 Use internal 2pass ratecontrol in first pass mode.
3846
3847 pass2
3848 Use internal 2pass ratecontrol in second pass mode.
3849
3850 gray
3851 Only decode/encode grayscale.
3852
3853 psnr
3854 Set error[?] variables during encoding.
3855
3856 truncated
3857 Input bitstream might be randomly truncated.
3858
3859 drop_changed
3860 Don't output frames whose parameters differ from first decoded
3861 frame in stream. Error AVERROR_INPUT_CHANGED is returned when
3862 a frame is dropped.
3863
3864 ildct
3865 Use interlaced DCT.
3866
3867 low_delay
3868 Force low delay.
3869
3870 global_header
3871 Place global headers in extradata instead of every keyframe.
3872
3873 bitexact
3874 Only write platform-, build- and time-independent data. (except
3875 (I)DCT). This ensures that file and data checksums are
3876 reproducible and match between platforms. Its primary use is
3877 for regression testing.
3878
3879 aic Apply H263 advanced intra coding / mpeg4 ac prediction.
3880
3881 ilme
3882 Apply interlaced motion estimation.
3883
3884 cgop
3885 Use closed gop.
3886
3887 output_corrupt
3888 Output even potentially corrupted frames.
3889
3890 time_base rational number
3891 Set codec time base.
3892
3893 It is the fundamental unit of time (in seconds) in terms of which
3894 frame timestamps are represented. For fixed-fps content, timebase
3895 should be "1 / frame_rate" and timestamp increments should be
3896 identically 1.
3897
3898 g integer (encoding,video)
3899 Set the group of picture (GOP) size. Default value is 12.
3900
3901 ar integer (decoding/encoding,audio)
3902 Set audio sampling rate (in Hz).
3903
3904 ac integer (decoding/encoding,audio)
3905 Set number of audio channels.
3906
3907 cutoff integer (encoding,audio)
3908 Set cutoff bandwidth. (Supported only by selected encoders, see
3909 their respective documentation sections.)
3910
3911 frame_size integer (encoding,audio)
3912 Set audio frame size.
3913
3914 Each submitted frame except the last must contain exactly
3915 frame_size samples per channel. May be 0 when the codec has
3916 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
3917 not restricted. It is set by some decoders to indicate constant
3918 frame size.
3919
3920 frame_number integer
3921 Set the frame number.
3922
3923 delay integer
3924 qcomp float (encoding,video)
3925 Set video quantizer scale compression (VBR). It is used as a
3926 constant in the ratecontrol equation. Recommended range for default
3927 rc_eq: 0.0-1.0.
3928
3929 qblur float (encoding,video)
3930 Set video quantizer scale blur (VBR).
3931
3932 qmin integer (encoding,video)
3933 Set min video quantizer scale (VBR). Must be included between -1
3934 and 69, default value is 2.
3935
3936 qmax integer (encoding,video)
3937 Set max video quantizer scale (VBR). Must be included between -1
3938 and 1024, default value is 31.
3939
3940 qdiff integer (encoding,video)
3941 Set max difference between the quantizer scale (VBR).
3942
3943 bf integer (encoding,video)
3944 Set max number of B frames between non-B-frames.
3945
3946 Must be an integer between -1 and 16. 0 means that B-frames are
3947 disabled. If a value of -1 is used, it will choose an automatic
3948 value depending on the encoder.
3949
3950 Default value is 0.
3951
3952 b_qfactor float (encoding,video)
3953 Set qp factor between P and B frames.
3954
3955 codec_tag integer
3956 bug flags (decoding,video)
3957 Workaround not auto detected encoder bugs.
3958
3959 Possible values:
3960
3961 autodetect
3962 xvid_ilace
3963 Xvid interlacing bug (autodetected if fourcc==XVIX)
3964
3965 ump4
3966 (autodetected if fourcc==UMP4)
3967
3968 no_padding
3969 padding bug (autodetected)
3970
3971 amv
3972 qpel_chroma
3973 std_qpel
3974 old standard qpel (autodetected per fourcc/version)
3975
3976 qpel_chroma2
3977 direct_blocksize
3978 direct-qpel-blocksize bug (autodetected per fourcc/version)
3979
3980 edge
3981 edge padding bug (autodetected per fourcc/version)
3982
3983 hpel_chroma
3984 dc_clip
3985 ms Workaround various bugs in microsoft broken decoders.
3986
3987 trunc
3988 trancated frames
3989
3990 strict integer (decoding/encoding,audio,video)
3991 Specify how strictly to follow the standards.
3992
3993 Possible values:
3994
3995 very
3996 strictly conform to an older more strict version of the spec or
3997 reference software
3998
3999 strict
4000 strictly conform to all the things in the spec no matter what
4001 consequences
4002
4003 normal
4004 unofficial
4005 allow unofficial extensions
4006
4007 experimental
4008 allow non standardized experimental things, experimental
4009 (unfinished/work in progress/not well tested) decoders and
4010 encoders. Note: experimental decoders can pose a security
4011 risk, do not use this for decoding untrusted input.
4012
4013 b_qoffset float (encoding,video)
4014 Set QP offset between P and B frames.
4015
4016 err_detect flags (decoding,audio,video)
4017 Set error detection flags.
4018
4019 Possible values:
4020
4021 crccheck
4022 verify embedded CRCs
4023
4024 bitstream
4025 detect bitstream specification deviations
4026
4027 buffer
4028 detect improper bitstream length
4029
4030 explode
4031 abort decoding on minor error detection
4032
4033 ignore_err
4034 ignore decoding errors, and continue decoding. This is useful
4035 if you want to analyze the content of a video and thus want
4036 everything to be decoded no matter what. This option will not
4037 result in a video that is pleasing to watch in case of errors.
4038
4039 careful
4040 consider things that violate the spec and have not been seen in
4041 the wild as errors
4042
4043 compliant
4044 consider all spec non compliancies as errors
4045
4046 aggressive
4047 consider things that a sane encoder should not do as an error
4048
4049 has_b_frames integer
4050 block_align integer
4051 rc_override_count integer
4052 maxrate integer (encoding,audio,video)
4053 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
4054
4055 minrate integer (encoding,audio,video)
4056 Set min bitrate tolerance (in bits/s). Most useful in setting up a
4057 CBR encode. It is of little use elsewise.
4058
4059 bufsize integer (encoding,audio,video)
4060 Set ratecontrol buffer size (in bits).
4061
4062 i_qfactor float (encoding,video)
4063 Set QP factor between P and I frames.
4064
4065 i_qoffset float (encoding,video)
4066 Set QP offset between P and I frames.
4067
4068 dct integer (encoding,video)
4069 Set DCT algorithm.
4070
4071 Possible values:
4072
4073 auto
4074 autoselect a good one (default)
4075
4076 fastint
4077 fast integer
4078
4079 int accurate integer
4080
4081 mmx
4082 altivec
4083 faan
4084 floating point AAN DCT
4085
4086 lumi_mask float (encoding,video)
4087 Compress bright areas stronger than medium ones.
4088
4089 tcplx_mask float (encoding,video)
4090 Set temporal complexity masking.
4091
4092 scplx_mask float (encoding,video)
4093 Set spatial complexity masking.
4094
4095 p_mask float (encoding,video)
4096 Set inter masking.
4097
4098 dark_mask float (encoding,video)
4099 Compress dark areas stronger than medium ones.
4100
4101 idct integer (decoding/encoding,video)
4102 Select IDCT implementation.
4103
4104 Possible values:
4105
4106 auto
4107 int
4108 simple
4109 simplemmx
4110 simpleauto
4111 Automatically pick a IDCT compatible with the simple one
4112
4113 arm
4114 altivec
4115 sh4
4116 simplearm
4117 simplearmv5te
4118 simplearmv6
4119 simpleneon
4120 xvid
4121 faani
4122 floating point AAN IDCT
4123
4124 slice_count integer
4125 ec flags (decoding,video)
4126 Set error concealment strategy.
4127
4128 Possible values:
4129
4130 guess_mvs
4131 iterative motion vector (MV) search (slow)
4132
4133 deblock
4134 use strong deblock filter for damaged MBs
4135
4136 favor_inter
4137 favor predicting from the previous frame instead of the current
4138
4139 bits_per_coded_sample integer
4140 aspect rational number (encoding,video)
4141 Set sample aspect ratio.
4142
4143 sar rational number (encoding,video)
4144 Set sample aspect ratio. Alias to aspect.
4145
4146 debug flags (decoding/encoding,audio,video,subtitles)
4147 Print specific debug info.
4148
4149 Possible values:
4150
4151 pict
4152 picture info
4153
4154 rc rate control
4155
4156 bitstream
4157 mb_type
4158 macroblock (MB) type
4159
4160 qp per-block quantization parameter (QP)
4161
4162 dct_coeff
4163 green_metadata
4164 display complexity metadata for the upcoming frame, GoP or for
4165 a given duration.
4166
4167 skip
4168 startcode
4169 er error recognition
4170
4171 mmco
4172 memory management control operations (H.264)
4173
4174 bugs
4175 buffers
4176 picture buffer allocations
4177
4178 thread_ops
4179 threading operations
4180
4181 nomc
4182 skip motion compensation
4183
4184 cmp integer (encoding,video)
4185 Set full pel me compare function.
4186
4187 Possible values:
4188
4189 sad sum of absolute differences, fast (default)
4190
4191 sse sum of squared errors
4192
4193 satd
4194 sum of absolute Hadamard transformed differences
4195
4196 dct sum of absolute DCT transformed differences
4197
4198 psnr
4199 sum of squared quantization errors (avoid, low quality)
4200
4201 bit number of bits needed for the block
4202
4203 rd rate distortion optimal, slow
4204
4205 zero
4206 0
4207
4208 vsad
4209 sum of absolute vertical differences
4210
4211 vsse
4212 sum of squared vertical differences
4213
4214 nsse
4215 noise preserving sum of squared differences
4216
4217 w53 5/3 wavelet, only used in snow
4218
4219 w97 9/7 wavelet, only used in snow
4220
4221 dctmax
4222 chroma
4223 subcmp integer (encoding,video)
4224 Set sub pel me compare function.
4225
4226 Possible values:
4227
4228 sad sum of absolute differences, fast (default)
4229
4230 sse sum of squared errors
4231
4232 satd
4233 sum of absolute Hadamard transformed differences
4234
4235 dct sum of absolute DCT transformed differences
4236
4237 psnr
4238 sum of squared quantization errors (avoid, low quality)
4239
4240 bit number of bits needed for the block
4241
4242 rd rate distortion optimal, slow
4243
4244 zero
4245 0
4246
4247 vsad
4248 sum of absolute vertical differences
4249
4250 vsse
4251 sum of squared vertical differences
4252
4253 nsse
4254 noise preserving sum of squared differences
4255
4256 w53 5/3 wavelet, only used in snow
4257
4258 w97 9/7 wavelet, only used in snow
4259
4260 dctmax
4261 chroma
4262 mbcmp integer (encoding,video)
4263 Set macroblock compare function.
4264
4265 Possible values:
4266
4267 sad sum of absolute differences, fast (default)
4268
4269 sse sum of squared errors
4270
4271 satd
4272 sum of absolute Hadamard transformed differences
4273
4274 dct sum of absolute DCT transformed differences
4275
4276 psnr
4277 sum of squared quantization errors (avoid, low quality)
4278
4279 bit number of bits needed for the block
4280
4281 rd rate distortion optimal, slow
4282
4283 zero
4284 0
4285
4286 vsad
4287 sum of absolute vertical differences
4288
4289 vsse
4290 sum of squared vertical differences
4291
4292 nsse
4293 noise preserving sum of squared differences
4294
4295 w53 5/3 wavelet, only used in snow
4296
4297 w97 9/7 wavelet, only used in snow
4298
4299 dctmax
4300 chroma
4301 ildctcmp integer (encoding,video)
4302 Set interlaced dct compare function.
4303
4304 Possible values:
4305
4306 sad sum of absolute differences, fast (default)
4307
4308 sse sum of squared errors
4309
4310 satd
4311 sum of absolute Hadamard transformed differences
4312
4313 dct sum of absolute DCT transformed differences
4314
4315 psnr
4316 sum of squared quantization errors (avoid, low quality)
4317
4318 bit number of bits needed for the block
4319
4320 rd rate distortion optimal, slow
4321
4322 zero
4323 0
4324
4325 vsad
4326 sum of absolute vertical differences
4327
4328 vsse
4329 sum of squared vertical differences
4330
4331 nsse
4332 noise preserving sum of squared differences
4333
4334 w53 5/3 wavelet, only used in snow
4335
4336 w97 9/7 wavelet, only used in snow
4337
4338 dctmax
4339 chroma
4340 dia_size integer (encoding,video)
4341 Set diamond type & size for motion estimation.
4342
4343 (1024, INT_MAX)
4344 full motion estimation(slowest)
4345
4346 (768, 1024]
4347 umh motion estimation
4348
4349 (512, 768]
4350 hex motion estimation
4351
4352 (256, 512]
4353 l2s diamond motion estimation
4354
4355 [2,256]
4356 var diamond motion estimation
4357
4358 (-1, 2)
4359 small diamond motion estimation
4360
4361 -1 funny diamond motion estimation
4362
4363 (INT_MIN, -1)
4364 sab diamond motion estimation
4365
4366 last_pred integer (encoding,video)
4367 Set amount of motion predictors from the previous frame.
4368
4369 precmp integer (encoding,video)
4370 Set pre motion estimation compare function.
4371
4372 Possible values:
4373
4374 sad sum of absolute differences, fast (default)
4375
4376 sse sum of squared errors
4377
4378 satd
4379 sum of absolute Hadamard transformed differences
4380
4381 dct sum of absolute DCT transformed differences
4382
4383 psnr
4384 sum of squared quantization errors (avoid, low quality)
4385
4386 bit number of bits needed for the block
4387
4388 rd rate distortion optimal, slow
4389
4390 zero
4391 0
4392
4393 vsad
4394 sum of absolute vertical differences
4395
4396 vsse
4397 sum of squared vertical differences
4398
4399 nsse
4400 noise preserving sum of squared differences
4401
4402 w53 5/3 wavelet, only used in snow
4403
4404 w97 9/7 wavelet, only used in snow
4405
4406 dctmax
4407 chroma
4408 pre_dia_size integer (encoding,video)
4409 Set diamond type & size for motion estimation pre-pass.
4410
4411 subq integer (encoding,video)
4412 Set sub pel motion estimation quality.
4413
4414 me_range integer (encoding,video)
4415 Set limit motion vectors range (1023 for DivX player).
4416
4417 global_quality integer (encoding,audio,video)
4418 slice_flags integer
4419 mbd integer (encoding,video)
4420 Set macroblock decision algorithm (high quality mode).
4421
4422 Possible values:
4423
4424 simple
4425 use mbcmp (default)
4426
4427 bits
4428 use fewest bits
4429
4430 rd use best rate distortion
4431
4432 rc_init_occupancy integer (encoding,video)
4433 Set number of bits which should be loaded into the rc buffer before
4434 decoding starts.
4435
4436 flags2 flags (decoding/encoding,audio,video,subtitles)
4437 Possible values:
4438
4439 fast
4440 Allow non spec compliant speedup tricks.
4441
4442 noout
4443 Skip bitstream encoding.
4444
4445 ignorecrop
4446 Ignore cropping information from sps.
4447
4448 local_header
4449 Place global headers at every keyframe instead of in extradata.
4450
4451 chunks
4452 Frame data might be split into multiple chunks.
4453
4454 showall
4455 Show all frames before the first keyframe.
4456
4457 export_mvs
4458 Export motion vectors into frame side-data (see
4459 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
4460 also doc/examples/export_mvs.c.
4461
4462 skip_manual
4463 Do not skip samples and export skip information as frame side
4464 data.
4465
4466 ass_ro_flush_noop
4467 Do not reset ASS ReadOrder field on flush.
4468
4469 export_side_data flags (decoding/encoding,audio,video,subtitles)
4470 Possible values:
4471
4472 mvs Export motion vectors into frame side-data (see
4473 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
4474 also doc/examples/export_mvs.c.
4475
4476 prft
4477 Export encoder Producer Reference Time into packet side-data
4478 (see "AV_PKT_DATA_PRFT") for codecs that support it.
4479
4480 venc_params
4481 Export video encoding parameters through frame side data (see
4482 "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
4483 At present, those are H.264 and VP9.
4484
4485 film_grain
4486 Export film grain parameters through frame side data (see
4487 "AV_FRAME_DATA_FILM_GRAIN_PARAMS"). Supported at present by
4488 AV1 decoders.
4489
4490 threads integer (decoding/encoding,video)
4491 Set the number of threads to be used, in case the selected codec
4492 implementation supports multi-threading.
4493
4494 Possible values:
4495
4496 auto, 0
4497 automatically select the number of threads to set
4498
4499 Default value is auto.
4500
4501 dc integer (encoding,video)
4502 Set intra_dc_precision.
4503
4504 nssew integer (encoding,video)
4505 Set nsse weight.
4506
4507 skip_top integer (decoding,video)
4508 Set number of macroblock rows at the top which are skipped.
4509
4510 skip_bottom integer (decoding,video)
4511 Set number of macroblock rows at the bottom which are skipped.
4512
4513 profile integer (encoding,audio,video)
4514 Set encoder codec profile. Default value is unknown. Encoder
4515 specific profiles are documented in the relevant encoder
4516 documentation.
4517
4518 level integer (encoding,audio,video)
4519 Possible values:
4520
4521 unknown
4522 lowres integer (decoding,audio,video)
4523 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
4524
4525 mblmin integer (encoding,video)
4526 Set min macroblock lagrange factor (VBR).
4527
4528 mblmax integer (encoding,video)
4529 Set max macroblock lagrange factor (VBR).
4530
4531 skip_loop_filter integer (decoding,video)
4532 skip_idct integer (decoding,video)
4533 skip_frame integer (decoding,video)
4534 Make decoder discard processing depending on the frame type
4535 selected by the option value.
4536
4537 skip_loop_filter skips frame loop filtering, skip_idct skips frame
4538 IDCT/dequantization, skip_frame skips decoding.
4539
4540 Possible values:
4541
4542 none
4543 Discard no frame.
4544
4545 default
4546 Discard useless frames like 0-sized frames.
4547
4548 noref
4549 Discard all non-reference frames.
4550
4551 bidir
4552 Discard all bidirectional frames.
4553
4554 nokey
4555 Discard all frames excepts keyframes.
4556
4557 nointra
4558 Discard all frames except I frames.
4559
4560 all Discard all frames.
4561
4562 Default value is default.
4563
4564 bidir_refine integer (encoding,video)
4565 Refine the two motion vectors used in bidirectional macroblocks.
4566
4567 keyint_min integer (encoding,video)
4568 Set minimum interval between IDR-frames.
4569
4570 refs integer (encoding,video)
4571 Set reference frames to consider for motion compensation.
4572
4573 trellis integer (encoding,audio,video)
4574 Set rate-distortion optimal quantization.
4575
4576 mv0_threshold integer (encoding,video)
4577 compression_level integer (encoding,audio,video)
4578 bits_per_raw_sample integer
4579 channel_layout integer (decoding/encoding,audio)
4580 Possible values:
4581
4582 request_channel_layout integer (decoding,audio)
4583 Possible values:
4584
4585 rc_max_vbv_use float (encoding,video)
4586 rc_min_vbv_use float (encoding,video)
4587 ticks_per_frame integer (decoding/encoding,audio,video)
4588 color_primaries integer (decoding/encoding,video)
4589 Possible values:
4590
4591 bt709
4592 BT.709
4593
4594 bt470m
4595 BT.470 M
4596
4597 bt470bg
4598 BT.470 BG
4599
4600 smpte170m
4601 SMPTE 170 M
4602
4603 smpte240m
4604 SMPTE 240 M
4605
4606 film
4607 Film
4608
4609 bt2020
4610 BT.2020
4611
4612 smpte428
4613 smpte428_1
4614 SMPTE ST 428-1
4615
4616 smpte431
4617 SMPTE 431-2
4618
4619 smpte432
4620 SMPTE 432-1
4621
4622 jedec-p22
4623 JEDEC P22
4624
4625 color_trc integer (decoding/encoding,video)
4626 Possible values:
4627
4628 bt709
4629 BT.709
4630
4631 gamma22
4632 BT.470 M
4633
4634 gamma28
4635 BT.470 BG
4636
4637 smpte170m
4638 SMPTE 170 M
4639
4640 smpte240m
4641 SMPTE 240 M
4642
4643 linear
4644 Linear
4645
4646 log
4647 log100
4648 Log
4649
4650 log_sqrt
4651 log316
4652 Log square root
4653
4654 iec61966_2_4
4655 iec61966-2-4
4656 IEC 61966-2-4
4657
4658 bt1361
4659 bt1361e
4660 BT.1361
4661
4662 iec61966_2_1
4663 iec61966-2-1
4664 IEC 61966-2-1
4665
4666 bt2020_10
4667 bt2020_10bit
4668 BT.2020 - 10 bit
4669
4670 bt2020_12
4671 bt2020_12bit
4672 BT.2020 - 12 bit
4673
4674 smpte2084
4675 SMPTE ST 2084
4676
4677 smpte428
4678 smpte428_1
4679 SMPTE ST 428-1
4680
4681 arib-std-b67
4682 ARIB STD-B67
4683
4684 colorspace integer (decoding/encoding,video)
4685 Possible values:
4686
4687 rgb RGB
4688
4689 bt709
4690 BT.709
4691
4692 fcc FCC
4693
4694 bt470bg
4695 BT.470 BG
4696
4697 smpte170m
4698 SMPTE 170 M
4699
4700 smpte240m
4701 SMPTE 240 M
4702
4703 ycocg
4704 YCOCG
4705
4706 bt2020nc
4707 bt2020_ncl
4708 BT.2020 NCL
4709
4710 bt2020c
4711 bt2020_cl
4712 BT.2020 CL
4713
4714 smpte2085
4715 SMPTE 2085
4716
4717 chroma-derived-nc
4718 Chroma-derived NCL
4719
4720 chroma-derived-c
4721 Chroma-derived CL
4722
4723 ictcp
4724 ICtCp
4725
4726 color_range integer (decoding/encoding,video)
4727 If used as input parameter, it serves as a hint to the decoder,
4728 which color_range the input has. Possible values:
4729
4730 tv
4731 mpeg
4732 MPEG (219*2^(n-8))
4733
4734 pc
4735 jpeg
4736 JPEG (2^n-1)
4737
4738 chroma_sample_location integer (decoding/encoding,video)
4739 Possible values:
4740
4741 left
4742 center
4743 topleft
4744 top
4745 bottomleft
4746 bottom
4747 log_level_offset integer
4748 Set the log level offset.
4749
4750 slices integer (encoding,video)
4751 Number of slices, used in parallelized encoding.
4752
4753 thread_type flags (decoding/encoding,video)
4754 Select which multithreading methods to use.
4755
4756 Use of frame will increase decoding delay by one frame per thread,
4757 so clients which cannot provide future frames should not use it.
4758
4759 Possible values:
4760
4761 slice
4762 Decode more than one part of a single frame at once.
4763
4764 Multithreading using slices works only when the video was
4765 encoded with slices.
4766
4767 frame
4768 Decode more than one frame at once.
4769
4770 Default value is slice+frame.
4771
4772 audio_service_type integer (encoding,audio)
4773 Set audio service type.
4774
4775 Possible values:
4776
4777 ma Main Audio Service
4778
4779 ef Effects
4780
4781 vi Visually Impaired
4782
4783 hi Hearing Impaired
4784
4785 di Dialogue
4786
4787 co Commentary
4788
4789 em Emergency
4790
4791 vo Voice Over
4792
4793 ka Karaoke
4794
4795 request_sample_fmt sample_fmt (decoding,audio)
4796 Set sample format audio decoders should prefer. Default value is
4797 "none".
4798
4799 pkt_timebase rational number
4800 sub_charenc encoding (decoding,subtitles)
4801 Set the input subtitles character encoding.
4802
4803 field_order field_order (video)
4804 Set/override the field order of the video. Possible values:
4805
4806 progressive
4807 Progressive video
4808
4809 tt Interlaced video, top field coded and displayed first
4810
4811 bb Interlaced video, bottom field coded and displayed first
4812
4813 tb Interlaced video, top coded first, bottom displayed first
4814
4815 bt Interlaced video, bottom coded first, top displayed first
4816
4817 skip_alpha bool (decoding,video)
4818 Set to 1 to disable processing alpha (transparency). This works
4819 like the gray flag in the flags option which skips chroma
4820 information instead of alpha. Default is 0.
4821
4822 codec_whitelist list (input)
4823 "," separated list of allowed decoders. By default all are allowed.
4824
4825 dump_separator string (input)
4826 Separator used to separate the fields printed on the command line
4827 about the Stream parameters. For example, to separate the fields
4828 with newlines and indentation:
4829
4830 ffprobe -dump_separator "
4831 " -i ~/videos/matrixbench_mpeg2.mpg
4832
4833 max_pixels integer (decoding/encoding,video)
4834 Maximum number of pixels per image. This value can be used to avoid
4835 out of memory failures due to large images.
4836
4837 apply_cropping bool (decoding,video)
4838 Enable cropping if cropping parameters are multiples of the
4839 required alignment for the left and top parameters. If the
4840 alignment is not met the cropping will be partially applied to
4841 maintain alignment. Default is 1 (enabled). Note: The required
4842 alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
4843 CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
4844 line. Also hardware decoders will not apply left/top Cropping.
4845
4847 Decoders are configured elements in FFmpeg which allow the decoding of
4848 multimedia streams.
4849
4850 When you configure your FFmpeg build, all the supported native decoders
4851 are enabled by default. Decoders requiring an external library must be
4852 enabled manually via the corresponding "--enable-lib" option. You can
4853 list all available decoders using the configure option
4854 "--list-decoders".
4855
4856 You can disable all the decoders with the configure option
4857 "--disable-decoders" and selectively enable / disable single decoders
4858 with the options "--enable-decoder=DECODER" /
4859 "--disable-decoder=DECODER".
4860
4861 The option "-decoders" of the ff* tools will display the list of
4862 enabled decoders.
4863
4865 A description of some of the currently available video decoders
4866 follows.
4867
4868 av1
4869 AOMedia Video 1 (AV1) decoder.
4870
4871 Options
4872
4873 operating_point
4874 Select an operating point of a scalable AV1 bitstream (0 - 31).
4875 Default is 0.
4876
4877 rawvideo
4878 Raw video decoder.
4879
4880 This decoder decodes rawvideo streams.
4881
4882 Options
4883
4884 top top_field_first
4885 Specify the assumed field type of the input video.
4886
4887 -1 the video is assumed to be progressive (default)
4888
4889 0 bottom-field-first is assumed
4890
4891 1 top-field-first is assumed
4892
4893 libdav1d
4894 dav1d AV1 decoder.
4895
4896 libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
4897 Requires the presence of the libdav1d headers and library during
4898 configuration. You need to explicitly configure the build with
4899 "--enable-libdav1d".
4900
4901 Options
4902
4903 The following options are supported by the libdav1d wrapper.
4904
4905 framethreads
4906 Set amount of frame threads to use during decoding. The default
4907 value is 0 (autodetect). This option is deprecated for libdav1d >=
4908 1.0 and will be removed in the future. Use the global option
4909 "threads" instead.
4910
4911 tilethreads
4912 Set amount of tile threads to use during decoding. The default
4913 value is 0 (autodetect). This option is deprecated for libdav1d >=
4914 1.0 and will be removed in the future. Use the global option
4915 "threads" instead.
4916
4917 filmgrain
4918 Apply film grain to the decoded video if present in the bitstream.
4919 Defaults to the internal default of the library. This option is
4920 deprecated and will be removed in the future. See the global option
4921 "export_side_data" to export Film Grain parameters instead of
4922 applying it.
4923
4924 oppoint
4925 Select an operating point of a scalable AV1 bitstream (0 - 31).
4926 Defaults to the internal default of the library.
4927
4928 alllayers
4929 Output all spatial layers of a scalable AV1 bitstream. The default
4930 value is false.
4931
4932 libdavs2
4933 AVS2-P2/IEEE1857.4 video decoder wrapper.
4934
4935 This decoder allows libavcodec to decode AVS2 streams with davs2
4936 library.
4937
4938 libuavs3d
4939 AVS3-P2/IEEE1857.10 video decoder.
4940
4941 libuavs3d allows libavcodec to decode AVS3 streams. Requires the
4942 presence of the libuavs3d headers and library during configuration.
4943 You need to explicitly configure the build with "--enable-libuavs3d".
4944
4945 Options
4946
4947 The following option is supported by the libuavs3d wrapper.
4948
4949 frame_threads
4950 Set amount of frame threads to use during decoding. The default
4951 value is 0 (autodetect).
4952
4954 A description of some of the currently available audio decoders
4955 follows.
4956
4957 ac3
4958 AC-3 audio decoder.
4959
4960 This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
4961 well as the undocumented RealAudio 3 (a.k.a. dnet).
4962
4963 AC-3 Decoder Options
4964
4965 -drc_scale value
4966 Dynamic Range Scale Factor. The factor to apply to dynamic range
4967 values from the AC-3 stream. This factor is applied exponentially.
4968 The default value is 1. There are 3 notable scale factor ranges:
4969
4970 drc_scale == 0
4971 DRC disabled. Produces full range audio.
4972
4973 0 < drc_scale <= 1
4974 DRC enabled. Applies a fraction of the stream DRC value.
4975 Audio reproduction is between full range and full compression.
4976
4977 drc_scale > 1
4978 DRC enabled. Applies drc_scale asymmetrically. Loud sounds are
4979 fully compressed. Soft sounds are enhanced.
4980
4981 flac
4982 FLAC audio decoder.
4983
4984 This decoder aims to implement the complete FLAC specification from
4985 Xiph.
4986
4987 FLAC Decoder options
4988
4989 -use_buggy_lpc
4990 The lavc FLAC encoder used to produce buggy streams with high lpc
4991 values (like the default value). This option makes it possible to
4992 decode such streams correctly by using lavc's old buggy lpc logic
4993 for decoding.
4994
4995 ffwavesynth
4996 Internal wave synthesizer.
4997
4998 This decoder generates wave patterns according to predefined sequences.
4999 Its use is purely internal and the format of the data it accepts is not
5000 publicly documented.
5001
5002 libcelt
5003 libcelt decoder wrapper.
5004
5005 libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
5006 codec. Requires the presence of the libcelt headers and library during
5007 configuration. You need to explicitly configure the build with
5008 "--enable-libcelt".
5009
5010 libgsm
5011 libgsm decoder wrapper.
5012
5013 libgsm allows libavcodec to decode the GSM full rate audio codec.
5014 Requires the presence of the libgsm headers and library during
5015 configuration. You need to explicitly configure the build with
5016 "--enable-libgsm".
5017
5018 This decoder supports both the ordinary GSM and the Microsoft variant.
5019
5020 libilbc
5021 libilbc decoder wrapper.
5022
5023 libilbc allows libavcodec to decode the Internet Low Bitrate Codec
5024 (iLBC) audio codec. Requires the presence of the libilbc headers and
5025 library during configuration. You need to explicitly configure the
5026 build with "--enable-libilbc".
5027
5028 Options
5029
5030 The following option is supported by the libilbc wrapper.
5031
5032 enhance
5033 Enable the enhancement of the decoded audio when set to 1. The
5034 default value is 0 (disabled).
5035
5036 libopencore-amrnb
5037 libopencore-amrnb decoder wrapper.
5038
5039 libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
5040 Narrowband audio codec. Using it requires the presence of the
5041 libopencore-amrnb headers and library during configuration. You need to
5042 explicitly configure the build with "--enable-libopencore-amrnb".
5043
5044 An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
5045 without this library.
5046
5047 libopencore-amrwb
5048 libopencore-amrwb decoder wrapper.
5049
5050 libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
5051 Wideband audio codec. Using it requires the presence of the
5052 libopencore-amrwb headers and library during configuration. You need to
5053 explicitly configure the build with "--enable-libopencore-amrwb".
5054
5055 An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
5056 without this library.
5057
5058 libopus
5059 libopus decoder wrapper.
5060
5061 libopus allows libavcodec to decode the Opus Interactive Audio Codec.
5062 Requires the presence of the libopus headers and library during
5063 configuration. You need to explicitly configure the build with
5064 "--enable-libopus".
5065
5066 An FFmpeg native decoder for Opus exists, so users can decode Opus
5067 without this library.
5068
5070 libaribb24
5071 ARIB STD-B24 caption decoder.
5072
5073 Implements profiles A and C of the ARIB STD-B24 standard.
5074
5075 libaribb24 Decoder Options
5076
5077 -aribb24-base-path path
5078 Sets the base path for the libaribb24 library. This is utilized for
5079 reading of configuration files (for custom unicode conversions),
5080 and for dumping of non-text symbols as images under that location.
5081
5082 Unset by default.
5083
5084 -aribb24-skip-ruby-text boolean
5085 Tells the decoder wrapper to skip text blocks that contain half-
5086 height ruby text.
5087
5088 Enabled by default.
5089
5090 dvbsub
5091 Options
5092
5093 compute_clut
5094 -2 Compute clut once if no matching CLUT is in the stream.
5095
5096 -1 Compute clut if no matching CLUT is in the stream.
5097
5098 0 Never compute CLUT
5099
5100 1 Always compute CLUT and override the one provided in the
5101 stream.
5102
5103 dvb_substream
5104 Selects the dvb substream, or all substreams if -1 which is
5105 default.
5106
5107 dvdsub
5108 This codec decodes the bitmap subtitles used in DVDs; the same
5109 subtitles can also be found in VobSub file pairs and in some Matroska
5110 files.
5111
5112 Options
5113
5114 palette
5115 Specify the global palette used by the bitmaps. When stored in
5116 VobSub, the palette is normally specified in the index file; in
5117 Matroska, the palette is stored in the codec extra-data in the same
5118 format as in VobSub. In DVDs, the palette is stored in the IFO
5119 file, and therefore not available when reading from dumped VOB
5120 files.
5121
5122 The format for this option is a string containing 16 24-bits
5123 hexadecimal numbers (without 0x prefix) separated by commas, for
5124 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
5125 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
5126 7c127b".
5127
5128 ifo_palette
5129 Specify the IFO file from which the global palette is obtained.
5130 (experimental)
5131
5132 forced_subs_only
5133 Only decode subtitle entries marked as forced. Some titles have
5134 forced and non-forced subtitles in the same track. Setting this
5135 flag to 1 will only keep the forced subtitles. Default value is 0.
5136
5137 libzvbi-teletext
5138 Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
5139 subtitles. Requires the presence of the libzvbi headers and library
5140 during configuration. You need to explicitly configure the build with
5141 "--enable-libzvbi".
5142
5143 Options
5144
5145 txt_page
5146 List of teletext page numbers to decode. Pages that do not match
5147 the specified list are dropped. You may use the special "*" string
5148 to match all pages, or "subtitle" to match all subtitle pages.
5149 Default value is *.
5150
5151 txt_default_region
5152 Set default character set used for decoding, a value between 0 and
5153 87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
5154 which does not override the libzvbi default. This option is needed
5155 for some legacy level 1.0 transmissions which cannot signal the
5156 proper charset.
5157
5158 txt_chop_top
5159 Discards the top teletext line. Default value is 1.
5160
5161 txt_format
5162 Specifies the format of the decoded subtitles.
5163
5164 bitmap
5165 The default format, you should use this for teletext pages,
5166 because certain graphics and colors cannot be expressed in
5167 simple text or even ASS.
5168
5169 text
5170 Simple text based output without formatting.
5171
5172 ass Formatted ASS output, subtitle pages and teletext pages are
5173 returned in different styles, subtitle pages are stripped down
5174 to text, but an effort is made to keep the text alignment and
5175 the formatting.
5176
5177 txt_left
5178 X offset of generated bitmaps, default is 0.
5179
5180 txt_top
5181 Y offset of generated bitmaps, default is 0.
5182
5183 txt_chop_spaces
5184 Chops leading and trailing spaces and removes empty lines from the
5185 generated text. This option is useful for teletext based subtitles
5186 where empty spaces may be present at the start or at the end of the
5187 lines or empty lines may be present between the subtitle lines
5188 because of double-sized teletext characters. Default value is 1.
5189
5190 txt_duration
5191 Sets the display duration of the decoded teletext pages or
5192 subtitles in milliseconds. Default value is -1 which means infinity
5193 or until the next subtitle event comes.
5194
5195 txt_transparent
5196 Force transparent background of the generated teletext bitmaps.
5197 Default value is 0 which means an opaque background.
5198
5199 txt_opacity
5200 Sets the opacity (0-255) of the teletext background. If
5201 txt_transparent is not set, it only affects characters between a
5202 start box and an end box, typically subtitles. Default value is 0
5203 if txt_transparent is set, 255 otherwise.
5204
5206 Encoders are configured elements in FFmpeg which allow the encoding of
5207 multimedia streams.
5208
5209 When you configure your FFmpeg build, all the supported native encoders
5210 are enabled by default. Encoders requiring an external library must be
5211 enabled manually via the corresponding "--enable-lib" option. You can
5212 list all available encoders using the configure option
5213 "--list-encoders".
5214
5215 You can disable all the encoders with the configure option
5216 "--disable-encoders" and selectively enable / disable single encoders
5217 with the options "--enable-encoder=ENCODER" /
5218 "--disable-encoder=ENCODER".
5219
5220 The option "-encoders" of the ff* tools will display the list of
5221 enabled encoders.
5222
5224 A description of some of the currently available audio encoders
5225 follows.
5226
5227 aac
5228 Advanced Audio Coding (AAC) encoder.
5229
5230 This encoder is the default AAC encoder, natively implemented into
5231 FFmpeg.
5232
5233 Options
5234
5235 b Set bit rate in bits/s. Setting this automatically activates
5236 constant bit rate (CBR) mode. If this option is unspecified it is
5237 set to 128kbps.
5238
5239 q Set quality for variable bit rate (VBR) mode. This option is valid
5240 only using the ffmpeg command-line tool. For library interface
5241 users, use global_quality.
5242
5243 cutoff
5244 Set cutoff frequency. If unspecified will allow the encoder to
5245 dynamically adjust the cutoff to improve clarity on low bitrates.
5246
5247 aac_coder
5248 Set AAC encoder coding method. Possible values:
5249
5250 twoloop
5251 Two loop searching (TLS) method. This is the default method.
5252
5253 This method first sets quantizers depending on band thresholds
5254 and then tries to find an optimal combination by adding or
5255 subtracting a specific value from all quantizers and adjusting
5256 some individual quantizer a little. Will tune itself based on
5257 whether aac_is, aac_ms and aac_pns are enabled.
5258
5259 anmr
5260 Average noise to mask ratio (ANMR) trellis-based solution.
5261
5262 This is an experimental coder which currently produces a lower
5263 quality, is more unstable and is slower than the default
5264 twoloop coder but has potential. Currently has no support for
5265 the aac_is or aac_pns options. Not currently recommended.
5266
5267 fast
5268 Constant quantizer method.
5269
5270 Uses a cheaper version of twoloop algorithm that doesn't try to
5271 do as many clever adjustments. Worse with low bitrates (less
5272 than 64kbps), but is better and much faster at higher bitrates.
5273
5274 aac_ms
5275 Sets mid/side coding mode. The default value of "auto" will
5276 automatically use M/S with bands which will benefit from such
5277 coding. Can be forced for all bands using the value "enable", which
5278 is mainly useful for debugging or disabled using "disable".
5279
5280 aac_is
5281 Sets intensity stereo coding tool usage. By default, it's enabled
5282 and will automatically toggle IS for similar pairs of stereo bands
5283 if it's beneficial. Can be disabled for debugging by setting the
5284 value to "disable".
5285
5286 aac_pns
5287 Uses perceptual noise substitution to replace low entropy high
5288 frequency bands with imperceptible white noise during the decoding
5289 process. By default, it's enabled, but can be disabled for
5290 debugging purposes by using "disable".
5291
5292 aac_tns
5293 Enables the use of a multitap FIR filter which spans through the
5294 high frequency bands to hide quantization noise during the encoding
5295 process and is reverted by the decoder. As well as decreasing
5296 unpleasant artifacts in the high range this also reduces the
5297 entropy in the high bands and allows for more bits to be used by
5298 the mid-low bands. By default it's enabled but can be disabled for
5299 debugging by setting the option to "disable".
5300
5301 aac_ltp
5302 Enables the use of the long term prediction extension which
5303 increases coding efficiency in very low bandwidth situations such
5304 as encoding of voice or solo piano music by extending constant
5305 harmonic peaks in bands throughout frames. This option is implied
5306 by profile:a aac_low and is incompatible with aac_pred. Use in
5307 conjunction with -ar to decrease the samplerate.
5308
5309 aac_pred
5310 Enables the use of a more traditional style of prediction where the
5311 spectral coefficients transmitted are replaced by the difference of
5312 the current coefficients minus the previous "predicted"
5313 coefficients. In theory and sometimes in practice this can improve
5314 quality for low to mid bitrate audio. This option implies the
5315 aac_main profile and is incompatible with aac_ltp.
5316
5317 profile
5318 Sets the encoding profile, possible values:
5319
5320 aac_low
5321 The default, AAC "Low-complexity" profile. Is the most
5322 compatible and produces decent quality.
5323
5324 mpeg2_aac_low
5325 Equivalent to "-profile:a aac_low -aac_pns 0". PNS was
5326 introduced with the MPEG4 specifications.
5327
5328 aac_ltp
5329 Long term prediction profile, is enabled by and will enable the
5330 aac_ltp option. Introduced in MPEG4.
5331
5332 aac_main
5333 Main-type prediction profile, is enabled by and will enable the
5334 aac_pred option. Introduced in MPEG2.
5335
5336 If this option is unspecified it is set to aac_low.
5337
5338 ac3 and ac3_fixed
5339 AC-3 audio encoders.
5340
5341 These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as
5342 well as the undocumented RealAudio 3 (a.k.a. dnet).
5343
5344 The ac3 encoder uses floating-point math, while the ac3_fixed encoder
5345 only uses fixed-point integer math. This does not mean that one is
5346 always faster, just that one or the other may be better suited to a
5347 particular system. The ac3_fixed encoder is not the default codec for
5348 any of the output formats, so it must be specified explicitly using the
5349 option "-acodec ac3_fixed" in order to use it.
5350
5351 AC-3 Metadata
5352
5353 The AC-3 metadata options are used to set parameters that describe the
5354 audio, but in most cases do not affect the audio encoding itself. Some
5355 of the options do directly affect or influence the decoding and
5356 playback of the resulting bitstream, while others are just for
5357 informational purposes. A few of the options will add bits to the
5358 output stream that could otherwise be used for audio data, and will
5359 thus affect the quality of the output. Those will be indicated
5360 accordingly with a note in the option list below.
5361
5362 These parameters are described in detail in several publicly-available
5363 documents.
5364
5365 *<<http://www.atsc.org/cms/standards/a_52-2010.pdf>>
5366 *<<http://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf>>
5367 *<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf>>
5368 *<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf>>
5369
5370 Metadata Control Options
5371
5372 -per_frame_metadata boolean
5373 Allow Per-Frame Metadata. Specifies if the encoder should check for
5374 changing metadata for each frame.
5375
5376 0 The metadata values set at initialization will be used for
5377 every frame in the stream. (default)
5378
5379 1 Metadata values can be changed before encoding each frame.
5380
5381 Downmix Levels
5382
5383 -center_mixlev level
5384 Center Mix Level. The amount of gain the decoder should apply to
5385 the center channel when downmixing to stereo. This field will only
5386 be written to the bitstream if a center channel is present. The
5387 value is specified as a scale factor. There are 3 valid values:
5388
5389 0.707
5390 Apply -3dB gain
5391
5392 0.595
5393 Apply -4.5dB gain (default)
5394
5395 0.500
5396 Apply -6dB gain
5397
5398 -surround_mixlev level
5399 Surround Mix Level. The amount of gain the decoder should apply to
5400 the surround channel(s) when downmixing to stereo. This field will
5401 only be written to the bitstream if one or more surround channels
5402 are present. The value is specified as a scale factor. There are 3
5403 valid values:
5404
5405 0.707
5406 Apply -3dB gain
5407
5408 0.500
5409 Apply -6dB gain (default)
5410
5411 0.000
5412 Silence Surround Channel(s)
5413
5414 Audio Production Information
5415
5416 Audio Production Information is optional information describing the
5417 mixing environment. Either none or both of the fields are written to
5418 the bitstream.
5419
5420 -mixing_level number
5421 Mixing Level. Specifies peak sound pressure level (SPL) in the
5422 production environment when the mix was mastered. Valid values are
5423 80 to 111, or -1 for unknown or not indicated. The default value is
5424 -1, but that value cannot be used if the Audio Production
5425 Information is written to the bitstream. Therefore, if the
5426 "room_type" option is not the default value, the "mixing_level"
5427 option must not be -1.
5428
5429 -room_type type
5430 Room Type. Describes the equalization used during the final mixing
5431 session at the studio or on the dubbing stage. A large room is a
5432 dubbing stage with the industry standard X-curve equalization; a
5433 small room has flat equalization. This field will not be written
5434 to the bitstream if both the "mixing_level" option and the
5435 "room_type" option have the default values.
5436
5437 0
5438 notindicated
5439 Not Indicated (default)
5440
5441 1
5442 large
5443 Large Room
5444
5445 2
5446 small
5447 Small Room
5448
5449 Other Metadata Options
5450
5451 -copyright boolean
5452 Copyright Indicator. Specifies whether a copyright exists for this
5453 audio.
5454
5455 0
5456 off No Copyright Exists (default)
5457
5458 1
5459 on Copyright Exists
5460
5461 -dialnorm value
5462 Dialogue Normalization. Indicates how far the average dialogue
5463 level of the program is below digital 100% full scale (0 dBFS).
5464 This parameter determines a level shift during audio reproduction
5465 that sets the average volume of the dialogue to a preset level. The
5466 goal is to match volume level between program sources. A value of
5467 -31dB will result in no volume level change, relative to the source
5468 volume, during audio reproduction. Valid values are whole numbers
5469 in the range -31 to -1, with -31 being the default.
5470
5471 -dsur_mode mode
5472 Dolby Surround Mode. Specifies whether the stereo signal uses Dolby
5473 Surround (Pro Logic). This field will only be written to the
5474 bitstream if the audio stream is stereo. Using this option does NOT
5475 mean the encoder will actually apply Dolby Surround processing.
5476
5477 0
5478 notindicated
5479 Not Indicated (default)
5480
5481 1
5482 off Not Dolby Surround Encoded
5483
5484 2
5485 on Dolby Surround Encoded
5486
5487 -original boolean
5488 Original Bit Stream Indicator. Specifies whether this audio is from
5489 the original source and not a copy.
5490
5491 0
5492 off Not Original Source
5493
5494 1
5495 on Original Source (default)
5496
5497 Extended Bitstream Information
5498
5499 The extended bitstream options are part of the Alternate Bit Stream
5500 Syntax as specified in Annex D of the A/52:2010 standard. It is grouped
5501 into 2 parts. If any one parameter in a group is specified, all values
5502 in that group will be written to the bitstream. Default values are
5503 used for those that are written but have not been specified. If the
5504 mixing levels are written, the decoder will use these values instead of
5505 the ones specified in the "center_mixlev" and "surround_mixlev" options
5506 if it supports the Alternate Bit Stream Syntax.
5507
5508 Extended Bitstream Information - Part 1
5509
5510 -dmix_mode mode
5511 Preferred Stereo Downmix Mode. Allows the user to select either
5512 Lt/Rt (Dolby Surround) or Lo/Ro (normal stereo) as the preferred
5513 stereo downmix mode.
5514
5515 0
5516 notindicated
5517 Not Indicated (default)
5518
5519 1
5520 ltrt
5521 Lt/Rt Downmix Preferred
5522
5523 2
5524 loro
5525 Lo/Ro Downmix Preferred
5526
5527 -ltrt_cmixlev level
5528 Lt/Rt Center Mix Level. The amount of gain the decoder should apply
5529 to the center channel when downmixing to stereo in Lt/Rt mode.
5530
5531 1.414
5532 Apply +3dB gain
5533
5534 1.189
5535 Apply +1.5dB gain
5536
5537 1.000
5538 Apply 0dB gain
5539
5540 0.841
5541 Apply -1.5dB gain
5542
5543 0.707
5544 Apply -3.0dB gain
5545
5546 0.595
5547 Apply -4.5dB gain (default)
5548
5549 0.500
5550 Apply -6.0dB gain
5551
5552 0.000
5553 Silence Center Channel
5554
5555 -ltrt_surmixlev level
5556 Lt/Rt Surround Mix Level. The amount of gain the decoder should
5557 apply to the surround channel(s) when downmixing to stereo in Lt/Rt
5558 mode.
5559
5560 0.841
5561 Apply -1.5dB gain
5562
5563 0.707
5564 Apply -3.0dB gain
5565
5566 0.595
5567 Apply -4.5dB gain
5568
5569 0.500
5570 Apply -6.0dB gain (default)
5571
5572 0.000
5573 Silence Surround Channel(s)
5574
5575 -loro_cmixlev level
5576 Lo/Ro Center Mix Level. The amount of gain the decoder should apply
5577 to the center channel when downmixing to stereo in Lo/Ro mode.
5578
5579 1.414
5580 Apply +3dB gain
5581
5582 1.189
5583 Apply +1.5dB gain
5584
5585 1.000
5586 Apply 0dB gain
5587
5588 0.841
5589 Apply -1.5dB gain
5590
5591 0.707
5592 Apply -3.0dB gain
5593
5594 0.595
5595 Apply -4.5dB gain (default)
5596
5597 0.500
5598 Apply -6.0dB gain
5599
5600 0.000
5601 Silence Center Channel
5602
5603 -loro_surmixlev level
5604 Lo/Ro Surround Mix Level. The amount of gain the decoder should
5605 apply to the surround channel(s) when downmixing to stereo in Lo/Ro
5606 mode.
5607
5608 0.841
5609 Apply -1.5dB gain
5610
5611 0.707
5612 Apply -3.0dB gain
5613
5614 0.595
5615 Apply -4.5dB gain
5616
5617 0.500
5618 Apply -6.0dB gain (default)
5619
5620 0.000
5621 Silence Surround Channel(s)
5622
5623 Extended Bitstream Information - Part 2
5624
5625 -dsurex_mode mode
5626 Dolby Surround EX Mode. Indicates whether the stream uses Dolby
5627 Surround EX (7.1 matrixed to 5.1). Using this option does NOT mean
5628 the encoder will actually apply Dolby Surround EX processing.
5629
5630 0
5631 notindicated
5632 Not Indicated (default)
5633
5634 1
5635 on Dolby Surround EX Off
5636
5637 2
5638 off Dolby Surround EX On
5639
5640 -dheadphone_mode mode
5641 Dolby Headphone Mode. Indicates whether the stream uses Dolby
5642 Headphone encoding (multi-channel matrixed to 2.0 for use with
5643 headphones). Using this option does NOT mean the encoder will
5644 actually apply Dolby Headphone processing.
5645
5646 0
5647 notindicated
5648 Not Indicated (default)
5649
5650 1
5651 on Dolby Headphone Off
5652
5653 2
5654 off Dolby Headphone On
5655
5656 -ad_conv_type type
5657 A/D Converter Type. Indicates whether the audio has passed through
5658 HDCD A/D conversion.
5659
5660 0
5661 standard
5662 Standard A/D Converter (default)
5663
5664 1
5665 hdcd
5666 HDCD A/D Converter
5667
5668 Other AC-3 Encoding Options
5669
5670 -stereo_rematrixing boolean
5671 Stereo Rematrixing. Enables/Disables use of rematrixing for stereo
5672 input. This is an optional AC-3 feature that increases quality by
5673 selectively encoding the left/right channels as mid/side. This
5674 option is enabled by default, and it is highly recommended that it
5675 be left as enabled except for testing purposes.
5676
5677 cutoff frequency
5678 Set lowpass cutoff frequency. If unspecified, the encoder selects a
5679 default determined by various other encoding parameters.
5680
5681 Floating-Point-Only AC-3 Encoding Options
5682
5683 These options are only valid for the floating-point encoder and do not
5684 exist for the fixed-point encoder due to the corresponding features not
5685 being implemented in fixed-point.
5686
5687 -channel_coupling boolean
5688 Enables/Disables use of channel coupling, which is an optional AC-3
5689 feature that increases quality by combining high frequency
5690 information from multiple channels into a single channel. The per-
5691 channel high frequency information is sent with less accuracy in
5692 both the frequency and time domains. This allows more bits to be
5693 used for lower frequencies while preserving enough information to
5694 reconstruct the high frequencies. This option is enabled by default
5695 for the floating-point encoder and should generally be left as
5696 enabled except for testing purposes or to increase encoding speed.
5697
5698 -1
5699 auto
5700 Selected by Encoder (default)
5701
5702 0
5703 off Disable Channel Coupling
5704
5705 1
5706 on Enable Channel Coupling
5707
5708 -cpl_start_band number
5709 Coupling Start Band. Sets the channel coupling start band, from 1
5710 to 15. If a value higher than the bandwidth is used, it will be
5711 reduced to 1 less than the coupling end band. If auto is used, the
5712 start band will be determined by the encoder based on the bit rate,
5713 sample rate, and channel layout. This option has no effect if
5714 channel coupling is disabled.
5715
5716 -1
5717 auto
5718 Selected by Encoder (default)
5719
5720 flac
5721 FLAC (Free Lossless Audio Codec) Encoder
5722
5723 Options
5724
5725 The following options are supported by FFmpeg's flac encoder.
5726
5727 compression_level
5728 Sets the compression level, which chooses defaults for many other
5729 options if they are not set explicitly. Valid values are from 0 to
5730 12, 5 is the default.
5731
5732 frame_size
5733 Sets the size of the frames in samples per channel.
5734
5735 lpc_coeff_precision
5736 Sets the LPC coefficient precision, valid values are from 1 to 15,
5737 15 is the default.
5738
5739 lpc_type
5740 Sets the first stage LPC algorithm
5741
5742 none
5743 LPC is not used
5744
5745 fixed
5746 fixed LPC coefficients
5747
5748 levinson
5749 cholesky
5750 lpc_passes
5751 Number of passes to use for Cholesky factorization during LPC
5752 analysis
5753
5754 min_partition_order
5755 The minimum partition order
5756
5757 max_partition_order
5758 The maximum partition order
5759
5760 prediction_order_method
5761 estimation
5762 2level
5763 4level
5764 8level
5765 search
5766 Bruteforce search
5767
5768 log
5769 ch_mode
5770 Channel mode
5771
5772 auto
5773 The mode is chosen automatically for each frame
5774
5775 indep
5776 Channels are independently coded
5777
5778 left_side
5779 right_side
5780 mid_side
5781 exact_rice_parameters
5782 Chooses if rice parameters are calculated exactly or approximately.
5783 if set to 1 then they are chosen exactly, which slows the code down
5784 slightly and improves compression slightly.
5785
5786 multi_dim_quant
5787 Multi Dimensional Quantization. If set to 1 then a 2nd stage LPC
5788 algorithm is applied after the first stage to finetune the
5789 coefficients. This is quite slow and slightly improves compression.
5790
5791 opus
5792 Opus encoder.
5793
5794 This is a native FFmpeg encoder for the Opus format. Currently its in
5795 development and only implements the CELT part of the codec. Its quality
5796 is usually worse and at best is equal to the libopus encoder.
5797
5798 Options
5799
5800 b Set bit rate in bits/s. If unspecified it uses the number of
5801 channels and the layout to make a good guess.
5802
5803 opus_delay
5804 Sets the maximum delay in milliseconds. Lower delays than 20ms will
5805 very quickly decrease quality.
5806
5807 libfdk_aac
5808 libfdk-aac AAC (Advanced Audio Coding) encoder wrapper.
5809
5810 The libfdk-aac library is based on the Fraunhofer FDK AAC code from the
5811 Android project.
5812
5813 Requires the presence of the libfdk-aac headers and library during
5814 configuration. You need to explicitly configure the build with
5815 "--enable-libfdk-aac". The library is also incompatible with GPL, so if
5816 you allow the use of GPL, you should configure with "--enable-gpl
5817 --enable-nonfree --enable-libfdk-aac".
5818
5819 This encoder has support for the AAC-HE profiles.
5820
5821 VBR encoding, enabled through the vbr or flags +qscale options, is
5822 experimental and only works with some combinations of parameters.
5823
5824 Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3
5825 or higher.
5826
5827 For more information see the fdk-aac project at
5828 <http://sourceforge.net/p/opencore-amr/fdk-aac/>.
5829
5830 Options
5831
5832 The following options are mapped on the shared FFmpeg codec options.
5833
5834 b Set bit rate in bits/s. If the bitrate is not explicitly specified,
5835 it is automatically set to a suitable value depending on the
5836 selected profile.
5837
5838 In case VBR mode is enabled the option is ignored.
5839
5840 ar Set audio sampling rate (in Hz).
5841
5842 channels
5843 Set the number of audio channels.
5844
5845 flags +qscale
5846 Enable fixed quality, VBR (Variable Bit Rate) mode. Note that VBR
5847 is implicitly enabled when the vbr value is positive.
5848
5849 cutoff
5850 Set cutoff frequency. If not specified (or explicitly set to 0) it
5851 will use a value automatically computed by the library. Default
5852 value is 0.
5853
5854 profile
5855 Set audio profile.
5856
5857 The following profiles are recognized:
5858
5859 aac_low
5860 Low Complexity AAC (LC)
5861
5862 aac_he
5863 High Efficiency AAC (HE-AAC)
5864
5865 aac_he_v2
5866 High Efficiency AAC version 2 (HE-AACv2)
5867
5868 aac_ld
5869 Low Delay AAC (LD)
5870
5871 aac_eld
5872 Enhanced Low Delay AAC (ELD)
5873
5874 If not specified it is set to aac_low.
5875
5876 The following are private options of the libfdk_aac encoder.
5877
5878 afterburner
5879 Enable afterburner feature if set to 1, disabled if set to 0. This
5880 improves the quality but also the required processing power.
5881
5882 Default value is 1.
5883
5884 eld_sbr
5885 Enable SBR (Spectral Band Replication) for ELD if set to 1,
5886 disabled if set to 0.
5887
5888 Default value is 0.
5889
5890 eld_v2
5891 Enable ELDv2 (LD-MPS extension for ELD stereo signals) for ELDv2 if
5892 set to 1, disabled if set to 0.
5893
5894 Note that option is available when fdk-aac version
5895 (AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) >
5896 (4.0.0).
5897
5898 Default value is 0.
5899
5900 signaling
5901 Set SBR/PS signaling style.
5902
5903 It can assume one of the following values:
5904
5905 default
5906 choose signaling implicitly (explicit hierarchical by default,
5907 implicit if global header is disabled)
5908
5909 implicit
5910 implicit backwards compatible signaling
5911
5912 explicit_sbr
5913 explicit SBR, implicit PS signaling
5914
5915 explicit_hierarchical
5916 explicit hierarchical signaling
5917
5918 Default value is default.
5919
5920 latm
5921 Output LATM/LOAS encapsulated data if set to 1, disabled if set to
5922 0.
5923
5924 Default value is 0.
5925
5926 header_period
5927 Set StreamMuxConfig and PCE repetition period (in frames) for
5928 sending in-band configuration buffers within LATM/LOAS transport
5929 layer.
5930
5931 Must be a 16-bits non-negative integer.
5932
5933 Default value is 0.
5934
5935 vbr Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty
5936 good) and 5 is highest quality. A value of 0 will disable VBR, and
5937 CBR (Constant Bit Rate) is enabled.
5938
5939 Currently only the aac_low profile supports VBR encoding.
5940
5941 VBR modes 1-5 correspond to roughly the following average bit
5942 rates:
5943
5944 1 32 kbps/channel
5945
5946 2 40 kbps/channel
5947
5948 3 48-56 kbps/channel
5949
5950 4 64 kbps/channel
5951
5952 5 about 80-96 kbps/channel
5953
5954 Default value is 0.
5955
5956 Examples
5957
5958 • Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4)
5959 container:
5960
5961 ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
5962
5963 • Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using the
5964 High-Efficiency AAC profile:
5965
5966 ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
5967
5968 libmp3lame
5969 LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper.
5970
5971 Requires the presence of the libmp3lame headers and library during
5972 configuration. You need to explicitly configure the build with
5973 "--enable-libmp3lame".
5974
5975 See libshine for a fixed-point MP3 encoder, although with a lower
5976 quality.
5977
5978 Options
5979
5980 The following options are supported by the libmp3lame wrapper. The
5981 lame-equivalent of the options are listed in parentheses.
5982
5983 b (-b)
5984 Set bitrate expressed in bits/s for CBR or ABR. LAME "bitrate" is
5985 expressed in kilobits/s.
5986
5987 q (-V)
5988 Set constant quality setting for VBR. This option is valid only
5989 using the ffmpeg command-line tool. For library interface users,
5990 use global_quality.
5991
5992 compression_level (-q)
5993 Set algorithm quality. Valid arguments are integers in the 0-9
5994 range, with 0 meaning highest quality but slowest, and 9 meaning
5995 fastest while producing the worst quality.
5996
5997 cutoff (--lowpass)
5998 Set lowpass cutoff frequency. If unspecified, the encoder
5999 dynamically adjusts the cutoff.
6000
6001 reservoir
6002 Enable use of bit reservoir when set to 1. Default value is 1. LAME
6003 has this enabled by default, but can be overridden by use --nores
6004 option.
6005
6006 joint_stereo (-m j)
6007 Enable the encoder to use (on a frame by frame basis) either L/R
6008 stereo or mid/side stereo. Default value is 1.
6009
6010 abr (--abr)
6011 Enable the encoder to use ABR when set to 1. The lame --abr sets
6012 the target bitrate, while this options only tells FFmpeg to use ABR
6013 still relies on b to set bitrate.
6014
6015 libopencore-amrnb
6016 OpenCORE Adaptive Multi-Rate Narrowband encoder.
6017
6018 Requires the presence of the libopencore-amrnb headers and library
6019 during configuration. You need to explicitly configure the build with
6020 "--enable-libopencore-amrnb --enable-version3".
6021
6022 This is a mono-only encoder. Officially it only supports 8000Hz sample
6023 rate, but you can override it by setting strict to unofficial or lower.
6024
6025 Options
6026
6027 b Set bitrate in bits per second. Only the following bitrates are
6028 supported, otherwise libavcodec will round to the nearest valid
6029 bitrate.
6030
6031 4750
6032 5150
6033 5900
6034 6700
6035 7400
6036 7950
6037 10200
6038 12200
6039 dtx Allow discontinuous transmission (generate comfort noise) when set
6040 to 1. The default value is 0 (disabled).
6041
6042 libopus
6043 libopus Opus Interactive Audio Codec encoder wrapper.
6044
6045 Requires the presence of the libopus headers and library during
6046 configuration. You need to explicitly configure the build with
6047 "--enable-libopus".
6048
6049 Option Mapping
6050
6051 Most libopus options are modelled after the opusenc utility from opus-
6052 tools. The following is an option mapping chart describing options
6053 supported by the libopus wrapper, and their opusenc-equivalent in
6054 parentheses.
6055
6056 b (bitrate)
6057 Set the bit rate in bits/s. FFmpeg's b option is expressed in
6058 bits/s, while opusenc's bitrate in kilobits/s.
6059
6060 vbr (vbr, hard-cbr, and cvbr)
6061 Set VBR mode. The FFmpeg vbr option has the following valid
6062 arguments, with the opusenc equivalent options in parentheses:
6063
6064 off (hard-cbr)
6065 Use constant bit rate encoding.
6066
6067 on (vbr)
6068 Use variable bit rate encoding (the default).
6069
6070 constrained (cvbr)
6071 Use constrained variable bit rate encoding.
6072
6073 compression_level (comp)
6074 Set encoding algorithm complexity. Valid options are integers in
6075 the 0-10 range. 0 gives the fastest encodes but lower quality,
6076 while 10 gives the highest quality but slowest encoding. The
6077 default is 10.
6078
6079 frame_duration (framesize)
6080 Set maximum frame size, or duration of a frame in milliseconds. The
6081 argument must be exactly the following: 2.5, 5, 10, 20, 40, 60.
6082 Smaller frame sizes achieve lower latency but less quality at a
6083 given bitrate. Sizes greater than 20ms are only interesting at
6084 fairly low bitrates. The default is 20ms.
6085
6086 packet_loss (expect-loss)
6087 Set expected packet loss percentage. The default is 0.
6088
6089 fec (n/a)
6090 Enable inband forward error correction. packet_loss must be non-
6091 zero to take advantage - frequency of FEC 'side-data' is
6092 proportional to expected packet loss. Default is disabled.
6093
6094 application (N.A.)
6095 Set intended application type. Valid options are listed below:
6096
6097 voip
6098 Favor improved speech intelligibility.
6099
6100 audio
6101 Favor faithfulness to the input (the default).
6102
6103 lowdelay
6104 Restrict to only the lowest delay modes.
6105
6106 cutoff (N.A.)
6107 Set cutoff bandwidth in Hz. The argument must be exactly one of the
6108 following: 4000, 6000, 8000, 12000, or 20000, corresponding to
6109 narrowband, mediumband, wideband, super wideband, and fullband
6110 respectively. The default is 0 (cutoff disabled).
6111
6112 mapping_family (mapping_family)
6113 Set channel mapping family to be used by the encoder. The default
6114 value of -1 uses mapping family 0 for mono and stereo inputs, and
6115 mapping family 1 otherwise. The default also disables the surround
6116 masking and LFE bandwidth optimzations in libopus, and requires
6117 that the input contains 8 channels or fewer.
6118
6119 Other values include 0 for mono and stereo, 1 for surround sound
6120 with masking and LFE bandwidth optimizations, and 255 for
6121 independent streams with an unspecified channel layout.
6122
6123 apply_phase_inv (N.A.) (requires libopus >= 1.2)
6124 If set to 0, disables the use of phase inversion for intensity
6125 stereo, improving the quality of mono downmixes, but slightly
6126 reducing normal stereo quality. The default is 1 (phase inversion
6127 enabled).
6128
6129 libshine
6130 Shine Fixed-Point MP3 encoder wrapper.
6131
6132 Shine is a fixed-point MP3 encoder. It has a far better performance on
6133 platforms without an FPU, e.g. armel CPUs, and some phones and tablets.
6134 However, as it is more targeted on performance than quality, it is not
6135 on par with LAME and other production-grade encoders quality-wise.
6136 Also, according to the project's homepage, this encoder may not be free
6137 of bugs as the code was written a long time ago and the project was
6138 dead for at least 5 years.
6139
6140 This encoder only supports stereo and mono input. This is also CBR-
6141 only.
6142
6143 The original project (last updated in early 2007) is at
6144 <http://sourceforge.net/projects/libshine-fxp/>. We only support the
6145 updated fork by the Savonet/Liquidsoap project at
6146 <https://github.com/savonet/shine>.
6147
6148 Requires the presence of the libshine headers and library during
6149 configuration. You need to explicitly configure the build with
6150 "--enable-libshine".
6151
6152 See also libmp3lame.
6153
6154 Options
6155
6156 The following options are supported by the libshine wrapper. The
6157 shineenc-equivalent of the options are listed in parentheses.
6158
6159 b (-b)
6160 Set bitrate expressed in bits/s for CBR. shineenc -b option is
6161 expressed in kilobits/s.
6162
6163 libtwolame
6164 TwoLAME MP2 encoder wrapper.
6165
6166 Requires the presence of the libtwolame headers and library during
6167 configuration. You need to explicitly configure the build with
6168 "--enable-libtwolame".
6169
6170 Options
6171
6172 The following options are supported by the libtwolame wrapper. The
6173 twolame-equivalent options follow the FFmpeg ones and are in
6174 parentheses.
6175
6176 b (-b)
6177 Set bitrate expressed in bits/s for CBR. twolame b option is
6178 expressed in kilobits/s. Default value is 128k.
6179
6180 q (-V)
6181 Set quality for experimental VBR support. Maximum value range is
6182 from -50 to 50, useful range is from -10 to 10. The higher the
6183 value, the better the quality. This option is valid only using the
6184 ffmpeg command-line tool. For library interface users, use
6185 global_quality.
6186
6187 mode (--mode)
6188 Set the mode of the resulting audio. Possible values:
6189
6190 auto
6191 Choose mode automatically based on the input. This is the
6192 default.
6193
6194 stereo
6195 Stereo
6196
6197 joint_stereo
6198 Joint stereo
6199
6200 dual_channel
6201 Dual channel
6202
6203 mono
6204 Mono
6205
6206 psymodel (--psyc-mode)
6207 Set psychoacoustic model to use in encoding. The argument must be
6208 an integer between -1 and 4, inclusive. The higher the value, the
6209 better the quality. The default value is 3.
6210
6211 energy_levels (--energy)
6212 Enable energy levels extensions when set to 1. The default value is
6213 0 (disabled).
6214
6215 error_protection (--protect)
6216 Enable CRC error protection when set to 1. The default value is 0
6217 (disabled).
6218
6219 copyright (--copyright)
6220 Set MPEG audio copyright flag when set to 1. The default value is 0
6221 (disabled).
6222
6223 original (--original)
6224 Set MPEG audio original flag when set to 1. The default value is 0
6225 (disabled).
6226
6227 libvo-amrwbenc
6228 VisualOn Adaptive Multi-Rate Wideband encoder.
6229
6230 Requires the presence of the libvo-amrwbenc headers and library during
6231 configuration. You need to explicitly configure the build with
6232 "--enable-libvo-amrwbenc --enable-version3".
6233
6234 This is a mono-only encoder. Officially it only supports 16000Hz sample
6235 rate, but you can override it by setting strict to unofficial or lower.
6236
6237 Options
6238
6239 b Set bitrate in bits/s. Only the following bitrates are supported,
6240 otherwise libavcodec will round to the nearest valid bitrate.
6241
6242 6600
6243 8850
6244 12650
6245 14250
6246 15850
6247 18250
6248 19850
6249 23050
6250 23850
6251 dtx Allow discontinuous transmission (generate comfort noise) when set
6252 to 1. The default value is 0 (disabled).
6253
6254 libvorbis
6255 libvorbis encoder wrapper.
6256
6257 Requires the presence of the libvorbisenc headers and library during
6258 configuration. You need to explicitly configure the build with
6259 "--enable-libvorbis".
6260
6261 Options
6262
6263 The following options are supported by the libvorbis wrapper. The
6264 oggenc-equivalent of the options are listed in parentheses.
6265
6266 To get a more accurate and extensive documentation of the libvorbis
6267 options, consult the libvorbisenc's and oggenc's documentations. See
6268 <http://xiph.org/vorbis/>, <http://wiki.xiph.org/Vorbis-tools>, and
6269 oggenc(1).
6270
6271 b (-b)
6272 Set bitrate expressed in bits/s for ABR. oggenc -b is expressed in
6273 kilobits/s.
6274
6275 q (-q)
6276 Set constant quality setting for VBR. The value should be a float
6277 number in the range of -1.0 to 10.0. The higher the value, the
6278 better the quality. The default value is 3.0.
6279
6280 This option is valid only using the ffmpeg command-line tool. For
6281 library interface users, use global_quality.
6282
6283 cutoff (--advanced-encode-option lowpass_frequency=N)
6284 Set cutoff bandwidth in Hz, a value of 0 disables cutoff. oggenc's
6285 related option is expressed in kHz. The default value is 0 (cutoff
6286 disabled).
6287
6288 minrate (-m)
6289 Set minimum bitrate expressed in bits/s. oggenc -m is expressed in
6290 kilobits/s.
6291
6292 maxrate (-M)
6293 Set maximum bitrate expressed in bits/s. oggenc -M is expressed in
6294 kilobits/s. This only has effect on ABR mode.
6295
6296 iblock (--advanced-encode-option impulse_noisetune=N)
6297 Set noise floor bias for impulse blocks. The value is a float
6298 number from -15.0 to 0.0. A negative bias instructs the encoder to
6299 pay special attention to the crispness of transients in the encoded
6300 audio. The tradeoff for better transient response is a higher
6301 bitrate.
6302
6303 mjpeg
6304 Motion JPEG encoder.
6305
6306 Options
6307
6308 huffman
6309 Set the huffman encoding strategy. Possible values:
6310
6311 default
6312 Use the default huffman tables. This is the default strategy.
6313
6314 optimal
6315 Compute and use optimal huffman tables.
6316
6317 wavpack
6318 WavPack lossless audio encoder.
6319
6320 Options
6321
6322 The equivalent options for wavpack command line utility are listed in
6323 parentheses.
6324
6325 Shared options
6326
6327 The following shared options are effective for this encoder. Only
6328 special notes about this particular encoder will be documented here.
6329 For the general meaning of the options, see the Codec Options chapter.
6330
6331 frame_size (--blocksize)
6332 For this encoder, the range for this option is between 128 and
6333 131072. Default is automatically decided based on sample rate and
6334 number of channel.
6335
6336 For the complete formula of calculating default, see
6337 libavcodec/wavpackenc.c.
6338
6339 compression_level (-f, -h, -hh, and -x)
6340
6341 Private options
6342
6343 joint_stereo (-j)
6344 Set whether to enable joint stereo. Valid values are:
6345
6346 on (1)
6347 Force mid/side audio encoding.
6348
6349 off (0)
6350 Force left/right audio encoding.
6351
6352 auto
6353 Let the encoder decide automatically.
6354
6355 optimize_mono
6356 Set whether to enable optimization for mono. This option is only
6357 effective for non-mono streams. Available values:
6358
6359 on enabled
6360
6361 off disabled
6362
6364 A description of some of the currently available video encoders
6365 follows.
6366
6367 a64_multi, a64_multi5
6368 A64 / Commodore 64 multicolor charset encoder. "a64_multi5" is extended
6369 with 5th color (colram).
6370
6371 GIF
6372 GIF image/animation encoder.
6373
6374 Options
6375
6376 gifflags integer
6377 Sets the flags used for GIF encoding.
6378
6379 offsetting
6380 Enables picture offsetting.
6381
6382 Default is enabled.
6383
6384 transdiff
6385 Enables transparency detection between frames.
6386
6387 Default is enabled.
6388
6389 gifimage integer
6390 Enables encoding one full GIF image per frame, rather than an
6391 animated GIF.
6392
6393 Default value is 0.
6394
6395 global_palette integer
6396 Writes a palette to the global GIF header where feasible.
6397
6398 If disabled, every frame will always have a palette written, even
6399 if there is a global palette supplied.
6400
6401 Default value is 1.
6402
6403 Hap
6404 Vidvox Hap video encoder.
6405
6406 Options
6407
6408 format integer
6409 Specifies the Hap format to encode.
6410
6411 hap
6412 hap_alpha
6413 hap_q
6414
6415 Default value is hap.
6416
6417 chunks integer
6418 Specifies the number of chunks to split frames into, between 1 and
6419 64. This permits multithreaded decoding of large frames,
6420 potentially at the cost of data-rate. The encoder may modify this
6421 value to divide frames evenly.
6422
6423 Default value is 1.
6424
6425 compressor integer
6426 Specifies the second-stage compressor to use. If set to none,
6427 chunks will be limited to 1, as chunked uncompressed frames offer
6428 no benefit.
6429
6430 none
6431 snappy
6432
6433 Default value is snappy.
6434
6435 jpeg2000
6436 The native jpeg 2000 encoder is lossy by default, the "-q:v" option can
6437 be used to set the encoding quality. Lossless encoding can be selected
6438 with "-pred 1".
6439
6440 Options
6441
6442 format integer
6443 Can be set to either "j2k" or "jp2" (the default) that makes it
6444 possible to store non-rgb pix_fmts.
6445
6446 tile_width integer
6447 Sets tile width. Range is 1 to 1073741824. Default is 256.
6448
6449 tile_height integer
6450 Sets tile height. Range is 1 to 1073741824. Default is 256.
6451
6452 pred integer
6453 Allows setting the discrete wavelet transform (DWT) type
6454
6455 dwt97int (Lossy)
6456 dwt53 (Lossless)
6457
6458 Default is "dwt97int"
6459
6460 sop boolean
6461 Enable this to add SOP marker at the start of each packet. Disabled
6462 by default.
6463
6464 eph boolean
6465 Enable this to add EPH marker at the end of each packet header.
6466 Disabled by default.
6467
6468 prog integer
6469 Sets the progression order to be used by the encoder. Possible
6470 values are:
6471
6472 lrcp
6473 rlcp
6474 rpcl
6475 pcrl
6476 cprl
6477
6478 Set to "lrcp" by default.
6479
6480 layer_rates string
6481 By default, when this option is not used, compression is done using
6482 the quality metric. This option allows for compression using
6483 compression ratio. The compression ratio for each level could be
6484 specified. The compression ratio of a layer "l" species the what
6485 ratio of total file size is contained in the first "l" layers.
6486
6487 Example usage:
6488
6489 ffmpeg -i input.bmp -c:v jpeg2000 -layer_rates "100,10,1" output.j2k
6490
6491 This would compress the image to contain 3 layers, where the data
6492 contained in the first layer would be compressed by 1000 times,
6493 compressed by 100 in the first two layers, and shall contain all
6494 data while using all 3 layers.
6495
6496 librav1e
6497 rav1e AV1 encoder wrapper.
6498
6499 Requires the presence of the rav1e headers and library during
6500 configuration. You need to explicitly configure the build with
6501 "--enable-librav1e".
6502
6503 Options
6504
6505 qmax
6506 Sets the maximum quantizer to use when using bitrate mode.
6507
6508 qmin
6509 Sets the minimum quantizer to use when using bitrate mode.
6510
6511 qp Uses quantizer mode to encode at the given quantizer (0-255).
6512
6513 speed
6514 Selects the speed preset (0-10) to encode with.
6515
6516 tiles
6517 Selects how many tiles to encode with.
6518
6519 tile-rows
6520 Selects how many rows of tiles to encode with.
6521
6522 tile-columns
6523 Selects how many columns of tiles to encode with.
6524
6525 rav1e-params
6526 Set rav1e options using a list of key=value pairs separated by ":".
6527 See rav1e --help for a list of options.
6528
6529 For example to specify librav1e encoding options with
6530 -rav1e-params:
6531
6532 ffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:low_latency=true output.mp4
6533
6534 libaom-av1
6535 libaom AV1 encoder wrapper.
6536
6537 Requires the presence of the libaom headers and library during
6538 configuration. You need to explicitly configure the build with
6539 "--enable-libaom".
6540
6541 Options
6542
6543 The wrapper supports the following standard libavcodec options:
6544
6545 b Set bitrate target in bits/second. By default this will use
6546 variable-bitrate mode. If maxrate and minrate are also set to the
6547 same value then it will use constant-bitrate mode, otherwise if crf
6548 is set as well then it will use constrained-quality mode.
6549
6550 g keyint_min
6551 Set key frame placement. The GOP size sets the maximum distance
6552 between key frames; if zero the output stream will be intra-only.
6553 The minimum distance is ignored unless it is the same as the GOP
6554 size, in which case key frames will always appear at a fixed
6555 interval. Not set by default, so without this option the library
6556 has completely free choice about where to place key frames.
6557
6558 qmin qmax
6559 Set minimum/maximum quantisation values. Valid range is from 0 to
6560 63 (warning: this does not match the quantiser values actually used
6561 by AV1 - divide by four to map real quantiser values to this
6562 range). Defaults to min/max (no constraint).
6563
6564 minrate maxrate bufsize rc_init_occupancy
6565 Set rate control buffering parameters. Not used if not set -
6566 defaults to unconstrained variable bitrate.
6567
6568 threads
6569 Set the number of threads to use while encoding. This may require
6570 the tiles or row-mt options to also be set to actually use the
6571 specified number of threads fully. Defaults to the number of
6572 hardware threads supported by the host machine.
6573
6574 profile
6575 Set the encoding profile. Defaults to using the profile which
6576 matches the bit depth and chroma subsampling of the input.
6577
6578 The wrapper also has some specific options:
6579
6580 cpu-used
6581 Set the quality/encoding speed tradeoff. Valid range is from 0 to
6582 8, higher numbers indicating greater speed and lower quality. The
6583 default value is 1, which will be slow and high quality.
6584
6585 auto-alt-ref
6586 Enable use of alternate reference frames. Defaults to the internal
6587 default of the library.
6588
6589 arnr-max-frames (frames)
6590 Set altref noise reduction max frame count. Default is -1.
6591
6592 arnr-strength (strength)
6593 Set altref noise reduction filter strength. Range is -1 to 6.
6594 Default is -1.
6595
6596 aq-mode (aq-mode)
6597 Set adaptive quantization mode. Possible values:
6598
6599 none (0)
6600 Disabled.
6601
6602 variance (1)
6603 Variance-based.
6604
6605 complexity (2)
6606 Complexity-based.
6607
6608 cyclic (3)
6609 Cyclic refresh.
6610
6611 tune (tune)
6612 Set the distortion metric the encoder is tuned with. Default is
6613 "psnr".
6614
6615 psnr (0)
6616 ssim (1)
6617 lag-in-frames
6618 Set the maximum number of frames which the encoder may keep in
6619 flight at any one time for lookahead purposes. Defaults to the
6620 internal default of the library.
6621
6622 error-resilience
6623 Enable error resilience features:
6624
6625 default
6626 Improve resilience against losses of whole frames.
6627
6628 Not enabled by default.
6629
6630 crf Set the quality/size tradeoff for constant-quality (no bitrate
6631 target) and constrained-quality (with maximum bitrate target)
6632 modes. Valid range is 0 to 63, higher numbers indicating lower
6633 quality and smaller output size. Only used if set; by default only
6634 the bitrate target is used.
6635
6636 static-thresh
6637 Set a change threshold on blocks below which they will be skipped
6638 by the encoder. Defined in arbitrary units as a nonnegative
6639 integer, defaulting to zero (no blocks are skipped).
6640
6641 drop-threshold
6642 Set a threshold for dropping frames when close to rate control
6643 bounds. Defined as a percentage of the target buffer - when the
6644 rate control buffer falls below this percentage, frames will be
6645 dropped until it has refilled above the threshold. Defaults to
6646 zero (no frames are dropped).
6647
6648 denoise-noise-level (level)
6649 Amount of noise to be removed for grain synthesis. Grain synthesis
6650 is disabled if this option is not set or set to 0.
6651
6652 denoise-block-size (pixels)
6653 Block size used for denoising for grain synthesis. If not set, AV1
6654 codec uses the default value of 32.
6655
6656 undershoot-pct (pct)
6657 Set datarate undershoot (min) percentage of the target bitrate.
6658 Range is -1 to 100. Default is -1.
6659
6660 overshoot-pct (pct)
6661 Set datarate overshoot (max) percentage of the target bitrate.
6662 Range is -1 to 1000. Default is -1.
6663
6664 minsection-pct (pct)
6665 Minimum percentage variation of the GOP bitrate from the target
6666 bitrate. If minsection-pct is not set, the libaomenc wrapper
6667 computes it as follows: "(minrate * 100 / bitrate)". Range is -1
6668 to 100. Default is -1 (unset).
6669
6670 maxsection-pct (pct)
6671 Maximum percentage variation of the GOP bitrate from the target
6672 bitrate. If maxsection-pct is not set, the libaomenc wrapper
6673 computes it as follows: "(maxrate * 100 / bitrate)". Range is -1
6674 to 5000. Default is -1 (unset).
6675
6676 frame-parallel (boolean)
6677 Enable frame parallel decodability features. Default is true.
6678
6679 tiles
6680 Set the number of tiles to encode the input video with, as columns
6681 x rows. Larger numbers allow greater parallelism in both encoding
6682 and decoding, but may decrease coding efficiency. Defaults to the
6683 minimum number of tiles required by the size of the input video
6684 (this is 1x1 (that is, a single tile) for sizes up to and including
6685 4K).
6686
6687 tile-columns tile-rows
6688 Set the number of tiles as log2 of the number of tile rows and
6689 columns. Provided for compatibility with libvpx/VP9.
6690
6691 row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2)
6692 Enable row based multi-threading. Disabled by default.
6693
6694 enable-cdef (boolean)
6695 Enable Constrained Directional Enhancement Filter. The libaom-av1
6696 encoder enables CDEF by default.
6697
6698 enable-restoration (boolean)
6699 Enable Loop Restoration Filter. Default is true for libaom-av1.
6700
6701 enable-global-motion (boolean)
6702 Enable the use of global motion for block prediction. Default is
6703 true.
6704
6705 enable-intrabc (boolean)
6706 Enable block copy mode for intra block prediction. This mode is
6707 useful for screen content. Default is true.
6708
6709 enable-rect-partitions (boolean) (Requires libaom >= v2.0.0)
6710 Enable rectangular partitions. Default is true.
6711
6712 enable-1to4-partitions (boolean) (Requires libaom >= v2.0.0)
6713 Enable 1:4/4:1 partitions. Default is true.
6714
6715 enable-ab-partitions (boolean) (Requires libaom >= v2.0.0)
6716 Enable AB shape partitions. Default is true.
6717
6718 enable-angle-delta (boolean) (Requires libaom >= v2.0.0)
6719 Enable angle delta intra prediction. Default is true.
6720
6721 enable-cfl-intra (boolean) (Requires libaom >= v2.0.0)
6722 Enable chroma predicted from luma intra prediction. Default is
6723 true.
6724
6725 enable-filter-intra (boolean) (Requires libaom >= v2.0.0)
6726 Enable filter intra predictor. Default is true.
6727
6728 enable-intra-edge-filter (boolean) (Requires libaom >= v2.0.0)
6729 Enable intra edge filter. Default is true.
6730
6731 enable-smooth-intra (boolean) (Requires libaom >= v2.0.0)
6732 Enable smooth intra prediction mode. Default is true.
6733
6734 enable-paeth-intra (boolean) (Requires libaom >= v2.0.0)
6735 Enable paeth predictor in intra prediction. Default is true.
6736
6737 enable-palette (boolean) (Requires libaom >= v2.0.0)
6738 Enable palette prediction mode. Default is true.
6739
6740 enable-flip-idtx (boolean) (Requires libaom >= v2.0.0)
6741 Enable extended transform type, including FLIPADST_DCT,
6742 DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST,
6743 IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST. Default
6744 is true.
6745
6746 enable-tx64 (boolean) (Requires libaom >= v2.0.0)
6747 Enable 64-pt transform. Default is true.
6748
6749 reduced-tx-type-set (boolean) (Requires libaom >= v2.0.0)
6750 Use reduced set of transform types. Default is false.
6751
6752 use-intra-dct-only (boolean) (Requires libaom >= v2.0.0)
6753 Use DCT only for INTRA modes. Default is false.
6754
6755 use-inter-dct-only (boolean) (Requires libaom >= v2.0.0)
6756 Use DCT only for INTER modes. Default is false.
6757
6758 use-intra-default-tx-only (boolean) (Requires libaom >= v2.0.0)
6759 Use Default-transform only for INTRA modes. Default is false.
6760
6761 enable-ref-frame-mvs (boolean) (Requires libaom >= v2.0.0)
6762 Enable temporal mv prediction. Default is true.
6763
6764 enable-reduced-reference-set (boolean) (Requires libaom >= v2.0.0)
6765 Use reduced set of single and compound references. Default is
6766 false.
6767
6768 enable-obmc (boolean) (Requires libaom >= v2.0.0)
6769 Enable obmc. Default is true.
6770
6771 enable-dual-filter (boolean) (Requires libaom >= v2.0.0)
6772 Enable dual filter. Default is true.
6773
6774 enable-diff-wtd-comp (boolean) (Requires libaom >= v2.0.0)
6775 Enable difference-weighted compound. Default is true.
6776
6777 enable-dist-wtd-comp (boolean) (Requires libaom >= v2.0.0)
6778 Enable distance-weighted compound. Default is true.
6779
6780 enable-onesided-comp (boolean) (Requires libaom >= v2.0.0)
6781 Enable one sided compound. Default is true.
6782
6783 enable-interinter-wedge (boolean) (Requires libaom >= v2.0.0)
6784 Enable interinter wedge compound. Default is true.
6785
6786 enable-interintra-wedge (boolean) (Requires libaom >= v2.0.0)
6787 Enable interintra wedge compound. Default is true.
6788
6789 enable-masked-comp (boolean) (Requires libaom >= v2.0.0)
6790 Enable masked compound. Default is true.
6791
6792 enable-interintra-comp (boolean) (Requires libaom >= v2.0.0)
6793 Enable interintra compound. Default is true.
6794
6795 enable-smooth-interintra (boolean) (Requires libaom >= v2.0.0)
6796 Enable smooth interintra mode. Default is true.
6797
6798 aom-params
6799 Set libaom options using a list of key=value pairs separated by
6800 ":". For a list of supported options, see aomenc --help under the
6801 section "AV1 Specific Options".
6802
6803 For example to specify libaom encoding options with -aom-params:
6804
6805 ffmpeg -i input -c:v libaom-av1 -b:v 500K -aom-params tune=psnr:enable-tpl-model=1 output.mp4
6806
6807 libsvtav1
6808 SVT-AV1 encoder wrapper.
6809
6810 Requires the presence of the SVT-AV1 headers and library during
6811 configuration. You need to explicitly configure the build with
6812 "--enable-libsvtav1".
6813
6814 Options
6815
6816 profile
6817 Set the encoding profile.
6818
6819 main
6820 high
6821 professional
6822 level
6823 Set the operating point level. For example: '4.0'
6824
6825 hielevel
6826 Set the Hierarchical prediction levels.
6827
6828 3level
6829 4level
6830 This is the default.
6831
6832 tier
6833 Set the operating point tier.
6834
6835 main
6836 This is the default.
6837
6838 high
6839 rc Set the rate control mode to use.
6840
6841 Possible modes:
6842
6843 cqp Constant quantizer: use fixed values of qindex (dependent on
6844 the frame type) throughout the stream. This mode is the
6845 default.
6846
6847 vbr Variable bitrate: use a target bitrate for the whole stream.
6848
6849 cvbr
6850 Constrained variable bitrate: use a target bitrate for each
6851 GOP.
6852
6853 qmax
6854 Set the maximum quantizer to use when using a bitrate mode.
6855
6856 qmin
6857 Set the minimum quantizer to use when using a bitrate mode.
6858
6859 qp Set the quantizer used in cqp rate control mode (0-63).
6860
6861 sc_detection
6862 Enable scene change detection.
6863
6864 la_depth
6865 Set number of frames to look ahead (0-120).
6866
6867 preset
6868 Set the quality-speed tradeoff, in the range 0 to 8. Higher values
6869 are faster but lower quality. Defaults to 8 (highest speed).
6870
6871 tile_rows
6872 Set log2 of the number of rows of tiles to use (0-6).
6873
6874 tile_columns
6875 Set log2 of the number of columns of tiles to use (0-4).
6876
6877 libkvazaar
6878 Kvazaar H.265/HEVC encoder.
6879
6880 Requires the presence of the libkvazaar headers and library during
6881 configuration. You need to explicitly configure the build with
6882 --enable-libkvazaar.
6883
6884 Options
6885
6886 b Set target video bitrate in bit/s and enable rate control.
6887
6888 kvazaar-params
6889 Set kvazaar parameters as a list of name=value pairs separated by
6890 commas (,). See kvazaar documentation for a list of options.
6891
6892 libopenh264
6893 Cisco libopenh264 H.264/MPEG-4 AVC encoder wrapper.
6894
6895 This encoder requires the presence of the libopenh264 headers and
6896 library during configuration. You need to explicitly configure the
6897 build with "--enable-libopenh264". The library is detected using pkg-
6898 config.
6899
6900 For more information about the library see <http://www.openh264.org>.
6901
6902 Options
6903
6904 The following FFmpeg global options affect the configurations of the
6905 libopenh264 encoder.
6906
6907 b Set the bitrate (as a number of bits per second).
6908
6909 g Set the GOP size.
6910
6911 maxrate
6912 Set the max bitrate (as a number of bits per second).
6913
6914 flags +global_header
6915 Set global header in the bitstream.
6916
6917 slices
6918 Set the number of slices, used in parallelized encoding. Default
6919 value is 0. This is only used when slice_mode is set to fixed.
6920
6921 slice_mode
6922 Set slice mode. Can assume one of the following possible values:
6923
6924 fixed
6925 a fixed number of slices
6926
6927 rowmb
6928 one slice per row of macroblocks
6929
6930 auto
6931 automatic number of slices according to number of threads
6932
6933 dyn dynamic slicing
6934
6935 Default value is auto.
6936
6937 loopfilter
6938 Enable loop filter, if set to 1 (automatically enabled). To disable
6939 set a value of 0.
6940
6941 profile
6942 Set profile restrictions. If set to the value of main enable CABAC
6943 (set the "SEncParamExt.iEntropyCodingModeFlag" flag to 1).
6944
6945 max_nal_size
6946 Set maximum NAL size in bytes.
6947
6948 allow_skip_frames
6949 Allow skipping frames to hit the target bitrate if set to 1.
6950
6951 libtheora
6952 libtheora Theora encoder wrapper.
6953
6954 Requires the presence of the libtheora headers and library during
6955 configuration. You need to explicitly configure the build with
6956 "--enable-libtheora".
6957
6958 For more information about the libtheora project see
6959 <http://www.theora.org/>.
6960
6961 Options
6962
6963 The following global options are mapped to internal libtheora options
6964 which affect the quality and the bitrate of the encoded stream.
6965
6966 b Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode.
6967 In case VBR (Variable Bit Rate) mode is enabled this option is
6968 ignored.
6969
6970 flags
6971 Used to enable constant quality mode (VBR) encoding through the
6972 qscale flag, and to enable the "pass1" and "pass2" modes.
6973
6974 g Set the GOP size.
6975
6976 global_quality
6977 Set the global quality as an integer in lambda units.
6978
6979 Only relevant when VBR mode is enabled with "flags +qscale". The
6980 value is converted to QP units by dividing it by "FF_QP2LAMBDA",
6981 clipped in the [0 - 10] range, and then multiplied by 6.3 to get a
6982 value in the native libtheora range [0-63]. A higher value
6983 corresponds to a higher quality.
6984
6985 q Enable VBR mode when set to a non-negative value, and set constant
6986 quality value as a double floating point value in QP units.
6987
6988 The value is clipped in the [0-10] range, and then multiplied by
6989 6.3 to get a value in the native libtheora range [0-63].
6990
6991 This option is valid only using the ffmpeg command-line tool. For
6992 library interface users, use global_quality.
6993
6994 Examples
6995
6996 • Set maximum constant quality (VBR) encoding with ffmpeg:
6997
6998 ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
6999
7000 • Use ffmpeg to convert a CBR 1000 kbps Theora video stream:
7001
7002 ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
7003
7004 libvpx
7005 VP8/VP9 format supported through libvpx.
7006
7007 Requires the presence of the libvpx headers and library during
7008 configuration. You need to explicitly configure the build with
7009 "--enable-libvpx".
7010
7011 Options
7012
7013 The following options are supported by the libvpx wrapper. The
7014 vpxenc-equivalent options or values are listed in parentheses for easy
7015 migration.
7016
7017 To reduce the duplication of documentation, only the private options
7018 and some others requiring special attention are documented here. For
7019 the documentation of the undocumented generic options, see the Codec
7020 Options chapter.
7021
7022 To get more documentation of the libvpx options, invoke the command
7023 ffmpeg -h encoder=libvpx, ffmpeg -h encoder=libvpx-vp9 or vpxenc
7024 --help. Further information is available in the libvpx API
7025 documentation.
7026
7027 b (target-bitrate)
7028 Set bitrate in bits/s. Note that FFmpeg's b option is expressed in
7029 bits/s, while vpxenc's target-bitrate is in kilobits/s.
7030
7031 g (kf-max-dist)
7032 keyint_min (kf-min-dist)
7033 qmin (min-q)
7034 qmax (max-q)
7035 bufsize (buf-sz, buf-optimal-sz)
7036 Set ratecontrol buffer size (in bits). Note vpxenc's options are
7037 specified in milliseconds, the libvpx wrapper converts this value
7038 as follows: "buf-sz = bufsize * 1000 / bitrate", "buf-optimal-sz =
7039 bufsize * 1000 / bitrate * 5 / 6".
7040
7041 rc_init_occupancy (buf-initial-sz)
7042 Set number of bits which should be loaded into the rc buffer before
7043 decoding starts. Note vpxenc's option is specified in milliseconds,
7044 the libvpx wrapper converts this value as follows:
7045 "rc_init_occupancy * 1000 / bitrate".
7046
7047 undershoot-pct
7048 Set datarate undershoot (min) percentage of the target bitrate.
7049
7050 overshoot-pct
7051 Set datarate overshoot (max) percentage of the target bitrate.
7052
7053 skip_threshold (drop-frame)
7054 qcomp (bias-pct)
7055 maxrate (maxsection-pct)
7056 Set GOP max bitrate in bits/s. Note vpxenc's option is specified as
7057 a percentage of the target bitrate, the libvpx wrapper converts
7058 this value as follows: "(maxrate * 100 / bitrate)".
7059
7060 minrate (minsection-pct)
7061 Set GOP min bitrate in bits/s. Note vpxenc's option is specified as
7062 a percentage of the target bitrate, the libvpx wrapper converts
7063 this value as follows: "(minrate * 100 / bitrate)".
7064
7065 minrate, maxrate, b end-usage=cbr
7066 "(minrate == maxrate == bitrate)".
7067
7068 crf (end-usage=cq, cq-level)
7069 tune (tune)
7070 psnr (psnr)
7071 ssim (ssim)
7072 quality, deadline (deadline)
7073 best
7074 Use best quality deadline. Poorly named and quite slow, this
7075 option should be avoided as it may give worse quality output
7076 than good.
7077
7078 good
7079 Use good quality deadline. This is a good trade-off between
7080 speed and quality when used with the cpu-used option.
7081
7082 realtime
7083 Use realtime quality deadline.
7084
7085 speed, cpu-used (cpu-used)
7086 Set quality/speed ratio modifier. Higher values speed up the encode
7087 at the cost of quality.
7088
7089 nr (noise-sensitivity)
7090 static-thresh
7091 Set a change threshold on blocks below which they will be skipped
7092 by the encoder.
7093
7094 slices (token-parts)
7095 Note that FFmpeg's slices option gives the total number of
7096 partitions, while vpxenc's token-parts is given as
7097 "log2(partitions)".
7098
7099 max-intra-rate
7100 Set maximum I-frame bitrate as a percentage of the target bitrate.
7101 A value of 0 means unlimited.
7102
7103 force_key_frames
7104 "VPX_EFLAG_FORCE_KF"
7105
7106 Alternate reference frame related
7107 auto-alt-ref
7108 Enable use of alternate reference frames (2-pass only). Values
7109 greater than 1 enable multi-layer alternate reference frames
7110 (VP9 only).
7111
7112 arnr-maxframes
7113 Set altref noise reduction max frame count.
7114
7115 arnr-type
7116 Set altref noise reduction filter type: backward, forward,
7117 centered.
7118
7119 arnr-strength
7120 Set altref noise reduction filter strength.
7121
7122 rc-lookahead, lag-in-frames (lag-in-frames)
7123 Set number of frames to look ahead for frametype and
7124 ratecontrol.
7125
7126 error-resilient
7127 Enable error resiliency features.
7128
7129 sharpness integer
7130 Increase sharpness at the expense of lower PSNR. The valid range
7131 is [0, 7].
7132
7133 ts-parameters
7134 Sets the temporal scalability configuration using a :-separated
7135 list of key=value pairs. For example, to specify temporal
7136 scalability parameters with "ffmpeg":
7137
7138 ffmpeg -i INPUT -c:v libvpx -ts-parameters ts_number_layers=3:\
7139 ts_target_bitrate=250,500,1000:ts_rate_decimator=4,2,1:\
7140 ts_periodicity=4:ts_layer_id=0,2,1,2:ts_layering_mode=3 OUTPUT
7141
7142 Below is a brief explanation of each of the parameters, please
7143 refer to "struct vpx_codec_enc_cfg" in "vpx/vpx_encoder.h" for more
7144 details.
7145
7146 ts_number_layers
7147 Number of temporal coding layers.
7148
7149 ts_target_bitrate
7150 Target bitrate for each temporal layer (in kbps). (bitrate
7151 should be inclusive of the lower temporal layer).
7152
7153 ts_rate_decimator
7154 Frame rate decimation factor for each temporal layer.
7155
7156 ts_periodicity
7157 Length of the sequence defining frame temporal layer
7158 membership.
7159
7160 ts_layer_id
7161 Template defining the membership of frames to temporal layers.
7162
7163 ts_layering_mode
7164 (optional) Selecting the temporal structure from a set of pre-
7165 defined temporal layering modes. Currently supports the
7166 following options.
7167
7168 0 No temporal layering flags are provided internally, relies
7169 on flags being passed in using "metadata" field in
7170 "AVFrame" with following keys.
7171
7172 vp8-flags
7173 Sets the flags passed into the encoder to indicate the
7174 referencing scheme for the current frame. Refer to
7175 function "vpx_codec_encode" in "vpx/vpx_encoder.h" for
7176 more details.
7177
7178 temporal_id
7179 Explicitly sets the temporal id of the current frame to
7180 encode.
7181
7182 2 Two temporal layers. 0-1...
7183
7184 3 Three temporal layers. 0-2-1-2...; with single reference
7185 frame.
7186
7187 4 Same as option "3", except there is a dependency between
7188 the two temporal layer 2 frames within the temporal period.
7189
7190 VP9-specific options
7191 lossless
7192 Enable lossless mode.
7193
7194 tile-columns
7195 Set number of tile columns to use. Note this is given as
7196 "log2(tile_columns)". For example, 8 tile columns would be
7197 requested by setting the tile-columns option to 3.
7198
7199 tile-rows
7200 Set number of tile rows to use. Note this is given as
7201 "log2(tile_rows)". For example, 4 tile rows would be requested
7202 by setting the tile-rows option to 2.
7203
7204 frame-parallel
7205 Enable frame parallel decodability features.
7206
7207 aq-mode
7208 Set adaptive quantization mode (0: off (default), 1: variance
7209 2: complexity, 3: cyclic refresh, 4: equator360).
7210
7211 colorspace color-space
7212 Set input color space. The VP9 bitstream supports signaling the
7213 following colorspaces:
7214
7215 rgb sRGB
7216 bt709 bt709
7217 unspecified unknown
7218 bt470bg bt601
7219 smpte170m smpte170
7220 smpte240m smpte240
7221 bt2020_ncl bt2020
7222 row-mt boolean
7223 Enable row based multi-threading.
7224
7225 tune-content
7226 Set content type: default (0), screen (1), film (2).
7227
7228 corpus-complexity
7229 Corpus VBR mode is a variant of standard VBR where the
7230 complexity distribution midpoint is passed in rather than
7231 calculated for a specific clip or chunk.
7232
7233 The valid range is [0, 10000]. 0 (default) uses standard VBR.
7234
7235 enable-tpl boolean
7236 Enable temporal dependency model.
7237
7238 ref-frame-config
7239 Using per-frame metadata, set members of the structure
7240 "vpx_svc_ref_frame_config_t" in "vpx/vp8cx.h" to fine-control
7241 referencing schemes and frame buffer management. Use a
7242 :-separated list of key=value pairs. For example,
7243
7244 av_dict_set(&av_frame->metadata, "ref-frame-config", \
7245 "rfc_update_buffer_slot=7:rfc_lst_fb_idx=0:rfc_gld_fb_idx=1:rfc_alt_fb_idx=2:rfc_reference_last=0:rfc_reference_golden=0:rfc_reference_alt_ref=0");
7246
7247 rfc_update_buffer_slot
7248 Indicates the buffer slot number to update
7249
7250 rfc_update_last
7251 Indicates whether to update the LAST frame
7252
7253 rfc_update_golden
7254 Indicates whether to update GOLDEN frame
7255
7256 rfc_update_alt_ref
7257 Indicates whether to update ALT_REF frame
7258
7259 rfc_lst_fb_idx
7260 LAST frame buffer index
7261
7262 rfc_gld_fb_idx
7263 GOLDEN frame buffer index
7264
7265 rfc_alt_fb_idx
7266 ALT_REF frame buffer index
7267
7268 rfc_reference_last
7269 Indicates whether to reference LAST frame
7270
7271 rfc_reference_golden
7272 Indicates whether to reference GOLDEN frame
7273
7274 rfc_reference_alt_ref
7275 Indicates whether to reference ALT_REF frame
7276
7277 rfc_reference_duration
7278 Indicates frame duration
7279
7280 For more information about libvpx see: <http://www.webmproject.org/>
7281
7282 libwebp
7283 libwebp WebP Image encoder wrapper
7284
7285 libwebp is Google's official encoder for WebP images. It can encode in
7286 either lossy or lossless mode. Lossy images are essentially a wrapper
7287 around a VP8 frame. Lossless images are a separate codec developed by
7288 Google.
7289
7290 Pixel Format
7291
7292 Currently, libwebp only supports YUV420 for lossy and RGB for lossless
7293 due to limitations of the format and libwebp. Alpha is supported for
7294 either mode. Because of API limitations, if RGB is passed in when
7295 encoding lossy or YUV is passed in for encoding lossless, the pixel
7296 format will automatically be converted using functions from libwebp.
7297 This is not ideal and is done only for convenience.
7298
7299 Options
7300
7301 -lossless boolean
7302 Enables/Disables use of lossless mode. Default is 0.
7303
7304 -compression_level integer
7305 For lossy, this is a quality/speed tradeoff. Higher values give
7306 better quality for a given size at the cost of increased encoding
7307 time. For lossless, this is a size/speed tradeoff. Higher values
7308 give smaller size at the cost of increased encoding time. More
7309 specifically, it controls the number of extra algorithms and
7310 compression tools used, and varies the combination of these tools.
7311 This maps to the method option in libwebp. The valid range is 0 to
7312 6. Default is 4.
7313
7314 -qscale float
7315 For lossy encoding, this controls image quality, 0 to 100. For
7316 lossless encoding, this controls the effort and time spent at
7317 compressing more. The default value is 75. Note that for usage via
7318 libavcodec, this option is called global_quality and must be
7319 multiplied by FF_QP2LAMBDA.
7320
7321 -preset type
7322 Configuration preset. This does some automatic settings based on
7323 the general type of the image.
7324
7325 none
7326 Do not use a preset.
7327
7328 default
7329 Use the encoder default.
7330
7331 picture
7332 Digital picture, like portrait, inner shot
7333
7334 photo
7335 Outdoor photograph, with natural lighting
7336
7337 drawing
7338 Hand or line drawing, with high-contrast details
7339
7340 icon
7341 Small-sized colorful images
7342
7343 text
7344 Text-like
7345
7346 libx264, libx264rgb
7347 x264 H.264/MPEG-4 AVC encoder wrapper.
7348
7349 This encoder requires the presence of the libx264 headers and library
7350 during configuration. You need to explicitly configure the build with
7351 "--enable-libx264".
7352
7353 libx264 supports an impressive number of features, including 8x8 and
7354 4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC
7355 entropy coding, interlacing (MBAFF), lossless mode, psy optimizations
7356 for detail retention (adaptive quantization, psy-RD, psy-trellis).
7357
7358 Many libx264 encoder options are mapped to FFmpeg global codec options,
7359 while unique encoder options are provided through private options.
7360 Additionally the x264opts and x264-params private options allows one to
7361 pass a list of key=value tuples as accepted by the libx264
7362 "x264_param_parse" function.
7363
7364 The x264 project website is at
7365 <http://www.videolan.org/developers/x264.html>.
7366
7367 The libx264rgb encoder is the same as libx264, except it accepts packed
7368 RGB pixel formats as input instead of YUV.
7369
7370 Supported Pixel Formats
7371
7372 x264 supports 8- to 10-bit color spaces. The exact bit depth is
7373 controlled at x264's configure time.
7374
7375 Options
7376
7377 The following options are supported by the libx264 wrapper. The
7378 x264-equivalent options or values are listed in parentheses for easy
7379 migration.
7380
7381 To reduce the duplication of documentation, only the private options
7382 and some others requiring special attention are documented here. For
7383 the documentation of the undocumented generic options, see the Codec
7384 Options chapter.
7385
7386 To get a more accurate and extensive documentation of the libx264
7387 options, invoke the command x264 --fullhelp or consult the libx264
7388 documentation.
7389
7390 b (bitrate)
7391 Set bitrate in bits/s. Note that FFmpeg's b option is expressed in
7392 bits/s, while x264's bitrate is in kilobits/s.
7393
7394 bf (bframes)
7395 g (keyint)
7396 qmin (qpmin)
7397 Minimum quantizer scale.
7398
7399 qmax (qpmax)
7400 Maximum quantizer scale.
7401
7402 qdiff (qpstep)
7403 Maximum difference between quantizer scales.
7404
7405 qblur (qblur)
7406 Quantizer curve blur
7407
7408 qcomp (qcomp)
7409 Quantizer curve compression factor
7410
7411 refs (ref)
7412 Number of reference frames each P-frame can use. The range is from
7413 0-16.
7414
7415 sc_threshold (scenecut)
7416 Sets the threshold for the scene change detection.
7417
7418 trellis (trellis)
7419 Performs Trellis quantization to increase efficiency. Enabled by
7420 default.
7421
7422 nr (nr)
7423 me_range (merange)
7424 Maximum range of the motion search in pixels.
7425
7426 me_method (me)
7427 Set motion estimation method. Possible values in the decreasing
7428 order of speed:
7429
7430 dia (dia)
7431 epzs (dia)
7432 Diamond search with radius 1 (fastest). epzs is an alias for
7433 dia.
7434
7435 hex (hex)
7436 Hexagonal search with radius 2.
7437
7438 umh (umh)
7439 Uneven multi-hexagon search.
7440
7441 esa (esa)
7442 Exhaustive search.
7443
7444 tesa (tesa)
7445 Hadamard exhaustive search (slowest).
7446
7447 forced-idr
7448 Normally, when forcing a I-frame type, the encoder can select any
7449 type of I-frame. This option forces it to choose an IDR-frame.
7450
7451 subq (subme)
7452 Sub-pixel motion estimation method.
7453
7454 b_strategy (b-adapt)
7455 Adaptive B-frame placement decision algorithm. Use only on first-
7456 pass.
7457
7458 keyint_min (min-keyint)
7459 Minimum GOP size.
7460
7461 coder
7462 Set entropy encoder. Possible values:
7463
7464 ac Enable CABAC.
7465
7466 vlc Enable CAVLC and disable CABAC. It generates the same effect as
7467 x264's --no-cabac option.
7468
7469 cmp Set full pixel motion estimation comparison algorithm. Possible
7470 values:
7471
7472 chroma
7473 Enable chroma in motion estimation.
7474
7475 sad Ignore chroma in motion estimation. It generates the same
7476 effect as x264's --no-chroma-me option.
7477
7478 threads (threads)
7479 Number of encoding threads.
7480
7481 thread_type
7482 Set multithreading technique. Possible values:
7483
7484 slice
7485 Slice-based multithreading. It generates the same effect as
7486 x264's --sliced-threads option.
7487
7488 frame
7489 Frame-based multithreading.
7490
7491 flags
7492 Set encoding flags. It can be used to disable closed GOP and enable
7493 open GOP by setting it to "-cgop". The result is similar to the
7494 behavior of x264's --open-gop option.
7495
7496 rc_init_occupancy (vbv-init)
7497 preset (preset)
7498 Set the encoding preset.
7499
7500 tune (tune)
7501 Set tuning of the encoding params.
7502
7503 profile (profile)
7504 Set profile restrictions.
7505
7506 fastfirstpass
7507 Enable fast settings when encoding first pass, when set to 1. When
7508 set to 0, it has the same effect of x264's --slow-firstpass option.
7509
7510 crf (crf)
7511 Set the quality for constant quality mode.
7512
7513 crf_max (crf-max)
7514 In CRF mode, prevents VBV from lowering quality beyond this point.
7515
7516 qp (qp)
7517 Set constant quantization rate control method parameter.
7518
7519 aq-mode (aq-mode)
7520 Set AQ method. Possible values:
7521
7522 none (0)
7523 Disabled.
7524
7525 variance (1)
7526 Variance AQ (complexity mask).
7527
7528 autovariance (2)
7529 Auto-variance AQ (experimental).
7530
7531 aq-strength (aq-strength)
7532 Set AQ strength, reduce blocking and blurring in flat and textured
7533 areas.
7534
7535 psy Use psychovisual optimizations when set to 1. When set to 0, it has
7536 the same effect as x264's --no-psy option.
7537
7538 psy-rd (psy-rd)
7539 Set strength of psychovisual optimization, in psy-rd:psy-trellis
7540 format.
7541
7542 rc-lookahead (rc-lookahead)
7543 Set number of frames to look ahead for frametype and ratecontrol.
7544
7545 weightb
7546 Enable weighted prediction for B-frames when set to 1. When set to
7547 0, it has the same effect as x264's --no-weightb option.
7548
7549 weightp (weightp)
7550 Set weighted prediction method for P-frames. Possible values:
7551
7552 none (0)
7553 Disabled
7554
7555 simple (1)
7556 Enable only weighted refs
7557
7558 smart (2)
7559 Enable both weighted refs and duplicates
7560
7561 ssim (ssim)
7562 Enable calculation and printing SSIM stats after the encoding.
7563
7564 intra-refresh (intra-refresh)
7565 Enable the use of Periodic Intra Refresh instead of IDR frames when
7566 set to 1.
7567
7568 avcintra-class (class)
7569 Configure the encoder to generate AVC-Intra. Valid values are
7570 50,100 and 200
7571
7572 bluray-compat (bluray-compat)
7573 Configure the encoder to be compatible with the bluray standard.
7574 It is a shorthand for setting "bluray-compat=1 force-cfr=1".
7575
7576 b-bias (b-bias)
7577 Set the influence on how often B-frames are used.
7578
7579 b-pyramid (b-pyramid)
7580 Set method for keeping of some B-frames as references. Possible
7581 values:
7582
7583 none (none)
7584 Disabled.
7585
7586 strict (strict)
7587 Strictly hierarchical pyramid.
7588
7589 normal (normal)
7590 Non-strict (not Blu-ray compatible).
7591
7592 mixed-refs
7593 Enable the use of one reference per partition, as opposed to one
7594 reference per macroblock when set to 1. When set to 0, it has the
7595 same effect as x264's --no-mixed-refs option.
7596
7597 8x8dct
7598 Enable adaptive spatial transform (high profile 8x8 transform) when
7599 set to 1. When set to 0, it has the same effect as x264's
7600 --no-8x8dct option.
7601
7602 fast-pskip
7603 Enable early SKIP detection on P-frames when set to 1. When set to
7604 0, it has the same effect as x264's --no-fast-pskip option.
7605
7606 aud (aud)
7607 Enable use of access unit delimiters when set to 1.
7608
7609 mbtree
7610 Enable use macroblock tree ratecontrol when set to 1. When set to
7611 0, it has the same effect as x264's --no-mbtree option.
7612
7613 deblock (deblock)
7614 Set loop filter parameters, in alpha:beta form.
7615
7616 cplxblur (cplxblur)
7617 Set fluctuations reduction in QP (before curve compression).
7618
7619 partitions (partitions)
7620 Set partitions to consider as a comma-separated list of. Possible
7621 values in the list:
7622
7623 p8x8
7624 8x8 P-frame partition.
7625
7626 p4x4
7627 4x4 P-frame partition.
7628
7629 b8x8
7630 4x4 B-frame partition.
7631
7632 i8x8
7633 8x8 I-frame partition.
7634
7635 i4x4
7636 4x4 I-frame partition. (Enabling p4x4 requires p8x8 to be
7637 enabled. Enabling i8x8 requires adaptive spatial transform
7638 (8x8dct option) to be enabled.)
7639
7640 none (none)
7641 Do not consider any partitions.
7642
7643 all (all)
7644 Consider every partition.
7645
7646 direct-pred (direct)
7647 Set direct MV prediction mode. Possible values:
7648
7649 none (none)
7650 Disable MV prediction.
7651
7652 spatial (spatial)
7653 Enable spatial predicting.
7654
7655 temporal (temporal)
7656 Enable temporal predicting.
7657
7658 auto (auto)
7659 Automatically decided.
7660
7661 slice-max-size (slice-max-size)
7662 Set the limit of the size of each slice in bytes. If not specified
7663 but RTP payload size (ps) is specified, that is used.
7664
7665 stats (stats)
7666 Set the file name for multi-pass stats.
7667
7668 nal-hrd (nal-hrd)
7669 Set signal HRD information (requires vbv-bufsize to be set).
7670 Possible values:
7671
7672 none (none)
7673 Disable HRD information signaling.
7674
7675 vbr (vbr)
7676 Variable bit rate.
7677
7678 cbr (cbr)
7679 Constant bit rate (not allowed in MP4 container).
7680
7681 x264opts (N.A.)
7682 Set any x264 option, see x264 --fullhelp for a list.
7683
7684 Argument is a list of key=value couples separated by ":". In filter
7685 and psy-rd options that use ":" as a separator themselves, use ","
7686 instead. They accept it as well since long ago but this is kept
7687 undocumented for some reason.
7688
7689 For example to specify libx264 encoding options with ffmpeg:
7690
7691 ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
7692
7693 a53cc boolean
7694 Import closed captions (which must be ATSC compatible format) into
7695 output. Only the mpeg2 and h264 decoders provide these. Default is
7696 1 (on).
7697
7698 udu_sei boolean
7699 Import user data unregistered SEI if available into output. Default
7700 is 0 (off).
7701
7702 x264-params (N.A.)
7703 Override the x264 configuration using a :-separated list of
7704 key=value parameters.
7705
7706 This option is functionally the same as the x264opts, but is
7707 duplicated for compatibility with the Libav fork.
7708
7709 For example to specify libx264 encoding options with ffmpeg:
7710
7711 ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\
7712 cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\
7713 no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
7714
7715 Encoding ffpresets for common usages are provided so they can be used
7716 with the general presets system (e.g. passing the pre option).
7717
7718 libx265
7719 x265 H.265/HEVC encoder wrapper.
7720
7721 This encoder requires the presence of the libx265 headers and library
7722 during configuration. You need to explicitly configure the build with
7723 --enable-libx265.
7724
7725 Options
7726
7727 b Sets target video bitrate.
7728
7729 bf
7730 g Set the GOP size.
7731
7732 keyint_min
7733 Minimum GOP size.
7734
7735 refs
7736 Number of reference frames each P-frame can use. The range is from
7737 1-16.
7738
7739 preset
7740 Set the x265 preset.
7741
7742 tune
7743 Set the x265 tune parameter.
7744
7745 profile
7746 Set profile restrictions.
7747
7748 crf Set the quality for constant quality mode.
7749
7750 qp Set constant quantization rate control method parameter.
7751
7752 qmin
7753 Minimum quantizer scale.
7754
7755 qmax
7756 Maximum quantizer scale.
7757
7758 qdiff
7759 Maximum difference between quantizer scales.
7760
7761 qblur
7762 Quantizer curve blur
7763
7764 qcomp
7765 Quantizer curve compression factor
7766
7767 i_qfactor
7768 b_qfactor
7769 forced-idr
7770 Normally, when forcing a I-frame type, the encoder can select any
7771 type of I-frame. This option forces it to choose an IDR-frame.
7772
7773 udu_sei boolean
7774 Import user data unregistered SEI if available into output. Default
7775 is 0 (off).
7776
7777 x265-params
7778 Set x265 options using a list of key=value couples separated by
7779 ":". See x265 --help for a list of options.
7780
7781 For example to specify libx265 encoding options with -x265-params:
7782
7783 ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4
7784
7785 libxavs2
7786 xavs2 AVS2-P2/IEEE1857.4 encoder wrapper.
7787
7788 This encoder requires the presence of the libxavs2 headers and library
7789 during configuration. You need to explicitly configure the build with
7790 --enable-libxavs2.
7791
7792 The following standard libavcodec options are used:
7793
7794 • b / bit_rate
7795
7796 • g / gop_size
7797
7798 • bf / max_b_frames
7799
7800 The encoder also has its own specific options:
7801
7802 Options
7803
7804 lcu_row_threads
7805 Set the number of parallel threads for rows from 1 to 8 (default
7806 5).
7807
7808 initial_qp
7809 Set the xavs2 quantization parameter from 1 to 63 (default 34).
7810 This is used to set the initial qp for the first frame.
7811
7812 qp Set the xavs2 quantization parameter from 1 to 63 (default 34).
7813 This is used to set the qp value under constant-QP mode.
7814
7815 max_qp
7816 Set the max qp for rate control from 1 to 63 (default 55).
7817
7818 min_qp
7819 Set the min qp for rate control from 1 to 63 (default 20).
7820
7821 speed_level
7822 Set the Speed level from 0 to 9 (default 0). Higher is better but
7823 slower.
7824
7825 log_level
7826 Set the log level from -1 to 3 (default 0). -1: none, 0: error, 1:
7827 warning, 2: info, 3: debug.
7828
7829 xavs2-params
7830 Set xavs2 options using a list of key=value couples separated by
7831 ":".
7832
7833 For example to specify libxavs2 encoding options with
7834 -xavs2-params:
7835
7836 ffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2
7837
7838 libxvid
7839 Xvid MPEG-4 Part 2 encoder wrapper.
7840
7841 This encoder requires the presence of the libxvidcore headers and
7842 library during configuration. You need to explicitly configure the
7843 build with "--enable-libxvid --enable-gpl".
7844
7845 The native "mpeg4" encoder supports the MPEG-4 Part 2 format, so users
7846 can encode to this format without this library.
7847
7848 Options
7849
7850 The following options are supported by the libxvid wrapper. Some of the
7851 following options are listed but are not documented, and correspond to
7852 shared codec options. See the Codec Options chapter for their
7853 documentation. The other shared options which are not listed have no
7854 effect for the libxvid encoder.
7855
7856 b
7857 g
7858 qmin
7859 qmax
7860 mpeg_quant
7861 threads
7862 bf
7863 b_qfactor
7864 b_qoffset
7865 flags
7866 Set specific encoding flags. Possible values:
7867
7868 mv4 Use four motion vector by macroblock.
7869
7870 aic Enable high quality AC prediction.
7871
7872 gray
7873 Only encode grayscale.
7874
7875 gmc Enable the use of global motion compensation (GMC).
7876
7877 qpel
7878 Enable quarter-pixel motion compensation.
7879
7880 cgop
7881 Enable closed GOP.
7882
7883 global_header
7884 Place global headers in extradata instead of every keyframe.
7885
7886 trellis
7887 me_method
7888 Set motion estimation method. Possible values in decreasing order
7889 of speed and increasing order of quality:
7890
7891 zero
7892 Use no motion estimation (default).
7893
7894 phods
7895 x1
7896 log Enable advanced diamond zonal search for 16x16 blocks and half-
7897 pixel refinement for 16x16 blocks. x1 and log are aliases for
7898 phods.
7899
7900 epzs
7901 Enable all of the things described above, plus advanced diamond
7902 zonal search for 8x8 blocks, half-pixel refinement for 8x8
7903 blocks, and motion estimation on chroma planes.
7904
7905 full
7906 Enable all of the things described above, plus extended 16x16
7907 and 8x8 blocks search.
7908
7909 mbd Set macroblock decision algorithm. Possible values in the
7910 increasing order of quality:
7911
7912 simple
7913 Use macroblock comparing function algorithm (default).
7914
7915 bits
7916 Enable rate distortion-based half pixel and quarter pixel
7917 refinement for 16x16 blocks.
7918
7919 rd Enable all of the things described above, plus rate distortion-
7920 based half pixel and quarter pixel refinement for 8x8 blocks,
7921 and rate distortion-based search using square pattern.
7922
7923 lumi_aq
7924 Enable lumi masking adaptive quantization when set to 1. Default is
7925 0 (disabled).
7926
7927 variance_aq
7928 Enable variance adaptive quantization when set to 1. Default is 0
7929 (disabled).
7930
7931 When combined with lumi_aq, the resulting quality will not be
7932 better than any of the two specified individually. In other words,
7933 the resulting quality will be the worse one of the two effects.
7934
7935 ssim
7936 Set structural similarity (SSIM) displaying method. Possible
7937 values:
7938
7939 off Disable displaying of SSIM information.
7940
7941 avg Output average SSIM at the end of encoding to stdout. The
7942 format of showing the average SSIM is:
7943
7944 Average SSIM: %f
7945
7946 For users who are not familiar with C, %f means a float number,
7947 or a decimal (e.g. 0.939232).
7948
7949 frame
7950 Output both per-frame SSIM data during encoding and average
7951 SSIM at the end of encoding to stdout. The format of per-frame
7952 information is:
7953
7954 SSIM: avg: %1.3f min: %1.3f max: %1.3f
7955
7956 For users who are not familiar with C, %1.3f means a float
7957 number rounded to 3 digits after the dot (e.g. 0.932).
7958
7959 ssim_acc
7960 Set SSIM accuracy. Valid options are integers within the range of
7961 0-4, while 0 gives the most accurate result and 4 computes the
7962 fastest.
7963
7964 MediaFoundation
7965 This provides wrappers to encoders (both audio and video) in the
7966 MediaFoundation framework. It can access both SW and HW encoders.
7967 Video encoders can take input in either of nv12 or yuv420p form (some
7968 encoders support both, some support only either - in practice, nv12 is
7969 the safer choice, especially among HW encoders).
7970
7971 mpeg2
7972 MPEG-2 video encoder.
7973
7974 Options
7975
7976 profile
7977 Select the mpeg2 profile to encode:
7978
7979 422
7980 high
7981 ss Spatially Scalable
7982
7983 snr SNR Scalable
7984
7985 main
7986 simple
7987 level
7988 Select the mpeg2 level to encode:
7989
7990 high
7991 high1440
7992 main
7993 low
7994 seq_disp_ext integer
7995 Specifies if the encoder should write a sequence_display_extension
7996 to the output.
7997
7998 -1
7999 auto
8000 Decide automatically to write it or not (this is the default)
8001 by checking if the data to be written is different from the
8002 default or unspecified values.
8003
8004 0
8005 never
8006 Never write it.
8007
8008 1
8009 always
8010 Always write it.
8011
8012 video_format integer
8013 Specifies the video_format written into the sequence display
8014 extension indicating the source of the video pictures. The default
8015 is unspecified, can be component, pal, ntsc, secam or mac. For
8016 maximum compatibility, use component.
8017
8018 a53cc boolean
8019 Import closed captions (which must be ATSC compatible format) into
8020 output. Default is 1 (on).
8021
8022 png
8023 PNG image encoder.
8024
8025 Private options
8026
8027 dpi integer
8028 Set physical density of pixels, in dots per inch, unset by default
8029
8030 dpm integer
8031 Set physical density of pixels, in dots per meter, unset by default
8032
8033 ProRes
8034 Apple ProRes encoder.
8035
8036 FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder.
8037 The used encoder can be chosen with the "-vcodec" option.
8038
8039 Private Options for prores-ks
8040
8041 profile integer
8042 Select the ProRes profile to encode
8043
8044 proxy
8045 lt
8046 standard
8047 hq
8048 4444
8049 4444xq
8050 quant_mat integer
8051 Select quantization matrix.
8052
8053 auto
8054 default
8055 proxy
8056 lt
8057 standard
8058 hq
8059
8060 If set to auto, the matrix matching the profile will be picked. If
8061 not set, the matrix providing the highest quality, default, will be
8062 picked.
8063
8064 bits_per_mb integer
8065 How many bits to allot for coding one macroblock. Different
8066 profiles use between 200 and 2400 bits per macroblock, the maximum
8067 is 8000.
8068
8069 mbs_per_slice integer
8070 Number of macroblocks in each slice (1-8); the default value (8)
8071 should be good in almost all situations.
8072
8073 vendor string
8074 Override the 4-byte vendor ID. A custom vendor ID like apl0 would
8075 claim the stream was produced by the Apple encoder.
8076
8077 alpha_bits integer
8078 Specify number of bits for alpha component. Possible values are 0,
8079 8 and 16. Use 0 to disable alpha plane coding.
8080
8081 Speed considerations
8082
8083 In the default mode of operation the encoder has to honor frame
8084 constraints (i.e. not produce frames with size bigger than requested)
8085 while still making output picture as good as possible. A frame
8086 containing a lot of small details is harder to compress and the encoder
8087 would spend more time searching for appropriate quantizers for each
8088 slice.
8089
8090 Setting a higher bits_per_mb limit will improve the speed.
8091
8092 For the fastest encoding speed set the qscale parameter (4 is the
8093 recommended value) and do not set a size constraint.
8094
8095 QSV encoders
8096 The family of Intel QuickSync Video encoders (MPEG-2, H.264, HEVC,
8097 JPEG/MJPEG and VP9)
8098
8099 The ratecontrol method is selected as follows:
8100
8101 • When global_quality is specified, a quality-based mode is used.
8102 Specifically this means either
8103
8104 - CQP - constant quantizer scale, when the qscale codec flag is
8105 also set (the -qscale ffmpeg option).
8106
8107 - LA_ICQ - intelligent constant quality with lookahead, when the
8108 look_ahead option is also set.
8109
8110 - ICQ -- intelligent constant quality otherwise. For the ICQ
8111 modes, global quality range is 1 to 51, with 1 being the best
8112 quality.
8113
8114 • Otherwise, a bitrate-based mode is used. For all of those, you
8115 should specify at least the desired average bitrate with the b
8116 option.
8117
8118 - LA - VBR with lookahead, when the look_ahead option is
8119 specified.
8120
8121 - VCM - video conferencing mode, when the vcm option is set.
8122
8123 - CBR - constant bitrate, when maxrate is specified and equal to
8124 the average bitrate.
8125
8126 - VBR - variable bitrate, when maxrate is specified, but is
8127 higher than the average bitrate.
8128
8129 - AVBR - average VBR mode, when maxrate is not specified. This
8130 mode is further configured by the avbr_accuracy and
8131 avbr_convergence options.
8132
8133 Note that depending on your system, a different mode than the one you
8134 specified may be selected by the encoder. Set the verbosity level to
8135 verbose or higher to see the actual settings used by the QSV runtime.
8136
8137 Additional libavcodec global options are mapped to MSDK options as
8138 follows:
8139
8140 • g/gop_size -> GopPicSize
8141
8142 • bf/max_b_frames+1 -> GopRefDist
8143
8144 • rc_init_occupancy/rc_initial_buffer_occupancy -> InitialDelayInKB
8145
8146 • slices -> NumSlice
8147
8148 • refs -> NumRefFrame
8149
8150 • b_strategy/b_frame_strategy -> BRefType
8151
8152 • cgop/CLOSED_GOP codec flag -> GopOptFlag
8153
8154 • For the CQP mode, the i_qfactor/i_qoffset and b_qfactor/b_qoffset
8155 set the difference between QPP and QPI, and QPP and QPB
8156 respectively.
8157
8158 • Setting the coder option to the value vlc will make the H.264
8159 encoder use CAVLC instead of CABAC.
8160
8161 snow
8162 Options
8163
8164 iterative_dia_size
8165 dia size for the iterative motion estimation
8166
8167 VAAPI encoders
8168 Wrappers for hardware encoders accessible via VAAPI.
8169
8170 These encoders only accept input in VAAPI hardware surfaces. If you
8171 have input in software frames, use the hwupload filter to upload them
8172 to the GPU.
8173
8174 The following standard libavcodec options are used:
8175
8176 • g / gop_size
8177
8178 • bf / max_b_frames
8179
8180 • profile
8181
8182 If not set, this will be determined automatically from the format
8183 of the input frames and the profiles supported by the driver.
8184
8185 • level
8186
8187 • b / bit_rate
8188
8189 • maxrate / rc_max_rate
8190
8191 • bufsize / rc_buffer_size
8192
8193 • rc_init_occupancy / rc_initial_buffer_occupancy
8194
8195 • compression_level
8196
8197 Speed / quality tradeoff: higher values are faster / worse quality.
8198
8199 • q / global_quality
8200
8201 Size / quality tradeoff: higher values are smaller / worse quality.
8202
8203 • qmin
8204
8205 • qmax
8206
8207 • i_qfactor / i_quant_factor
8208
8209 • i_qoffset / i_quant_offset
8210
8211 • b_qfactor / b_quant_factor
8212
8213 • b_qoffset / b_quant_offset
8214
8215 • slices
8216
8217 All encoders support the following options:
8218
8219 low_power
8220 Some drivers/platforms offer a second encoder for some codecs
8221 intended to use less power than the default encoder; setting this
8222 option will attempt to use that encoder. Note that it may support
8223 a reduced feature set, so some other options may not be available
8224 in this mode.
8225
8226 idr_interval
8227 Set the number of normal intra frames between full-refresh (IDR)
8228 frames in open-GOP mode. The intra frames are still IRAPs, but
8229 will not include global headers and may have non-decodable leading
8230 pictures.
8231
8232 b_depth
8233 Set the B-frame reference depth. When set to one (the default),
8234 all B-frames will refer only to P- or I-frames. When set to
8235 greater values multiple layers of B-frames will be present, frames
8236 in each layer only referring to frames in higher layers.
8237
8238 rc_mode
8239 Set the rate control mode to use. A given driver may only support
8240 a subset of modes.
8241
8242 Possible modes:
8243
8244 auto
8245 Choose the mode automatically based on driver support and the
8246 other options. This is the default.
8247
8248 CQP Constant-quality.
8249
8250 CBR Constant-bitrate.
8251
8252 VBR Variable-bitrate.
8253
8254 ICQ Intelligent constant-quality.
8255
8256 QVBR
8257 Quality-defined variable-bitrate.
8258
8259 AVBR
8260 Average variable bitrate.
8261
8262 Each encoder also has its own specific options:
8263
8264 h264_vaapi
8265 profile sets the value of profile_idc and the
8266 constraint_set*_flags. level sets the value of level_idc.
8267
8268 coder
8269 Set entropy encoder (default is cabac). Possible values:
8270
8271 ac
8272 cabac
8273 Use CABAC.
8274
8275 vlc
8276 cavlc
8277 Use CAVLC.
8278
8279 aud Include access unit delimiters in the stream (not included by
8280 default).
8281
8282 sei Set SEI message types to include. Some combination of the
8283 following values:
8284
8285 identifier
8286 Include a user_data_unregistered message containing
8287 information about the encoder.
8288
8289 timing
8290 Include picture timing parameters (buffering_period and
8291 pic_timing messages).
8292
8293 recovery_point
8294 Include recovery points where appropriate (recovery_point
8295 messages).
8296
8297 hevc_vaapi
8298 profile and level set the values of general_profile_idc and
8299 general_level_idc respectively.
8300
8301 aud Include access unit delimiters in the stream (not included by
8302 default).
8303
8304 tier
8305 Set general_tier_flag. This may affect the level chosen for
8306 the stream if it is not explicitly specified.
8307
8308 sei Set SEI message types to include. Some combination of the
8309 following values:
8310
8311 hdr Include HDR metadata if the input frames have it
8312 (mastering_display_colour_volume and content_light_level
8313 messages).
8314
8315 tiles
8316 Set the number of tiles to encode the input video with, as
8317 columns x rows. Larger numbers allow greater parallelism in
8318 both encoding and decoding, but may decrease coding efficiency.
8319
8320 mjpeg_vaapi
8321 Only baseline DCT encoding is supported. The encoder always uses
8322 the standard quantisation and huffman tables - global_quality
8323 scales the standard quantisation table (range 1-100).
8324
8325 For YUV, 4:2:0, 4:2:2 and 4:4:4 subsampling modes are supported.
8326 RGB is also supported, and will create an RGB JPEG.
8327
8328 jfif
8329 Include JFIF header in each frame (not included by default).
8330
8331 huffman
8332 Include standard huffman tables (on by default). Turning this
8333 off will save a few hundred bytes in each output frame, but may
8334 lose compatibility with some JPEG decoders which don't fully
8335 handle MJPEG.
8336
8337 mpeg2_vaapi
8338 profile and level set the value of profile_and_level_indication.
8339
8340 vp8_vaapi
8341 B-frames are not supported.
8342
8343 global_quality sets the q_idx used for non-key frames (range
8344 0-127).
8345
8346 loop_filter_level
8347 loop_filter_sharpness
8348 Manually set the loop filter parameters.
8349
8350 vp9_vaapi
8351 global_quality sets the q_idx used for P-frames (range 0-255).
8352
8353 loop_filter_level
8354 loop_filter_sharpness
8355 Manually set the loop filter parameters.
8356
8357 B-frames are supported, but the output stream is always in encode
8358 order rather than display order. If B-frames are enabled, it may
8359 be necessary to use the vp9_raw_reorder bitstream filter to modify
8360 the output stream to display frames in the correct order.
8361
8362 Only normal frames are produced - the vp9_superframe bitstream
8363 filter may be required to produce a stream usable with all
8364 decoders.
8365
8366 vc2
8367 SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed
8368 at professional broadcasting but since it supports yuv420, yuv422 and
8369 yuv444 at 8 (limited range or full range), 10 or 12 bits, this makes it
8370 suitable for other tasks which require low overhead and low compression
8371 (like screen recording).
8372
8373 Options
8374
8375 b Sets target video bitrate. Usually that's around 1:6 of the
8376 uncompressed video bitrate (e.g. for 1920x1080 50fps yuv422p10
8377 that's around 400Mbps). Higher values (close to the uncompressed
8378 bitrate) turn on lossless compression mode.
8379
8380 field_order
8381 Enables field coding when set (e.g. to tt - top field first) for
8382 interlaced inputs. Should increase compression with interlaced
8383 content as it splits the fields and encodes each separately.
8384
8385 wavelet_depth
8386 Sets the total amount of wavelet transforms to apply, between 1 and
8387 5 (default). Lower values reduce compression and quality. Less
8388 capable decoders may not be able to handle values of wavelet_depth
8389 over 3.
8390
8391 wavelet_type
8392 Sets the transform type. Currently only 5_3 (LeGall) and 9_7
8393 (Deslauriers-Dubuc) are implemented, with 9_7 being the one with
8394 better compression and thus is the default.
8395
8396 slice_width
8397 slice_height
8398 Sets the slice size for each slice. Larger values result in better
8399 compression. For compatibility with other more limited decoders
8400 use slice_width of 32 and slice_height of 8.
8401
8402 tolerance
8403 Sets the undershoot tolerance of the rate control system in
8404 percent. This is to prevent an expensive search from being run.
8405
8406 qm Sets the quantization matrix preset to use by default or when
8407 wavelet_depth is set to 5
8408
8409 - default Uses the default quantization matrix from the
8410 specifications, extended with values for the fifth level. This
8411 provides a good balance between keeping detail and omitting
8412 artifacts.
8413
8414 - flat Use a completely zeroed out quantization matrix. This
8415 increases PSNR but might reduce perception. Use in bogus
8416 benchmarks.
8417
8418 - color Reduces detail but attempts to preserve color at
8419 extremely low bitrates.
8420
8422 dvdsub
8423 This codec encodes the bitmap subtitle format that is used in DVDs.
8424 Typically they are stored in VOBSUB file pairs (*.idx + *.sub), and
8425 they can also be used in Matroska files.
8426
8427 Options
8428
8429 palette
8430 Specify the global palette used by the bitmaps.
8431
8432 The format for this option is a string containing 16 24-bits
8433 hexadecimal numbers (without 0x prefix) separated by commas, for
8434 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
8435 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
8436 7c127b".
8437
8438 even_rows_fix
8439 When set to 1, enable a work-around that makes the number of pixel
8440 rows even in all subtitles. This fixes a problem with some players
8441 that cut off the bottom row if the number is odd. The work-around
8442 just adds a fully transparent row if needed. The overhead is low,
8443 typically one byte per subtitle on average.
8444
8445 By default, this work-around is disabled.
8446
8448 When you configure your FFmpeg build, all the supported bitstream
8449 filters are enabled by default. You can list all available ones using
8450 the configure option "--list-bsfs".
8451
8452 You can disable all the bitstream filters using the configure option
8453 "--disable-bsfs", and selectively enable any bitstream filter using the
8454 option "--enable-bsf=BSF", or you can disable a particular bitstream
8455 filter using the option "--disable-bsf=BSF".
8456
8457 The option "-bsfs" of the ff* tools will display the list of all the
8458 supported bitstream filters included in your build.
8459
8460 The ff* tools have a -bsf option applied per stream, taking a comma-
8461 separated list of filters, whose parameters follow the filter name
8462 after a '='.
8463
8464 ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
8465
8466 Below is a description of the currently available bitstream filters,
8467 with their parameters, if any.
8468
8469 aac_adtstoasc
8470 Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
8471 bitstream.
8472
8473 This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
8474 header and removes the ADTS header.
8475
8476 This filter is required for example when copying an AAC stream from a
8477 raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
8478 to MOV/MP4 files and related formats such as 3GP or M4A. Please note
8479 that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
8480
8481 av1_metadata
8482 Modify metadata embedded in an AV1 stream.
8483
8484 td Insert or remove temporal delimiter OBUs in all temporal units of
8485 the stream.
8486
8487 insert
8488 Insert a TD at the beginning of every TU which does not already
8489 have one.
8490
8491 remove
8492 Remove the TD from the beginning of every TU which has one.
8493
8494 color_primaries
8495 transfer_characteristics
8496 matrix_coefficients
8497 Set the color description fields in the stream (see AV1 section
8498 6.4.2).
8499
8500 color_range
8501 Set the color range in the stream (see AV1 section 6.4.2; note that
8502 this cannot be set for streams using BT.709 primaries, sRGB
8503 transfer characteristic and identity (RGB) matrix coefficients).
8504
8505 tv Limited range.
8506
8507 pc Full range.
8508
8509 chroma_sample_position
8510 Set the chroma sample location in the stream (see AV1 section
8511 6.4.2). This can only be set for 4:2:0 streams.
8512
8513 vertical
8514 Left position (matching the default in MPEG-2 and H.264).
8515
8516 colocated
8517 Top-left position.
8518
8519 tick_rate
8520 Set the tick rate (time_scale / num_units_in_display_tick) in the
8521 timing info in the sequence header.
8522
8523 num_ticks_per_picture
8524 Set the number of ticks in each picture, to indicate that the
8525 stream has a fixed framerate. Ignored if tick_rate is not also
8526 set.
8527
8528 delete_padding
8529 Deletes Padding OBUs.
8530
8531 chomp
8532 Remove zero padding at the end of a packet.
8533
8534 dca_core
8535 Extract the core from a DCA/DTS stream, dropping extensions such as
8536 DTS-HD.
8537
8538 dump_extra
8539 Add extradata to the beginning of the filtered packets except when said
8540 packets already exactly begin with the extradata that is intended to be
8541 added.
8542
8543 freq
8544 The additional argument specifies which packets should be filtered.
8545 It accepts the values:
8546
8547 k
8548 keyframe
8549 add extradata to all key packets
8550
8551 e
8552 all add extradata to all packets
8553
8554 If not specified it is assumed k.
8555
8556 For example the following ffmpeg command forces a global header (thus
8557 disabling individual packet headers) in the H.264 packets generated by
8558 the "libx264" encoder, but corrects them by adding the header stored in
8559 extradata to the key packets:
8560
8561 ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
8562
8563 eac3_core
8564 Extract the core from a E-AC-3 stream, dropping extra channels.
8565
8566 extract_extradata
8567 Extract the in-band extradata.
8568
8569 Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
8570 headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
8571 band" (i.e. as a part of the bitstream containing the coded frames) or
8572 "out of band" (e.g. on the container level). This latter form is called
8573 "extradata" in FFmpeg terminology.
8574
8575 This bitstream filter detects the in-band headers and makes them
8576 available as extradata.
8577
8578 remove
8579 When this option is enabled, the long-term headers are removed from
8580 the bitstream after extraction.
8581
8582 filter_units
8583 Remove units with types in or not in a given set from the stream.
8584
8585 pass_types
8586 List of unit types or ranges of unit types to pass through while
8587 removing all others. This is specified as a '|'-separated list of
8588 unit type values or ranges of values with '-'.
8589
8590 remove_types
8591 Identical to pass_types, except the units in the given set removed
8592 and all others passed through.
8593
8594 Extradata is unchanged by this transformation, but note that if the
8595 stream contains inline parameter sets then the output may be unusable
8596 if they are removed.
8597
8598 For example, to remove all non-VCL NAL units from an H.264 stream:
8599
8600 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
8601
8602 To remove all AUDs, SEI and filler from an H.265 stream:
8603
8604 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
8605
8606 hapqa_extract
8607 Extract Rgb or Alpha part of an HAPQA file, without recompression, in
8608 order to create an HAPQ or an HAPAlphaOnly file.
8609
8610 texture
8611 Specifies the texture to keep.
8612
8613 color
8614 alpha
8615
8616 Convert HAPQA to HAPQ
8617
8618 ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=color -tag:v HapY -metadata:s:v:0 encoder="HAPQ" hapq_file.mov
8619
8620 Convert HAPQA to HAPAlphaOnly
8621
8622 ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=alpha -tag:v HapA -metadata:s:v:0 encoder="HAPAlpha Only" hapalphaonly_file.mov
8623
8624 h264_metadata
8625 Modify metadata embedded in an H.264 stream.
8626
8627 aud Insert or remove AUD NAL units in all access units of the stream.
8628
8629 insert
8630 remove
8631 sample_aspect_ratio
8632 Set the sample aspect ratio of the stream in the VUI parameters.
8633
8634 overscan_appropriate_flag
8635 Set whether the stream is suitable for display using overscan or
8636 not (see H.264 section E.2.1).
8637
8638 video_format
8639 video_full_range_flag
8640 Set the video format in the stream (see H.264 section E.2.1 and
8641 table E-2).
8642
8643 colour_primaries
8644 transfer_characteristics
8645 matrix_coefficients
8646 Set the colour description in the stream (see H.264 section E.2.1
8647 and tables E-3, E-4 and E-5).
8648
8649 chroma_sample_loc_type
8650 Set the chroma sample location in the stream (see H.264 section
8651 E.2.1 and figure E-1).
8652
8653 tick_rate
8654 Set the tick rate (time_scale / num_units_in_tick) in the VUI
8655 parameters. This is the smallest time unit representable in the
8656 stream, and in many cases represents the field rate of the stream
8657 (double the frame rate).
8658
8659 fixed_frame_rate_flag
8660 Set whether the stream has fixed framerate - typically this
8661 indicates that the framerate is exactly half the tick rate, but the
8662 exact meaning is dependent on interlacing and the picture structure
8663 (see H.264 section E.2.1 and table E-6).
8664
8665 zero_new_constraint_set_flags
8666 Zero constraint_set4_flag and constraint_set5_flag in the SPS.
8667 These bits were reserved in a previous version of the H.264 spec,
8668 and thus some hardware decoders require these to be zero. The
8669 result of zeroing this is still a valid bitstream.
8670
8671 crop_left
8672 crop_right
8673 crop_top
8674 crop_bottom
8675 Set the frame cropping offsets in the SPS. These values will
8676 replace the current ones if the stream is already cropped.
8677
8678 These fields are set in pixels. Note that some sizes may not be
8679 representable if the chroma is subsampled or the stream is
8680 interlaced (see H.264 section 7.4.2.1.1).
8681
8682 sei_user_data
8683 Insert a string as SEI unregistered user data. The argument must
8684 be of the form UUID+string, where the UUID is as hex digits
8685 possibly separated by hyphens, and the string can be anything.
8686
8687 For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
8688 the string ``hello'' associated with the given UUID.
8689
8690 delete_filler
8691 Deletes both filler NAL units and filler SEI messages.
8692
8693 level
8694 Set the level in the SPS. Refer to H.264 section A.3 and tables
8695 A-1 to A-5.
8696
8697 The argument must be the name of a level (for example, 4.2), a
8698 level_idc value (for example, 42), or the special name auto
8699 indicating that the filter should attempt to guess the level from
8700 the input stream properties.
8701
8702 h264_mp4toannexb
8703 Convert an H.264 bitstream from length prefixed mode to start code
8704 prefixed mode (as defined in the Annex B of the ITU-T H.264
8705 specification).
8706
8707 This is required by some streaming formats, typically the MPEG-2
8708 transport stream format (muxer "mpegts").
8709
8710 For example to remux an MP4 file containing an H.264 stream to mpegts
8711 format with ffmpeg, you can use the command:
8712
8713 ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
8714
8715 Please note that this filter is auto-inserted for MPEG-TS (muxer
8716 "mpegts") and raw H.264 (muxer "h264") output formats.
8717
8718 h264_redundant_pps
8719 This applies a specific fixup to some Blu-ray streams which contain
8720 redundant PPSs modifying irrelevant parameters of the stream which
8721 confuse other transformations which require correct extradata.
8722
8723 A new single global PPS is created, and all of the redundant PPSs
8724 within the stream are removed.
8725
8726 hevc_metadata
8727 Modify metadata embedded in an HEVC stream.
8728
8729 aud Insert or remove AUD NAL units in all access units of the stream.
8730
8731 insert
8732 remove
8733 sample_aspect_ratio
8734 Set the sample aspect ratio in the stream in the VUI parameters.
8735
8736 video_format
8737 video_full_range_flag
8738 Set the video format in the stream (see H.265 section E.3.1 and
8739 table E.2).
8740
8741 colour_primaries
8742 transfer_characteristics
8743 matrix_coefficients
8744 Set the colour description in the stream (see H.265 section E.3.1
8745 and tables E.3, E.4 and E.5).
8746
8747 chroma_sample_loc_type
8748 Set the chroma sample location in the stream (see H.265 section
8749 E.3.1 and figure E.1).
8750
8751 tick_rate
8752 Set the tick rate in the VPS and VUI parameters (time_scale /
8753 num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
8754 set a constant framerate in the stream. Note that it is likely to
8755 be overridden by container parameters when the stream is in a
8756 container.
8757
8758 num_ticks_poc_diff_one
8759 Set poc_proportional_to_timing_flag in VPS and VUI and use this
8760 value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
8761 7.4.3.1 and E.3.1). Ignored if tick_rate is not also set.
8762
8763 crop_left
8764 crop_right
8765 crop_top
8766 crop_bottom
8767 Set the conformance window cropping offsets in the SPS. These
8768 values will replace the current ones if the stream is already
8769 cropped.
8770
8771 These fields are set in pixels. Note that some sizes may not be
8772 representable if the chroma is subsampled (H.265 section
8773 7.4.3.2.1).
8774
8775 level
8776 Set the level in the VPS and SPS. See H.265 section A.4 and tables
8777 A.6 and A.7.
8778
8779 The argument must be the name of a level (for example, 5.1), a
8780 general_level_idc value (for example, 153 for level 5.1), or the
8781 special name auto indicating that the filter should attempt to
8782 guess the level from the input stream properties.
8783
8784 hevc_mp4toannexb
8785 Convert an HEVC/H.265 bitstream from length prefixed mode to start code
8786 prefixed mode (as defined in the Annex B of the ITU-T H.265
8787 specification).
8788
8789 This is required by some streaming formats, typically the MPEG-2
8790 transport stream format (muxer "mpegts").
8791
8792 For example to remux an MP4 file containing an HEVC stream to mpegts
8793 format with ffmpeg, you can use the command:
8794
8795 ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
8796
8797 Please note that this filter is auto-inserted for MPEG-TS (muxer
8798 "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
8799
8800 imxdump
8801 Modifies the bitstream to fit in MOV and to be usable by the Final Cut
8802 Pro decoder. This filter only applies to the mpeg2video codec, and is
8803 likely not needed for Final Cut Pro 7 and newer with the appropriate
8804 -tag:v.
8805
8806 For example, to remux 30 MB/sec NTSC IMX to MOV:
8807
8808 ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
8809
8810 mjpeg2jpeg
8811 Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
8812
8813 MJPEG is a video codec wherein each video frame is essentially a JPEG
8814 image. The individual frames can be extracted without loss, e.g. by
8815
8816 ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
8817
8818 Unfortunately, these chunks are incomplete JPEG images, because they
8819 lack the DHT segment required for decoding. Quoting from
8820 <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
8821
8822 Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
8823 commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
8824 fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
8825 table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
8826 use basic Huffman encoding, not arithmetic or progressive. . . . You
8827 can indeed extract the MJPEG frames and decode them with a regular JPEG
8828 decoder, but you have to prepend the DHT segment to them, or else the
8829 decoder won't have any idea how to decompress the data. The exact table
8830 necessary is given in the OpenDML spec."
8831
8832 This bitstream filter patches the header of frames extracted from an
8833 MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
8834 produce fully qualified JPEG images.
8835
8836 ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
8837 exiftran -i -9 frame*.jpg
8838 ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
8839
8840 mjpegadump
8841 Add an MJPEG A header to the bitstream, to enable decoding by
8842 Quicktime.
8843
8844 mov2textsub
8845 Extract a representable text file from MOV subtitles, stripping the
8846 metadata header from each subtitle packet.
8847
8848 See also the text2movsub filter.
8849
8850 mp3decomp
8851 Decompress non-standard compressed MP3 audio headers.
8852
8853 mpeg2_metadata
8854 Modify metadata embedded in an MPEG-2 stream.
8855
8856 display_aspect_ratio
8857 Set the display aspect ratio in the stream.
8858
8859 The following fixed values are supported:
8860
8861 4/3
8862 16/9
8863 221/100
8864
8865 Any other value will result in square pixels being signalled
8866 instead (see H.262 section 6.3.3 and table 6-3).
8867
8868 frame_rate
8869 Set the frame rate in the stream. This is constructed from a table
8870 of known values combined with a small multiplier and divisor - if
8871 the supplied value is not exactly representable, the nearest
8872 representable value will be used instead (see H.262 section 6.3.3
8873 and table 6-4).
8874
8875 video_format
8876 Set the video format in the stream (see H.262 section 6.3.6 and
8877 table 6-6).
8878
8879 colour_primaries
8880 transfer_characteristics
8881 matrix_coefficients
8882 Set the colour description in the stream (see H.262 section 6.3.6
8883 and tables 6-7, 6-8 and 6-9).
8884
8885 mpeg4_unpack_bframes
8886 Unpack DivX-style packed B-frames.
8887
8888 DivX-style packed B-frames are not valid MPEG-4 and were only a
8889 workaround for the broken Video for Windows subsystem. They use more
8890 space, can cause minor AV sync issues, require more CPU power to decode
8891 (unless the player has some decoded picture queue to compensate the
8892 2,0,2,0 frame per packet style) and cause trouble if copied into a
8893 standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
8894 not be able to decode them, since they are not valid MPEG-4.
8895
8896 For example to fix an AVI file containing an MPEG-4 stream with DivX-
8897 style packed B-frames using ffmpeg, you can use the command:
8898
8899 ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
8900
8901 noise
8902 Damages the contents of packets or simply drops them without damaging
8903 the container. Can be used for fuzzing or testing error
8904 resilience/concealment.
8905
8906 Parameters:
8907
8908 amount
8909 Accepts an expression whose evaluation per-packet determines how
8910 often bytes in that packet will be modified. A value below 0 will
8911 result in a variable frequency. Default is 0 which results in no
8912 modification. However, if neither amount nor drop is specified,
8913 amount will be set to -1. See below for accepted variables.
8914
8915 drop
8916 Accepts an expression evaluated per-packet whose value determines
8917 whether that packet is dropped. Evaluation to a positive value
8918 results in the packet being dropped. Evaluation to a negative value
8919 results in a variable chance of it being dropped, roughly inverse
8920 in proportion to the magnitude of the value. Default is 0 which
8921 results in no drops. See below for accepted variables.
8922
8923 dropamount
8924 Accepts a non-negative integer, which assigns a variable chance of
8925 it being dropped, roughly inverse in proportion to the value.
8926 Default is 0 which results in no drops. This option is kept for
8927 backwards compatibility and is equivalent to setting drop to a
8928 negative value with the same magnitude i.e. "dropamount=4" is the
8929 same as "drop=-4". Ignored if drop is also specified.
8930
8931 Both "amount" and "drop" accept expressions containing the following
8932 variables:
8933
8934 n The index of the packet, starting from zero.
8935
8936 tb The timebase for packet timestamps.
8937
8938 pts Packet presentation timestamp.
8939
8940 dts Packet decoding timestamp.
8941
8942 nopts
8943 Constant representing AV_NOPTS_VALUE.
8944
8945 startpts
8946 First non-AV_NOPTS_VALUE PTS seen in the stream.
8947
8948 startdts
8949 First non-AV_NOPTS_VALUE DTS seen in the stream.
8950
8951 duration
8952 d Packet duration, in timebase units.
8953
8954 pos Packet position in input; may be -1 when unknown or not set.
8955
8956 size
8957 Packet size, in bytes.
8958
8959 key Whether packet is marked as a keyframe.
8960
8961 state
8962 A pseudo random integer, primarily derived from the content of
8963 packet payload.
8964
8965 Examples
8966
8967 Apply modification to every byte but don't drop any packets.
8968
8969 ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
8970
8971 Drop every video packet not marked as a keyframe after timestamp 30s
8972 but do not modify any of the remaining packets.
8973
8974 ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
8975
8976 Drop one second of audio every 10 seconds and add some random noise to
8977 the rest.
8978
8979 ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
8980
8981 null
8982 This bitstream filter passes the packets through unchanged.
8983
8984 pcm_rechunk
8985 Repacketize PCM audio to a fixed number of samples per packet or a
8986 fixed packet rate per second. This is similar to the asetnsamples audio
8987 filter but works on audio packets instead of audio frames.
8988
8989 nb_out_samples, n
8990 Set the number of samples per each output audio packet. The number
8991 is intended as the number of samples per each channel. Default
8992 value is 1024.
8993
8994 pad, p
8995 If set to 1, the filter will pad the last audio packet with
8996 silence, so that it will contain the same number of samples (or
8997 roughly the same number of samples, see frame_rate) as the previous
8998 ones. Default value is 1.
8999
9000 frame_rate, r
9001 This option makes the filter output a fixed number of packets per
9002 second instead of a fixed number of samples per packet. If the
9003 audio sample rate is not divisible by the frame rate then the
9004 number of samples will not be constant but will vary slightly so
9005 that each packet will start as close to the frame boundary as
9006 possible. Using this option has precedence over nb_out_samples.
9007
9008 You can generate the well known 1602-1601-1602-1601-1602 pattern of
9009 48kHz audio for NTSC frame rate using the frame_rate option.
9010
9011 ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
9012
9013 prores_metadata
9014 Modify color property metadata embedded in prores stream.
9015
9016 color_primaries
9017 Set the color primaries. Available values are:
9018
9019 auto
9020 Keep the same color primaries property (default).
9021
9022 unknown
9023 bt709
9024 bt470bg
9025 BT601 625
9026
9027 smpte170m
9028 BT601 525
9029
9030 bt2020
9031 smpte431
9032 DCI P3
9033
9034 smpte432
9035 P3 D65
9036
9037 transfer_characteristics
9038 Set the color transfer. Available values are:
9039
9040 auto
9041 Keep the same transfer characteristics property (default).
9042
9043 unknown
9044 bt709
9045 BT 601, BT 709, BT 2020
9046
9047 smpte2084
9048 SMPTE ST 2084
9049
9050 arib-std-b67
9051 ARIB STD-B67
9052
9053 matrix_coefficients
9054 Set the matrix coefficient. Available values are:
9055
9056 auto
9057 Keep the same colorspace property (default).
9058
9059 unknown
9060 bt709
9061 smpte170m
9062 BT 601
9063
9064 bt2020nc
9065
9066 Set Rec709 colorspace for each frame of the file
9067
9068 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
9069
9070 Set Hybrid Log-Gamma parameters for each frame of the file
9071
9072 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
9073
9074 remove_extra
9075 Remove extradata from packets.
9076
9077 It accepts the following parameter:
9078
9079 freq
9080 Set which frame types to remove extradata from.
9081
9082 k Remove extradata from non-keyframes only.
9083
9084 keyframe
9085 Remove extradata from keyframes only.
9086
9087 e, all
9088 Remove extradata from all frames.
9089
9090 setts
9091 Set PTS and DTS in packets.
9092
9093 It accepts the following parameters:
9094
9095 ts
9096 pts
9097 dts Set expressions for PTS, DTS or both.
9098
9099 The expressions are evaluated through the eval API and can contain the
9100 following constants:
9101
9102 N The count of the input packet. Starting from 0.
9103
9104 TS The demux timestamp in input in case of "ts" or "dts" option or
9105 presentation timestamp in case of "pts" option.
9106
9107 POS The original position in the file of the packet, or undefined if
9108 undefined for the current packet
9109
9110 DTS The demux timestamp in input.
9111
9112 PTS The presentation timestamp in input.
9113
9114 STARTDTS
9115 The DTS of the first packet.
9116
9117 STARTPTS
9118 The PTS of the first packet.
9119
9120 PREV_INDTS
9121 The previous input DTS.
9122
9123 PREV_INPTS
9124 The previous input PTS.
9125
9126 PREV_OUTDTS
9127 The previous output DTS.
9128
9129 PREV_OUTPTS
9130 The previous output PTS.
9131
9132 TB The timebase of stream packet belongs.
9133
9134 SR The sample rate of stream packet belongs.
9135
9136 NOPTS
9137 The AV_NOPTS_VALUE constant.
9138
9139 text2movsub
9140 Convert text subtitles to MOV subtitles (as used by the "mov_text"
9141 codec) with metadata headers.
9142
9143 See also the mov2textsub filter.
9144
9145 trace_headers
9146 Log trace output containing all syntax elements in the coded stream
9147 headers (everything above the level of individual coded blocks). This
9148 can be useful for debugging low-level stream issues.
9149
9150 Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
9151 the build only a subset of these may be available.
9152
9153 truehd_core
9154 Extract the core from a TrueHD stream, dropping ATMOS data.
9155
9156 vp9_metadata
9157 Modify metadata embedded in a VP9 stream.
9158
9159 color_space
9160 Set the color space value in the frame header. Note that any frame
9161 set to RGB will be implicitly set to PC range and that RGB is
9162 incompatible with profiles 0 and 2.
9163
9164 unknown
9165 bt601
9166 bt709
9167 smpte170
9168 smpte240
9169 bt2020
9170 rgb
9171 color_range
9172 Set the color range value in the frame header. Note that any value
9173 imposed by the color space will take precedence over this value.
9174
9175 tv
9176 pc
9177
9178 vp9_superframe
9179 Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
9180 fixes merging of split/segmented VP9 streams where the alt-ref frame
9181 was split from its visible counterpart.
9182
9183 vp9_superframe_split
9184 Split VP9 superframes into single frames.
9185
9186 vp9_raw_reorder
9187 Given a VP9 stream with correct timestamps but possibly out of order,
9188 insert additional show-existing-frame packets to correct the ordering.
9189
9191 The libavformat library provides some generic global options, which can
9192 be set on all the muxers and demuxers. In addition each muxer or
9193 demuxer may support so-called private options, which are specific for
9194 that component.
9195
9196 Options may be set by specifying -option value in the FFmpeg tools, or
9197 by setting the value explicitly in the "AVFormatContext" options or
9198 using the libavutil/opt.h API for programmatic use.
9199
9200 The list of supported options follows:
9201
9202 avioflags flags (input/output)
9203 Possible values:
9204
9205 direct
9206 Reduce buffering.
9207
9208 probesize integer (input)
9209 Set probing size in bytes, i.e. the size of the data to analyze to
9210 get stream information. A higher value will enable detecting more
9211 information in case it is dispersed into the stream, but will
9212 increase latency. Must be an integer not lesser than 32. It is
9213 5000000 by default.
9214
9215 max_probe_packets integer (input)
9216 Set the maximum number of buffered packets when probing a codec.
9217 Default is 2500 packets.
9218
9219 packetsize integer (output)
9220 Set packet size.
9221
9222 fflags flags
9223 Set format flags. Some are implemented for a limited number of
9224 formats.
9225
9226 Possible values for input files:
9227
9228 discardcorrupt
9229 Discard corrupted packets.
9230
9231 fastseek
9232 Enable fast, but inaccurate seeks for some formats.
9233
9234 genpts
9235 Generate missing PTS if DTS is present.
9236
9237 igndts
9238 Ignore DTS if PTS is set. Inert when nofillin is set.
9239
9240 ignidx
9241 Ignore index.
9242
9243 nobuffer
9244 Reduce the latency introduced by buffering during initial input
9245 streams analysis.
9246
9247 nofillin
9248 Do not fill in missing values in packet fields that can be
9249 exactly calculated.
9250
9251 noparse
9252 Disable AVParsers, this needs "+nofillin" too.
9253
9254 sortdts
9255 Try to interleave output packets by DTS. At present, available
9256 only for AVIs with an index.
9257
9258 Possible values for output files:
9259
9260 autobsf
9261 Automatically apply bitstream filters as required by the output
9262 format. Enabled by default.
9263
9264 bitexact
9265 Only write platform-, build- and time-independent data. This
9266 ensures that file and data checksums are reproducible and match
9267 between platforms. Its primary use is for regression testing.
9268
9269 flush_packets
9270 Write out packets immediately.
9271
9272 shortest
9273 Stop muxing at the end of the shortest stream. It may be
9274 needed to increase max_interleave_delta to avoid flushing the
9275 longer streams before EOF.
9276
9277 seek2any integer (input)
9278 Allow seeking to non-keyframes on demuxer level when supported if
9279 set to 1. Default is 0.
9280
9281 analyzeduration integer (input)
9282 Specify how many microseconds are analyzed to probe the input. A
9283 higher value will enable detecting more accurate information, but
9284 will increase latency. It defaults to 5,000,000 microseconds = 5
9285 seconds.
9286
9287 cryptokey hexadecimal string (input)
9288 Set decryption key.
9289
9290 indexmem integer (input)
9291 Set max memory used for timestamp index (per stream).
9292
9293 rtbufsize integer (input)
9294 Set max memory used for buffering real-time frames.
9295
9296 fdebug flags (input/output)
9297 Print specific debug info.
9298
9299 Possible values:
9300
9301 ts
9302 max_delay integer (input/output)
9303 Set maximum muxing or demuxing delay in microseconds.
9304
9305 fpsprobesize integer (input)
9306 Set number of frames used to probe fps.
9307
9308 audio_preload integer (output)
9309 Set microseconds by which audio packets should be interleaved
9310 earlier.
9311
9312 chunk_duration integer (output)
9313 Set microseconds for each chunk.
9314
9315 chunk_size integer (output)
9316 Set size in bytes for each chunk.
9317
9318 err_detect, f_err_detect flags (input)
9319 Set error detection flags. "f_err_detect" is deprecated and should
9320 be used only via the ffmpeg tool.
9321
9322 Possible values:
9323
9324 crccheck
9325 Verify embedded CRCs.
9326
9327 bitstream
9328 Detect bitstream specification deviations.
9329
9330 buffer
9331 Detect improper bitstream length.
9332
9333 explode
9334 Abort decoding on minor error detection.
9335
9336 careful
9337 Consider things that violate the spec and have not been seen in
9338 the wild as errors.
9339
9340 compliant
9341 Consider all spec non compliancies as errors.
9342
9343 aggressive
9344 Consider things that a sane encoder should not do as an error.
9345
9346 max_interleave_delta integer (output)
9347 Set maximum buffering duration for interleaving. The duration is
9348 expressed in microseconds, and defaults to 10000000 (10 seconds).
9349
9350 To ensure all the streams are interleaved correctly, libavformat
9351 will wait until it has at least one packet for each stream before
9352 actually writing any packets to the output file. When some streams
9353 are "sparse" (i.e. there are large gaps between successive
9354 packets), this can result in excessive buffering.
9355
9356 This field specifies the maximum difference between the timestamps
9357 of the first and the last packet in the muxing queue, above which
9358 libavformat will output a packet regardless of whether it has
9359 queued a packet for all the streams.
9360
9361 If set to 0, libavformat will continue buffering packets until it
9362 has a packet for each stream, regardless of the maximum timestamp
9363 difference between the buffered packets.
9364
9365 use_wallclock_as_timestamps integer (input)
9366 Use wallclock as timestamps if set to 1. Default is 0.
9367
9368 avoid_negative_ts integer (output)
9369 Possible values:
9370
9371 make_non_negative
9372 Shift timestamps to make them non-negative. Also note that
9373 this affects only leading negative timestamps, and not non-
9374 monotonic negative timestamps.
9375
9376 make_zero
9377 Shift timestamps so that the first timestamp is 0.
9378
9379 auto (default)
9380 Enables shifting when required by the target format.
9381
9382 disabled
9383 Disables shifting of timestamp.
9384
9385 When shifting is enabled, all output timestamps are shifted by the
9386 same amount. Audio, video, and subtitles desynching and relative
9387 timestamp differences are preserved compared to how they would have
9388 been without shifting.
9389
9390 skip_initial_bytes integer (input)
9391 Set number of bytes to skip before reading header and frames if set
9392 to 1. Default is 0.
9393
9394 correct_ts_overflow integer (input)
9395 Correct single timestamp overflows if set to 1. Default is 1.
9396
9397 flush_packets integer (output)
9398 Flush the underlying I/O stream after each packet. Default is -1
9399 (auto), which means that the underlying protocol will decide, 1
9400 enables it, and has the effect of reducing the latency, 0 disables
9401 it and may increase IO throughput in some cases.
9402
9403 output_ts_offset offset (output)
9404 Set the output time offset.
9405
9406 offset must be a time duration specification, see the Time duration
9407 section in the ffmpeg-utils(1) manual.
9408
9409 The offset is added by the muxer to the output timestamps.
9410
9411 Specifying a positive offset means that the corresponding streams
9412 are delayed bt the time duration specified in offset. Default value
9413 is 0 (meaning that no offset is applied).
9414
9415 format_whitelist list (input)
9416 "," separated list of allowed demuxers. By default all are allowed.
9417
9418 dump_separator string (input)
9419 Separator used to separate the fields printed on the command line
9420 about the Stream parameters. For example, to separate the fields
9421 with newlines and indentation:
9422
9423 ffprobe -dump_separator "
9424 " -i ~/videos/matrixbench_mpeg2.mpg
9425
9426 max_streams integer (input)
9427 Specifies the maximum number of streams. This can be used to reject
9428 files that would require too many resources due to a large number
9429 of streams.
9430
9431 skip_estimate_duration_from_pts bool (input)
9432 Skip estimation of input duration when calculated using PTS. At
9433 present, applicable for MPEG-PS and MPEG-TS.
9434
9435 strict, f_strict integer (input/output)
9436 Specify how strictly to follow the standards. "f_strict" is
9437 deprecated and should be used only via the ffmpeg tool.
9438
9439 Possible values:
9440
9441 very
9442 strictly conform to an older more strict version of the spec or
9443 reference software
9444
9445 strict
9446 strictly conform to all the things in the spec no matter what
9447 consequences
9448
9449 normal
9450 unofficial
9451 allow unofficial extensions
9452
9453 experimental
9454 allow non standardized experimental things, experimental
9455 (unfinished/work in progress/not well tested) decoders and
9456 encoders. Note: experimental decoders can pose a security
9457 risk, do not use this for decoding untrusted input.
9458
9459 Format stream specifiers
9460 Format stream specifiers allow selection of one or more streams that
9461 match specific properties.
9462
9463 The exact semantics of stream specifiers is defined by the
9464 "avformat_match_stream_specifier()" function declared in the
9465 libavformat/avformat.h header and documented in the Stream specifiers
9466 section in the ffmpeg(1) manual.
9467
9469 Demuxers are configured elements in FFmpeg that can read the multimedia
9470 streams from a particular type of file.
9471
9472 When you configure your FFmpeg build, all the supported demuxers are
9473 enabled by default. You can list all available ones using the configure
9474 option "--list-demuxers".
9475
9476 You can disable all the demuxers using the configure option
9477 "--disable-demuxers", and selectively enable a single demuxer with the
9478 option "--enable-demuxer=DEMUXER", or disable it with the option
9479 "--disable-demuxer=DEMUXER".
9480
9481 The option "-demuxers" of the ff* tools will display the list of
9482 enabled demuxers. Use "-formats" to view a combined list of enabled
9483 demuxers and muxers.
9484
9485 The description of some of the currently available demuxers follows.
9486
9487 aa
9488 Audible Format 2, 3, and 4 demuxer.
9489
9490 This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
9491
9492 aac
9493 Raw Audio Data Transport Stream AAC demuxer.
9494
9495 This demuxer is used to demux an ADTS input containing a single AAC
9496 stream alongwith any ID3v1/2 or APE tags in it.
9497
9498 apng
9499 Animated Portable Network Graphics demuxer.
9500
9501 This demuxer is used to demux APNG files. All headers, but the PNG
9502 signature, up to (but not including) the first fcTL chunk are
9503 transmitted as extradata. Frames are then split as being all the
9504 chunks between two fcTL ones, or between the last fcTL and IEND chunks.
9505
9506 -ignore_loop bool
9507 Ignore the loop variable in the file if set. Default is enabled.
9508
9509 -max_fps int
9510 Maximum framerate in frames per second. Default of 0 imposes no
9511 limit.
9512
9513 -default_fps int
9514 Default framerate in frames per second when none is specified in
9515 the file (0 meaning as fast as possible). Default is 15.
9516
9517 asf
9518 Advanced Systems Format demuxer.
9519
9520 This demuxer is used to demux ASF files and MMS network streams.
9521
9522 -no_resync_search bool
9523 Do not try to resynchronize by looking for a certain optional start
9524 code.
9525
9526 concat
9527 Virtual concatenation script demuxer.
9528
9529 This demuxer reads a list of files and other directives from a text
9530 file and demuxes them one after the other, as if all their packets had
9531 been muxed together.
9532
9533 The timestamps in the files are adjusted so that the first file starts
9534 at 0 and each next file starts where the previous one finishes. Note
9535 that it is done globally and may cause gaps if all streams do not have
9536 exactly the same length.
9537
9538 All files must have the same streams (same codecs, same time base,
9539 etc.).
9540
9541 The duration of each file is used to adjust the timestamps of the next
9542 file: if the duration is incorrect (because it was computed using the
9543 bit-rate or because the file is truncated, for example), it can cause
9544 artifacts. The "duration" directive can be used to override the
9545 duration stored in each file.
9546
9547 Syntax
9548
9549 The script is a text file in extended-ASCII, with one directive per
9550 line. Empty lines, leading spaces and lines starting with '#' are
9551 ignored. The following directive is recognized:
9552
9553 "file path"
9554 Path to a file to read; special characters and spaces must be
9555 escaped with backslash or single quotes.
9556
9557 All subsequent file-related directives apply to that file.
9558
9559 "ffconcat version 1.0"
9560 Identify the script type and version.
9561
9562 To make FFmpeg recognize the format automatically, this directive
9563 must appear exactly as is (no extra space or byte-order-mark) on
9564 the very first line of the script.
9565
9566 "duration dur"
9567 Duration of the file. This information can be specified from the
9568 file; specifying it here may be more efficient or help if the
9569 information from the file is not available or accurate.
9570
9571 If the duration is set for all files, then it is possible to seek
9572 in the whole concatenated video.
9573
9574 "inpoint timestamp"
9575 In point of the file. When the demuxer opens the file it instantly
9576 seeks to the specified timestamp. Seeking is done so that all
9577 streams can be presented successfully at In point.
9578
9579 This directive works best with intra frame codecs, because for non-
9580 intra frame ones you will usually get extra packets before the
9581 actual In point and the decoded content will most likely contain
9582 frames before In point too.
9583
9584 For each file, packets before the file In point will have
9585 timestamps less than the calculated start timestamp of the file
9586 (negative in case of the first file), and the duration of the files
9587 (if not specified by the "duration" directive) will be reduced
9588 based on their specified In point.
9589
9590 Because of potential packets before the specified In point, packet
9591 timestamps may overlap between two concatenated files.
9592
9593 "outpoint timestamp"
9594 Out point of the file. When the demuxer reaches the specified
9595 decoding timestamp in any of the streams, it handles it as an end
9596 of file condition and skips the current and all the remaining
9597 packets from all streams.
9598
9599 Out point is exclusive, which means that the demuxer will not
9600 output packets with a decoding timestamp greater or equal to Out
9601 point.
9602
9603 This directive works best with intra frame codecs and formats where
9604 all streams are tightly interleaved. For non-intra frame codecs you
9605 will usually get additional packets with presentation timestamp
9606 after Out point therefore the decoded content will most likely
9607 contain frames after Out point too. If your streams are not tightly
9608 interleaved you may not get all the packets from all streams before
9609 Out point and you may only will be able to decode the earliest
9610 stream until Out point.
9611
9612 The duration of the files (if not specified by the "duration"
9613 directive) will be reduced based on their specified Out point.
9614
9615 "file_packet_metadata key=value"
9616 Metadata of the packets of the file. The specified metadata will be
9617 set for each file packet. You can specify this directive multiple
9618 times to add multiple metadata entries. This directive is
9619 deprecated, use "file_packet_meta" instead.
9620
9621 "file_packet_meta key value"
9622 Metadata of the packets of the file. The specified metadata will be
9623 set for each file packet. You can specify this directive multiple
9624 times to add multiple metadata entries.
9625
9626 "option key value"
9627 Option to access, open and probe the file. Can be present multiple
9628 times.
9629
9630 "stream"
9631 Introduce a stream in the virtual file. All subsequent stream-
9632 related directives apply to the last introduced stream. Some
9633 streams properties must be set in order to allow identifying the
9634 matching streams in the subfiles. If no streams are defined in the
9635 script, the streams from the first file are copied.
9636
9637 "exact_stream_id id"
9638 Set the id of the stream. If this directive is given, the string
9639 with the corresponding id in the subfiles will be used. This is
9640 especially useful for MPEG-PS (VOB) files, where the order of the
9641 streams is not reliable.
9642
9643 "stream_meta key value"
9644 Metadata for the stream. Can be present multiple times.
9645
9646 "stream_codec value"
9647 Codec for the stream.
9648
9649 "stream_extradata hex_string"
9650 Extradata for the string, encoded in hexadecimal.
9651
9652 "chapter id start end"
9653 Add a chapter. id is an unique identifier, possibly small and
9654 consecutive.
9655
9656 Options
9657
9658 This demuxer accepts the following option:
9659
9660 safe
9661 If set to 1, reject unsafe file paths and directives. A file path
9662 is considered safe if it does not contain a protocol specification
9663 and is relative and all components only contain characters from the
9664 portable character set (letters, digits, period, underscore and
9665 hyphen) and have no period at the beginning of a component.
9666
9667 If set to 0, any file name is accepted.
9668
9669 The default is 1.
9670
9671 auto_convert
9672 If set to 1, try to perform automatic conversions on packet data to
9673 make the streams concatenable. The default is 1.
9674
9675 Currently, the only conversion is adding the h264_mp4toannexb
9676 bitstream filter to H.264 streams in MP4 format. This is necessary
9677 in particular if there are resolution changes.
9678
9679 segment_time_metadata
9680 If set to 1, every packet will contain the lavf.concat.start_time
9681 and the lavf.concat.duration packet metadata values which are the
9682 start_time and the duration of the respective file segments in the
9683 concatenated output expressed in microseconds. The duration
9684 metadata is only set if it is known based on the concat file. The
9685 default is 0.
9686
9687 Examples
9688
9689 • Use absolute filenames and include some comments:
9690
9691 # my first filename
9692 file /mnt/share/file-1.wav
9693 # my second filename including whitespace
9694 file '/mnt/share/file 2.wav'
9695 # my third filename including whitespace plus single quote
9696 file '/mnt/share/file 3'\''.wav'
9697
9698 • Allow for input format auto-probing, use safe filenames and set the
9699 duration of the first file:
9700
9701 ffconcat version 1.0
9702
9703 file file-1.wav
9704 duration 20.0
9705
9706 file subdir/file-2.wav
9707
9708 dash
9709 Dynamic Adaptive Streaming over HTTP demuxer.
9710
9711 This demuxer presents all AVStreams found in the manifest. By setting
9712 the discard flags on AVStreams the caller can decide which streams to
9713 actually receive. Each stream mirrors the "id" and "bandwidth"
9714 properties from the "<Representation>" as metadata keys named "id" and
9715 "variant_bitrate" respectively.
9716
9717 imf
9718 Interoperable Master Format demuxer.
9719
9720 This demuxer presents audio and video streams found in an IMF
9721 Composition.
9722
9723 flv, live_flv, kux
9724 Adobe Flash Video Format demuxer.
9725
9726 This demuxer is used to demux FLV files and RTMP network streams. In
9727 case of live network streams, if you force format, you may use live_flv
9728 option instead of flv to survive timestamp discontinuities. KUX is a
9729 flv variant used on the Youku platform.
9730
9731 ffmpeg -f flv -i myfile.flv ...
9732 ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
9733
9734 -flv_metadata bool
9735 Allocate the streams according to the onMetaData array content.
9736
9737 -flv_ignore_prevtag bool
9738 Ignore the size of previous tag value.
9739
9740 -flv_full_metadata bool
9741 Output all context of the onMetadata.
9742
9743 gif
9744 Animated GIF demuxer.
9745
9746 It accepts the following options:
9747
9748 min_delay
9749 Set the minimum valid delay between frames in hundredths of
9750 seconds. Range is 0 to 6000. Default value is 2.
9751
9752 max_gif_delay
9753 Set the maximum valid delay between frames in hundredth of seconds.
9754 Range is 0 to 65535. Default value is 65535 (nearly eleven
9755 minutes), the maximum value allowed by the specification.
9756
9757 default_delay
9758 Set the default delay between frames in hundredths of seconds.
9759 Range is 0 to 6000. Default value is 10.
9760
9761 ignore_loop
9762 GIF files can contain information to loop a certain number of times
9763 (or infinitely). If ignore_loop is set to 1, then the loop setting
9764 from the input will be ignored and looping will not occur. If set
9765 to 0, then looping will occur and will cycle the number of times
9766 according to the GIF. Default value is 1.
9767
9768 For example, with the overlay filter, place an infinitely looping GIF
9769 over another video:
9770
9771 ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
9772
9773 Note that in the above example the shortest option for overlay filter
9774 is used to end the output video at the length of the shortest input
9775 file, which in this case is input.mp4 as the GIF in this example loops
9776 infinitely.
9777
9778 hls
9779 HLS demuxer
9780
9781 Apple HTTP Live Streaming demuxer.
9782
9783 This demuxer presents all AVStreams from all variant streams. The id
9784 field is set to the bitrate variant index number. By setting the
9785 discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
9786 caller can decide which variant streams to actually receive. The total
9787 bitrate of the variant that the stream belongs to is available in a
9788 metadata key named "variant_bitrate".
9789
9790 It accepts the following options:
9791
9792 live_start_index
9793 segment index to start live streams at (negative values are from
9794 the end).
9795
9796 allowed_extensions
9797 ',' separated list of file extensions that hls is allowed to
9798 access.
9799
9800 max_reload
9801 Maximum number of times a insufficient list is attempted to be
9802 reloaded. Default value is 1000.
9803
9804 m3u8_hold_counters
9805 The maximum number of times to load m3u8 when it refreshes without
9806 new segments. Default value is 1000.
9807
9808 http_persistent
9809 Use persistent HTTP connections. Applicable only for HTTP streams.
9810 Enabled by default.
9811
9812 http_multiple
9813 Use multiple HTTP connections for downloading HTTP segments.
9814 Enabled by default for HTTP/1.1 servers.
9815
9816 http_seekable
9817 Use HTTP partial requests for downloading HTTP segments. 0 =
9818 disable, 1 = enable, -1 = auto, Default is auto.
9819
9820 seg_format_options
9821 Set options for the demuxer of media segments using a list of
9822 key=value pairs separated by ":".
9823
9824 image2
9825 Image file demuxer.
9826
9827 This demuxer reads from a list of image files specified by a pattern.
9828 The syntax and meaning of the pattern is specified by the option
9829 pattern_type.
9830
9831 The pattern may contain a suffix which is used to automatically
9832 determine the format of the images contained in the files.
9833
9834 The size, the pixel format, and the format of each image must be the
9835 same for all the files in the sequence.
9836
9837 This demuxer accepts the following options:
9838
9839 framerate
9840 Set the frame rate for the video stream. It defaults to 25.
9841
9842 loop
9843 If set to 1, loop over the input. Default value is 0.
9844
9845 pattern_type
9846 Select the pattern type used to interpret the provided filename.
9847
9848 pattern_type accepts one of the following values.
9849
9850 none
9851 Disable pattern matching, therefore the video will only contain
9852 the specified image. You should use this option if you do not
9853 want to create sequences from multiple images and your
9854 filenames may contain special pattern characters.
9855
9856 sequence
9857 Select a sequence pattern type, used to specify a sequence of
9858 files indexed by sequential numbers.
9859
9860 A sequence pattern may contain the string "%d" or "%0Nd", which
9861 specifies the position of the characters representing a
9862 sequential number in each filename matched by the pattern. If
9863 the form "%d0Nd" is used, the string representing the number in
9864 each filename is 0-padded and N is the total number of 0-padded
9865 digits representing the number. The literal character '%' can
9866 be specified in the pattern with the string "%%".
9867
9868 If the sequence pattern contains "%d" or "%0Nd", the first
9869 filename of the file list specified by the pattern must contain
9870 a number inclusively contained between start_number and
9871 start_number+start_number_range-1, and all the following
9872 numbers must be sequential.
9873
9874 For example the pattern "img-%03d.bmp" will match a sequence of
9875 filenames of the form img-001.bmp, img-002.bmp, ...,
9876 img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
9877 sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
9878 ..., i%m%g-10.jpg, etc.
9879
9880 Note that the pattern must not necessarily contain "%d" or
9881 "%0Nd", for example to convert a single image file img.jpeg you
9882 can employ the command:
9883
9884 ffmpeg -i img.jpeg img.png
9885
9886 glob
9887 Select a glob wildcard pattern type.
9888
9889 The pattern is interpreted like a "glob()" pattern. This is
9890 only selectable if libavformat was compiled with globbing
9891 support.
9892
9893 glob_sequence (deprecated, will be removed)
9894 Select a mixed glob wildcard/sequence pattern.
9895
9896 If your version of libavformat was compiled with globbing
9897 support, and the provided pattern contains at least one glob
9898 meta character among "%*?[]{}" that is preceded by an unescaped
9899 "%", the pattern is interpreted like a "glob()" pattern,
9900 otherwise it is interpreted like a sequence pattern.
9901
9902 All glob special characters "%*?[]{}" must be prefixed with
9903 "%". To escape a literal "%" you shall use "%%".
9904
9905 For example the pattern "foo-%*.jpeg" will match all the
9906 filenames prefixed by "foo-" and terminating with ".jpeg", and
9907 "foo-%?%?%?.jpeg" will match all the filenames prefixed with
9908 "foo-", followed by a sequence of three characters, and
9909 terminating with ".jpeg".
9910
9911 This pattern type is deprecated in favor of glob and sequence.
9912
9913 Default value is glob_sequence.
9914
9915 pixel_format
9916 Set the pixel format of the images to read. If not specified the
9917 pixel format is guessed from the first image file in the sequence.
9918
9919 start_number
9920 Set the index of the file matched by the image file pattern to
9921 start to read from. Default value is 0.
9922
9923 start_number_range
9924 Set the index interval range to check when looking for the first
9925 image file in the sequence, starting from start_number. Default
9926 value is 5.
9927
9928 ts_from_file
9929 If set to 1, will set frame timestamp to modification time of image
9930 file. Note that monotonity of timestamps is not provided: images go
9931 in the same order as without this option. Default value is 0. If
9932 set to 2, will set frame timestamp to the modification time of the
9933 image file in nanosecond precision.
9934
9935 video_size
9936 Set the video size of the images to read. If not specified the
9937 video size is guessed from the first image file in the sequence.
9938
9939 export_path_metadata
9940 If set to 1, will add two extra fields to the metadata found in
9941 input, making them also available for other filters (see drawtext
9942 filter for examples). Default value is 0. The extra fields are
9943 described below:
9944
9945 lavf.image2dec.source_path
9946 Corresponds to the full path to the input file being read.
9947
9948 lavf.image2dec.source_basename
9949 Corresponds to the name of the file being read.
9950
9951 Examples
9952
9953 • Use ffmpeg for creating a video from the images in the file
9954 sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
9955 rate of 10 frames per second:
9956
9957 ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
9958
9959 • As above, but start by reading from a file with index 100 in the
9960 sequence:
9961
9962 ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
9963
9964 • Read images matching the "*.png" glob pattern , that is all the
9965 files terminating with the ".png" suffix:
9966
9967 ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
9968
9969 libgme
9970 The Game Music Emu library is a collection of video game music file
9971 emulators.
9972
9973 See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
9974 information.
9975
9976 It accepts the following options:
9977
9978 track_index
9979 Set the index of which track to demux. The demuxer can only export
9980 one track. Track indexes start at 0. Default is to pick the first
9981 track. Number of tracks is exported as tracks metadata entry.
9982
9983 sample_rate
9984 Set the sampling rate of the exported track. Range is 1000 to
9985 999999. Default is 44100.
9986
9987 max_size (bytes)
9988 The demuxer buffers the entire file into memory. Adjust this value
9989 to set the maximum buffer size, which in turn, acts as a ceiling
9990 for the size of files that can be read. Default is 50 MiB.
9991
9992 libmodplug
9993 ModPlug based module demuxer
9994
9995 See <https://github.com/Konstanty/libmodplug>
9996
9997 It will export one 2-channel 16-bit 44.1 kHz audio stream. Optionally,
9998 a "pal8" 16-color video stream can be exported with or without printed
9999 metadata.
10000
10001 It accepts the following options:
10002
10003 noise_reduction
10004 Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
10005 is 0.
10006
10007 reverb_depth
10008 Set amount of reverb. Range 0-100. Default is 0.
10009
10010 reverb_delay
10011 Set delay in ms, clamped to 40-250 ms. Default is 0.
10012
10013 bass_amount
10014 Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
10015 to 100 (loud). Default is 0.
10016
10017 bass_range
10018 Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
10019 Hz. Default is 0.
10020
10021 surround_depth
10022 Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
10023 (heavy). Default is 0.
10024
10025 surround_delay
10026 Set surround delay in ms, clamped to 5-40 ms. Default is 0.
10027
10028 max_size
10029 The demuxer buffers the entire file into memory. Adjust this value
10030 to set the maximum buffer size, which in turn, acts as a ceiling
10031 for the size of files that can be read. Range is 0 to 100 MiB. 0
10032 removes buffer size limit (not recommended). Default is 5 MiB.
10033
10034 video_stream_expr
10035 String which is evaluated using the eval API to assign colors to
10036 the generated video stream. Variables which can be used are "x",
10037 "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
10038
10039 video_stream
10040 Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
10041
10042 video_stream_w
10043 Set video frame width in 'chars' where one char indicates 8 pixels.
10044 Range is 20-512. Default is 30.
10045
10046 video_stream_h
10047 Set video frame height in 'chars' where one char indicates 8
10048 pixels. Range is 20-512. Default is 30.
10049
10050 video_stream_ptxt
10051 Print metadata on video stream. Includes "speed", "tempo", "order",
10052 "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
10053 Default is 1.
10054
10055 libopenmpt
10056 libopenmpt based module demuxer
10057
10058 See <https://lib.openmpt.org/libopenmpt/> for more information.
10059
10060 Some files have multiple subsongs (tracks) this can be set with the
10061 subsong option.
10062
10063 It accepts the following options:
10064
10065 subsong
10066 Set the subsong index. This can be either 'all', 'auto', or the
10067 index of the subsong. Subsong indexes start at 0. The default is
10068 'auto'.
10069
10070 The default value is to let libopenmpt choose.
10071
10072 layout
10073 Set the channel layout. Valid values are 1, 2, and 4 channel
10074 layouts. The default value is STEREO.
10075
10076 sample_rate
10077 Set the sample rate for libopenmpt to output. Range is from 1000
10078 to INT_MAX. The value default is 48000.
10079
10080 mov/mp4/3gp
10081 Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
10082 (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
10083 12).
10084
10085 Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
10086 ismv, isma, f4v
10087
10088 Options
10089
10090 This demuxer accepts the following options:
10091
10092 enable_drefs
10093 Enable loading of external tracks, disabled by default. Enabling
10094 this can theoretically leak information in some use cases.
10095
10096 use_absolute_path
10097 Allows loading of external tracks via absolute paths, disabled by
10098 default. Enabling this poses a security risk. It should only be
10099 enabled if the source is known to be non-malicious.
10100
10101 seek_streams_individually
10102 When seeking, identify the closest point in each stream
10103 individually and demux packets in that stream from identified
10104 point. This can lead to a different sequence of packets compared to
10105 demuxing linearly from the beginning. Default is true.
10106
10107 ignore_editlist
10108 Ignore any edit list atoms. The demuxer, by default, modifies the
10109 stream index to reflect the timeline described by the edit list.
10110 Default is false.
10111
10112 advanced_editlist
10113 Modify the stream index to reflect the timeline described by the
10114 edit list. "ignore_editlist" must be set to false for this option
10115 to be effective. If both "ignore_editlist" and this option are set
10116 to false, then only the start of the stream index is modified to
10117 reflect initial dwell time or starting timestamp described by the
10118 edit list. Default is true.
10119
10120 ignore_chapters
10121 Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
10122 Note that chapters are only parsed when input is seekable. Default
10123 is false.
10124
10125 use_mfra_for
10126 For seekable fragmented input, set fragment's starting timestamp
10127 from media fragment random access box, if present.
10128
10129 Following options are available:
10130
10131 auto
10132 Auto-detect whether to set mfra timestamps as PTS or DTS
10133 (default)
10134
10135 dts Set mfra timestamps as DTS
10136
10137 pts Set mfra timestamps as PTS
10138
10139 0 Don't use mfra box to set timestamps
10140
10141 use_tfdt
10142 For fragmented input, set fragment's starting timestamp to
10143 "baseMediaDecodeTime" from the "tfdt" box. Default is enabled,
10144 which will prefer to use the "tfdt" box to set DTS. Disable to use
10145 the "earliest_presentation_time" from the "sidx" box. In either
10146 case, the timestamp from the "mfra" box will be used if it's
10147 available and "use_mfra_for" is set to pts or dts.
10148
10149 export_all
10150 Export unrecognized boxes within the udta box as metadata entries.
10151 The first four characters of the box type are set as the key.
10152 Default is false.
10153
10154 export_xmp
10155 Export entire contents of XMP_ box and uuid box as a string with
10156 key "xmp". Note that if "export_all" is set and this option isn't,
10157 the contents of XMP_ box are still exported but with key "XMP_".
10158 Default is false.
10159
10160 activation_bytes
10161 4-byte key required to decrypt Audible AAX and AAX+ files. See
10162 Audible AAX subsection below.
10163
10164 audible_fixed_key
10165 Fixed key used for handling Audible AAX/AAX+ files. It has been
10166 pre-set so should not be necessary to specify.
10167
10168 decryption_key
10169 16-byte key, in hex, to decrypt files encrypted using ISO Common
10170 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
10171
10172 max_stts_delta
10173 Very high sample deltas written in a trak's stts box may
10174 occasionally be intended but usually they are written in error or
10175 used to store a negative value for dts correction when treated as
10176 signed 32-bit integers. This option lets the user set an upper
10177 limit, beyond which the delta is clamped to 1. Values greater than
10178 the limit if negative when cast to int32 are used to adjust onward
10179 dts.
10180
10181 Unit is the track time scale. Range is 0 to UINT_MAX. Default is
10182 "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
10183 for 48 kHz audio streams while accommodating 99.9% of "uint32"
10184 range.
10185
10186 Audible AAX
10187
10188 Audible AAX files are encrypted M4B files, and they can be decrypted by
10189 specifying a 4 byte activation secret.
10190
10191 ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
10192
10193 mpegts
10194 MPEG-2 transport stream demuxer.
10195
10196 This demuxer accepts the following options:
10197
10198 resync_size
10199 Set size limit for looking up a new synchronization. Default value
10200 is 65536.
10201
10202 skip_unknown_pmt
10203 Skip PMTs for programs not defined in the PAT. Default value is 0.
10204
10205 fix_teletext_pts
10206 Override teletext packet PTS and DTS values with the timestamps
10207 calculated from the PCR of the first program which the teletext
10208 stream is part of and is not discarded. Default value is 1, set
10209 this option to 0 if you want your teletext packet PTS and DTS
10210 values untouched.
10211
10212 ts_packetsize
10213 Output option carrying the raw packet size in bytes. Show the
10214 detected raw packet size, cannot be set by the user.
10215
10216 scan_all_pmts
10217 Scan and combine all PMTs. The value is an integer with value from
10218 -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
10219 disabled). Default value is -1.
10220
10221 merge_pmt_versions
10222 Re-use existing streams when a PMT's version is updated and
10223 elementary streams move to different PIDs. Default value is 0.
10224
10225 mpjpeg
10226 MJPEG encapsulated in multi-part MIME demuxer.
10227
10228 This demuxer allows reading of MJPEG, where each frame is represented
10229 as a part of multipart/x-mixed-replace stream.
10230
10231 strict_mime_boundary
10232 Default implementation applies a relaxed standard to multi-part
10233 MIME boundary detection, to prevent regression with numerous
10234 existing endpoints not generating a proper MIME MJPEG stream.
10235 Turning this option on by setting it to 1 will result in a stricter
10236 check of the boundary value.
10237
10238 rawvideo
10239 Raw video demuxer.
10240
10241 This demuxer allows one to read raw video data. Since there is no
10242 header specifying the assumed video parameters, the user must specify
10243 them in order to be able to decode the data correctly.
10244
10245 This demuxer accepts the following options:
10246
10247 framerate
10248 Set input video frame rate. Default value is 25.
10249
10250 pixel_format
10251 Set the input video pixel format. Default value is "yuv420p".
10252
10253 video_size
10254 Set the input video size. This value must be specified explicitly.
10255
10256 For example to read a rawvideo file input.raw with ffplay, assuming a
10257 pixel format of "rgb24", a video size of "320x240", and a frame rate of
10258 10 images per second, use the command:
10259
10260 ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
10261
10262 sbg
10263 SBaGen script demuxer.
10264
10265 This demuxer reads the script language used by SBaGen
10266 <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
10267 script looks like that:
10268
10269 -SE
10270 a: 300-2.5/3 440+4.5/0
10271 b: 300-2.5/0 440+4.5/3
10272 off: -
10273 NOW == a
10274 +0:07:00 == b
10275 +0:14:00 == a
10276 +0:21:00 == b
10277 +0:30:00 off
10278
10279 A SBG script can mix absolute and relative timestamps. If the script
10280 uses either only absolute timestamps (including the script start time)
10281 or only relative ones, then its layout is fixed, and the conversion is
10282 straightforward. On the other hand, if the script mixes both kind of
10283 timestamps, then the NOW reference for relative timestamps will be
10284 taken from the current time of day at the time the script is read, and
10285 the script layout will be frozen according to that reference. That
10286 means that if the script is directly played, the actual times will
10287 match the absolute timestamps up to the sound controller's clock
10288 accuracy, but if the user somehow pauses the playback or seeks, all
10289 times will be shifted accordingly.
10290
10291 tedcaptions
10292 JSON captions used for <http://www.ted.com/>.
10293
10294 TED does not provide links to the captions, but they can be guessed
10295 from the page. The file tools/bookmarklets.html from the FFmpeg source
10296 tree contains a bookmarklet to expose them.
10297
10298 This demuxer accepts the following option:
10299
10300 start_time
10301 Set the start time of the TED talk, in milliseconds. The default is
10302 15000 (15s). It is used to sync the captions with the downloadable
10303 videos, because they include a 15s intro.
10304
10305 Example: convert the captions to a format most players understand:
10306
10307 ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
10308
10309 vapoursynth
10310 Vapoursynth wrapper.
10311
10312 Due to security concerns, Vapoursynth scripts will not be autodetected
10313 so the input format has to be forced. For ff* CLI tools, add "-f
10314 vapoursynth" before the input "-i yourscript.vpy".
10315
10316 This demuxer accepts the following option:
10317
10318 max_script_size
10319 The demuxer buffers the entire script into memory. Adjust this
10320 value to set the maximum buffer size, which in turn, acts as a
10321 ceiling for the size of scripts that can be read. Default is 1
10322 MiB.
10323
10325 Muxers are configured elements in FFmpeg which allow writing multimedia
10326 streams to a particular type of file.
10327
10328 When you configure your FFmpeg build, all the supported muxers are
10329 enabled by default. You can list all available muxers using the
10330 configure option "--list-muxers".
10331
10332 You can disable all the muxers with the configure option
10333 "--disable-muxers" and selectively enable / disable single muxers with
10334 the options "--enable-muxer=MUXER" / "--disable-muxer=MUXER".
10335
10336 The option "-muxers" of the ff* tools will display the list of enabled
10337 muxers. Use "-formats" to view a combined list of enabled demuxers and
10338 muxers.
10339
10340 A description of some of the currently available muxers follows.
10341
10342 a64
10343 A64 muxer for Commodore 64 video. Accepts a single "a64_multi" or
10344 "a64_multi5" codec video stream.
10345
10346 adts
10347 Audio Data Transport Stream muxer. It accepts a single AAC stream.
10348
10349 Options
10350
10351 It accepts the following options:
10352
10353 write_id3v2 bool
10354 Enable to write ID3v2.4 tags at the start of the stream. Default is
10355 disabled.
10356
10357 write_apetag bool
10358 Enable to write APE tags at the end of the stream. Default is
10359 disabled.
10360
10361 write_mpeg2 bool
10362 Enable to set MPEG version bit in the ADTS frame header to 1 which
10363 indicates MPEG-2. Default is 0, which indicates MPEG-4.
10364
10365 aiff
10366 Audio Interchange File Format muxer.
10367
10368 Options
10369
10370 It accepts the following options:
10371
10372 write_id3v2
10373 Enable ID3v2 tags writing when set to 1. Default is 0 (disabled).
10374
10375 id3v2_version
10376 Select ID3v2 version to write. Currently only version 3 and 4 (aka.
10377 ID3v2.3 and ID3v2.4) are supported. The default is version 4.
10378
10379 alp
10380 Muxer for audio of High Voltage Software's Lego Racers game. It accepts
10381 a single ADPCM_IMA_ALP stream with no more than 2 channels nor a sample
10382 rate greater than 44100 Hz.
10383
10384 Extensions: tun, pcm
10385
10386 Options
10387
10388 It accepts the following options:
10389
10390 type type
10391 Set file type.
10392
10393 tun Set file type as music. Must have a sample rate of 22050 Hz.
10394
10395 pcm Set file type as sfx.
10396
10397 auto
10398 Set file type as per output file extension. ".pcm" results in
10399 type "pcm" else type "tun" is set. (default)
10400
10401 asf
10402 Advanced Systems Format muxer.
10403
10404 Note that Windows Media Audio (wma) and Windows Media Video (wmv) use
10405 this muxer too.
10406
10407 Options
10408
10409 It accepts the following options:
10410
10411 packet_size
10412 Set the muxer packet size. By tuning this setting you may reduce
10413 data fragmentation or muxer overhead depending on your source.
10414 Default value is 3200, minimum is 100, maximum is 64k.
10415
10416 avi
10417 Audio Video Interleaved muxer.
10418
10419 Options
10420
10421 It accepts the following options:
10422
10423 reserve_index_space
10424 Reserve the specified amount of bytes for the OpenDML master index
10425 of each stream within the file header. By default additional master
10426 indexes are embedded within the data packets if there is no space
10427 left in the first master index and are linked together as a chain
10428 of indexes. This index structure can cause problems for some use
10429 cases, e.g. third-party software strictly relying on the OpenDML
10430 index specification or when file seeking is slow. Reserving enough
10431 index space in the file header avoids these problems.
10432
10433 The required index space depends on the output file size and should
10434 be about 16 bytes per gigabyte. When this option is omitted or set
10435 to zero the necessary index space is guessed.
10436
10437 write_channel_mask
10438 Write the channel layout mask into the audio stream header.
10439
10440 This option is enabled by default. Disabling the channel mask can
10441 be useful in specific scenarios, e.g. when merging multiple audio
10442 streams into one for compatibility with software that only supports
10443 a single audio stream in AVI (see the "amerge" section in the
10444 ffmpeg-filters manual).
10445
10446 flipped_raw_rgb
10447 If set to true, store positive height for raw RGB bitmaps, which
10448 indicates bitmap is stored bottom-up. Note that this option does
10449 not flip the bitmap which has to be done manually beforehand, e.g.
10450 by using the vflip filter. Default is false and indicates bitmap
10451 is stored top down.
10452
10453 chromaprint
10454 Chromaprint fingerprinter.
10455
10456 This muxer feeds audio data to the Chromaprint library, which generates
10457 a fingerprint for the provided audio data. See
10458 <https://acoustid.org/chromaprint>
10459
10460 It takes a single signed native-endian 16-bit raw audio stream of at
10461 most 2 channels.
10462
10463 Options
10464
10465 silence_threshold
10466 Threshold for detecting silence. Range is from -1 to 32767, where
10467 -1 disables silence detection. Silence detection can only be used
10468 with version 3 of the algorithm. Silence detection must be
10469 disabled for use with the AcoustID service. Default is -1.
10470
10471 algorithm
10472 Version of algorithm to fingerprint with. Range is 0 to 4. Version
10473 3 enables silence detection. Default is 1.
10474
10475 fp_format
10476 Format to output the fingerprint as. Accepts the following options:
10477
10478 raw Binary raw fingerprint
10479
10480 compressed
10481 Binary compressed fingerprint
10482
10483 base64
10484 Base64 compressed fingerprint (default)
10485
10486 crc
10487 CRC (Cyclic Redundancy Check) testing format.
10488
10489 This muxer computes and prints the Adler-32 CRC of all the input audio
10490 and video frames. By default audio frames are converted to signed
10491 16-bit raw audio and video frames to raw video before computing the
10492 CRC.
10493
10494 The output of the muxer consists of a single line of the form:
10495 CRC=0xCRC, where CRC is a hexadecimal number 0-padded to 8 digits
10496 containing the CRC for all the decoded input frames.
10497
10498 See also the framecrc muxer.
10499
10500 Examples
10501
10502 For example to compute the CRC of the input, and store it in the file
10503 out.crc:
10504
10505 ffmpeg -i INPUT -f crc out.crc
10506
10507 You can print the CRC to stdout with the command:
10508
10509 ffmpeg -i INPUT -f crc -
10510
10511 You can select the output format of each frame with ffmpeg by
10512 specifying the audio and video codec and format. For example to compute
10513 the CRC of the input audio converted to PCM unsigned 8-bit and the
10514 input video converted to MPEG-2 video, use the command:
10515
10516 ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
10517
10518 dash
10519 Dynamic Adaptive Streaming over HTTP (DASH) muxer that creates segments
10520 and manifest files according to the MPEG-DASH standard ISO/IEC
10521 23009-1:2014.
10522
10523 For more information see:
10524
10525 • ISO DASH Specification:
10526 <http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
10527
10528 • WebM DASH Specification:
10529 <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
10530
10531 It creates a MPD manifest file and segment files for each stream.
10532
10533 The segment filename might contain pre-defined identifiers used with
10534 SegmentTemplate as defined in section 5.3.9.4.4 of the standard.
10535 Available identifiers are "$RepresentationID$", "$Number$",
10536 "$Bandwidth$" and "$Time$". In addition to the standard identifiers,
10537 an ffmpeg-specific "$ext$" identifier is also supported. When
10538 specified ffmpeg will replace $ext$ in the file name with muxing
10539 format's extensions such as mp4, webm etc.,
10540
10541 ffmpeg -re -i <input> -map 0 -map 0 -c:a libfdk_aac -c:v libx264 \
10542 -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline \
10543 -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
10544 -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 \
10545 -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \
10546 -f dash /path/to/out.mpd
10547
10548 seg_duration duration
10549 Set the segment length in seconds (fractional value can be set).
10550 The value is treated as average segment duration when use_template
10551 is enabled and use_timeline is disabled and as minimum segment
10552 duration for all the other use cases.
10553
10554 frag_duration duration
10555 Set the length in seconds of fragments within segments (fractional
10556 value can be set).
10557
10558 frag_type type
10559 Set the type of interval for fragmentation.
10560
10561 window_size size
10562 Set the maximum number of segments kept in the manifest.
10563
10564 extra_window_size size
10565 Set the maximum number of segments kept outside of the manifest
10566 before removing from disk.
10567
10568 remove_at_exit remove
10569 Enable (1) or disable (0) removal of all segments when finished.
10570
10571 use_template template
10572 Enable (1) or disable (0) use of SegmentTemplate instead of
10573 SegmentList.
10574
10575 use_timeline timeline
10576 Enable (1) or disable (0) use of SegmentTimeline in
10577 SegmentTemplate.
10578
10579 single_file single_file
10580 Enable (1) or disable (0) storing all segments in one file,
10581 accessed using byte ranges.
10582
10583 single_file_name file_name
10584 DASH-templated name to be used for baseURL. Implies single_file set
10585 to "1". In the template, "$ext$" is replaced with the file name
10586 extension specific for the segment format.
10587
10588 init_seg_name init_name
10589 DASH-templated name to used for the initialization segment. Default
10590 is "init-stream$RepresentationID$.$ext$". "$ext$" is replaced with
10591 the file name extension specific for the segment format.
10592
10593 media_seg_name segment_name
10594 DASH-templated name to used for the media segments. Default is
10595 "chunk-stream$RepresentationID$-$Number%05d$.$ext$". "$ext$" is
10596 replaced with the file name extension specific for the segment
10597 format.
10598
10599 utc_timing_url utc_url
10600 URL of the page that will return the UTC timestamp in ISO format.
10601 Example: "https://time.akamai.com/?iso"
10602
10603 method method
10604 Use the given HTTP method to create output files. Generally set to
10605 PUT or POST.
10606
10607 http_user_agent user_agent
10608 Override User-Agent field in HTTP header. Applicable only for HTTP
10609 output.
10610
10611 http_persistent http_persistent
10612 Use persistent HTTP connections. Applicable only for HTTP output.
10613
10614 hls_playlist hls_playlist
10615 Generate HLS playlist files as well. The master playlist is
10616 generated with the filename hls_master_name. One media playlist
10617 file is generated for each stream with filenames media_0.m3u8,
10618 media_1.m3u8, etc.
10619
10620 hls_master_name file_name
10621 HLS master playlist name. Default is "master.m3u8".
10622
10623 streaming streaming
10624 Enable (1) or disable (0) chunk streaming mode of output. In chunk
10625 streaming mode, each frame will be a moof fragment which forms a
10626 chunk.
10627
10628 adaptation_sets adaptation_sets
10629 Assign streams to AdaptationSets. Syntax is "id=x,streams=a,b,c
10630 id=y,streams=d,e" with x and y being the IDs of the adaptation sets
10631 and a,b,c,d and e are the indices of the mapped streams.
10632
10633 To map all video (or audio) streams to an AdaptationSet, "v" (or
10634 "a") can be used as stream identifier instead of IDs.
10635
10636 When no assignment is defined, this defaults to an AdaptationSet
10637 for each stream.
10638
10639 Optional syntax is
10640 "id=x,seg_duration=x,frag_duration=x,frag_type=type,descriptor=descriptor_string,streams=a,b,c
10641 id=y,seg_duration=y,frag_type=type,streams=d,e" and so on,
10642 descriptor is useful to the scheme defined by ISO/IEC
10643 23009-1:2014/Amd.2:2015. For example, -adaptation_sets
10644 "id=0,descriptor=<SupplementalProperty
10645 schemeIdUri=\"urn:mpeg:dash:srd:2014\"
10646 value=\"0,0,0,1,1,2,2\"/>,streams=v". Please note that descriptor
10647 string should be a self-closing xml tag. seg_duration,
10648 frag_duration and frag_type override the global option values for
10649 each adaptation set. For example, -adaptation_sets
10650 "id=0,seg_duration=2,frag_duration=1,frag_type=duration,streams=v
10651 id=1,seg_duration=2,frag_type=none,streams=a" type_id marks an
10652 adaptation set as containing streams meant to be used for Trick
10653 Mode for the referenced adaptation set. For example,
10654 -adaptation_sets "id=0,seg_duration=2,frag_type=none,streams=0
10655 id=1,seg_duration=10,frag_type=none,trick_id=0,streams=1"
10656
10657 timeout timeout
10658 Set timeout for socket I/O operations. Applicable only for HTTP
10659 output.
10660
10661 index_correction index_correction
10662 Enable (1) or Disable (0) segment index correction logic.
10663 Applicable only when use_template is enabled and use_timeline is
10664 disabled.
10665
10666 When enabled, the logic monitors the flow of segment indexes. If a
10667 streams's segment index value is not at the expected real time
10668 position, then the logic corrects that index value.
10669
10670 Typically this logic is needed in live streaming use cases. The
10671 network bandwidth fluctuations are common during long run
10672 streaming. Each fluctuation can cause the segment indexes fall
10673 behind the expected real time position.
10674
10675 format_options options_list
10676 Set container format (mp4/webm) options using a ":" separated list
10677 of key=value parameters. Values containing ":" special characters
10678 must be escaped.
10679
10680 global_sidx global_sidx
10681 Write global SIDX atom. Applicable only for single file, mp4
10682 output, non-streaming mode.
10683
10684 dash_segment_type dash_segment_type
10685 Possible values:
10686
10687 auto
10688 If this flag is set, the dash segment files format will be
10689 selected based on the stream codec. This is the default mode.
10690
10691 mp4 If this flag is set, the dash segment files will be in in
10692 ISOBMFF format.
10693
10694 webm
10695 If this flag is set, the dash segment files will be in in WebM
10696 format.
10697
10698 ignore_io_errors ignore_io_errors
10699 Ignore IO errors during open and write. Useful for long-duration
10700 runs with network output.
10701
10702 lhls lhls
10703 Enable Low-latency HLS(LHLS). Adds #EXT-X-PREFETCH tag with current
10704 segment's URI. hls.js player folks are trying to standardize an
10705 open LHLS spec. The draft spec is available in
10706 https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md
10707 This option tries to comply with the above open spec. It enables
10708 streaming and hls_playlist options automatically. This is an
10709 experimental feature.
10710
10711 Note: This is not Apple's version LHLS. See
10712 <https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis>
10713
10714 ldash ldash
10715 Enable Low-latency Dash by constraining the presence and values of
10716 some elements.
10717
10718 master_m3u8_publish_rate master_m3u8_publish_rate
10719 Publish master playlist repeatedly every after specified number of
10720 segment intervals.
10721
10722 write_prft write_prft
10723 Write Producer Reference Time elements on supported streams. This
10724 also enables writing prft boxes in the underlying muxer. Applicable
10725 only when the utc_url option is enabled. It's set to auto by
10726 default, in which case the muxer will attempt to enable it only in
10727 modes that require it.
10728
10729 mpd_profile mpd_profile
10730 Set one or more manifest profiles.
10731
10732 http_opts http_opts
10733 A :-separated list of key=value options to pass to the underlying
10734 HTTP protocol. Applicable only for HTTP output.
10735
10736 target_latency target_latency
10737 Set an intended target latency in seconds (fractional value can be
10738 set) for serving. Applicable only when streaming and write_prft
10739 options are enabled. This is an informative fields clients can use
10740 to measure the latency of the service.
10741
10742 min_playback_rate min_playback_rate
10743 Set the minimum playback rate indicated as appropriate for the
10744 purposes of automatically adjusting playback latency and buffer
10745 occupancy during normal playback by clients.
10746
10747 max_playback_rate max_playback_rate
10748 Set the maximum playback rate indicated as appropriate for the
10749 purposes of automatically adjusting playback latency and buffer
10750 occupancy during normal playback by clients.
10751
10752 update_period update_period
10753 Set the mpd update period ,for dynamic content.
10754 The unit is second.
10755
10756 fifo
10757 The fifo pseudo-muxer allows the separation of encoding and muxing by
10758 using first-in-first-out queue and running the actual muxer in a
10759 separate thread. This is especially useful in combination with the tee
10760 muxer and can be used to send data to several destinations with
10761 different reliability/writing speed/latency.
10762
10763 API users should be aware that callback functions (interrupt_callback,
10764 io_open and io_close) used within its AVFormatContext must be thread-
10765 safe.
10766
10767 The behavior of the fifo muxer if the queue fills up or if the output
10768 fails is selectable,
10769
10770 • output can be transparently restarted with configurable delay
10771 between retries based on real time or time of the processed stream.
10772
10773 • encoding can be blocked during temporary failure, or continue
10774 transparently dropping packets in case fifo queue fills up.
10775
10776 fifo_format
10777 Specify the format name. Useful if it cannot be guessed from the
10778 output name suffix.
10779
10780 queue_size
10781 Specify size of the queue (number of packets). Default value is 60.
10782
10783 format_opts
10784 Specify format options for the underlying muxer. Muxer options can
10785 be specified as a list of key=value pairs separated by ':'.
10786
10787 drop_pkts_on_overflow bool
10788 If set to 1 (true), in case the fifo queue fills up, packets will
10789 be dropped rather than blocking the encoder. This makes it possible
10790 to continue streaming without delaying the input, at the cost of
10791 omitting part of the stream. By default this option is set to 0
10792 (false), so in such cases the encoder will be blocked until the
10793 muxer processes some of the packets and none of them is lost.
10794
10795 attempt_recovery bool
10796 If failure occurs, attempt to recover the output. This is
10797 especially useful when used with network output, since it makes it
10798 possible to restart streaming transparently. By default this
10799 option is set to 0 (false).
10800
10801 max_recovery_attempts
10802 Sets maximum number of successive unsuccessful recovery attempts
10803 after which the output fails permanently. By default this option is
10804 set to 0 (unlimited).
10805
10806 recovery_wait_time duration
10807 Waiting time before the next recovery attempt after previous
10808 unsuccessful recovery attempt. Default value is 5 seconds.
10809
10810 recovery_wait_streamtime bool
10811 If set to 0 (false), the real time is used when waiting for the
10812 recovery attempt (i.e. the recovery will be attempted after at
10813 least recovery_wait_time seconds). If set to 1 (true), the time of
10814 the processed stream is taken into account instead (i.e. the
10815 recovery will be attempted after at least recovery_wait_time
10816 seconds of the stream is omitted). By default, this option is set
10817 to 0 (false).
10818
10819 recover_any_error bool
10820 If set to 1 (true), recovery will be attempted regardless of type
10821 of the error causing the failure. By default this option is set to
10822 0 (false) and in case of certain (usually permanent) errors the
10823 recovery is not attempted even when attempt_recovery is set to 1.
10824
10825 restart_with_keyframe bool
10826 Specify whether to wait for the keyframe after recovering from
10827 queue overflow or failure. This option is set to 0 (false) by
10828 default.
10829
10830 timeshift duration
10831 Buffer the specified amount of packets and delay writing the
10832 output. Note that queue_size must be big enough to store the
10833 packets for timeshift. At the end of the input the fifo buffer is
10834 flushed at realtime speed.
10835
10836 Examples
10837
10838 • Stream something to rtmp server, continue processing the stream at
10839 real-time rate even in case of temporary failure (network outage)
10840 and attempt to recover streaming every second indefinitely.
10841
10842 ffmpeg -re -i ... -c:v libx264 -c:a aac -f fifo -fifo_format flv -map 0:v -map 0:a
10843 -drop_pkts_on_overflow 1 -attempt_recovery 1 -recovery_wait_time 1 rtmp://example.com/live/stream_name
10844
10845 flv
10846 Adobe Flash Video Format muxer.
10847
10848 This muxer accepts the following options:
10849
10850 flvflags flags
10851 Possible values:
10852
10853 aac_seq_header_detect
10854 Place AAC sequence header based on audio stream data.
10855
10856 no_sequence_end
10857 Disable sequence end tag.
10858
10859 no_metadata
10860 Disable metadata tag.
10861
10862 no_duration_filesize
10863 Disable duration and filesize in metadata when they are equal
10864 to zero at the end of stream. (Be used to non-seekable living
10865 stream).
10866
10867 add_keyframe_index
10868 Used to facilitate seeking; particularly for HTTP pseudo
10869 streaming.
10870
10871 framecrc
10872 Per-packet CRC (Cyclic Redundancy Check) testing format.
10873
10874 This muxer computes and prints the Adler-32 CRC for each audio and
10875 video packet. By default audio frames are converted to signed 16-bit
10876 raw audio and video frames to raw video before computing the CRC.
10877
10878 The output of the muxer consists of a line for each audio and video
10879 packet of the form:
10880
10881 <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, 0x<CRC>
10882
10883 CRC is a hexadecimal number 0-padded to 8 digits containing the CRC of
10884 the packet.
10885
10886 Examples
10887
10888 For example to compute the CRC of the audio and video frames in INPUT,
10889 converted to raw audio and video packets, and store it in the file
10890 out.crc:
10891
10892 ffmpeg -i INPUT -f framecrc out.crc
10893
10894 To print the information to stdout, use the command:
10895
10896 ffmpeg -i INPUT -f framecrc -
10897
10898 With ffmpeg, you can select the output format to which the audio and
10899 video frames are encoded before computing the CRC for each packet by
10900 specifying the audio and video codec. For example, to compute the CRC
10901 of each decoded input audio frame converted to PCM unsigned 8-bit and
10902 of each decoded input video frame converted to MPEG-2 video, use the
10903 command:
10904
10905 ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
10906
10907 See also the crc muxer.
10908
10909 framehash
10910 Per-packet hash testing format.
10911
10912 This muxer computes and prints a cryptographic hash for each audio and
10913 video packet. This can be used for packet-by-packet equality checks
10914 without having to individually do a binary comparison on each.
10915
10916 By default audio frames are converted to signed 16-bit raw audio and
10917 video frames to raw video before computing the hash, but the output of
10918 explicit conversions to other codecs can also be used. It uses the
10919 SHA-256 cryptographic hash function by default, but supports several
10920 other algorithms.
10921
10922 The output of the muxer consists of a line for each audio and video
10923 packet of the form:
10924
10925 <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, <hash>
10926
10927 hash is a hexadecimal number representing the computed hash for the
10928 packet.
10929
10930 hash algorithm
10931 Use the cryptographic hash function specified by the string
10932 algorithm. Supported values include "MD5", "murmur3", "RIPEMD128",
10933 "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
10934 (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
10935 and "adler32".
10936
10937 Examples
10938
10939 To compute the SHA-256 hash of the audio and video frames in INPUT,
10940 converted to raw audio and video packets, and store it in the file
10941 out.sha256:
10942
10943 ffmpeg -i INPUT -f framehash out.sha256
10944
10945 To print the information to stdout, using the MD5 hash function, use
10946 the command:
10947
10948 ffmpeg -i INPUT -f framehash -hash md5 -
10949
10950 See also the hash muxer.
10951
10952 framemd5
10953 Per-packet MD5 testing format.
10954
10955 This is a variant of the framehash muxer. Unlike that muxer, it
10956 defaults to using the MD5 hash function.
10957
10958 Examples
10959
10960 To compute the MD5 hash of the audio and video frames in INPUT,
10961 converted to raw audio and video packets, and store it in the file
10962 out.md5:
10963
10964 ffmpeg -i INPUT -f framemd5 out.md5
10965
10966 To print the information to stdout, use the command:
10967
10968 ffmpeg -i INPUT -f framemd5 -
10969
10970 See also the framehash and md5 muxers.
10971
10972 gif
10973 Animated GIF muxer.
10974
10975 It accepts the following options:
10976
10977 loop
10978 Set the number of times to loop the output. Use "-1" for no loop, 0
10979 for looping indefinitely (default).
10980
10981 final_delay
10982 Force the delay (expressed in centiseconds) after the last frame.
10983 Each frame ends with a delay until the next frame. The default is
10984 "-1", which is a special value to tell the muxer to re-use the
10985 previous delay. In case of a loop, you might want to customize this
10986 value to mark a pause for instance.
10987
10988 For example, to encode a gif looping 10 times, with a 5 seconds delay
10989 between the loops:
10990
10991 ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
10992
10993 Note 1: if you wish to extract the frames into separate GIF files, you
10994 need to force the image2 muxer:
10995
10996 ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
10997
10998 Note 2: the GIF format has a very large time base: the delay between
10999 two frames can therefore not be smaller than one centi second.
11000
11001 hash
11002 Hash testing format.
11003
11004 This muxer computes and prints a cryptographic hash of all the input
11005 audio and video frames. This can be used for equality checks without
11006 having to do a complete binary comparison.
11007
11008 By default audio frames are converted to signed 16-bit raw audio and
11009 video frames to raw video before computing the hash, but the output of
11010 explicit conversions to other codecs can also be used. Timestamps are
11011 ignored. It uses the SHA-256 cryptographic hash function by default,
11012 but supports several other algorithms.
11013
11014 The output of the muxer consists of a single line of the form:
11015 algo=hash, where algo is a short string representing the hash function
11016 used, and hash is a hexadecimal number representing the computed hash.
11017
11018 hash algorithm
11019 Use the cryptographic hash function specified by the string
11020 algorithm. Supported values include "MD5", "murmur3", "RIPEMD128",
11021 "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
11022 (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
11023 and "adler32".
11024
11025 Examples
11026
11027 To compute the SHA-256 hash of the input converted to raw audio and
11028 video, and store it in the file out.sha256:
11029
11030 ffmpeg -i INPUT -f hash out.sha256
11031
11032 To print an MD5 hash to stdout use the command:
11033
11034 ffmpeg -i INPUT -f hash -hash md5 -
11035
11036 See also the framehash muxer.
11037
11038 hls
11039 Apple HTTP Live Streaming muxer that segments MPEG-TS according to the
11040 HTTP Live Streaming (HLS) specification.
11041
11042 It creates a playlist file, and one or more segment files. The output
11043 filename specifies the playlist filename.
11044
11045 By default, the muxer creates a file for each segment produced. These
11046 files have the same name as the playlist, followed by a sequential
11047 number and a .ts extension.
11048
11049 Make sure to require a closed GOP when encoding and to set the GOP size
11050 to fit your segment time constraint.
11051
11052 For example, to convert an input file with ffmpeg:
11053
11054 ffmpeg -i in.mkv -c:v h264 -flags +cgop -g 30 -hls_time 1 out.m3u8
11055
11056 This example will produce the playlist, out.m3u8, and segment files:
11057 out0.ts, out1.ts, out2.ts, etc.
11058
11059 See also the segment muxer, which provides a more generic and flexible
11060 implementation of a segmenter, and can be used to perform HLS
11061 segmentation.
11062
11063 Options
11064
11065 This muxer supports the following options:
11066
11067 hls_init_time duration
11068 Set the initial target segment length. Default value is 0.
11069
11070 duration must be a time duration specification, see the Time
11071 duration section in the ffmpeg-utils(1) manual.
11072
11073 Segment will be cut on the next key frame after this time has
11074 passed on the first m3u8 list. After the initial playlist is
11075 filled ffmpeg will cut segments at duration equal to "hls_time"
11076
11077 hls_time duration
11078 Set the target segment length. Default value is 2.
11079
11080 duration must be a time duration specification, see the Time
11081 duration section in the ffmpeg-utils(1) manual. Segment will be
11082 cut on the next key frame after this time has passed.
11083
11084 hls_list_size size
11085 Set the maximum number of playlist entries. If set to 0 the list
11086 file will contain all the segments. Default value is 5.
11087
11088 hls_delete_threshold size
11089 Set the number of unreferenced segments to keep on disk before
11090 "hls_flags delete_segments" deletes them. Increase this to allow
11091 continue clients to download segments which were recently
11092 referenced in the playlist. Default value is 1, meaning segments
11093 older than "hls_list_size+1" will be deleted.
11094
11095 hls_ts_options options_list
11096 Set output format options using a :-separated list of key=value
11097 parameters. Values containing ":" special characters must be
11098 escaped. "hls_ts_options" is deprecated, use hls_segment_options
11099 instead of it..
11100
11101 hls_start_number_source
11102 Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE")
11103 according to the specified source. Unless "hls_flags single_file"
11104 is set, it also specifies source of starting sequence numbers of
11105 segment and subtitle filenames. In any case, if "hls_flags
11106 append_list" is set and read playlist sequence number is greater
11107 than the specified start sequence number, then that value will be
11108 used as start value.
11109
11110 It accepts the following values:
11111
11112 generic (default)
11113 Set the starting sequence numbers according to start_number
11114 option value.
11115
11116 epoch
11117 The start number will be the seconds since epoch (1970-01-01
11118 00:00:00)
11119
11120 epoch_us
11121 The start number will be the microseconds since epoch
11122 (1970-01-01 00:00:00)
11123
11124 datetime
11125 The start number will be based on the current date/time as
11126 YYYYmmddHHMMSS. e.g. 20161231235759.
11127
11128 start_number number
11129 Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE") from
11130 the specified number when hls_start_number_source value is generic.
11131 (This is the default case.) Unless "hls_flags single_file" is set,
11132 it also specifies starting sequence numbers of segment and subtitle
11133 filenames. Default value is 0.
11134
11135 hls_allow_cache allowcache
11136 Explicitly set whether the client MAY (1) or MUST NOT (0) cache
11137 media segments.
11138
11139 hls_base_url baseurl
11140 Append baseurl to every entry in the playlist. Useful to generate
11141 playlists with absolute paths.
11142
11143 Note that the playlist sequence number must be unique for each
11144 segment and it is not to be confused with the segment filename
11145 sequence number which can be cyclic, for example if the wrap option
11146 is specified.
11147
11148 hls_segment_filename filename
11149 Set the segment filename. Unless "hls_flags single_file" is set,
11150 filename is used as a string format with the segment number:
11151
11152 ffmpeg -i in.nut -hls_segment_filename 'file%03d.ts' out.m3u8
11153
11154 This example will produce the playlist, out.m3u8, and segment
11155 files: file000.ts, file001.ts, file002.ts, etc.
11156
11157 filename may contain full path or relative path specification, but
11158 only the file name part without any path info will be contained in
11159 the m3u8 segment list. Should a relative path be specified, the
11160 path of the created segment files will be relative to the current
11161 working directory. When strftime_mkdir is set, the whole expanded
11162 value of filename will be written into the m3u8 segment list.
11163
11164 When "var_stream_map" is set with two or more variant streams, the
11165 filename pattern must contain the string "%v", this string
11166 specifies the position of variant stream index in the generated
11167 segment file names.
11168
11169 ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11170 -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \
11171 -hls_segment_filename 'file_%v_%03d.ts' out_%v.m3u8
11172
11173 This example will produce the playlists segment file sets:
11174 file_0_000.ts, file_0_001.ts, file_0_002.ts, etc. and
11175 file_1_000.ts, file_1_001.ts, file_1_002.ts, etc.
11176
11177 The string "%v" may be present in the filename or in the last
11178 directory name containing the file, but only in one of them.
11179 (Additionally, %v may appear multiple times in the last sub-
11180 directory or filename.) If the string %v is present in the
11181 directory name, then sub-directories are created after expanding
11182 the directory name pattern. This enables creation of segments
11183 corresponding to different variant streams in subdirectories.
11184
11185 ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11186 -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \
11187 -hls_segment_filename 'vs%v/file_%03d.ts' vs%v/out.m3u8
11188
11189 This example will produce the playlists segment file sets:
11190 vs0/file_000.ts, vs0/file_001.ts, vs0/file_002.ts, etc. and
11191 vs1/file_000.ts, vs1/file_001.ts, vs1/file_002.ts, etc.
11192
11193 strftime
11194 Use strftime() on filename to expand the segment filename with
11195 localtime. The segment number is also available in this mode, but
11196 to use it, you need to specify second_level_segment_index hls_flag
11197 and %%d will be the specifier.
11198
11199 ffmpeg -i in.nut -strftime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8
11200
11201 This example will produce the playlist, out.m3u8, and segment
11202 files: file-20160215-1455569023.ts, file-20160215-1455569024.ts,
11203 etc. Note: On some systems/environments, the %s specifier is not
11204 available. See
11205 "strftime()" documentation.
11206
11207 ffmpeg -i in.nut -strftime 1 -hls_flags second_level_segment_index -hls_segment_filename 'file-%Y%m%d-%%04d.ts' out.m3u8
11208
11209 This example will produce the playlist, out.m3u8, and segment
11210 files: file-20160215-0001.ts, file-20160215-0002.ts, etc.
11211
11212 strftime_mkdir
11213 Used together with -strftime_mkdir, it will create all
11214 subdirectories which is expanded in filename.
11215
11216 ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8
11217
11218 This example will create a directory 201560215 (if it does not
11219 exist), and then produce the playlist, out.m3u8, and segment files:
11220 20160215/file-20160215-1455569023.ts,
11221 20160215/file-20160215-1455569024.ts, etc.
11222
11223 ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y/%m/%d/file-%Y%m%d-%s.ts' out.m3u8
11224
11225 This example will create a directory hierarchy 2016/02/15 (if any
11226 of them do not exist), and then produce the playlist, out.m3u8, and
11227 segment files: 2016/02/15/file-20160215-1455569023.ts,
11228 2016/02/15/file-20160215-1455569024.ts, etc.
11229
11230 hls_segment_options options_list
11231 Set output format options using a :-separated list of key=value
11232 parameters. Values containing ":" special characters must be
11233 escaped.
11234
11235 hls_key_info_file key_info_file
11236 Use the information in key_info_file for segment encryption. The
11237 first line of key_info_file specifies the key URI written to the
11238 playlist. The key URL is used to access the encryption key during
11239 playback. The second line specifies the path to the key file used
11240 to obtain the key during the encryption process. The key file is
11241 read as a single packed array of 16 octets in binary format. The
11242 optional third line specifies the initialization vector (IV) as a
11243 hexadecimal string to be used instead of the segment sequence
11244 number (default) for encryption. Changes to key_info_file will
11245 result in segment encryption with the new key/IV and an entry in
11246 the playlist for the new key URI/IV if "hls_flags periodic_rekey"
11247 is enabled.
11248
11249 Key info file format:
11250
11251 <key URI>
11252 <key file path>
11253 <IV> (optional)
11254
11255 Example key URIs:
11256
11257 http://server/file.key
11258 /path/to/file.key
11259 file.key
11260
11261 Example key file paths:
11262
11263 file.key
11264 /path/to/file.key
11265
11266 Example IV:
11267
11268 0123456789ABCDEF0123456789ABCDEF
11269
11270 Key info file example:
11271
11272 http://server/file.key
11273 /path/to/file.key
11274 0123456789ABCDEF0123456789ABCDEF
11275
11276 Example shell script:
11277
11278 #!/bin/sh
11279 BASE_URL=${1:-'.'}
11280 openssl rand 16 > file.key
11281 echo $BASE_URL/file.key > file.keyinfo
11282 echo file.key >> file.keyinfo
11283 echo $(openssl rand -hex 16) >> file.keyinfo
11284 ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
11285 -hls_key_info_file file.keyinfo out.m3u8
11286
11287 -hls_enc enc
11288 Enable (1) or disable (0) the AES128 encryption. When enabled
11289 every segment generated is encrypted and the encryption key is
11290 saved as playlist name.key.
11291
11292 -hls_enc_key key
11293 16-octet key to encrypt the segments, by default it is randomly
11294 generated.
11295
11296 -hls_enc_key_url keyurl
11297 If set, keyurl is prepended instead of baseurl to the key filename
11298 in the playlist.
11299
11300 -hls_enc_iv iv
11301 16-octet initialization vector for every segment instead of the
11302 autogenerated ones.
11303
11304 hls_segment_type flags
11305 Possible values:
11306
11307 mpegts
11308 Output segment files in MPEG-2 Transport Stream format. This is
11309 compatible with all HLS versions.
11310
11311 fmp4
11312 Output segment files in fragmented MP4 format, similar to MPEG-
11313 DASH. fmp4 files may be used in HLS version 7 and above.
11314
11315 hls_fmp4_init_filename filename
11316 Set filename to the fragment files header file, default filename is
11317 init.mp4.
11318
11319 Use "-strftime 1" on filename to expand the segment filename with
11320 localtime.
11321
11322 ffmpeg -i in.nut -hls_segment_type fmp4 -strftime 1 -hls_fmp4_init_filename "%s_init.mp4" out.m3u8
11323
11324 This will produce init like this 1602678741_init.mp4
11325
11326 hls_fmp4_init_resend
11327 Resend init file after m3u8 file refresh every time, default is 0.
11328
11329 When "var_stream_map" is set with two or more variant streams, the
11330 filename pattern must contain the string "%v", this string
11331 specifies the position of variant stream index in the generated
11332 init file names. The string "%v" may be present in the filename or
11333 in the last directory name containing the file. If the string is
11334 present in the directory name, then sub-directories are created
11335 after expanding the directory name pattern. This enables creation
11336 of init files corresponding to different variant streams in
11337 subdirectories.
11338
11339 hls_flags flags
11340 Possible values:
11341
11342 single_file
11343 If this flag is set, the muxer will store all segments in a
11344 single MPEG-TS file, and will use byte ranges in the playlist.
11345 HLS playlists generated with this way will have the version
11346 number 4. For example:
11347
11348 ffmpeg -i in.nut -hls_flags single_file out.m3u8
11349
11350 Will produce the playlist, out.m3u8, and a single segment file,
11351 out.ts.
11352
11353 delete_segments
11354 Segment files removed from the playlist are deleted after a
11355 period of time equal to the duration of the segment plus the
11356 duration of the playlist.
11357
11358 append_list
11359 Append new segments into the end of old segment list, and
11360 remove the "#EXT-X-ENDLIST" from the old segment list.
11361
11362 round_durations
11363 Round the duration info in the playlist file segment info to
11364 integer values, instead of using floating point.
11365
11366 discont_start
11367 Add the "#EXT-X-DISCONTINUITY" tag to the playlist, before the
11368 first segment's information.
11369
11370 omit_endlist
11371 Do not append the "EXT-X-ENDLIST" tag at the end of the
11372 playlist.
11373
11374 periodic_rekey
11375 The file specified by "hls_key_info_file" will be checked
11376 periodically and detect updates to the encryption info. Be sure
11377 to replace this file atomically, including the file containing
11378 the AES encryption key.
11379
11380 independent_segments
11381 Add the "#EXT-X-INDEPENDENT-SEGMENTS" to playlists that has
11382 video segments and when all the segments of that playlist are
11383 guaranteed to start with a Key frame.
11384
11385 iframes_only
11386 Add the "#EXT-X-I-FRAMES-ONLY" to playlists that has video
11387 segments and can play only I-frames in the "#EXT-X-BYTERANGE"
11388 mode.
11389
11390 split_by_time
11391 Allow segments to start on frames other than keyframes. This
11392 improves behavior on some players when the time between
11393 keyframes is inconsistent, but may make things worse on others,
11394 and can cause some oddities during seeking. This flag should be
11395 used with the "hls_time" option.
11396
11397 program_date_time
11398 Generate "EXT-X-PROGRAM-DATE-TIME" tags.
11399
11400 second_level_segment_index
11401 Makes it possible to use segment indexes as %%d in
11402 hls_segment_filename expression besides date/time values when
11403 strftime is on. To get fixed width numbers with trailing
11404 zeroes, %%0xd format is available where x is the required
11405 width.
11406
11407 second_level_segment_size
11408 Makes it possible to use segment sizes (counted in bytes) as
11409 %%s in hls_segment_filename expression besides date/time values
11410 when strftime is on. To get fixed width numbers with trailing
11411 zeroes, %%0xs format is available where x is the required
11412 width.
11413
11414 second_level_segment_duration
11415 Makes it possible to use segment duration (calculated in
11416 microseconds) as %%t in hls_segment_filename expression besides
11417 date/time values when strftime is on. To get fixed width
11418 numbers with trailing zeroes, %%0xt format is available where x
11419 is the required width.
11420
11421 ffmpeg -i sample.mpeg \
11422 -f hls -hls_time 3 -hls_list_size 5 \
11423 -hls_flags second_level_segment_index+second_level_segment_size+second_level_segment_duration \
11424 -strftime 1 -strftime_mkdir 1 -hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8
11425
11426 This will produce segments like this:
11427 segment_20170102194334_0003_00122200_0000003000000.ts,
11428 segment_20170102194334_0004_00120072_0000003000000.ts etc.
11429
11430 temp_file
11431 Write segment data to filename.tmp and rename to filename only
11432 once the segment is complete. A webserver serving up segments
11433 can be configured to reject requests to *.tmp to prevent access
11434 to in-progress segments before they have been added to the m3u8
11435 playlist. This flag also affects how m3u8 playlist files are
11436 created. If this flag is set, all playlist files will written
11437 into temporary file and renamed after they are complete,
11438 similarly as segments are handled. But playlists with "file"
11439 protocol and with type ("hls_playlist_type") other than "vod"
11440 are always written into temporary file regardless of this flag.
11441 Master playlist files ("master_pl_name"), if any, with "file"
11442 protocol, are always written into temporary file regardless of
11443 this flag if "master_pl_publish_rate" value is other than zero.
11444
11445 hls_playlist_type event
11446 Emit "#EXT-X-PLAYLIST-TYPE:EVENT" in the m3u8 header. Forces
11447 hls_list_size to 0; the playlist can only be appended to.
11448
11449 hls_playlist_type vod
11450 Emit "#EXT-X-PLAYLIST-TYPE:VOD" in the m3u8 header. Forces
11451 hls_list_size to 0; the playlist must not change.
11452
11453 method
11454 Use the given HTTP method to create the hls files.
11455
11456 ffmpeg -re -i in.ts -f hls -method PUT http://example.com/live/out.m3u8
11457
11458 This example will upload all the mpegts segment files to the HTTP
11459 server using the HTTP PUT method, and update the m3u8 files every
11460 "refresh" times using the same method. Note that the HTTP server
11461 must support the given method for uploading files.
11462
11463 http_user_agent
11464 Override User-Agent field in HTTP header. Applicable only for HTTP
11465 output.
11466
11467 var_stream_map
11468 Map string which specifies how to group the audio, video and
11469 subtitle streams into different variant streams. The variant stream
11470 groups are separated by space. Expected string format is like this
11471 "a:0,v:0 a:1,v:1 ....". Here a:, v:, s: are the keys to specify
11472 audio, video and subtitle streams respectively. Allowed values are
11473 0 to 9 (limited just based on practical usage).
11474
11475 When there are two or more variant streams, the output filename
11476 pattern must contain the string "%v", this string specifies the
11477 position of variant stream index in the output media playlist
11478 filenames. The string "%v" may be present in the filename or in the
11479 last directory name containing the file. If the string is present
11480 in the directory name, then sub-directories are created after
11481 expanding the directory name pattern. This enables creation of
11482 variant streams in subdirectories.
11483
11484 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11485 -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \
11486 http://example.com/live/out_%v.m3u8
11487
11488 This example creates two hls variant streams. The first variant
11489 stream will contain video stream of bitrate 1000k and audio stream
11490 of bitrate 64k and the second variant stream will contain video
11491 stream of bitrate 256k and audio stream of bitrate 32k. Here, two
11492 media playlist with file names out_0.m3u8 and out_1.m3u8 will be
11493 created. If you want something meaningful text instead of indexes
11494 in result names, you may specify names for each or some of the
11495 variants as in the following example.
11496
11497 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11498 -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0,name:my_hd v:1,a:1,name:my_sd" \
11499 http://example.com/live/out_%v.m3u8
11500
11501 This example creates two hls variant streams as in the previous
11502 one. But here, the two media playlist with file names
11503 out_my_hd.m3u8 and out_my_sd.m3u8 will be created.
11504
11505 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k \
11506 -map 0:v -map 0:a -map 0:v -f hls -var_stream_map "v:0 a:0 v:1" \
11507 http://example.com/live/out_%v.m3u8
11508
11509 This example creates three hls variant streams. The first variant
11510 stream will be a video only stream with video bitrate 1000k, the
11511 second variant stream will be an audio only stream with bitrate 64k
11512 and the third variant stream will be a video only stream with
11513 bitrate 256k. Here, three media playlist with file names
11514 out_0.m3u8, out_1.m3u8 and out_2.m3u8 will be created.
11515
11516 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11517 -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \
11518 http://example.com/live/vs_%v/out.m3u8
11519
11520 This example creates the variant streams in subdirectories. Here,
11521 the first media playlist is created at
11522 http://example.com/live/vs_0/out.m3u8 and the second one at
11523 http://example.com/live/vs_1/out.m3u8.
11524
11525 ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k -b:v:1 3000k \
11526 -map 0:a -map 0:a -map 0:v -map 0:v -f hls \
11527 -var_stream_map "a:0,agroup:aud_low a:1,agroup:aud_high v:0,agroup:aud_low v:1,agroup:aud_high" \
11528 -master_pl_name master.m3u8 \
11529 http://example.com/live/out_%v.m3u8
11530
11531 This example creates two audio only and two video only variant
11532 streams. In addition to the #EXT-X-STREAM-INF tag for each variant
11533 stream in the master playlist, #EXT-X-MEDIA tag is also added for
11534 the two audio only variant streams and they are mapped to the two
11535 video only variant streams with audio group names 'aud_low' and
11536 'aud_high'.
11537
11538 By default, a single hls variant containing all the encoded streams
11539 is created.
11540
11541 ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \
11542 -map 0:a -map 0:a -map 0:v -f hls \
11543 -var_stream_map "a:0,agroup:aud_low,default:yes a:1,agroup:aud_low v:0,agroup:aud_low" \
11544 -master_pl_name master.m3u8 \
11545 http://example.com/live/out_%v.m3u8
11546
11547 This example creates two audio only and one video only variant
11548 streams. In addition to the #EXT-X-STREAM-INF tag for each variant
11549 stream in the master playlist, #EXT-X-MEDIA tag is also added for
11550 the two audio only variant streams and they are mapped to the one
11551 video only variant streams with audio group name 'aud_low', and the
11552 audio group have default stat is NO or YES.
11553
11554 By default, a single hls variant containing all the encoded streams
11555 is created.
11556
11557 ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \
11558 -map 0:a -map 0:a -map 0:v -f hls \
11559 -var_stream_map "a:0,agroup:aud_low,default:yes,language:ENG a:1,agroup:aud_low,language:CHN v:0,agroup:aud_low" \
11560 -master_pl_name master.m3u8 \
11561 http://example.com/live/out_%v.m3u8
11562
11563 This example creates two audio only and one video only variant
11564 streams. In addition to the #EXT-X-STREAM-INF tag for each variant
11565 stream in the master playlist, #EXT-X-MEDIA tag is also added for
11566 the two audio only variant streams and they are mapped to the one
11567 video only variant streams with audio group name 'aud_low', and the
11568 audio group have default stat is NO or YES, and one audio have and
11569 language is named ENG, the other audio language is named CHN.
11570
11571 By default, a single hls variant containing all the encoded streams
11572 is created.
11573
11574 ffmpeg -y -i input_with_subtitle.mkv \
11575 -b:v:0 5250k -c:v h264 -pix_fmt yuv420p -profile:v main -level 4.1 \
11576 -b:a:0 256k \
11577 -c:s webvtt -c:a mp2 -ar 48000 -ac 2 -map 0:v -map 0:a:0 -map 0:s:0 \
11578 -f hls -var_stream_map "v:0,a:0,s:0,sgroup:subtitle" \
11579 -master_pl_name master.m3u8 -t 300 -hls_time 10 -hls_init_time 4 -hls_list_size \
11580 10 -master_pl_publish_rate 10 -hls_flags \
11581 delete_segments+discont_start+split_by_time ./tmp/video.m3u8
11582
11583 This example adds "#EXT-X-MEDIA" tag with "TYPE=SUBTITLES" in the
11584 master playlist with webvtt subtitle group name 'subtitle'. Please
11585 make sure the input file has one text subtitle stream at least.
11586
11587 cc_stream_map
11588 Map string which specifies different closed captions groups and
11589 their attributes. The closed captions stream groups are separated
11590 by space. Expected string format is like this "ccgroup:<group
11591 name>,instreamid:<INSTREAM-ID>,language:<language code> ....".
11592 'ccgroup' and 'instreamid' are mandatory attributes. 'language' is
11593 an optional attribute. The closed captions groups configured using
11594 this option are mapped to different variant streams by providing
11595 the same 'ccgroup' name in the "var_stream_map" string. If
11596 "var_stream_map" is not set, then the first available ccgroup in
11597 "cc_stream_map" is mapped to the output variant stream. The
11598 examples for these two use cases are given below.
11599
11600 ffmpeg -re -i in.ts -b:v 1000k -b:a 64k -a53cc 1 -f hls \
11601 -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en" \
11602 -master_pl_name master.m3u8 \
11603 http://example.com/live/out.m3u8
11604
11605 This example adds "#EXT-X-MEDIA" tag with "TYPE=CLOSED-CAPTIONS" in
11606 the master playlist with group name 'cc', language 'en' (english)
11607 and INSTREAM-ID 'CC1'. Also, it adds "CLOSED-CAPTIONS" attribute
11608 with group name 'cc' for the output variant stream.
11609
11610 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11611 -a53cc:0 1 -a53cc:1 1\
11612 -map 0:v -map 0:a -map 0:v -map 0:a -f hls \
11613 -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en ccgroup:cc,instreamid:CC2,language:sp" \
11614 -var_stream_map "v:0,a:0,ccgroup:cc v:1,a:1,ccgroup:cc" \
11615 -master_pl_name master.m3u8 \
11616 http://example.com/live/out_%v.m3u8
11617
11618 This example adds two "#EXT-X-MEDIA" tags with
11619 "TYPE=CLOSED-CAPTIONS" in the master playlist for the INSTREAM-IDs
11620 'CC1' and 'CC2'. Also, it adds "CLOSED-CAPTIONS" attribute with
11621 group name 'cc' for the two output variant streams.
11622
11623 master_pl_name
11624 Create HLS master playlist with the given name.
11625
11626 ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 http://example.com/live/out.m3u8
11627
11628 This example creates HLS master playlist with name master.m3u8 and
11629 it is published at http://example.com/live/
11630
11631 master_pl_publish_rate
11632 Publish master play list repeatedly every after specified number of
11633 segment intervals.
11634
11635 ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 \
11636 -hls_time 2 -master_pl_publish_rate 30 http://example.com/live/out.m3u8
11637
11638 This example creates HLS master playlist with name master.m3u8 and
11639 keep publishing it repeatedly every after 30 segments i.e. every
11640 after 60s.
11641
11642 http_persistent
11643 Use persistent HTTP connections. Applicable only for HTTP output.
11644
11645 timeout
11646 Set timeout for socket I/O operations. Applicable only for HTTP
11647 output.
11648
11649 -ignore_io_errors
11650 Ignore IO errors during open, write and delete. Useful for long-
11651 duration runs with network output.
11652
11653 headers
11654 Set custom HTTP headers, can override built in default headers.
11655 Applicable only for HTTP output.
11656
11657 ico
11658 ICO file muxer.
11659
11660 Microsoft's icon file format (ICO) has some strict limitations that
11661 should be noted:
11662
11663 • Size cannot exceed 256 pixels in any dimension
11664
11665 • Only BMP and PNG images can be stored
11666
11667 • If a BMP image is used, it must be one of the following pixel
11668 formats:
11669
11670 BMP Bit Depth FFmpeg Pixel Format
11671 1bit pal8
11672 4bit pal8
11673 8bit pal8
11674 16bit rgb555le
11675 24bit bgr24
11676 32bit bgra
11677
11678 • If a BMP image is used, it must use the BITMAPINFOHEADER DIB header
11679
11680 • If a PNG image is used, it must use the rgba pixel format
11681
11682 image2
11683 Image file muxer.
11684
11685 The image file muxer writes video frames to image files.
11686
11687 The output filenames are specified by a pattern, which can be used to
11688 produce sequentially numbered series of files. The pattern may contain
11689 the string "%d" or "%0Nd", this string specifies the position of the
11690 characters representing a numbering in the filenames. If the form
11691 "%0Nd" is used, the string representing the number in each filename is
11692 0-padded to N digits. The literal character '%' can be specified in the
11693 pattern with the string "%%".
11694
11695 If the pattern contains "%d" or "%0Nd", the first filename of the file
11696 list specified will contain the number 1, all the following numbers
11697 will be sequential.
11698
11699 The pattern may contain a suffix which is used to automatically
11700 determine the format of the image files to write.
11701
11702 For example the pattern "img-%03d.bmp" will specify a sequence of
11703 filenames of the form img-001.bmp, img-002.bmp, ..., img-010.bmp, etc.
11704 The pattern "img%%-%d.jpg" will specify a sequence of filenames of the
11705 form img%-1.jpg, img%-2.jpg, ..., img%-10.jpg, etc.
11706
11707 The image muxer supports the .Y.U.V image file format. This format is
11708 special in that that each image frame consists of three files, for each
11709 of the YUV420P components. To read or write this image file format,
11710 specify the name of the '.Y' file. The muxer will automatically open
11711 the '.U' and '.V' files as required.
11712
11713 Options
11714
11715 frame_pts
11716 If set to 1, expand the filename with pts from pkt->pts. Default
11717 value is 0.
11718
11719 start_number
11720 Start the sequence from the specified number. Default value is 1.
11721
11722 update
11723 If set to 1, the filename will always be interpreted as just a
11724 filename, not a pattern, and the corresponding file will be
11725 continuously overwritten with new images. Default value is 0.
11726
11727 strftime
11728 If set to 1, expand the filename with date and time information
11729 from "strftime()". Default value is 0.
11730
11731 atomic_writing
11732 Write output to a temporary file, which is renamed to target
11733 filename once writing is completed. Default is disabled.
11734
11735 protocol_opts options_list
11736 Set protocol options as a :-separated list of key=value parameters.
11737 Values containing the ":" special character must be escaped.
11738
11739 Examples
11740
11741 The following example shows how to use ffmpeg for creating a sequence
11742 of files img-001.jpeg, img-002.jpeg, ..., taking one image every second
11743 from the input video:
11744
11745 ffmpeg -i in.avi -vsync cfr -r 1 -f image2 'img-%03d.jpeg'
11746
11747 Note that with ffmpeg, if the format is not specified with the "-f"
11748 option and the output filename specifies an image file format, the
11749 image2 muxer is automatically selected, so the previous command can be
11750 written as:
11751
11752 ffmpeg -i in.avi -vsync cfr -r 1 'img-%03d.jpeg'
11753
11754 Note also that the pattern must not necessarily contain "%d" or "%0Nd",
11755 for example to create a single image file img.jpeg from the start of
11756 the input video you can employ the command:
11757
11758 ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
11759
11760 The strftime option allows you to expand the filename with date and
11761 time information. Check the documentation of the "strftime()" function
11762 for the syntax.
11763
11764 For example to generate image files from the "strftime()"
11765 "%Y-%m-%d_%H-%M-%S" pattern, the following ffmpeg command can be used:
11766
11767 ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
11768
11769 You can set the file name with current frame's PTS:
11770
11771 ffmpeg -f v4l2 -r 1 -i /dev/video0 -copyts -f image2 -frame_pts true %d.jpg"
11772
11773 A more complex example is to publish contents of your desktop directly
11774 to a WebDAV server every second:
11775
11776 ffmpeg -f x11grab -framerate 1 -i :0.0 -q:v 6 -update 1 -protocol_opts method=PUT http://example.com/desktop.jpg
11777
11778 matroska
11779 Matroska container muxer.
11780
11781 This muxer implements the matroska and webm container specs.
11782
11783 Metadata
11784
11785 The recognized metadata settings in this muxer are:
11786
11787 title
11788 Set title name provided to a single track. This gets mapped to the
11789 FileDescription element for a stream written as attachment.
11790
11791 language
11792 Specify the language of the track in the Matroska languages form.
11793
11794 The language can be either the 3 letters bibliographic ISO-639-2
11795 (ISO 639-2/B) form (like "fre" for French), or a language code
11796 mixed with a country code for specialities in languages (like "fre-
11797 ca" for Canadian French).
11798
11799 stereo_mode
11800 Set stereo 3D video layout of two views in a single video track.
11801
11802 The following values are recognized:
11803
11804 mono
11805 video is not stereo
11806
11807 left_right
11808 Both views are arranged side by side, Left-eye view is on the
11809 left
11810
11811 bottom_top
11812 Both views are arranged in top-bottom orientation, Left-eye
11813 view is at bottom
11814
11815 top_bottom
11816 Both views are arranged in top-bottom orientation, Left-eye
11817 view is on top
11818
11819 checkerboard_rl
11820 Each view is arranged in a checkerboard interleaved pattern,
11821 Left-eye view being first
11822
11823 checkerboard_lr
11824 Each view is arranged in a checkerboard interleaved pattern,
11825 Right-eye view being first
11826
11827 row_interleaved_rl
11828 Each view is constituted by a row based interleaving, Right-eye
11829 view is first row
11830
11831 row_interleaved_lr
11832 Each view is constituted by a row based interleaving, Left-eye
11833 view is first row
11834
11835 col_interleaved_rl
11836 Both views are arranged in a column based interleaving manner,
11837 Right-eye view is first column
11838
11839 col_interleaved_lr
11840 Both views are arranged in a column based interleaving manner,
11841 Left-eye view is first column
11842
11843 anaglyph_cyan_red
11844 All frames are in anaglyph format viewable through red-cyan
11845 filters
11846
11847 right_left
11848 Both views are arranged side by side, Right-eye view is on the
11849 left
11850
11851 anaglyph_green_magenta
11852 All frames are in anaglyph format viewable through green-
11853 magenta filters
11854
11855 block_lr
11856 Both eyes laced in one Block, Left-eye view is first
11857
11858 block_rl
11859 Both eyes laced in one Block, Right-eye view is first
11860
11861 For example a 3D WebM clip can be created using the following command
11862 line:
11863
11864 ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
11865
11866 Options
11867
11868 This muxer supports the following options:
11869
11870 reserve_index_space
11871 By default, this muxer writes the index for seeking (called cues in
11872 Matroska terms) at the end of the file, because it cannot know in
11873 advance how much space to leave for the index at the beginning of
11874 the file. However for some use cases -- e.g. streaming where
11875 seeking is possible but slow -- it is useful to put the index at
11876 the beginning of the file.
11877
11878 If this option is set to a non-zero value, the muxer will reserve a
11879 given amount of space in the file header and then try to write the
11880 cues there when the muxing finishes. If the reserved space does not
11881 suffice, no Cues will be written, the file will be finalized and
11882 writing the trailer will return an error. A safe size for most use
11883 cases should be about 50kB per hour of video.
11884
11885 Note that cues are only written if the output is seekable and this
11886 option will have no effect if it is not.
11887
11888 default_mode
11889 This option controls how the FlagDefault of the output tracks will
11890 be set. It influences which tracks players should play by default.
11891 The default mode is passthrough.
11892
11893 infer
11894 Every track with disposition default will have the FlagDefault
11895 set. Additionally, for each type of track (audio, video or
11896 subtitle), if no track with disposition default of this type
11897 exists, then the first track of this type will be marked as
11898 default (if existing). This ensures that the default flag is
11899 set in a sensible way even if the input originated from
11900 containers that lack the concept of default tracks.
11901
11902 infer_no_subs
11903 This mode is the same as infer except that if no subtitle track
11904 with disposition default exists, no subtitle track will be
11905 marked as default.
11906
11907 passthrough
11908 In this mode the FlagDefault is set if and only if the
11909 AV_DISPOSITION_DEFAULT flag is set in the disposition of the
11910 corresponding stream.
11911
11912 flipped_raw_rgb
11913 If set to true, store positive height for raw RGB bitmaps, which
11914 indicates bitmap is stored bottom-up. Note that this option does
11915 not flip the bitmap which has to be done manually beforehand, e.g.
11916 by using the vflip filter. Default is false and indicates bitmap
11917 is stored top down.
11918
11919 md5
11920 MD5 testing format.
11921
11922 This is a variant of the hash muxer. Unlike that muxer, it defaults to
11923 using the MD5 hash function.
11924
11925 Examples
11926
11927 To compute the MD5 hash of the input converted to raw audio and video,
11928 and store it in the file out.md5:
11929
11930 ffmpeg -i INPUT -f md5 out.md5
11931
11932 You can print the MD5 to stdout with the command:
11933
11934 ffmpeg -i INPUT -f md5 -
11935
11936 See also the hash and framemd5 muxers.
11937
11938 mov, mp4, ismv
11939 MOV/MP4/ISMV (Smooth Streaming) muxer.
11940
11941 The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4 file
11942 has all the metadata about all packets stored in one location (written
11943 at the end of the file, it can be moved to the start for better
11944 playback by adding faststart to the movflags, or using the qt-faststart
11945 tool). A fragmented file consists of a number of fragments, where
11946 packets and metadata about these packets are stored together. Writing a
11947 fragmented file has the advantage that the file is decodable even if
11948 the writing is interrupted (while a normal MOV/MP4 is undecodable if it
11949 is not properly finished), and it requires less memory when writing
11950 very long files (since writing normal MOV/MP4 files stores info about
11951 every single packet in memory until the file is closed). The downside
11952 is that it is less compatible with other applications.
11953
11954 Options
11955
11956 Fragmentation is enabled by setting one of the AVOptions that define
11957 how to cut the file into fragments:
11958
11959 -moov_size bytes
11960 Reserves space for the moov atom at the beginning of the file
11961 instead of placing the moov atom at the end. If the space reserved
11962 is insufficient, muxing will fail.
11963
11964 -movflags frag_keyframe
11965 Start a new fragment at each video keyframe.
11966
11967 -frag_duration duration
11968 Create fragments that are duration microseconds long.
11969
11970 -frag_size size
11971 Create fragments that contain up to size bytes of payload data.
11972
11973 -movflags frag_custom
11974 Allow the caller to manually choose when to cut fragments, by
11975 calling "av_write_frame(ctx, NULL)" to write a fragment with the
11976 packets written so far. (This is only useful with other
11977 applications integrating libavformat, not from ffmpeg.)
11978
11979 -min_frag_duration duration
11980 Don't create fragments that are shorter than duration microseconds
11981 long.
11982
11983 If more than one condition is specified, fragments are cut when one of
11984 the specified conditions is fulfilled. The exception to this is
11985 "-min_frag_duration", which has to be fulfilled for any of the other
11986 conditions to apply.
11987
11988 Additionally, the way the output file is written can be adjusted
11989 through a few other options:
11990
11991 -movflags empty_moov
11992 Write an initial moov atom directly at the start of the file,
11993 without describing any samples in it. Generally, an mdat/moov pair
11994 is written at the start of the file, as a normal MOV/MP4 file,
11995 containing only a short portion of the file. With this option set,
11996 there is no initial mdat atom, and the moov atom only describes the
11997 tracks but has a zero duration.
11998
11999 This option is implicitly set when writing ismv (Smooth Streaming)
12000 files.
12001
12002 -movflags separate_moof
12003 Write a separate moof (movie fragment) atom for each track.
12004 Normally, packets for all tracks are written in a moof atom (which
12005 is slightly more efficient), but with this option set, the muxer
12006 writes one moof/mdat pair for each track, making it easier to
12007 separate tracks.
12008
12009 This option is implicitly set when writing ismv (Smooth Streaming)
12010 files.
12011
12012 -movflags skip_sidx
12013 Skip writing of sidx atom. When bitrate overhead due to sidx atom
12014 is high, this option could be used for cases where sidx atom is not
12015 mandatory. When global_sidx flag is enabled, this option will be
12016 ignored.
12017
12018 -movflags faststart
12019 Run a second pass moving the index (moov atom) to the beginning of
12020 the file. This operation can take a while, and will not work in
12021 various situations such as fragmented output, thus it is not
12022 enabled by default.
12023
12024 -movflags rtphint
12025 Add RTP hinting tracks to the output file.
12026
12027 -movflags disable_chpl
12028 Disable Nero chapter markers (chpl atom). Normally, both Nero
12029 chapters and a QuickTime chapter track are written to the file.
12030 With this option set, only the QuickTime chapter track will be
12031 written. Nero chapters can cause failures when the file is
12032 reprocessed with certain tagging programs, like mp3Tag 2.61a and
12033 iTunes 11.3, most likely other versions are affected as well.
12034
12035 -movflags omit_tfhd_offset
12036 Do not write any absolute base_data_offset in tfhd atoms. This
12037 avoids tying fragments to absolute byte positions in the
12038 file/streams.
12039
12040 -movflags default_base_moof
12041 Similarly to the omit_tfhd_offset, this flag avoids writing the
12042 absolute base_data_offset field in tfhd atoms, but does so by using
12043 the new default-base-is-moof flag instead. This flag is new from
12044 14496-12:2012. This may make the fragments easier to parse in
12045 certain circumstances (avoiding basing track fragment location
12046 calculations on the implicit end of the previous track fragment).
12047
12048 -write_tmcd
12049 Specify "on" to force writing a timecode track, "off" to disable it
12050 and "auto" to write a timecode track only for mov and mp4 output
12051 (default).
12052
12053 -movflags negative_cts_offsets
12054 Enables utilization of version 1 of the CTTS box, in which the CTS
12055 offsets can be negative. This enables the initial sample to have
12056 DTS/CTS of zero, and reduces the need for edit lists for some cases
12057 such as video tracks with B-frames. Additionally, eases conformance
12058 with the DASH-IF interoperability guidelines.
12059
12060 This option is implicitly set when writing ismv (Smooth Streaming)
12061 files.
12062
12063 -write_prft
12064 Write producer time reference box (PRFT) with a specified time
12065 source for the NTP field in the PRFT box. Set value as wallclock to
12066 specify timesource as wallclock time and pts to specify timesource
12067 as input packets' PTS values.
12068
12069 Setting value to pts is applicable only for a live encoding use
12070 case, where PTS values are set as as wallclock time at the source.
12071 For example, an encoding use case with decklink capture source
12072 where video_pts and audio_pts are set to abs_wallclock.
12073
12074 -movie_timescale scale
12075 Set the timescale written in the movie header box ("mvhd"). Range
12076 is 1 to INT_MAX. Default is 1000.
12077
12078 Example
12079
12080 Smooth Streaming content can be pushed in real time to a publishing
12081 point on IIS with this muxer. Example:
12082
12083 ffmpeg -re <<normal input/transcoding options>> -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)
12084
12085 mp3
12086 The MP3 muxer writes a raw MP3 stream with the following optional
12087 features:
12088
12089 • An ID3v2 metadata header at the beginning (enabled by default).
12090 Versions 2.3 and 2.4 are supported, the "id3v2_version" private
12091 option controls which one is used (3 or 4). Setting "id3v2_version"
12092 to 0 disables the ID3v2 header completely.
12093
12094 The muxer supports writing attached pictures (APIC frames) to the
12095 ID3v2 header. The pictures are supplied to the muxer in form of a
12096 video stream with a single packet. There can be any number of those
12097 streams, each will correspond to a single APIC frame. The stream
12098 metadata tags title and comment map to APIC description and picture
12099 type respectively. See <http://id3.org/id3v2.4.0-frames> for
12100 allowed picture types.
12101
12102 Note that the APIC frames must be written at the beginning, so the
12103 muxer will buffer the audio frames until it gets all the pictures.
12104 It is therefore advised to provide the pictures as soon as possible
12105 to avoid excessive buffering.
12106
12107 • A Xing/LAME frame right after the ID3v2 header (if present). It is
12108 enabled by default, but will be written only if the output is
12109 seekable. The "write_xing" private option can be used to disable
12110 it. The frame contains various information that may be useful to
12111 the decoder, like the audio duration or encoder delay.
12112
12113 • A legacy ID3v1 tag at the end of the file (disabled by default). It
12114 may be enabled with the "write_id3v1" private option, but as its
12115 capabilities are very limited, its usage is not recommended.
12116
12117 Examples:
12118
12119 Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
12120
12121 ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
12122
12123 To attach a picture to an mp3 file select both the audio and the
12124 picture stream with "map":
12125
12126 ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
12127 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3
12128
12129 Write a "clean" MP3 without any extra features:
12130
12131 ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
12132
12133 mpegts
12134 MPEG transport stream muxer.
12135
12136 This muxer implements ISO 13818-1 and part of ETSI EN 300 468.
12137
12138 The recognized metadata settings in mpegts muxer are "service_provider"
12139 and "service_name". If they are not set the default for
12140 "service_provider" is FFmpeg and the default for "service_name" is
12141 Service01.
12142
12143 Options
12144
12145 The muxer options are:
12146
12147 mpegts_transport_stream_id integer
12148 Set the transport_stream_id. This identifies a transponder in DVB.
12149 Default is 0x0001.
12150
12151 mpegts_original_network_id integer
12152 Set the original_network_id. This is unique identifier of a network
12153 in DVB. Its main use is in the unique identification of a service
12154 through the path Original_Network_ID, Transport_Stream_ID. Default
12155 is 0x0001.
12156
12157 mpegts_service_id integer
12158 Set the service_id, also known as program in DVB. Default is
12159 0x0001.
12160
12161 mpegts_service_type integer
12162 Set the program service_type. Default is "digital_tv". Accepts the
12163 following options:
12164
12165 hex_value
12166 Any hexadecimal value between 0x01 and 0xff as defined in ETSI
12167 300 468.
12168
12169 digital_tv
12170 Digital TV service.
12171
12172 digital_radio
12173 Digital Radio service.
12174
12175 teletext
12176 Teletext service.
12177
12178 advanced_codec_digital_radio
12179 Advanced Codec Digital Radio service.
12180
12181 mpeg2_digital_hdtv
12182 MPEG2 Digital HDTV service.
12183
12184 advanced_codec_digital_sdtv
12185 Advanced Codec Digital SDTV service.
12186
12187 advanced_codec_digital_hdtv
12188 Advanced Codec Digital HDTV service.
12189
12190 mpegts_pmt_start_pid integer
12191 Set the first PID for PMTs. Default is 0x1000, minimum is 0x0020,
12192 maximum is 0x1ffa. This option has no effect in m2ts mode where the
12193 PMT PID is fixed 0x0100.
12194
12195 mpegts_start_pid integer
12196 Set the first PID for elementary streams. Default is 0x0100,
12197 minimum is 0x0020, maximum is 0x1ffa. This option has no effect in
12198 m2ts mode where the elementary stream PIDs are fixed.
12199
12200 mpegts_m2ts_mode boolean
12201 Enable m2ts mode if set to 1. Default value is "-1" which disables
12202 m2ts mode.
12203
12204 muxrate integer
12205 Set a constant muxrate. Default is VBR.
12206
12207 pes_payload_size integer
12208 Set minimum PES packet payload in bytes. Default is 2930.
12209
12210 mpegts_flags flags
12211 Set mpegts flags. Accepts the following options:
12212
12213 resend_headers
12214 Reemit PAT/PMT before writing the next packet.
12215
12216 latm
12217 Use LATM packetization for AAC.
12218
12219 pat_pmt_at_frames
12220 Reemit PAT and PMT at each video frame.
12221
12222 system_b
12223 Conform to System B (DVB) instead of System A (ATSC).
12224
12225 initial_discontinuity
12226 Mark the initial packet of each stream as discontinuity.
12227
12228 nit Emit NIT table.
12229
12230 mpegts_copyts boolean
12231 Preserve original timestamps, if value is set to 1. Default value
12232 is "-1", which results in shifting timestamps so that they start
12233 from 0.
12234
12235 omit_video_pes_length boolean
12236 Omit the PES packet length for video packets. Default is 1 (true).
12237
12238 pcr_period integer
12239 Override the default PCR retransmission time in milliseconds.
12240 Default is "-1" which means that the PCR interval will be
12241 determined automatically: 20 ms is used for CBR streams, the
12242 highest multiple of the frame duration which is less than 100 ms is
12243 used for VBR streams.
12244
12245 pat_period duration
12246 Maximum time in seconds between PAT/PMT tables. Default is 0.1.
12247
12248 sdt_period duration
12249 Maximum time in seconds between SDT tables. Default is 0.5.
12250
12251 nit_period duration
12252 Maximum time in seconds between NIT tables. Default is 0.5.
12253
12254 tables_version integer
12255 Set PAT, PMT, SDT and NIT version (default 0, valid values are from
12256 0 to 31, inclusively). This option allows updating stream
12257 structure so that standard consumer may detect the change. To do
12258 so, reopen output "AVFormatContext" (in case of API usage) or
12259 restart ffmpeg instance, cyclically changing tables_version value:
12260
12261 ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
12262 ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
12263 ...
12264 ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
12265 ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
12266 ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
12267 ...
12268
12269 Example
12270
12271 ffmpeg -i file.mpg -c copy \
12272 -mpegts_original_network_id 0x1122 \
12273 -mpegts_transport_stream_id 0x3344 \
12274 -mpegts_service_id 0x5566 \
12275 -mpegts_pmt_start_pid 0x1500 \
12276 -mpegts_start_pid 0x150 \
12277 -metadata service_provider="Some provider" \
12278 -metadata service_name="Some Channel" \
12279 out.ts
12280
12281 mxf, mxf_d10, mxf_opatom
12282 MXF muxer.
12283
12284 Options
12285
12286 The muxer options are:
12287
12288 store_user_comments bool
12289 Set if user comments should be stored if available or never. IRT
12290 D-10 does not allow user comments. The default is thus to write
12291 them for mxf and mxf_opatom but not for mxf_d10
12292
12293 null
12294 Null muxer.
12295
12296 This muxer does not generate any output file, it is mainly useful for
12297 testing or benchmarking purposes.
12298
12299 For example to benchmark decoding with ffmpeg you can use the command:
12300
12301 ffmpeg -benchmark -i INPUT -f null out.null
12302
12303 Note that the above command does not read or write the out.null file,
12304 but specifying the output file is required by the ffmpeg syntax.
12305
12306 Alternatively you can write the command as:
12307
12308 ffmpeg -benchmark -i INPUT -f null -
12309
12310 nut
12311 -syncpoints flags
12312 Change the syncpoint usage in nut:
12313
12314 default use the normal low-overhead seeking aids.
12315 none do not use the syncpoints at all, reducing the overhead but
12316 making the stream non-seekable;
12317 Use of this option is not recommended, as the resulting files are very damage
12318 sensitive and seeking is not possible. Also in general the overhead from
12319 syncpoints is negligible. Note, -C<write_index> 0 can be used to disable
12320 all growing data tables, allowing to mux endless streams with limited memory
12321 and without these disadvantages.
12322
12323 timestamped extend the syncpoint with a wallclock field.
12324
12325 The none and timestamped flags are experimental.
12326
12327 -write_index bool
12328 Write index at the end, the default is to write an index.
12329
12330 ffmpeg -i INPUT -f_strict experimental -syncpoints none - | processor
12331
12332 ogg
12333 Ogg container muxer.
12334
12335 -page_duration duration
12336 Preferred page duration, in microseconds. The muxer will attempt to
12337 create pages that are approximately duration microseconds long.
12338 This allows the user to compromise between seek granularity and
12339 container overhead. The default is 1 second. A value of 0 will fill
12340 all segments, making pages as large as possible. A value of 1 will
12341 effectively use 1 packet-per-page in most situations, giving a
12342 small seek granularity at the cost of additional container
12343 overhead.
12344
12345 -serial_offset value
12346 Serial value from which to set the streams serial number. Setting
12347 it to different and sufficiently large values ensures that the
12348 produced ogg files can be safely chained.
12349
12350 raw muxers
12351 Raw muxers accept a single stream matching the designated codec. They
12352 do not store timestamps or metadata. The recognized extension is the
12353 same as the muxer name unless indicated otherwise.
12354
12355 ac3
12356
12357 Dolby Digital, also known as AC-3, audio.
12358
12359 adx
12360
12361 CRI Middleware ADX audio.
12362
12363 This muxer will write out the total sample count near the start of the
12364 first packet when the output is seekable and the count can be stored in
12365 32 bits.
12366
12367 aptx
12368
12369 aptX (Audio Processing Technology for Bluetooth) audio.
12370
12371 aptx_hd
12372
12373 aptX HD (Audio Processing Technology for Bluetooth) audio.
12374
12375 Extensions: aptxhd
12376
12377 avs2
12378
12379 AVS2-P2/IEEE1857.4 video.
12380
12381 Extensions: avs, avs2
12382
12383 cavsvideo
12384
12385 Chinese AVS (Audio Video Standard) video.
12386
12387 Extensions: cavs
12388
12389 codec2raw
12390
12391 Codec 2 audio.
12392
12393 No extension is registered so format name has to be supplied e.g. with
12394 the ffmpeg CLI tool "-f codec2raw".
12395
12396 data
12397
12398 Data muxer accepts a single stream with any codec of any type. The
12399 input stream has to be selected using the "-map" option with the ffmpeg
12400 CLI tool.
12401
12402 No extension is registered so format name has to be supplied e.g. with
12403 the ffmpeg CLI tool "-f data".
12404
12405 dirac
12406
12407 BBC Dirac video. The Dirac Pro codec is a subset and is standardized as
12408 SMPTE VC-2.
12409
12410 Extensions: drc, vc2
12411
12412 dnxhd
12413
12414 Avid DNxHD video. It is standardized as SMPTE VC-3. Accepts DNxHR
12415 streams.
12416
12417 Extensions: dnxhd, dnxhr
12418
12419 dts
12420
12421 DTS Coherent Acoustics (DCA) audio.
12422
12423 eac3
12424
12425 Dolby Digital Plus, also known as Enhanced AC-3, audio.
12426
12427 g722
12428
12429 ITU-T G.722 audio.
12430
12431 g723_1
12432
12433 ITU-T G.723.1 audio.
12434
12435 Extensions: tco, rco
12436
12437 g726
12438
12439 ITU-T G.726 big-endian ("left-justified") audio.
12440
12441 No extension is registered so format name has to be supplied e.g. with
12442 the ffmpeg CLI tool "-f g726".
12443
12444 g726le
12445
12446 ITU-T G.726 little-endian ("right-justified") audio.
12447
12448 No extension is registered so format name has to be supplied e.g. with
12449 the ffmpeg CLI tool "-f g726le".
12450
12451 gsm
12452
12453 Global System for Mobile Communications audio.
12454
12455 h261
12456
12457 ITU-T H.261 video.
12458
12459 h263
12460
12461 ITU-T H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 video.
12462
12463 h264
12464
12465 ITU-T H.264 / MPEG-4 Part 10 AVC video. Bitstream shall be converted to
12466 Annex B syntax if it's in length-prefixed mode.
12467
12468 Extensions: h264, 264
12469
12470 hevc
12471
12472 ITU-T H.265 / MPEG-H Part 2 HEVC video. Bitstream shall be converted to
12473 Annex B syntax if it's in length-prefixed mode.
12474
12475 Extensions: hevc, h265, 265
12476
12477 m4v
12478
12479 MPEG-4 Part 2 video.
12480
12481 mjpeg
12482
12483 Motion JPEG video.
12484
12485 Extensions: mjpg, mjpeg
12486
12487 mlp
12488
12489 Meridian Lossless Packing, also known as Packed PCM, audio.
12490
12491 mp2
12492
12493 MPEG-1 Audio Layer II audio.
12494
12495 Extensions: mp2, m2a, mpa
12496
12497 mpeg1video
12498
12499 MPEG-1 Part 2 video.
12500
12501 Extensions: mpg, mpeg, m1v
12502
12503 mpeg2video
12504
12505 ITU-T H.262 / MPEG-2 Part 2 video.
12506
12507 Extensions: m2v
12508
12509 obu
12510
12511 AV1 low overhead Open Bitstream Units muxer. Temporal delimiter OBUs
12512 will be inserted in all temporal units of the stream.
12513
12514 rawvideo
12515
12516 Raw uncompressed video.
12517
12518 Extensions: yuv, rgb
12519
12520 sbc
12521
12522 Bluetooth SIG low-complexity subband codec audio.
12523
12524 Extensions: sbc, msbc
12525
12526 truehd
12527
12528 Dolby TrueHD audio.
12529
12530 Extensions: thd
12531
12532 vc1
12533
12534 SMPTE 421M / VC-1 video.
12535
12536 segment, stream_segment, ssegment
12537 Basic stream segmenter.
12538
12539 This muxer outputs streams to a number of separate files of nearly
12540 fixed duration. Output filename pattern can be set in a fashion similar
12541 to image2, or by using a "strftime" template if the strftime option is
12542 enabled.
12543
12544 "stream_segment" is a variant of the muxer used to write to streaming
12545 output formats, i.e. which do not require global headers, and is
12546 recommended for outputting e.g. to MPEG transport stream segments.
12547 "ssegment" is a shorter alias for "stream_segment".
12548
12549 Every segment starts with a keyframe of the selected reference stream,
12550 which is set through the reference_stream option.
12551
12552 Note that if you want accurate splitting for a video file, you need to
12553 make the input key frames correspond to the exact splitting times
12554 expected by the segmenter, or the segment muxer will start the new
12555 segment with the key frame found next after the specified start time.
12556
12557 The segment muxer works best with a single constant frame rate video.
12558
12559 Optionally it can generate a list of the created segments, by setting
12560 the option segment_list. The list type is specified by the
12561 segment_list_type option. The entry filenames in the segment list are
12562 set by default to the basename of the corresponding segment files.
12563
12564 See also the hls muxer, which provides a more specific implementation
12565 for HLS segmentation.
12566
12567 Options
12568
12569 The segment muxer supports the following options:
12570
12571 increment_tc 1|0
12572 if set to 1, increment timecode between each segment If this is
12573 selected, the input need to have a timecode in the first video
12574 stream. Default value is 0.
12575
12576 reference_stream specifier
12577 Set the reference stream, as specified by the string specifier. If
12578 specifier is set to "auto", the reference is chosen automatically.
12579 Otherwise it must be a stream specifier (see the ``Stream
12580 specifiers'' chapter in the ffmpeg manual) which specifies the
12581 reference stream. The default value is "auto".
12582
12583 segment_format format
12584 Override the inner container format, by default it is guessed by
12585 the filename extension.
12586
12587 segment_format_options options_list
12588 Set output format options using a :-separated list of key=value
12589 parameters. Values containing the ":" special character must be
12590 escaped.
12591
12592 segment_list name
12593 Generate also a listfile named name. If not specified no listfile
12594 is generated.
12595
12596 segment_list_flags flags
12597 Set flags affecting the segment list generation.
12598
12599 It currently supports the following flags:
12600
12601 cache
12602 Allow caching (only affects M3U8 list files).
12603
12604 live
12605 Allow live-friendly file generation.
12606
12607 segment_list_size size
12608 Update the list file so that it contains at most size segments. If
12609 0 the list file will contain all the segments. Default value is 0.
12610
12611 segment_list_entry_prefix prefix
12612 Prepend prefix to each entry. Useful to generate absolute paths.
12613 By default no prefix is applied.
12614
12615 segment_list_type type
12616 Select the listing format.
12617
12618 The following values are recognized:
12619
12620 flat
12621 Generate a flat list for the created segments, one segment per
12622 line.
12623
12624 csv, ext
12625 Generate a list for the created segments, one segment per line,
12626 each line matching the format (comma-separated values):
12627
12628 <segment_filename>,<segment_start_time>,<segment_end_time>
12629
12630 segment_filename is the name of the output file generated by
12631 the muxer according to the provided pattern. CSV escaping
12632 (according to RFC4180) is applied if required.
12633
12634 segment_start_time and segment_end_time specify the segment
12635 start and end time expressed in seconds.
12636
12637 A list file with the suffix ".csv" or ".ext" will auto-select
12638 this format.
12639
12640 ext is deprecated in favor or csv.
12641
12642 ffconcat
12643 Generate an ffconcat file for the created segments. The
12644 resulting file can be read using the FFmpeg concat demuxer.
12645
12646 A list file with the suffix ".ffcat" or ".ffconcat" will auto-
12647 select this format.
12648
12649 m3u8
12650 Generate an extended M3U8 file, version 3, compliant with
12651 <http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
12652
12653 A list file with the suffix ".m3u8" will auto-select this
12654 format.
12655
12656 If not specified the type is guessed from the list file name
12657 suffix.
12658
12659 segment_time time
12660 Set segment duration to time, the value must be a duration
12661 specification. Default value is "2". See also the segment_times
12662 option.
12663
12664 Note that splitting may not be accurate, unless you force the
12665 reference stream key-frames at the given time. See the introductory
12666 notice and the examples below.
12667
12668 segment_atclocktime 1|0
12669 If set to "1" split at regular clock time intervals starting from
12670 00:00 o'clock. The time value specified in segment_time is used for
12671 setting the length of the splitting interval.
12672
12673 For example with segment_time set to "900" this makes it possible
12674 to create files at 12:00 o'clock, 12:15, 12:30, etc.
12675
12676 Default value is "0".
12677
12678 segment_clocktime_offset duration
12679 Delay the segment splitting times with the specified duration when
12680 using segment_atclocktime.
12681
12682 For example with segment_time set to "900" and
12683 segment_clocktime_offset set to "300" this makes it possible to
12684 create files at 12:05, 12:20, 12:35, etc.
12685
12686 Default value is "0".
12687
12688 segment_clocktime_wrap_duration duration
12689 Force the segmenter to only start a new segment if a packet reaches
12690 the muxer within the specified duration after the segmenting clock
12691 time. This way you can make the segmenter more resilient to
12692 backward local time jumps, such as leap seconds or transition to
12693 standard time from daylight savings time.
12694
12695 Default is the maximum possible duration which means starting a new
12696 segment regardless of the elapsed time since the last clock time.
12697
12698 segment_time_delta delta
12699 Specify the accuracy time when selecting the start time for a
12700 segment, expressed as a duration specification. Default value is
12701 "0".
12702
12703 When delta is specified a key-frame will start a new segment if its
12704 PTS satisfies the relation:
12705
12706 PTS >= start_time - time_delta
12707
12708 This option is useful when splitting video content, which is always
12709 split at GOP boundaries, in case a key frame is found just before
12710 the specified split time.
12711
12712 In particular may be used in combination with the ffmpeg option
12713 force_key_frames. The key frame times specified by force_key_frames
12714 may not be set accurately because of rounding issues, with the
12715 consequence that a key frame time may result set just before the
12716 specified time. For constant frame rate videos a value of
12717 1/(2*frame_rate) should address the worst case mismatch between the
12718 specified time and the time set by force_key_frames.
12719
12720 segment_times times
12721 Specify a list of split points. times contains a list of comma
12722 separated duration specifications, in increasing order. See also
12723 the segment_time option.
12724
12725 segment_frames frames
12726 Specify a list of split video frame numbers. frames contains a list
12727 of comma separated integer numbers, in increasing order.
12728
12729 This option specifies to start a new segment whenever a reference
12730 stream key frame is found and the sequential number (starting from
12731 0) of the frame is greater or equal to the next value in the list.
12732
12733 segment_wrap limit
12734 Wrap around segment index once it reaches limit.
12735
12736 segment_start_number number
12737 Set the sequence number of the first segment. Defaults to 0.
12738
12739 strftime 1|0
12740 Use the "strftime" function to define the name of the new segments
12741 to write. If this is selected, the output segment name must contain
12742 a "strftime" function template. Default value is 0.
12743
12744 break_non_keyframes 1|0
12745 If enabled, allow segments to start on frames other than keyframes.
12746 This improves behavior on some players when the time between
12747 keyframes is inconsistent, but may make things worse on others, and
12748 can cause some oddities during seeking. Defaults to 0.
12749
12750 reset_timestamps 1|0
12751 Reset timestamps at the beginning of each segment, so that each
12752 segment will start with near-zero timestamps. It is meant to ease
12753 the playback of the generated segments. May not work with some
12754 combinations of muxers/codecs. It is set to 0 by default.
12755
12756 initial_offset offset
12757 Specify timestamp offset to apply to the output packet timestamps.
12758 The argument must be a time duration specification, and defaults to
12759 0.
12760
12761 write_empty_segments 1|0
12762 If enabled, write an empty segment if there are no packets during
12763 the period a segment would usually span. Otherwise, the segment
12764 will be filled with the next packet written. Defaults to 0.
12765
12766 Make sure to require a closed GOP when encoding and to set the GOP size
12767 to fit your segment time constraint.
12768
12769 Examples
12770
12771 • Remux the content of file in.mkv to a list of segments out-000.nut,
12772 out-001.nut, etc., and write the list of generated segments to
12773 out.list:
12774
12775 ffmpeg -i in.mkv -codec hevc -flags +cgop -g 60 -map 0 -f segment -segment_list out.list out%03d.nut
12776
12777 • Segment input and set output format options for the output
12778 segments:
12779
12780 ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
12781
12782 • Segment the input file according to the split points specified by
12783 the segment_times option:
12784
12785 ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
12786
12787 • Use the ffmpeg force_key_frames option to force key frames in the
12788 input at the specified location, together with the segment option
12789 segment_time_delta to account for possible roundings operated when
12790 setting key frame times.
12791
12792 ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
12793 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
12794
12795 In order to force key frames on the input file, transcoding is
12796 required.
12797
12798 • Segment the input file by splitting the input file according to the
12799 frame numbers sequence specified with the segment_frames option:
12800
12801 ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
12802
12803 • Convert the in.mkv to TS segments using the "libx264" and "aac"
12804 encoders:
12805
12806 ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a aac -f ssegment -segment_list out.list out%03d.ts
12807
12808 • Segment the input file, and create an M3U8 live playlist (can be
12809 used as live HLS source):
12810
12811 ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
12812 -segment_list_flags +live -segment_time 10 out%03d.mkv
12813
12814 smoothstreaming
12815 Smooth Streaming muxer generates a set of files (Manifest, chunks)
12816 suitable for serving with conventional web server.
12817
12818 window_size
12819 Specify the number of fragments kept in the manifest. Default 0
12820 (keep all).
12821
12822 extra_window_size
12823 Specify the number of fragments kept outside of the manifest before
12824 removing from disk. Default 5.
12825
12826 lookahead_count
12827 Specify the number of lookahead fragments. Default 2.
12828
12829 min_frag_duration
12830 Specify the minimum fragment duration (in microseconds). Default
12831 5000000.
12832
12833 remove_at_exit
12834 Specify whether to remove all fragments when finished. Default 0
12835 (do not remove).
12836
12837 streamhash
12838 Per stream hash testing format.
12839
12840 This muxer computes and prints a cryptographic hash of all the input
12841 frames, on a per-stream basis. This can be used for equality checks
12842 without having to do a complete binary comparison.
12843
12844 By default audio frames are converted to signed 16-bit raw audio and
12845 video frames to raw video before computing the hash, but the output of
12846 explicit conversions to other codecs can also be used. Timestamps are
12847 ignored. It uses the SHA-256 cryptographic hash function by default,
12848 but supports several other algorithms.
12849
12850 The output of the muxer consists of one line per stream of the form:
12851 streamindex,streamtype,algo=hash, where streamindex is the index of the
12852 mapped stream, streamtype is a single character indicating the type of
12853 stream, algo is a short string representing the hash function used, and
12854 hash is a hexadecimal number representing the computed hash.
12855
12856 hash algorithm
12857 Use the cryptographic hash function specified by the string
12858 algorithm. Supported values include "MD5", "murmur3", "RIPEMD128",
12859 "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
12860 (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
12861 and "adler32".
12862
12863 Examples
12864
12865 To compute the SHA-256 hash of the input converted to raw audio and
12866 video, and store it in the file out.sha256:
12867
12868 ffmpeg -i INPUT -f streamhash out.sha256
12869
12870 To print an MD5 hash to stdout use the command:
12871
12872 ffmpeg -i INPUT -f streamhash -hash md5 -
12873
12874 See also the hash and framehash muxers.
12875
12876 tee
12877 The tee muxer can be used to write the same data to several outputs,
12878 such as files or streams. It can be used, for example, to stream a
12879 video over a network and save it to disk at the same time.
12880
12881 It is different from specifying several outputs to the ffmpeg command-
12882 line tool. With the tee muxer, the audio and video data will be encoded
12883 only once. With conventional multiple outputs, multiple encoding
12884 operations in parallel are initiated, which can be a very expensive
12885 process. The tee muxer is not useful when using the libavformat API
12886 directly because it is then possible to feed the same packets to
12887 several muxers directly.
12888
12889 Since the tee muxer does not represent any particular output format,
12890 ffmpeg cannot auto-select output streams. So all streams intended for
12891 output must be specified using "-map". See the examples below.
12892
12893 Some encoders may need different options depending on the output
12894 format; the auto-detection of this can not work with the tee muxer, so
12895 they need to be explicitly specified. The main example is the
12896 global_header flag.
12897
12898 The slave outputs are specified in the file name given to the muxer,
12899 separated by '|'. If any of the slave name contains the '|' separator,
12900 leading or trailing spaces or any special character, those must be
12901 escaped (see the "Quoting and escaping" section in the ffmpeg-utils(1)
12902 manual).
12903
12904 Options
12905
12906 use_fifo bool
12907 If set to 1, slave outputs will be processed in separate threads
12908 using the fifo muxer. This allows to compensate for different
12909 speed/latency/reliability of outputs and setup transparent
12910 recovery. By default this feature is turned off.
12911
12912 fifo_options
12913 Options to pass to fifo pseudo-muxer instances. See fifo.
12914
12915 Muxer options can be specified for each slave by prepending them as a
12916 list of key=value pairs separated by ':', between square brackets. If
12917 the options values contain a special character or the ':' separator,
12918 they must be escaped; note that this is a second level escaping.
12919
12920 The following special options are also recognized:
12921
12922 f Specify the format name. Required if it cannot be guessed from the
12923 output URL.
12924
12925 bsfs[/spec]
12926 Specify a list of bitstream filters to apply to the specified
12927 output.
12928
12929 It is possible to specify to which streams a given bitstream filter
12930 applies, by appending a stream specifier to the option separated by
12931 "/". spec must be a stream specifier (see Format stream
12932 specifiers).
12933
12934 If the stream specifier is not specified, the bitstream filters
12935 will be applied to all streams in the output. This will cause that
12936 output operation to fail if the output contains streams to which
12937 the bitstream filter cannot be applied e.g. "h264_mp4toannexb"
12938 being applied to an output containing an audio stream.
12939
12940 Options for a bitstream filter must be specified in the form of
12941 "opt=value".
12942
12943 Several bitstream filters can be specified, separated by ",".
12944
12945 use_fifo bool
12946 This allows to override tee muxer use_fifo option for individual
12947 slave muxer.
12948
12949 fifo_options
12950 This allows to override tee muxer fifo_options for individual slave
12951 muxer. See fifo.
12952
12953 select
12954 Select the streams that should be mapped to the slave output,
12955 specified by a stream specifier. If not specified, this defaults to
12956 all the mapped streams. This will cause that output operation to
12957 fail if the output format does not accept all mapped streams.
12958
12959 You may use multiple stream specifiers separated by commas (",")
12960 e.g.: "a:0,v"
12961
12962 onfail
12963 Specify behaviour on output failure. This can be set to either
12964 "abort" (which is default) or "ignore". "abort" will cause whole
12965 process to fail in case of failure on this slave output. "ignore"
12966 will ignore failure on this output, so other outputs will continue
12967 without being affected.
12968
12969 Examples
12970
12971 • Encode something and both archive it in a WebM file and stream it
12972 as MPEG-TS over UDP:
12973
12974 ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
12975 "archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
12976
12977 • As above, but continue streaming even if output to local file fails
12978 (for example local drive fills up):
12979
12980 ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
12981 "[onfail=ignore]archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
12982
12983 • Use ffmpeg to encode the input, and send the output to three
12984 different destinations. The "dump_extra" bitstream filter is used
12985 to add extradata information to all the output video keyframes
12986 packets, as requested by the MPEG-TS format. The select option is
12987 applied to out.aac in order to make it contain only audio packets.
12988
12989 ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac
12990 -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
12991
12992 • As above, but select only stream "a:1" for the audio output. Note
12993 that a second level escaping must be performed, as ":" is a special
12994 character used to separate options.
12995
12996 ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac
12997 -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
12998
12999 webm_chunk
13000 WebM Live Chunk Muxer.
13001
13002 This muxer writes out WebM headers and chunks as separate files which
13003 can be consumed by clients that support WebM Live streams via DASH.
13004
13005 Options
13006
13007 This muxer supports the following options:
13008
13009 chunk_start_index
13010 Index of the first chunk (defaults to 0).
13011
13012 header
13013 Filename of the header where the initialization data will be
13014 written.
13015
13016 audio_chunk_duration
13017 Duration of each audio chunk in milliseconds (defaults to 5000).
13018
13019 Example
13020
13021 ffmpeg -f v4l2 -i /dev/video0 \
13022 -f alsa -i hw:0 \
13023 -map 0:0 \
13024 -c:v libvpx-vp9 \
13025 -s 640x360 -keyint_min 30 -g 30 \
13026 -f webm_chunk \
13027 -header webm_live_video_360.hdr \
13028 -chunk_start_index 1 \
13029 webm_live_video_360_%d.chk \
13030 -map 1:0 \
13031 -c:a libvorbis \
13032 -b:a 128k \
13033 -f webm_chunk \
13034 -header webm_live_audio_128.hdr \
13035 -chunk_start_index 1 \
13036 -audio_chunk_duration 1000 \
13037 webm_live_audio_128_%d.chk
13038
13039 webm_dash_manifest
13040 WebM DASH Manifest muxer.
13041
13042 This muxer implements the WebM DASH Manifest specification to generate
13043 the DASH manifest XML. It also supports manifest generation for DASH
13044 live streams.
13045
13046 For more information see:
13047
13048 • WebM DASH Specification:
13049 <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
13050
13051 • ISO DASH Specification:
13052 <http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
13053
13054 Options
13055
13056 This muxer supports the following options:
13057
13058 adaptation_sets
13059 This option has the following syntax: "id=x,streams=a,b,c
13060 id=y,streams=d,e" where x and y are the unique identifiers of the
13061 adaptation sets and a,b,c,d and e are the indices of the
13062 corresponding audio and video streams. Any number of adaptation
13063 sets can be added using this option.
13064
13065 live
13066 Set this to 1 to create a live stream DASH Manifest. Default: 0.
13067
13068 chunk_start_index
13069 Start index of the first chunk. This will go in the startNumber
13070 attribute of the SegmentTemplate element in the manifest. Default:
13071 0.
13072
13073 chunk_duration_ms
13074 Duration of each chunk in milliseconds. This will go in the
13075 duration attribute of the SegmentTemplate element in the manifest.
13076 Default: 1000.
13077
13078 utc_timing_url
13079 URL of the page that will return the UTC timestamp in ISO format.
13080 This will go in the value attribute of the UTCTiming element in the
13081 manifest. Default: None.
13082
13083 time_shift_buffer_depth
13084 Smallest time (in seconds) shifting buffer for which any
13085 Representation is guaranteed to be available. This will go in the
13086 timeShiftBufferDepth attribute of the MPD element. Default: 60.
13087
13088 minimum_update_period
13089 Minimum update period (in seconds) of the manifest. This will go in
13090 the minimumUpdatePeriod attribute of the MPD element. Default: 0.
13091
13092 Example
13093
13094 ffmpeg -f webm_dash_manifest -i video1.webm \
13095 -f webm_dash_manifest -i video2.webm \
13096 -f webm_dash_manifest -i audio1.webm \
13097 -f webm_dash_manifest -i audio2.webm \
13098 -map 0 -map 1 -map 2 -map 3 \
13099 -c copy \
13100 -f webm_dash_manifest \
13101 -adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \
13102 manifest.xml
13103
13105 FFmpeg is able to dump metadata from media files into a simple
13106 UTF-8-encoded INI-like text file and then load it back using the
13107 metadata muxer/demuxer.
13108
13109 The file format is as follows:
13110
13111 1. A file consists of a header and a number of metadata tags divided
13112 into sections, each on its own line.
13113
13114 2. The header is a ;FFMETADATA string, followed by a version number
13115 (now 1).
13116
13117 3. Metadata tags are of the form key=value
13118
13119 4. Immediately after header follows global metadata
13120
13121 5. After global metadata there may be sections with
13122 per-stream/per-chapter metadata.
13123
13124 6. A section starts with the section name in uppercase (i.e. STREAM or
13125 CHAPTER) in brackets ([, ]) and ends with next section or end of
13126 file.
13127
13128 7. At the beginning of a chapter section there may be an optional
13129 timebase to be used for start/end values. It must be in form
13130 TIMEBASE=num/den, where num and den are integers. If the timebase
13131 is missing then start/end times are assumed to be in nanoseconds.
13132
13133 Next a chapter section must contain chapter start and end times in
13134 form START=num, END=num, where num is a positive integer.
13135
13136 8. Empty lines and lines starting with ; or # are ignored.
13137
13138 9. Metadata keys or values containing special characters (=, ;, #, \
13139 and a newline) must be escaped with a backslash \.
13140
13141 10. Note that whitespace in metadata (e.g. foo = bar) is considered to
13142 be a part of the tag (in the example above key is foo , value is
13143 bar).
13144
13145 A ffmetadata file might look like this:
13146
13147 ;FFMETADATA1
13148 title=bike\\shed
13149 ;this is a comment
13150 artist=FFmpeg troll team
13151
13152 [CHAPTER]
13153 TIMEBASE=1/1000
13154 START=0
13155 #chapter ends at 0:01:00
13156 END=60000
13157 title=chapter \#1
13158 [STREAM]
13159 title=multi\
13160 line
13161
13162 By using the ffmetadata muxer and demuxer it is possible to extract
13163 metadata from an input file to an ffmetadata file, and then transcode
13164 the file into an output file with the edited ffmetadata file.
13165
13166 Extracting an ffmetadata file with ffmpeg goes as follows:
13167
13168 ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
13169
13170 Reinserting edited metadata information from the FFMETADATAFILE file
13171 can be done as:
13172
13173 ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
13174
13176 The libavformat library provides some generic global options, which can
13177 be set on all the protocols. In addition each protocol may support so-
13178 called private options, which are specific for that component.
13179
13180 Options may be set by specifying -option value in the FFmpeg tools, or
13181 by setting the value explicitly in the "AVFormatContext" options or
13182 using the libavutil/opt.h API for programmatic use.
13183
13184 The list of supported options follows:
13185
13186 protocol_whitelist list (input)
13187 Set a ","-separated list of allowed protocols. "ALL" matches all
13188 protocols. Protocols prefixed by "-" are disabled. All protocols
13189 are allowed by default but protocols used by an another protocol
13190 (nested protocols) are restricted to a per protocol subset.
13191
13193 Protocols are configured elements in FFmpeg that enable access to
13194 resources that require specific protocols.
13195
13196 When you configure your FFmpeg build, all the supported protocols are
13197 enabled by default. You can list all available ones using the configure
13198 option "--list-protocols".
13199
13200 You can disable all the protocols using the configure option
13201 "--disable-protocols", and selectively enable a protocol using the
13202 option "--enable-protocol=PROTOCOL", or you can disable a particular
13203 protocol using the option "--disable-protocol=PROTOCOL".
13204
13205 The option "-protocols" of the ff* tools will display the list of
13206 supported protocols.
13207
13208 All protocols accept the following options:
13209
13210 rw_timeout
13211 Maximum time to wait for (network) read/write operations to
13212 complete, in microseconds.
13213
13214 A description of the currently available protocols follows.
13215
13216 amqp
13217 Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
13218 based publish-subscribe communication protocol.
13219
13220 FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
13221 separate AMQP broker must also be run. An example open-source AMQP
13222 broker is RabbitMQ.
13223
13224 After starting the broker, an FFmpeg client may stream data to the
13225 broker using the command:
13226
13227 ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
13228
13229 Where hostname and port (default is 5672) is the address of the broker.
13230 The client may also set a user/password for authentication. The default
13231 for both fields is "guest". Name of virtual host on broker can be set
13232 with vhost. The default value is "/".
13233
13234 Muliple subscribers may stream from the broker using the command:
13235
13236 ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
13237
13238 In RabbitMQ all data published to the broker flows through a specific
13239 exchange, and each subscribing client has an assigned queue/buffer.
13240 When a packet arrives at an exchange, it may be copied to a client's
13241 queue depending on the exchange and routing_key fields.
13242
13243 The following options are supported:
13244
13245 exchange
13246 Sets the exchange to use on the broker. RabbitMQ has several
13247 predefined exchanges: "amq.direct" is the default exchange, where
13248 the publisher and subscriber must have a matching routing_key;
13249 "amq.fanout" is the same as a broadcast operation (i.e. the data is
13250 forwarded to all queues on the fanout exchange independent of the
13251 routing_key); and "amq.topic" is similar to "amq.direct", but
13252 allows for more complex pattern matching (refer to the RabbitMQ
13253 documentation).
13254
13255 routing_key
13256 Sets the routing key. The default value is "amqp". The routing key
13257 is used on the "amq.direct" and "amq.topic" exchanges to decide
13258 whether packets are written to the queue of a subscriber.
13259
13260 pkt_size
13261 Maximum size of each packet sent/received to the broker. Default is
13262 131072. Minimum is 4096 and max is any large value (representable
13263 by an int). When receiving packets, this sets an internal buffer
13264 size in FFmpeg. It should be equal to or greater than the size of
13265 the published packets to the broker. Otherwise the received message
13266 may be truncated causing decoding errors.
13267
13268 connection_timeout
13269 The timeout in seconds during the initial connection to the broker.
13270 The default value is rw_timeout, or 5 seconds if rw_timeout is not
13271 set.
13272
13273 delivery_mode mode
13274 Sets the delivery mode of each message sent to broker. The
13275 following values are accepted:
13276
13277 persistent
13278 Delivery mode set to "persistent" (2). This is the default
13279 value. Messages may be written to the broker's disk depending
13280 on its setup.
13281
13282 non-persistent
13283 Delivery mode set to "non-persistent" (1). Messages will stay
13284 in broker's memory unless the broker is under memory pressure.
13285
13286 async
13287 Asynchronous data filling wrapper for input stream.
13288
13289 Fill data in a background thread, to decouple I/O operation from demux
13290 thread.
13291
13292 async:<URL>
13293 async:http://host/resource
13294 async:cache:http://host/resource
13295
13296 bluray
13297 Read BluRay playlist.
13298
13299 The accepted options are:
13300
13301 angle
13302 BluRay angle
13303
13304 chapter
13305 Start chapter (1...N)
13306
13307 playlist
13308 Playlist to read (BDMV/PLAYLIST/?????.mpls)
13309
13310 Examples:
13311
13312 Read longest playlist from BluRay mounted to /mnt/bluray:
13313
13314 bluray:/mnt/bluray
13315
13316 Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
13317 from chapter 2:
13318
13319 -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
13320
13321 cache
13322 Caching wrapper for input stream.
13323
13324 Cache the input stream to temporary file. It brings seeking capability
13325 to live streams.
13326
13327 The accepted options are:
13328
13329 read_ahead_limit
13330 Amount in bytes that may be read ahead when seeking isn't
13331 supported. Range is -1 to INT_MAX. -1 for unlimited. Default is
13332 65536.
13333
13334 URL Syntax is
13335
13336 cache:<URL>
13337
13338 concat
13339 Physical concatenation protocol.
13340
13341 Read and seek from many resources in sequence as if they were a unique
13342 resource.
13343
13344 A URL accepted by this protocol has the syntax:
13345
13346 concat:<URL1>|<URL2>|...|<URLN>
13347
13348 where URL1, URL2, ..., URLN are the urls of the resource to be
13349 concatenated, each one possibly specifying a distinct protocol.
13350
13351 For example to read a sequence of files split1.mpeg, split2.mpeg,
13352 split3.mpeg with ffplay use the command:
13353
13354 ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
13355
13356 Note that you may need to escape the character "|" which is special for
13357 many shells.
13358
13359 concatf
13360 Physical concatenation protocol using a line break delimited list of
13361 resources.
13362
13363 Read and seek from many resources in sequence as if they were a unique
13364 resource.
13365
13366 A URL accepted by this protocol has the syntax:
13367
13368 concatf:<URL>
13369
13370 where URL is the url containing a line break delimited list of
13371 resources to be concatenated, each one possibly specifying a distinct
13372 protocol. Special characters must be escaped with backslash or single
13373 quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
13374 manual.
13375
13376 For example to read a sequence of files split1.mpeg, split2.mpeg,
13377 split3.mpeg listed in separate lines within a file split.txt with
13378 ffplay use the command:
13379
13380 ffplay concatf:split.txt
13381
13382 Where split.txt contains the lines:
13383
13384 split1.mpeg
13385 split2.mpeg
13386 split3.mpeg
13387
13388 crypto
13389 AES-encrypted stream reading protocol.
13390
13391 The accepted options are:
13392
13393 key Set the AES decryption key binary block from given hexadecimal
13394 representation.
13395
13396 iv Set the AES decryption initialization vector binary block from
13397 given hexadecimal representation.
13398
13399 Accepted URL formats:
13400
13401 crypto:<URL>
13402 crypto+<URL>
13403
13404 data
13405 Data in-line in the URI. See
13406 <http://en.wikipedia.org/wiki/Data_URI_scheme>.
13407
13408 For example, to convert a GIF file given inline with ffmpeg:
13409
13410 ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
13411
13412 file
13413 File access protocol.
13414
13415 Read from or write to a file.
13416
13417 A file URL can have the form:
13418
13419 file:<filename>
13420
13421 where filename is the path of the file to read.
13422
13423 An URL that does not have a protocol prefix will be assumed to be a
13424 file URL. Depending on the build, an URL that looks like a Windows path
13425 with the drive letter at the beginning will also be assumed to be a
13426 file URL (usually not the case in builds for unix-like systems).
13427
13428 For example to read from a file input.mpeg with ffmpeg use the command:
13429
13430 ffmpeg -i file:input.mpeg output.mpeg
13431
13432 This protocol accepts the following options:
13433
13434 truncate
13435 Truncate existing files on write, if set to 1. A value of 0
13436 prevents truncating. Default value is 1.
13437
13438 blocksize
13439 Set I/O operation maximum block size, in bytes. Default value is
13440 "INT_MAX", which results in not limiting the requested block size.
13441 Setting this value reasonably low improves user termination request
13442 reaction time, which is valuable for files on slow medium.
13443
13444 follow
13445 If set to 1, the protocol will retry reading at the end of the
13446 file, allowing reading files that still are being written. In order
13447 for this to terminate, you either need to use the rw_timeout
13448 option, or use the interrupt callback (for API users).
13449
13450 seekable
13451 Controls if seekability is advertised on the file. 0 means non-
13452 seekable, -1 means auto (seekable for normal files, non-seekable
13453 for named pipes).
13454
13455 Many demuxers handle seekable and non-seekable resources
13456 differently, overriding this might speed up opening certain files
13457 at the cost of losing some features (e.g. accurate seeking).
13458
13459 ftp
13460 FTP (File Transfer Protocol).
13461
13462 Read from or write to remote resources using FTP protocol.
13463
13464 Following syntax is required.
13465
13466 ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
13467
13468 This protocol accepts the following options.
13469
13470 timeout
13471 Set timeout in microseconds of socket I/O operations used by the
13472 underlying low level operation. By default it is set to -1, which
13473 means that the timeout is not specified.
13474
13475 ftp-user
13476 Set a user to be used for authenticating to the FTP server. This is
13477 overridden by the user in the FTP URL.
13478
13479 ftp-password
13480 Set a password to be used for authenticating to the FTP server.
13481 This is overridden by the password in the FTP URL, or by ftp-
13482 anonymous-password if no user is set.
13483
13484 ftp-anonymous-password
13485 Password used when login as anonymous user. Typically an e-mail
13486 address should be used.
13487
13488 ftp-write-seekable
13489 Control seekability of connection during encoding. If set to 1 the
13490 resource is supposed to be seekable, if set to 0 it is assumed not
13491 to be seekable. Default value is 0.
13492
13493 NOTE: Protocol can be used as output, but it is recommended to not do
13494 it, unless special care is taken (tests, customized server
13495 configuration etc.). Different FTP servers behave in different way
13496 during seek operation. ff* tools may produce incomplete content due to
13497 server limitations.
13498
13499 gopher
13500 Gopher protocol.
13501
13502 gophers
13503 Gophers protocol.
13504
13505 The Gopher protocol with TLS encapsulation.
13506
13507 hls
13508 Read Apple HTTP Live Streaming compliant segmented stream as a uniform
13509 one. The M3U8 playlists describing the segments can be remote HTTP
13510 resources or local files, accessed using the standard file protocol.
13511 The nested protocol is declared by specifying "+proto" after the hls
13512 URI scheme name, where proto is either "file" or "http".
13513
13514 hls+http://host/path/to/remote/resource.m3u8
13515 hls+file://path/to/local/resource.m3u8
13516
13517 Using this protocol is discouraged - the hls demuxer should work just
13518 as well (if not, please report the issues) and is more complete. To
13519 use the hls demuxer instead, simply use the direct URLs to the m3u8
13520 files.
13521
13522 http
13523 HTTP (Hyper Text Transfer Protocol).
13524
13525 This protocol accepts the following options:
13526
13527 seekable
13528 Control seekability of connection. If set to 1 the resource is
13529 supposed to be seekable, if set to 0 it is assumed not to be
13530 seekable, if set to -1 it will try to autodetect if it is seekable.
13531 Default value is -1.
13532
13533 chunked_post
13534 If set to 1 use chunked Transfer-Encoding for posts, default is 1.
13535
13536 content_type
13537 Set a specific content type for the POST messages or for listen
13538 mode.
13539
13540 http_proxy
13541 set HTTP proxy to tunnel through e.g. http://example.com:1234
13542
13543 headers
13544 Set custom HTTP headers, can override built in default headers. The
13545 value must be a string encoding the headers.
13546
13547 multiple_requests
13548 Use persistent connections if set to 1, default is 0.
13549
13550 post_data
13551 Set custom HTTP post data.
13552
13553 referer
13554 Set the Referer header. Include 'Referer: URL' header in HTTP
13555 request.
13556
13557 user_agent
13558 Override the User-Agent header. If not specified the protocol will
13559 use a string describing the libavformat build. ("Lavf/<version>")
13560
13561 reconnect_at_eof
13562 If set then eof is treated like an error and causes reconnection,
13563 this is useful for live / endless streams.
13564
13565 reconnect_streamed
13566 If set then even streamed/non seekable streams will be reconnected
13567 on errors.
13568
13569 reconnect_on_network_error
13570 Reconnect automatically in case of TCP/TLS errors during connect.
13571
13572 reconnect_on_http_error
13573 A comma separated list of HTTP status codes to reconnect on. The
13574 list can include specific status codes (e.g. '503') or the strings
13575 '4xx' / '5xx'.
13576
13577 reconnect_delay_max
13578 Sets the maximum delay in seconds after which to give up
13579 reconnecting
13580
13581 mime_type
13582 Export the MIME type.
13583
13584 http_version
13585 Exports the HTTP response version number. Usually "1.0" or "1.1".
13586
13587 icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
13588 the server supports this, the metadata has to be retrieved by the
13589 application by reading the icy_metadata_headers and
13590 icy_metadata_packet options. The default is 1.
13591
13592 icy_metadata_headers
13593 If the server supports ICY metadata, this contains the ICY-specific
13594 HTTP reply headers, separated by newline characters.
13595
13596 icy_metadata_packet
13597 If the server supports ICY metadata, and icy was set to 1, this
13598 contains the last non-empty metadata packet sent by the server. It
13599 should be polled in regular intervals by applications interested in
13600 mid-stream metadata updates.
13601
13602 cookies
13603 Set the cookies to be sent in future requests. The format of each
13604 cookie is the same as the value of a Set-Cookie HTTP response
13605 field. Multiple cookies can be delimited by a newline character.
13606
13607 offset
13608 Set initial byte offset.
13609
13610 end_offset
13611 Try to limit the request to bytes preceding this offset.
13612
13613 method
13614 When used as a client option it sets the HTTP method for the
13615 request.
13616
13617 When used as a server option it sets the HTTP method that is going
13618 to be expected from the client(s). If the expected and the
13619 received HTTP method do not match the client will be given a Bad
13620 Request response. When unset the HTTP method is not checked for
13621 now. This will be replaced by autodetection in the future.
13622
13623 listen
13624 If set to 1 enables experimental HTTP server. This can be used to
13625 send data when used as an output option, or read data from a client
13626 with HTTP POST when used as an input option. If set to 2 enables
13627 experimental multi-client HTTP server. This is not yet implemented
13628 in ffmpeg.c and thus must not be used as a command line option.
13629
13630 # Server side (sending):
13631 ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
13632
13633 # Client side (receiving):
13634 ffmpeg -i http://<server>:<port> -c copy somefile.ogg
13635
13636 # Client can also be done with wget:
13637 wget http://<server>:<port> -O somefile.ogg
13638
13639 # Server side (receiving):
13640 ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
13641
13642 # Client side (sending):
13643 ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
13644
13645 # Client can also be done with wget:
13646 wget --post-file=somefile.ogg http://<server>:<port>
13647
13648 send_expect_100
13649 Send an Expect: 100-continue header for POST. If set to 1 it will
13650 send, if set to 0 it won't, if set to -1 it will try to send if it
13651 is applicable. Default value is -1.
13652
13653 auth_type
13654 Set HTTP authentication type. No option for Digest, since this
13655 method requires getting nonce parameters from the server first and
13656 can't be used straight away like Basic.
13657
13658 none
13659 Choose the HTTP authentication type automatically. This is the
13660 default.
13661
13662 basic
13663 Choose the HTTP basic authentication.
13664
13665 Basic authentication sends a Base64-encoded string that
13666 contains a user name and password for the client. Base64 is not
13667 a form of encryption and should be considered the same as
13668 sending the user name and password in clear text (Base64 is a
13669 reversible encoding). If a resource needs to be protected,
13670 strongly consider using an authentication scheme other than
13671 basic authentication. HTTPS/TLS should be used with basic
13672 authentication. Without these additional security
13673 enhancements, basic authentication should not be used to
13674 protect sensitive or valuable information.
13675
13676 HTTP Cookies
13677
13678 Some HTTP requests will be denied unless cookie values are passed in
13679 with the request. The cookies option allows these cookies to be
13680 specified. At the very least, each cookie must specify a value along
13681 with a path and domain. HTTP requests that match both the domain and
13682 path will automatically include the cookie value in the HTTP Cookie
13683 header field. Multiple cookies can be delimited by a newline.
13684
13685 The required syntax to play a stream specifying a cookie is:
13686
13687 ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
13688
13689 Icecast
13690 Icecast protocol (stream to Icecast servers)
13691
13692 This protocol accepts the following options:
13693
13694 ice_genre
13695 Set the stream genre.
13696
13697 ice_name
13698 Set the stream name.
13699
13700 ice_description
13701 Set the stream description.
13702
13703 ice_url
13704 Set the stream website URL.
13705
13706 ice_public
13707 Set if the stream should be public. The default is 0 (not public).
13708
13709 user_agent
13710 Override the User-Agent header. If not specified a string of the
13711 form "Lavf/<version>" will be used.
13712
13713 password
13714 Set the Icecast mountpoint password.
13715
13716 content_type
13717 Set the stream content type. This must be set if it is different
13718 from audio/mpeg.
13719
13720 legacy_icecast
13721 This enables support for Icecast versions < 2.4.0, that do not
13722 support the HTTP PUT method but the SOURCE method.
13723
13724 tls Establish a TLS (HTTPS) connection to Icecast.
13725
13726 icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
13727
13728 mmst
13729 MMS (Microsoft Media Server) protocol over TCP.
13730
13731 mmsh
13732 MMS (Microsoft Media Server) protocol over HTTP.
13733
13734 The required syntax is:
13735
13736 mmsh://<server>[:<port>][/<app>][/<playpath>]
13737
13738 md5
13739 MD5 output protocol.
13740
13741 Computes the MD5 hash of the data to be written, and on close writes
13742 this to the designated output or stdout if none is specified. It can be
13743 used to test muxers without writing an actual file.
13744
13745 Some examples follow.
13746
13747 # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
13748 ffmpeg -i input.flv -f avi -y md5:output.avi.md5
13749
13750 # Write the MD5 hash of the encoded AVI file to stdout.
13751 ffmpeg -i input.flv -f avi -y md5:
13752
13753 Note that some formats (typically MOV) require the output protocol to
13754 be seekable, so they will fail with the MD5 output protocol.
13755
13756 pipe
13757 UNIX pipe access protocol.
13758
13759 Read and write from UNIX pipes.
13760
13761 The accepted syntax is:
13762
13763 pipe:[<number>]
13764
13765 number is the number corresponding to the file descriptor of the pipe
13766 (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number is not
13767 specified, by default the stdout file descriptor will be used for
13768 writing, stdin for reading.
13769
13770 For example to read from stdin with ffmpeg:
13771
13772 cat test.wav | ffmpeg -i pipe:0
13773 # ...this is the same as...
13774 cat test.wav | ffmpeg -i pipe:
13775
13776 For writing to stdout with ffmpeg:
13777
13778 ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
13779 # ...this is the same as...
13780 ffmpeg -i test.wav -f avi pipe: | cat > test.avi
13781
13782 This protocol accepts the following options:
13783
13784 blocksize
13785 Set I/O operation maximum block size, in bytes. Default value is
13786 "INT_MAX", which results in not limiting the requested block size.
13787 Setting this value reasonably low improves user termination request
13788 reaction time, which is valuable if data transmission is slow.
13789
13790 Note that some formats (typically MOV), require the output protocol to
13791 be seekable, so they will fail with the pipe output protocol.
13792
13793 prompeg
13794 Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
13795
13796 The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
13797 mechanism for MPEG-2 Transport Streams sent over RTP.
13798
13799 This protocol must be used in conjunction with the "rtp_mpegts" muxer
13800 and the "rtp" protocol.
13801
13802 The required syntax is:
13803
13804 -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
13805
13806 The destination UDP ports are "port + 2" for the column FEC stream and
13807 "port + 4" for the row FEC stream.
13808
13809 This protocol accepts the following options:
13810
13811 l=n The number of columns (4-20, LxD <= 100)
13812
13813 d=n The number of rows (4-20, LxD <= 100)
13814
13815 Example usage:
13816
13817 -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
13818
13819 rist
13820 Reliable Internet Streaming Transport protocol
13821
13822 The accepted options are:
13823
13824 rist_profile
13825 Supported values:
13826
13827 simple
13828 main
13829 This one is default.
13830
13831 advanced
13832 buffer_size
13833 Set internal RIST buffer size in milliseconds for retransmission of
13834 data. Default value is 0 which means the librist default (1 sec).
13835 Maximum value is 30 seconds.
13836
13837 pkt_size
13838 Set maximum packet size for sending data. 1316 by default.
13839
13840 log_level
13841 Set loglevel for RIST logging messages. You only need to set this
13842 if you explicitly want to enable debug level messages or packet
13843 loss simulation, otherwise the regular loglevel is respected.
13844
13845 secret
13846 Set override of encryption secret, by default is unset.
13847
13848 encryption
13849 Set encryption type, by default is disabled. Acceptable values are
13850 128 and 256.
13851
13852 rtmp
13853 Real-Time Messaging Protocol.
13854
13855 The Real-Time Messaging Protocol (RTMP) is used for streaming
13856 multimedia content across a TCP/IP network.
13857
13858 The required syntax is:
13859
13860 rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
13861
13862 The accepted parameters are:
13863
13864 username
13865 An optional username (mostly for publishing).
13866
13867 password
13868 An optional password (mostly for publishing).
13869
13870 server
13871 The address of the RTMP server.
13872
13873 port
13874 The number of the TCP port to use (by default is 1935).
13875
13876 app It is the name of the application to access. It usually corresponds
13877 to the path where the application is installed on the RTMP server
13878 (e.g. /ondemand/, /flash/live/, etc.). You can override the value
13879 parsed from the URI through the "rtmp_app" option, too.
13880
13881 playpath
13882 It is the path or name of the resource to play with reference to
13883 the application specified in app, may be prefixed by "mp4:". You
13884 can override the value parsed from the URI through the
13885 "rtmp_playpath" option, too.
13886
13887 listen
13888 Act as a server, listening for an incoming connection.
13889
13890 timeout
13891 Maximum time to wait for the incoming connection. Implies listen.
13892
13893 Additionally, the following parameters can be set via command line
13894 options (or in code via "AVOption"s):
13895
13896 rtmp_app
13897 Name of application to connect on the RTMP server. This option
13898 overrides the parameter specified in the URI.
13899
13900 rtmp_buffer
13901 Set the client buffer time in milliseconds. The default is 3000.
13902
13903 rtmp_conn
13904 Extra arbitrary AMF connection parameters, parsed from a string,
13905 e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Each
13906 value is prefixed by a single character denoting the type, B for
13907 Boolean, N for number, S for string, O for object, or Z for null,
13908 followed by a colon. For Booleans the data must be either 0 or 1
13909 for FALSE or TRUE, respectively. Likewise for Objects the data
13910 must be 0 or 1 to end or begin an object, respectively. Data items
13911 in subobjects may be named, by prefixing the type with 'N' and
13912 specifying the name before the value (i.e. "NB:myFlag:1"). This
13913 option may be used multiple times to construct arbitrary AMF
13914 sequences.
13915
13916 rtmp_flashver
13917 Version of the Flash plugin used to run the SWF player. The default
13918 is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
13919 (compatible; <libavformat version>).)
13920
13921 rtmp_flush_interval
13922 Number of packets flushed in the same request (RTMPT only). The
13923 default is 10.
13924
13925 rtmp_live
13926 Specify that the media is a live stream. No resuming or seeking in
13927 live streams is possible. The default value is "any", which means
13928 the subscriber first tries to play the live stream specified in the
13929 playpath. If a live stream of that name is not found, it plays the
13930 recorded stream. The other possible values are "live" and
13931 "recorded".
13932
13933 rtmp_pageurl
13934 URL of the web page in which the media was embedded. By default no
13935 value will be sent.
13936
13937 rtmp_playpath
13938 Stream identifier to play or to publish. This option overrides the
13939 parameter specified in the URI.
13940
13941 rtmp_subscribe
13942 Name of live stream to subscribe to. By default no value will be
13943 sent. It is only sent if the option is specified or if rtmp_live
13944 is set to live.
13945
13946 rtmp_swfhash
13947 SHA256 hash of the decompressed SWF file (32 bytes).
13948
13949 rtmp_swfsize
13950 Size of the decompressed SWF file, required for SWFVerification.
13951
13952 rtmp_swfurl
13953 URL of the SWF player for the media. By default no value will be
13954 sent.
13955
13956 rtmp_swfverify
13957 URL to player swf file, compute hash/size automatically.
13958
13959 rtmp_tcurl
13960 URL of the target stream. Defaults to proto://host[:port]/app.
13961
13962 tcp_nodelay=1|0
13963 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
13964
13965 Remark: Writing to the socket is currently not optimized to
13966 minimize system calls and reduces the efficiency / effect of
13967 TCP_NODELAY.
13968
13969 For example to read with ffplay a multimedia resource named "sample"
13970 from the application "vod" from an RTMP server "myserver":
13971
13972 ffplay rtmp://myserver/vod/sample
13973
13974 To publish to a password protected server, passing the playpath and app
13975 names separately:
13976
13977 ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
13978
13979 rtmpe
13980 Encrypted Real-Time Messaging Protocol.
13981
13982 The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
13983 streaming multimedia content within standard cryptographic primitives,
13984 consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
13985 pair of RC4 keys.
13986
13987 rtmps
13988 Real-Time Messaging Protocol over a secure SSL connection.
13989
13990 The Real-Time Messaging Protocol (RTMPS) is used for streaming
13991 multimedia content across an encrypted connection.
13992
13993 rtmpt
13994 Real-Time Messaging Protocol tunneled through HTTP.
13995
13996 The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
13997 for streaming multimedia content within HTTP requests to traverse
13998 firewalls.
13999
14000 rtmpte
14001 Encrypted Real-Time Messaging Protocol tunneled through HTTP.
14002
14003 The Encrypted Real-Time Messaging Protocol tunneled through HTTP
14004 (RTMPTE) is used for streaming multimedia content within HTTP requests
14005 to traverse firewalls.
14006
14007 rtmpts
14008 Real-Time Messaging Protocol tunneled through HTTPS.
14009
14010 The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
14011 used for streaming multimedia content within HTTPS requests to traverse
14012 firewalls.
14013
14014 libsmbclient
14015 libsmbclient permits one to manipulate CIFS/SMB network resources.
14016
14017 Following syntax is required.
14018
14019 smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
14020
14021 This protocol accepts the following options.
14022
14023 timeout
14024 Set timeout in milliseconds of socket I/O operations used by the
14025 underlying low level operation. By default it is set to -1, which
14026 means that the timeout is not specified.
14027
14028 truncate
14029 Truncate existing files on write, if set to 1. A value of 0
14030 prevents truncating. Default value is 1.
14031
14032 workgroup
14033 Set the workgroup used for making connections. By default workgroup
14034 is not specified.
14035
14036 For more information see: <http://www.samba.org/>.
14037
14038 libssh
14039 Secure File Transfer Protocol via libssh
14040
14041 Read from or write to remote resources using SFTP protocol.
14042
14043 Following syntax is required.
14044
14045 sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
14046
14047 This protocol accepts the following options.
14048
14049 timeout
14050 Set timeout of socket I/O operations used by the underlying low
14051 level operation. By default it is set to -1, which means that the
14052 timeout is not specified.
14053
14054 truncate
14055 Truncate existing files on write, if set to 1. A value of 0
14056 prevents truncating. Default value is 1.
14057
14058 private_key
14059 Specify the path of the file containing private key to use during
14060 authorization. By default libssh searches for keys in the ~/.ssh/
14061 directory.
14062
14063 Example: Play a file stored on remote server.
14064
14065 ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
14066
14067 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
14068 Real-Time Messaging Protocol and its variants supported through
14069 librtmp.
14070
14071 Requires the presence of the librtmp headers and library during
14072 configuration. You need to explicitly configure the build with
14073 "--enable-librtmp". If enabled this will replace the native RTMP
14074 protocol.
14075
14076 This protocol provides most client functions and a few server functions
14077 needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
14078 (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
14079 encrypted types (RTMPTE, RTMPTS).
14080
14081 The required syntax is:
14082
14083 <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
14084
14085 where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
14086 "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
14087 server, port, app and playpath have the same meaning as specified for
14088 the RTMP native protocol. options contains a list of space-separated
14089 options of the form key=val.
14090
14091 See the librtmp manual page (man 3 librtmp) for more information.
14092
14093 For example, to stream a file in real-time to an RTMP server using
14094 ffmpeg:
14095
14096 ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
14097
14098 To play the same stream using ffplay:
14099
14100 ffplay "rtmp://myserver/live/mystream live=1"
14101
14102 rtp
14103 Real-time Transport Protocol.
14104
14105 The required syntax for an RTP URL is:
14106 rtp://hostname[:port][?option=val...]
14107
14108 port specifies the RTP port to use.
14109
14110 The following URL options are supported:
14111
14112 ttl=n
14113 Set the TTL (Time-To-Live) value (for multicast only).
14114
14115 rtcpport=n
14116 Set the remote RTCP port to n.
14117
14118 localrtpport=n
14119 Set the local RTP port to n.
14120
14121 localrtcpport=n'
14122 Set the local RTCP port to n.
14123
14124 pkt_size=n
14125 Set max packet size (in bytes) to n.
14126
14127 buffer_size=size
14128 Set the maximum UDP socket buffer size in bytes.
14129
14130 connect=0|1
14131 Do a "connect()" on the UDP socket (if set to 1) or not (if set to
14132 0).
14133
14134 sources=ip[,ip]
14135 List allowed source IP addresses.
14136
14137 block=ip[,ip]
14138 List disallowed (blocked) source IP addresses.
14139
14140 write_to_source=0|1
14141 Send packets to the source address of the latest received packet
14142 (if set to 1) or to a default remote address (if set to 0).
14143
14144 localport=n
14145 Set the local RTP port to n.
14146
14147 localaddr=addr
14148 Local IP address of a network interface used for sending packets or
14149 joining multicast groups.
14150
14151 timeout=n
14152 Set timeout (in microseconds) of socket I/O operations to n.
14153
14154 This is a deprecated option. Instead, localrtpport should be used.
14155
14156 Important notes:
14157
14158 1. If rtcpport is not set the RTCP port will be set to the RTP port
14159 value plus 1.
14160
14161 2. If localrtpport (the local RTP port) is not set any available port
14162 will be used for the local RTP and RTCP ports.
14163
14164 3. If localrtcpport (the local RTCP port) is not set it will be set to
14165 the local RTP port value plus 1.
14166
14167 rtsp
14168 Real-Time Streaming Protocol.
14169
14170 RTSP is not technically a protocol handler in libavformat, it is a
14171 demuxer and muxer. The demuxer supports both normal RTSP (with data
14172 transferred over RTP; this is used by e.g. Apple and Microsoft) and
14173 Real-RTSP (with data transferred over RDT).
14174
14175 The muxer can be used to send a stream using RTSP ANNOUNCE to a server
14176 supporting it (currently Darwin Streaming Server and Mischa
14177 Spiegelmock's <https://github.com/revmischa/rtsp-server>).
14178
14179 The required syntax for a RTSP url is:
14180
14181 rtsp://<hostname>[:<port>]/<path>
14182
14183 Options can be set on the ffmpeg/ffplay command line, or set in code
14184 via "AVOption"s or in "avformat_open_input".
14185
14186 The following options are supported.
14187
14188 initial_pause
14189 Do not start playing the stream immediately if set to 1. Default
14190 value is 0.
14191
14192 rtsp_transport
14193 Set RTSP transport protocols.
14194
14195 It accepts the following values:
14196
14197 udp Use UDP as lower transport protocol.
14198
14199 tcp Use TCP (interleaving within the RTSP control channel) as lower
14200 transport protocol.
14201
14202 udp_multicast
14203 Use UDP multicast as lower transport protocol.
14204
14205 http
14206 Use HTTP tunneling as lower transport protocol, which is useful
14207 for passing proxies.
14208
14209 Multiple lower transport protocols may be specified, in that case
14210 they are tried one at a time (if the setup of one fails, the next
14211 one is tried). For the muxer, only the tcp and udp options are
14212 supported.
14213
14214 rtsp_flags
14215 Set RTSP flags.
14216
14217 The following values are accepted:
14218
14219 filter_src
14220 Accept packets only from negotiated peer address and port.
14221
14222 listen
14223 Act as a server, listening for an incoming connection.
14224
14225 prefer_tcp
14226 Try TCP for RTP transport first, if TCP is available as RTSP
14227 RTP transport.
14228
14229 Default value is none.
14230
14231 allowed_media_types
14232 Set media types to accept from the server.
14233
14234 The following flags are accepted:
14235
14236 video
14237 audio
14238 data
14239
14240 By default it accepts all media types.
14241
14242 min_port
14243 Set minimum local UDP port. Default value is 5000.
14244
14245 max_port
14246 Set maximum local UDP port. Default value is 65000.
14247
14248 listen_timeout
14249 Set maximum timeout (in seconds) to establish an initial
14250 connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
14251 Default is -1 which means an infinite timeout when listen mode is
14252 set.
14253
14254 reorder_queue_size
14255 Set number of packets to buffer for handling of reordered packets.
14256
14257 timeout
14258 Set socket TCP I/O timeout in microseconds.
14259
14260 user_agent
14261 Override User-Agent header. If not specified, it defaults to the
14262 libavformat identifier string.
14263
14264 When receiving data over UDP, the demuxer tries to reorder received
14265 packets (since they may arrive out of order, or packets may get lost
14266 totally). This can be disabled by setting the maximum demuxing delay to
14267 zero (via the "max_delay" field of AVFormatContext).
14268
14269 When watching multi-bitrate Real-RTSP streams with ffplay, the streams
14270 to display can be chosen with "-vst" n and "-ast" n for video and audio
14271 respectively, and can be switched on the fly by pressing "v" and "a".
14272
14273 Examples
14274
14275 The following examples all make use of the ffplay and ffmpeg tools.
14276
14277 • Watch a stream over UDP, with a max reordering delay of 0.5
14278 seconds:
14279
14280 ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
14281
14282 • Watch a stream tunneled over HTTP:
14283
14284 ffplay -rtsp_transport http rtsp://server/video.mp4
14285
14286 • Send a stream in realtime to a RTSP server, for others to watch:
14287
14288 ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
14289
14290 • Receive a stream in realtime:
14291
14292 ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
14293
14294 sap
14295 Session Announcement Protocol (RFC 2974). This is not technically a
14296 protocol handler in libavformat, it is a muxer and demuxer. It is used
14297 for signalling of RTP streams, by announcing the SDP for the streams
14298 regularly on a separate port.
14299
14300 Muxer
14301
14302 The syntax for a SAP url given to the muxer is:
14303
14304 sap://<destination>[:<port>][?<options>]
14305
14306 The RTP packets are sent to destination on port port, or to port 5004
14307 if no port is specified. options is a "&"-separated list. The
14308 following options are supported:
14309
14310 announce_addr=address
14311 Specify the destination IP address for sending the announcements
14312 to. If omitted, the announcements are sent to the commonly used
14313 SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
14314 or ff0e::2:7ffe if destination is an IPv6 address.
14315
14316 announce_port=port
14317 Specify the port to send the announcements on, defaults to 9875 if
14318 not specified.
14319
14320 ttl=ttl
14321 Specify the time to live value for the announcements and RTP
14322 packets, defaults to 255.
14323
14324 same_port=0|1
14325 If set to 1, send all RTP streams on the same port pair. If zero
14326 (the default), all streams are sent on unique ports, with each
14327 stream on a port 2 numbers higher than the previous. VLC/Live555
14328 requires this to be set to 1, to be able to receive the stream.
14329 The RTP stack in libavformat for receiving requires all streams to
14330 be sent on unique ports.
14331
14332 Example command lines follow.
14333
14334 To broadcast a stream on the local subnet, for watching in VLC:
14335
14336 ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
14337
14338 Similarly, for watching in ffplay:
14339
14340 ffmpeg -re -i <input> -f sap sap://224.0.0.255
14341
14342 And for watching in ffplay, over IPv6:
14343
14344 ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
14345
14346 Demuxer
14347
14348 The syntax for a SAP url given to the demuxer is:
14349
14350 sap://[<address>][:<port>]
14351
14352 address is the multicast address to listen for announcements on, if
14353 omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
14354 port that is listened on, 9875 if omitted.
14355
14356 The demuxers listens for announcements on the given address and port.
14357 Once an announcement is received, it tries to receive that particular
14358 stream.
14359
14360 Example command lines follow.
14361
14362 To play back the first stream announced on the normal SAP multicast
14363 address:
14364
14365 ffplay sap://
14366
14367 To play back the first stream announced on one the default IPv6 SAP
14368 multicast address:
14369
14370 ffplay sap://[ff0e::2:7ffe]
14371
14372 sctp
14373 Stream Control Transmission Protocol.
14374
14375 The accepted URL syntax is:
14376
14377 sctp://<host>:<port>[?<options>]
14378
14379 The protocol accepts the following options:
14380
14381 listen
14382 If set to any value, listen for an incoming connection. Outgoing
14383 connection is done by default.
14384
14385 max_streams
14386 Set the maximum number of streams. By default no limit is set.
14387
14388 srt
14389 Haivision Secure Reliable Transport Protocol via libsrt.
14390
14391 The supported syntax for a SRT URL is:
14392
14393 srt://<hostname>:<port>[?<options>]
14394
14395 options contains a list of &-separated options of the form key=val.
14396
14397 or
14398
14399 <options> srt://<hostname>:<port>
14400
14401 options contains a list of '-key val' options.
14402
14403 This protocol accepts the following options.
14404
14405 connect_timeout=milliseconds
14406 Connection timeout; SRT cannot connect for RTT > 1500 msec (2
14407 handshake exchanges) with the default connect timeout of 3 seconds.
14408 This option applies to the caller and rendezvous connection modes.
14409 The connect timeout is 10 times the value set for the rendezvous
14410 mode (which can be used as a workaround for this connection problem
14411 with earlier versions).
14412
14413 ffs=bytes
14414 Flight Flag Size (Window Size), in bytes. FFS is actually an
14415 internal parameter and you should set it to not less than
14416 recv_buffer_size and mss. The default value is relatively large,
14417 therefore unless you set a very large receiver buffer, you do not
14418 need to change this option. Default value is 25600.
14419
14420 inputbw=bytes/seconds
14421 Sender nominal input rate, in bytes per seconds. Used along with
14422 oheadbw, when maxbw is set to relative (0), to calculate maximum
14423 sending rate when recovery packets are sent along with the main
14424 media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
14425 while maxbw is set to relative (0), the actual input rate is
14426 evaluated inside the library. Default value is 0.
14427
14428 iptos=tos
14429 IP Type of Service. Applies to sender only. Default value is 0xB8.
14430
14431 ipttl=ttl
14432 IP Time To Live. Applies to sender only. Default value is 64.
14433
14434 latency=microseconds
14435 Timestamp-based Packet Delivery Delay. Used to absorb bursts of
14436 missed packet retransmissions. This flag sets both rcvlatency and
14437 peerlatency to the same value. Note that prior to version 1.3.0
14438 this is the only flag to set the latency, however this is
14439 effectively equivalent to setting peerlatency, when side is sender
14440 and rcvlatency when side is receiver, and the bidirectional stream
14441 sending is not supported.
14442
14443 listen_timeout=microseconds
14444 Set socket listen timeout.
14445
14446 maxbw=bytes/seconds
14447 Maximum sending bandwidth, in bytes per seconds. -1 infinite
14448 (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
14449 absolute limit value Default value is 0 (relative)
14450
14451 mode=caller|listener|rendezvous
14452 Connection mode. caller opens client connection. listener starts
14453 server to listen for incoming connections. rendezvous use Rendez-
14454 Vous connection mode. Default value is caller.
14455
14456 mss=bytes
14457 Maximum Segment Size, in bytes. Used for buffer allocation and rate
14458 calculation using a packet counter assuming fully filled packets.
14459 The smallest MSS between the peers is used. This is 1500 by default
14460 in the overall internet. This is the maximum size of the UDP
14461 packet and can be only decreased, unless you have some unusual
14462 dedicated network settings. Default value is 1500.
14463
14464 nakreport=1|0
14465 If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
14466 periodically until a lost packet is retransmitted or intentionally
14467 dropped. Default value is 1.
14468
14469 oheadbw=percents
14470 Recovery bandwidth overhead above input rate, in percents. See
14471 inputbw. Default value is 25%.
14472
14473 passphrase=string
14474 HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
14475 79 characters. The passphrase is the shared secret between the
14476 sender and the receiver. It is used to generate the Key Encrypting
14477 Key using PBKDF2 (Password-Based Key Derivation Function). It is
14478 used only if pbkeylen is non-zero. It is used on the receiver only
14479 if the received data is encrypted. The configured passphrase
14480 cannot be recovered (write-only).
14481
14482 enforced_encryption=1|0
14483 If true, both connection parties must have the same password set
14484 (including empty, that is, with no encryption). If the password
14485 doesn't match or only one side is unencrypted, the connection is
14486 rejected. Default is true.
14487
14488 kmrefreshrate=packets
14489 The number of packets to be transmitted after which the encryption
14490 key is switched to a new key. Default is -1. -1 means auto
14491 (0x1000000 in srt library). The range for this option is integers
14492 in the 0 - "INT_MAX".
14493
14494 kmpreannounce=packets
14495 The interval between when a new encryption key is sent and when
14496 switchover occurs. This value also applies to the subsequent
14497 interval between when switchover occurs and when the old encryption
14498 key is decommissioned. Default is -1. -1 means auto (0x1000 in srt
14499 library). The range for this option is integers in the 0 -
14500 "INT_MAX".
14501
14502 snddropdelay=microseconds
14503 The sender's extra delay before dropping packets. This delay is
14504 added to the default drop delay time interval value.
14505
14506 Special value -1: Do not drop packets on the sender at all.
14507
14508 payload_size=bytes
14509 Sets the maximum declared size of a packet transferred during the
14510 single call to the sending function in Live mode. Use 0 if this
14511 value isn't used (which is default in file mode). Default is -1
14512 (automatic), which typically means MPEG-TS; if you are going to use
14513 SRT to send any different kind of payload, such as, for example,
14514 wrapping a live stream in very small frames, then you can use a
14515 bigger maximum frame size, though not greater than 1456 bytes.
14516
14517 pkt_size=bytes
14518 Alias for payload_size.
14519
14520 peerlatency=microseconds
14521 The latency value (as described in rcvlatency) that is set by the
14522 sender side as a minimum value for the receiver.
14523
14524 pbkeylen=bytes
14525 Sender encryption key length, in bytes. Only can be set to 0, 16,
14526 24 and 32. Enable sender encryption if not 0. Not required on
14527 receiver (set to 0), key size obtained from sender in HaiCrypt
14528 handshake. Default value is 0.
14529
14530 rcvlatency=microseconds
14531 The time that should elapse since the moment when the packet was
14532 sent and the moment when it's delivered to the receiver application
14533 in the receiving function. This time should be a buffer time large
14534 enough to cover the time spent for sending, unexpectedly extended
14535 RTT time, and the time needed to retransmit the lost UDP packet.
14536 The effective latency value will be the maximum of this options'
14537 value and the value of peerlatency set by the peer side. Before
14538 version 1.3.0 this option is only available as latency.
14539
14540 recv_buffer_size=bytes
14541 Set UDP receive buffer size, expressed in bytes.
14542
14543 send_buffer_size=bytes
14544 Set UDP send buffer size, expressed in bytes.
14545
14546 timeout=microseconds
14547 Set raise error timeouts for read, write and connect operations.
14548 Note that the SRT library has internal timeouts which can be
14549 controlled separately, the value set here is only a cap on those.
14550
14551 tlpktdrop=1|0
14552 Too-late Packet Drop. When enabled on receiver, it skips missing
14553 packets that have not been delivered in time and delivers the
14554 following packets to the application when their time-to-play has
14555 come. It also sends a fake ACK to the sender. When enabled on
14556 sender and enabled on the receiving peer, the sender drops the
14557 older packets that have no chance of being delivered in time. It
14558 was automatically enabled in the sender if the receiver supports
14559 it.
14560
14561 sndbuf=bytes
14562 Set send buffer size, expressed in bytes.
14563
14564 rcvbuf=bytes
14565 Set receive buffer size, expressed in bytes.
14566
14567 Receive buffer must not be greater than ffs.
14568
14569 lossmaxttl=packets
14570 The value up to which the Reorder Tolerance may grow. When Reorder
14571 Tolerance is > 0, then packet loss report is delayed until that
14572 number of packets come in. Reorder Tolerance increases every time a
14573 "belated" packet has come, but it wasn't due to retransmission
14574 (that is, when UDP packets tend to come out of order), with the
14575 difference between the latest sequence and this packet's sequence,
14576 and not more than the value of this option. By default it's 0,
14577 which means that this mechanism is turned off, and the loss report
14578 is always sent immediately upon experiencing a "gap" in sequences.
14579
14580 minversion
14581 The minimum SRT version that is required from the peer. A
14582 connection to a peer that does not satisfy the minimum version
14583 requirement will be rejected.
14584
14585 The version format in hex is 0xXXYYZZ for x.y.z in human readable
14586 form.
14587
14588 streamid=string
14589 A string limited to 512 characters that can be set on the socket
14590 prior to connecting. This stream ID will be able to be retrieved by
14591 the listener side from the socket that is returned from srt_accept
14592 and was connected by a socket with that set stream ID. SRT does not
14593 enforce any special interpretation of the contents of this string.
14594 This option doesnXt make sense in Rendezvous connection; the result
14595 might be that simply one side will override the value from the
14596 other side and itXs the matter of luck which one would win
14597
14598 srt_streamid=string
14599 Alias for streamid to avoid conflict with ffmpeg command line
14600 option.
14601
14602 smoother=live|file
14603 The type of Smoother used for the transmission for that socket,
14604 which is responsible for the transmission and congestion control.
14605 The Smoother type must be exactly the same on both connecting
14606 parties, otherwise the connection is rejected.
14607
14608 messageapi=1|0
14609 When set, this socket uses the Message API, otherwise it uses
14610 Buffer API. Note that in live mode (see transtype) thereXs only
14611 message API available. In File mode you can chose to use one of two
14612 modes:
14613
14614 Stream API (default, when this option is false). In this mode you
14615 may send as many data as you wish with one sending instruction, or
14616 even use dedicated functions that read directly from a file. The
14617 internal facility will take care of any speed and congestion
14618 control. When receiving, you can also receive as many data as
14619 desired, the data not extracted will be waiting for the next call.
14620 There is no boundary between data portions in the Stream mode.
14621
14622 Message API. In this mode your single sending instruction passes
14623 exactly one piece of data that has boundaries (a message). Contrary
14624 to Live mode, this message may span across multiple UDP packets and
14625 the only size limitation is that it shall fit as a whole in the
14626 sending buffer. The receiver shall use as large buffer as necessary
14627 to receive the message, otherwise the message will not be given up.
14628 When the message is not complete (not all packets received or there
14629 was a packet loss) it will not be given up.
14630
14631 transtype=live|file
14632 Sets the transmission type for the socket, in particular, setting
14633 this option sets multiple other parameters to their default values
14634 as required for a particular transmission type.
14635
14636 live: Set options as for live transmission. In this mode, you
14637 should send by one sending instruction only so many data that fit
14638 in one UDP packet, and limited to the value defined first in
14639 payload_size (1316 is default in this mode). There is no speed
14640 control in this mode, only the bandwidth control, if configured, in
14641 order to not exceed the bandwidth with the overhead transmission
14642 (retransmitted and control packets).
14643
14644 file: Set options as for non-live transmission. See messageapi for
14645 further explanations
14646
14647 linger=seconds
14648 The number of seconds that the socket waits for unsent data when
14649 closing. Default is -1. -1 means auto (off with 0 seconds in live
14650 mode, on with 180 seconds in file mode). The range for this option
14651 is integers in the 0 - "INT_MAX".
14652
14653 tsbpd=1|0
14654 When true, use Timestamp-based Packet Delivery mode. The default
14655 behavior depends on the transmission type: enabled in live mode,
14656 disabled in file mode.
14657
14658 For more information see: <https://github.com/Haivision/srt>.
14659
14660 srtp
14661 Secure Real-time Transport Protocol.
14662
14663 The accepted options are:
14664
14665 srtp_in_suite
14666 srtp_out_suite
14667 Select input and output encoding suites.
14668
14669 Supported values:
14670
14671 AES_CM_128_HMAC_SHA1_80
14672 SRTP_AES128_CM_HMAC_SHA1_80
14673 AES_CM_128_HMAC_SHA1_32
14674 SRTP_AES128_CM_HMAC_SHA1_32
14675 srtp_in_params
14676 srtp_out_params
14677 Set input and output encoding parameters, which are expressed by a
14678 base64-encoded representation of a binary block. The first 16 bytes
14679 of this binary block are used as master key, the following 14 bytes
14680 are used as master salt.
14681
14682 subfile
14683 Virtually extract a segment of a file or another stream. The
14684 underlying stream must be seekable.
14685
14686 Accepted options:
14687
14688 start
14689 Start offset of the extracted segment, in bytes.
14690
14691 end End offset of the extracted segment, in bytes. If set to 0,
14692 extract till end of file.
14693
14694 Examples:
14695
14696 Extract a chapter from a DVD VOB file (start and end sectors obtained
14697 externally and multiplied by 2048):
14698
14699 subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
14700
14701 Play an AVI file directly from a TAR archive:
14702
14703 subfile,,start,183241728,end,366490624,,:archive.tar
14704
14705 Play a MPEG-TS file from start offset till end:
14706
14707 subfile,,start,32815239,end,0,,:video.ts
14708
14709 tee
14710 Writes the output to multiple protocols. The individual outputs are
14711 separated by |
14712
14713 tee:file://path/to/local/this.avi|file://path/to/local/that.avi
14714
14715 tcp
14716 Transmission Control Protocol.
14717
14718 The required syntax for a TCP url is:
14719
14720 tcp://<hostname>:<port>[?<options>]
14721
14722 options contains a list of &-separated options of the form key=val.
14723
14724 The list of supported options follows.
14725
14726 listen=2|1|0
14727 Listen for an incoming connection. 0 disables listen, 1 enables
14728 listen in single client mode, 2 enables listen in multi-client
14729 mode. Default value is 0.
14730
14731 timeout=microseconds
14732 Set raise error timeout, expressed in microseconds.
14733
14734 This option is only relevant in read mode: if no data arrived in
14735 more than this time interval, raise error.
14736
14737 listen_timeout=milliseconds
14738 Set listen timeout, expressed in milliseconds.
14739
14740 recv_buffer_size=bytes
14741 Set receive buffer size, expressed bytes.
14742
14743 send_buffer_size=bytes
14744 Set send buffer size, expressed bytes.
14745
14746 tcp_nodelay=1|0
14747 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
14748
14749 Remark: Writing to the socket is currently not optimized to
14750 minimize system calls and reduces the efficiency / effect of
14751 TCP_NODELAY.
14752
14753 tcp_mss=bytes
14754 Set maximum segment size for outgoing TCP packets, expressed in
14755 bytes.
14756
14757 The following example shows how to setup a listening TCP connection
14758 with ffmpeg, which is then accessed with ffplay:
14759
14760 ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
14761 ffplay tcp://<hostname>:<port>
14762
14763 tls
14764 Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
14765
14766 The required syntax for a TLS/SSL url is:
14767
14768 tls://<hostname>:<port>[?<options>]
14769
14770 The following parameters can be set via command line options (or in
14771 code via "AVOption"s):
14772
14773 ca_file, cafile=filename
14774 A file containing certificate authority (CA) root certificates to
14775 treat as trusted. If the linked TLS library contains a default this
14776 might not need to be specified for verification to work, but not
14777 all libraries and setups have defaults built in. The file must be
14778 in OpenSSL PEM format.
14779
14780 tls_verify=1|0
14781 If enabled, try to verify the peer that we are communicating with.
14782 Note, if using OpenSSL, this currently only makes sure that the
14783 peer certificate is signed by one of the root certificates in the
14784 CA database, but it does not validate that the certificate actually
14785 matches the host name we are trying to connect to. (With other
14786 backends, the host name is validated as well.)
14787
14788 This is disabled by default since it requires a CA database to be
14789 provided by the caller in many cases.
14790
14791 cert_file, cert=filename
14792 A file containing a certificate to use in the handshake with the
14793 peer. (When operating as server, in listen mode, this is more
14794 often required by the peer, while client certificates only are
14795 mandated in certain setups.)
14796
14797 key_file, key=filename
14798 A file containing the private key for the certificate.
14799
14800 listen=1|0
14801 If enabled, listen for connections on the provided port, and assume
14802 the server role in the handshake instead of the client role.
14803
14804 http_proxy
14805 The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
14806 The proxy must support the CONNECT method.
14807
14808 Example command lines:
14809
14810 To create a TLS/SSL server that serves an input stream.
14811
14812 ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
14813
14814 To play back a stream from the TLS/SSL server using ffplay:
14815
14816 ffplay tls://<hostname>:<port>
14817
14818 udp
14819 User Datagram Protocol.
14820
14821 The required syntax for an UDP URL is:
14822
14823 udp://<hostname>:<port>[?<options>]
14824
14825 options contains a list of &-separated options of the form key=val.
14826
14827 In case threading is enabled on the system, a circular buffer is used
14828 to store the incoming data, which allows one to reduce loss of data due
14829 to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
14830 options are related to this buffer.
14831
14832 The list of supported options follows.
14833
14834 buffer_size=size
14835 Set the UDP maximum socket buffer size in bytes. This is used to
14836 set either the receive or send buffer size, depending on what the
14837 socket is used for. Default is 32 KB for output, 384 KB for input.
14838 See also fifo_size.
14839
14840 bitrate=bitrate
14841 If set to nonzero, the output will have the specified constant
14842 bitrate if the input has enough packets to sustain it.
14843
14844 burst_bits=bits
14845 When using bitrate this specifies the maximum number of bits in
14846 packet bursts.
14847
14848 localport=port
14849 Override the local UDP port to bind with.
14850
14851 localaddr=addr
14852 Local IP address of a network interface used for sending packets or
14853 joining multicast groups.
14854
14855 pkt_size=size
14856 Set the size in bytes of UDP packets.
14857
14858 reuse=1|0
14859 Explicitly allow or disallow reusing UDP sockets.
14860
14861 ttl=ttl
14862 Set the time to live value (for multicast only).
14863
14864 connect=1|0
14865 Initialize the UDP socket with "connect()". In this case, the
14866 destination address can't be changed with ff_udp_set_remote_url
14867 later. If the destination address isn't known at the start, this
14868 option can be specified in ff_udp_set_remote_url, too. This allows
14869 finding out the source address for the packets with getsockname,
14870 and makes writes return with AVERROR(ECONNREFUSED) if "destination
14871 unreachable" is received. For receiving, this gives the benefit of
14872 only receiving packets from the specified peer address/port.
14873
14874 sources=address[,address]
14875 Only receive packets sent from the specified addresses. In case of
14876 multicast, also subscribe to multicast traffic coming from these
14877 addresses only.
14878
14879 block=address[,address]
14880 Ignore packets sent from the specified addresses. In case of
14881 multicast, also exclude the source addresses in the multicast
14882 subscription.
14883
14884 fifo_size=units
14885 Set the UDP receiving circular buffer size, expressed as a number
14886 of packets with size of 188 bytes. If not specified defaults to
14887 7*4096.
14888
14889 overrun_nonfatal=1|0
14890 Survive in case of UDP receiving circular buffer overrun. Default
14891 value is 0.
14892
14893 timeout=microseconds
14894 Set raise error timeout, expressed in microseconds.
14895
14896 This option is only relevant in read mode: if no data arrived in
14897 more than this time interval, raise error.
14898
14899 broadcast=1|0
14900 Explicitly allow or disallow UDP broadcasting.
14901
14902 Note that broadcasting may not work properly on networks having a
14903 broadcast storm protection.
14904
14905 Examples
14906
14907 • Use ffmpeg to stream over UDP to a remote endpoint:
14908
14909 ffmpeg -i <input> -f <format> udp://<hostname>:<port>
14910
14911 • Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
14912 packets, using a large input buffer:
14913
14914 ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
14915
14916 • Use ffmpeg to receive over UDP from a remote endpoint:
14917
14918 ffmpeg -i udp://[<multicast-address>]:<port> ...
14919
14920 unix
14921 Unix local socket
14922
14923 The required syntax for a Unix socket URL is:
14924
14925 unix://<filepath>
14926
14927 The following parameters can be set via command line options (or in
14928 code via "AVOption"s):
14929
14930 timeout
14931 Timeout in ms.
14932
14933 listen
14934 Create the Unix socket in listening mode.
14935
14936 zmq
14937 ZeroMQ asynchronous messaging using the libzmq library.
14938
14939 This library supports unicast streaming to multiple clients without
14940 relying on an external server.
14941
14942 The required syntax for streaming or connecting to a stream is:
14943
14944 zmq:tcp://ip-address:port
14945
14946 Example: Create a localhost stream on port 5555:
14947
14948 ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
14949
14950 Multiple clients may connect to the stream using:
14951
14952 ffplay zmq:tcp://127.0.0.1:5555
14953
14954 Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
14955 pattern. The server side binds to a port and publishes data. Clients
14956 connect to the server (via IP address/port) and subscribe to the
14957 stream. The order in which the server and client start generally does
14958 not matter.
14959
14960 ffmpeg must be compiled with the --enable-libzmq option to support this
14961 protocol.
14962
14963 Options can be set on the ffmpeg/ffplay command line. The following
14964 options are supported:
14965
14966 pkt_size
14967 Forces the maximum packet size for sending/receiving data. The
14968 default value is 131,072 bytes. On the server side, this sets the
14969 maximum size of sent packets via ZeroMQ. On the clients, it sets an
14970 internal buffer size for receiving packets. Note that pkt_size on
14971 the clients should be equal to or greater than pkt_size on the
14972 server. Otherwise the received message may be truncated causing
14973 decoding errors.
14974
14976 The libavdevice library provides the same interface as libavformat.
14977 Namely, an input device is considered like a demuxer, and an output
14978 device like a muxer, and the interface and generic device options are
14979 the same provided by libavformat (see the ffmpeg-formats manual).
14980
14981 In addition each input or output device may support so-called private
14982 options, which are specific for that component.
14983
14984 Options may be set by specifying -option value in the FFmpeg tools, or
14985 by setting the value explicitly in the device "AVFormatContext" options
14986 or using the libavutil/opt.h API for programmatic use.
14987
14989 Input devices are configured elements in FFmpeg which enable accessing
14990 the data coming from a multimedia device attached to your system.
14991
14992 When you configure your FFmpeg build, all the supported input devices
14993 are enabled by default. You can list all available ones using the
14994 configure option "--list-indevs".
14995
14996 You can disable all the input devices using the configure option
14997 "--disable-indevs", and selectively enable an input device using the
14998 option "--enable-indev=INDEV", or you can disable a particular input
14999 device using the option "--disable-indev=INDEV".
15000
15001 The option "-devices" of the ff* tools will display the list of
15002 supported input devices.
15003
15004 A description of the currently available input devices follows.
15005
15006 alsa
15007 ALSA (Advanced Linux Sound Architecture) input device.
15008
15009 To enable this input device during configuration you need libasound
15010 installed on your system.
15011
15012 This device allows capturing from an ALSA device. The name of the
15013 device to capture has to be an ALSA card identifier.
15014
15015 An ALSA identifier has the syntax:
15016
15017 hw:<CARD>[,<DEV>[,<SUBDEV>]]
15018
15019 where the DEV and SUBDEV components are optional.
15020
15021 The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
15022 identifier, device number and subdevice number (-1 means any).
15023
15024 To see the list of cards currently recognized by your system check the
15025 files /proc/asound/cards and /proc/asound/devices.
15026
15027 For example to capture with ffmpeg from an ALSA device with card id 0,
15028 you may run the command:
15029
15030 ffmpeg -f alsa -i hw:0 alsaout.wav
15031
15032 For more information see:
15033 <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
15034
15035 Options
15036
15037 sample_rate
15038 Set the sample rate in Hz. Default is 48000.
15039
15040 channels
15041 Set the number of channels. Default is 2.
15042
15043 android_camera
15044 Android camera input device.
15045
15046 This input devices uses the Android Camera2 NDK API which is available
15047 on devices with API level 24+. The availability of android_camera is
15048 autodetected during configuration.
15049
15050 This device allows capturing from all cameras on an Android device,
15051 which are integrated into the Camera2 NDK API.
15052
15053 The available cameras are enumerated internally and can be selected
15054 with the camera_index parameter. The input file string is discarded.
15055
15056 Generally the back facing camera has index 0 while the front facing
15057 camera has index 1.
15058
15059 Options
15060
15061 video_size
15062 Set the video size given as a string such as 640x480 or hd720.
15063 Falls back to the first available configuration reported by Android
15064 if requested video size is not available or by default.
15065
15066 framerate
15067 Set the video framerate. Falls back to the first available
15068 configuration reported by Android if requested framerate is not
15069 available or by default (-1).
15070
15071 camera_index
15072 Set the index of the camera to use. Default is 0.
15073
15074 input_queue_size
15075 Set the maximum number of frames to buffer. Default is 5.
15076
15077 avfoundation
15078 AVFoundation input device.
15079
15080 AVFoundation is the currently recommended framework by Apple for
15081 streamgrabbing on OSX >= 10.7 as well as on iOS.
15082
15083 The input filename has to be given in the following syntax:
15084
15085 -i "[[VIDEO]:[AUDIO]]"
15086
15087 The first entry selects the video input while the latter selects the
15088 audio input. The stream has to be specified by the device name or the
15089 device index as shown by the device list. Alternatively, the video
15090 and/or audio input device can be chosen by index using the
15091
15092 B<-video_device_index E<lt>INDEXE<gt>>
15093
15094 and/or
15095
15096 B<-audio_device_index E<lt>INDEXE<gt>>
15097
15098 , overriding any device name or index given in the input filename.
15099
15100 All available devices can be enumerated by using -list_devices true,
15101 listing all device names and corresponding indices.
15102
15103 There are two device name aliases:
15104
15105 "default"
15106 Select the AVFoundation default device of the corresponding type.
15107
15108 "none"
15109 Do not record the corresponding media type. This is equivalent to
15110 specifying an empty device name or index.
15111
15112 Options
15113
15114 AVFoundation supports the following options:
15115
15116 -list_devices <TRUE|FALSE>
15117 If set to true, a list of all available input devices is given
15118 showing all device names and indices.
15119
15120 -video_device_index <INDEX>
15121 Specify the video device by its index. Overrides anything given in
15122 the input filename.
15123
15124 -audio_device_index <INDEX>
15125 Specify the audio device by its index. Overrides anything given in
15126 the input filename.
15127
15128 -pixel_format <FORMAT>
15129 Request the video device to use a specific pixel format. If the
15130 specified format is not supported, a list of available formats is
15131 given and the first one in this list is used instead. Available
15132 pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
15133 rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
15134 bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
15135 yuv422p10, yuv444p10,
15136 yuv420p, nv12, yuyv422, gray"
15137
15138 -framerate
15139 Set the grabbing frame rate. Default is "ntsc", corresponding to a
15140 frame rate of "30000/1001".
15141
15142 -video_size
15143 Set the video frame size.
15144
15145 -capture_cursor
15146 Capture the mouse pointer. Default is 0.
15147
15148 -capture_mouse_clicks
15149 Capture the screen mouse clicks. Default is 0.
15150
15151 -capture_raw_data
15152 Capture the raw device data. Default is 0. Using this option may
15153 result in receiving the underlying data delivered to the
15154 AVFoundation framework. E.g. for muxed devices that sends raw DV
15155 data to the framework (like tape-based camcorders), setting this
15156 option to false results in extracted video frames captured in the
15157 designated pixel format only. Setting this option to true results
15158 in receiving the raw DV stream untouched.
15159
15160 Examples
15161
15162 • Print the list of AVFoundation supported devices and exit:
15163
15164 $ ffmpeg -f avfoundation -list_devices true -i ""
15165
15166 • Record video from video device 0 and audio from audio device 0 into
15167 out.avi:
15168
15169 $ ffmpeg -f avfoundation -i "0:0" out.avi
15170
15171 • Record video from video device 2 and audio from audio device 1 into
15172 out.avi:
15173
15174 $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
15175
15176 • Record video from the system default video device using the pixel
15177 format bgr0 and do not record any audio into out.avi:
15178
15179 $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
15180
15181 • Record raw DV data from a suitable input device and write the
15182 output into out.dv:
15183
15184 $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
15185
15186 bktr
15187 BSD video input device.
15188
15189 Options
15190
15191 framerate
15192 Set the frame rate.
15193
15194 video_size
15195 Set the video frame size. Default is "vga".
15196
15197 standard
15198 Available values are:
15199
15200 pal
15201 ntsc
15202 secam
15203 paln
15204 palm
15205 ntscj
15206
15207 decklink
15208 The decklink input device provides capture capabilities for Blackmagic
15209 DeckLink devices.
15210
15211 To enable this input device, you need the Blackmagic DeckLink SDK and
15212 you need to configure with the appropriate "--extra-cflags" and
15213 "--extra-ldflags". On Windows, you need to run the IDL files through
15214 widl.
15215
15216 DeckLink is very picky about the formats it supports. Pixel format of
15217 the input can be set with raw_format. Framerate and video size must be
15218 determined for your device with -list_formats 1. Audio sample rate is
15219 always 48 kHz and the number of channels can be 2, 8 or 16. Note that
15220 all audio channels are bundled in one single audio track.
15221
15222 Options
15223
15224 list_devices
15225 If set to true, print a list of devices and exit. Defaults to
15226 false. This option is deprecated, please use the "-sources" option
15227 of ffmpeg to list the available input devices.
15228
15229 list_formats
15230 If set to true, print a list of supported formats and exit.
15231 Defaults to false.
15232
15233 format_code <FourCC>
15234 This sets the input video format to the format given by the FourCC.
15235 To see the supported values of your device(s) use list_formats.
15236 Note that there is a FourCC 'pal ' that can also be used as pal (3
15237 letters). Default behavior is autodetection of the input video
15238 format, if the hardware supports it.
15239
15240 raw_format
15241 Set the pixel format of the captured video. Available values are:
15242
15243 auto
15244 This is the default which means 8-bit YUV 422 or 8-bit ARGB if
15245 format autodetection is used, 8-bit YUV 422 otherwise.
15246
15247 uyvy422
15248 8-bit YUV 422.
15249
15250 yuv422p10
15251 10-bit YUV 422.
15252
15253 argb
15254 8-bit RGB.
15255
15256 bgra
15257 8-bit RGB.
15258
15259 rgb10
15260 10-bit RGB.
15261
15262 teletext_lines
15263 If set to nonzero, an additional teletext stream will be captured
15264 from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
15265 or 1080p) sources are supported. In case of HD sources, OP47
15266 packets are decoded.
15267
15268 This option is a bitmask of the SD PAL VBI lines captured,
15269 specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
15270 in the mask. Selected lines which do not contain teletext
15271 information will be ignored. You can use the special all constant
15272 to select all possible lines, or standard to skip lines 6, 318 and
15273 319, which are not compatible with all receivers.
15274
15275 For SD sources, ffmpeg needs to be compiled with
15276 "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
15277 models you have to capture in 10 bit mode.
15278
15279 channels
15280 Defines number of audio channels to capture. Must be 2, 8 or 16.
15281 Defaults to 2.
15282
15283 duplex_mode
15284 Sets the decklink device duplex/profile mode. Must be unset, half,
15285 full, one_sub_device_full, one_sub_device_half,
15286 two_sub_device_full, four_sub_device_half Defaults to unset.
15287
15288 Note: DeckLink SDK 11.0 have replaced the duplex property by a
15289 profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
15290 profile is shared between any 2 sub-devices that utilize the same
15291 connectors. For the DeckLink 8K Pro, a profile is shared between
15292 all 4 sub-devices. So DeckLink 8K Pro support four profiles.
15293
15294 Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
15295 one_sub_device_full, one_sub_device_half, two_sub_device_full,
15296 four_sub_device_half
15297
15298 Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
15299 full
15300
15301 timecode_format
15302 Timecode type to include in the frame and video stream metadata.
15303 Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
15304 vitc, vitc2, or serial. Defaults to none (not included).
15305
15306 In order to properly support 50/60 fps timecodes, the ordering of
15307 the queried timecode types for rp188any is HFR, VITC1, VITC2 and
15308 LTC for >30 fps content. Note that this is slightly different to
15309 the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
15310 VITC2.
15311
15312 video_input
15313 Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
15314 component, composite or s_video. Defaults to unset.
15315
15316 audio_input
15317 Sets the audio input source. Must be unset, embedded, aes_ebu,
15318 analog, analog_xlr, analog_rca or microphone. Defaults to unset.
15319
15320 video_pts
15321 Sets the video packet timestamp source. Must be video, audio,
15322 reference, wallclock or abs_wallclock. Defaults to video.
15323
15324 audio_pts
15325 Sets the audio packet timestamp source. Must be video, audio,
15326 reference, wallclock or abs_wallclock. Defaults to audio.
15327
15328 draw_bars
15329 If set to true, color bars are drawn in the event of a signal loss.
15330 Defaults to true.
15331
15332 queue_size
15333 Sets maximum input buffer size in bytes. If the buffering reaches
15334 this value, incoming frames will be dropped. Defaults to
15335 1073741824.
15336
15337 audio_depth
15338 Sets the audio sample bit depth. Must be 16 or 32. Defaults to 16.
15339
15340 decklink_copyts
15341 If set to true, timestamps are forwarded as they are without
15342 removing the initial offset. Defaults to false.
15343
15344 timestamp_align
15345 Capture start time alignment in seconds. If set to nonzero, input
15346 frames are dropped till the system timestamp aligns with configured
15347 value. Alignment difference of up to one frame duration is
15348 tolerated. This is useful for maintaining input synchronization
15349 across N different hardware devices deployed for 'N-way'
15350 redundancy. The system time of different hardware devices should be
15351 synchronized with protocols such as NTP or PTP, before using this
15352 option. Note that this method is not foolproof. In some border
15353 cases input synchronization may not happen due to thread scheduling
15354 jitters in the OS. Either sync could go wrong by 1 frame or in a
15355 rarer case timestamp_align seconds. Defaults to 0.
15356
15357 wait_for_tc (bool)
15358 Drop frames till a frame with timecode is received. Sometimes
15359 serial timecode isn't received with the first input frame. If that
15360 happens, the stored stream timecode will be inaccurate. If this
15361 option is set to true, input frames are dropped till a frame with
15362 timecode is received. Option timecode_format must be specified.
15363 Defaults to false.
15364
15365 enable_klv(bool)
15366 If set to true, extracts KLV data from VANC and outputs KLV
15367 packets. KLV VANC packets are joined based on MID and PSC fields
15368 and aggregated into one KLV packet. Defaults to false.
15369
15370 Examples
15371
15372 • List input devices:
15373
15374 ffmpeg -sources decklink
15375
15376 • List supported formats:
15377
15378 ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
15379
15380 • Capture video clip at 1080i50:
15381
15382 ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
15383
15384 • Capture video clip at 1080i50 10 bit:
15385
15386 ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
15387
15388 • Capture video clip at 1080i50 with 16 audio channels:
15389
15390 ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
15391
15392 dshow
15393 Windows DirectShow input device.
15394
15395 DirectShow support is enabled when FFmpeg is built with the mingw-w64
15396 project. Currently only audio and video devices are supported.
15397
15398 Multiple devices may be opened as separate inputs, but they may also be
15399 opened on the same input, which should improve synchronism between
15400 them.
15401
15402 The input name should be in the format:
15403
15404 <TYPE>=<NAME>[:<TYPE>=<NAME>]
15405
15406 where TYPE can be either audio or video, and NAME is the device's name
15407 or alternative name..
15408
15409 Options
15410
15411 If no options are specified, the device's defaults are used. If the
15412 device does not support the requested options, it will fail to open.
15413
15414 video_size
15415 Set the video size in the captured video.
15416
15417 framerate
15418 Set the frame rate in the captured video.
15419
15420 sample_rate
15421 Set the sample rate (in Hz) of the captured audio.
15422
15423 sample_size
15424 Set the sample size (in bits) of the captured audio.
15425
15426 channels
15427 Set the number of channels in the captured audio.
15428
15429 list_devices
15430 If set to true, print a list of devices and exit.
15431
15432 list_options
15433 If set to true, print a list of selected device's options and exit.
15434
15435 video_device_number
15436 Set video device number for devices with the same name (starts at
15437 0, defaults to 0).
15438
15439 audio_device_number
15440 Set audio device number for devices with the same name (starts at
15441 0, defaults to 0).
15442
15443 pixel_format
15444 Select pixel format to be used by DirectShow. This may only be set
15445 when the video codec is not set or set to rawvideo.
15446
15447 audio_buffer_size
15448 Set audio device buffer size in milliseconds (which can directly
15449 impact latency, depending on the device). Defaults to using the
15450 audio device's default buffer size (typically some multiple of
15451 500ms). Setting this value too low can degrade performance. See
15452 also
15453 <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
15454
15455 video_pin_name
15456 Select video capture pin to use by name or alternative name.
15457
15458 audio_pin_name
15459 Select audio capture pin to use by name or alternative name.
15460
15461 crossbar_video_input_pin_number
15462 Select video input pin number for crossbar device. This will be
15463 routed to the crossbar device's Video Decoder output pin. Note
15464 that changing this value can affect future invocations (sets a new
15465 default) until system reboot occurs.
15466
15467 crossbar_audio_input_pin_number
15468 Select audio input pin number for crossbar device. This will be
15469 routed to the crossbar device's Audio Decoder output pin. Note
15470 that changing this value can affect future invocations (sets a new
15471 default) until system reboot occurs.
15472
15473 show_video_device_dialog
15474 If set to true, before capture starts, popup a display dialog to
15475 the end user, allowing them to change video filter properties and
15476 configurations manually. Note that for crossbar devices, adjusting
15477 values in this dialog may be needed at times to toggle between PAL
15478 (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
15479 etc. Changing these values can enable different scan rates/frame
15480 rates and avoiding green bars at the bottom, flickering scan lines,
15481 etc. Note that with some devices, changing these properties can
15482 also affect future invocations (sets new defaults) until system
15483 reboot occurs.
15484
15485 show_audio_device_dialog
15486 If set to true, before capture starts, popup a display dialog to
15487 the end user, allowing them to change audio filter properties and
15488 configurations manually.
15489
15490 show_video_crossbar_connection_dialog
15491 If set to true, before capture starts, popup a display dialog to
15492 the end user, allowing them to manually modify crossbar pin
15493 routings, when it opens a video device.
15494
15495 show_audio_crossbar_connection_dialog
15496 If set to true, before capture starts, popup a display dialog to
15497 the end user, allowing them to manually modify crossbar pin
15498 routings, when it opens an audio device.
15499
15500 show_analog_tv_tuner_dialog
15501 If set to true, before capture starts, popup a display dialog to
15502 the end user, allowing them to manually modify TV channels and
15503 frequencies.
15504
15505 show_analog_tv_tuner_audio_dialog
15506 If set to true, before capture starts, popup a display dialog to
15507 the end user, allowing them to manually modify TV audio (like mono
15508 vs. stereo, Language A,B or C).
15509
15510 audio_device_load
15511 Load an audio capture filter device from file instead of searching
15512 it by name. It may load additional parameters too, if the filter
15513 supports the serialization of its properties to. To use this an
15514 audio capture source has to be specified, but it can be anything
15515 even fake one.
15516
15517 audio_device_save
15518 Save the currently used audio capture filter device and its
15519 parameters (if the filter supports it) to a file. If a file with
15520 the same name exists it will be overwritten.
15521
15522 video_device_load
15523 Load a video capture filter device from file instead of searching
15524 it by name. It may load additional parameters too, if the filter
15525 supports the serialization of its properties to. To use this a
15526 video capture source has to be specified, but it can be anything
15527 even fake one.
15528
15529 video_device_save
15530 Save the currently used video capture filter device and its
15531 parameters (if the filter supports it) to a file. If a file with
15532 the same name exists it will be overwritten.
15533
15534 use_video_device_timestamps
15535 If set to false, the timestamp for video frames will be derived
15536 from the wallclock instead of the timestamp provided by the capture
15537 device. This allows working around devices that provide unreliable
15538 timestamps.
15539
15540 Examples
15541
15542 • Print the list of DirectShow supported devices and exit:
15543
15544 $ ffmpeg -list_devices true -f dshow -i dummy
15545
15546 • Open video device Camera:
15547
15548 $ ffmpeg -f dshow -i video="Camera"
15549
15550 • Open second video device with name Camera:
15551
15552 $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
15553
15554 • Open video device Camera and audio device Microphone:
15555
15556 $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
15557
15558 • Print the list of supported options in selected device and exit:
15559
15560 $ ffmpeg -list_options true -f dshow -i video="Camera"
15561
15562 • Specify pin names to capture by name or alternative name, specify
15563 alternative device name:
15564
15565 $ ffmpeg -f dshow -audio_pin_name "Audio Out" -video_pin_name 2 -i video=video="@device_pnp_\\?\pci#ven_1a0a&dev_6200&subsys_62021461&rev_01#4&e2c7dd6&0&00e1#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{ca465100-deb0-4d59-818f-8c477184adf6}":audio="Microphone"
15566
15567 • Configure a crossbar device, specifying crossbar pins, allow user
15568 to adjust video capture properties at startup:
15569
15570 $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
15571 -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
15572
15573 fbdev
15574 Linux framebuffer input device.
15575
15576 The Linux framebuffer is a graphic hardware-independent abstraction
15577 layer to show graphics on a computer monitor, typically on the console.
15578 It is accessed through a file device node, usually /dev/fb0.
15579
15580 For more detailed information read the file
15581 Documentation/fb/framebuffer.txt included in the Linux source tree.
15582
15583 See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
15584
15585 To record from the framebuffer device /dev/fb0 with ffmpeg:
15586
15587 ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
15588
15589 You can take a single screenshot image with the command:
15590
15591 ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
15592
15593 Options
15594
15595 framerate
15596 Set the frame rate. Default is 25.
15597
15598 gdigrab
15599 Win32 GDI-based screen capture device.
15600
15601 This device allows you to capture a region of the display on Windows.
15602
15603 There are two options for the input filename:
15604
15605 desktop
15606
15607 or
15608
15609 title=<window_title>
15610
15611 The first option will capture the entire desktop, or a fixed region of
15612 the desktop. The second option will instead capture the contents of a
15613 single window, regardless of its position on the screen.
15614
15615 For example, to grab the entire desktop using ffmpeg:
15616
15617 ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
15618
15619 Grab a 640x480 region at position "10,20":
15620
15621 ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
15622
15623 Grab the contents of the window named "Calculator"
15624
15625 ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
15626
15627 Options
15628
15629 draw_mouse
15630 Specify whether to draw the mouse pointer. Use the value 0 to not
15631 draw the pointer. Default value is 1.
15632
15633 framerate
15634 Set the grabbing frame rate. Default value is "ntsc", corresponding
15635 to a frame rate of "30000/1001".
15636
15637 show_region
15638 Show grabbed region on screen.
15639
15640 If show_region is specified with 1, then the grabbing region will
15641 be indicated on screen. With this option, it is easy to know what
15642 is being grabbed if only a portion of the screen is grabbed.
15643
15644 Note that show_region is incompatible with grabbing the contents of
15645 a single window.
15646
15647 For example:
15648
15649 ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
15650
15651 video_size
15652 Set the video frame size. The default is to capture the full screen
15653 if desktop is selected, or the full window size if
15654 title=window_title is selected.
15655
15656 offset_x
15657 When capturing a region with video_size, set the distance from the
15658 left edge of the screen or desktop.
15659
15660 Note that the offset calculation is from the top left corner of the
15661 primary monitor on Windows. If you have a monitor positioned to the
15662 left of your primary monitor, you will need to use a negative
15663 offset_x value to move the region to that monitor.
15664
15665 offset_y
15666 When capturing a region with video_size, set the distance from the
15667 top edge of the screen or desktop.
15668
15669 Note that the offset calculation is from the top left corner of the
15670 primary monitor on Windows. If you have a monitor positioned above
15671 your primary monitor, you will need to use a negative offset_y
15672 value to move the region to that monitor.
15673
15674 iec61883
15675 FireWire DV/HDV input device using libiec61883.
15676
15677 To enable this input device, you need libiec61883, libraw1394 and
15678 libavc1394 installed on your system. Use the configure option
15679 "--enable-libiec61883" to compile with the device enabled.
15680
15681 The iec61883 capture device supports capturing from a video device
15682 connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
15683 FireWire stack (juju). This is the default DV/HDV input method in Linux
15684 Kernel 2.6.37 and later, since the old FireWire stack was removed.
15685
15686 Specify the FireWire port to be used as input file, or "auto" to choose
15687 the first port connected.
15688
15689 Options
15690
15691 dvtype
15692 Override autodetection of DV/HDV. This should only be used if auto
15693 detection does not work, or if usage of a different device type
15694 should be prohibited. Treating a DV device as HDV (or vice versa)
15695 will not work and result in undefined behavior. The values auto,
15696 dv and hdv are supported.
15697
15698 dvbuffer
15699 Set maximum size of buffer for incoming data, in frames. For DV,
15700 this is an exact value. For HDV, it is not frame exact, since HDV
15701 does not have a fixed frame size.
15702
15703 dvguid
15704 Select the capture device by specifying its GUID. Capturing will
15705 only be performed from the specified device and fails if no device
15706 with the given GUID is found. This is useful to select the input if
15707 multiple devices are connected at the same time. Look at
15708 /sys/bus/firewire/devices to find out the GUIDs.
15709
15710 Examples
15711
15712 • Grab and show the input of a FireWire DV/HDV device.
15713
15714 ffplay -f iec61883 -i auto
15715
15716 • Grab and record the input of a FireWire DV/HDV device, using a
15717 packet buffer of 100000 packets if the source is HDV.
15718
15719 ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
15720
15721 jack
15722 JACK input device.
15723
15724 To enable this input device during configuration you need libjack
15725 installed on your system.
15726
15727 A JACK input device creates one or more JACK writable clients, one for
15728 each audio channel, with name client_name:input_N, where client_name is
15729 the name provided by the application, and N is a number which
15730 identifies the channel. Each writable client will send the acquired
15731 data to the FFmpeg input device.
15732
15733 Once you have created one or more JACK readable clients, you need to
15734 connect them to one or more JACK writable clients.
15735
15736 To connect or disconnect JACK clients you can use the jack_connect and
15737 jack_disconnect programs, or do it through a graphical interface, for
15738 example with qjackctl.
15739
15740 To list the JACK clients and their properties you can invoke the
15741 command jack_lsp.
15742
15743 Follows an example which shows how to capture a JACK readable client
15744 with ffmpeg.
15745
15746 # Create a JACK writable client with name "ffmpeg".
15747 $ ffmpeg -f jack -i ffmpeg -y out.wav
15748
15749 # Start the sample jack_metro readable client.
15750 $ jack_metro -b 120 -d 0.2 -f 4000
15751
15752 # List the current JACK clients.
15753 $ jack_lsp -c
15754 system:capture_1
15755 system:capture_2
15756 system:playback_1
15757 system:playback_2
15758 ffmpeg:input_1
15759 metro:120_bpm
15760
15761 # Connect metro to the ffmpeg writable client.
15762 $ jack_connect metro:120_bpm ffmpeg:input_1
15763
15764 For more information read: <http://jackaudio.org/>
15765
15766 Options
15767
15768 channels
15769 Set the number of channels. Default is 2.
15770
15771 kmsgrab
15772 KMS video input device.
15773
15774 Captures the KMS scanout framebuffer associated with a specified CRTC
15775 or plane as a DRM object that can be passed to other hardware
15776 functions.
15777
15778 Requires either DRM master or CAP_SYS_ADMIN to run.
15779
15780 If you don't understand what all of that means, you probably don't want
15781 this. Look at x11grab instead.
15782
15783 Options
15784
15785 device
15786 DRM device to capture on. Defaults to /dev/dri/card0.
15787
15788 format
15789 Pixel format of the framebuffer. This can be autodetected if you
15790 are running Linux 5.7 or later, but needs to be provided for
15791 earlier versions. Defaults to bgr0, which is the most common
15792 format used by the Linux console and Xorg X server.
15793
15794 format_modifier
15795 Format modifier to signal on output frames. This is necessary to
15796 import correctly into some APIs. It can be autodetected if you are
15797 running Linux 5.7 or later, but will need to be provided explicitly
15798 when needed in earlier versions. See the libdrm documentation for
15799 possible values.
15800
15801 crtc_id
15802 KMS CRTC ID to define the capture source. The first active plane
15803 on the given CRTC will be used.
15804
15805 plane_id
15806 KMS plane ID to define the capture source. Defaults to the first
15807 active plane found if neither crtc_id nor plane_id are specified.
15808
15809 framerate
15810 Framerate to capture at. This is not synchronised to any page
15811 flipping or framebuffer changes - it just defines the interval at
15812 which the framebuffer is sampled. Sampling faster than the
15813 framebuffer update rate will generate independent frames with the
15814 same content. Defaults to 30.
15815
15816 Examples
15817
15818 • Capture from the first active plane, download the result to normal
15819 frames and encode. This will only work if the framebuffer is both
15820 linear and mappable - if not, the result may be scrambled or fail
15821 to download.
15822
15823 ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
15824
15825 • Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
15826 to NV12 and encode as H.264.
15827
15828 ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4
15829
15830 • To capture only part of a plane the output can be cropped - this
15831 can be used to capture a single window, as long as it has a known
15832 absolute position and size. For example, to capture and encode the
15833 middle quarter of a 1920x1080 plane:
15834
15835 ffmpeg -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,crop=960:540:480:270,scale_vaapi=960:540:nv12' -c:v h264_vaapi output.mp4
15836
15837 lavfi
15838 Libavfilter input virtual device.
15839
15840 This input device reads data from the open output pads of a libavfilter
15841 filtergraph.
15842
15843 For each filtergraph open output, the input device will create a
15844 corresponding stream which is mapped to the generated output. Currently
15845 only video data is supported. The filtergraph is specified through the
15846 option graph.
15847
15848 Options
15849
15850 graph
15851 Specify the filtergraph to use as input. Each video open output
15852 must be labelled by a unique string of the form "outN", where N is
15853 a number starting from 0 corresponding to the mapped input stream
15854 generated by the device. The first unlabelled output is
15855 automatically assigned to the "out0" label, but all the others need
15856 to be specified explicitly.
15857
15858 The suffix "+subcc" can be appended to the output label to create
15859 an extra stream with the closed captions packets attached to that
15860 output (experimental; only for EIA-608 / CEA-708 for now). The
15861 subcc streams are created after all the normal streams, in the
15862 order of the corresponding stream. For example, if there is
15863 "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
15864 subcc for stream #7 and stream #44 is subcc for stream #19.
15865
15866 If not specified defaults to the filename specified for the input
15867 device.
15868
15869 graph_file
15870 Set the filename of the filtergraph to be read and sent to the
15871 other filters. Syntax of the filtergraph is the same as the one
15872 specified by the option graph.
15873
15874 dumpgraph
15875 Dump graph to stderr.
15876
15877 Examples
15878
15879 • Create a color video stream and play it back with ffplay:
15880
15881 ffplay -f lavfi -graph "color=c=pink [out0]" dummy
15882
15883 • As the previous example, but use filename for specifying the graph
15884 description, and omit the "out0" label:
15885
15886 ffplay -f lavfi color=c=pink
15887
15888 • Create three different video test filtered sources and play them:
15889
15890 ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
15891
15892 • Read an audio stream from a file using the amovie source and play
15893 it back with ffplay:
15894
15895 ffplay -f lavfi "amovie=test.wav"
15896
15897 • Read an audio stream and a video stream and play it back with
15898 ffplay:
15899
15900 ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
15901
15902 • Dump decoded frames to images and closed captions to a file
15903 (experimental):
15904
15905 ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
15906
15907 libcdio
15908 Audio-CD input device based on libcdio.
15909
15910 To enable this input device during configuration you need libcdio
15911 installed on your system. It requires the configure option
15912 "--enable-libcdio".
15913
15914 This device allows playing and grabbing from an Audio-CD.
15915
15916 For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
15917 may run the command:
15918
15919 ffmpeg -f libcdio -i /dev/sr0 cd.wav
15920
15921 Options
15922
15923 speed
15924 Set drive reading speed. Default value is 0.
15925
15926 The speed is specified CD-ROM speed units. The speed is set through
15927 the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
15928 specifying a value too large will result in using the fastest
15929 speed.
15930
15931 paranoia_mode
15932 Set paranoia recovery mode flags. It accepts one of the following
15933 values:
15934
15935 disable
15936 verify
15937 overlap
15938 neverskip
15939 full
15940
15941 Default value is disable.
15942
15943 For more information about the available recovery modes, consult
15944 the paranoia project documentation.
15945
15946 libdc1394
15947 IIDC1394 input device, based on libdc1394 and libraw1394.
15948
15949 Requires the configure option "--enable-libdc1394".
15950
15951 Options
15952
15953 framerate
15954 Set the frame rate. Default is "ntsc", corresponding to a frame
15955 rate of "30000/1001".
15956
15957 pixel_format
15958 Select the pixel format. Default is "uyvy422".
15959
15960 video_size
15961 Set the video size given as a string such as "640x480" or "hd720".
15962 Default is "qvga".
15963
15964 openal
15965 The OpenAL input device provides audio capture on all systems with a
15966 working OpenAL 1.1 implementation.
15967
15968 To enable this input device during configuration, you need OpenAL
15969 headers and libraries installed on your system, and need to configure
15970 FFmpeg with "--enable-openal".
15971
15972 OpenAL headers and libraries should be provided as part of your OpenAL
15973 implementation, or as an additional download (an SDK). Depending on
15974 your installation you may need to specify additional flags via the
15975 "--extra-cflags" and "--extra-ldflags" for allowing the build system to
15976 locate the OpenAL headers and libraries.
15977
15978 An incomplete list of OpenAL implementations follows:
15979
15980 Creative
15981 The official Windows implementation, providing hardware
15982 acceleration with supported devices and software fallback. See
15983 <http://openal.org/>.
15984
15985 OpenAL Soft
15986 Portable, open source (LGPL) software implementation. Includes
15987 backends for the most common sound APIs on the Windows, Linux,
15988 Solaris, and BSD operating systems. See
15989 <http://kcat.strangesoft.net/openal.html>.
15990
15991 Apple
15992 OpenAL is part of Core Audio, the official Mac OS X Audio
15993 interface. See
15994 <http://developer.apple.com/technologies/mac/audio-and-video.html>
15995
15996 This device allows one to capture from an audio input device handled
15997 through OpenAL.
15998
15999 You need to specify the name of the device to capture in the provided
16000 filename. If the empty string is provided, the device will
16001 automatically select the default device. You can get the list of the
16002 supported devices by using the option list_devices.
16003
16004 Options
16005
16006 channels
16007 Set the number of channels in the captured audio. Only the values 1
16008 (monaural) and 2 (stereo) are currently supported. Defaults to 2.
16009
16010 sample_size
16011 Set the sample size (in bits) of the captured audio. Only the
16012 values 8 and 16 are currently supported. Defaults to 16.
16013
16014 sample_rate
16015 Set the sample rate (in Hz) of the captured audio. Defaults to
16016 44.1k.
16017
16018 list_devices
16019 If set to true, print a list of devices and exit. Defaults to
16020 false.
16021
16022 Examples
16023
16024 Print the list of OpenAL supported devices and exit:
16025
16026 $ ffmpeg -list_devices true -f openal -i dummy out.ogg
16027
16028 Capture from the OpenAL device DR-BT101 via PulseAudio:
16029
16030 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
16031
16032 Capture from the default device (note the empty string '' as filename):
16033
16034 $ ffmpeg -f openal -i '' out.ogg
16035
16036 Capture from two devices simultaneously, writing to two different
16037 files, within the same ffmpeg command:
16038
16039 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
16040
16041 Note: not all OpenAL implementations support multiple simultaneous
16042 capture - try the latest OpenAL Soft if the above does not work.
16043
16044 oss
16045 Open Sound System input device.
16046
16047 The filename to provide to the input device is the device node
16048 representing the OSS input device, and is usually set to /dev/dsp.
16049
16050 For example to grab from /dev/dsp using ffmpeg use the command:
16051
16052 ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
16053
16054 For more information about OSS see:
16055 <http://manuals.opensound.com/usersguide/dsp.html>
16056
16057 Options
16058
16059 sample_rate
16060 Set the sample rate in Hz. Default is 48000.
16061
16062 channels
16063 Set the number of channels. Default is 2.
16064
16065 pulse
16066 PulseAudio input device.
16067
16068 To enable this output device you need to configure FFmpeg with
16069 "--enable-libpulse".
16070
16071 The filename to provide to the input device is a source device or the
16072 string "default"
16073
16074 To list the PulseAudio source devices and their properties you can
16075 invoke the command pactl list sources.
16076
16077 More information about PulseAudio can be found on
16078 <http://www.pulseaudio.org>.
16079
16080 Options
16081
16082 server
16083 Connect to a specific PulseAudio server, specified by an IP
16084 address. Default server is used when not provided.
16085
16086 name
16087 Specify the application name PulseAudio will use when showing
16088 active clients, by default it is the "LIBAVFORMAT_IDENT" string.
16089
16090 stream_name
16091 Specify the stream name PulseAudio will use when showing active
16092 streams, by default it is "record".
16093
16094 sample_rate
16095 Specify the samplerate in Hz, by default 48kHz is used.
16096
16097 channels
16098 Specify the channels in use, by default 2 (stereo) is set.
16099
16100 frame_size
16101 Specify the number of bytes per frame, by default it is set to
16102 1024.
16103
16104 fragment_size
16105 Specify the minimal buffering fragment in PulseAudio, it will
16106 affect the audio latency. By default it is unset.
16107
16108 wallclock
16109 Set the initial PTS using the current time. Default is 1.
16110
16111 Examples
16112
16113 Record a stream from default device:
16114
16115 ffmpeg -f pulse -i default /tmp/pulse.wav
16116
16117 sndio
16118 sndio input device.
16119
16120 To enable this input device during configuration you need libsndio
16121 installed on your system.
16122
16123 The filename to provide to the input device is the device node
16124 representing the sndio input device, and is usually set to /dev/audio0.
16125
16126 For example to grab from /dev/audio0 using ffmpeg use the command:
16127
16128 ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
16129
16130 Options
16131
16132 sample_rate
16133 Set the sample rate in Hz. Default is 48000.
16134
16135 channels
16136 Set the number of channels. Default is 2.
16137
16138 video4linux2, v4l2
16139 Video4Linux2 input video device.
16140
16141 "v4l2" can be used as alias for "video4linux2".
16142
16143 If FFmpeg is built with v4l-utils support (by using the
16144 "--enable-libv4l2" configure option), it is possible to use it with the
16145 "-use_libv4l2" input device option.
16146
16147 The name of the device to grab is a file device node, usually Linux
16148 systems tend to automatically create such nodes when the device (e.g.
16149 an USB webcam) is plugged into the system, and has a name of the kind
16150 /dev/videoN, where N is a number associated to the device.
16151
16152 Video4Linux2 devices usually support a limited set of widthxheight
16153 sizes and frame rates. You can check which are supported using
16154 -list_formats all for Video4Linux2 devices. Some devices, like TV
16155 cards, support one or more standards. It is possible to list all the
16156 supported standards using -list_standards all.
16157
16158 The time base for the timestamps is 1 microsecond. Depending on the
16159 kernel version and configuration, the timestamps may be derived from
16160 the real time clock (origin at the Unix Epoch) or the monotonic clock
16161 (origin usually at boot time, unaffected by NTP or manual changes to
16162 the clock). The -timestamps abs or -ts abs option can be used to force
16163 conversion into the real time clock.
16164
16165 Some usage examples of the video4linux2 device with ffmpeg and ffplay:
16166
16167 • List supported formats for a video4linux2 device:
16168
16169 ffplay -f video4linux2 -list_formats all /dev/video0
16170
16171 • Grab and show the input of a video4linux2 device:
16172
16173 ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
16174
16175 • Grab and record the input of a video4linux2 device, leave the frame
16176 rate and size as previously set:
16177
16178 ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
16179
16180 For more information about Video4Linux, check <http://linuxtv.org/>.
16181
16182 Options
16183
16184 standard
16185 Set the standard. Must be the name of a supported standard. To get
16186 a list of the supported standards, use the list_standards option.
16187
16188 channel
16189 Set the input channel number. Default to -1, which means using the
16190 previously selected channel.
16191
16192 video_size
16193 Set the video frame size. The argument must be a string in the form
16194 WIDTHxHEIGHT or a valid size abbreviation.
16195
16196 pixel_format
16197 Select the pixel format (only valid for raw video input).
16198
16199 input_format
16200 Set the preferred pixel format (for raw video) or a codec name.
16201 This option allows one to select the input format, when several are
16202 available.
16203
16204 framerate
16205 Set the preferred video frame rate.
16206
16207 list_formats
16208 List available formats (supported pixel formats, codecs, and frame
16209 sizes) and exit.
16210
16211 Available values are:
16212
16213 all Show all available (compressed and non-compressed) formats.
16214
16215 raw Show only raw video (non-compressed) formats.
16216
16217 compressed
16218 Show only compressed formats.
16219
16220 list_standards
16221 List supported standards and exit.
16222
16223 Available values are:
16224
16225 all Show all supported standards.
16226
16227 timestamps, ts
16228 Set type of timestamps for grabbed frames.
16229
16230 Available values are:
16231
16232 default
16233 Use timestamps from the kernel.
16234
16235 abs Use absolute timestamps (wall clock).
16236
16237 mono2abs
16238 Force conversion from monotonic to absolute timestamps.
16239
16240 Default value is "default".
16241
16242 use_libv4l2
16243 Use libv4l2 (v4l-utils) conversion functions. Default is 0.
16244
16245 vfwcap
16246 VfW (Video for Windows) capture input device.
16247
16248 The filename passed as input is the capture driver number, ranging from
16249 0 to 9. You may use "list" as filename to print a list of drivers. Any
16250 other filename will be interpreted as device number 0.
16251
16252 Options
16253
16254 video_size
16255 Set the video frame size.
16256
16257 framerate
16258 Set the grabbing frame rate. Default value is "ntsc", corresponding
16259 to a frame rate of "30000/1001".
16260
16261 x11grab
16262 X11 video input device.
16263
16264 To enable this input device during configuration you need libxcb
16265 installed on your system. It will be automatically detected during
16266 configuration.
16267
16268 This device allows one to capture a region of an X11 display.
16269
16270 The filename passed as input has the syntax:
16271
16272 [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
16273
16274 hostname:display_number.screen_number specifies the X11 display name of
16275 the screen to grab from. hostname can be omitted, and defaults to
16276 "localhost". The environment variable DISPLAY contains the default
16277 display name.
16278
16279 x_offset and y_offset specify the offsets of the grabbed area with
16280 respect to the top-left border of the X11 screen. They default to 0.
16281
16282 Check the X11 documentation (e.g. man X) for more detailed information.
16283
16284 Use the xdpyinfo program for getting basic information about the
16285 properties of your X11 display (e.g. grep for "name" or "dimensions").
16286
16287 For example to grab from :0.0 using ffmpeg:
16288
16289 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
16290
16291 Grab at position "10,20":
16292
16293 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
16294
16295 Options
16296
16297 select_region
16298 Specify whether to select the grabbing area graphically using the
16299 pointer. A value of 1 prompts the user to select the grabbing area
16300 graphically by clicking and dragging. A single click with no
16301 dragging will select the whole screen. A region with zero width or
16302 height will also select the whole screen. This option overwrites
16303 the video_size, grab_x, and grab_y options. Default value is 0.
16304
16305 draw_mouse
16306 Specify whether to draw the mouse pointer. A value of 0 specifies
16307 not to draw the pointer. Default value is 1.
16308
16309 follow_mouse
16310 Make the grabbed area follow the mouse. The argument can be
16311 "centered" or a number of pixels PIXELS.
16312
16313 When it is specified with "centered", the grabbing region follows
16314 the mouse pointer and keeps the pointer at the center of region;
16315 otherwise, the region follows only when the mouse pointer reaches
16316 within PIXELS (greater than zero) to the edge of region.
16317
16318 For example:
16319
16320 ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
16321
16322 To follow only when the mouse pointer reaches within 100 pixels to
16323 edge:
16324
16325 ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
16326
16327 framerate
16328 Set the grabbing frame rate. Default value is "ntsc", corresponding
16329 to a frame rate of "30000/1001".
16330
16331 show_region
16332 Show grabbed region on screen.
16333
16334 If show_region is specified with 1, then the grabbing region will
16335 be indicated on screen. With this option, it is easy to know what
16336 is being grabbed if only a portion of the screen is grabbed.
16337
16338 region_border
16339 Set the region border thickness if -show_region 1 is used. Range
16340 is 1 to 128 and default is 3 (XCB-based x11grab only).
16341
16342 For example:
16343
16344 ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
16345
16346 With follow_mouse:
16347
16348 ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
16349
16350 window_id
16351 Grab this window, instead of the whole screen. Default value is 0,
16352 which maps to the whole screen (root window).
16353
16354 The id of a window can be found using the xwininfo program,
16355 possibly with options -tree and -root.
16356
16357 If the window is later enlarged, the new area is not recorded.
16358 Video ends when the window is closed, unmapped (i.e., iconified) or
16359 shrunk beyond the video size (which defaults to the initial window
16360 size).
16361
16362 This option disables options follow_mouse and select_region.
16363
16364 video_size
16365 Set the video frame size. Default is the full desktop or window.
16366
16367 grab_x
16368 grab_y
16369 Set the grabbing region coordinates. They are expressed as offset
16370 from the top left corner of the X11 window and correspond to the
16371 x_offset and y_offset parameters in the device name. The default
16372 value for both options is 0.
16373
16375 Output devices are configured elements in FFmpeg that can write
16376 multimedia data to an output device attached to your system.
16377
16378 When you configure your FFmpeg build, all the supported output devices
16379 are enabled by default. You can list all available ones using the
16380 configure option "--list-outdevs".
16381
16382 You can disable all the output devices using the configure option
16383 "--disable-outdevs", and selectively enable an output device using the
16384 option "--enable-outdev=OUTDEV", or you can disable a particular input
16385 device using the option "--disable-outdev=OUTDEV".
16386
16387 The option "-devices" of the ff* tools will display the list of enabled
16388 output devices.
16389
16390 A description of the currently available output devices follows.
16391
16392 alsa
16393 ALSA (Advanced Linux Sound Architecture) output device.
16394
16395 Examples
16396
16397 • Play a file on default ALSA device:
16398
16399 ffmpeg -i INPUT -f alsa default
16400
16401 • Play a file on soundcard 1, audio device 7:
16402
16403 ffmpeg -i INPUT -f alsa hw:1,7
16404
16405 AudioToolbox
16406 AudioToolbox output device.
16407
16408 Allows native output to CoreAudio devices on OSX.
16409
16410 The output filename can be empty (or "-") to refer to the default
16411 system output device or a number that refers to the device index as
16412 shown using: "-list_devices true".
16413
16414 Alternatively, the audio input device can be chosen by index using the
16415
16416 B<-audio_device_index E<lt>INDEXE<gt>>
16417
16418 , overriding any device name or index given in the input filename.
16419
16420 All available devices can be enumerated by using -list_devices true,
16421 listing all device names, UIDs and corresponding indices.
16422
16423 Options
16424
16425 AudioToolbox supports the following options:
16426
16427 -audio_device_index <INDEX>
16428 Specify the audio device by its index. Overrides anything given in
16429 the output filename.
16430
16431 Examples
16432
16433 • Print the list of supported devices and output a sine wave to the
16434 default device:
16435
16436 $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -list_devices true -
16437
16438 • Output a sine wave to the device with the index 2, overriding any
16439 output filename:
16440
16441 $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -audio_device_index 2 -
16442
16443 caca
16444 CACA output device.
16445
16446 This output device allows one to show a video stream in CACA window.
16447 Only one CACA window is allowed per application, so you can have only
16448 one instance of this output device in an application.
16449
16450 To enable this output device you need to configure FFmpeg with
16451 "--enable-libcaca". libcaca is a graphics library that outputs text
16452 instead of pixels.
16453
16454 For more information about libcaca, check:
16455 <http://caca.zoy.org/wiki/libcaca>
16456
16457 Options
16458
16459 window_title
16460 Set the CACA window title, if not specified default to the filename
16461 specified for the output device.
16462
16463 window_size
16464 Set the CACA window size, can be a string of the form widthxheight
16465 or a video size abbreviation. If not specified it defaults to the
16466 size of the input video.
16467
16468 driver
16469 Set display driver.
16470
16471 algorithm
16472 Set dithering algorithm. Dithering is necessary because the picture
16473 being rendered has usually far more colours than the available
16474 palette. The accepted values are listed with "-list_dither
16475 algorithms".
16476
16477 antialias
16478 Set antialias method. Antialiasing smoothens the rendered image and
16479 avoids the commonly seen staircase effect. The accepted values are
16480 listed with "-list_dither antialiases".
16481
16482 charset
16483 Set which characters are going to be used when rendering text. The
16484 accepted values are listed with "-list_dither charsets".
16485
16486 color
16487 Set color to be used when rendering text. The accepted values are
16488 listed with "-list_dither colors".
16489
16490 list_drivers
16491 If set to true, print a list of available drivers and exit.
16492
16493 list_dither
16494 List available dither options related to the argument. The
16495 argument must be one of "algorithms", "antialiases", "charsets",
16496 "colors".
16497
16498 Examples
16499
16500 • The following command shows the ffmpeg output is an CACA window,
16501 forcing its size to 80x25:
16502
16503 ffmpeg -i INPUT -c:v rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
16504
16505 • Show the list of available drivers and exit:
16506
16507 ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
16508
16509 • Show the list of available dither colors and exit:
16510
16511 ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
16512
16513 decklink
16514 The decklink output device provides playback capabilities for
16515 Blackmagic DeckLink devices.
16516
16517 To enable this output device, you need the Blackmagic DeckLink SDK and
16518 you need to configure with the appropriate "--extra-cflags" and
16519 "--extra-ldflags". On Windows, you need to run the IDL files through
16520 widl.
16521
16522 DeckLink is very picky about the formats it supports. Pixel format is
16523 always uyvy422, framerate, field order and video size must be
16524 determined for your device with -list_formats 1. Audio sample rate is
16525 always 48 kHz.
16526
16527 Options
16528
16529 list_devices
16530 If set to true, print a list of devices and exit. Defaults to
16531 false. This option is deprecated, please use the "-sinks" option of
16532 ffmpeg to list the available output devices.
16533
16534 list_formats
16535 If set to true, print a list of supported formats and exit.
16536 Defaults to false.
16537
16538 preroll
16539 Amount of time to preroll video in seconds. Defaults to 0.5.
16540
16541 duplex_mode
16542 Sets the decklink device duplex/profile mode. Must be unset, half,
16543 full, one_sub_device_full, one_sub_device_half,
16544 two_sub_device_full, four_sub_device_half Defaults to unset.
16545
16546 Note: DeckLink SDK 11.0 have replaced the duplex property by a
16547 profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
16548 profile is shared between any 2 sub-devices that utilize the same
16549 connectors. For the DeckLink 8K Pro, a profile is shared between
16550 all 4 sub-devices. So DeckLink 8K Pro support four profiles.
16551
16552 Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
16553 one_sub_device_full, one_sub_device_half, two_sub_device_full,
16554 four_sub_device_half
16555
16556 Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
16557 full
16558
16559 timing_offset
16560 Sets the genlock timing pixel offset on the used output. Defaults
16561 to unset.
16562
16563 link
16564 Sets the SDI video link configuration on the used output. Must be
16565 unset, single link SDI, dual link SDI or quad link SDI. Defaults
16566 to unset.
16567
16568 sqd Enable Square Division Quad Split mode for Quad-link SDI output.
16569 Must be unset, true or false. Defaults to unset.
16570
16571 level_a
16572 Enable SMPTE Level A mode on the used output. Must be unset, true
16573 or false. Defaults to unset.
16574
16575 Examples
16576
16577 • List output devices:
16578
16579 ffmpeg -sinks decklink
16580
16581 • List supported formats:
16582
16583 ffmpeg -i test.avi -f decklink -list_formats 1 'DeckLink Mini Monitor'
16584
16585 • Play video clip:
16586
16587 ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 'DeckLink Mini Monitor'
16588
16589 • Play video clip with non-standard framerate or video size:
16590
16591 ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLink Mini Monitor'
16592
16593 fbdev
16594 Linux framebuffer output device.
16595
16596 The Linux framebuffer is a graphic hardware-independent abstraction
16597 layer to show graphics on a computer monitor, typically on the console.
16598 It is accessed through a file device node, usually /dev/fb0.
16599
16600 For more detailed information read the file
16601 Documentation/fb/framebuffer.txt included in the Linux source tree.
16602
16603 Options
16604
16605 xoffset
16606 yoffset
16607 Set x/y coordinate of top left corner. Default is 0.
16608
16609 Examples
16610
16611 Play a file on framebuffer device /dev/fb0. Required pixel format
16612 depends on current framebuffer settings.
16613
16614 ffmpeg -re -i INPUT -c:v rawvideo -pix_fmt bgra -f fbdev /dev/fb0
16615
16616 See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
16617
16618 opengl
16619 OpenGL output device.
16620
16621 To enable this output device you need to configure FFmpeg with
16622 "--enable-opengl".
16623
16624 This output device allows one to render to OpenGL context. Context may
16625 be provided by application or default SDL window is created.
16626
16627 When device renders to external context, application must implement
16628 handlers for following messages: "AV_DEV_TO_APP_CREATE_WINDOW_BUFFER" -
16629 create OpenGL context on current thread.
16630 "AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER" - make OpenGL context current.
16631 "AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER" - swap buffers.
16632 "AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER" - destroy OpenGL context.
16633 Application is also required to inform a device about current
16634 resolution by sending "AV_APP_TO_DEV_WINDOW_SIZE" message.
16635
16636 Options
16637
16638 background
16639 Set background color. Black is a default.
16640
16641 no_window
16642 Disables default SDL window when set to non-zero value.
16643 Application must provide OpenGL context and both "window_size_cb"
16644 and "window_swap_buffers_cb" callbacks when set.
16645
16646 window_title
16647 Set the SDL window title, if not specified default to the filename
16648 specified for the output device. Ignored when no_window is set.
16649
16650 window_size
16651 Set preferred window size, can be a string of the form widthxheight
16652 or a video size abbreviation. If not specified it defaults to the
16653 size of the input video, downscaled according to the aspect ratio.
16654 Mostly usable when no_window is not set.
16655
16656 Examples
16657
16658 Play a file on SDL window using OpenGL rendering:
16659
16660 ffmpeg -i INPUT -f opengl "window title"
16661
16662 oss
16663 OSS (Open Sound System) output device.
16664
16665 pulse
16666 PulseAudio output device.
16667
16668 To enable this output device you need to configure FFmpeg with
16669 "--enable-libpulse".
16670
16671 More information about PulseAudio can be found on
16672 <http://www.pulseaudio.org>
16673
16674 Options
16675
16676 server
16677 Connect to a specific PulseAudio server, specified by an IP
16678 address. Default server is used when not provided.
16679
16680 name
16681 Specify the application name PulseAudio will use when showing
16682 active clients, by default it is the "LIBAVFORMAT_IDENT" string.
16683
16684 stream_name
16685 Specify the stream name PulseAudio will use when showing active
16686 streams, by default it is set to the specified output name.
16687
16688 device
16689 Specify the device to use. Default device is used when not
16690 provided. List of output devices can be obtained with command
16691 pactl list sinks.
16692
16693 buffer_size
16694 buffer_duration
16695 Control the size and duration of the PulseAudio buffer. A small
16696 buffer gives more control, but requires more frequent updates.
16697
16698 buffer_size specifies size in bytes while buffer_duration specifies
16699 duration in milliseconds.
16700
16701 When both options are provided then the highest value is used
16702 (duration is recalculated to bytes using stream parameters). If
16703 they are set to 0 (which is default), the device will use the
16704 default PulseAudio duration value. By default PulseAudio set buffer
16705 duration to around 2 seconds.
16706
16707 prebuf
16708 Specify pre-buffering size in bytes. The server does not start with
16709 playback before at least prebuf bytes are available in the buffer.
16710 By default this option is initialized to the same value as
16711 buffer_size or buffer_duration (whichever is bigger).
16712
16713 minreq
16714 Specify minimum request size in bytes. The server does not request
16715 less than minreq bytes from the client, instead waits until the
16716 buffer is free enough to request more bytes at once. It is
16717 recommended to not set this option, which will initialize this to a
16718 value that is deemed sensible by the server.
16719
16720 Examples
16721
16722 Play a file on default device on default server:
16723
16724 ffmpeg -i INPUT -f pulse "stream name"
16725
16726 sdl
16727 SDL (Simple DirectMedia Layer) output device.
16728
16729 "sdl2" can be used as alias for "sdl".
16730
16731 This output device allows one to show a video stream in an SDL window.
16732 Only one SDL window is allowed per application, so you can have only
16733 one instance of this output device in an application.
16734
16735 To enable this output device you need libsdl installed on your system
16736 when configuring your build.
16737
16738 For more information about SDL, check: <http://www.libsdl.org/>
16739
16740 Options
16741
16742 window_title
16743 Set the SDL window title, if not specified default to the filename
16744 specified for the output device.
16745
16746 icon_title
16747 Set the name of the iconified SDL window, if not specified it is
16748 set to the same value of window_title.
16749
16750 window_size
16751 Set the SDL window size, can be a string of the form widthxheight
16752 or a video size abbreviation. If not specified it defaults to the
16753 size of the input video, downscaled according to the aspect ratio.
16754
16755 window_x
16756 window_y
16757 Set the position of the window on the screen.
16758
16759 window_fullscreen
16760 Set fullscreen mode when non-zero value is provided. Default value
16761 is zero.
16762
16763 window_enable_quit
16764 Enable quit action (using window button or keyboard key) when non-
16765 zero value is provided. Default value is 1 (enable quit action)
16766
16767 Interactive commands
16768
16769 The window created by the device can be controlled through the
16770 following interactive commands.
16771
16772 q, ESC
16773 Quit the device immediately.
16774
16775 Examples
16776
16777 The following command shows the ffmpeg output is an SDL window, forcing
16778 its size to the qcif format:
16779
16780 ffmpeg -i INPUT -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
16781
16782 sndio
16783 sndio audio output device.
16784
16785 v4l2
16786 Video4Linux2 output device.
16787
16788 xv
16789 XV (XVideo) output device.
16790
16791 This output device allows one to show a video stream in a X Window
16792 System window.
16793
16794 Options
16795
16796 display_name
16797 Specify the hardware display name, which determines the display and
16798 communications domain to be used.
16799
16800 The display name or DISPLAY environment variable can be a string in
16801 the format hostname[:number[.screen_number]].
16802
16803 hostname specifies the name of the host machine on which the
16804 display is physically attached. number specifies the number of the
16805 display server on that host machine. screen_number specifies the
16806 screen to be used on that server.
16807
16808 If unspecified, it defaults to the value of the DISPLAY environment
16809 variable.
16810
16811 For example, "dual-headed:0.1" would specify screen 1 of display 0
16812 on the machine named ``dual-headed''.
16813
16814 Check the X11 specification for more detailed information about the
16815 display name format.
16816
16817 window_id
16818 When set to non-zero value then device doesn't create new window,
16819 but uses existing one with provided window_id. By default this
16820 options is set to zero and device creates its own window.
16821
16822 window_size
16823 Set the created window size, can be a string of the form
16824 widthxheight or a video size abbreviation. If not specified it
16825 defaults to the size of the input video. Ignored when window_id is
16826 set.
16827
16828 window_x
16829 window_y
16830 Set the X and Y window offsets for the created window. They are
16831 both set to 0 by default. The values may be ignored by the window
16832 manager. Ignored when window_id is set.
16833
16834 window_title
16835 Set the window title, if not specified default to the filename
16836 specified for the output device. Ignored when window_id is set.
16837
16838 For more information about XVideo see <http://www.x.org/>.
16839
16840 Examples
16841
16842 • Decode, display and encode video input with ffmpeg at the same
16843 time:
16844
16845 ffmpeg -i INPUT OUTPUT -f xv display
16846
16847 • Decode and display the input video to multiple X11 windows:
16848
16849 ffmpeg -i INPUT -f xv normal -vf negate -f xv negated
16850
16852 The audio resampler supports the following named options.
16853
16854 Options may be set by specifying -option value in the FFmpeg tools,
16855 option=value for the aresample filter, by setting the value explicitly
16856 in the "SwrContext" options or using the libavutil/opt.h API for
16857 programmatic use.
16858
16859 ich, in_channel_count
16860 Set the number of input channels. Default value is 0. Setting this
16861 value is not mandatory if the corresponding channel layout
16862 in_channel_layout is set.
16863
16864 och, out_channel_count
16865 Set the number of output channels. Default value is 0. Setting this
16866 value is not mandatory if the corresponding channel layout
16867 out_channel_layout is set.
16868
16869 uch, used_channel_count
16870 Set the number of used input channels. Default value is 0. This
16871 option is only used for special remapping.
16872
16873 isr, in_sample_rate
16874 Set the input sample rate. Default value is 0.
16875
16876 osr, out_sample_rate
16877 Set the output sample rate. Default value is 0.
16878
16879 isf, in_sample_fmt
16880 Specify the input sample format. It is set by default to "none".
16881
16882 osf, out_sample_fmt
16883 Specify the output sample format. It is set by default to "none".
16884
16885 tsf, internal_sample_fmt
16886 Set the internal sample format. Default value is "none". This will
16887 automatically be chosen when it is not explicitly set.
16888
16889 icl, in_channel_layout
16890 ocl, out_channel_layout
16891 Set the input/output channel layout.
16892
16893 See the Channel Layout section in the ffmpeg-utils(1) manual for
16894 the required syntax.
16895
16896 clev, center_mix_level
16897 Set the center mix level. It is a value expressed in deciBel, and
16898 must be in the interval [-32,32].
16899
16900 slev, surround_mix_level
16901 Set the surround mix level. It is a value expressed in deciBel, and
16902 must be in the interval [-32,32].
16903
16904 lfe_mix_level
16905 Set LFE mix into non LFE level. It is used when there is a LFE
16906 input but no LFE output. It is a value expressed in deciBel, and
16907 must be in the interval [-32,32].
16908
16909 rmvol, rematrix_volume
16910 Set rematrix volume. Default value is 1.0.
16911
16912 rematrix_maxval
16913 Set maximum output value for rematrixing. This can be used to
16914 prevent clipping vs. preventing volume reduction. A value of 1.0
16915 prevents clipping.
16916
16917 flags, swr_flags
16918 Set flags used by the converter. Default value is 0.
16919
16920 It supports the following individual flags:
16921
16922 res force resampling, this flag forces resampling to be used even
16923 when the input and output sample rates match.
16924
16925 dither_scale
16926 Set the dither scale. Default value is 1.
16927
16928 dither_method
16929 Set dither method. Default value is 0.
16930
16931 Supported values:
16932
16933 rectangular
16934 select rectangular dither
16935
16936 triangular
16937 select triangular dither
16938
16939 triangular_hp
16940 select triangular dither with high pass
16941
16942 lipshitz
16943 select Lipshitz noise shaping dither.
16944
16945 shibata
16946 select Shibata noise shaping dither.
16947
16948 low_shibata
16949 select low Shibata noise shaping dither.
16950
16951 high_shibata
16952 select high Shibata noise shaping dither.
16953
16954 f_weighted
16955 select f-weighted noise shaping dither
16956
16957 modified_e_weighted
16958 select modified-e-weighted noise shaping dither
16959
16960 improved_e_weighted
16961 select improved-e-weighted noise shaping dither
16962
16963 resampler
16964 Set resampling engine. Default value is swr.
16965
16966 Supported values:
16967
16968 swr select the native SW Resampler; filter options precision and
16969 cheby are not applicable in this case.
16970
16971 soxr
16972 select the SoX Resampler (where available); compensation, and
16973 filter options filter_size, phase_shift, exact_rational,
16974 filter_type & kaiser_beta, are not applicable in this case.
16975
16976 filter_size
16977 For swr only, set resampling filter size, default value is 32.
16978
16979 phase_shift
16980 For swr only, set resampling phase shift, default value is 10, and
16981 must be in the interval [0,30].
16982
16983 linear_interp
16984 Use linear interpolation when enabled (the default). Disable it if
16985 you want to preserve speed instead of quality when exact_rational
16986 fails.
16987
16988 exact_rational
16989 For swr only, when enabled, try to use exact phase_count based on
16990 input and output sample rate. However, if it is larger than "1 <<
16991 phase_shift", the phase_count will be "1 << phase_shift" as
16992 fallback. Default is enabled.
16993
16994 cutoff
16995 Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
16996 be a float value between 0 and 1. Default value is 0.97 with swr,
16997 and 0.91 with soxr (which, with a sample-rate of 44100, preserves
16998 the entire audio band to 20kHz).
16999
17000 precision
17001 For soxr only, the precision in bits to which the resampled signal
17002 will be calculated. The default value of 20 (which, with suitable
17003 dithering, is appropriate for a destination bit-depth of 16) gives
17004 SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
17005 Quality'.
17006
17007 cheby
17008 For soxr only, selects passband rolloff none (Chebyshev) & higher-
17009 precision approximation for 'irrational' ratios. Default value is
17010 0.
17011
17012 async
17013 For swr only, simple 1 parameter audio sync to timestamps using
17014 stretching, squeezing, filling and trimming. Setting this to 1 will
17015 enable filling and trimming, larger values represent the maximum
17016 amount in samples that the data may be stretched or squeezed for
17017 each second. Default value is 0, thus no compensation is applied
17018 to make the samples match the audio timestamps.
17019
17020 first_pts
17021 For swr only, assume the first pts should be this value. The time
17022 unit is 1 / sample rate. This allows for padding/trimming at the
17023 start of stream. By default, no assumption is made about the first
17024 frame's expected pts, so no padding or trimming is done. For
17025 example, this could be set to 0 to pad the beginning with silence
17026 if an audio stream starts after the video stream or to trim any
17027 samples with a negative pts due to encoder delay.
17028
17029 min_comp
17030 For swr only, set the minimum difference between timestamps and
17031 audio data (in seconds) to trigger stretching/squeezing/filling or
17032 trimming of the data to make it match the timestamps. The default
17033 is that stretching/squeezing/filling and trimming is disabled
17034 (min_comp = "FLT_MAX").
17035
17036 min_hard_comp
17037 For swr only, set the minimum difference between timestamps and
17038 audio data (in seconds) to trigger adding/dropping samples to make
17039 it match the timestamps. This option effectively is a threshold to
17040 select between hard (trim/fill) and soft (squeeze/stretch)
17041 compensation. Note that all compensation is by default disabled
17042 through min_comp. The default is 0.1.
17043
17044 comp_duration
17045 For swr only, set duration (in seconds) over which data is
17046 stretched/squeezed to make it match the timestamps. Must be a non-
17047 negative double float value, default value is 1.0.
17048
17049 max_soft_comp
17050 For swr only, set maximum factor by which data is
17051 stretched/squeezed to make it match the timestamps. Must be a non-
17052 negative double float value, default value is 0.
17053
17054 matrix_encoding
17055 Select matrixed stereo encoding.
17056
17057 It accepts the following values:
17058
17059 none
17060 select none
17061
17062 dolby
17063 select Dolby
17064
17065 dplii
17066 select Dolby Pro Logic II
17067
17068 Default value is "none".
17069
17070 filter_type
17071 For swr only, select resampling filter type. This only affects
17072 resampling operations.
17073
17074 It accepts the following values:
17075
17076 cubic
17077 select cubic
17078
17079 blackman_nuttall
17080 select Blackman Nuttall windowed sinc
17081
17082 kaiser
17083 select Kaiser windowed sinc
17084
17085 kaiser_beta
17086 For swr only, set Kaiser window beta value. Must be a double float
17087 value in the interval [2,16], default value is 9.
17088
17089 output_sample_bits
17090 For swr only, set number of used output sample bits for dithering.
17091 Must be an integer in the interval [0,64], default value is 0,
17092 which means it's not used.
17093
17095 The video scaler supports the following named options.
17096
17097 Options may be set by specifying -option value in the FFmpeg tools,
17098 with a few API-only exceptions noted below. For programmatic use, they
17099 can be set explicitly in the "SwsContext" options or through the
17100 libavutil/opt.h API.
17101
17102 sws_flags
17103 Set the scaler flags. This is also used to set the scaling
17104 algorithm. Only a single algorithm should be selected. Default
17105 value is bicubic.
17106
17107 It accepts the following values:
17108
17109 fast_bilinear
17110 Select fast bilinear scaling algorithm.
17111
17112 bilinear
17113 Select bilinear scaling algorithm.
17114
17115 bicubic
17116 Select bicubic scaling algorithm.
17117
17118 experimental
17119 Select experimental scaling algorithm.
17120
17121 neighbor
17122 Select nearest neighbor rescaling algorithm.
17123
17124 area
17125 Select averaging area rescaling algorithm.
17126
17127 bicublin
17128 Select bicubic scaling algorithm for the luma component,
17129 bilinear for chroma components.
17130
17131 gauss
17132 Select Gaussian rescaling algorithm.
17133
17134 sinc
17135 Select sinc rescaling algorithm.
17136
17137 lanczos
17138 Select Lanczos rescaling algorithm. The default width (alpha)
17139 is 3 and can be changed by setting "param0".
17140
17141 spline
17142 Select natural bicubic spline rescaling algorithm.
17143
17144 print_info
17145 Enable printing/debug logging.
17146
17147 accurate_rnd
17148 Enable accurate rounding.
17149
17150 full_chroma_int
17151 Enable full chroma interpolation.
17152
17153 full_chroma_inp
17154 Select full chroma input.
17155
17156 bitexact
17157 Enable bitexact output.
17158
17159 srcw (API only)
17160 Set source width.
17161
17162 srch (API only)
17163 Set source height.
17164
17165 dstw (API only)
17166 Set destination width.
17167
17168 dsth (API only)
17169 Set destination height.
17170
17171 src_format (API only)
17172 Set source pixel format (must be expressed as an integer).
17173
17174 dst_format (API only)
17175 Set destination pixel format (must be expressed as an integer).
17176
17177 src_range (boolean)
17178 If value is set to 1, indicates source is full range. Default value
17179 is 0, which indicates source is limited range.
17180
17181 dst_range (boolean)
17182 If value is set to 1, enable full range for destination. Default
17183 value is 0, which enables limited range.
17184
17185 param0, param1
17186 Set scaling algorithm parameters. The specified values are specific
17187 of some scaling algorithms and ignored by others. The specified
17188 values are floating point number values.
17189
17190 sws_dither
17191 Set the dithering algorithm. Accepts one of the following values.
17192 Default value is auto.
17193
17194 auto
17195 automatic choice
17196
17197 none
17198 no dithering
17199
17200 bayer
17201 bayer dither
17202
17203 ed error diffusion dither
17204
17205 a_dither
17206 arithmetic dither, based using addition
17207
17208 x_dither
17209 arithmetic dither, based using xor (more random/less apparent
17210 patterning that a_dither).
17211
17212 alphablend
17213 Set the alpha blending to use when the input has alpha but the
17214 output does not. Default value is none.
17215
17216 uniform_color
17217 Blend onto a uniform background color
17218
17219 checkerboard
17220 Blend onto a checkerboard
17221
17222 none
17223 No blending
17224
17226 Filtering in FFmpeg is enabled through the libavfilter library.
17227
17228 In libavfilter, a filter can have multiple inputs and multiple outputs.
17229 To illustrate the sorts of things that are possible, we consider the
17230 following filtergraph.
17231
17232 [main]
17233 input --> split ---------------------> overlay --> output
17234 | ^
17235 |[tmp] [flip]|
17236 +-----> crop --> vflip -------+
17237
17238 This filtergraph splits the input stream in two streams, then sends one
17239 stream through the crop filter and the vflip filter, before merging it
17240 back with the other stream by overlaying it on top. You can use the
17241 following command to achieve this:
17242
17243 ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
17244
17245 The result will be that the top half of the video is mirrored onto the
17246 bottom half of the output video.
17247
17248 Filters in the same linear chain are separated by commas, and distinct
17249 linear chains of filters are separated by semicolons. In our example,
17250 crop,vflip are in one linear chain, split and overlay are separately in
17251 another. The points where the linear chains join are labelled by names
17252 enclosed in square brackets. In the example, the split filter generates
17253 two outputs that are associated to the labels [main] and [tmp].
17254
17255 The stream sent to the second output of split, labelled as [tmp], is
17256 processed through the crop filter, which crops away the lower half part
17257 of the video, and then vertically flipped. The overlay filter takes in
17258 input the first unchanged output of the split filter (which was
17259 labelled as [main]), and overlay on its lower half the output generated
17260 by the crop,vflip filterchain.
17261
17262 Some filters take in input a list of parameters: they are specified
17263 after the filter name and an equal sign, and are separated from each
17264 other by a colon.
17265
17266 There exist so-called source filters that do not have an audio/video
17267 input, and sink filters that will not have audio/video output.
17268
17270 The graph2dot program included in the FFmpeg tools directory can be
17271 used to parse a filtergraph description and issue a corresponding
17272 textual representation in the dot language.
17273
17274 Invoke the command:
17275
17276 graph2dot -h
17277
17278 to see how to use graph2dot.
17279
17280 You can then pass the dot description to the dot program (from the
17281 graphviz suite of programs) and obtain a graphical representation of
17282 the filtergraph.
17283
17284 For example the sequence of commands:
17285
17286 echo <GRAPH_DESCRIPTION> | \
17287 tools/graph2dot -o graph.tmp && \
17288 dot -Tpng graph.tmp -o graph.png && \
17289 display graph.png
17290
17291 can be used to create and display an image representing the graph
17292 described by the GRAPH_DESCRIPTION string. Note that this string must
17293 be a complete self-contained graph, with its inputs and outputs
17294 explicitly defined. For example if your command line is of the form:
17295
17296 ffmpeg -i infile -vf scale=640:360 outfile
17297
17298 your GRAPH_DESCRIPTION string will need to be of the form:
17299
17300 nullsrc,scale=640:360,nullsink
17301
17302 you may also need to set the nullsrc parameters and add a format filter
17303 in order to simulate a specific input file.
17304
17306 A filtergraph is a directed graph of connected filters. It can contain
17307 cycles, and there can be multiple links between a pair of filters. Each
17308 link has one input pad on one side connecting it to one filter from
17309 which it takes its input, and one output pad on the other side
17310 connecting it to one filter accepting its output.
17311
17312 Each filter in a filtergraph is an instance of a filter class
17313 registered in the application, which defines the features and the
17314 number of input and output pads of the filter.
17315
17316 A filter with no input pads is called a "source", and a filter with no
17317 output pads is called a "sink".
17318
17319 Filtergraph syntax
17320 A filtergraph has a textual representation, which is recognized by the
17321 -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
17322 ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
17323 libavfilter/avfilter.h.
17324
17325 A filterchain consists of a sequence of connected filters, each one
17326 connected to the previous one in the sequence. A filterchain is
17327 represented by a list of ","-separated filter descriptions.
17328
17329 A filtergraph consists of a sequence of filterchains. A sequence of
17330 filterchains is represented by a list of ";"-separated filterchain
17331 descriptions.
17332
17333 A filter is represented by a string of the form:
17334 [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
17335
17336 filter_name is the name of the filter class of which the described
17337 filter is an instance of, and has to be the name of one of the filter
17338 classes registered in the program optionally followed by "@id". The
17339 name of the filter class is optionally followed by a string
17340 "=arguments".
17341
17342 arguments is a string which contains the parameters used to initialize
17343 the filter instance. It may have one of two forms:
17344
17345 • A ':'-separated list of key=value pairs.
17346
17347 • A ':'-separated list of value. In this case, the keys are assumed
17348 to be the option names in the order they are declared. E.g. the
17349 "fade" filter declares three options in this order -- type,
17350 start_frame and nb_frames. Then the parameter list in:0:30 means
17351 that the value in is assigned to the option type, 0 to start_frame
17352 and 30 to nb_frames.
17353
17354 • A ':'-separated list of mixed direct value and long key=value
17355 pairs. The direct value must precede the key=value pairs, and
17356 follow the same constraints order of the previous point. The
17357 following key=value pairs can be set in any preferred order.
17358
17359 If the option value itself is a list of items (e.g. the "format" filter
17360 takes a list of pixel formats), the items in the list are usually
17361 separated by |.
17362
17363 The list of arguments can be quoted using the character ' as initial
17364 and ending mark, and the character \ for escaping the characters within
17365 the quoted text; otherwise the argument string is considered terminated
17366 when the next special character (belonging to the set []=;,) is
17367 encountered.
17368
17369 The name and arguments of the filter are optionally preceded and
17370 followed by a list of link labels. A link label allows one to name a
17371 link and associate it to a filter output or input pad. The preceding
17372 labels in_link_1 ... in_link_N, are associated to the filter input
17373 pads, the following labels out_link_1 ... out_link_M, are associated to
17374 the output pads.
17375
17376 When two link labels with the same name are found in the filtergraph, a
17377 link between the corresponding input and output pad is created.
17378
17379 If an output pad is not labelled, it is linked by default to the first
17380 unlabelled input pad of the next filter in the filterchain. For
17381 example in the filterchain
17382
17383 nullsrc, split[L1], [L2]overlay, nullsink
17384
17385 the split filter instance has two output pads, and the overlay filter
17386 instance two input pads. The first output pad of split is labelled
17387 "L1", the first input pad of overlay is labelled "L2", and the second
17388 output pad of split is linked to the second input pad of overlay, which
17389 are both unlabelled.
17390
17391 In a filter description, if the input label of the first filter is not
17392 specified, "in" is assumed; if the output label of the last filter is
17393 not specified, "out" is assumed.
17394
17395 In a complete filterchain all the unlabelled filter input and output
17396 pads must be connected. A filtergraph is considered valid if all the
17397 filter input and output pads of all the filterchains are connected.
17398
17399 Libavfilter will automatically insert scale filters where format
17400 conversion is required. It is possible to specify swscale flags for
17401 those automatically inserted scalers by prepending "sws_flags=flags;"
17402 to the filtergraph description.
17403
17404 Here is a BNF description of the filtergraph syntax:
17405
17406 <NAME> ::= sequence of alphanumeric characters and '_'
17407 <FILTER_NAME> ::= <NAME>["@"<NAME>]
17408 <LINKLABEL> ::= "[" <NAME> "]"
17409 <LINKLABELS> ::= <LINKLABEL> [<LINKLABELS>]
17410 <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
17411 <FILTER> ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
17412 <FILTERCHAIN> ::= <FILTER> [,<FILTERCHAIN>]
17413 <FILTERGRAPH> ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
17414
17415 Notes on filtergraph escaping
17416 Filtergraph description composition entails several levels of escaping.
17417 See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
17418 for more information about the employed escaping procedure.
17419
17420 A first level escaping affects the content of each filter option value,
17421 which may contain the special character ":" used to separate values, or
17422 one of the escaping characters "\'".
17423
17424 A second level escaping affects the whole filter description, which may
17425 contain the escaping characters "\'" or the special characters "[],;"
17426 used by the filtergraph description.
17427
17428 Finally, when you specify a filtergraph on a shell commandline, you
17429 need to perform a third level escaping for the shell special characters
17430 contained within it.
17431
17432 For example, consider the following string to be embedded in the
17433 drawtext filter description text value:
17434
17435 this is a 'string': may contain one, or more, special characters
17436
17437 This string contains the "'" special escaping character, and the ":"
17438 special character, so it needs to be escaped in this way:
17439
17440 text=this is a \'string\'\: may contain one, or more, special characters
17441
17442 A second level of escaping is required when embedding the filter
17443 description in a filtergraph description, in order to escape all the
17444 filtergraph special characters. Thus the example above becomes:
17445
17446 drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
17447
17448 (note that in addition to the "\'" escaping special characters, also
17449 "," needs to be escaped).
17450
17451 Finally an additional level of escaping is needed when writing the
17452 filtergraph description in a shell command, which depends on the
17453 escaping rules of the adopted shell. For example, assuming that "\" is
17454 special and needs to be escaped with another "\", the previous string
17455 will finally result in:
17456
17457 -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
17458
17460 Some filters support a generic enable option. For the filters
17461 supporting timeline editing, this option can be set to an expression
17462 which is evaluated before sending a frame to the filter. If the
17463 evaluation is non-zero, the filter will be enabled, otherwise the frame
17464 will be sent unchanged to the next filter in the filtergraph.
17465
17466 The expression accepts the following values:
17467
17468 t timestamp expressed in seconds, NAN if the input timestamp is
17469 unknown
17470
17471 n sequential number of the input frame, starting from 0
17472
17473 pos the position in the file of the input frame, NAN if unknown
17474
17475 w
17476 h width and height of the input frame if video
17477
17478 Additionally, these filters support an enable command that can be used
17479 to re-define the expression.
17480
17481 Like any other filtering option, the enable option follows the same
17482 rules.
17483
17484 For example, to enable a blur filter (smartblur) from 10 seconds to 3
17485 minutes, and a curves filter starting at 3 seconds:
17486
17487 smartblur = enable='between(t,10,3*60)',
17488 curves = enable='gte(t,3)' : preset=cross_process
17489
17490 See "ffmpeg -filters" to view which filters have timeline support.
17491
17493 Some options can be changed during the operation of the filter using a
17494 command. These options are marked 'T' on the output of ffmpeg -h
17495 filter=<name of filter>. The name of the command is the name of the
17496 option and the argument is the new value.
17497
17499 Some filters with several inputs support a common set of options.
17500 These options can only be set by name, not with the short notation.
17501
17502 eof_action
17503 The action to take when EOF is encountered on the secondary input;
17504 it accepts one of the following values:
17505
17506 repeat
17507 Repeat the last frame (the default).
17508
17509 endall
17510 End both streams.
17511
17512 pass
17513 Pass the main input through.
17514
17515 shortest
17516 If set to 1, force the output to terminate when the shortest input
17517 terminates. Default value is 0.
17518
17519 repeatlast
17520 If set to 1, force the filter to extend the last frame of secondary
17521 streams until the end of the primary stream. A value of 0 disables
17522 this behavior. Default value is 1.
17523
17525 When you configure your FFmpeg build, you can disable any of the
17526 existing filters using "--disable-filters". The configure output will
17527 show the audio filters included in your build.
17528
17529 Below is a description of the currently available audio filters.
17530
17531 acompressor
17532 A compressor is mainly used to reduce the dynamic range of a signal.
17533 Especially modern music is mostly compressed at a high ratio to improve
17534 the overall loudness. It's done to get the highest attention of a
17535 listener, "fatten" the sound and bring more "power" to the track. If a
17536 signal is compressed too much it may sound dull or "dead" afterwards or
17537 it may start to "pump" (which could be a powerful effect but can also
17538 destroy a track completely). The right compression is the key to reach
17539 a professional sound and is the high art of mixing and mastering.
17540 Because of its complex settings it may take a long time to get the
17541 right feeling for this kind of effect.
17542
17543 Compression is done by detecting the volume above a chosen level
17544 "threshold" and dividing it by the factor set with "ratio". So if you
17545 set the threshold to -12dB and your signal reaches -6dB a ratio of 2:1
17546 will result in a signal at -9dB. Because an exact manipulation of the
17547 signal would cause distortion of the waveform the reduction can be
17548 levelled over the time. This is done by setting "Attack" and "Release".
17549 "attack" determines how long the signal has to rise above the threshold
17550 before any reduction will occur and "release" sets the time the signal
17551 has to fall below the threshold to reduce the reduction again. Shorter
17552 signals than the chosen attack time will be left untouched. The
17553 overall reduction of the signal can be made up afterwards with the
17554 "makeup" setting. So compressing the peaks of a signal about 6dB and
17555 raising the makeup to this level results in a signal twice as loud than
17556 the source. To gain a softer entry in the compression the "knee"
17557 flattens the hard edge at the threshold in the range of the chosen
17558 decibels.
17559
17560 The filter accepts the following options:
17561
17562 level_in
17563 Set input gain. Default is 1. Range is between 0.015625 and 64.
17564
17565 mode
17566 Set mode of compressor operation. Can be "upward" or "downward".
17567 Default is "downward".
17568
17569 threshold
17570 If a signal of stream rises above this level it will affect the
17571 gain reduction. By default it is 0.125. Range is between
17572 0.00097563 and 1.
17573
17574 ratio
17575 Set a ratio by which the signal is reduced. 1:2 means that if the
17576 level rose 4dB above the threshold, it will be only 2dB above after
17577 the reduction. Default is 2. Range is between 1 and 20.
17578
17579 attack
17580 Amount of milliseconds the signal has to rise above the threshold
17581 before gain reduction starts. Default is 20. Range is between 0.01
17582 and 2000.
17583
17584 release
17585 Amount of milliseconds the signal has to fall below the threshold
17586 before reduction is decreased again. Default is 250. Range is
17587 between 0.01 and 9000.
17588
17589 makeup
17590 Set the amount by how much signal will be amplified after
17591 processing. Default is 1. Range is from 1 to 64.
17592
17593 knee
17594 Curve the sharp knee around the threshold to enter gain reduction
17595 more softly. Default is 2.82843. Range is between 1 and 8.
17596
17597 link
17598 Choose if the "average" level between all channels of input stream
17599 or the louder("maximum") channel of input stream affects the
17600 reduction. Default is "average".
17601
17602 detection
17603 Should the exact signal be taken in case of "peak" or an RMS one in
17604 case of "rms". Default is "rms" which is mostly smoother.
17605
17606 mix How much to use compressed signal in output. Default is 1. Range
17607 is between 0 and 1.
17608
17609 Commands
17610
17611 This filter supports the all above options as commands.
17612
17613 acontrast
17614 Simple audio dynamic range compression/expansion filter.
17615
17616 The filter accepts the following options:
17617
17618 contrast
17619 Set contrast. Default is 33. Allowed range is between 0 and 100.
17620
17621 acopy
17622 Copy the input audio source unchanged to the output. This is mainly
17623 useful for testing purposes.
17624
17625 acrossfade
17626 Apply cross fade from one input audio stream to another input audio
17627 stream. The cross fade is applied for specified duration near the end
17628 of first stream.
17629
17630 The filter accepts the following options:
17631
17632 nb_samples, ns
17633 Specify the number of samples for which the cross fade effect has
17634 to last. At the end of the cross fade effect the first input audio
17635 will be completely silent. Default is 44100.
17636
17637 duration, d
17638 Specify the duration of the cross fade effect. See the Time
17639 duration section in the ffmpeg-utils(1) manual for the accepted
17640 syntax. By default the duration is determined by nb_samples. If
17641 set this option is used instead of nb_samples.
17642
17643 overlap, o
17644 Should first stream end overlap with second stream start. Default
17645 is enabled.
17646
17647 curve1
17648 Set curve for cross fade transition for first stream.
17649
17650 curve2
17651 Set curve for cross fade transition for second stream.
17652
17653 For description of available curve types see afade filter
17654 description.
17655
17656 Examples
17657
17658 • Cross fade from one input to another:
17659
17660 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
17661
17662 • Cross fade from one input to another but without overlapping:
17663
17664 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
17665
17666 acrossover
17667 Split audio stream into several bands.
17668
17669 This filter splits audio stream into two or more frequency ranges.
17670 Summing all streams back will give flat output.
17671
17672 The filter accepts the following options:
17673
17674 split
17675 Set split frequencies. Those must be positive and increasing.
17676
17677 order
17678 Set filter order for each band split. This controls filter roll-off
17679 or steepness of filter transfer function. Available values are:
17680
17681 2nd 12 dB per octave.
17682
17683 4th 24 dB per octave.
17684
17685 6th 36 dB per octave.
17686
17687 8th 48 dB per octave.
17688
17689 10th
17690 60 dB per octave.
17691
17692 12th
17693 72 dB per octave.
17694
17695 14th
17696 84 dB per octave.
17697
17698 16th
17699 96 dB per octave.
17700
17701 18th
17702 108 dB per octave.
17703
17704 20th
17705 120 dB per octave.
17706
17707 Default is 4th.
17708
17709 level
17710 Set input gain level. Allowed range is from 0 to 1. Default value
17711 is 1.
17712
17713 gains
17714 Set output gain for each band. Default value is 1 for all bands.
17715
17716 Examples
17717
17718 • Split input audio stream into two bands (low and high) with split
17719 frequency of 1500 Hz, each band will be in separate stream:
17720
17721 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
17722
17723 • Same as above, but with higher filter order:
17724
17725 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
17726
17727 • Same as above, but also with additional middle band (frequencies
17728 between 1500 and 8000):
17729
17730 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500 8000:order=8th[LOW][MID][HIGH]' -map '[LOW]' low.wav -map '[MID]' mid.wav -map '[HIGH]' high.wav
17731
17732 acrusher
17733 Reduce audio bit resolution.
17734
17735 This filter is bit crusher with enhanced functionality. A bit crusher
17736 is used to audibly reduce number of bits an audio signal is sampled
17737 with. This doesn't change the bit depth at all, it just produces the
17738 effect. Material reduced in bit depth sounds more harsh and "digital".
17739 This filter is able to even round to continuous values instead of
17740 discrete bit depths. Additionally it has a D/C offset which results in
17741 different crushing of the lower and the upper half of the signal. An
17742 Anti-Aliasing setting is able to produce "softer" crushing sounds.
17743
17744 Another feature of this filter is the logarithmic mode. This setting
17745 switches from linear distances between bits to logarithmic ones. The
17746 result is a much more "natural" sounding crusher which doesn't gate low
17747 signals for example. The human ear has a logarithmic perception, so
17748 this kind of crushing is much more pleasant. Logarithmic crushing is
17749 also able to get anti-aliased.
17750
17751 The filter accepts the following options:
17752
17753 level_in
17754 Set level in.
17755
17756 level_out
17757 Set level out.
17758
17759 bits
17760 Set bit reduction.
17761
17762 mix Set mixing amount.
17763
17764 mode
17765 Can be linear: "lin" or logarithmic: "log".
17766
17767 dc Set DC.
17768
17769 aa Set anti-aliasing.
17770
17771 samples
17772 Set sample reduction.
17773
17774 lfo Enable LFO. By default disabled.
17775
17776 lforange
17777 Set LFO range.
17778
17779 lforate
17780 Set LFO rate.
17781
17782 Commands
17783
17784 This filter supports the all above options as commands.
17785
17786 acue
17787 Delay audio filtering until a given wallclock timestamp. See the cue
17788 filter.
17789
17790 adeclick
17791 Remove impulsive noise from input audio.
17792
17793 Samples detected as impulsive noise are replaced by interpolated
17794 samples using autoregressive modelling.
17795
17796 window, w
17797 Set window size, in milliseconds. Allowed range is from 10 to 100.
17798 Default value is 55 milliseconds. This sets size of window which
17799 will be processed at once.
17800
17801 overlap, o
17802 Set window overlap, in percentage of window size. Allowed range is
17803 from 50 to 95. Default value is 75 percent. Setting this to a very
17804 high value increases impulsive noise removal but makes whole
17805 process much slower.
17806
17807 arorder, a
17808 Set autoregression order, in percentage of window size. Allowed
17809 range is from 0 to 25. Default value is 2 percent. This option also
17810 controls quality of interpolated samples using neighbour good
17811 samples.
17812
17813 threshold, t
17814 Set threshold value. Allowed range is from 1 to 100. Default value
17815 is 2. This controls the strength of impulsive noise which is going
17816 to be removed. The lower value, the more samples will be detected
17817 as impulsive noise.
17818
17819 burst, b
17820 Set burst fusion, in percentage of window size. Allowed range is 0
17821 to 10. Default value is 2. If any two samples detected as noise
17822 are spaced less than this value then any sample between those two
17823 samples will be also detected as noise.
17824
17825 method, m
17826 Set overlap method.
17827
17828 It accepts the following values:
17829
17830 add, a
17831 Select overlap-add method. Even not interpolated samples are
17832 slightly changed with this method.
17833
17834 save, s
17835 Select overlap-save method. Not interpolated samples remain
17836 unchanged.
17837
17838 Default value is "a".
17839
17840 adeclip
17841 Remove clipped samples from input audio.
17842
17843 Samples detected as clipped are replaced by interpolated samples using
17844 autoregressive modelling.
17845
17846 window, w
17847 Set window size, in milliseconds. Allowed range is from 10 to 100.
17848 Default value is 55 milliseconds. This sets size of window which
17849 will be processed at once.
17850
17851 overlap, o
17852 Set window overlap, in percentage of window size. Allowed range is
17853 from 50 to 95. Default value is 75 percent.
17854
17855 arorder, a
17856 Set autoregression order, in percentage of window size. Allowed
17857 range is from 0 to 25. Default value is 8 percent. This option also
17858 controls quality of interpolated samples using neighbour good
17859 samples.
17860
17861 threshold, t
17862 Set threshold value. Allowed range is from 1 to 100. Default value
17863 is 10. Higher values make clip detection less aggressive.
17864
17865 hsize, n
17866 Set size of histogram used to detect clips. Allowed range is from
17867 100 to 9999. Default value is 1000. Higher values make clip
17868 detection less aggressive.
17869
17870 method, m
17871 Set overlap method.
17872
17873 It accepts the following values:
17874
17875 add, a
17876 Select overlap-add method. Even not interpolated samples are
17877 slightly changed with this method.
17878
17879 save, s
17880 Select overlap-save method. Not interpolated samples remain
17881 unchanged.
17882
17883 Default value is "a".
17884
17885 adecorrelate
17886 Apply decorrelation to input audio stream.
17887
17888 The filter accepts the following options:
17889
17890 stages
17891 Set decorrelation stages of filtering. Allowed range is from 1 to
17892 16. Default value is 6.
17893
17894 seed
17895 Set random seed used for setting delay in samples across channels.
17896
17897 adelay
17898 Delay one or more audio channels.
17899
17900 Samples in delayed channel are filled with silence.
17901
17902 The filter accepts the following option:
17903
17904 delays
17905 Set list of delays in milliseconds for each channel separated by
17906 '|'. Unused delays will be silently ignored. If number of given
17907 delays is smaller than number of channels all remaining channels
17908 will not be delayed. If you want to delay exact number of samples,
17909 append 'S' to number. If you want instead to delay in seconds,
17910 append 's' to number.
17911
17912 all Use last set delay for all remaining channels. By default is
17913 disabled. This option if enabled changes how option "delays" is
17914 interpreted.
17915
17916 Examples
17917
17918 • Delay first channel by 1.5 seconds, the third channel by 0.5
17919 seconds and leave the second channel (and any other channels that
17920 may be present) unchanged.
17921
17922 adelay=1500|0|500
17923
17924 • Delay second channel by 500 samples, the third channel by 700
17925 samples and leave the first channel (and any other channels that
17926 may be present) unchanged.
17927
17928 adelay=0|500S|700S
17929
17930 • Delay all channels by same number of samples:
17931
17932 adelay=delays=64S:all=1
17933
17934 adenorm
17935 Remedy denormals in audio by adding extremely low-level noise.
17936
17937 This filter shall be placed before any filter that can produce
17938 denormals.
17939
17940 A description of the accepted parameters follows.
17941
17942 level
17943 Set level of added noise in dB. Default is "-351". Allowed range
17944 is from -451 to -90.
17945
17946 type
17947 Set type of added noise.
17948
17949 dc Add DC signal.
17950
17951 ac Add AC signal.
17952
17953 square
17954 Add square signal.
17955
17956 pulse
17957 Add pulse signal.
17958
17959 Default is "dc".
17960
17961 Commands
17962
17963 This filter supports the all above options as commands.
17964
17965 aderivative, aintegral
17966 Compute derivative/integral of audio stream.
17967
17968 Applying both filters one after another produces original audio.
17969
17970 adynamicequalizer
17971 Apply dynamic equalization to input audio stream.
17972
17973 A description of the accepted options follows.
17974
17975 threshold
17976 Set the detection threshold used to trigger equalization.
17977 Threshold detection is using bandpass filter. Default value is 0.
17978 Allowed range is from 0 to 100.
17979
17980 dfrequency
17981 Set the detection frequency in Hz used for bandpass filter used to
17982 trigger equalization. Default value is 1000 Hz. Allowed range is
17983 between 2 and 1000000 Hz.
17984
17985 dqfactor
17986 Set the detection resonance factor for bandpass filter used to
17987 trigger equalization. Default value is 1. Allowed range is from
17988 0.001 to 1000.
17989
17990 tfrequency
17991 Set the target frequency of equalization filter. Default value is
17992 1000 Hz. Allowed range is between 2 and 1000000 Hz.
17993
17994 tqfactor
17995 Set the target resonance factor for target equalization filter.
17996 Default value is 1. Allowed range is from 0.001 to 1000.
17997
17998 attack
17999 Set the amount of milliseconds the signal from detection has to
18000 rise above the detection threshold before equalization starts.
18001 Default is 20. Allowed range is between 1 and 2000.
18002
18003 release
18004 Set the amount of milliseconds the signal from detection has to
18005 fall below the detection threshold before equalization ends.
18006 Default is 200. Allowed range is between 1 and 2000.
18007
18008 knee
18009 Curve the sharp knee around the detection threshold to calculate
18010 equalization gain more softly. Default is 1. Allowed range is
18011 between 0 and 8.
18012
18013 ratio
18014 Set the ratio by which the equalization gain is raised. Default is
18015 1. Allowed range is between 1 and 20.
18016
18017 makeup
18018 Set the makeup offset in dB by which the equalization gain is
18019 raised. Default is 0. Allowed range is between 0 and 30.
18020
18021 range
18022 Set the max allowed cut/boost amount in dB. Default is 0. Allowed
18023 range is from 0 to 200.
18024
18025 slew
18026 Set the slew factor. Default is 1. Allowed range is from 1 to 200.
18027
18028 mode
18029 Set the mode of filter operation, can be one of the following:
18030
18031 listen
18032 Output only isolated bandpass signal.
18033
18034 cut Cut frequencies above detection threshold.
18035
18036 boost
18037 Boost frequencies bellow detection threshold.
18038
18039 Default mode is cut.
18040
18041 Commands
18042
18043 This filter supports the all above options as commands.
18044
18045 adynamicsmooth
18046 Apply dynamic smoothing to input audio stream.
18047
18048 A description of the accepted options follows.
18049
18050 sensitivity
18051 Set an amount of sensitivity to frequency fluctations. Default is
18052 2. Allowed range is from 0 to 1e+06.
18053
18054 basefreq
18055 Set a base frequency for smoothing. Default value is 22050.
18056 Allowed range is from 2 to 1e+06.
18057
18058 Commands
18059
18060 This filter supports the all above options as commands.
18061
18062 aecho
18063 Apply echoing to the input audio.
18064
18065 Echoes are reflected sound and can occur naturally amongst mountains
18066 (and sometimes large buildings) when talking or shouting; digital echo
18067 effects emulate this behaviour and are often used to help fill out the
18068 sound of a single instrument or vocal. The time difference between the
18069 original signal and the reflection is the "delay", and the loudness of
18070 the reflected signal is the "decay". Multiple echoes can have
18071 different delays and decays.
18072
18073 A description of the accepted parameters follows.
18074
18075 in_gain
18076 Set input gain of reflected signal. Default is 0.6.
18077
18078 out_gain
18079 Set output gain of reflected signal. Default is 0.3.
18080
18081 delays
18082 Set list of time intervals in milliseconds between original signal
18083 and reflections separated by '|'. Allowed range for each "delay" is
18084 "(0 - 90000.0]". Default is 1000.
18085
18086 decays
18087 Set list of loudness of reflected signals separated by '|'.
18088 Allowed range for each "decay" is "(0 - 1.0]". Default is 0.5.
18089
18090 Examples
18091
18092 • Make it sound as if there are twice as many instruments as are
18093 actually playing:
18094
18095 aecho=0.8:0.88:60:0.4
18096
18097 • If delay is very short, then it sounds like a (metallic) robot
18098 playing music:
18099
18100 aecho=0.8:0.88:6:0.4
18101
18102 • A longer delay will sound like an open air concert in the
18103 mountains:
18104
18105 aecho=0.8:0.9:1000:0.3
18106
18107 • Same as above but with one more mountain:
18108
18109 aecho=0.8:0.9:1000|1800:0.3|0.25
18110
18111 aemphasis
18112 Audio emphasis filter creates or restores material directly taken from
18113 LPs or emphased CDs with different filter curves. E.g. to store music
18114 on vinyl the signal has to be altered by a filter first to even out the
18115 disadvantages of this recording medium. Once the material is played
18116 back the inverse filter has to be applied to restore the distortion of
18117 the frequency response.
18118
18119 The filter accepts the following options:
18120
18121 level_in
18122 Set input gain.
18123
18124 level_out
18125 Set output gain.
18126
18127 mode
18128 Set filter mode. For restoring material use "reproduction" mode,
18129 otherwise use "production" mode. Default is "reproduction" mode.
18130
18131 type
18132 Set filter type. Selects medium. Can be one of the following:
18133
18134 col select Columbia.
18135
18136 emi select EMI.
18137
18138 bsi select BSI (78RPM).
18139
18140 riaa
18141 select RIAA.
18142
18143 cd select Compact Disc (CD).
18144
18145 50fm
18146 select 50Xs (FM).
18147
18148 75fm
18149 select 75Xs (FM).
18150
18151 50kf
18152 select 50Xs (FM-KF).
18153
18154 75kf
18155 select 75Xs (FM-KF).
18156
18157 Commands
18158
18159 This filter supports the all above options as commands.
18160
18161 aeval
18162 Modify an audio signal according to the specified expressions.
18163
18164 This filter accepts one or more expressions (one for each channel),
18165 which are evaluated and used to modify a corresponding audio signal.
18166
18167 It accepts the following parameters:
18168
18169 exprs
18170 Set the '|'-separated expressions list for each separate channel.
18171 If the number of input channels is greater than the number of
18172 expressions, the last specified expression is used for the
18173 remaining output channels.
18174
18175 channel_layout, c
18176 Set output channel layout. If not specified, the channel layout is
18177 specified by the number of expressions. If set to same, it will use
18178 by default the same input channel layout.
18179
18180 Each expression in exprs can contain the following constants and
18181 functions:
18182
18183 ch channel number of the current expression
18184
18185 n number of the evaluated sample, starting from 0
18186
18187 s sample rate
18188
18189 t time of the evaluated sample expressed in seconds
18190
18191 nb_in_channels
18192 nb_out_channels
18193 input and output number of channels
18194
18195 val(CH)
18196 the value of input channel with number CH
18197
18198 Note: this filter is slow. For faster processing you should use a
18199 dedicated filter.
18200
18201 Examples
18202
18203 • Half volume:
18204
18205 aeval=val(ch)/2:c=same
18206
18207 • Invert phase of the second channel:
18208
18209 aeval=val(0)|-val(1)
18210
18211 aexciter
18212 An exciter is used to produce high sound that is not present in the
18213 original signal. This is done by creating harmonic distortions of the
18214 signal which are restricted in range and added to the original signal.
18215 An Exciter raises the upper end of an audio signal without simply
18216 raising the higher frequencies like an equalizer would do to create a
18217 more "crisp" or "brilliant" sound.
18218
18219 The filter accepts the following options:
18220
18221 level_in
18222 Set input level prior processing of signal. Allowed range is from
18223 0 to 64. Default value is 1.
18224
18225 level_out
18226 Set output level after processing of signal. Allowed range is from
18227 0 to 64. Default value is 1.
18228
18229 amount
18230 Set the amount of harmonics added to original signal. Allowed
18231 range is from 0 to 64. Default value is 1.
18232
18233 drive
18234 Set the amount of newly created harmonics. Allowed range is from
18235 0.1 to 10. Default value is 8.5.
18236
18237 blend
18238 Set the octave of newly created harmonics. Allowed range is from
18239 -10 to 10. Default value is 0.
18240
18241 freq
18242 Set the lower frequency limit of producing harmonics in Hz.
18243 Allowed range is from 2000 to 12000 Hz. Default is 7500 Hz.
18244
18245 ceil
18246 Set the upper frequency limit of producing harmonics. Allowed
18247 range is from 9999 to 20000 Hz. If value is lower than 10000 Hz no
18248 limit is applied.
18249
18250 listen
18251 Mute the original signal and output only added harmonics. By
18252 default is disabled.
18253
18254 Commands
18255
18256 This filter supports the all above options as commands.
18257
18258 afade
18259 Apply fade-in/out effect to input audio.
18260
18261 A description of the accepted parameters follows.
18262
18263 type, t
18264 Specify the effect type, can be either "in" for fade-in, or "out"
18265 for a fade-out effect. Default is "in".
18266
18267 start_sample, ss
18268 Specify the number of the start sample for starting to apply the
18269 fade effect. Default is 0.
18270
18271 nb_samples, ns
18272 Specify the number of samples for which the fade effect has to
18273 last. At the end of the fade-in effect the output audio will have
18274 the same volume as the input audio, at the end of the fade-out
18275 transition the output audio will be silence. Default is 44100.
18276
18277 start_time, st
18278 Specify the start time of the fade effect. Default is 0. The value
18279 must be specified as a time duration; see the Time duration section
18280 in the ffmpeg-utils(1) manual for the accepted syntax. If set this
18281 option is used instead of start_sample.
18282
18283 duration, d
18284 Specify the duration of the fade effect. See the Time duration
18285 section in the ffmpeg-utils(1) manual for the accepted syntax. At
18286 the end of the fade-in effect the output audio will have the same
18287 volume as the input audio, at the end of the fade-out transition
18288 the output audio will be silence. By default the duration is
18289 determined by nb_samples. If set this option is used instead of
18290 nb_samples.
18291
18292 curve
18293 Set curve for fade transition.
18294
18295 It accepts the following values:
18296
18297 tri select triangular, linear slope (default)
18298
18299 qsin
18300 select quarter of sine wave
18301
18302 hsin
18303 select half of sine wave
18304
18305 esin
18306 select exponential sine wave
18307
18308 log select logarithmic
18309
18310 ipar
18311 select inverted parabola
18312
18313 qua select quadratic
18314
18315 cub select cubic
18316
18317 squ select square root
18318
18319 cbr select cubic root
18320
18321 par select parabola
18322
18323 exp select exponential
18324
18325 iqsin
18326 select inverted quarter of sine wave
18327
18328 ihsin
18329 select inverted half of sine wave
18330
18331 dese
18332 select double-exponential seat
18333
18334 desi
18335 select double-exponential sigmoid
18336
18337 losi
18338 select logistic sigmoid
18339
18340 sinc
18341 select sine cardinal function
18342
18343 isinc
18344 select inverted sine cardinal function
18345
18346 nofade
18347 no fade applied
18348
18349 Commands
18350
18351 This filter supports the all above options as commands.
18352
18353 Examples
18354
18355 • Fade in first 15 seconds of audio:
18356
18357 afade=t=in:ss=0:d=15
18358
18359 • Fade out last 25 seconds of a 900 seconds audio:
18360
18361 afade=t=out:st=875:d=25
18362
18363 afftdn
18364 Denoise audio samples with FFT.
18365
18366 A description of the accepted parameters follows.
18367
18368 nr Set the noise reduction in dB, allowed range is 0.01 to 97.
18369 Default value is 12 dB.
18370
18371 nf Set the noise floor in dB, allowed range is -80 to -20. Default
18372 value is -50 dB.
18373
18374 nt Set the noise type.
18375
18376 It accepts the following values:
18377
18378 w Select white noise.
18379
18380 v Select vinyl noise.
18381
18382 s Select shellac noise.
18383
18384 c Select custom noise, defined in "bn" option.
18385
18386 Default value is white noise.
18387
18388 bn Set custom band noise for every one of 15 bands. Bands are
18389 separated by ' ' or '|'.
18390
18391 rf Set the residual floor in dB, allowed range is -80 to -20. Default
18392 value is -38 dB.
18393
18394 tn Enable noise tracking. By default is disabled. With this enabled,
18395 noise floor is automatically adjusted.
18396
18397 tr Enable residual tracking. By default is disabled.
18398
18399 om Set the output mode.
18400
18401 It accepts the following values:
18402
18403 i Pass input unchanged.
18404
18405 o Pass noise filtered out.
18406
18407 n Pass only noise.
18408
18409 Default value is o.
18410
18411 Commands
18412
18413 This filter supports the following commands:
18414
18415 sample_noise, sn
18416 Start or stop measuring noise profile. Syntax for the command is :
18417 "start" or "stop" string. After measuring noise profile is stopped
18418 it will be automatically applied in filtering.
18419
18420 noise_reduction, nr
18421 Change noise reduction. Argument is single float number. Syntax
18422 for the command is : "noise_reduction"
18423
18424 noise_floor, nf
18425 Change noise floor. Argument is single float number. Syntax for
18426 the command is : "noise_floor"
18427
18428 output_mode, om
18429 Change output mode operation. Syntax for the command is : "i", "o"
18430 or "n" string.
18431
18432 afftfilt
18433 Apply arbitrary expressions to samples in frequency domain.
18434
18435 real
18436 Set frequency domain real expression for each separate channel
18437 separated by '|'. Default is "re". If the number of input channels
18438 is greater than the number of expressions, the last specified
18439 expression is used for the remaining output channels.
18440
18441 imag
18442 Set frequency domain imaginary expression for each separate channel
18443 separated by '|'. Default is "im".
18444
18445 Each expression in real and imag can contain the following
18446 constants and functions:
18447
18448 sr sample rate
18449
18450 b current frequency bin number
18451
18452 nb number of available bins
18453
18454 ch channel number of the current expression
18455
18456 chs number of channels
18457
18458 pts current frame pts
18459
18460 re current real part of frequency bin of current channel
18461
18462 im current imaginary part of frequency bin of current channel
18463
18464 real(b, ch)
18465 Return the value of real part of frequency bin at location
18466 (bin,channel)
18467
18468 imag(b, ch)
18469 Return the value of imaginary part of frequency bin at location
18470 (bin,channel)
18471
18472 win_size
18473 Set window size. Allowed range is from 16 to 131072. Default is
18474 4096
18475
18476 win_func
18477 Set window function.
18478
18479 It accepts the following values:
18480
18481 rect
18482 bartlett
18483 hann, hanning
18484 hamming
18485 blackman
18486 welch
18487 flattop
18488 bharris
18489 bnuttall
18490 bhann
18491 sine
18492 nuttall
18493 lanczos
18494 gauss
18495 tukey
18496 dolph
18497 cauchy
18498 parzen
18499 poisson
18500 bohman
18501
18502 Default is "hann".
18503
18504 overlap
18505 Set window overlap. If set to 1, the recommended overlap for
18506 selected window function will be picked. Default is 0.75.
18507
18508 Examples
18509
18510 • Leave almost only low frequencies in audio:
18511
18512 afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
18513
18514 • Apply robotize effect:
18515
18516 afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
18517
18518 • Apply whisper effect:
18519
18520 afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8"
18521
18522 afir
18523 Apply an arbitrary Finite Impulse Response filter.
18524
18525 This filter is designed for applying long FIR filters, up to 60 seconds
18526 long.
18527
18528 It can be used as component for digital crossover filters, room
18529 equalization, cross talk cancellation, wavefield synthesis,
18530 auralization, ambiophonics, ambisonics and spatialization.
18531
18532 This filter uses the streams higher than first one as FIR coefficients.
18533 If the non-first stream holds a single channel, it will be used for all
18534 input channels in the first stream, otherwise the number of channels in
18535 the non-first stream must be same as the number of channels in the
18536 first stream.
18537
18538 It accepts the following parameters:
18539
18540 dry Set dry gain. This sets input gain.
18541
18542 wet Set wet gain. This sets final output gain.
18543
18544 length
18545 Set Impulse Response filter length. Default is 1, which means whole
18546 IR is processed.
18547
18548 gtype
18549 Enable applying gain measured from power of IR.
18550
18551 Set which approach to use for auto gain measurement.
18552
18553 none
18554 Do not apply any gain.
18555
18556 peak
18557 select peak gain, very conservative approach. This is default
18558 value.
18559
18560 dc select DC gain, limited application.
18561
18562 gn select gain to noise approach, this is most popular one.
18563
18564 irgain
18565 Set gain to be applied to IR coefficients before filtering.
18566 Allowed range is 0 to 1. This gain is applied after any gain
18567 applied with gtype option.
18568
18569 irfmt
18570 Set format of IR stream. Can be "mono" or "input". Default is
18571 "input".
18572
18573 maxir
18574 Set max allowed Impulse Response filter duration in seconds.
18575 Default is 30 seconds. Allowed range is 0.1 to 60 seconds.
18576
18577 response
18578 Show IR frequency response, magnitude(magenta), phase(green) and
18579 group delay(yellow) in additional video stream. By default it is
18580 disabled.
18581
18582 channel
18583 Set for which IR channel to display frequency response. By default
18584 is first channel displayed. This option is used only when response
18585 is enabled.
18586
18587 size
18588 Set video stream size. This option is used only when response is
18589 enabled.
18590
18591 rate
18592 Set video stream frame rate. This option is used only when response
18593 is enabled.
18594
18595 minp
18596 Set minimal partition size used for convolution. Default is 8192.
18597 Allowed range is from 1 to 32768. Lower values decreases latency
18598 at cost of higher CPU usage.
18599
18600 maxp
18601 Set maximal partition size used for convolution. Default is 8192.
18602 Allowed range is from 8 to 32768. Lower values may increase CPU
18603 usage.
18604
18605 nbirs
18606 Set number of input impulse responses streams which will be
18607 switchable at runtime. Allowed range is from 1 to 32. Default is
18608 1.
18609
18610 ir Set IR stream which will be used for convolution, starting from 0,
18611 should always be lower than supplied value by "nbirs" option.
18612 Default is 0. This option can be changed at runtime via commands.
18613
18614 Examples
18615
18616 • Apply reverb to stream using mono IR file as second input, complete
18617 command using ffmpeg:
18618
18619 ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
18620
18621 aformat
18622 Set output format constraints for the input audio. The framework will
18623 negotiate the most appropriate format to minimize conversions.
18624
18625 It accepts the following parameters:
18626
18627 sample_fmts, f
18628 A '|'-separated list of requested sample formats.
18629
18630 sample_rates, r
18631 A '|'-separated list of requested sample rates.
18632
18633 channel_layouts, cl
18634 A '|'-separated list of requested channel layouts.
18635
18636 See the Channel Layout section in the ffmpeg-utils(1) manual for
18637 the required syntax.
18638
18639 If a parameter is omitted, all values are allowed.
18640
18641 Force the output to either unsigned 8-bit or signed 16-bit stereo
18642
18643 aformat=sample_fmts=u8|s16:channel_layouts=stereo
18644
18645 afreqshift
18646 Apply frequency shift to input audio samples.
18647
18648 The filter accepts the following options:
18649
18650 shift
18651 Specify frequency shift. Allowed range is -INT_MAX to INT_MAX.
18652 Default value is 0.0.
18653
18654 level
18655 Set output gain applied to final output. Allowed range is from 0.0
18656 to 1.0. Default value is 1.0.
18657
18658 order
18659 Set filter order used for filtering. Allowed range is from 1 to 16.
18660 Default value is 8.
18661
18662 Commands
18663
18664 This filter supports the all above options as commands.
18665
18666 afwtdn
18667 Reduce broadband noise from input samples using Wavelets.
18668
18669 A description of the accepted options follows.
18670
18671 sigma
18672 Set the noise sigma, allowed range is from 0 to 1. Default value
18673 is 0. This option controls strength of denoising applied to input
18674 samples. Most useful way to set this option is via decibels, eg.
18675 -45dB.
18676
18677 levels
18678 Set the number of wavelet levels of decomposition. Allowed range
18679 is from 1 to 12. Default value is 10. Setting this too low make
18680 denoising performance very poor.
18681
18682 wavet
18683 Set wavelet type for decomposition of input frame. They are sorted
18684 by number of coefficients, from lowest to highest. More
18685 coefficients means worse filtering speed, but overall better
18686 quality. Available wavelets are:
18687
18688 sym2
18689 sym4
18690 rbior68
18691 deb10
18692 sym10
18693 coif5
18694 bl3
18695 percent
18696 Set percent of full denoising. Allowed range is from 0 to 100
18697 percent. Default value is 85 percent or partial denoising.
18698
18699 profile
18700 If enabled, first input frame will be used as noise profile. If
18701 first frame samples contain non-noise performance will be very
18702 poor.
18703
18704 adaptive
18705 If enabled, input frames are analyzed for presence of noise. If
18706 noise is detected with high possibility then input frame profile
18707 will be used for processing following frames, until new noise frame
18708 is detected.
18709
18710 samples
18711 Set size of single frame in number of samples. Allowed range is
18712 from 512 to 65536. Default frame size is 8192 samples.
18713
18714 softness
18715 Set softness applied inside thresholding function. Allowed range is
18716 from 0 to 10. Default softness is 1.
18717
18718 Commands
18719
18720 This filter supports the all above options as commands.
18721
18722 agate
18723 A gate is mainly used to reduce lower parts of a signal. This kind of
18724 signal processing reduces disturbing noise between useful signals.
18725
18726 Gating is done by detecting the volume below a chosen level threshold
18727 and dividing it by the factor set with ratio. The bottom of the noise
18728 floor is set via range. Because an exact manipulation of the signal
18729 would cause distortion of the waveform the reduction can be levelled
18730 over time. This is done by setting attack and release.
18731
18732 attack determines how long the signal has to fall below the threshold
18733 before any reduction will occur and release sets the time the signal
18734 has to rise above the threshold to reduce the reduction again. Shorter
18735 signals than the chosen attack time will be left untouched.
18736
18737 level_in
18738 Set input level before filtering. Default is 1. Allowed range is
18739 from 0.015625 to 64.
18740
18741 mode
18742 Set the mode of operation. Can be "upward" or "downward". Default
18743 is "downward". If set to "upward" mode, higher parts of signal will
18744 be amplified, expanding dynamic range in upward direction.
18745 Otherwise, in case of "downward" lower parts of signal will be
18746 reduced.
18747
18748 range
18749 Set the level of gain reduction when the signal is below the
18750 threshold. Default is 0.06125. Allowed range is from 0 to 1.
18751 Setting this to 0 disables reduction and then filter behaves like
18752 expander.
18753
18754 threshold
18755 If a signal rises above this level the gain reduction is released.
18756 Default is 0.125. Allowed range is from 0 to 1.
18757
18758 ratio
18759 Set a ratio by which the signal is reduced. Default is 2. Allowed
18760 range is from 1 to 9000.
18761
18762 attack
18763 Amount of milliseconds the signal has to rise above the threshold
18764 before gain reduction stops. Default is 20 milliseconds. Allowed
18765 range is from 0.01 to 9000.
18766
18767 release
18768 Amount of milliseconds the signal has to fall below the threshold
18769 before the reduction is increased again. Default is 250
18770 milliseconds. Allowed range is from 0.01 to 9000.
18771
18772 makeup
18773 Set amount of amplification of signal after processing. Default is
18774 1. Allowed range is from 1 to 64.
18775
18776 knee
18777 Curve the sharp knee around the threshold to enter gain reduction
18778 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
18779
18780 detection
18781 Choose if exact signal should be taken for detection or an RMS like
18782 one. Default is "rms". Can be "peak" or "rms".
18783
18784 link
18785 Choose if the average level between all channels or the louder
18786 channel affects the reduction. Default is "average". Can be
18787 "average" or "maximum".
18788
18789 Commands
18790
18791 This filter supports the all above options as commands.
18792
18793 aiir
18794 Apply an arbitrary Infinite Impulse Response filter.
18795
18796 It accepts the following parameters:
18797
18798 zeros, z
18799 Set B/numerator/zeros/reflection coefficients.
18800
18801 poles, p
18802 Set A/denominator/poles/ladder coefficients.
18803
18804 gains, k
18805 Set channels gains.
18806
18807 dry_gain
18808 Set input gain.
18809
18810 wet_gain
18811 Set output gain.
18812
18813 format, f
18814 Set coefficients format.
18815
18816 ll lattice-ladder function
18817
18818 sf analog transfer function
18819
18820 tf digital transfer function
18821
18822 zp Z-plane zeros/poles, cartesian (default)
18823
18824 pr Z-plane zeros/poles, polar radians
18825
18826 pd Z-plane zeros/poles, polar degrees
18827
18828 sp S-plane zeros/poles
18829
18830 process, r
18831 Set type of processing.
18832
18833 d direct processing
18834
18835 s serial processing
18836
18837 p parallel processing
18838
18839 precision, e
18840 Set filtering precision.
18841
18842 dbl double-precision floating-point (default)
18843
18844 flt single-precision floating-point
18845
18846 i32 32-bit integers
18847
18848 i16 16-bit integers
18849
18850 normalize, n
18851 Normalize filter coefficients, by default is enabled. Enabling it
18852 will normalize magnitude response at DC to 0dB.
18853
18854 mix How much to use filtered signal in output. Default is 1. Range is
18855 between 0 and 1.
18856
18857 response
18858 Show IR frequency response, magnitude(magenta), phase(green) and
18859 group delay(yellow) in additional video stream. By default it is
18860 disabled.
18861
18862 channel
18863 Set for which IR channel to display frequency response. By default
18864 is first channel displayed. This option is used only when response
18865 is enabled.
18866
18867 size
18868 Set video stream size. This option is used only when response is
18869 enabled.
18870
18871 Coefficients in "tf" and "sf" format are separated by spaces and are in
18872 ascending order.
18873
18874 Coefficients in "zp" format are separated by spaces and order of
18875 coefficients doesn't matter. Coefficients in "zp" format are complex
18876 numbers with i imaginary unit.
18877
18878 Different coefficients and gains can be provided for every channel, in
18879 such case use '|' to separate coefficients or gains. Last provided
18880 coefficients will be used for all remaining channels.
18881
18882 Examples
18883
18884 • Apply 2 pole elliptic notch at around 5000Hz for 48000 Hz sample
18885 rate:
18886
18887 aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d
18888
18889 • Same as above but in "zp" format:
18890
18891 aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s
18892
18893 • Apply 3-rd order analog normalized Butterworth low-pass filter,
18894 using analog transfer function format:
18895
18896 aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
18897
18898 alimiter
18899 The limiter prevents an input signal from rising over a desired
18900 threshold. This limiter uses lookahead technology to prevent your
18901 signal from distorting. It means that there is a small delay after the
18902 signal is processed. Keep in mind that the delay it produces is the
18903 attack time you set.
18904
18905 The filter accepts the following options:
18906
18907 level_in
18908 Set input gain. Default is 1.
18909
18910 level_out
18911 Set output gain. Default is 1.
18912
18913 limit
18914 Don't let signals above this level pass the limiter. Default is 1.
18915
18916 attack
18917 The limiter will reach its attenuation level in this amount of time
18918 in milliseconds. Default is 5 milliseconds.
18919
18920 release
18921 Come back from limiting to attenuation 1.0 in this amount of
18922 milliseconds. Default is 50 milliseconds.
18923
18924 asc When gain reduction is always needed ASC takes care of releasing to
18925 an average reduction level rather than reaching a reduction of 0 in
18926 the release time.
18927
18928 asc_level
18929 Select how much the release time is affected by ASC, 0 means nearly
18930 no changes in release time while 1 produces higher release times.
18931
18932 level
18933 Auto level output signal. Default is enabled. This normalizes
18934 audio back to 0dB if enabled.
18935
18936 Depending on picked setting it is recommended to upsample input 2x or
18937 4x times with aresample before applying this filter.
18938
18939 allpass
18940 Apply a two-pole all-pass filter with central frequency (in Hz)
18941 frequency, and filter-width width. An all-pass filter changes the
18942 audio's frequency to phase relationship without changing its frequency
18943 to amplitude relationship.
18944
18945 The filter accepts the following options:
18946
18947 frequency, f
18948 Set frequency in Hz.
18949
18950 width_type, t
18951 Set method to specify band-width of filter.
18952
18953 h Hz
18954
18955 q Q-Factor
18956
18957 o octave
18958
18959 s slope
18960
18961 k kHz
18962
18963 width, w
18964 Specify the band-width of a filter in width_type units.
18965
18966 mix, m
18967 How much to use filtered signal in output. Default is 1. Range is
18968 between 0 and 1.
18969
18970 channels, c
18971 Specify which channels to filter, by default all available are
18972 filtered.
18973
18974 normalize, n
18975 Normalize biquad coefficients, by default is disabled. Enabling it
18976 will normalize magnitude response at DC to 0dB.
18977
18978 order, o
18979 Set the filter order, can be 1 or 2. Default is 2.
18980
18981 transform, a
18982 Set transform type of IIR filter.
18983
18984 di
18985 dii
18986 tdii
18987 latt
18988 svf
18989 precision, r
18990 Set precison of filtering.
18991
18992 auto
18993 Pick automatic sample format depending on surround filters.
18994
18995 s16 Always use signed 16-bit.
18996
18997 s32 Always use signed 32-bit.
18998
18999 f32 Always use float 32-bit.
19000
19001 f64 Always use float 64-bit.
19002
19003 Commands
19004
19005 This filter supports the following commands:
19006
19007 frequency, f
19008 Change allpass frequency. Syntax for the command is : "frequency"
19009
19010 width_type, t
19011 Change allpass width_type. Syntax for the command is :
19012 "width_type"
19013
19014 width, w
19015 Change allpass width. Syntax for the command is : "width"
19016
19017 mix, m
19018 Change allpass mix. Syntax for the command is : "mix"
19019
19020 aloop
19021 Loop audio samples.
19022
19023 The filter accepts the following options:
19024
19025 loop
19026 Set the number of loops. Setting this value to -1 will result in
19027 infinite loops. Default is 0.
19028
19029 size
19030 Set maximal number of samples. Default is 0.
19031
19032 start
19033 Set first sample of loop. Default is 0.
19034
19035 amerge
19036 Merge two or more audio streams into a single multi-channel stream.
19037
19038 The filter accepts the following options:
19039
19040 inputs
19041 Set the number of inputs. Default is 2.
19042
19043 If the channel layouts of the inputs are disjoint, and therefore
19044 compatible, the channel layout of the output will be set accordingly
19045 and the channels will be reordered as necessary. If the channel layouts
19046 of the inputs are not disjoint, the output will have all the channels
19047 of the first input then all the channels of the second input, in that
19048 order, and the channel layout of the output will be the default value
19049 corresponding to the total number of channels.
19050
19051 For example, if the first input is in 2.1 (FL+FR+LF) and the second
19052 input is FC+BL+BR, then the output will be in 5.1, with the channels in
19053 the following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of
19054 the first input, b1 is the first channel of the second input).
19055
19056 On the other hand, if both input are in stereo, the output channels
19057 will be in the default order: a1, a2, b1, b2, and the channel layout
19058 will be arbitrarily set to 4.0, which may or may not be the expected
19059 value.
19060
19061 All inputs must have the same sample rate, and format.
19062
19063 If inputs do not have the same duration, the output will stop with the
19064 shortest.
19065
19066 Examples
19067
19068 • Merge two mono files into a stereo stream:
19069
19070 amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
19071
19072 • Multiple merges assuming 1 video stream and 6 audio streams in
19073 input.mkv:
19074
19075 ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
19076
19077 amix
19078 Mixes multiple audio inputs into a single output.
19079
19080 Note that this filter only supports float samples (the amerge and pan
19081 audio filters support many formats). If the amix input has integer
19082 samples then aresample will be automatically inserted to perform the
19083 conversion to float samples.
19084
19085 For example
19086
19087 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
19088
19089 will mix 3 input audio streams to a single output with the same
19090 duration as the first input and a dropout transition time of 3 seconds.
19091
19092 It accepts the following parameters:
19093
19094 inputs
19095 The number of inputs. If unspecified, it defaults to 2.
19096
19097 duration
19098 How to determine the end-of-stream.
19099
19100 longest
19101 The duration of the longest input. (default)
19102
19103 shortest
19104 The duration of the shortest input.
19105
19106 first
19107 The duration of the first input.
19108
19109 dropout_transition
19110 The transition time, in seconds, for volume renormalization when an
19111 input stream ends. The default value is 2 seconds.
19112
19113 weights
19114 Specify weight of each input audio stream as sequence. Each weight
19115 is separated by space. By default all inputs have same weight.
19116
19117 normalize
19118 Always scale inputs instead of only doing summation of samples.
19119 Beware of heavy clipping if inputs are not normalized prior or
19120 after filtering by this filter if this option is disabled. By
19121 default is enabled.
19122
19123 Commands
19124
19125 This filter supports the following commands:
19126
19127 weights
19128 normalize
19129 Syntax is same as option with same name.
19130
19131 amultiply
19132 Multiply first audio stream with second audio stream and store result
19133 in output audio stream. Multiplication is done by multiplying each
19134 sample from first stream with sample at same position from second
19135 stream.
19136
19137 With this element-wise multiplication one can create amplitude fades
19138 and amplitude modulations.
19139
19140 anequalizer
19141 High-order parametric multiband equalizer for each channel.
19142
19143 It accepts the following parameters:
19144
19145 params
19146 This option string is in format: "cchn f=cf w=w g=g t=f | ..."
19147 Each equalizer band is separated by '|'.
19148
19149 chn Set channel number to which equalization will be applied. If
19150 input doesn't have that channel the entry is ignored.
19151
19152 f Set central frequency for band. If input doesn't have that
19153 frequency the entry is ignored.
19154
19155 w Set band width in Hertz.
19156
19157 g Set band gain in dB.
19158
19159 t Set filter type for band, optional, can be:
19160
19161 0 Butterworth, this is default.
19162
19163 1 Chebyshev type 1.
19164
19165 2 Chebyshev type 2.
19166
19167 curves
19168 With this option activated frequency response of anequalizer is
19169 displayed in video stream.
19170
19171 size
19172 Set video stream size. Only useful if curves option is activated.
19173
19174 mgain
19175 Set max gain that will be displayed. Only useful if curves option
19176 is activated. Setting this to a reasonable value makes it possible
19177 to display gain which is derived from neighbour bands which are too
19178 close to each other and thus produce higher gain when both are
19179 activated.
19180
19181 fscale
19182 Set frequency scale used to draw frequency response in video
19183 output. Can be linear or logarithmic. Default is logarithmic.
19184
19185 colors
19186 Set color for each channel curve which is going to be displayed in
19187 video stream. This is list of color names separated by space or by
19188 '|'. Unrecognised or missing colors will be replaced by white
19189 color.
19190
19191 Examples
19192
19193 • Lower gain by 10 of central frequency 200Hz and width 100 Hz for
19194 first 2 channels using Chebyshev type 1 filter:
19195
19196 anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
19197
19198 Commands
19199
19200 This filter supports the following commands:
19201
19202 change
19203 Alter existing filter parameters. Syntax for the commands is :
19204 "fN|f=freq|w=width|g=gain"
19205
19206 fN is existing filter number, starting from 0, if no such filter is
19207 available error is returned. freq set new frequency parameter.
19208 width set new width parameter in Hertz. gain set new gain
19209 parameter in dB.
19210
19211 Full filter invocation with asendcmd may look like this:
19212 asendcmd=c='4.0 anequalizer change
19213 0|f=200|w=50|g=1',anequalizer=...
19214
19215 anlmdn
19216 Reduce broadband noise in audio samples using Non-Local Means
19217 algorithm.
19218
19219 Each sample is adjusted by looking for other samples with similar
19220 contexts. This context similarity is defined by comparing their
19221 surrounding patches of size p. Patches are searched in an area of r
19222 around the sample.
19223
19224 The filter accepts the following options:
19225
19226 strength, s
19227 Set denoising strength. Allowed range is from 0.00001 to 10.
19228 Default value is 0.00001.
19229
19230 patch, p
19231 Set patch radius duration. Allowed range is from 1 to 100
19232 milliseconds. Default value is 2 milliseconds.
19233
19234 research, r
19235 Set research radius duration. Allowed range is from 2 to 300
19236 milliseconds. Default value is 6 milliseconds.
19237
19238 output, o
19239 Set the output mode.
19240
19241 It accepts the following values:
19242
19243 i Pass input unchanged.
19244
19245 o Pass noise filtered out.
19246
19247 n Pass only noise.
19248
19249 Default value is o.
19250
19251 smooth, m
19252 Set smooth factor. Default value is 11. Allowed range is from 1 to
19253 15.
19254
19255 Commands
19256
19257 This filter supports the all above options as commands.
19258
19259 anlmf, anlms
19260 Apply Normalized Least-Mean-(Squares|Fourth) algorithm to the first
19261 audio stream using the second audio stream.
19262
19263 This adaptive filter is used to mimic a desired filter by finding the
19264 filter coefficients that relate to producing the least mean square of
19265 the error signal (difference between the desired, 2nd input audio
19266 stream and the actual signal, the 1st input audio stream).
19267
19268 A description of the accepted options follows.
19269
19270 order
19271 Set filter order.
19272
19273 mu Set filter mu.
19274
19275 eps Set the filter eps.
19276
19277 leakage
19278 Set the filter leakage.
19279
19280 out_mode
19281 It accepts the following values:
19282
19283 i Pass the 1st input.
19284
19285 d Pass the 2nd input.
19286
19287 o Pass filtered samples.
19288
19289 n Pass difference between desired and filtered samples.
19290
19291 Default value is o.
19292
19293 Examples
19294
19295 • One of many usages of this filter is noise reduction, input audio
19296 is filtered with same samples that are delayed by fixed amount, one
19297 such example for stereo audio is:
19298
19299 asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
19300
19301 Commands
19302
19303 This filter supports the same commands as options, excluding option
19304 "order".
19305
19306 anull
19307 Pass the audio source unchanged to the output.
19308
19309 apad
19310 Pad the end of an audio stream with silence.
19311
19312 This can be used together with ffmpeg -shortest to extend audio streams
19313 to the same length as the video stream.
19314
19315 A description of the accepted options follows.
19316
19317 packet_size
19318 Set silence packet size. Default value is 4096.
19319
19320 pad_len
19321 Set the number of samples of silence to add to the end. After the
19322 value is reached, the stream is terminated. This option is mutually
19323 exclusive with whole_len.
19324
19325 whole_len
19326 Set the minimum total number of samples in the output audio stream.
19327 If the value is longer than the input audio length, silence is
19328 added to the end, until the value is reached. This option is
19329 mutually exclusive with pad_len.
19330
19331 pad_dur
19332 Specify the duration of samples of silence to add. See the Time
19333 duration section in the ffmpeg-utils(1) manual for the accepted
19334 syntax. Used only if set to non-negative value.
19335
19336 whole_dur
19337 Specify the minimum total duration in the output audio stream. See
19338 the Time duration section in the ffmpeg-utils(1) manual for the
19339 accepted syntax. Used only if set to non-negative value. If the
19340 value is longer than the input audio length, silence is added to
19341 the end, until the value is reached. This option is mutually
19342 exclusive with pad_dur
19343
19344 If neither the pad_len nor the whole_len nor pad_dur nor whole_dur
19345 option is set, the filter will add silence to the end of the input
19346 stream indefinitely.
19347
19348 Note that for ffmpeg 4.4 and earlier a zero pad_dur or whole_dur also
19349 caused the filter to add silence indefinitely.
19350
19351 Examples
19352
19353 • Add 1024 samples of silence to the end of the input:
19354
19355 apad=pad_len=1024
19356
19357 • Make sure the audio output will contain at least 10000 samples, pad
19358 the input with silence if required:
19359
19360 apad=whole_len=10000
19361
19362 • Use ffmpeg to pad the audio input with silence, so that the video
19363 stream will always result the shortest and will be converted until
19364 the end in the output file when using the shortest option:
19365
19366 ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
19367
19368 aphaser
19369 Add a phasing effect to the input audio.
19370
19371 A phaser filter creates series of peaks and troughs in the frequency
19372 spectrum. The position of the peaks and troughs are modulated so that
19373 they vary over time, creating a sweeping effect.
19374
19375 A description of the accepted parameters follows.
19376
19377 in_gain
19378 Set input gain. Default is 0.4.
19379
19380 out_gain
19381 Set output gain. Default is 0.74
19382
19383 delay
19384 Set delay in milliseconds. Default is 3.0.
19385
19386 decay
19387 Set decay. Default is 0.4.
19388
19389 speed
19390 Set modulation speed in Hz. Default is 0.5.
19391
19392 type
19393 Set modulation type. Default is triangular.
19394
19395 It accepts the following values:
19396
19397 triangular, t
19398 sinusoidal, s
19399
19400 aphaseshift
19401 Apply phase shift to input audio samples.
19402
19403 The filter accepts the following options:
19404
19405 shift
19406 Specify phase shift. Allowed range is from -1.0 to 1.0. Default
19407 value is 0.0.
19408
19409 level
19410 Set output gain applied to final output. Allowed range is from 0.0
19411 to 1.0. Default value is 1.0.
19412
19413 order
19414 Set filter order used for filtering. Allowed range is from 1 to 16.
19415 Default value is 8.
19416
19417 Commands
19418
19419 This filter supports the all above options as commands.
19420
19421 apsyclip
19422 Apply Psychoacoustic clipper to input audio stream.
19423
19424 The filter accepts the following options:
19425
19426 level_in
19427 Set input gain. By default it is 1. Range is [0.015625 - 64].
19428
19429 level_out
19430 Set output gain. By default it is 1. Range is [0.015625 - 64].
19431
19432 clip
19433 Set the clipping start value. Default value is 0dBFS or 1.
19434
19435 diff
19436 Output only difference samples, useful to hear introduced
19437 distortions. By default is disabled.
19438
19439 adaptive
19440 Set strenght of adaptive distortion applied. Default value is 0.5.
19441 Allowed range is from 0 to 1.
19442
19443 iterations
19444 Set number of iterations of psychoacoustic clipper. Allowed range
19445 is from 1 to 20. Default value is 10.
19446
19447 level
19448 Auto level output signal. Default is disabled. This normalizes
19449 audio back to 0dBFS if enabled.
19450
19451 Commands
19452
19453 This filter supports the all above options as commands.
19454
19455 apulsator
19456 Audio pulsator is something between an autopanner and a tremolo. But
19457 it can produce funny stereo effects as well. Pulsator changes the
19458 volume of the left and right channel based on a LFO (low frequency
19459 oscillator) with different waveforms and shifted phases. This filter
19460 have the ability to define an offset between left and right channel. An
19461 offset of 0 means that both LFO shapes match each other. The left and
19462 right channel are altered equally - a conventional tremolo. An offset
19463 of 50% means that the shape of the right channel is exactly shifted in
19464 phase (or moved backwards about half of the frequency) - pulsator acts
19465 as an autopanner. At 1 both curves match again. Every setting in
19466 between moves the phase shift gapless between all stages and produces
19467 some "bypassing" sounds with sine and triangle waveforms. The more you
19468 set the offset near 1 (starting from the 0.5) the faster the signal
19469 passes from the left to the right speaker.
19470
19471 The filter accepts the following options:
19472
19473 level_in
19474 Set input gain. By default it is 1. Range is [0.015625 - 64].
19475
19476 level_out
19477 Set output gain. By default it is 1. Range is [0.015625 - 64].
19478
19479 mode
19480 Set waveform shape the LFO will use. Can be one of: sine, triangle,
19481 square, sawup or sawdown. Default is sine.
19482
19483 amount
19484 Set modulation. Define how much of original signal is affected by
19485 the LFO.
19486
19487 offset_l
19488 Set left channel offset. Default is 0. Allowed range is [0 - 1].
19489
19490 offset_r
19491 Set right channel offset. Default is 0.5. Allowed range is [0 - 1].
19492
19493 width
19494 Set pulse width. Default is 1. Allowed range is [0 - 2].
19495
19496 timing
19497 Set possible timing mode. Can be one of: bpm, ms or hz. Default is
19498 hz.
19499
19500 bpm Set bpm. Default is 120. Allowed range is [30 - 300]. Only used if
19501 timing is set to bpm.
19502
19503 ms Set ms. Default is 500. Allowed range is [10 - 2000]. Only used if
19504 timing is set to ms.
19505
19506 hz Set frequency in Hz. Default is 2. Allowed range is [0.01 - 100].
19507 Only used if timing is set to hz.
19508
19509 aresample
19510 Resample the input audio to the specified parameters, using the
19511 libswresample library. If none are specified then the filter will
19512 automatically convert between its input and output.
19513
19514 This filter is also able to stretch/squeeze the audio data to make it
19515 match the timestamps or to inject silence / cut out audio to make it
19516 match the timestamps, do a combination of both or do neither.
19517
19518 The filter accepts the syntax [sample_rate:]resampler_options, where
19519 sample_rate expresses a sample rate and resampler_options is a list of
19520 key=value pairs, separated by ":". See the "Resampler Options" section
19521 in the ffmpeg-resampler(1) manual for the complete list of supported
19522 options.
19523
19524 Examples
19525
19526 • Resample the input audio to 44100Hz:
19527
19528 aresample=44100
19529
19530 • Stretch/squeeze samples to the given timestamps, with a maximum of
19531 1000 samples per second compensation:
19532
19533 aresample=async=1000
19534
19535 areverse
19536 Reverse an audio clip.
19537
19538 Warning: This filter requires memory to buffer the entire clip, so
19539 trimming is suggested.
19540
19541 Examples
19542
19543 • Take the first 5 seconds of a clip, and reverse it.
19544
19545 atrim=end=5,areverse
19546
19547 arnndn
19548 Reduce noise from speech using Recurrent Neural Networks.
19549
19550 This filter accepts the following options:
19551
19552 model, m
19553 Set train model file to load. This option is always required.
19554
19555 mix Set how much to mix filtered samples into final output. Allowed
19556 range is from -1 to 1. Default value is 1. Negative values are
19557 special, they set how much to keep filtered noise in the final
19558 filter output. Set this option to -1 to hear actual noise removed
19559 from input signal.
19560
19561 Commands
19562
19563 This filter supports the all above options as commands.
19564
19565 asdr
19566 Measure Audio Signal-to-Distortion Ratio.
19567
19568 This filter takes two audio streams for input, and outputs first audio
19569 stream. Results are in dB per channel at end of either input.
19570
19571 asetnsamples
19572 Set the number of samples per each output audio frame.
19573
19574 The last output packet may contain a different number of samples, as
19575 the filter will flush all the remaining samples when the input audio
19576 signals its end.
19577
19578 The filter accepts the following options:
19579
19580 nb_out_samples, n
19581 Set the number of frames per each output audio frame. The number is
19582 intended as the number of samples per each channel. Default value
19583 is 1024.
19584
19585 pad, p
19586 If set to 1, the filter will pad the last audio frame with zeroes,
19587 so that the last frame will contain the same number of samples as
19588 the previous ones. Default value is 1.
19589
19590 For example, to set the number of per-frame samples to 1234 and disable
19591 padding for the last frame, use:
19592
19593 asetnsamples=n=1234:p=0
19594
19595 asetrate
19596 Set the sample rate without altering the PCM data. This will result in
19597 a change of speed and pitch.
19598
19599 The filter accepts the following options:
19600
19601 sample_rate, r
19602 Set the output sample rate. Default is 44100 Hz.
19603
19604 ashowinfo
19605 Show a line containing various information for each input audio frame.
19606 The input audio is not modified.
19607
19608 The shown line contains a sequence of key/value pairs of the form
19609 key:value.
19610
19611 The following values are shown in the output:
19612
19613 n The (sequential) number of the input frame, starting from 0.
19614
19615 pts The presentation timestamp of the input frame, in time base units;
19616 the time base depends on the filter input pad, and is usually
19617 1/sample_rate.
19618
19619 pts_time
19620 The presentation timestamp of the input frame in seconds.
19621
19622 pos position of the frame in the input stream, -1 if this information
19623 in unavailable and/or meaningless (for example in case of synthetic
19624 audio)
19625
19626 fmt The sample format.
19627
19628 chlayout
19629 The channel layout.
19630
19631 rate
19632 The sample rate for the audio frame.
19633
19634 nb_samples
19635 The number of samples (per channel) in the frame.
19636
19637 checksum
19638 The Adler-32 checksum (printed in hexadecimal) of the audio data.
19639 For planar audio, the data is treated as if all the planes were
19640 concatenated.
19641
19642 plane_checksums
19643 A list of Adler-32 checksums for each data plane.
19644
19645 asoftclip
19646 Apply audio soft clipping.
19647
19648 Soft clipping is a type of distortion effect where the amplitude of a
19649 signal is saturated along a smooth curve, rather than the abrupt shape
19650 of hard-clipping.
19651
19652 This filter accepts the following options:
19653
19654 type
19655 Set type of soft-clipping.
19656
19657 It accepts the following values:
19658
19659 hard
19660 tanh
19661 atan
19662 cubic
19663 exp
19664 alg
19665 quintic
19666 sin
19667 erf
19668 threshold
19669 Set threshold from where to start clipping. Default value is 0dB or
19670 1.
19671
19672 output
19673 Set gain applied to output. Default value is 0dB or 1.
19674
19675 param
19676 Set additional parameter which controls sigmoid function.
19677
19678 oversample
19679 Set oversampling factor.
19680
19681 Commands
19682
19683 This filter supports the all above options as commands.
19684
19685 aspectralstats
19686 Display frequency domain statistical information about the audio
19687 channels. Statistics are calculated and stored as metadata for each
19688 audio channel and for each audio frame.
19689
19690 It accepts the following option:
19691
19692 win_size
19693 Set the window length in samples. Default value is 2048. Allowed
19694 range is from 32 to 65536.
19695
19696 win_func
19697 Set window function.
19698
19699 It accepts the following values:
19700
19701 rect
19702 bartlett
19703 hann, hanning
19704 hamming
19705 blackman
19706 welch
19707 flattop
19708 bharris
19709 bnuttall
19710 bhann
19711 sine
19712 nuttall
19713 lanczos
19714 gauss
19715 tukey
19716 dolph
19717 cauchy
19718 parzen
19719 poisson
19720 bohman
19721
19722 Default is "hann".
19723
19724 overlap
19725 Set window overlap. Allowed range is from 0 to 1. Default value is
19726 0.5.
19727
19728 A list of each metadata key follows:
19729
19730 mean
19731 variance
19732 centroid
19733 spread
19734 skewness
19735 kurtosis
19736 entropy
19737 flatness
19738 crest
19739 flux
19740 slope
19741 decrease
19742 rolloff
19743
19744 asr
19745 Automatic Speech Recognition
19746
19747 This filter uses PocketSphinx for speech recognition. To enable
19748 compilation of this filter, you need to configure FFmpeg with
19749 "--enable-pocketsphinx".
19750
19751 It accepts the following options:
19752
19753 rate
19754 Set sampling rate of input audio. Defaults is 16000. This need to
19755 match speech models, otherwise one will get poor results.
19756
19757 hmm Set dictionary containing acoustic model files.
19758
19759 dict
19760 Set pronunciation dictionary.
19761
19762 lm Set language model file.
19763
19764 lmctl
19765 Set language model set.
19766
19767 lmname
19768 Set which language model to use.
19769
19770 logfn
19771 Set output for log messages.
19772
19773 The filter exports recognized speech as the frame metadata
19774 "lavfi.asr.text".
19775
19776 astats
19777 Display time domain statistical information about the audio channels.
19778 Statistics are calculated and displayed for each audio channel and,
19779 where applicable, an overall figure is also given.
19780
19781 It accepts the following option:
19782
19783 length
19784 Short window length in seconds, used for peak and trough RMS
19785 measurement. Default is 0.05 (50 milliseconds). Allowed range is
19786 "[0 - 10]".
19787
19788 metadata
19789 Set metadata injection. All the metadata keys are prefixed with
19790 "lavfi.astats.X", where "X" is channel number starting from 1 or
19791 string "Overall". Default is disabled.
19792
19793 Available keys for each channel are: DC_offset Min_level Max_level
19794 Min_difference Max_difference Mean_difference RMS_difference
19795 Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count
19796 Noise_floor Noise_floor_count Entropy Bit_depth Dynamic_range
19797 Zero_crossings Zero_crossings_rate Number_of_NaNs Number_of_Infs
19798 Number_of_denormals
19799
19800 and for Overall: DC_offset Min_level Max_level Min_difference
19801 Max_difference Mean_difference RMS_difference Peak_level RMS_level
19802 RMS_peak RMS_trough Flat_factor Peak_count Noise_floor
19803 Noise_floor_count Entropy Bit_depth Number_of_samples
19804 Number_of_NaNs Number_of_Infs Number_of_denormals
19805
19806 For example full key look like this "lavfi.astats.1.DC_offset" or
19807 this "lavfi.astats.Overall.Peak_count".
19808
19809 For description what each key means read below.
19810
19811 reset
19812 Set the number of frames over which cumulative stats are calculated
19813 before being reset Default is disabled.
19814
19815 measure_perchannel
19816 Select the parameters which are measured per channel. The metadata
19817 keys can be used as flags, default is all which measures
19818 everything. none disables all per channel measurement.
19819
19820 measure_overall
19821 Select the parameters which are measured overall. The metadata keys
19822 can be used as flags, default is all which measures everything.
19823 none disables all overall measurement.
19824
19825 A description of each shown parameter follows:
19826
19827 DC offset
19828 Mean amplitude displacement from zero.
19829
19830 Min level
19831 Minimal sample level.
19832
19833 Max level
19834 Maximal sample level.
19835
19836 Min difference
19837 Minimal difference between two consecutive samples.
19838
19839 Max difference
19840 Maximal difference between two consecutive samples.
19841
19842 Mean difference
19843 Mean difference between two consecutive samples. The average of
19844 each difference between two consecutive samples.
19845
19846 RMS difference
19847 Root Mean Square difference between two consecutive samples.
19848
19849 Peak level dB
19850 RMS level dB
19851 Standard peak and RMS level measured in dBFS.
19852
19853 RMS peak dB
19854 RMS trough dB
19855 Peak and trough values for RMS level measured over a short window.
19856
19857 Crest factor
19858 Standard ratio of peak to RMS level (note: not in dB).
19859
19860 Flat factor
19861 Flatness (i.e. consecutive samples with the same value) of the
19862 signal at its peak levels (i.e. either Min level or Max level).
19863
19864 Peak count
19865 Number of occasions (not the number of samples) that the signal
19866 attained either Min level or Max level.
19867
19868 Noise floor dB
19869 Minimum local peak measured in dBFS over a short window.
19870
19871 Noise floor count
19872 Number of occasions (not the number of samples) that the signal
19873 attained Noise floor.
19874
19875 Entropy
19876 Entropy measured across whole audio. Entropy of value near 1.0 is
19877 typically measured for white noise.
19878
19879 Bit depth
19880 Overall bit depth of audio. Number of bits used for each sample.
19881
19882 Dynamic range
19883 Measured dynamic range of audio in dB.
19884
19885 Zero crossings
19886 Number of points where the waveform crosses the zero level axis.
19887
19888 Zero crossings rate
19889 Rate of Zero crossings and number of audio samples.
19890
19891 asubboost
19892 Boost subwoofer frequencies.
19893
19894 The filter accepts the following options:
19895
19896 dry Set dry gain, how much of original signal is kept. Allowed range is
19897 from 0 to 1. Default value is 0.7.
19898
19899 wet Set wet gain, how much of filtered signal is kept. Allowed range is
19900 from 0 to 1. Default value is 0.7.
19901
19902 decay
19903 Set delay line decay gain value. Allowed range is from 0 to 1.
19904 Default value is 0.7.
19905
19906 feedback
19907 Set delay line feedback gain value. Allowed range is from 0 to 1.
19908 Default value is 0.9.
19909
19910 cutoff
19911 Set cutoff frequency in Hertz. Allowed range is 50 to 900. Default
19912 value is 100.
19913
19914 slope
19915 Set slope amount for cutoff frequency. Allowed range is 0.0001 to
19916 1. Default value is 0.5.
19917
19918 delay
19919 Set delay. Allowed range is from 1 to 100. Default value is 20.
19920
19921 Commands
19922
19923 This filter supports the all above options as commands.
19924
19925 asubcut
19926 Cut subwoofer frequencies.
19927
19928 This filter allows to set custom, steeper roll off than highpass
19929 filter, and thus is able to more attenuate frequency content in stop-
19930 band.
19931
19932 The filter accepts the following options:
19933
19934 cutoff
19935 Set cutoff frequency in Hertz. Allowed range is 2 to 200. Default
19936 value is 20.
19937
19938 order
19939 Set filter order. Available values are from 3 to 20. Default value
19940 is 10.
19941
19942 level
19943 Set input gain level. Allowed range is from 0 to 1. Default value
19944 is 1.
19945
19946 Commands
19947
19948 This filter supports the all above options as commands.
19949
19950 asupercut
19951 Cut super frequencies.
19952
19953 The filter accepts the following options:
19954
19955 cutoff
19956 Set cutoff frequency in Hertz. Allowed range is 20000 to 192000.
19957 Default value is 20000.
19958
19959 order
19960 Set filter order. Available values are from 3 to 20. Default value
19961 is 10.
19962
19963 level
19964 Set input gain level. Allowed range is from 0 to 1. Default value
19965 is 1.
19966
19967 Commands
19968
19969 This filter supports the all above options as commands.
19970
19971 asuperpass
19972 Apply high order Butterworth band-pass filter.
19973
19974 The filter accepts the following options:
19975
19976 centerf
19977 Set center frequency in Hertz. Allowed range is 2 to 999999.
19978 Default value is 1000.
19979
19980 order
19981 Set filter order. Available values are from 4 to 20. Default value
19982 is 4.
19983
19984 qfactor
19985 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
19986 1.
19987
19988 level
19989 Set input gain level. Allowed range is from 0 to 2. Default value
19990 is 1.
19991
19992 Commands
19993
19994 This filter supports the all above options as commands.
19995
19996 asuperstop
19997 Apply high order Butterworth band-stop filter.
19998
19999 The filter accepts the following options:
20000
20001 centerf
20002 Set center frequency in Hertz. Allowed range is 2 to 999999.
20003 Default value is 1000.
20004
20005 order
20006 Set filter order. Available values are from 4 to 20. Default value
20007 is 4.
20008
20009 qfactor
20010 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
20011 1.
20012
20013 level
20014 Set input gain level. Allowed range is from 0 to 2. Default value
20015 is 1.
20016
20017 Commands
20018
20019 This filter supports the all above options as commands.
20020
20021 atempo
20022 Adjust audio tempo.
20023
20024 The filter accepts exactly one parameter, the audio tempo. If not
20025 specified then the filter will assume nominal 1.0 tempo. Tempo must be
20026 in the [0.5, 100.0] range.
20027
20028 Note that tempo greater than 2 will skip some samples rather than blend
20029 them in. If for any reason this is a concern it is always possible to
20030 daisy-chain several instances of atempo to achieve the desired product
20031 tempo.
20032
20033 Examples
20034
20035 • Slow down audio to 80% tempo:
20036
20037 atempo=0.8
20038
20039 • To speed up audio to 300% tempo:
20040
20041 atempo=3
20042
20043 • To speed up audio to 300% tempo by daisy-chaining two atempo
20044 instances:
20045
20046 atempo=sqrt(3),atempo=sqrt(3)
20047
20048 Commands
20049
20050 This filter supports the following commands:
20051
20052 tempo
20053 Change filter tempo scale factor. Syntax for the command is :
20054 "tempo"
20055
20056 atilt
20057 Apply spectral tilt filter to audio stream.
20058
20059 This filter apply any spectral roll-off slope over any specified
20060 frequency band.
20061
20062 The filter accepts the following options:
20063
20064 freq
20065 Set central frequency of tilt in Hz. Default is 10000 Hz.
20066
20067 slope
20068 Set slope direction of tilt. Default is 0. Allowed range is from -1
20069 to 1.
20070
20071 width
20072 Set width of tilt. Default is 1000. Allowed range is from 100 to
20073 10000.
20074
20075 order
20076 Set order of tilt filter.
20077
20078 level
20079 Set input volume level. Allowed range is from 0 to 4. Defalt is 1.
20080
20081 Commands
20082
20083 This filter supports the all above options as commands.
20084
20085 atrim
20086 Trim the input so that the output contains one continuous subpart of
20087 the input.
20088
20089 It accepts the following parameters:
20090
20091 start
20092 Timestamp (in seconds) of the start of the section to keep. I.e.
20093 the audio sample with the timestamp start will be the first sample
20094 in the output.
20095
20096 end Specify time of the first audio sample that will be dropped, i.e.
20097 the audio sample immediately preceding the one with the timestamp
20098 end will be the last sample in the output.
20099
20100 start_pts
20101 Same as start, except this option sets the start timestamp in
20102 samples instead of seconds.
20103
20104 end_pts
20105 Same as end, except this option sets the end timestamp in samples
20106 instead of seconds.
20107
20108 duration
20109 The maximum duration of the output in seconds.
20110
20111 start_sample
20112 The number of the first sample that should be output.
20113
20114 end_sample
20115 The number of the first sample that should be dropped.
20116
20117 start, end, and duration are expressed as time duration specifications;
20118 see the Time duration section in the ffmpeg-utils(1) manual.
20119
20120 Note that the first two sets of the start/end options and the duration
20121 option look at the frame timestamp, while the _sample options simply
20122 count the samples that pass through the filter. So start/end_pts and
20123 start/end_sample will give different results when the timestamps are
20124 wrong, inexact or do not start at zero. Also note that this filter does
20125 not modify the timestamps. If you wish to have the output timestamps
20126 start at zero, insert the asetpts filter after the atrim filter.
20127
20128 If multiple start or end options are set, this filter tries to be
20129 greedy and keep all samples that match at least one of the specified
20130 constraints. To keep only the part that matches all the constraints at
20131 once, chain multiple atrim filters.
20132
20133 The defaults are such that all the input is kept. So it is possible to
20134 set e.g. just the end values to keep everything before the specified
20135 time.
20136
20137 Examples:
20138
20139 • Drop everything except the second minute of input:
20140
20141 ffmpeg -i INPUT -af atrim=60:120
20142
20143 • Keep only the first 1000 samples:
20144
20145 ffmpeg -i INPUT -af atrim=end_sample=1000
20146
20147 axcorrelate
20148 Calculate normalized windowed cross-correlation between two input audio
20149 streams.
20150
20151 Resulted samples are always between -1 and 1 inclusive. If result is 1
20152 it means two input samples are highly correlated in that selected
20153 segment. Result 0 means they are not correlated at all. If result is
20154 -1 it means two input samples are out of phase, which means they cancel
20155 each other.
20156
20157 The filter accepts the following options:
20158
20159 size
20160 Set size of segment over which cross-correlation is calculated.
20161 Default is 256. Allowed range is from 2 to 131072.
20162
20163 algo
20164 Set algorithm for cross-correlation. Can be "slow" or "fast".
20165 Default is "slow". Fast algorithm assumes mean values over any
20166 given segment are always zero and thus need much less calculations
20167 to make. This is generally not true, but is valid for typical
20168 audio streams.
20169
20170 Examples
20171
20172 • Calculate correlation between channels in stereo audio stream:
20173
20174 ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
20175
20176 bandpass
20177 Apply a two-pole Butterworth band-pass filter with central frequency
20178 frequency, and (3dB-point) band-width width. The csg option selects a
20179 constant skirt gain (peak gain = Q) instead of the default: constant
20180 0dB peak gain. The filter roll off at 6dB per octave (20dB per
20181 decade).
20182
20183 The filter accepts the following options:
20184
20185 frequency, f
20186 Set the filter's central frequency. Default is 3000.
20187
20188 csg Constant skirt gain if set to 1. Defaults to 0.
20189
20190 width_type, t
20191 Set method to specify band-width of filter.
20192
20193 h Hz
20194
20195 q Q-Factor
20196
20197 o octave
20198
20199 s slope
20200
20201 k kHz
20202
20203 width, w
20204 Specify the band-width of a filter in width_type units.
20205
20206 mix, m
20207 How much to use filtered signal in output. Default is 1. Range is
20208 between 0 and 1.
20209
20210 channels, c
20211 Specify which channels to filter, by default all available are
20212 filtered.
20213
20214 normalize, n
20215 Normalize biquad coefficients, by default is disabled. Enabling it
20216 will normalize magnitude response at DC to 0dB.
20217
20218 transform, a
20219 Set transform type of IIR filter.
20220
20221 di
20222 dii
20223 tdii
20224 latt
20225 svf
20226 precision, r
20227 Set precison of filtering.
20228
20229 auto
20230 Pick automatic sample format depending on surround filters.
20231
20232 s16 Always use signed 16-bit.
20233
20234 s32 Always use signed 32-bit.
20235
20236 f32 Always use float 32-bit.
20237
20238 f64 Always use float 64-bit.
20239
20240 Commands
20241
20242 This filter supports the following commands:
20243
20244 frequency, f
20245 Change bandpass frequency. Syntax for the command is : "frequency"
20246
20247 width_type, t
20248 Change bandpass width_type. Syntax for the command is :
20249 "width_type"
20250
20251 width, w
20252 Change bandpass width. Syntax for the command is : "width"
20253
20254 mix, m
20255 Change bandpass mix. Syntax for the command is : "mix"
20256
20257 bandreject
20258 Apply a two-pole Butterworth band-reject filter with central frequency
20259 frequency, and (3dB-point) band-width width. The filter roll off at
20260 6dB per octave (20dB per decade).
20261
20262 The filter accepts the following options:
20263
20264 frequency, f
20265 Set the filter's central frequency. Default is 3000.
20266
20267 width_type, t
20268 Set method to specify band-width of filter.
20269
20270 h Hz
20271
20272 q Q-Factor
20273
20274 o octave
20275
20276 s slope
20277
20278 k kHz
20279
20280 width, w
20281 Specify the band-width of a filter in width_type units.
20282
20283 mix, m
20284 How much to use filtered signal in output. Default is 1. Range is
20285 between 0 and 1.
20286
20287 channels, c
20288 Specify which channels to filter, by default all available are
20289 filtered.
20290
20291 normalize, n
20292 Normalize biquad coefficients, by default is disabled. Enabling it
20293 will normalize magnitude response at DC to 0dB.
20294
20295 transform, a
20296 Set transform type of IIR filter.
20297
20298 di
20299 dii
20300 tdii
20301 latt
20302 svf
20303 precision, r
20304 Set precison of filtering.
20305
20306 auto
20307 Pick automatic sample format depending on surround filters.
20308
20309 s16 Always use signed 16-bit.
20310
20311 s32 Always use signed 32-bit.
20312
20313 f32 Always use float 32-bit.
20314
20315 f64 Always use float 64-bit.
20316
20317 Commands
20318
20319 This filter supports the following commands:
20320
20321 frequency, f
20322 Change bandreject frequency. Syntax for the command is :
20323 "frequency"
20324
20325 width_type, t
20326 Change bandreject width_type. Syntax for the command is :
20327 "width_type"
20328
20329 width, w
20330 Change bandreject width. Syntax for the command is : "width"
20331
20332 mix, m
20333 Change bandreject mix. Syntax for the command is : "mix"
20334
20335 bass, lowshelf
20336 Boost or cut the bass (lower) frequencies of the audio using a two-pole
20337 shelving filter with a response similar to that of a standard hi-fi's
20338 tone-controls. This is also known as shelving equalisation (EQ).
20339
20340 The filter accepts the following options:
20341
20342 gain, g
20343 Give the gain at 0 Hz. Its useful range is about -20 (for a large
20344 cut) to +20 (for a large boost). Beware of clipping when using a
20345 positive gain.
20346
20347 frequency, f
20348 Set the filter's central frequency and so can be used to extend or
20349 reduce the frequency range to be boosted or cut. The default value
20350 is 100 Hz.
20351
20352 width_type, t
20353 Set method to specify band-width of filter.
20354
20355 h Hz
20356
20357 q Q-Factor
20358
20359 o octave
20360
20361 s slope
20362
20363 k kHz
20364
20365 width, w
20366 Determine how steep is the filter's shelf transition.
20367
20368 poles, p
20369 Set number of poles. Default is 2.
20370
20371 mix, m
20372 How much to use filtered signal in output. Default is 1. Range is
20373 between 0 and 1.
20374
20375 channels, c
20376 Specify which channels to filter, by default all available are
20377 filtered.
20378
20379 normalize, n
20380 Normalize biquad coefficients, by default is disabled. Enabling it
20381 will normalize magnitude response at DC to 0dB.
20382
20383 transform, a
20384 Set transform type of IIR filter.
20385
20386 di
20387 dii
20388 tdii
20389 latt
20390 svf
20391 precision, r
20392 Set precison of filtering.
20393
20394 auto
20395 Pick automatic sample format depending on surround filters.
20396
20397 s16 Always use signed 16-bit.
20398
20399 s32 Always use signed 32-bit.
20400
20401 f32 Always use float 32-bit.
20402
20403 f64 Always use float 64-bit.
20404
20405 Commands
20406
20407 This filter supports the following commands:
20408
20409 frequency, f
20410 Change bass frequency. Syntax for the command is : "frequency"
20411
20412 width_type, t
20413 Change bass width_type. Syntax for the command is : "width_type"
20414
20415 width, w
20416 Change bass width. Syntax for the command is : "width"
20417
20418 gain, g
20419 Change bass gain. Syntax for the command is : "gain"
20420
20421 mix, m
20422 Change bass mix. Syntax for the command is : "mix"
20423
20424 biquad
20425 Apply a biquad IIR filter with the given coefficients. Where b0, b1,
20426 b2 and a0, a1, a2 are the numerator and denominator coefficients
20427 respectively. and channels, c specify which channels to filter, by
20428 default all available are filtered.
20429
20430 Commands
20431
20432 This filter supports the following commands:
20433
20434 a0
20435 a1
20436 a2
20437 b0
20438 b1
20439 b2 Change biquad parameter. Syntax for the command is : "value"
20440
20441 mix, m
20442 How much to use filtered signal in output. Default is 1. Range is
20443 between 0 and 1.
20444
20445 channels, c
20446 Specify which channels to filter, by default all available are
20447 filtered.
20448
20449 normalize, n
20450 Normalize biquad coefficients, by default is disabled. Enabling it
20451 will normalize magnitude response at DC to 0dB.
20452
20453 transform, a
20454 Set transform type of IIR filter.
20455
20456 di
20457 dii
20458 tdii
20459 latt
20460 svf
20461 precision, r
20462 Set precison of filtering.
20463
20464 auto
20465 Pick automatic sample format depending on surround filters.
20466
20467 s16 Always use signed 16-bit.
20468
20469 s32 Always use signed 32-bit.
20470
20471 f32 Always use float 32-bit.
20472
20473 f64 Always use float 64-bit.
20474
20475 bs2b
20476 Bauer stereo to binaural transformation, which improves headphone
20477 listening of stereo audio records.
20478
20479 To enable compilation of this filter you need to configure FFmpeg with
20480 "--enable-libbs2b".
20481
20482 It accepts the following parameters:
20483
20484 profile
20485 Pre-defined crossfeed level.
20486
20487 default
20488 Default level (fcut=700, feed=50).
20489
20490 cmoy
20491 Chu Moy circuit (fcut=700, feed=60).
20492
20493 jmeier
20494 Jan Meier circuit (fcut=650, feed=95).
20495
20496 fcut
20497 Cut frequency (in Hz).
20498
20499 feed
20500 Feed level (in Hz).
20501
20502 channelmap
20503 Remap input channels to new locations.
20504
20505 It accepts the following parameters:
20506
20507 map Map channels from input to output. The argument is a '|'-separated
20508 list of mappings, each in the "in_channel-out_channel" or
20509 in_channel form. in_channel can be either the name of the input
20510 channel (e.g. FL for front left) or its index in the input channel
20511 layout. out_channel is the name of the output channel or its index
20512 in the output channel layout. If out_channel is not given then it
20513 is implicitly an index, starting with zero and increasing by one
20514 for each mapping.
20515
20516 channel_layout
20517 The channel layout of the output stream.
20518
20519 If no mapping is present, the filter will implicitly map input channels
20520 to output channels, preserving indices.
20521
20522 Examples
20523
20524 • For example, assuming a 5.1+downmix input MOV file,
20525
20526 ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
20527
20528 will create an output WAV file tagged as stereo from the downmix
20529 channels of the input.
20530
20531 • To fix a 5.1 WAV improperly encoded in AAC's native channel order
20532
20533 ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
20534
20535 channelsplit
20536 Split each channel from an input audio stream into a separate output
20537 stream.
20538
20539 It accepts the following parameters:
20540
20541 channel_layout
20542 The channel layout of the input stream. The default is "stereo".
20543
20544 channels
20545 A channel layout describing the channels to be extracted as
20546 separate output streams or "all" to extract each input channel as a
20547 separate stream. The default is "all".
20548
20549 Choosing channels not present in channel layout in the input will
20550 result in an error.
20551
20552 Examples
20553
20554 • For example, assuming a stereo input MP3 file,
20555
20556 ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
20557
20558 will create an output Matroska file with two audio streams, one
20559 containing only the left channel and the other the right channel.
20560
20561 • Split a 5.1 WAV file into per-channel files:
20562
20563 ffmpeg -i in.wav -filter_complex
20564 'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
20565 -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
20566 front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
20567 side_right.wav
20568
20569 • Extract only LFE from a 5.1 WAV file:
20570
20571 ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
20572 -map '[LFE]' lfe.wav
20573
20574 chorus
20575 Add a chorus effect to the audio.
20576
20577 Can make a single vocal sound like a chorus, but can also be applied to
20578 instrumentation.
20579
20580 Chorus resembles an echo effect with a short delay, but whereas with
20581 echo the delay is constant, with chorus, it is varied using using
20582 sinusoidal or triangular modulation. The modulation depth defines the
20583 range the modulated delay is played before or after the delay. Hence
20584 the delayed sound will sound slower or faster, that is the delayed
20585 sound tuned around the original one, like in a chorus where some vocals
20586 are slightly off key.
20587
20588 It accepts the following parameters:
20589
20590 in_gain
20591 Set input gain. Default is 0.4.
20592
20593 out_gain
20594 Set output gain. Default is 0.4.
20595
20596 delays
20597 Set delays. A typical delay is around 40ms to 60ms.
20598
20599 decays
20600 Set decays.
20601
20602 speeds
20603 Set speeds.
20604
20605 depths
20606 Set depths.
20607
20608 Examples
20609
20610 • A single delay:
20611
20612 chorus=0.7:0.9:55:0.4:0.25:2
20613
20614 • Two delays:
20615
20616 chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
20617
20618 • Fuller sounding chorus with three delays:
20619
20620 chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
20621
20622 compand
20623 Compress or expand the audio's dynamic range.
20624
20625 It accepts the following parameters:
20626
20627 attacks
20628 decays
20629 A list of times in seconds for each channel over which the
20630 instantaneous level of the input signal is averaged to determine
20631 its volume. attacks refers to increase of volume and decays refers
20632 to decrease of volume. For most situations, the attack time
20633 (response to the audio getting louder) should be shorter than the
20634 decay time, because the human ear is more sensitive to sudden loud
20635 audio than sudden soft audio. A typical value for attack is 0.3
20636 seconds and a typical value for decay is 0.8 seconds. If specified
20637 number of attacks & decays is lower than number of channels, the
20638 last set attack/decay will be used for all remaining channels.
20639
20640 points
20641 A list of points for the transfer function, specified in dB
20642 relative to the maximum possible signal amplitude. Each key points
20643 list must be defined using the following syntax:
20644 "x0/y0|x1/y1|x2/y2|...." or "x0/y0 x1/y1 x2/y2 ...."
20645
20646 The input values must be in strictly increasing order but the
20647 transfer function does not have to be monotonically rising. The
20648 point "0/0" is assumed but may be overridden (by "0/out-dBn").
20649 Typical values for the transfer function are "-70/-70|-60/-20|1/0".
20650
20651 soft-knee
20652 Set the curve radius in dB for all joints. It defaults to 0.01.
20653
20654 gain
20655 Set the additional gain in dB to be applied at all points on the
20656 transfer function. This allows for easy adjustment of the overall
20657 gain. It defaults to 0.
20658
20659 volume
20660 Set an initial volume, in dB, to be assumed for each channel when
20661 filtering starts. This permits the user to supply a nominal level
20662 initially, so that, for example, a very large gain is not applied
20663 to initial signal levels before the companding has begun to
20664 operate. A typical value for audio which is initially quiet is -90
20665 dB. It defaults to 0.
20666
20667 delay
20668 Set a delay, in seconds. The input audio is analyzed immediately,
20669 but audio is delayed before being fed to the volume adjuster.
20670 Specifying a delay approximately equal to the attack/decay times
20671 allows the filter to effectively operate in predictive rather than
20672 reactive mode. It defaults to 0.
20673
20674 Examples
20675
20676 • Make music with both quiet and loud passages suitable for listening
20677 to in a noisy environment:
20678
20679 compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
20680
20681 Another example for audio with whisper and explosion parts:
20682
20683 compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
20684
20685 • A noise gate for when the noise is at a lower level than the
20686 signal:
20687
20688 compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
20689
20690 • Here is another noise gate, this time for when the noise is at a
20691 higher level than the signal (making it, in some ways, similar to
20692 squelch):
20693
20694 compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
20695
20696 • 2:1 compression starting at -6dB:
20697
20698 compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
20699
20700 • 2:1 compression starting at -9dB:
20701
20702 compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
20703
20704 • 2:1 compression starting at -12dB:
20705
20706 compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
20707
20708 • 2:1 compression starting at -18dB:
20709
20710 compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
20711
20712 • 3:1 compression starting at -15dB:
20713
20714 compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
20715
20716 • Compressor/Gate:
20717
20718 compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
20719
20720 • Expander:
20721
20722 compand=attacks=0:points=-80/-169|-54/-80|-49.5/-64.6|-41.1/-41.1|-25.8/-15|-10.8/-4.5|0/0|20/8.3
20723
20724 • Hard limiter at -6dB:
20725
20726 compand=attacks=0:points=-80/-80|-6/-6|20/-6
20727
20728 • Hard limiter at -12dB:
20729
20730 compand=attacks=0:points=-80/-80|-12/-12|20/-12
20731
20732 • Hard noise gate at -35 dB:
20733
20734 compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
20735
20736 • Soft limiter:
20737
20738 compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
20739
20740 compensationdelay
20741 Compensation Delay Line is a metric based delay to compensate differing
20742 positions of microphones or speakers.
20743
20744 For example, you have recorded guitar with two microphones placed in
20745 different locations. Because the front of sound wave has fixed speed in
20746 normal conditions, the phasing of microphones can vary and depends on
20747 their location and interposition. The best sound mix can be achieved
20748 when these microphones are in phase (synchronized). Note that a
20749 distance of ~30 cm between microphones makes one microphone capture the
20750 signal in antiphase to the other microphone. That makes the final mix
20751 sound moody. This filter helps to solve phasing problems by adding
20752 different delays to each microphone track and make them synchronized.
20753
20754 The best result can be reached when you take one track as base and
20755 synchronize other tracks one by one with it. Remember that
20756 synchronization/delay tolerance depends on sample rate, too. Higher
20757 sample rates will give more tolerance.
20758
20759 The filter accepts the following parameters:
20760
20761 mm Set millimeters distance. This is compensation distance for fine
20762 tuning. Default is 0.
20763
20764 cm Set cm distance. This is compensation distance for tightening
20765 distance setup. Default is 0.
20766
20767 m Set meters distance. This is compensation distance for hard
20768 distance setup. Default is 0.
20769
20770 dry Set dry amount. Amount of unprocessed (dry) signal. Default is 0.
20771
20772 wet Set wet amount. Amount of processed (wet) signal. Default is 1.
20773
20774 temp
20775 Set temperature in degrees Celsius. This is the temperature of the
20776 environment. Default is 20.
20777
20778 crossfeed
20779 Apply headphone crossfeed filter.
20780
20781 Crossfeed is the process of blending the left and right channels of
20782 stereo audio recording. It is mainly used to reduce extreme stereo
20783 separation of low frequencies.
20784
20785 The intent is to produce more speaker like sound to the listener.
20786
20787 The filter accepts the following options:
20788
20789 strength
20790 Set strength of crossfeed. Default is 0.2. Allowed range is from 0
20791 to 1. This sets gain of low shelf filter for side part of stereo
20792 image. Default is -6dB. Max allowed is -30db when strength is set
20793 to 1.
20794
20795 range
20796 Set soundstage wideness. Default is 0.5. Allowed range is from 0 to
20797 1. This sets cut off frequency of low shelf filter. Default is cut
20798 off near 1550 Hz. With range set to 1 cut off frequency is set to
20799 2100 Hz.
20800
20801 slope
20802 Set curve slope of low shelf filter. Default is 0.5. Allowed range
20803 is from 0.01 to 1.
20804
20805 level_in
20806 Set input gain. Default is 0.9.
20807
20808 level_out
20809 Set output gain. Default is 1.
20810
20811 Commands
20812
20813 This filter supports the all above options as commands.
20814
20815 crystalizer
20816 Simple algorithm for audio noise sharpening.
20817
20818 This filter linearly increases differences betweeen each audio sample.
20819
20820 The filter accepts the following options:
20821
20822 i Sets the intensity of effect (default: 2.0). Must be in range
20823 between -10.0 to 0 (unchanged sound) to 10.0 (maximum effect). To
20824 inverse filtering use negative value.
20825
20826 c Enable clipping. By default is enabled.
20827
20828 Commands
20829
20830 This filter supports the all above options as commands.
20831
20832 dcshift
20833 Apply a DC shift to the audio.
20834
20835 This can be useful to remove a DC offset (caused perhaps by a hardware
20836 problem in the recording chain) from the audio. The effect of a DC
20837 offset is reduced headroom and hence volume. The astats filter can be
20838 used to determine if a signal has a DC offset.
20839
20840 shift
20841 Set the DC shift, allowed range is [-1, 1]. It indicates the amount
20842 to shift the audio.
20843
20844 limitergain
20845 Optional. It should have a value much less than 1 (e.g. 0.05 or
20846 0.02) and is used to prevent clipping.
20847
20848 deesser
20849 Apply de-essing to the audio samples.
20850
20851 i Set intensity for triggering de-essing. Allowed range is from 0 to
20852 1. Default is 0.
20853
20854 m Set amount of ducking on treble part of sound. Allowed range is
20855 from 0 to 1. Default is 0.5.
20856
20857 f How much of original frequency content to keep when de-essing.
20858 Allowed range is from 0 to 1. Default is 0.5.
20859
20860 s Set the output mode.
20861
20862 It accepts the following values:
20863
20864 i Pass input unchanged.
20865
20866 o Pass ess filtered out.
20867
20868 e Pass only ess.
20869
20870 Default value is o.
20871
20872 drmeter
20873 Measure audio dynamic range.
20874
20875 DR values of 14 and higher is found in very dynamic material. DR of 8
20876 to 13 is found in transition material. And anything less that 8 have
20877 very poor dynamics and is very compressed.
20878
20879 The filter accepts the following options:
20880
20881 length
20882 Set window length in seconds used to split audio into segments of
20883 equal length. Default is 3 seconds.
20884
20885 dynaudnorm
20886 Dynamic Audio Normalizer.
20887
20888 This filter applies a certain amount of gain to the input audio in
20889 order to bring its peak magnitude to a target level (e.g. 0 dBFS).
20890 However, in contrast to more "simple" normalization algorithms, the
20891 Dynamic Audio Normalizer *dynamically* re-adjusts the gain factor to
20892 the input audio. This allows for applying extra gain to the "quiet"
20893 sections of the audio while avoiding distortions or clipping the "loud"
20894 sections. In other words: The Dynamic Audio Normalizer will "even out"
20895 the volume of quiet and loud sections, in the sense that the volume of
20896 each section is brought to the same target level. Note, however, that
20897 the Dynamic Audio Normalizer achieves this goal *without* applying
20898 "dynamic range compressing". It will retain 100% of the dynamic range
20899 *within* each section of the audio file.
20900
20901 framelen, f
20902 Set the frame length in milliseconds. In range from 10 to 8000
20903 milliseconds. Default is 500 milliseconds. The Dynamic Audio
20904 Normalizer processes the input audio in small chunks, referred to
20905 as frames. This is required, because a peak magnitude has no
20906 meaning for just a single sample value. Instead, we need to
20907 determine the peak magnitude for a contiguous sequence of sample
20908 values. While a "standard" normalizer would simply use the peak
20909 magnitude of the complete file, the Dynamic Audio Normalizer
20910 determines the peak magnitude individually for each frame. The
20911 length of a frame is specified in milliseconds. By default, the
20912 Dynamic Audio Normalizer uses a frame length of 500 milliseconds,
20913 which has been found to give good results with most files. Note
20914 that the exact frame length, in number of samples, will be
20915 determined automatically, based on the sampling rate of the
20916 individual input audio file.
20917
20918 gausssize, g
20919 Set the Gaussian filter window size. In range from 3 to 301, must
20920 be odd number. Default is 31. Probably the most important
20921 parameter of the Dynamic Audio Normalizer is the "window size" of
20922 the Gaussian smoothing filter. The filter's window size is
20923 specified in frames, centered around the current frame. For the
20924 sake of simplicity, this must be an odd number. Consequently, the
20925 default value of 31 takes into account the current frame, as well
20926 as the 15 preceding frames and the 15 subsequent frames. Using a
20927 larger window results in a stronger smoothing effect and thus in
20928 less gain variation, i.e. slower gain adaptation. Conversely, using
20929 a smaller window results in a weaker smoothing effect and thus in
20930 more gain variation, i.e. faster gain adaptation. In other words,
20931 the more you increase this value, the more the Dynamic Audio
20932 Normalizer will behave like a "traditional" normalization filter.
20933 On the contrary, the more you decrease this value, the more the
20934 Dynamic Audio Normalizer will behave like a dynamic range
20935 compressor.
20936
20937 peak, p
20938 Set the target peak value. This specifies the highest permissible
20939 magnitude level for the normalized audio input. This filter will
20940 try to approach the target peak magnitude as closely as possible,
20941 but at the same time it also makes sure that the normalized signal
20942 will never exceed the peak magnitude. A frame's maximum local gain
20943 factor is imposed directly by the target peak magnitude. The
20944 default value is 0.95 and thus leaves a headroom of 5%*. It is not
20945 recommended to go above this value.
20946
20947 maxgain, m
20948 Set the maximum gain factor. In range from 1.0 to 100.0. Default is
20949 10.0. The Dynamic Audio Normalizer determines the maximum possible
20950 (local) gain factor for each input frame, i.e. the maximum gain
20951 factor that does not result in clipping or distortion. The maximum
20952 gain factor is determined by the frame's highest magnitude sample.
20953 However, the Dynamic Audio Normalizer additionally bounds the
20954 frame's maximum gain factor by a predetermined (global) maximum
20955 gain factor. This is done in order to avoid excessive gain factors
20956 in "silent" or almost silent frames. By default, the maximum gain
20957 factor is 10.0, For most inputs the default value should be
20958 sufficient and it usually is not recommended to increase this
20959 value. Though, for input with an extremely low overall volume
20960 level, it may be necessary to allow even higher gain factors. Note,
20961 however, that the Dynamic Audio Normalizer does not simply apply a
20962 "hard" threshold (i.e. cut off values above the threshold).
20963 Instead, a "sigmoid" threshold function will be applied. This way,
20964 the gain factors will smoothly approach the threshold value, but
20965 never exceed that value.
20966
20967 targetrms, r
20968 Set the target RMS. In range from 0.0 to 1.0. Default is 0.0 -
20969 disabled. By default, the Dynamic Audio Normalizer performs "peak"
20970 normalization. This means that the maximum local gain factor for
20971 each frame is defined (only) by the frame's highest magnitude
20972 sample. This way, the samples can be amplified as much as possible
20973 without exceeding the maximum signal level, i.e. without clipping.
20974 Optionally, however, the Dynamic Audio Normalizer can also take
20975 into account the frame's root mean square, abbreviated RMS. In
20976 electrical engineering, the RMS is commonly used to determine the
20977 power of a time-varying signal. It is therefore considered that the
20978 RMS is a better approximation of the "perceived loudness" than just
20979 looking at the signal's peak magnitude. Consequently, by adjusting
20980 all frames to a constant RMS value, a uniform "perceived loudness"
20981 can be established. If a target RMS value has been specified, a
20982 frame's local gain factor is defined as the factor that would
20983 result in exactly that RMS value. Note, however, that the maximum
20984 local gain factor is still restricted by the frame's highest
20985 magnitude sample, in order to prevent clipping.
20986
20987 coupling, n
20988 Enable channels coupling. By default is enabled. By default, the
20989 Dynamic Audio Normalizer will amplify all channels by the same
20990 amount. This means the same gain factor will be applied to all
20991 channels, i.e. the maximum possible gain factor is determined by
20992 the "loudest" channel. However, in some recordings, it may happen
20993 that the volume of the different channels is uneven, e.g. one
20994 channel may be "quieter" than the other one(s). In this case, this
20995 option can be used to disable the channel coupling. This way, the
20996 gain factor will be determined independently for each channel,
20997 depending only on the individual channel's highest magnitude
20998 sample. This allows for harmonizing the volume of the different
20999 channels.
21000
21001 correctdc, c
21002 Enable DC bias correction. By default is disabled. An audio signal
21003 (in the time domain) is a sequence of sample values. In the
21004 Dynamic Audio Normalizer these sample values are represented in the
21005 -1.0 to 1.0 range, regardless of the original input format.
21006 Normally, the audio signal, or "waveform", should be centered
21007 around the zero point. That means if we calculate the mean value
21008 of all samples in a file, or in a single frame, then the result
21009 should be 0.0 or at least very close to that value. If, however,
21010 there is a significant deviation of the mean value from 0.0, in
21011 either positive or negative direction, this is referred to as a DC
21012 bias or DC offset. Since a DC bias is clearly undesirable, the
21013 Dynamic Audio Normalizer provides optional DC bias correction.
21014 With DC bias correction enabled, the Dynamic Audio Normalizer will
21015 determine the mean value, or "DC correction" offset, of each input
21016 frame and subtract that value from all of the frame's sample values
21017 which ensures those samples are centered around 0.0 again. Also, in
21018 order to avoid "gaps" at the frame boundaries, the DC correction
21019 offset values will be interpolated smoothly between neighbouring
21020 frames.
21021
21022 altboundary, b
21023 Enable alternative boundary mode. By default is disabled. The
21024 Dynamic Audio Normalizer takes into account a certain neighbourhood
21025 around each frame. This includes the preceding frames as well as
21026 the subsequent frames. However, for the "boundary" frames, located
21027 at the very beginning and at the very end of the audio file, not
21028 all neighbouring frames are available. In particular, for the first
21029 few frames in the audio file, the preceding frames are not known.
21030 And, similarly, for the last few frames in the audio file, the
21031 subsequent frames are not known. Thus, the question arises which
21032 gain factors should be assumed for the missing frames in the
21033 "boundary" region. The Dynamic Audio Normalizer implements two
21034 modes to deal with this situation. The default boundary mode
21035 assumes a gain factor of exactly 1.0 for the missing frames,
21036 resulting in a smooth "fade in" and "fade out" at the beginning and
21037 at the end of the input, respectively.
21038
21039 compress, s
21040 Set the compress factor. In range from 0.0 to 30.0. Default is 0.0.
21041 By default, the Dynamic Audio Normalizer does not apply
21042 "traditional" compression. This means that signal peaks will not be
21043 pruned and thus the full dynamic range will be retained within each
21044 local neighbourhood. However, in some cases it may be desirable to
21045 combine the Dynamic Audio Normalizer's normalization algorithm with
21046 a more "traditional" compression. For this purpose, the Dynamic
21047 Audio Normalizer provides an optional compression (thresholding)
21048 function. If (and only if) the compression feature is enabled, all
21049 input frames will be processed by a soft knee thresholding function
21050 prior to the actual normalization process. Put simply, the
21051 thresholding function is going to prune all samples whose magnitude
21052 exceeds a certain threshold value. However, the Dynamic Audio
21053 Normalizer does not simply apply a fixed threshold value. Instead,
21054 the threshold value will be adjusted for each individual frame. In
21055 general, smaller parameters result in stronger compression, and
21056 vice versa. Values below 3.0 are not recommended, because audible
21057 distortion may appear.
21058
21059 threshold, t
21060 Set the target threshold value. This specifies the lowest
21061 permissible magnitude level for the audio input which will be
21062 normalized. If input frame volume is above this value frame will
21063 be normalized. Otherwise frame may not be normalized at all. The
21064 default value is set to 0, which means all input frames will be
21065 normalized. This option is mostly useful if digital noise is not
21066 wanted to be amplified.
21067
21068 Commands
21069
21070 This filter supports the all above options as commands.
21071
21072 earwax
21073 Make audio easier to listen to on headphones.
21074
21075 This filter adds `cues' to 44.1kHz stereo (i.e. audio CD format) audio
21076 so that when listened to on headphones the stereo image is moved from
21077 inside your head (standard for headphones) to outside and in front of
21078 the listener (standard for speakers).
21079
21080 Ported from SoX.
21081
21082 equalizer
21083 Apply a two-pole peaking equalisation (EQ) filter. With this filter,
21084 the signal-level at and around a selected frequency can be increased or
21085 decreased, whilst (unlike bandpass and bandreject filters) that at all
21086 other frequencies is unchanged.
21087
21088 In order to produce complex equalisation curves, this filter can be
21089 given several times, each with a different central frequency.
21090
21091 The filter accepts the following options:
21092
21093 frequency, f
21094 Set the filter's central frequency in Hz.
21095
21096 width_type, t
21097 Set method to specify band-width of filter.
21098
21099 h Hz
21100
21101 q Q-Factor
21102
21103 o octave
21104
21105 s slope
21106
21107 k kHz
21108
21109 width, w
21110 Specify the band-width of a filter in width_type units.
21111
21112 gain, g
21113 Set the required gain or attenuation in dB. Beware of clipping
21114 when using a positive gain.
21115
21116 mix, m
21117 How much to use filtered signal in output. Default is 1. Range is
21118 between 0 and 1.
21119
21120 channels, c
21121 Specify which channels to filter, by default all available are
21122 filtered.
21123
21124 normalize, n
21125 Normalize biquad coefficients, by default is disabled. Enabling it
21126 will normalize magnitude response at DC to 0dB.
21127
21128 transform, a
21129 Set transform type of IIR filter.
21130
21131 di
21132 dii
21133 tdii
21134 latt
21135 svf
21136 precision, r
21137 Set precison of filtering.
21138
21139 auto
21140 Pick automatic sample format depending on surround filters.
21141
21142 s16 Always use signed 16-bit.
21143
21144 s32 Always use signed 32-bit.
21145
21146 f32 Always use float 32-bit.
21147
21148 f64 Always use float 64-bit.
21149
21150 Examples
21151
21152 • Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz:
21153
21154 equalizer=f=1000:t=h:width=200:g=-10
21155
21156 • Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz
21157 with Q 2:
21158
21159 equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
21160
21161 Commands
21162
21163 This filter supports the following commands:
21164
21165 frequency, f
21166 Change equalizer frequency. Syntax for the command is :
21167 "frequency"
21168
21169 width_type, t
21170 Change equalizer width_type. Syntax for the command is :
21171 "width_type"
21172
21173 width, w
21174 Change equalizer width. Syntax for the command is : "width"
21175
21176 gain, g
21177 Change equalizer gain. Syntax for the command is : "gain"
21178
21179 mix, m
21180 Change equalizer mix. Syntax for the command is : "mix"
21181
21182 extrastereo
21183 Linearly increases the difference between left and right channels which
21184 adds some sort of "live" effect to playback.
21185
21186 The filter accepts the following options:
21187
21188 m Sets the difference coefficient (default: 2.5). 0.0 means mono
21189 sound (average of both channels), with 1.0 sound will be unchanged,
21190 with -1.0 left and right channels will be swapped.
21191
21192 c Enable clipping. By default is enabled.
21193
21194 Commands
21195
21196 This filter supports the all above options as commands.
21197
21198 firequalizer
21199 Apply FIR Equalization using arbitrary frequency response.
21200
21201 The filter accepts the following option:
21202
21203 gain
21204 Set gain curve equation (in dB). The expression can contain
21205 variables:
21206
21207 f the evaluated frequency
21208
21209 sr sample rate
21210
21211 ch channel number, set to 0 when multichannels evaluation is
21212 disabled
21213
21214 chid
21215 channel id, see libavutil/channel_layout.h, set to the first
21216 channel id when multichannels evaluation is disabled
21217
21218 chs number of channels
21219
21220 chlayout
21221 channel_layout, see libavutil/channel_layout.h
21222
21223 and functions:
21224
21225 gain_interpolate(f)
21226 interpolate gain on frequency f based on gain_entry
21227
21228 cubic_interpolate(f)
21229 same as gain_interpolate, but smoother
21230
21231 This option is also available as command. Default is
21232 gain_interpolate(f).
21233
21234 gain_entry
21235 Set gain entry for gain_interpolate function. The expression can
21236 contain functions:
21237
21238 entry(f, g)
21239 store gain entry at frequency f with value g
21240
21241 This option is also available as command.
21242
21243 delay
21244 Set filter delay in seconds. Higher value means more accurate.
21245 Default is 0.01.
21246
21247 accuracy
21248 Set filter accuracy in Hz. Lower value means more accurate.
21249 Default is 5.
21250
21251 wfunc
21252 Set window function. Acceptable values are:
21253
21254 rectangular
21255 rectangular window, useful when gain curve is already smooth
21256
21257 hann
21258 hann window (default)
21259
21260 hamming
21261 hamming window
21262
21263 blackman
21264 blackman window
21265
21266 nuttall3
21267 3-terms continuous 1st derivative nuttall window
21268
21269 mnuttall3
21270 minimum 3-terms discontinuous nuttall window
21271
21272 nuttall
21273 4-terms continuous 1st derivative nuttall window
21274
21275 bnuttall
21276 minimum 4-terms discontinuous nuttall (blackman-nuttall) window
21277
21278 bharris
21279 blackman-harris window
21280
21281 tukey
21282 tukey window
21283
21284 fixed
21285 If enabled, use fixed number of audio samples. This improves speed
21286 when filtering with large delay. Default is disabled.
21287
21288 multi
21289 Enable multichannels evaluation on gain. Default is disabled.
21290
21291 zero_phase
21292 Enable zero phase mode by subtracting timestamp to compensate
21293 delay. Default is disabled.
21294
21295 scale
21296 Set scale used by gain. Acceptable values are:
21297
21298 linlin
21299 linear frequency, linear gain
21300
21301 linlog
21302 linear frequency, logarithmic (in dB) gain (default)
21303
21304 loglin
21305 logarithmic (in octave scale where 20 Hz is 0) frequency,
21306 linear gain
21307
21308 loglog
21309 logarithmic frequency, logarithmic gain
21310
21311 dumpfile
21312 Set file for dumping, suitable for gnuplot.
21313
21314 dumpscale
21315 Set scale for dumpfile. Acceptable values are same with scale
21316 option. Default is linlog.
21317
21318 fft2
21319 Enable 2-channel convolution using complex FFT. This improves speed
21320 significantly. Default is disabled.
21321
21322 min_phase
21323 Enable minimum phase impulse response. Default is disabled.
21324
21325 Examples
21326
21327 • lowpass at 1000 Hz:
21328
21329 firequalizer=gain='if(lt(f,1000), 0, -INF)'
21330
21331 • lowpass at 1000 Hz with gain_entry:
21332
21333 firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
21334
21335 • custom equalization:
21336
21337 firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
21338
21339 • higher delay with zero phase to compensate delay:
21340
21341 firequalizer=delay=0.1:fixed=on:zero_phase=on
21342
21343 • lowpass on left channel, highpass on right channel:
21344
21345 firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
21346 :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
21347
21348 flanger
21349 Apply a flanging effect to the audio.
21350
21351 The filter accepts the following options:
21352
21353 delay
21354 Set base delay in milliseconds. Range from 0 to 30. Default value
21355 is 0.
21356
21357 depth
21358 Set added sweep delay in milliseconds. Range from 0 to 10. Default
21359 value is 2.
21360
21361 regen
21362 Set percentage regeneration (delayed signal feedback). Range from
21363 -95 to 95. Default value is 0.
21364
21365 width
21366 Set percentage of delayed signal mixed with original. Range from 0
21367 to 100. Default value is 71.
21368
21369 speed
21370 Set sweeps per second (Hz). Range from 0.1 to 10. Default value is
21371 0.5.
21372
21373 shape
21374 Set swept wave shape, can be triangular or sinusoidal. Default
21375 value is sinusoidal.
21376
21377 phase
21378 Set swept wave percentage-shift for multi channel. Range from 0 to
21379 100. Default value is 25.
21380
21381 interp
21382 Set delay-line interpolation, linear or quadratic. Default is
21383 linear.
21384
21385 haas
21386 Apply Haas effect to audio.
21387
21388 Note that this makes most sense to apply on mono signals. With this
21389 filter applied to mono signals it give some directionality and
21390 stretches its stereo image.
21391
21392 The filter accepts the following options:
21393
21394 level_in
21395 Set input level. By default is 1, or 0dB
21396
21397 level_out
21398 Set output level. By default is 1, or 0dB.
21399
21400 side_gain
21401 Set gain applied to side part of signal. By default is 1.
21402
21403 middle_source
21404 Set kind of middle source. Can be one of the following:
21405
21406 left
21407 Pick left channel.
21408
21409 right
21410 Pick right channel.
21411
21412 mid Pick middle part signal of stereo image.
21413
21414 side
21415 Pick side part signal of stereo image.
21416
21417 middle_phase
21418 Change middle phase. By default is disabled.
21419
21420 left_delay
21421 Set left channel delay. By default is 2.05 milliseconds.
21422
21423 left_balance
21424 Set left channel balance. By default is -1.
21425
21426 left_gain
21427 Set left channel gain. By default is 1.
21428
21429 left_phase
21430 Change left phase. By default is disabled.
21431
21432 right_delay
21433 Set right channel delay. By defaults is 2.12 milliseconds.
21434
21435 right_balance
21436 Set right channel balance. By default is 1.
21437
21438 right_gain
21439 Set right channel gain. By default is 1.
21440
21441 right_phase
21442 Change right phase. By default is enabled.
21443
21444 hdcd
21445 Decodes High Definition Compatible Digital (HDCD) data. A 16-bit PCM
21446 stream with embedded HDCD codes is expanded into a 20-bit PCM stream.
21447
21448 The filter supports the Peak Extend and Low-level Gain Adjustment
21449 features of HDCD, and detects the Transient Filter flag.
21450
21451 ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
21452
21453 When using the filter with wav, note the default encoding for wav is
21454 16-bit, so the resulting 20-bit stream will be truncated back to
21455 16-bit. Use something like -acodec pcm_s24le after the filter to get
21456 24-bit PCM output.
21457
21458 ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
21459 ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
21460
21461 The filter accepts the following options:
21462
21463 disable_autoconvert
21464 Disable any automatic format conversion or resampling in the filter
21465 graph.
21466
21467 process_stereo
21468 Process the stereo channels together. If target_gain does not match
21469 between channels, consider it invalid and use the last valid
21470 target_gain.
21471
21472 cdt_ms
21473 Set the code detect timer period in ms.
21474
21475 force_pe
21476 Always extend peaks above -3dBFS even if PE isn't signaled.
21477
21478 analyze_mode
21479 Replace audio with a solid tone and adjust the amplitude to signal
21480 some specific aspect of the decoding process. The output file can
21481 be loaded in an audio editor alongside the original to aid
21482 analysis.
21483
21484 "analyze_mode=pe:force_pe=true" can be used to see all samples
21485 above the PE level.
21486
21487 Modes are:
21488
21489 0, off
21490 Disabled
21491
21492 1, lle
21493 Gain adjustment level at each sample
21494
21495 2, pe
21496 Samples where peak extend occurs
21497
21498 3, cdt
21499 Samples where the code detect timer is active
21500
21501 4, tgm
21502 Samples where the target gain does not match between channels
21503
21504 headphone
21505 Apply head-related transfer functions (HRTFs) to create virtual
21506 loudspeakers around the user for binaural listening via headphones.
21507 The HRIRs are provided via additional streams, for each channel one
21508 stereo input stream is needed.
21509
21510 The filter accepts the following options:
21511
21512 map Set mapping of input streams for convolution. The argument is a
21513 '|'-separated list of channel names in order as they are given as
21514 additional stream inputs for filter. This also specify number of
21515 input streams. Number of input streams must be not less than number
21516 of channels in first stream plus one.
21517
21518 gain
21519 Set gain applied to audio. Value is in dB. Default is 0.
21520
21521 type
21522 Set processing type. Can be time or freq. time is processing audio
21523 in time domain which is slow. freq is processing audio in
21524 frequency domain which is fast. Default is freq.
21525
21526 lfe Set custom gain for LFE channels. Value is in dB. Default is 0.
21527
21528 size
21529 Set size of frame in number of samples which will be processed at
21530 once. Default value is 1024. Allowed range is from 1024 to 96000.
21531
21532 hrir
21533 Set format of hrir stream. Default value is stereo. Alternative
21534 value is multich. If value is set to stereo, number of additional
21535 streams should be greater or equal to number of input channels in
21536 first input stream. Also each additional stream should have stereo
21537 number of channels. If value is set to multich, number of
21538 additional streams should be exactly one. Also number of input
21539 channels of additional stream should be equal or greater than twice
21540 number of channels of first input stream.
21541
21542 Examples
21543
21544 • Full example using wav files as coefficients with amovie filters
21545 for 7.1 downmix, each amovie filter use stereo file with IR
21546 coefficients as input. The files give coefficients for each
21547 position of virtual loudspeaker:
21548
21549 ffmpeg -i input.wav
21550 -filter_complex "amovie=azi_270_ele_0_DFC.wav[sr];amovie=azi_90_ele_0_DFC.wav[sl];amovie=azi_225_ele_0_DFC.wav[br];amovie=azi_135_ele_0_DFC.wav[bl];amovie=azi_0_ele_0_DFC.wav,asplit[fc][lfe];amovie=azi_35_ele_0_DFC.wav[fl];amovie=azi_325_ele_0_DFC.wav[fr];[0:a][fl][fr][fc][lfe][bl][br][sl][sr]headphone=FL|FR|FC|LFE|BL|BR|SL|SR"
21551 output.wav
21552
21553 • Full example using wav files as coefficients with amovie filters
21554 for 7.1 downmix, but now in multich hrir format.
21555
21556 ffmpeg -i input.wav -filter_complex "amovie=minp.wav[hrirs];[0:a][hrirs]headphone=map=FL|FR|FC|LFE|BL|BR|SL|SR:hrir=multich"
21557 output.wav
21558
21559 highpass
21560 Apply a high-pass filter with 3dB point frequency. The filter can be
21561 either single-pole, or double-pole (the default). The filter roll off
21562 at 6dB per pole per octave (20dB per pole per decade).
21563
21564 The filter accepts the following options:
21565
21566 frequency, f
21567 Set frequency in Hz. Default is 3000.
21568
21569 poles, p
21570 Set number of poles. Default is 2.
21571
21572 width_type, t
21573 Set method to specify band-width of filter.
21574
21575 h Hz
21576
21577 q Q-Factor
21578
21579 o octave
21580
21581 s slope
21582
21583 k kHz
21584
21585 width, w
21586 Specify the band-width of a filter in width_type units. Applies
21587 only to double-pole filter. The default is 0.707q and gives a
21588 Butterworth response.
21589
21590 mix, m
21591 How much to use filtered signal in output. Default is 1. Range is
21592 between 0 and 1.
21593
21594 channels, c
21595 Specify which channels to filter, by default all available are
21596 filtered.
21597
21598 normalize, n
21599 Normalize biquad coefficients, by default is disabled. Enabling it
21600 will normalize magnitude response at DC to 0dB.
21601
21602 transform, a
21603 Set transform type of IIR filter.
21604
21605 di
21606 dii
21607 tdii
21608 latt
21609 svf
21610 precision, r
21611 Set precison of filtering.
21612
21613 auto
21614 Pick automatic sample format depending on surround filters.
21615
21616 s16 Always use signed 16-bit.
21617
21618 s32 Always use signed 32-bit.
21619
21620 f32 Always use float 32-bit.
21621
21622 f64 Always use float 64-bit.
21623
21624 Commands
21625
21626 This filter supports the following commands:
21627
21628 frequency, f
21629 Change highpass frequency. Syntax for the command is : "frequency"
21630
21631 width_type, t
21632 Change highpass width_type. Syntax for the command is :
21633 "width_type"
21634
21635 width, w
21636 Change highpass width. Syntax for the command is : "width"
21637
21638 mix, m
21639 Change highpass mix. Syntax for the command is : "mix"
21640
21641 join
21642 Join multiple input streams into one multi-channel stream.
21643
21644 It accepts the following parameters:
21645
21646 inputs
21647 The number of input streams. It defaults to 2.
21648
21649 channel_layout
21650 The desired output channel layout. It defaults to stereo.
21651
21652 map Map channels from inputs to output. The argument is a '|'-separated
21653 list of mappings, each in the "input_idx.in_channel-out_channel"
21654 form. input_idx is the 0-based index of the input stream.
21655 in_channel can be either the name of the input channel (e.g. FL for
21656 front left) or its index in the specified input stream. out_channel
21657 is the name of the output channel.
21658
21659 The filter will attempt to guess the mappings when they are not
21660 specified explicitly. It does so by first trying to find an unused
21661 matching input channel and if that fails it picks the first unused
21662 input channel.
21663
21664 Join 3 inputs (with properly set channel layouts):
21665
21666 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
21667
21668 Build a 5.1 output from 6 single-channel streams:
21669
21670 ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
21671 'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
21672 out
21673
21674 ladspa
21675 Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin.
21676
21677 To enable compilation of this filter you need to configure FFmpeg with
21678 "--enable-ladspa".
21679
21680 file, f
21681 Specifies the name of LADSPA plugin library to load. If the
21682 environment variable LADSPA_PATH is defined, the LADSPA plugin is
21683 searched in each one of the directories specified by the colon
21684 separated list in LADSPA_PATH, otherwise in the standard LADSPA
21685 paths, which are in this order: HOME/.ladspa/lib/,
21686 /usr/local/lib/ladspa/, /usr/lib/ladspa/.
21687
21688 plugin, p
21689 Specifies the plugin within the library. Some libraries contain
21690 only one plugin, but others contain many of them. If this is not
21691 set filter will list all available plugins within the specified
21692 library.
21693
21694 controls, c
21695 Set the '|' separated list of controls which are zero or more
21696 floating point values that determine the behavior of the loaded
21697 plugin (for example delay, threshold or gain). Controls need to be
21698 defined using the following syntax:
21699 c0=value0|c1=value1|c2=value2|..., where valuei is the value set on
21700 the i-th control. Alternatively they can be also defined using the
21701 following syntax: value0|value1|value2|..., where valuei is the
21702 value set on the i-th control. If controls is set to "help", all
21703 available controls and their valid ranges are printed.
21704
21705 sample_rate, s
21706 Specify the sample rate, default to 44100. Only used if plugin have
21707 zero inputs.
21708
21709 nb_samples, n
21710 Set the number of samples per channel per each output frame,
21711 default is 1024. Only used if plugin have zero inputs.
21712
21713 duration, d
21714 Set the minimum duration of the sourced audio. See the Time
21715 duration section in the ffmpeg-utils(1) manual for the accepted
21716 syntax. Note that the resulting duration may be greater than the
21717 specified duration, as the generated audio is always cut at the end
21718 of a complete frame. If not specified, or the expressed duration
21719 is negative, the audio is supposed to be generated forever. Only
21720 used if plugin have zero inputs.
21721
21722 latency, l
21723 Enable latency compensation, by default is disabled. Only used if
21724 plugin have inputs.
21725
21726 Examples
21727
21728 • List all available plugins within amp (LADSPA example plugin)
21729 library:
21730
21731 ladspa=file=amp
21732
21733 • List all available controls and their valid ranges for "vcf_notch"
21734 plugin from "VCF" library:
21735
21736 ladspa=f=vcf:p=vcf_notch:c=help
21737
21738 • Simulate low quality audio equipment using "Computer Music Toolkit"
21739 (CMT) plugin library:
21740
21741 ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
21742
21743 • Add reverberation to the audio using TAP-plugins (Tom's Audio
21744 Processing plugins):
21745
21746 ladspa=file=tap_reverb:tap_reverb
21747
21748 • Generate white noise, with 0.2 amplitude:
21749
21750 ladspa=file=cmt:noise_source_white:c=c0=.2
21751
21752 • Generate 20 bpm clicks using plugin "C* Click - Metronome" from the
21753 "C* Audio Plugin Suite" (CAPS) library:
21754
21755 ladspa=file=caps:Click:c=c1=20'
21756
21757 • Apply "C* Eq10X2 - Stereo 10-band equaliser" effect:
21758
21759 ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
21760
21761 • Increase volume by 20dB using fast lookahead limiter from Steve
21762 Harris "SWH Plugins" collection:
21763
21764 ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
21765
21766 • Attenuate low frequencies using Multiband EQ from Steve Harris "SWH
21767 Plugins" collection:
21768
21769 ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
21770
21771 • Reduce stereo image using "Narrower" from the "C* Audio Plugin
21772 Suite" (CAPS) library:
21773
21774 ladspa=caps:Narrower
21775
21776 • Another white noise, now using "C* Audio Plugin Suite" (CAPS)
21777 library:
21778
21779 ladspa=caps:White:.2
21780
21781 • Some fractal noise, using "C* Audio Plugin Suite" (CAPS) library:
21782
21783 ladspa=caps:Fractal:c=c1=1
21784
21785 • Dynamic volume normalization using "VLevel" plugin:
21786
21787 ladspa=vlevel-ladspa:vlevel_mono
21788
21789 Commands
21790
21791 This filter supports the following commands:
21792
21793 cN Modify the N-th control value.
21794
21795 If the specified value is not valid, it is ignored and prior one is
21796 kept.
21797
21798 loudnorm
21799 EBU R128 loudness normalization. Includes both dynamic and linear
21800 normalization modes. Support for both single pass (livestreams, files)
21801 and double pass (files) modes. This algorithm can target IL, LRA, and
21802 maximum true peak. In dynamic mode, to accurately detect true peaks,
21803 the audio stream will be upsampled to 192 kHz. Use the "-ar" option or
21804 "aresample" filter to explicitly set an output sample rate.
21805
21806 The filter accepts the following options:
21807
21808 I, i
21809 Set integrated loudness target. Range is -70.0 - -5.0. Default
21810 value is -24.0.
21811
21812 LRA, lra
21813 Set loudness range target. Range is 1.0 - 20.0. Default value is
21814 7.0.
21815
21816 TP, tp
21817 Set maximum true peak. Range is -9.0 - +0.0. Default value is
21818 -2.0.
21819
21820 measured_I, measured_i
21821 Measured IL of input file. Range is -99.0 - +0.0.
21822
21823 measured_LRA, measured_lra
21824 Measured LRA of input file. Range is 0.0 - 99.0.
21825
21826 measured_TP, measured_tp
21827 Measured true peak of input file. Range is -99.0 - +99.0.
21828
21829 measured_thresh
21830 Measured threshold of input file. Range is -99.0 - +0.0.
21831
21832 offset
21833 Set offset gain. Gain is applied before the true-peak limiter.
21834 Range is -99.0 - +99.0. Default is +0.0.
21835
21836 linear
21837 Normalize by linearly scaling the source audio. "measured_I",
21838 "measured_LRA", "measured_TP", and "measured_thresh" must all be
21839 specified. Target LRA shouldn't be lower than source LRA and the
21840 change in integrated loudness shouldn't result in a true peak which
21841 exceeds the target TP. If any of these conditions aren't met,
21842 normalization mode will revert to dynamic. Options are "true" or
21843 "false". Default is "true".
21844
21845 dual_mono
21846 Treat mono input files as "dual-mono". If a mono file is intended
21847 for playback on a stereo system, its EBU R128 measurement will be
21848 perceptually incorrect. If set to "true", this option will
21849 compensate for this effect. Multi-channel input files are not
21850 affected by this option. Options are true or false. Default is
21851 false.
21852
21853 print_format
21854 Set print format for stats. Options are summary, json, or none.
21855 Default value is none.
21856
21857 lowpass
21858 Apply a low-pass filter with 3dB point frequency. The filter can be
21859 either single-pole or double-pole (the default). The filter roll off
21860 at 6dB per pole per octave (20dB per pole per decade).
21861
21862 The filter accepts the following options:
21863
21864 frequency, f
21865 Set frequency in Hz. Default is 500.
21866
21867 poles, p
21868 Set number of poles. Default is 2.
21869
21870 width_type, t
21871 Set method to specify band-width of filter.
21872
21873 h Hz
21874
21875 q Q-Factor
21876
21877 o octave
21878
21879 s slope
21880
21881 k kHz
21882
21883 width, w
21884 Specify the band-width of a filter in width_type units. Applies
21885 only to double-pole filter. The default is 0.707q and gives a
21886 Butterworth response.
21887
21888 mix, m
21889 How much to use filtered signal in output. Default is 1. Range is
21890 between 0 and 1.
21891
21892 channels, c
21893 Specify which channels to filter, by default all available are
21894 filtered.
21895
21896 normalize, n
21897 Normalize biquad coefficients, by default is disabled. Enabling it
21898 will normalize magnitude response at DC to 0dB.
21899
21900 transform, a
21901 Set transform type of IIR filter.
21902
21903 di
21904 dii
21905 tdii
21906 latt
21907 svf
21908 precision, r
21909 Set precison of filtering.
21910
21911 auto
21912 Pick automatic sample format depending on surround filters.
21913
21914 s16 Always use signed 16-bit.
21915
21916 s32 Always use signed 32-bit.
21917
21918 f32 Always use float 32-bit.
21919
21920 f64 Always use float 64-bit.
21921
21922 Examples
21923
21924 • Lowpass only LFE channel, it LFE is not present it does nothing:
21925
21926 lowpass=c=LFE
21927
21928 Commands
21929
21930 This filter supports the following commands:
21931
21932 frequency, f
21933 Change lowpass frequency. Syntax for the command is : "frequency"
21934
21935 width_type, t
21936 Change lowpass width_type. Syntax for the command is :
21937 "width_type"
21938
21939 width, w
21940 Change lowpass width. Syntax for the command is : "width"
21941
21942 mix, m
21943 Change lowpass mix. Syntax for the command is : "mix"
21944
21945 lv2
21946 Load a LV2 (LADSPA Version 2) plugin.
21947
21948 To enable compilation of this filter you need to configure FFmpeg with
21949 "--enable-lv2".
21950
21951 plugin, p
21952 Specifies the plugin URI. You may need to escape ':'.
21953
21954 controls, c
21955 Set the '|' separated list of controls which are zero or more
21956 floating point values that determine the behavior of the loaded
21957 plugin (for example delay, threshold or gain). If controls is set
21958 to "help", all available controls and their valid ranges are
21959 printed.
21960
21961 sample_rate, s
21962 Specify the sample rate, default to 44100. Only used if plugin have
21963 zero inputs.
21964
21965 nb_samples, n
21966 Set the number of samples per channel per each output frame,
21967 default is 1024. Only used if plugin have zero inputs.
21968
21969 duration, d
21970 Set the minimum duration of the sourced audio. See the Time
21971 duration section in the ffmpeg-utils(1) manual for the accepted
21972 syntax. Note that the resulting duration may be greater than the
21973 specified duration, as the generated audio is always cut at the end
21974 of a complete frame. If not specified, or the expressed duration
21975 is negative, the audio is supposed to be generated forever. Only
21976 used if plugin have zero inputs.
21977
21978 Examples
21979
21980 • Apply bass enhancer plugin from Calf:
21981
21982 lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
21983
21984 • Apply vinyl plugin from Calf:
21985
21986 lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
21987
21988 • Apply bit crusher plugin from ArtyFX:
21989
21990 lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
21991
21992 mcompand
21993 Multiband Compress or expand the audio's dynamic range.
21994
21995 The input audio is divided into bands using 4th order Linkwitz-Riley
21996 IIRs. This is akin to the crossover of a loudspeaker, and results in
21997 flat frequency response when absent compander action.
21998
21999 It accepts the following parameters:
22000
22001 args
22002 This option syntax is: attack,decay,[attack,decay..] soft-knee
22003 points crossover_frequency [delay [initial_volume [gain]]] |
22004 attack,decay ... For explanation of each item refer to compand
22005 filter documentation.
22006
22007 pan
22008 Mix channels with specific gain levels. The filter accepts the output
22009 channel layout followed by a set of channels definitions.
22010
22011 This filter is also designed to efficiently remap the channels of an
22012 audio stream.
22013
22014 The filter accepts parameters of the form: "l|outdef|outdef|..."
22015
22016 l output channel layout or number of channels
22017
22018 outdef
22019 output channel specification, of the form:
22020 "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
22021
22022 out_name
22023 output channel to define, either a channel name (FL, FR, etc.) or a
22024 channel number (c0, c1, etc.)
22025
22026 gain
22027 multiplicative coefficient for the channel, 1 leaving the volume
22028 unchanged
22029
22030 in_name
22031 input channel to use, see out_name for details; it is not possible
22032 to mix named and numbered input channels
22033
22034 If the `=' in a channel specification is replaced by `<', then the
22035 gains for that specification will be renormalized so that the total is
22036 1, thus avoiding clipping noise.
22037
22038 Mixing examples
22039
22040 For example, if you want to down-mix from stereo to mono, but with a
22041 bigger factor for the left channel:
22042
22043 pan=1c|c0=0.9*c0+0.1*c1
22044
22045 A customized down-mix to stereo that works automatically for 3-, 4-, 5-
22046 and 7-channels surround:
22047
22048 pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
22049
22050 Note that ffmpeg integrates a default down-mix (and up-mix) system that
22051 should be preferred (see "-ac" option) unless you have very specific
22052 needs.
22053
22054 Remapping examples
22055
22056 The channel remapping will be effective if, and only if:
22057
22058 *<gain coefficients are zeroes or ones,>
22059 *<only one input per channel output,>
22060
22061 If all these conditions are satisfied, the filter will notify the user
22062 ("Pure channel mapping detected"), and use an optimized and lossless
22063 method to do the remapping.
22064
22065 For example, if you have a 5.1 source and want a stereo audio stream by
22066 dropping the extra channels:
22067
22068 pan="stereo| c0=FL | c1=FR"
22069
22070 Given the same source, you can also switch front left and front right
22071 channels and keep the input channel layout:
22072
22073 pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
22074
22075 If the input is a stereo audio stream, you can mute the front left
22076 channel (and still keep the stereo channel layout) with:
22077
22078 pan="stereo|c1=c1"
22079
22080 Still with a stereo audio stream input, you can copy the right channel
22081 in both front left and right:
22082
22083 pan="stereo| c0=FR | c1=FR"
22084
22085 replaygain
22086 ReplayGain scanner filter. This filter takes an audio stream as an
22087 input and outputs it unchanged. At end of filtering it displays
22088 "track_gain" and "track_peak".
22089
22090 resample
22091 Convert the audio sample format, sample rate and channel layout. It is
22092 not meant to be used directly.
22093
22094 rubberband
22095 Apply time-stretching and pitch-shifting with librubberband.
22096
22097 To enable compilation of this filter, you need to configure FFmpeg with
22098 "--enable-librubberband".
22099
22100 The filter accepts the following options:
22101
22102 tempo
22103 Set tempo scale factor.
22104
22105 pitch
22106 Set pitch scale factor.
22107
22108 transients
22109 Set transients detector. Possible values are:
22110
22111 crisp
22112 mixed
22113 smooth
22114 detector
22115 Set detector. Possible values are:
22116
22117 compound
22118 percussive
22119 soft
22120 phase
22121 Set phase. Possible values are:
22122
22123 laminar
22124 independent
22125 window
22126 Set processing window size. Possible values are:
22127
22128 standard
22129 short
22130 long
22131 smoothing
22132 Set smoothing. Possible values are:
22133
22134 off
22135 on
22136 formant
22137 Enable formant preservation when shift pitching. Possible values
22138 are:
22139
22140 shifted
22141 preserved
22142 pitchq
22143 Set pitch quality. Possible values are:
22144
22145 quality
22146 speed
22147 consistency
22148 channels
22149 Set channels. Possible values are:
22150
22151 apart
22152 together
22153
22154 Commands
22155
22156 This filter supports the following commands:
22157
22158 tempo
22159 Change filter tempo scale factor. Syntax for the command is :
22160 "tempo"
22161
22162 pitch
22163 Change filter pitch scale factor. Syntax for the command is :
22164 "pitch"
22165
22166 sidechaincompress
22167 This filter acts like normal compressor but has the ability to compress
22168 detected signal using second input signal. It needs two input streams
22169 and returns one output stream. First input stream will be processed
22170 depending on second stream signal. The filtered signal then can be
22171 filtered with other filters in later stages of processing. See pan and
22172 amerge filter.
22173
22174 The filter accepts the following options:
22175
22176 level_in
22177 Set input gain. Default is 1. Range is between 0.015625 and 64.
22178
22179 mode
22180 Set mode of compressor operation. Can be "upward" or "downward".
22181 Default is "downward".
22182
22183 threshold
22184 If a signal of second stream raises above this level it will affect
22185 the gain reduction of first stream. By default is 0.125. Range is
22186 between 0.00097563 and 1.
22187
22188 ratio
22189 Set a ratio about which the signal is reduced. 1:2 means that if
22190 the level raised 4dB above the threshold, it will be only 2dB above
22191 after the reduction. Default is 2. Range is between 1 and 20.
22192
22193 attack
22194 Amount of milliseconds the signal has to rise above the threshold
22195 before gain reduction starts. Default is 20. Range is between 0.01
22196 and 2000.
22197
22198 release
22199 Amount of milliseconds the signal has to fall below the threshold
22200 before reduction is decreased again. Default is 250. Range is
22201 between 0.01 and 9000.
22202
22203 makeup
22204 Set the amount by how much signal will be amplified after
22205 processing. Default is 1. Range is from 1 to 64.
22206
22207 knee
22208 Curve the sharp knee around the threshold to enter gain reduction
22209 more softly. Default is 2.82843. Range is between 1 and 8.
22210
22211 link
22212 Choose if the "average" level between all channels of side-chain
22213 stream or the louder("maximum") channel of side-chain stream
22214 affects the reduction. Default is "average".
22215
22216 detection
22217 Should the exact signal be taken in case of "peak" or an RMS one in
22218 case of "rms". Default is "rms" which is mainly smoother.
22219
22220 level_sc
22221 Set sidechain gain. Default is 1. Range is between 0.015625 and 64.
22222
22223 mix How much to use compressed signal in output. Default is 1. Range
22224 is between 0 and 1.
22225
22226 Commands
22227
22228 This filter supports the all above options as commands.
22229
22230 Examples
22231
22232 • Full ffmpeg example taking 2 audio inputs, 1st input to be
22233 compressed depending on the signal of 2nd input and later
22234 compressed signal to be merged with 2nd input:
22235
22236 ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
22237
22238 sidechaingate
22239 A sidechain gate acts like a normal (wideband) gate but has the ability
22240 to filter the detected signal before sending it to the gain reduction
22241 stage. Normally a gate uses the full range signal to detect a level
22242 above the threshold. For example: If you cut all lower frequencies
22243 from your sidechain signal the gate will decrease the volume of your
22244 track only if not enough highs appear. With this technique you are able
22245 to reduce the resonation of a natural drum or remove "rumbling" of
22246 muted strokes from a heavily distorted guitar. It needs two input
22247 streams and returns one output stream. First input stream will be
22248 processed depending on second stream signal.
22249
22250 The filter accepts the following options:
22251
22252 level_in
22253 Set input level before filtering. Default is 1. Allowed range is
22254 from 0.015625 to 64.
22255
22256 mode
22257 Set the mode of operation. Can be "upward" or "downward". Default
22258 is "downward". If set to "upward" mode, higher parts of signal will
22259 be amplified, expanding dynamic range in upward direction.
22260 Otherwise, in case of "downward" lower parts of signal will be
22261 reduced.
22262
22263 range
22264 Set the level of gain reduction when the signal is below the
22265 threshold. Default is 0.06125. Allowed range is from 0 to 1.
22266 Setting this to 0 disables reduction and then filter behaves like
22267 expander.
22268
22269 threshold
22270 If a signal rises above this level the gain reduction is released.
22271 Default is 0.125. Allowed range is from 0 to 1.
22272
22273 ratio
22274 Set a ratio about which the signal is reduced. Default is 2.
22275 Allowed range is from 1 to 9000.
22276
22277 attack
22278 Amount of milliseconds the signal has to rise above the threshold
22279 before gain reduction stops. Default is 20 milliseconds. Allowed
22280 range is from 0.01 to 9000.
22281
22282 release
22283 Amount of milliseconds the signal has to fall below the threshold
22284 before the reduction is increased again. Default is 250
22285 milliseconds. Allowed range is from 0.01 to 9000.
22286
22287 makeup
22288 Set amount of amplification of signal after processing. Default is
22289 1. Allowed range is from 1 to 64.
22290
22291 knee
22292 Curve the sharp knee around the threshold to enter gain reduction
22293 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
22294
22295 detection
22296 Choose if exact signal should be taken for detection or an RMS like
22297 one. Default is rms. Can be peak or rms.
22298
22299 link
22300 Choose if the average level between all channels or the louder
22301 channel affects the reduction. Default is average. Can be average
22302 or maximum.
22303
22304 level_sc
22305 Set sidechain gain. Default is 1. Range is from 0.015625 to 64.
22306
22307 Commands
22308
22309 This filter supports the all above options as commands.
22310
22311 silencedetect
22312 Detect silence in an audio stream.
22313
22314 This filter logs a message when it detects that the input audio volume
22315 is less or equal to a noise tolerance value for a duration greater or
22316 equal to the minimum detected noise duration.
22317
22318 The printed times and duration are expressed in seconds. The
22319 "lavfi.silence_start" or "lavfi.silence_start.X" metadata key is set on
22320 the first frame whose timestamp equals or exceeds the detection
22321 duration and it contains the timestamp of the first frame of the
22322 silence.
22323
22324 The "lavfi.silence_duration" or "lavfi.silence_duration.X" and
22325 "lavfi.silence_end" or "lavfi.silence_end.X" metadata keys are set on
22326 the first frame after the silence. If mono is enabled, and each channel
22327 is evaluated separately, the ".X" suffixed keys are used, and "X"
22328 corresponds to the channel number.
22329
22330 The filter accepts the following options:
22331
22332 noise, n
22333 Set noise tolerance. Can be specified in dB (in case "dB" is
22334 appended to the specified value) or amplitude ratio. Default is
22335 -60dB, or 0.001.
22336
22337 duration, d
22338 Set silence duration until notification (default is 2 seconds). See
22339 the Time duration section in the ffmpeg-utils(1) manual for the
22340 accepted syntax.
22341
22342 mono, m
22343 Process each channel separately, instead of combined. By default is
22344 disabled.
22345
22346 Examples
22347
22348 • Detect 5 seconds of silence with -50dB noise tolerance:
22349
22350 silencedetect=n=-50dB:d=5
22351
22352 • Complete example with ffmpeg to detect silence with 0.0001 noise
22353 tolerance in silence.mp3:
22354
22355 ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
22356
22357 silenceremove
22358 Remove silence from the beginning, middle or end of the audio.
22359
22360 The filter accepts the following options:
22361
22362 start_periods
22363 This value is used to indicate if audio should be trimmed at
22364 beginning of the audio. A value of zero indicates no silence should
22365 be trimmed from the beginning. When specifying a non-zero value, it
22366 trims audio up until it finds non-silence. Normally, when trimming
22367 silence from beginning of audio the start_periods will be 1 but it
22368 can be increased to higher values to trim all audio up to specific
22369 count of non-silence periods. Default value is 0.
22370
22371 start_duration
22372 Specify the amount of time that non-silence must be detected before
22373 it stops trimming audio. By increasing the duration, bursts of
22374 noises can be treated as silence and trimmed off. Default value is
22375 0.
22376
22377 start_threshold
22378 This indicates what sample value should be treated as silence. For
22379 digital audio, a value of 0 may be fine but for audio recorded from
22380 analog, you may wish to increase the value to account for
22381 background noise. Can be specified in dB (in case "dB" is appended
22382 to the specified value) or amplitude ratio. Default value is 0.
22383
22384 start_silence
22385 Specify max duration of silence at beginning that will be kept
22386 after trimming. Default is 0, which is equal to trimming all
22387 samples detected as silence.
22388
22389 start_mode
22390 Specify mode of detection of silence end in start of multi-channel
22391 audio. Can be any or all. Default is any. With any, any sample
22392 that is detected as non-silence will cause stopped trimming of
22393 silence. With all, only if all channels are detected as non-
22394 silence will cause stopped trimming of silence.
22395
22396 stop_periods
22397 Set the count for trimming silence from the end of audio. To
22398 remove silence from the middle of a file, specify a stop_periods
22399 that is negative. This value is then treated as a positive value
22400 and is used to indicate the effect should restart processing as
22401 specified by start_periods, making it suitable for removing periods
22402 of silence in the middle of the audio. Default value is 0.
22403
22404 stop_duration
22405 Specify a duration of silence that must exist before audio is not
22406 copied any more. By specifying a higher duration, silence that is
22407 wanted can be left in the audio. Default value is 0.
22408
22409 stop_threshold
22410 This is the same as start_threshold but for trimming silence from
22411 the end of audio. Can be specified in dB (in case "dB" is appended
22412 to the specified value) or amplitude ratio. Default value is 0.
22413
22414 stop_silence
22415 Specify max duration of silence at end that will be kept after
22416 trimming. Default is 0, which is equal to trimming all samples
22417 detected as silence.
22418
22419 stop_mode
22420 Specify mode of detection of silence start in end of multi-channel
22421 audio. Can be any or all. Default is any. With any, any sample
22422 that is detected as non-silence will cause stopped trimming of
22423 silence. With all, only if all channels are detected as non-
22424 silence will cause stopped trimming of silence.
22425
22426 detection
22427 Set how is silence detected. Can be "rms" or "peak". Second is
22428 faster and works better with digital silence which is exactly 0.
22429 Default value is "rms".
22430
22431 window
22432 Set duration in number of seconds used to calculate size of window
22433 in number of samples for detecting silence. Default value is 0.02.
22434 Allowed range is from 0 to 10.
22435
22436 Examples
22437
22438 • The following example shows how this filter can be used to start a
22439 recording that does not contain the delay at the start which
22440 usually occurs between pressing the record button and the start of
22441 the performance:
22442
22443 silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
22444
22445 • Trim all silence encountered from beginning to end where there is
22446 more than 1 second of silence in audio:
22447
22448 silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
22449
22450 • Trim all digital silence samples, using peak detection, from
22451 beginning to end where there is more than 0 samples of digital
22452 silence in audio and digital silence is detected in all channels at
22453 same positions in stream:
22454
22455 silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
22456
22457 sofalizer
22458 SOFAlizer uses head-related transfer functions (HRTFs) to create
22459 virtual loudspeakers around the user for binaural listening via
22460 headphones (audio formats up to 9 channels supported). The HRTFs are
22461 stored in SOFA files (see <http://www.sofacoustics.org/> for a
22462 database). SOFAlizer is developed at the Acoustics Research Institute
22463 (ARI) of the Austrian Academy of Sciences.
22464
22465 To enable compilation of this filter you need to configure FFmpeg with
22466 "--enable-libmysofa".
22467
22468 The filter accepts the following options:
22469
22470 sofa
22471 Set the SOFA file used for rendering.
22472
22473 gain
22474 Set gain applied to audio. Value is in dB. Default is 0.
22475
22476 rotation
22477 Set rotation of virtual loudspeakers in deg. Default is 0.
22478
22479 elevation
22480 Set elevation of virtual speakers in deg. Default is 0.
22481
22482 radius
22483 Set distance in meters between loudspeakers and the listener with
22484 near-field HRTFs. Default is 1.
22485
22486 type
22487 Set processing type. Can be time or freq. time is processing audio
22488 in time domain which is slow. freq is processing audio in
22489 frequency domain which is fast. Default is freq.
22490
22491 speakers
22492 Set custom positions of virtual loudspeakers. Syntax for this
22493 option is: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Each
22494 virtual loudspeaker is described with short channel name following
22495 with azimuth and elevation in degrees. Each virtual loudspeaker
22496 description is separated by '|'. For example to override front
22497 left and front right channel positions use: 'speakers=FL 45 15|FR
22498 345 15'. Descriptions with unrecognised channel names are ignored.
22499
22500 lfegain
22501 Set custom gain for LFE channels. Value is in dB. Default is 0.
22502
22503 framesize
22504 Set custom frame size in number of samples. Default is 1024.
22505 Allowed range is from 1024 to 96000. Only used if option type is
22506 set to freq.
22507
22508 normalize
22509 Should all IRs be normalized upon importing SOFA file. By default
22510 is enabled.
22511
22512 interpolate
22513 Should nearest IRs be interpolated with neighbor IRs if exact
22514 position does not match. By default is disabled.
22515
22516 minphase
22517 Minphase all IRs upon loading of SOFA file. By default is disabled.
22518
22519 anglestep
22520 Set neighbor search angle step. Only used if option interpolate is
22521 enabled.
22522
22523 radstep
22524 Set neighbor search radius step. Only used if option interpolate is
22525 enabled.
22526
22527 Examples
22528
22529 • Using ClubFritz6 sofa file:
22530
22531 sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
22532
22533 • Using ClubFritz12 sofa file and bigger radius with small rotation:
22534
22535 sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
22536
22537 • Similar as above but with custom speaker positions for front left,
22538 front right, back left and back right and also with custom gain:
22539
22540 "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
22541
22542 speechnorm
22543 Speech Normalizer.
22544
22545 This filter expands or compresses each half-cycle of audio samples
22546 (local set of samples all above or all below zero and between two
22547 nearest zero crossings) depending on threshold value, so audio reaches
22548 target peak value under conditions controlled by below options.
22549
22550 The filter accepts the following options:
22551
22552 peak, p
22553 Set the expansion target peak value. This specifies the highest
22554 allowed absolute amplitude level for the normalized audio input.
22555 Default value is 0.95. Allowed range is from 0.0 to 1.0.
22556
22557 expansion, e
22558 Set the maximum expansion factor. Allowed range is from 1.0 to
22559 50.0. Default value is 2.0. This option controls maximum local
22560 half-cycle of samples expansion. The maximum expansion would be
22561 such that local peak value reaches target peak value but never to
22562 surpass it and that ratio between new and previous peak value does
22563 not surpass this option value.
22564
22565 compression, c
22566 Set the maximum compression factor. Allowed range is from 1.0 to
22567 50.0. Default value is 2.0. This option controls maximum local
22568 half-cycle of samples compression. This option is used only if
22569 threshold option is set to value greater than 0.0, then in such
22570 cases when local peak is lower or same as value set by threshold
22571 all samples belonging to that peak's half-cycle will be compressed
22572 by current compression factor.
22573
22574 threshold, t
22575 Set the threshold value. Default value is 0.0. Allowed range is
22576 from 0.0 to 1.0. This option specifies which half-cycles of
22577 samples will be compressed and which will be expanded. Any half-
22578 cycle samples with their local peak value below or same as this
22579 option value will be compressed by current compression factor,
22580 otherwise, if greater than threshold value they will be expanded
22581 with expansion factor so that it could reach peak target value but
22582 never surpass it.
22583
22584 raise, r
22585 Set the expansion raising amount per each half-cycle of samples.
22586 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
22587 controls how fast expansion factor is raised per each new half-
22588 cycle until it reaches expansion value. Setting this options too
22589 high may lead to distortions.
22590
22591 fall, f
22592 Set the compression raising amount per each half-cycle of samples.
22593 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
22594 controls how fast compression factor is raised per each new half-
22595 cycle until it reaches compression value.
22596
22597 channels, h
22598 Specify which channels to filter, by default all available channels
22599 are filtered.
22600
22601 invert, i
22602 Enable inverted filtering, by default is disabled. This inverts
22603 interpretation of threshold option. When enabled any half-cycle of
22604 samples with their local peak value below or same as threshold
22605 option will be expanded otherwise it will be compressed.
22606
22607 link, l
22608 Link channels when calculating gain applied to each filtered
22609 channel sample, by default is disabled. When disabled each
22610 filtered channel gain calculation is independent, otherwise when
22611 this option is enabled the minimum of all possible gains for each
22612 filtered channel is used.
22613
22614 Commands
22615
22616 This filter supports the all above options as commands.
22617
22618 stereotools
22619 This filter has some handy utilities to manage stereo signals, for
22620 converting M/S stereo recordings to L/R signal while having control
22621 over the parameters or spreading the stereo image of master track.
22622
22623 The filter accepts the following options:
22624
22625 level_in
22626 Set input level before filtering for both channels. Defaults is 1.
22627 Allowed range is from 0.015625 to 64.
22628
22629 level_out
22630 Set output level after filtering for both channels. Defaults is 1.
22631 Allowed range is from 0.015625 to 64.
22632
22633 balance_in
22634 Set input balance between both channels. Default is 0. Allowed
22635 range is from -1 to 1.
22636
22637 balance_out
22638 Set output balance between both channels. Default is 0. Allowed
22639 range is from -1 to 1.
22640
22641 softclip
22642 Enable softclipping. Results in analog distortion instead of harsh
22643 digital 0dB clipping. Disabled by default.
22644
22645 mutel
22646 Mute the left channel. Disabled by default.
22647
22648 muter
22649 Mute the right channel. Disabled by default.
22650
22651 phasel
22652 Change the phase of the left channel. Disabled by default.
22653
22654 phaser
22655 Change the phase of the right channel. Disabled by default.
22656
22657 mode
22658 Set stereo mode. Available values are:
22659
22660 lr>lr
22661 Left/Right to Left/Right, this is default.
22662
22663 lr>ms
22664 Left/Right to Mid/Side.
22665
22666 ms>lr
22667 Mid/Side to Left/Right.
22668
22669 lr>ll
22670 Left/Right to Left/Left.
22671
22672 lr>rr
22673 Left/Right to Right/Right.
22674
22675 lr>l+r
22676 Left/Right to Left + Right.
22677
22678 lr>rl
22679 Left/Right to Right/Left.
22680
22681 ms>ll
22682 Mid/Side to Left/Left.
22683
22684 ms>rr
22685 Mid/Side to Right/Right.
22686
22687 ms>rl
22688 Mid/Side to Right/Left.
22689
22690 lr>l-r
22691 Left/Right to Left - Right.
22692
22693 slev
22694 Set level of side signal. Default is 1. Allowed range is from
22695 0.015625 to 64.
22696
22697 sbal
22698 Set balance of side signal. Default is 0. Allowed range is from -1
22699 to 1.
22700
22701 mlev
22702 Set level of the middle signal. Default is 1. Allowed range is
22703 from 0.015625 to 64.
22704
22705 mpan
22706 Set middle signal pan. Default is 0. Allowed range is from -1 to 1.
22707
22708 base
22709 Set stereo base between mono and inversed channels. Default is 0.
22710 Allowed range is from -1 to 1.
22711
22712 delay
22713 Set delay in milliseconds how much to delay left from right channel
22714 and vice versa. Default is 0. Allowed range is from -20 to 20.
22715
22716 sclevel
22717 Set S/C level. Default is 1. Allowed range is from 1 to 100.
22718
22719 phase
22720 Set the stereo phase in degrees. Default is 0. Allowed range is
22721 from 0 to 360.
22722
22723 bmode_in, bmode_out
22724 Set balance mode for balance_in/balance_out option.
22725
22726 Can be one of the following:
22727
22728 balance
22729 Classic balance mode. Attenuate one channel at time. Gain is
22730 raised up to 1.
22731
22732 amplitude
22733 Similar as classic mode above but gain is raised up to 2.
22734
22735 power
22736 Equal power distribution, from -6dB to +6dB range.
22737
22738 Commands
22739
22740 This filter supports the all above options as commands.
22741
22742 Examples
22743
22744 • Apply karaoke like effect:
22745
22746 stereotools=mlev=0.015625
22747
22748 • Convert M/S signal to L/R:
22749
22750 "stereotools=mode=ms>lr"
22751
22752 stereowiden
22753 This filter enhance the stereo effect by suppressing signal common to
22754 both channels and by delaying the signal of left into right and vice
22755 versa, thereby widening the stereo effect.
22756
22757 The filter accepts the following options:
22758
22759 delay
22760 Time in milliseconds of the delay of left signal into right and
22761 vice versa. Default is 20 milliseconds.
22762
22763 feedback
22764 Amount of gain in delayed signal into right and vice versa. Gives a
22765 delay effect of left signal in right output and vice versa which
22766 gives widening effect. Default is 0.3.
22767
22768 crossfeed
22769 Cross feed of left into right with inverted phase. This helps in
22770 suppressing the mono. If the value is 1 it will cancel all the
22771 signal common to both channels. Default is 0.3.
22772
22773 drymix
22774 Set level of input signal of original channel. Default is 0.8.
22775
22776 Commands
22777
22778 This filter supports the all above options except "delay" as commands.
22779
22780 superequalizer
22781 Apply 18 band equalizer.
22782
22783 The filter accepts the following options:
22784
22785 1b Set 65Hz band gain.
22786
22787 2b Set 92Hz band gain.
22788
22789 3b Set 131Hz band gain.
22790
22791 4b Set 185Hz band gain.
22792
22793 5b Set 262Hz band gain.
22794
22795 6b Set 370Hz band gain.
22796
22797 7b Set 523Hz band gain.
22798
22799 8b Set 740Hz band gain.
22800
22801 9b Set 1047Hz band gain.
22802
22803 10b Set 1480Hz band gain.
22804
22805 11b Set 2093Hz band gain.
22806
22807 12b Set 2960Hz band gain.
22808
22809 13b Set 4186Hz band gain.
22810
22811 14b Set 5920Hz band gain.
22812
22813 15b Set 8372Hz band gain.
22814
22815 16b Set 11840Hz band gain.
22816
22817 17b Set 16744Hz band gain.
22818
22819 18b Set 20000Hz band gain.
22820
22821 surround
22822 Apply audio surround upmix filter.
22823
22824 This filter allows to produce multichannel output from audio stream.
22825
22826 The filter accepts the following options:
22827
22828 chl_out
22829 Set output channel layout. By default, this is 5.1.
22830
22831 See the Channel Layout section in the ffmpeg-utils(1) manual for
22832 the required syntax.
22833
22834 chl_in
22835 Set input channel layout. By default, this is stereo.
22836
22837 See the Channel Layout section in the ffmpeg-utils(1) manual for
22838 the required syntax.
22839
22840 level_in
22841 Set input volume level. By default, this is 1.
22842
22843 level_out
22844 Set output volume level. By default, this is 1.
22845
22846 lfe Enable LFE channel output if output channel layout has it. By
22847 default, this is enabled.
22848
22849 lfe_low
22850 Set LFE low cut off frequency. By default, this is 128 Hz.
22851
22852 lfe_high
22853 Set LFE high cut off frequency. By default, this is 256 Hz.
22854
22855 lfe_mode
22856 Set LFE mode, can be add or sub. Default is add. In add mode, LFE
22857 channel is created from input audio and added to output. In sub
22858 mode, LFE channel is created from input audio and added to output
22859 but also all non-LFE output channels are subtracted with output LFE
22860 channel.
22861
22862 angle
22863 Set angle of stereo surround transform, Allowed range is from 0 to
22864 360. Default is 90.
22865
22866 fc_in
22867 Set front center input volume. By default, this is 1.
22868
22869 fc_out
22870 Set front center output volume. By default, this is 1.
22871
22872 fl_in
22873 Set front left input volume. By default, this is 1.
22874
22875 fl_out
22876 Set front left output volume. By default, this is 1.
22877
22878 fr_in
22879 Set front right input volume. By default, this is 1.
22880
22881 fr_out
22882 Set front right output volume. By default, this is 1.
22883
22884 sl_in
22885 Set side left input volume. By default, this is 1.
22886
22887 sl_out
22888 Set side left output volume. By default, this is 1.
22889
22890 sr_in
22891 Set side right input volume. By default, this is 1.
22892
22893 sr_out
22894 Set side right output volume. By default, this is 1.
22895
22896 bl_in
22897 Set back left input volume. By default, this is 1.
22898
22899 bl_out
22900 Set back left output volume. By default, this is 1.
22901
22902 br_in
22903 Set back right input volume. By default, this is 1.
22904
22905 br_out
22906 Set back right output volume. By default, this is 1.
22907
22908 bc_in
22909 Set back center input volume. By default, this is 1.
22910
22911 bc_out
22912 Set back center output volume. By default, this is 1.
22913
22914 lfe_in
22915 Set LFE input volume. By default, this is 1.
22916
22917 lfe_out
22918 Set LFE output volume. By default, this is 1.
22919
22920 allx
22921 Set spread usage of stereo image across X axis for all channels.
22922
22923 ally
22924 Set spread usage of stereo image across Y axis for all channels.
22925
22926 fcx, flx, frx, blx, brx, slx, srx, bcx
22927 Set spread usage of stereo image across X axis for each channel.
22928
22929 fcy, fly, fry, bly, bry, sly, sry, bcy
22930 Set spread usage of stereo image across Y axis for each channel.
22931
22932 win_size
22933 Set window size. Allowed range is from 1024 to 65536. Default size
22934 is 4096.
22935
22936 win_func
22937 Set window function.
22938
22939 It accepts the following values:
22940
22941 rect
22942 bartlett
22943 hann, hanning
22944 hamming
22945 blackman
22946 welch
22947 flattop
22948 bharris
22949 bnuttall
22950 bhann
22951 sine
22952 nuttall
22953 lanczos
22954 gauss
22955 tukey
22956 dolph
22957 cauchy
22958 parzen
22959 poisson
22960 bohman
22961
22962 Default is "hann".
22963
22964 overlap
22965 Set window overlap. If set to 1, the recommended overlap for
22966 selected window function will be picked. Default is 0.5.
22967
22968 treble, highshelf
22969 Boost or cut treble (upper) frequencies of the audio using a two-pole
22970 shelving filter with a response similar to that of a standard hi-fi's
22971 tone-controls. This is also known as shelving equalisation (EQ).
22972
22973 The filter accepts the following options:
22974
22975 gain, g
22976 Give the gain at whichever is the lower of ~22 kHz and the Nyquist
22977 frequency. Its useful range is about -20 (for a large cut) to +20
22978 (for a large boost). Beware of clipping when using a positive gain.
22979
22980 frequency, f
22981 Set the filter's central frequency and so can be used to extend or
22982 reduce the frequency range to be boosted or cut. The default value
22983 is 3000 Hz.
22984
22985 width_type, t
22986 Set method to specify band-width of filter.
22987
22988 h Hz
22989
22990 q Q-Factor
22991
22992 o octave
22993
22994 s slope
22995
22996 k kHz
22997
22998 width, w
22999 Determine how steep is the filter's shelf transition.
23000
23001 poles, p
23002 Set number of poles. Default is 2.
23003
23004 mix, m
23005 How much to use filtered signal in output. Default is 1. Range is
23006 between 0 and 1.
23007
23008 channels, c
23009 Specify which channels to filter, by default all available are
23010 filtered.
23011
23012 normalize, n
23013 Normalize biquad coefficients, by default is disabled. Enabling it
23014 will normalize magnitude response at DC to 0dB.
23015
23016 transform, a
23017 Set transform type of IIR filter.
23018
23019 di
23020 dii
23021 tdii
23022 latt
23023 svf
23024 precision, r
23025 Set precison of filtering.
23026
23027 auto
23028 Pick automatic sample format depending on surround filters.
23029
23030 s16 Always use signed 16-bit.
23031
23032 s32 Always use signed 32-bit.
23033
23034 f32 Always use float 32-bit.
23035
23036 f64 Always use float 64-bit.
23037
23038 Commands
23039
23040 This filter supports the following commands:
23041
23042 frequency, f
23043 Change treble frequency. Syntax for the command is : "frequency"
23044
23045 width_type, t
23046 Change treble width_type. Syntax for the command is : "width_type"
23047
23048 width, w
23049 Change treble width. Syntax for the command is : "width"
23050
23051 gain, g
23052 Change treble gain. Syntax for the command is : "gain"
23053
23054 mix, m
23055 Change treble mix. Syntax for the command is : "mix"
23056
23057 tremolo
23058 Sinusoidal amplitude modulation.
23059
23060 The filter accepts the following options:
23061
23062 f Modulation frequency in Hertz. Modulation frequencies in the
23063 subharmonic range (20 Hz or lower) will result in a tremolo effect.
23064 This filter may also be used as a ring modulator by specifying a
23065 modulation frequency higher than 20 Hz. Range is 0.1 - 20000.0.
23066 Default value is 5.0 Hz.
23067
23068 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
23069 value is 0.5.
23070
23071 vibrato
23072 Sinusoidal phase modulation.
23073
23074 The filter accepts the following options:
23075
23076 f Modulation frequency in Hertz. Range is 0.1 - 20000.0. Default
23077 value is 5.0 Hz.
23078
23079 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
23080 value is 0.5.
23081
23082 volume
23083 Adjust the input audio volume.
23084
23085 It accepts the following parameters:
23086
23087 volume
23088 Set audio volume expression.
23089
23090 Output values are clipped to the maximum value.
23091
23092 The output audio volume is given by the relation:
23093
23094 <output_volume> = <volume> * <input_volume>
23095
23096 The default value for volume is "1.0".
23097
23098 precision
23099 This parameter represents the mathematical precision.
23100
23101 It determines which input sample formats will be allowed, which
23102 affects the precision of the volume scaling.
23103
23104 fixed
23105 8-bit fixed-point; this limits input sample format to U8, S16,
23106 and S32.
23107
23108 float
23109 32-bit floating-point; this limits input sample format to FLT.
23110 (default)
23111
23112 double
23113 64-bit floating-point; this limits input sample format to DBL.
23114
23115 replaygain
23116 Choose the behaviour on encountering ReplayGain side data in input
23117 frames.
23118
23119 drop
23120 Remove ReplayGain side data, ignoring its contents (the
23121 default).
23122
23123 ignore
23124 Ignore ReplayGain side data, but leave it in the frame.
23125
23126 track
23127 Prefer the track gain, if present.
23128
23129 album
23130 Prefer the album gain, if present.
23131
23132 replaygain_preamp
23133 Pre-amplification gain in dB to apply to the selected replaygain
23134 gain.
23135
23136 Default value for replaygain_preamp is 0.0.
23137
23138 replaygain_noclip
23139 Prevent clipping by limiting the gain applied.
23140
23141 Default value for replaygain_noclip is 1.
23142
23143 eval
23144 Set when the volume expression is evaluated.
23145
23146 It accepts the following values:
23147
23148 once
23149 only evaluate expression once during the filter initialization,
23150 or when the volume command is sent
23151
23152 frame
23153 evaluate expression for each incoming frame
23154
23155 Default value is once.
23156
23157 The volume expression can contain the following parameters.
23158
23159 n frame number (starting at zero)
23160
23161 nb_channels
23162 number of channels
23163
23164 nb_consumed_samples
23165 number of samples consumed by the filter
23166
23167 nb_samples
23168 number of samples in the current frame
23169
23170 pos original frame position in the file
23171
23172 pts frame PTS
23173
23174 sample_rate
23175 sample rate
23176
23177 startpts
23178 PTS at start of stream
23179
23180 startt
23181 time at start of stream
23182
23183 t frame time
23184
23185 tb timestamp timebase
23186
23187 volume
23188 last set volume value
23189
23190 Note that when eval is set to once only the sample_rate and tb
23191 variables are available, all other variables will evaluate to NAN.
23192
23193 Commands
23194
23195 This filter supports the following commands:
23196
23197 volume
23198 Modify the volume expression. The command accepts the same syntax
23199 of the corresponding option.
23200
23201 If the specified expression is not valid, it is kept at its current
23202 value.
23203
23204 Examples
23205
23206 • Halve the input audio volume:
23207
23208 volume=volume=0.5
23209 volume=volume=1/2
23210 volume=volume=-6.0206dB
23211
23212 In all the above example the named key for volume can be omitted,
23213 for example like in:
23214
23215 volume=0.5
23216
23217 • Increase input audio power by 6 decibels using fixed-point
23218 precision:
23219
23220 volume=volume=6dB:precision=fixed
23221
23222 • Fade volume after time 10 with an annihilation period of 5 seconds:
23223
23224 volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
23225
23226 volumedetect
23227 Detect the volume of the input video.
23228
23229 The filter has no parameters. The input is not modified. Statistics
23230 about the volume will be printed in the log when the input stream end
23231 is reached.
23232
23233 In particular it will show the mean volume (root mean square), maximum
23234 volume (on a per-sample basis), and the beginning of a histogram of the
23235 registered volume values (from the maximum value to a cumulated 1/1000
23236 of the samples).
23237
23238 All volumes are in decibels relative to the maximum PCM value.
23239
23240 Examples
23241
23242 Here is an excerpt of the output:
23243
23244 [Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB
23245 [Parsed_volumedetect_0 0xa23120] max_volume: -4 dB
23246 [Parsed_volumedetect_0 0xa23120] histogram_4db: 6
23247 [Parsed_volumedetect_0 0xa23120] histogram_5db: 62
23248 [Parsed_volumedetect_0 0xa23120] histogram_6db: 286
23249 [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042
23250 [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551
23251 [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609
23252 [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
23253
23254 It means that:
23255
23256 • The mean square energy is approximately -27 dB, or 10^-2.7.
23257
23258 • The largest sample is at -4 dB, or more precisely between -4 dB and
23259 -5 dB.
23260
23261 • There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc.
23262
23263 In other words, raising the volume by +4 dB does not cause any
23264 clipping, raising it by +5 dB causes clipping for 6 samples, etc.
23265
23267 Below is a description of the currently available audio sources.
23268
23269 abuffer
23270 Buffer audio frames, and make them available to the filter chain.
23271
23272 This source is mainly intended for a programmatic use, in particular
23273 through the interface defined in libavfilter/buffersrc.h.
23274
23275 It accepts the following parameters:
23276
23277 time_base
23278 The timebase which will be used for timestamps of submitted frames.
23279 It must be either a floating-point number or in
23280 numerator/denominator form.
23281
23282 sample_rate
23283 The sample rate of the incoming audio buffers.
23284
23285 sample_fmt
23286 The sample format of the incoming audio buffers. Either a sample
23287 format name or its corresponding integer representation from the
23288 enum AVSampleFormat in libavutil/samplefmt.h
23289
23290 channel_layout
23291 The channel layout of the incoming audio buffers. Either a channel
23292 layout name from channel_layout_map in libavutil/channel_layout.c
23293 or its corresponding integer representation from the AV_CH_LAYOUT_*
23294 macros in libavutil/channel_layout.h
23295
23296 channels
23297 The number of channels of the incoming audio buffers. If both
23298 channels and channel_layout are specified, then they must be
23299 consistent.
23300
23301 Examples
23302
23303 abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
23304
23305 will instruct the source to accept planar 16bit signed stereo at
23306 44100Hz. Since the sample format with name "s16p" corresponds to the
23307 number 6 and the "stereo" channel layout corresponds to the value 0x3,
23308 this is equivalent to:
23309
23310 abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
23311
23312 aevalsrc
23313 Generate an audio signal specified by an expression.
23314
23315 This source accepts in input one or more expressions (one for each
23316 channel), which are evaluated and used to generate a corresponding
23317 audio signal.
23318
23319 This source accepts the following options:
23320
23321 exprs
23322 Set the '|'-separated expressions list for each separate channel.
23323 In case the channel_layout option is not specified, the selected
23324 channel layout depends on the number of provided expressions.
23325 Otherwise the last specified expression is applied to the remaining
23326 output channels.
23327
23328 channel_layout, c
23329 Set the channel layout. The number of channels in the specified
23330 layout must be equal to the number of specified expressions.
23331
23332 duration, d
23333 Set the minimum duration of the sourced audio. See the Time
23334 duration section in the ffmpeg-utils(1) manual for the accepted
23335 syntax. Note that the resulting duration may be greater than the
23336 specified duration, as the generated audio is always cut at the end
23337 of a complete frame.
23338
23339 If not specified, or the expressed duration is negative, the audio
23340 is supposed to be generated forever.
23341
23342 nb_samples, n
23343 Set the number of samples per channel per each output frame,
23344 default to 1024.
23345
23346 sample_rate, s
23347 Specify the sample rate, default to 44100.
23348
23349 Each expression in exprs can contain the following constants:
23350
23351 n number of the evaluated sample, starting from 0
23352
23353 t time of the evaluated sample expressed in seconds, starting from 0
23354
23355 s sample rate
23356
23357 Examples
23358
23359 • Generate silence:
23360
23361 aevalsrc=0
23362
23363 • Generate a sin signal with frequency of 440 Hz, set sample rate to
23364 8000 Hz:
23365
23366 aevalsrc="sin(440*2*PI*t):s=8000"
23367
23368 • Generate a two channels signal, specify the channel layout (Front
23369 Center + Back Center) explicitly:
23370
23371 aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
23372
23373 • Generate white noise:
23374
23375 aevalsrc="-2+random(0)"
23376
23377 • Generate an amplitude modulated signal:
23378
23379 aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
23380
23381 • Generate 2.5 Hz binaural beats on a 360 Hz carrier:
23382
23383 aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
23384
23385 afirsrc
23386 Generate a FIR coefficients using frequency sampling method.
23387
23388 The resulting stream can be used with afir filter for filtering the
23389 audio signal.
23390
23391 The filter accepts the following options:
23392
23393 taps, t
23394 Set number of filter coefficents in output audio stream. Default
23395 value is 1025.
23396
23397 frequency, f
23398 Set frequency points from where magnitude and phase are set. This
23399 must be in non decreasing order, and first element must be 0, while
23400 last element must be 1. Elements are separated by white spaces.
23401
23402 magnitude, m
23403 Set magnitude value for every frequency point set by frequency.
23404 Number of values must be same as number of frequency points.
23405 Values are separated by white spaces.
23406
23407 phase, p
23408 Set phase value for every frequency point set by frequency. Number
23409 of values must be same as number of frequency points. Values are
23410 separated by white spaces.
23411
23412 sample_rate, r
23413 Set sample rate, default is 44100.
23414
23415 nb_samples, n
23416 Set number of samples per each frame. Default is 1024.
23417
23418 win_func, w
23419 Set window function. Default is blackman.
23420
23421 anullsrc
23422 The null audio source, return unprocessed audio frames. It is mainly
23423 useful as a template and to be employed in analysis / debugging tools,
23424 or as the source for filters which ignore the input data (for example
23425 the sox synth filter).
23426
23427 This source accepts the following options:
23428
23429 channel_layout, cl
23430 Specifies the channel layout, and can be either an integer or a
23431 string representing a channel layout. The default value of
23432 channel_layout is "stereo".
23433
23434 Check the channel_layout_map definition in
23435 libavutil/channel_layout.c for the mapping between strings and
23436 channel layout values.
23437
23438 sample_rate, r
23439 Specifies the sample rate, and defaults to 44100.
23440
23441 nb_samples, n
23442 Set the number of samples per requested frames.
23443
23444 duration, d
23445 Set the duration of the sourced audio. See the Time duration
23446 section in the ffmpeg-utils(1) manual for the accepted syntax.
23447
23448 If not specified, or the expressed duration is negative, the audio
23449 is supposed to be generated forever.
23450
23451 Examples
23452
23453 • Set the sample rate to 48000 Hz and the channel layout to
23454 AV_CH_LAYOUT_MONO.
23455
23456 anullsrc=r=48000:cl=4
23457
23458 • Do the same operation with a more obvious syntax:
23459
23460 anullsrc=r=48000:cl=mono
23461
23462 All the parameters need to be explicitly defined.
23463
23464 flite
23465 Synthesize a voice utterance using the libflite library.
23466
23467 To enable compilation of this filter you need to configure FFmpeg with
23468 "--enable-libflite".
23469
23470 Note that versions of the flite library prior to 2.0 are not thread-
23471 safe.
23472
23473 The filter accepts the following options:
23474
23475 list_voices
23476 If set to 1, list the names of the available voices and exit
23477 immediately. Default value is 0.
23478
23479 nb_samples, n
23480 Set the maximum number of samples per frame. Default value is 512.
23481
23482 textfile
23483 Set the filename containing the text to speak.
23484
23485 text
23486 Set the text to speak.
23487
23488 voice, v
23489 Set the voice to use for the speech synthesis. Default value is
23490 "kal". See also the list_voices option.
23491
23492 Examples
23493
23494 • Read from file speech.txt, and synthesize the text using the
23495 standard flite voice:
23496
23497 flite=textfile=speech.txt
23498
23499 • Read the specified text selecting the "slt" voice:
23500
23501 flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
23502
23503 • Input text to ffmpeg:
23504
23505 ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
23506
23507 • Make ffplay speak the specified text, using "flite" and the "lavfi"
23508 device:
23509
23510 ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
23511
23512 For more information about libflite, check:
23513 <http://www.festvox.org/flite/>
23514
23515 anoisesrc
23516 Generate a noise audio signal.
23517
23518 The filter accepts the following options:
23519
23520 sample_rate, r
23521 Specify the sample rate. Default value is 48000 Hz.
23522
23523 amplitude, a
23524 Specify the amplitude (0.0 - 1.0) of the generated audio stream.
23525 Default value is 1.0.
23526
23527 duration, d
23528 Specify the duration of the generated audio stream. Not specifying
23529 this option results in noise with an infinite length.
23530
23531 color, colour, c
23532 Specify the color of noise. Available noise colors are white, pink,
23533 brown, blue, violet and velvet. Default color is white.
23534
23535 seed, s
23536 Specify a value used to seed the PRNG.
23537
23538 nb_samples, n
23539 Set the number of samples per each output frame, default is 1024.
23540
23541 Examples
23542
23543 • Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
23544 and an amplitude of 0.5:
23545
23546 anoisesrc=d=60:c=pink:r=44100:a=0.5
23547
23548 hilbert
23549 Generate odd-tap Hilbert transform FIR coefficients.
23550
23551 The resulting stream can be used with afir filter for phase-shifting
23552 the signal by 90 degrees.
23553
23554 This is used in many matrix coding schemes and for analytic signal
23555 generation. The process is often written as a multiplication by i (or
23556 j), the imaginary unit.
23557
23558 The filter accepts the following options:
23559
23560 sample_rate, s
23561 Set sample rate, default is 44100.
23562
23563 taps, t
23564 Set length of FIR filter, default is 22051.
23565
23566 nb_samples, n
23567 Set number of samples per each frame.
23568
23569 win_func, w
23570 Set window function to be used when generating FIR coefficients.
23571
23572 sinc
23573 Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
23574 band-reject FIR coefficients.
23575
23576 The resulting stream can be used with afir filter for filtering the
23577 audio signal.
23578
23579 The filter accepts the following options:
23580
23581 sample_rate, r
23582 Set sample rate, default is 44100.
23583
23584 nb_samples, n
23585 Set number of samples per each frame. Default is 1024.
23586
23587 hp Set high-pass frequency. Default is 0.
23588
23589 lp Set low-pass frequency. Default is 0. If high-pass frequency is
23590 lower than low-pass frequency and low-pass frequency is higher than
23591 0 then filter will create band-pass filter coefficients, otherwise
23592 band-reject filter coefficients.
23593
23594 phase
23595 Set filter phase response. Default is 50. Allowed range is from 0
23596 to 100.
23597
23598 beta
23599 Set Kaiser window beta.
23600
23601 att Set stop-band attenuation. Default is 120dB, allowed range is from
23602 40 to 180 dB.
23603
23604 round
23605 Enable rounding, by default is disabled.
23606
23607 hptaps
23608 Set number of taps for high-pass filter.
23609
23610 lptaps
23611 Set number of taps for low-pass filter.
23612
23613 sine
23614 Generate an audio signal made of a sine wave with amplitude 1/8.
23615
23616 The audio signal is bit-exact.
23617
23618 The filter accepts the following options:
23619
23620 frequency, f
23621 Set the carrier frequency. Default is 440 Hz.
23622
23623 beep_factor, b
23624 Enable a periodic beep every second with frequency beep_factor
23625 times the carrier frequency. Default is 0, meaning the beep is
23626 disabled.
23627
23628 sample_rate, r
23629 Specify the sample rate, default is 44100.
23630
23631 duration, d
23632 Specify the duration of the generated audio stream.
23633
23634 samples_per_frame
23635 Set the number of samples per output frame.
23636
23637 The expression can contain the following constants:
23638
23639 n The (sequential) number of the output audio frame, starting
23640 from 0.
23641
23642 pts The PTS (Presentation TimeStamp) of the output audio frame,
23643 expressed in TB units.
23644
23645 t The PTS of the output audio frame, expressed in seconds.
23646
23647 TB The timebase of the output audio frames.
23648
23649 Default is 1024.
23650
23651 Examples
23652
23653 • Generate a simple 440 Hz sine wave:
23654
23655 sine
23656
23657 • Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
23658 seconds:
23659
23660 sine=220:4:d=5
23661 sine=f=220:b=4:d=5
23662 sine=frequency=220:beep_factor=4:duration=5
23663
23664 • Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
23665 NTSC pattern:
23666
23667 sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
23668
23670 Below is a description of the currently available audio sinks.
23671
23672 abuffersink
23673 Buffer audio frames, and make them available to the end of filter
23674 chain.
23675
23676 This sink is mainly intended for programmatic use, in particular
23677 through the interface defined in libavfilter/buffersink.h or the
23678 options system.
23679
23680 It accepts a pointer to an AVABufferSinkContext structure, which
23681 defines the incoming buffers' formats, to be passed as the opaque
23682 parameter to "avfilter_init_filter" for initialization.
23683
23684 anullsink
23685 Null audio sink; do absolutely nothing with the input audio. It is
23686 mainly useful as a template and for use in analysis / debugging tools.
23687
23689 When you configure your FFmpeg build, you can disable any of the
23690 existing filters using "--disable-filters". The configure output will
23691 show the video filters included in your build.
23692
23693 Below is a description of the currently available video filters.
23694
23695 addroi
23696 Mark a region of interest in a video frame.
23697
23698 The frame data is passed through unchanged, but metadata is attached to
23699 the frame indicating regions of interest which can affect the behaviour
23700 of later encoding. Multiple regions can be marked by applying the
23701 filter multiple times.
23702
23703 x Region distance in pixels from the left edge of the frame.
23704
23705 y Region distance in pixels from the top edge of the frame.
23706
23707 w Region width in pixels.
23708
23709 h Region height in pixels.
23710
23711 The parameters x, y, w and h are expressions, and may contain the
23712 following variables:
23713
23714 iw Width of the input frame.
23715
23716 ih Height of the input frame.
23717
23718 qoffset
23719 Quantisation offset to apply within the region.
23720
23721 This must be a real value in the range -1 to +1. A value of zero
23722 indicates no quality change. A negative value asks for better
23723 quality (less quantisation), while a positive value asks for worse
23724 quality (greater quantisation).
23725
23726 The range is calibrated so that the extreme values indicate the
23727 largest possible offset - if the rest of the frame is encoded with
23728 the worst possible quality, an offset of -1 indicates that this
23729 region should be encoded with the best possible quality anyway.
23730 Intermediate values are then interpolated in some codec-dependent
23731 way.
23732
23733 For example, in 10-bit H.264 the quantisation parameter varies
23734 between -12 and 51. A typical qoffset value of -1/10 therefore
23735 indicates that this region should be encoded with a QP around one-
23736 tenth of the full range better than the rest of the frame. So, if
23737 most of the frame were to be encoded with a QP of around 30, this
23738 region would get a QP of around 24 (an offset of approximately
23739 -1/10 * (51 - -12) = -6.3). An extreme value of -1 would indicate
23740 that this region should be encoded with the best possible quality
23741 regardless of the treatment of the rest of the frame - that is,
23742 should be encoded at a QP of -12.
23743
23744 clear
23745 If set to true, remove any existing regions of interest marked on
23746 the frame before adding the new one.
23747
23748 Examples
23749
23750 • Mark the centre quarter of the frame as interesting.
23751
23752 addroi=iw/4:ih/4:iw/2:ih/2:-1/10
23753
23754 • Mark the 100-pixel-wide region on the left edge of the frame as
23755 very uninteresting (to be encoded at much lower quality than the
23756 rest of the frame).
23757
23758 addroi=0:0:100:ih:+1/5
23759
23760 alphaextract
23761 Extract the alpha component from the input as a grayscale video. This
23762 is especially useful with the alphamerge filter.
23763
23764 alphamerge
23765 Add or replace the alpha component of the primary input with the
23766 grayscale value of a second input. This is intended for use with
23767 alphaextract to allow the transmission or storage of frame sequences
23768 that have alpha in a format that doesn't support an alpha channel.
23769
23770 For example, to reconstruct full frames from a normal YUV-encoded video
23771 and a separate video created with alphaextract, you might use:
23772
23773 movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
23774
23775 amplify
23776 Amplify differences between current pixel and pixels of adjacent frames
23777 in same pixel location.
23778
23779 This filter accepts the following options:
23780
23781 radius
23782 Set frame radius. Default is 2. Allowed range is from 1 to 63. For
23783 example radius of 3 will instruct filter to calculate average of 7
23784 frames.
23785
23786 factor
23787 Set factor to amplify difference. Default is 2. Allowed range is
23788 from 0 to 65535.
23789
23790 threshold
23791 Set threshold for difference amplification. Any difference greater
23792 or equal to this value will not alter source pixel. Default is 10.
23793 Allowed range is from 0 to 65535.
23794
23795 tolerance
23796 Set tolerance for difference amplification. Any difference lower to
23797 this value will not alter source pixel. Default is 0. Allowed
23798 range is from 0 to 65535.
23799
23800 low Set lower limit for changing source pixel. Default is 65535.
23801 Allowed range is from 0 to 65535. This option controls maximum
23802 possible value that will decrease source pixel value.
23803
23804 high
23805 Set high limit for changing source pixel. Default is 65535. Allowed
23806 range is from 0 to 65535. This option controls maximum possible
23807 value that will increase source pixel value.
23808
23809 planes
23810 Set which planes to filter. Default is all. Allowed range is from 0
23811 to 15.
23812
23813 Commands
23814
23815 This filter supports the following commands that corresponds to option
23816 of same name:
23817
23818 factor
23819 threshold
23820 tolerance
23821 low
23822 high
23823 planes
23824
23825 ass
23826 Same as the subtitles filter, except that it doesn't require libavcodec
23827 and libavformat to work. On the other hand, it is limited to ASS
23828 (Advanced Substation Alpha) subtitles files.
23829
23830 This filter accepts the following option in addition to the common
23831 options from the subtitles filter:
23832
23833 shaping
23834 Set the shaping engine
23835
23836 Available values are:
23837
23838 auto
23839 The default libass shaping engine, which is the best available.
23840
23841 simple
23842 Fast, font-agnostic shaper that can do only substitutions
23843
23844 complex
23845 Slower shaper using OpenType for substitutions and positioning
23846
23847 The default is "auto".
23848
23849 atadenoise
23850 Apply an Adaptive Temporal Averaging Denoiser to the video input.
23851
23852 The filter accepts the following options:
23853
23854 0a Set threshold A for 1st plane. Default is 0.02. Valid range is 0
23855 to 0.3.
23856
23857 0b Set threshold B for 1st plane. Default is 0.04. Valid range is 0
23858 to 5.
23859
23860 1a Set threshold A for 2nd plane. Default is 0.02. Valid range is 0
23861 to 0.3.
23862
23863 1b Set threshold B for 2nd plane. Default is 0.04. Valid range is 0
23864 to 5.
23865
23866 2a Set threshold A for 3rd plane. Default is 0.02. Valid range is 0
23867 to 0.3.
23868
23869 2b Set threshold B for 3rd plane. Default is 0.04. Valid range is 0
23870 to 5.
23871
23872 Threshold A is designed to react on abrupt changes in the input
23873 signal and threshold B is designed to react on continuous changes
23874 in the input signal.
23875
23876 s Set number of frames filter will use for averaging. Default is 9.
23877 Must be odd number in range [5, 129].
23878
23879 p Set what planes of frame filter will use for averaging. Default is
23880 all.
23881
23882 a Set what variant of algorithm filter will use for averaging.
23883 Default is "p" parallel. Alternatively can be set to "s" serial.
23884
23885 Parallel can be faster then serial, while other way around is never
23886 true. Parallel will abort early on first change being greater then
23887 thresholds, while serial will continue processing other side of
23888 frames if they are equal or below thresholds.
23889
23890 0s
23891 1s
23892 2s Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
23893 Valid range is from 0 to 32767. This options controls weight for
23894 each pixel in radius defined by size. Default value means every
23895 pixel have same weight. Setting this option to 0 effectively
23896 disables filtering.
23897
23898 Commands
23899
23900 This filter supports same commands as options except option "s". The
23901 command accepts the same syntax of the corresponding option.
23902
23903 avgblur
23904 Apply average blur filter.
23905
23906 The filter accepts the following options:
23907
23908 sizeX
23909 Set horizontal radius size.
23910
23911 planes
23912 Set which planes to filter. By default all planes are filtered.
23913
23914 sizeY
23915 Set vertical radius size, if zero it will be same as "sizeX".
23916 Default is 0.
23917
23918 Commands
23919
23920 This filter supports same commands as options. The command accepts the
23921 same syntax of the corresponding option.
23922
23923 If the specified expression is not valid, it is kept at its current
23924 value.
23925
23926 bbox
23927 Compute the bounding box for the non-black pixels in the input frame
23928 luminance plane.
23929
23930 This filter computes the bounding box containing all the pixels with a
23931 luminance value greater than the minimum allowed value. The parameters
23932 describing the bounding box are printed on the filter log.
23933
23934 The filter accepts the following option:
23935
23936 min_val
23937 Set the minimal luminance value. Default is 16.
23938
23939 Commands
23940
23941 This filter supports the all above options as commands.
23942
23943 bilateral
23944 Apply bilateral filter, spatial smoothing while preserving edges.
23945
23946 The filter accepts the following options:
23947
23948 sigmaS
23949 Set sigma of gaussian function to calculate spatial weight.
23950 Allowed range is 0 to 512. Default is 0.1.
23951
23952 sigmaR
23953 Set sigma of gaussian function to calculate range weight. Allowed
23954 range is 0 to 1. Default is 0.1.
23955
23956 planes
23957 Set planes to filter. Default is first only.
23958
23959 Commands
23960
23961 This filter supports the all above options as commands.
23962
23963 bitplanenoise
23964 Show and measure bit plane noise.
23965
23966 The filter accepts the following options:
23967
23968 bitplane
23969 Set which plane to analyze. Default is 1.
23970
23971 filter
23972 Filter out noisy pixels from "bitplane" set above. Default is
23973 disabled.
23974
23975 blackdetect
23976 Detect video intervals that are (almost) completely black. Can be
23977 useful to detect chapter transitions, commercials, or invalid
23978 recordings.
23979
23980 The filter outputs its detection analysis to both the log as well as
23981 frame metadata. If a black segment of at least the specified minimum
23982 duration is found, a line with the start and end timestamps as well as
23983 duration is printed to the log with level "info". In addition, a log
23984 line with level "debug" is printed per frame showing the black amount
23985 detected for that frame.
23986
23987 The filter also attaches metadata to the first frame of a black segment
23988 with key "lavfi.black_start" and to the first frame after the black
23989 segment ends with key "lavfi.black_end". The value is the frame's
23990 timestamp. This metadata is added regardless of the minimum duration
23991 specified.
23992
23993 The filter accepts the following options:
23994
23995 black_min_duration, d
23996 Set the minimum detected black duration expressed in seconds. It
23997 must be a non-negative floating point number.
23998
23999 Default value is 2.0.
24000
24001 picture_black_ratio_th, pic_th
24002 Set the threshold for considering a picture "black". Express the
24003 minimum value for the ratio:
24004
24005 <nb_black_pixels> / <nb_pixels>
24006
24007 for which a picture is considered black. Default value is 0.98.
24008
24009 pixel_black_th, pix_th
24010 Set the threshold for considering a pixel "black".
24011
24012 The threshold expresses the maximum pixel luminance value for which
24013 a pixel is considered "black". The provided value is scaled
24014 according to the following equation:
24015
24016 <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
24017
24018 luminance_range_size and luminance_minimum_value depend on the
24019 input video format, the range is [0-255] for YUV full-range formats
24020 and [16-235] for YUV non full-range formats.
24021
24022 Default value is 0.10.
24023
24024 The following example sets the maximum pixel threshold to the minimum
24025 value, and detects only black intervals of 2 or more seconds:
24026
24027 blackdetect=d=2:pix_th=0.00
24028
24029 blackframe
24030 Detect frames that are (almost) completely black. Can be useful to
24031 detect chapter transitions or commercials. Output lines consist of the
24032 frame number of the detected frame, the percentage of blackness, the
24033 position in the file if known or -1 and the timestamp in seconds.
24034
24035 In order to display the output lines, you need to set the loglevel at
24036 least to the AV_LOG_INFO value.
24037
24038 This filter exports frame metadata "lavfi.blackframe.pblack". The
24039 value represents the percentage of pixels in the picture that are below
24040 the threshold value.
24041
24042 It accepts the following parameters:
24043
24044 amount
24045 The percentage of the pixels that have to be below the threshold;
24046 it defaults to 98.
24047
24048 threshold, thresh
24049 The threshold below which a pixel value is considered black; it
24050 defaults to 32.
24051
24052 blend
24053 Blend two video frames into each other.
24054
24055 The "blend" filter takes two input streams and outputs one stream, the
24056 first input is the "top" layer and second input is "bottom" layer. By
24057 default, the output terminates when the longest input terminates.
24058
24059 The "tblend" (time blend) filter takes two consecutive frames from one
24060 single stream, and outputs the result obtained by blending the new
24061 frame on top of the old frame.
24062
24063 A description of the accepted options follows.
24064
24065 c0_mode
24066 c1_mode
24067 c2_mode
24068 c3_mode
24069 all_mode
24070 Set blend mode for specific pixel component or all pixel components
24071 in case of all_mode. Default value is "normal".
24072
24073 Available values for component modes are:
24074
24075 addition
24076 and
24077 average
24078 bleach
24079 burn
24080 darken
24081 difference
24082 divide
24083 dodge
24084 exclusion
24085 extremity
24086 freeze
24087 geometric
24088 glow
24089 grainextract
24090 grainmerge
24091 hardlight
24092 hardmix
24093 hardoverlay
24094 harmonic
24095 heat
24096 interpolate
24097 lighten
24098 linearlight
24099 multiply
24100 multiply128
24101 negation
24102 normal
24103 or
24104 overlay
24105 phoenix
24106 pinlight
24107 reflect
24108 screen
24109 softdifference
24110 softlight
24111 stain
24112 subtract
24113 vividlight
24114 xor
24115 c0_opacity
24116 c1_opacity
24117 c2_opacity
24118 c3_opacity
24119 all_opacity
24120 Set blend opacity for specific pixel component or all pixel
24121 components in case of all_opacity. Only used in combination with
24122 pixel component blend modes.
24123
24124 c0_expr
24125 c1_expr
24126 c2_expr
24127 c3_expr
24128 all_expr
24129 Set blend expression for specific pixel component or all pixel
24130 components in case of all_expr. Note that related mode options will
24131 be ignored if those are set.
24132
24133 The expressions can use the following variables:
24134
24135 N The sequential number of the filtered frame, starting from 0.
24136
24137 X
24138 Y the coordinates of the current sample
24139
24140 W
24141 H the width and height of currently filtered plane
24142
24143 SW
24144 SH Width and height scale for the plane being filtered. It is the
24145 ratio between the dimensions of the current plane to the luma
24146 plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
24147 luma plane and "0.5,0.5" for the chroma planes.
24148
24149 T Time of the current frame, expressed in seconds.
24150
24151 TOP, A
24152 Value of pixel component at current location for first video
24153 frame (top layer).
24154
24155 BOTTOM, B
24156 Value of pixel component at current location for second video
24157 frame (bottom layer).
24158
24159 The "blend" filter also supports the framesync options.
24160
24161 Examples
24162
24163 • Apply transition from bottom layer to top layer in first 10
24164 seconds:
24165
24166 blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
24167
24168 • Apply linear horizontal transition from top layer to bottom layer:
24169
24170 blend=all_expr='A*(X/W)+B*(1-X/W)'
24171
24172 • Apply 1x1 checkerboard effect:
24173
24174 blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
24175
24176 • Apply uncover left effect:
24177
24178 blend=all_expr='if(gte(N*SW+X,W),A,B)'
24179
24180 • Apply uncover down effect:
24181
24182 blend=all_expr='if(gte(Y-N*SH,0),A,B)'
24183
24184 • Apply uncover up-left effect:
24185
24186 blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
24187
24188 • Split diagonally video and shows top and bottom layer on each side:
24189
24190 blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
24191
24192 • Display differences between the current and the previous frame:
24193
24194 tblend=all_mode=grainextract
24195
24196 Commands
24197
24198 This filter supports same commands as options.
24199
24200 bm3d
24201 Denoise frames using Block-Matching 3D algorithm.
24202
24203 The filter accepts the following options.
24204
24205 sigma
24206 Set denoising strength. Default value is 1. Allowed range is from
24207 0 to 999.9. The denoising algorithm is very sensitive to sigma, so
24208 adjust it according to the source.
24209
24210 block
24211 Set local patch size. This sets dimensions in 2D.
24212
24213 bstep
24214 Set sliding step for processing blocks. Default value is 4.
24215 Allowed range is from 1 to 64. Smaller values allows processing
24216 more reference blocks and is slower.
24217
24218 group
24219 Set maximal number of similar blocks for 3rd dimension. Default
24220 value is 1. When set to 1, no block matching is done. Larger
24221 values allows more blocks in single group. Allowed range is from 1
24222 to 256.
24223
24224 range
24225 Set radius for search block matching. Default is 9. Allowed range
24226 is from 1 to INT32_MAX.
24227
24228 mstep
24229 Set step between two search locations for block matching. Default
24230 is 1. Allowed range is from 1 to 64. Smaller is slower.
24231
24232 thmse
24233 Set threshold of mean square error for block matching. Valid range
24234 is 0 to INT32_MAX.
24235
24236 hdthr
24237 Set thresholding parameter for hard thresholding in 3D transformed
24238 domain. Larger values results in stronger hard-thresholding
24239 filtering in frequency domain.
24240
24241 estim
24242 Set filtering estimation mode. Can be "basic" or "final". Default
24243 is "basic".
24244
24245 ref If enabled, filter will use 2nd stream for block matching. Default
24246 is disabled for "basic" value of estim option, and always enabled
24247 if value of estim is "final".
24248
24249 planes
24250 Set planes to filter. Default is all available except alpha.
24251
24252 Examples
24253
24254 • Basic filtering with bm3d:
24255
24256 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
24257
24258 • Same as above, but filtering only luma:
24259
24260 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
24261
24262 • Same as above, but with both estimation modes:
24263
24264 split[a][b],[a]bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
24265
24266 • Same as above, but prefilter with nlmeans filter instead:
24267
24268 split[a][b],[a]nlmeans=s=3:r=7:p=3[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
24269
24270 boxblur
24271 Apply a boxblur algorithm to the input video.
24272
24273 It accepts the following parameters:
24274
24275 luma_radius, lr
24276 luma_power, lp
24277 chroma_radius, cr
24278 chroma_power, cp
24279 alpha_radius, ar
24280 alpha_power, ap
24281
24282 A description of the accepted options follows.
24283
24284 luma_radius, lr
24285 chroma_radius, cr
24286 alpha_radius, ar
24287 Set an expression for the box radius in pixels used for blurring
24288 the corresponding input plane.
24289
24290 The radius value must be a non-negative number, and must not be
24291 greater than the value of the expression "min(w,h)/2" for the luma
24292 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
24293
24294 Default value for luma_radius is "2". If not specified,
24295 chroma_radius and alpha_radius default to the corresponding value
24296 set for luma_radius.
24297
24298 The expressions can contain the following constants:
24299
24300 w
24301 h The input width and height in pixels.
24302
24303 cw
24304 ch The input chroma image width and height in pixels.
24305
24306 hsub
24307 vsub
24308 The horizontal and vertical chroma subsample values. For
24309 example, for the pixel format "yuv422p", hsub is 2 and vsub is
24310 1.
24311
24312 luma_power, lp
24313 chroma_power, cp
24314 alpha_power, ap
24315 Specify how many times the boxblur filter is applied to the
24316 corresponding plane.
24317
24318 Default value for luma_power is 2. If not specified, chroma_power
24319 and alpha_power default to the corresponding value set for
24320 luma_power.
24321
24322 A value of 0 will disable the effect.
24323
24324 Examples
24325
24326 • Apply a boxblur filter with the luma, chroma, and alpha radii set
24327 to 2:
24328
24329 boxblur=luma_radius=2:luma_power=1
24330 boxblur=2:1
24331
24332 • Set the luma radius to 2, and alpha and chroma radius to 0:
24333
24334 boxblur=2:1:cr=0:ar=0
24335
24336 • Set the luma and chroma radii to a fraction of the video dimension:
24337
24338 boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
24339
24340 bwdif
24341 Deinterlace the input video ("bwdif" stands for "Bob Weaver
24342 Deinterlacing Filter").
24343
24344 Motion adaptive deinterlacing based on yadif with the use of w3fdif and
24345 cubic interpolation algorithms. It accepts the following parameters:
24346
24347 mode
24348 The interlacing mode to adopt. It accepts one of the following
24349 values:
24350
24351 0, send_frame
24352 Output one frame for each frame.
24353
24354 1, send_field
24355 Output one frame for each field.
24356
24357 The default value is "send_field".
24358
24359 parity
24360 The picture field parity assumed for the input interlaced video. It
24361 accepts one of the following values:
24362
24363 0, tff
24364 Assume the top field is first.
24365
24366 1, bff
24367 Assume the bottom field is first.
24368
24369 -1, auto
24370 Enable automatic detection of field parity.
24371
24372 The default value is "auto". If the interlacing is unknown or the
24373 decoder does not export this information, top field first will be
24374 assumed.
24375
24376 deint
24377 Specify which frames to deinterlace. Accepts one of the following
24378 values:
24379
24380 0, all
24381 Deinterlace all frames.
24382
24383 1, interlaced
24384 Only deinterlace frames marked as interlaced.
24385
24386 The default value is "all".
24387
24388 cas
24389 Apply Contrast Adaptive Sharpen filter to video stream.
24390
24391 The filter accepts the following options:
24392
24393 strength
24394 Set the sharpening strength. Default value is 0.
24395
24396 planes
24397 Set planes to filter. Default value is to filter all planes except
24398 alpha plane.
24399
24400 Commands
24401
24402 This filter supports same commands as options.
24403
24404 chromahold
24405 Remove all color information for all colors except for certain one.
24406
24407 The filter accepts the following options:
24408
24409 color
24410 The color which will not be replaced with neutral chroma.
24411
24412 similarity
24413 Similarity percentage with the above color. 0.01 matches only the
24414 exact key color, while 1.0 matches everything.
24415
24416 blend
24417 Blend percentage. 0.0 makes pixels either fully gray, or not gray
24418 at all. Higher values result in more preserved color.
24419
24420 yuv Signals that the color passed is already in YUV instead of RGB.
24421
24422 Literal colors like "green" or "red" don't make sense with this
24423 enabled anymore. This can be used to pass exact YUV values as
24424 hexadecimal numbers.
24425
24426 Commands
24427
24428 This filter supports same commands as options. The command accepts the
24429 same syntax of the corresponding option.
24430
24431 If the specified expression is not valid, it is kept at its current
24432 value.
24433
24434 chromakey
24435 YUV colorspace color/chroma keying.
24436
24437 The filter accepts the following options:
24438
24439 color
24440 The color which will be replaced with transparency.
24441
24442 similarity
24443 Similarity percentage with the key color.
24444
24445 0.01 matches only the exact key color, while 1.0 matches
24446 everything.
24447
24448 blend
24449 Blend percentage.
24450
24451 0.0 makes pixels either fully transparent, or not transparent at
24452 all.
24453
24454 Higher values result in semi-transparent pixels, with a higher
24455 transparency the more similar the pixels color is to the key color.
24456
24457 yuv Signals that the color passed is already in YUV instead of RGB.
24458
24459 Literal colors like "green" or "red" don't make sense with this
24460 enabled anymore. This can be used to pass exact YUV values as
24461 hexadecimal numbers.
24462
24463 Commands
24464
24465 This filter supports same commands as options. The command accepts the
24466 same syntax of the corresponding option.
24467
24468 If the specified expression is not valid, it is kept at its current
24469 value.
24470
24471 Examples
24472
24473 • Make every green pixel in the input image transparent:
24474
24475 ffmpeg -i input.png -vf chromakey=green out.png
24476
24477 • Overlay a greenscreen-video on top of a static black background.
24478
24479 ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv
24480
24481 chromanr
24482 Reduce chrominance noise.
24483
24484 The filter accepts the following options:
24485
24486 thres
24487 Set threshold for averaging chrominance values. Sum of absolute
24488 difference of Y, U and V pixel components of current pixel and
24489 neighbour pixels lower than this threshold will be used in
24490 averaging. Luma component is left unchanged and is copied to
24491 output. Default value is 30. Allowed range is from 1 to 200.
24492
24493 sizew
24494 Set horizontal radius of rectangle used for averaging. Allowed
24495 range is from 1 to 100. Default value is 5.
24496
24497 sizeh
24498 Set vertical radius of rectangle used for averaging. Allowed range
24499 is from 1 to 100. Default value is 5.
24500
24501 stepw
24502 Set horizontal step when averaging. Default value is 1. Allowed
24503 range is from 1 to 50. Mostly useful to speed-up filtering.
24504
24505 steph
24506 Set vertical step when averaging. Default value is 1. Allowed
24507 range is from 1 to 50. Mostly useful to speed-up filtering.
24508
24509 threy
24510 Set Y threshold for averaging chrominance values. Set finer
24511 control for max allowed difference between Y components of current
24512 pixel and neigbour pixels. Default value is 200. Allowed range is
24513 from 1 to 200.
24514
24515 threu
24516 Set U threshold for averaging chrominance values. Set finer
24517 control for max allowed difference between U components of current
24518 pixel and neigbour pixels. Default value is 200. Allowed range is
24519 from 1 to 200.
24520
24521 threv
24522 Set V threshold for averaging chrominance values. Set finer
24523 control for max allowed difference between V components of current
24524 pixel and neigbour pixels. Default value is 200. Allowed range is
24525 from 1 to 200.
24526
24527 distance
24528 Set distance type used in calculations.
24529
24530 manhattan
24531 Absolute difference.
24532
24533 euclidean
24534 Difference squared.
24535
24536 Default distance type is manhattan.
24537
24538 Commands
24539
24540 This filter supports same commands as options. The command accepts the
24541 same syntax of the corresponding option.
24542
24543 chromashift
24544 Shift chroma pixels horizontally and/or vertically.
24545
24546 The filter accepts the following options:
24547
24548 cbh Set amount to shift chroma-blue horizontally.
24549
24550 cbv Set amount to shift chroma-blue vertically.
24551
24552 crh Set amount to shift chroma-red horizontally.
24553
24554 crv Set amount to shift chroma-red vertically.
24555
24556 edge
24557 Set edge mode, can be smear, default, or warp.
24558
24559 Commands
24560
24561 This filter supports the all above options as commands.
24562
24563 ciescope
24564 Display CIE color diagram with pixels overlaid onto it.
24565
24566 The filter accepts the following options:
24567
24568 system
24569 Set color system.
24570
24571 ntsc, 470m
24572 ebu, 470bg
24573 smpte
24574 240m
24575 apple
24576 widergb
24577 cie1931
24578 rec709, hdtv
24579 uhdtv, rec2020
24580 dcip3
24581 cie Set CIE system.
24582
24583 xyy
24584 ucs
24585 luv
24586 gamuts
24587 Set what gamuts to draw.
24588
24589 See "system" option for available values.
24590
24591 size, s
24592 Set ciescope size, by default set to 512.
24593
24594 intensity, i
24595 Set intensity used to map input pixel values to CIE diagram.
24596
24597 contrast
24598 Set contrast used to draw tongue colors that are out of active
24599 color system gamut.
24600
24601 corrgamma
24602 Correct gamma displayed on scope, by default enabled.
24603
24604 showwhite
24605 Show white point on CIE diagram, by default disabled.
24606
24607 gamma
24608 Set input gamma. Used only with XYZ input color space.
24609
24610 codecview
24611 Visualize information exported by some codecs.
24612
24613 Some codecs can export information through frames using side-data or
24614 other means. For example, some MPEG based codecs export motion vectors
24615 through the export_mvs flag in the codec flags2 option.
24616
24617 The filter accepts the following option:
24618
24619 block
24620 Display block partition structure using the luma plane.
24621
24622 mv Set motion vectors to visualize.
24623
24624 Available flags for mv are:
24625
24626 pf forward predicted MVs of P-frames
24627
24628 bf forward predicted MVs of B-frames
24629
24630 bb backward predicted MVs of B-frames
24631
24632 qp Display quantization parameters using the chroma planes.
24633
24634 mv_type, mvt
24635 Set motion vectors type to visualize. Includes MVs from all frames
24636 unless specified by frame_type option.
24637
24638 Available flags for mv_type are:
24639
24640 fp forward predicted MVs
24641
24642 bp backward predicted MVs
24643
24644 frame_type, ft
24645 Set frame type to visualize motion vectors of.
24646
24647 Available flags for frame_type are:
24648
24649 if intra-coded frames (I-frames)
24650
24651 pf predicted frames (P-frames)
24652
24653 bf bi-directionally predicted frames (B-frames)
24654
24655 Examples
24656
24657 • Visualize forward predicted MVs of all frames using ffplay:
24658
24659 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
24660
24661 • Visualize multi-directionals MVs of P and B-Frames using ffplay:
24662
24663 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
24664
24665 colorbalance
24666 Modify intensity of primary colors (red, green and blue) of input
24667 frames.
24668
24669 The filter allows an input frame to be adjusted in the shadows,
24670 midtones or highlights regions for the red-cyan, green-magenta or blue-
24671 yellow balance.
24672
24673 A positive adjustment value shifts the balance towards the primary
24674 color, a negative value towards the complementary color.
24675
24676 The filter accepts the following options:
24677
24678 rs
24679 gs
24680 bs Adjust red, green and blue shadows (darkest pixels).
24681
24682 rm
24683 gm
24684 bm Adjust red, green and blue midtones (medium pixels).
24685
24686 rh
24687 gh
24688 bh Adjust red, green and blue highlights (brightest pixels).
24689
24690 Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
24691
24692 pl Preserve lightness when changing color balance. Default is
24693 disabled.
24694
24695 Examples
24696
24697 • Add red color cast to shadows:
24698
24699 colorbalance=rs=.3
24700
24701 Commands
24702
24703 This filter supports the all above options as commands.
24704
24705 colorcontrast
24706 Adjust color contrast between RGB components.
24707
24708 The filter accepts the following options:
24709
24710 rc Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
24711 -1.0 to 1.0.
24712
24713 gm Set the green-magenta contrast. Defaults is 0.0. Allowed range is
24714 from -1.0 to 1.0.
24715
24716 by Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
24717 from -1.0 to 1.0.
24718
24719 rcw
24720 gmw
24721 byw Set the weight of each "rc", "gm", "by" option value. Default value
24722 is 0.0. Allowed range is from 0.0 to 1.0. If all weights are 0.0
24723 filtering is disabled.
24724
24725 pl Set the amount of preserving lightness. Default value is 0.0.
24726 Allowed range is from 0.0 to 1.0.
24727
24728 Commands
24729
24730 This filter supports the all above options as commands.
24731
24732 colorcorrect
24733 Adjust color white balance selectively for blacks and whites. This
24734 filter operates in YUV colorspace.
24735
24736 The filter accepts the following options:
24737
24738 rl Set the red shadow spot. Allowed range is from -1.0 to 1.0.
24739 Default value is 0.
24740
24741 bl Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
24742 Default value is 0.
24743
24744 rh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
24745 Default value is 0.
24746
24747 bh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
24748 Default value is 0.
24749
24750 saturation
24751 Set the amount of saturation. Allowed range is from -3.0 to 3.0.
24752 Default value is 1.
24753
24754 analyze
24755 If set to anything other than "manual" it will analyze every frame
24756 and use derived parameters for filtering output frame.
24757
24758 Possible values are:
24759
24760 manual
24761 average
24762 minmax
24763 median
24764
24765 Default value is "manual".
24766
24767 Commands
24768
24769 This filter supports the all above options as commands.
24770
24771 colorchannelmixer
24772 Adjust video input frames by re-mixing color channels.
24773
24774 This filter modifies a color channel by adding the values associated to
24775 the other channels of the same pixels. For example if the value to
24776 modify is red, the output value will be:
24777
24778 <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
24779
24780 The filter accepts the following options:
24781
24782 rr
24783 rg
24784 rb
24785 ra Adjust contribution of input red, green, blue and alpha channels
24786 for output red channel. Default is 1 for rr, and 0 for rg, rb and
24787 ra.
24788
24789 gr
24790 gg
24791 gb
24792 ga Adjust contribution of input red, green, blue and alpha channels
24793 for output green channel. Default is 1 for gg, and 0 for gr, gb
24794 and ga.
24795
24796 br
24797 bg
24798 bb
24799 ba Adjust contribution of input red, green, blue and alpha channels
24800 for output blue channel. Default is 1 for bb, and 0 for br, bg and
24801 ba.
24802
24803 ar
24804 ag
24805 ab
24806 aa Adjust contribution of input red, green, blue and alpha channels
24807 for output alpha channel. Default is 1 for aa, and 0 for ar, ag
24808 and ab.
24809
24810 Allowed ranges for options are "[-2.0, 2.0]".
24811
24812 pc Set preserve color mode. The accepted values are:
24813
24814 none
24815 Disable color preserving, this is default.
24816
24817 lum Preserve luminance.
24818
24819 max Preserve max value of RGB triplet.
24820
24821 avg Preserve average value of RGB triplet.
24822
24823 sum Preserve sum value of RGB triplet.
24824
24825 nrm Preserve normalized value of RGB triplet.
24826
24827 pwr Preserve power value of RGB triplet.
24828
24829 pa Set the preserve color amount when changing colors. Allowed range
24830 is from "[0.0, 1.0]". Default is 0.0, thus disabled.
24831
24832 Examples
24833
24834 • Convert source to grayscale:
24835
24836 colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
24837
24838 • Simulate sepia tones:
24839
24840 colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
24841
24842 Commands
24843
24844 This filter supports the all above options as commands.
24845
24846 colorize
24847 Overlay a solid color on the video stream.
24848
24849 The filter accepts the following options:
24850
24851 hue Set the color hue. Allowed range is from 0 to 360. Default value
24852 is 0.
24853
24854 saturation
24855 Set the color saturation. Allowed range is from 0 to 1. Default
24856 value is 0.5.
24857
24858 lightness
24859 Set the color lightness. Allowed range is from 0 to 1. Default
24860 value is 0.5.
24861
24862 mix Set the mix of source lightness. By default is set to 1.0. Allowed
24863 range is from 0.0 to 1.0.
24864
24865 Commands
24866
24867 This filter supports the all above options as commands.
24868
24869 colorkey
24870 RGB colorspace color keying. This filter operates on 8-bit RGB format
24871 frames by setting the alpha component of each pixel which falls within
24872 the similarity radius of the key color to 0. The alpha value for pixels
24873 outside the similarity radius depends on the value of the blend option.
24874
24875 The filter accepts the following options:
24876
24877 color
24878 Set the color for which alpha will be set to 0 (full transparency).
24879 See "Color" section in the ffmpeg-utils manual. Default is
24880 "black".
24881
24882 similarity
24883 Set the radius from the key color within which other colors also
24884 have full transparency. The computed distance is related to the
24885 unit fractional distance in 3D space between the RGB values of the
24886 key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
24887 within a very small radius around the exact key color, while 1.0
24888 matches everything. Default is 0.01.
24889
24890 blend
24891 Set how the alpha value for pixels that fall outside the similarity
24892 radius is computed. 0.0 makes pixels either fully transparent or
24893 fully opaque. Higher values result in semi-transparent pixels,
24894 with greater transparency the more similar the pixel color is to
24895 the key color. Range is 0.0 to 1.0. Default is 0.0.
24896
24897 Examples
24898
24899 • Make every green pixel in the input image transparent:
24900
24901 ffmpeg -i input.png -vf colorkey=green out.png
24902
24903 • Overlay a greenscreen-video on top of a static background image.
24904
24905 ffmpeg -i background.png -i video.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.flv
24906
24907 Commands
24908
24909 This filter supports same commands as options. The command accepts the
24910 same syntax of the corresponding option.
24911
24912 If the specified expression is not valid, it is kept at its current
24913 value.
24914
24915 colorhold
24916 Remove all color information for all RGB colors except for certain one.
24917
24918 The filter accepts the following options:
24919
24920 color
24921 The color which will not be replaced with neutral gray.
24922
24923 similarity
24924 Similarity percentage with the above color. 0.01 matches only the
24925 exact key color, while 1.0 matches everything.
24926
24927 blend
24928 Blend percentage. 0.0 makes pixels fully gray. Higher values
24929 result in more preserved color.
24930
24931 Commands
24932
24933 This filter supports same commands as options. The command accepts the
24934 same syntax of the corresponding option.
24935
24936 If the specified expression is not valid, it is kept at its current
24937 value.
24938
24939 colorlevels
24940 Adjust video input frames using levels.
24941
24942 The filter accepts the following options:
24943
24944 rimin
24945 gimin
24946 bimin
24947 aimin
24948 Adjust red, green, blue and alpha input black point. Allowed
24949 ranges for options are "[-1.0, 1.0]". Defaults are 0.
24950
24951 rimax
24952 gimax
24953 bimax
24954 aimax
24955 Adjust red, green, blue and alpha input white point. Allowed
24956 ranges for options are "[-1.0, 1.0]". Defaults are 1.
24957
24958 Input levels are used to lighten highlights (bright tones), darken
24959 shadows (dark tones), change the balance of bright and dark tones.
24960
24961 romin
24962 gomin
24963 bomin
24964 aomin
24965 Adjust red, green, blue and alpha output black point. Allowed
24966 ranges for options are "[0, 1.0]". Defaults are 0.
24967
24968 romax
24969 gomax
24970 bomax
24971 aomax
24972 Adjust red, green, blue and alpha output white point. Allowed
24973 ranges for options are "[0, 1.0]". Defaults are 1.
24974
24975 Output levels allows manual selection of a constrained output level
24976 range.
24977
24978 preserve
24979 Set preserve color mode. The accepted values are:
24980
24981 none
24982 Disable color preserving, this is default.
24983
24984 lum Preserve luminance.
24985
24986 max Preserve max value of RGB triplet.
24987
24988 avg Preserve average value of RGB triplet.
24989
24990 sum Preserve sum value of RGB triplet.
24991
24992 nrm Preserve normalized value of RGB triplet.
24993
24994 pwr Preserve power value of RGB triplet.
24995
24996 Examples
24997
24998 • Make video output darker:
24999
25000 colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
25001
25002 • Increase contrast:
25003
25004 colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
25005
25006 • Make video output lighter:
25007
25008 colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
25009
25010 • Increase brightness:
25011
25012 colorlevels=romin=0.5:gomin=0.5:bomin=0.5
25013
25014 Commands
25015
25016 This filter supports the all above options as commands.
25017
25018 colormatrix
25019 Convert color matrix.
25020
25021 The filter accepts the following options:
25022
25023 src
25024 dst Specify the source and destination color matrix. Both values must
25025 be specified.
25026
25027 The accepted values are:
25028
25029 bt709
25030 BT.709
25031
25032 fcc FCC
25033
25034 bt601
25035 BT.601
25036
25037 bt470
25038 BT.470
25039
25040 bt470bg
25041 BT.470BG
25042
25043 smpte170m
25044 SMPTE-170M
25045
25046 smpte240m
25047 SMPTE-240M
25048
25049 bt2020
25050 BT.2020
25051
25052 For example to convert from BT.601 to SMPTE-240M, use the command:
25053
25054 colormatrix=bt601:smpte240m
25055
25056 colorspace
25057 Convert colorspace, transfer characteristics or color primaries. Input
25058 video needs to have an even size.
25059
25060 The filter accepts the following options:
25061
25062 all Specify all color properties at once.
25063
25064 The accepted values are:
25065
25066 bt470m
25067 BT.470M
25068
25069 bt470bg
25070 BT.470BG
25071
25072 bt601-6-525
25073 BT.601-6 525
25074
25075 bt601-6-625
25076 BT.601-6 625
25077
25078 bt709
25079 BT.709
25080
25081 smpte170m
25082 SMPTE-170M
25083
25084 smpte240m
25085 SMPTE-240M
25086
25087 bt2020
25088 BT.2020
25089
25090 space
25091 Specify output colorspace.
25092
25093 The accepted values are:
25094
25095 bt709
25096 BT.709
25097
25098 fcc FCC
25099
25100 bt470bg
25101 BT.470BG or BT.601-6 625
25102
25103 smpte170m
25104 SMPTE-170M or BT.601-6 525
25105
25106 smpte240m
25107 SMPTE-240M
25108
25109 ycgco
25110 YCgCo
25111
25112 bt2020ncl
25113 BT.2020 with non-constant luminance
25114
25115 trc Specify output transfer characteristics.
25116
25117 The accepted values are:
25118
25119 bt709
25120 BT.709
25121
25122 bt470m
25123 BT.470M
25124
25125 bt470bg
25126 BT.470BG
25127
25128 gamma22
25129 Constant gamma of 2.2
25130
25131 gamma28
25132 Constant gamma of 2.8
25133
25134 smpte170m
25135 SMPTE-170M, BT.601-6 625 or BT.601-6 525
25136
25137 smpte240m
25138 SMPTE-240M
25139
25140 srgb
25141 SRGB
25142
25143 iec61966-2-1
25144 iec61966-2-1
25145
25146 iec61966-2-4
25147 iec61966-2-4
25148
25149 xvycc
25150 xvycc
25151
25152 bt2020-10
25153 BT.2020 for 10-bits content
25154
25155 bt2020-12
25156 BT.2020 for 12-bits content
25157
25158 primaries
25159 Specify output color primaries.
25160
25161 The accepted values are:
25162
25163 bt709
25164 BT.709
25165
25166 bt470m
25167 BT.470M
25168
25169 bt470bg
25170 BT.470BG or BT.601-6 625
25171
25172 smpte170m
25173 SMPTE-170M or BT.601-6 525
25174
25175 smpte240m
25176 SMPTE-240M
25177
25178 film
25179 film
25180
25181 smpte431
25182 SMPTE-431
25183
25184 smpte432
25185 SMPTE-432
25186
25187 bt2020
25188 BT.2020
25189
25190 jedec-p22
25191 JEDEC P22 phosphors
25192
25193 range
25194 Specify output color range.
25195
25196 The accepted values are:
25197
25198 tv TV (restricted) range
25199
25200 mpeg
25201 MPEG (restricted) range
25202
25203 pc PC (full) range
25204
25205 jpeg
25206 JPEG (full) range
25207
25208 format
25209 Specify output color format.
25210
25211 The accepted values are:
25212
25213 yuv420p
25214 YUV 4:2:0 planar 8-bits
25215
25216 yuv420p10
25217 YUV 4:2:0 planar 10-bits
25218
25219 yuv420p12
25220 YUV 4:2:0 planar 12-bits
25221
25222 yuv422p
25223 YUV 4:2:2 planar 8-bits
25224
25225 yuv422p10
25226 YUV 4:2:2 planar 10-bits
25227
25228 yuv422p12
25229 YUV 4:2:2 planar 12-bits
25230
25231 yuv444p
25232 YUV 4:4:4 planar 8-bits
25233
25234 yuv444p10
25235 YUV 4:4:4 planar 10-bits
25236
25237 yuv444p12
25238 YUV 4:4:4 planar 12-bits
25239
25240 fast
25241 Do a fast conversion, which skips gamma/primary correction. This
25242 will take significantly less CPU, but will be mathematically
25243 incorrect. To get output compatible with that produced by the
25244 colormatrix filter, use fast=1.
25245
25246 dither
25247 Specify dithering mode.
25248
25249 The accepted values are:
25250
25251 none
25252 No dithering
25253
25254 fsb Floyd-Steinberg dithering
25255
25256 wpadapt
25257 Whitepoint adaptation mode.
25258
25259 The accepted values are:
25260
25261 bradford
25262 Bradford whitepoint adaptation
25263
25264 vonkries
25265 von Kries whitepoint adaptation
25266
25267 identity
25268 identity whitepoint adaptation (i.e. no whitepoint adaptation)
25269
25270 iall
25271 Override all input properties at once. Same accepted values as all.
25272
25273 ispace
25274 Override input colorspace. Same accepted values as space.
25275
25276 iprimaries
25277 Override input color primaries. Same accepted values as primaries.
25278
25279 itrc
25280 Override input transfer characteristics. Same accepted values as
25281 trc.
25282
25283 irange
25284 Override input color range. Same accepted values as range.
25285
25286 The filter converts the transfer characteristics, color space and color
25287 primaries to the specified user values. The output value, if not
25288 specified, is set to a default value based on the "all" property. If
25289 that property is also not specified, the filter will log an error. The
25290 output color range and format default to the same value as the input
25291 color range and format. The input transfer characteristics, color
25292 space, color primaries and color range should be set on the input data.
25293 If any of these are missing, the filter will log an error and no
25294 conversion will take place.
25295
25296 For example to convert the input to SMPTE-240M, use the command:
25297
25298 colorspace=smpte240m
25299
25300 colortemperature
25301 Adjust color temperature in video to simulate variations in ambient
25302 color temperature.
25303
25304 The filter accepts the following options:
25305
25306 temperature
25307 Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
25308 Default value is 6500 K.
25309
25310 mix Set mixing with filtered output. Allowed range is from 0 to 1.
25311 Default value is 1.
25312
25313 pl Set the amount of preserving lightness. Allowed range is from 0 to
25314 1. Default value is 0.
25315
25316 Commands
25317
25318 This filter supports same commands as options.
25319
25320 convolution
25321 Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
25322 elements.
25323
25324 The filter accepts the following options:
25325
25326 0m
25327 1m
25328 2m
25329 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
25330 signed integers in square mode, and from 1 to 49 odd number of
25331 signed integers in row mode.
25332
25333 0rdiv
25334 1rdiv
25335 2rdiv
25336 3rdiv
25337 Set multiplier for calculated value for each plane. If unset or 0,
25338 it will be sum of all matrix elements.
25339
25340 0bias
25341 1bias
25342 2bias
25343 3bias
25344 Set bias for each plane. This value is added to the result of the
25345 multiplication. Useful for making the overall image brighter or
25346 darker. Default is 0.0.
25347
25348 0mode
25349 1mode
25350 2mode
25351 3mode
25352 Set matrix mode for each plane. Can be square, row or column.
25353 Default is square.
25354
25355 Commands
25356
25357 This filter supports the all above options as commands.
25358
25359 Examples
25360
25361 • Apply sharpen:
25362
25363 convolution="0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0"
25364
25365 • Apply blur:
25366
25367 convolution="1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9"
25368
25369 • Apply edge enhance:
25370
25371 convolution="0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128"
25372
25373 • Apply edge detect:
25374
25375 convolution="0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128"
25376
25377 • Apply laplacian edge detector which includes diagonals:
25378
25379 convolution="1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0"
25380
25381 • Apply emboss:
25382
25383 convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2"
25384
25385 convolve
25386 Apply 2D convolution of video stream in frequency domain using second
25387 stream as impulse.
25388
25389 The filter accepts the following options:
25390
25391 planes
25392 Set which planes to process.
25393
25394 impulse
25395 Set which impulse video frames will be processed, can be first or
25396 all. Default is all.
25397
25398 The "convolve" filter also supports the framesync options.
25399
25400 copy
25401 Copy the input video source unchanged to the output. This is mainly
25402 useful for testing purposes.
25403
25404 coreimage
25405 Video filtering on GPU using Apple's CoreImage API on OSX.
25406
25407 Hardware acceleration is based on an OpenGL context. Usually, this
25408 means it is processed by video hardware. However, software-based OpenGL
25409 implementations exist which means there is no guarantee for hardware
25410 processing. It depends on the respective OSX.
25411
25412 There are many filters and image generators provided by Apple that come
25413 with a large variety of options. The filter has to be referenced by its
25414 name along with its options.
25415
25416 The coreimage filter accepts the following options:
25417
25418 list_filters
25419 List all available filters and generators along with all their
25420 respective options as well as possible minimum and maximum values
25421 along with the default values.
25422
25423 list_filters=true
25424
25425 filter
25426 Specify all filters by their respective name and options. Use
25427 list_filters to determine all valid filter names and options.
25428 Numerical options are specified by a float value and are
25429 automatically clamped to their respective value range. Vector and
25430 color options have to be specified by a list of space separated
25431 float values. Character escaping has to be done. A special option
25432 name "default" is available to use default options for a filter.
25433
25434 It is required to specify either "default" or at least one of the
25435 filter options. All omitted options are used with their default
25436 values. The syntax of the filter string is as follows:
25437
25438 filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
25439
25440 output_rect
25441 Specify a rectangle where the output of the filter chain is copied
25442 into the input image. It is given by a list of space separated
25443 float values:
25444
25445 output_rect=x\ y\ width\ height
25446
25447 If not given, the output rectangle equals the dimensions of the
25448 input image. The output rectangle is automatically cropped at the
25449 borders of the input image. Negative values are valid for each
25450 component.
25451
25452 output_rect=25\ 25\ 100\ 100
25453
25454 Several filters can be chained for successive processing without GPU-
25455 HOST transfers allowing for fast processing of complex filter chains.
25456 Currently, only filters with zero (generators) or exactly one (filters)
25457 input image and one output image are supported. Also, transition
25458 filters are not yet usable as intended.
25459
25460 Some filters generate output images with additional padding depending
25461 on the respective filter kernel. The padding is automatically removed
25462 to ensure the filter output has the same size as the input image.
25463
25464 For image generators, the size of the output image is determined by the
25465 previous output image of the filter chain or the input image of the
25466 whole filterchain, respectively. The generators do not use the pixel
25467 information of this image to generate their output. However, the
25468 generated output is blended onto this image, resulting in partial or
25469 complete coverage of the output image.
25470
25471 The coreimagesrc video source can be used for generating input images
25472 which are directly fed into the filter chain. By using it, providing
25473 input images by another video source or an input video is not required.
25474
25475 Examples
25476
25477 • List all filters available:
25478
25479 coreimage=list_filters=true
25480
25481 • Use the CIBoxBlur filter with default options to blur an image:
25482
25483 coreimage=filter=CIBoxBlur@default
25484
25485 • Use a filter chain with CISepiaTone at default values and
25486 CIVignetteEffect with its center at 100x100 and a radius of 50
25487 pixels:
25488
25489 coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
25490
25491 • Use nullsrc and CIQRCodeGenerator to create a QR code for the
25492 FFmpeg homepage, given as complete and escaped command-line for
25493 Apple's standard bash shell:
25494
25495 ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
25496
25497 cover_rect
25498 Cover a rectangular object
25499
25500 It accepts the following options:
25501
25502 cover
25503 Filepath of the optional cover image, needs to be in yuv420.
25504
25505 mode
25506 Set covering mode.
25507
25508 It accepts the following values:
25509
25510 cover
25511 cover it by the supplied image
25512
25513 blur
25514 cover it by interpolating the surrounding pixels
25515
25516 Default value is blur.
25517
25518 Examples
25519
25520 • Cover a rectangular object by the supplied image of a given video
25521 using ffmpeg:
25522
25523 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
25524
25525 crop
25526 Crop the input video to given dimensions.
25527
25528 It accepts the following parameters:
25529
25530 w, out_w
25531 The width of the output video. It defaults to "iw". This
25532 expression is evaluated only once during the filter configuration,
25533 or when the w or out_w command is sent.
25534
25535 h, out_h
25536 The height of the output video. It defaults to "ih". This
25537 expression is evaluated only once during the filter configuration,
25538 or when the h or out_h command is sent.
25539
25540 x The horizontal position, in the input video, of the left edge of
25541 the output video. It defaults to "(in_w-out_w)/2". This expression
25542 is evaluated per-frame.
25543
25544 y The vertical position, in the input video, of the top edge of the
25545 output video. It defaults to "(in_h-out_h)/2". This expression is
25546 evaluated per-frame.
25547
25548 keep_aspect
25549 If set to 1 will force the output display aspect ratio to be the
25550 same of the input, by changing the output sample aspect ratio. It
25551 defaults to 0.
25552
25553 exact
25554 Enable exact cropping. If enabled, subsampled videos will be
25555 cropped at exact width/height/x/y as specified and will not be
25556 rounded to nearest smaller value. It defaults to 0.
25557
25558 The out_w, out_h, x, y parameters are expressions containing the
25559 following constants:
25560
25561 x
25562 y The computed values for x and y. They are evaluated for each new
25563 frame.
25564
25565 in_w
25566 in_h
25567 The input width and height.
25568
25569 iw
25570 ih These are the same as in_w and in_h.
25571
25572 out_w
25573 out_h
25574 The output (cropped) width and height.
25575
25576 ow
25577 oh These are the same as out_w and out_h.
25578
25579 a same as iw / ih
25580
25581 sar input sample aspect ratio
25582
25583 dar input display aspect ratio, it is the same as (iw / ih) * sar
25584
25585 hsub
25586 vsub
25587 horizontal and vertical chroma subsample values. For example for
25588 the pixel format "yuv422p" hsub is 2 and vsub is 1.
25589
25590 n The number of the input frame, starting from 0.
25591
25592 pos the position in the file of the input frame, NAN if unknown
25593
25594 t The timestamp expressed in seconds. It's NAN if the input timestamp
25595 is unknown.
25596
25597 The expression for out_w may depend on the value of out_h, and the
25598 expression for out_h may depend on out_w, but they cannot depend on x
25599 and y, as x and y are evaluated after out_w and out_h.
25600
25601 The x and y parameters specify the expressions for the position of the
25602 top-left corner of the output (non-cropped) area. They are evaluated
25603 for each frame. If the evaluated value is not valid, it is approximated
25604 to the nearest valid value.
25605
25606 The expression for x may depend on y, and the expression for y may
25607 depend on x.
25608
25609 Examples
25610
25611 • Crop area with size 100x100 at position (12,34).
25612
25613 crop=100:100:12:34
25614
25615 Using named options, the example above becomes:
25616
25617 crop=w=100:h=100:x=12:y=34
25618
25619 • Crop the central input area with size 100x100:
25620
25621 crop=100:100
25622
25623 • Crop the central input area with size 2/3 of the input video:
25624
25625 crop=2/3*in_w:2/3*in_h
25626
25627 • Crop the input video central square:
25628
25629 crop=out_w=in_h
25630 crop=in_h
25631
25632 • Delimit the rectangle with the top-left corner placed at position
25633 100:100 and the right-bottom corner corresponding to the right-
25634 bottom corner of the input image.
25635
25636 crop=in_w-100:in_h-100:100:100
25637
25638 • Crop 10 pixels from the left and right borders, and 20 pixels from
25639 the top and bottom borders
25640
25641 crop=in_w-2*10:in_h-2*20
25642
25643 • Keep only the bottom right quarter of the input image:
25644
25645 crop=in_w/2:in_h/2:in_w/2:in_h/2
25646
25647 • Crop height for getting Greek harmony:
25648
25649 crop=in_w:1/PHI*in_w
25650
25651 • Apply trembling effect:
25652
25653 crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
25654
25655 • Apply erratic camera effect depending on timestamp:
25656
25657 crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
25658
25659 • Set x depending on the value of y:
25660
25661 crop=in_w/2:in_h/2:y:10+10*sin(n/10)
25662
25663 Commands
25664
25665 This filter supports the following commands:
25666
25667 w, out_w
25668 h, out_h
25669 x
25670 y Set width/height of the output video and the horizontal/vertical
25671 position in the input video. The command accepts the same syntax
25672 of the corresponding option.
25673
25674 If the specified expression is not valid, it is kept at its current
25675 value.
25676
25677 cropdetect
25678 Auto-detect the crop size.
25679
25680 It calculates the necessary cropping parameters and prints the
25681 recommended parameters via the logging system. The detected dimensions
25682 correspond to the non-black area of the input video.
25683
25684 It accepts the following parameters:
25685
25686 limit
25687 Set higher black value threshold, which can be optionally specified
25688 from nothing (0) to everything (255 for 8-bit based formats). An
25689 intensity value greater to the set value is considered non-black.
25690 It defaults to 24. You can also specify a value between 0.0 and
25691 1.0 which will be scaled depending on the bitdepth of the pixel
25692 format.
25693
25694 round
25695 The value which the width/height should be divisible by. It
25696 defaults to 16. The offset is automatically adjusted to center the
25697 video. Use 2 to get only even dimensions (needed for 4:2:2 video).
25698 16 is best when encoding to most video codecs.
25699
25700 skip
25701 Set the number of initial frames for which evaluation is skipped.
25702 Default is 2. Range is 0 to INT_MAX.
25703
25704 reset_count, reset
25705 Set the counter that determines after how many frames cropdetect
25706 will reset the previously detected largest video area and start
25707 over to detect the current optimal crop area. Default value is 0.
25708
25709 This can be useful when channel logos distort the video area. 0
25710 indicates 'never reset', and returns the largest area encountered
25711 during playback.
25712
25713 cue
25714 Delay video filtering until a given wallclock timestamp. The filter
25715 first passes on preroll amount of frames, then it buffers at most
25716 buffer amount of frames and waits for the cue. After reaching the cue
25717 it forwards the buffered frames and also any subsequent frames coming
25718 in its input.
25719
25720 The filter can be used synchronize the output of multiple ffmpeg
25721 processes for realtime output devices like decklink. By putting the
25722 delay in the filtering chain and pre-buffering frames the process can
25723 pass on data to output almost immediately after the target wallclock
25724 timestamp is reached.
25725
25726 Perfect frame accuracy cannot be guaranteed, but the result is good
25727 enough for some use cases.
25728
25729 cue The cue timestamp expressed in a UNIX timestamp in microseconds.
25730 Default is 0.
25731
25732 preroll
25733 The duration of content to pass on as preroll expressed in seconds.
25734 Default is 0.
25735
25736 buffer
25737 The maximum duration of content to buffer before waiting for the
25738 cue expressed in seconds. Default is 0.
25739
25740 curves
25741 Apply color adjustments using curves.
25742
25743 This filter is similar to the Adobe Photoshop and GIMP curves tools.
25744 Each component (red, green and blue) has its values defined by N key
25745 points tied from each other using a smooth curve. The x-axis represents
25746 the pixel values from the input frame, and the y-axis the new pixel
25747 values to be set for the output frame.
25748
25749 By default, a component curve is defined by the two points (0;0) and
25750 (1;1). This creates a straight line where each original pixel value is
25751 "adjusted" to its own value, which means no change to the image.
25752
25753 The filter allows you to redefine these two points and add some more. A
25754 new curve (using a natural cubic spline interpolation) will be define
25755 to pass smoothly through all these new coordinates. The new defined
25756 points needs to be strictly increasing over the x-axis, and their x and
25757 y values must be in the [0;1] interval. If the computed curves
25758 happened to go outside the vector spaces, the values will be clipped
25759 accordingly.
25760
25761 The filter accepts the following options:
25762
25763 preset
25764 Select one of the available color presets. This option can be used
25765 in addition to the r, g, b parameters; in this case, the later
25766 options takes priority on the preset values. Available presets
25767 are:
25768
25769 none
25770 color_negative
25771 cross_process
25772 darker
25773 increase_contrast
25774 lighter
25775 linear_contrast
25776 medium_contrast
25777 negative
25778 strong_contrast
25779 vintage
25780
25781 Default is "none".
25782
25783 master, m
25784 Set the master key points. These points will define a second pass
25785 mapping. It is sometimes called a "luminance" or "value" mapping.
25786 It can be used with r, g, b or all since it acts like a post-
25787 processing LUT.
25788
25789 red, r
25790 Set the key points for the red component.
25791
25792 green, g
25793 Set the key points for the green component.
25794
25795 blue, b
25796 Set the key points for the blue component.
25797
25798 all Set the key points for all components (not including master). Can
25799 be used in addition to the other key points component options. In
25800 this case, the unset component(s) will fallback on this all
25801 setting.
25802
25803 psfile
25804 Specify a Photoshop curves file (".acv") to import the settings
25805 from.
25806
25807 plot
25808 Save Gnuplot script of the curves in specified file.
25809
25810 To avoid some filtergraph syntax conflicts, each key points list need
25811 to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
25812
25813 Commands
25814
25815 This filter supports same commands as options.
25816
25817 Examples
25818
25819 • Increase slightly the middle level of blue:
25820
25821 curves=blue='0/0 0.5/0.58 1/1'
25822
25823 • Vintage effect:
25824
25825 curves=r='0/0.11 .42/.51 1/0.95':g='0/0 0.50/0.48 1/1':b='0/0.22 .49/.44 1/0.8'
25826
25827 Here we obtain the following coordinates for each components:
25828
25829 red "(0;0.11) (0.42;0.51) (1;0.95)"
25830
25831 green
25832 "(0;0) (0.50;0.48) (1;1)"
25833
25834 blue
25835 "(0;0.22) (0.49;0.44) (1;0.80)"
25836
25837 • The previous example can also be achieved with the associated
25838 built-in preset:
25839
25840 curves=preset=vintage
25841
25842 • Or simply:
25843
25844 curves=vintage
25845
25846 • Use a Photoshop preset and redefine the points of the green
25847 component:
25848
25849 curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
25850
25851 • Check out the curves of the "cross_process" profile using ffmpeg
25852 and gnuplot:
25853
25854 ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
25855 gnuplot -p /tmp/curves.plt
25856
25857 datascope
25858 Video data analysis filter.
25859
25860 This filter shows hexadecimal pixel values of part of video.
25861
25862 The filter accepts the following options:
25863
25864 size, s
25865 Set output video size.
25866
25867 x Set x offset from where to pick pixels.
25868
25869 y Set y offset from where to pick pixels.
25870
25871 mode
25872 Set scope mode, can be one of the following:
25873
25874 mono
25875 Draw hexadecimal pixel values with white color on black
25876 background.
25877
25878 color
25879 Draw hexadecimal pixel values with input video pixel color on
25880 black background.
25881
25882 color2
25883 Draw hexadecimal pixel values on color background picked from
25884 input video, the text color is picked in such way so its always
25885 visible.
25886
25887 axis
25888 Draw rows and columns numbers on left and top of video.
25889
25890 opacity
25891 Set background opacity.
25892
25893 format
25894 Set display number format. Can be "hex", or "dec". Default is
25895 "hex".
25896
25897 components
25898 Set pixel components to display. By default all pixel components
25899 are displayed.
25900
25901 Commands
25902
25903 This filter supports same commands as options excluding "size" option.
25904
25905 dblur
25906 Apply Directional blur filter.
25907
25908 The filter accepts the following options:
25909
25910 angle
25911 Set angle of directional blur. Default is 45.
25912
25913 radius
25914 Set radius of directional blur. Default is 5.
25915
25916 planes
25917 Set which planes to filter. By default all planes are filtered.
25918
25919 Commands
25920
25921 This filter supports same commands as options. The command accepts the
25922 same syntax of the corresponding option.
25923
25924 If the specified expression is not valid, it is kept at its current
25925 value.
25926
25927 dctdnoiz
25928 Denoise frames using 2D DCT (frequency domain filtering).
25929
25930 This filter is not designed for real time.
25931
25932 The filter accepts the following options:
25933
25934 sigma, s
25935 Set the noise sigma constant.
25936
25937 This sigma defines a hard threshold of "3 * sigma"; every DCT
25938 coefficient (absolute value) below this threshold with be dropped.
25939
25940 If you need a more advanced filtering, see expr.
25941
25942 Default is 0.
25943
25944 overlap
25945 Set number overlapping pixels for each block. Since the filter can
25946 be slow, you may want to reduce this value, at the cost of a less
25947 effective filter and the risk of various artefacts.
25948
25949 If the overlapping value doesn't permit processing the whole input
25950 width or height, a warning will be displayed and according borders
25951 won't be denoised.
25952
25953 Default value is blocksize-1, which is the best possible setting.
25954
25955 expr, e
25956 Set the coefficient factor expression.
25957
25958 For each coefficient of a DCT block, this expression will be
25959 evaluated as a multiplier value for the coefficient.
25960
25961 If this is option is set, the sigma option will be ignored.
25962
25963 The absolute value of the coefficient can be accessed through the c
25964 variable.
25965
25966 n Set the blocksize using the number of bits. "1<<n" defines the
25967 blocksize, which is the width and height of the processed blocks.
25968
25969 The default value is 3 (8x8) and can be raised to 4 for a blocksize
25970 of 16x16. Note that changing this setting has huge consequences on
25971 the speed processing. Also, a larger block size does not
25972 necessarily means a better de-noising.
25973
25974 Examples
25975
25976 Apply a denoise with a sigma of 4.5:
25977
25978 dctdnoiz=4.5
25979
25980 The same operation can be achieved using the expression system:
25981
25982 dctdnoiz=e='gte(c, 4.5*3)'
25983
25984 Violent denoise using a block size of "16x16":
25985
25986 dctdnoiz=15:n=4
25987
25988 deband
25989 Remove banding artifacts from input video. It works by replacing
25990 banded pixels with average value of referenced pixels.
25991
25992 The filter accepts the following options:
25993
25994 1thr
25995 2thr
25996 3thr
25997 4thr
25998 Set banding detection threshold for each plane. Default is 0.02.
25999 Valid range is 0.00003 to 0.5. If difference between current pixel
26000 and reference pixel is less than threshold, it will be considered
26001 as banded.
26002
26003 range, r
26004 Banding detection range in pixels. Default is 16. If positive,
26005 random number in range 0 to set value will be used. If negative,
26006 exact absolute value will be used. The range defines square of
26007 four pixels around current pixel.
26008
26009 direction, d
26010 Set direction in radians from which four pixel will be compared. If
26011 positive, random direction from 0 to set direction will be picked.
26012 If negative, exact of absolute value will be picked. For example
26013 direction 0, -PI or -2*PI radians will pick only pixels on same row
26014 and -PI/2 will pick only pixels on same column.
26015
26016 blur, b
26017 If enabled, current pixel is compared with average value of all
26018 four surrounding pixels. The default is enabled. If disabled
26019 current pixel is compared with all four surrounding pixels. The
26020 pixel is considered banded if only all four differences with
26021 surrounding pixels are less than threshold.
26022
26023 coupling, c
26024 If enabled, current pixel is changed if and only if all pixel
26025 components are banded, e.g. banding detection threshold is
26026 triggered for all color components. The default is disabled.
26027
26028 Commands
26029
26030 This filter supports the all above options as commands.
26031
26032 deblock
26033 Remove blocking artifacts from input video.
26034
26035 The filter accepts the following options:
26036
26037 filter
26038 Set filter type, can be weak or strong. Default is strong. This
26039 controls what kind of deblocking is applied.
26040
26041 block
26042 Set size of block, allowed range is from 4 to 512. Default is 8.
26043
26044 alpha
26045 beta
26046 gamma
26047 delta
26048 Set blocking detection thresholds. Allowed range is 0 to 1.
26049 Defaults are: 0.098 for alpha and 0.05 for the rest. Using higher
26050 threshold gives more deblocking strength. Setting alpha controls
26051 threshold detection at exact edge of block. Remaining options
26052 controls threshold detection near the edge. Each one for
26053 below/above or left/right. Setting any of those to 0 disables
26054 deblocking.
26055
26056 planes
26057 Set planes to filter. Default is to filter all available planes.
26058
26059 Examples
26060
26061 • Deblock using weak filter and block size of 4 pixels.
26062
26063 deblock=filter=weak:block=4
26064
26065 • Deblock using strong filter, block size of 4 pixels and custom
26066 thresholds for deblocking more edges.
26067
26068 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
26069
26070 • Similar as above, but filter only first plane.
26071
26072 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
26073
26074 • Similar as above, but filter only second and third plane.
26075
26076 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
26077
26078 Commands
26079
26080 This filter supports the all above options as commands.
26081
26082 decimate
26083 Drop duplicated frames at regular intervals.
26084
26085 The filter accepts the following options:
26086
26087 cycle
26088 Set the number of frames from which one will be dropped. Setting
26089 this to N means one frame in every batch of N frames will be
26090 dropped. Default is 5.
26091
26092 dupthresh
26093 Set the threshold for duplicate detection. If the difference metric
26094 for a frame is less than or equal to this value, then it is
26095 declared as duplicate. Default is 1.1
26096
26097 scthresh
26098 Set scene change threshold. Default is 15.
26099
26100 blockx
26101 blocky
26102 Set the size of the x and y-axis blocks used during metric
26103 calculations. Larger blocks give better noise suppression, but
26104 also give worse detection of small movements. Must be a power of
26105 two. Default is 32.
26106
26107 ppsrc
26108 Mark main input as a pre-processed input and activate clean source
26109 input stream. This allows the input to be pre-processed with
26110 various filters to help the metrics calculation while keeping the
26111 frame selection lossless. When set to 1, the first stream is for
26112 the pre-processed input, and the second stream is the clean source
26113 from where the kept frames are chosen. Default is 0.
26114
26115 chroma
26116 Set whether or not chroma is considered in the metric calculations.
26117 Default is 1.
26118
26119 deconvolve
26120 Apply 2D deconvolution of video stream in frequency domain using second
26121 stream as impulse.
26122
26123 The filter accepts the following options:
26124
26125 planes
26126 Set which planes to process.
26127
26128 impulse
26129 Set which impulse video frames will be processed, can be first or
26130 all. Default is all.
26131
26132 noise
26133 Set noise when doing divisions. Default is 0.0000001. Useful when
26134 width and height are not same and not power of 2 or if stream prior
26135 to convolving had noise.
26136
26137 The "deconvolve" filter also supports the framesync options.
26138
26139 dedot
26140 Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
26141 video.
26142
26143 It accepts the following options:
26144
26145 m Set mode of operation. Can be combination of dotcrawl for cross-
26146 luminance reduction and/or rainbows for cross-color reduction.
26147
26148 lt Set spatial luma threshold. Lower values increases reduction of
26149 cross-luminance.
26150
26151 tl Set tolerance for temporal luma. Higher values increases reduction
26152 of cross-luminance.
26153
26154 tc Set tolerance for chroma temporal variation. Higher values
26155 increases reduction of cross-color.
26156
26157 ct Set temporal chroma threshold. Lower values increases reduction of
26158 cross-color.
26159
26160 deflate
26161 Apply deflate effect to the video.
26162
26163 This filter replaces the pixel by the local(3x3) average by taking into
26164 account only values lower than the pixel.
26165
26166 It accepts the following options:
26167
26168 threshold0
26169 threshold1
26170 threshold2
26171 threshold3
26172 Limit the maximum change for each plane, default is 65535. If 0,
26173 plane will remain unchanged.
26174
26175 Commands
26176
26177 This filter supports the all above options as commands.
26178
26179 deflicker
26180 Remove temporal frame luminance variations.
26181
26182 It accepts the following options:
26183
26184 size, s
26185 Set moving-average filter size in frames. Default is 5. Allowed
26186 range is 2 - 129.
26187
26188 mode, m
26189 Set averaging mode to smooth temporal luminance variations.
26190
26191 Available values are:
26192
26193 am Arithmetic mean
26194
26195 gm Geometric mean
26196
26197 hm Harmonic mean
26198
26199 qm Quadratic mean
26200
26201 cm Cubic mean
26202
26203 pm Power mean
26204
26205 median
26206 Median
26207
26208 bypass
26209 Do not actually modify frame. Useful when one only wants metadata.
26210
26211 dejudder
26212 Remove judder produced by partially interlaced telecined content.
26213
26214 Judder can be introduced, for instance, by pullup filter. If the
26215 original source was partially telecined content then the output of
26216 "pullup,dejudder" will have a variable frame rate. May change the
26217 recorded frame rate of the container. Aside from that change, this
26218 filter will not affect constant frame rate video.
26219
26220 The option available in this filter is:
26221
26222 cycle
26223 Specify the length of the window over which the judder repeats.
26224
26225 Accepts any integer greater than 1. Useful values are:
26226
26227 4 If the original was telecined from 24 to 30 fps (Film to NTSC).
26228
26229 5 If the original was telecined from 25 to 30 fps (PAL to NTSC).
26230
26231 20 If a mixture of the two.
26232
26233 The default is 4.
26234
26235 delogo
26236 Suppress a TV station logo by a simple interpolation of the surrounding
26237 pixels. Just set a rectangle covering the logo and watch it disappear
26238 (and sometimes something even uglier appear - your mileage may vary).
26239
26240 It accepts the following parameters:
26241
26242 x
26243 y Specify the top left corner coordinates of the logo. They must be
26244 specified.
26245
26246 w
26247 h Specify the width and height of the logo to clear. They must be
26248 specified.
26249
26250 show
26251 When set to 1, a green rectangle is drawn on the screen to simplify
26252 finding the right x, y, w, and h parameters. The default value is
26253 0.
26254
26255 The rectangle is drawn on the outermost pixels which will be
26256 (partly) replaced with interpolated values. The values of the next
26257 pixels immediately outside this rectangle in each direction will be
26258 used to compute the interpolated pixel values inside the rectangle.
26259
26260 Examples
26261
26262 • Set a rectangle covering the area with top left corner coordinates
26263 0,0 and size 100x77:
26264
26265 delogo=x=0:y=0:w=100:h=77
26266
26267 derain
26268 Remove the rain in the input image/video by applying the derain methods
26269 based on convolutional neural networks. Supported models:
26270
26271 • Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
26272 See
26273 <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
26274
26275 Training as well as model generation scripts are provided in the
26276 repository at <https://github.com/XueweiMeng/derain_filter.git>.
26277
26278 Native model files (.model) can be generated from TensorFlow model
26279 files (.pb) by using tools/python/convert.py
26280
26281 The filter accepts the following options:
26282
26283 filter_type
26284 Specify which filter to use. This option accepts the following
26285 values:
26286
26287 derain
26288 Derain filter. To conduct derain filter, you need to use a
26289 derain model.
26290
26291 dehaze
26292 Dehaze filter. To conduct dehaze filter, you need to use a
26293 dehaze model.
26294
26295 Default value is derain.
26296
26297 dnn_backend
26298 Specify which DNN backend to use for model loading and execution.
26299 This option accepts the following values:
26300
26301 native
26302 Native implementation of DNN loading and execution.
26303
26304 tensorflow
26305 TensorFlow backend. To enable this backend you need to install
26306 the TensorFlow for C library (see
26307 <https://www.tensorflow.org/install/lang_c>) and configure
26308 FFmpeg with "--enable-libtensorflow"
26309
26310 Default value is native.
26311
26312 model
26313 Set path to model file specifying network architecture and its
26314 parameters. Note that different backends use different file
26315 formats. TensorFlow and native backend can load files for only its
26316 format.
26317
26318 To get full functionality (such as async execution), please use the
26319 dnn_processing filter.
26320
26321 deshake
26322 Attempt to fix small changes in horizontal and/or vertical shift. This
26323 filter helps remove camera shake from hand-holding a camera, bumping a
26324 tripod, moving on a vehicle, etc.
26325
26326 The filter accepts the following options:
26327
26328 x
26329 y
26330 w
26331 h Specify a rectangular area where to limit the search for motion
26332 vectors. If desired the search for motion vectors can be limited
26333 to a rectangular area of the frame defined by its top left corner,
26334 width and height. These parameters have the same meaning as the
26335 drawbox filter which can be used to visualise the position of the
26336 bounding box.
26337
26338 This is useful when simultaneous movement of subjects within the
26339 frame might be confused for camera motion by the motion vector
26340 search.
26341
26342 If any or all of x, y, w and h are set to -1 then the full frame is
26343 used. This allows later options to be set without specifying the
26344 bounding box for the motion vector search.
26345
26346 Default - search the whole frame.
26347
26348 rx
26349 ry Specify the maximum extent of movement in x and y directions in the
26350 range 0-64 pixels. Default 16.
26351
26352 edge
26353 Specify how to generate pixels to fill blanks at the edge of the
26354 frame. Available values are:
26355
26356 blank, 0
26357 Fill zeroes at blank locations
26358
26359 original, 1
26360 Original image at blank locations
26361
26362 clamp, 2
26363 Extruded edge value at blank locations
26364
26365 mirror, 3
26366 Mirrored edge at blank locations
26367
26368 Default value is mirror.
26369
26370 blocksize
26371 Specify the blocksize to use for motion search. Range 4-128 pixels,
26372 default 8.
26373
26374 contrast
26375 Specify the contrast threshold for blocks. Only blocks with more
26376 than the specified contrast (difference between darkest and
26377 lightest pixels) will be considered. Range 1-255, default 125.
26378
26379 search
26380 Specify the search strategy. Available values are:
26381
26382 exhaustive, 0
26383 Set exhaustive search
26384
26385 less, 1
26386 Set less exhaustive search.
26387
26388 Default value is exhaustive.
26389
26390 filename
26391 If set then a detailed log of the motion search is written to the
26392 specified file.
26393
26394 despill
26395 Remove unwanted contamination of foreground colors, caused by reflected
26396 color of greenscreen or bluescreen.
26397
26398 This filter accepts the following options:
26399
26400 type
26401 Set what type of despill to use.
26402
26403 mix Set how spillmap will be generated.
26404
26405 expand
26406 Set how much to get rid of still remaining spill.
26407
26408 red Controls amount of red in spill area.
26409
26410 green
26411 Controls amount of green in spill area. Should be -1 for
26412 greenscreen.
26413
26414 blue
26415 Controls amount of blue in spill area. Should be -1 for
26416 bluescreen.
26417
26418 brightness
26419 Controls brightness of spill area, preserving colors.
26420
26421 alpha
26422 Modify alpha from generated spillmap.
26423
26424 Commands
26425
26426 This filter supports the all above options as commands.
26427
26428 detelecine
26429 Apply an exact inverse of the telecine operation. It requires a
26430 predefined pattern specified using the pattern option which must be the
26431 same as that passed to the telecine filter.
26432
26433 This filter accepts the following options:
26434
26435 first_field
26436 top, t
26437 top field first
26438
26439 bottom, b
26440 bottom field first The default value is "top".
26441
26442 pattern
26443 A string of numbers representing the pulldown pattern you wish to
26444 apply. The default value is 23.
26445
26446 start_frame
26447 A number representing position of the first frame with respect to
26448 the telecine pattern. This is to be used if the stream is cut. The
26449 default value is 0.
26450
26451 dilation
26452 Apply dilation effect to the video.
26453
26454 This filter replaces the pixel by the local(3x3) maximum.
26455
26456 It accepts the following options:
26457
26458 threshold0
26459 threshold1
26460 threshold2
26461 threshold3
26462 Limit the maximum change for each plane, default is 65535. If 0,
26463 plane will remain unchanged.
26464
26465 coordinates
26466 Flag which specifies the pixel to refer to. Default is 255 i.e. all
26467 eight pixels are used.
26468
26469 Flags to local 3x3 coordinates maps like this:
26470
26471 1 2 3
26472 4 5
26473 6 7 8
26474
26475 Commands
26476
26477 This filter supports the all above options as commands.
26478
26479 displace
26480 Displace pixels as indicated by second and third input stream.
26481
26482 It takes three input streams and outputs one stream, the first input is
26483 the source, and second and third input are displacement maps.
26484
26485 The second input specifies how much to displace pixels along the
26486 x-axis, while the third input specifies how much to displace pixels
26487 along the y-axis. If one of displacement map streams terminates, last
26488 frame from that displacement map will be used.
26489
26490 Note that once generated, displacements maps can be reused over and
26491 over again.
26492
26493 A description of the accepted options follows.
26494
26495 edge
26496 Set displace behavior for pixels that are out of range.
26497
26498 Available values are:
26499
26500 blank
26501 Missing pixels are replaced by black pixels.
26502
26503 smear
26504 Adjacent pixels will spread out to replace missing pixels.
26505
26506 wrap
26507 Out of range pixels are wrapped so they point to pixels of
26508 other side.
26509
26510 mirror
26511 Out of range pixels will be replaced with mirrored pixels.
26512
26513 Default is smear.
26514
26515 Examples
26516
26517 • Add ripple effect to rgb input of video size hd720:
26518
26519 ffmpeg -i INPUT -f lavfi -i nullsrc=s=hd720,lutrgb=128:128:128 -f lavfi -i nullsrc=s=hd720,geq='r=128+30*sin(2*PI*X/400+T):g=128+30*sin(2*PI*X/400+T):b=128+30*sin(2*PI*X/400+T)' -lavfi '[0][1][2]displace' OUTPUT
26520
26521 • Add wave effect to rgb input of video size hd720:
26522
26523 ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):g=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):b=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T))' -lavfi '[1]split[x][y],[0][x][y]displace' OUTPUT
26524
26525 dnn_classify
26526 Do classification with deep neural networks based on bounding boxes.
26527
26528 The filter accepts the following options:
26529
26530 dnn_backend
26531 Specify which DNN backend to use for model loading and execution.
26532 This option accepts only openvino now, tensorflow backends will be
26533 added.
26534
26535 model
26536 Set path to model file specifying network architecture and its
26537 parameters. Note that different backends use different file
26538 formats.
26539
26540 input
26541 Set the input name of the dnn network.
26542
26543 output
26544 Set the output name of the dnn network.
26545
26546 confidence
26547 Set the confidence threshold (default: 0.5).
26548
26549 labels
26550 Set path to label file specifying the mapping between label id and
26551 name. Each label name is written in one line, tailing spaces and
26552 empty lines are skipped. The first line is the name of label id 0,
26553 and the second line is the name of label id 1, etc. The label id
26554 is considered as name if the label file is not provided.
26555
26556 backend_configs
26557 Set the configs to be passed into backend
26558
26559 For tensorflow backend, you can set its configs with sess_config
26560 options, please use tools/python/tf_sess_config.py to get the
26561 configs for your system.
26562
26563 dnn_detect
26564 Do object detection with deep neural networks.
26565
26566 The filter accepts the following options:
26567
26568 dnn_backend
26569 Specify which DNN backend to use for model loading and execution.
26570 This option accepts only openvino now, tensorflow backends will be
26571 added.
26572
26573 model
26574 Set path to model file specifying network architecture and its
26575 parameters. Note that different backends use different file
26576 formats.
26577
26578 input
26579 Set the input name of the dnn network.
26580
26581 output
26582 Set the output name of the dnn network.
26583
26584 confidence
26585 Set the confidence threshold (default: 0.5).
26586
26587 labels
26588 Set path to label file specifying the mapping between label id and
26589 name. Each label name is written in one line, tailing spaces and
26590 empty lines are skipped. The first line is the name of label id 0
26591 (usually it is 'background'), and the second line is the name of
26592 label id 1, etc. The label id is considered as name if the label
26593 file is not provided.
26594
26595 backend_configs
26596 Set the configs to be passed into backend. To use async execution,
26597 set async (default: set). Roll back to sync execution if the
26598 backend does not support async.
26599
26600 dnn_processing
26601 Do image processing with deep neural networks. It works together with
26602 another filter which converts the pixel format of the Frame to what the
26603 dnn network requires.
26604
26605 The filter accepts the following options:
26606
26607 dnn_backend
26608 Specify which DNN backend to use for model loading and execution.
26609 This option accepts the following values:
26610
26611 native
26612 Native implementation of DNN loading and execution.
26613
26614 tensorflow
26615 TensorFlow backend. To enable this backend you need to install
26616 the TensorFlow for C library (see
26617 <https://www.tensorflow.org/install/lang_c>) and configure
26618 FFmpeg with "--enable-libtensorflow"
26619
26620 openvino
26621 OpenVINO backend. To enable this backend you need to build and
26622 install the OpenVINO for C library (see
26623 <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
26624 and configure FFmpeg with "--enable-libopenvino"
26625 (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
26626 the header files and libraries are not installed into system
26627 path)
26628
26629 Default value is native.
26630
26631 model
26632 Set path to model file specifying network architecture and its
26633 parameters. Note that different backends use different file
26634 formats. TensorFlow, OpenVINO and native backend can load files for
26635 only its format.
26636
26637 Native model file (.model) can be generated from TensorFlow model
26638 file (.pb) by using tools/python/convert.py
26639
26640 input
26641 Set the input name of the dnn network.
26642
26643 output
26644 Set the output name of the dnn network.
26645
26646 backend_configs
26647 Set the configs to be passed into backend. To use async execution,
26648 set async (default: set). Roll back to sync execution if the
26649 backend does not support async.
26650
26651 For tensorflow backend, you can set its configs with sess_config
26652 options, please use tools/python/tf_sess_config.py to get the
26653 configs of TensorFlow backend for your system.
26654
26655 Examples
26656
26657 • Remove rain in rgb24 frame with can.pb (see derain filter):
26658
26659 ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
26660
26661 • Halve the pixel value of the frame with format gray32f:
26662
26663 ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
26664
26665 • Handle the Y channel with srcnn.pb (see sr filter) for frame with
26666 yuv420p (planar YUV formats supported):
26667
26668 ./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg
26669
26670 • Handle the Y channel with espcn.pb (see sr filter), which changes
26671 frame size, for format yuv420p (planar YUV formats supported),
26672 please use tools/python/tf_sess_config.py to get the configs of
26673 TensorFlow backend for your system.
26674
26675 ./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y:backend_configs=sess_config=0x10022805320e09cdccccccccccec3f20012a01303801 -y tmp.espcn.jpg
26676
26677 drawbox
26678 Draw a colored box on the input image.
26679
26680 It accepts the following parameters:
26681
26682 x
26683 y The expressions which specify the top left corner coordinates of
26684 the box. It defaults to 0.
26685
26686 width, w
26687 height, h
26688 The expressions which specify the width and height of the box; if 0
26689 they are interpreted as the input width and height. It defaults to
26690 0.
26691
26692 color, c
26693 Specify the color of the box to write. For the general syntax of
26694 this option, check the "Color" section in the ffmpeg-utils manual.
26695 If the special value "invert" is used, the box edge color is the
26696 same as the video with inverted luma.
26697
26698 thickness, t
26699 The expression which sets the thickness of the box edge. A value
26700 of "fill" will create a filled box. Default value is 3.
26701
26702 See below for the list of accepted constants.
26703
26704 replace
26705 Applicable if the input has alpha. With value 1, the pixels of the
26706 painted box will overwrite the video's color and alpha pixels.
26707 Default is 0, which composites the box onto the input, leaving the
26708 video's alpha intact.
26709
26710 The parameters for x, y, w and h and t are expressions containing the
26711 following constants:
26712
26713 dar The input display aspect ratio, it is the same as (w / h) * sar.
26714
26715 hsub
26716 vsub
26717 horizontal and vertical chroma subsample values. For example for
26718 the pixel format "yuv422p" hsub is 2 and vsub is 1.
26719
26720 in_h, ih
26721 in_w, iw
26722 The input width and height.
26723
26724 sar The input sample aspect ratio.
26725
26726 x
26727 y The x and y offset coordinates where the box is drawn.
26728
26729 w
26730 h The width and height of the drawn box.
26731
26732 box_source
26733 Box source can be set as side_data_detection_bboxes if you want to
26734 use box data in detection bboxes of side data.
26735
26736 If box_source is set, the x, y, width and height will be ignored
26737 and still use box data in detection bboxes of side data. So please
26738 do not use this parameter if you were not sure about the box
26739 source.
26740
26741 t The thickness of the drawn box.
26742
26743 These constants allow the x, y, w, h and t expressions to refer to
26744 each other, so you may for example specify "y=x/dar" or "h=w/dar".
26745
26746 Examples
26747
26748 • Draw a black box around the edge of the input image:
26749
26750 drawbox
26751
26752 • Draw a box with color red and an opacity of 50%:
26753
26754 drawbox=10:20:200:60:red@0.5
26755
26756 The previous example can be specified as:
26757
26758 drawbox=x=10:y=20:w=200:h=60:color=red@0.5
26759
26760 • Fill the box with pink color:
26761
26762 drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
26763
26764 • Draw a 2-pixel red 2.40:1 mask:
26765
26766 drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
26767
26768 Commands
26769
26770 This filter supports same commands as options. The command accepts the
26771 same syntax of the corresponding option.
26772
26773 If the specified expression is not valid, it is kept at its current
26774 value.
26775
26776 drawgraph
26777 Draw a graph using input video metadata.
26778
26779 It accepts the following parameters:
26780
26781 m1 Set 1st frame metadata key from which metadata values will be used
26782 to draw a graph.
26783
26784 fg1 Set 1st foreground color expression.
26785
26786 m2 Set 2nd frame metadata key from which metadata values will be used
26787 to draw a graph.
26788
26789 fg2 Set 2nd foreground color expression.
26790
26791 m3 Set 3rd frame metadata key from which metadata values will be used
26792 to draw a graph.
26793
26794 fg3 Set 3rd foreground color expression.
26795
26796 m4 Set 4th frame metadata key from which metadata values will be used
26797 to draw a graph.
26798
26799 fg4 Set 4th foreground color expression.
26800
26801 min Set minimal value of metadata value.
26802
26803 max Set maximal value of metadata value.
26804
26805 bg Set graph background color. Default is white.
26806
26807 mode
26808 Set graph mode.
26809
26810 Available values for mode is:
26811
26812 bar
26813 dot
26814 line
26815
26816 Default is "line".
26817
26818 slide
26819 Set slide mode.
26820
26821 Available values for slide is:
26822
26823 frame
26824 Draw new frame when right border is reached.
26825
26826 replace
26827 Replace old columns with new ones.
26828
26829 scroll
26830 Scroll from right to left.
26831
26832 rscroll
26833 Scroll from left to right.
26834
26835 picture
26836 Draw single picture.
26837
26838 Default is "frame".
26839
26840 size
26841 Set size of graph video. For the syntax of this option, check the
26842 "Video size" section in the ffmpeg-utils manual. The default value
26843 is "900x256".
26844
26845 rate, r
26846 Set the output frame rate. Default value is 25.
26847
26848 The foreground color expressions can use the following variables:
26849
26850 MIN Minimal value of metadata value.
26851
26852 MAX Maximal value of metadata value.
26853
26854 VAL Current metadata key value.
26855
26856 The color is defined as 0xAABBGGRR.
26857
26858 Example using metadata from signalstats filter:
26859
26860 signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
26861
26862 Example using metadata from ebur128 filter:
26863
26864 ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
26865
26866 drawgrid
26867 Draw a grid on the input image.
26868
26869 It accepts the following parameters:
26870
26871 x
26872 y The expressions which specify the coordinates of some point of grid
26873 intersection (meant to configure offset). Both default to 0.
26874
26875 width, w
26876 height, h
26877 The expressions which specify the width and height of the grid
26878 cell, if 0 they are interpreted as the input width and height,
26879 respectively, minus "thickness", so image gets framed. Default to
26880 0.
26881
26882 color, c
26883 Specify the color of the grid. For the general syntax of this
26884 option, check the "Color" section in the ffmpeg-utils manual. If
26885 the special value "invert" is used, the grid color is the same as
26886 the video with inverted luma.
26887
26888 thickness, t
26889 The expression which sets the thickness of the grid line. Default
26890 value is 1.
26891
26892 See below for the list of accepted constants.
26893
26894 replace
26895 Applicable if the input has alpha. With 1 the pixels of the painted
26896 grid will overwrite the video's color and alpha pixels. Default is
26897 0, which composites the grid onto the input, leaving the video's
26898 alpha intact.
26899
26900 The parameters for x, y, w and h and t are expressions containing the
26901 following constants:
26902
26903 dar The input display aspect ratio, it is the same as (w / h) * sar.
26904
26905 hsub
26906 vsub
26907 horizontal and vertical chroma subsample values. For example for
26908 the pixel format "yuv422p" hsub is 2 and vsub is 1.
26909
26910 in_h, ih
26911 in_w, iw
26912 The input grid cell width and height.
26913
26914 sar The input sample aspect ratio.
26915
26916 x
26917 y The x and y coordinates of some point of grid intersection (meant
26918 to configure offset).
26919
26920 w
26921 h The width and height of the drawn cell.
26922
26923 t The thickness of the drawn cell.
26924
26925 These constants allow the x, y, w, h and t expressions to refer to
26926 each other, so you may for example specify "y=x/dar" or "h=w/dar".
26927
26928 Examples
26929
26930 • Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
26931 color red and an opacity of 50%:
26932
26933 drawgrid=width=100:height=100:thickness=2:color=red@0.5
26934
26935 • Draw a white 3x3 grid with an opacity of 50%:
26936
26937 drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
26938
26939 Commands
26940
26941 This filter supports same commands as options. The command accepts the
26942 same syntax of the corresponding option.
26943
26944 If the specified expression is not valid, it is kept at its current
26945 value.
26946
26947 drawtext
26948 Draw a text string or text from a specified file on top of a video,
26949 using the libfreetype library.
26950
26951 To enable compilation of this filter, you need to configure FFmpeg with
26952 "--enable-libfreetype". To enable default font fallback and the font
26953 option you need to configure FFmpeg with "--enable-libfontconfig". To
26954 enable the text_shaping option, you need to configure FFmpeg with
26955 "--enable-libfribidi".
26956
26957 Syntax
26958
26959 It accepts the following parameters:
26960
26961 box Used to draw a box around text using the background color. The
26962 value must be either 1 (enable) or 0 (disable). The default value
26963 of box is 0.
26964
26965 boxborderw
26966 Set the width of the border to be drawn around the box using
26967 boxcolor. The default value of boxborderw is 0.
26968
26969 boxcolor
26970 The color to be used for drawing box around text. For the syntax of
26971 this option, check the "Color" section in the ffmpeg-utils manual.
26972
26973 The default value of boxcolor is "white".
26974
26975 line_spacing
26976 Set the line spacing in pixels of the border to be drawn around the
26977 box using box. The default value of line_spacing is 0.
26978
26979 borderw
26980 Set the width of the border to be drawn around the text using
26981 bordercolor. The default value of borderw is 0.
26982
26983 bordercolor
26984 Set the color to be used for drawing border around text. For the
26985 syntax of this option, check the "Color" section in the ffmpeg-
26986 utils manual.
26987
26988 The default value of bordercolor is "black".
26989
26990 expansion
26991 Select how the text is expanded. Can be either "none", "strftime"
26992 (deprecated) or "normal" (default). See the drawtext_expansion,
26993 Text expansion section below for details.
26994
26995 basetime
26996 Set a start time for the count. Value is in microseconds. Only
26997 applied in the deprecated strftime expansion mode. To emulate in
26998 normal expansion mode use the "pts" function, supplying the start
26999 time (in seconds) as the second argument.
27000
27001 fix_bounds
27002 If true, check and fix text coords to avoid clipping.
27003
27004 fontcolor
27005 The color to be used for drawing fonts. For the syntax of this
27006 option, check the "Color" section in the ffmpeg-utils manual.
27007
27008 The default value of fontcolor is "black".
27009
27010 fontcolor_expr
27011 String which is expanded the same way as text to obtain dynamic
27012 fontcolor value. By default this option has empty value and is not
27013 processed. When this option is set, it overrides fontcolor option.
27014
27015 font
27016 The font family to be used for drawing text. By default Sans.
27017
27018 fontfile
27019 The font file to be used for drawing text. The path must be
27020 included. This parameter is mandatory if the fontconfig support is
27021 disabled.
27022
27023 alpha
27024 Draw the text applying alpha blending. The value can be a number
27025 between 0.0 and 1.0. The expression accepts the same variables x,
27026 y as well. The default value is 1. Please see fontcolor_expr.
27027
27028 fontsize
27029 The font size to be used for drawing text. The default value of
27030 fontsize is 16.
27031
27032 text_shaping
27033 If set to 1, attempt to shape the text (for example, reverse the
27034 order of right-to-left text and join Arabic characters) before
27035 drawing it. Otherwise, just draw the text exactly as given. By
27036 default 1 (if supported).
27037
27038 ft_load_flags
27039 The flags to be used for loading the fonts.
27040
27041 The flags map the corresponding flags supported by libfreetype, and
27042 are a combination of the following values:
27043
27044 default
27045 no_scale
27046 no_hinting
27047 render
27048 no_bitmap
27049 vertical_layout
27050 force_autohint
27051 crop_bitmap
27052 pedantic
27053 ignore_global_advance_width
27054 no_recurse
27055 ignore_transform
27056 monochrome
27057 linear_design
27058 no_autohint
27059
27060 Default value is "default".
27061
27062 For more information consult the documentation for the FT_LOAD_*
27063 libfreetype flags.
27064
27065 shadowcolor
27066 The color to be used for drawing a shadow behind the drawn text.
27067 For the syntax of this option, check the "Color" section in the
27068 ffmpeg-utils manual.
27069
27070 The default value of shadowcolor is "black".
27071
27072 shadowx
27073 shadowy
27074 The x and y offsets for the text shadow position with respect to
27075 the position of the text. They can be either positive or negative
27076 values. The default value for both is "0".
27077
27078 start_number
27079 The starting frame number for the n/frame_num variable. The default
27080 value is "0".
27081
27082 tabsize
27083 The size in number of spaces to use for rendering the tab. Default
27084 value is 4.
27085
27086 timecode
27087 Set the initial timecode representation in "hh:mm:ss[:;.]ff"
27088 format. It can be used with or without text parameter.
27089 timecode_rate option must be specified.
27090
27091 timecode_rate, rate, r
27092 Set the timecode frame rate (timecode only). Value will be rounded
27093 to nearest integer. Minimum value is "1". Drop-frame timecode is
27094 supported for frame rates 30 & 60.
27095
27096 tc24hmax
27097 If set to 1, the output of the timecode option will wrap around at
27098 24 hours. Default is 0 (disabled).
27099
27100 text
27101 The text string to be drawn. The text must be a sequence of UTF-8
27102 encoded characters. This parameter is mandatory if no file is
27103 specified with the parameter textfile.
27104
27105 textfile
27106 A text file containing text to be drawn. The text must be a
27107 sequence of UTF-8 encoded characters.
27108
27109 This parameter is mandatory if no text string is specified with the
27110 parameter text.
27111
27112 If both text and textfile are specified, an error is thrown.
27113
27114 text_source
27115 Text source should be set as side_data_detection_bboxes if you want
27116 to use text data in detection bboxes of side data.
27117
27118 If text source is set, text and textfile will be ignored and still
27119 use text data in detection bboxes of side data. So please do not
27120 use this parameter if you are not sure about the text source.
27121
27122 reload
27123 If set to 1, the textfile will be reloaded before each frame. Be
27124 sure to update it atomically, or it may be read partially, or even
27125 fail.
27126
27127 x
27128 y The expressions which specify the offsets where text will be drawn
27129 within the video frame. They are relative to the top/left border of
27130 the output image.
27131
27132 The default value of x and y is "0".
27133
27134 See below for the list of accepted constants and functions.
27135
27136 The parameters for x and y are expressions containing the following
27137 constants and functions:
27138
27139 dar input display aspect ratio, it is the same as (w / h) * sar
27140
27141 hsub
27142 vsub
27143 horizontal and vertical chroma subsample values. For example for
27144 the pixel format "yuv422p" hsub is 2 and vsub is 1.
27145
27146 line_h, lh
27147 the height of each text line
27148
27149 main_h, h, H
27150 the input height
27151
27152 main_w, w, W
27153 the input width
27154
27155 max_glyph_a, ascent
27156 the maximum distance from the baseline to the highest/upper grid
27157 coordinate used to place a glyph outline point, for all the
27158 rendered glyphs. It is a positive value, due to the grid's
27159 orientation with the Y axis upwards.
27160
27161 max_glyph_d, descent
27162 the maximum distance from the baseline to the lowest grid
27163 coordinate used to place a glyph outline point, for all the
27164 rendered glyphs. This is a negative value, due to the grid's
27165 orientation, with the Y axis upwards.
27166
27167 max_glyph_h
27168 maximum glyph height, that is the maximum height for all the glyphs
27169 contained in the rendered text, it is equivalent to ascent -
27170 descent.
27171
27172 max_glyph_w
27173 maximum glyph width, that is the maximum width for all the glyphs
27174 contained in the rendered text
27175
27176 n the number of input frame, starting from 0
27177
27178 rand(min, max)
27179 return a random number included between min and max
27180
27181 sar The input sample aspect ratio.
27182
27183 t timestamp expressed in seconds, NAN if the input timestamp is
27184 unknown
27185
27186 text_h, th
27187 the height of the rendered text
27188
27189 text_w, tw
27190 the width of the rendered text
27191
27192 x
27193 y the x and y offset coordinates where the text is drawn.
27194
27195 These parameters allow the x and y expressions to refer to each
27196 other, so you can for example specify "y=x/dar".
27197
27198 pict_type
27199 A one character description of the current frame's picture type.
27200
27201 pkt_pos
27202 The current packet's position in the input file or stream (in
27203 bytes, from the start of the input). A value of -1 indicates this
27204 info is not available.
27205
27206 pkt_duration
27207 The current packet's duration, in seconds.
27208
27209 pkt_size
27210 The current packet's size (in bytes).
27211
27212 Text expansion
27213
27214 If expansion is set to "strftime", the filter recognizes strftime()
27215 sequences in the provided text and expands them accordingly. Check the
27216 documentation of strftime(). This feature is deprecated.
27217
27218 If expansion is set to "none", the text is printed verbatim.
27219
27220 If expansion is set to "normal" (which is the default), the following
27221 expansion mechanism is used.
27222
27223 The backslash character \, followed by any character, always expands to
27224 the second character.
27225
27226 Sequences of the form "%{...}" are expanded. The text between the
27227 braces is a function name, possibly followed by arguments separated by
27228 ':'. If the arguments contain special characters or delimiters (':' or
27229 '}'), they should be escaped.
27230
27231 Note that they probably must also be escaped as the value for the text
27232 option in the filter argument string and as the filter argument in the
27233 filtergraph description, and possibly also for the shell, that makes up
27234 to four levels of escaping; using a text file avoids these problems.
27235
27236 The following functions are available:
27237
27238 expr, e
27239 The expression evaluation result.
27240
27241 It must take one argument specifying the expression to be
27242 evaluated, which accepts the same constants and functions as the x
27243 and y values. Note that not all constants should be used, for
27244 example the text size is not known when evaluating the expression,
27245 so the constants text_w and text_h will have an undefined value.
27246
27247 expr_int_format, eif
27248 Evaluate the expression's value and output as formatted integer.
27249
27250 The first argument is the expression to be evaluated, just as for
27251 the expr function. The second argument specifies the output
27252 format. Allowed values are x, X, d and u. They are treated exactly
27253 as in the "printf" function. The third parameter is optional and
27254 sets the number of positions taken by the output. It can be used
27255 to add padding with zeros from the left.
27256
27257 gmtime
27258 The time at which the filter is running, expressed in UTC. It can
27259 accept an argument: a strftime() format string.
27260
27261 localtime
27262 The time at which the filter is running, expressed in the local
27263 time zone. It can accept an argument: a strftime() format string.
27264
27265 metadata
27266 Frame metadata. Takes one or two arguments.
27267
27268 The first argument is mandatory and specifies the metadata key.
27269
27270 The second argument is optional and specifies a default value, used
27271 when the metadata key is not found or empty.
27272
27273 Available metadata can be identified by inspecting entries starting
27274 with TAG included within each frame section printed by running
27275 "ffprobe -show_frames".
27276
27277 String metadata generated in filters leading to the drawtext filter
27278 are also available.
27279
27280 n, frame_num
27281 The frame number, starting from 0.
27282
27283 pict_type
27284 A one character description of the current picture type.
27285
27286 pts The timestamp of the current frame. It can take up to three
27287 arguments.
27288
27289 The first argument is the format of the timestamp; it defaults to
27290 "flt" for seconds as a decimal number with microsecond accuracy;
27291 "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
27292 millisecond accuracy. "gmtime" stands for the timestamp of the
27293 frame formatted as UTC time; "localtime" stands for the timestamp
27294 of the frame formatted as local time zone time.
27295
27296 The second argument is an offset added to the timestamp.
27297
27298 If the format is set to "hms", a third argument "24HH" may be
27299 supplied to present the hour part of the formatted timestamp in 24h
27300 format (00-23).
27301
27302 If the format is set to "localtime" or "gmtime", a third argument
27303 may be supplied: a strftime() format string. By default, YYYY-MM-
27304 DD HH:MM:SS format will be used.
27305
27306 Commands
27307
27308 This filter supports altering parameters via commands:
27309
27310 reinit
27311 Alter existing filter parameters.
27312
27313 Syntax for the argument is the same as for filter invocation, e.g.
27314
27315 fontsize=56:fontcolor=green:text='Hello World'
27316
27317 Full filter invocation with sendcmd would look like this:
27318
27319 sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
27320
27321 If the entire argument can't be parsed or applied as valid values then
27322 the filter will continue with its existing parameters.
27323
27324 Examples
27325
27326 • Draw "Test Text" with font FreeSerif, using the default values for
27327 the optional parameters.
27328
27329 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
27330
27331 • Draw 'Test Text' with font FreeSerif of size 24 at position x=100
27332 and y=50 (counting from the top-left corner of the screen), text is
27333 yellow with a red box around it. Both the text and the box have an
27334 opacity of 20%.
27335
27336 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
27337 x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
27338
27339 Note that the double quotes are not necessary if spaces are not
27340 used within the parameter list.
27341
27342 • Show the text at the center of the video frame:
27343
27344 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
27345
27346 • Show the text at a random position, switching to a new position
27347 every 30 seconds:
27348
27349 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)"
27350
27351 • Show a text line sliding from right to left in the last row of the
27352 video frame. The file LONG_LINE is assumed to contain a single line
27353 with no newlines.
27354
27355 drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
27356
27357 • Show the content of file CREDITS off the bottom of the frame and
27358 scroll up.
27359
27360 drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
27361
27362 • Draw a single green letter "g", at the center of the input video.
27363 The glyph baseline is placed at half screen height.
27364
27365 drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
27366
27367 • Show text for 1 second every 3 seconds:
27368
27369 drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
27370
27371 • Use fontconfig to set the font. Note that the colons need to be
27372 escaped.
27373
27374 drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
27375
27376 • Draw "Test Text" with font size dependent on height of the video.
27377
27378 drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
27379
27380 • Print the date of a real-time encoding (see strftime(3)):
27381
27382 drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
27383
27384 • Show text fading in and out (appearing/disappearing):
27385
27386 #!/bin/sh
27387 DS=1.0 # display start
27388 DE=10.0 # display end
27389 FID=1.5 # fade in duration
27390 FOD=5 # fade out duration
27391 ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }"
27392
27393 • Horizontally align multiple separate texts. Note that max_glyph_a
27394 and the fontsize value are included in the y offset.
27395
27396 drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
27397 drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
27398
27399 • Plot special lavf.image2dec.source_basename metadata onto each
27400 frame if such metadata exists. Otherwise, plot the string "NA".
27401 Note that image2 demuxer must have option -export_path_metadata 1
27402 for the special metadata fields to be available for filters.
27403
27404 drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
27405
27406 For more information about libfreetype, check:
27407 <http://www.freetype.org/>.
27408
27409 For more information about fontconfig, check:
27410 <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
27411
27412 For more information about libfribidi, check: <http://fribidi.org/>.
27413
27414 edgedetect
27415 Detect and draw edges. The filter uses the Canny Edge Detection
27416 algorithm.
27417
27418 The filter accepts the following options:
27419
27420 low
27421 high
27422 Set low and high threshold values used by the Canny thresholding
27423 algorithm.
27424
27425 The high threshold selects the "strong" edge pixels, which are then
27426 connected through 8-connectivity with the "weak" edge pixels
27427 selected by the low threshold.
27428
27429 low and high threshold values must be chosen in the range [0,1],
27430 and low should be lesser or equal to high.
27431
27432 Default value for low is "20/255", and default value for high is
27433 "50/255".
27434
27435 mode
27436 Define the drawing mode.
27437
27438 wires
27439 Draw white/gray wires on black background.
27440
27441 colormix
27442 Mix the colors to create a paint/cartoon effect.
27443
27444 canny
27445 Apply Canny edge detector on all selected planes.
27446
27447 Default value is wires.
27448
27449 planes
27450 Select planes for filtering. By default all available planes are
27451 filtered.
27452
27453 Examples
27454
27455 • Standard edge detection with custom values for the hysteresis
27456 thresholding:
27457
27458 edgedetect=low=0.1:high=0.4
27459
27460 • Painting effect without thresholding:
27461
27462 edgedetect=mode=colormix:high=0
27463
27464 elbg
27465 Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
27466
27467 For each input image, the filter will compute the optimal mapping from
27468 the input to the output given the codebook length, that is the number
27469 of distinct output colors.
27470
27471 This filter accepts the following options.
27472
27473 codebook_length, l
27474 Set codebook length. The value must be a positive integer, and
27475 represents the number of distinct output colors. Default value is
27476 256.
27477
27478 nb_steps, n
27479 Set the maximum number of iterations to apply for computing the
27480 optimal mapping. The higher the value the better the result and the
27481 higher the computation time. Default value is 1.
27482
27483 seed, s
27484 Set a random seed, must be an integer included between 0 and
27485 UINT32_MAX. If not specified, or if explicitly set to -1, the
27486 filter will try to use a good random seed on a best effort basis.
27487
27488 pal8
27489 Set pal8 output pixel format. This option does not work with
27490 codebook length greater than 256. Default is disabled.
27491
27492 use_alpha
27493 Include alpha values in the quantization calculation. Allows
27494 creating palettized output images (e.g. PNG8) with multiple alpha
27495 smooth blending.
27496
27497 entropy
27498 Measure graylevel entropy in histogram of color channels of video
27499 frames.
27500
27501 It accepts the following parameters:
27502
27503 mode
27504 Can be either normal or diff. Default is normal.
27505
27506 diff mode measures entropy of histogram delta values, absolute
27507 differences between neighbour histogram values.
27508
27509 epx
27510 Apply the EPX magnification filter which is designed for pixel art.
27511
27512 It accepts the following option:
27513
27514 n Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX". Default
27515 is 3.
27516
27517 eq
27518 Set brightness, contrast, saturation and approximate gamma adjustment.
27519
27520 The filter accepts the following options:
27521
27522 contrast
27523 Set the contrast expression. The value must be a float value in
27524 range "-1000.0" to 1000.0. The default value is "1".
27525
27526 brightness
27527 Set the brightness expression. The value must be a float value in
27528 range "-1.0" to 1.0. The default value is "0".
27529
27530 saturation
27531 Set the saturation expression. The value must be a float in range
27532 0.0 to 3.0. The default value is "1".
27533
27534 gamma
27535 Set the gamma expression. The value must be a float in range 0.1 to
27536 10.0. The default value is "1".
27537
27538 gamma_r
27539 Set the gamma expression for red. The value must be a float in
27540 range 0.1 to 10.0. The default value is "1".
27541
27542 gamma_g
27543 Set the gamma expression for green. The value must be a float in
27544 range 0.1 to 10.0. The default value is "1".
27545
27546 gamma_b
27547 Set the gamma expression for blue. The value must be a float in
27548 range 0.1 to 10.0. The default value is "1".
27549
27550 gamma_weight
27551 Set the gamma weight expression. It can be used to reduce the
27552 effect of a high gamma value on bright image areas, e.g. keep them
27553 from getting overamplified and just plain white. The value must be
27554 a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
27555 correction all the way down while 1.0 leaves it at its full
27556 strength. Default is "1".
27557
27558 eval
27559 Set when the expressions for brightness, contrast, saturation and
27560 gamma expressions are evaluated.
27561
27562 It accepts the following values:
27563
27564 init
27565 only evaluate expressions once during the filter initialization
27566 or when a command is processed
27567
27568 frame
27569 evaluate expressions for each incoming frame
27570
27571 Default value is init.
27572
27573 The expressions accept the following parameters:
27574
27575 n frame count of the input frame starting from 0
27576
27577 pos byte position of the corresponding packet in the input file, NAN if
27578 unspecified
27579
27580 r frame rate of the input video, NAN if the input frame rate is
27581 unknown
27582
27583 t timestamp expressed in seconds, NAN if the input timestamp is
27584 unknown
27585
27586 Commands
27587
27588 The filter supports the following commands:
27589
27590 contrast
27591 Set the contrast expression.
27592
27593 brightness
27594 Set the brightness expression.
27595
27596 saturation
27597 Set the saturation expression.
27598
27599 gamma
27600 Set the gamma expression.
27601
27602 gamma_r
27603 Set the gamma_r expression.
27604
27605 gamma_g
27606 Set gamma_g expression.
27607
27608 gamma_b
27609 Set gamma_b expression.
27610
27611 gamma_weight
27612 Set gamma_weight expression.
27613
27614 The command accepts the same syntax of the corresponding option.
27615
27616 If the specified expression is not valid, it is kept at its current
27617 value.
27618
27619 erosion
27620 Apply erosion effect to the video.
27621
27622 This filter replaces the pixel by the local(3x3) minimum.
27623
27624 It accepts the following options:
27625
27626 threshold0
27627 threshold1
27628 threshold2
27629 threshold3
27630 Limit the maximum change for each plane, default is 65535. If 0,
27631 plane will remain unchanged.
27632
27633 coordinates
27634 Flag which specifies the pixel to refer to. Default is 255 i.e. all
27635 eight pixels are used.
27636
27637 Flags to local 3x3 coordinates maps like this:
27638
27639 1 2 3
27640 4 5
27641 6 7 8
27642
27643 Commands
27644
27645 This filter supports the all above options as commands.
27646
27647 estdif
27648 Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
27649 Deinterlacing Filter").
27650
27651 Spatial only filter that uses edge slope tracing algorithm to
27652 interpolate missing lines. It accepts the following parameters:
27653
27654 mode
27655 The interlacing mode to adopt. It accepts one of the following
27656 values:
27657
27658 frame
27659 Output one frame for each frame.
27660
27661 field
27662 Output one frame for each field.
27663
27664 The default value is "field".
27665
27666 parity
27667 The picture field parity assumed for the input interlaced video. It
27668 accepts one of the following values:
27669
27670 tff Assume the top field is first.
27671
27672 bff Assume the bottom field is first.
27673
27674 auto
27675 Enable automatic detection of field parity.
27676
27677 The default value is "auto". If the interlacing is unknown or the
27678 decoder does not export this information, top field first will be
27679 assumed.
27680
27681 deint
27682 Specify which frames to deinterlace. Accepts one of the following
27683 values:
27684
27685 all Deinterlace all frames.
27686
27687 interlaced
27688 Only deinterlace frames marked as interlaced.
27689
27690 The default value is "all".
27691
27692 rslope
27693 Specify the search radius for edge slope tracing. Default value is
27694 1. Allowed range is from 1 to 15.
27695
27696 redge
27697 Specify the search radius for best edge matching. Default value is
27698 2. Allowed range is from 0 to 15.
27699
27700 ecost
27701 Specify the edge cost for edge matching. Default value is 0.03125.
27702 Allowed range is from 0 to 1.
27703
27704 mcost
27705 Specify the middle cost for edge matching. Default value is 0.5.
27706 Allowed range is from 0 to 1.
27707
27708 dcost
27709 Specify the distance cost for edge matching. Default value is 0.5.
27710 Allowed range is from 0 to 1.
27711
27712 interp
27713 Specify the interpolation used. Default is 4-point interpolation.
27714 It accepts one of the following values:
27715
27716 2p Two-point interpolation.
27717
27718 4p Four-point interpolation.
27719
27720 6p Six-point interpolation.
27721
27722 Commands
27723
27724 This filter supports same commands as options.
27725
27726 exposure
27727 Adjust exposure of the video stream.
27728
27729 The filter accepts the following options:
27730
27731 exposure
27732 Set the exposure correction in EV. Allowed range is from -3.0 to
27733 3.0 EV Default value is 0 EV.
27734
27735 black
27736 Set the black level correction. Allowed range is from -1.0 to 1.0.
27737 Default value is 0.
27738
27739 Commands
27740
27741 This filter supports same commands as options.
27742
27743 extractplanes
27744 Extract color channel components from input video stream into separate
27745 grayscale video streams.
27746
27747 The filter accepts the following option:
27748
27749 planes
27750 Set plane(s) to extract.
27751
27752 Available values for planes are:
27753
27754 y
27755 u
27756 v
27757 a
27758 r
27759 g
27760 b
27761
27762 Choosing planes not available in the input will result in an error.
27763 That means you cannot select "r", "g", "b" planes with "y", "u",
27764 "v" planes at same time.
27765
27766 Examples
27767
27768 • Extract luma, u and v color channel component from input video
27769 frame into 3 grayscale outputs:
27770
27771 ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
27772
27773 fade
27774 Apply a fade-in/out effect to the input video.
27775
27776 It accepts the following parameters:
27777
27778 type, t
27779 The effect type can be either "in" for a fade-in, or "out" for a
27780 fade-out effect. Default is "in".
27781
27782 start_frame, s
27783 Specify the number of the frame to start applying the fade effect
27784 at. Default is 0.
27785
27786 nb_frames, n
27787 The number of frames that the fade effect lasts. At the end of the
27788 fade-in effect, the output video will have the same intensity as
27789 the input video. At the end of the fade-out transition, the output
27790 video will be filled with the selected color. Default is 25.
27791
27792 alpha
27793 If set to 1, fade only alpha channel, if one exists on the input.
27794 Default value is 0.
27795
27796 start_time, st
27797 Specify the timestamp (in seconds) of the frame to start to apply
27798 the fade effect. If both start_frame and start_time are specified,
27799 the fade will start at whichever comes last. Default is 0.
27800
27801 duration, d
27802 The number of seconds for which the fade effect has to last. At the
27803 end of the fade-in effect the output video will have the same
27804 intensity as the input video, at the end of the fade-out transition
27805 the output video will be filled with the selected color. If both
27806 duration and nb_frames are specified, duration is used. Default is
27807 0 (nb_frames is used by default).
27808
27809 color, c
27810 Specify the color of the fade. Default is "black".
27811
27812 Examples
27813
27814 • Fade in the first 30 frames of video:
27815
27816 fade=in:0:30
27817
27818 The command above is equivalent to:
27819
27820 fade=t=in:s=0:n=30
27821
27822 • Fade out the last 45 frames of a 200-frame video:
27823
27824 fade=out:155:45
27825 fade=type=out:start_frame=155:nb_frames=45
27826
27827 • Fade in the first 25 frames and fade out the last 25 frames of a
27828 1000-frame video:
27829
27830 fade=in:0:25, fade=out:975:25
27831
27832 • Make the first 5 frames yellow, then fade in from frame 5-24:
27833
27834 fade=in:5:20:color=yellow
27835
27836 • Fade in alpha over first 25 frames of video:
27837
27838 fade=in:0:25:alpha=1
27839
27840 • Make the first 5.5 seconds black, then fade in for 0.5 seconds:
27841
27842 fade=t=in:st=5.5:d=0.5
27843
27844 fftdnoiz
27845 Denoise frames using 3D FFT (frequency domain filtering).
27846
27847 The filter accepts the following options:
27848
27849 sigma
27850 Set the noise sigma constant. This sets denoising strength.
27851 Default value is 1. Allowed range is from 0 to 30. Using very high
27852 sigma with low overlap may give blocking artifacts.
27853
27854 amount
27855 Set amount of denoising. By default all detected noise is reduced.
27856 Default value is 1. Allowed range is from 0 to 1.
27857
27858 block
27859 Set size of block, Default is 4, can be 3, 4, 5 or 6. Actual size
27860 of block in pixels is 2 to power of block, so by default block size
27861 in pixels is 2^4 which is 16.
27862
27863 overlap
27864 Set block overlap. Default is 0.5. Allowed range is from 0.2 to
27865 0.8.
27866
27867 prev
27868 Set number of previous frames to use for denoising. By default is
27869 set to 0.
27870
27871 next
27872 Set number of next frames to to use for denoising. By default is
27873 set to 0.
27874
27875 planes
27876 Set planes which will be filtered, by default are all available
27877 filtered except alpha.
27878
27879 fftfilt
27880 Apply arbitrary expressions to samples in frequency domain
27881
27882 dc_Y
27883 Adjust the dc value (gain) of the luma plane of the image. The
27884 filter accepts an integer value in range 0 to 1000. The default
27885 value is set to 0.
27886
27887 dc_U
27888 Adjust the dc value (gain) of the 1st chroma plane of the image.
27889 The filter accepts an integer value in range 0 to 1000. The default
27890 value is set to 0.
27891
27892 dc_V
27893 Adjust the dc value (gain) of the 2nd chroma plane of the image.
27894 The filter accepts an integer value in range 0 to 1000. The default
27895 value is set to 0.
27896
27897 weight_Y
27898 Set the frequency domain weight expression for the luma plane.
27899
27900 weight_U
27901 Set the frequency domain weight expression for the 1st chroma
27902 plane.
27903
27904 weight_V
27905 Set the frequency domain weight expression for the 2nd chroma
27906 plane.
27907
27908 eval
27909 Set when the expressions are evaluated.
27910
27911 It accepts the following values:
27912
27913 init
27914 Only evaluate expressions once during the filter
27915 initialization.
27916
27917 frame
27918 Evaluate expressions for each incoming frame.
27919
27920 Default value is init.
27921
27922 The filter accepts the following variables:
27923
27924 X
27925 Y The coordinates of the current sample.
27926
27927 W
27928 H The width and height of the image.
27929
27930 N The number of input frame, starting from 0.
27931
27932 WS
27933 HS The size of FFT array for horizontal and vertical processing.
27934
27935 Examples
27936
27937 • High-pass:
27938
27939 fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
27940
27941 • Low-pass:
27942
27943 fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
27944
27945 • Sharpen:
27946
27947 fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
27948
27949 • Blur:
27950
27951 fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
27952
27953 field
27954 Extract a single field from an interlaced image using stride arithmetic
27955 to avoid wasting CPU time. The output frames are marked as non-
27956 interlaced.
27957
27958 The filter accepts the following options:
27959
27960 type
27961 Specify whether to extract the top (if the value is 0 or "top") or
27962 the bottom field (if the value is 1 or "bottom").
27963
27964 fieldhint
27965 Create new frames by copying the top and bottom fields from surrounding
27966 frames supplied as numbers by the hint file.
27967
27968 hint
27969 Set file containing hints: absolute/relative frame numbers.
27970
27971 There must be one line for each frame in a clip. Each line must
27972 contain two numbers separated by the comma, optionally followed by
27973 "-" or "+". Numbers supplied on each line of file can not be out
27974 of [N-1,N+1] where N is current frame number for "absolute" mode or
27975 out of [-1, 1] range for "relative" mode. First number tells from
27976 which frame to pick up top field and second number tells from which
27977 frame to pick up bottom field.
27978
27979 If optionally followed by "+" output frame will be marked as
27980 interlaced, else if followed by "-" output frame will be marked as
27981 progressive, else it will be marked same as input frame. If
27982 optionally followed by "t" output frame will use only top field, or
27983 in case of "b" it will use only bottom field. If line starts with
27984 "#" or ";" that line is skipped.
27985
27986 mode
27987 Can be item "absolute" or "relative". Default is "absolute".
27988
27989 Example of first several lines of "hint" file for "relative" mode:
27990
27991 0,0 - # first frame
27992 1,0 - # second frame, use third's frame top field and second's frame bottom field
27993 1,0 - # third frame, use fourth's frame top field and third's frame bottom field
27994 1,0 -
27995 0,0 -
27996 0,0 -
27997 1,0 -
27998 1,0 -
27999 1,0 -
28000 0,0 -
28001 0,0 -
28002 1,0 -
28003 1,0 -
28004 1,0 -
28005 0,0 -
28006
28007 fieldmatch
28008 Field matching filter for inverse telecine. It is meant to reconstruct
28009 the progressive frames from a telecined stream. The filter does not
28010 drop duplicated frames, so to achieve a complete inverse telecine
28011 "fieldmatch" needs to be followed by a decimation filter such as
28012 decimate in the filtergraph.
28013
28014 The separation of the field matching and the decimation is notably
28015 motivated by the possibility of inserting a de-interlacing filter
28016 fallback between the two. If the source has mixed telecined and real
28017 interlaced content, "fieldmatch" will not be able to match fields for
28018 the interlaced parts. But these remaining combed frames will be marked
28019 as interlaced, and thus can be de-interlaced by a later filter such as
28020 yadif before decimation.
28021
28022 In addition to the various configuration options, "fieldmatch" can take
28023 an optional second stream, activated through the ppsrc option. If
28024 enabled, the frames reconstruction will be based on the fields and
28025 frames from this second stream. This allows the first input to be pre-
28026 processed in order to help the various algorithms of the filter, while
28027 keeping the output lossless (assuming the fields are matched properly).
28028 Typically, a field-aware denoiser, or brightness/contrast adjustments
28029 can help.
28030
28031 Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
28032 project) and VIVTC/VFM (VapourSynth project). The later is a light
28033 clone of TFM from which "fieldmatch" is based on. While the semantic
28034 and usage are very close, some behaviour and options names can differ.
28035
28036 The decimate filter currently only works for constant frame rate input.
28037 If your input has mixed telecined (30fps) and progressive content with
28038 a lower framerate like 24fps use the following filterchain to produce
28039 the necessary cfr stream:
28040 "dejudder,fps=30000/1001,fieldmatch,decimate".
28041
28042 The filter accepts the following options:
28043
28044 order
28045 Specify the assumed field order of the input stream. Available
28046 values are:
28047
28048 auto
28049 Auto detect parity (use FFmpeg's internal parity value).
28050
28051 bff Assume bottom field first.
28052
28053 tff Assume top field first.
28054
28055 Note that it is sometimes recommended not to trust the parity
28056 announced by the stream.
28057
28058 Default value is auto.
28059
28060 mode
28061 Set the matching mode or strategy to use. pc mode is the safest in
28062 the sense that it won't risk creating jerkiness due to duplicate
28063 frames when possible, but if there are bad edits or blended fields
28064 it will end up outputting combed frames when a good match might
28065 actually exist. On the other hand, pcn_ub mode is the most risky in
28066 terms of creating jerkiness, but will almost always find a good
28067 frame if there is one. The other values are all somewhere in
28068 between pc and pcn_ub in terms of risking jerkiness and creating
28069 duplicate frames versus finding good matches in sections with bad
28070 edits, orphaned fields, blended fields, etc.
28071
28072 More details about p/c/n/u/b are available in p/c/n/u/b meaning
28073 section.
28074
28075 Available values are:
28076
28077 pc 2-way matching (p/c)
28078
28079 pc_n
28080 2-way matching, and trying 3rd match if still combed (p/c + n)
28081
28082 pc_u
28083 2-way matching, and trying 3rd match (same order) if still
28084 combed (p/c + u)
28085
28086 pc_n_ub
28087 2-way matching, trying 3rd match if still combed, and trying
28088 4th/5th matches if still combed (p/c + n + u/b)
28089
28090 pcn 3-way matching (p/c/n)
28091
28092 pcn_ub
28093 3-way matching, and trying 4th/5th matches if all 3 of the
28094 original matches are detected as combed (p/c/n + u/b)
28095
28096 The parenthesis at the end indicate the matches that would be used
28097 for that mode assuming order=tff (and field on auto or top).
28098
28099 In terms of speed pc mode is by far the fastest and pcn_ub is the
28100 slowest.
28101
28102 Default value is pc_n.
28103
28104 ppsrc
28105 Mark the main input stream as a pre-processed input, and enable the
28106 secondary input stream as the clean source to pick the fields from.
28107 See the filter introduction for more details. It is similar to the
28108 clip2 feature from VFM/TFM.
28109
28110 Default value is 0 (disabled).
28111
28112 field
28113 Set the field to match from. It is recommended to set this to the
28114 same value as order unless you experience matching failures with
28115 that setting. In certain circumstances changing the field that is
28116 used to match from can have a large impact on matching performance.
28117 Available values are:
28118
28119 auto
28120 Automatic (same value as order).
28121
28122 bottom
28123 Match from the bottom field.
28124
28125 top Match from the top field.
28126
28127 Default value is auto.
28128
28129 mchroma
28130 Set whether or not chroma is included during the match comparisons.
28131 In most cases it is recommended to leave this enabled. You should
28132 set this to 0 only if your clip has bad chroma problems such as
28133 heavy rainbowing or other artifacts. Setting this to 0 could also
28134 be used to speed things up at the cost of some accuracy.
28135
28136 Default value is 1.
28137
28138 y0
28139 y1 These define an exclusion band which excludes the lines between y0
28140 and y1 from being included in the field matching decision. An
28141 exclusion band can be used to ignore subtitles, a logo, or other
28142 things that may interfere with the matching. y0 sets the starting
28143 scan line and y1 sets the ending line; all lines in between y0 and
28144 y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
28145 same value will disable the feature. y0 and y1 defaults to 0.
28146
28147 scthresh
28148 Set the scene change detection threshold as a percentage of maximum
28149 change on the luma plane. Good values are in the "[8.0, 14.0]"
28150 range. Scene change detection is only relevant in case
28151 combmatch=sc. The range for scthresh is "[0.0, 100.0]".
28152
28153 Default value is 12.0.
28154
28155 combmatch
28156 When combatch is not none, "fieldmatch" will take into account the
28157 combed scores of matches when deciding what match to use as the
28158 final match. Available values are:
28159
28160 none
28161 No final matching based on combed scores.
28162
28163 sc Combed scores are only used when a scene change is detected.
28164
28165 full
28166 Use combed scores all the time.
28167
28168 Default is sc.
28169
28170 combdbg
28171 Force "fieldmatch" to calculate the combed metrics for certain
28172 matches and print them. This setting is known as micout in TFM/VFM
28173 vocabulary. Available values are:
28174
28175 none
28176 No forced calculation.
28177
28178 pcn Force p/c/n calculations.
28179
28180 pcnub
28181 Force p/c/n/u/b calculations.
28182
28183 Default value is none.
28184
28185 cthresh
28186 This is the area combing threshold used for combed frame detection.
28187 This essentially controls how "strong" or "visible" combing must be
28188 to be detected. Larger values mean combing must be more visible
28189 and smaller values mean combing can be less visible or strong and
28190 still be detected. Valid settings are from "-1" (every pixel will
28191 be detected as combed) to 255 (no pixel will be detected as
28192 combed). This is basically a pixel difference value. A good range
28193 is "[8, 12]".
28194
28195 Default value is 9.
28196
28197 chroma
28198 Sets whether or not chroma is considered in the combed frame
28199 decision. Only disable this if your source has chroma problems
28200 (rainbowing, etc.) that are causing problems for the combed frame
28201 detection with chroma enabled. Actually, using chroma=0 is usually
28202 more reliable, except for the case where there is chroma only
28203 combing in the source.
28204
28205 Default value is 0.
28206
28207 blockx
28208 blocky
28209 Respectively set the x-axis and y-axis size of the window used
28210 during combed frame detection. This has to do with the size of the
28211 area in which combpel pixels are required to be detected as combed
28212 for a frame to be declared combed. See the combpel parameter
28213 description for more info. Possible values are any number that is
28214 a power of 2 starting at 4 and going up to 512.
28215
28216 Default value is 16.
28217
28218 combpel
28219 The number of combed pixels inside any of the blocky by blockx size
28220 blocks on the frame for the frame to be detected as combed. While
28221 cthresh controls how "visible" the combing must be, this setting
28222 controls "how much" combing there must be in any localized area (a
28223 window defined by the blockx and blocky settings) on the frame.
28224 Minimum value is 0 and maximum is "blocky x blockx" (at which point
28225 no frames will ever be detected as combed). This setting is known
28226 as MI in TFM/VFM vocabulary.
28227
28228 Default value is 80.
28229
28230 p/c/n/u/b meaning
28231
28232 p/c/n
28233
28234 We assume the following telecined stream:
28235
28236 Top fields: 1 2 2 3 4
28237 Bottom fields: 1 2 3 4 4
28238
28239 The numbers correspond to the progressive frame the fields relate to.
28240 Here, the first two frames are progressive, the 3rd and 4th are combed,
28241 and so on.
28242
28243 When "fieldmatch" is configured to run a matching from bottom
28244 (field=bottom) this is how this input stream get transformed:
28245
28246 Input stream:
28247 T 1 2 2 3 4
28248 B 1 2 3 4 4 <-- matching reference
28249
28250 Matches: c c n n c
28251
28252 Output stream:
28253 T 1 2 3 4 4
28254 B 1 2 3 4 4
28255
28256 As a result of the field matching, we can see that some frames get
28257 duplicated. To perform a complete inverse telecine, you need to rely
28258 on a decimation filter after this operation. See for instance the
28259 decimate filter.
28260
28261 The same operation now matching from top fields (field=top) looks like
28262 this:
28263
28264 Input stream:
28265 T 1 2 2 3 4 <-- matching reference
28266 B 1 2 3 4 4
28267
28268 Matches: c c p p c
28269
28270 Output stream:
28271 T 1 2 2 3 4
28272 B 1 2 2 3 4
28273
28274 In these examples, we can see what p, c and n mean; basically, they
28275 refer to the frame and field of the opposite parity:
28276
28277 *<p matches the field of the opposite parity in the previous frame>
28278 *<c matches the field of the opposite parity in the current frame>
28279 *<n matches the field of the opposite parity in the next frame>
28280
28281 u/b
28282
28283 The u and b matching are a bit special in the sense that they match
28284 from the opposite parity flag. In the following examples, we assume
28285 that we are currently matching the 2nd frame (Top:2, bottom:2).
28286 According to the match, a 'x' is placed above and below each matched
28287 fields.
28288
28289 With bottom matching (field=bottom):
28290
28291 Match: c p n b u
28292
28293 x x x x x
28294 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
28295 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
28296 x x x x x
28297
28298 Output frames:
28299 2 1 2 2 2
28300 2 2 2 1 3
28301
28302 With top matching (field=top):
28303
28304 Match: c p n b u
28305
28306 x x x x x
28307 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
28308 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
28309 x x x x x
28310
28311 Output frames:
28312 2 2 2 1 2
28313 2 1 3 2 2
28314
28315 Examples
28316
28317 Simple IVTC of a top field first telecined stream:
28318
28319 fieldmatch=order=tff:combmatch=none, decimate
28320
28321 Advanced IVTC, with fallback on yadif for still combed frames:
28322
28323 fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
28324
28325 fieldorder
28326 Transform the field order of the input video.
28327
28328 It accepts the following parameters:
28329
28330 order
28331 The output field order. Valid values are tff for top field first or
28332 bff for bottom field first.
28333
28334 The default value is tff.
28335
28336 The transformation is done by shifting the picture content up or down
28337 by one line, and filling the remaining line with appropriate picture
28338 content. This method is consistent with most broadcast field order
28339 converters.
28340
28341 If the input video is not flagged as being interlaced, or it is already
28342 flagged as being of the required output field order, then this filter
28343 does not alter the incoming video.
28344
28345 It is very useful when converting to or from PAL DV material, which is
28346 bottom field first.
28347
28348 For example:
28349
28350 ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
28351
28352 fifo, afifo
28353 Buffer input images and send them when they are requested.
28354
28355 It is mainly useful when auto-inserted by the libavfilter framework.
28356
28357 It does not take parameters.
28358
28359 fillborders
28360 Fill borders of the input video, without changing video stream
28361 dimensions. Sometimes video can have garbage at the four edges and you
28362 may not want to crop video input to keep size multiple of some number.
28363
28364 This filter accepts the following options:
28365
28366 left
28367 Number of pixels to fill from left border.
28368
28369 right
28370 Number of pixels to fill from right border.
28371
28372 top Number of pixels to fill from top border.
28373
28374 bottom
28375 Number of pixels to fill from bottom border.
28376
28377 mode
28378 Set fill mode.
28379
28380 It accepts the following values:
28381
28382 smear
28383 fill pixels using outermost pixels
28384
28385 mirror
28386 fill pixels using mirroring (half sample symmetric)
28387
28388 fixed
28389 fill pixels with constant value
28390
28391 reflect
28392 fill pixels using reflecting (whole sample symmetric)
28393
28394 wrap
28395 fill pixels using wrapping
28396
28397 fade
28398 fade pixels to constant value
28399
28400 margins
28401 fill pixels at top and bottom with weighted averages pixels
28402 near borders
28403
28404 Default is smear.
28405
28406 color
28407 Set color for pixels in fixed or fade mode. Default is black.
28408
28409 Commands
28410
28411 This filter supports same commands as options. The command accepts the
28412 same syntax of the corresponding option.
28413
28414 If the specified expression is not valid, it is kept at its current
28415 value.
28416
28417 find_rect
28418 Find a rectangular object
28419
28420 It accepts the following options:
28421
28422 object
28423 Filepath of the object image, needs to be in gray8.
28424
28425 threshold
28426 Detection threshold, default is 0.5.
28427
28428 mipmaps
28429 Number of mipmaps, default is 3.
28430
28431 xmin, ymin, xmax, ymax
28432 Specifies the rectangle in which to search.
28433
28434 discard
28435 Discard frames where object is not detected. Default is disabled.
28436
28437 Examples
28438
28439 • Cover a rectangular object by the supplied image of a given video
28440 using ffmpeg:
28441
28442 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
28443
28444 floodfill
28445 Flood area with values of same pixel components with another values.
28446
28447 It accepts the following options:
28448
28449 x Set pixel x coordinate.
28450
28451 y Set pixel y coordinate.
28452
28453 s0 Set source #0 component value.
28454
28455 s1 Set source #1 component value.
28456
28457 s2 Set source #2 component value.
28458
28459 s3 Set source #3 component value.
28460
28461 d0 Set destination #0 component value.
28462
28463 d1 Set destination #1 component value.
28464
28465 d2 Set destination #2 component value.
28466
28467 d3 Set destination #3 component value.
28468
28469 format
28470 Convert the input video to one of the specified pixel formats.
28471 Libavfilter will try to pick one that is suitable as input to the next
28472 filter.
28473
28474 It accepts the following parameters:
28475
28476 pix_fmts
28477 A '|'-separated list of pixel format names, such as
28478 "pix_fmts=yuv420p|monow|rgb24".
28479
28480 Examples
28481
28482 • Convert the input video to the yuv420p format
28483
28484 format=pix_fmts=yuv420p
28485
28486 Convert the input video to any of the formats in the list
28487
28488 format=pix_fmts=yuv420p|yuv444p|yuv410p
28489
28490 fps
28491 Convert the video to specified constant frame rate by duplicating or
28492 dropping frames as necessary.
28493
28494 It accepts the following parameters:
28495
28496 fps The desired output frame rate. It accepts expressions containing
28497 the following constants:
28498
28499 source_fps
28500 The input's frame rate
28501
28502 ntsc
28503 NTSC frame rate of "30000/1001"
28504
28505 pal PAL frame rate of 25.0
28506
28507 film
28508 Film frame rate of 24.0
28509
28510 ntsc_film
28511 NTSC-film frame rate of "24000/1001"
28512
28513 The default is 25.
28514
28515 start_time
28516 Assume the first PTS should be the given value, in seconds. This
28517 allows for padding/trimming at the start of stream. By default, no
28518 assumption is made about the first frame's expected PTS, so no
28519 padding or trimming is done. For example, this could be set to 0
28520 to pad the beginning with duplicates of the first frame if a video
28521 stream starts after the audio stream or to trim any frames with a
28522 negative PTS.
28523
28524 round
28525 Timestamp (PTS) rounding method.
28526
28527 Possible values are:
28528
28529 zero
28530 round towards 0
28531
28532 inf round away from 0
28533
28534 down
28535 round towards -infinity
28536
28537 up round towards +infinity
28538
28539 near
28540 round to nearest
28541
28542 The default is "near".
28543
28544 eof_action
28545 Action performed when reading the last frame.
28546
28547 Possible values are:
28548
28549 round
28550 Use same timestamp rounding method as used for other frames.
28551
28552 pass
28553 Pass through last frame if input duration has not been reached
28554 yet.
28555
28556 The default is "round".
28557
28558 Alternatively, the options can be specified as a flat string:
28559 fps[:start_time[:round]].
28560
28561 See also the setpts filter.
28562
28563 Examples
28564
28565 • A typical usage in order to set the fps to 25:
28566
28567 fps=fps=25
28568
28569 • Sets the fps to 24, using abbreviation and rounding method to round
28570 to nearest:
28571
28572 fps=fps=film:round=near
28573
28574 framepack
28575 Pack two different video streams into a stereoscopic video, setting
28576 proper metadata on supported codecs. The two views should have the same
28577 size and framerate and processing will stop when the shorter video
28578 ends. Please note that you may conveniently adjust view properties with
28579 the scale and fps filters.
28580
28581 It accepts the following parameters:
28582
28583 format
28584 The desired packing format. Supported values are:
28585
28586 sbs The views are next to each other (default).
28587
28588 tab The views are on top of each other.
28589
28590 lines
28591 The views are packed by line.
28592
28593 columns
28594 The views are packed by column.
28595
28596 frameseq
28597 The views are temporally interleaved.
28598
28599 Some examples:
28600
28601 # Convert left and right views into a frame-sequential video
28602 ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
28603
28604 # Convert views into a side-by-side video with the same output resolution as the input
28605 ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
28606
28607 framerate
28608 Change the frame rate by interpolating new video output frames from the
28609 source frames.
28610
28611 This filter is not designed to function correctly with interlaced
28612 media. If you wish to change the frame rate of interlaced media then
28613 you are required to deinterlace before this filter and re-interlace
28614 after this filter.
28615
28616 A description of the accepted options follows.
28617
28618 fps Specify the output frames per second. This option can also be
28619 specified as a value alone. The default is 50.
28620
28621 interp_start
28622 Specify the start of a range where the output frame will be created
28623 as a linear interpolation of two frames. The range is [0-255], the
28624 default is 15.
28625
28626 interp_end
28627 Specify the end of a range where the output frame will be created
28628 as a linear interpolation of two frames. The range is [0-255], the
28629 default is 240.
28630
28631 scene
28632 Specify the level at which a scene change is detected as a value
28633 between 0 and 100 to indicate a new scene; a low value reflects a
28634 low probability for the current frame to introduce a new scene,
28635 while a higher value means the current frame is more likely to be
28636 one. The default is 8.2.
28637
28638 flags
28639 Specify flags influencing the filter process.
28640
28641 Available value for flags is:
28642
28643 scene_change_detect, scd
28644 Enable scene change detection using the value of the option
28645 scene. This flag is enabled by default.
28646
28647 framestep
28648 Select one frame every N-th frame.
28649
28650 This filter accepts the following option:
28651
28652 step
28653 Select frame after every "step" frames. Allowed values are
28654 positive integers higher than 0. Default value is 1.
28655
28656 freezedetect
28657 Detect frozen video.
28658
28659 This filter logs a message and sets frame metadata when it detects that
28660 the input video has no significant change in content during a specified
28661 duration. Video freeze detection calculates the mean average absolute
28662 difference of all the components of video frames and compares it to a
28663 noise floor.
28664
28665 The printed times and duration are expressed in seconds. The
28666 "lavfi.freezedetect.freeze_start" metadata key is set on the first
28667 frame whose timestamp equals or exceeds the detection duration and it
28668 contains the timestamp of the first frame of the freeze. The
28669 "lavfi.freezedetect.freeze_duration" and
28670 "lavfi.freezedetect.freeze_end" metadata keys are set on the first
28671 frame after the freeze.
28672
28673 The filter accepts the following options:
28674
28675 noise, n
28676 Set noise tolerance. Can be specified in dB (in case "dB" is
28677 appended to the specified value) or as a difference ratio between 0
28678 and 1. Default is -60dB, or 0.001.
28679
28680 duration, d
28681 Set freeze duration until notification (default is 2 seconds).
28682
28683 freezeframes
28684 Freeze video frames.
28685
28686 This filter freezes video frames using frame from 2nd input.
28687
28688 The filter accepts the following options:
28689
28690 first
28691 Set number of first frame from which to start freeze.
28692
28693 last
28694 Set number of last frame from which to end freeze.
28695
28696 replace
28697 Set number of frame from 2nd input which will be used instead of
28698 replaced frames.
28699
28700 frei0r
28701 Apply a frei0r effect to the input video.
28702
28703 To enable the compilation of this filter, you need to install the
28704 frei0r header and configure FFmpeg with "--enable-frei0r".
28705
28706 It accepts the following parameters:
28707
28708 filter_name
28709 The name of the frei0r effect to load. If the environment variable
28710 FREI0R_PATH is defined, the frei0r effect is searched for in each
28711 of the directories specified by the colon-separated list in
28712 FREI0R_PATH. Otherwise, the standard frei0r paths are searched, in
28713 this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
28714 /usr/lib/frei0r-1/.
28715
28716 filter_params
28717 A '|'-separated list of parameters to pass to the frei0r effect.
28718
28719 A frei0r effect parameter can be a boolean (its value is either "y" or
28720 "n"), a double, a color (specified as R/G/B, where R, G, and B are
28721 floating point numbers between 0.0 and 1.0, inclusive) or a color
28722 description as specified in the "Color" section in the ffmpeg-utils
28723 manual, a position (specified as X/Y, where X and Y are floating point
28724 numbers) and/or a string.
28725
28726 The number and types of parameters depend on the loaded effect. If an
28727 effect parameter is not specified, the default value is set.
28728
28729 Examples
28730
28731 • Apply the distort0r effect, setting the first two double
28732 parameters:
28733
28734 frei0r=filter_name=distort0r:filter_params=0.5|0.01
28735
28736 • Apply the colordistance effect, taking a color as the first
28737 parameter:
28738
28739 frei0r=colordistance:0.2/0.3/0.4
28740 frei0r=colordistance:violet
28741 frei0r=colordistance:0x112233
28742
28743 • Apply the perspective effect, specifying the top left and top right
28744 image positions:
28745
28746 frei0r=perspective:0.2/0.2|0.8/0.2
28747
28748 For more information, see <http://frei0r.dyne.org>
28749
28750 Commands
28751
28752 This filter supports the filter_params option as commands.
28753
28754 fspp
28755 Apply fast and simple postprocessing. It is a faster version of spp.
28756
28757 It splits (I)DCT into horizontal/vertical passes. Unlike the simple
28758 post- processing filter, one of them is performed once per block, not
28759 per pixel. This allows for much higher speed.
28760
28761 The filter accepts the following options:
28762
28763 quality
28764 Set quality. This option defines the number of levels for
28765 averaging. It accepts an integer in the range 4-5. Default value is
28766 4.
28767
28768 qp Force a constant quantization parameter. It accepts an integer in
28769 range 0-63. If not set, the filter will use the QP from the video
28770 stream (if available).
28771
28772 strength
28773 Set filter strength. It accepts an integer in range -15 to 32.
28774 Lower values mean more details but also more artifacts, while
28775 higher values make the image smoother but also blurrier. Default
28776 value is 0 X PSNR optimal.
28777
28778 use_bframe_qp
28779 Enable the use of the QP from the B-Frames if set to 1. Using this
28780 option may cause flicker since the B-Frames have often larger QP.
28781 Default is 0 (not enabled).
28782
28783 gblur
28784 Apply Gaussian blur filter.
28785
28786 The filter accepts the following options:
28787
28788 sigma
28789 Set horizontal sigma, standard deviation of Gaussian blur. Default
28790 is 0.5.
28791
28792 steps
28793 Set number of steps for Gaussian approximation. Default is 1.
28794
28795 planes
28796 Set which planes to filter. By default all planes are filtered.
28797
28798 sigmaV
28799 Set vertical sigma, if negative it will be same as "sigma".
28800 Default is "-1".
28801
28802 Commands
28803
28804 This filter supports same commands as options. The command accepts the
28805 same syntax of the corresponding option.
28806
28807 If the specified expression is not valid, it is kept at its current
28808 value.
28809
28810 geq
28811 Apply generic equation to each pixel.
28812
28813 The filter accepts the following options:
28814
28815 lum_expr, lum
28816 Set the luminance expression.
28817
28818 cb_expr, cb
28819 Set the chrominance blue expression.
28820
28821 cr_expr, cr
28822 Set the chrominance red expression.
28823
28824 alpha_expr, a
28825 Set the alpha expression.
28826
28827 red_expr, r
28828 Set the red expression.
28829
28830 green_expr, g
28831 Set the green expression.
28832
28833 blue_expr, b
28834 Set the blue expression.
28835
28836 The colorspace is selected according to the specified options. If one
28837 of the lum_expr, cb_expr, or cr_expr options is specified, the filter
28838 will automatically select a YCbCr colorspace. If one of the red_expr,
28839 green_expr, or blue_expr options is specified, it will select an RGB
28840 colorspace.
28841
28842 If one of the chrominance expression is not defined, it falls back on
28843 the other one. If no alpha expression is specified it will evaluate to
28844 opaque value. If none of chrominance expressions are specified, they
28845 will evaluate to the luminance expression.
28846
28847 The expressions can use the following variables and functions:
28848
28849 N The sequential number of the filtered frame, starting from 0.
28850
28851 X
28852 Y The coordinates of the current sample.
28853
28854 W
28855 H The width and height of the image.
28856
28857 SW
28858 SH Width and height scale depending on the currently filtered plane.
28859 It is the ratio between the corresponding luma plane number of
28860 pixels and the current plane ones. E.g. for YUV4:2:0 the values are
28861 "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
28862
28863 T Time of the current frame, expressed in seconds.
28864
28865 p(x, y)
28866 Return the value of the pixel at location (x,y) of the current
28867 plane.
28868
28869 lum(x, y)
28870 Return the value of the pixel at location (x,y) of the luminance
28871 plane.
28872
28873 cb(x, y)
28874 Return the value of the pixel at location (x,y) of the blue-
28875 difference chroma plane. Return 0 if there is no such plane.
28876
28877 cr(x, y)
28878 Return the value of the pixel at location (x,y) of the red-
28879 difference chroma plane. Return 0 if there is no such plane.
28880
28881 r(x, y)
28882 g(x, y)
28883 b(x, y)
28884 Return the value of the pixel at location (x,y) of the
28885 red/green/blue component. Return 0 if there is no such component.
28886
28887 alpha(x, y)
28888 Return the value of the pixel at location (x,y) of the alpha plane.
28889 Return 0 if there is no such plane.
28890
28891 psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
28892 bsum(x,y), alphasum(x,y)
28893 Sum of sample values in the rectangle from (0,0) to (x,y), this
28894 allows obtaining sums of samples within a rectangle. See the
28895 functions without the sum postfix.
28896
28897 interpolation
28898 Set one of interpolation methods:
28899
28900 nearest, n
28901 bilinear, b
28902
28903 Default is bilinear.
28904
28905 For functions, if x and y are outside the area, the value will be
28906 automatically clipped to the closer edge.
28907
28908 Please note that this filter can use multiple threads in which case
28909 each slice will have its own expression state. If you want to use only
28910 a single expression state because your expressions depend on previous
28911 state then you should limit the number of filter threads to 1.
28912
28913 Examples
28914
28915 • Flip the image horizontally:
28916
28917 geq=p(W-X\,Y)
28918
28919 • Generate a bidimensional sine wave, with angle "PI/3" and a
28920 wavelength of 100 pixels:
28921
28922 geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
28923
28924 • Generate a fancy enigmatic moving light:
28925
28926 nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
28927
28928 • Generate a quick emboss effect:
28929
28930 format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
28931
28932 • Modify RGB components depending on pixel position:
28933
28934 geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
28935
28936 • Create a radial gradient that is the same size as the input (also
28937 see the vignette filter):
28938
28939 geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
28940
28941 gradfun
28942 Fix the banding artifacts that are sometimes introduced into nearly
28943 flat regions by truncation to 8-bit color depth. Interpolate the
28944 gradients that should go where the bands are, and dither them.
28945
28946 It is designed for playback only. Do not use it prior to lossy
28947 compression, because compression tends to lose the dither and bring
28948 back the bands.
28949
28950 It accepts the following parameters:
28951
28952 strength
28953 The maximum amount by which the filter will change any one pixel.
28954 This is also the threshold for detecting nearly flat regions.
28955 Acceptable values range from .51 to 64; the default value is 1.2.
28956 Out-of-range values will be clipped to the valid range.
28957
28958 radius
28959 The neighborhood to fit the gradient to. A larger radius makes for
28960 smoother gradients, but also prevents the filter from modifying the
28961 pixels near detailed regions. Acceptable values are 8-32; the
28962 default value is 16. Out-of-range values will be clipped to the
28963 valid range.
28964
28965 Alternatively, the options can be specified as a flat string:
28966 strength[:radius]
28967
28968 Examples
28969
28970 • Apply the filter with a 3.5 strength and radius of 8:
28971
28972 gradfun=3.5:8
28973
28974 • Specify radius, omitting the strength (which will fall-back to the
28975 default value):
28976
28977 gradfun=radius=8
28978
28979 graphmonitor
28980 Show various filtergraph stats.
28981
28982 With this filter one can debug complete filtergraph. Especially issues
28983 with links filling with queued frames.
28984
28985 The filter accepts the following options:
28986
28987 size, s
28988 Set video output size. Default is hd720.
28989
28990 opacity, o
28991 Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
28992
28993 mode, m
28994 Set output mode, can be fulll or compact. In compact mode only
28995 filters with some queued frames have displayed stats.
28996
28997 flags, f
28998 Set flags which enable which stats are shown in video.
28999
29000 Available values for flags are:
29001
29002 queue
29003 Display number of queued frames in each link.
29004
29005 frame_count_in
29006 Display number of frames taken from filter.
29007
29008 frame_count_out
29009 Display number of frames given out from filter.
29010
29011 pts Display current filtered frame pts.
29012
29013 time
29014 Display current filtered frame time.
29015
29016 timebase
29017 Display time base for filter link.
29018
29019 format
29020 Display used format for filter link.
29021
29022 size
29023 Display video size or number of audio channels in case of audio
29024 used by filter link.
29025
29026 rate
29027 Display video frame rate or sample rate in case of audio used
29028 by filter link.
29029
29030 eof Display link output status.
29031
29032 sample_count_in
29033 Display number of samples taken from filter.
29034
29035 sample_count_out
29036 Display number of samples given out from filter.
29037
29038 rate, r
29039 Set upper limit for video rate of output stream, Default value is
29040 25. This guarantee that output video frame rate will not be higher
29041 than this value.
29042
29043 grayworld
29044 A color constancy filter that applies color correction based on the
29045 grayworld assumption
29046
29047 See:
29048 <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
29049
29050 The algorithm uses linear light, so input data should be linearized
29051 beforehand (and possibly correctly tagged).
29052
29053 ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
29054
29055 greyedge
29056 A color constancy variation filter which estimates scene illumination
29057 via grey edge algorithm and corrects the scene colors accordingly.
29058
29059 See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
29060
29061 The filter accepts the following options:
29062
29063 difford
29064 The order of differentiation to be applied on the scene. Must be
29065 chosen in the range [0,2] and default value is 1.
29066
29067 minknorm
29068 The Minkowski parameter to be used for calculating the Minkowski
29069 distance. Must be chosen in the range [0,20] and default value is
29070 1. Set to 0 for getting max value instead of calculating Minkowski
29071 distance.
29072
29073 sigma
29074 The standard deviation of Gaussian blur to be applied on the scene.
29075 Must be chosen in the range [0,1024.0] and default value = 1.
29076 floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
29077 is greater than 0.
29078
29079 Examples
29080
29081 • Grey Edge:
29082
29083 greyedge=difford=1:minknorm=5:sigma=2
29084
29085 • Max Edge:
29086
29087 greyedge=difford=1:minknorm=0:sigma=2
29088
29089 guided
29090 Apply guided filter for edge-preserving smoothing, dehazing and so on.
29091
29092 The filter accepts the following options:
29093
29094 radius
29095 Set the box radius in pixels. Allowed range is 1 to 20. Default is
29096 3.
29097
29098 eps Set regularization parameter (with square). Allowed range is 0 to
29099 1. Default is 0.01.
29100
29101 mode
29102 Set filter mode. Can be "basic" or "fast". Default is "basic".
29103
29104 sub Set subsampling ratio for "fast" mode. Range is 2 to 64. Default
29105 is 4. No subsampling occurs in "basic" mode.
29106
29107 guidance
29108 Set guidance mode. Can be "off" or "on". Default is "off". If
29109 "off", single input is required. If "on", two inputs of the same
29110 resolution and pixel format are required. The second input serves
29111 as the guidance.
29112
29113 planes
29114 Set planes to filter. Default is first only.
29115
29116 Commands
29117
29118 This filter supports the all above options as commands.
29119
29120 Examples
29121
29122 • Edge-preserving smoothing with guided filter:
29123
29124 ffmpeg -i in.png -vf guided out.png
29125
29126 • Dehazing, structure-transferring filtering, detail enhancement with
29127 guided filter. For the generation of guidance image, refer to
29128 paper "Guided Image Filtering". See:
29129 <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
29130
29131 ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
29132
29133 haldclut
29134 Apply a Hald CLUT to a video stream.
29135
29136 First input is the video stream to process, and second one is the Hald
29137 CLUT. The Hald CLUT input can be a simple picture or a complete video
29138 stream.
29139
29140 The filter accepts the following options:
29141
29142 shortest
29143 Force termination when the shortest input terminates. Default is 0.
29144
29145 repeatlast
29146 Continue applying the last CLUT after the end of the stream. A
29147 value of 0 disable the filter after the last frame of the CLUT is
29148 reached. Default is 1.
29149
29150 "haldclut" also has the same interpolation options as lut3d (both
29151 filters share the same internals).
29152
29153 This filter also supports the framesync options.
29154
29155 More information about the Hald CLUT can be found on Eskil Steenberg's
29156 website (Hald CLUT author) at
29157 <http://www.quelsolaar.com/technology/clut.html>.
29158
29159 Commands
29160
29161 This filter supports the "interp" option as commands.
29162
29163 Workflow examples
29164
29165 Hald CLUT video stream
29166
29167 Generate an identity Hald CLUT stream altered with various effects:
29168
29169 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
29170
29171 Note: make sure you use a lossless codec.
29172
29173 Then use it with "haldclut" to apply it on some random stream:
29174
29175 ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
29176
29177 The Hald CLUT will be applied to the 10 first seconds (duration of
29178 clut.nut), then the latest picture of that CLUT stream will be applied
29179 to the remaining frames of the "mandelbrot" stream.
29180
29181 Hald CLUT with preview
29182
29183 A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
29184 "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
29185 the biggest possible square starting at the top left of the picture.
29186 The remaining padding pixels (bottom or right) will be ignored. This
29187 area can be used to add a preview of the Hald CLUT.
29188
29189 Typically, the following generated Hald CLUT will be supported by the
29190 "haldclut" filter:
29191
29192 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
29193 pad=iw+320 [padded_clut];
29194 smptebars=s=320x256, split [a][b];
29195 [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
29196 [main][b] overlay=W-320" -frames:v 1 clut.png
29197
29198 It contains the original and a preview of the effect of the CLUT: SMPTE
29199 color bars are displayed on the right-top, and below the same color
29200 bars processed by the color changes.
29201
29202 Then, the effect of this Hald CLUT can be visualized with:
29203
29204 ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
29205
29206 hflip
29207 Flip the input video horizontally.
29208
29209 For example, to horizontally flip the input video with ffmpeg:
29210
29211 ffmpeg -i in.avi -vf "hflip" out.avi
29212
29213 histeq
29214 This filter applies a global color histogram equalization on a per-
29215 frame basis.
29216
29217 It can be used to correct video that has a compressed range of pixel
29218 intensities. The filter redistributes the pixel intensities to
29219 equalize their distribution across the intensity range. It may be
29220 viewed as an "automatically adjusting contrast filter". This filter is
29221 useful only for correcting degraded or poorly captured source video.
29222
29223 The filter accepts the following options:
29224
29225 strength
29226 Determine the amount of equalization to be applied. As the
29227 strength is reduced, the distribution of pixel intensities more-
29228 and-more approaches that of the input frame. The value must be a
29229 float number in the range [0,1] and defaults to 0.200.
29230
29231 intensity
29232 Set the maximum intensity that can generated and scale the output
29233 values appropriately. The strength should be set as desired and
29234 then the intensity can be limited if needed to avoid washing-out.
29235 The value must be a float number in the range [0,1] and defaults to
29236 0.210.
29237
29238 antibanding
29239 Set the antibanding level. If enabled the filter will randomly vary
29240 the luminance of output pixels by a small amount to avoid banding
29241 of the histogram. Possible values are "none", "weak" or "strong".
29242 It defaults to "none".
29243
29244 histogram
29245 Compute and draw a color distribution histogram for the input video.
29246
29247 The computed histogram is a representation of the color component
29248 distribution in an image.
29249
29250 Standard histogram displays the color components distribution in an
29251 image. Displays color graph for each color component. Shows
29252 distribution of the Y, U, V, A or R, G, B components, depending on
29253 input format, in the current frame. Below each graph a color component
29254 scale meter is shown.
29255
29256 The filter accepts the following options:
29257
29258 level_height
29259 Set height of level. Default value is 200. Allowed range is [50,
29260 2048].
29261
29262 scale_height
29263 Set height of color scale. Default value is 12. Allowed range is
29264 [0, 40].
29265
29266 display_mode
29267 Set display mode. It accepts the following values:
29268
29269 stack
29270 Per color component graphs are placed below each other.
29271
29272 parade
29273 Per color component graphs are placed side by side.
29274
29275 overlay
29276 Presents information identical to that in the "parade", except
29277 that the graphs representing color components are superimposed
29278 directly over one another.
29279
29280 Default is "stack".
29281
29282 levels_mode
29283 Set mode. Can be either "linear", or "logarithmic". Default is
29284 "linear".
29285
29286 components
29287 Set what color components to display. Default is 7.
29288
29289 fgopacity
29290 Set foreground opacity. Default is 0.7.
29291
29292 bgopacity
29293 Set background opacity. Default is 0.5.
29294
29295 colors_mode
29296 Set colors mode. It accepts the following values:
29297
29298 whiteonblack
29299 blackonwhite
29300 whiteongray
29301 blackongray
29302 coloronblack
29303 coloronwhite
29304 colorongray
29305 blackoncolor
29306 whiteoncolor
29307 grayoncolor
29308
29309 Default is "whiteonblack".
29310
29311 Examples
29312
29313 • Calculate and draw histogram:
29314
29315 ffplay -i input -vf histogram
29316
29317 hqdn3d
29318 This is a high precision/quality 3d denoise filter. It aims to reduce
29319 image noise, producing smooth images and making still images really
29320 still. It should enhance compressibility.
29321
29322 It accepts the following optional parameters:
29323
29324 luma_spatial
29325 A non-negative floating point number which specifies spatial luma
29326 strength. It defaults to 4.0.
29327
29328 chroma_spatial
29329 A non-negative floating point number which specifies spatial chroma
29330 strength. It defaults to 3.0*luma_spatial/4.0.
29331
29332 luma_tmp
29333 A floating point number which specifies luma temporal strength. It
29334 defaults to 6.0*luma_spatial/4.0.
29335
29336 chroma_tmp
29337 A floating point number which specifies chroma temporal strength.
29338 It defaults to luma_tmp*chroma_spatial/luma_spatial.
29339
29340 Commands
29341
29342 This filter supports same commands as options. The command accepts the
29343 same syntax of the corresponding option.
29344
29345 If the specified expression is not valid, it is kept at its current
29346 value.
29347
29348 hwdownload
29349 Download hardware frames to system memory.
29350
29351 The input must be in hardware frames, and the output a non-hardware
29352 format. Not all formats will be supported on the output - it may be
29353 necessary to insert an additional format filter immediately following
29354 in the graph to get the output in a supported format.
29355
29356 hwmap
29357 Map hardware frames to system memory or to another device.
29358
29359 This filter has several different modes of operation; which one is used
29360 depends on the input and output formats:
29361
29362 • Hardware frame input, normal frame output
29363
29364 Map the input frames to system memory and pass them to the output.
29365 If the original hardware frame is later required (for example,
29366 after overlaying something else on part of it), the hwmap filter
29367 can be used again in the next mode to retrieve it.
29368
29369 • Normal frame input, hardware frame output
29370
29371 If the input is actually a software-mapped hardware frame, then
29372 unmap it - that is, return the original hardware frame.
29373
29374 Otherwise, a device must be provided. Create new hardware surfaces
29375 on that device for the output, then map them back to the software
29376 format at the input and give those frames to the preceding filter.
29377 This will then act like the hwupload filter, but may be able to
29378 avoid an additional copy when the input is already in a compatible
29379 format.
29380
29381 • Hardware frame input and output
29382
29383 A device must be supplied for the output, either directly or with
29384 the derive_device option. The input and output devices must be of
29385 different types and compatible - the exact meaning of this is
29386 system-dependent, but typically it means that they must refer to
29387 the same underlying hardware context (for example, refer to the
29388 same graphics card).
29389
29390 If the input frames were originally created on the output device,
29391 then unmap to retrieve the original frames.
29392
29393 Otherwise, map the frames to the output device - create new
29394 hardware frames on the output corresponding to the frames on the
29395 input.
29396
29397 The following additional parameters are accepted:
29398
29399 mode
29400 Set the frame mapping mode. Some combination of:
29401
29402 read
29403 The mapped frame should be readable.
29404
29405 write
29406 The mapped frame should be writeable.
29407
29408 overwrite
29409 The mapping will always overwrite the entire frame.
29410
29411 This may improve performance in some cases, as the original
29412 contents of the frame need not be loaded.
29413
29414 direct
29415 The mapping must not involve any copying.
29416
29417 Indirect mappings to copies of frames are created in some cases
29418 where either direct mapping is not possible or it would have
29419 unexpected properties. Setting this flag ensures that the
29420 mapping is direct and will fail if that is not possible.
29421
29422 Defaults to read+write if not specified.
29423
29424 derive_device type
29425 Rather than using the device supplied at initialisation, instead
29426 derive a new device of type type from the device the input frames
29427 exist on.
29428
29429 reverse
29430 In a hardware to hardware mapping, map in reverse - create frames
29431 in the sink and map them back to the source. This may be necessary
29432 in some cases where a mapping in one direction is required but only
29433 the opposite direction is supported by the devices being used.
29434
29435 This option is dangerous - it may break the preceding filter in
29436 undefined ways if there are any additional constraints on that
29437 filter's output. Do not use it without fully understanding the
29438 implications of its use.
29439
29440 hwupload
29441 Upload system memory frames to hardware surfaces.
29442
29443 The device to upload to must be supplied when the filter is
29444 initialised. If using ffmpeg, select the appropriate device with the
29445 -filter_hw_device option or with the derive_device option. The input
29446 and output devices must be of different types and compatible - the
29447 exact meaning of this is system-dependent, but typically it means that
29448 they must refer to the same underlying hardware context (for example,
29449 refer to the same graphics card).
29450
29451 The following additional parameters are accepted:
29452
29453 derive_device type
29454 Rather than using the device supplied at initialisation, instead
29455 derive a new device of type type from the device the input frames
29456 exist on.
29457
29458 hwupload_cuda
29459 Upload system memory frames to a CUDA device.
29460
29461 It accepts the following optional parameters:
29462
29463 device
29464 The number of the CUDA device to use
29465
29466 hqx
29467 Apply a high-quality magnification filter designed for pixel art. This
29468 filter was originally created by Maxim Stepin.
29469
29470 It accepts the following option:
29471
29472 n Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
29473 "hq4x". Default is 3.
29474
29475 hstack
29476 Stack input videos horizontally.
29477
29478 All streams must be of same pixel format and of same height.
29479
29480 Note that this filter is faster than using overlay and pad filter to
29481 create same output.
29482
29483 The filter accepts the following option:
29484
29485 inputs
29486 Set number of input streams. Default is 2.
29487
29488 shortest
29489 If set to 1, force the output to terminate when the shortest input
29490 terminates. Default value is 0.
29491
29492 hsvhold
29493 Turns a certain HSV range into gray values.
29494
29495 This filter measures color difference between set HSV color in options
29496 and ones measured in video stream. Depending on options, output colors
29497 can be changed to be gray or not.
29498
29499 The filter accepts the following options:
29500
29501 hue Set the hue value which will be used in color difference
29502 calculation. Allowed range is from -360 to 360. Default value is
29503 0.
29504
29505 sat Set the saturation value which will be used in color difference
29506 calculation. Allowed range is from -1 to 1. Default value is 0.
29507
29508 val Set the value which will be used in color difference calculation.
29509 Allowed range is from -1 to 1. Default value is 0.
29510
29511 similarity
29512 Set similarity percentage with the key color. Allowed range is
29513 from 0 to 1. Default value is 0.01.
29514
29515 0.00001 matches only the exact key color, while 1.0 matches
29516 everything.
29517
29518 blend
29519 Blend percentage. Allowed range is from 0 to 1. Default value is
29520 0.
29521
29522 0.0 makes pixels either fully gray, or not gray at all.
29523
29524 Higher values result in more gray pixels, with a higher gray pixel
29525 the more similar the pixels color is to the key color.
29526
29527 hsvkey
29528 Turns a certain HSV range into transparency.
29529
29530 This filter measures color difference between set HSV color in options
29531 and ones measured in video stream. Depending on options, output colors
29532 can be changed to transparent by adding alpha channel.
29533
29534 The filter accepts the following options:
29535
29536 hue Set the hue value which will be used in color difference
29537 calculation. Allowed range is from -360 to 360. Default value is
29538 0.
29539
29540 sat Set the saturation value which will be used in color difference
29541 calculation. Allowed range is from -1 to 1. Default value is 0.
29542
29543 val Set the value which will be used in color difference calculation.
29544 Allowed range is from -1 to 1. Default value is 0.
29545
29546 similarity
29547 Set similarity percentage with the key color. Allowed range is
29548 from 0 to 1. Default value is 0.01.
29549
29550 0.00001 matches only the exact key color, while 1.0 matches
29551 everything.
29552
29553 blend
29554 Blend percentage. Allowed range is from 0 to 1. Default value is
29555 0.
29556
29557 0.0 makes pixels either fully transparent, or not transparent at
29558 all.
29559
29560 Higher values result in semi-transparent pixels, with a higher
29561 transparency the more similar the pixels color is to the key color.
29562
29563 hue
29564 Modify the hue and/or the saturation of the input.
29565
29566 It accepts the following parameters:
29567
29568 h Specify the hue angle as a number of degrees. It accepts an
29569 expression, and defaults to "0".
29570
29571 s Specify the saturation in the [-10,10] range. It accepts an
29572 expression and defaults to "1".
29573
29574 H Specify the hue angle as a number of radians. It accepts an
29575 expression, and defaults to "0".
29576
29577 b Specify the brightness in the [-10,10] range. It accepts an
29578 expression and defaults to "0".
29579
29580 h and H are mutually exclusive, and can't be specified at the same
29581 time.
29582
29583 The b, h, H and s option values are expressions containing the
29584 following constants:
29585
29586 n frame count of the input frame starting from 0
29587
29588 pts presentation timestamp of the input frame expressed in time base
29589 units
29590
29591 r frame rate of the input video, NAN if the input frame rate is
29592 unknown
29593
29594 t timestamp expressed in seconds, NAN if the input timestamp is
29595 unknown
29596
29597 tb time base of the input video
29598
29599 Examples
29600
29601 • Set the hue to 90 degrees and the saturation to 1.0:
29602
29603 hue=h=90:s=1
29604
29605 • Same command but expressing the hue in radians:
29606
29607 hue=H=PI/2:s=1
29608
29609 • Rotate hue and make the saturation swing between 0 and 2 over a
29610 period of 1 second:
29611
29612 hue="H=2*PI*t: s=sin(2*PI*t)+1"
29613
29614 • Apply a 3 seconds saturation fade-in effect starting at 0:
29615
29616 hue="s=min(t/3\,1)"
29617
29618 The general fade-in expression can be written as:
29619
29620 hue="s=min(0\, max((t-START)/DURATION\, 1))"
29621
29622 • Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
29623
29624 hue="s=max(0\, min(1\, (8-t)/3))"
29625
29626 The general fade-out expression can be written as:
29627
29628 hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
29629
29630 Commands
29631
29632 This filter supports the following commands:
29633
29634 b
29635 s
29636 h
29637 H Modify the hue and/or the saturation and/or brightness of the input
29638 video. The command accepts the same syntax of the corresponding
29639 option.
29640
29641 If the specified expression is not valid, it is kept at its current
29642 value.
29643
29644 huesaturation
29645 Apply hue-saturation-intensity adjustments to input video stream.
29646
29647 This filter operates in RGB colorspace.
29648
29649 This filter accepts the following options:
29650
29651 hue Set the hue shift in degrees to apply. Default is 0. Allowed range
29652 is from -180 to 180.
29653
29654 saturation
29655 Set the saturation shift. Default is 0. Allowed range is from -1
29656 to 1.
29657
29658 intensity
29659 Set the intensity shift. Default is 0. Allowed range is from -1 to
29660 1.
29661
29662 colors
29663 Set which primary and complementary colors are going to be
29664 adjusted. This options is set by providing one or multiple values.
29665 This can select multiple colors at once. By default all colors are
29666 selected.
29667
29668 r Adjust reds.
29669
29670 y Adjust yellows.
29671
29672 g Adjust greens.
29673
29674 c Adjust cyans.
29675
29676 b Adjust blues.
29677
29678 m Adjust magentas.
29679
29680 a Adjust all colors.
29681
29682 strength
29683 Set strength of filtering. Allowed range is from 0 to 100. Default
29684 value is 1.
29685
29686 rw, gw, bw
29687 Set weight for each RGB component. Allowed range is from 0 to 1.
29688 By default is set to 0.333, 0.334, 0.333. Those options are used
29689 in saturation and lightess processing.
29690
29691 lightness
29692 Set preserving lightness, by default is disabled. Adjusting hues
29693 can change lightness from original RGB triplet, with this option
29694 enabled lightness is kept at same value.
29695
29696 hysteresis
29697 Grow first stream into second stream by connecting components. This
29698 makes it possible to build more robust edge masks.
29699
29700 This filter accepts the following options:
29701
29702 planes
29703 Set which planes will be processed as bitmap, unprocessed planes
29704 will be copied from first stream. By default value 0xf, all planes
29705 will be processed.
29706
29707 threshold
29708 Set threshold which is used in filtering. If pixel component value
29709 is higher than this value filter algorithm for connecting
29710 components is activated. By default value is 0.
29711
29712 The "hysteresis" filter also supports the framesync options.
29713
29714 identity
29715 Obtain the identity score between two input videos.
29716
29717 This filter takes two input videos.
29718
29719 Both input videos must have the same resolution and pixel format for
29720 this filter to work correctly. Also it assumes that both inputs have
29721 the same number of frames, which are compared one by one.
29722
29723 The obtained per component, average, min and max identity score is
29724 printed through the logging system.
29725
29726 The filter stores the calculated identity scores of each frame in frame
29727 metadata.
29728
29729 In the below example the input file main.mpg being processed is
29730 compared with the reference file ref.mpg.
29731
29732 ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
29733
29734 idet
29735 Detect video interlacing type.
29736
29737 This filter tries to detect if the input frames are interlaced,
29738 progressive, top or bottom field first. It will also try to detect
29739 fields that are repeated between adjacent frames (a sign of telecine).
29740
29741 Single frame detection considers only immediately adjacent frames when
29742 classifying each frame. Multiple frame detection incorporates the
29743 classification history of previous frames.
29744
29745 The filter will log these metadata values:
29746
29747 single.current_frame
29748 Detected type of current frame using single-frame detection. One
29749 of: ``tff'' (top field first), ``bff'' (bottom field first),
29750 ``progressive'', or ``undetermined''
29751
29752 single.tff
29753 Cumulative number of frames detected as top field first using
29754 single-frame detection.
29755
29756 multiple.tff
29757 Cumulative number of frames detected as top field first using
29758 multiple-frame detection.
29759
29760 single.bff
29761 Cumulative number of frames detected as bottom field first using
29762 single-frame detection.
29763
29764 multiple.current_frame
29765 Detected type of current frame using multiple-frame detection. One
29766 of: ``tff'' (top field first), ``bff'' (bottom field first),
29767 ``progressive'', or ``undetermined''
29768
29769 multiple.bff
29770 Cumulative number of frames detected as bottom field first using
29771 multiple-frame detection.
29772
29773 single.progressive
29774 Cumulative number of frames detected as progressive using single-
29775 frame detection.
29776
29777 multiple.progressive
29778 Cumulative number of frames detected as progressive using multiple-
29779 frame detection.
29780
29781 single.undetermined
29782 Cumulative number of frames that could not be classified using
29783 single-frame detection.
29784
29785 multiple.undetermined
29786 Cumulative number of frames that could not be classified using
29787 multiple-frame detection.
29788
29789 repeated.current_frame
29790 Which field in the current frame is repeated from the last. One of
29791 ``neither'', ``top'', or ``bottom''.
29792
29793 repeated.neither
29794 Cumulative number of frames with no repeated field.
29795
29796 repeated.top
29797 Cumulative number of frames with the top field repeated from the
29798 previous frame's top field.
29799
29800 repeated.bottom
29801 Cumulative number of frames with the bottom field repeated from the
29802 previous frame's bottom field.
29803
29804 The filter accepts the following options:
29805
29806 intl_thres
29807 Set interlacing threshold.
29808
29809 prog_thres
29810 Set progressive threshold.
29811
29812 rep_thres
29813 Threshold for repeated field detection.
29814
29815 half_life
29816 Number of frames after which a given frame's contribution to the
29817 statistics is halved (i.e., it contributes only 0.5 to its
29818 classification). The default of 0 means that all frames seen are
29819 given full weight of 1.0 forever.
29820
29821 analyze_interlaced_flag
29822 When this is not 0 then idet will use the specified number of
29823 frames to determine if the interlaced flag is accurate, it will not
29824 count undetermined frames. If the flag is found to be accurate it
29825 will be used without any further computations, if it is found to be
29826 inaccurate it will be cleared without any further computations.
29827 This allows inserting the idet filter as a low computational method
29828 to clean up the interlaced flag
29829
29830 il
29831 Deinterleave or interleave fields.
29832
29833 This filter allows one to process interlaced images fields without
29834 deinterlacing them. Deinterleaving splits the input frame into 2 fields
29835 (so called half pictures). Odd lines are moved to the top half of the
29836 output image, even lines to the bottom half. You can process (filter)
29837 them independently and then re-interleave them.
29838
29839 The filter accepts the following options:
29840
29841 luma_mode, l
29842 chroma_mode, c
29843 alpha_mode, a
29844 Available values for luma_mode, chroma_mode and alpha_mode are:
29845
29846 none
29847 Do nothing.
29848
29849 deinterleave, d
29850 Deinterleave fields, placing one above the other.
29851
29852 interleave, i
29853 Interleave fields. Reverse the effect of deinterleaving.
29854
29855 Default value is "none".
29856
29857 luma_swap, ls
29858 chroma_swap, cs
29859 alpha_swap, as
29860 Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
29861 value is 0.
29862
29863 Commands
29864
29865 This filter supports the all above options as commands.
29866
29867 inflate
29868 Apply inflate effect to the video.
29869
29870 This filter replaces the pixel by the local(3x3) average by taking into
29871 account only values higher than the pixel.
29872
29873 It accepts the following options:
29874
29875 threshold0
29876 threshold1
29877 threshold2
29878 threshold3
29879 Limit the maximum change for each plane, default is 65535. If 0,
29880 plane will remain unchanged.
29881
29882 Commands
29883
29884 This filter supports the all above options as commands.
29885
29886 interlace
29887 Simple interlacing filter from progressive contents. This interleaves
29888 upper (or lower) lines from odd frames with lower (or upper) lines from
29889 even frames, halving the frame rate and preserving image height.
29890
29891 Original Original New Frame
29892 Frame 'j' Frame 'j+1' (tff)
29893 ========== =========== ==================
29894 Line 0 --------------------> Frame 'j' Line 0
29895 Line 1 Line 1 ----> Frame 'j+1' Line 1
29896 Line 2 ---------------------> Frame 'j' Line 2
29897 Line 3 Line 3 ----> Frame 'j+1' Line 3
29898 ... ... ...
29899 New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
29900
29901 It accepts the following optional parameters:
29902
29903 scan
29904 This determines whether the interlaced frame is taken from the even
29905 (tff - default) or odd (bff) lines of the progressive frame.
29906
29907 lowpass
29908 Vertical lowpass filter to avoid twitter interlacing and reduce
29909 moire patterns.
29910
29911 0, off
29912 Disable vertical lowpass filter
29913
29914 1, linear
29915 Enable linear filter (default)
29916
29917 2, complex
29918 Enable complex filter. This will slightly less reduce twitter
29919 and moire but better retain detail and subjective sharpness
29920 impression.
29921
29922 kerndeint
29923 Deinterlace input video by applying Donald Graft's adaptive kernel
29924 deinterling. Work on interlaced parts of a video to produce progressive
29925 frames.
29926
29927 The description of the accepted parameters follows.
29928
29929 thresh
29930 Set the threshold which affects the filter's tolerance when
29931 determining if a pixel line must be processed. It must be an
29932 integer in the range [0,255] and defaults to 10. A value of 0 will
29933 result in applying the process on every pixels.
29934
29935 map Paint pixels exceeding the threshold value to white if set to 1.
29936 Default is 0.
29937
29938 order
29939 Set the fields order. Swap fields if set to 1, leave fields alone
29940 if 0. Default is 0.
29941
29942 sharp
29943 Enable additional sharpening if set to 1. Default is 0.
29944
29945 twoway
29946 Enable twoway sharpening if set to 1. Default is 0.
29947
29948 Examples
29949
29950 • Apply default values:
29951
29952 kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
29953
29954 • Enable additional sharpening:
29955
29956 kerndeint=sharp=1
29957
29958 • Paint processed pixels in white:
29959
29960 kerndeint=map=1
29961
29962 kirsch
29963 Apply kirsch operator to input video stream.
29964
29965 The filter accepts the following option:
29966
29967 planes
29968 Set which planes will be processed, unprocessed planes will be
29969 copied. By default value 0xf, all planes will be processed.
29970
29971 scale
29972 Set value which will be multiplied with filtered result.
29973
29974 delta
29975 Set value which will be added to filtered result.
29976
29977 Commands
29978
29979 This filter supports the all above options as commands.
29980
29981 lagfun
29982 Slowly update darker pixels.
29983
29984 This filter makes short flashes of light appear longer. This filter
29985 accepts the following options:
29986
29987 decay
29988 Set factor for decaying. Default is .95. Allowed range is from 0 to
29989 1.
29990
29991 planes
29992 Set which planes to filter. Default is all. Allowed range is from 0
29993 to 15.
29994
29995 Commands
29996
29997 This filter supports the all above options as commands.
29998
29999 lenscorrection
30000 Correct radial lens distortion
30001
30002 This filter can be used to correct for radial distortion as can result
30003 from the use of wide angle lenses, and thereby re-rectify the image. To
30004 find the right parameters one can use tools available for example as
30005 part of opencv or simply trial-and-error. To use opencv use the
30006 calibration sample (under samples/cpp) from the opencv sources and
30007 extract the k1 and k2 coefficients from the resulting matrix.
30008
30009 Note that effectively the same filter is available in the open-source
30010 tools Krita and Digikam from the KDE project.
30011
30012 In contrast to the vignette filter, which can also be used to
30013 compensate lens errors, this filter corrects the distortion of the
30014 image, whereas vignette corrects the brightness distribution, so you
30015 may want to use both filters together in certain cases, though you will
30016 have to take care of ordering, i.e. whether vignetting should be
30017 applied before or after lens correction.
30018
30019 Options
30020
30021 The filter accepts the following options:
30022
30023 cx Relative x-coordinate of the focal point of the image, and thereby
30024 the center of the distortion. This value has a range [0,1] and is
30025 expressed as fractions of the image width. Default is 0.5.
30026
30027 cy Relative y-coordinate of the focal point of the image, and thereby
30028 the center of the distortion. This value has a range [0,1] and is
30029 expressed as fractions of the image height. Default is 0.5.
30030
30031 k1 Coefficient of the quadratic correction term. This value has a
30032 range [-1,1]. 0 means no correction. Default is 0.
30033
30034 k2 Coefficient of the double quadratic correction term. This value has
30035 a range [-1,1]. 0 means no correction. Default is 0.
30036
30037 i Set interpolation type. Can be "nearest" or "bilinear". Default is
30038 "nearest".
30039
30040 fc Specify the color of the unmapped pixels. For the syntax of this
30041 option, check the "Color" section in the ffmpeg-utils manual.
30042 Default color is "black@0".
30043
30044 The formula that generates the correction is:
30045
30046 r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
30047
30048 where r_0 is halve of the image diagonal and r_src and r_tgt are the
30049 distances from the focal point in the source and target images,
30050 respectively.
30051
30052 Commands
30053
30054 This filter supports the all above options as commands.
30055
30056 lensfun
30057 Apply lens correction via the lensfun library
30058 (<http://lensfun.sourceforge.net/>).
30059
30060 The "lensfun" filter requires the camera make, camera model, and lens
30061 model to apply the lens correction. The filter will load the lensfun
30062 database and query it to find the corresponding camera and lens entries
30063 in the database. As long as these entries can be found with the given
30064 options, the filter can perform corrections on frames. Note that
30065 incomplete strings will result in the filter choosing the best match
30066 with the given options, and the filter will output the chosen camera
30067 and lens models (logged with level "info"). You must provide the make,
30068 camera model, and lens model as they are required.
30069
30070 The filter accepts the following options:
30071
30072 make
30073 The make of the camera (for example, "Canon"). This option is
30074 required.
30075
30076 model
30077 The model of the camera (for example, "Canon EOS 100D"). This
30078 option is required.
30079
30080 lens_model
30081 The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
30082 IS STM"). This option is required.
30083
30084 mode
30085 The type of correction to apply. The following values are valid
30086 options:
30087
30088 vignetting
30089 Enables fixing lens vignetting.
30090
30091 geometry
30092 Enables fixing lens geometry. This is the default.
30093
30094 subpixel
30095 Enables fixing chromatic aberrations.
30096
30097 vig_geo
30098 Enables fixing lens vignetting and lens geometry.
30099
30100 vig_subpixel
30101 Enables fixing lens vignetting and chromatic aberrations.
30102
30103 distortion
30104 Enables fixing both lens geometry and chromatic aberrations.
30105
30106 all Enables all possible corrections.
30107
30108 focal_length
30109 The focal length of the image/video (zoom; expected constant for
30110 video). For example, a 18--55mm lens has focal length range of
30111 [18--55], so a value in that range should be chosen when using that
30112 lens. Default 18.
30113
30114 aperture
30115 The aperture of the image/video (expected constant for video). Note
30116 that aperture is only used for vignetting correction. Default 3.5.
30117
30118 focus_distance
30119 The focus distance of the image/video (expected constant for
30120 video). Note that focus distance is only used for vignetting and
30121 only slightly affects the vignetting correction process. If
30122 unknown, leave it at the default value (which is 1000).
30123
30124 scale
30125 The scale factor which is applied after transformation. After
30126 correction the video is no longer necessarily rectangular. This
30127 parameter controls how much of the resulting image is visible. The
30128 value 0 means that a value will be chosen automatically such that
30129 there is little or no unmapped area in the output image. 1.0 means
30130 that no additional scaling is done. Lower values may result in more
30131 of the corrected image being visible, while higher values may avoid
30132 unmapped areas in the output.
30133
30134 target_geometry
30135 The target geometry of the output image/video. The following values
30136 are valid options:
30137
30138 rectilinear (default)
30139 fisheye
30140 panoramic
30141 equirectangular
30142 fisheye_orthographic
30143 fisheye_stereographic
30144 fisheye_equisolid
30145 fisheye_thoby
30146 reverse
30147 Apply the reverse of image correction (instead of correcting
30148 distortion, apply it).
30149
30150 interpolation
30151 The type of interpolation used when correcting distortion. The
30152 following values are valid options:
30153
30154 nearest
30155 linear (default)
30156 lanczos
30157
30158 Examples
30159
30160 • Apply lens correction with make "Canon", camera model "Canon EOS
30161 100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
30162 focal length of "18" and aperture of "8.0".
30163
30164 ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8 -c:v h264 -b:v 8000k output.mov
30165
30166 • Apply the same as before, but only for the first 5 seconds of
30167 video.
30168
30169 ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8:enable='lte(t\,5)' -c:v h264 -b:v 8000k output.mov
30170
30171 libvmaf
30172 Obtain the VMAF (Video Multi-Method Assessment Fusion) score between
30173 two input videos.
30174
30175 The first input is the encoded video, and the second input is the
30176 reference video.
30177
30178 The obtained VMAF score is printed through the logging system.
30179
30180 It requires Netflix's vmaf library (libvmaf) as a pre-requisite. After
30181 installing the library it can be enabled using: "./configure
30182 --enable-libvmaf". If no model path is specified it uses the default
30183 model: "vmaf_v0.6.1.pkl".
30184
30185 The filter has following options:
30186
30187 model_path
30188 Set the model path which is to be used for SVM. Default value:
30189 "/usr/local/share/model/vmaf_v0.6.1.pkl"
30190
30191 log_path
30192 Set the file path to be used to store logs.
30193
30194 log_fmt
30195 Set the format of the log file (csv, json or xml).
30196
30197 enable_transform
30198 This option can enable/disable the "score_transform" applied to the
30199 final predicted VMAF score, if you have specified score_transform
30200 option in the input parameter file passed to "run_vmaf_training.py"
30201 Default value: "false"
30202
30203 phone_model
30204 Invokes the phone model which will generate VMAF scores higher than
30205 in the regular model, which is more suitable for laptop, TV, etc.
30206 viewing conditions. Default value: "false"
30207
30208 psnr
30209 Enables computing psnr along with vmaf. Default value: "false"
30210
30211 ssim
30212 Enables computing ssim along with vmaf. Default value: "false"
30213
30214 ms_ssim
30215 Enables computing ms_ssim along with vmaf. Default value: "false"
30216
30217 pool
30218 Set the pool method to be used for computing vmaf. Options are
30219 "min", "harmonic_mean" or "mean" (default).
30220
30221 n_threads
30222 Set number of threads to be used when computing vmaf. Default
30223 value: 0, which makes use of all available logical processors.
30224
30225 n_subsample
30226 Set interval for frame subsampling used when computing vmaf.
30227 Default value: 1
30228
30229 enable_conf_interval
30230 Enables confidence interval. Default value: "false"
30231
30232 This filter also supports the framesync options.
30233
30234 Examples
30235
30236 • On the below examples the input file main.mpg being processed is
30237 compared with the reference file ref.mpg.
30238
30239 ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf -f null -
30240
30241 • Example with options:
30242
30243 ffmpeg -i main.mpg -i ref.mpg -lavfi libvmaf="psnr=1:log_fmt=json" -f null -
30244
30245 • Example with options and different containers:
30246
30247 ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=psnr=1:log_fmt=json" -f null -
30248
30249 limitdiff
30250 Apply limited difference filter using second and optionally third video
30251 stream.
30252
30253 The filter accepts the following options:
30254
30255 threshold
30256 Set the threshold to use when allowing certain differences between
30257 video streams. Any absolute difference value lower or exact than
30258 this threshold will pick pixel components from first video stream.
30259
30260 elasticity
30261 Set the elasticity of soft thresholding when processing video
30262 streams. This value multiplied with first one sets second
30263 threshold. Any absolute difference value greater or exact than
30264 second threshold will pick pixel components from second video
30265 stream. For values between those two threshold linear interpolation
30266 between first and second video stream will be used.
30267
30268 reference
30269 Enable the reference (third) video stream processing. By default is
30270 disabled. If set, this video stream will be used for calculating
30271 absolute difference with first video stream.
30272
30273 planes
30274 Specify which planes will be processed. Defaults to all available.
30275
30276 Commands
30277
30278 This filter supports the all above options as commands except option
30279 reference.
30280
30281 limiter
30282 Limits the pixel components values to the specified range [min, max].
30283
30284 The filter accepts the following options:
30285
30286 min Lower bound. Defaults to the lowest allowed value for the input.
30287
30288 max Upper bound. Defaults to the highest allowed value for the input.
30289
30290 planes
30291 Specify which planes will be processed. Defaults to all available.
30292
30293 Commands
30294
30295 This filter supports the all above options as commands.
30296
30297 loop
30298 Loop video frames.
30299
30300 The filter accepts the following options:
30301
30302 loop
30303 Set the number of loops. Setting this value to -1 will result in
30304 infinite loops. Default is 0.
30305
30306 size
30307 Set maximal size in number of frames. Default is 0.
30308
30309 start
30310 Set first frame of loop. Default is 0.
30311
30312 Examples
30313
30314 • Loop single first frame infinitely:
30315
30316 loop=loop=-1:size=1:start=0
30317
30318 • Loop single first frame 10 times:
30319
30320 loop=loop=10:size=1:start=0
30321
30322 • Loop 10 first frames 5 times:
30323
30324 loop=loop=5:size=10:start=0
30325
30326 lut1d
30327 Apply a 1D LUT to an input video.
30328
30329 The filter accepts the following options:
30330
30331 file
30332 Set the 1D LUT file name.
30333
30334 Currently supported formats:
30335
30336 cube
30337 Iridas
30338
30339 csp cineSpace
30340
30341 interp
30342 Select interpolation mode.
30343
30344 Available values are:
30345
30346 nearest
30347 Use values from the nearest defined point.
30348
30349 linear
30350 Interpolate values using the linear interpolation.
30351
30352 cosine
30353 Interpolate values using the cosine interpolation.
30354
30355 cubic
30356 Interpolate values using the cubic interpolation.
30357
30358 spline
30359 Interpolate values using the spline interpolation.
30360
30361 Commands
30362
30363 This filter supports the all above options as commands.
30364
30365 lut3d
30366 Apply a 3D LUT to an input video.
30367
30368 The filter accepts the following options:
30369
30370 file
30371 Set the 3D LUT file name.
30372
30373 Currently supported formats:
30374
30375 3dl AfterEffects
30376
30377 cube
30378 Iridas
30379
30380 dat DaVinci
30381
30382 m3d Pandora
30383
30384 csp cineSpace
30385
30386 interp
30387 Select interpolation mode.
30388
30389 Available values are:
30390
30391 nearest
30392 Use values from the nearest defined point.
30393
30394 trilinear
30395 Interpolate values using the 8 points defining a cube.
30396
30397 tetrahedral
30398 Interpolate values using a tetrahedron.
30399
30400 pyramid
30401 Interpolate values using a pyramid.
30402
30403 prism
30404 Interpolate values using a prism.
30405
30406 Commands
30407
30408 This filter supports the "interp" option as commands.
30409
30410 lumakey
30411 Turn certain luma values into transparency.
30412
30413 The filter accepts the following options:
30414
30415 threshold
30416 Set the luma which will be used as base for transparency. Default
30417 value is 0.
30418
30419 tolerance
30420 Set the range of luma values to be keyed out. Default value is
30421 0.01.
30422
30423 softness
30424 Set the range of softness. Default value is 0. Use this to control
30425 gradual transition from zero to full transparency.
30426
30427 Commands
30428
30429 This filter supports same commands as options. The command accepts the
30430 same syntax of the corresponding option.
30431
30432 If the specified expression is not valid, it is kept at its current
30433 value.
30434
30435 lut, lutrgb, lutyuv
30436 Compute a look-up table for binding each pixel component input value to
30437 an output value, and apply it to the input video.
30438
30439 lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
30440 input video.
30441
30442 These filters accept the following parameters:
30443
30444 c0 set first pixel component expression
30445
30446 c1 set second pixel component expression
30447
30448 c2 set third pixel component expression
30449
30450 c3 set fourth pixel component expression, corresponds to the alpha
30451 component
30452
30453 r set red component expression
30454
30455 g set green component expression
30456
30457 b set blue component expression
30458
30459 a alpha component expression
30460
30461 y set Y/luminance component expression
30462
30463 u set U/Cb component expression
30464
30465 v set V/Cr component expression
30466
30467 Each of them specifies the expression to use for computing the lookup
30468 table for the corresponding pixel component values.
30469
30470 The exact component associated to each of the c* options depends on the
30471 format in input.
30472
30473 The lut filter requires either YUV or RGB pixel formats in input,
30474 lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
30475
30476 The expressions can contain the following constants and functions:
30477
30478 w
30479 h The input width and height.
30480
30481 val The input value for the pixel component.
30482
30483 clipval
30484 The input value, clipped to the minval-maxval range.
30485
30486 maxval
30487 The maximum value for the pixel component.
30488
30489 minval
30490 The minimum value for the pixel component.
30491
30492 negval
30493 The negated value for the pixel component value, clipped to the
30494 minval-maxval range; it corresponds to the expression
30495 "maxval-clipval+minval".
30496
30497 clip(val)
30498 The computed value in val, clipped to the minval-maxval range.
30499
30500 gammaval(gamma)
30501 The computed gamma correction value of the pixel component value,
30502 clipped to the minval-maxval range. It corresponds to the
30503 expression
30504 "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
30505
30506 All expressions default to "val".
30507
30508 Commands
30509
30510 This filter supports same commands as options.
30511
30512 Examples
30513
30514 • Negate input video:
30515
30516 lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
30517 lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
30518
30519 The above is the same as:
30520
30521 lutrgb="r=negval:g=negval:b=negval"
30522 lutyuv="y=negval:u=negval:v=negval"
30523
30524 • Negate luminance:
30525
30526 lutyuv=y=negval
30527
30528 • Remove chroma components, turning the video into a graytone image:
30529
30530 lutyuv="u=128:v=128"
30531
30532 • Apply a luma burning effect:
30533
30534 lutyuv="y=2*val"
30535
30536 • Remove green and blue components:
30537
30538 lutrgb="g=0:b=0"
30539
30540 • Set a constant alpha channel value on input:
30541
30542 format=rgba,lutrgb=a="maxval-minval/2"
30543
30544 • Correct luminance gamma by a factor of 0.5:
30545
30546 lutyuv=y=gammaval(0.5)
30547
30548 • Discard least significant bits of luma:
30549
30550 lutyuv=y='bitand(val, 128+64+32)'
30551
30552 • Technicolor like effect:
30553
30554 lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
30555
30556 lut2, tlut2
30557 The "lut2" filter takes two input streams and outputs one stream.
30558
30559 The "tlut2" (time lut2) filter takes two consecutive frames from one
30560 single stream.
30561
30562 This filter accepts the following parameters:
30563
30564 c0 set first pixel component expression
30565
30566 c1 set second pixel component expression
30567
30568 c2 set third pixel component expression
30569
30570 c3 set fourth pixel component expression, corresponds to the alpha
30571 component
30572
30573 d set output bit depth, only available for "lut2" filter. By default
30574 is 0, which means bit depth is automatically picked from first
30575 input format.
30576
30577 The "lut2" filter also supports the framesync options.
30578
30579 Each of them specifies the expression to use for computing the lookup
30580 table for the corresponding pixel component values.
30581
30582 The exact component associated to each of the c* options depends on the
30583 format in inputs.
30584
30585 The expressions can contain the following constants:
30586
30587 w
30588 h The input width and height.
30589
30590 x The first input value for the pixel component.
30591
30592 y The second input value for the pixel component.
30593
30594 bdx The first input video bit depth.
30595
30596 bdy The second input video bit depth.
30597
30598 All expressions default to "x".
30599
30600 Commands
30601
30602 This filter supports the all above options as commands except option
30603 "d".
30604
30605 Examples
30606
30607 • Highlight differences between two RGB video streams:
30608
30609 lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1)'
30610
30611 • Highlight differences between two YUV video streams:
30612
30613 lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1)'
30614
30615 • Show max difference between two video streams:
30616
30617 lut2='if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1)))'
30618
30619 maskedclamp
30620 Clamp the first input stream with the second input and third input
30621 stream.
30622
30623 Returns the value of first stream to be between second input stream -
30624 "undershoot" and third input stream + "overshoot".
30625
30626 This filter accepts the following options:
30627
30628 undershoot
30629 Default value is 0.
30630
30631 overshoot
30632 Default value is 0.
30633
30634 planes
30635 Set which planes will be processed as bitmap, unprocessed planes
30636 will be copied from first stream. By default value 0xf, all planes
30637 will be processed.
30638
30639 Commands
30640
30641 This filter supports the all above options as commands.
30642
30643 maskedmax
30644 Merge the second and third input stream into output stream using
30645 absolute differences between second input stream and first input stream
30646 and absolute difference between third input stream and first input
30647 stream. The picked value will be from second input stream if second
30648 absolute difference is greater than first one or from third input
30649 stream otherwise.
30650
30651 This filter accepts the following options:
30652
30653 planes
30654 Set which planes will be processed as bitmap, unprocessed planes
30655 will be copied from first stream. By default value 0xf, all planes
30656 will be processed.
30657
30658 Commands
30659
30660 This filter supports the all above options as commands.
30661
30662 maskedmerge
30663 Merge the first input stream with the second input stream using per
30664 pixel weights in the third input stream.
30665
30666 A value of 0 in the third stream pixel component means that pixel
30667 component from first stream is returned unchanged, while maximum value
30668 (eg. 255 for 8-bit videos) means that pixel component from second
30669 stream is returned unchanged. Intermediate values define the amount of
30670 merging between both input stream's pixel components.
30671
30672 This filter accepts the following options:
30673
30674 planes
30675 Set which planes will be processed as bitmap, unprocessed planes
30676 will be copied from first stream. By default value 0xf, all planes
30677 will be processed.
30678
30679 Commands
30680
30681 This filter supports the all above options as commands.
30682
30683 maskedmin
30684 Merge the second and third input stream into output stream using
30685 absolute differences between second input stream and first input stream
30686 and absolute difference between third input stream and first input
30687 stream. The picked value will be from second input stream if second
30688 absolute difference is less than first one or from third input stream
30689 otherwise.
30690
30691 This filter accepts the following options:
30692
30693 planes
30694 Set which planes will be processed as bitmap, unprocessed planes
30695 will be copied from first stream. By default value 0xf, all planes
30696 will be processed.
30697
30698 Commands
30699
30700 This filter supports the all above options as commands.
30701
30702 maskedthreshold
30703 Pick pixels comparing absolute difference of two video streams with
30704 fixed threshold.
30705
30706 If absolute difference between pixel component of first and second
30707 video stream is equal or lower than user supplied threshold than pixel
30708 component from first video stream is picked, otherwise pixel component
30709 from second video stream is picked.
30710
30711 This filter accepts the following options:
30712
30713 threshold
30714 Set threshold used when picking pixels from absolute difference
30715 from two input video streams.
30716
30717 planes
30718 Set which planes will be processed as bitmap, unprocessed planes
30719 will be copied from second stream. By default value 0xf, all
30720 planes will be processed.
30721
30722 Commands
30723
30724 This filter supports the all above options as commands.
30725
30726 maskfun
30727 Create mask from input video.
30728
30729 For example it is useful to create motion masks after "tblend" filter.
30730
30731 This filter accepts the following options:
30732
30733 low Set low threshold. Any pixel component lower or exact than this
30734 value will be set to 0.
30735
30736 high
30737 Set high threshold. Any pixel component higher than this value will
30738 be set to max value allowed for current pixel format.
30739
30740 planes
30741 Set planes to filter, by default all available planes are filtered.
30742
30743 fill
30744 Fill all frame pixels with this value.
30745
30746 sum Set max average pixel value for frame. If sum of all pixel
30747 components is higher that this average, output frame will be
30748 completely filled with value set by fill option. Typically useful
30749 for scene changes when used in combination with "tblend" filter.
30750
30751 Commands
30752
30753 This filter supports the all above options as commands.
30754
30755 mcdeint
30756 Apply motion-compensation deinterlacing.
30757
30758 It needs one field per frame as input and must thus be used together
30759 with yadif=1/3 or equivalent.
30760
30761 This filter is only available in ffmpeg version 4.4 or earlier.
30762
30763 This filter accepts the following options:
30764
30765 mode
30766 Set the deinterlacing mode.
30767
30768 It accepts one of the following values:
30769
30770 fast
30771 medium
30772 slow
30773 use iterative motion estimation
30774
30775 extra_slow
30776 like slow, but use multiple reference frames.
30777
30778 Default value is fast.
30779
30780 parity
30781 Set the picture field parity assumed for the input video. It must
30782 be one of the following values:
30783
30784 0, tff
30785 assume top field first
30786
30787 1, bff
30788 assume bottom field first
30789
30790 Default value is bff.
30791
30792 qp Set per-block quantization parameter (QP) used by the internal
30793 encoder.
30794
30795 Higher values should result in a smoother motion vector field but
30796 less optimal individual vectors. Default value is 1.
30797
30798 median
30799 Pick median pixel from certain rectangle defined by radius.
30800
30801 This filter accepts the following options:
30802
30803 radius
30804 Set horizontal radius size. Default value is 1. Allowed range is
30805 integer from 1 to 127.
30806
30807 planes
30808 Set which planes to process. Default is 15, which is all available
30809 planes.
30810
30811 radiusV
30812 Set vertical radius size. Default value is 0. Allowed range is
30813 integer from 0 to 127. If it is 0, value will be picked from
30814 horizontal "radius" option.
30815
30816 percentile
30817 Set median percentile. Default value is 0.5. Default value of 0.5
30818 will pick always median values, while 0 will pick minimum values,
30819 and 1 maximum values.
30820
30821 Commands
30822
30823 This filter supports same commands as options. The command accepts the
30824 same syntax of the corresponding option.
30825
30826 If the specified expression is not valid, it is kept at its current
30827 value.
30828
30829 mergeplanes
30830 Merge color channel components from several video streams.
30831
30832 The filter accepts up to 4 input streams, and merge selected input
30833 planes to the output video.
30834
30835 This filter accepts the following options:
30836
30837 mapping
30838 Set input to output plane mapping. Default is 0.
30839
30840 The mappings is specified as a bitmap. It should be specified as a
30841 hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
30842 mapping for the first plane of the output stream. 'A' sets the
30843 number of the input stream to use (from 0 to 3), and 'a' the plane
30844 number of the corresponding input to use (from 0 to 3). The rest of
30845 the mappings is similar, 'Bb' describes the mapping for the output
30846 stream second plane, 'Cc' describes the mapping for the output
30847 stream third plane and 'Dd' describes the mapping for the output
30848 stream fourth plane.
30849
30850 format
30851 Set output pixel format. Default is "yuva444p".
30852
30853 Examples
30854
30855 • Merge three gray video streams of same width and height into single
30856 video stream:
30857
30858 [a0][a1][a2]mergeplanes=0x001020:yuv444p
30859
30860 • Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
30861 video stream:
30862
30863 [a0][a1]mergeplanes=0x00010210:yuva444p
30864
30865 • Swap Y and A plane in yuva444p stream:
30866
30867 format=yuva444p,mergeplanes=0x03010200:yuva444p
30868
30869 • Swap U and V plane in yuv420p stream:
30870
30871 format=yuv420p,mergeplanes=0x000201:yuv420p
30872
30873 • Cast a rgb24 clip to yuv444p:
30874
30875 format=rgb24,mergeplanes=0x000102:yuv444p
30876
30877 mestimate
30878 Estimate and export motion vectors using block matching algorithms.
30879 Motion vectors are stored in frame side data to be used by other
30880 filters.
30881
30882 This filter accepts the following options:
30883
30884 method
30885 Specify the motion estimation method. Accepts one of the following
30886 values:
30887
30888 esa Exhaustive search algorithm.
30889
30890 tss Three step search algorithm.
30891
30892 tdls
30893 Two dimensional logarithmic search algorithm.
30894
30895 ntss
30896 New three step search algorithm.
30897
30898 fss Four step search algorithm.
30899
30900 ds Diamond search algorithm.
30901
30902 hexbs
30903 Hexagon-based search algorithm.
30904
30905 epzs
30906 Enhanced predictive zonal search algorithm.
30907
30908 umh Uneven multi-hexagon search algorithm.
30909
30910 Default value is esa.
30911
30912 mb_size
30913 Macroblock size. Default 16.
30914
30915 search_param
30916 Search parameter. Default 7.
30917
30918 midequalizer
30919 Apply Midway Image Equalization effect using two video streams.
30920
30921 Midway Image Equalization adjusts a pair of images to have the same
30922 histogram, while maintaining their dynamics as much as possible. It's
30923 useful for e.g. matching exposures from a pair of stereo cameras.
30924
30925 This filter has two inputs and one output, which must be of same pixel
30926 format, but may be of different sizes. The output of filter is first
30927 input adjusted with midway histogram of both inputs.
30928
30929 This filter accepts the following option:
30930
30931 planes
30932 Set which planes to process. Default is 15, which is all available
30933 planes.
30934
30935 minterpolate
30936 Convert the video to specified frame rate using motion interpolation.
30937
30938 This filter accepts the following options:
30939
30940 fps Specify the output frame rate. This can be rational e.g.
30941 "60000/1001". Frames are dropped if fps is lower than source fps.
30942 Default 60.
30943
30944 mi_mode
30945 Motion interpolation mode. Following values are accepted:
30946
30947 dup Duplicate previous or next frame for interpolating new ones.
30948
30949 blend
30950 Blend source frames. Interpolated frame is mean of previous and
30951 next frames.
30952
30953 mci Motion compensated interpolation. Following options are
30954 effective when this mode is selected:
30955
30956 mc_mode
30957 Motion compensation mode. Following values are accepted:
30958
30959 obmc
30960 Overlapped block motion compensation.
30961
30962 aobmc
30963 Adaptive overlapped block motion compensation. Window
30964 weighting coefficients are controlled adaptively
30965 according to the reliabilities of the neighboring
30966 motion vectors to reduce oversmoothing.
30967
30968 Default mode is obmc.
30969
30970 me_mode
30971 Motion estimation mode. Following values are accepted:
30972
30973 bidir
30974 Bidirectional motion estimation. Motion vectors are
30975 estimated for each source frame in both forward and
30976 backward directions.
30977
30978 bilat
30979 Bilateral motion estimation. Motion vectors are
30980 estimated directly for interpolated frame.
30981
30982 Default mode is bilat.
30983
30984 me The algorithm to be used for motion estimation. Following
30985 values are accepted:
30986
30987 esa Exhaustive search algorithm.
30988
30989 tss Three step search algorithm.
30990
30991 tdls
30992 Two dimensional logarithmic search algorithm.
30993
30994 ntss
30995 New three step search algorithm.
30996
30997 fss Four step search algorithm.
30998
30999 ds Diamond search algorithm.
31000
31001 hexbs
31002 Hexagon-based search algorithm.
31003
31004 epzs
31005 Enhanced predictive zonal search algorithm.
31006
31007 umh Uneven multi-hexagon search algorithm.
31008
31009 Default algorithm is epzs.
31010
31011 mb_size
31012 Macroblock size. Default 16.
31013
31014 search_param
31015 Motion estimation search parameter. Default 32.
31016
31017 vsbmc
31018 Enable variable-size block motion compensation. Motion
31019 estimation is applied with smaller block sizes at object
31020 boundaries in order to make the them less blur. Default is
31021 0 (disabled).
31022
31023 scd Scene change detection method. Scene change leads motion vectors to
31024 be in random direction. Scene change detection replace interpolated
31025 frames by duplicate ones. May not be needed for other modes.
31026 Following values are accepted:
31027
31028 none
31029 Disable scene change detection.
31030
31031 fdiff
31032 Frame difference. Corresponding pixel values are compared and
31033 if it satisfies scd_threshold scene change is detected.
31034
31035 Default method is fdiff.
31036
31037 scd_threshold
31038 Scene change detection threshold. Default is 10..
31039
31040 mix
31041 Mix several video input streams into one video stream.
31042
31043 A description of the accepted options follows.
31044
31045 inputs
31046 The number of inputs. If unspecified, it defaults to 2.
31047
31048 weights
31049 Specify weight of each input video stream as sequence. Each weight
31050 is separated by space. If number of weights is smaller than number
31051 of frames last specified weight will be used for all remaining
31052 unset weights.
31053
31054 scale
31055 Specify scale, if it is set it will be multiplied with sum of each
31056 weight multiplied with pixel values to give final destination pixel
31057 value. By default scale is auto scaled to sum of weights.
31058
31059 duration
31060 Specify how end of stream is determined.
31061
31062 longest
31063 The duration of the longest input. (default)
31064
31065 shortest
31066 The duration of the shortest input.
31067
31068 first
31069 The duration of the first input.
31070
31071 Commands
31072
31073 This filter supports the following commands:
31074
31075 weights
31076 scale
31077 Syntax is same as option with same name.
31078
31079 monochrome
31080 Convert video to gray using custom color filter.
31081
31082 A description of the accepted options follows.
31083
31084 cb Set the chroma blue spot. Allowed range is from -1 to 1. Default
31085 value is 0.
31086
31087 cr Set the chroma red spot. Allowed range is from -1 to 1. Default
31088 value is 0.
31089
31090 size
31091 Set the color filter size. Allowed range is from .1 to 10. Default
31092 value is 1.
31093
31094 high
31095 Set the highlights strength. Allowed range is from 0 to 1. Default
31096 value is 0.
31097
31098 Commands
31099
31100 This filter supports the all above options as commands.
31101
31102 morpho
31103 This filter allows to apply main morphological grayscale transforms,
31104 erode and dilate with arbitrary structures set in second input stream.
31105
31106 Unlike naive implementation and much slower performance in erosion and
31107 dilation filters, when speed is critical "morpho" filter should be used
31108 instead.
31109
31110 A description of accepted options follows,
31111
31112 mode
31113 Set morphological transform to apply, can be:
31114
31115 erode
31116 dilate
31117 open
31118 close
31119 gradient
31120 tophat
31121 blackhat
31122
31123 Default is "erode".
31124
31125 planes
31126 Set planes to filter, by default all planes except alpha are
31127 filtered.
31128
31129 structure
31130 Set which structure video frames will be processed from second
31131 input stream, can be first or all. Default is all.
31132
31133 The "morpho" filter also supports the framesync options.
31134
31135 Commands
31136
31137 This filter supports same commands as options.
31138
31139 mpdecimate
31140 Drop frames that do not differ greatly from the previous frame in order
31141 to reduce frame rate.
31142
31143 The main use of this filter is for very-low-bitrate encoding (e.g.
31144 streaming over dialup modem), but it could in theory be used for fixing
31145 movies that were inverse-telecined incorrectly.
31146
31147 A description of the accepted options follows.
31148
31149 max Set the maximum number of consecutive frames which can be dropped
31150 (if positive), or the minimum interval between dropped frames (if
31151 negative). If the value is 0, the frame is dropped disregarding the
31152 number of previous sequentially dropped frames.
31153
31154 Default value is 0.
31155
31156 hi
31157 lo
31158 frac
31159 Set the dropping threshold values.
31160
31161 Values for hi and lo are for 8x8 pixel blocks and represent actual
31162 pixel value differences, so a threshold of 64 corresponds to 1 unit
31163 of difference for each pixel, or the same spread out differently
31164 over the block.
31165
31166 A frame is a candidate for dropping if no 8x8 blocks differ by more
31167 than a threshold of hi, and if no more than frac blocks (1 meaning
31168 the whole image) differ by more than a threshold of lo.
31169
31170 Default value for hi is 64*12, default value for lo is 64*5, and
31171 default value for frac is 0.33.
31172
31173 msad
31174 Obtain the MSAD (Mean Sum of Absolute Differences) between two input
31175 videos.
31176
31177 This filter takes two input videos.
31178
31179 Both input videos must have the same resolution and pixel format for
31180 this filter to work correctly. Also it assumes that both inputs have
31181 the same number of frames, which are compared one by one.
31182
31183 The obtained per component, average, min and max MSAD is printed
31184 through the logging system.
31185
31186 The filter stores the calculated MSAD of each frame in frame metadata.
31187
31188 In the below example the input file main.mpg being processed is
31189 compared with the reference file ref.mpg.
31190
31191 ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
31192
31193 negate
31194 Negate (invert) the input video.
31195
31196 It accepts the following option:
31197
31198 components
31199 Set components to negate.
31200
31201 Available values for components are:
31202
31203 y
31204 u
31205 v
31206 a
31207 r
31208 g
31209 b
31210 negate_alpha
31211 With value 1, it negates the alpha component, if present. Default
31212 value is 0.
31213
31214 Commands
31215
31216 This filter supports same commands as options.
31217
31218 nlmeans
31219 Denoise frames using Non-Local Means algorithm.
31220
31221 Each pixel is adjusted by looking for other pixels with similar
31222 contexts. This context similarity is defined by comparing their
31223 surrounding patches of size pxp. Patches are searched in an area of rxr
31224 around the pixel.
31225
31226 Note that the research area defines centers for patches, which means
31227 some patches will be made of pixels outside that research area.
31228
31229 The filter accepts the following options.
31230
31231 s Set denoising strength. Default is 1.0. Must be in range [1.0,
31232 30.0].
31233
31234 p Set patch size. Default is 7. Must be odd number in range [0, 99].
31235
31236 pc Same as p but for chroma planes.
31237
31238 The default value is 0 and means automatic.
31239
31240 r Set research size. Default is 15. Must be odd number in range [0,
31241 99].
31242
31243 rc Same as r but for chroma planes.
31244
31245 The default value is 0 and means automatic.
31246
31247 nnedi
31248 Deinterlace video using neural network edge directed interpolation.
31249
31250 This filter accepts the following options:
31251
31252 weights
31253 Mandatory option, without binary file filter can not work.
31254 Currently file can be found here:
31255 https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
31256
31257 deint
31258 Set which frames to deinterlace, by default it is "all". Can be
31259 "all" or "interlaced".
31260
31261 field
31262 Set mode of operation.
31263
31264 Can be one of the following:
31265
31266 af Use frame flags, both fields.
31267
31268 a Use frame flags, single field.
31269
31270 t Use top field only.
31271
31272 b Use bottom field only.
31273
31274 tf Use both fields, top first.
31275
31276 bf Use both fields, bottom first.
31277
31278 planes
31279 Set which planes to process, by default filter process all frames.
31280
31281 nsize
31282 Set size of local neighborhood around each pixel, used by the
31283 predictor neural network.
31284
31285 Can be one of the following:
31286
31287 s8x6
31288 s16x6
31289 s32x6
31290 s48x6
31291 s8x4
31292 s16x4
31293 s32x4
31294 nns Set the number of neurons in predictor neural network. Can be one
31295 of the following:
31296
31297 n16
31298 n32
31299 n64
31300 n128
31301 n256
31302 qual
31303 Controls the number of different neural network predictions that
31304 are blended together to compute the final output value. Can be
31305 "fast", default or "slow".
31306
31307 etype
31308 Set which set of weights to use in the predictor. Can be one of
31309 the following:
31310
31311 a, abs
31312 weights trained to minimize absolute error
31313
31314 s, mse
31315 weights trained to minimize squared error
31316
31317 pscrn
31318 Controls whether or not the prescreener neural network is used to
31319 decide which pixels should be processed by the predictor neural
31320 network and which can be handled by simple cubic interpolation.
31321 The prescreener is trained to know whether cubic interpolation will
31322 be sufficient for a pixel or whether it should be predicted by the
31323 predictor nn. The computational complexity of the prescreener nn
31324 is much less than that of the predictor nn. Since most pixels can
31325 be handled by cubic interpolation, using the prescreener generally
31326 results in much faster processing. The prescreener is pretty
31327 accurate, so the difference between using it and not using it is
31328 almost always unnoticeable.
31329
31330 Can be one of the following:
31331
31332 none
31333 original
31334 new
31335 new2
31336 new3
31337
31338 Default is "new".
31339
31340 Commands
31341
31342 This filter supports same commands as options, excluding weights
31343 option.
31344
31345 noformat
31346 Force libavfilter not to use any of the specified pixel formats for the
31347 input to the next filter.
31348
31349 It accepts the following parameters:
31350
31351 pix_fmts
31352 A '|'-separated list of pixel format names, such as
31353 pix_fmts=yuv420p|monow|rgb24".
31354
31355 Examples
31356
31357 • Force libavfilter to use a format different from yuv420p for the
31358 input to the vflip filter:
31359
31360 noformat=pix_fmts=yuv420p,vflip
31361
31362 • Convert the input video to any of the formats not contained in the
31363 list:
31364
31365 noformat=yuv420p|yuv444p|yuv410p
31366
31367 noise
31368 Add noise on video input frame.
31369
31370 The filter accepts the following options:
31371
31372 all_seed
31373 c0_seed
31374 c1_seed
31375 c2_seed
31376 c3_seed
31377 Set noise seed for specific pixel component or all pixel components
31378 in case of all_seed. Default value is 123457.
31379
31380 all_strength, alls
31381 c0_strength, c0s
31382 c1_strength, c1s
31383 c2_strength, c2s
31384 c3_strength, c3s
31385 Set noise strength for specific pixel component or all pixel
31386 components in case all_strength. Default value is 0. Allowed range
31387 is [0, 100].
31388
31389 all_flags, allf
31390 c0_flags, c0f
31391 c1_flags, c1f
31392 c2_flags, c2f
31393 c3_flags, c3f
31394 Set pixel component flags or set flags for all components if
31395 all_flags. Available values for component flags are:
31396
31397 a averaged temporal noise (smoother)
31398
31399 p mix random noise with a (semi)regular pattern
31400
31401 t temporal noise (noise pattern changes between frames)
31402
31403 u uniform noise (gaussian otherwise)
31404
31405 Examples
31406
31407 Add temporal and uniform noise to input video:
31408
31409 noise=alls=20:allf=t+u
31410
31411 normalize
31412 Normalize RGB video (aka histogram stretching, contrast stretching).
31413 See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
31414
31415 For each channel of each frame, the filter computes the input range and
31416 maps it linearly to the user-specified output range. The output range
31417 defaults to the full dynamic range from pure black to pure white.
31418
31419 Temporal smoothing can be used on the input range to reduce flickering
31420 (rapid changes in brightness) caused when small dark or bright objects
31421 enter or leave the scene. This is similar to the auto-exposure
31422 (automatic gain control) on a video camera, and, like a video camera,
31423 it may cause a period of over- or under-exposure of the video.
31424
31425 The R,G,B channels can be normalized independently, which may cause
31426 some color shifting, or linked together as a single channel, which
31427 prevents color shifting. Linked normalization preserves hue.
31428 Independent normalization does not, so it can be used to remove some
31429 color casts. Independent and linked normalization can be combined in
31430 any ratio.
31431
31432 The normalize filter accepts the following options:
31433
31434 blackpt
31435 whitept
31436 Colors which define the output range. The minimum input value is
31437 mapped to the blackpt. The maximum input value is mapped to the
31438 whitept. The defaults are black and white respectively. Specifying
31439 white for blackpt and black for whitept will give color-inverted,
31440 normalized video. Shades of grey can be used to reduce the dynamic
31441 range (contrast). Specifying saturated colors here can create some
31442 interesting effects.
31443
31444 smoothing
31445 The number of previous frames to use for temporal smoothing. The
31446 input range of each channel is smoothed using a rolling average
31447 over the current frame and the smoothing previous frames. The
31448 default is 0 (no temporal smoothing).
31449
31450 independence
31451 Controls the ratio of independent (color shifting) channel
31452 normalization to linked (color preserving) normalization. 0.0 is
31453 fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
31454 independent).
31455
31456 strength
31457 Overall strength of the filter. 1.0 is full strength. 0.0 is a
31458 rather expensive no-op. Defaults to 1.0 (full strength).
31459
31460 Commands
31461
31462 This filter supports same commands as options, excluding smoothing
31463 option. The command accepts the same syntax of the corresponding
31464 option.
31465
31466 If the specified expression is not valid, it is kept at its current
31467 value.
31468
31469 Examples
31470
31471 Stretch video contrast to use the full dynamic range, with no temporal
31472 smoothing; may flicker depending on the source content:
31473
31474 normalize=blackpt=black:whitept=white:smoothing=0
31475
31476 As above, but with 50 frames of temporal smoothing; flicker should be
31477 reduced, depending on the source content:
31478
31479 normalize=blackpt=black:whitept=white:smoothing=50
31480
31481 As above, but with hue-preserving linked channel normalization:
31482
31483 normalize=blackpt=black:whitept=white:smoothing=50:independence=0
31484
31485 As above, but with half strength:
31486
31487 normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
31488
31489 Map the darkest input color to red, the brightest input color to cyan:
31490
31491 normalize=blackpt=red:whitept=cyan
31492
31493 null
31494 Pass the video source unchanged to the output.
31495
31496 ocr
31497 Optical Character Recognition
31498
31499 This filter uses Tesseract for optical character recognition. To enable
31500 compilation of this filter, you need to configure FFmpeg with
31501 "--enable-libtesseract".
31502
31503 It accepts the following options:
31504
31505 datapath
31506 Set datapath to tesseract data. Default is to use whatever was set
31507 at installation.
31508
31509 language
31510 Set language, default is "eng".
31511
31512 whitelist
31513 Set character whitelist.
31514
31515 blacklist
31516 Set character blacklist.
31517
31518 The filter exports recognized text as the frame metadata
31519 "lavfi.ocr.text". The filter exports confidence of recognized words as
31520 the frame metadata "lavfi.ocr.confidence".
31521
31522 ocv
31523 Apply a video transform using libopencv.
31524
31525 To enable this filter, install the libopencv library and headers and
31526 configure FFmpeg with "--enable-libopencv".
31527
31528 It accepts the following parameters:
31529
31530 filter_name
31531 The name of the libopencv filter to apply.
31532
31533 filter_params
31534 The parameters to pass to the libopencv filter. If not specified,
31535 the default values are assumed.
31536
31537 Refer to the official libopencv documentation for more precise
31538 information:
31539 <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
31540
31541 Several libopencv filters are supported; see the following subsections.
31542
31543 dilate
31544
31545 Dilate an image by using a specific structuring element. It
31546 corresponds to the libopencv function "cvDilate".
31547
31548 It accepts the parameters: struct_el|nb_iterations.
31549
31550 struct_el represents a structuring element, and has the syntax:
31551 colsxrows+anchor_xxanchor_y/shape
31552
31553 cols and rows represent the number of columns and rows of the
31554 structuring element, anchor_x and anchor_y the anchor point, and shape
31555 the shape for the structuring element. shape must be "rect", "cross",
31556 "ellipse", or "custom".
31557
31558 If the value for shape is "custom", it must be followed by a string of
31559 the form "=filename". The file with name filename is assumed to
31560 represent a binary image, with each printable character corresponding
31561 to a bright pixel. When a custom shape is used, cols and rows are
31562 ignored, the number or columns and rows of the read file are assumed
31563 instead.
31564
31565 The default value for struct_el is "3x3+0x0/rect".
31566
31567 nb_iterations specifies the number of times the transform is applied to
31568 the image, and defaults to 1.
31569
31570 Some examples:
31571
31572 # Use the default values
31573 ocv=dilate
31574
31575 # Dilate using a structuring element with a 5x5 cross, iterating two times
31576 ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
31577
31578 # Read the shape from the file diamond.shape, iterating two times.
31579 # The file diamond.shape may contain a pattern of characters like this
31580 # *
31581 # ***
31582 # *****
31583 # ***
31584 # *
31585 # The specified columns and rows are ignored
31586 # but the anchor point coordinates are not
31587 ocv=dilate:0x0+2x2/custom=diamond.shape|2
31588
31589 erode
31590
31591 Erode an image by using a specific structuring element. It corresponds
31592 to the libopencv function "cvErode".
31593
31594 It accepts the parameters: struct_el:nb_iterations, with the same
31595 syntax and semantics as the dilate filter.
31596
31597 smooth
31598
31599 Smooth the input video.
31600
31601 The filter takes the following parameters:
31602 type|param1|param2|param3|param4.
31603
31604 type is the type of smooth filter to apply, and must be one of the
31605 following values: "blur", "blur_no_scale", "median", "gaussian", or
31606 "bilateral". The default value is "gaussian".
31607
31608 The meaning of param1, param2, param3, and param4 depends on the smooth
31609 type. param1 and param2 accept integer positive values or 0. param3 and
31610 param4 accept floating point values.
31611
31612 The default value for param1 is 3. The default value for the other
31613 parameters is 0.
31614
31615 These parameters correspond to the parameters assigned to the libopencv
31616 function "cvSmooth".
31617
31618 oscilloscope
31619 2D Video Oscilloscope.
31620
31621 Useful to measure spatial impulse, step responses, chroma delays, etc.
31622
31623 It accepts the following parameters:
31624
31625 x Set scope center x position.
31626
31627 y Set scope center y position.
31628
31629 s Set scope size, relative to frame diagonal.
31630
31631 t Set scope tilt/rotation.
31632
31633 o Set trace opacity.
31634
31635 tx Set trace center x position.
31636
31637 ty Set trace center y position.
31638
31639 tw Set trace width, relative to width of frame.
31640
31641 th Set trace height, relative to height of frame.
31642
31643 c Set which components to trace. By default it traces first three
31644 components.
31645
31646 g Draw trace grid. By default is enabled.
31647
31648 st Draw some statistics. By default is enabled.
31649
31650 sc Draw scope. By default is enabled.
31651
31652 Commands
31653
31654 This filter supports same commands as options. The command accepts the
31655 same syntax of the corresponding option.
31656
31657 If the specified expression is not valid, it is kept at its current
31658 value.
31659
31660 Examples
31661
31662 • Inspect full first row of video frame.
31663
31664 oscilloscope=x=0.5:y=0:s=1
31665
31666 • Inspect full last row of video frame.
31667
31668 oscilloscope=x=0.5:y=1:s=1
31669
31670 • Inspect full 5th line of video frame of height 1080.
31671
31672 oscilloscope=x=0.5:y=5/1080:s=1
31673
31674 • Inspect full last column of video frame.
31675
31676 oscilloscope=x=1:y=0.5:s=1:t=1
31677
31678 overlay
31679 Overlay one video on top of another.
31680
31681 It takes two inputs and has one output. The first input is the "main"
31682 video on which the second input is overlaid.
31683
31684 It accepts the following parameters:
31685
31686 A description of the accepted options follows.
31687
31688 x
31689 y Set the expression for the x and y coordinates of the overlaid
31690 video on the main video. Default value is "0" for both expressions.
31691 In case the expression is invalid, it is set to a huge value
31692 (meaning that the overlay will not be displayed within the output
31693 visible area).
31694
31695 eof_action
31696 See framesync.
31697
31698 eval
31699 Set when the expressions for x, and y are evaluated.
31700
31701 It accepts the following values:
31702
31703 init
31704 only evaluate expressions once during the filter initialization
31705 or when a command is processed
31706
31707 frame
31708 evaluate expressions for each incoming frame
31709
31710 Default value is frame.
31711
31712 shortest
31713 See framesync.
31714
31715 format
31716 Set the format for the output video.
31717
31718 It accepts the following values:
31719
31720 yuv420
31721 force YUV420 output
31722
31723 yuv420p10
31724 force YUV420p10 output
31725
31726 yuv422
31727 force YUV422 output
31728
31729 yuv422p10
31730 force YUV422p10 output
31731
31732 yuv444
31733 force YUV444 output
31734
31735 rgb force packed RGB output
31736
31737 gbrp
31738 force planar RGB output
31739
31740 auto
31741 automatically pick format
31742
31743 Default value is yuv420.
31744
31745 repeatlast
31746 See framesync.
31747
31748 alpha
31749 Set format of alpha of the overlaid video, it can be straight or
31750 premultiplied. Default is straight.
31751
31752 The x, and y expressions can contain the following parameters.
31753
31754 main_w, W
31755 main_h, H
31756 The main input width and height.
31757
31758 overlay_w, w
31759 overlay_h, h
31760 The overlay input width and height.
31761
31762 x
31763 y The computed values for x and y. They are evaluated for each new
31764 frame.
31765
31766 hsub
31767 vsub
31768 horizontal and vertical chroma subsample values of the output
31769 format. For example for the pixel format "yuv422p" hsub is 2 and
31770 vsub is 1.
31771
31772 n the number of input frame, starting from 0
31773
31774 pos the position in the file of the input frame, NAN if unknown
31775
31776 t The timestamp, expressed in seconds. It's NAN if the input
31777 timestamp is unknown.
31778
31779 This filter also supports the framesync options.
31780
31781 Note that the n, pos, t variables are available only when evaluation is
31782 done per frame, and will evaluate to NAN when eval is set to init.
31783
31784 Be aware that frames are taken from each input video in timestamp
31785 order, hence, if their initial timestamps differ, it is a good idea to
31786 pass the two inputs through a setpts=PTS-STARTPTS filter to have them
31787 begin in the same zero timestamp, as the example for the movie filter
31788 does.
31789
31790 You can chain together more overlays but you should test the efficiency
31791 of such approach.
31792
31793 Commands
31794
31795 This filter supports the following commands:
31796
31797 x
31798 y Modify the x and y of the overlay input. The command accepts the
31799 same syntax of the corresponding option.
31800
31801 If the specified expression is not valid, it is kept at its current
31802 value.
31803
31804 Examples
31805
31806 • Draw the overlay at 10 pixels from the bottom right corner of the
31807 main video:
31808
31809 overlay=main_w-overlay_w-10:main_h-overlay_h-10
31810
31811 Using named options the example above becomes:
31812
31813 overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
31814
31815 • Insert a transparent PNG logo in the bottom left corner of the
31816 input, using the ffmpeg tool with the "-filter_complex" option:
31817
31818 ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
31819
31820 • Insert 2 different transparent PNG logos (second logo on bottom
31821 right corner) using the ffmpeg tool:
31822
31823 ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
31824
31825 • Add a transparent color layer on top of the main video; "WxH" must
31826 specify the size of the main input to the overlay filter:
31827
31828 color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
31829
31830 • Play an original video and a filtered version (here with the
31831 deshake filter) side by side using the ffplay tool:
31832
31833 ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
31834
31835 The above command is the same as:
31836
31837 ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
31838
31839 • Make a sliding overlay appearing from the left to the right top
31840 part of the screen starting since time 2:
31841
31842 overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
31843
31844 • Compose output by putting two input videos side to side:
31845
31846 ffmpeg -i left.avi -i right.avi -filter_complex "
31847 nullsrc=size=200x100 [background];
31848 [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
31849 [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
31850 [background][left] overlay=shortest=1 [background+left];
31851 [background+left][right] overlay=shortest=1:x=100 [left+right]
31852 "
31853
31854 • Mask 10-20 seconds of a video by applying the delogo filter to a
31855 section
31856
31857 ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
31858 -vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
31859 masked.avi
31860
31861 • Chain several overlays in cascade:
31862
31863 nullsrc=s=200x200 [bg];
31864 testsrc=s=100x100, split=4 [in0][in1][in2][in3];
31865 [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0];
31866 [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1];
31867 [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2];
31868 [in3] null, [mid2] overlay=100:100 [out0]
31869
31870 overlay_cuda
31871 Overlay one video on top of another.
31872
31873 This is the CUDA variant of the overlay filter. It only accepts CUDA
31874 frames. The underlying input pixel formats have to match.
31875
31876 It takes two inputs and has one output. The first input is the "main"
31877 video on which the second input is overlaid.
31878
31879 It accepts the following parameters:
31880
31881 x
31882 y Set expressions for the x and y coordinates of the overlaid video
31883 on the main video.
31884
31885 They can contain the following parameters:
31886
31887 main_w, W
31888 main_h, H
31889 The main input width and height.
31890
31891 overlay_w, w
31892 overlay_h, h
31893 The overlay input width and height.
31894
31895 x
31896 y The computed values for x and y. They are evaluated for each
31897 new frame.
31898
31899 n The ordinal index of the main input frame, starting from 0.
31900
31901 pos The byte offset position in the file of the main input frame,
31902 NAN if unknown.
31903
31904 t The timestamp of the main input frame, expressed in seconds,
31905 NAN if unknown.
31906
31907 Default value is "0" for both expressions.
31908
31909 eval
31910 Set when the expressions for x and y are evaluated.
31911
31912 It accepts the following values:
31913
31914 init
31915 Evaluate expressions once during filter initialization or when
31916 a command is processed.
31917
31918 frame
31919 Evaluate expressions for each incoming frame
31920
31921 Default value is frame.
31922
31923 eof_action
31924 See framesync.
31925
31926 shortest
31927 See framesync.
31928
31929 repeatlast
31930 See framesync.
31931
31932 This filter also supports the framesync options.
31933
31934 owdenoise
31935 Apply Overcomplete Wavelet denoiser.
31936
31937 The filter accepts the following options:
31938
31939 depth
31940 Set depth.
31941
31942 Larger depth values will denoise lower frequency components more,
31943 but slow down filtering.
31944
31945 Must be an int in the range 8-16, default is 8.
31946
31947 luma_strength, ls
31948 Set luma strength.
31949
31950 Must be a double value in the range 0-1000, default is 1.0.
31951
31952 chroma_strength, cs
31953 Set chroma strength.
31954
31955 Must be a double value in the range 0-1000, default is 1.0.
31956
31957 pad
31958 Add paddings to the input image, and place the original input at the
31959 provided x, y coordinates.
31960
31961 It accepts the following parameters:
31962
31963 width, w
31964 height, h
31965 Specify an expression for the size of the output image with the
31966 paddings added. If the value for width or height is 0, the
31967 corresponding input size is used for the output.
31968
31969 The width expression can reference the value set by the height
31970 expression, and vice versa.
31971
31972 The default value of width and height is 0.
31973
31974 x
31975 y Specify the offsets to place the input image at within the padded
31976 area, with respect to the top/left border of the output image.
31977
31978 The x expression can reference the value set by the y expression,
31979 and vice versa.
31980
31981 The default value of x and y is 0.
31982
31983 If x or y evaluate to a negative number, they'll be changed so the
31984 input image is centered on the padded area.
31985
31986 color
31987 Specify the color of the padded area. For the syntax of this
31988 option, check the "Color" section in the ffmpeg-utils manual.
31989
31990 The default value of color is "black".
31991
31992 eval
31993 Specify when to evaluate width, height, x and y expression.
31994
31995 It accepts the following values:
31996
31997 init
31998 Only evaluate expressions once during the filter initialization
31999 or when a command is processed.
32000
32001 frame
32002 Evaluate expressions for each incoming frame.
32003
32004 Default value is init.
32005
32006 aspect
32007 Pad to aspect instead to a resolution.
32008
32009 The value for the width, height, x, and y options are expressions
32010 containing the following constants:
32011
32012 in_w
32013 in_h
32014 The input video width and height.
32015
32016 iw
32017 ih These are the same as in_w and in_h.
32018
32019 out_w
32020 out_h
32021 The output width and height (the size of the padded area), as
32022 specified by the width and height expressions.
32023
32024 ow
32025 oh These are the same as out_w and out_h.
32026
32027 x
32028 y The x and y offsets as specified by the x and y expressions, or NAN
32029 if not yet specified.
32030
32031 a same as iw / ih
32032
32033 sar input sample aspect ratio
32034
32035 dar input display aspect ratio, it is the same as (iw / ih) * sar
32036
32037 hsub
32038 vsub
32039 The horizontal and vertical chroma subsample values. For example
32040 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
32041
32042 Examples
32043
32044 • Add paddings with the color "violet" to the input video. The output
32045 video size is 640x480, and the top-left corner of the input video
32046 is placed at column 0, row 40
32047
32048 pad=640:480:0:40:violet
32049
32050 The example above is equivalent to the following command:
32051
32052 pad=width=640:height=480:x=0:y=40:color=violet
32053
32054 • Pad the input to get an output with dimensions increased by 3/2,
32055 and put the input video at the center of the padded area:
32056
32057 pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
32058
32059 • Pad the input to get a squared output with size equal to the
32060 maximum value between the input width and height, and put the input
32061 video at the center of the padded area:
32062
32063 pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
32064
32065 • Pad the input to get a final w/h ratio of 16:9:
32066
32067 pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
32068
32069 • In case of anamorphic video, in order to set the output display
32070 aspect correctly, it is necessary to use sar in the expression,
32071 according to the relation:
32072
32073 (ih * X / ih) * sar = output_dar
32074 X = output_dar / sar
32075
32076 Thus the previous example needs to be modified to:
32077
32078 pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
32079
32080 • Double the output size and put the input video in the bottom-right
32081 corner of the output padded area:
32082
32083 pad="2*iw:2*ih:ow-iw:oh-ih"
32084
32085 palettegen
32086 Generate one palette for a whole video stream.
32087
32088 It accepts the following options:
32089
32090 max_colors
32091 Set the maximum number of colors to quantize in the palette. Note:
32092 the palette will still contain 256 colors; the unused palette
32093 entries will be black.
32094
32095 reserve_transparent
32096 Create a palette of 255 colors maximum and reserve the last one for
32097 transparency. Reserving the transparency color is useful for GIF
32098 optimization. If not set, the maximum of colors in the palette
32099 will be 256. You probably want to disable this option for a
32100 standalone image. Set by default.
32101
32102 transparency_color
32103 Set the color that will be used as background for transparency.
32104
32105 stats_mode
32106 Set statistics mode.
32107
32108 It accepts the following values:
32109
32110 full
32111 Compute full frame histograms.
32112
32113 diff
32114 Compute histograms only for the part that differs from previous
32115 frame. This might be relevant to give more importance to the
32116 moving part of your input if the background is static.
32117
32118 single
32119 Compute new histogram for each frame.
32120
32121 Default value is full.
32122
32123 use_alpha
32124 Create a palette of colors with alpha components. Setting this,
32125 will automatically disable 'reserve_transparent'.
32126
32127 The filter also exports the frame metadata "lavfi.color_quant_ratio"
32128 ("nb_color_in / nb_color_out") which you can use to evaluate the degree
32129 of color quantization of the palette. This information is also visible
32130 at info logging level.
32131
32132 Examples
32133
32134 • Generate a representative palette of a given video using ffmpeg:
32135
32136 ffmpeg -i input.mkv -vf palettegen palette.png
32137
32138 paletteuse
32139 Use a palette to downsample an input video stream.
32140
32141 The filter takes two inputs: one video stream and a palette. The
32142 palette must be a 256 pixels image.
32143
32144 It accepts the following options:
32145
32146 dither
32147 Select dithering mode. Available algorithms are:
32148
32149 bayer
32150 Ordered 8x8 bayer dithering (deterministic)
32151
32152 heckbert
32153 Dithering as defined by Paul Heckbert in 1982 (simple error
32154 diffusion). Note: this dithering is sometimes considered
32155 "wrong" and is included as a reference.
32156
32157 floyd_steinberg
32158 Floyd and Steingberg dithering (error diffusion)
32159
32160 sierra2
32161 Frankie Sierra dithering v2 (error diffusion)
32162
32163 sierra2_4a
32164 Frankie Sierra dithering v2 "Lite" (error diffusion)
32165
32166 Default is sierra2_4a.
32167
32168 bayer_scale
32169 When bayer dithering is selected, this option defines the scale of
32170 the pattern (how much the crosshatch pattern is visible). A low
32171 value means more visible pattern for less banding, and higher value
32172 means less visible pattern at the cost of more banding.
32173
32174 The option must be an integer value in the range [0,5]. Default is
32175 2.
32176
32177 diff_mode
32178 If set, define the zone to process
32179
32180 rectangle
32181 Only the changing rectangle will be reprocessed. This is
32182 similar to GIF cropping/offsetting compression mechanism. This
32183 option can be useful for speed if only a part of the image is
32184 changing, and has use cases such as limiting the scope of the
32185 error diffusal dither to the rectangle that bounds the moving
32186 scene (it leads to more deterministic output if the scene
32187 doesn't change much, and as a result less moving noise and
32188 better GIF compression).
32189
32190 Default is none.
32191
32192 new Take new palette for each output frame.
32193
32194 alpha_threshold
32195 Sets the alpha threshold for transparency. Alpha values above this
32196 threshold will be treated as completely opaque, and values below
32197 this threshold will be treated as completely transparent.
32198
32199 The option must be an integer value in the range [0,255]. Default
32200 is 128.
32201
32202 use_alpha
32203 Apply the palette by taking alpha values into account. Only useful
32204 with palettes that are containing multiple colors with alpha
32205 components. Setting this will automatically disable
32206 'alpha_treshold'.
32207
32208 Examples
32209
32210 • Use a palette (generated for example with palettegen) to encode a
32211 GIF using ffmpeg:
32212
32213 ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
32214
32215 perspective
32216 Correct perspective of video not recorded perpendicular to the screen.
32217
32218 A description of the accepted parameters follows.
32219
32220 x0
32221 y0
32222 x1
32223 y1
32224 x2
32225 y2
32226 x3
32227 y3 Set coordinates expression for top left, top right, bottom left and
32228 bottom right corners. Default values are "0:0:W:0:0:H:W:H" with
32229 which perspective will remain unchanged. If the "sense" option is
32230 set to "source", then the specified points will be sent to the
32231 corners of the destination. If the "sense" option is set to
32232 "destination", then the corners of the source will be sent to the
32233 specified coordinates.
32234
32235 The expressions can use the following variables:
32236
32237 W
32238 H the width and height of video frame.
32239
32240 in Input frame count.
32241
32242 on Output frame count.
32243
32244 interpolation
32245 Set interpolation for perspective correction.
32246
32247 It accepts the following values:
32248
32249 linear
32250 cubic
32251
32252 Default value is linear.
32253
32254 sense
32255 Set interpretation of coordinate options.
32256
32257 It accepts the following values:
32258
32259 0, source
32260 Send point in the source specified by the given coordinates to
32261 the corners of the destination.
32262
32263 1, destination
32264 Send the corners of the source to the point in the destination
32265 specified by the given coordinates.
32266
32267 Default value is source.
32268
32269 eval
32270 Set when the expressions for coordinates x0,y0,...x3,y3 are
32271 evaluated.
32272
32273 It accepts the following values:
32274
32275 init
32276 only evaluate expressions once during the filter initialization
32277 or when a command is processed
32278
32279 frame
32280 evaluate expressions for each incoming frame
32281
32282 Default value is init.
32283
32284 phase
32285 Delay interlaced video by one field time so that the field order
32286 changes.
32287
32288 The intended use is to fix PAL movies that have been captured with the
32289 opposite field order to the film-to-video transfer.
32290
32291 A description of the accepted parameters follows.
32292
32293 mode
32294 Set phase mode.
32295
32296 It accepts the following values:
32297
32298 t Capture field order top-first, transfer bottom-first. Filter
32299 will delay the bottom field.
32300
32301 b Capture field order bottom-first, transfer top-first. Filter
32302 will delay the top field.
32303
32304 p Capture and transfer with the same field order. This mode only
32305 exists for the documentation of the other options to refer to,
32306 but if you actually select it, the filter will faithfully do
32307 nothing.
32308
32309 a Capture field order determined automatically by field flags,
32310 transfer opposite. Filter selects among t and b modes on a
32311 frame by frame basis using field flags. If no field information
32312 is available, then this works just like u.
32313
32314 u Capture unknown or varying, transfer opposite. Filter selects
32315 among t and b on a frame by frame basis by analyzing the images
32316 and selecting the alternative that produces best match between
32317 the fields.
32318
32319 T Capture top-first, transfer unknown or varying. Filter selects
32320 among t and p using image analysis.
32321
32322 B Capture bottom-first, transfer unknown or varying. Filter
32323 selects among b and p using image analysis.
32324
32325 A Capture determined by field flags, transfer unknown or varying.
32326 Filter selects among t, b and p using field flags and image
32327 analysis. If no field information is available, then this works
32328 just like U. This is the default mode.
32329
32330 U Both capture and transfer unknown or varying. Filter selects
32331 among t, b and p using image analysis only.
32332
32333 Commands
32334
32335 This filter supports the all above options as commands.
32336
32337 photosensitivity
32338 Reduce various flashes in video, so to help users with epilepsy.
32339
32340 It accepts the following options:
32341
32342 frames, f
32343 Set how many frames to use when filtering. Default is 30.
32344
32345 threshold, t
32346 Set detection threshold factor. Default is 1. Lower is stricter.
32347
32348 skip
32349 Set how many pixels to skip when sampling frames. Default is 1.
32350 Allowed range is from 1 to 1024.
32351
32352 bypass
32353 Leave frames unchanged. Default is disabled.
32354
32355 pixdesctest
32356 Pixel format descriptor test filter, mainly useful for internal
32357 testing. The output video should be equal to the input video.
32358
32359 For example:
32360
32361 format=monow, pixdesctest
32362
32363 can be used to test the monowhite pixel format descriptor definition.
32364
32365 pixscope
32366 Display sample values of color channels. Mainly useful for checking
32367 color and levels. Minimum supported resolution is 640x480.
32368
32369 The filters accept the following options:
32370
32371 x Set scope X position, relative offset on X axis.
32372
32373 y Set scope Y position, relative offset on Y axis.
32374
32375 w Set scope width.
32376
32377 h Set scope height.
32378
32379 o Set window opacity. This window also holds statistics about pixel
32380 area.
32381
32382 wx Set window X position, relative offset on X axis.
32383
32384 wy Set window Y position, relative offset on Y axis.
32385
32386 Commands
32387
32388 This filter supports same commands as options.
32389
32390 pp
32391 Enable the specified chain of postprocessing subfilters using
32392 libpostproc. This library should be automatically selected with a GPL
32393 build ("--enable-gpl"). Subfilters must be separated by '/' and can be
32394 disabled by prepending a '-'. Each subfilter and some options have a
32395 short and a long name that can be used interchangeably, i.e. dr/dering
32396 are the same.
32397
32398 The filters accept the following options:
32399
32400 subfilters
32401 Set postprocessing subfilters string.
32402
32403 All subfilters share common options to determine their scope:
32404
32405 a/autoq
32406 Honor the quality commands for this subfilter.
32407
32408 c/chrom
32409 Do chrominance filtering, too (default).
32410
32411 y/nochrom
32412 Do luminance filtering only (no chrominance).
32413
32414 n/noluma
32415 Do chrominance filtering only (no luminance).
32416
32417 These options can be appended after the subfilter name, separated by a
32418 '|'.
32419
32420 Available subfilters are:
32421
32422 hb/hdeblock[|difference[|flatness]]
32423 Horizontal deblocking filter
32424
32425 difference
32426 Difference factor where higher values mean more deblocking
32427 (default: 32).
32428
32429 flatness
32430 Flatness threshold where lower values mean more deblocking
32431 (default: 39).
32432
32433 vb/vdeblock[|difference[|flatness]]
32434 Vertical deblocking filter
32435
32436 difference
32437 Difference factor where higher values mean more deblocking
32438 (default: 32).
32439
32440 flatness
32441 Flatness threshold where lower values mean more deblocking
32442 (default: 39).
32443
32444 ha/hadeblock[|difference[|flatness]]
32445 Accurate horizontal deblocking filter
32446
32447 difference
32448 Difference factor where higher values mean more deblocking
32449 (default: 32).
32450
32451 flatness
32452 Flatness threshold where lower values mean more deblocking
32453 (default: 39).
32454
32455 va/vadeblock[|difference[|flatness]]
32456 Accurate vertical deblocking filter
32457
32458 difference
32459 Difference factor where higher values mean more deblocking
32460 (default: 32).
32461
32462 flatness
32463 Flatness threshold where lower values mean more deblocking
32464 (default: 39).
32465
32466 The horizontal and vertical deblocking filters share the difference and
32467 flatness values so you cannot set different horizontal and vertical
32468 thresholds.
32469
32470 h1/x1hdeblock
32471 Experimental horizontal deblocking filter
32472
32473 v1/x1vdeblock
32474 Experimental vertical deblocking filter
32475
32476 dr/dering
32477 Deringing filter
32478
32479 tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
32480 reducer
32481 threshold1
32482 larger -> stronger filtering
32483
32484 threshold2
32485 larger -> stronger filtering
32486
32487 threshold3
32488 larger -> stronger filtering
32489
32490 al/autolevels[:f/fullyrange], automatic brightness / contrast
32491 correction
32492 f/fullyrange
32493 Stretch luminance to "0-255".
32494
32495 lb/linblenddeint
32496 Linear blend deinterlacing filter that deinterlaces the given block
32497 by filtering all lines with a "(1 2 1)" filter.
32498
32499 li/linipoldeint
32500 Linear interpolating deinterlacing filter that deinterlaces the
32501 given block by linearly interpolating every second line.
32502
32503 ci/cubicipoldeint
32504 Cubic interpolating deinterlacing filter deinterlaces the given
32505 block by cubically interpolating every second line.
32506
32507 md/mediandeint
32508 Median deinterlacing filter that deinterlaces the given block by
32509 applying a median filter to every second line.
32510
32511 fd/ffmpegdeint
32512 FFmpeg deinterlacing filter that deinterlaces the given block by
32513 filtering every second line with a "(-1 4 2 4 -1)" filter.
32514
32515 l5/lowpass5
32516 Vertically applied FIR lowpass deinterlacing filter that
32517 deinterlaces the given block by filtering all lines with a "(-1 2 6
32518 2 -1)" filter.
32519
32520 fq/forceQuant[|quantizer]
32521 Overrides the quantizer table from the input with the constant
32522 quantizer you specify.
32523
32524 quantizer
32525 Quantizer to use
32526
32527 de/default
32528 Default pp filter combination ("hb|a,vb|a,dr|a")
32529
32530 fa/fast
32531 Fast pp filter combination ("h1|a,v1|a,dr|a")
32532
32533 ac High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
32534
32535 Examples
32536
32537 • Apply horizontal and vertical deblocking, deringing and automatic
32538 brightness/contrast:
32539
32540 pp=hb/vb/dr/al
32541
32542 • Apply default filters without brightness/contrast correction:
32543
32544 pp=de/-al
32545
32546 • Apply default filters and temporal denoiser:
32547
32548 pp=default/tmpnoise|1|2|3
32549
32550 • Apply deblocking on luminance only, and switch vertical deblocking
32551 on or off automatically depending on available CPU time:
32552
32553 pp=hb|y/vb|a
32554
32555 pp7
32556 Apply Postprocessing filter 7. It is variant of the spp filter, similar
32557 to spp = 6 with 7 point DCT, where only the center sample is used after
32558 IDCT.
32559
32560 The filter accepts the following options:
32561
32562 qp Force a constant quantization parameter. It accepts an integer in
32563 range 0 to 63. If not set, the filter will use the QP from the
32564 video stream (if available).
32565
32566 mode
32567 Set thresholding mode. Available modes are:
32568
32569 hard
32570 Set hard thresholding.
32571
32572 soft
32573 Set soft thresholding (better de-ringing effect, but likely
32574 blurrier).
32575
32576 medium
32577 Set medium thresholding (good results, default).
32578
32579 premultiply
32580 Apply alpha premultiply effect to input video stream using first plane
32581 of second stream as alpha.
32582
32583 Both streams must have same dimensions and same pixel format.
32584
32585 The filter accepts the following option:
32586
32587 planes
32588 Set which planes will be processed, unprocessed planes will be
32589 copied. By default value 0xf, all planes will be processed.
32590
32591 inplace
32592 Do not require 2nd input for processing, instead use alpha plane
32593 from input stream.
32594
32595 prewitt
32596 Apply prewitt operator to input video stream.
32597
32598 The filter accepts the following option:
32599
32600 planes
32601 Set which planes will be processed, unprocessed planes will be
32602 copied. By default value 0xf, all planes will be processed.
32603
32604 scale
32605 Set value which will be multiplied with filtered result.
32606
32607 delta
32608 Set value which will be added to filtered result.
32609
32610 Commands
32611
32612 This filter supports the all above options as commands.
32613
32614 pseudocolor
32615 Alter frame colors in video with pseudocolors.
32616
32617 This filter accepts the following options:
32618
32619 c0 set pixel first component expression
32620
32621 c1 set pixel second component expression
32622
32623 c2 set pixel third component expression
32624
32625 c3 set pixel fourth component expression, corresponds to the alpha
32626 component
32627
32628 index, i
32629 set component to use as base for altering colors
32630
32631 preset, p
32632 Pick one of built-in LUTs. By default is set to none.
32633
32634 Available LUTs:
32635
32636 magma
32637 inferno
32638 plasma
32639 viridis
32640 turbo
32641 cividis
32642 range1
32643 range2
32644 shadows
32645 highlights
32646 solar
32647 nominal
32648 preferred
32649 total
32650 opacity
32651 Set opacity of output colors. Allowed range is from 0 to 1.
32652 Default value is set to 1.
32653
32654 Each of the expression options specifies the expression to use for
32655 computing the lookup table for the corresponding pixel component
32656 values.
32657
32658 The expressions can contain the following constants and functions:
32659
32660 w
32661 h The input width and height.
32662
32663 val The input value for the pixel component.
32664
32665 ymin, umin, vmin, amin
32666 The minimum allowed component value.
32667
32668 ymax, umax, vmax, amax
32669 The maximum allowed component value.
32670
32671 All expressions default to "val".
32672
32673 Commands
32674
32675 This filter supports the all above options as commands.
32676
32677 Examples
32678
32679 • Change too high luma values to gradient:
32680
32681 pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"
32682
32683 psnr
32684 Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
32685 Ratio) between two input videos.
32686
32687 This filter takes in input two input videos, the first input is
32688 considered the "main" source and is passed unchanged to the output. The
32689 second input is used as a "reference" video for computing the PSNR.
32690
32691 Both video inputs must have the same resolution and pixel format for
32692 this filter to work correctly. Also it assumes that both inputs have
32693 the same number of frames, which are compared one by one.
32694
32695 The obtained average PSNR is printed through the logging system.
32696
32697 The filter stores the accumulated MSE (mean squared error) of each
32698 frame, and at the end of the processing it is averaged across all
32699 frames equally, and the following formula is applied to obtain the
32700 PSNR:
32701
32702 PSNR = 10*log10(MAX^2/MSE)
32703
32704 Where MAX is the average of the maximum values of each component of the
32705 image.
32706
32707 The description of the accepted parameters follows.
32708
32709 stats_file, f
32710 If specified the filter will use the named file to save the PSNR of
32711 each individual frame. When filename equals "-" the data is sent to
32712 standard output.
32713
32714 stats_version
32715 Specifies which version of the stats file format to use. Details of
32716 each format are written below. Default value is 1.
32717
32718 stats_add_max
32719 Determines whether the max value is output to the stats log.
32720 Default value is 0. Requires stats_version >= 2. If this is set
32721 and stats_version < 2, the filter will return an error.
32722
32723 This filter also supports the framesync options.
32724
32725 The file printed if stats_file is selected, contains a sequence of
32726 key/value pairs of the form key:value for each compared couple of
32727 frames.
32728
32729 If a stats_version greater than 1 is specified, a header line precedes
32730 the list of per-frame-pair stats, with key value pairs following the
32731 frame format with the following parameters:
32732
32733 psnr_log_version
32734 The version of the log file format. Will match stats_version.
32735
32736 fields
32737 A comma separated list of the per-frame-pair parameters included in
32738 the log.
32739
32740 A description of each shown per-frame-pair parameter follows:
32741
32742 n sequential number of the input frame, starting from 1
32743
32744 mse_avg
32745 Mean Square Error pixel-by-pixel average difference of the compared
32746 frames, averaged over all the image components.
32747
32748 mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
32749 Mean Square Error pixel-by-pixel average difference of the compared
32750 frames for the component specified by the suffix.
32751
32752 psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
32753 Peak Signal to Noise ratio of the compared frames for the component
32754 specified by the suffix.
32755
32756 max_avg, max_y, max_u, max_v
32757 Maximum allowed value for each channel, and average over all
32758 channels.
32759
32760 Examples
32761
32762 • For example:
32763
32764 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
32765 [main][ref] psnr="stats_file=stats.log" [out]
32766
32767 On this example the input file being processed is compared with the
32768 reference file ref_movie.mpg. The PSNR of each individual frame is
32769 stored in stats.log.
32770
32771 • Another example with different containers:
32772
32773 ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null -
32774
32775 pullup
32776 Pulldown reversal (inverse telecine) filter, capable of handling mixed
32777 hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
32778 progressive content.
32779
32780 The pullup filter is designed to take advantage of future context in
32781 making its decisions. This filter is stateless in the sense that it
32782 does not lock onto a pattern to follow, but it instead looks forward to
32783 the following fields in order to identify matches and rebuild
32784 progressive frames.
32785
32786 To produce content with an even framerate, insert the fps filter after
32787 pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
32788 "fps=24" for 30fps and the (rare) telecined 25fps input.
32789
32790 The filter accepts the following options:
32791
32792 jl
32793 jr
32794 jt
32795 jb These options set the amount of "junk" to ignore at the left,
32796 right, top, and bottom of the image, respectively. Left and right
32797 are in units of 8 pixels, while top and bottom are in units of 2
32798 lines. The default is 8 pixels on each side.
32799
32800 sb Set the strict breaks. Setting this option to 1 will reduce the
32801 chances of filter generating an occasional mismatched frame, but it
32802 may also cause an excessive number of frames to be dropped during
32803 high motion sequences. Conversely, setting it to -1 will make
32804 filter match fields more easily. This may help processing of video
32805 where there is slight blurring between the fields, but may also
32806 cause there to be interlaced frames in the output. Default value
32807 is 0.
32808
32809 mp Set the metric plane to use. It accepts the following values:
32810
32811 l Use luma plane.
32812
32813 u Use chroma blue plane.
32814
32815 v Use chroma red plane.
32816
32817 This option may be set to use chroma plane instead of the default
32818 luma plane for doing filter's computations. This may improve
32819 accuracy on very clean source material, but more likely will
32820 decrease accuracy, especially if there is chroma noise (rainbow
32821 effect) or any grayscale video. The main purpose of setting mp to
32822 a chroma plane is to reduce CPU load and make pullup usable in
32823 realtime on slow machines.
32824
32825 For best results (without duplicated frames in the output file) it is
32826 necessary to change the output frame rate. For example, to inverse
32827 telecine NTSC input:
32828
32829 ffmpeg -i input -vf pullup -r 24000/1001 ...
32830
32831 qp
32832 Change video quantization parameters (QP).
32833
32834 The filter accepts the following option:
32835
32836 qp Set expression for quantization parameter.
32837
32838 The expression is evaluated through the eval API and can contain, among
32839 others, the following constants:
32840
32841 known
32842 1 if index is not 129, 0 otherwise.
32843
32844 qp Sequential index starting from -129 to 128.
32845
32846 Examples
32847
32848 • Some equation like:
32849
32850 qp=2+2*sin(PI*qp)
32851
32852 random
32853 Flush video frames from internal cache of frames into a random order.
32854 No frame is discarded. Inspired by frei0r nervous filter.
32855
32856 frames
32857 Set size in number of frames of internal cache, in range from 2 to
32858 512. Default is 30.
32859
32860 seed
32861 Set seed for random number generator, must be an integer included
32862 between 0 and "UINT32_MAX". If not specified, or if explicitly set
32863 to less than 0, the filter will try to use a good random seed on a
32864 best effort basis.
32865
32866 readeia608
32867 Read closed captioning (EIA-608) information from the top lines of a
32868 video frame.
32869
32870 This filter adds frame metadata for "lavfi.readeia608.X.cc" and
32871 "lavfi.readeia608.X.line", where "X" is the number of the identified
32872 line with EIA-608 data (starting from 0). A description of each
32873 metadata value follows:
32874
32875 lavfi.readeia608.X.cc
32876 The two bytes stored as EIA-608 data (printed in hexadecimal).
32877
32878 lavfi.readeia608.X.line
32879 The number of the line on which the EIA-608 data was identified and
32880 read.
32881
32882 This filter accepts the following options:
32883
32884 scan_min
32885 Set the line to start scanning for EIA-608 data. Default is 0.
32886
32887 scan_max
32888 Set the line to end scanning for EIA-608 data. Default is 29.
32889
32890 spw Set the ratio of width reserved for sync code detection. Default
32891 is 0.27. Allowed range is "[0.1 - 0.7]".
32892
32893 chp Enable checking the parity bit. In the event of a parity error, the
32894 filter will output 0x00 for that character. Default is false.
32895
32896 lp Lowpass lines prior to further processing. Default is enabled.
32897
32898 Commands
32899
32900 This filter supports the all above options as commands.
32901
32902 Examples
32903
32904 • Output a csv with presentation time and the first two lines of
32905 identified EIA-608 captioning data.
32906
32907 ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv
32908
32909 readvitc
32910 Read vertical interval timecode (VITC) information from the top lines
32911 of a video frame.
32912
32913 The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
32914 timecode value, if a valid timecode has been detected. Further metadata
32915 key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
32916 data has been found or not.
32917
32918 This filter accepts the following options:
32919
32920 scan_max
32921 Set the maximum number of lines to scan for VITC data. If the value
32922 is set to "-1" the full video frame is scanned. Default is 45.
32923
32924 thr_b
32925 Set the luma threshold for black. Accepts float numbers in the
32926 range [0.0,1.0], default value is 0.2. The value must be equal or
32927 less than "thr_w".
32928
32929 thr_w
32930 Set the luma threshold for white. Accepts float numbers in the
32931 range [0.0,1.0], default value is 0.6. The value must be equal or
32932 greater than "thr_b".
32933
32934 Examples
32935
32936 • Detect and draw VITC data onto the video frame; if no valid VITC is
32937 detected, draw "--:--:--:--" as a placeholder:
32938
32939 ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
32940
32941 remap
32942 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
32943
32944 Destination pixel at position (X, Y) will be picked from source (x, y)
32945 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
32946 out of range, zero value for pixel will be used for destination pixel.
32947
32948 Xmap and Ymap input video streams must be of same dimensions. Output
32949 video stream will have Xmap/Ymap video stream dimensions. Xmap and
32950 Ymap input video streams are 16bit depth, single channel.
32951
32952 format
32953 Specify pixel format of output from this filter. Can be "color" or
32954 "gray". Default is "color".
32955
32956 fill
32957 Specify the color of the unmapped pixels. For the syntax of this
32958 option, check the "Color" section in the ffmpeg-utils manual.
32959 Default color is "black".
32960
32961 removegrain
32962 The removegrain filter is a spatial denoiser for progressive video.
32963
32964 m0 Set mode for the first plane.
32965
32966 m1 Set mode for the second plane.
32967
32968 m2 Set mode for the third plane.
32969
32970 m3 Set mode for the fourth plane.
32971
32972 Range of mode is from 0 to 24. Description of each mode follows:
32973
32974 0 Leave input plane unchanged. Default.
32975
32976 1 Clips the pixel with the minimum and maximum of the 8 neighbour
32977 pixels.
32978
32979 2 Clips the pixel with the second minimum and maximum of the 8
32980 neighbour pixels.
32981
32982 3 Clips the pixel with the third minimum and maximum of the 8
32983 neighbour pixels.
32984
32985 4 Clips the pixel with the fourth minimum and maximum of the 8
32986 neighbour pixels. This is equivalent to a median filter.
32987
32988 5 Line-sensitive clipping giving the minimal change.
32989
32990 6 Line-sensitive clipping, intermediate.
32991
32992 7 Line-sensitive clipping, intermediate.
32993
32994 8 Line-sensitive clipping, intermediate.
32995
32996 9 Line-sensitive clipping on a line where the neighbours pixels are
32997 the closest.
32998
32999 10 Replaces the target pixel with the closest neighbour.
33000
33001 11 [1 2 1] horizontal and vertical kernel blur.
33002
33003 12 Same as mode 11.
33004
33005 13 Bob mode, interpolates top field from the line where the neighbours
33006 pixels are the closest.
33007
33008 14 Bob mode, interpolates bottom field from the line where the
33009 neighbours pixels are the closest.
33010
33011 15 Bob mode, interpolates top field. Same as 13 but with a more
33012 complicated interpolation formula.
33013
33014 16 Bob mode, interpolates bottom field. Same as 14 but with a more
33015 complicated interpolation formula.
33016
33017 17 Clips the pixel with the minimum and maximum of respectively the
33018 maximum and minimum of each pair of opposite neighbour pixels.
33019
33020 18 Line-sensitive clipping using opposite neighbours whose greatest
33021 distance from the current pixel is minimal.
33022
33023 19 Replaces the pixel with the average of its 8 neighbours.
33024
33025 20 Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
33026
33027 21 Clips pixels using the averages of opposite neighbour.
33028
33029 22 Same as mode 21 but simpler and faster.
33030
33031 23 Small edge and halo removal, but reputed useless.
33032
33033 24 Similar as 23.
33034
33035 removelogo
33036 Suppress a TV station logo, using an image file to determine which
33037 pixels comprise the logo. It works by filling in the pixels that
33038 comprise the logo with neighboring pixels.
33039
33040 The filter accepts the following options:
33041
33042 filename, f
33043 Set the filter bitmap file, which can be any image format supported
33044 by libavformat. The width and height of the image file must match
33045 those of the video stream being processed.
33046
33047 Pixels in the provided bitmap image with a value of zero are not
33048 considered part of the logo, non-zero pixels are considered part of the
33049 logo. If you use white (255) for the logo and black (0) for the rest,
33050 you will be safe. For making the filter bitmap, it is recommended to
33051 take a screen capture of a black frame with the logo visible, and then
33052 using a threshold filter followed by the erode filter once or twice.
33053
33054 If needed, little splotches can be fixed manually. Remember that if
33055 logo pixels are not covered, the filter quality will be much reduced.
33056 Marking too many pixels as part of the logo does not hurt as much, but
33057 it will increase the amount of blurring needed to cover over the image
33058 and will destroy more information than necessary, and extra pixels will
33059 slow things down on a large logo.
33060
33061 repeatfields
33062 This filter uses the repeat_field flag from the Video ES headers and
33063 hard repeats fields based on its value.
33064
33065 reverse
33066 Reverse a video clip.
33067
33068 Warning: This filter requires memory to buffer the entire clip, so
33069 trimming is suggested.
33070
33071 Examples
33072
33073 • Take the first 5 seconds of a clip, and reverse it.
33074
33075 trim=end=5,reverse
33076
33077 rgbashift
33078 Shift R/G/B/A pixels horizontally and/or vertically.
33079
33080 The filter accepts the following options:
33081
33082 rh Set amount to shift red horizontally.
33083
33084 rv Set amount to shift red vertically.
33085
33086 gh Set amount to shift green horizontally.
33087
33088 gv Set amount to shift green vertically.
33089
33090 bh Set amount to shift blue horizontally.
33091
33092 bv Set amount to shift blue vertically.
33093
33094 ah Set amount to shift alpha horizontally.
33095
33096 av Set amount to shift alpha vertically.
33097
33098 edge
33099 Set edge mode, can be smear, default, or warp.
33100
33101 Commands
33102
33103 This filter supports the all above options as commands.
33104
33105 roberts
33106 Apply roberts cross operator to input video stream.
33107
33108 The filter accepts the following option:
33109
33110 planes
33111 Set which planes will be processed, unprocessed planes will be
33112 copied. By default value 0xf, all planes will be processed.
33113
33114 scale
33115 Set value which will be multiplied with filtered result.
33116
33117 delta
33118 Set value which will be added to filtered result.
33119
33120 Commands
33121
33122 This filter supports the all above options as commands.
33123
33124 rotate
33125 Rotate video by an arbitrary angle expressed in radians.
33126
33127 The filter accepts the following options:
33128
33129 A description of the optional parameters follows.
33130
33131 angle, a
33132 Set an expression for the angle by which to rotate the input video
33133 clockwise, expressed as a number of radians. A negative value will
33134 result in a counter-clockwise rotation. By default it is set to
33135 "0".
33136
33137 This expression is evaluated for each frame.
33138
33139 out_w, ow
33140 Set the output width expression, default value is "iw". This
33141 expression is evaluated just once during configuration.
33142
33143 out_h, oh
33144 Set the output height expression, default value is "ih". This
33145 expression is evaluated just once during configuration.
33146
33147 bilinear
33148 Enable bilinear interpolation if set to 1, a value of 0 disables
33149 it. Default value is 1.
33150
33151 fillcolor, c
33152 Set the color used to fill the output area not covered by the
33153 rotated image. For the general syntax of this option, check the
33154 "Color" section in the ffmpeg-utils manual. If the special value
33155 "none" is selected then no background is printed (useful for
33156 example if the background is never shown).
33157
33158 Default value is "black".
33159
33160 The expressions for the angle and the output size can contain the
33161 following constants and functions:
33162
33163 n sequential number of the input frame, starting from 0. It is always
33164 NAN before the first frame is filtered.
33165
33166 t time in seconds of the input frame, it is set to 0 when the filter
33167 is configured. It is always NAN before the first frame is filtered.
33168
33169 hsub
33170 vsub
33171 horizontal and vertical chroma subsample values. For example for
33172 the pixel format "yuv422p" hsub is 2 and vsub is 1.
33173
33174 in_w, iw
33175 in_h, ih
33176 the input video width and height
33177
33178 out_w, ow
33179 out_h, oh
33180 the output width and height, that is the size of the padded area as
33181 specified by the width and height expressions
33182
33183 rotw(a)
33184 roth(a)
33185 the minimal width/height required for completely containing the
33186 input video rotated by a radians.
33187
33188 These are only available when computing the out_w and out_h
33189 expressions.
33190
33191 Examples
33192
33193 • Rotate the input by PI/6 radians clockwise:
33194
33195 rotate=PI/6
33196
33197 • Rotate the input by PI/6 radians counter-clockwise:
33198
33199 rotate=-PI/6
33200
33201 • Rotate the input by 45 degrees clockwise:
33202
33203 rotate=45*PI/180
33204
33205 • Apply a constant rotation with period T, starting from an angle of
33206 PI/3:
33207
33208 rotate=PI/3+2*PI*t/T
33209
33210 • Make the input video rotation oscillating with a period of T
33211 seconds and an amplitude of A radians:
33212
33213 rotate=A*sin(2*PI/T*t)
33214
33215 • Rotate the video, output size is chosen so that the whole rotating
33216 input video is always completely contained in the output:
33217
33218 rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
33219
33220 • Rotate the video, reduce the output size so that no background is
33221 ever shown:
33222
33223 rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
33224
33225 Commands
33226
33227 The filter supports the following commands:
33228
33229 a, angle
33230 Set the angle expression. The command accepts the same syntax of
33231 the corresponding option.
33232
33233 If the specified expression is not valid, it is kept at its current
33234 value.
33235
33236 sab
33237 Apply Shape Adaptive Blur.
33238
33239 The filter accepts the following options:
33240
33241 luma_radius, lr
33242 Set luma blur filter strength, must be a value in range 0.1-4.0,
33243 default value is 1.0. A greater value will result in a more blurred
33244 image, and in slower processing.
33245
33246 luma_pre_filter_radius, lpfr
33247 Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
33248 default value is 1.0.
33249
33250 luma_strength, ls
33251 Set luma maximum difference between pixels to still be considered,
33252 must be a value in the 0.1-100.0 range, default value is 1.0.
33253
33254 chroma_radius, cr
33255 Set chroma blur filter strength, must be a value in range -0.9-4.0.
33256 A greater value will result in a more blurred image, and in slower
33257 processing.
33258
33259 chroma_pre_filter_radius, cpfr
33260 Set chroma pre-filter radius, must be a value in the -0.9-2.0
33261 range.
33262
33263 chroma_strength, cs
33264 Set chroma maximum difference between pixels to still be
33265 considered, must be a value in the -0.9-100.0 range.
33266
33267 Each chroma option value, if not explicitly specified, is set to the
33268 corresponding luma option value.
33269
33270 scale
33271 Scale (resize) the input video, using the libswscale library.
33272
33273 The scale filter forces the output display aspect ratio to be the same
33274 of the input, by changing the output sample aspect ratio.
33275
33276 If the input image format is different from the format requested by the
33277 next filter, the scale filter will convert the input to the requested
33278 format.
33279
33280 Options
33281
33282 The filter accepts the following options, or any of the options
33283 supported by the libswscale scaler.
33284
33285 See the ffmpeg-scaler manual for the complete list of scaler options.
33286
33287 width, w
33288 height, h
33289 Set the output video dimension expression. Default value is the
33290 input dimension.
33291
33292 If the width or w value is 0, the input width is used for the
33293 output. If the height or h value is 0, the input height is used for
33294 the output.
33295
33296 If one and only one of the values is -n with n >= 1, the scale
33297 filter will use a value that maintains the aspect ratio of the
33298 input image, calculated from the other specified dimension. After
33299 that it will, however, make sure that the calculated dimension is
33300 divisible by n and adjust the value if necessary.
33301
33302 If both values are -n with n >= 1, the behavior will be identical
33303 to both values being set to 0 as previously detailed.
33304
33305 See below for the list of accepted constants for use in the
33306 dimension expression.
33307
33308 eval
33309 Specify when to evaluate width and height expression. It accepts
33310 the following values:
33311
33312 init
33313 Only evaluate expressions once during the filter initialization
33314 or when a command is processed.
33315
33316 frame
33317 Evaluate expressions for each incoming frame.
33318
33319 Default value is init.
33320
33321 interl
33322 Set the interlacing mode. It accepts the following values:
33323
33324 1 Force interlaced aware scaling.
33325
33326 0 Do not apply interlaced scaling.
33327
33328 -1 Select interlaced aware scaling depending on whether the source
33329 frames are flagged as interlaced or not.
33330
33331 Default value is 0.
33332
33333 flags
33334 Set libswscale scaling flags. See the ffmpeg-scaler manual for the
33335 complete list of values. If not explicitly specified the filter
33336 applies the default flags.
33337
33338 param0, param1
33339 Set libswscale input parameters for scaling algorithms that need
33340 them. See the ffmpeg-scaler manual for the complete documentation.
33341 If not explicitly specified the filter applies empty parameters.
33342
33343 size, s
33344 Set the video size. For the syntax of this option, check the "Video
33345 size" section in the ffmpeg-utils manual.
33346
33347 in_color_matrix
33348 out_color_matrix
33349 Set in/output YCbCr color space type.
33350
33351 This allows the autodetected value to be overridden as well as
33352 allows forcing a specific value used for the output and encoder.
33353
33354 If not specified, the color space type depends on the pixel format.
33355
33356 Possible values:
33357
33358 auto
33359 Choose automatically.
33360
33361 bt709
33362 Format conforming to International Telecommunication Union
33363 (ITU) Recommendation BT.709.
33364
33365 fcc Set color space conforming to the United States Federal
33366 Communications Commission (FCC) Code of Federal Regulations
33367 (CFR) Title 47 (2003) 73.682 (a).
33368
33369 bt601
33370 bt470
33371 smpte170m
33372 Set color space conforming to:
33373
33374 • ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
33375
33376 • ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
33377
33378 • Society of Motion Picture and Television Engineers (SMPTE)
33379 ST 170:2004
33380
33381 smpte240m
33382 Set color space conforming to SMPTE ST 240:1999.
33383
33384 bt2020
33385 Set color space conforming to ITU-R BT.2020 non-constant
33386 luminance system.
33387
33388 in_range
33389 out_range
33390 Set in/output YCbCr sample range.
33391
33392 This allows the autodetected value to be overridden as well as
33393 allows forcing a specific value used for the output and encoder. If
33394 not specified, the range depends on the pixel format. Possible
33395 values:
33396
33397 auto/unknown
33398 Choose automatically.
33399
33400 jpeg/full/pc
33401 Set full range (0-255 in case of 8-bit luma).
33402
33403 mpeg/limited/tv
33404 Set "MPEG" range (16-235 in case of 8-bit luma).
33405
33406 force_original_aspect_ratio
33407 Enable decreasing or increasing output video width or height if
33408 necessary to keep the original aspect ratio. Possible values:
33409
33410 disable
33411 Scale the video as specified and disable this feature.
33412
33413 decrease
33414 The output video dimensions will automatically be decreased if
33415 needed.
33416
33417 increase
33418 The output video dimensions will automatically be increased if
33419 needed.
33420
33421 One useful instance of this option is that when you know a specific
33422 device's maximum allowed resolution, you can use this to limit the
33423 output video to that, while retaining the aspect ratio. For
33424 example, device A allows 1280x720 playback, and your video is
33425 1920x800. Using this option (set it to decrease) and specifying
33426 1280x720 to the command line makes the output 1280x533.
33427
33428 Please note that this is a different thing than specifying -1 for w
33429 or h, you still need to specify the output resolution for this
33430 option to work.
33431
33432 force_divisible_by
33433 Ensures that both the output dimensions, width and height, are
33434 divisible by the given integer when used together with
33435 force_original_aspect_ratio. This works similar to using "-n" in
33436 the w and h options.
33437
33438 This option respects the value set for force_original_aspect_ratio,
33439 increasing or decreasing the resolution accordingly. The video's
33440 aspect ratio may be slightly modified.
33441
33442 This option can be handy if you need to have a video fit within or
33443 exceed a defined resolution using force_original_aspect_ratio but
33444 also have encoder restrictions on width or height divisibility.
33445
33446 The values of the w and h options are expressions containing the
33447 following constants:
33448
33449 in_w
33450 in_h
33451 The input width and height
33452
33453 iw
33454 ih These are the same as in_w and in_h.
33455
33456 out_w
33457 out_h
33458 The output (scaled) width and height
33459
33460 ow
33461 oh These are the same as out_w and out_h
33462
33463 a The same as iw / ih
33464
33465 sar input sample aspect ratio
33466
33467 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
33468
33469 hsub
33470 vsub
33471 horizontal and vertical input chroma subsample values. For example
33472 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
33473
33474 ohsub
33475 ovsub
33476 horizontal and vertical output chroma subsample values. For example
33477 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
33478
33479 n The (sequential) number of the input frame, starting from 0. Only
33480 available with "eval=frame".
33481
33482 t The presentation timestamp of the input frame, expressed as a
33483 number of seconds. Only available with "eval=frame".
33484
33485 pos The position (byte offset) of the frame in the input stream, or NaN
33486 if this information is unavailable and/or meaningless (for example
33487 in case of synthetic video). Only available with "eval=frame".
33488
33489 Examples
33490
33491 • Scale the input video to a size of 200x100
33492
33493 scale=w=200:h=100
33494
33495 This is equivalent to:
33496
33497 scale=200:100
33498
33499 or:
33500
33501 scale=200x100
33502
33503 • Specify a size abbreviation for the output size:
33504
33505 scale=qcif
33506
33507 which can also be written as:
33508
33509 scale=size=qcif
33510
33511 • Scale the input to 2x:
33512
33513 scale=w=2*iw:h=2*ih
33514
33515 • The above is the same as:
33516
33517 scale=2*in_w:2*in_h
33518
33519 • Scale the input to 2x with forced interlaced scaling:
33520
33521 scale=2*iw:2*ih:interl=1
33522
33523 • Scale the input to half size:
33524
33525 scale=w=iw/2:h=ih/2
33526
33527 • Increase the width, and set the height to the same size:
33528
33529 scale=3/2*iw:ow
33530
33531 • Seek Greek harmony:
33532
33533 scale=iw:1/PHI*iw
33534 scale=ih*PHI:ih
33535
33536 • Increase the height, and set the width to 3/2 of the height:
33537
33538 scale=w=3/2*oh:h=3/5*ih
33539
33540 • Increase the size, making the size a multiple of the chroma
33541 subsample values:
33542
33543 scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
33544
33545 • Increase the width to a maximum of 500 pixels, keeping the same
33546 aspect ratio as the input:
33547
33548 scale=w='min(500\, iw*3/2):h=-1'
33549
33550 • Make pixels square by combining scale and setsar:
33551
33552 scale='trunc(ih*dar):ih',setsar=1/1
33553
33554 • Make pixels square by combining scale and setsar, making sure the
33555 resulting resolution is even (required by some codecs):
33556
33557 scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
33558
33559 Commands
33560
33561 This filter supports the following commands:
33562
33563 width, w
33564 height, h
33565 Set the output video dimension expression. The command accepts the
33566 same syntax of the corresponding option.
33567
33568 If the specified expression is not valid, it is kept at its current
33569 value.
33570
33571 scale_cuda
33572 Scale (resize) and convert (pixel format) the input video, using
33573 accelerated CUDA kernels. Setting the output width and height works in
33574 the same way as for the scale filter.
33575
33576 The filter accepts the following options:
33577
33578 w
33579 h Set the output video dimension expression. Default value is the
33580 input dimension.
33581
33582 Allows for the same expressions as the scale filter.
33583
33584 interp_algo
33585 Sets the algorithm used for scaling:
33586
33587 nearest
33588 Nearest neighbour
33589
33590 Used by default if input parameters match the desired output.
33591
33592 bilinear
33593 Bilinear
33594
33595 bicubic
33596 Bicubic
33597
33598 This is the default.
33599
33600 lanczos
33601 Lanczos
33602
33603 format
33604 Controls the output pixel format. By default, or if none is
33605 specified, the input pixel format is used.
33606
33607 The filter does not support converting between YUV and RGB pixel
33608 formats.
33609
33610 passthrough
33611 If set to 0, every frame is processed, even if no conversion is
33612 neccesary. This mode can be useful to use the filter as a buffer
33613 for a downstream frame-consumer that exhausts the limited decoder
33614 frame pool.
33615
33616 If set to 1, frames are passed through as-is if they match the
33617 desired output parameters. This is the default behaviour.
33618
33619 param
33620 Algorithm-Specific parameter.
33621
33622 Affects the curves of the bicubic algorithm.
33623
33624 force_original_aspect_ratio
33625 force_divisible_by
33626 Work the same as the identical scale filter options.
33627
33628 Examples
33629
33630 • Scale input to 720p, keeping aspect ratio and ensuring the output
33631 is yuv420p.
33632
33633 scale_cuda=-2:720:format=yuv420p
33634
33635 • Upscale to 4K using nearest neighbour algorithm.
33636
33637 scale_cuda=4096:2160:interp_algo=nearest
33638
33639 • Don't do any conversion or scaling, but copy all input frames into
33640 newly allocated ones. This can be useful to deal with a filter and
33641 encode chain that otherwise exhausts the decoders frame pool.
33642
33643 scale_cuda=passthrough=0
33644
33645 scale_npp
33646 Use the NVIDIA Performance Primitives (libnpp) to perform scaling
33647 and/or pixel format conversion on CUDA video frames. Setting the output
33648 width and height works in the same way as for the scale filter.
33649
33650 The following additional options are accepted:
33651
33652 format
33653 The pixel format of the output CUDA frames. If set to the string
33654 "same" (the default), the input format will be kept. Note that
33655 automatic format negotiation and conversion is not yet supported
33656 for hardware frames
33657
33658 interp_algo
33659 The interpolation algorithm used for resizing. One of the
33660 following:
33661
33662 nn Nearest neighbour.
33663
33664 linear
33665 cubic
33666 cubic2p_bspline
33667 2-parameter cubic (B=1, C=0)
33668
33669 cubic2p_catmullrom
33670 2-parameter cubic (B=0, C=1/2)
33671
33672 cubic2p_b05c03
33673 2-parameter cubic (B=1/2, C=3/10)
33674
33675 super
33676 Supersampling
33677
33678 lanczos
33679 force_original_aspect_ratio
33680 Enable decreasing or increasing output video width or height if
33681 necessary to keep the original aspect ratio. Possible values:
33682
33683 disable
33684 Scale the video as specified and disable this feature.
33685
33686 decrease
33687 The output video dimensions will automatically be decreased if
33688 needed.
33689
33690 increase
33691 The output video dimensions will automatically be increased if
33692 needed.
33693
33694 One useful instance of this option is that when you know a specific
33695 device's maximum allowed resolution, you can use this to limit the
33696 output video to that, while retaining the aspect ratio. For
33697 example, device A allows 1280x720 playback, and your video is
33698 1920x800. Using this option (set it to decrease) and specifying
33699 1280x720 to the command line makes the output 1280x533.
33700
33701 Please note that this is a different thing than specifying -1 for w
33702 or h, you still need to specify the output resolution for this
33703 option to work.
33704
33705 force_divisible_by
33706 Ensures that both the output dimensions, width and height, are
33707 divisible by the given integer when used together with
33708 force_original_aspect_ratio. This works similar to using "-n" in
33709 the w and h options.
33710
33711 This option respects the value set for force_original_aspect_ratio,
33712 increasing or decreasing the resolution accordingly. The video's
33713 aspect ratio may be slightly modified.
33714
33715 This option can be handy if you need to have a video fit within or
33716 exceed a defined resolution using force_original_aspect_ratio but
33717 also have encoder restrictions on width or height divisibility.
33718
33719 eval
33720 Specify when to evaluate width and height expression. It accepts
33721 the following values:
33722
33723 init
33724 Only evaluate expressions once during the filter initialization
33725 or when a command is processed.
33726
33727 frame
33728 Evaluate expressions for each incoming frame.
33729
33730 The values of the w and h options are expressions containing the
33731 following constants:
33732
33733 in_w
33734 in_h
33735 The input width and height
33736
33737 iw
33738 ih These are the same as in_w and in_h.
33739
33740 out_w
33741 out_h
33742 The output (scaled) width and height
33743
33744 ow
33745 oh These are the same as out_w and out_h
33746
33747 a The same as iw / ih
33748
33749 sar input sample aspect ratio
33750
33751 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
33752
33753 n The (sequential) number of the input frame, starting from 0. Only
33754 available with "eval=frame".
33755
33756 t The presentation timestamp of the input frame, expressed as a
33757 number of seconds. Only available with "eval=frame".
33758
33759 pos The position (byte offset) of the frame in the input stream, or NaN
33760 if this information is unavailable and/or meaningless (for example
33761 in case of synthetic video). Only available with "eval=frame".
33762
33763 scale2ref
33764 Scale (resize) the input video, based on a reference video.
33765
33766 See the scale filter for available options, scale2ref supports the same
33767 but uses the reference video instead of the main input as basis.
33768 scale2ref also supports the following additional constants for the w
33769 and h options:
33770
33771 main_w
33772 main_h
33773 The main input video's width and height
33774
33775 main_a
33776 The same as main_w / main_h
33777
33778 main_sar
33779 The main input video's sample aspect ratio
33780
33781 main_dar, mdar
33782 The main input video's display aspect ratio. Calculated from
33783 "(main_w / main_h) * main_sar".
33784
33785 main_hsub
33786 main_vsub
33787 The main input video's horizontal and vertical chroma subsample
33788 values. For example for the pixel format "yuv422p" hsub is 2 and
33789 vsub is 1.
33790
33791 main_n
33792 The (sequential) number of the main input frame, starting from 0.
33793 Only available with "eval=frame".
33794
33795 main_t
33796 The presentation timestamp of the main input frame, expressed as a
33797 number of seconds. Only available with "eval=frame".
33798
33799 main_pos
33800 The position (byte offset) of the frame in the main input stream,
33801 or NaN if this information is unavailable and/or meaningless (for
33802 example in case of synthetic video). Only available with
33803 "eval=frame".
33804
33805 Examples
33806
33807 • Scale a subtitle stream (b) to match the main video (a) in size
33808 before overlaying
33809
33810 'scale2ref[b][a];[a][b]overlay'
33811
33812 • Scale a logo to 1/10th the height of a video, while preserving its
33813 display aspect ratio.
33814
33815 [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
33816
33817 Commands
33818
33819 This filter supports the following commands:
33820
33821 width, w
33822 height, h
33823 Set the output video dimension expression. The command accepts the
33824 same syntax of the corresponding option.
33825
33826 If the specified expression is not valid, it is kept at its current
33827 value.
33828
33829 scale2ref_npp
33830 Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
33831 input video, based on a reference video.
33832
33833 See the scale_npp filter for available options, scale2ref_npp supports
33834 the same but uses the reference video instead of the main input as
33835 basis. scale2ref_npp also supports the following additional constants
33836 for the w and h options:
33837
33838 main_w
33839 main_h
33840 The main input video's width and height
33841
33842 main_a
33843 The same as main_w / main_h
33844
33845 main_sar
33846 The main input video's sample aspect ratio
33847
33848 main_dar, mdar
33849 The main input video's display aspect ratio. Calculated from
33850 "(main_w / main_h) * main_sar".
33851
33852 main_n
33853 The (sequential) number of the main input frame, starting from 0.
33854 Only available with "eval=frame".
33855
33856 main_t
33857 The presentation timestamp of the main input frame, expressed as a
33858 number of seconds. Only available with "eval=frame".
33859
33860 main_pos
33861 The position (byte offset) of the frame in the main input stream,
33862 or NaN if this information is unavailable and/or meaningless (for
33863 example in case of synthetic video). Only available with
33864 "eval=frame".
33865
33866 Examples
33867
33868 • Scale a subtitle stream (b) to match the main video (a) in size
33869 before overlaying
33870
33871 'scale2ref_npp[b][a];[a][b]overlay_cuda'
33872
33873 • Scale a logo to 1/10th the height of a video, while preserving its
33874 display aspect ratio.
33875
33876 [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
33877
33878 scharr
33879 Apply scharr operator to input video stream.
33880
33881 The filter accepts the following option:
33882
33883 planes
33884 Set which planes will be processed, unprocessed planes will be
33885 copied. By default value 0xf, all planes will be processed.
33886
33887 scale
33888 Set value which will be multiplied with filtered result.
33889
33890 delta
33891 Set value which will be added to filtered result.
33892
33893 Commands
33894
33895 This filter supports the all above options as commands.
33896
33897 scroll
33898 Scroll input video horizontally and/or vertically by constant speed.
33899
33900 The filter accepts the following options:
33901
33902 horizontal, h
33903 Set the horizontal scrolling speed. Default is 0. Allowed range is
33904 from -1 to 1. Negative values changes scrolling direction.
33905
33906 vertical, v
33907 Set the vertical scrolling speed. Default is 0. Allowed range is
33908 from -1 to 1. Negative values changes scrolling direction.
33909
33910 hpos
33911 Set the initial horizontal scrolling position. Default is 0.
33912 Allowed range is from 0 to 1.
33913
33914 vpos
33915 Set the initial vertical scrolling position. Default is 0. Allowed
33916 range is from 0 to 1.
33917
33918 Commands
33919
33920 This filter supports the following commands:
33921
33922 horizontal, h
33923 Set the horizontal scrolling speed.
33924
33925 vertical, v
33926 Set the vertical scrolling speed.
33927
33928 scdet
33929 Detect video scene change.
33930
33931 This filter sets frame metadata with mafd between frame, the scene
33932 score, and forward the frame to the next filter, so they can use these
33933 metadata to detect scene change or others.
33934
33935 In addition, this filter logs a message and sets frame metadata when it
33936 detects a scene change by threshold.
33937
33938 "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
33939
33940 "lavfi.scd.score" metadata keys are set with scene change score for
33941 every frame to detect scene change.
33942
33943 "lavfi.scd.time" metadata keys are set with current filtered frame time
33944 which detect scene change with threshold.
33945
33946 The filter accepts the following options:
33947
33948 threshold, t
33949 Set the scene change detection threshold as a percentage of maximum
33950 change. Good values are in the "[8.0, 14.0]" range. The range for
33951 threshold is "[0., 100.]".
33952
33953 Default value is 10..
33954
33955 sc_pass, s
33956 Set the flag to pass scene change frames to the next filter.
33957 Default value is 0 You can enable it if you want to get snapshot of
33958 scene change frames only.
33959
33960 selectivecolor
33961 Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
33962 colors (such as "reds", "yellows", "greens", "cyans", ...). The
33963 adjustment range is defined by the "purity" of the color (that is, how
33964 saturated it already is).
33965
33966 This filter is similar to the Adobe Photoshop Selective Color tool.
33967
33968 The filter accepts the following options:
33969
33970 correction_method
33971 Select color correction method.
33972
33973 Available values are:
33974
33975 absolute
33976 Specified adjustments are applied "as-is" (added/subtracted to
33977 original pixel component value).
33978
33979 relative
33980 Specified adjustments are relative to the original component
33981 value.
33982
33983 Default is "absolute".
33984
33985 reds
33986 Adjustments for red pixels (pixels where the red component is the
33987 maximum)
33988
33989 yellows
33990 Adjustments for yellow pixels (pixels where the blue component is
33991 the minimum)
33992
33993 greens
33994 Adjustments for green pixels (pixels where the green component is
33995 the maximum)
33996
33997 cyans
33998 Adjustments for cyan pixels (pixels where the red component is the
33999 minimum)
34000
34001 blues
34002 Adjustments for blue pixels (pixels where the blue component is the
34003 maximum)
34004
34005 magentas
34006 Adjustments for magenta pixels (pixels where the green component is
34007 the minimum)
34008
34009 whites
34010 Adjustments for white pixels (pixels where all components are
34011 greater than 128)
34012
34013 neutrals
34014 Adjustments for all pixels except pure black and pure white
34015
34016 blacks
34017 Adjustments for black pixels (pixels where all components are
34018 lesser than 128)
34019
34020 psfile
34021 Specify a Photoshop selective color file (".asv") to import the
34022 settings from.
34023
34024 All the adjustment settings (reds, yellows, ...) accept up to 4 space
34025 separated floating point adjustment values in the [-1,1] range,
34026 respectively to adjust the amount of cyan, magenta, yellow and black
34027 for the pixels of its range.
34028
34029 Examples
34030
34031 • Increase cyan by 50% and reduce yellow by 33% in every green areas,
34032 and increase magenta by 27% in blue areas:
34033
34034 selectivecolor=greens=.5 0 -.33 0:blues=0 .27
34035
34036 • Use a Photoshop selective color preset:
34037
34038 selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
34039
34040 separatefields
34041 The "separatefields" takes a frame-based video input and splits each
34042 frame into its components fields, producing a new half height clip with
34043 twice the frame rate and twice the frame count.
34044
34045 This filter use field-dominance information in frame to decide which of
34046 each pair of fields to place first in the output. If it gets it wrong
34047 use setfield filter before "separatefields" filter.
34048
34049 setdar, setsar
34050 The "setdar" filter sets the Display Aspect Ratio for the filter output
34051 video.
34052
34053 This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
34054 according to the following equation:
34055
34056 <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
34057
34058 Keep in mind that the "setdar" filter does not modify the pixel
34059 dimensions of the video frame. Also, the display aspect ratio set by
34060 this filter may be changed by later filters in the filterchain, e.g. in
34061 case of scaling or if another "setdar" or a "setsar" filter is applied.
34062
34063 The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
34064 filter output video.
34065
34066 Note that as a consequence of the application of this filter, the
34067 output display aspect ratio will change according to the equation
34068 above.
34069
34070 Keep in mind that the sample aspect ratio set by the "setsar" filter
34071 may be changed by later filters in the filterchain, e.g. if another
34072 "setsar" or a "setdar" filter is applied.
34073
34074 It accepts the following parameters:
34075
34076 r, ratio, dar ("setdar" only), sar ("setsar" only)
34077 Set the aspect ratio used by the filter.
34078
34079 The parameter can be a floating point number string, an expression,
34080 or a string of the form num:den, where num and den are the
34081 numerator and denominator of the aspect ratio. If the parameter is
34082 not specified, it is assumed the value "0". In case the form
34083 "num:den" is used, the ":" character should be escaped.
34084
34085 max Set the maximum integer value to use for expressing numerator and
34086 denominator when reducing the expressed aspect ratio to a rational.
34087 Default value is 100.
34088
34089 The parameter sar is an expression containing the following constants:
34090
34091 E, PI, PHI
34092 These are approximated values for the mathematical constants e
34093 (Euler's number), pi (Greek pi), and phi (the golden ratio).
34094
34095 w, h
34096 The input width and height.
34097
34098 a These are the same as w / h.
34099
34100 sar The input sample aspect ratio.
34101
34102 dar The input display aspect ratio. It is the same as (w / h) * sar.
34103
34104 hsub, vsub
34105 Horizontal and vertical chroma subsample values. For example, for
34106 the pixel format "yuv422p" hsub is 2 and vsub is 1.
34107
34108 Examples
34109
34110 • To change the display aspect ratio to 16:9, specify one of the
34111 following:
34112
34113 setdar=dar=1.77777
34114 setdar=dar=16/9
34115
34116 • To change the sample aspect ratio to 10:11, specify:
34117
34118 setsar=sar=10/11
34119
34120 • To set a display aspect ratio of 16:9, and specify a maximum
34121 integer value of 1000 in the aspect ratio reduction, use the
34122 command:
34123
34124 setdar=ratio=16/9:max=1000
34125
34126 setfield
34127 Force field for the output video frame.
34128
34129 The "setfield" filter marks the interlace type field for the output
34130 frames. It does not change the input frame, but only sets the
34131 corresponding property, which affects how the frame is treated by
34132 following filters (e.g. "fieldorder" or "yadif").
34133
34134 The filter accepts the following options:
34135
34136 mode
34137 Available values are:
34138
34139 auto
34140 Keep the same field property.
34141
34142 bff Mark the frame as bottom-field-first.
34143
34144 tff Mark the frame as top-field-first.
34145
34146 prog
34147 Mark the frame as progressive.
34148
34149 setparams
34150 Force frame parameter for the output video frame.
34151
34152 The "setparams" filter marks interlace and color range for the output
34153 frames. It does not change the input frame, but only sets the
34154 corresponding property, which affects how the frame is treated by
34155 filters/encoders.
34156
34157 field_mode
34158 Available values are:
34159
34160 auto
34161 Keep the same field property (default).
34162
34163 bff Mark the frame as bottom-field-first.
34164
34165 tff Mark the frame as top-field-first.
34166
34167 prog
34168 Mark the frame as progressive.
34169
34170 range
34171 Available values are:
34172
34173 auto
34174 Keep the same color range property (default).
34175
34176 unspecified, unknown
34177 Mark the frame as unspecified color range.
34178
34179 limited, tv, mpeg
34180 Mark the frame as limited range.
34181
34182 full, pc, jpeg
34183 Mark the frame as full range.
34184
34185 color_primaries
34186 Set the color primaries. Available values are:
34187
34188 auto
34189 Keep the same color primaries property (default).
34190
34191 bt709
34192 unknown
34193 bt470m
34194 bt470bg
34195 smpte170m
34196 smpte240m
34197 film
34198 bt2020
34199 smpte428
34200 smpte431
34201 smpte432
34202 jedec-p22
34203 color_trc
34204 Set the color transfer. Available values are:
34205
34206 auto
34207 Keep the same color trc property (default).
34208
34209 bt709
34210 unknown
34211 bt470m
34212 bt470bg
34213 smpte170m
34214 smpte240m
34215 linear
34216 log100
34217 log316
34218 iec61966-2-4
34219 bt1361e
34220 iec61966-2-1
34221 bt2020-10
34222 bt2020-12
34223 smpte2084
34224 smpte428
34225 arib-std-b67
34226 colorspace
34227 Set the colorspace. Available values are:
34228
34229 auto
34230 Keep the same colorspace property (default).
34231
34232 gbr
34233 bt709
34234 unknown
34235 fcc
34236 bt470bg
34237 smpte170m
34238 smpte240m
34239 ycgco
34240 bt2020nc
34241 bt2020c
34242 smpte2085
34243 chroma-derived-nc
34244 chroma-derived-c
34245 ictcp
34246
34247 sharpen_npp
34248 Use the NVIDIA Performance Primitives (libnpp) to perform image
34249 sharpening with border control.
34250
34251 The following additional options are accepted:
34252
34253 border_type
34254 Type of sampling to be used ad frame borders. One of the following:
34255
34256 replicate
34257 Replicate pixel values.
34258
34259 shear
34260 Apply shear transform to input video.
34261
34262 This filter supports the following options:
34263
34264 shx Shear factor in X-direction. Default value is 0. Allowed range is
34265 from -2 to 2.
34266
34267 shy Shear factor in Y-direction. Default value is 0. Allowed range is
34268 from -2 to 2.
34269
34270 fillcolor, c
34271 Set the color used to fill the output area not covered by the
34272 transformed video. For the general syntax of this option, check the
34273 "Color" section in the ffmpeg-utils manual. If the special value
34274 "none" is selected then no background is printed (useful for
34275 example if the background is never shown).
34276
34277 Default value is "black".
34278
34279 interp
34280 Set interpolation type. Can be "bilinear" or "nearest". Default is
34281 "bilinear".
34282
34283 Commands
34284
34285 This filter supports the all above options as commands.
34286
34287 showinfo
34288 Show a line containing various information for each input video frame.
34289 The input video is not modified.
34290
34291 This filter supports the following options:
34292
34293 checksum
34294 Calculate checksums of each plane. By default enabled.
34295
34296 The shown line contains a sequence of key/value pairs of the form
34297 key:value.
34298
34299 The following values are shown in the output:
34300
34301 n The (sequential) number of the input frame, starting from 0.
34302
34303 pts The Presentation TimeStamp of the input frame, expressed as a
34304 number of time base units. The time base unit depends on the filter
34305 input pad.
34306
34307 pts_time
34308 The Presentation TimeStamp of the input frame, expressed as a
34309 number of seconds.
34310
34311 pos The position of the frame in the input stream, or -1 if this
34312 information is unavailable and/or meaningless (for example in case
34313 of synthetic video).
34314
34315 fmt The pixel format name.
34316
34317 sar The sample aspect ratio of the input frame, expressed in the form
34318 num/den.
34319
34320 s The size of the input frame. For the syntax of this option, check
34321 the "Video size" section in the ffmpeg-utils manual.
34322
34323 i The type of interlaced mode ("P" for "progressive", "T" for top
34324 field first, "B" for bottom field first).
34325
34326 iskey
34327 This is 1 if the frame is a key frame, 0 otherwise.
34328
34329 type
34330 The picture type of the input frame ("I" for an I-frame, "P" for a
34331 P-frame, "B" for a B-frame, or "?" for an unknown type). Also
34332 refer to the documentation of the "AVPictureType" enum and of the
34333 "av_get_picture_type_char" function defined in libavutil/avutil.h.
34334
34335 checksum
34336 The Adler-32 checksum (printed in hexadecimal) of all the planes of
34337 the input frame.
34338
34339 plane_checksum
34340 The Adler-32 checksum (printed in hexadecimal) of each plane of the
34341 input frame, expressed in the form "[c0 c1 c2 c3]".
34342
34343 mean
34344 The mean value of pixels in each plane of the input frame,
34345 expressed in the form "[mean0 mean1 mean2 mean3]".
34346
34347 stdev
34348 The standard deviation of pixel values in each plane of the input
34349 frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
34350
34351 showpalette
34352 Displays the 256 colors palette of each frame. This filter is only
34353 relevant for pal8 pixel format frames.
34354
34355 It accepts the following option:
34356
34357 s Set the size of the box used to represent one palette color entry.
34358 Default is 30 (for a "30x30" pixel box).
34359
34360 shuffleframes
34361 Reorder and/or duplicate and/or drop video frames.
34362
34363 It accepts the following parameters:
34364
34365 mapping
34366 Set the destination indexes of input frames. This is space or '|'
34367 separated list of indexes that maps input frames to output frames.
34368 Number of indexes also sets maximal value that each index may have.
34369 '-1' index have special meaning and that is to drop frame.
34370
34371 The first frame has the index 0. The default is to keep the input
34372 unchanged.
34373
34374 Examples
34375
34376 • Swap second and third frame of every three frames of the input:
34377
34378 ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
34379
34380 • Swap 10th and 1st frame of every ten frames of the input:
34381
34382 ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
34383
34384 shufflepixels
34385 Reorder pixels in video frames.
34386
34387 This filter accepts the following options:
34388
34389 direction, d
34390 Set shuffle direction. Can be forward or inverse direction.
34391 Default direction is forward.
34392
34393 mode, m
34394 Set shuffle mode. Can be horizontal, vertical or block mode.
34395
34396 width, w
34397 height, h
34398 Set shuffle block_size. In case of horizontal shuffle mode only
34399 width part of size is used, and in case of vertical shuffle mode
34400 only height part of size is used.
34401
34402 seed, s
34403 Set random seed used with shuffling pixels. Mainly useful to set to
34404 be able to reverse filtering process to get original input. For
34405 example, to reverse forward shuffle you need to use same parameters
34406 and exact same seed and to set direction to inverse.
34407
34408 shuffleplanes
34409 Reorder and/or duplicate video planes.
34410
34411 It accepts the following parameters:
34412
34413 map0
34414 The index of the input plane to be used as the first output plane.
34415
34416 map1
34417 The index of the input plane to be used as the second output plane.
34418
34419 map2
34420 The index of the input plane to be used as the third output plane.
34421
34422 map3
34423 The index of the input plane to be used as the fourth output plane.
34424
34425 The first plane has the index 0. The default is to keep the input
34426 unchanged.
34427
34428 Examples
34429
34430 • Swap the second and third planes of the input:
34431
34432 ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
34433
34434 signalstats
34435 Evaluate various visual metrics that assist in determining issues
34436 associated with the digitization of analog video media.
34437
34438 By default the filter will log these metadata values:
34439
34440 YMIN
34441 Display the minimal Y value contained within the input frame.
34442 Expressed in range of [0-255].
34443
34444 YLOW
34445 Display the Y value at the 10% percentile within the input frame.
34446 Expressed in range of [0-255].
34447
34448 YAVG
34449 Display the average Y value within the input frame. Expressed in
34450 range of [0-255].
34451
34452 YHIGH
34453 Display the Y value at the 90% percentile within the input frame.
34454 Expressed in range of [0-255].
34455
34456 YMAX
34457 Display the maximum Y value contained within the input frame.
34458 Expressed in range of [0-255].
34459
34460 UMIN
34461 Display the minimal U value contained within the input frame.
34462 Expressed in range of [0-255].
34463
34464 ULOW
34465 Display the U value at the 10% percentile within the input frame.
34466 Expressed in range of [0-255].
34467
34468 UAVG
34469 Display the average U value within the input frame. Expressed in
34470 range of [0-255].
34471
34472 UHIGH
34473 Display the U value at the 90% percentile within the input frame.
34474 Expressed in range of [0-255].
34475
34476 UMAX
34477 Display the maximum U value contained within the input frame.
34478 Expressed in range of [0-255].
34479
34480 VMIN
34481 Display the minimal V value contained within the input frame.
34482 Expressed in range of [0-255].
34483
34484 VLOW
34485 Display the V value at the 10% percentile within the input frame.
34486 Expressed in range of [0-255].
34487
34488 VAVG
34489 Display the average V value within the input frame. Expressed in
34490 range of [0-255].
34491
34492 VHIGH
34493 Display the V value at the 90% percentile within the input frame.
34494 Expressed in range of [0-255].
34495
34496 VMAX
34497 Display the maximum V value contained within the input frame.
34498 Expressed in range of [0-255].
34499
34500 SATMIN
34501 Display the minimal saturation value contained within the input
34502 frame. Expressed in range of [0-~181.02].
34503
34504 SATLOW
34505 Display the saturation value at the 10% percentile within the input
34506 frame. Expressed in range of [0-~181.02].
34507
34508 SATAVG
34509 Display the average saturation value within the input frame.
34510 Expressed in range of [0-~181.02].
34511
34512 SATHIGH
34513 Display the saturation value at the 90% percentile within the input
34514 frame. Expressed in range of [0-~181.02].
34515
34516 SATMAX
34517 Display the maximum saturation value contained within the input
34518 frame. Expressed in range of [0-~181.02].
34519
34520 HUEMED
34521 Display the median value for hue within the input frame. Expressed
34522 in range of [0-360].
34523
34524 HUEAVG
34525 Display the average value for hue within the input frame. Expressed
34526 in range of [0-360].
34527
34528 YDIF
34529 Display the average of sample value difference between all values
34530 of the Y plane in the current frame and corresponding values of the
34531 previous input frame. Expressed in range of [0-255].
34532
34533 UDIF
34534 Display the average of sample value difference between all values
34535 of the U plane in the current frame and corresponding values of the
34536 previous input frame. Expressed in range of [0-255].
34537
34538 VDIF
34539 Display the average of sample value difference between all values
34540 of the V plane in the current frame and corresponding values of the
34541 previous input frame. Expressed in range of [0-255].
34542
34543 YBITDEPTH
34544 Display bit depth of Y plane in current frame. Expressed in range
34545 of [0-16].
34546
34547 UBITDEPTH
34548 Display bit depth of U plane in current frame. Expressed in range
34549 of [0-16].
34550
34551 VBITDEPTH
34552 Display bit depth of V plane in current frame. Expressed in range
34553 of [0-16].
34554
34555 The filter accepts the following options:
34556
34557 stat
34558 out stat specify an additional form of image analysis. out output
34559 video with the specified type of pixel highlighted.
34560
34561 Both options accept the following values:
34562
34563 tout
34564 Identify temporal outliers pixels. A temporal outlier is a
34565 pixel unlike the neighboring pixels of the same field. Examples
34566 of temporal outliers include the results of video dropouts,
34567 head clogs, or tape tracking issues.
34568
34569 vrep
34570 Identify vertical line repetition. Vertical line repetition
34571 includes similar rows of pixels within a frame. In born-digital
34572 video vertical line repetition is common, but this pattern is
34573 uncommon in video digitized from an analog source. When it
34574 occurs in video that results from the digitization of an analog
34575 source it can indicate concealment from a dropout compensator.
34576
34577 brng
34578 Identify pixels that fall outside of legal broadcast range.
34579
34580 color, c
34581 Set the highlight color for the out option. The default color is
34582 yellow.
34583
34584 Examples
34585
34586 • Output data of various video metrics:
34587
34588 ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
34589
34590 • Output specific data about the minimum and maximum values of the Y
34591 plane per frame:
34592
34593 ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
34594
34595 • Playback video while highlighting pixels that are outside of
34596 broadcast range in red.
34597
34598 ffplay example.mov -vf signalstats="out=brng:color=red"
34599
34600 • Playback video with signalstats metadata drawn over the frame.
34601
34602 ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
34603
34604 The contents of signalstat_drawtext.txt used in the command are:
34605
34606 time %{pts:hms}
34607 Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
34608 U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
34609 V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
34610 saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
34611
34612 signature
34613 Calculates the MPEG-7 Video Signature. The filter can handle more than
34614 one input. In this case the matching between the inputs can be
34615 calculated additionally. The filter always passes through the first
34616 input. The signature of each stream can be written into a file.
34617
34618 It accepts the following options:
34619
34620 detectmode
34621 Enable or disable the matching process.
34622
34623 Available values are:
34624
34625 off Disable the calculation of a matching (default).
34626
34627 full
34628 Calculate the matching for the whole video and output whether
34629 the whole video matches or only parts.
34630
34631 fast
34632 Calculate only until a matching is found or the video ends.
34633 Should be faster in some cases.
34634
34635 nb_inputs
34636 Set the number of inputs. The option value must be a non negative
34637 integer. Default value is 1.
34638
34639 filename
34640 Set the path to which the output is written. If there is more than
34641 one input, the path must be a prototype, i.e. must contain %d or
34642 %0nd (where n is a positive integer), that will be replaced with
34643 the input number. If no filename is specified, no output will be
34644 written. This is the default.
34645
34646 format
34647 Choose the output format.
34648
34649 Available values are:
34650
34651 binary
34652 Use the specified binary representation (default).
34653
34654 xml Use the specified xml representation.
34655
34656 th_d
34657 Set threshold to detect one word as similar. The option value must
34658 be an integer greater than zero. The default value is 9000.
34659
34660 th_dc
34661 Set threshold to detect all words as similar. The option value must
34662 be an integer greater than zero. The default value is 60000.
34663
34664 th_xh
34665 Set threshold to detect frames as similar. The option value must be
34666 an integer greater than zero. The default value is 116.
34667
34668 th_di
34669 Set the minimum length of a sequence in frames to recognize it as
34670 matching sequence. The option value must be a non negative integer
34671 value. The default value is 0.
34672
34673 th_it
34674 Set the minimum relation, that matching frames to all frames must
34675 have. The option value must be a double value between 0 and 1. The
34676 default value is 0.5.
34677
34678 Examples
34679
34680 • To calculate the signature of an input video and store it in
34681 signature.bin:
34682
34683 ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
34684
34685 • To detect whether two videos match and store the signatures in XML
34686 format in signature0.xml and signature1.xml:
34687
34688 ffmpeg -i input1.mkv -i input2.mkv -filter_complex "[0:v][1:v] signature=nb_inputs=2:detectmode=full:format=xml:filename=signature%d.xml" -map :v -f null -
34689
34690 smartblur
34691 Blur the input video without impacting the outlines.
34692
34693 It accepts the following options:
34694
34695 luma_radius, lr
34696 Set the luma radius. The option value must be a float number in the
34697 range [0.1,5.0] that specifies the variance of the gaussian filter
34698 used to blur the image (slower if larger). Default value is 1.0.
34699
34700 luma_strength, ls
34701 Set the luma strength. The option value must be a float number in
34702 the range [-1.0,1.0] that configures the blurring. A value included
34703 in [0.0,1.0] will blur the image whereas a value included in
34704 [-1.0,0.0] will sharpen the image. Default value is 1.0.
34705
34706 luma_threshold, lt
34707 Set the luma threshold used as a coefficient to determine whether a
34708 pixel should be blurred or not. The option value must be an integer
34709 in the range [-30,30]. A value of 0 will filter all the image, a
34710 value included in [0,30] will filter flat areas and a value
34711 included in [-30,0] will filter edges. Default value is 0.
34712
34713 chroma_radius, cr
34714 Set the chroma radius. The option value must be a float number in
34715 the range [0.1,5.0] that specifies the variance of the gaussian
34716 filter used to blur the image (slower if larger). Default value is
34717 luma_radius.
34718
34719 chroma_strength, cs
34720 Set the chroma strength. The option value must be a float number in
34721 the range [-1.0,1.0] that configures the blurring. A value included
34722 in [0.0,1.0] will blur the image whereas a value included in
34723 [-1.0,0.0] will sharpen the image. Default value is luma_strength.
34724
34725 chroma_threshold, ct
34726 Set the chroma threshold used as a coefficient to determine whether
34727 a pixel should be blurred or not. The option value must be an
34728 integer in the range [-30,30]. A value of 0 will filter all the
34729 image, a value included in [0,30] will filter flat areas and a
34730 value included in [-30,0] will filter edges. Default value is
34731 luma_threshold.
34732
34733 If a chroma option is not explicitly set, the corresponding luma value
34734 is set.
34735
34736 sobel
34737 Apply sobel operator to input video stream.
34738
34739 The filter accepts the following option:
34740
34741 planes
34742 Set which planes will be processed, unprocessed planes will be
34743 copied. By default value 0xf, all planes will be processed.
34744
34745 scale
34746 Set value which will be multiplied with filtered result.
34747
34748 delta
34749 Set value which will be added to filtered result.
34750
34751 Commands
34752
34753 This filter supports the all above options as commands.
34754
34755 spp
34756 Apply a simple postprocessing filter that compresses and decompresses
34757 the image at several (or - in the case of quality level 6 - all) shifts
34758 and average the results.
34759
34760 The filter accepts the following options:
34761
34762 quality
34763 Set quality. This option defines the number of levels for
34764 averaging. It accepts an integer in the range 0-6. If set to 0, the
34765 filter will have no effect. A value of 6 means the higher quality.
34766 For each increment of that value the speed drops by a factor of
34767 approximately 2. Default value is 3.
34768
34769 qp Force a constant quantization parameter. If not set, the filter
34770 will use the QP from the video stream (if available).
34771
34772 mode
34773 Set thresholding mode. Available modes are:
34774
34775 hard
34776 Set hard thresholding (default).
34777
34778 soft
34779 Set soft thresholding (better de-ringing effect, but likely
34780 blurrier).
34781
34782 use_bframe_qp
34783 Enable the use of the QP from the B-Frames if set to 1. Using this
34784 option may cause flicker since the B-Frames have often larger QP.
34785 Default is 0 (not enabled).
34786
34787 Commands
34788
34789 This filter supports the following commands:
34790
34791 quality, level
34792 Set quality level. The value "max" can be used to set the maximum
34793 level, currently 6.
34794
34795 sr
34796 Scale the input by applying one of the super-resolution methods based
34797 on convolutional neural networks. Supported models:
34798
34799 • Super-Resolution Convolutional Neural Network model (SRCNN). See
34800 <https://arxiv.org/abs/1501.00092>.
34801
34802 • Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
34803 See <https://arxiv.org/abs/1609.05158>.
34804
34805 Training scripts as well as scripts for model file (.pb) saving can be
34806 found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
34807 Original repository is at
34808 <https://github.com/HighVoltageRocknRoll/sr.git>.
34809
34810 Native model files (.model) can be generated from TensorFlow model
34811 files (.pb) by using tools/python/convert.py
34812
34813 The filter accepts the following options:
34814
34815 dnn_backend
34816 Specify which DNN backend to use for model loading and execution.
34817 This option accepts the following values:
34818
34819 native
34820 Native implementation of DNN loading and execution.
34821
34822 tensorflow
34823 TensorFlow backend. To enable this backend you need to install
34824 the TensorFlow for C library (see
34825 <https://www.tensorflow.org/install/lang_c>) and configure
34826 FFmpeg with "--enable-libtensorflow"
34827
34828 Default value is native.
34829
34830 model
34831 Set path to model file specifying network architecture and its
34832 parameters. Note that different backends use different file
34833 formats. TensorFlow backend can load files for both formats, while
34834 native backend can load files for only its format.
34835
34836 scale_factor
34837 Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
34838 Default value is 2. Scale factor is necessary for SRCNN model,
34839 because it accepts input upscaled using bicubic upscaling with
34840 proper scale factor.
34841
34842 To get full functionality (such as async execution), please use the
34843 dnn_processing filter.
34844
34845 ssim
34846 Obtain the SSIM (Structural SImilarity Metric) between two input
34847 videos.
34848
34849 This filter takes in input two input videos, the first input is
34850 considered the "main" source and is passed unchanged to the output. The
34851 second input is used as a "reference" video for computing the SSIM.
34852
34853 Both video inputs must have the same resolution and pixel format for
34854 this filter to work correctly. Also it assumes that both inputs have
34855 the same number of frames, which are compared one by one.
34856
34857 The filter stores the calculated SSIM of each frame.
34858
34859 The description of the accepted parameters follows.
34860
34861 stats_file, f
34862 If specified the filter will use the named file to save the SSIM of
34863 each individual frame. When filename equals "-" the data is sent to
34864 standard output.
34865
34866 The file printed if stats_file is selected, contains a sequence of
34867 key/value pairs of the form key:value for each compared couple of
34868 frames.
34869
34870 A description of each shown parameter follows:
34871
34872 n sequential number of the input frame, starting from 1
34873
34874 Y, U, V, R, G, B
34875 SSIM of the compared frames for the component specified by the
34876 suffix.
34877
34878 All SSIM of the compared frames for the whole frame.
34879
34880 dB Same as above but in dB representation.
34881
34882 This filter also supports the framesync options.
34883
34884 Examples
34885
34886 • For example:
34887
34888 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
34889 [main][ref] ssim="stats_file=stats.log" [out]
34890
34891 On this example the input file being processed is compared with the
34892 reference file ref_movie.mpg. The SSIM of each individual frame is
34893 stored in stats.log.
34894
34895 • Another example with both psnr and ssim at same time:
34896
34897 ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null -
34898
34899 • Another example with different containers:
34900
34901 ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
34902
34903 stereo3d
34904 Convert between different stereoscopic image formats.
34905
34906 The filters accept the following options:
34907
34908 in Set stereoscopic image format of input.
34909
34910 Available values for input image formats are:
34911
34912 sbsl
34913 side by side parallel (left eye left, right eye right)
34914
34915 sbsr
34916 side by side crosseye (right eye left, left eye right)
34917
34918 sbs2l
34919 side by side parallel with half width resolution (left eye
34920 left, right eye right)
34921
34922 sbs2r
34923 side by side crosseye with half width resolution (right eye
34924 left, left eye right)
34925
34926 abl
34927 tbl above-below (left eye above, right eye below)
34928
34929 abr
34930 tbr above-below (right eye above, left eye below)
34931
34932 ab2l
34933 tb2l
34934 above-below with half height resolution (left eye above, right
34935 eye below)
34936
34937 ab2r
34938 tb2r
34939 above-below with half height resolution (right eye above, left
34940 eye below)
34941
34942 al alternating frames (left eye first, right eye second)
34943
34944 ar alternating frames (right eye first, left eye second)
34945
34946 irl interleaved rows (left eye has top row, right eye starts on
34947 next row)
34948
34949 irr interleaved rows (right eye has top row, left eye starts on
34950 next row)
34951
34952 icl interleaved columns, left eye first
34953
34954 icr interleaved columns, right eye first
34955
34956 Default value is sbsl.
34957
34958 out Set stereoscopic image format of output.
34959
34960 sbsl
34961 side by side parallel (left eye left, right eye right)
34962
34963 sbsr
34964 side by side crosseye (right eye left, left eye right)
34965
34966 sbs2l
34967 side by side parallel with half width resolution (left eye
34968 left, right eye right)
34969
34970 sbs2r
34971 side by side crosseye with half width resolution (right eye
34972 left, left eye right)
34973
34974 abl
34975 tbl above-below (left eye above, right eye below)
34976
34977 abr
34978 tbr above-below (right eye above, left eye below)
34979
34980 ab2l
34981 tb2l
34982 above-below with half height resolution (left eye above, right
34983 eye below)
34984
34985 ab2r
34986 tb2r
34987 above-below with half height resolution (right eye above, left
34988 eye below)
34989
34990 al alternating frames (left eye first, right eye second)
34991
34992 ar alternating frames (right eye first, left eye second)
34993
34994 irl interleaved rows (left eye has top row, right eye starts on
34995 next row)
34996
34997 irr interleaved rows (right eye has top row, left eye starts on
34998 next row)
34999
35000 arbg
35001 anaglyph red/blue gray (red filter on left eye, blue filter on
35002 right eye)
35003
35004 argg
35005 anaglyph red/green gray (red filter on left eye, green filter
35006 on right eye)
35007
35008 arcg
35009 anaglyph red/cyan gray (red filter on left eye, cyan filter on
35010 right eye)
35011
35012 arch
35013 anaglyph red/cyan half colored (red filter on left eye, cyan
35014 filter on right eye)
35015
35016 arcc
35017 anaglyph red/cyan color (red filter on left eye, cyan filter on
35018 right eye)
35019
35020 arcd
35021 anaglyph red/cyan color optimized with the least squares
35022 projection of dubois (red filter on left eye, cyan filter on
35023 right eye)
35024
35025 agmg
35026 anaglyph green/magenta gray (green filter on left eye, magenta
35027 filter on right eye)
35028
35029 agmh
35030 anaglyph green/magenta half colored (green filter on left eye,
35031 magenta filter on right eye)
35032
35033 agmc
35034 anaglyph green/magenta colored (green filter on left eye,
35035 magenta filter on right eye)
35036
35037 agmd
35038 anaglyph green/magenta color optimized with the least squares
35039 projection of dubois (green filter on left eye, magenta filter
35040 on right eye)
35041
35042 aybg
35043 anaglyph yellow/blue gray (yellow filter on left eye, blue
35044 filter on right eye)
35045
35046 aybh
35047 anaglyph yellow/blue half colored (yellow filter on left eye,
35048 blue filter on right eye)
35049
35050 aybc
35051 anaglyph yellow/blue colored (yellow filter on left eye, blue
35052 filter on right eye)
35053
35054 aybd
35055 anaglyph yellow/blue color optimized with the least squares
35056 projection of dubois (yellow filter on left eye, blue filter on
35057 right eye)
35058
35059 ml mono output (left eye only)
35060
35061 mr mono output (right eye only)
35062
35063 chl checkerboard, left eye first
35064
35065 chr checkerboard, right eye first
35066
35067 icl interleaved columns, left eye first
35068
35069 icr interleaved columns, right eye first
35070
35071 hdmi
35072 HDMI frame pack
35073
35074 Default value is arcd.
35075
35076 Examples
35077
35078 • Convert input video from side by side parallel to anaglyph
35079 yellow/blue dubois:
35080
35081 stereo3d=sbsl:aybd
35082
35083 • Convert input video from above below (left eye above, right eye
35084 below) to side by side crosseye.
35085
35086 stereo3d=abl:sbsr
35087
35088 streamselect, astreamselect
35089 Select video or audio streams.
35090
35091 The filter accepts the following options:
35092
35093 inputs
35094 Set number of inputs. Default is 2.
35095
35096 map Set input indexes to remap to outputs.
35097
35098 Commands
35099
35100 The "streamselect" and "astreamselect" filter supports the following
35101 commands:
35102
35103 map Set input indexes to remap to outputs.
35104
35105 Examples
35106
35107 • Select first 5 seconds 1st stream and rest of time 2nd stream:
35108
35109 sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
35110
35111 • Same as above, but for audio:
35112
35113 asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
35114
35115 subtitles
35116 Draw subtitles on top of input video using the libass library.
35117
35118 To enable compilation of this filter you need to configure FFmpeg with
35119 "--enable-libass". This filter also requires a build with libavcodec
35120 and libavformat to convert the passed subtitles file to ASS (Advanced
35121 Substation Alpha) subtitles format.
35122
35123 The filter accepts the following options:
35124
35125 filename, f
35126 Set the filename of the subtitle file to read. It must be
35127 specified.
35128
35129 original_size
35130 Specify the size of the original video, the video for which the ASS
35131 file was composed. For the syntax of this option, check the "Video
35132 size" section in the ffmpeg-utils manual. Due to a misdesign in
35133 ASS aspect ratio arithmetic, this is necessary to correctly scale
35134 the fonts if the aspect ratio has been changed.
35135
35136 fontsdir
35137 Set a directory path containing fonts that can be used by the
35138 filter. These fonts will be used in addition to whatever the font
35139 provider uses.
35140
35141 alpha
35142 Process alpha channel, by default alpha channel is untouched.
35143
35144 charenc
35145 Set subtitles input character encoding. "subtitles" filter only.
35146 Only useful if not UTF-8.
35147
35148 stream_index, si
35149 Set subtitles stream index. "subtitles" filter only.
35150
35151 force_style
35152 Override default style or script info parameters of the subtitles.
35153 It accepts a string containing ASS style format "KEY=VALUE" couples
35154 separated by ",".
35155
35156 If the first key is not specified, it is assumed that the first value
35157 specifies the filename.
35158
35159 For example, to render the file sub.srt on top of the input video, use
35160 the command:
35161
35162 subtitles=sub.srt
35163
35164 which is equivalent to:
35165
35166 subtitles=filename=sub.srt
35167
35168 To render the default subtitles stream from file video.mkv, use:
35169
35170 subtitles=video.mkv
35171
35172 To render the second subtitles stream from that file, use:
35173
35174 subtitles=video.mkv:si=1
35175
35176 To make the subtitles stream from sub.srt appear in 80% transparent
35177 blue "DejaVu Serif", use:
35178
35179 subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
35180
35181 super2xsai
35182 Scale the input by 2x and smooth using the Super2xSaI (Scale and
35183 Interpolate) pixel art scaling algorithm.
35184
35185 Useful for enlarging pixel art images without reducing sharpness.
35186
35187 swaprect
35188 Swap two rectangular objects in video.
35189
35190 This filter accepts the following options:
35191
35192 w Set object width.
35193
35194 h Set object height.
35195
35196 x1 Set 1st rect x coordinate.
35197
35198 y1 Set 1st rect y coordinate.
35199
35200 x2 Set 2nd rect x coordinate.
35201
35202 y2 Set 2nd rect y coordinate.
35203
35204 All expressions are evaluated once for each frame.
35205
35206 The all options are expressions containing the following constants:
35207
35208 w
35209 h The input width and height.
35210
35211 a same as w / h
35212
35213 sar input sample aspect ratio
35214
35215 dar input display aspect ratio, it is the same as (w / h) * sar
35216
35217 n The number of the input frame, starting from 0.
35218
35219 t The timestamp expressed in seconds. It's NAN if the input timestamp
35220 is unknown.
35221
35222 pos the position in the file of the input frame, NAN if unknown
35223
35224 Commands
35225
35226 This filter supports the all above options as commands.
35227
35228 swapuv
35229 Swap U & V plane.
35230
35231 tblend
35232 Blend successive video frames.
35233
35234 See blend
35235
35236 telecine
35237 Apply telecine process to the video.
35238
35239 This filter accepts the following options:
35240
35241 first_field
35242 top, t
35243 top field first
35244
35245 bottom, b
35246 bottom field first The default value is "top".
35247
35248 pattern
35249 A string of numbers representing the pulldown pattern you wish to
35250 apply. The default value is 23.
35251
35252 Some typical patterns:
35253
35254 NTSC output (30i):
35255 27.5p: 32222
35256 24p: 23 (classic)
35257 24p: 2332 (preferred)
35258 20p: 33
35259 18p: 334
35260 16p: 3444
35261
35262 PAL output (25i):
35263 27.5p: 12222
35264 24p: 222222222223 ("Euro pulldown")
35265 16.67p: 33
35266 16p: 33333334
35267
35268 thistogram
35269 Compute and draw a color distribution histogram for the input video
35270 across time.
35271
35272 Unlike histogram video filter which only shows histogram of single
35273 input frame at certain time, this filter shows also past histograms of
35274 number of frames defined by "width" option.
35275
35276 The computed histogram is a representation of the color component
35277 distribution in an image.
35278
35279 The filter accepts the following options:
35280
35281 width, w
35282 Set width of single color component output. Default value is 0.
35283 Value of 0 means width will be picked from input video. This also
35284 set number of passed histograms to keep. Allowed range is [0,
35285 8192].
35286
35287 display_mode, d
35288 Set display mode. It accepts the following values:
35289
35290 stack
35291 Per color component graphs are placed below each other.
35292
35293 parade
35294 Per color component graphs are placed side by side.
35295
35296 overlay
35297 Presents information identical to that in the "parade", except
35298 that the graphs representing color components are superimposed
35299 directly over one another.
35300
35301 Default is "stack".
35302
35303 levels_mode, m
35304 Set mode. Can be either "linear", or "logarithmic". Default is
35305 "linear".
35306
35307 components, c
35308 Set what color components to display. Default is 7.
35309
35310 bgopacity, b
35311 Set background opacity. Default is 0.9.
35312
35313 envelope, e
35314 Show envelope. Default is disabled.
35315
35316 ecolor, ec
35317 Set envelope color. Default is "gold".
35318
35319 slide
35320 Set slide mode.
35321
35322 Available values for slide is:
35323
35324 frame
35325 Draw new frame when right border is reached.
35326
35327 replace
35328 Replace old columns with new ones.
35329
35330 scroll
35331 Scroll from right to left.
35332
35333 rscroll
35334 Scroll from left to right.
35335
35336 picture
35337 Draw single picture.
35338
35339 Default is "replace".
35340
35341 threshold
35342 Apply threshold effect to video stream.
35343
35344 This filter needs four video streams to perform thresholding. First
35345 stream is stream we are filtering. Second stream is holding threshold
35346 values, third stream is holding min values, and last, fourth stream is
35347 holding max values.
35348
35349 The filter accepts the following option:
35350
35351 planes
35352 Set which planes will be processed, unprocessed planes will be
35353 copied. By default value 0xf, all planes will be processed.
35354
35355 For example if first stream pixel's component value is less then
35356 threshold value of pixel component from 2nd threshold stream, third
35357 stream value will picked, otherwise fourth stream pixel component value
35358 will be picked.
35359
35360 Using color source filter one can perform various types of
35361 thresholding:
35362
35363 Commands
35364
35365 This filter supports the all options as commands.
35366
35367 Examples
35368
35369 • Binary threshold, using gray color as threshold:
35370
35371 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
35372
35373 • Inverted binary threshold, using gray color as threshold:
35374
35375 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
35376
35377 • Truncate binary threshold, using gray color as threshold:
35378
35379 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
35380
35381 • Threshold to zero, using gray color as threshold:
35382
35383 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
35384
35385 • Inverted threshold to zero, using gray color as threshold:
35386
35387 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
35388
35389 thumbnail
35390 Select the most representative frame in a given sequence of consecutive
35391 frames.
35392
35393 The filter accepts the following options:
35394
35395 n Set the frames batch size to analyze; in a set of n frames, the
35396 filter will pick one of them, and then handle the next batch of n
35397 frames until the end. Default is 100.
35398
35399 Since the filter keeps track of the whole frames sequence, a bigger n
35400 value will result in a higher memory usage, so a high value is not
35401 recommended.
35402
35403 Examples
35404
35405 • Extract one picture each 50 frames:
35406
35407 thumbnail=50
35408
35409 • Complete example of a thumbnail creation with ffmpeg:
35410
35411 ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
35412
35413 tile
35414 Tile several successive frames together.
35415
35416 The untile filter can do the reverse.
35417
35418 The filter accepts the following options:
35419
35420 layout
35421 Set the grid size (i.e. the number of lines and columns). For the
35422 syntax of this option, check the "Video size" section in the
35423 ffmpeg-utils manual.
35424
35425 nb_frames
35426 Set the maximum number of frames to render in the given area. It
35427 must be less than or equal to wxh. The default value is 0, meaning
35428 all the area will be used.
35429
35430 margin
35431 Set the outer border margin in pixels.
35432
35433 padding
35434 Set the inner border thickness (i.e. the number of pixels between
35435 frames). For more advanced padding options (such as having
35436 different values for the edges), refer to the pad video filter.
35437
35438 color
35439 Specify the color of the unused area. For the syntax of this
35440 option, check the "Color" section in the ffmpeg-utils manual. The
35441 default value of color is "black".
35442
35443 overlap
35444 Set the number of frames to overlap when tiling several successive
35445 frames together. The value must be between 0 and nb_frames - 1.
35446
35447 init_padding
35448 Set the number of frames to initially be empty before displaying
35449 first output frame. This controls how soon will one get first
35450 output frame. The value must be between 0 and nb_frames - 1.
35451
35452 Examples
35453
35454 • Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
35455 movie:
35456
35457 ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
35458
35459 The -vsync 0 is necessary to prevent ffmpeg from duplicating each
35460 output frame to accommodate the originally detected frame rate.
35461
35462 • Display 5 pictures in an area of "3x2" frames, with 7 pixels
35463 between them, and 2 pixels of initial margin, using mixed flat and
35464 named options:
35465
35466 tile=3x2:nb_frames=5:padding=7:margin=2
35467
35468 tinterlace
35469 Perform various types of temporal field interlacing.
35470
35471 Frames are counted starting from 1, so the first input frame is
35472 considered odd.
35473
35474 The filter accepts the following options:
35475
35476 mode
35477 Specify the mode of the interlacing. This option can also be
35478 specified as a value alone. See below for a list of values for this
35479 option.
35480
35481 Available values are:
35482
35483 merge, 0
35484 Move odd frames into the upper field, even into the lower
35485 field, generating a double height frame at half frame rate.
35486
35487 ------> time
35488 Input:
35489 Frame 1 Frame 2 Frame 3 Frame 4
35490
35491 11111 22222 33333 44444
35492 11111 22222 33333 44444
35493 11111 22222 33333 44444
35494 11111 22222 33333 44444
35495
35496 Output:
35497 11111 33333
35498 22222 44444
35499 11111 33333
35500 22222 44444
35501 11111 33333
35502 22222 44444
35503 11111 33333
35504 22222 44444
35505
35506 drop_even, 1
35507 Only output odd frames, even frames are dropped, generating a
35508 frame with unchanged height at half frame rate.
35509
35510 ------> time
35511 Input:
35512 Frame 1 Frame 2 Frame 3 Frame 4
35513
35514 11111 22222 33333 44444
35515 11111 22222 33333 44444
35516 11111 22222 33333 44444
35517 11111 22222 33333 44444
35518
35519 Output:
35520 11111 33333
35521 11111 33333
35522 11111 33333
35523 11111 33333
35524
35525 drop_odd, 2
35526 Only output even frames, odd frames are dropped, generating a
35527 frame with unchanged height at half frame rate.
35528
35529 ------> time
35530 Input:
35531 Frame 1 Frame 2 Frame 3 Frame 4
35532
35533 11111 22222 33333 44444
35534 11111 22222 33333 44444
35535 11111 22222 33333 44444
35536 11111 22222 33333 44444
35537
35538 Output:
35539 22222 44444
35540 22222 44444
35541 22222 44444
35542 22222 44444
35543
35544 pad, 3
35545 Expand each frame to full height, but pad alternate lines with
35546 black, generating a frame with double height at the same input
35547 frame rate.
35548
35549 ------> time
35550 Input:
35551 Frame 1 Frame 2 Frame 3 Frame 4
35552
35553 11111 22222 33333 44444
35554 11111 22222 33333 44444
35555 11111 22222 33333 44444
35556 11111 22222 33333 44444
35557
35558 Output:
35559 11111 ..... 33333 .....
35560 ..... 22222 ..... 44444
35561 11111 ..... 33333 .....
35562 ..... 22222 ..... 44444
35563 11111 ..... 33333 .....
35564 ..... 22222 ..... 44444
35565 11111 ..... 33333 .....
35566 ..... 22222 ..... 44444
35567
35568 interleave_top, 4
35569 Interleave the upper field from odd frames with the lower field
35570 from even frames, generating a frame with unchanged height at
35571 half frame rate.
35572
35573 ------> time
35574 Input:
35575 Frame 1 Frame 2 Frame 3 Frame 4
35576
35577 11111<- 22222 33333<- 44444
35578 11111 22222<- 33333 44444<-
35579 11111<- 22222 33333<- 44444
35580 11111 22222<- 33333 44444<-
35581
35582 Output:
35583 11111 33333
35584 22222 44444
35585 11111 33333
35586 22222 44444
35587
35588 interleave_bottom, 5
35589 Interleave the lower field from odd frames with the upper field
35590 from even frames, generating a frame with unchanged height at
35591 half frame rate.
35592
35593 ------> time
35594 Input:
35595 Frame 1 Frame 2 Frame 3 Frame 4
35596
35597 11111 22222<- 33333 44444<-
35598 11111<- 22222 33333<- 44444
35599 11111 22222<- 33333 44444<-
35600 11111<- 22222 33333<- 44444
35601
35602 Output:
35603 22222 44444
35604 11111 33333
35605 22222 44444
35606 11111 33333
35607
35608 interlacex2, 6
35609 Double frame rate with unchanged height. Frames are inserted
35610 each containing the second temporal field from the previous
35611 input frame and the first temporal field from the next input
35612 frame. This mode relies on the top_field_first flag. Useful for
35613 interlaced video displays with no field synchronisation.
35614
35615 ------> time
35616 Input:
35617 Frame 1 Frame 2 Frame 3 Frame 4
35618
35619 11111 22222 33333 44444
35620 11111 22222 33333 44444
35621 11111 22222 33333 44444
35622 11111 22222 33333 44444
35623
35624 Output:
35625 11111 22222 22222 33333 33333 44444 44444
35626 11111 11111 22222 22222 33333 33333 44444
35627 11111 22222 22222 33333 33333 44444 44444
35628 11111 11111 22222 22222 33333 33333 44444
35629
35630 mergex2, 7
35631 Move odd frames into the upper field, even into the lower
35632 field, generating a double height frame at same frame rate.
35633
35634 ------> time
35635 Input:
35636 Frame 1 Frame 2 Frame 3 Frame 4
35637
35638 11111 22222 33333 44444
35639 11111 22222 33333 44444
35640 11111 22222 33333 44444
35641 11111 22222 33333 44444
35642
35643 Output:
35644 11111 33333 33333 55555
35645 22222 22222 44444 44444
35646 11111 33333 33333 55555
35647 22222 22222 44444 44444
35648 11111 33333 33333 55555
35649 22222 22222 44444 44444
35650 11111 33333 33333 55555
35651 22222 22222 44444 44444
35652
35653 Numeric values are deprecated but are accepted for backward
35654 compatibility reasons.
35655
35656 Default mode is "merge".
35657
35658 flags
35659 Specify flags influencing the filter process.
35660
35661 Available value for flags is:
35662
35663 low_pass_filter, vlpf
35664 Enable linear vertical low-pass filtering in the filter.
35665 Vertical low-pass filtering is required when creating an
35666 interlaced destination from a progressive source which contains
35667 high-frequency vertical detail. Filtering will reduce interlace
35668 'twitter' and Moire patterning.
35669
35670 complex_filter, cvlpf
35671 Enable complex vertical low-pass filtering. This will slightly
35672 less reduce interlace 'twitter' and Moire patterning but better
35673 retain detail and subjective sharpness impression.
35674
35675 bypass_il
35676 Bypass already interlaced frames, only adjust the frame rate.
35677
35678 Vertical low-pass filtering and bypassing already interlaced frames
35679 can only be enabled for mode interleave_top and interleave_bottom.
35680
35681 tmedian
35682 Pick median pixels from several successive input video frames.
35683
35684 The filter accepts the following options:
35685
35686 radius
35687 Set radius of median filter. Default is 1. Allowed range is from 1
35688 to 127.
35689
35690 planes
35691 Set which planes to filter. Default value is 15, by which all
35692 planes are processed.
35693
35694 percentile
35695 Set median percentile. Default value is 0.5. Default value of 0.5
35696 will pick always median values, while 0 will pick minimum values,
35697 and 1 maximum values.
35698
35699 Commands
35700
35701 This filter supports all above options as commands, excluding option
35702 "radius".
35703
35704 tmidequalizer
35705 Apply Temporal Midway Video Equalization effect.
35706
35707 Midway Video Equalization adjusts a sequence of video frames to have
35708 the same histograms, while maintaining their dynamics as much as
35709 possible. It's useful for e.g. matching exposures from a video frames
35710 sequence.
35711
35712 This filter accepts the following option:
35713
35714 radius
35715 Set filtering radius. Default is 5. Allowed range is from 1 to 127.
35716
35717 sigma
35718 Set filtering sigma. Default is 0.5. This controls strength of
35719 filtering. Setting this option to 0 effectively does nothing.
35720
35721 planes
35722 Set which planes to process. Default is 15, which is all available
35723 planes.
35724
35725 tmix
35726 Mix successive video frames.
35727
35728 A description of the accepted options follows.
35729
35730 frames
35731 The number of successive frames to mix. If unspecified, it defaults
35732 to 3.
35733
35734 weights
35735 Specify weight of each input video frame. Each weight is separated
35736 by space. If number of weights is smaller than number of frames
35737 last specified weight will be used for all remaining unset weights.
35738
35739 scale
35740 Specify scale, if it is set it will be multiplied with sum of each
35741 weight multiplied with pixel values to give final destination pixel
35742 value. By default scale is auto scaled to sum of weights.
35743
35744 Examples
35745
35746 • Average 7 successive frames:
35747
35748 tmix=frames=7:weights="1 1 1 1 1 1 1"
35749
35750 • Apply simple temporal convolution:
35751
35752 tmix=frames=3:weights="-1 3 -1"
35753
35754 • Similar as above but only showing temporal differences:
35755
35756 tmix=frames=3:weights="-1 2 -1":scale=1
35757
35758 Commands
35759
35760 This filter supports the following commands:
35761
35762 weights
35763 scale
35764 Syntax is same as option with same name.
35765
35766 tonemap
35767 Tone map colors from different dynamic ranges.
35768
35769 This filter expects data in single precision floating point, as it
35770 needs to operate on (and can output) out-of-range values. Another
35771 filter, such as zscale, is needed to convert the resulting frame to a
35772 usable format.
35773
35774 The tonemapping algorithms implemented only work on linear light, so
35775 input data should be linearized beforehand (and possibly correctly
35776 tagged).
35777
35778 ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
35779
35780 Options
35781
35782 The filter accepts the following options.
35783
35784 tonemap
35785 Set the tone map algorithm to use.
35786
35787 Possible values are:
35788
35789 none
35790 Do not apply any tone map, only desaturate overbright pixels.
35791
35792 clip
35793 Hard-clip any out-of-range values. Use it for perfect color
35794 accuracy for in-range values, while distorting out-of-range
35795 values.
35796
35797 linear
35798 Stretch the entire reference gamut to a linear multiple of the
35799 display.
35800
35801 gamma
35802 Fit a logarithmic transfer between the tone curves.
35803
35804 reinhard
35805 Preserve overall image brightness with a simple curve, using
35806 nonlinear contrast, which results in flattening details and
35807 degrading color accuracy.
35808
35809 hable
35810 Preserve both dark and bright details better than reinhard, at
35811 the cost of slightly darkening everything. Use it when detail
35812 preservation is more important than color and brightness
35813 accuracy.
35814
35815 mobius
35816 Smoothly map out-of-range values, while retaining contrast and
35817 colors for in-range material as much as possible. Use it when
35818 color accuracy is more important than detail preservation.
35819
35820 Default is none.
35821
35822 param
35823 Tune the tone mapping algorithm.
35824
35825 This affects the following algorithms:
35826
35827 none
35828 Ignored.
35829
35830 linear
35831 Specifies the scale factor to use while stretching. Default to
35832 1.0.
35833
35834 gamma
35835 Specifies the exponent of the function. Default to 1.8.
35836
35837 clip
35838 Specify an extra linear coefficient to multiply into the signal
35839 before clipping. Default to 1.0.
35840
35841 reinhard
35842 Specify the local contrast coefficient at the display peak.
35843 Default to 0.5, which means that in-gamut values will be about
35844 half as bright as when clipping.
35845
35846 hable
35847 Ignored.
35848
35849 mobius
35850 Specify the transition point from linear to mobius transform.
35851 Every value below this point is guaranteed to be mapped 1:1.
35852 The higher the value, the more accurate the result will be, at
35853 the cost of losing bright details. Default to 0.3, which due
35854 to the steep initial slope still preserves in-range colors
35855 fairly accurately.
35856
35857 desat
35858 Apply desaturation for highlights that exceed this level of
35859 brightness. The higher the parameter, the more color information
35860 will be preserved. This setting helps prevent unnaturally blown-out
35861 colors for super-highlights, by (smoothly) turning into white
35862 instead. This makes images feel more natural, at the cost of
35863 reducing information about out-of-range colors.
35864
35865 The default of 2.0 is somewhat conservative and will mostly just
35866 apply to skies or directly sunlit surfaces. A setting of 0.0
35867 disables this option.
35868
35869 This option works only if the input frame has a supported color
35870 tag.
35871
35872 peak
35873 Override signal/nominal/reference peak with this value. Useful when
35874 the embedded peak information in display metadata is not reliable
35875 or when tone mapping from a lower range to a higher range.
35876
35877 tpad
35878 Temporarily pad video frames.
35879
35880 The filter accepts the following options:
35881
35882 start
35883 Specify number of delay frames before input video stream. Default
35884 is 0.
35885
35886 stop
35887 Specify number of padding frames after input video stream. Set to
35888 -1 to pad indefinitely. Default is 0.
35889
35890 start_mode
35891 Set kind of frames added to beginning of stream. Can be either add
35892 or clone. With add frames of solid-color are added. With clone
35893 frames are clones of first frame. Default is add.
35894
35895 stop_mode
35896 Set kind of frames added to end of stream. Can be either add or
35897 clone. With add frames of solid-color are added. With clone
35898 frames are clones of last frame. Default is add.
35899
35900 start_duration, stop_duration
35901 Specify the duration of the start/stop delay. See the Time duration
35902 section in the ffmpeg-utils(1) manual for the accepted syntax.
35903 These options override start and stop. Default is 0.
35904
35905 color
35906 Specify the color of the padded area. For the syntax of this
35907 option, check the "Color" section in the ffmpeg-utils manual.
35908
35909 The default value of color is "black".
35910
35911 transpose
35912 Transpose rows with columns in the input video and optionally flip it.
35913
35914 It accepts the following parameters:
35915
35916 dir Specify the transposition direction.
35917
35918 Can assume the following values:
35919
35920 0, 4, cclock_flip
35921 Rotate by 90 degrees counterclockwise and vertically flip
35922 (default), that is:
35923
35924 L.R L.l
35925 . . -> . .
35926 l.r R.r
35927
35928 1, 5, clock
35929 Rotate by 90 degrees clockwise, that is:
35930
35931 L.R l.L
35932 . . -> . .
35933 l.r r.R
35934
35935 2, 6, cclock
35936 Rotate by 90 degrees counterclockwise, that is:
35937
35938 L.R R.r
35939 . . -> . .
35940 l.r L.l
35941
35942 3, 7, clock_flip
35943 Rotate by 90 degrees clockwise and vertically flip, that is:
35944
35945 L.R r.R
35946 . . -> . .
35947 l.r l.L
35948
35949 For values between 4-7, the transposition is only done if the input
35950 video geometry is portrait and not landscape. These values are
35951 deprecated, the "passthrough" option should be used instead.
35952
35953 Numerical values are deprecated, and should be dropped in favor of
35954 symbolic constants.
35955
35956 passthrough
35957 Do not apply the transposition if the input geometry matches the
35958 one specified by the specified value. It accepts the following
35959 values:
35960
35961 none
35962 Always apply transposition.
35963
35964 portrait
35965 Preserve portrait geometry (when height >= width).
35966
35967 landscape
35968 Preserve landscape geometry (when width >= height).
35969
35970 Default value is "none".
35971
35972 For example to rotate by 90 degrees clockwise and preserve portrait
35973 layout:
35974
35975 transpose=dir=1:passthrough=portrait
35976
35977 The command above can also be specified as:
35978
35979 transpose=1:portrait
35980
35981 transpose_npp
35982 Transpose rows with columns in the input video and optionally flip it.
35983 For more in depth examples see the transpose video filter, which shares
35984 mostly the same options.
35985
35986 It accepts the following parameters:
35987
35988 dir Specify the transposition direction.
35989
35990 Can assume the following values:
35991
35992 cclock_flip
35993 Rotate by 90 degrees counterclockwise and vertically flip.
35994 (default)
35995
35996 clock
35997 Rotate by 90 degrees clockwise.
35998
35999 cclock
36000 Rotate by 90 degrees counterclockwise.
36001
36002 clock_flip
36003 Rotate by 90 degrees clockwise and vertically flip.
36004
36005 passthrough
36006 Do not apply the transposition if the input geometry matches the
36007 one specified by the specified value. It accepts the following
36008 values:
36009
36010 none
36011 Always apply transposition. (default)
36012
36013 portrait
36014 Preserve portrait geometry (when height >= width).
36015
36016 landscape
36017 Preserve landscape geometry (when width >= height).
36018
36019 trim
36020 Trim the input so that the output contains one continuous subpart of
36021 the input.
36022
36023 It accepts the following parameters:
36024
36025 start
36026 Specify the time of the start of the kept section, i.e. the frame
36027 with the timestamp start will be the first frame in the output.
36028
36029 end Specify the time of the first frame that will be dropped, i.e. the
36030 frame immediately preceding the one with the timestamp end will be
36031 the last frame in the output.
36032
36033 start_pts
36034 This is the same as start, except this option sets the start
36035 timestamp in timebase units instead of seconds.
36036
36037 end_pts
36038 This is the same as end, except this option sets the end timestamp
36039 in timebase units instead of seconds.
36040
36041 duration
36042 The maximum duration of the output in seconds.
36043
36044 start_frame
36045 The number of the first frame that should be passed to the output.
36046
36047 end_frame
36048 The number of the first frame that should be dropped.
36049
36050 start, end, and duration are expressed as time duration specifications;
36051 see the Time duration section in the ffmpeg-utils(1) manual for the
36052 accepted syntax.
36053
36054 Note that the first two sets of the start/end options and the duration
36055 option look at the frame timestamp, while the _frame variants simply
36056 count the frames that pass through the filter. Also note that this
36057 filter does not modify the timestamps. If you wish for the output
36058 timestamps to start at zero, insert a setpts filter after the trim
36059 filter.
36060
36061 If multiple start or end options are set, this filter tries to be
36062 greedy and keep all the frames that match at least one of the specified
36063 constraints. To keep only the part that matches all the constraints at
36064 once, chain multiple trim filters.
36065
36066 The defaults are such that all the input is kept. So it is possible to
36067 set e.g. just the end values to keep everything before the specified
36068 time.
36069
36070 Examples:
36071
36072 • Drop everything except the second minute of input:
36073
36074 ffmpeg -i INPUT -vf trim=60:120
36075
36076 • Keep only the first second:
36077
36078 ffmpeg -i INPUT -vf trim=duration=1
36079
36080 unpremultiply
36081 Apply alpha unpremultiply effect to input video stream using first
36082 plane of second stream as alpha.
36083
36084 Both streams must have same dimensions and same pixel format.
36085
36086 The filter accepts the following option:
36087
36088 planes
36089 Set which planes will be processed, unprocessed planes will be
36090 copied. By default value 0xf, all planes will be processed.
36091
36092 If the format has 1 or 2 components, then luma is bit 0. If the
36093 format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
36094 is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
36095 chroma-U and bit 2 is chroma-V. If present, the alpha channel is
36096 always the last bit.
36097
36098 inplace
36099 Do not require 2nd input for processing, instead use alpha plane
36100 from input stream.
36101
36102 unsharp
36103 Sharpen or blur the input video.
36104
36105 It accepts the following parameters:
36106
36107 luma_msize_x, lx
36108 Set the luma matrix horizontal size. It must be an odd integer
36109 between 3 and 23. The default value is 5.
36110
36111 luma_msize_y, ly
36112 Set the luma matrix vertical size. It must be an odd integer
36113 between 3 and 23. The default value is 5.
36114
36115 luma_amount, la
36116 Set the luma effect strength. It must be a floating point number,
36117 reasonable values lay between -1.5 and 1.5.
36118
36119 Negative values will blur the input video, while positive values
36120 will sharpen it, a value of zero will disable the effect.
36121
36122 Default value is 1.0.
36123
36124 chroma_msize_x, cx
36125 Set the chroma matrix horizontal size. It must be an odd integer
36126 between 3 and 23. The default value is 5.
36127
36128 chroma_msize_y, cy
36129 Set the chroma matrix vertical size. It must be an odd integer
36130 between 3 and 23. The default value is 5.
36131
36132 chroma_amount, ca
36133 Set the chroma effect strength. It must be a floating point number,
36134 reasonable values lay between -1.5 and 1.5.
36135
36136 Negative values will blur the input video, while positive values
36137 will sharpen it, a value of zero will disable the effect.
36138
36139 Default value is 0.0.
36140
36141 All parameters are optional and default to the equivalent of the string
36142 '5:5:1.0:5:5:0.0'.
36143
36144 Examples
36145
36146 • Apply strong luma sharpen effect:
36147
36148 unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
36149
36150 • Apply a strong blur of both luma and chroma parameters:
36151
36152 unsharp=7:7:-2:7:7:-2
36153
36154 untile
36155 Decompose a video made of tiled images into the individual images.
36156
36157 The frame rate of the output video is the frame rate of the input video
36158 multiplied by the number of tiles.
36159
36160 This filter does the reverse of tile.
36161
36162 The filter accepts the following options:
36163
36164 layout
36165 Set the grid size (i.e. the number of lines and columns). For the
36166 syntax of this option, check the "Video size" section in the
36167 ffmpeg-utils manual.
36168
36169 Examples
36170
36171 • Produce a 1-second video from a still image file made of 25 frames
36172 stacked vertically, like an analogic film reel:
36173
36174 ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
36175
36176 uspp
36177 Apply ultra slow/simple postprocessing filter that compresses and
36178 decompresses the image at several (or - in the case of quality level 8
36179 - all) shifts and average the results.
36180
36181 The way this differs from the behavior of spp is that uspp actually
36182 encodes & decodes each case with libavcodec Snow, whereas spp uses a
36183 simplified intra only 8x8 DCT similar to MJPEG.
36184
36185 This filter is only available in ffmpeg version 4.4 or earlier.
36186
36187 The filter accepts the following options:
36188
36189 quality
36190 Set quality. This option defines the number of levels for
36191 averaging. It accepts an integer in the range 0-8. If set to 0, the
36192 filter will have no effect. A value of 8 means the higher quality.
36193 For each increment of that value the speed drops by a factor of
36194 approximately 2. Default value is 3.
36195
36196 qp Force a constant quantization parameter. If not set, the filter
36197 will use the QP from the video stream (if available).
36198
36199 v360
36200 Convert 360 videos between various formats.
36201
36202 The filter accepts the following options:
36203
36204 input
36205 output
36206 Set format of the input/output video.
36207
36208 Available formats:
36209
36210 e
36211 equirect
36212 Equirectangular projection.
36213
36214 c3x2
36215 c6x1
36216 c1x6
36217 Cubemap with 3x2/6x1/1x6 layout.
36218
36219 Format specific options:
36220
36221 in_pad
36222 out_pad
36223 Set padding proportion for the input/output cubemap. Values
36224 in decimals.
36225
36226 Example values:
36227
36228 0 No padding.
36229
36230 0.01
36231 1% of face is padding. For example, with 1920x1280
36232 resolution face size would be 640x640 and padding would
36233 be 3 pixels from each side. (640 * 0.01 = 6 pixels)
36234
36235 Default value is @samp{0}. Maximum value is @samp{0.1}.
36236
36237 fin_pad
36238 fout_pad
36239 Set fixed padding for the input/output cubemap. Values in
36240 pixels.
36241
36242 Default value is @samp{0}. If greater than zero it
36243 overrides other padding options.
36244
36245 in_forder
36246 out_forder
36247 Set order of faces for the input/output cubemap. Choose one
36248 direction for each position.
36249
36250 Designation of directions:
36251
36252 r right
36253
36254 l left
36255
36256 u up
36257
36258 d down
36259
36260 f forward
36261
36262 b back
36263
36264 Default value is @samp{rludfb}.
36265
36266 in_frot
36267 out_frot
36268 Set rotation of faces for the input/output cubemap. Choose
36269 one angle for each position.
36270
36271 Designation of angles:
36272
36273 0 0 degrees clockwise
36274
36275 1 90 degrees clockwise
36276
36277 2 180 degrees clockwise
36278
36279 3 270 degrees clockwise
36280
36281 Default value is @samp{000000}.
36282
36283 eac Equi-Angular Cubemap.
36284
36285 flat
36286 gnomonic
36287 rectilinear
36288 Regular video.
36289
36290 Format specific options:
36291
36292 h_fov
36293 v_fov
36294 d_fov
36295 Set output horizontal/vertical/diagonal field of view.
36296 Values in degrees.
36297
36298 If diagonal field of view is set it overrides horizontal
36299 and vertical field of view.
36300
36301 ih_fov
36302 iv_fov
36303 id_fov
36304 Set input horizontal/vertical/diagonal field of view.
36305 Values in degrees.
36306
36307 If diagonal field of view is set it overrides horizontal
36308 and vertical field of view.
36309
36310 dfisheye
36311 Dual fisheye.
36312
36313 Format specific options:
36314
36315 h_fov
36316 v_fov
36317 d_fov
36318 Set output horizontal/vertical/diagonal field of view.
36319 Values in degrees.
36320
36321 If diagonal field of view is set it overrides horizontal
36322 and vertical field of view.
36323
36324 ih_fov
36325 iv_fov
36326 id_fov
36327 Set input horizontal/vertical/diagonal field of view.
36328 Values in degrees.
36329
36330 If diagonal field of view is set it overrides horizontal
36331 and vertical field of view.
36332
36333 barrel
36334 fb
36335 barrelsplit
36336 Facebook's 360 formats.
36337
36338 sg Stereographic format.
36339
36340 Format specific options:
36341
36342 h_fov
36343 v_fov
36344 d_fov
36345 Set output horizontal/vertical/diagonal field of view.
36346 Values in degrees.
36347
36348 If diagonal field of view is set it overrides horizontal
36349 and vertical field of view.
36350
36351 ih_fov
36352 iv_fov
36353 id_fov
36354 Set input horizontal/vertical/diagonal field of view.
36355 Values in degrees.
36356
36357 If diagonal field of view is set it overrides horizontal
36358 and vertical field of view.
36359
36360 mercator
36361 Mercator format.
36362
36363 ball
36364 Ball format, gives significant distortion toward the back.
36365
36366 hammer
36367 Hammer-Aitoff map projection format.
36368
36369 sinusoidal
36370 Sinusoidal map projection format.
36371
36372 fisheye
36373 Fisheye projection.
36374
36375 Format specific options:
36376
36377 h_fov
36378 v_fov
36379 d_fov
36380 Set output horizontal/vertical/diagonal field of view.
36381 Values in degrees.
36382
36383 If diagonal field of view is set it overrides horizontal
36384 and vertical field of view.
36385
36386 ih_fov
36387 iv_fov
36388 id_fov
36389 Set input horizontal/vertical/diagonal field of view.
36390 Values in degrees.
36391
36392 If diagonal field of view is set it overrides horizontal
36393 and vertical field of view.
36394
36395 pannini
36396 Pannini projection.
36397
36398 Format specific options:
36399
36400 h_fov
36401 Set output pannini parameter.
36402
36403 ih_fov
36404 Set input pannini parameter.
36405
36406 cylindrical
36407 Cylindrical projection.
36408
36409 Format specific options:
36410
36411 h_fov
36412 v_fov
36413 d_fov
36414 Set output horizontal/vertical/diagonal field of view.
36415 Values in degrees.
36416
36417 If diagonal field of view is set it overrides horizontal
36418 and vertical field of view.
36419
36420 ih_fov
36421 iv_fov
36422 id_fov
36423 Set input horizontal/vertical/diagonal field of view.
36424 Values in degrees.
36425
36426 If diagonal field of view is set it overrides horizontal
36427 and vertical field of view.
36428
36429 perspective
36430 Perspective projection. (output only)
36431
36432 Format specific options:
36433
36434 v_fov
36435 Set perspective parameter.
36436
36437 tetrahedron
36438 Tetrahedron projection.
36439
36440 tsp Truncated square pyramid projection.
36441
36442 he
36443 hequirect
36444 Half equirectangular projection.
36445
36446 equisolid
36447 Equisolid format.
36448
36449 Format specific options:
36450
36451 h_fov
36452 v_fov
36453 d_fov
36454 Set output horizontal/vertical/diagonal field of view.
36455 Values in degrees.
36456
36457 If diagonal field of view is set it overrides horizontal
36458 and vertical field of view.
36459
36460 ih_fov
36461 iv_fov
36462 id_fov
36463 Set input horizontal/vertical/diagonal field of view.
36464 Values in degrees.
36465
36466 If diagonal field of view is set it overrides horizontal
36467 and vertical field of view.
36468
36469 og Orthographic format.
36470
36471 Format specific options:
36472
36473 h_fov
36474 v_fov
36475 d_fov
36476 Set output horizontal/vertical/diagonal field of view.
36477 Values in degrees.
36478
36479 If diagonal field of view is set it overrides horizontal
36480 and vertical field of view.
36481
36482 ih_fov
36483 iv_fov
36484 id_fov
36485 Set input horizontal/vertical/diagonal field of view.
36486 Values in degrees.
36487
36488 If diagonal field of view is set it overrides horizontal
36489 and vertical field of view.
36490
36491 octahedron
36492 Octahedron projection.
36493
36494 cylindricalea
36495 Cylindrical Equal Area projection.
36496
36497 interp
36498 Set interpolation method.Note: more complex interpolation methods
36499 require much more memory to run.
36500
36501 Available methods:
36502
36503 near
36504 nearest
36505 Nearest neighbour.
36506
36507 line
36508 linear
36509 Bilinear interpolation.
36510
36511 lagrange9
36512 Lagrange9 interpolation.
36513
36514 cube
36515 cubic
36516 Bicubic interpolation.
36517
36518 lanc
36519 lanczos
36520 Lanczos interpolation.
36521
36522 sp16
36523 spline16
36524 Spline16 interpolation.
36525
36526 gauss
36527 gaussian
36528 Gaussian interpolation.
36529
36530 mitchell
36531 Mitchell interpolation.
36532
36533 Default value is @samp{line}.
36534
36535 w
36536 h Set the output video resolution.
36537
36538 Default resolution depends on formats.
36539
36540 in_stereo
36541 out_stereo
36542 Set the input/output stereo format.
36543
36544 2d 2D mono
36545
36546 sbs Side by side
36547
36548 tb Top bottom
36549
36550 Default value is @samp{2d} for input and output format.
36551
36552 yaw
36553 pitch
36554 roll
36555 Set rotation for the output video. Values in degrees.
36556
36557 rorder
36558 Set rotation order for the output video. Choose one item for each
36559 position.
36560
36561 y, Y
36562 yaw
36563
36564 p, P
36565 pitch
36566
36567 r, R
36568 roll
36569
36570 Default value is @samp{ypr}.
36571
36572 h_flip
36573 v_flip
36574 d_flip
36575 Flip the output video horizontally(swaps
36576 left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
36577 Boolean values.
36578
36579 ih_flip
36580 iv_flip
36581 Set if input video is flipped horizontally/vertically. Boolean
36582 values.
36583
36584 in_trans
36585 Set if input video is transposed. Boolean value, by default
36586 disabled.
36587
36588 out_trans
36589 Set if output video needs to be transposed. Boolean value, by
36590 default disabled.
36591
36592 h_offset
36593 v_offset
36594 Set output horizontal/vertical off-axis offset. Default is set to
36595 0. Allowed range is from -1 to 1.
36596
36597 alpha_mask
36598 Build mask in alpha plane for all unmapped pixels by marking them
36599 fully transparent. Boolean value, by default disabled.
36600
36601 reset_rot
36602 Reset rotation of output video. Boolean value, by default disabled.
36603
36604 Examples
36605
36606 • Convert equirectangular video to cubemap with 3x2 layout and 1%
36607 padding using bicubic interpolation:
36608
36609 ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
36610
36611 • Extract back view of Equi-Angular Cubemap:
36612
36613 ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
36614
36615 • Convert transposed and horizontally flipped Equi-Angular Cubemap in
36616 side-by-side stereo format to equirectangular top-bottom stereo
36617 format:
36618
36619 v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
36620
36621 Commands
36622
36623 This filter supports subset of above options as commands.
36624
36625 vaguedenoiser
36626 Apply a wavelet based denoiser.
36627
36628 It transforms each frame from the video input into the wavelet domain,
36629 using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
36630 the obtained coefficients. It does an inverse wavelet transform after.
36631 Due to wavelet properties, it should give a nice smoothed result, and
36632 reduced noise, without blurring picture features.
36633
36634 This filter accepts the following options:
36635
36636 threshold
36637 The filtering strength. The higher, the more filtered the video
36638 will be. Hard thresholding can use a higher threshold than soft
36639 thresholding before the video looks overfiltered. Default value is
36640 2.
36641
36642 method
36643 The filtering method the filter will use.
36644
36645 It accepts the following values:
36646
36647 hard
36648 All values under the threshold will be zeroed.
36649
36650 soft
36651 All values under the threshold will be zeroed. All values above
36652 will be reduced by the threshold.
36653
36654 garrote
36655 Scales or nullifies coefficients - intermediary between (more)
36656 soft and (less) hard thresholding.
36657
36658 Default is garrote.
36659
36660 nsteps
36661 Number of times, the wavelet will decompose the picture. Picture
36662 can't be decomposed beyond a particular point (typically, 8 for a
36663 640x480 frame - as 2^9 = 512 > 480). Valid values are integers
36664 between 1 and 32. Default value is 6.
36665
36666 percent
36667 Partial of full denoising (limited coefficients shrinking), from 0
36668 to 100. Default value is 85.
36669
36670 planes
36671 A list of the planes to process. By default all planes are
36672 processed.
36673
36674 type
36675 The threshold type the filter will use.
36676
36677 It accepts the following values:
36678
36679 universal
36680 Threshold used is same for all decompositions.
36681
36682 bayes
36683 Threshold used depends also on each decomposition coefficients.
36684
36685 Default is universal.
36686
36687 varblur
36688 Apply variable blur filter by using 2nd video stream to set blur
36689 radius. The 2nd stream must have the same dimensions.
36690
36691 This filter accepts the following options:
36692
36693 min_r
36694 Set min allowed radius. Allowed range is from 0 to 254. Default is
36695 0.
36696
36697 max_r
36698 Set max allowed radius. Allowed range is from 1 to 255. Default is
36699 8.
36700
36701 planes
36702 Set which planes to process. By default, all are used.
36703
36704 The "varblur" filter also supports the framesync options.
36705
36706 Commands
36707
36708 This filter supports all the above options as commands.
36709
36710 vectorscope
36711 Display 2 color component values in the two dimensional graph (which is
36712 called a vectorscope).
36713
36714 This filter accepts the following options:
36715
36716 mode, m
36717 Set vectorscope mode.
36718
36719 It accepts the following values:
36720
36721 gray
36722 tint
36723 Gray values are displayed on graph, higher brightness means
36724 more pixels have same component color value on location in
36725 graph. This is the default mode.
36726
36727 color
36728 Gray values are displayed on graph. Surrounding pixels values
36729 which are not present in video frame are drawn in gradient of 2
36730 color components which are set by option "x" and "y". The 3rd
36731 color component is static.
36732
36733 color2
36734 Actual color components values present in video frame are
36735 displayed on graph.
36736
36737 color3
36738 Similar as color2 but higher frequency of same values "x" and
36739 "y" on graph increases value of another color component, which
36740 is luminance by default values of "x" and "y".
36741
36742 color4
36743 Actual colors present in video frame are displayed on graph. If
36744 two different colors map to same position on graph then color
36745 with higher value of component not present in graph is picked.
36746
36747 color5
36748 Gray values are displayed on graph. Similar to "color" but with
36749 3rd color component picked from radial gradient.
36750
36751 x Set which color component will be represented on X-axis. Default is
36752 1.
36753
36754 y Set which color component will be represented on Y-axis. Default is
36755 2.
36756
36757 intensity, i
36758 Set intensity, used by modes: gray, color, color3 and color5 for
36759 increasing brightness of color component which represents frequency
36760 of (X, Y) location in graph.
36761
36762 envelope, e
36763 none
36764 No envelope, this is default.
36765
36766 instant
36767 Instant envelope, even darkest single pixel will be clearly
36768 highlighted.
36769
36770 peak
36771 Hold maximum and minimum values presented in graph over time.
36772 This way you can still spot out of range values without
36773 constantly looking at vectorscope.
36774
36775 peak+instant
36776 Peak and instant envelope combined together.
36777
36778 graticule, g
36779 Set what kind of graticule to draw.
36780
36781 none
36782 green
36783 color
36784 invert
36785 opacity, o
36786 Set graticule opacity.
36787
36788 flags, f
36789 Set graticule flags.
36790
36791 white
36792 Draw graticule for white point.
36793
36794 black
36795 Draw graticule for black point.
36796
36797 name
36798 Draw color points short names.
36799
36800 bgopacity, b
36801 Set background opacity.
36802
36803 lthreshold, l
36804 Set low threshold for color component not represented on X or Y
36805 axis. Values lower than this value will be ignored. Default is 0.
36806 Note this value is multiplied with actual max possible value one
36807 pixel component can have. So for 8-bit input and low threshold
36808 value of 0.1 actual threshold is 0.1 * 255 = 25.
36809
36810 hthreshold, h
36811 Set high threshold for color component not represented on X or Y
36812 axis. Values higher than this value will be ignored. Default is 1.
36813 Note this value is multiplied with actual max possible value one
36814 pixel component can have. So for 8-bit input and high threshold
36815 value of 0.9 actual threshold is 0.9 * 255 = 230.
36816
36817 colorspace, c
36818 Set what kind of colorspace to use when drawing graticule.
36819
36820 auto
36821 601
36822 709
36823
36824 Default is auto.
36825
36826 tint0, t0
36827 tint1, t1
36828 Set color tint for gray/tint vectorscope mode. By default both
36829 options are zero. This means no tint, and output will remain gray.
36830
36831 vidstabdetect
36832 Analyze video stabilization/deshaking. Perform pass 1 of 2, see
36833 vidstabtransform for pass 2.
36834
36835 This filter generates a file with relative translation and rotation
36836 transform information about subsequent frames, which is then used by
36837 the vidstabtransform filter.
36838
36839 To enable compilation of this filter you need to configure FFmpeg with
36840 "--enable-libvidstab".
36841
36842 This filter accepts the following options:
36843
36844 result
36845 Set the path to the file used to write the transforms information.
36846 Default value is transforms.trf.
36847
36848 shakiness
36849 Set how shaky the video is and how quick the camera is. It accepts
36850 an integer in the range 1-10, a value of 1 means little shakiness,
36851 a value of 10 means strong shakiness. Default value is 5.
36852
36853 accuracy
36854 Set the accuracy of the detection process. It must be a value in
36855 the range 1-15. A value of 1 means low accuracy, a value of 15
36856 means high accuracy. Default value is 15.
36857
36858 stepsize
36859 Set stepsize of the search process. The region around minimum is
36860 scanned with 1 pixel resolution. Default value is 6.
36861
36862 mincontrast
36863 Set minimum contrast. Below this value a local measurement field is
36864 discarded. Must be a floating point value in the range 0-1. Default
36865 value is 0.3.
36866
36867 tripod
36868 Set reference frame number for tripod mode.
36869
36870 If enabled, the motion of the frames is compared to a reference
36871 frame in the filtered stream, identified by the specified number.
36872 The idea is to compensate all movements in a more-or-less static
36873 scene and keep the camera view absolutely still.
36874
36875 If set to 0, it is disabled. The frames are counted starting from
36876 1.
36877
36878 show
36879 Show fields and transforms in the resulting frames. It accepts an
36880 integer in the range 0-2. Default value is 0, which disables any
36881 visualization.
36882
36883 Examples
36884
36885 • Use default values:
36886
36887 vidstabdetect
36888
36889 • Analyze strongly shaky movie and put the results in file
36890 mytransforms.trf:
36891
36892 vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
36893
36894 • Visualize the result of internal transformations in the resulting
36895 video:
36896
36897 vidstabdetect=show=1
36898
36899 • Analyze a video with medium shakiness using ffmpeg:
36900
36901 ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
36902
36903 vidstabtransform
36904 Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
36905 1.
36906
36907 Read a file with transform information for each frame and
36908 apply/compensate them. Together with the vidstabdetect filter this can
36909 be used to deshake videos. See also
36910 <http://public.hronopik.de/vid.stab>. It is important to also use the
36911 unsharp filter, see below.
36912
36913 To enable compilation of this filter you need to configure FFmpeg with
36914 "--enable-libvidstab".
36915
36916 Options
36917
36918 input
36919 Set path to the file used to read the transforms. Default value is
36920 transforms.trf.
36921
36922 smoothing
36923 Set the number of frames (value*2 + 1) used for lowpass filtering
36924 the camera movements. Default value is 10.
36925
36926 For example a number of 10 means that 21 frames are used (10 in the
36927 past and 10 in the future) to smoothen the motion in the video. A
36928 larger value leads to a smoother video, but limits the acceleration
36929 of the camera (pan/tilt movements). 0 is a special case where a
36930 static camera is simulated.
36931
36932 optalgo
36933 Set the camera path optimization algorithm.
36934
36935 Accepted values are:
36936
36937 gauss
36938 gaussian kernel low-pass filter on camera motion (default)
36939
36940 avg averaging on transformations
36941
36942 maxshift
36943 Set maximal number of pixels to translate frames. Default value is
36944 -1, meaning no limit.
36945
36946 maxangle
36947 Set maximal angle in radians (degree*PI/180) to rotate frames.
36948 Default value is -1, meaning no limit.
36949
36950 crop
36951 Specify how to deal with borders that may be visible due to
36952 movement compensation.
36953
36954 Available values are:
36955
36956 keep
36957 keep image information from previous frame (default)
36958
36959 black
36960 fill the border black
36961
36962 invert
36963 Invert transforms if set to 1. Default value is 0.
36964
36965 relative
36966 Consider transforms as relative to previous frame if set to 1,
36967 absolute if set to 0. Default value is 0.
36968
36969 zoom
36970 Set percentage to zoom. A positive value will result in a zoom-in
36971 effect, a negative value in a zoom-out effect. Default value is 0
36972 (no zoom).
36973
36974 optzoom
36975 Set optimal zooming to avoid borders.
36976
36977 Accepted values are:
36978
36979 0 disabled
36980
36981 1 optimal static zoom value is determined (only very strong
36982 movements will lead to visible borders) (default)
36983
36984 2 optimal adaptive zoom value is determined (no borders will be
36985 visible), see zoomspeed
36986
36987 Note that the value given at zoom is added to the one calculated
36988 here.
36989
36990 zoomspeed
36991 Set percent to zoom maximally each frame (enabled when optzoom is
36992 set to 2). Range is from 0 to 5, default value is 0.25.
36993
36994 interpol
36995 Specify type of interpolation.
36996
36997 Available values are:
36998
36999 no no interpolation
37000
37001 linear
37002 linear only horizontal
37003
37004 bilinear
37005 linear in both directions (default)
37006
37007 bicubic
37008 cubic in both directions (slow)
37009
37010 tripod
37011 Enable virtual tripod mode if set to 1, which is equivalent to
37012 "relative=0:smoothing=0". Default value is 0.
37013
37014 Use also "tripod" option of vidstabdetect.
37015
37016 debug
37017 Increase log verbosity if set to 1. Also the detected global
37018 motions are written to the temporary file global_motions.trf.
37019 Default value is 0.
37020
37021 Examples
37022
37023 • Use ffmpeg for a typical stabilization with default values:
37024
37025 ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
37026
37027 Note the use of the unsharp filter which is always recommended.
37028
37029 • Zoom in a bit more and load transform data from a given file:
37030
37031 vidstabtransform=zoom=5:input="mytransforms.trf"
37032
37033 • Smoothen the video even more:
37034
37035 vidstabtransform=smoothing=30
37036
37037 vflip
37038 Flip the input video vertically.
37039
37040 For example, to vertically flip a video with ffmpeg:
37041
37042 ffmpeg -i in.avi -vf "vflip" out.avi
37043
37044 vfrdet
37045 Detect variable frame rate video.
37046
37047 This filter tries to detect if the input is variable or constant frame
37048 rate.
37049
37050 At end it will output number of frames detected as having variable
37051 delta pts, and ones with constant delta pts. If there was frames with
37052 variable delta, than it will also show min, max and average delta
37053 encountered.
37054
37055 vibrance
37056 Boost or alter saturation.
37057
37058 The filter accepts the following options:
37059
37060 intensity
37061 Set strength of boost if positive value or strength of alter if
37062 negative value. Default is 0. Allowed range is from -2 to 2.
37063
37064 rbal
37065 Set the red balance. Default is 1. Allowed range is from -10 to 10.
37066
37067 gbal
37068 Set the green balance. Default is 1. Allowed range is from -10 to
37069 10.
37070
37071 bbal
37072 Set the blue balance. Default is 1. Allowed range is from -10 to
37073 10.
37074
37075 rlum
37076 Set the red luma coefficient.
37077
37078 glum
37079 Set the green luma coefficient.
37080
37081 blum
37082 Set the blue luma coefficient.
37083
37084 alternate
37085 If "intensity" is negative and this is set to 1, colors will
37086 change, otherwise colors will be less saturated, more towards gray.
37087
37088 Commands
37089
37090 This filter supports the all above options as commands.
37091
37092 vif
37093 Obtain the average VIF (Visual Information Fidelity) between two input
37094 videos.
37095
37096 This filter takes two input videos.
37097
37098 Both input videos must have the same resolution and pixel format for
37099 this filter to work correctly. Also it assumes that both inputs have
37100 the same number of frames, which are compared one by one.
37101
37102 The obtained average VIF score is printed through the logging system.
37103
37104 The filter stores the calculated VIF score of each frame.
37105
37106 In the below example the input file main.mpg being processed is
37107 compared with the reference file ref.mpg.
37108
37109 ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
37110
37111 vignette
37112 Make or reverse a natural vignetting effect.
37113
37114 The filter accepts the following options:
37115
37116 angle, a
37117 Set lens angle expression as a number of radians.
37118
37119 The value is clipped in the "[0,PI/2]" range.
37120
37121 Default value: "PI/5"
37122
37123 x0
37124 y0 Set center coordinates expressions. Respectively "w/2" and "h/2" by
37125 default.
37126
37127 mode
37128 Set forward/backward mode.
37129
37130 Available modes are:
37131
37132 forward
37133 The larger the distance from the central point, the darker the
37134 image becomes.
37135
37136 backward
37137 The larger the distance from the central point, the brighter
37138 the image becomes. This can be used to reverse a vignette
37139 effect, though there is no automatic detection to extract the
37140 lens angle and other settings (yet). It can also be used to
37141 create a burning effect.
37142
37143 Default value is forward.
37144
37145 eval
37146 Set evaluation mode for the expressions (angle, x0, y0).
37147
37148 It accepts the following values:
37149
37150 init
37151 Evaluate expressions only once during the filter
37152 initialization.
37153
37154 frame
37155 Evaluate expressions for each incoming frame. This is way
37156 slower than the init mode since it requires all the scalers to
37157 be re-computed, but it allows advanced dynamic expressions.
37158
37159 Default value is init.
37160
37161 dither
37162 Set dithering to reduce the circular banding effects. Default is 1
37163 (enabled).
37164
37165 aspect
37166 Set vignette aspect. This setting allows one to adjust the shape of
37167 the vignette. Setting this value to the SAR of the input will make
37168 a rectangular vignetting following the dimensions of the video.
37169
37170 Default is "1/1".
37171
37172 Expressions
37173
37174 The alpha, x0 and y0 expressions can contain the following parameters.
37175
37176 w
37177 h input width and height
37178
37179 n the number of input frame, starting from 0
37180
37181 pts the PTS (Presentation TimeStamp) time of the filtered video frame,
37182 expressed in TB units, NAN if undefined
37183
37184 r frame rate of the input video, NAN if the input frame rate is
37185 unknown
37186
37187 t the PTS (Presentation TimeStamp) of the filtered video frame,
37188 expressed in seconds, NAN if undefined
37189
37190 tb time base of the input video
37191
37192 Examples
37193
37194 • Apply simple strong vignetting effect:
37195
37196 vignette=PI/4
37197
37198 • Make a flickering vignetting:
37199
37200 vignette='PI/4+random(1)*PI/50':eval=frame
37201
37202 vmafmotion
37203 Obtain the average VMAF motion score of a video. It is one of the
37204 component metrics of VMAF.
37205
37206 The obtained average motion score is printed through the logging
37207 system.
37208
37209 The filter accepts the following options:
37210
37211 stats_file
37212 If specified, the filter will use the named file to save the motion
37213 score of each frame with respect to the previous frame. When
37214 filename equals "-" the data is sent to standard output.
37215
37216 Example:
37217
37218 ffmpeg -i ref.mpg -vf vmafmotion -f null -
37219
37220 vstack
37221 Stack input videos vertically.
37222
37223 All streams must be of same pixel format and of same width.
37224
37225 Note that this filter is faster than using overlay and pad filter to
37226 create same output.
37227
37228 The filter accepts the following options:
37229
37230 inputs
37231 Set number of input streams. Default is 2.
37232
37233 shortest
37234 If set to 1, force the output to terminate when the shortest input
37235 terminates. Default value is 0.
37236
37237 w3fdif
37238 Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
37239 Deinterlacing Filter").
37240
37241 Based on the process described by Martin Weston for BBC R&D, and
37242 implemented based on the de-interlace algorithm written by Jim
37243 Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
37244 filter coefficients calculated by BBC R&D.
37245
37246 This filter uses field-dominance information in frame to decide which
37247 of each pair of fields to place first in the output. If it gets it
37248 wrong use setfield filter before "w3fdif" filter.
37249
37250 There are two sets of filter coefficients, so called "simple" and
37251 "complex". Which set of filter coefficients is used can be set by
37252 passing an optional parameter:
37253
37254 filter
37255 Set the interlacing filter coefficients. Accepts one of the
37256 following values:
37257
37258 simple
37259 Simple filter coefficient set.
37260
37261 complex
37262 More-complex filter coefficient set.
37263
37264 Default value is complex.
37265
37266 mode
37267 The interlacing mode to adopt. It accepts one of the following
37268 values:
37269
37270 frame
37271 Output one frame for each frame.
37272
37273 field
37274 Output one frame for each field.
37275
37276 The default value is "field".
37277
37278 parity
37279 The picture field parity assumed for the input interlaced video. It
37280 accepts one of the following values:
37281
37282 tff Assume the top field is first.
37283
37284 bff Assume the bottom field is first.
37285
37286 auto
37287 Enable automatic detection of field parity.
37288
37289 The default value is "auto". If the interlacing is unknown or the
37290 decoder does not export this information, top field first will be
37291 assumed.
37292
37293 deint
37294 Specify which frames to deinterlace. Accepts one of the following
37295 values:
37296
37297 all Deinterlace all frames,
37298
37299 interlaced
37300 Only deinterlace frames marked as interlaced.
37301
37302 Default value is all.
37303
37304 Commands
37305
37306 This filter supports same commands as options.
37307
37308 waveform
37309 Video waveform monitor.
37310
37311 The waveform monitor plots color component intensity. By default
37312 luminance only. Each column of the waveform corresponds to a column of
37313 pixels in the source video.
37314
37315 It accepts the following options:
37316
37317 mode, m
37318 Can be either "row", or "column". Default is "column". In row
37319 mode, the graph on the left side represents color component value 0
37320 and the right side represents value = 255. In column mode, the top
37321 side represents color component value = 0 and bottom side
37322 represents value = 255.
37323
37324 intensity, i
37325 Set intensity. Smaller values are useful to find out how many
37326 values of the same luminance are distributed across input
37327 rows/columns. Default value is 0.04. Allowed range is [0, 1].
37328
37329 mirror, r
37330 Set mirroring mode. 0 means unmirrored, 1 means mirrored. In
37331 mirrored mode, higher values will be represented on the left side
37332 for "row" mode and at the top for "column" mode. Default is 1
37333 (mirrored).
37334
37335 display, d
37336 Set display mode. It accepts the following values:
37337
37338 overlay
37339 Presents information identical to that in the "parade", except
37340 that the graphs representing color components are superimposed
37341 directly over one another.
37342
37343 This display mode makes it easier to spot relative differences
37344 or similarities in overlapping areas of the color components
37345 that are supposed to be identical, such as neutral whites,
37346 grays, or blacks.
37347
37348 stack
37349 Display separate graph for the color components side by side in
37350 "row" mode or one below the other in "column" mode.
37351
37352 parade
37353 Display separate graph for the color components side by side in
37354 "column" mode or one below the other in "row" mode.
37355
37356 Using this display mode makes it easy to spot color casts in
37357 the highlights and shadows of an image, by comparing the
37358 contours of the top and the bottom graphs of each waveform.
37359 Since whites, grays, and blacks are characterized by exactly
37360 equal amounts of red, green, and blue, neutral areas of the
37361 picture should display three waveforms of roughly equal
37362 width/height. If not, the correction is easy to perform by
37363 making level adjustments the three waveforms.
37364
37365 Default is "stack".
37366
37367 components, c
37368 Set which color components to display. Default is 1, which means
37369 only luminance or red color component if input is in RGB
37370 colorspace. If is set for example to 7 it will display all 3 (if)
37371 available color components.
37372
37373 envelope, e
37374 none
37375 No envelope, this is default.
37376
37377 instant
37378 Instant envelope, minimum and maximum values presented in graph
37379 will be easily visible even with small "step" value.
37380
37381 peak
37382 Hold minimum and maximum values presented in graph across time.
37383 This way you can still spot out of range values without
37384 constantly looking at waveforms.
37385
37386 peak+instant
37387 Peak and instant envelope combined together.
37388
37389 filter, f
37390 lowpass
37391 No filtering, this is default.
37392
37393 flat
37394 Luma and chroma combined together.
37395
37396 aflat
37397 Similar as above, but shows difference between blue and red
37398 chroma.
37399
37400 xflat
37401 Similar as above, but use different colors.
37402
37403 yflat
37404 Similar as above, but again with different colors.
37405
37406 chroma
37407 Displays only chroma.
37408
37409 color
37410 Displays actual color value on waveform.
37411
37412 acolor
37413 Similar as above, but with luma showing frequency of chroma
37414 values.
37415
37416 graticule, g
37417 Set which graticule to display.
37418
37419 none
37420 Do not display graticule.
37421
37422 green
37423 Display green graticule showing legal broadcast ranges.
37424
37425 orange
37426 Display orange graticule showing legal broadcast ranges.
37427
37428 invert
37429 Display invert graticule showing legal broadcast ranges.
37430
37431 opacity, o
37432 Set graticule opacity.
37433
37434 flags, fl
37435 Set graticule flags.
37436
37437 numbers
37438 Draw numbers above lines. By default enabled.
37439
37440 dots
37441 Draw dots instead of lines.
37442
37443 scale, s
37444 Set scale used for displaying graticule.
37445
37446 digital
37447 millivolts
37448 ire
37449
37450 Default is digital.
37451
37452 bgopacity, b
37453 Set background opacity.
37454
37455 tint0, t0
37456 tint1, t1
37457 Set tint for output. Only used with lowpass filter and when
37458 display is not overlay and input pixel formats are not RGB.
37459
37460 fitmode, fm
37461 Set sample aspect ratio of video output frames. Can be used to
37462 configure waveform so it is not streched too much in one of
37463 directions.
37464
37465 none
37466 Set sample aspect ration to 1/1.
37467
37468 size
37469 Set sample aspect ratio to match input size of video
37470
37471 Default is none.
37472
37473 weave, doubleweave
37474 The "weave" takes a field-based video input and join each two
37475 sequential fields into single frame, producing a new double height clip
37476 with half the frame rate and half the frame count.
37477
37478 The "doubleweave" works same as "weave" but without halving frame rate
37479 and frame count.
37480
37481 It accepts the following option:
37482
37483 first_field
37484 Set first field. Available values are:
37485
37486 top, t
37487 Set the frame as top-field-first.
37488
37489 bottom, b
37490 Set the frame as bottom-field-first.
37491
37492 Examples
37493
37494 • Interlace video using select and separatefields filter:
37495
37496 separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
37497
37498 xbr
37499 Apply the xBR high-quality magnification filter which is designed for
37500 pixel art. It follows a set of edge-detection rules, see
37501 <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
37502
37503 It accepts the following option:
37504
37505 n Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
37506 "4xBR". Default is 3.
37507
37508 xcorrelate
37509 Apply normalized cross-correlation between first and second input video
37510 stream.
37511
37512 Second input video stream dimensions must be lower than first input
37513 video stream.
37514
37515 The filter accepts the following options:
37516
37517 planes
37518 Set which planes to process.
37519
37520 secondary
37521 Set which secondary video frames will be processed from second
37522 input video stream, can be first or all. Default is all.
37523
37524 The "xcorrelate" filter also supports the framesync options.
37525
37526 xfade
37527 Apply cross fade from one input video stream to another input video
37528 stream. The cross fade is applied for specified duration.
37529
37530 Both inputs must be constant frame-rate and have the same resolution,
37531 pixel format, frame rate and timebase.
37532
37533 The filter accepts the following options:
37534
37535 transition
37536 Set one of available transition effects:
37537
37538 custom
37539 fade
37540 wipeleft
37541 wiperight
37542 wipeup
37543 wipedown
37544 slideleft
37545 slideright
37546 slideup
37547 slidedown
37548 circlecrop
37549 rectcrop
37550 distance
37551 fadeblack
37552 fadewhite
37553 radial
37554 smoothleft
37555 smoothright
37556 smoothup
37557 smoothdown
37558 circleopen
37559 circleclose
37560 vertopen
37561 vertclose
37562 horzopen
37563 horzclose
37564 dissolve
37565 pixelize
37566 diagtl
37567 diagtr
37568 diagbl
37569 diagbr
37570 hlslice
37571 hrslice
37572 vuslice
37573 vdslice
37574 hblur
37575 fadegrays
37576 wipetl
37577 wipetr
37578 wipebl
37579 wipebr
37580 squeezeh
37581 squeezev
37582 zoomin
37583
37584 Default transition effect is fade.
37585
37586 duration
37587 Set cross fade duration in seconds. Range is 0 to 60 seconds.
37588 Default duration is 1 second.
37589
37590 offset
37591 Set cross fade start relative to first input stream in seconds.
37592 Default offset is 0.
37593
37594 expr
37595 Set expression for custom transition effect.
37596
37597 The expressions can use the following variables and functions:
37598
37599 X
37600 Y The coordinates of the current sample.
37601
37602 W
37603 H The width and height of the image.
37604
37605 P Progress of transition effect.
37606
37607 PLANE
37608 Currently processed plane.
37609
37610 A Return value of first input at current location and plane.
37611
37612 B Return value of second input at current location and plane.
37613
37614 a0(x, y)
37615 a1(x, y)
37616 a2(x, y)
37617 a3(x, y)
37618 Return the value of the pixel at location (x,y) of the
37619 first/second/third/fourth component of first input.
37620
37621 b0(x, y)
37622 b1(x, y)
37623 b2(x, y)
37624 b3(x, y)
37625 Return the value of the pixel at location (x,y) of the
37626 first/second/third/fourth component of second input.
37627
37628 Examples
37629
37630 • Cross fade from one input video to another input video, with fade
37631 transition and duration of transition of 2 seconds starting at
37632 offset of 5 seconds:
37633
37634 ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
37635
37636 xmedian
37637 Pick median pixels from several input videos.
37638
37639 The filter accepts the following options:
37640
37641 inputs
37642 Set number of inputs. Default is 3. Allowed range is from 3 to
37643 255. If number of inputs is even number, than result will be mean
37644 value between two median values.
37645
37646 planes
37647 Set which planes to filter. Default value is 15, by which all
37648 planes are processed.
37649
37650 percentile
37651 Set median percentile. Default value is 0.5. Default value of 0.5
37652 will pick always median values, while 0 will pick minimum values,
37653 and 1 maximum values.
37654
37655 Commands
37656
37657 This filter supports all above options as commands, excluding option
37658 "inputs".
37659
37660 xstack
37661 Stack video inputs into custom layout.
37662
37663 All streams must be of same pixel format.
37664
37665 The filter accepts the following options:
37666
37667 inputs
37668 Set number of input streams. Default is 2.
37669
37670 layout
37671 Specify layout of inputs. This option requires the desired layout
37672 configuration to be explicitly set by the user. This sets position
37673 of each video input in output. Each input is separated by '|'. The
37674 first number represents the column, and the second number
37675 represents the row. Numbers start at 0 and are separated by '_'.
37676 Optionally one can use wX and hX, where X is video input from which
37677 to take width or height. Multiple values can be used when
37678 separated by '+'. In such case values are summed together.
37679
37680 Note that if inputs are of different sizes gaps may appear, as not
37681 all of the output video frame will be filled. Similarly, videos can
37682 overlap each other if their position doesn't leave enough space for
37683 the full frame of adjoining videos.
37684
37685 For 2 inputs, a default layout of "0_0|w0_0" is set. In all other
37686 cases, a layout must be set by the user.
37687
37688 shortest
37689 If set to 1, force the output to terminate when the shortest input
37690 terminates. Default value is 0.
37691
37692 fill
37693 If set to valid color, all unused pixels will be filled with that
37694 color. By default fill is set to none, so it is disabled.
37695
37696 Examples
37697
37698 • Display 4 inputs into 2x2 grid.
37699
37700 Layout:
37701
37702 input1(0, 0) | input3(w0, 0)
37703 input2(0, h0) | input4(w0, h0)
37704
37705
37706
37707 xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
37708
37709 Note that if inputs are of different sizes, gaps or overlaps may
37710 occur.
37711
37712 • Display 4 inputs into 1x4 grid.
37713
37714 Layout:
37715
37716 input1(0, 0)
37717 input2(0, h0)
37718 input3(0, h0+h1)
37719 input4(0, h0+h1+h2)
37720
37721
37722
37723 xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
37724
37725 Note that if inputs are of different widths, unused space will
37726 appear.
37727
37728 • Display 9 inputs into 3x3 grid.
37729
37730 Layout:
37731
37732 input1(0, 0) | input4(w0, 0) | input7(w0+w3, 0)
37733 input2(0, h0) | input5(w0, h0) | input8(w0+w3, h0)
37734 input3(0, h0+h1) | input6(w0, h0+h1) | input9(w0+w3, h0+h1)
37735
37736
37737
37738 xstack=inputs=9:layout=0_0|0_h0|0_h0+h1|w0_0|w0_h0|w0_h0+h1|w0+w3_0|w0+w3_h0|w0+w3_h0+h1
37739
37740 Note that if inputs are of different sizes, gaps or overlaps may
37741 occur.
37742
37743 • Display 16 inputs into 4x4 grid.
37744
37745 Layout:
37746
37747 input1(0, 0) | input5(w0, 0) | input9 (w0+w4, 0) | input13(w0+w4+w8, 0)
37748 input2(0, h0) | input6(w0, h0) | input10(w0+w4, h0) | input14(w0+w4+w8, h0)
37749 input3(0, h0+h1) | input7(w0, h0+h1) | input11(w0+w4, h0+h1) | input15(w0+w4+w8, h0+h1)
37750 input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
37751
37752
37753
37754 xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0|
37755 w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2
37756
37757 Note that if inputs are of different sizes, gaps or overlaps may
37758 occur.
37759
37760 yadif
37761 Deinterlace the input video ("yadif" means "yet another deinterlacing
37762 filter").
37763
37764 It accepts the following parameters:
37765
37766 mode
37767 The interlacing mode to adopt. It accepts one of the following
37768 values:
37769
37770 0, send_frame
37771 Output one frame for each frame.
37772
37773 1, send_field
37774 Output one frame for each field.
37775
37776 2, send_frame_nospatial
37777 Like "send_frame", but it skips the spatial interlacing check.
37778
37779 3, send_field_nospatial
37780 Like "send_field", but it skips the spatial interlacing check.
37781
37782 The default value is "send_frame".
37783
37784 parity
37785 The picture field parity assumed for the input interlaced video. It
37786 accepts one of the following values:
37787
37788 0, tff
37789 Assume the top field is first.
37790
37791 1, bff
37792 Assume the bottom field is first.
37793
37794 -1, auto
37795 Enable automatic detection of field parity.
37796
37797 The default value is "auto". If the interlacing is unknown or the
37798 decoder does not export this information, top field first will be
37799 assumed.
37800
37801 deint
37802 Specify which frames to deinterlace. Accepts one of the following
37803 values:
37804
37805 0, all
37806 Deinterlace all frames.
37807
37808 1, interlaced
37809 Only deinterlace frames marked as interlaced.
37810
37811 The default value is "all".
37812
37813 yadif_cuda
37814 Deinterlace the input video using the yadif algorithm, but implemented
37815 in CUDA so that it can work as part of a GPU accelerated pipeline with
37816 nvdec and/or nvenc.
37817
37818 It accepts the following parameters:
37819
37820 mode
37821 The interlacing mode to adopt. It accepts one of the following
37822 values:
37823
37824 0, send_frame
37825 Output one frame for each frame.
37826
37827 1, send_field
37828 Output one frame for each field.
37829
37830 2, send_frame_nospatial
37831 Like "send_frame", but it skips the spatial interlacing check.
37832
37833 3, send_field_nospatial
37834 Like "send_field", but it skips the spatial interlacing check.
37835
37836 The default value is "send_frame".
37837
37838 parity
37839 The picture field parity assumed for the input interlaced video. It
37840 accepts one of the following values:
37841
37842 0, tff
37843 Assume the top field is first.
37844
37845 1, bff
37846 Assume the bottom field is first.
37847
37848 -1, auto
37849 Enable automatic detection of field parity.
37850
37851 The default value is "auto". If the interlacing is unknown or the
37852 decoder does not export this information, top field first will be
37853 assumed.
37854
37855 deint
37856 Specify which frames to deinterlace. Accepts one of the following
37857 values:
37858
37859 0, all
37860 Deinterlace all frames.
37861
37862 1, interlaced
37863 Only deinterlace frames marked as interlaced.
37864
37865 The default value is "all".
37866
37867 yaepblur
37868 Apply blur filter while preserving edges ("yaepblur" means "yet another
37869 edge preserving blur filter"). The algorithm is described in "J. S.
37870 Lee, Digital image enhancement and noise filtering by use of local
37871 statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
37872
37873 It accepts the following parameters:
37874
37875 radius, r
37876 Set the window radius. Default value is 3.
37877
37878 planes, p
37879 Set which planes to filter. Default is only the first plane.
37880
37881 sigma, s
37882 Set blur strength. Default value is 128.
37883
37884 Commands
37885
37886 This filter supports same commands as options.
37887
37888 zoompan
37889 Apply Zoom & Pan effect.
37890
37891 This filter accepts the following options:
37892
37893 zoom, z
37894 Set the zoom expression. Range is 1-10. Default is 1.
37895
37896 x
37897 y Set the x and y expression. Default is 0.
37898
37899 d Set the duration expression in number of frames. This sets for how
37900 many number of frames effect will last for single input image.
37901 Default is 90.
37902
37903 s Set the output image size, default is 'hd720'.
37904
37905 fps Set the output frame rate, default is '25'.
37906
37907 Each expression can contain the following constants:
37908
37909 in_w, iw
37910 Input width.
37911
37912 in_h, ih
37913 Input height.
37914
37915 out_w, ow
37916 Output width.
37917
37918 out_h, oh
37919 Output height.
37920
37921 in Input frame count.
37922
37923 on Output frame count.
37924
37925 in_time, it
37926 The input timestamp expressed in seconds. It's NAN if the input
37927 timestamp is unknown.
37928
37929 out_time, time, ot
37930 The output timestamp expressed in seconds.
37931
37932 x
37933 y Last calculated 'x' and 'y' position from 'x' and 'y' expression
37934 for current input frame.
37935
37936 px
37937 py 'x' and 'y' of last output frame of previous input frame or 0 when
37938 there was not yet such frame (first input frame).
37939
37940 zoom
37941 Last calculated zoom from 'z' expression for current input frame.
37942
37943 pzoom
37944 Last calculated zoom of last output frame of previous input frame.
37945
37946 duration
37947 Number of output frames for current input frame. Calculated from
37948 'd' expression for each input frame.
37949
37950 pduration
37951 number of output frames created for previous input frame
37952
37953 a Rational number: input width / input height
37954
37955 sar sample aspect ratio
37956
37957 dar display aspect ratio
37958
37959 Examples
37960
37961 • Zoom in up to 1.5x and pan at same time to some spot near center of
37962 picture:
37963
37964 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
37965
37966 • Zoom in up to 1.5x and pan always at center of picture:
37967
37968 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
37969
37970 • Same as above but without pausing:
37971
37972 zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
37973
37974 • Zoom in 2x into center of picture only for the first second of the
37975 input video:
37976
37977 zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
37978
37979 zscale
37980 Scale (resize) the input video, using the z.lib library:
37981 <https://github.com/sekrit-twc/zimg>. To enable compilation of this
37982 filter, you need to configure FFmpeg with "--enable-libzimg".
37983
37984 The zscale filter forces the output display aspect ratio to be the same
37985 as the input, by changing the output sample aspect ratio.
37986
37987 If the input image format is different from the format requested by the
37988 next filter, the zscale filter will convert the input to the requested
37989 format.
37990
37991 Options
37992
37993 The filter accepts the following options.
37994
37995 width, w
37996 height, h
37997 Set the output video dimension expression. Default value is the
37998 input dimension.
37999
38000 If the width or w value is 0, the input width is used for the
38001 output. If the height or h value is 0, the input height is used for
38002 the output.
38003
38004 If one and only one of the values is -n with n >= 1, the zscale
38005 filter will use a value that maintains the aspect ratio of the
38006 input image, calculated from the other specified dimension. After
38007 that it will, however, make sure that the calculated dimension is
38008 divisible by n and adjust the value if necessary.
38009
38010 If both values are -n with n >= 1, the behavior will be identical
38011 to both values being set to 0 as previously detailed.
38012
38013 See below for the list of accepted constants for use in the
38014 dimension expression.
38015
38016 size, s
38017 Set the video size. For the syntax of this option, check the "Video
38018 size" section in the ffmpeg-utils manual.
38019
38020 dither, d
38021 Set the dither type.
38022
38023 Possible values are:
38024
38025 none
38026 ordered
38027 random
38028 error_diffusion
38029
38030 Default is none.
38031
38032 filter, f
38033 Set the resize filter type.
38034
38035 Possible values are:
38036
38037 point
38038 bilinear
38039 bicubic
38040 spline16
38041 spline36
38042 lanczos
38043
38044 Default is bilinear.
38045
38046 range, r
38047 Set the color range.
38048
38049 Possible values are:
38050
38051 input
38052 limited
38053 full
38054
38055 Default is same as input.
38056
38057 primaries, p
38058 Set the color primaries.
38059
38060 Possible values are:
38061
38062 input
38063 709
38064 unspecified
38065 170m
38066 240m
38067 2020
38068
38069 Default is same as input.
38070
38071 transfer, t
38072 Set the transfer characteristics.
38073
38074 Possible values are:
38075
38076 input
38077 709
38078 unspecified
38079 601
38080 linear
38081 2020_10
38082 2020_12
38083 smpte2084
38084 iec61966-2-1
38085 arib-std-b67
38086
38087 Default is same as input.
38088
38089 matrix, m
38090 Set the colorspace matrix.
38091
38092 Possible value are:
38093
38094 input
38095 709
38096 unspecified
38097 470bg
38098 170m
38099 2020_ncl
38100 2020_cl
38101
38102 Default is same as input.
38103
38104 rangein, rin
38105 Set the input color range.
38106
38107 Possible values are:
38108
38109 input
38110 limited
38111 full
38112
38113 Default is same as input.
38114
38115 primariesin, pin
38116 Set the input color primaries.
38117
38118 Possible values are:
38119
38120 input
38121 709
38122 unspecified
38123 170m
38124 240m
38125 2020
38126
38127 Default is same as input.
38128
38129 transferin, tin
38130 Set the input transfer characteristics.
38131
38132 Possible values are:
38133
38134 input
38135 709
38136 unspecified
38137 601
38138 linear
38139 2020_10
38140 2020_12
38141
38142 Default is same as input.
38143
38144 matrixin, min
38145 Set the input colorspace matrix.
38146
38147 Possible value are:
38148
38149 input
38150 709
38151 unspecified
38152 470bg
38153 170m
38154 2020_ncl
38155 2020_cl
38156 chromal, c
38157 Set the output chroma location.
38158
38159 Possible values are:
38160
38161 input
38162 left
38163 center
38164 topleft
38165 top
38166 bottomleft
38167 bottom
38168 chromalin, cin
38169 Set the input chroma location.
38170
38171 Possible values are:
38172
38173 input
38174 left
38175 center
38176 topleft
38177 top
38178 bottomleft
38179 bottom
38180 npl Set the nominal peak luminance.
38181
38182 param_a
38183 Parameter A for scaling filters. Parameter "b" for bicubic, and the
38184 number of filter taps for lanczos.
38185
38186 param_b
38187 Parameter B for scaling filters. Parameter "c" for bicubic.
38188
38189 The values of the w and h options are expressions containing the
38190 following constants:
38191
38192 in_w
38193 in_h
38194 The input width and height
38195
38196 iw
38197 ih These are the same as in_w and in_h.
38198
38199 out_w
38200 out_h
38201 The output (scaled) width and height
38202
38203 ow
38204 oh These are the same as out_w and out_h
38205
38206 a The same as iw / ih
38207
38208 sar input sample aspect ratio
38209
38210 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
38211
38212 hsub
38213 vsub
38214 horizontal and vertical input chroma subsample values. For example
38215 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
38216
38217 ohsub
38218 ovsub
38219 horizontal and vertical output chroma subsample values. For example
38220 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
38221
38222 Commands
38223
38224 This filter supports the following commands:
38225
38226 width, w
38227 height, h
38228 Set the output video dimension expression. The command accepts the
38229 same syntax of the corresponding option.
38230
38231 If the specified expression is not valid, it is kept at its current
38232 value.
38233
38235 Below is a description of the currently available OpenCL video filters.
38236
38237 To enable compilation of these filters you need to configure FFmpeg
38238 with "--enable-opencl".
38239
38240 Running OpenCL filters requires you to initialize a hardware device and
38241 to pass that device to all filters in any filter graph.
38242
38243 -init_hw_device opencl[=name][:device[,key=value...]]
38244 Initialise a new hardware device of type opencl called name, using
38245 the given device parameters.
38246
38247 -filter_hw_device name
38248 Pass the hardware device called name to all filters in any filter
38249 graph.
38250
38251 For more detailed information see
38252 <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
38253
38254 • Example of choosing the first device on the second platform and
38255 running avgblur_opencl filter with default parameters on it.
38256
38257 -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
38258
38259 Since OpenCL filters are not able to access frame data in normal
38260 memory, all frame data needs to be uploaded(hwupload) to hardware
38261 surfaces connected to the appropriate device before being used and then
38262 downloaded(hwdownload) back to normal memory. Note that hwupload will
38263 upload to a surface with the same layout as the software frame, so it
38264 may be necessary to add a format filter immediately before to get the
38265 input into the right format and hwdownload does not support all formats
38266 on the output - it may be necessary to insert an additional format
38267 filter immediately following in the graph to get the output in a
38268 supported format.
38269
38270 avgblur_opencl
38271 Apply average blur filter.
38272
38273 The filter accepts the following options:
38274
38275 sizeX
38276 Set horizontal radius size. Range is "[1, 1024]" and default value
38277 is 1.
38278
38279 planes
38280 Set which planes to filter. Default value is 0xf, by which all
38281 planes are processed.
38282
38283 sizeY
38284 Set vertical radius size. Range is "[1, 1024]" and default value is
38285 0. If zero, "sizeX" value will be used.
38286
38287 Example
38288
38289 • Apply average blur filter with horizontal and vertical size of 3,
38290 setting each pixel of the output to the average value of the 7x7
38291 region centered on it in the input. For pixels on the edges of the
38292 image, the region does not extend beyond the image boundaries, and
38293 so out-of-range coordinates are not used in the calculations.
38294
38295 -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
38296
38297 boxblur_opencl
38298 Apply a boxblur algorithm to the input video.
38299
38300 It accepts the following parameters:
38301
38302 luma_radius, lr
38303 luma_power, lp
38304 chroma_radius, cr
38305 chroma_power, cp
38306 alpha_radius, ar
38307 alpha_power, ap
38308
38309 A description of the accepted options follows.
38310
38311 luma_radius, lr
38312 chroma_radius, cr
38313 alpha_radius, ar
38314 Set an expression for the box radius in pixels used for blurring
38315 the corresponding input plane.
38316
38317 The radius value must be a non-negative number, and must not be
38318 greater than the value of the expression "min(w,h)/2" for the luma
38319 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
38320
38321 Default value for luma_radius is "2". If not specified,
38322 chroma_radius and alpha_radius default to the corresponding value
38323 set for luma_radius.
38324
38325 The expressions can contain the following constants:
38326
38327 w
38328 h The input width and height in pixels.
38329
38330 cw
38331 ch The input chroma image width and height in pixels.
38332
38333 hsub
38334 vsub
38335 The horizontal and vertical chroma subsample values. For
38336 example, for the pixel format "yuv422p", hsub is 2 and vsub is
38337 1.
38338
38339 luma_power, lp
38340 chroma_power, cp
38341 alpha_power, ap
38342 Specify how many times the boxblur filter is applied to the
38343 corresponding plane.
38344
38345 Default value for luma_power is 2. If not specified, chroma_power
38346 and alpha_power default to the corresponding value set for
38347 luma_power.
38348
38349 A value of 0 will disable the effect.
38350
38351 Examples
38352
38353 Apply boxblur filter, setting each pixel of the output to the average
38354 value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
38355 plane respectively. The filter will apply luma_power, chroma_power,
38356 alpha_power times onto the corresponding plane. For pixels on the edges
38357 of the image, the radius does not extend beyond the image boundaries,
38358 and so out-of-range coordinates are not used in the calculations.
38359
38360 • Apply a boxblur filter with the luma, chroma, and alpha radius set
38361 to 2 and luma, chroma, and alpha power set to 3. The filter will
38362 run 3 times with box-radius set to 2 for every plane of the image.
38363
38364 -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
38365 -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
38366
38367 • Apply a boxblur filter with luma radius set to 2, luma_power to 1,
38368 chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
38369 alpha_power to 7.
38370
38371 For the luma plane, a 2x2 box radius will be run once.
38372
38373 For the chroma plane, a 4x4 box radius will be run 5 times.
38374
38375 For the alpha plane, a 3x3 box radius will be run 7 times.
38376
38377 -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
38378
38379 colorkey_opencl
38380 RGB colorspace color keying.
38381
38382 The filter accepts the following options:
38383
38384 color
38385 The color which will be replaced with transparency.
38386
38387 similarity
38388 Similarity percentage with the key color.
38389
38390 0.01 matches only the exact key color, while 1.0 matches
38391 everything.
38392
38393 blend
38394 Blend percentage.
38395
38396 0.0 makes pixels either fully transparent, or not transparent at
38397 all.
38398
38399 Higher values result in semi-transparent pixels, with a higher
38400 transparency the more similar the pixels color is to the key color.
38401
38402 Examples
38403
38404 • Make every semi-green pixel in the input transparent with some
38405 slight blending:
38406
38407 -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
38408
38409 convolution_opencl
38410 Apply convolution of 3x3, 5x5, 7x7 matrix.
38411
38412 The filter accepts the following options:
38413
38414 0m
38415 1m
38416 2m
38417 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
38418 signed numbers. Default value for each plane is "0 0 0 0 1 0 0 0
38419 0".
38420
38421 0rdiv
38422 1rdiv
38423 2rdiv
38424 3rdiv
38425 Set multiplier for calculated value for each plane. If unset or 0,
38426 it will be sum of all matrix elements. The option value must be a
38427 float number greater or equal to 0.0. Default value is 1.0.
38428
38429 0bias
38430 1bias
38431 2bias
38432 3bias
38433 Set bias for each plane. This value is added to the result of the
38434 multiplication. Useful for making the overall image brighter or
38435 darker. The option value must be a float number greater or equal
38436 to 0.0. Default value is 0.0.
38437
38438 Examples
38439
38440 • Apply sharpen:
38441
38442 -i INPUT -vf "hwupload, convolution_opencl=0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0, hwdownload" OUTPUT
38443
38444 • Apply blur:
38445
38446 -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9, hwdownload" OUTPUT
38447
38448 • Apply edge enhance:
38449
38450 -i INPUT -vf "hwupload, convolution_opencl=0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128, hwdownload" OUTPUT
38451
38452 • Apply edge detect:
38453
38454 -i INPUT -vf "hwupload, convolution_opencl=0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128, hwdownload" OUTPUT
38455
38456 • Apply laplacian edge detector which includes diagonals:
38457
38458 -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0, hwdownload" OUTPUT
38459
38460 • Apply emboss:
38461
38462 -i INPUT -vf "hwupload, convolution_opencl=-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2, hwdownload" OUTPUT
38463
38464 erosion_opencl
38465 Apply erosion effect to the video.
38466
38467 This filter replaces the pixel by the local(3x3) minimum.
38468
38469 It accepts the following options:
38470
38471 threshold0
38472 threshold1
38473 threshold2
38474 threshold3
38475 Limit the maximum change for each plane. Range is "[0, 65535]" and
38476 default value is 65535. If 0, plane will remain unchanged.
38477
38478 coordinates
38479 Flag which specifies the pixel to refer to. Range is "[0, 255]"
38480 and default value is 255, i.e. all eight pixels are used.
38481
38482 Flags to local 3x3 coordinates region centered on "x":
38483
38484 1 2 3
38485
38486 4 x 5
38487
38488 6 7 8
38489
38490 Example
38491
38492 • Apply erosion filter with threshold0 set to 30, threshold1 set 40,
38493 threshold2 set to 50 and coordinates set to 231, setting each pixel
38494 of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
38495 of the 3x3 region centered on it in the input. If the difference
38496 between input pixel and local minimum is more then threshold of the
38497 corresponding plane, output pixel will be set to input pixel -
38498 threshold of corresponding plane.
38499
38500 -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
38501
38502 deshake_opencl
38503 Feature-point based video stabilization filter.
38504
38505 The filter accepts the following options:
38506
38507 tripod
38508 Simulates a tripod by preventing any camera movement whatsoever
38509 from the original frame. Defaults to 0.
38510
38511 debug
38512 Whether or not additional debug info should be displayed, both in
38513 the processed output and in the console.
38514
38515 Note that in order to see console debug output you will also need
38516 to pass "-v verbose" to ffmpeg.
38517
38518 Viewing point matches in the output video is only supported for RGB
38519 input.
38520
38521 Defaults to 0.
38522
38523 adaptive_crop
38524 Whether or not to do a tiny bit of cropping at the borders to cut
38525 down on the amount of mirrored pixels.
38526
38527 Defaults to 1.
38528
38529 refine_features
38530 Whether or not feature points should be refined at a sub-pixel
38531 level.
38532
38533 This can be turned off for a slight performance gain at the cost of
38534 precision.
38535
38536 Defaults to 1.
38537
38538 smooth_strength
38539 The strength of the smoothing applied to the camera path from 0.0
38540 to 1.0.
38541
38542 1.0 is the maximum smoothing strength while values less than that
38543 result in less smoothing.
38544
38545 0.0 causes the filter to adaptively choose a smoothing strength on
38546 a per-frame basis.
38547
38548 Defaults to 0.0.
38549
38550 smooth_window_multiplier
38551 Controls the size of the smoothing window (the number of frames
38552 buffered to determine motion information from).
38553
38554 The size of the smoothing window is determined by multiplying the
38555 framerate of the video by this number.
38556
38557 Acceptable values range from 0.1 to 10.0.
38558
38559 Larger values increase the amount of motion data available for
38560 determining how to smooth the camera path, potentially improving
38561 smoothness, but also increase latency and memory usage.
38562
38563 Defaults to 2.0.
38564
38565 Examples
38566
38567 • Stabilize a video with a fixed, medium smoothing strength:
38568
38569 -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
38570
38571 • Stabilize a video with debugging (both in console and in rendered
38572 video):
38573
38574 -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
38575
38576 dilation_opencl
38577 Apply dilation effect to the video.
38578
38579 This filter replaces the pixel by the local(3x3) maximum.
38580
38581 It accepts the following options:
38582
38583 threshold0
38584 threshold1
38585 threshold2
38586 threshold3
38587 Limit the maximum change for each plane. Range is "[0, 65535]" and
38588 default value is 65535. If 0, plane will remain unchanged.
38589
38590 coordinates
38591 Flag which specifies the pixel to refer to. Range is "[0, 255]"
38592 and default value is 255, i.e. all eight pixels are used.
38593
38594 Flags to local 3x3 coordinates region centered on "x":
38595
38596 1 2 3
38597
38598 4 x 5
38599
38600 6 7 8
38601
38602 Example
38603
38604 • Apply dilation filter with threshold0 set to 30, threshold1 set 40,
38605 threshold2 set to 50 and coordinates set to 231, setting each pixel
38606 of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
38607 of the 3x3 region centered on it in the input. If the difference
38608 between input pixel and local maximum is more then threshold of the
38609 corresponding plane, output pixel will be set to input pixel +
38610 threshold of corresponding plane.
38611
38612 -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
38613
38614 nlmeans_opencl
38615 Non-local Means denoise filter through OpenCL, this filter accepts same
38616 options as nlmeans.
38617
38618 overlay_opencl
38619 Overlay one video on top of another.
38620
38621 It takes two inputs and has one output. The first input is the "main"
38622 video on which the second input is overlaid. This filter requires same
38623 memory layout for all the inputs. So, format conversion may be needed.
38624
38625 The filter accepts the following options:
38626
38627 x Set the x coordinate of the overlaid video on the main video.
38628 Default value is 0.
38629
38630 y Set the y coordinate of the overlaid video on the main video.
38631 Default value is 0.
38632
38633 Examples
38634
38635 • Overlay an image LOGO at the top-left corner of the INPUT video.
38636 Both inputs are yuv420p format.
38637
38638 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
38639
38640 • The inputs have same memory layout for color channels , the overlay
38641 has additional alpha plane, like INPUT is yuv420p, and the LOGO is
38642 yuva420p.
38643
38644 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
38645
38646 pad_opencl
38647 Add paddings to the input image, and place the original input at the
38648 provided x, y coordinates.
38649
38650 It accepts the following options:
38651
38652 width, w
38653 height, h
38654 Specify an expression for the size of the output image with the
38655 paddings added. If the value for width or height is 0, the
38656 corresponding input size is used for the output.
38657
38658 The width expression can reference the value set by the height
38659 expression, and vice versa.
38660
38661 The default value of width and height is 0.
38662
38663 x
38664 y Specify the offsets to place the input image at within the padded
38665 area, with respect to the top/left border of the output image.
38666
38667 The x expression can reference the value set by the y expression,
38668 and vice versa.
38669
38670 The default value of x and y is 0.
38671
38672 If x or y evaluate to a negative number, they'll be changed so the
38673 input image is centered on the padded area.
38674
38675 color
38676 Specify the color of the padded area. For the syntax of this
38677 option, check the "Color" section in the ffmpeg-utils manual.
38678
38679 aspect
38680 Pad to an aspect instead to a resolution.
38681
38682 The value for the width, height, x, and y options are expressions
38683 containing the following constants:
38684
38685 in_w
38686 in_h
38687 The input video width and height.
38688
38689 iw
38690 ih These are the same as in_w and in_h.
38691
38692 out_w
38693 out_h
38694 The output width and height (the size of the padded area), as
38695 specified by the width and height expressions.
38696
38697 ow
38698 oh These are the same as out_w and out_h.
38699
38700 x
38701 y The x and y offsets as specified by the x and y expressions, or NAN
38702 if not yet specified.
38703
38704 a same as iw / ih
38705
38706 sar input sample aspect ratio
38707
38708 dar input display aspect ratio, it is the same as (iw / ih) * sar
38709
38710 prewitt_opencl
38711 Apply the Prewitt operator
38712 (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
38713 stream.
38714
38715 The filter accepts the following option:
38716
38717 planes
38718 Set which planes to filter. Default value is 0xf, by which all
38719 planes are processed.
38720
38721 scale
38722 Set value which will be multiplied with filtered result. Range is
38723 "[0.0, 65535]" and default value is 1.0.
38724
38725 delta
38726 Set value which will be added to filtered result. Range is
38727 "[-65535, 65535]" and default value is 0.0.
38728
38729 Example
38730
38731 • Apply the Prewitt operator with scale set to 2 and delta set to 10.
38732
38733 -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
38734
38735 program_opencl
38736 Filter video using an OpenCL program.
38737
38738 source
38739 OpenCL program source file.
38740
38741 kernel
38742 Kernel name in program.
38743
38744 inputs
38745 Number of inputs to the filter. Defaults to 1.
38746
38747 size, s
38748 Size of output frames. Defaults to the same as the first input.
38749
38750 The "program_opencl" filter also supports the framesync options.
38751
38752 The program source file must contain a kernel function with the given
38753 name, which will be run once for each plane of the output. Each run on
38754 a plane gets enqueued as a separate 2D global NDRange with one work-
38755 item for each pixel to be generated. The global ID offset for each
38756 work-item is therefore the coordinates of a pixel in the destination
38757 image.
38758
38759 The kernel function needs to take the following arguments:
38760
38761 • Destination image, __write_only image2d_t.
38762
38763 This image will become the output; the kernel should write all of
38764 it.
38765
38766 • Frame index, unsigned int.
38767
38768 This is a counter starting from zero and increasing by one for each
38769 frame.
38770
38771 • Source images, __read_only image2d_t.
38772
38773 These are the most recent images on each input. The kernel may
38774 read from them to generate the output, but they can't be written
38775 to.
38776
38777 Example programs:
38778
38779 • Copy the input to the output (output must be the same size as the
38780 input).
38781
38782 __kernel void copy(__write_only image2d_t destination,
38783 unsigned int index,
38784 __read_only image2d_t source)
38785 {
38786 const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
38787
38788 int2 location = (int2)(get_global_id(0), get_global_id(1));
38789
38790 float4 value = read_imagef(source, sampler, location);
38791
38792 write_imagef(destination, location, value);
38793 }
38794
38795 • Apply a simple transformation, rotating the input by an amount
38796 increasing with the index counter. Pixel values are linearly
38797 interpolated by the sampler, and the output need not have the same
38798 dimensions as the input.
38799
38800 __kernel void rotate_image(__write_only image2d_t dst,
38801 unsigned int index,
38802 __read_only image2d_t src)
38803 {
38804 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
38805 CLK_FILTER_LINEAR);
38806
38807 float angle = (float)index / 100.0f;
38808
38809 float2 dst_dim = convert_float2(get_image_dim(dst));
38810 float2 src_dim = convert_float2(get_image_dim(src));
38811
38812 float2 dst_cen = dst_dim / 2.0f;
38813 float2 src_cen = src_dim / 2.0f;
38814
38815 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
38816
38817 float2 dst_pos = convert_float2(dst_loc) - dst_cen;
38818 float2 src_pos = {
38819 cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
38820 sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
38821 };
38822 src_pos = src_pos * src_dim / dst_dim;
38823
38824 float2 src_loc = src_pos + src_cen;
38825
38826 if (src_loc.x < 0.0f || src_loc.y < 0.0f ||
38827 src_loc.x > src_dim.x || src_loc.y > src_dim.y)
38828 write_imagef(dst, dst_loc, 0.5f);
38829 else
38830 write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
38831 }
38832
38833 • Blend two inputs together, with the amount of each input used
38834 varying with the index counter.
38835
38836 __kernel void blend_images(__write_only image2d_t dst,
38837 unsigned int index,
38838 __read_only image2d_t src1,
38839 __read_only image2d_t src2)
38840 {
38841 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
38842 CLK_FILTER_LINEAR);
38843
38844 float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
38845
38846 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
38847 int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
38848 int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
38849
38850 float4 val1 = read_imagef(src1, sampler, src1_loc);
38851 float4 val2 = read_imagef(src2, sampler, src2_loc);
38852
38853 write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
38854 }
38855
38856 roberts_opencl
38857 Apply the Roberts cross operator
38858 (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
38859
38860 The filter accepts the following option:
38861
38862 planes
38863 Set which planes to filter. Default value is 0xf, by which all
38864 planes are processed.
38865
38866 scale
38867 Set value which will be multiplied with filtered result. Range is
38868 "[0.0, 65535]" and default value is 1.0.
38869
38870 delta
38871 Set value which will be added to filtered result. Range is
38872 "[-65535, 65535]" and default value is 0.0.
38873
38874 Example
38875
38876 • Apply the Roberts cross operator with scale set to 2 and delta set
38877 to 10
38878
38879 -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
38880
38881 sobel_opencl
38882 Apply the Sobel operator
38883 (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
38884
38885 The filter accepts the following option:
38886
38887 planes
38888 Set which planes to filter. Default value is 0xf, by which all
38889 planes are processed.
38890
38891 scale
38892 Set value which will be multiplied with filtered result. Range is
38893 "[0.0, 65535]" and default value is 1.0.
38894
38895 delta
38896 Set value which will be added to filtered result. Range is
38897 "[-65535, 65535]" and default value is 0.0.
38898
38899 Example
38900
38901 • Apply sobel operator with scale set to 2 and delta set to 10
38902
38903 -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
38904
38905 tonemap_opencl
38906 Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
38907
38908 It accepts the following parameters:
38909
38910 tonemap
38911 Specify the tone-mapping operator to be used. Same as tonemap
38912 option in tonemap.
38913
38914 param
38915 Tune the tone mapping algorithm. same as param option in tonemap.
38916
38917 desat
38918 Apply desaturation for highlights that exceed this level of
38919 brightness. The higher the parameter, the more color information
38920 will be preserved. This setting helps prevent unnaturally blown-out
38921 colors for super-highlights, by (smoothly) turning into white
38922 instead. This makes images feel more natural, at the cost of
38923 reducing information about out-of-range colors.
38924
38925 The default value is 0.5, and the algorithm here is a little
38926 different from the cpu version tonemap currently. A setting of 0.0
38927 disables this option.
38928
38929 threshold
38930 The tonemapping algorithm parameters is fine-tuned per each scene.
38931 And a threshold is used to detect whether the scene has changed or
38932 not. If the distance between the current frame average brightness
38933 and the current running average exceeds a threshold value, we would
38934 re-calculate scene average and peak brightness. The default value
38935 is 0.2.
38936
38937 format
38938 Specify the output pixel format.
38939
38940 Currently supported formats are:
38941
38942 p010
38943 nv12
38944 range, r
38945 Set the output color range.
38946
38947 Possible values are:
38948
38949 tv/mpeg
38950 pc/jpeg
38951
38952 Default is same as input.
38953
38954 primaries, p
38955 Set the output color primaries.
38956
38957 Possible values are:
38958
38959 bt709
38960 bt2020
38961
38962 Default is same as input.
38963
38964 transfer, t
38965 Set the output transfer characteristics.
38966
38967 Possible values are:
38968
38969 bt709
38970 bt2020
38971
38972 Default is bt709.
38973
38974 matrix, m
38975 Set the output colorspace matrix.
38976
38977 Possible value are:
38978
38979 bt709
38980 bt2020
38981
38982 Default is same as input.
38983
38984 Example
38985
38986 • Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
38987 format using linear operator.
38988
38989 -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
38990
38991 unsharp_opencl
38992 Sharpen or blur the input video.
38993
38994 It accepts the following parameters:
38995
38996 luma_msize_x, lx
38997 Set the luma matrix horizontal size. Range is "[1, 23]" and
38998 default value is 5.
38999
39000 luma_msize_y, ly
39001 Set the luma matrix vertical size. Range is "[1, 23]" and default
39002 value is 5.
39003
39004 luma_amount, la
39005 Set the luma effect strength. Range is "[-10, 10]" and default
39006 value is 1.0.
39007
39008 Negative values will blur the input video, while positive values
39009 will sharpen it, a value of zero will disable the effect.
39010
39011 chroma_msize_x, cx
39012 Set the chroma matrix horizontal size. Range is "[1, 23]" and
39013 default value is 5.
39014
39015 chroma_msize_y, cy
39016 Set the chroma matrix vertical size. Range is "[1, 23]" and
39017 default value is 5.
39018
39019 chroma_amount, ca
39020 Set the chroma effect strength. Range is "[-10, 10]" and default
39021 value is 0.0.
39022
39023 Negative values will blur the input video, while positive values
39024 will sharpen it, a value of zero will disable the effect.
39025
39026 All parameters are optional and default to the equivalent of the string
39027 '5:5:1.0:5:5:0.0'.
39028
39029 Examples
39030
39031 • Apply strong luma sharpen effect:
39032
39033 -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
39034
39035 • Apply a strong blur of both luma and chroma parameters:
39036
39037 -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
39038
39039 xfade_opencl
39040 Cross fade two videos with custom transition effect by using OpenCL.
39041
39042 It accepts the following options:
39043
39044 transition
39045 Set one of possible transition effects.
39046
39047 custom
39048 Select custom transition effect, the actual transition
39049 description will be picked from source and kernel options.
39050
39051 fade
39052 wipeleft
39053 wiperight
39054 wipeup
39055 wipedown
39056 slideleft
39057 slideright
39058 slideup
39059 slidedown
39060 Default transition is fade.
39061
39062 source
39063 OpenCL program source file for custom transition.
39064
39065 kernel
39066 Set name of kernel to use for custom transition from program source
39067 file.
39068
39069 duration
39070 Set duration of video transition.
39071
39072 offset
39073 Set time of start of transition relative to first video.
39074
39075 The program source file must contain a kernel function with the given
39076 name, which will be run once for each plane of the output. Each run on
39077 a plane gets enqueued as a separate 2D global NDRange with one work-
39078 item for each pixel to be generated. The global ID offset for each
39079 work-item is therefore the coordinates of a pixel in the destination
39080 image.
39081
39082 The kernel function needs to take the following arguments:
39083
39084 • Destination image, __write_only image2d_t.
39085
39086 This image will become the output; the kernel should write all of
39087 it.
39088
39089 • First Source image, __read_only image2d_t. Second Source image,
39090 __read_only image2d_t.
39091
39092 These are the most recent images on each input. The kernel may
39093 read from them to generate the output, but they can't be written
39094 to.
39095
39096 • Transition progress, float. This value is always between 0 and 1
39097 inclusive.
39098
39099 Example programs:
39100
39101 • Apply dots curtain transition effect:
39102
39103 __kernel void blend_images(__write_only image2d_t dst,
39104 __read_only image2d_t src1,
39105 __read_only image2d_t src2,
39106 float progress)
39107 {
39108 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
39109 CLK_FILTER_LINEAR);
39110 int2 p = (int2)(get_global_id(0), get_global_id(1));
39111 float2 rp = (float2)(get_global_id(0), get_global_id(1));
39112 float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
39113 rp = rp / dim;
39114
39115 float2 dots = (float2)(20.0, 20.0);
39116 float2 center = (float2)(0,0);
39117 float2 unused;
39118
39119 float4 val1 = read_imagef(src1, sampler, p);
39120 float4 val2 = read_imagef(src2, sampler, p);
39121 bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
39122
39123 write_imagef(dst, p, next ? val1 : val2);
39124 }
39125
39127 VAAPI Video filters are usually used with VAAPI decoder and VAAPI
39128 encoder. Below is a description of VAAPI video filters.
39129
39130 To enable compilation of these filters you need to configure FFmpeg
39131 with "--enable-vaapi".
39132
39133 To use vaapi filters, you need to setup the vaapi device correctly. For
39134 more information, please read
39135 <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
39136
39137 tonemap_vaapi
39138 Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
39139 conversion with tone-mapping. It maps the dynamic range of HDR10
39140 content to the SDR content. It currently only accepts HDR10 as input.
39141
39142 It accepts the following parameters:
39143
39144 format
39145 Specify the output pixel format.
39146
39147 Currently supported formats are:
39148
39149 p010
39150 nv12
39151
39152 Default is nv12.
39153
39154 primaries, p
39155 Set the output color primaries.
39156
39157 Default is same as input.
39158
39159 transfer, t
39160 Set the output transfer characteristics.
39161
39162 Default is bt709.
39163
39164 matrix, m
39165 Set the output colorspace matrix.
39166
39167 Default is same as input.
39168
39169 Example
39170
39171 • Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
39172 format
39173
39174 tonemap_vaapi=format=p010:t=bt2020-10
39175
39177 Below is a description of the currently available video sources.
39178
39179 buffer
39180 Buffer video frames, and make them available to the filter chain.
39181
39182 This source is mainly intended for a programmatic use, in particular
39183 through the interface defined in libavfilter/buffersrc.h.
39184
39185 It accepts the following parameters:
39186
39187 video_size
39188 Specify the size (width and height) of the buffered video frames.
39189 For the syntax of this option, check the "Video size" section in
39190 the ffmpeg-utils manual.
39191
39192 width
39193 The input video width.
39194
39195 height
39196 The input video height.
39197
39198 pix_fmt
39199 A string representing the pixel format of the buffered video
39200 frames. It may be a number corresponding to a pixel format, or a
39201 pixel format name.
39202
39203 time_base
39204 Specify the timebase assumed by the timestamps of the buffered
39205 frames.
39206
39207 frame_rate
39208 Specify the frame rate expected for the video stream.
39209
39210 pixel_aspect, sar
39211 The sample (pixel) aspect ratio of the input video.
39212
39213 sws_param
39214 This option is deprecated and ignored. Prepend "sws_flags=flags;"
39215 to the filtergraph description to specify swscale flags for
39216 automatically inserted scalers. See Filtergraph syntax.
39217
39218 hw_frames_ctx
39219 When using a hardware pixel format, this should be a reference to
39220 an AVHWFramesContext describing input frames.
39221
39222 For example:
39223
39224 buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
39225
39226 will instruct the source to accept video frames with size 320x240 and
39227 with format "yuv410p", assuming 1/24 as the timestamps timebase and
39228 square pixels (1:1 sample aspect ratio). Since the pixel format with
39229 name "yuv410p" corresponds to the number 6 (check the enum
39230 AVPixelFormat definition in libavutil/pixfmt.h), this example
39231 corresponds to:
39232
39233 buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
39234
39235 Alternatively, the options can be specified as a flat string, but this
39236 syntax is deprecated:
39237
39238 width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
39239
39240 cellauto
39241 Create a pattern generated by an elementary cellular automaton.
39242
39243 The initial state of the cellular automaton can be defined through the
39244 filename and pattern options. If such options are not specified an
39245 initial state is created randomly.
39246
39247 At each new frame a new row in the video is filled with the result of
39248 the cellular automaton next generation. The behavior when the whole
39249 frame is filled is defined by the scroll option.
39250
39251 This source accepts the following options:
39252
39253 filename, f
39254 Read the initial cellular automaton state, i.e. the starting row,
39255 from the specified file. In the file, each non-whitespace
39256 character is considered an alive cell, a newline will terminate the
39257 row, and further characters in the file will be ignored.
39258
39259 pattern, p
39260 Read the initial cellular automaton state, i.e. the starting row,
39261 from the specified string.
39262
39263 Each non-whitespace character in the string is considered an alive
39264 cell, a newline will terminate the row, and further characters in
39265 the string will be ignored.
39266
39267 rate, r
39268 Set the video rate, that is the number of frames generated per
39269 second. Default is 25.
39270
39271 random_fill_ratio, ratio
39272 Set the random fill ratio for the initial cellular automaton row.
39273 It is a floating point number value ranging from 0 to 1, defaults
39274 to 1/PHI.
39275
39276 This option is ignored when a file or a pattern is specified.
39277
39278 random_seed, seed
39279 Set the seed for filling randomly the initial row, must be an
39280 integer included between 0 and UINT32_MAX. If not specified, or if
39281 explicitly set to -1, the filter will try to use a good random seed
39282 on a best effort basis.
39283
39284 rule
39285 Set the cellular automaton rule, it is a number ranging from 0 to
39286 255. Default value is 110.
39287
39288 size, s
39289 Set the size of the output video. For the syntax of this option,
39290 check the "Video size" section in the ffmpeg-utils manual.
39291
39292 If filename or pattern is specified, the size is set by default to
39293 the width of the specified initial state row, and the height is set
39294 to width * PHI.
39295
39296 If size is set, it must contain the width of the specified pattern
39297 string, and the specified pattern will be centered in the larger
39298 row.
39299
39300 If a filename or a pattern string is not specified, the size value
39301 defaults to "320x518" (used for a randomly generated initial
39302 state).
39303
39304 scroll
39305 If set to 1, scroll the output upward when all the rows in the
39306 output have been already filled. If set to 0, the new generated row
39307 will be written over the top row just after the bottom row is
39308 filled. Defaults to 1.
39309
39310 start_full, full
39311 If set to 1, completely fill the output with generated rows before
39312 outputting the first frame. This is the default behavior, for
39313 disabling set the value to 0.
39314
39315 stitch
39316 If set to 1, stitch the left and right row edges together. This is
39317 the default behavior, for disabling set the value to 0.
39318
39319 Examples
39320
39321 • Read the initial state from pattern, and specify an output of size
39322 200x400.
39323
39324 cellauto=f=pattern:s=200x400
39325
39326 • Generate a random initial row with a width of 200 cells, with a
39327 fill ratio of 2/3:
39328
39329 cellauto=ratio=2/3:s=200x200
39330
39331 • Create a pattern generated by rule 18 starting by a single alive
39332 cell centered on an initial row with width 100:
39333
39334 cellauto=p=@s=100x400:full=0:rule=18
39335
39336 • Specify a more elaborated initial pattern:
39337
39338 cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
39339
39340 coreimagesrc
39341 Video source generated on GPU using Apple's CoreImage API on OSX.
39342
39343 This video source is a specialized version of the coreimage video
39344 filter. Use a core image generator at the beginning of the applied
39345 filterchain to generate the content.
39346
39347 The coreimagesrc video source accepts the following options:
39348
39349 list_generators
39350 List all available generators along with all their respective
39351 options as well as possible minimum and maximum values along with
39352 the default values.
39353
39354 list_generators=true
39355
39356 size, s
39357 Specify the size of the sourced video. For the syntax of this
39358 option, check the "Video size" section in the ffmpeg-utils manual.
39359 The default value is "320x240".
39360
39361 rate, r
39362 Specify the frame rate of the sourced video, as the number of
39363 frames generated per second. It has to be a string in the format
39364 frame_rate_num/frame_rate_den, an integer number, a floating point
39365 number or a valid video frame rate abbreviation. The default value
39366 is "25".
39367
39368 sar Set the sample aspect ratio of the sourced video.
39369
39370 duration, d
39371 Set the duration of the sourced video. See the Time duration
39372 section in the ffmpeg-utils(1) manual for the accepted syntax.
39373
39374 If not specified, or the expressed duration is negative, the video
39375 is supposed to be generated forever.
39376
39377 Additionally, all options of the coreimage video filter are accepted.
39378 A complete filterchain can be used for further processing of the
39379 generated input without CPU-HOST transfer. See coreimage documentation
39380 and examples for details.
39381
39382 Examples
39383
39384 • Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
39385 given as complete and escaped command-line for Apple's standard
39386 bash shell:
39387
39388 ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
39389
39390 This example is equivalent to the QRCode example of coreimage
39391 without the need for a nullsrc video source.
39392
39393 gradients
39394 Generate several gradients.
39395
39396 size, s
39397 Set frame size. For the syntax of this option, check the "Video
39398 size" section in the ffmpeg-utils manual. Default value is
39399 "640x480".
39400
39401 rate, r
39402 Set frame rate, expressed as number of frames per second. Default
39403 value is "25".
39404
39405 c0, c1, c2, c3, c4, c5, c6, c7
39406 Set 8 colors. Default values for colors is to pick random one.
39407
39408 x0, y0, y0, y1
39409 Set gradient line source and destination points. If negative or out
39410 of range, random ones are picked.
39411
39412 nb_colors, n
39413 Set number of colors to use at once. Allowed range is from 2 to 8.
39414 Default value is 2.
39415
39416 seed
39417 Set seed for picking gradient line points.
39418
39419 duration, d
39420 Set the duration of the sourced video. See the Time duration
39421 section in the ffmpeg-utils(1) manual for the accepted syntax.
39422
39423 If not specified, or the expressed duration is negative, the video
39424 is supposed to be generated forever.
39425
39426 speed
39427 Set speed of gradients rotation.
39428
39429 mandelbrot
39430 Generate a Mandelbrot set fractal, and progressively zoom towards the
39431 point specified with start_x and start_y.
39432
39433 This source accepts the following options:
39434
39435 end_pts
39436 Set the terminal pts value. Default value is 400.
39437
39438 end_scale
39439 Set the terminal scale value. Must be a floating point value.
39440 Default value is 0.3.
39441
39442 inner
39443 Set the inner coloring mode, that is the algorithm used to draw the
39444 Mandelbrot fractal internal region.
39445
39446 It shall assume one of the following values:
39447
39448 black
39449 Set black mode.
39450
39451 convergence
39452 Show time until convergence.
39453
39454 mincol
39455 Set color based on point closest to the origin of the
39456 iterations.
39457
39458 period
39459 Set period mode.
39460
39461 Default value is mincol.
39462
39463 bailout
39464 Set the bailout value. Default value is 10.0.
39465
39466 maxiter
39467 Set the maximum of iterations performed by the rendering algorithm.
39468 Default value is 7189.
39469
39470 outer
39471 Set outer coloring mode. It shall assume one of following values:
39472
39473 iteration_count
39474 Set iteration count mode.
39475
39476 normalized_iteration_count
39477 set normalized iteration count mode.
39478
39479 Default value is normalized_iteration_count.
39480
39481 rate, r
39482 Set frame rate, expressed as number of frames per second. Default
39483 value is "25".
39484
39485 size, s
39486 Set frame size. For the syntax of this option, check the "Video
39487 size" section in the ffmpeg-utils manual. Default value is
39488 "640x480".
39489
39490 start_scale
39491 Set the initial scale value. Default value is 3.0.
39492
39493 start_x
39494 Set the initial x position. Must be a floating point value between
39495 -100 and 100. Default value is
39496 -0.743643887037158704752191506114774.
39497
39498 start_y
39499 Set the initial y position. Must be a floating point value between
39500 -100 and 100. Default value is
39501 -0.131825904205311970493132056385139.
39502
39503 mptestsrc
39504 Generate various test patterns, as generated by the MPlayer test
39505 filter.
39506
39507 The size of the generated video is fixed, and is 256x256. This source
39508 is useful in particular for testing encoding features.
39509
39510 This source accepts the following options:
39511
39512 rate, r
39513 Specify the frame rate of the sourced video, as the number of
39514 frames generated per second. It has to be a string in the format
39515 frame_rate_num/frame_rate_den, an integer number, a floating point
39516 number or a valid video frame rate abbreviation. The default value
39517 is "25".
39518
39519 duration, d
39520 Set the duration of the sourced video. See the Time duration
39521 section in the ffmpeg-utils(1) manual for the accepted syntax.
39522
39523 If not specified, or the expressed duration is negative, the video
39524 is supposed to be generated forever.
39525
39526 test, t
39527 Set the number or the name of the test to perform. Supported tests
39528 are:
39529
39530 dc_luma
39531 dc_chroma
39532 freq_luma
39533 freq_chroma
39534 amp_luma
39535 amp_chroma
39536 cbp
39537 mv
39538 ring1
39539 ring2
39540 all
39541 max_frames, m
39542 Set the maximum number of frames generated for each test,
39543 default value is 30.
39544
39545 Default value is "all", which will cycle through the list of all
39546 tests.
39547
39548 Some examples:
39549
39550 mptestsrc=t=dc_luma
39551
39552 will generate a "dc_luma" test pattern.
39553
39554 frei0r_src
39555 Provide a frei0r source.
39556
39557 To enable compilation of this filter you need to install the frei0r
39558 header and configure FFmpeg with "--enable-frei0r".
39559
39560 This source accepts the following parameters:
39561
39562 size
39563 The size of the video to generate. For the syntax of this option,
39564 check the "Video size" section in the ffmpeg-utils manual.
39565
39566 framerate
39567 The framerate of the generated video. It may be a string of the
39568 form num/den or a frame rate abbreviation.
39569
39570 filter_name
39571 The name to the frei0r source to load. For more information
39572 regarding frei0r and how to set the parameters, read the frei0r
39573 section in the video filters documentation.
39574
39575 filter_params
39576 A '|'-separated list of parameters to pass to the frei0r source.
39577
39578 For example, to generate a frei0r partik0l source with size 200x200 and
39579 frame rate 10 which is overlaid on the overlay filter main input:
39580
39581 frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
39582
39583 life
39584 Generate a life pattern.
39585
39586 This source is based on a generalization of John Conway's life game.
39587
39588 The sourced input represents a life grid, each pixel represents a cell
39589 which can be in one of two possible states, alive or dead. Every cell
39590 interacts with its eight neighbours, which are the cells that are
39591 horizontally, vertically, or diagonally adjacent.
39592
39593 At each interaction the grid evolves according to the adopted rule,
39594 which specifies the number of neighbor alive cells which will make a
39595 cell stay alive or born. The rule option allows one to specify the rule
39596 to adopt.
39597
39598 This source accepts the following options:
39599
39600 filename, f
39601 Set the file from which to read the initial grid state. In the
39602 file, each non-whitespace character is considered an alive cell,
39603 and newline is used to delimit the end of each row.
39604
39605 If this option is not specified, the initial grid is generated
39606 randomly.
39607
39608 rate, r
39609 Set the video rate, that is the number of frames generated per
39610 second. Default is 25.
39611
39612 random_fill_ratio, ratio
39613 Set the random fill ratio for the initial random grid. It is a
39614 floating point number value ranging from 0 to 1, defaults to 1/PHI.
39615 It is ignored when a file is specified.
39616
39617 random_seed, seed
39618 Set the seed for filling the initial random grid, must be an
39619 integer included between 0 and UINT32_MAX. If not specified, or if
39620 explicitly set to -1, the filter will try to use a good random seed
39621 on a best effort basis.
39622
39623 rule
39624 Set the life rule.
39625
39626 A rule can be specified with a code of the kind "SNS/BNB", where NS
39627 and NB are sequences of numbers in the range 0-8, NS specifies the
39628 number of alive neighbor cells which make a live cell stay alive,
39629 and NB the number of alive neighbor cells which make a dead cell to
39630 become alive (i.e. to "born"). "s" and "b" can be used in place of
39631 "S" and "B", respectively.
39632
39633 Alternatively a rule can be specified by an 18-bits integer. The 9
39634 high order bits are used to encode the next cell state if it is
39635 alive for each number of neighbor alive cells, the low order bits
39636 specify the rule for "borning" new cells. Higher order bits encode
39637 for an higher number of neighbor cells. For example the number
39638 6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
39639 rule of 9, which corresponds to "S23/B03".
39640
39641 Default value is "S23/B3", which is the original Conway's game of
39642 life rule, and will keep a cell alive if it has 2 or 3 neighbor
39643 alive cells, and will born a new cell if there are three alive
39644 cells around a dead cell.
39645
39646 size, s
39647 Set the size of the output video. For the syntax of this option,
39648 check the "Video size" section in the ffmpeg-utils manual.
39649
39650 If filename is specified, the size is set by default to the same
39651 size of the input file. If size is set, it must contain the size
39652 specified in the input file, and the initial grid defined in that
39653 file is centered in the larger resulting area.
39654
39655 If a filename is not specified, the size value defaults to
39656 "320x240" (used for a randomly generated initial grid).
39657
39658 stitch
39659 If set to 1, stitch the left and right grid edges together, and the
39660 top and bottom edges also. Defaults to 1.
39661
39662 mold
39663 Set cell mold speed. If set, a dead cell will go from death_color
39664 to mold_color with a step of mold. mold can have a value from 0 to
39665 255.
39666
39667 life_color
39668 Set the color of living (or new born) cells.
39669
39670 death_color
39671 Set the color of dead cells. If mold is set, this is the first
39672 color used to represent a dead cell.
39673
39674 mold_color
39675 Set mold color, for definitely dead and moldy cells.
39676
39677 For the syntax of these 3 color options, check the "Color" section
39678 in the ffmpeg-utils manual.
39679
39680 Examples
39681
39682 • Read a grid from pattern, and center it on a grid of size 300x300
39683 pixels:
39684
39685 life=f=pattern:s=300x300
39686
39687 • Generate a random grid of size 200x200, with a fill ratio of 2/3:
39688
39689 life=ratio=2/3:s=200x200
39690
39691 • Specify a custom rule for evolving a randomly generated grid:
39692
39693 life=rule=S14/B34
39694
39695 • Full example with slow death effect (mold) using ffplay:
39696
39697 ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
39698
39699 allrgb, allyuv, color, colorspectrum, haldclutsrc, nullsrc, pal75bars,
39700 pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2,
39701 yuvtestsrc
39702 The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
39703
39704 The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
39705
39706 The "color" source provides an uniformly colored input.
39707
39708 The "colorspectrum" source provides a color spectrum input.
39709
39710 The "haldclutsrc" source provides an identity Hald CLUT. See also
39711 haldclut filter.
39712
39713 The "nullsrc" source returns unprocessed video frames. It is mainly
39714 useful to be employed in analysis / debugging tools, or as the source
39715 for filters which ignore the input data.
39716
39717 The "pal75bars" source generates a color bars pattern, based on EBU PAL
39718 recommendations with 75% color levels.
39719
39720 The "pal100bars" source generates a color bars pattern, based on EBU
39721 PAL recommendations with 100% color levels.
39722
39723 The "rgbtestsrc" source generates an RGB test pattern useful for
39724 detecting RGB vs BGR issues. You should see a red, green and blue
39725 stripe from top to bottom.
39726
39727 The "smptebars" source generates a color bars pattern, based on the
39728 SMPTE Engineering Guideline EG 1-1990.
39729
39730 The "smptehdbars" source generates a color bars pattern, based on the
39731 SMPTE RP 219-2002.
39732
39733 The "testsrc" source generates a test video pattern, showing a color
39734 pattern, a scrolling gradient and a timestamp. This is mainly intended
39735 for testing purposes.
39736
39737 The "testsrc2" source is similar to testsrc, but supports more pixel
39738 formats instead of just "rgb24". This allows using it as an input for
39739 other tests without requiring a format conversion.
39740
39741 The "yuvtestsrc" source generates an YUV test pattern. You should see a
39742 y, cb and cr stripe from top to bottom.
39743
39744 The sources accept the following parameters:
39745
39746 level
39747 Specify the level of the Hald CLUT, only available in the
39748 "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
39749 by "N*N*N" pixels to be used as identity matrix for 3D lookup
39750 tables. Each component is coded on a "1/(N*N)" scale.
39751
39752 color, c
39753 Specify the color of the source, only available in the "color"
39754 source. For the syntax of this option, check the "Color" section in
39755 the ffmpeg-utils manual.
39756
39757 size, s
39758 Specify the size of the sourced video. For the syntax of this
39759 option, check the "Video size" section in the ffmpeg-utils manual.
39760 The default value is "320x240".
39761
39762 This option is not available with the "allrgb", "allyuv", and
39763 "haldclutsrc" filters.
39764
39765 rate, r
39766 Specify the frame rate of the sourced video, as the number of
39767 frames generated per second. It has to be a string in the format
39768 frame_rate_num/frame_rate_den, an integer number, a floating point
39769 number or a valid video frame rate abbreviation. The default value
39770 is "25".
39771
39772 duration, d
39773 Set the duration of the sourced video. See the Time duration
39774 section in the ffmpeg-utils(1) manual for the accepted syntax.
39775
39776 If not specified, or the expressed duration is negative, the video
39777 is supposed to be generated forever.
39778
39779 Since the frame rate is used as time base, all frames including the
39780 last one will have their full duration. If the specified duration
39781 is not a multiple of the frame duration, it will be rounded up.
39782
39783 sar Set the sample aspect ratio of the sourced video.
39784
39785 alpha
39786 Specify the alpha (opacity) of the background, only available in
39787 the "testsrc2" source. The value must be between 0 (fully
39788 transparent) and 255 (fully opaque, the default).
39789
39790 decimals, n
39791 Set the number of decimals to show in the timestamp, only available
39792 in the "testsrc" source.
39793
39794 The displayed timestamp value will correspond to the original
39795 timestamp value multiplied by the power of 10 of the specified
39796 value. Default value is 0.
39797
39798 type
39799 Set the type of the color spectrum, only available in the
39800 "colorspectrum" source. Can be one of the following:
39801
39802 black
39803 white
39804 all
39805
39806 Examples
39807
39808 • Generate a video with a duration of 5.3 seconds, with size 176x144
39809 and a frame rate of 10 frames per second:
39810
39811 testsrc=duration=5.3:size=qcif:rate=10
39812
39813 • The following graph description will generate a red source with an
39814 opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
39815 second:
39816
39817 color=c=red@0.2:s=qcif:r=10
39818
39819 • If the input content is to be ignored, "nullsrc" can be used. The
39820 following command generates noise in the luminance plane by
39821 employing the "geq" filter:
39822
39823 nullsrc=s=256x256, geq=random(1)*255:128:128
39824
39825 Commands
39826
39827 The "color" source supports the following commands:
39828
39829 c, color
39830 Set the color of the created image. Accepts the same syntax of the
39831 corresponding color option.
39832
39833 openclsrc
39834 Generate video using an OpenCL program.
39835
39836 source
39837 OpenCL program source file.
39838
39839 kernel
39840 Kernel name in program.
39841
39842 size, s
39843 Size of frames to generate. This must be set.
39844
39845 format
39846 Pixel format to use for the generated frames. This must be set.
39847
39848 rate, r
39849 Number of frames generated every second. Default value is '25'.
39850
39851 For details of how the program loading works, see the program_opencl
39852 filter.
39853
39854 Example programs:
39855
39856 • Generate a colour ramp by setting pixel values from the position of
39857 the pixel in the output image. (Note that this will work with all
39858 pixel formats, but the generated output will not be the same.)
39859
39860 __kernel void ramp(__write_only image2d_t dst,
39861 unsigned int index)
39862 {
39863 int2 loc = (int2)(get_global_id(0), get_global_id(1));
39864
39865 float4 val;
39866 val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
39867
39868 write_imagef(dst, loc, val);
39869 }
39870
39871 • Generate a Sierpinski carpet pattern, panning by a single pixel
39872 each frame.
39873
39874 __kernel void sierpinski_carpet(__write_only image2d_t dst,
39875 unsigned int index)
39876 {
39877 int2 loc = (int2)(get_global_id(0), get_global_id(1));
39878
39879 float4 value = 0.0f;
39880 int x = loc.x + index;
39881 int y = loc.y + index;
39882 while (x > 0 || y > 0) {
39883 if (x % 3 == 1 && y % 3 == 1) {
39884 value = 1.0f;
39885 break;
39886 }
39887 x /= 3;
39888 y /= 3;
39889 }
39890
39891 write_imagef(dst, loc, value);
39892 }
39893
39894 sierpinski
39895 Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
39896
39897 This source accepts the following options:
39898
39899 size, s
39900 Set frame size. For the syntax of this option, check the "Video
39901 size" section in the ffmpeg-utils manual. Default value is
39902 "640x480".
39903
39904 rate, r
39905 Set frame rate, expressed as number of frames per second. Default
39906 value is "25".
39907
39908 seed
39909 Set seed which is used for random panning.
39910
39911 jump
39912 Set max jump for single pan destination. Allowed range is from 1 to
39913 10000.
39914
39915 type
39916 Set fractal type, can be default "carpet" or "triangle".
39917
39919 Below is a description of the currently available video sinks.
39920
39921 buffersink
39922 Buffer video frames, and make them available to the end of the filter
39923 graph.
39924
39925 This sink is mainly intended for programmatic use, in particular
39926 through the interface defined in libavfilter/buffersink.h or the
39927 options system.
39928
39929 It accepts a pointer to an AVBufferSinkContext structure, which defines
39930 the incoming buffers' formats, to be passed as the opaque parameter to
39931 "avfilter_init_filter" for initialization.
39932
39933 nullsink
39934 Null video sink: do absolutely nothing with the input video. It is
39935 mainly useful as a template and for use in analysis / debugging tools.
39936
39938 Below is a description of the currently available multimedia filters.
39939
39940 abitscope
39941 Convert input audio to a video output, displaying the audio bit scope.
39942
39943 The filter accepts the following options:
39944
39945 rate, r
39946 Set frame rate, expressed as number of frames per second. Default
39947 value is "25".
39948
39949 size, s
39950 Specify the video size for the output. For the syntax of this
39951 option, check the "Video size" section in the ffmpeg-utils manual.
39952 Default value is "1024x256".
39953
39954 colors
39955 Specify list of colors separated by space or by '|' which will be
39956 used to draw channels. Unrecognized or missing colors will be
39957 replaced by white color.
39958
39959 adrawgraph
39960 Draw a graph using input audio metadata.
39961
39962 See drawgraph
39963
39964 agraphmonitor
39965 See graphmonitor.
39966
39967 ahistogram
39968 Convert input audio to a video output, displaying the volume histogram.
39969
39970 The filter accepts the following options:
39971
39972 dmode
39973 Specify how histogram is calculated.
39974
39975 It accepts the following values:
39976
39977 single
39978 Use single histogram for all channels.
39979
39980 separate
39981 Use separate histogram for each channel.
39982
39983 Default is "single".
39984
39985 rate, r
39986 Set frame rate, expressed as number of frames per second. Default
39987 value is "25".
39988
39989 size, s
39990 Specify the video size for the output. For the syntax of this
39991 option, check the "Video size" section in the ffmpeg-utils manual.
39992 Default value is "hd720".
39993
39994 scale
39995 Set display scale.
39996
39997 It accepts the following values:
39998
39999 log logarithmic
40000
40001 sqrt
40002 square root
40003
40004 cbrt
40005 cubic root
40006
40007 lin linear
40008
40009 rlog
40010 reverse logarithmic
40011
40012 Default is "log".
40013
40014 ascale
40015 Set amplitude scale.
40016
40017 It accepts the following values:
40018
40019 log logarithmic
40020
40021 lin linear
40022
40023 Default is "log".
40024
40025 acount
40026 Set how much frames to accumulate in histogram. Default is 1.
40027 Setting this to -1 accumulates all frames.
40028
40029 rheight
40030 Set histogram ratio of window height.
40031
40032 slide
40033 Set sonogram sliding.
40034
40035 It accepts the following values:
40036
40037 replace
40038 replace old rows with new ones.
40039
40040 scroll
40041 scroll from top to bottom.
40042
40043 Default is "replace".
40044
40045 aphasemeter
40046 Measures phase of input audio, which is exported as metadata
40047 "lavfi.aphasemeter.phase", representing mean phase of current audio
40048 frame. A video output can also be produced and is enabled by default.
40049 The audio is passed through as first output.
40050
40051 Audio will be rematrixed to stereo if it has a different channel
40052 layout. Phase value is in range "[-1, 1]" where "-1" means left and
40053 right channels are completely out of phase and 1 means channels are in
40054 phase.
40055
40056 The filter accepts the following options, all related to its video
40057 output:
40058
40059 rate, r
40060 Set the output frame rate. Default value is 25.
40061
40062 size, s
40063 Set the video size for the output. For the syntax of this option,
40064 check the "Video size" section in the ffmpeg-utils manual. Default
40065 value is "800x400".
40066
40067 rc
40068 gc
40069 bc Specify the red, green, blue contrast. Default values are 2, 7 and
40070 1. Allowed range is "[0, 255]".
40071
40072 mpc Set color which will be used for drawing median phase. If color is
40073 "none" which is default, no median phase value will be drawn.
40074
40075 video
40076 Enable video output. Default is enabled.
40077
40078 phasing detection
40079
40080 The filter also detects out of phase and mono sequences in stereo
40081 streams. It logs the sequence start, end and duration when it lasts
40082 longer or as long as the minimum set.
40083
40084 The filter accepts the following options for this detection:
40085
40086 phasing
40087 Enable mono and out of phase detection. Default is disabled.
40088
40089 tolerance, t
40090 Set phase tolerance for mono detection, in amplitude ratio. Default
40091 is 0. Allowed range is "[0, 1]".
40092
40093 angle, a
40094 Set angle threshold for out of phase detection, in degree. Default
40095 is 170. Allowed range is "[90, 180]".
40096
40097 duration, d
40098 Set mono or out of phase duration until notification, expressed in
40099 seconds. Default is 2.
40100
40101 Examples
40102
40103 • Complete example with ffmpeg to detect 1 second of mono with 0.001
40104 phase tolerance:
40105
40106 ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
40107
40108 avectorscope
40109 Convert input audio to a video output, representing the audio vector
40110 scope.
40111
40112 The filter is used to measure the difference between channels of stereo
40113 audio stream. A monaural signal, consisting of identical left and right
40114 signal, results in straight vertical line. Any stereo separation is
40115 visible as a deviation from this line, creating a Lissajous figure. If
40116 the straight (or deviation from it) but horizontal line appears this
40117 indicates that the left and right channels are out of phase.
40118
40119 The filter accepts the following options:
40120
40121 mode, m
40122 Set the vectorscope mode.
40123
40124 Available values are:
40125
40126 lissajous
40127 Lissajous rotated by 45 degrees.
40128
40129 lissajous_xy
40130 Same as above but not rotated.
40131
40132 polar
40133 Shape resembling half of circle.
40134
40135 Default value is lissajous.
40136
40137 size, s
40138 Set the video size for the output. For the syntax of this option,
40139 check the "Video size" section in the ffmpeg-utils manual. Default
40140 value is "400x400".
40141
40142 rate, r
40143 Set the output frame rate. Default value is 25.
40144
40145 rc
40146 gc
40147 bc
40148 ac Specify the red, green, blue and alpha contrast. Default values are
40149 40, 160, 80 and 255. Allowed range is "[0, 255]".
40150
40151 rf
40152 gf
40153 bf
40154 af Specify the red, green, blue and alpha fade. Default values are 15,
40155 10, 5 and 5. Allowed range is "[0, 255]".
40156
40157 zoom
40158 Set the zoom factor. Default value is 1. Allowed range is "[0,
40159 10]". Values lower than 1 will auto adjust zoom factor to maximal
40160 possible value.
40161
40162 draw
40163 Set the vectorscope drawing mode.
40164
40165 Available values are:
40166
40167 dot Draw dot for each sample.
40168
40169 line
40170 Draw line between previous and current sample.
40171
40172 Default value is dot.
40173
40174 scale
40175 Specify amplitude scale of audio samples.
40176
40177 Available values are:
40178
40179 lin Linear.
40180
40181 sqrt
40182 Square root.
40183
40184 cbrt
40185 Cubic root.
40186
40187 log Logarithmic.
40188
40189 swap
40190 Swap left channel axis with right channel axis.
40191
40192 mirror
40193 Mirror axis.
40194
40195 none
40196 No mirror.
40197
40198 x Mirror only x axis.
40199
40200 y Mirror only y axis.
40201
40202 xy Mirror both axis.
40203
40204 Examples
40205
40206 • Complete example using ffplay:
40207
40208 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
40209 [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
40210
40211 Commands
40212
40213 This filter supports the all above options as commands except options
40214 "size" and "rate".
40215
40216 bench, abench
40217 Benchmark part of a filtergraph.
40218
40219 The filter accepts the following options:
40220
40221 action
40222 Start or stop a timer.
40223
40224 Available values are:
40225
40226 start
40227 Get the current time, set it as frame metadata (using the key
40228 "lavfi.bench.start_time"), and forward the frame to the next
40229 filter.
40230
40231 stop
40232 Get the current time and fetch the "lavfi.bench.start_time"
40233 metadata from the input frame metadata to get the time
40234 difference. Time difference, average, maximum and minimum time
40235 (respectively "t", "avg", "max" and "min") are then printed.
40236 The timestamps are expressed in seconds.
40237
40238 Examples
40239
40240 • Benchmark selectivecolor filter:
40241
40242 bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
40243
40244 concat
40245 Concatenate audio and video streams, joining them together one after
40246 the other.
40247
40248 The filter works on segments of synchronized video and audio streams.
40249 All segments must have the same number of streams of each type, and
40250 that will also be the number of streams at output.
40251
40252 The filter accepts the following options:
40253
40254 n Set the number of segments. Default is 2.
40255
40256 v Set the number of output video streams, that is also the number of
40257 video streams in each segment. Default is 1.
40258
40259 a Set the number of output audio streams, that is also the number of
40260 audio streams in each segment. Default is 0.
40261
40262 unsafe
40263 Activate unsafe mode: do not fail if segments have a different
40264 format.
40265
40266 The filter has v+a outputs: first v video outputs, then a audio
40267 outputs.
40268
40269 There are nx(v+a) inputs: first the inputs for the first segment, in
40270 the same order as the outputs, then the inputs for the second segment,
40271 etc.
40272
40273 Related streams do not always have exactly the same duration, for
40274 various reasons including codec frame size or sloppy authoring. For
40275 that reason, related synchronized streams (e.g. a video and its audio
40276 track) should be concatenated at once. The concat filter will use the
40277 duration of the longest stream in each segment (except the last one),
40278 and if necessary pad shorter audio streams with silence.
40279
40280 For this filter to work correctly, all segments must start at timestamp
40281 0.
40282
40283 All corresponding streams must have the same parameters in all
40284 segments; the filtering system will automatically select a common pixel
40285 format for video streams, and a common sample format, sample rate and
40286 channel layout for audio streams, but other settings, such as
40287 resolution, must be converted explicitly by the user.
40288
40289 Different frame rates are acceptable but will result in variable frame
40290 rate at output; be sure to configure the output file to handle it.
40291
40292 Examples
40293
40294 • Concatenate an opening, an episode and an ending, all in bilingual
40295 version (video in stream 0, audio in streams 1 and 2):
40296
40297 ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
40298 '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
40299 concat=n=3:v=1:a=2 [v] [a1] [a2]' \
40300 -map '[v]' -map '[a1]' -map '[a2]' output.mkv
40301
40302 • Concatenate two parts, handling audio and video separately, using
40303 the (a)movie sources, and adjusting the resolution:
40304
40305 movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
40306 movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
40307 [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
40308
40309 Note that a desync will happen at the stitch if the audio and video
40310 streams do not have exactly the same duration in the first file.
40311
40312 Commands
40313
40314 This filter supports the following commands:
40315
40316 next
40317 Close the current segment and step to the next one
40318
40319 ebur128
40320 EBU R128 scanner filter. This filter takes an audio stream and analyzes
40321 its loudness level. By default, it logs a message at a frequency of
40322 10Hz with the Momentary loudness (identified by "M"), Short-term
40323 loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
40324
40325 The filter can only analyze streams which have sample format is double-
40326 precision floating point. The input stream will be converted to this
40327 specification, if needed. Users may need to insert aformat and/or
40328 aresample filters after this filter to obtain the original parameters.
40329
40330 The filter also has a video output (see the video option) with a real
40331 time graph to observe the loudness evolution. The graphic contains the
40332 logged message mentioned above, so it is not printed anymore when this
40333 option is set, unless the verbose logging is set. The main graphing
40334 area contains the short-term loudness (3 seconds of analysis), and the
40335 gauge on the right is for the momentary loudness (400 milliseconds),
40336 but can optionally be configured to instead display short-term loudness
40337 (see gauge).
40338
40339 The green area marks a +/- 1LU target range around the target loudness
40340 (-23LUFS by default, unless modified through target).
40341
40342 More information about the Loudness Recommendation EBU R128 on
40343 <http://tech.ebu.ch/loudness>.
40344
40345 The filter accepts the following options:
40346
40347 video
40348 Activate the video output. The audio stream is passed unchanged
40349 whether this option is set or no. The video stream will be the
40350 first output stream if activated. Default is 0.
40351
40352 size
40353 Set the video size. This option is for video only. For the syntax
40354 of this option, check the "Video size" section in the ffmpeg-utils
40355 manual. Default and minimum resolution is "640x480".
40356
40357 meter
40358 Set the EBU scale meter. Default is 9. Common values are 9 and 18,
40359 respectively for EBU scale meter +9 and EBU scale meter +18. Any
40360 other integer value between this range is allowed.
40361
40362 metadata
40363 Set metadata injection. If set to 1, the audio input will be
40364 segmented into 100ms output frames, each of them containing various
40365 loudness information in metadata. All the metadata keys are
40366 prefixed with "lavfi.r128.".
40367
40368 Default is 0.
40369
40370 framelog
40371 Force the frame logging level.
40372
40373 Available values are:
40374
40375 info
40376 information logging level
40377
40378 verbose
40379 verbose logging level
40380
40381 By default, the logging level is set to info. If the video or the
40382 metadata options are set, it switches to verbose.
40383
40384 peak
40385 Set peak mode(s).
40386
40387 Available modes can be cumulated (the option is a "flag" type).
40388 Possible values are:
40389
40390 none
40391 Disable any peak mode (default).
40392
40393 sample
40394 Enable sample-peak mode.
40395
40396 Simple peak mode looking for the higher sample value. It logs a
40397 message for sample-peak (identified by "SPK").
40398
40399 true
40400 Enable true-peak mode.
40401
40402 If enabled, the peak lookup is done on an over-sampled version
40403 of the input stream for better peak accuracy. It logs a message
40404 for true-peak. (identified by "TPK") and true-peak per frame
40405 (identified by "FTPK"). This mode requires a build with
40406 "libswresample".
40407
40408 dualmono
40409 Treat mono input files as "dual mono". If a mono file is intended
40410 for playback on a stereo system, its EBU R128 measurement will be
40411 perceptually incorrect. If set to "true", this option will
40412 compensate for this effect. Multi-channel input files are not
40413 affected by this option.
40414
40415 panlaw
40416 Set a specific pan law to be used for the measurement of dual mono
40417 files. This parameter is optional, and has a default value of
40418 -3.01dB.
40419
40420 target
40421 Set a specific target level (in LUFS) used as relative zero in the
40422 visualization. This parameter is optional and has a default value
40423 of -23LUFS as specified by EBU R128. However, material published
40424 online may prefer a level of -16LUFS (e.g. for use with podcasts or
40425 video platforms).
40426
40427 gauge
40428 Set the value displayed by the gauge. Valid values are "momentary"
40429 and s "shortterm". By default the momentary value will be used, but
40430 in certain scenarios it may be more useful to observe the short
40431 term value instead (e.g. live mixing).
40432
40433 scale
40434 Sets the display scale for the loudness. Valid parameters are
40435 "absolute" (in LUFS) or "relative" (LU) relative to the target.
40436 This only affects the video output, not the summary or continuous
40437 log output.
40438
40439 Examples
40440
40441 • Real-time graph using ffplay, with a EBU scale meter +18:
40442
40443 ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
40444
40445 • Run an analysis with ffmpeg:
40446
40447 ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
40448
40449 interleave, ainterleave
40450 Temporally interleave frames from several inputs.
40451
40452 "interleave" works with video inputs, "ainterleave" with audio.
40453
40454 These filters read frames from several inputs and send the oldest
40455 queued frame to the output.
40456
40457 Input streams must have well defined, monotonically increasing frame
40458 timestamp values.
40459
40460 In order to submit one frame to output, these filters need to enqueue
40461 at least one frame for each input, so they cannot work in case one
40462 input is not yet terminated and will not receive incoming frames.
40463
40464 For example consider the case when one input is a "select" filter which
40465 always drops input frames. The "interleave" filter will keep reading
40466 from that input, but it will never be able to send new frames to output
40467 until the input sends an end-of-stream signal.
40468
40469 Also, depending on inputs synchronization, the filters will drop frames
40470 in case one input receives more frames than the other ones, and the
40471 queue is already filled.
40472
40473 These filters accept the following options:
40474
40475 nb_inputs, n
40476 Set the number of different inputs, it is 2 by default.
40477
40478 duration
40479 How to determine the end-of-stream.
40480
40481 longest
40482 The duration of the longest input. (default)
40483
40484 shortest
40485 The duration of the shortest input.
40486
40487 first
40488 The duration of the first input.
40489
40490 Examples
40491
40492 • Interleave frames belonging to different streams using ffmpeg:
40493
40494 ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
40495
40496 • Add flickering blur effect:
40497
40498 select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
40499
40500 latency, alatency
40501 Measure filtering latency.
40502
40503 Report previous filter filtering latency, delay in number of audio
40504 samples for audio filters or number of video frames for video filters.
40505
40506 On end of input stream, filter will report min and max measured latency
40507 for previous running filter in filtergraph.
40508
40509 metadata, ametadata
40510 Manipulate frame metadata.
40511
40512 This filter accepts the following options:
40513
40514 mode
40515 Set mode of operation of the filter.
40516
40517 Can be one of the following:
40518
40519 select
40520 If both "value" and "key" is set, select frames which have such
40521 metadata. If only "key" is set, select every frame that has
40522 such key in metadata.
40523
40524 add Add new metadata "key" and "value". If key is already available
40525 do nothing.
40526
40527 modify
40528 Modify value of already present key.
40529
40530 delete
40531 If "value" is set, delete only keys that have such value.
40532 Otherwise, delete key. If "key" is not set, delete all metadata
40533 values in the frame.
40534
40535 print
40536 Print key and its value if metadata was found. If "key" is not
40537 set print all metadata values available in frame.
40538
40539 key Set key used with all modes. Must be set for all modes except
40540 "print" and "delete".
40541
40542 value
40543 Set metadata value which will be used. This option is mandatory for
40544 "modify" and "add" mode.
40545
40546 function
40547 Which function to use when comparing metadata value and "value".
40548
40549 Can be one of following:
40550
40551 same_str
40552 Values are interpreted as strings, returns true if metadata
40553 value is same as "value".
40554
40555 starts_with
40556 Values are interpreted as strings, returns true if metadata
40557 value starts with the "value" option string.
40558
40559 less
40560 Values are interpreted as floats, returns true if metadata
40561 value is less than "value".
40562
40563 equal
40564 Values are interpreted as floats, returns true if "value" is
40565 equal with metadata value.
40566
40567 greater
40568 Values are interpreted as floats, returns true if metadata
40569 value is greater than "value".
40570
40571 expr
40572 Values are interpreted as floats, returns true if expression
40573 from option "expr" evaluates to true.
40574
40575 ends_with
40576 Values are interpreted as strings, returns true if metadata
40577 value ends with the "value" option string.
40578
40579 expr
40580 Set expression which is used when "function" is set to "expr". The
40581 expression is evaluated through the eval API and can contain the
40582 following constants:
40583
40584 VALUE1, FRAMEVAL
40585 Float representation of "value" from metadata key.
40586
40587 VALUE2, USERVAL
40588 Float representation of "value" as supplied by user in "value"
40589 option.
40590
40591 file
40592 If specified in "print" mode, output is written to the named file.
40593 Instead of plain filename any writable url can be specified.
40594 Filename ``-'' is a shorthand for standard output. If "file" option
40595 is not set, output is written to the log with AV_LOG_INFO loglevel.
40596
40597 direct
40598 Reduces buffering in print mode when output is written to a URL set
40599 using file.
40600
40601 Examples
40602
40603 • Print all metadata values for frames with key
40604 "lavfi.signalstats.YDIF" with values between 0 and 1.
40605
40606 signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
40607
40608 • Print silencedetect output to file metadata.txt.
40609
40610 silencedetect,ametadata=mode=print:file=metadata.txt
40611
40612 • Direct all metadata to a pipe with file descriptor 4.
40613
40614 metadata=mode=print:file='pipe\:4'
40615
40616 perms, aperms
40617 Set read/write permissions for the output frames.
40618
40619 These filters are mainly aimed at developers to test direct path in the
40620 following filter in the filtergraph.
40621
40622 The filters accept the following options:
40623
40624 mode
40625 Select the permissions mode.
40626
40627 It accepts the following values:
40628
40629 none
40630 Do nothing. This is the default.
40631
40632 ro Set all the output frames read-only.
40633
40634 rw Set all the output frames directly writable.
40635
40636 toggle
40637 Make the frame read-only if writable, and writable if read-
40638 only.
40639
40640 random
40641 Set each output frame read-only or writable randomly.
40642
40643 seed
40644 Set the seed for the random mode, must be an integer included
40645 between 0 and "UINT32_MAX". If not specified, or if explicitly set
40646 to "-1", the filter will try to use a good random seed on a best
40647 effort basis.
40648
40649 Note: in case of auto-inserted filter between the permission filter and
40650 the following one, the permission might not be received as expected in
40651 that following filter. Inserting a format or aformat filter before the
40652 perms/aperms filter can avoid this problem.
40653
40654 realtime, arealtime
40655 Slow down filtering to match real time approximately.
40656
40657 These filters will pause the filtering for a variable amount of time to
40658 match the output rate with the input timestamps. They are similar to
40659 the re option to "ffmpeg".
40660
40661 They accept the following options:
40662
40663 limit
40664 Time limit for the pauses. Any pause longer than that will be
40665 considered a timestamp discontinuity and reset the timer. Default
40666 is 2 seconds.
40667
40668 speed
40669 Speed factor for processing. The value must be a float larger than
40670 zero. Values larger than 1.0 will result in faster than realtime
40671 processing, smaller will slow processing down. The limit is
40672 automatically adapted accordingly. Default is 1.0.
40673
40674 A processing speed faster than what is possible without these
40675 filters cannot be achieved.
40676
40677 segment, asegment
40678 Split single input stream into multiple streams.
40679
40680 This filter does opposite of concat filters.
40681
40682 "segment" works on video frames, "asegment" on audio samples.
40683
40684 This filter accepts the following options:
40685
40686 timestamps
40687 Timestamps of output segments separated by '|'. The first segment
40688 will run from the beginning of the input stream. The last segment
40689 will run until the end of the input stream
40690
40691 frames, samples
40692 Exact frame/sample count to split the segments.
40693
40694 In all cases, prefixing an each segment with '+' will make it relative
40695 to the previous segment.
40696
40697 Examples
40698
40699 • Split input audio stream into three output audio streams, starting
40700 at start of input audio stream and storing that in 1st output audio
40701 stream, then following at 60th second and storing than in 2nd
40702 output audio stream, and last after 150th second of input audio
40703 stream store in 3rd output audio stream:
40704
40705 asegment=timestamps="60|150"
40706
40707 select, aselect
40708 Select frames to pass in output.
40709
40710 This filter accepts the following options:
40711
40712 expr, e
40713 Set expression, which is evaluated for each input frame.
40714
40715 If the expression is evaluated to zero, the frame is discarded.
40716
40717 If the evaluation result is negative or NaN, the frame is sent to
40718 the first output; otherwise it is sent to the output with index
40719 "ceil(val)-1", assuming that the input index starts from 0.
40720
40721 For example a value of 1.2 corresponds to the output with index
40722 "ceil(1.2)-1 = 2-1 = 1", that is the second output.
40723
40724 outputs, n
40725 Set the number of outputs. The output to which to send the selected
40726 frame is based on the result of the evaluation. Default value is 1.
40727
40728 The expression can contain the following constants:
40729
40730 n The (sequential) number of the filtered frame, starting from 0.
40731
40732 selected_n
40733 The (sequential) number of the selected frame, starting from 0.
40734
40735 prev_selected_n
40736 The sequential number of the last selected frame. It's NAN if
40737 undefined.
40738
40739 TB The timebase of the input timestamps.
40740
40741 pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
40742 in TB units. It's NAN if undefined.
40743
40744 t The PTS of the filtered frame, expressed in seconds. It's NAN if
40745 undefined.
40746
40747 prev_pts
40748 The PTS of the previously filtered frame. It's NAN if undefined.
40749
40750 prev_selected_pts
40751 The PTS of the last previously filtered frame. It's NAN if
40752 undefined.
40753
40754 prev_selected_t
40755 The PTS of the last previously selected frame, expressed in
40756 seconds. It's NAN if undefined.
40757
40758 start_pts
40759 The first PTS in the stream which is not NAN. It remains NAN if not
40760 found.
40761
40762 start_t
40763 The first PTS, in seconds, in the stream which is not NAN. It
40764 remains NAN if not found.
40765
40766 pict_type (video only)
40767 The type of the filtered frame. It can assume one of the following
40768 values:
40769
40770 I
40771 P
40772 B
40773 S
40774 SI
40775 SP
40776 BI
40777 interlace_type (video only)
40778 The frame interlace type. It can assume one of the following
40779 values:
40780
40781 PROGRESSIVE
40782 The frame is progressive (not interlaced).
40783
40784 TOPFIRST
40785 The frame is top-field-first.
40786
40787 BOTTOMFIRST
40788 The frame is bottom-field-first.
40789
40790 consumed_sample_n (audio only)
40791 the number of selected samples before the current frame
40792
40793 samples_n (audio only)
40794 the number of samples in the current frame
40795
40796 sample_rate (audio only)
40797 the input sample rate
40798
40799 key This is 1 if the filtered frame is a key-frame, 0 otherwise.
40800
40801 pos the position in the file of the filtered frame, -1 if the
40802 information is not available (e.g. for synthetic video)
40803
40804 scene (video only)
40805 value between 0 and 1 to indicate a new scene; a low value reflects
40806 a low probability for the current frame to introduce a new scene,
40807 while a higher value means the current frame is more likely to be
40808 one (see the example below)
40809
40810 concatdec_select
40811 The concat demuxer can select only part of a concat input file by
40812 setting an inpoint and an outpoint, but the output packets may not
40813 be entirely contained in the selected interval. By using this
40814 variable, it is possible to skip frames generated by the concat
40815 demuxer which are not exactly contained in the selected interval.
40816
40817 This works by comparing the frame pts against the
40818 lavf.concat.start_time and the lavf.concat.duration packet metadata
40819 values which are also present in the decoded frames.
40820
40821 The concatdec_select variable is -1 if the frame pts is at least
40822 start_time and either the duration metadata is missing or the frame
40823 pts is less than start_time + duration, 0 otherwise, and NaN if the
40824 start_time metadata is missing.
40825
40826 That basically means that an input frame is selected if its pts is
40827 within the interval set by the concat demuxer.
40828
40829 The default value of the select expression is "1".
40830
40831 Examples
40832
40833 • Select all frames in input:
40834
40835 select
40836
40837 The example above is the same as:
40838
40839 select=1
40840
40841 • Skip all frames:
40842
40843 select=0
40844
40845 • Select only I-frames:
40846
40847 select='eq(pict_type\,I)'
40848
40849 • Select one frame every 100:
40850
40851 select='not(mod(n\,100))'
40852
40853 • Select only frames contained in the 10-20 time interval:
40854
40855 select=between(t\,10\,20)
40856
40857 • Select only I-frames contained in the 10-20 time interval:
40858
40859 select=between(t\,10\,20)*eq(pict_type\,I)
40860
40861 • Select frames with a minimum distance of 10 seconds:
40862
40863 select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
40864
40865 • Use aselect to select only audio frames with samples number > 100:
40866
40867 aselect='gt(samples_n\,100)'
40868
40869 • Create a mosaic of the first scenes:
40870
40871 ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
40872
40873 Comparing scene against a value between 0.3 and 0.5 is generally a
40874 sane choice.
40875
40876 • Send even and odd frames to separate outputs, and compose them:
40877
40878 select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
40879
40880 • Select useful frames from an ffconcat file which is using inpoints
40881 and outpoints but where the source files are not intra frame only.
40882
40883 ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
40884
40885 sendcmd, asendcmd
40886 Send commands to filters in the filtergraph.
40887
40888 These filters read commands to be sent to other filters in the
40889 filtergraph.
40890
40891 "sendcmd" must be inserted between two video filters, "asendcmd" must
40892 be inserted between two audio filters, but apart from that they act the
40893 same way.
40894
40895 The specification of commands can be provided in the filter arguments
40896 with the commands option, or in a file specified by the filename
40897 option.
40898
40899 These filters accept the following options:
40900
40901 commands, c
40902 Set the commands to be read and sent to the other filters.
40903
40904 filename, f
40905 Set the filename of the commands to be read and sent to the other
40906 filters.
40907
40908 Commands syntax
40909
40910 A commands description consists of a sequence of interval
40911 specifications, comprising a list of commands to be executed when a
40912 particular event related to that interval occurs. The occurring event
40913 is typically the current frame time entering or leaving a given time
40914 interval.
40915
40916 An interval is specified by the following syntax:
40917
40918 <START>[-<END>] <COMMANDS>;
40919
40920 The time interval is specified by the START and END times. END is
40921 optional and defaults to the maximum time.
40922
40923 The current frame time is considered within the specified interval if
40924 it is included in the interval [START, END), that is when the time is
40925 greater or equal to START and is lesser than END.
40926
40927 COMMANDS consists of a sequence of one or more command specifications,
40928 separated by ",", relating to that interval. The syntax of a command
40929 specification is given by:
40930
40931 [<FLAGS>] <TARGET> <COMMAND> <ARG>
40932
40933 FLAGS is optional and specifies the type of events relating to the time
40934 interval which enable sending the specified command, and must be a non-
40935 null sequence of identifier flags separated by "+" or "|" and enclosed
40936 between "[" and "]".
40937
40938 The following flags are recognized:
40939
40940 enter
40941 The command is sent when the current frame timestamp enters the
40942 specified interval. In other words, the command is sent when the
40943 previous frame timestamp was not in the given interval, and the
40944 current is.
40945
40946 leave
40947 The command is sent when the current frame timestamp leaves the
40948 specified interval. In other words, the command is sent when the
40949 previous frame timestamp was in the given interval, and the current
40950 is not.
40951
40952 expr
40953 The command ARG is interpreted as expression and result of
40954 expression is passed as ARG.
40955
40956 The expression is evaluated through the eval API and can contain
40957 the following constants:
40958
40959 POS Original position in the file of the frame, or undefined if
40960 undefined for the current frame.
40961
40962 PTS The presentation timestamp in input.
40963
40964 N The count of the input frame for video or audio, starting from
40965 0.
40966
40967 T The time in seconds of the current frame.
40968
40969 TS The start time in seconds of the current command interval.
40970
40971 TE The end time in seconds of the current command interval.
40972
40973 TI The interpolated time of the current command interval, TI = (T
40974 - TS) / (TE - TS).
40975
40976 If FLAGS is not specified, a default value of "[enter]" is assumed.
40977
40978 TARGET specifies the target of the command, usually the name of the
40979 filter class or a specific filter instance name.
40980
40981 COMMAND specifies the name of the command for the target filter.
40982
40983 ARG is optional and specifies the optional list of argument for the
40984 given COMMAND.
40985
40986 Between one interval specification and another, whitespaces, or
40987 sequences of characters starting with "#" until the end of line, are
40988 ignored and can be used to annotate comments.
40989
40990 A simplified BNF description of the commands specification syntax
40991 follows:
40992
40993 <COMMAND_FLAG> ::= "enter" | "leave"
40994 <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
40995 <COMMAND> ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
40996 <COMMANDS> ::= <COMMAND> [,<COMMANDS>]
40997 <INTERVAL> ::= <START>[-<END>] <COMMANDS>
40998 <INTERVALS> ::= <INTERVAL>[;<INTERVALS>]
40999
41000 Examples
41001
41002 • Specify audio tempo change at second 4:
41003
41004 asendcmd=c='4.0 atempo tempo 1.5',atempo
41005
41006 • Target a specific filter instance:
41007
41008 asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
41009
41010 • Specify a list of drawtext and hue commands in a file.
41011
41012 # show text in the interval 5-10
41013 5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
41014 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
41015
41016 # desaturate the image in the interval 15-20
41017 15.0-20.0 [enter] hue s 0,
41018 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
41019 [leave] hue s 1,
41020 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
41021
41022 # apply an exponential saturation fade-out effect, starting from time 25
41023 25 [enter] hue s exp(25-t)
41024
41025 A filtergraph allowing to read and process the above command list
41026 stored in a file test.cmd, can be specified with:
41027
41028 sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
41029
41030 setpts, asetpts
41031 Change the PTS (presentation timestamp) of the input frames.
41032
41033 "setpts" works on video frames, "asetpts" on audio frames.
41034
41035 This filter accepts the following options:
41036
41037 expr
41038 The expression which is evaluated for each frame to construct its
41039 timestamp.
41040
41041 The expression is evaluated through the eval API and can contain the
41042 following constants:
41043
41044 FRAME_RATE, FR
41045 frame rate, only defined for constant frame-rate video
41046
41047 PTS The presentation timestamp in input
41048
41049 N The count of the input frame for video or the number of consumed
41050 samples, not including the current frame for audio, starting from
41051 0.
41052
41053 NB_CONSUMED_SAMPLES
41054 The number of consumed samples, not including the current frame
41055 (only audio)
41056
41057 NB_SAMPLES, S
41058 The number of samples in the current frame (only audio)
41059
41060 SAMPLE_RATE, SR
41061 The audio sample rate.
41062
41063 STARTPTS
41064 The PTS of the first frame.
41065
41066 STARTT
41067 the time in seconds of the first frame
41068
41069 INTERLACED
41070 State whether the current frame is interlaced.
41071
41072 T the time in seconds of the current frame
41073
41074 POS original position in the file of the frame, or undefined if
41075 undefined for the current frame
41076
41077 PREV_INPTS
41078 The previous input PTS.
41079
41080 PREV_INT
41081 previous input time in seconds
41082
41083 PREV_OUTPTS
41084 The previous output PTS.
41085
41086 PREV_OUTT
41087 previous output time in seconds
41088
41089 RTCTIME
41090 The wallclock (RTC) time in microseconds. This is deprecated, use
41091 time(0) instead.
41092
41093 RTCSTART
41094 The wallclock (RTC) time at the start of the movie in microseconds.
41095
41096 TB The timebase of the input timestamps.
41097
41098 Examples
41099
41100 • Start counting PTS from zero
41101
41102 setpts=PTS-STARTPTS
41103
41104 • Apply fast motion effect:
41105
41106 setpts=0.5*PTS
41107
41108 • Apply slow motion effect:
41109
41110 setpts=2.0*PTS
41111
41112 • Set fixed rate of 25 frames per second:
41113
41114 setpts=N/(25*TB)
41115
41116 • Set fixed rate 25 fps with some jitter:
41117
41118 setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
41119
41120 • Apply an offset of 10 seconds to the input PTS:
41121
41122 setpts=PTS+10/TB
41123
41124 • Generate timestamps from a "live source" and rebase onto the
41125 current timebase:
41126
41127 setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
41128
41129 • Generate timestamps by counting samples:
41130
41131 asetpts=N/SR/TB
41132
41133 setrange
41134 Force color range for the output video frame.
41135
41136 The "setrange" filter marks the color range property for the output
41137 frames. It does not change the input frame, but only sets the
41138 corresponding property, which affects how the frame is treated by
41139 following filters.
41140
41141 The filter accepts the following options:
41142
41143 range
41144 Available values are:
41145
41146 auto
41147 Keep the same color range property.
41148
41149 unspecified, unknown
41150 Set the color range as unspecified.
41151
41152 limited, tv, mpeg
41153 Set the color range as limited.
41154
41155 full, pc, jpeg
41156 Set the color range as full.
41157
41158 settb, asettb
41159 Set the timebase to use for the output frames timestamps. It is mainly
41160 useful for testing timebase configuration.
41161
41162 It accepts the following parameters:
41163
41164 expr, tb
41165 The expression which is evaluated into the output timebase.
41166
41167 The value for tb is an arithmetic expression representing a rational.
41168 The expression can contain the constants "AVTB" (the default timebase),
41169 "intb" (the input timebase) and "sr" (the sample rate, audio only).
41170 Default value is "intb".
41171
41172 Examples
41173
41174 • Set the timebase to 1/25:
41175
41176 settb=expr=1/25
41177
41178 • Set the timebase to 1/10:
41179
41180 settb=expr=0.1
41181
41182 • Set the timebase to 1001/1000:
41183
41184 settb=1+0.001
41185
41186 • Set the timebase to 2*intb:
41187
41188 settb=2*intb
41189
41190 • Set the default timebase value:
41191
41192 settb=AVTB
41193
41194 showcqt
41195 Convert input audio to a video output representing frequency spectrum
41196 logarithmically using Brown-Puckette constant Q transform algorithm
41197 with direct frequency domain coefficient calculation (but the transform
41198 itself is not really constant Q, instead the Q factor is actually
41199 variable/clamped), with musical tone scale, from E0 to D#10.
41200
41201 The filter accepts the following options:
41202
41203 size, s
41204 Specify the video size for the output. It must be even. For the
41205 syntax of this option, check the "Video size" section in the
41206 ffmpeg-utils manual. Default value is "1920x1080".
41207
41208 fps, rate, r
41209 Set the output frame rate. Default value is 25.
41210
41211 bar_h
41212 Set the bargraph height. It must be even. Default value is "-1"
41213 which computes the bargraph height automatically.
41214
41215 axis_h
41216 Set the axis height. It must be even. Default value is "-1" which
41217 computes the axis height automatically.
41218
41219 sono_h
41220 Set the sonogram height. It must be even. Default value is "-1"
41221 which computes the sonogram height automatically.
41222
41223 fullhd
41224 Set the fullhd resolution. This option is deprecated, use size, s
41225 instead. Default value is 1.
41226
41227 sono_v, volume
41228 Specify the sonogram volume expression. It can contain variables:
41229
41230 bar_v
41231 the bar_v evaluated expression
41232
41233 frequency, freq, f
41234 the frequency where it is evaluated
41235
41236 timeclamp, tc
41237 the value of timeclamp option
41238
41239 and functions:
41240
41241 a_weighting(f)
41242 A-weighting of equal loudness
41243
41244 b_weighting(f)
41245 B-weighting of equal loudness
41246
41247 c_weighting(f)
41248 C-weighting of equal loudness.
41249
41250 Default value is 16.
41251
41252 bar_v, volume2
41253 Specify the bargraph volume expression. It can contain variables:
41254
41255 sono_v
41256 the sono_v evaluated expression
41257
41258 frequency, freq, f
41259 the frequency where it is evaluated
41260
41261 timeclamp, tc
41262 the value of timeclamp option
41263
41264 and functions:
41265
41266 a_weighting(f)
41267 A-weighting of equal loudness
41268
41269 b_weighting(f)
41270 B-weighting of equal loudness
41271
41272 c_weighting(f)
41273 C-weighting of equal loudness.
41274
41275 Default value is "sono_v".
41276
41277 sono_g, gamma
41278 Specify the sonogram gamma. Lower gamma makes the spectrum more
41279 contrast, higher gamma makes the spectrum having more range.
41280 Default value is 3. Acceptable range is "[1, 7]".
41281
41282 bar_g, gamma2
41283 Specify the bargraph gamma. Default value is 1. Acceptable range is
41284 "[1, 7]".
41285
41286 bar_t
41287 Specify the bargraph transparency level. Lower value makes the
41288 bargraph sharper. Default value is 1. Acceptable range is "[0,
41289 1]".
41290
41291 timeclamp, tc
41292 Specify the transform timeclamp. At low frequency, there is trade-
41293 off between accuracy in time domain and frequency domain. If
41294 timeclamp is lower, event in time domain is represented more
41295 accurately (such as fast bass drum), otherwise event in frequency
41296 domain is represented more accurately (such as bass guitar).
41297 Acceptable range is "[0.002, 1]". Default value is 0.17.
41298
41299 attack
41300 Set attack time in seconds. The default is 0 (disabled). Otherwise,
41301 it limits future samples by applying asymmetric windowing in time
41302 domain, useful when low latency is required. Accepted range is "[0,
41303 1]".
41304
41305 basefreq
41306 Specify the transform base frequency. Default value is
41307 20.01523126408007475, which is frequency 50 cents below E0.
41308 Acceptable range is "[10, 100000]".
41309
41310 endfreq
41311 Specify the transform end frequency. Default value is
41312 20495.59681441799654, which is frequency 50 cents above D#10.
41313 Acceptable range is "[10, 100000]".
41314
41315 coeffclamp
41316 This option is deprecated and ignored.
41317
41318 tlength
41319 Specify the transform length in time domain. Use this option to
41320 control accuracy trade-off between time domain and frequency domain
41321 at every frequency sample. It can contain variables:
41322
41323 frequency, freq, f
41324 the frequency where it is evaluated
41325
41326 timeclamp, tc
41327 the value of timeclamp option.
41328
41329 Default value is "384*tc/(384+tc*f)".
41330
41331 count
41332 Specify the transform count for every video frame. Default value is
41333 6. Acceptable range is "[1, 30]".
41334
41335 fcount
41336 Specify the transform count for every single pixel. Default value
41337 is 0, which makes it computed automatically. Acceptable range is
41338 "[0, 10]".
41339
41340 fontfile
41341 Specify font file for use with freetype to draw the axis. If not
41342 specified, use embedded font. Note that drawing with font file or
41343 embedded font is not implemented with custom basefreq and endfreq,
41344 use axisfile option instead.
41345
41346 font
41347 Specify fontconfig pattern. This has lower priority than fontfile.
41348 The ":" in the pattern may be replaced by "|" to avoid unnecessary
41349 escaping.
41350
41351 fontcolor
41352 Specify font color expression. This is arithmetic expression that
41353 should return integer value 0xRRGGBB. It can contain variables:
41354
41355 frequency, freq, f
41356 the frequency where it is evaluated
41357
41358 timeclamp, tc
41359 the value of timeclamp option
41360
41361 and functions:
41362
41363 midi(f)
41364 midi number of frequency f, some midi numbers: E0(16), C1(24),
41365 C2(36), A4(69)
41366
41367 r(x), g(x), b(x)
41368 red, green, and blue value of intensity x.
41369
41370 Default value is "st(0, (midi(f)-59.5)/12); st(1,
41371 if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
41372 b(ld(1))".
41373
41374 axisfile
41375 Specify image file to draw the axis. This option override fontfile
41376 and fontcolor option.
41377
41378 axis, text
41379 Enable/disable drawing text to the axis. If it is set to 0, drawing
41380 to the axis is disabled, ignoring fontfile and axisfile option.
41381 Default value is 1.
41382
41383 csp Set colorspace. The accepted values are:
41384
41385 unspecified
41386 Unspecified (default)
41387
41388 bt709
41389 BT.709
41390
41391 fcc FCC
41392
41393 bt470bg
41394 BT.470BG or BT.601-6 625
41395
41396 smpte170m
41397 SMPTE-170M or BT.601-6 525
41398
41399 smpte240m
41400 SMPTE-240M
41401
41402 bt2020ncl
41403 BT.2020 with non-constant luminance
41404
41405 cscheme
41406 Set spectrogram color scheme. This is list of floating point values
41407 with format "left_r|left_g|left_b|right_r|right_g|right_b". The
41408 default is "1|0.5|0|0|0.5|1".
41409
41410 Examples
41411
41412 • Playing audio while showing the spectrum:
41413
41414 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
41415
41416 • Same as above, but with frame rate 30 fps:
41417
41418 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
41419
41420 • Playing at 1280x720:
41421
41422 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
41423
41424 • Disable sonogram display:
41425
41426 sono_h=0
41427
41428 • A1 and its harmonics: A1, A2, (near)E3, A3:
41429
41430 ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
41431 asplit[a][out1]; [a] showcqt [out0]'
41432
41433 • Same as above, but with more accuracy in frequency domain:
41434
41435 ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
41436 asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
41437
41438 • Custom volume:
41439
41440 bar_v=10:sono_v=bar_v*a_weighting(f)
41441
41442 • Custom gamma, now spectrum is linear to the amplitude.
41443
41444 bar_g=2:sono_g=2
41445
41446 • Custom tlength equation:
41447
41448 tc=0.33:tlength='st(0,0.17); 384*tc / (384 / ld(0) + tc*f /(1-ld(0))) + 384*tc / (tc*f / ld(0) + 384 /(1-ld(0)))'
41449
41450 • Custom fontcolor and fontfile, C-note is colored green, others are
41451 colored blue:
41452
41453 fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
41454
41455 • Custom font using fontconfig:
41456
41457 font='Courier New,Monospace,mono|bold'
41458
41459 • Custom frequency range with custom axis using image file:
41460
41461 axisfile=myaxis.png:basefreq=40:endfreq=10000
41462
41463 showfreqs
41464 Convert input audio to video output representing the audio power
41465 spectrum. Audio amplitude is on Y-axis while frequency is on X-axis.
41466
41467 The filter accepts the following options:
41468
41469 size, s
41470 Specify size of video. For the syntax of this option, check the
41471 "Video size" section in the ffmpeg-utils manual. Default is
41472 "1024x512".
41473
41474 mode
41475 Set display mode. This set how each frequency bin will be
41476 represented.
41477
41478 It accepts the following values:
41479
41480 line
41481 bar
41482 dot
41483
41484 Default is "bar".
41485
41486 ascale
41487 Set amplitude scale.
41488
41489 It accepts the following values:
41490
41491 lin Linear scale.
41492
41493 sqrt
41494 Square root scale.
41495
41496 cbrt
41497 Cubic root scale.
41498
41499 log Logarithmic scale.
41500
41501 Default is "log".
41502
41503 fscale
41504 Set frequency scale.
41505
41506 It accepts the following values:
41507
41508 lin Linear scale.
41509
41510 log Logarithmic scale.
41511
41512 rlog
41513 Reverse logarithmic scale.
41514
41515 Default is "lin".
41516
41517 win_size
41518 Set window size. Allowed range is from 16 to 65536.
41519
41520 Default is 2048
41521
41522 win_func
41523 Set windowing function.
41524
41525 It accepts the following values:
41526
41527 rect
41528 bartlett
41529 hanning
41530 hamming
41531 blackman
41532 welch
41533 flattop
41534 bharris
41535 bnuttall
41536 bhann
41537 sine
41538 nuttall
41539 lanczos
41540 gauss
41541 tukey
41542 dolph
41543 cauchy
41544 parzen
41545 poisson
41546 bohman
41547
41548 Default is "hanning".
41549
41550 overlap
41551 Set window overlap. In range "[0, 1]". Default is 1, which means
41552 optimal overlap for selected window function will be picked.
41553
41554 averaging
41555 Set time averaging. Setting this to 0 will display current maximal
41556 peaks. Default is 1, which means time averaging is disabled.
41557
41558 colors
41559 Specify list of colors separated by space or by '|' which will be
41560 used to draw channel frequencies. Unrecognized or missing colors
41561 will be replaced by white color.
41562
41563 cmode
41564 Set channel display mode.
41565
41566 It accepts the following values:
41567
41568 combined
41569 separate
41570
41571 Default is "combined".
41572
41573 minamp
41574 Set minimum amplitude used in "log" amplitude scaler.
41575
41576 data
41577 Set data display mode.
41578
41579 It accepts the following values:
41580
41581 magnitude
41582 phase
41583 delay
41584
41585 Default is "magnitude".
41586
41587 showspatial
41588 Convert stereo input audio to a video output, representing the spatial
41589 relationship between two channels.
41590
41591 The filter accepts the following options:
41592
41593 size, s
41594 Specify the video size for the output. For the syntax of this
41595 option, check the "Video size" section in the ffmpeg-utils manual.
41596 Default value is "512x512".
41597
41598 win_size
41599 Set window size. Allowed range is from 1024 to 65536. Default size
41600 is 4096.
41601
41602 win_func
41603 Set window function.
41604
41605 It accepts the following values:
41606
41607 rect
41608 bartlett
41609 hann
41610 hanning
41611 hamming
41612 blackman
41613 welch
41614 flattop
41615 bharris
41616 bnuttall
41617 bhann
41618 sine
41619 nuttall
41620 lanczos
41621 gauss
41622 tukey
41623 dolph
41624 cauchy
41625 parzen
41626 poisson
41627 bohman
41628
41629 Default value is "hann".
41630
41631 overlap
41632 Set ratio of overlap window. Default value is 0.5. When value is 1
41633 overlap is set to recommended size for specific window function
41634 currently used.
41635
41636 showspectrum
41637 Convert input audio to a video output, representing the audio frequency
41638 spectrum.
41639
41640 The filter accepts the following options:
41641
41642 size, s
41643 Specify the video size for the output. For the syntax of this
41644 option, check the "Video size" section in the ffmpeg-utils manual.
41645 Default value is "640x512".
41646
41647 slide
41648 Specify how the spectrum should slide along the window.
41649
41650 It accepts the following values:
41651
41652 replace
41653 the samples start again on the left when they reach the right
41654
41655 scroll
41656 the samples scroll from right to left
41657
41658 fullframe
41659 frames are only produced when the samples reach the right
41660
41661 rscroll
41662 the samples scroll from left to right
41663
41664 lreplace
41665 the samples start again on the right when they reach the left
41666
41667 Default value is "replace".
41668
41669 mode
41670 Specify display mode.
41671
41672 It accepts the following values:
41673
41674 combined
41675 all channels are displayed in the same row
41676
41677 separate
41678 all channels are displayed in separate rows
41679
41680 Default value is combined.
41681
41682 color
41683 Specify display color mode.
41684
41685 It accepts the following values:
41686
41687 channel
41688 each channel is displayed in a separate color
41689
41690 intensity
41691 each channel is displayed using the same color scheme
41692
41693 rainbow
41694 each channel is displayed using the rainbow color scheme
41695
41696 moreland
41697 each channel is displayed using the moreland color scheme
41698
41699 nebulae
41700 each channel is displayed using the nebulae color scheme
41701
41702 fire
41703 each channel is displayed using the fire color scheme
41704
41705 fiery
41706 each channel is displayed using the fiery color scheme
41707
41708 fruit
41709 each channel is displayed using the fruit color scheme
41710
41711 cool
41712 each channel is displayed using the cool color scheme
41713
41714 magma
41715 each channel is displayed using the magma color scheme
41716
41717 green
41718 each channel is displayed using the green color scheme
41719
41720 viridis
41721 each channel is displayed using the viridis color scheme
41722
41723 plasma
41724 each channel is displayed using the plasma color scheme
41725
41726 cividis
41727 each channel is displayed using the cividis color scheme
41728
41729 terrain
41730 each channel is displayed using the terrain color scheme
41731
41732 Default value is channel.
41733
41734 scale
41735 Specify scale used for calculating intensity color values.
41736
41737 It accepts the following values:
41738
41739 lin linear
41740
41741 sqrt
41742 square root, default
41743
41744 cbrt
41745 cubic root
41746
41747 log logarithmic
41748
41749 4thrt
41750 4th root
41751
41752 5thrt
41753 5th root
41754
41755 Default value is sqrt.
41756
41757 fscale
41758 Specify frequency scale.
41759
41760 It accepts the following values:
41761
41762 lin linear
41763
41764 log logarithmic
41765
41766 Default value is lin.
41767
41768 saturation
41769 Set saturation modifier for displayed colors. Negative values
41770 provide alternative color scheme. 0 is no saturation at all.
41771 Saturation must be in [-10.0, 10.0] range. Default value is 1.
41772
41773 win_func
41774 Set window function.
41775
41776 It accepts the following values:
41777
41778 rect
41779 bartlett
41780 hann
41781 hanning
41782 hamming
41783 blackman
41784 welch
41785 flattop
41786 bharris
41787 bnuttall
41788 bhann
41789 sine
41790 nuttall
41791 lanczos
41792 gauss
41793 tukey
41794 dolph
41795 cauchy
41796 parzen
41797 poisson
41798 bohman
41799
41800 Default value is "hann".
41801
41802 orientation
41803 Set orientation of time vs frequency axis. Can be "vertical" or
41804 "horizontal". Default is "vertical".
41805
41806 overlap
41807 Set ratio of overlap window. Default value is 0. When value is 1
41808 overlap is set to recommended size for specific window function
41809 currently used.
41810
41811 gain
41812 Set scale gain for calculating intensity color values. Default
41813 value is 1.
41814
41815 data
41816 Set which data to display. Can be "magnitude", default or "phase",
41817 or unwrapped phase: "uphase".
41818
41819 rotation
41820 Set color rotation, must be in [-1.0, 1.0] range. Default value is
41821 0.
41822
41823 start
41824 Set start frequency from which to display spectrogram. Default is
41825 0.
41826
41827 stop
41828 Set stop frequency to which to display spectrogram. Default is 0.
41829
41830 fps Set upper frame rate limit. Default is "auto", unlimited.
41831
41832 legend
41833 Draw time and frequency axes and legends. Default is disabled.
41834
41835 drange
41836 Set dynamic range used to calculate intensity color values. Default
41837 is 120 dBFS. Allowed range is from 10 to 200.
41838
41839 limit
41840 Set upper limit of input audio samples volume in dBFS. Default is 0
41841 dBFS. Allowed range is from -100 to 100.
41842
41843 The usage is very similar to the showwaves filter; see the examples in
41844 that section.
41845
41846 Examples
41847
41848 • Large window with logarithmic color scaling:
41849
41850 showspectrum=s=1280x480:scale=log
41851
41852 • Complete example for a colored and sliding spectrum per channel
41853 using ffplay:
41854
41855 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
41856 [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
41857
41858 showspectrumpic
41859 Convert input audio to a single video frame, representing the audio
41860 frequency spectrum.
41861
41862 The filter accepts the following options:
41863
41864 size, s
41865 Specify the video size for the output. For the syntax of this
41866 option, check the "Video size" section in the ffmpeg-utils manual.
41867 Default value is "4096x2048".
41868
41869 mode
41870 Specify display mode.
41871
41872 It accepts the following values:
41873
41874 combined
41875 all channels are displayed in the same row
41876
41877 separate
41878 all channels are displayed in separate rows
41879
41880 Default value is combined.
41881
41882 color
41883 Specify display color mode.
41884
41885 It accepts the following values:
41886
41887 channel
41888 each channel is displayed in a separate color
41889
41890 intensity
41891 each channel is displayed using the same color scheme
41892
41893 rainbow
41894 each channel is displayed using the rainbow color scheme
41895
41896 moreland
41897 each channel is displayed using the moreland color scheme
41898
41899 nebulae
41900 each channel is displayed using the nebulae color scheme
41901
41902 fire
41903 each channel is displayed using the fire color scheme
41904
41905 fiery
41906 each channel is displayed using the fiery color scheme
41907
41908 fruit
41909 each channel is displayed using the fruit color scheme
41910
41911 cool
41912 each channel is displayed using the cool color scheme
41913
41914 magma
41915 each channel is displayed using the magma color scheme
41916
41917 green
41918 each channel is displayed using the green color scheme
41919
41920 viridis
41921 each channel is displayed using the viridis color scheme
41922
41923 plasma
41924 each channel is displayed using the plasma color scheme
41925
41926 cividis
41927 each channel is displayed using the cividis color scheme
41928
41929 terrain
41930 each channel is displayed using the terrain color scheme
41931
41932 Default value is intensity.
41933
41934 scale
41935 Specify scale used for calculating intensity color values.
41936
41937 It accepts the following values:
41938
41939 lin linear
41940
41941 sqrt
41942 square root, default
41943
41944 cbrt
41945 cubic root
41946
41947 log logarithmic
41948
41949 4thrt
41950 4th root
41951
41952 5thrt
41953 5th root
41954
41955 Default value is log.
41956
41957 fscale
41958 Specify frequency scale.
41959
41960 It accepts the following values:
41961
41962 lin linear
41963
41964 log logarithmic
41965
41966 Default value is lin.
41967
41968 saturation
41969 Set saturation modifier for displayed colors. Negative values
41970 provide alternative color scheme. 0 is no saturation at all.
41971 Saturation must be in [-10.0, 10.0] range. Default value is 1.
41972
41973 win_func
41974 Set window function.
41975
41976 It accepts the following values:
41977
41978 rect
41979 bartlett
41980 hann
41981 hanning
41982 hamming
41983 blackman
41984 welch
41985 flattop
41986 bharris
41987 bnuttall
41988 bhann
41989 sine
41990 nuttall
41991 lanczos
41992 gauss
41993 tukey
41994 dolph
41995 cauchy
41996 parzen
41997 poisson
41998 bohman
41999
42000 Default value is "hann".
42001
42002 orientation
42003 Set orientation of time vs frequency axis. Can be "vertical" or
42004 "horizontal". Default is "vertical".
42005
42006 gain
42007 Set scale gain for calculating intensity color values. Default
42008 value is 1.
42009
42010 legend
42011 Draw time and frequency axes and legends. Default is enabled.
42012
42013 rotation
42014 Set color rotation, must be in [-1.0, 1.0] range. Default value is
42015 0.
42016
42017 start
42018 Set start frequency from which to display spectrogram. Default is
42019 0.
42020
42021 stop
42022 Set stop frequency to which to display spectrogram. Default is 0.
42023
42024 drange
42025 Set dynamic range used to calculate intensity color values. Default
42026 is 120 dBFS. Allowed range is from 10 to 200.
42027
42028 limit
42029 Set upper limit of input audio samples volume in dBFS. Default is 0
42030 dBFS. Allowed range is from -100 to 100.
42031
42032 Examples
42033
42034 • Extract an audio spectrogram of a whole audio track in a 1024x1024
42035 picture using ffmpeg:
42036
42037 ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
42038
42039 showvolume
42040 Convert input audio volume to a video output.
42041
42042 The filter accepts the following options:
42043
42044 rate, r
42045 Set video rate.
42046
42047 b Set border width, allowed range is [0, 5]. Default is 1.
42048
42049 w Set channel width, allowed range is [80, 8192]. Default is 400.
42050
42051 h Set channel height, allowed range is [1, 900]. Default is 20.
42052
42053 f Set fade, allowed range is [0, 1]. Default is 0.95.
42054
42055 c Set volume color expression.
42056
42057 The expression can use the following variables:
42058
42059 VOLUME
42060 Current max volume of channel in dB.
42061
42062 PEAK
42063 Current peak.
42064
42065 CHANNEL
42066 Current channel number, starting from 0.
42067
42068 t If set, displays channel names. Default is enabled.
42069
42070 v If set, displays volume values. Default is enabled.
42071
42072 o Set orientation, can be horizontal: "h" or vertical: "v", default
42073 is "h".
42074
42075 s Set step size, allowed range is [0, 5]. Default is 0, which means
42076 step is disabled.
42077
42078 p Set background opacity, allowed range is [0, 1]. Default is 0.
42079
42080 m Set metering mode, can be peak: "p" or rms: "r", default is "p".
42081
42082 ds Set display scale, can be linear: "lin" or log: "log", default is
42083 "lin".
42084
42085 dm In second. If set to > 0., display a line for the max level in the
42086 previous seconds. default is disabled: 0.
42087
42088 dmc The color of the max line. Use when "dm" option is set to > 0.
42089 default is: "orange"
42090
42091 showwaves
42092 Convert input audio to a video output, representing the samples waves.
42093
42094 The filter accepts the following options:
42095
42096 size, s
42097 Specify the video size for the output. For the syntax of this
42098 option, check the "Video size" section in the ffmpeg-utils manual.
42099 Default value is "600x240".
42100
42101 mode
42102 Set display mode.
42103
42104 Available values are:
42105
42106 point
42107 Draw a point for each sample.
42108
42109 line
42110 Draw a vertical line for each sample.
42111
42112 p2p Draw a point for each sample and a line between them.
42113
42114 cline
42115 Draw a centered vertical line for each sample.
42116
42117 Default value is "point".
42118
42119 n Set the number of samples which are printed on the same column. A
42120 larger value will decrease the frame rate. Must be a positive
42121 integer. This option can be set only if the value for rate is not
42122 explicitly specified.
42123
42124 rate, r
42125 Set the (approximate) output frame rate. This is done by setting
42126 the option n. Default value is "25".
42127
42128 split_channels
42129 Set if channels should be drawn separately or overlap. Default
42130 value is 0.
42131
42132 colors
42133 Set colors separated by '|' which are going to be used for drawing
42134 of each channel.
42135
42136 scale
42137 Set amplitude scale.
42138
42139 Available values are:
42140
42141 lin Linear.
42142
42143 log Logarithmic.
42144
42145 sqrt
42146 Square root.
42147
42148 cbrt
42149 Cubic root.
42150
42151 Default is linear.
42152
42153 draw
42154 Set the draw mode. This is mostly useful to set for high n.
42155
42156 Available values are:
42157
42158 scale
42159 Scale pixel values for each drawn sample.
42160
42161 full
42162 Draw every sample directly.
42163
42164 Default value is "scale".
42165
42166 Examples
42167
42168 • Output the input file audio and the corresponding video
42169 representation at the same time:
42170
42171 amovie=a.mp3,asplit[out0],showwaves[out1]
42172
42173 • Create a synthetic signal and show it with showwaves, forcing a
42174 frame rate of 30 frames per second:
42175
42176 aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
42177
42178 showwavespic
42179 Convert input audio to a single video frame, representing the samples
42180 waves.
42181
42182 The filter accepts the following options:
42183
42184 size, s
42185 Specify the video size for the output. For the syntax of this
42186 option, check the "Video size" section in the ffmpeg-utils manual.
42187 Default value is "600x240".
42188
42189 split_channels
42190 Set if channels should be drawn separately or overlap. Default
42191 value is 0.
42192
42193 colors
42194 Set colors separated by '|' which are going to be used for drawing
42195 of each channel.
42196
42197 scale
42198 Set amplitude scale.
42199
42200 Available values are:
42201
42202 lin Linear.
42203
42204 log Logarithmic.
42205
42206 sqrt
42207 Square root.
42208
42209 cbrt
42210 Cubic root.
42211
42212 Default is linear.
42213
42214 draw
42215 Set the draw mode.
42216
42217 Available values are:
42218
42219 scale
42220 Scale pixel values for each drawn sample.
42221
42222 full
42223 Draw every sample directly.
42224
42225 Default value is "scale".
42226
42227 filter
42228 Set the filter mode.
42229
42230 Available values are:
42231
42232 average
42233 Use average samples values for each drawn sample.
42234
42235 peak
42236 Use peak samples values for each drawn sample.
42237
42238 Default value is "average".
42239
42240 Examples
42241
42242 • Extract a channel split representation of the wave form of a whole
42243 audio track in a 1024x800 picture using ffmpeg:
42244
42245 ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
42246
42247 sidedata, asidedata
42248 Delete frame side data, or select frames based on it.
42249
42250 This filter accepts the following options:
42251
42252 mode
42253 Set mode of operation of the filter.
42254
42255 Can be one of the following:
42256
42257 select
42258 Select every frame with side data of "type".
42259
42260 delete
42261 Delete side data of "type". If "type" is not set, delete all
42262 side data in the frame.
42263
42264 type
42265 Set side data type used with all modes. Must be set for "select"
42266 mode. For the list of frame side data types, refer to the
42267 "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
42268 choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
42269 "PANSCAN".
42270
42271 spectrumsynth
42272 Synthesize audio from 2 input video spectrums, first input stream
42273 represents magnitude across time and second represents phase across
42274 time. The filter will transform from frequency domain as displayed in
42275 videos back to time domain as presented in audio output.
42276
42277 This filter is primarily created for reversing processed showspectrum
42278 filter outputs, but can synthesize sound from other spectrograms too.
42279 But in such case results are going to be poor if the phase data is not
42280 available, because in such cases phase data need to be recreated,
42281 usually it's just recreated from random noise. For best results use
42282 gray only output ("channel" color mode in showspectrum filter) and
42283 "log" scale for magnitude video and "lin" scale for phase video. To
42284 produce phase, for 2nd video, use "data" option. Inputs videos should
42285 generally use "fullframe" slide mode as that saves resources needed for
42286 decoding video.
42287
42288 The filter accepts the following options:
42289
42290 sample_rate
42291 Specify sample rate of output audio, the sample rate of audio from
42292 which spectrum was generated may differ.
42293
42294 channels
42295 Set number of channels represented in input video spectrums.
42296
42297 scale
42298 Set scale which was used when generating magnitude input spectrum.
42299 Can be "lin" or "log". Default is "log".
42300
42301 slide
42302 Set slide which was used when generating inputs spectrums. Can be
42303 "replace", "scroll", "fullframe" or "rscroll". Default is
42304 "fullframe".
42305
42306 win_func
42307 Set window function used for resynthesis.
42308
42309 overlap
42310 Set window overlap. In range "[0, 1]". Default is 1, which means
42311 optimal overlap for selected window function will be picked.
42312
42313 orientation
42314 Set orientation of input videos. Can be "vertical" or "horizontal".
42315 Default is "vertical".
42316
42317 Examples
42318
42319 • First create magnitude and phase videos from audio, assuming audio
42320 is stereo with 44100 sample rate, then resynthesize videos back to
42321 audio with spectrumsynth:
42322
42323 ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=log:overlap=0.875:color=channel:slide=fullframe:data=magnitude -an -c:v rawvideo magnitude.nut
42324 ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=lin:overlap=0.875:color=channel:slide=fullframe:data=phase -an -c:v rawvideo phase.nut
42325 ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
42326
42327 split, asplit
42328 Split input into several identical outputs.
42329
42330 "asplit" works with audio input, "split" with video.
42331
42332 The filter accepts a single parameter which specifies the number of
42333 outputs. If unspecified, it defaults to 2.
42334
42335 Examples
42336
42337 • Create two separate outputs from the same input:
42338
42339 [in] split [out0][out1]
42340
42341 • To create 3 or more outputs, you need to specify the number of
42342 outputs, like in:
42343
42344 [in] asplit=3 [out0][out1][out2]
42345
42346 • Create two separate outputs from the same input, one cropped and
42347 one padded:
42348
42349 [in] split [splitout1][splitout2];
42350 [splitout1] crop=100:100:0:0 [cropout];
42351 [splitout2] pad=200:200:100:100 [padout];
42352
42353 • Create 5 copies of the input audio with ffmpeg:
42354
42355 ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
42356
42357 zmq, azmq
42358 Receive commands sent through a libzmq client, and forward them to
42359 filters in the filtergraph.
42360
42361 "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
42362 between two video filters, "azmq" between two audio filters. Both are
42363 capable to send messages to any filter type.
42364
42365 To enable these filters you need to install the libzmq library and
42366 headers and configure FFmpeg with "--enable-libzmq".
42367
42368 For more information about libzmq see: <http://www.zeromq.org/>
42369
42370 The "zmq" and "azmq" filters work as a libzmq server, which receives
42371 messages sent through a network interface defined by the bind_address
42372 (or the abbreviation "b") option. Default value of this option is
42373 tcp://localhost:5555. You may want to alter this value to your needs,
42374 but do not forget to escape any ':' signs (see filtergraph escaping).
42375
42376 The received message must be in the form:
42377
42378 <TARGET> <COMMAND> [<ARG>]
42379
42380 TARGET specifies the target of the command, usually the name of the
42381 filter class or a specific filter instance name. The default filter
42382 instance name uses the pattern Parsed_<filter_name>_<index>, but you
42383 can override this by using the filter_name@id syntax (see Filtergraph
42384 syntax).
42385
42386 COMMAND specifies the name of the command for the target filter.
42387
42388 ARG is optional and specifies the optional argument list for the given
42389 COMMAND.
42390
42391 Upon reception, the message is processed and the corresponding command
42392 is injected into the filtergraph. Depending on the result, the filter
42393 will send a reply to the client, adopting the format:
42394
42395 <ERROR_CODE> <ERROR_REASON>
42396 <MESSAGE>
42397
42398 MESSAGE is optional.
42399
42400 Examples
42401
42402 Look at tools/zmqsend for an example of a zmq client which can be used
42403 to send commands processed by these filters.
42404
42405 Consider the following filtergraph generated by ffplay. In this
42406 example the last overlay filter has an instance name. All other filters
42407 will have default instance names.
42408
42409 ffplay -dumpgraph 1 -f lavfi "
42410 color=s=100x100:c=red [l];
42411 color=s=100x100:c=blue [r];
42412 nullsrc=s=200x100, zmq [bg];
42413 [bg][l] overlay [bg+l];
42414 [bg+l][r] overlay@my=x=100 "
42415
42416 To change the color of the left side of the video, the following
42417 command can be used:
42418
42419 echo Parsed_color_0 c yellow | tools/zmqsend
42420
42421 To change the right side:
42422
42423 echo Parsed_color_1 c pink | tools/zmqsend
42424
42425 To change the position of the right side:
42426
42427 echo overlay@my x 150 | tools/zmqsend
42428
42430 Below is a description of the currently available multimedia sources.
42431
42432 amovie
42433 This is the same as movie source, except it selects an audio stream by
42434 default.
42435
42436 movie
42437 Read audio and/or video stream(s) from a movie container.
42438
42439 It accepts the following parameters:
42440
42441 filename
42442 The name of the resource to read (not necessarily a file; it can
42443 also be a device or a stream accessed through some protocol).
42444
42445 format_name, f
42446 Specifies the format assumed for the movie to read, and can be
42447 either the name of a container or an input device. If not
42448 specified, the format is guessed from movie_name or by probing.
42449
42450 seek_point, sp
42451 Specifies the seek point in seconds. The frames will be output
42452 starting from this seek point. The parameter is evaluated with
42453 "av_strtod", so the numerical value may be suffixed by an IS
42454 postfix. The default value is "0".
42455
42456 streams, s
42457 Specifies the streams to read. Several streams can be specified,
42458 separated by "+". The source will then have as many outputs, in the
42459 same order. The syntax is explained in the "Stream specifiers"
42460 section in the ffmpeg manual. Two special names, "dv" and "da"
42461 specify respectively the default (best suited) video and audio
42462 stream. Default is "dv", or "da" if the filter is called as
42463 "amovie".
42464
42465 stream_index, si
42466 Specifies the index of the video stream to read. If the value is
42467 -1, the most suitable video stream will be automatically selected.
42468 The default value is "-1". Deprecated. If the filter is called
42469 "amovie", it will select audio instead of video.
42470
42471 loop
42472 Specifies how many times to read the stream in sequence. If the
42473 value is 0, the stream will be looped infinitely. Default value is
42474 "1".
42475
42476 Note that when the movie is looped the source timestamps are not
42477 changed, so it will generate non monotonically increasing
42478 timestamps.
42479
42480 discontinuity
42481 Specifies the time difference between frames above which the point
42482 is considered a timestamp discontinuity which is removed by
42483 adjusting the later timestamps.
42484
42485 dec_threads
42486 Specifies the number of threads for decoding
42487
42488 format_opts
42489 Specify format options for the opened file. Format options can be
42490 specified as a list of key=value pairs separated by ':'. The
42491 following example shows how to add protocol_whitelist and
42492 protocol_blacklist options:
42493
42494 ffplay -f lavfi
42495 "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
42496
42497 It allows overlaying a second video on top of the main input of a
42498 filtergraph, as shown in this graph:
42499
42500 input -----------> deltapts0 --> overlay --> output
42501 ^
42502 |
42503 movie --> scale--> deltapts1 -------+
42504
42505 Examples
42506
42507 • Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
42508 it on top of the input labelled "in":
42509
42510 movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
42511 [in] setpts=PTS-STARTPTS [main];
42512 [main][over] overlay=16:16 [out]
42513
42514 • Read from a video4linux2 device, and overlay it on top of the input
42515 labelled "in":
42516
42517 movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
42518 [in] setpts=PTS-STARTPTS [main];
42519 [main][over] overlay=16:16 [out]
42520
42521 • Read the first video stream and the audio stream with id 0x81 from
42522 dvd.vob; the video is connected to the pad named "video" and the
42523 audio is connected to the pad named "audio":
42524
42525 movie=dvd.vob:s=v:0+#0x81 [video] [audio]
42526
42527 Commands
42528
42529 Both movie and amovie support the following commands:
42530
42531 seek
42532 Perform seek using "av_seek_frame". The syntax is: seek
42533 stream_index|timestamp|flags
42534
42535 • stream_index: If stream_index is -1, a default stream is
42536 selected, and timestamp is automatically converted from
42537 AV_TIME_BASE units to the stream specific time_base.
42538
42539 • timestamp: Timestamp in AVStream.time_base units or, if no
42540 stream is specified, in AV_TIME_BASE units.
42541
42542 • flags: Flags which select direction and seeking mode.
42543
42544 get_duration
42545 Get movie duration in AV_TIME_BASE units.
42546
42548 FFmpeg can be hooked up with a number of external libraries to add
42549 support for more formats. None of them are used by default, their use
42550 has to be explicitly requested by passing the appropriate flags to
42551 ./configure.
42552
42553 Alliance for Open Media (AOM)
42554 FFmpeg can make use of the AOM library for AV1 decoding and encoding.
42555
42556 Go to <http://aomedia.org/> and follow the instructions for installing
42557 the library. Then pass "--enable-libaom" to configure to enable it.
42558
42559 AMD AMF/VCE
42560 FFmpeg can use the AMD Advanced Media Framework library for accelerated
42561 H.264 and HEVC(only windows) encoding on hardware with Video Coding
42562 Engine (VCE).
42563
42564 To enable support you must obtain the AMF framework header
42565 files(version 1.4.9+) from
42566 <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
42567
42568 Create an "AMF/" directory in the system include path. Copy the
42569 contents of "AMF/amf/public/include/" into that directory. Then
42570 configure FFmpeg with "--enable-amf".
42571
42572 Initialization of amf encoder occurs in this order: 1) trying to
42573 initialize through dx11(only windows) 2) trying to initialize through
42574 dx9(only windows) 3) trying to initialize through vulkan
42575
42576 To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
42577 amf-amdgpu-pro package(amdgru-pro contains, but does not install
42578 automatically) are required.
42579
42580 This driver can be installed using amdgpu-pro-install script in
42581 official amd driver archive.
42582
42583 AviSynth
42584 FFmpeg can read AviSynth scripts as input. To enable support, pass
42585 "--enable-avisynth" to configure after installing the headers provided
42586 by <https://github.com/AviSynth/AviSynthPlus>. AviSynth+ can be
42587 configured to install only the headers by either passing
42588 "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
42589 using the supplied "GNUmakefile".
42590
42591 For Windows, supported AviSynth variants are <http://avisynth.nl> for
42592 32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
42593 and 64-bit builds.
42594
42595 For Linux, macOS, and BSD, the only supported AviSynth variant is
42596 <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
42597
42598 In 2016, AviSynth+ added support for building with GCC. However,
42599 due to the eccentricities of Windows' calling conventions, 32-bit
42600 GCC builds of AviSynth+ are not compatible with typical 32-bit
42601 builds of FFmpeg.
42602
42603 By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
42604 AviSynth+ since that is the most widely-used and entrenched build
42605 configuration. Users can override this and enable support for
42606 32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
42607 "--extra-cflags" when configuring FFmpeg.
42608
42609 64-bit builds of FFmpeg are not affected, and can use either MSVC
42610 or GCC builds of AviSynth+ without any special flags.
42611
42612 AviSynth(+) is loaded dynamically. Distributors can build FFmpeg
42613 with "--enable-avisynth", and the binaries will work regardless of
42614 the end user having AviSynth installed. If/when an end user would
42615 like to use AviSynth scripts, then they can install AviSynth(+) and
42616 FFmpeg will be able to find and use it to open scripts.
42617
42618 Chromaprint
42619 FFmpeg can make use of the Chromaprint library for generating audio
42620 fingerprints. Pass "--enable-chromaprint" to configure to enable it.
42621 See <https://acoustid.org/chromaprint>.
42622
42623 codec2
42624 FFmpeg can make use of the codec2 library for codec2 decoding and
42625 encoding. There is currently no native decoder, so libcodec2 must be
42626 used for decoding.
42627
42628 Go to <http://freedv.org/>, download "Codec 2 source archive". Build
42629 and install using CMake. Debian users can install the libcodec2-dev
42630 package instead. Once libcodec2 is installed you can pass
42631 "--enable-libcodec2" to configure to enable it.
42632
42633 The easiest way to use codec2 is with .c2 files, since they contain the
42634 mode information required for decoding. To encode such a file, use a
42635 .c2 file extension and give the libcodec2 encoder the -mode option:
42636 "ffmpeg -i input.wav -mode 700C output.c2". Playback is as simple as
42637 "ffplay output.c2". For a list of supported modes, run "ffmpeg -h
42638 encoder=libcodec2". Raw codec2 files are also supported. To make
42639 sense of them the mode in use needs to be specified as a format option:
42640 "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
42641
42642 dav1d
42643 FFmpeg can make use of the dav1d library for AV1 video decoding.
42644
42645 Go to <https://code.videolan.org/videolan/dav1d> and follow the
42646 instructions for installing the library. Then pass "--enable-libdav1d"
42647 to configure to enable it.
42648
42649 davs2
42650 FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
42651 decoding.
42652
42653 Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
42654 installing the library. Then pass "--enable-libdavs2" to configure to
42655 enable it.
42656
42657 libdavs2 is under the GNU Public License Version 2 or later (see
42658 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
42659 details), you must upgrade FFmpeg's license to GPL in order to use
42660 it.
42661
42662 uavs3d
42663 FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
42664 decoding.
42665
42666 Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
42667 installing the library. Then pass "--enable-libuavs3d" to configure to
42668 enable it.
42669
42670 Game Music Emu
42671 FFmpeg can make use of the Game Music Emu library to read audio from
42672 supported video game music file formats. Pass "--enable-libgme" to
42673 configure to enable it. See
42674 <https://bitbucket.org/mpyne/game-music-emu/overview>.
42675
42676 Intel QuickSync Video
42677 FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
42678 encoding of multiple codecs. To use QSV, FFmpeg must be linked against
42679 the "libmfx" dispatcher, which loads the actual decoding libraries.
42680
42681 The dispatcher is open source and can be downloaded from
42682 <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
42683 configured with the "--enable-libmfx" option and "pkg-config" needs to
42684 be able to locate the dispatcher's ".pc" files.
42685
42686 Kvazaar
42687 FFmpeg can make use of the Kvazaar library for HEVC encoding.
42688
42689 Go to <https://github.com/ultravideo/kvazaar> and follow the
42690 instructions for installing the library. Then pass
42691 "--enable-libkvazaar" to configure to enable it.
42692
42693 LAME
42694 FFmpeg can make use of the LAME library for MP3 encoding.
42695
42696 Go to <http://lame.sourceforge.net/> and follow the instructions for
42697 installing the library. Then pass "--enable-libmp3lame" to configure
42698 to enable it.
42699
42700 libilbc
42701 iLBC is a narrowband speech codec that has been made freely available
42702 by Google as part of the WebRTC project. libilbc is a packaging
42703 friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
42704 library for iLBC decoding and encoding.
42705
42706 Go to <https://github.com/TimothyGu/libilbc> and follow the
42707 instructions for installing the library. Then pass "--enable-libilbc"
42708 to configure to enable it.
42709
42710 libvpx
42711 FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
42712 encoding.
42713
42714 Go to <http://www.webmproject.org/> and follow the instructions for
42715 installing the library. Then pass "--enable-libvpx" to configure to
42716 enable it.
42717
42718 ModPlug
42719 FFmpeg can make use of this library, originating in Modplug-XMMS, to
42720 read from MOD-like music files. See
42721 <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
42722 to configure to enable it.
42723
42724 OpenCORE, VisualOn, and Fraunhofer libraries
42725 Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
42726 libraries provide encoders for a number of audio codecs.
42727
42728 OpenCORE and VisualOn libraries are under the Apache License 2.0
42729 (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
42730 which is incompatible to the LGPL version 2.1 and GPL version 2.
42731 You have to upgrade FFmpeg's license to LGPL version 3 (or if you
42732 have enabled GPL components, GPL version 3) by passing
42733 "--enable-version3" to configure in order to use it.
42734
42735 The license of the Fraunhofer AAC library is incompatible with the
42736 GPL. Therefore, for GPL builds, you have to pass
42737 "--enable-nonfree" to configure in order to use it. To the best of
42738 our knowledge, it is compatible with the LGPL.
42739
42740 OpenCORE AMR
42741
42742 FFmpeg can make use of the OpenCORE libraries for AMR-NB
42743 decoding/encoding and AMR-WB decoding.
42744
42745 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
42746 instructions for installing the libraries. Then pass
42747 "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
42748 configure to enable them.
42749
42750 VisualOn AMR-WB encoder library
42751
42752 FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
42753 encoding.
42754
42755 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
42756 instructions for installing the library. Then pass
42757 "--enable-libvo-amrwbenc" to configure to enable it.
42758
42759 Fraunhofer AAC library
42760
42761 FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
42762 encoding.
42763
42764 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
42765 instructions for installing the library. Then pass
42766 "--enable-libfdk-aac" to configure to enable it.
42767
42768 OpenH264
42769 FFmpeg can make use of the OpenH264 library for H.264 decoding and
42770 encoding.
42771
42772 Go to <http://www.openh264.org/> and follow the instructions for
42773 installing the library. Then pass "--enable-libopenh264" to configure
42774 to enable it.
42775
42776 For decoding, this library is much more limited than the built-in
42777 decoder in libavcodec; currently, this library lacks support for
42778 decoding B-frames and some other main/high profile features. (It
42779 currently only supports constrained baseline profile and CABAC.) Using
42780 it is mostly useful for testing and for taking advantage of Cisco's
42781 patent portfolio license
42782 (<http://www.openh264.org/BINARY_LICENSE.txt>).
42783
42784 OpenJPEG
42785 FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
42786 Go to <http://www.openjpeg.org/> to get the libraries and follow the
42787 installation instructions. To enable using OpenJPEG in FFmpeg, pass
42788 "--enable-libopenjpeg" to ./configure.
42789
42790 rav1e
42791 FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
42792 encode videos. Go to <https://github.com/xiph/rav1e/> and follow the
42793 instructions to build the C library. To enable using rav1e in FFmpeg,
42794 pass "--enable-librav1e" to ./configure.
42795
42796 SVT-AV1
42797 FFmpeg can make use of the Scalable Video Technology for AV1 library
42798 for AV1 encoding.
42799
42800 Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
42801 instructions for installing the library. Then pass "--enable-libsvtav1"
42802 to configure to enable it.
42803
42804 TwoLAME
42805 FFmpeg can make use of the TwoLAME library for MP2 encoding.
42806
42807 Go to <http://www.twolame.org/> and follow the instructions for
42808 installing the library. Then pass "--enable-libtwolame" to configure
42809 to enable it.
42810
42811 VapourSynth
42812 FFmpeg can read VapourSynth scripts as input. To enable support, pass
42813 "--enable-vapoursynth" to configure. Vapoursynth is detected via
42814 "pkg-config". Versions 42 or greater supported. See
42815 <http://www.vapoursynth.com/>.
42816
42817 Due to security concerns, Vapoursynth scripts will not be autodetected
42818 so the input format has to be forced. For ff* CLI tools, add "-f
42819 vapoursynth" before the input "-i yourscript.vpy".
42820
42821 x264
42822 FFmpeg can make use of the x264 library for H.264 encoding.
42823
42824 Go to <http://www.videolan.org/developers/x264.html> and follow the
42825 instructions for installing the library. Then pass "--enable-libx264"
42826 to configure to enable it.
42827
42828 x264 is under the GNU Public License Version 2 or later (see
42829 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
42830 details), you must upgrade FFmpeg's license to GPL in order to use
42831 it.
42832
42833 x265
42834 FFmpeg can make use of the x265 library for HEVC encoding.
42835
42836 Go to <http://x265.org/developers.html> and follow the instructions for
42837 installing the library. Then pass "--enable-libx265" to configure to
42838 enable it.
42839
42840 x265 is under the GNU Public License Version 2 or later (see
42841 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
42842 details), you must upgrade FFmpeg's license to GPL in order to use
42843 it.
42844
42845 xavs
42846 FFmpeg can make use of the xavs library for AVS encoding.
42847
42848 Go to <http://xavs.sf.net/> and follow the instructions for installing
42849 the library. Then pass "--enable-libxavs" to configure to enable it.
42850
42851 xavs2
42852 FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
42853 encoding.
42854
42855 Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
42856 installing the library. Then pass "--enable-libxavs2" to configure to
42857 enable it.
42858
42859 libxavs2 is under the GNU Public License Version 2 or later (see
42860 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
42861 details), you must upgrade FFmpeg's license to GPL in order to use
42862 it.
42863
42864 ZVBI
42865 ZVBI is a VBI decoding library which can be used by FFmpeg to decode
42866 DVB teletext pages and DVB teletext subtitles.
42867
42868 Go to <http://sourceforge.net/projects/zapping/> and follow the
42869 instructions for installing the library. Then pass "--enable-libzvbi"
42870 to configure to enable it.
42871
42873 You can use the "-formats" and "-codecs" options to have an exhaustive
42874 list.
42875
42876 File Formats
42877 FFmpeg supports the following file formats through the "libavformat"
42878 library:
42879
42880 Name : Encoding @tab Decoding @tab Comments
42881 3dostr : @tab X
42882 4xm : @tab X
42883 @tab 4X Technologies format, used in some games.
42884
42885 8088flex TMV : @tab X
42886 AAX : @tab X
42887 @tab Audible Enhanced Audio format, used in audiobooks.
42888
42889 AA : @tab X
42890 @tab Audible Format 2, 3, and 4, used in audiobooks.
42891
42892 ACT Voice : @tab X
42893 @tab contains G.729 audio
42894
42895 Adobe Filmstrip : X @tab X
42896 Audio IFF (AIFF) : X @tab X
42897 American Laser Games MM : @tab X
42898 @tab Multimedia format used in games like Mad Dog McCree.
42899
42900 3GPP AMR : X @tab X
42901 Amazing Studio Packed Animation File : @tab X
42902 @tab Multimedia format used in game Heart Of Darkness.
42903
42904 Apple HTTP Live Streaming : @tab X
42905 Artworx Data Format : @tab X
42906 Interplay ACM : @tab X
42907 @tab Audio only format used in some Interplay games.
42908
42909 ADP : @tab X
42910 @tab Audio format used on the Nintendo Gamecube.
42911
42912 AFC : @tab X
42913 @tab Audio format used on the Nintendo Gamecube.
42914
42915 ADS/SS2 : @tab X
42916 @tab Audio format used on the PS2.
42917
42918 APNG : X @tab X
42919 ASF : X @tab X
42920 @tab Advanced / Active Streaming Format.
42921
42922 AST : X @tab X
42923 @tab Audio format used on the Nintendo Wii.
42924
42925 AVI : X @tab X
42926 AviSynth : @tab X
42927 AVR : @tab X
42928 @tab Audio format used on Mac.
42929
42930 AVS : @tab X
42931 @tab Multimedia format used by the Creature Shock game.
42932
42933 Beam Software SIFF : @tab X
42934 @tab Audio and video format used in some games by Beam Software.
42935
42936 Bethesda Softworks VID : @tab X
42937 @tab Used in some games from Bethesda Softworks.
42938
42939 Binary text : @tab X
42940 Bink : @tab X
42941 @tab Multimedia format used by many games.
42942
42943 Bink Audio : @tab X
42944 @tab Audio only multimedia format used by some games.
42945
42946 Bitmap Brothers JV : @tab X
42947 @tab Used in Z and Z95 games.
42948
42949 BRP : @tab X
42950 @tab Argonaut Games format.
42951
42952 Brute Force & Ignorance : @tab X
42953 @tab Used in the game Flash Traffic: City of Angels.
42954
42955 BFSTM : @tab X
42956 @tab Audio format used on the Nintendo WiiU (based on BRSTM).
42957
42958 BRSTM : @tab X
42959 @tab Audio format used on the Nintendo Wii.
42960
42961 BW64 : @tab X
42962 @tab Broadcast Wave 64bit.
42963
42964 BWF : X @tab X
42965 codec2 (raw) : X @tab X
42966 @tab Must be given -mode format option to decode correctly.
42967
42968 codec2 (.c2 files) : X @tab X
42969 @tab Contains header with version and mode info, simplifying playback.
42970
42971 CRI ADX : X @tab X
42972 @tab Audio-only format used in console video games.
42973
42974 CRI AIX : @tab X
42975 CRI HCA : @tab X
42976 @tab Audio-only format used in console video games.
42977
42978 Discworld II BMV : @tab X
42979 Interplay C93 : @tab X
42980 @tab Used in the game Cyberia from Interplay.
42981
42982 Delphine Software International CIN : @tab X
42983 @tab Multimedia format used by Delphine Software games.
42984
42985 Digital Speech Standard (DSS) : @tab X
42986 CD+G : @tab X
42987 @tab Video format used by CD+G karaoke disks
42988
42989 Phantom Cine : @tab X
42990 Commodore CDXL : @tab X
42991 @tab Amiga CD video format
42992
42993 Core Audio Format : X @tab X
42994 @tab Apple Core Audio Format
42995
42996 CRC testing format : X @tab
42997 Creative Voice : X @tab X
42998 @tab Created for the Sound Blaster Pro.
42999
43000 CRYO APC : @tab X
43001 @tab Audio format used in some games by CRYO Interactive Entertainment.
43002
43003 D-Cinema audio : X @tab X
43004 Deluxe Paint Animation : @tab X
43005 DCSTR : @tab X
43006 DFA : @tab X
43007 @tab This format is used in Chronomaster game
43008
43009 DirectDraw Surface : @tab X
43010 DSD Stream File (DSF) : @tab X
43011 DV video : X @tab X
43012 DXA : @tab X
43013 @tab This format is used in the non-Windows version of the Feeble Files
43014 game and different game cutscenes repacked for use with ScummVM.
43015
43016 Electronic Arts cdata : @tab X
43017 Electronic Arts Multimedia : @tab X
43018 @tab Used in various EA games; files have extensions like WVE and UV2.
43019
43020 Ensoniq Paris Audio File : @tab X
43021 FFM (FFserver live feed) : X @tab X
43022 Flash (SWF) : X @tab X
43023 Flash 9 (AVM2) : X @tab X
43024 @tab Only embedded audio is decoded.
43025
43026 FLI/FLC/FLX animation : @tab X
43027 @tab .fli/.flc files
43028
43029 Flash Video (FLV) : X @tab X
43030 @tab Macromedia Flash video files
43031
43032 framecrc testing format : X @tab
43033 FunCom ISS : @tab X
43034 @tab Audio format used in various games from FunCom like The Longest Journey.
43035
43036 G.723.1 : X @tab X
43037 G.726 : @tab X @tab Both left- and right-
43038 justified.
43039 G.729 BIT : X @tab X
43040 G.729 raw : @tab X
43041 GENH : @tab X
43042 @tab Audio format for various games.
43043
43044 GIF Animation : X @tab X
43045 GXF : X @tab X
43046 @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
43047 playout servers.
43048
43049 HNM : @tab X
43050 @tab Only version 4 supported, used in some games from Cryo Interactive
43051
43052 iCEDraw File : @tab X
43053 ICO : X @tab X
43054 @tab Microsoft Windows ICO
43055
43056 id Quake II CIN video : @tab X
43057 id RoQ : X @tab X
43058 @tab Used in Quake III, Jedi Knight 2 and other computer games.
43059
43060 IEC61937 encapsulation : X @tab X
43061 IFF : @tab X
43062 @tab Interchange File Format
43063
43064 IFV : @tab X
43065 @tab A format used by some old CCTV DVRs.
43066
43067 iLBC : X @tab X
43068 Interplay MVE : @tab X
43069 @tab Format used in various Interplay computer games.
43070
43071 Iterated Systems ClearVideo : @tab X
43072 @tab I-frames only
43073
43074 IV8 : @tab X
43075 @tab A format generated by IndigoVision 8000 video server.
43076
43077 IVF (On2) : X @tab X
43078 @tab A format used by libvpx
43079
43080 Internet Video Recording : @tab X
43081 IRCAM : X @tab X
43082 LATM : X @tab X
43083 LMLM4 : @tab X
43084 @tab Used by Linux Media Labs MPEG-4 PCI boards
43085
43086 LOAS : @tab X
43087 @tab contains LATM multiplexed AAC audio
43088
43089 LRC : X @tab X
43090 LVF : @tab X
43091 LXF : @tab X
43092 @tab VR native stream format, used by Leitch/Harris' video servers.
43093
43094 Magic Lantern Video (MLV) : @tab X
43095 Matroska : X @tab X
43096 Matroska audio : X @tab
43097 FFmpeg metadata : X @tab X
43098 @tab Metadata in text format.
43099
43100 MAXIS XA : @tab X
43101 @tab Used in Sim City 3000; file extension .xa.
43102
43103 MCA : @tab X
43104 @tab Used in some games from Capcom; file extension .mca.
43105
43106 MD Studio : @tab X
43107 Metal Gear Solid: The Twin Snakes : @tab X
43108 Megalux Frame : @tab X
43109 @tab Used by Megalux Ultimate Paint
43110
43111 Mobotix .mxg : @tab X
43112 Monkey's Audio : @tab X
43113 Motion Pixels MVI : @tab X
43114 MOV/QuickTime/MP4 : X @tab X
43115 @tab 3GP, 3GP2, PSP, iPod variants supported
43116
43117 MP2 : X @tab X
43118 MP3 : X @tab X
43119 MPEG-1 System : X @tab X
43120 @tab muxed audio and video, VCD format supported
43121
43122 MPEG-PS (program stream) : X @tab X
43123 @tab also known as C<VOB> file, SVCD and DVD format supported
43124
43125 MPEG-TS (transport stream) : X @tab X
43126 @tab also known as DVB Transport Stream
43127
43128 MPEG-4 : X @tab X
43129 @tab MPEG-4 is a variant of QuickTime.
43130
43131 MSF : @tab X
43132 @tab Audio format used on the PS3.
43133
43134 Mirillis FIC video : @tab X
43135 @tab No cursor rendering.
43136
43137 MIDI Sample Dump Standard : @tab X
43138 MIME multipart JPEG : X @tab
43139 MSN TCP webcam : @tab X
43140 @tab Used by MSN Messenger webcam streams.
43141
43142 MTV : @tab X
43143 Musepack : @tab X
43144 Musepack SV8 : @tab X
43145 Material eXchange Format (MXF) : X @tab X
43146 @tab SMPTE 377M, used by D-Cinema, broadcast industry.
43147
43148 Material eXchange Format (MXF), D-10 Mapping : X @tab X
43149 @tab SMPTE 386M, D-10/IMX Mapping.
43150
43151 NC camera feed : @tab X
43152 @tab NC (AVIP NC4600) camera streams
43153
43154 NIST SPeech HEader REsources : @tab X
43155 Computerized Speech Lab NSP : @tab X
43156 NTT TwinVQ (VQF) : @tab X
43157 @tab Nippon Telegraph and Telephone Corporation TwinVQ.
43158
43159 Nullsoft Streaming Video : @tab X
43160 NuppelVideo : @tab X
43161 NUT : X @tab X
43162 @tab NUT Open Container Format
43163
43164 Ogg : X @tab X
43165 Playstation Portable PMP : @tab X
43166 Portable Voice Format : @tab X
43167 TechnoTrend PVA : @tab X
43168 @tab Used by TechnoTrend DVB PCI boards.
43169
43170 QCP : @tab X
43171 raw ADTS (AAC) : X @tab X
43172 raw AC-3 : X @tab X
43173 raw AMR-NB : @tab X
43174 raw AMR-WB : @tab X
43175 raw aptX : X @tab X
43176 raw aptX HD : X @tab X
43177 raw Chinese AVS video : X @tab X
43178 raw Dirac : X @tab X
43179 raw DNxHD : X @tab X
43180 raw DTS : X @tab X
43181 raw DTS-HD : @tab X
43182 raw E-AC-3 : X @tab X
43183 raw FLAC : X @tab X
43184 raw GSM : @tab X
43185 raw H.261 : X @tab X
43186 raw H.263 : X @tab X
43187 raw H.264 : X @tab X
43188 raw HEVC : X @tab X
43189 raw Ingenient MJPEG : @tab X
43190 raw MJPEG : X @tab X
43191 raw MLP : @tab X
43192 raw MPEG : @tab X
43193 raw MPEG-1 : @tab X
43194 raw MPEG-2 : @tab X
43195 raw MPEG-4 : X @tab X
43196 raw NULL : X @tab
43197 raw video : X @tab X
43198 raw id RoQ : X @tab
43199 raw OBU : X @tab X
43200 raw SBC : X @tab X
43201 raw Shorten : @tab X
43202 raw TAK : @tab X
43203 raw TrueHD : X @tab X
43204 raw VC-1 : X @tab X
43205 raw PCM A-law : X @tab X
43206 raw PCM mu-law : X @tab X
43207 raw PCM Archimedes VIDC : X @tab X
43208 raw PCM signed 8 bit : X @tab X
43209 raw PCM signed 16 bit big-endian : X @tab X
43210 raw PCM signed 16 bit little-endian : X @tab X
43211 raw PCM signed 24 bit big-endian : X @tab X
43212 raw PCM signed 24 bit little-endian : X @tab X
43213 raw PCM signed 32 bit big-endian : X @tab X
43214 raw PCM signed 32 bit little-endian : X @tab X
43215 raw PCM signed 64 bit big-endian : X @tab X
43216 raw PCM signed 64 bit little-endian : X @tab X
43217 raw PCM unsigned 8 bit : X @tab X
43218 raw PCM unsigned 16 bit big-endian : X @tab X
43219 raw PCM unsigned 16 bit little-endian : X @tab X
43220 raw PCM unsigned 24 bit big-endian : X @tab X
43221 raw PCM unsigned 24 bit little-endian : X @tab X
43222 raw PCM unsigned 32 bit big-endian : X @tab X
43223 raw PCM unsigned 32 bit little-endian : X @tab X
43224 raw PCM 16.8 floating point little-endian : @tab X
43225 raw PCM 24.0 floating point little-endian : @tab X
43226 raw PCM floating-point 32 bit big-endian : X @tab X
43227 raw PCM floating-point 32 bit little-endian : X @tab X
43228 raw PCM floating-point 64 bit big-endian : X @tab X
43229 raw PCM floating-point 64 bit little-endian : X @tab X
43230 RDT : @tab X
43231 REDCODE R3D : @tab X
43232 @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
43233
43234 RealMedia : X @tab X
43235 Redirector : @tab X
43236 RedSpark : @tab X
43237 Renderware TeXture Dictionary : @tab X
43238 Resolume DXV : @tab X
43239 RF64 : @tab X
43240 RL2 : @tab X
43241 @tab Audio and video format used in some games by Entertainment Software Partners.
43242
43243 RPL/ARMovie : @tab X
43244 Lego Mindstorms RSO : X @tab X
43245 RSD : @tab X
43246 RTMP : X @tab X
43247 @tab Output is performed by publishing stream to RTMP server
43248
43249 RTP : X @tab X
43250 RTSP : X @tab X
43251 Sample Dump eXchange : @tab X
43252 SAP : X @tab X
43253 SBG : @tab X
43254 SDP : @tab X
43255 SER : @tab X
43256 Sega FILM/CPK : X @tab X
43257 @tab Used in many Sega Saturn console games.
43258
43259 Silicon Graphics Movie : @tab X
43260 Sierra SOL : @tab X
43261 @tab .sol files used in Sierra Online games.
43262
43263 Sierra VMD : @tab X
43264 @tab Used in Sierra CD-ROM games.
43265
43266 Smacker : @tab X
43267 @tab Multimedia format used by many games.
43268
43269 SMJPEG : X @tab X
43270 @tab Used in certain Loki game ports.
43271
43272 SMPTE 337M encapsulation : @tab X
43273 Smush : @tab X
43274 @tab Multimedia format used in some LucasArts games.
43275
43276 Sony OpenMG (OMA) : X @tab X
43277 @tab Audio format used in Sony Sonic Stage and Sony Vegas.
43278
43279 Sony PlayStation STR : @tab X
43280 Sony Wave64 (W64) : X @tab X
43281 SoX native format : X @tab X
43282 SUN AU format : X @tab X
43283 SUP raw PGS subtitles : X @tab X
43284 SVAG : @tab X
43285 @tab Audio format used in Konami PS2 games.
43286
43287 TDSC : @tab X
43288 Text files : @tab X
43289 THP : @tab X
43290 @tab Used on the Nintendo GameCube.
43291
43292 Tiertex Limited SEQ : @tab X
43293 @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
43294
43295 True Audio : X @tab X
43296 VAG : @tab X
43297 @tab Audio format used in many Sony PS2 games.
43298
43299 VC-1 test bitstream : X @tab X
43300 Vidvox Hap : X @tab X
43301 Vivo : @tab X
43302 VPK : @tab X
43303 @tab Audio format used in Sony PS games.
43304
43305 WAV : X @tab X
43306 WavPack : X @tab X
43307 WebM : X @tab X
43308 Windows Televison (WTV) : X @tab X
43309 Wing Commander III movie : @tab X
43310 @tab Multimedia format used in Origin's Wing Commander III computer game.
43311
43312 Westwood Studios audio : X @tab X
43313 @tab Multimedia format used in Westwood Studios games.
43314
43315 Westwood Studios VQA : @tab X
43316 @tab Multimedia format used in Westwood Studios games.
43317
43318 Wideband Single-bit Data (WSD) : @tab X
43319 WVE : @tab X
43320 XMV : @tab X
43321 @tab Microsoft video container used in Xbox games.
43322
43323 XVAG : @tab X
43324 @tab Audio format used on the PS3.
43325
43326 xWMA : @tab X
43327 @tab Microsoft audio container used by XAudio 2.
43328
43329 eXtended BINary text (XBIN) : @tab X
43330 YUV4MPEG pipe : X @tab X
43331 Psygnosis YOP : @tab X
43332
43333 "X" means that the feature in that column (encoding / decoding) is
43334 supported.
43335
43336 Image Formats
43337 FFmpeg can read and write images for each frame of a video sequence.
43338 The following image formats are supported:
43339
43340 Name : Encoding @tab Decoding @tab Comments
43341 .Y.U.V : X @tab X
43342 @tab one raw file per component
43343
43344 Alias PIX : X @tab X
43345 @tab Alias/Wavefront PIX image format
43346
43347 animated GIF : X @tab X
43348 APNG : X @tab X
43349 @tab Animated Portable Network Graphics
43350
43351 BMP : X @tab X
43352 @tab Microsoft BMP image
43353
43354 BRender PIX : @tab X
43355 @tab Argonaut BRender 3D engine image format.
43356
43357 CRI : @tab X
43358 @tab Cintel RAW
43359
43360 DPX : X @tab X
43361 @tab Digital Picture Exchange
43362
43363 EXR : @tab X
43364 @tab OpenEXR
43365
43366 FITS : X @tab X
43367 @tab Flexible Image Transport System
43368
43369 IMG : @tab X
43370 @tab GEM Raster image
43371
43372 JPEG : X @tab X
43373 @tab Progressive JPEG is not supported.
43374
43375 JPEG 2000 : X @tab X
43376 JPEG-LS : X @tab X
43377 LJPEG : X @tab
43378 @tab Lossless JPEG
43379
43380 MSP : @tab X
43381 @tab Microsoft Paint image
43382
43383 PAM : X @tab X
43384 @tab PAM is a PNM extension with alpha support.
43385
43386 PBM : X @tab X
43387 @tab Portable BitMap image
43388
43389 PCD : @tab X
43390 @tab PhotoCD
43391
43392 PCX : X @tab X
43393 @tab PC Paintbrush
43394
43395 PFM : X @tab X
43396 @tab Portable FloatMap image
43397
43398 PGM : X @tab X
43399 @tab Portable GrayMap image
43400
43401 PGMYUV : X @tab X
43402 @tab PGM with U and V components in YUV 4:2:0
43403
43404 PGX : @tab X
43405 @tab PGX file decoder
43406
43407 PIC : @tab X
43408 @tab Pictor/PC Paint
43409
43410 PNG : X @tab X
43411 @tab Portable Network Graphics image
43412
43413 PPM : X @tab X
43414 @tab Portable PixelMap image
43415
43416 PSD : @tab X
43417 @tab Photoshop
43418
43419 PTX : @tab X
43420 @tab V.Flash PTX format
43421
43422 SGI : X @tab X
43423 @tab SGI RGB image format
43424
43425 Sun Rasterfile : X @tab X
43426 @tab Sun RAS image format
43427
43428 TIFF : X @tab X
43429 @tab YUV, JPEG and some extension is not supported yet.
43430
43431 Truevision Targa : X @tab X
43432 @tab Targa (.TGA) image format
43433
43434 WebP : E @tab X
43435 @tab WebP image format, encoding supported through external library libwebp
43436
43437 XBM : X @tab X
43438 @tab X BitMap image format
43439
43440 XFace : X @tab X
43441 @tab X-Face image format
43442
43443 XPM : @tab X
43444 @tab X PixMap image format
43445
43446 XWD : X @tab X
43447 @tab X Window Dump image format
43448
43449 "X" means that the feature in that column (encoding / decoding) is
43450 supported.
43451
43452 "E" means that support is provided through an external library.
43453
43454 Video Codecs
43455 Name : Encoding @tab Decoding @tab Comments
43456 4X Movie : @tab X
43457 @tab Used in certain computer games.
43458
43459 8088flex TMV : @tab X
43460 A64 multicolor : X @tab
43461 @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
43462
43463 Amazing Studio PAF Video : @tab X
43464 American Laser Games MM : @tab X
43465 @tab Used in games like Mad Dog McCree.
43466
43467 Amuse Graphics Movie : @tab X
43468 AMV Video : X @tab X
43469 @tab Used in Chinese MP3 players.
43470
43471 ANSI/ASCII art : @tab X
43472 Apple Intermediate Codec : @tab X
43473 Apple MJPEG-B : @tab X
43474 Apple Pixlet : @tab X
43475 Apple ProRes : X @tab X
43476 @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
43477
43478 Apple QuickDraw : @tab X
43479 @tab fourcc: qdrw
43480
43481 Argonaut Video : @tab X
43482 @tab Used in some Argonaut games.
43483
43484 Asus v1 : X @tab X
43485 @tab fourcc: ASV1
43486
43487 Asus v2 : X @tab X
43488 @tab fourcc: ASV2
43489
43490 ATI VCR1 : @tab X
43491 @tab fourcc: VCR1
43492
43493 ATI VCR2 : @tab X
43494 @tab fourcc: VCR2
43495
43496 Auravision Aura : @tab X
43497 Auravision Aura 2 : @tab X
43498 Autodesk Animator Flic video : @tab X
43499 Autodesk RLE : @tab X
43500 @tab fourcc: AASC
43501
43502 AV1 : E @tab E
43503 @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
43504
43505 Avid 1:1 10-bit RGB Packer : X @tab X
43506 @tab fourcc: AVrp
43507
43508 AVS (Audio Video Standard) video : @tab X
43509 @tab Video encoding used by the Creature Shock game.
43510
43511 AVS2-P2/IEEE1857.4 : E @tab E
43512 @tab Supported through external libraries libxavs2 and libdavs2
43513
43514 AVS3-P2/IEEE1857.10 : @tab E
43515 @tab Supported through external library libuavs3d
43516
43517 AYUV : X @tab X
43518 @tab Microsoft uncompressed packed 4:4:4:4
43519
43520 Beam Software VB : @tab X
43521 Bethesda VID video : @tab X
43522 @tab Used in some games from Bethesda Softworks.
43523
43524 Bink Video : @tab X
43525 BitJazz SheerVideo : @tab X
43526 Bitmap Brothers JV video : @tab X
43527 y41p Brooktree uncompressed 4:1:1 12-bit : X @tab X
43528 Brooktree ProSumer Video : @tab X
43529 @tab fourcc: BT20
43530
43531 Brute Force & Ignorance : @tab X
43532 @tab Used in the game Flash Traffic: City of Angels.
43533
43534 C93 video : @tab X
43535 @tab Codec used in Cyberia game.
43536
43537 CamStudio : @tab X
43538 @tab fourcc: CSCD
43539
43540 CD+G : @tab X
43541 @tab Video codec for CD+G karaoke disks
43542
43543 CDXL : @tab X
43544 @tab Amiga CD video codec
43545
43546 Chinese AVS video : E @tab X
43547 @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
43548
43549 Delphine Software International CIN video : @tab X
43550 @tab Codec used in Delphine Software International games.
43551
43552 Discworld II BMV Video : @tab X
43553 CineForm HD : X @tab X
43554 Canopus HQ : @tab X
43555 Canopus HQA : @tab X
43556 Canopus HQX : @tab X
43557 Canopus Lossless Codec : @tab X
43558 CDToons : @tab X
43559 @tab Codec used in various Broderbund games.
43560
43561 Cinepak : @tab X
43562 Cirrus Logic AccuPak : X @tab X
43563 @tab fourcc: CLJR
43564
43565 CPiA Video Format : @tab X
43566 Creative YUV (CYUV) : @tab X
43567 DFA : @tab X
43568 @tab Codec used in Chronomaster game.
43569
43570 Dirac : E @tab X
43571 @tab supported though the native vc2 (Dirac Pro) encoder
43572
43573 Deluxe Paint Animation : @tab X
43574 DNxHD : X @tab X
43575 @tab aka SMPTE VC3
43576
43577 Duck TrueMotion 1.0 : @tab X
43578 @tab fourcc: DUCK
43579
43580 Duck TrueMotion 2.0 : @tab X
43581 @tab fourcc: TM20
43582
43583 Duck TrueMotion 2.0 RT : @tab X
43584 @tab fourcc: TR20
43585
43586 DV (Digital Video) : X @tab X
43587 Dxtory capture format : @tab X
43588 Feeble Files/ScummVM DXA : @tab X
43589 @tab Codec originally used in Feeble Files game.
43590
43591 Electronic Arts CMV video : @tab X
43592 @tab Used in NHL 95 game.
43593
43594 Electronic Arts Madcow video : @tab X
43595 Electronic Arts TGV video : @tab X
43596 Electronic Arts TGQ video : @tab X
43597 Electronic Arts TQI video : @tab X
43598 Escape 124 : @tab X
43599 Escape 130 : @tab X
43600 FFmpeg video codec #1 : X @tab X
43601 @tab lossless codec (fourcc: FFV1)
43602
43603 Flash Screen Video v1 : X @tab X
43604 @tab fourcc: FSV1
43605
43606 Flash Screen Video v2 : X @tab X
43607 Flash Video (FLV) : X @tab X
43608 @tab Sorenson H.263 used in Flash
43609
43610 FM Screen Capture Codec : @tab X
43611 Forward Uncompressed : @tab X
43612 Fraps : @tab X
43613 Go2Meeting : @tab X
43614 @tab fourcc: G2M2, G2M3
43615
43616 Go2Webinar : @tab X
43617 @tab fourcc: G2M4
43618
43619 Gremlin Digital Video : @tab X
43620 H.261 : X @tab X
43621 H.263 / H.263-1996 : X @tab X
43622 H.263+ / H.263-1998 / H.263 version 2 : X @tab X
43623 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 : E @tab X
43624 @tab encoding supported through external library libx264 and OpenH264
43625
43626 HEVC : X @tab X
43627 @tab encoding supported through external library libx265 and libkvazaar
43628
43629 HNM version 4 : @tab X
43630 HuffYUV : X @tab X
43631 HuffYUV FFmpeg variant : X @tab X
43632 IBM Ultimotion : @tab X
43633 @tab fourcc: ULTI
43634
43635 id Cinematic video : @tab X
43636 @tab Used in Quake II.
43637
43638 id RoQ video : X @tab X
43639 @tab Used in Quake III, Jedi Knight 2, other computer games.
43640
43641 IFF ILBM : @tab X
43642 @tab IFF interleaved bitmap
43643
43644 IFF ByteRun1 : @tab X
43645 @tab IFF run length encoded bitmap
43646
43647 Infinity IMM4 : @tab X
43648 Intel H.263 : @tab X
43649 Intel Indeo 2 : @tab X
43650 Intel Indeo 3 : @tab X
43651 Intel Indeo 4 : @tab X
43652 Intel Indeo 5 : @tab X
43653 Interplay C93 : @tab X
43654 @tab Used in the game Cyberia from Interplay.
43655
43656 Interplay MVE video : @tab X
43657 @tab Used in Interplay .MVE files.
43658
43659 J2K : X @tab X
43660 Karl Morton's video codec : @tab X
43661 @tab Codec used in Worms games.
43662
43663 Kega Game Video (KGV1) : @tab X
43664 @tab Kega emulator screen capture codec.
43665
43666 Lagarith : @tab X
43667 LCL (LossLess Codec Library) MSZH : @tab X
43668 LCL (LossLess Codec Library) ZLIB : E @tab E
43669 LOCO : @tab X
43670 LucasArts SANM/Smush : @tab X
43671 @tab Used in LucasArts games / SMUSH animations.
43672
43673 lossless MJPEG : X @tab X
43674 MagicYUV Video : X @tab X
43675 Mandsoft Screen Capture Codec : @tab X
43676 Microsoft ATC Screen : @tab X
43677 @tab Also known as Microsoft Screen 3.
43678
43679 Microsoft Expression Encoder Screen : @tab X
43680 @tab Also known as Microsoft Titanium Screen 2.
43681
43682 Microsoft RLE : @tab X
43683 Microsoft Screen 1 : @tab X
43684 @tab Also known as Windows Media Video V7 Screen.
43685
43686 Microsoft Screen 2 : @tab X
43687 @tab Also known as Windows Media Video V9 Screen.
43688
43689 Microsoft Video 1 : @tab X
43690 Mimic : @tab X
43691 @tab Used in MSN Messenger Webcam streams.
43692
43693 Miro VideoXL : @tab X
43694 @tab fourcc: VIXL
43695
43696 MJPEG (Motion JPEG) : X @tab X
43697 Mobotix MxPEG video : @tab X
43698 Motion Pixels video : @tab X
43699 MPEG-1 video : X @tab X
43700 MPEG-2 video : X @tab X
43701 MPEG-4 part 2 : X @tab X
43702 @tab libxvidcore can be used alternatively for encoding.
43703
43704 MPEG-4 part 2 Microsoft variant version 1 : @tab X
43705 MPEG-4 part 2 Microsoft variant version 2 : X @tab X
43706 MPEG-4 part 2 Microsoft variant version 3 : X @tab X
43707 Newtek SpeedHQ : X @tab X
43708 Nintendo Gamecube THP video : @tab X
43709 NotchLC : @tab X
43710 NuppelVideo/RTjpeg : @tab X
43711 @tab Video encoding used in NuppelVideo files.
43712
43713 On2 VP3 : @tab X
43714 @tab still experimental
43715
43716 On2 VP4 : @tab X
43717 @tab fourcc: VP40
43718
43719 On2 VP5 : @tab X
43720 @tab fourcc: VP50
43721
43722 On2 VP6 : @tab X
43723 @tab fourcc: VP60,VP61,VP62
43724
43725 On2 VP7 : @tab X
43726 @tab fourcc: VP70,VP71
43727
43728 VP8 : E @tab X
43729 @tab fourcc: VP80, encoding supported through external library libvpx
43730
43731 VP9 : E @tab X
43732 @tab encoding supported through external library libvpx
43733
43734 Pinnacle TARGA CineWave YUV16 : @tab X
43735 @tab fourcc: Y216
43736
43737 Q-team QPEG : @tab X
43738 @tab fourccs: QPEG, Q1.0, Q1.1
43739
43740 QuickTime 8BPS video : @tab X
43741 QuickTime Animation (RLE) video : X @tab X
43742 @tab fourcc: 'rle '
43743
43744 QuickTime Graphics (SMC) : X @tab X
43745 @tab fourcc: 'smc '
43746
43747 QuickTime video (RPZA) : X @tab X
43748 @tab fourcc: rpza
43749
43750 R10K AJA Kona 10-bit RGB Codec : X @tab X
43751 R210 Quicktime Uncompressed RGB 10-bit : X @tab X
43752 Raw Video : X @tab X
43753 RealVideo 1.0 : X @tab X
43754 RealVideo 2.0 : X @tab X
43755 RealVideo 3.0 : @tab X
43756 @tab still far from ideal
43757
43758 RealVideo 4.0 : @tab X
43759 Renderware TXD (TeXture Dictionary) : @tab X
43760 @tab Texture dictionaries used by the Renderware Engine.
43761
43762 RL2 video : @tab X
43763 @tab used in some games by Entertainment Software Partners
43764
43765 ScreenPressor : @tab X
43766 Screenpresso : @tab X
43767 Screen Recorder Gold Codec : @tab X
43768 Sierra VMD video : @tab X
43769 @tab Used in Sierra VMD files.
43770
43771 Silicon Graphics Motion Video Compressor 1 (MVC1) : @tab X
43772 Silicon Graphics Motion Video Compressor 2 (MVC2) : @tab X
43773 Silicon Graphics RLE 8-bit video : @tab X
43774 Smacker video : @tab X
43775 @tab Video encoding used in Smacker.
43776
43777 SMPTE VC-1 : @tab X
43778 Snow : X @tab X
43779 @tab experimental wavelet codec (fourcc: SNOW)
43780
43781 Sony PlayStation MDEC (Motion DECoder) : @tab X
43782 Sorenson Vector Quantizer 1 : X @tab X
43783 @tab fourcc: SVQ1
43784
43785 Sorenson Vector Quantizer 3 : @tab X
43786 @tab fourcc: SVQ3
43787
43788 Sunplus JPEG (SP5X) : @tab X
43789 @tab fourcc: SP5X
43790
43791 TechSmith Screen Capture Codec : @tab X
43792 @tab fourcc: TSCC
43793
43794 TechSmith Screen Capture Codec 2 : @tab X
43795 @tab fourcc: TSC2
43796
43797 Theora : E @tab X
43798 @tab encoding supported through external library libtheora
43799
43800 Tiertex Limited SEQ video : @tab X
43801 @tab Codec used in DOS CD-ROM FlashBack game.
43802
43803 Ut Video : X @tab X
43804 v210 QuickTime uncompressed 4:2:2 10-bit : X @tab X
43805 v308 QuickTime uncompressed 4:4:4 : X @tab X
43806 v408 QuickTime uncompressed 4:4:4:4 : X @tab X
43807 v410 QuickTime uncompressed 4:4:4 10-bit : X @tab X
43808 VBLE Lossless Codec : @tab X
43809 VMware Screen Codec / VMware Video : @tab X
43810 @tab Codec used in videos captured by VMware.
43811
43812 Westwood Studios VQA (Vector Quantized Animation) video : @tab
43813 X
43814 Windows Media Image : @tab X
43815 Windows Media Video 7 : X @tab X
43816 Windows Media Video 8 : X @tab X
43817 Windows Media Video 9 : @tab X
43818 @tab not completely working
43819
43820 Wing Commander III / Xan : @tab X
43821 @tab Used in Wing Commander III .MVE files.
43822
43823 Wing Commander IV / Xan : @tab X
43824 @tab Used in Wing Commander IV.
43825
43826 Winnov WNV1 : @tab X
43827 WMV7 : X @tab X
43828 YAMAHA SMAF : X @tab X
43829 Psygnosis YOP Video : @tab X
43830 yuv4 : X @tab X
43831 @tab libquicktime uncompressed packed 4:2:0
43832
43833 ZeroCodec Lossless Video : @tab X
43834 ZLIB : X @tab X
43835 @tab part of LCL, encoder experimental
43836
43837 Zip Motion Blocks Video : X @tab X
43838 @tab Encoder works only in PAL8.
43839
43840 "X" means that the feature in that column (encoding / decoding) is
43841 supported.
43842
43843 "E" means that support is provided through an external library.
43844
43845 Audio Codecs
43846 Name : Encoding @tab Decoding @tab Comments
43847 8SVX exponential : @tab X
43848 8SVX fibonacci : @tab X
43849 AAC : EX @tab X
43850 @tab encoding supported through internal encoder and external library libfdk-aac
43851
43852 AAC+ : E @tab IX
43853 @tab encoding supported through external library libfdk-aac
43854
43855 AC-3 : IX @tab IX
43856 ACELP.KELVIN : @tab X
43857 ADPCM 4X Movie : @tab X
43858 ADPCM Yamaha AICA : @tab X
43859 ADPCM AmuseGraphics Movie : @tab X
43860 ADPCM Argonaut Games : X @tab X
43861 ADPCM CDROM XA : @tab X
43862 ADPCM Creative Technology : @tab X
43863 @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
43864
43865 ADPCM Electronic Arts : @tab X
43866 @tab Used in various EA titles.
43867
43868 ADPCM Electronic Arts Maxis CDROM XS : @tab X
43869 @tab Used in Sim City 3000.
43870
43871 ADPCM Electronic Arts R1 : @tab X
43872 ADPCM Electronic Arts R2 : @tab X
43873 ADPCM Electronic Arts R3 : @tab X
43874 ADPCM Electronic Arts XAS : @tab X
43875 ADPCM G.722 : X @tab X
43876 ADPCM G.726 : X @tab X
43877 ADPCM IMA Acorn Replay : @tab X
43878 ADPCM IMA AMV : X @tab X
43879 @tab Used in AMV files
43880
43881 ADPCM IMA Cunning Developments : @tab X
43882 ADPCM IMA Electronic Arts EACS : @tab X
43883 ADPCM IMA Electronic Arts SEAD : @tab X
43884 ADPCM IMA Funcom : @tab X
43885 ADPCM IMA High Voltage Software ALP : X @tab X
43886 ADPCM IMA QuickTime : X @tab X
43887 ADPCM IMA Simon & Schuster Interactive : X @tab X
43888 ADPCM IMA Ubisoft APM : X @tab X
43889 ADPCM IMA Loki SDL MJPEG : @tab X
43890 ADPCM IMA WAV : X @tab X
43891 ADPCM IMA Westwood : @tab X
43892 ADPCM ISS IMA : @tab X
43893 @tab Used in FunCom games.
43894
43895 ADPCM IMA Dialogic : @tab X
43896 ADPCM IMA Duck DK3 : @tab X
43897 @tab Used in some Sega Saturn console games.
43898
43899 ADPCM IMA Duck DK4 : @tab X
43900 @tab Used in some Sega Saturn console games.
43901
43902 ADPCM IMA Radical : @tab X
43903 ADPCM Microsoft : X @tab X
43904 ADPCM MS IMA : X @tab X
43905 ADPCM Nintendo Gamecube AFC : @tab X
43906 ADPCM Nintendo Gamecube DTK : @tab X
43907 ADPCM Nintendo THP : @tab X
43908 ADPCM Playstation : @tab X
43909 ADPCM QT IMA : X @tab X
43910 ADPCM SEGA CRI ADX : X @tab X
43911 @tab Used in Sega Dreamcast games.
43912
43913 ADPCM Shockwave Flash : X @tab X
43914 ADPCM Sound Blaster Pro 2-bit : @tab X
43915 ADPCM Sound Blaster Pro 2.6-bit : @tab X
43916 ADPCM Sound Blaster Pro 4-bit : @tab X
43917 ADPCM VIMA : @tab X
43918 @tab Used in LucasArts SMUSH animations.
43919
43920 ADPCM Westwood Studios IMA : X @tab X
43921 @tab Used in Westwood Studios games like Command and Conquer.
43922
43923 ADPCM Yamaha : X @tab X
43924 ADPCM Zork : @tab X
43925 AMR-NB : E @tab X
43926 @tab encoding supported through external library libopencore-amrnb
43927
43928 AMR-WB : E @tab X
43929 @tab encoding supported through external library libvo-amrwbenc
43930
43931 Amazing Studio PAF Audio : @tab X
43932 Apple lossless audio : X @tab X
43933 @tab QuickTime fourcc 'alac'
43934
43935 aptX : X @tab X
43936 @tab Used in Bluetooth A2DP
43937
43938 aptX HD : X @tab X
43939 @tab Used in Bluetooth A2DP
43940
43941 ATRAC1 : @tab X
43942 ATRAC3 : @tab X
43943 ATRAC3+ : @tab X
43944 ATRAC9 : @tab X
43945 Bink Audio : @tab X
43946 @tab Used in Bink and Smacker files in many games.
43947
43948 CELT : @tab E
43949 @tab decoding supported through external library libcelt
43950
43951 codec2 : E @tab E
43952 @tab en/decoding supported through external library libcodec2
43953
43954 CRI HCA : @tab X
43955 Delphine Software International CIN audio : @tab X
43956 @tab Codec used in Delphine Software International games.
43957
43958 Digital Speech Standard - Standard Play mode (DSS SP) : @tab X
43959 Discworld II BMV Audio : @tab X
43960 COOK : @tab X
43961 @tab All versions except 5.1 are supported.
43962
43963 DCA (DTS Coherent Acoustics) : X @tab X
43964 @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
43965
43966 Dolby E : @tab X
43967 DPCM Gremlin : @tab X
43968 DPCM id RoQ : X @tab X
43969 @tab Used in Quake III, Jedi Knight 2 and other computer games.
43970
43971 DPCM Interplay : @tab X
43972 @tab Used in various Interplay computer games.
43973
43974 DPCM Squareroot-Delta-Exact : @tab X
43975 @tab Used in various games.
43976
43977 DPCM Sierra Online : @tab X
43978 @tab Used in Sierra Online game audio files.
43979
43980 DPCM Sol : @tab X
43981 DPCM Xan : @tab X
43982 @tab Used in Origin's Wing Commander IV AVI files.
43983
43984 DPCM Xilam DERF : @tab X
43985 DSD (Direct Stream Digital), least significant bit first : @tab X
43986 DSD (Direct Stream Digital), most significant bit first : @tab X
43987 DSD (Direct Stream Digital), least significant bit first, planar :
43988 @tab X
43989 DSD (Direct Stream Digital), most significant bit first, planar :
43990 @tab X
43991 DSP Group TrueSpeech : @tab X
43992 DST (Direct Stream Transfer) : @tab X
43993 DV audio : @tab X
43994 Enhanced AC-3 : X @tab X
43995 EVRC (Enhanced Variable Rate Codec) : @tab X
43996 FLAC (Free Lossless Audio Codec) : X @tab IX
43997 G.723.1 : X @tab X
43998 G.729 : @tab X
43999 GSM : E @tab X
44000 @tab encoding supported through external library libgsm
44001
44002 GSM Microsoft variant : E @tab X
44003 @tab encoding supported through external library libgsm
44004
44005 IAC (Indeo Audio Coder) : @tab X
44006 iLBC (Internet Low Bitrate Codec) : E @tab EX
44007 @tab encoding and decoding supported through external library libilbc
44008
44009 IMC (Intel Music Coder) : @tab X
44010 Interplay ACM : @tab X
44011 MACE (Macintosh Audio Compression/Expansion) 3:1 : @tab X
44012 MACE (Macintosh Audio Compression/Expansion) 6:1 : @tab X
44013 MLP (Meridian Lossless Packing) : X @tab X
44014 @tab Used in DVD-Audio discs.
44015
44016 Monkey's Audio : @tab X
44017 MP1 (MPEG audio layer 1) : @tab IX
44018 MP2 (MPEG audio layer 2) : IX @tab IX
44019 @tab encoding supported also through external library TwoLAME
44020
44021 MP3 (MPEG audio layer 3) : E @tab IX
44022 @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
44023
44024 MPEG-4 Audio Lossless Coding (ALS) : @tab X
44025 Musepack SV7 : @tab X
44026 Musepack SV8 : @tab X
44027 Nellymoser Asao : X @tab X
44028 On2 AVC (Audio for Video Codec) : @tab X
44029 Opus : E @tab X
44030 @tab encoding supported through external library libopus
44031
44032 PCM A-law : X @tab X
44033 PCM mu-law : X @tab X
44034 PCM Archimedes VIDC : X @tab X
44035 PCM signed 8-bit planar : X @tab X
44036 PCM signed 16-bit big-endian planar : X @tab X
44037 PCM signed 16-bit little-endian planar : X @tab X
44038 PCM signed 24-bit little-endian planar : X @tab X
44039 PCM signed 32-bit little-endian planar : X @tab X
44040 PCM 32-bit floating point big-endian : X @tab X
44041 PCM 32-bit floating point little-endian : X @tab X
44042 PCM 64-bit floating point big-endian : X @tab X
44043 PCM 64-bit floating point little-endian : X @tab X
44044 PCM D-Cinema audio signed 24-bit : X @tab X
44045 PCM signed 8-bit : X @tab X
44046 PCM signed 16-bit big-endian : X @tab X
44047 PCM signed 16-bit little-endian : X @tab X
44048 PCM signed 24-bit big-endian : X @tab X
44049 PCM signed 24-bit little-endian : X @tab X
44050 PCM signed 32-bit big-endian : X @tab X
44051 PCM signed 32-bit little-endian : X @tab X
44052 PCM signed 16/20/24-bit big-endian in MPEG-TS : @tab X
44053 PCM unsigned 8-bit : X @tab X
44054 PCM unsigned 16-bit big-endian : X @tab X
44055 PCM unsigned 16-bit little-endian : X @tab X
44056 PCM unsigned 24-bit big-endian : X @tab X
44057 PCM unsigned 24-bit little-endian : X @tab X
44058 PCM unsigned 32-bit big-endian : X @tab X
44059 PCM unsigned 32-bit little-endian : X @tab X
44060 QCELP / PureVoice : @tab X
44061 QDesign Music Codec 1 : @tab X
44062 QDesign Music Codec 2 : @tab X
44063 @tab There are still some distortions.
44064
44065 RealAudio 1.0 (14.4K) : X @tab X
44066 @tab Real 14400 bit/s codec
44067
44068 RealAudio 2.0 (28.8K) : @tab X
44069 @tab Real 28800 bit/s codec
44070
44071 RealAudio 3.0 (dnet) : IX @tab X
44072 @tab Real low bitrate AC-3 codec
44073
44074 RealAudio Lossless : @tab X
44075 RealAudio SIPR / ACELP.NET : @tab X
44076 SBC (low-complexity subband codec) : X @tab X
44077 @tab Used in Bluetooth A2DP
44078
44079 Shorten : @tab X
44080 Sierra VMD audio : @tab X
44081 @tab Used in Sierra VMD files.
44082
44083 Smacker audio : @tab X
44084 SMPTE 302M AES3 audio : X @tab X
44085 Sonic : X @tab X
44086 @tab experimental codec
44087
44088 Sonic lossless : X @tab X
44089 @tab experimental codec
44090
44091 Speex : E @tab EX
44092 @tab supported through external library libspeex
44093
44094 TAK (Tom's lossless Audio Kompressor) : @tab X
44095 True Audio (TTA) : X @tab X
44096 TrueHD : X @tab X
44097 @tab Used in HD-DVD and Blu-Ray discs.
44098
44099 TwinVQ (VQF flavor) : @tab X
44100 VIMA : @tab X
44101 @tab Used in LucasArts SMUSH animations.
44102
44103 Vorbis : E @tab X
44104 @tab A native but very primitive encoder exists.
44105
44106 Voxware MetaSound : @tab X
44107 WavPack : X @tab X
44108 Westwood Audio (SND1) : @tab X
44109 Windows Media Audio 1 : X @tab X
44110 Windows Media Audio 2 : X @tab X
44111 Windows Media Audio Lossless : @tab X
44112 Windows Media Audio Pro : @tab X
44113 Windows Media Audio Voice : @tab X
44114 Xbox Media Audio 1 : @tab X
44115 Xbox Media Audio 2 : @tab X
44116
44117 "X" means that the feature in that column (encoding / decoding) is
44118 supported.
44119
44120 "E" means that support is provided through an external library.
44121
44122 "I" means that an integer-only version is available, too (ensures high
44123 performance on systems without hardware floating point support).
44124
44125 Subtitle Formats
44126 Name : Muxing @tab Demuxing @tab Encoding @tab Decoding
44127 3GPP Timed Text : @tab @tab X @tab X
44128 AQTitle : @tab X @tab @tab X
44129 DVB : X @tab X @tab X @tab X
44130 DVB teletext : @tab X @tab @tab E
44131 DVD : X @tab X @tab X @tab X
44132 JACOsub : X @tab X @tab @tab X
44133 MicroDVD : X @tab X @tab @tab X
44134 MPL2 : @tab X @tab @tab X
44135 MPsub (MPlayer) : @tab X @tab @tab X
44136 PGS : @tab @tab @tab X
44137 PJS (Phoenix) : @tab X @tab @tab X
44138 RealText : @tab X @tab @tab X
44139 SAMI : @tab X @tab @tab X
44140 Spruce format (STL) : @tab X @tab @tab X
44141 SSA/ASS : X @tab X @tab X @tab X
44142 SubRip (SRT) : X @tab X @tab X @tab X
44143 SubViewer v1 : @tab X @tab @tab X
44144 SubViewer : @tab X @tab @tab X
44145 TED Talks captions : @tab X @tab @tab X
44146 TTML : X @tab @tab X @tab
44147 VobSub (IDX+SUB) : @tab X @tab @tab X
44148 VPlayer : @tab X @tab @tab X
44149 WebVTT : X @tab X @tab X @tab X
44150 XSUB : @tab @tab X @tab X
44151
44152 "X" means that the feature is supported.
44153
44154 "E" means that support is provided through an external library.
44155
44156 Network Protocols
44157 Name : Support
44158 AMQP : E
44159 file : X
44160 FTP : X
44161 Gopher : X
44162 Gophers : X
44163 HLS : X
44164 HTTP : X
44165 HTTPS : X
44166 Icecast : X
44167 MMSH : X
44168 MMST : X
44169 pipe : X
44170 Pro-MPEG FEC : X
44171 RTMP : X
44172 RTMPE : X
44173 RTMPS : X
44174 RTMPT : X
44175 RTMPTE : X
44176 RTMPTS : X
44177 RTP : X
44178 SAMBA : E
44179 SCTP : X
44180 SFTP : E
44181 TCP : X
44182 TLS : X
44183 UDP : X
44184 ZMQ : E
44185
44186 "X" means that the protocol is supported.
44187
44188 "E" means that support is provided through an external library.
44189
44190 Input/Output Devices
44191 Name : Input @tab Output
44192 ALSA : X @tab X
44193 BKTR : X @tab
44194 caca : @tab X
44195 DV1394 : X @tab
44196 Lavfi virtual device : X @tab
44197 Linux framebuffer : X @tab X
44198 JACK : X @tab
44199 LIBCDIO : X
44200 LIBDC1394 : X @tab
44201 OpenAL : X
44202 OpenGL : @tab X
44203 OSS : X @tab X
44204 PulseAudio : X @tab X
44205 SDL : @tab X
44206 Video4Linux2 : X @tab X
44207 VfW capture : X @tab
44208 X11 grabbing : X @tab
44209 Win32 grabbing : X @tab
44210
44211 "X" means that input/output is supported.
44212
44213 Timecode
44214 Codec/format : Read @tab Write
44215 AVI : X @tab X
44216 DV : X @tab X
44217 GXF : X @tab X
44218 MOV : X @tab X
44219 MPEG1/2 : X @tab X
44220 MXF : X @tab X
44221
44223 ffmpeg(1), ffplay(1), ffprobe(1), ffmpeg-utils(1), ffmpeg-scaler(1),
44224 ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
44225 ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
44226 ffmpeg-filters(1)
44227
44229 The FFmpeg developers.
44230
44231 For details about the authorship, see the Git history of the project
44232 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
44233 the FFmpeg source directory, or browsing the online repository at
44234 <http://source.ffmpeg.org>.
44235
44236 Maintainers for the specific components are listed in the file
44237 MAINTAINERS in the source code tree.
44238
44239
44240
44241 FFMPEG-ALL(1)