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 -isync input_index (input)
909 Assign an input as a sync source.
910
911 This will take the difference between the start times of the target
912 and reference inputs and offset the timestamps of the target file
913 by that difference. The source timestamps of the two inputs should
914 derive from the same clock source for expected results. If "copyts"
915 is set then "start_at_zero" must also be set. If either of the
916 inputs has no starting timestamp then no sync adjustment is made.
917
918 Acceptable values are those that refer to a valid ffmpeg input
919 index. If the sync reference is the target index itself or -1, then
920 no adjustment is made to target timestamps. A sync reference may
921 not itself be synced to any other input.
922
923 Default value is -1.
924
925 -itsoffset offset (input)
926 Set the input time offset.
927
928 offset must be a time duration specification, see the Time duration
929 section in the ffmpeg-utils(1) manual.
930
931 The offset is added to the timestamps of the input files.
932 Specifying a positive offset means that the corresponding streams
933 are delayed by the time duration specified in offset.
934
935 -itsscale scale (input,per-stream)
936 Rescale input timestamps. scale should be a floating point number.
937
938 -timestamp date (output)
939 Set the recording timestamp in the container.
940
941 date must be a date specification, see the Date section in the
942 ffmpeg-utils(1) manual.
943
944 -metadata[:metadata_specifier] key=value (output,per-metadata)
945 Set a metadata key/value pair.
946
947 An optional metadata_specifier may be given to set metadata on
948 streams, chapters or programs. See "-map_metadata" documentation
949 for details.
950
951 This option overrides metadata set with "-map_metadata". It is also
952 possible to delete metadata by using an empty value.
953
954 For example, for setting the title in the output file:
955
956 ffmpeg -i in.avi -metadata title="my title" out.flv
957
958 To set the language of the first audio stream:
959
960 ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
961
962 -disposition[:stream_specifier] value (output,per-stream)
963 Sets the disposition for a stream.
964
965 By default, the disposition is copied from the input stream, unless
966 the output stream this option applies to is fed by a complex
967 filtergraph - in that case the disposition is unset by default.
968
969 value is a sequence of items separated by '+' or '-'. The first
970 item may also be prefixed with '+' or '-', in which case this
971 option modifies the default value. Otherwise (the first item is not
972 prefixed) this options overrides the default value. A '+' prefix
973 adds the given disposition, '-' removes it. It is also possible to
974 clear the disposition by setting it to 0.
975
976 If no "-disposition" options were specified for an output file,
977 ffmpeg will automatically set the 'default' disposition on the
978 first stream of each type, when there are multiple streams of this
979 type in the output file and no stream of that type is already
980 marked as default.
981
982 The "-dispositions" option lists the known dispositions.
983
984 For example, to make the second audio stream the default stream:
985
986 ffmpeg -i in.mkv -c copy -disposition:a:1 default out.mkv
987
988 To make the second subtitle stream the default stream and remove
989 the default disposition from the first subtitle stream:
990
991 ffmpeg -i in.mkv -c copy -disposition:s:0 0 -disposition:s:1 default out.mkv
992
993 To add an embedded cover/thumbnail:
994
995 ffmpeg -i in.mp4 -i IMAGE -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4
996
997 Not all muxers support embedded thumbnails, and those who do, only
998 support a few formats, like JPEG or PNG.
999
1000 -program
1001 [title=title:][program_num=program_num:]st=stream[:st=stream...]
1002 (output)
1003 Creates a program with the specified title, program_num and adds
1004 the specified stream(s) to it.
1005
1006 -target type (output)
1007 Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50"). type
1008 may be prefixed with "pal-", "ntsc-" or "film-" to use the
1009 corresponding standard. All the format options (bitrate, codecs,
1010 buffer sizes) are then set automatically. You can just type:
1011
1012 ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
1013
1014 Nevertheless you can specify additional options as long as you know
1015 they do not conflict with the standard, as in:
1016
1017 ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
1018
1019 The parameters set for each target are as follows.
1020
1021 VCD
1022
1023 <pal>:
1024 -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1025 -s 352x288 -r 25
1026 -codec:v mpeg1video -g 15 -b:v 1150k -maxrate:v 1150k -minrate:v 1150k -bufsize:v 327680
1027 -ar 44100 -ac 2
1028 -codec:a mp2 -b:a 224k
1029
1030 <ntsc>:
1031 -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1032 -s 352x240 -r 30000/1001
1033 -codec:v mpeg1video -g 18 -b:v 1150k -maxrate:v 1150k -minrate:v 1150k -bufsize:v 327680
1034 -ar 44100 -ac 2
1035 -codec:a mp2 -b:a 224k
1036
1037 <film>:
1038 -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1039 -s 352x240 -r 24000/1001
1040 -codec:v mpeg1video -g 18 -b:v 1150k -maxrate:v 1150k -minrate:v 1150k -bufsize:v 327680
1041 -ar 44100 -ac 2
1042 -codec:a mp2 -b:a 224k
1043
1044 SVCD
1045
1046 <pal>:
1047 -f svcd -packetsize 2324
1048 -s 480x576 -pix_fmt yuv420p -r 25
1049 -codec:v mpeg2video -g 15 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1050 -ar 44100
1051 -codec:a mp2 -b:a 224k
1052
1053 <ntsc>:
1054 -f svcd -packetsize 2324
1055 -s 480x480 -pix_fmt yuv420p -r 30000/1001
1056 -codec:v mpeg2video -g 18 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1057 -ar 44100
1058 -codec:a mp2 -b:a 224k
1059
1060 <film>:
1061 -f svcd -packetsize 2324
1062 -s 480x480 -pix_fmt yuv420p -r 24000/1001
1063 -codec:v mpeg2video -g 18 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1064 -ar 44100
1065 -codec:a mp2 -b:a 224k
1066
1067 DVD
1068
1069 <pal>:
1070 -f dvd -muxrate 10080k -packetsize 2048
1071 -s 720x576 -pix_fmt yuv420p -r 25
1072 -codec:v mpeg2video -g 15 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1073 -ar 48000
1074 -codec:a ac3 -b:a 448k
1075
1076 <ntsc>:
1077 -f dvd -muxrate 10080k -packetsize 2048
1078 -s 720x480 -pix_fmt yuv420p -r 30000/1001
1079 -codec:v mpeg2video -g 18 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1080 -ar 48000
1081 -codec:a ac3 -b:a 448k
1082
1083 <film>:
1084 -f dvd -muxrate 10080k -packetsize 2048
1085 -s 720x480 -pix_fmt yuv420p -r 24000/1001
1086 -codec:v mpeg2video -g 18 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1087 -ar 48000
1088 -codec:a ac3 -b:a 448k
1089
1090 DV
1091
1092 <pal>:
1093 -f dv
1094 -s 720x576 -pix_fmt yuv420p -r 25
1095 -ar 48000 -ac 2
1096
1097 <ntsc>:
1098 -f dv
1099 -s 720x480 -pix_fmt yuv411p -r 30000/1001
1100 -ar 48000 -ac 2
1101
1102 <film>:
1103 -f dv
1104 -s 720x480 -pix_fmt yuv411p -r 24000/1001
1105 -ar 48000 -ac 2
1106
1107 The "dv50" target is identical to the "dv" target except that the
1108 pixel format set is "yuv422p" for all three standards.
1109
1110 Any user-set value for a parameter above will override the target
1111 preset value. In that case, the output may not comply with the
1112 target standard.
1113
1114 -dn (input/output)
1115 As an input option, blocks all data streams of a file from being
1116 filtered or being automatically selected or mapped for any output.
1117 See "-discard" option to disable streams individually.
1118
1119 As an output option, disables data recording i.e. automatic
1120 selection or mapping of any data stream. For full manual control
1121 see the "-map" option.
1122
1123 -dframes number (output)
1124 Set the number of data frames to output. This is an obsolete alias
1125 for "-frames:d", which you should use instead.
1126
1127 -frames[:stream_specifier] framecount (output,per-stream)
1128 Stop writing to the stream after framecount frames.
1129
1130 -q[:stream_specifier] q (output,per-stream)
1131 -qscale[:stream_specifier] q (output,per-stream)
1132 Use fixed quality scale (VBR). The meaning of q/qscale is codec-
1133 dependent. If qscale is used without a stream_specifier then it
1134 applies only to the video stream, this is to maintain compatibility
1135 with previous behavior and as specifying the same codec specific
1136 value to 2 different codecs that is audio and video generally is
1137 not what is intended when no stream_specifier is used.
1138
1139 -filter[:stream_specifier] filtergraph (output,per-stream)
1140 Create the filtergraph specified by filtergraph and use it to
1141 filter the stream.
1142
1143 filtergraph is a description of the filtergraph to apply to the
1144 stream, and must have a single input and a single output of the
1145 same type of the stream. In the filtergraph, the input is
1146 associated to the label "in", and the output to the label "out".
1147 See the ffmpeg-filters manual for more information about the
1148 filtergraph syntax.
1149
1150 See the -filter_complex option if you want to create filtergraphs
1151 with multiple inputs and/or outputs.
1152
1153 -filter_script[:stream_specifier] filename (output,per-stream)
1154 This option is similar to -filter, the only difference is that its
1155 argument is the name of the file from which a filtergraph
1156 description is to be read.
1157
1158 -reinit_filter[:stream_specifier] integer (input,per-stream)
1159 This boolean option determines if the filtergraph(s) to which this
1160 stream is fed gets reinitialized when input frame parameters change
1161 mid-stream. This option is enabled by default as most video and all
1162 audio filters cannot handle deviation in input frame properties.
1163 Upon reinitialization, existing filter state is lost, like e.g. the
1164 frame count "n" reference available in some filters. Any frames
1165 buffered at time of reinitialization are lost. The properties
1166 where a change triggers reinitialization are, for video, frame
1167 resolution or pixel format; for audio, sample format, sample rate,
1168 channel count or channel layout.
1169
1170 -filter_threads nb_threads (global)
1171 Defines how many threads are used to process a filter pipeline.
1172 Each pipeline will produce a thread pool with this many threads
1173 available for parallel processing. The default is the number of
1174 available CPUs.
1175
1176 -pre[:stream_specifier] preset_name (output,per-stream)
1177 Specify the preset for matching stream(s).
1178
1179 -stats (global)
1180 Print encoding progress/statistics. It is on by default, to
1181 explicitly disable it you need to specify "-nostats".
1182
1183 -stats_period time (global)
1184 Set period at which encoding progress/statistics are updated.
1185 Default is 0.5 seconds.
1186
1187 -progress url (global)
1188 Send program-friendly progress information to url.
1189
1190 Progress information is written periodically and at the end of the
1191 encoding process. It is made of "key=value" lines. key consists of
1192 only alphanumeric characters. The last key of a sequence of
1193 progress information is always "progress".
1194
1195 The update period is set using "-stats_period".
1196
1197 -stdin
1198 Enable interaction on standard input. On by default unless standard
1199 input is used as an input. To explicitly disable interaction you
1200 need to specify "-nostdin".
1201
1202 Disabling interaction on standard input is useful, for example, if
1203 ffmpeg is in the background process group. Roughly the same result
1204 can be achieved with "ffmpeg ... < /dev/null" but it requires a
1205 shell.
1206
1207 -debug_ts (global)
1208 Print timestamp information. It is off by default. This option is
1209 mostly useful for testing and debugging purposes, and the output
1210 format may change from one version to another, so it should not be
1211 employed by portable scripts.
1212
1213 See also the option "-fdebug ts".
1214
1215 -attach filename (output)
1216 Add an attachment to the output file. This is supported by a few
1217 formats like Matroska for e.g. fonts used in rendering subtitles.
1218 Attachments are implemented as a specific type of stream, so this
1219 option will add a new stream to the file. It is then possible to
1220 use per-stream options on this stream in the usual way. Attachment
1221 streams created with this option will be created after all the
1222 other streams (i.e. those created with "-map" or automatic
1223 mappings).
1224
1225 Note that for Matroska you also have to set the mimetype metadata
1226 tag:
1227
1228 ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
1229
1230 (assuming that the attachment stream will be third in the output
1231 file).
1232
1233 -dump_attachment[:stream_specifier] filename (input,per-stream)
1234 Extract the matching attachment stream into a file named filename.
1235 If filename is empty, then the value of the "filename" metadata tag
1236 will be used.
1237
1238 E.g. to extract the first attachment to a file named 'out.ttf':
1239
1240 ffmpeg -dump_attachment:t:0 out.ttf -i INPUT
1241
1242 To extract all attachments to files determined by the "filename"
1243 tag:
1244
1245 ffmpeg -dump_attachment:t "" -i INPUT
1246
1247 Technical note -- attachments are implemented as codec extradata,
1248 so this option can actually be used to extract extradata from any
1249 stream, not just attachments.
1250
1251 Video Options
1252 -vframes number (output)
1253 Set the number of video frames to output. This is an obsolete alias
1254 for "-frames:v", which you should use instead.
1255
1256 -r[:stream_specifier] fps (input/output,per-stream)
1257 Set frame rate (Hz value, fraction or abbreviation).
1258
1259 As an input option, ignore any timestamps stored in the file and
1260 instead generate timestamps assuming constant frame rate fps. This
1261 is not the same as the -framerate option used for some input
1262 formats like image2 or v4l2 (it used to be the same in older
1263 versions of FFmpeg). If in doubt use -framerate instead of the
1264 input option -r.
1265
1266 As an output option, duplicate or drop input frames to achieve
1267 constant output frame rate fps.
1268
1269 -fpsmax[:stream_specifier] fps (output,per-stream)
1270 Set maximum frame rate (Hz value, fraction or abbreviation).
1271
1272 Clamps output frame rate when output framerate is auto-set and is
1273 higher than this value. Useful in batch processing or when input
1274 framerate is wrongly detected as very high. It cannot be set
1275 together with "-r". It is ignored during streamcopy.
1276
1277 -s[:stream_specifier] size (input/output,per-stream)
1278 Set frame size.
1279
1280 As an input option, this is a shortcut for the video_size private
1281 option, recognized by some demuxers for which the frame size is
1282 either not stored in the file or is configurable -- e.g. raw video
1283 or video grabbers.
1284
1285 As an output option, this inserts the "scale" video filter to the
1286 end of the corresponding filtergraph. Please use the "scale" filter
1287 directly to insert it at the beginning or some other place.
1288
1289 The format is wxh (default - same as source).
1290
1291 -aspect[:stream_specifier] aspect (output,per-stream)
1292 Set the video display aspect ratio specified by aspect.
1293
1294 aspect can be a floating point number string, or a string of the
1295 form num:den, where num and den are the numerator and denominator
1296 of the aspect ratio. For example "4:3", "16:9", "1.3333", and
1297 "1.7777" are valid argument values.
1298
1299 If used together with -vcodec copy, it will affect the aspect ratio
1300 stored at container level, but not the aspect ratio stored in
1301 encoded frames, if it exists.
1302
1303 -vn (input/output)
1304 As an input option, blocks all video streams of a file from being
1305 filtered or being automatically selected or mapped for any output.
1306 See "-discard" option to disable streams individually.
1307
1308 As an output option, disables video recording i.e. automatic
1309 selection or mapping of any video stream. For full manual control
1310 see the "-map" option.
1311
1312 -vcodec codec (output)
1313 Set the video codec. This is an alias for "-codec:v".
1314
1315 -pass[:stream_specifier] n (output,per-stream)
1316 Select the pass number (1 or 2). It is used to do two-pass video
1317 encoding. The statistics of the video are recorded in the first
1318 pass into a log file (see also the option -passlogfile), and in the
1319 second pass that log file is used to generate the video at the
1320 exact requested bitrate. On pass 1, you may just deactivate audio
1321 and set output to null, examples for Windows and Unix:
1322
1323 ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
1324 ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
1325
1326 -passlogfile[:stream_specifier] prefix (output,per-stream)
1327 Set two-pass log file name prefix to prefix, the default file name
1328 prefix is ``ffmpeg2pass''. The complete file name will be
1329 PREFIX-N.log, where N is a number specific to the output stream
1330
1331 -vf filtergraph (output)
1332 Create the filtergraph specified by filtergraph and use it to
1333 filter the stream.
1334
1335 This is an alias for "-filter:v", see the -filter option.
1336
1337 -autorotate
1338 Automatically rotate the video according to file metadata. Enabled
1339 by default, use -noautorotate to disable it.
1340
1341 -autoscale
1342 Automatically scale the video according to the resolution of first
1343 frame. Enabled by default, use -noautoscale to disable it. When
1344 autoscale is disabled, all output frames of filter graph might not
1345 be in the same resolution and may be inadequate for some
1346 encoder/muxer. Therefore, it is not recommended to disable it
1347 unless you really know what you are doing. Disable autoscale at
1348 your own risk.
1349
1350 Advanced Video options
1351 -pix_fmt[:stream_specifier] format (input/output,per-stream)
1352 Set pixel format. Use "-pix_fmts" to show all the supported pixel
1353 formats. If the selected pixel format can not be selected, ffmpeg
1354 will print a warning and select the best pixel format supported by
1355 the encoder. If pix_fmt is prefixed by a "+", ffmpeg will exit
1356 with an error if the requested pixel format can not be selected,
1357 and automatic conversions inside filtergraphs are disabled. If
1358 pix_fmt is a single "+", ffmpeg selects the same pixel format as
1359 the input (or graph output) and automatic conversions are disabled.
1360
1361 -sws_flags flags (input/output)
1362 Set SwScaler flags.
1363
1364 -rc_override[:stream_specifier] override (output,per-stream)
1365 Rate control override for specific intervals, formatted as
1366 "int,int,int" list separated with slashes. Two first values are the
1367 beginning and end frame numbers, last one is quantizer to use if
1368 positive, or quality factor if negative.
1369
1370 -ilme
1371 Force interlacing support in encoder (MPEG-2 and MPEG-4 only). Use
1372 this option if your input file is interlaced and you want to keep
1373 the interlaced format for minimum losses. The alternative is to
1374 deinterlace the input stream by use of a filter such as "yadif" or
1375 "bwdif", but deinterlacing introduces losses.
1376
1377 -psnr
1378 Calculate PSNR of compressed frames.
1379
1380 -vstats
1381 Dump video coding statistics to vstats_HHMMSS.log.
1382
1383 -vstats_file file
1384 Dump video coding statistics to file.
1385
1386 -vstats_version file
1387 Specifies which version of the vstats format to use. Default is 2.
1388
1389 version = 1 :
1390
1391 "frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d s_size= %8.0fkB time=
1392 %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s"
1393
1394 version > 1:
1395
1396 "out= %2d st= %2d frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d
1397 s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s"
1398
1399 -top[:stream_specifier] n (output,per-stream)
1400 top=1/bottom=0/auto=-1 field first
1401
1402 -dc precision
1403 Intra_dc_precision.
1404
1405 -vtag fourcc/tag (output)
1406 Force video tag/fourcc. This is an alias for "-tag:v".
1407
1408 -qphist (global)
1409 Show QP histogram
1410
1411 -vbsf bitstream_filter
1412 Deprecated see -bsf
1413
1414 -force_key_frames[:stream_specifier] time[,time...] (output,per-stream)
1415 -force_key_frames[:stream_specifier] expr:expr (output,per-stream)
1416 -force_key_frames[:stream_specifier] source (output,per-stream)
1417 -force_key_frames[:stream_specifier] source_no_drop (output,per-stream)
1418 force_key_frames can take arguments of the following form:
1419
1420 time[,time...]
1421 If the argument consists of timestamps, ffmpeg will round the
1422 specified times to the nearest output timestamp as per the
1423 encoder time base and force a keyframe at the first frame
1424 having timestamp equal or greater than the computed timestamp.
1425 Note that if the encoder time base is too coarse, then the
1426 keyframes may be forced on frames with timestamps lower than
1427 the specified time. The default encoder time base is the
1428 inverse of the output framerate but may be set otherwise via
1429 "-enc_time_base".
1430
1431 If one of the times is ""chapters"[delta]", it is expanded into
1432 the time of the beginning of all chapters in the file, shifted
1433 by delta, expressed as a time in seconds. This option can be
1434 useful to ensure that a seek point is present at a chapter mark
1435 or any other designated place in the output file.
1436
1437 For example, to insert a key frame at 5 minutes, plus key
1438 frames 0.1 second before the beginning of every chapter:
1439
1440 -force_key_frames 0:05:00,chapters-0.1
1441
1442 expr:expr
1443 If the argument is prefixed with "expr:", the string expr is
1444 interpreted like an expression and is evaluated for each frame.
1445 A key frame is forced in case the evaluation is non-zero.
1446
1447 The expression in expr can contain the following constants:
1448
1449 n the number of current processed frame, starting from 0
1450
1451 n_forced
1452 the number of forced frames
1453
1454 prev_forced_n
1455 the number of the previous forced frame, it is "NAN" when
1456 no keyframe was forced yet
1457
1458 prev_forced_t
1459 the time of the previous forced frame, it is "NAN" when no
1460 keyframe was forced yet
1461
1462 t the time of the current processed frame
1463
1464 For example to force a key frame every 5 seconds, you can
1465 specify:
1466
1467 -force_key_frames expr:gte(t,n_forced*5)
1468
1469 To force a key frame 5 seconds after the time of the last
1470 forced one, starting from second 13:
1471
1472 -force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))
1473
1474 source
1475 If the argument is "source", ffmpeg will force a key frame if
1476 the current frame being encoded is marked as a key frame in its
1477 source.
1478
1479 source_no_drop
1480 If the argument is "source_no_drop", ffmpeg will force a key
1481 frame if the current frame being encoded is marked as a key
1482 frame in its source. In cases where this particular source
1483 frame has to be dropped, enforce the next available frame to
1484 become a key frame instead.
1485
1486 Note that forcing too many keyframes is very harmful for the
1487 lookahead algorithms of certain encoders: using fixed-GOP options
1488 or similar would be more efficient.
1489
1490 -copyinkf[:stream_specifier] (output,per-stream)
1491 When doing stream copy, copy also non-key frames found at the
1492 beginning.
1493
1494 -init_hw_device type[=name][:device[,key=value...]]
1495 Initialise a new hardware device of type type called name, using
1496 the given device parameters. If no name is specified it will
1497 receive a default name of the form "type%d".
1498
1499 The meaning of device and the following arguments depends on the
1500 device type:
1501
1502 cuda
1503 device is the number of the CUDA device.
1504
1505 The following options are recognized:
1506
1507 primary_ctx
1508 If set to 1, uses the primary device context instead of
1509 creating a new one.
1510
1511 Examples:
1512
1513 -init_hw_device cuda:1
1514 Choose the second device on the system.
1515
1516 -init_hw_device cuda:0,primary_ctx=1
1517 Choose the first device and use the primary device context.
1518
1519 dxva2
1520 device is the number of the Direct3D 9 display adapter.
1521
1522 d3d11va
1523 device is the number of the Direct3D 11 display adapter.
1524
1525 vaapi
1526 device is either an X11 display name or a DRM render node. If
1527 not specified, it will attempt to open the default X11 display
1528 ($DISPLAY) and then the first DRM render node
1529 (/dev/dri/renderD128).
1530
1531 vdpau
1532 device is an X11 display name. If not specified, it will
1533 attempt to open the default X11 display ($DISPLAY).
1534
1535 qsv device selects a value in MFX_IMPL_*. Allowed values are:
1536
1537 auto
1538 sw
1539 hw
1540 auto_any
1541 hw_any
1542 hw2
1543 hw3
1544 hw4
1545
1546 If not specified, auto_any is used. (Note that it may be
1547 easier to achieve the desired result for QSV by creating the
1548 platform-appropriate subdevice (dxva2 or d3d11va or vaapi) and
1549 then deriving a QSV device from that.)
1550
1551 Alternatively, child_device_type helps to choose platform-
1552 appropriate subdevice type. On Windows d3d11va is used as
1553 default subdevice type.
1554
1555 Examples:
1556
1557 -init_hw_device qsv:hw,child_device_type=d3d11va
1558 Choose the GPU subdevice with type d3d11va and create QSV
1559 device with MFX_IMPL_HARDWARE.
1560
1561 -init_hw_device qsv:hw,child_device_type=dxva2
1562 Choose the GPU subdevice with type dxva2 and create QSV
1563 device with MFX_IMPL_HARDWARE.
1564
1565 opencl
1566 device selects the platform and device as
1567 platform_index.device_index.
1568
1569 The set of devices can also be filtered using the key-value
1570 pairs to find only devices matching particular platform or
1571 device strings.
1572
1573 The strings usable as filters are:
1574
1575 platform_profile
1576 platform_version
1577 platform_name
1578 platform_vendor
1579 platform_extensions
1580 device_name
1581 device_vendor
1582 driver_version
1583 device_version
1584 device_profile
1585 device_extensions
1586 device_type
1587
1588 The indices and filters must together uniquely select a device.
1589
1590 Examples:
1591
1592 -init_hw_device opencl:0.1
1593 Choose the second device on the first platform.
1594
1595 -init_hw_device opencl:,device_name=Foo9000
1596 Choose the device with a name containing the string
1597 Foo9000.
1598
1599 -init_hw_device
1600 opencl:1,device_type=gpu,device_extensions=cl_khr_fp16
1601 Choose the GPU device on the second platform supporting the
1602 cl_khr_fp16 extension.
1603
1604 vulkan
1605 If device is an integer, it selects the device by its index in
1606 a system-dependent list of devices. If device is any other
1607 string, it selects the first device with a name containing that
1608 string as a substring.
1609
1610 The following options are recognized:
1611
1612 debug
1613 If set to 1, enables the validation layer, if installed.
1614
1615 linear_images
1616 If set to 1, images allocated by the hwcontext will be
1617 linear and locally mappable.
1618
1619 instance_extensions
1620 A plus separated list of additional instance extensions to
1621 enable.
1622
1623 device_extensions
1624 A plus separated list of additional device extensions to
1625 enable.
1626
1627 Examples:
1628
1629 -init_hw_device vulkan:1
1630 Choose the second device on the system.
1631
1632 -init_hw_device vulkan:RADV
1633 Choose the first device with a name containing the string
1634 RADV.
1635
1636 -init_hw_device
1637 vulkan:0,instance_extensions=VK_KHR_wayland_surface+VK_KHR_xcb_surface
1638 Choose the first device and enable the Wayland and XCB
1639 instance extensions.
1640
1641 -init_hw_device type[=name]@source
1642 Initialise a new hardware device of type type called name, deriving
1643 it from the existing device with the name source.
1644
1645 -init_hw_device list
1646 List all hardware device types supported in this build of ffmpeg.
1647
1648 -filter_hw_device name
1649 Pass the hardware device called name to all filters in any filter
1650 graph. This can be used to set the device to upload to with the
1651 "hwupload" filter, or the device to map to with the "hwmap" filter.
1652 Other filters may also make use of this parameter when they require
1653 a hardware device. Note that this is typically only required when
1654 the input is not already in hardware frames - when it is, filters
1655 will derive the device they require from the context of the frames
1656 they receive as input.
1657
1658 This is a global setting, so all filters will receive the same
1659 device.
1660
1661 -hwaccel[:stream_specifier] hwaccel (input,per-stream)
1662 Use hardware acceleration to decode the matching stream(s). The
1663 allowed values of hwaccel are:
1664
1665 none
1666 Do not use any hardware acceleration (the default).
1667
1668 auto
1669 Automatically select the hardware acceleration method.
1670
1671 vdpau
1672 Use VDPAU (Video Decode and Presentation API for Unix) hardware
1673 acceleration.
1674
1675 dxva2
1676 Use DXVA2 (DirectX Video Acceleration) hardware acceleration.
1677
1678 d3d11va
1679 Use D3D11VA (DirectX Video Acceleration) hardware acceleration.
1680
1681 vaapi
1682 Use VAAPI (Video Acceleration API) hardware acceleration.
1683
1684 qsv Use the Intel QuickSync Video acceleration for video
1685 transcoding.
1686
1687 Unlike most other values, this option does not enable
1688 accelerated decoding (that is used automatically whenever a qsv
1689 decoder is selected), but accelerated transcoding, without
1690 copying the frames into the system memory.
1691
1692 For it to work, both the decoder and the encoder must support
1693 QSV acceleration and no filters must be used.
1694
1695 This option has no effect if the selected hwaccel is not available
1696 or not supported by the chosen decoder.
1697
1698 Note that most acceleration methods are intended for playback and
1699 will not be faster than software decoding on modern CPUs.
1700 Additionally, ffmpeg will usually need to copy the decoded frames
1701 from the GPU memory into the system memory, resulting in further
1702 performance loss. This option is thus mainly useful for testing.
1703
1704 -hwaccel_device[:stream_specifier] hwaccel_device (input,per-stream)
1705 Select a device to use for hardware acceleration.
1706
1707 This option only makes sense when the -hwaccel option is also
1708 specified. It can either refer to an existing device created with
1709 -init_hw_device by name, or it can create a new device as if
1710 -init_hw_device type:hwaccel_device were called immediately before.
1711
1712 -hwaccels
1713 List all hardware acceleration components enabled in this build of
1714 ffmpeg. Actual runtime availability depends on the hardware and
1715 its suitable driver being installed.
1716
1717 Audio Options
1718 -aframes number (output)
1719 Set the number of audio frames to output. This is an obsolete alias
1720 for "-frames:a", which you should use instead.
1721
1722 -ar[:stream_specifier] freq (input/output,per-stream)
1723 Set the audio sampling frequency. For output streams it is set by
1724 default to the frequency of the corresponding input stream. For
1725 input streams this option only makes sense for audio grabbing
1726 devices and raw demuxers and is mapped to the corresponding demuxer
1727 options.
1728
1729 -aq q (output)
1730 Set the audio quality (codec-specific, VBR). This is an alias for
1731 -q:a.
1732
1733 -ac[:stream_specifier] channels (input/output,per-stream)
1734 Set the number of audio channels. For output streams it is set by
1735 default to the number of input audio channels. For input streams
1736 this option only makes sense for audio grabbing devices and raw
1737 demuxers and is mapped to the corresponding demuxer options.
1738
1739 -an (input/output)
1740 As an input option, blocks all audio streams of a file from being
1741 filtered or being automatically selected or mapped for any output.
1742 See "-discard" option to disable streams individually.
1743
1744 As an output option, disables audio recording i.e. automatic
1745 selection or mapping of any audio stream. For full manual control
1746 see the "-map" option.
1747
1748 -acodec codec (input/output)
1749 Set the audio codec. This is an alias for "-codec:a".
1750
1751 -sample_fmt[:stream_specifier] sample_fmt (output,per-stream)
1752 Set the audio sample format. Use "-sample_fmts" to get a list of
1753 supported sample formats.
1754
1755 -af filtergraph (output)
1756 Create the filtergraph specified by filtergraph and use it to
1757 filter the stream.
1758
1759 This is an alias for "-filter:a", see the -filter option.
1760
1761 Advanced Audio options
1762 -atag fourcc/tag (output)
1763 Force audio tag/fourcc. This is an alias for "-tag:a".
1764
1765 -absf bitstream_filter
1766 Deprecated, see -bsf
1767
1768 -guess_layout_max channels (input,per-stream)
1769 If some input channel layout is not known, try to guess only if it
1770 corresponds to at most the specified number of channels. For
1771 example, 2 tells to ffmpeg to recognize 1 channel as mono and 2
1772 channels as stereo but not 6 channels as 5.1. The default is to
1773 always try to guess. Use 0 to disable all guessing.
1774
1775 Subtitle options
1776 -scodec codec (input/output)
1777 Set the subtitle codec. This is an alias for "-codec:s".
1778
1779 -sn (input/output)
1780 As an input option, blocks all subtitle streams of a file from
1781 being filtered or being automatically selected or mapped for any
1782 output. See "-discard" option to disable streams individually.
1783
1784 As an output option, disables subtitle recording i.e. automatic
1785 selection or mapping of any subtitle stream. For full manual
1786 control see the "-map" option.
1787
1788 -sbsf bitstream_filter
1789 Deprecated, see -bsf
1790
1791 Advanced Subtitle options
1792 -fix_sub_duration
1793 Fix subtitles durations. For each subtitle, wait for the next
1794 packet in the same stream and adjust the duration of the first to
1795 avoid overlap. This is necessary with some subtitles codecs,
1796 especially DVB subtitles, because the duration in the original
1797 packet is only a rough estimate and the end is actually marked by
1798 an empty subtitle frame. Failing to use this option when necessary
1799 can result in exaggerated durations or muxing failures due to non-
1800 monotonic timestamps.
1801
1802 Note that this option will delay the output of all data until the
1803 next subtitle packet is decoded: it may increase memory consumption
1804 and latency a lot.
1805
1806 -canvas_size size
1807 Set the size of the canvas used to render subtitles.
1808
1809 Advanced options
1810 -map
1811 [-]input_file_id[:stream_specifier][?][,sync_file_id[:stream_specifier]]
1812 | [linklabel] (output)
1813 Designate one or more input streams as a source for the output
1814 file. Each input stream is identified by the input file index
1815 input_file_id and the input stream index input_stream_id within the
1816 input file. Both indices start at 0. If specified,
1817 sync_file_id:stream_specifier sets which input stream is used as a
1818 presentation sync reference.
1819
1820 The first "-map" option on the command line specifies the source
1821 for output stream 0, the second "-map" option specifies the source
1822 for output stream 1, etc.
1823
1824 A "-" character before the stream identifier creates a "negative"
1825 mapping. It disables matching streams from already created
1826 mappings.
1827
1828 A trailing "?" after the stream index will allow the map to be
1829 optional: if the map matches no streams the map will be ignored
1830 instead of failing. Note the map will still fail if an invalid
1831 input file index is used; such as if the map refers to a non-
1832 existent input.
1833
1834 An alternative [linklabel] form will map outputs from complex
1835 filter graphs (see the -filter_complex option) to the output file.
1836 linklabel must correspond to a defined output link label in the
1837 graph.
1838
1839 For example, to map ALL streams from the first input file to output
1840
1841 ffmpeg -i INPUT -map 0 output
1842
1843 For example, if you have two audio streams in the first input file,
1844 these streams are identified by "0:0" and "0:1". You can use "-map"
1845 to select which streams to place in an output file. For example:
1846
1847 ffmpeg -i INPUT -map 0:1 out.wav
1848
1849 will map the input stream in INPUT identified by "0:1" to the
1850 (single) output stream in out.wav.
1851
1852 For example, to select the stream with index 2 from input file
1853 a.mov (specified by the identifier "0:2"), and stream with index 6
1854 from input b.mov (specified by the identifier "1:6"), and copy them
1855 to the output file out.mov:
1856
1857 ffmpeg -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
1858
1859 To select all video and the third audio stream from an input file:
1860
1861 ffmpeg -i INPUT -map 0:v -map 0:a:2 OUTPUT
1862
1863 To map all the streams except the second audio, use negative
1864 mappings
1865
1866 ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT
1867
1868 To map the video and audio streams from the first input, and using
1869 the trailing "?", ignore the audio mapping if no audio streams
1870 exist in the first input:
1871
1872 ffmpeg -i INPUT -map 0:v -map 0:a? OUTPUT
1873
1874 To pick the English audio stream:
1875
1876 ffmpeg -i INPUT -map 0:m:language:eng OUTPUT
1877
1878 Note that using this option disables the default mappings for this
1879 output file.
1880
1881 -ignore_unknown
1882 Ignore input streams with unknown type instead of failing if
1883 copying such streams is attempted.
1884
1885 -copy_unknown
1886 Allow input streams with unknown type to be copied instead of
1887 failing if copying such streams is attempted.
1888
1889 -map_channel
1890 [input_file_id.stream_specifier.channel_id|-1][?][:output_file_id.stream_specifier]
1891 Map an audio channel from a given input to an output. If
1892 output_file_id.stream_specifier is not set, the audio channel will
1893 be mapped on all the audio streams.
1894
1895 Using "-1" instead of input_file_id.stream_specifier.channel_id
1896 will map a muted channel.
1897
1898 A trailing "?" will allow the map_channel to be optional: if the
1899 map_channel matches no channel the map_channel will be ignored
1900 instead of failing.
1901
1902 For example, assuming INPUT is a stereo audio file, you can switch
1903 the two audio channels with the following command:
1904
1905 ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT
1906
1907 If you want to mute the first channel and keep the second:
1908
1909 ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT
1910
1911 The order of the "-map_channel" option specifies the order of the
1912 channels in the output stream. The output channel layout is guessed
1913 from the number of channels mapped (mono if one "-map_channel",
1914 stereo if two, etc.). Using "-ac" in combination of "-map_channel"
1915 makes the channel gain levels to be updated if input and output
1916 channel layouts don't match (for instance two "-map_channel"
1917 options and "-ac 6").
1918
1919 You can also extract each channel of an input to specific outputs;
1920 the following command extracts two channels of the INPUT audio
1921 stream (file 0, stream 0) to the respective OUTPUT_CH0 and
1922 OUTPUT_CH1 outputs:
1923
1924 ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
1925
1926 The following example splits the channels of a stereo input into
1927 two separate streams, which are put into the same output file:
1928
1929 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
1930
1931 Note that currently each output stream can only contain channels
1932 from a single input stream; you can't for example use
1933 "-map_channel" to pick multiple input audio channels contained in
1934 different streams (from the same or different files) and merge them
1935 into a single output stream. It is therefore not currently
1936 possible, for example, to turn two separate mono streams into a
1937 single stereo stream. However splitting a stereo stream into two
1938 single channel mono streams is possible.
1939
1940 If you need this feature, a possible workaround is to use the
1941 amerge filter. For example, if you need to merge a media (here
1942 input.mkv) with 2 mono audio streams into one single stereo channel
1943 audio stream (and keep the video stream), you can use the following
1944 command:
1945
1946 ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv
1947
1948 To map the first two audio channels from the first input, and using
1949 the trailing "?", ignore the audio channel mapping if the first
1950 input is mono instead of stereo:
1951
1952 ffmpeg -i INPUT -map_channel 0.0.0 -map_channel 0.0.1? OUTPUT
1953
1954 -map_metadata[:metadata_spec_out] infile[:metadata_spec_in]
1955 (output,per-metadata)
1956 Set metadata information of the next output file from infile. Note
1957 that those are file indices (zero-based), not filenames. Optional
1958 metadata_spec_in/out parameters specify, which metadata to copy. A
1959 metadata specifier can have the following forms:
1960
1961 g global metadata, i.e. metadata that applies to the whole file
1962
1963 s[:stream_spec]
1964 per-stream metadata. stream_spec is a stream specifier as
1965 described in the Stream specifiers chapter. In an input
1966 metadata specifier, the first matching stream is copied from.
1967 In an output metadata specifier, all matching streams are
1968 copied to.
1969
1970 c:chapter_index
1971 per-chapter metadata. chapter_index is the zero-based chapter
1972 index.
1973
1974 p:program_index
1975 per-program metadata. program_index is the zero-based program
1976 index.
1977
1978 If metadata specifier is omitted, it defaults to global.
1979
1980 By default, global metadata is copied from the first input file,
1981 per-stream and per-chapter metadata is copied along with
1982 streams/chapters. These default mappings are disabled by creating
1983 any mapping of the relevant type. A negative file index can be used
1984 to create a dummy mapping that just disables automatic copying.
1985
1986 For example to copy metadata from the first stream of the input
1987 file to global metadata of the output file:
1988
1989 ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
1990
1991 To do the reverse, i.e. copy global metadata to all audio streams:
1992
1993 ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
1994
1995 Note that simple 0 would work as well in this example, since global
1996 metadata is assumed by default.
1997
1998 -map_chapters input_file_index (output)
1999 Copy chapters from input file with index input_file_index to the
2000 next output file. If no chapter mapping is specified, then chapters
2001 are copied from the first input file with at least one chapter. Use
2002 a negative file index to disable any chapter copying.
2003
2004 -benchmark (global)
2005 Show benchmarking information at the end of an encode. Shows real,
2006 system and user time used and maximum memory consumption. Maximum
2007 memory consumption is not supported on all systems, it will usually
2008 display as 0 if not supported.
2009
2010 -benchmark_all (global)
2011 Show benchmarking information during the encode. Shows real,
2012 system and user time used in various steps (audio/video
2013 encode/decode).
2014
2015 -timelimit duration (global)
2016 Exit after ffmpeg has been running for duration seconds in CPU user
2017 time.
2018
2019 -dump (global)
2020 Dump each input packet to stderr.
2021
2022 -hex (global)
2023 When dumping packets, also dump the payload.
2024
2025 -readrate speed (input)
2026 Limit input read speed.
2027
2028 Its value is a floating-point positive number which represents the
2029 maximum duration of media, in seconds, that should be ingested in
2030 one second of wallclock time. Default value is zero and represents
2031 no imposed limitation on speed of ingestion. Value 1 represents
2032 real-time speed and is equivalent to "-re".
2033
2034 Mainly used to simulate a capture device or live input stream (e.g.
2035 when reading from a file). Should not be used with a low value
2036 when input is an actual capture device or live stream as it may
2037 cause packet loss.
2038
2039 It is useful for when flow speed of output packets is important,
2040 such as live streaming.
2041
2042 -re (input)
2043 Read input at native frame rate. This is equivalent to setting
2044 "-readrate 1".
2045
2046 -vsync parameter (global)
2047 -fps_mode[:stream_specifier] parameter (output,per-stream)
2048 Set video sync method / framerate mode. vsync is applied to all
2049 output video streams but can be overridden for a stream by setting
2050 fps_mode. vsync is deprecated and will be removed in the future.
2051
2052 For compatibility reasons some of the values for vsync can be
2053 specified as numbers (shown in parentheses in the following table).
2054
2055 passthrough (0)
2056 Each frame is passed with its timestamp from the demuxer to the
2057 muxer.
2058
2059 cfr (1)
2060 Frames will be duplicated and dropped to achieve exactly the
2061 requested constant frame rate.
2062
2063 vfr (2)
2064 Frames are passed through with their timestamp or dropped so as
2065 to prevent 2 frames from having the same timestamp.
2066
2067 drop
2068 As passthrough but destroys all timestamps, making the muxer
2069 generate fresh timestamps based on frame-rate.
2070
2071 auto (-1)
2072 Chooses between cfr and vfr depending on muxer capabilities.
2073 This is the default method.
2074
2075 Note that the timestamps may be further modified by the muxer,
2076 after this. For example, in the case that the format option
2077 avoid_negative_ts is enabled.
2078
2079 With -map you can select from which stream the timestamps should be
2080 taken. You can leave either video or audio unchanged and sync the
2081 remaining stream(s) to the unchanged one.
2082
2083 -frame_drop_threshold parameter
2084 Frame drop threshold, which specifies how much behind video frames
2085 can be before they are dropped. In frame rate units, so 1.0 is one
2086 frame. The default is -1.1. One possible usecase is to avoid
2087 framedrops in case of noisy timestamps or to increase frame drop
2088 precision in case of exact timestamps.
2089
2090 -async samples_per_second
2091 Audio sync method. "Stretches/squeezes" the audio stream to match
2092 the timestamps, the parameter is the maximum samples per second by
2093 which the audio is changed. -async 1 is a special case where only
2094 the start of the audio stream is corrected without any later
2095 correction.
2096
2097 Note that the timestamps may be further modified by the muxer,
2098 after this. For example, in the case that the format option
2099 avoid_negative_ts is enabled.
2100
2101 This option has been deprecated. Use the "aresample" audio filter
2102 instead.
2103
2104 -adrift_threshold time
2105 Set the minimum difference between timestamps and audio data (in
2106 seconds) to trigger adding/dropping samples to make it match the
2107 timestamps. This option effectively is a threshold to select
2108 between hard (add/drop) and soft (squeeze/stretch) compensation.
2109 "-async" must be set to a positive value.
2110
2111 -apad parameters (output,per-stream)
2112 Pad the output audio stream(s). This is the same as applying "-af
2113 apad". Argument is a string of filter parameters composed the same
2114 as with the "apad" filter. "-shortest" must be set for this output
2115 for the option to take effect.
2116
2117 -copyts
2118 Do not process input timestamps, but keep their values without
2119 trying to sanitize them. In particular, do not remove the initial
2120 start time offset value.
2121
2122 Note that, depending on the vsync option or on specific muxer
2123 processing (e.g. in case the format option avoid_negative_ts is
2124 enabled) the output timestamps may mismatch with the input
2125 timestamps even when this option is selected.
2126
2127 -start_at_zero
2128 When used with copyts, shift input timestamps so they start at
2129 zero.
2130
2131 This means that using e.g. "-ss 50" will make output timestamps
2132 start at 50 seconds, regardless of what timestamp the input file
2133 started at.
2134
2135 -copytb mode
2136 Specify how to set the encoder timebase when stream copying. mode
2137 is an integer numeric value, and can assume one of the following
2138 values:
2139
2140 1 Use the demuxer timebase.
2141
2142 The time base is copied to the output encoder from the
2143 corresponding input demuxer. This is sometimes required to
2144 avoid non monotonically increasing timestamps when copying
2145 video streams with variable frame rate.
2146
2147 0 Use the decoder timebase.
2148
2149 The time base is copied to the output encoder from the
2150 corresponding input decoder.
2151
2152 -1 Try to make the choice automatically, in order to generate a
2153 sane output.
2154
2155 Default value is -1.
2156
2157 -enc_time_base[:stream_specifier] timebase (output,per-stream)
2158 Set the encoder timebase. timebase is a floating point number, and
2159 can assume one of the following values:
2160
2161 0 Assign a default value according to the media type.
2162
2163 For video - use 1/framerate, for audio - use 1/samplerate.
2164
2165 -1 Use the input stream timebase when possible.
2166
2167 If an input stream is not available, the default timebase will
2168 be used.
2169
2170 >0 Use the provided number as the timebase.
2171
2172 This field can be provided as a ratio of two integers (e.g.
2173 1:24, 1:48000) or as a floating point number (e.g. 0.04166,
2174 2.0833e-5)
2175
2176 Default value is 0.
2177
2178 -bitexact (input/output)
2179 Enable bitexact mode for (de)muxer and (de/en)coder
2180
2181 -shortest (output)
2182 Finish encoding when the shortest output stream ends.
2183
2184 -dts_delta_threshold
2185 Timestamp discontinuity delta threshold.
2186
2187 -dts_error_threshold seconds
2188 Timestamp error delta threshold. This threshold use to discard
2189 crazy/damaged timestamps and the default is 30 hours which is
2190 arbitrarily picked and quite conservative.
2191
2192 -muxdelay seconds (output)
2193 Set the maximum demux-decode delay.
2194
2195 -muxpreload seconds (output)
2196 Set the initial demux-decode delay.
2197
2198 -streamid output-stream-index:new-value (output)
2199 Assign a new stream-id value to an output stream. This option
2200 should be specified prior to the output filename to which it
2201 applies. For the situation where multiple output files exist, a
2202 streamid may be reassigned to a different value.
2203
2204 For example, to set the stream 0 PID to 33 and the stream 1 PID to
2205 36 for an output mpegts file:
2206
2207 ffmpeg -i inurl -streamid 0:33 -streamid 1:36 out.ts
2208
2209 -bsf[:stream_specifier] bitstream_filters (output,per-stream)
2210 Set bitstream filters for matching streams. bitstream_filters is a
2211 comma-separated list of bitstream filters. Use the "-bsfs" option
2212 to get the list of bitstream filters.
2213
2214 ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
2215
2216
2217 ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
2218
2219 -tag[:stream_specifier] codec_tag (input/output,per-stream)
2220 Force a tag/fourcc for matching streams.
2221
2222 -timecode hh:mm:ssSEPff
2223 Specify Timecode for writing. SEP is ':' for non drop timecode and
2224 ';' (or '.') for drop.
2225
2226 ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
2227
2228 -filter_complex filtergraph (global)
2229 Define a complex filtergraph, i.e. one with arbitrary number of
2230 inputs and/or outputs. For simple graphs -- those with one input
2231 and one output of the same type -- see the -filter options.
2232 filtergraph is a description of the filtergraph, as described in
2233 the ``Filtergraph syntax'' section of the ffmpeg-filters manual.
2234
2235 Input link labels must refer to input streams using the
2236 "[file_index:stream_specifier]" syntax (i.e. the same as -map
2237 uses). If stream_specifier matches multiple streams, the first one
2238 will be used. An unlabeled input will be connected to the first
2239 unused input stream of the matching type.
2240
2241 Output link labels are referred to with -map. Unlabeled outputs are
2242 added to the first output file.
2243
2244 Note that with this option it is possible to use only lavfi sources
2245 without normal input files.
2246
2247 For example, to overlay an image over video
2248
2249 ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
2250 '[out]' out.mkv
2251
2252 Here "[0:v]" refers to the first video stream in the first input
2253 file, which is linked to the first (main) input of the overlay
2254 filter. Similarly the first video stream in the second input is
2255 linked to the second (overlay) input of overlay.
2256
2257 Assuming there is only one video stream in each input file, we can
2258 omit input labels, so the above is equivalent to
2259
2260 ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
2261 '[out]' out.mkv
2262
2263 Furthermore we can omit the output label and the single output from
2264 the filter graph will be added to the output file automatically, so
2265 we can simply write
2266
2267 ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
2268
2269 As a special exception, you can use a bitmap subtitle stream as
2270 input: it will be converted into a video with the same size as the
2271 largest video in the file, or 720x576 if no video is present. Note
2272 that this is an experimental and temporary solution. It will be
2273 removed once libavfilter has proper support for subtitles.
2274
2275 For example, to hardcode subtitles on top of a DVB-T recording
2276 stored in MPEG-TS format, delaying the subtitles by 1 second:
2277
2278 ffmpeg -i input.ts -filter_complex \
2279 '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
2280 -sn -map '#0x2dc' output.mkv
2281
2282 (0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the
2283 video, audio and subtitles streams; 0:0, 0:3 and 0:7 would have
2284 worked too)
2285
2286 To generate 5 seconds of pure red video using lavfi "color" source:
2287
2288 ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv
2289
2290 -filter_complex_threads nb_threads (global)
2291 Defines how many threads are used to process a filter_complex
2292 graph. Similar to filter_threads but used for "-filter_complex"
2293 graphs only. The default is the number of available CPUs.
2294
2295 -lavfi filtergraph (global)
2296 Define a complex filtergraph, i.e. one with arbitrary number of
2297 inputs and/or outputs. Equivalent to -filter_complex.
2298
2299 -filter_complex_script filename (global)
2300 This option is similar to -filter_complex, the only difference is
2301 that its argument is the name of the file from which a complex
2302 filtergraph description is to be read.
2303
2304 -accurate_seek (input)
2305 This option enables or disables accurate seeking in input files
2306 with the -ss option. It is enabled by default, so seeking is
2307 accurate when transcoding. Use -noaccurate_seek to disable it,
2308 which may be useful e.g. when copying some streams and transcoding
2309 the others.
2310
2311 -seek_timestamp (input)
2312 This option enables or disables seeking by timestamp in input files
2313 with the -ss option. It is disabled by default. If enabled, the
2314 argument to the -ss option is considered an actual timestamp, and
2315 is not offset by the start time of the file. This matters only for
2316 files which do not start from timestamp 0, such as transport
2317 streams.
2318
2319 -thread_queue_size size (input)
2320 This option sets the maximum number of queued packets when reading
2321 from the file or device. With low latency / high rate live streams,
2322 packets may be discarded if they are not read in a timely manner;
2323 setting this value can force ffmpeg to use a separate input thread
2324 and read packets as soon as they arrive. By default ffmpeg only
2325 does this if multiple inputs are specified.
2326
2327 -sdp_file file (global)
2328 Print sdp information for an output stream to file. This allows
2329 dumping sdp information when at least one output isn't an rtp
2330 stream. (Requires at least one of the output formats to be rtp).
2331
2332 -discard (input)
2333 Allows discarding specific streams or frames from streams. Any
2334 input stream can be fully discarded, using value "all" whereas
2335 selective discarding of frames from a stream occurs at the demuxer
2336 and is not supported by all demuxers.
2337
2338 none
2339 Discard no frame.
2340
2341 default
2342 Default, which discards no frames.
2343
2344 noref
2345 Discard all non-reference frames.
2346
2347 bidir
2348 Discard all bidirectional frames.
2349
2350 nokey
2351 Discard all frames excepts keyframes.
2352
2353 all Discard all frames.
2354
2355 -abort_on flags (global)
2356 Stop and abort on various conditions. The following flags are
2357 available:
2358
2359 empty_output
2360 No packets were passed to the muxer, the output is empty.
2361
2362 empty_output_stream
2363 No packets were passed to the muxer in some of the output
2364 streams.
2365
2366 -max_error_rate (global)
2367 Set fraction of decoding frame failures across all inputs which
2368 when crossed ffmpeg will return exit code 69. Crossing this
2369 threshold does not terminate processing. Range is a floating-point
2370 number between 0 to 1. Default is 2/3.
2371
2372 -xerror (global)
2373 Stop and exit on error
2374
2375 -max_muxing_queue_size packets (output,per-stream)
2376 When transcoding audio and/or video streams, ffmpeg will not begin
2377 writing into the output until it has one packet for each such
2378 stream. While waiting for that to happen, packets for other streams
2379 are buffered. This option sets the size of this buffer, in packets,
2380 for the matching output stream.
2381
2382 The default value of this option should be high enough for most
2383 uses, so only touch this option if you are sure that you need it.
2384
2385 -muxing_queue_data_threshold bytes (output,per-stream)
2386 This is a minimum threshold until which the muxing queue size is
2387 not taken into account. Defaults to 50 megabytes per stream, and is
2388 based on the overall size of packets passed to the muxer.
2389
2390 -auto_conversion_filters (global)
2391 Enable automatically inserting format conversion filters in all
2392 filter graphs, including those defined by -vf, -af, -filter_complex
2393 and -lavfi. If filter format negotiation requires a conversion, the
2394 initialization of the filters will fail. Conversions can still be
2395 performed by inserting the relevant conversion filter (scale,
2396 aresample) in the graph. On by default, to explicitly disable it
2397 you need to specify "-noauto_conversion_filters".
2398
2399 -bits_per_raw_sample[:stream_specifier] value (output,per-stream)
2400 Declare the number of bits per raw sample in the given output
2401 stream to be value. Note that this option sets the information
2402 provided to the encoder/muxer, it does not change the stream to
2403 conform to this value. Setting values that do not match the stream
2404 properties may result in encoding failures or invalid output files.
2405
2406 Preset files
2407 A preset file contains a sequence of option=value pairs, one for each
2408 line, specifying a sequence of options which would be awkward to
2409 specify on the command line. Lines starting with the hash ('#')
2410 character are ignored and are used to provide comments. Check the
2411 presets directory in the FFmpeg source tree for examples.
2412
2413 There are two types of preset files: ffpreset and avpreset files.
2414
2415 ffpreset files
2416
2417 ffpreset files are specified with the "vpre", "apre", "spre", and
2418 "fpre" options. The "fpre" option takes the filename of the preset
2419 instead of a preset name as input and can be used for any kind of
2420 codec. For the "vpre", "apre", and "spre" options, the options
2421 specified in a preset file are applied to the currently selected codec
2422 of the same type as the preset option.
2423
2424 The argument passed to the "vpre", "apre", and "spre" preset options
2425 identifies the preset file to use according to the following rules:
2426
2427 First ffmpeg searches for a file named arg.ffpreset in the directories
2428 $FFMPEG_DATADIR (if set), and $HOME/.ffmpeg, and in the datadir defined
2429 at configuration time (usually PREFIX/share/ffmpeg) or in a ffpresets
2430 folder along the executable on win32, in that order. For example, if
2431 the argument is "libvpx-1080p", it will search for the file
2432 libvpx-1080p.ffpreset.
2433
2434 If no such file is found, then ffmpeg will search for a file named
2435 codec_name-arg.ffpreset in the above-mentioned directories, where
2436 codec_name is the name of the codec to which the preset file options
2437 will be applied. For example, if you select the video codec with
2438 "-vcodec libvpx" and use "-vpre 1080p", then it will search for the
2439 file libvpx-1080p.ffpreset.
2440
2441 avpreset files
2442
2443 avpreset files are specified with the "pre" option. They work similar
2444 to ffpreset files, but they only allow encoder- specific options.
2445 Therefore, an option=value pair specifying an encoder cannot be used.
2446
2447 When the "pre" option is specified, ffmpeg will look for files with the
2448 suffix .avpreset in the directories $AVCONV_DATADIR (if set), and
2449 $HOME/.avconv, and in the datadir defined at configuration time
2450 (usually PREFIX/share/ffmpeg), in that order.
2451
2452 First ffmpeg searches for a file named codec_name-arg.avpreset in the
2453 above-mentioned directories, where codec_name is the name of the codec
2454 to which the preset file options will be applied. For example, if you
2455 select the video codec with "-vcodec libvpx" and use "-pre 1080p", then
2456 it will search for the file libvpx-1080p.avpreset.
2457
2458 If no such file is found, then ffmpeg will search for a file named
2459 arg.avpreset in the same directories.
2460
2462 Video and Audio grabbing
2463 If you specify the input format and device then ffmpeg can grab video
2464 and audio directly.
2465
2466 ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
2467
2468 Or with an ALSA audio source (mono input, card id 1) instead of OSS:
2469
2470 ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg
2471
2472 Note that you must activate the right video source and channel before
2473 launching ffmpeg with any TV viewer such as
2474 <http://linux.bytesex.org/xawtv/> by Gerd Knorr. You also have to set
2475 the audio recording levels correctly with a standard mixer.
2476
2477 X11 grabbing
2478 Grab the X11 display with ffmpeg via
2479
2480 ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg
2481
2482 0.0 is display.screen number of your X11 server, same as the DISPLAY
2483 environment variable.
2484
2485 ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg
2486
2487 0.0 is display.screen number of your X11 server, same as the DISPLAY
2488 environment variable. 10 is the x-offset and 20 the y-offset for the
2489 grabbing.
2490
2491 Video and Audio file format conversion
2492 Any supported file format and protocol can serve as input to ffmpeg:
2493
2494 Examples:
2495
2496 • You can use YUV files as input:
2497
2498 ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
2499
2500 It will use the files:
2501
2502 /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
2503 /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
2504
2505 The Y files use twice the resolution of the U and V files. They are
2506 raw files, without header. They can be generated by all decent
2507 video decoders. You must specify the size of the image with the -s
2508 option if ffmpeg cannot guess it.
2509
2510 • You can input from a raw YUV420P file:
2511
2512 ffmpeg -i /tmp/test.yuv /tmp/out.avi
2513
2514 test.yuv is a file containing raw YUV planar data. Each frame is
2515 composed of the Y plane followed by the U and V planes at half
2516 vertical and horizontal resolution.
2517
2518 • You can output to a raw YUV420P file:
2519
2520 ffmpeg -i mydivx.avi hugefile.yuv
2521
2522 • You can set several input files and output files:
2523
2524 ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
2525
2526 Converts the audio file a.wav and the raw YUV video file a.yuv to
2527 MPEG file a.mpg.
2528
2529 • You can also do audio and video conversions at the same time:
2530
2531 ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
2532
2533 Converts a.wav to MPEG audio at 22050 Hz sample rate.
2534
2535 • You can encode to several formats at the same time and define a
2536 mapping from input stream to output streams:
2537
2538 ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2
2539
2540 Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits.
2541 '-map file:index' specifies which input stream is used for each
2542 output stream, in the order of the definition of output streams.
2543
2544 • You can transcode decrypted VOBs:
2545
2546 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
2547
2548 This is a typical DVD ripping example; the input is a VOB file, the
2549 output an AVI file with MPEG-4 video and MP3 audio. Note that in
2550 this command we use B-frames so the MPEG-4 stream is DivX5
2551 compatible, and GOP size is 300 which means one intra frame every
2552 10 seconds for 29.97fps input video. Furthermore, the audio stream
2553 is MP3-encoded so you need to enable LAME support by passing
2554 "--enable-libmp3lame" to configure. The mapping is particularly
2555 useful for DVD transcoding to get the desired audio language.
2556
2557 NOTE: To see the supported input formats, use "ffmpeg -demuxers".
2558
2559 • You can extract images from a video, or create a video from many
2560 images:
2561
2562 For extracting images from a video:
2563
2564 ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
2565
2566 This will extract one video frame per second from the video and
2567 will output them in files named foo-001.jpeg, foo-002.jpeg, etc.
2568 Images will be rescaled to fit the new WxH values.
2569
2570 If you want to extract just a limited number of frames, you can use
2571 the above command in combination with the "-frames:v" or "-t"
2572 option, or in combination with -ss to start extracting from a
2573 certain point in time.
2574
2575 For creating a video from many images:
2576
2577 ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi
2578
2579 The syntax "foo-%03d.jpeg" specifies to use a decimal number
2580 composed of three digits padded with zeroes to express the sequence
2581 number. It is the same syntax supported by the C printf function,
2582 but only formats accepting a normal integer are suitable.
2583
2584 When importing an image sequence, -i also supports expanding shell-
2585 like wildcard patterns (globbing) internally, by selecting the
2586 image2-specific "-pattern_type glob" option.
2587
2588 For example, for creating a video from filenames matching the glob
2589 pattern "foo-*.jpeg":
2590
2591 ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi
2592
2593 • You can put many streams of the same type in the output:
2594
2595 ffmpeg -i test1.avi -i test2.avi -map 1:1 -map 1:0 -map 0:1 -map 0:0 -c copy -y test12.nut
2596
2597 The resulting output file test12.nut will contain the first four
2598 streams from the input files in reverse order.
2599
2600 • To force CBR video output:
2601
2602 ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
2603
2604 • The four options lmin, lmax, mblmin and mblmax use 'lambda' units,
2605 but you may use the QP2LAMBDA constant to easily convert from 'q'
2606 units:
2607
2608 ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
2609
2611 This section documents the syntax and formats employed by the FFmpeg
2612 libraries and tools.
2613
2614 Quoting and escaping
2615 FFmpeg adopts the following quoting and escaping mechanism, unless
2616 explicitly specified. The following rules are applied:
2617
2618 • ' and \ are special characters (respectively used for quoting and
2619 escaping). In addition to them, there might be other special
2620 characters depending on the specific syntax where the escaping and
2621 quoting are employed.
2622
2623 • A special character is escaped by prefixing it with a \.
2624
2625 • All characters enclosed between '' are included literally in the
2626 parsed string. The quote character ' itself cannot be quoted, so
2627 you may need to close the quote and escape it.
2628
2629 • Leading and trailing whitespaces, unless escaped or quoted, are
2630 removed from the parsed string.
2631
2632 Note that you may need to add a second level of escaping when using the
2633 command line or a script, which depends on the syntax of the adopted
2634 shell language.
2635
2636 The function "av_get_token" defined in libavutil/avstring.h can be used
2637 to parse a token quoted or escaped according to the rules defined
2638 above.
2639
2640 The tool tools/ffescape in the FFmpeg source tree can be used to
2641 automatically quote or escape a string in a script.
2642
2643 Examples
2644
2645 • Escape the string "Crime d'Amour" containing the "'" special
2646 character:
2647
2648 Crime d\'Amour
2649
2650 • The string above contains a quote, so the "'" needs to be escaped
2651 when quoting it:
2652
2653 'Crime d'\''Amour'
2654
2655 • Include leading or trailing whitespaces using quoting:
2656
2657 ' this string starts and ends with whitespaces '
2658
2659 • Escaping and quoting can be mixed together:
2660
2661 ' The string '\'string\'' is a string '
2662
2663 • To include a literal \ you can use either escaping or quoting:
2664
2665 'c:\foo' can be written as c:\\foo
2666
2667 Date
2668 The accepted syntax is:
2669
2670 [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
2671 now
2672
2673 If the value is "now" it takes the current time.
2674
2675 Time is local time unless Z is appended, in which case it is
2676 interpreted as UTC. If the year-month-day part is not specified it
2677 takes the current year-month-day.
2678
2679 Time duration
2680 There are two accepted syntaxes for expressing time duration.
2681
2682 [-][<HH>:]<MM>:<SS>[.<m>...]
2683
2684 HH expresses the number of hours, MM the number of minutes for a
2685 maximum of 2 digits, and SS the number of seconds for a maximum of 2
2686 digits. The m at the end expresses decimal value for SS.
2687
2688 or
2689
2690 [-]<S>+[.<m>...][s|ms|us]
2691
2692 S expresses the number of seconds, with the optional decimal part m.
2693 The optional literal suffixes s, ms or us indicate to interpret the
2694 value as seconds, milliseconds or microseconds, respectively.
2695
2696 In both expressions, the optional - indicates negative duration.
2697
2698 Examples
2699
2700 The following examples are all valid time duration:
2701
2702 55 55 seconds
2703
2704 0.2 0.2 seconds
2705
2706 200ms
2707 200 milliseconds, that's 0.2s
2708
2709 200000us
2710 200000 microseconds, that's 0.2s
2711
2712 12:03:45
2713 12 hours, 03 minutes and 45 seconds
2714
2715 23.189
2716 23.189 seconds
2717
2718 Video size
2719 Specify the size of the sourced video, it may be a string of the form
2720 widthxheight, or the name of a size abbreviation.
2721
2722 The following abbreviations are recognized:
2723
2724 ntsc
2725 720x480
2726
2727 pal 720x576
2728
2729 qntsc
2730 352x240
2731
2732 qpal
2733 352x288
2734
2735 sntsc
2736 640x480
2737
2738 spal
2739 768x576
2740
2741 film
2742 352x240
2743
2744 ntsc-film
2745 352x240
2746
2747 sqcif
2748 128x96
2749
2750 qcif
2751 176x144
2752
2753 cif 352x288
2754
2755 4cif
2756 704x576
2757
2758 16cif
2759 1408x1152
2760
2761 qqvga
2762 160x120
2763
2764 qvga
2765 320x240
2766
2767 vga 640x480
2768
2769 svga
2770 800x600
2771
2772 xga 1024x768
2773
2774 uxga
2775 1600x1200
2776
2777 qxga
2778 2048x1536
2779
2780 sxga
2781 1280x1024
2782
2783 qsxga
2784 2560x2048
2785
2786 hsxga
2787 5120x4096
2788
2789 wvga
2790 852x480
2791
2792 wxga
2793 1366x768
2794
2795 wsxga
2796 1600x1024
2797
2798 wuxga
2799 1920x1200
2800
2801 woxga
2802 2560x1600
2803
2804 wqsxga
2805 3200x2048
2806
2807 wquxga
2808 3840x2400
2809
2810 whsxga
2811 6400x4096
2812
2813 whuxga
2814 7680x4800
2815
2816 cga 320x200
2817
2818 ega 640x350
2819
2820 hd480
2821 852x480
2822
2823 hd720
2824 1280x720
2825
2826 hd1080
2827 1920x1080
2828
2829 2k 2048x1080
2830
2831 2kflat
2832 1998x1080
2833
2834 2kscope
2835 2048x858
2836
2837 4k 4096x2160
2838
2839 4kflat
2840 3996x2160
2841
2842 4kscope
2843 4096x1716
2844
2845 nhd 640x360
2846
2847 hqvga
2848 240x160
2849
2850 wqvga
2851 400x240
2852
2853 fwqvga
2854 432x240
2855
2856 hvga
2857 480x320
2858
2859 qhd 960x540
2860
2861 2kdci
2862 2048x1080
2863
2864 4kdci
2865 4096x2160
2866
2867 uhd2160
2868 3840x2160
2869
2870 uhd4320
2871 7680x4320
2872
2873 Video rate
2874 Specify the frame rate of a video, expressed as the number of frames
2875 generated per second. It has to be a string in the format
2876 frame_rate_num/frame_rate_den, an integer number, a float number or a
2877 valid video frame rate abbreviation.
2878
2879 The following abbreviations are recognized:
2880
2881 ntsc
2882 30000/1001
2883
2884 pal 25/1
2885
2886 qntsc
2887 30000/1001
2888
2889 qpal
2890 25/1
2891
2892 sntsc
2893 30000/1001
2894
2895 spal
2896 25/1
2897
2898 film
2899 24/1
2900
2901 ntsc-film
2902 24000/1001
2903
2904 Ratio
2905 A ratio can be expressed as an expression, or in the form
2906 numerator:denominator.
2907
2908 Note that a ratio with infinite (1/0) or negative value is considered
2909 valid, so you should check on the returned value if you want to exclude
2910 those values.
2911
2912 The undefined value can be expressed using the "0:0" string.
2913
2914 Color
2915 It can be the name of a color as defined below (case insensitive match)
2916 or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
2917 representing the alpha component.
2918
2919 The alpha component may be a string composed by "0x" followed by an
2920 hexadecimal number or a decimal number between 0.0 and 1.0, which
2921 represents the opacity value (0x00 or 0.0 means completely transparent,
2922 0xff or 1.0 completely opaque). If the alpha component is not specified
2923 then 0xff is assumed.
2924
2925 The string random will result in a random color.
2926
2927 The following names of colors are recognized:
2928
2929 AliceBlue
2930 0xF0F8FF
2931
2932 AntiqueWhite
2933 0xFAEBD7
2934
2935 Aqua
2936 0x00FFFF
2937
2938 Aquamarine
2939 0x7FFFD4
2940
2941 Azure
2942 0xF0FFFF
2943
2944 Beige
2945 0xF5F5DC
2946
2947 Bisque
2948 0xFFE4C4
2949
2950 Black
2951 0x000000
2952
2953 BlanchedAlmond
2954 0xFFEBCD
2955
2956 Blue
2957 0x0000FF
2958
2959 BlueViolet
2960 0x8A2BE2
2961
2962 Brown
2963 0xA52A2A
2964
2965 BurlyWood
2966 0xDEB887
2967
2968 CadetBlue
2969 0x5F9EA0
2970
2971 Chartreuse
2972 0x7FFF00
2973
2974 Chocolate
2975 0xD2691E
2976
2977 Coral
2978 0xFF7F50
2979
2980 CornflowerBlue
2981 0x6495ED
2982
2983 Cornsilk
2984 0xFFF8DC
2985
2986 Crimson
2987 0xDC143C
2988
2989 Cyan
2990 0x00FFFF
2991
2992 DarkBlue
2993 0x00008B
2994
2995 DarkCyan
2996 0x008B8B
2997
2998 DarkGoldenRod
2999 0xB8860B
3000
3001 DarkGray
3002 0xA9A9A9
3003
3004 DarkGreen
3005 0x006400
3006
3007 DarkKhaki
3008 0xBDB76B
3009
3010 DarkMagenta
3011 0x8B008B
3012
3013 DarkOliveGreen
3014 0x556B2F
3015
3016 Darkorange
3017 0xFF8C00
3018
3019 DarkOrchid
3020 0x9932CC
3021
3022 DarkRed
3023 0x8B0000
3024
3025 DarkSalmon
3026 0xE9967A
3027
3028 DarkSeaGreen
3029 0x8FBC8F
3030
3031 DarkSlateBlue
3032 0x483D8B
3033
3034 DarkSlateGray
3035 0x2F4F4F
3036
3037 DarkTurquoise
3038 0x00CED1
3039
3040 DarkViolet
3041 0x9400D3
3042
3043 DeepPink
3044 0xFF1493
3045
3046 DeepSkyBlue
3047 0x00BFFF
3048
3049 DimGray
3050 0x696969
3051
3052 DodgerBlue
3053 0x1E90FF
3054
3055 FireBrick
3056 0xB22222
3057
3058 FloralWhite
3059 0xFFFAF0
3060
3061 ForestGreen
3062 0x228B22
3063
3064 Fuchsia
3065 0xFF00FF
3066
3067 Gainsboro
3068 0xDCDCDC
3069
3070 GhostWhite
3071 0xF8F8FF
3072
3073 Gold
3074 0xFFD700
3075
3076 GoldenRod
3077 0xDAA520
3078
3079 Gray
3080 0x808080
3081
3082 Green
3083 0x008000
3084
3085 GreenYellow
3086 0xADFF2F
3087
3088 HoneyDew
3089 0xF0FFF0
3090
3091 HotPink
3092 0xFF69B4
3093
3094 IndianRed
3095 0xCD5C5C
3096
3097 Indigo
3098 0x4B0082
3099
3100 Ivory
3101 0xFFFFF0
3102
3103 Khaki
3104 0xF0E68C
3105
3106 Lavender
3107 0xE6E6FA
3108
3109 LavenderBlush
3110 0xFFF0F5
3111
3112 LawnGreen
3113 0x7CFC00
3114
3115 LemonChiffon
3116 0xFFFACD
3117
3118 LightBlue
3119 0xADD8E6
3120
3121 LightCoral
3122 0xF08080
3123
3124 LightCyan
3125 0xE0FFFF
3126
3127 LightGoldenRodYellow
3128 0xFAFAD2
3129
3130 LightGreen
3131 0x90EE90
3132
3133 LightGrey
3134 0xD3D3D3
3135
3136 LightPink
3137 0xFFB6C1
3138
3139 LightSalmon
3140 0xFFA07A
3141
3142 LightSeaGreen
3143 0x20B2AA
3144
3145 LightSkyBlue
3146 0x87CEFA
3147
3148 LightSlateGray
3149 0x778899
3150
3151 LightSteelBlue
3152 0xB0C4DE
3153
3154 LightYellow
3155 0xFFFFE0
3156
3157 Lime
3158 0x00FF00
3159
3160 LimeGreen
3161 0x32CD32
3162
3163 Linen
3164 0xFAF0E6
3165
3166 Magenta
3167 0xFF00FF
3168
3169 Maroon
3170 0x800000
3171
3172 MediumAquaMarine
3173 0x66CDAA
3174
3175 MediumBlue
3176 0x0000CD
3177
3178 MediumOrchid
3179 0xBA55D3
3180
3181 MediumPurple
3182 0x9370D8
3183
3184 MediumSeaGreen
3185 0x3CB371
3186
3187 MediumSlateBlue
3188 0x7B68EE
3189
3190 MediumSpringGreen
3191 0x00FA9A
3192
3193 MediumTurquoise
3194 0x48D1CC
3195
3196 MediumVioletRed
3197 0xC71585
3198
3199 MidnightBlue
3200 0x191970
3201
3202 MintCream
3203 0xF5FFFA
3204
3205 MistyRose
3206 0xFFE4E1
3207
3208 Moccasin
3209 0xFFE4B5
3210
3211 NavajoWhite
3212 0xFFDEAD
3213
3214 Navy
3215 0x000080
3216
3217 OldLace
3218 0xFDF5E6
3219
3220 Olive
3221 0x808000
3222
3223 OliveDrab
3224 0x6B8E23
3225
3226 Orange
3227 0xFFA500
3228
3229 OrangeRed
3230 0xFF4500
3231
3232 Orchid
3233 0xDA70D6
3234
3235 PaleGoldenRod
3236 0xEEE8AA
3237
3238 PaleGreen
3239 0x98FB98
3240
3241 PaleTurquoise
3242 0xAFEEEE
3243
3244 PaleVioletRed
3245 0xD87093
3246
3247 PapayaWhip
3248 0xFFEFD5
3249
3250 PeachPuff
3251 0xFFDAB9
3252
3253 Peru
3254 0xCD853F
3255
3256 Pink
3257 0xFFC0CB
3258
3259 Plum
3260 0xDDA0DD
3261
3262 PowderBlue
3263 0xB0E0E6
3264
3265 Purple
3266 0x800080
3267
3268 Red 0xFF0000
3269
3270 RosyBrown
3271 0xBC8F8F
3272
3273 RoyalBlue
3274 0x4169E1
3275
3276 SaddleBrown
3277 0x8B4513
3278
3279 Salmon
3280 0xFA8072
3281
3282 SandyBrown
3283 0xF4A460
3284
3285 SeaGreen
3286 0x2E8B57
3287
3288 SeaShell
3289 0xFFF5EE
3290
3291 Sienna
3292 0xA0522D
3293
3294 Silver
3295 0xC0C0C0
3296
3297 SkyBlue
3298 0x87CEEB
3299
3300 SlateBlue
3301 0x6A5ACD
3302
3303 SlateGray
3304 0x708090
3305
3306 Snow
3307 0xFFFAFA
3308
3309 SpringGreen
3310 0x00FF7F
3311
3312 SteelBlue
3313 0x4682B4
3314
3315 Tan 0xD2B48C
3316
3317 Teal
3318 0x008080
3319
3320 Thistle
3321 0xD8BFD8
3322
3323 Tomato
3324 0xFF6347
3325
3326 Turquoise
3327 0x40E0D0
3328
3329 Violet
3330 0xEE82EE
3331
3332 Wheat
3333 0xF5DEB3
3334
3335 White
3336 0xFFFFFF
3337
3338 WhiteSmoke
3339 0xF5F5F5
3340
3341 Yellow
3342 0xFFFF00
3343
3344 YellowGreen
3345 0x9ACD32
3346
3347 Channel Layout
3348 A channel layout specifies the spatial disposition of the channels in a
3349 multi-channel audio stream. To specify a channel layout, FFmpeg makes
3350 use of a special syntax.
3351
3352 Individual channels are identified by an id, as given by the table
3353 below:
3354
3355 FL front left
3356
3357 FR front right
3358
3359 FC front center
3360
3361 LFE low frequency
3362
3363 BL back left
3364
3365 BR back right
3366
3367 FLC front left-of-center
3368
3369 FRC front right-of-center
3370
3371 BC back center
3372
3373 SL side left
3374
3375 SR side right
3376
3377 TC top center
3378
3379 TFL top front left
3380
3381 TFC top front center
3382
3383 TFR top front right
3384
3385 TBL top back left
3386
3387 TBC top back center
3388
3389 TBR top back right
3390
3391 DL downmix left
3392
3393 DR downmix right
3394
3395 WL wide left
3396
3397 WR wide right
3398
3399 SDL surround direct left
3400
3401 SDR surround direct right
3402
3403 LFE2
3404 low frequency 2
3405
3406 Standard channel layout compositions can be specified by using the
3407 following identifiers:
3408
3409 mono
3410 FC
3411
3412 stereo
3413 FL+FR
3414
3415 2.1 FL+FR+LFE
3416
3417 3.0 FL+FR+FC
3418
3419 3.0(back)
3420 FL+FR+BC
3421
3422 4.0 FL+FR+FC+BC
3423
3424 quad
3425 FL+FR+BL+BR
3426
3427 quad(side)
3428 FL+FR+SL+SR
3429
3430 3.1 FL+FR+FC+LFE
3431
3432 5.0 FL+FR+FC+BL+BR
3433
3434 5.0(side)
3435 FL+FR+FC+SL+SR
3436
3437 4.1 FL+FR+FC+LFE+BC
3438
3439 5.1 FL+FR+FC+LFE+BL+BR
3440
3441 5.1(side)
3442 FL+FR+FC+LFE+SL+SR
3443
3444 6.0 FL+FR+FC+BC+SL+SR
3445
3446 6.0(front)
3447 FL+FR+FLC+FRC+SL+SR
3448
3449 hexagonal
3450 FL+FR+FC+BL+BR+BC
3451
3452 6.1 FL+FR+FC+LFE+BC+SL+SR
3453
3454 6.1 FL+FR+FC+LFE+BL+BR+BC
3455
3456 6.1(front)
3457 FL+FR+LFE+FLC+FRC+SL+SR
3458
3459 7.0 FL+FR+FC+BL+BR+SL+SR
3460
3461 7.0(front)
3462 FL+FR+FC+FLC+FRC+SL+SR
3463
3464 7.1 FL+FR+FC+LFE+BL+BR+SL+SR
3465
3466 7.1(wide)
3467 FL+FR+FC+LFE+BL+BR+FLC+FRC
3468
3469 7.1(wide-side)
3470 FL+FR+FC+LFE+FLC+FRC+SL+SR
3471
3472 octagonal
3473 FL+FR+FC+BL+BR+BC+SL+SR
3474
3475 hexadecagonal
3476 FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
3477
3478 downmix
3479 DL+DR
3480
3481 22.2
3482 FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
3483
3484 A custom channel layout can be specified as a sequence of terms,
3485 separated by '+'. Each term can be:
3486
3487 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
3488 optionally containing a custom name after a '@', (e.g. FL@Left,
3489 FR@Right, FC@Center, LFE@Low_Frequency, etc.)
3490
3491 A standard channel layout can be specified by the following:
3492
3493 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
3494
3495 • the name of a standard channel layout (e.g. mono, stereo, 4.0,
3496 quad, 5.0, etc.)
3497
3498 • a number of channels, in decimal, followed by 'c', yielding the
3499 default channel layout for that number of channels (see the
3500 function "av_channel_layout_default"). Note that not all channel
3501 counts have a default layout.
3502
3503 • a number of channels, in decimal, followed by 'C', yielding an
3504 unknown channel layout with the specified number of channels. Note
3505 that not all channel layout specification strings support unknown
3506 channel layouts.
3507
3508 • a channel layout mask, in hexadecimal starting with "0x" (see the
3509 "AV_CH_*" macros in libavutil/channel_layout.h.
3510
3511 Before libavutil version 53 the trailing character "c" to specify a
3512 number of channels was optional, but now it is required, while a
3513 channel layout mask can also be specified as a decimal number (if and
3514 only if not followed by "c" or "C").
3515
3516 See also the function "av_channel_layout_from_string" defined in
3517 libavutil/channel_layout.h.
3518
3520 When evaluating an arithmetic expression, FFmpeg uses an internal
3521 formula evaluator, implemented through the libavutil/eval.h interface.
3522
3523 An expression may contain unary, binary operators, constants, and
3524 functions.
3525
3526 Two expressions expr1 and expr2 can be combined to form another
3527 expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and
3528 the new expression evaluates to the value of expr2.
3529
3530 The following binary operators are available: "+", "-", "*", "/", "^".
3531
3532 The following unary operators are available: "+", "-".
3533
3534 The following functions are available:
3535
3536 abs(x)
3537 Compute absolute value of x.
3538
3539 acos(x)
3540 Compute arccosine of x.
3541
3542 asin(x)
3543 Compute arcsine of x.
3544
3545 atan(x)
3546 Compute arctangent of x.
3547
3548 atan2(x, y)
3549 Compute principal value of the arc tangent of y/x.
3550
3551 between(x, min, max)
3552 Return 1 if x is greater than or equal to min and lesser than or
3553 equal to max, 0 otherwise.
3554
3555 bitand(x, y)
3556 bitor(x, y)
3557 Compute bitwise and/or operation on x and y.
3558
3559 The results of the evaluation of x and y are converted to integers
3560 before executing the bitwise operation.
3561
3562 Note that both the conversion to integer and the conversion back to
3563 floating point can lose precision. Beware of unexpected results for
3564 large numbers (usually 2^53 and larger).
3565
3566 ceil(expr)
3567 Round the value of expression expr upwards to the nearest integer.
3568 For example, "ceil(1.5)" is "2.0".
3569
3570 clip(x, min, max)
3571 Return the value of x clipped between min and max.
3572
3573 cos(x)
3574 Compute cosine of x.
3575
3576 cosh(x)
3577 Compute hyperbolic cosine of x.
3578
3579 eq(x, y)
3580 Return 1 if x and y are equivalent, 0 otherwise.
3581
3582 exp(x)
3583 Compute exponential of x (with base "e", the Euler's number).
3584
3585 floor(expr)
3586 Round the value of expression expr downwards to the nearest
3587 integer. For example, "floor(-1.5)" is "-2.0".
3588
3589 gauss(x)
3590 Compute Gauss function of x, corresponding to "exp(-x*x/2) /
3591 sqrt(2*PI)".
3592
3593 gcd(x, y)
3594 Return the greatest common divisor of x and y. If both x and y are
3595 0 or either or both are less than zero then behavior is undefined.
3596
3597 gt(x, y)
3598 Return 1 if x is greater than y, 0 otherwise.
3599
3600 gte(x, y)
3601 Return 1 if x is greater than or equal to y, 0 otherwise.
3602
3603 hypot(x, y)
3604 This function is similar to the C function with the same name; it
3605 returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
3606 triangle with sides of length x and y, or the distance of the point
3607 (x, y) from the origin.
3608
3609 if(x, y)
3610 Evaluate x, and if the result is non-zero return the result of the
3611 evaluation of y, return 0 otherwise.
3612
3613 if(x, y, z)
3614 Evaluate x, and if the result is non-zero return the evaluation
3615 result of y, otherwise the evaluation result of z.
3616
3617 ifnot(x, y)
3618 Evaluate x, and if the result is zero return the result of the
3619 evaluation of y, return 0 otherwise.
3620
3621 ifnot(x, y, z)
3622 Evaluate x, and if the result is zero return the evaluation result
3623 of y, otherwise the evaluation result of z.
3624
3625 isinf(x)
3626 Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
3627
3628 isnan(x)
3629 Return 1.0 if x is NAN, 0.0 otherwise.
3630
3631 ld(var)
3632 Load the value of the internal variable with number var, which was
3633 previously stored with st(var, expr). The function returns the
3634 loaded value.
3635
3636 lerp(x, y, z)
3637 Return linear interpolation between x and y by amount of z.
3638
3639 log(x)
3640 Compute natural logarithm of x.
3641
3642 lt(x, y)
3643 Return 1 if x is lesser than y, 0 otherwise.
3644
3645 lte(x, y)
3646 Return 1 if x is lesser than or equal to y, 0 otherwise.
3647
3648 max(x, y)
3649 Return the maximum between x and y.
3650
3651 min(x, y)
3652 Return the minimum between x and y.
3653
3654 mod(x, y)
3655 Compute the remainder of division of x by y.
3656
3657 not(expr)
3658 Return 1.0 if expr is zero, 0.0 otherwise.
3659
3660 pow(x, y)
3661 Compute the power of x elevated y, it is equivalent to "(x)^(y)".
3662
3663 print(t)
3664 print(t, l)
3665 Print the value of expression t with loglevel l. If l is not
3666 specified then a default log level is used. Returns the value of
3667 the expression printed.
3668
3669 Prints t with loglevel l
3670
3671 random(x)
3672 Return a pseudo random value between 0.0 and 1.0. x is the index of
3673 the internal variable which will be used to save the seed/state.
3674
3675 root(expr, max)
3676 Find an input value for which the function represented by expr with
3677 argument ld(0) is 0 in the interval 0..max.
3678
3679 The expression in expr must denote a continuous function or the
3680 result is undefined.
3681
3682 ld(0) is used to represent the function input value, which means
3683 that the given expression will be evaluated multiple times with
3684 various input values that the expression can access through ld(0).
3685 When the expression evaluates to 0 then the corresponding input
3686 value will be returned.
3687
3688 round(expr)
3689 Round the value of expression expr to the nearest integer. For
3690 example, "round(1.5)" is "2.0".
3691
3692 sgn(x)
3693 Compute sign of x.
3694
3695 sin(x)
3696 Compute sine of x.
3697
3698 sinh(x)
3699 Compute hyperbolic sine of x.
3700
3701 sqrt(expr)
3702 Compute the square root of expr. This is equivalent to "(expr)^.5".
3703
3704 squish(x)
3705 Compute expression "1/(1 + exp(4*x))".
3706
3707 st(var, expr)
3708 Store the value of the expression expr in an internal variable. var
3709 specifies the number of the variable where to store the value, and
3710 it is a value ranging from 0 to 9. The function returns the value
3711 stored in the internal variable. Note, Variables are currently not
3712 shared between expressions.
3713
3714 tan(x)
3715 Compute tangent of x.
3716
3717 tanh(x)
3718 Compute hyperbolic tangent of x.
3719
3720 taylor(expr, x)
3721 taylor(expr, x, id)
3722 Evaluate a Taylor series at x, given an expression representing the
3723 "ld(id)"-th derivative of a function at 0.
3724
3725 When the series does not converge the result is undefined.
3726
3727 ld(id) is used to represent the derivative order in expr, which
3728 means that the given expression will be evaluated multiple times
3729 with various input values that the expression can access through
3730 "ld(id)". If id is not specified then 0 is assumed.
3731
3732 Note, when you have the derivatives at y instead of 0,
3733 "taylor(expr, x-y)" can be used.
3734
3735 time(0)
3736 Return the current (wallclock) time in seconds.
3737
3738 trunc(expr)
3739 Round the value of expression expr towards zero to the nearest
3740 integer. For example, "trunc(-1.5)" is "-1.0".
3741
3742 while(cond, expr)
3743 Evaluate expression expr while the expression cond is non-zero, and
3744 returns the value of the last expr evaluation, or NAN if cond was
3745 always false.
3746
3747 The following constants are available:
3748
3749 PI area of the unit disc, approximately 3.14
3750
3751 E exp(1) (Euler's number), approximately 2.718
3752
3753 PHI golden ratio (1+sqrt(5))/2, approximately 1.618
3754
3755 Assuming that an expression is considered "true" if it has a non-zero
3756 value, note that:
3757
3758 "*" works like AND
3759
3760 "+" works like OR
3761
3762 For example the construct:
3763
3764 if (A AND B) then C
3765
3766 is equivalent to:
3767
3768 if(A*B, C)
3769
3770 In your C code, you can extend the list of unary and binary functions,
3771 and define recognized constants, so that they are available for your
3772 expressions.
3773
3774 The evaluator also recognizes the International System unit prefixes.
3775 If 'i' is appended after the prefix, binary prefixes are used, which
3776 are based on powers of 1024 instead of powers of 1000. The 'B' postfix
3777 multiplies the value by 8, and can be appended after a unit prefix or
3778 used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
3779 number postfix.
3780
3781 The list of available International System prefixes follows, with
3782 indication of the corresponding powers of 10 and of 2.
3783
3784 y 10^-24 / 2^-80
3785
3786 z 10^-21 / 2^-70
3787
3788 a 10^-18 / 2^-60
3789
3790 f 10^-15 / 2^-50
3791
3792 p 10^-12 / 2^-40
3793
3794 n 10^-9 / 2^-30
3795
3796 u 10^-6 / 2^-20
3797
3798 m 10^-3 / 2^-10
3799
3800 c 10^-2
3801
3802 d 10^-1
3803
3804 h 10^2
3805
3806 k 10^3 / 2^10
3807
3808 K 10^3 / 2^10
3809
3810 M 10^6 / 2^20
3811
3812 G 10^9 / 2^30
3813
3814 T 10^12 / 2^40
3815
3816 P 10^15 / 2^40
3817
3818 E 10^18 / 2^50
3819
3820 Z 10^21 / 2^60
3821
3822 Y 10^24 / 2^70
3823
3825 libavcodec provides some generic global options, which can be set on
3826 all the encoders and decoders. In addition each codec may support so-
3827 called private options, which are specific for a given codec.
3828
3829 Sometimes, a global option may only affect a specific kind of codec,
3830 and may be nonsensical or ignored by another, so you need to be aware
3831 of the meaning of the specified options. Also some options are meant
3832 only for decoding or encoding.
3833
3834 Options may be set by specifying -option value in the FFmpeg tools, or
3835 by setting the value explicitly in the "AVCodecContext" options or
3836 using the libavutil/opt.h API for programmatic use.
3837
3838 The list of supported options follow:
3839
3840 b integer (encoding,audio,video)
3841 Set bitrate in bits/s. Default value is 200K.
3842
3843 ab integer (encoding,audio)
3844 Set audio bitrate (in bits/s). Default value is 128K.
3845
3846 bt integer (encoding,video)
3847 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
3848 tolerance specifies how far ratecontrol is willing to deviate from
3849 the target average bitrate value. This is not related to min/max
3850 bitrate. Lowering tolerance too much has an adverse effect on
3851 quality.
3852
3853 flags flags (decoding/encoding,audio,video,subtitles)
3854 Set generic flags.
3855
3856 Possible values:
3857
3858 mv4 Use four motion vector by macroblock (mpeg4).
3859
3860 qpel
3861 Use 1/4 pel motion compensation.
3862
3863 loop
3864 Use loop filter.
3865
3866 qscale
3867 Use fixed qscale.
3868
3869 pass1
3870 Use internal 2pass ratecontrol in first pass mode.
3871
3872 pass2
3873 Use internal 2pass ratecontrol in second pass mode.
3874
3875 gray
3876 Only decode/encode grayscale.
3877
3878 psnr
3879 Set error[?] variables during encoding.
3880
3881 truncated
3882 Input bitstream might be randomly truncated.
3883
3884 drop_changed
3885 Don't output frames whose parameters differ from first decoded
3886 frame in stream. Error AVERROR_INPUT_CHANGED is returned when
3887 a frame is dropped.
3888
3889 ildct
3890 Use interlaced DCT.
3891
3892 low_delay
3893 Force low delay.
3894
3895 global_header
3896 Place global headers in extradata instead of every keyframe.
3897
3898 bitexact
3899 Only write platform-, build- and time-independent data. (except
3900 (I)DCT). This ensures that file and data checksums are
3901 reproducible and match between platforms. Its primary use is
3902 for regression testing.
3903
3904 aic Apply H263 advanced intra coding / mpeg4 ac prediction.
3905
3906 ilme
3907 Apply interlaced motion estimation.
3908
3909 cgop
3910 Use closed gop.
3911
3912 output_corrupt
3913 Output even potentially corrupted frames.
3914
3915 time_base rational number
3916 Set codec time base.
3917
3918 It is the fundamental unit of time (in seconds) in terms of which
3919 frame timestamps are represented. For fixed-fps content, timebase
3920 should be "1 / frame_rate" and timestamp increments should be
3921 identically 1.
3922
3923 g integer (encoding,video)
3924 Set the group of picture (GOP) size. Default value is 12.
3925
3926 ar integer (decoding/encoding,audio)
3927 Set audio sampling rate (in Hz).
3928
3929 ac integer (decoding/encoding,audio)
3930 Set number of audio channels.
3931
3932 cutoff integer (encoding,audio)
3933 Set cutoff bandwidth. (Supported only by selected encoders, see
3934 their respective documentation sections.)
3935
3936 frame_size integer (encoding,audio)
3937 Set audio frame size.
3938
3939 Each submitted frame except the last must contain exactly
3940 frame_size samples per channel. May be 0 when the codec has
3941 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
3942 not restricted. It is set by some decoders to indicate constant
3943 frame size.
3944
3945 frame_number integer
3946 Set the frame number.
3947
3948 delay integer
3949 qcomp float (encoding,video)
3950 Set video quantizer scale compression (VBR). It is used as a
3951 constant in the ratecontrol equation. Recommended range for default
3952 rc_eq: 0.0-1.0.
3953
3954 qblur float (encoding,video)
3955 Set video quantizer scale blur (VBR).
3956
3957 qmin integer (encoding,video)
3958 Set min video quantizer scale (VBR). Must be included between -1
3959 and 69, default value is 2.
3960
3961 qmax integer (encoding,video)
3962 Set max video quantizer scale (VBR). Must be included between -1
3963 and 1024, default value is 31.
3964
3965 qdiff integer (encoding,video)
3966 Set max difference between the quantizer scale (VBR).
3967
3968 bf integer (encoding,video)
3969 Set max number of B frames between non-B-frames.
3970
3971 Must be an integer between -1 and 16. 0 means that B-frames are
3972 disabled. If a value of -1 is used, it will choose an automatic
3973 value depending on the encoder.
3974
3975 Default value is 0.
3976
3977 b_qfactor float (encoding,video)
3978 Set qp factor between P and B frames.
3979
3980 codec_tag integer
3981 bug flags (decoding,video)
3982 Workaround not auto detected encoder bugs.
3983
3984 Possible values:
3985
3986 autodetect
3987 xvid_ilace
3988 Xvid interlacing bug (autodetected if fourcc==XVIX)
3989
3990 ump4
3991 (autodetected if fourcc==UMP4)
3992
3993 no_padding
3994 padding bug (autodetected)
3995
3996 amv
3997 qpel_chroma
3998 std_qpel
3999 old standard qpel (autodetected per fourcc/version)
4000
4001 qpel_chroma2
4002 direct_blocksize
4003 direct-qpel-blocksize bug (autodetected per fourcc/version)
4004
4005 edge
4006 edge padding bug (autodetected per fourcc/version)
4007
4008 hpel_chroma
4009 dc_clip
4010 ms Workaround various bugs in microsoft broken decoders.
4011
4012 trunc
4013 trancated frames
4014
4015 strict integer (decoding/encoding,audio,video)
4016 Specify how strictly to follow the standards.
4017
4018 Possible values:
4019
4020 very
4021 strictly conform to an older more strict version of the spec or
4022 reference software
4023
4024 strict
4025 strictly conform to all the things in the spec no matter what
4026 consequences
4027
4028 normal
4029 unofficial
4030 allow unofficial extensions
4031
4032 experimental
4033 allow non standardized experimental things, experimental
4034 (unfinished/work in progress/not well tested) decoders and
4035 encoders. Note: experimental decoders can pose a security
4036 risk, do not use this for decoding untrusted input.
4037
4038 b_qoffset float (encoding,video)
4039 Set QP offset between P and B frames.
4040
4041 err_detect flags (decoding,audio,video)
4042 Set error detection flags.
4043
4044 Possible values:
4045
4046 crccheck
4047 verify embedded CRCs
4048
4049 bitstream
4050 detect bitstream specification deviations
4051
4052 buffer
4053 detect improper bitstream length
4054
4055 explode
4056 abort decoding on minor error detection
4057
4058 ignore_err
4059 ignore decoding errors, and continue decoding. This is useful
4060 if you want to analyze the content of a video and thus want
4061 everything to be decoded no matter what. This option will not
4062 result in a video that is pleasing to watch in case of errors.
4063
4064 careful
4065 consider things that violate the spec and have not been seen in
4066 the wild as errors
4067
4068 compliant
4069 consider all spec non compliancies as errors
4070
4071 aggressive
4072 consider things that a sane encoder should not do as an error
4073
4074 has_b_frames integer
4075 block_align integer
4076 rc_override_count integer
4077 maxrate integer (encoding,audio,video)
4078 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
4079
4080 minrate integer (encoding,audio,video)
4081 Set min bitrate tolerance (in bits/s). Most useful in setting up a
4082 CBR encode. It is of little use elsewise.
4083
4084 bufsize integer (encoding,audio,video)
4085 Set ratecontrol buffer size (in bits).
4086
4087 i_qfactor float (encoding,video)
4088 Set QP factor between P and I frames.
4089
4090 i_qoffset float (encoding,video)
4091 Set QP offset between P and I frames.
4092
4093 dct integer (encoding,video)
4094 Set DCT algorithm.
4095
4096 Possible values:
4097
4098 auto
4099 autoselect a good one (default)
4100
4101 fastint
4102 fast integer
4103
4104 int accurate integer
4105
4106 mmx
4107 altivec
4108 faan
4109 floating point AAN DCT
4110
4111 lumi_mask float (encoding,video)
4112 Compress bright areas stronger than medium ones.
4113
4114 tcplx_mask float (encoding,video)
4115 Set temporal complexity masking.
4116
4117 scplx_mask float (encoding,video)
4118 Set spatial complexity masking.
4119
4120 p_mask float (encoding,video)
4121 Set inter masking.
4122
4123 dark_mask float (encoding,video)
4124 Compress dark areas stronger than medium ones.
4125
4126 idct integer (decoding/encoding,video)
4127 Select IDCT implementation.
4128
4129 Possible values:
4130
4131 auto
4132 int
4133 simple
4134 simplemmx
4135 simpleauto
4136 Automatically pick a IDCT compatible with the simple one
4137
4138 arm
4139 altivec
4140 sh4
4141 simplearm
4142 simplearmv5te
4143 simplearmv6
4144 simpleneon
4145 xvid
4146 faani
4147 floating point AAN IDCT
4148
4149 slice_count integer
4150 ec flags (decoding,video)
4151 Set error concealment strategy.
4152
4153 Possible values:
4154
4155 guess_mvs
4156 iterative motion vector (MV) search (slow)
4157
4158 deblock
4159 use strong deblock filter for damaged MBs
4160
4161 favor_inter
4162 favor predicting from the previous frame instead of the current
4163
4164 bits_per_coded_sample integer
4165 aspect rational number (encoding,video)
4166 Set sample aspect ratio.
4167
4168 sar rational number (encoding,video)
4169 Set sample aspect ratio. Alias to aspect.
4170
4171 debug flags (decoding/encoding,audio,video,subtitles)
4172 Print specific debug info.
4173
4174 Possible values:
4175
4176 pict
4177 picture info
4178
4179 rc rate control
4180
4181 bitstream
4182 mb_type
4183 macroblock (MB) type
4184
4185 qp per-block quantization parameter (QP)
4186
4187 dct_coeff
4188 green_metadata
4189 display complexity metadata for the upcoming frame, GoP or for
4190 a given duration.
4191
4192 skip
4193 startcode
4194 er error recognition
4195
4196 mmco
4197 memory management control operations (H.264)
4198
4199 bugs
4200 buffers
4201 picture buffer allocations
4202
4203 thread_ops
4204 threading operations
4205
4206 nomc
4207 skip motion compensation
4208
4209 cmp integer (encoding,video)
4210 Set full pel me compare function.
4211
4212 Possible values:
4213
4214 sad sum of absolute differences, fast (default)
4215
4216 sse sum of squared errors
4217
4218 satd
4219 sum of absolute Hadamard transformed differences
4220
4221 dct sum of absolute DCT transformed differences
4222
4223 psnr
4224 sum of squared quantization errors (avoid, low quality)
4225
4226 bit number of bits needed for the block
4227
4228 rd rate distortion optimal, slow
4229
4230 zero
4231 0
4232
4233 vsad
4234 sum of absolute vertical differences
4235
4236 vsse
4237 sum of squared vertical differences
4238
4239 nsse
4240 noise preserving sum of squared differences
4241
4242 w53 5/3 wavelet, only used in snow
4243
4244 w97 9/7 wavelet, only used in snow
4245
4246 dctmax
4247 chroma
4248 subcmp integer (encoding,video)
4249 Set sub pel me compare function.
4250
4251 Possible values:
4252
4253 sad sum of absolute differences, fast (default)
4254
4255 sse sum of squared errors
4256
4257 satd
4258 sum of absolute Hadamard transformed differences
4259
4260 dct sum of absolute DCT transformed differences
4261
4262 psnr
4263 sum of squared quantization errors (avoid, low quality)
4264
4265 bit number of bits needed for the block
4266
4267 rd rate distortion optimal, slow
4268
4269 zero
4270 0
4271
4272 vsad
4273 sum of absolute vertical differences
4274
4275 vsse
4276 sum of squared vertical differences
4277
4278 nsse
4279 noise preserving sum of squared differences
4280
4281 w53 5/3 wavelet, only used in snow
4282
4283 w97 9/7 wavelet, only used in snow
4284
4285 dctmax
4286 chroma
4287 mbcmp integer (encoding,video)
4288 Set macroblock compare function.
4289
4290 Possible values:
4291
4292 sad sum of absolute differences, fast (default)
4293
4294 sse sum of squared errors
4295
4296 satd
4297 sum of absolute Hadamard transformed differences
4298
4299 dct sum of absolute DCT transformed differences
4300
4301 psnr
4302 sum of squared quantization errors (avoid, low quality)
4303
4304 bit number of bits needed for the block
4305
4306 rd rate distortion optimal, slow
4307
4308 zero
4309 0
4310
4311 vsad
4312 sum of absolute vertical differences
4313
4314 vsse
4315 sum of squared vertical differences
4316
4317 nsse
4318 noise preserving sum of squared differences
4319
4320 w53 5/3 wavelet, only used in snow
4321
4322 w97 9/7 wavelet, only used in snow
4323
4324 dctmax
4325 chroma
4326 ildctcmp integer (encoding,video)
4327 Set interlaced dct compare function.
4328
4329 Possible values:
4330
4331 sad sum of absolute differences, fast (default)
4332
4333 sse sum of squared errors
4334
4335 satd
4336 sum of absolute Hadamard transformed differences
4337
4338 dct sum of absolute DCT transformed differences
4339
4340 psnr
4341 sum of squared quantization errors (avoid, low quality)
4342
4343 bit number of bits needed for the block
4344
4345 rd rate distortion optimal, slow
4346
4347 zero
4348 0
4349
4350 vsad
4351 sum of absolute vertical differences
4352
4353 vsse
4354 sum of squared vertical differences
4355
4356 nsse
4357 noise preserving sum of squared differences
4358
4359 w53 5/3 wavelet, only used in snow
4360
4361 w97 9/7 wavelet, only used in snow
4362
4363 dctmax
4364 chroma
4365 dia_size integer (encoding,video)
4366 Set diamond type & size for motion estimation.
4367
4368 (1024, INT_MAX)
4369 full motion estimation(slowest)
4370
4371 (768, 1024]
4372 umh motion estimation
4373
4374 (512, 768]
4375 hex motion estimation
4376
4377 (256, 512]
4378 l2s diamond motion estimation
4379
4380 [2,256]
4381 var diamond motion estimation
4382
4383 (-1, 2)
4384 small diamond motion estimation
4385
4386 -1 funny diamond motion estimation
4387
4388 (INT_MIN, -1)
4389 sab diamond motion estimation
4390
4391 last_pred integer (encoding,video)
4392 Set amount of motion predictors from the previous frame.
4393
4394 precmp integer (encoding,video)
4395 Set pre motion estimation compare function.
4396
4397 Possible values:
4398
4399 sad sum of absolute differences, fast (default)
4400
4401 sse sum of squared errors
4402
4403 satd
4404 sum of absolute Hadamard transformed differences
4405
4406 dct sum of absolute DCT transformed differences
4407
4408 psnr
4409 sum of squared quantization errors (avoid, low quality)
4410
4411 bit number of bits needed for the block
4412
4413 rd rate distortion optimal, slow
4414
4415 zero
4416 0
4417
4418 vsad
4419 sum of absolute vertical differences
4420
4421 vsse
4422 sum of squared vertical differences
4423
4424 nsse
4425 noise preserving sum of squared differences
4426
4427 w53 5/3 wavelet, only used in snow
4428
4429 w97 9/7 wavelet, only used in snow
4430
4431 dctmax
4432 chroma
4433 pre_dia_size integer (encoding,video)
4434 Set diamond type & size for motion estimation pre-pass.
4435
4436 subq integer (encoding,video)
4437 Set sub pel motion estimation quality.
4438
4439 me_range integer (encoding,video)
4440 Set limit motion vectors range (1023 for DivX player).
4441
4442 global_quality integer (encoding,audio,video)
4443 slice_flags integer
4444 mbd integer (encoding,video)
4445 Set macroblock decision algorithm (high quality mode).
4446
4447 Possible values:
4448
4449 simple
4450 use mbcmp (default)
4451
4452 bits
4453 use fewest bits
4454
4455 rd use best rate distortion
4456
4457 rc_init_occupancy integer (encoding,video)
4458 Set number of bits which should be loaded into the rc buffer before
4459 decoding starts.
4460
4461 flags2 flags (decoding/encoding,audio,video,subtitles)
4462 Possible values:
4463
4464 fast
4465 Allow non spec compliant speedup tricks.
4466
4467 noout
4468 Skip bitstream encoding.
4469
4470 ignorecrop
4471 Ignore cropping information from sps.
4472
4473 local_header
4474 Place global headers at every keyframe instead of in extradata.
4475
4476 chunks
4477 Frame data might be split into multiple chunks.
4478
4479 showall
4480 Show all frames before the first keyframe.
4481
4482 export_mvs
4483 Export motion vectors into frame side-data (see
4484 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
4485 also doc/examples/export_mvs.c.
4486
4487 skip_manual
4488 Do not skip samples and export skip information as frame side
4489 data.
4490
4491 ass_ro_flush_noop
4492 Do not reset ASS ReadOrder field on flush.
4493
4494 export_side_data flags (decoding/encoding,audio,video,subtitles)
4495 Possible values:
4496
4497 mvs Export motion vectors into frame side-data (see
4498 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
4499 also doc/examples/export_mvs.c.
4500
4501 prft
4502 Export encoder Producer Reference Time into packet side-data
4503 (see "AV_PKT_DATA_PRFT") for codecs that support it.
4504
4505 venc_params
4506 Export video encoding parameters through frame side data (see
4507 "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
4508 At present, those are H.264 and VP9.
4509
4510 film_grain
4511 Export film grain parameters through frame side data (see
4512 "AV_FRAME_DATA_FILM_GRAIN_PARAMS"). Supported at present by
4513 AV1 decoders.
4514
4515 threads integer (decoding/encoding,video)
4516 Set the number of threads to be used, in case the selected codec
4517 implementation supports multi-threading.
4518
4519 Possible values:
4520
4521 auto, 0
4522 automatically select the number of threads to set
4523
4524 Default value is auto.
4525
4526 dc integer (encoding,video)
4527 Set intra_dc_precision.
4528
4529 nssew integer (encoding,video)
4530 Set nsse weight.
4531
4532 skip_top integer (decoding,video)
4533 Set number of macroblock rows at the top which are skipped.
4534
4535 skip_bottom integer (decoding,video)
4536 Set number of macroblock rows at the bottom which are skipped.
4537
4538 profile integer (encoding,audio,video)
4539 Set encoder codec profile. Default value is unknown. Encoder
4540 specific profiles are documented in the relevant encoder
4541 documentation.
4542
4543 level integer (encoding,audio,video)
4544 Possible values:
4545
4546 unknown
4547 lowres integer (decoding,audio,video)
4548 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
4549
4550 mblmin integer (encoding,video)
4551 Set min macroblock lagrange factor (VBR).
4552
4553 mblmax integer (encoding,video)
4554 Set max macroblock lagrange factor (VBR).
4555
4556 skip_loop_filter integer (decoding,video)
4557 skip_idct integer (decoding,video)
4558 skip_frame integer (decoding,video)
4559 Make decoder discard processing depending on the frame type
4560 selected by the option value.
4561
4562 skip_loop_filter skips frame loop filtering, skip_idct skips frame
4563 IDCT/dequantization, skip_frame skips decoding.
4564
4565 Possible values:
4566
4567 none
4568 Discard no frame.
4569
4570 default
4571 Discard useless frames like 0-sized frames.
4572
4573 noref
4574 Discard all non-reference frames.
4575
4576 bidir
4577 Discard all bidirectional frames.
4578
4579 nokey
4580 Discard all frames excepts keyframes.
4581
4582 nointra
4583 Discard all frames except I frames.
4584
4585 all Discard all frames.
4586
4587 Default value is default.
4588
4589 bidir_refine integer (encoding,video)
4590 Refine the two motion vectors used in bidirectional macroblocks.
4591
4592 keyint_min integer (encoding,video)
4593 Set minimum interval between IDR-frames.
4594
4595 refs integer (encoding,video)
4596 Set reference frames to consider for motion compensation.
4597
4598 trellis integer (encoding,audio,video)
4599 Set rate-distortion optimal quantization.
4600
4601 mv0_threshold integer (encoding,video)
4602 compression_level integer (encoding,audio,video)
4603 bits_per_raw_sample integer
4604 channel_layout integer (decoding/encoding,audio)
4605 Possible values:
4606
4607 request_channel_layout integer (decoding,audio)
4608 Possible values:
4609
4610 rc_max_vbv_use float (encoding,video)
4611 rc_min_vbv_use float (encoding,video)
4612 ticks_per_frame integer (decoding/encoding,audio,video)
4613 color_primaries integer (decoding/encoding,video)
4614 Possible values:
4615
4616 bt709
4617 BT.709
4618
4619 bt470m
4620 BT.470 M
4621
4622 bt470bg
4623 BT.470 BG
4624
4625 smpte170m
4626 SMPTE 170 M
4627
4628 smpte240m
4629 SMPTE 240 M
4630
4631 film
4632 Film
4633
4634 bt2020
4635 BT.2020
4636
4637 smpte428
4638 smpte428_1
4639 SMPTE ST 428-1
4640
4641 smpte431
4642 SMPTE 431-2
4643
4644 smpte432
4645 SMPTE 432-1
4646
4647 jedec-p22
4648 JEDEC P22
4649
4650 color_trc integer (decoding/encoding,video)
4651 Possible values:
4652
4653 bt709
4654 BT.709
4655
4656 gamma22
4657 BT.470 M
4658
4659 gamma28
4660 BT.470 BG
4661
4662 smpte170m
4663 SMPTE 170 M
4664
4665 smpte240m
4666 SMPTE 240 M
4667
4668 linear
4669 Linear
4670
4671 log
4672 log100
4673 Log
4674
4675 log_sqrt
4676 log316
4677 Log square root
4678
4679 iec61966_2_4
4680 iec61966-2-4
4681 IEC 61966-2-4
4682
4683 bt1361
4684 bt1361e
4685 BT.1361
4686
4687 iec61966_2_1
4688 iec61966-2-1
4689 IEC 61966-2-1
4690
4691 bt2020_10
4692 bt2020_10bit
4693 BT.2020 - 10 bit
4694
4695 bt2020_12
4696 bt2020_12bit
4697 BT.2020 - 12 bit
4698
4699 smpte2084
4700 SMPTE ST 2084
4701
4702 smpte428
4703 smpte428_1
4704 SMPTE ST 428-1
4705
4706 arib-std-b67
4707 ARIB STD-B67
4708
4709 colorspace integer (decoding/encoding,video)
4710 Possible values:
4711
4712 rgb RGB
4713
4714 bt709
4715 BT.709
4716
4717 fcc FCC
4718
4719 bt470bg
4720 BT.470 BG
4721
4722 smpte170m
4723 SMPTE 170 M
4724
4725 smpte240m
4726 SMPTE 240 M
4727
4728 ycocg
4729 YCOCG
4730
4731 bt2020nc
4732 bt2020_ncl
4733 BT.2020 NCL
4734
4735 bt2020c
4736 bt2020_cl
4737 BT.2020 CL
4738
4739 smpte2085
4740 SMPTE 2085
4741
4742 chroma-derived-nc
4743 Chroma-derived NCL
4744
4745 chroma-derived-c
4746 Chroma-derived CL
4747
4748 ictcp
4749 ICtCp
4750
4751 color_range integer (decoding/encoding,video)
4752 If used as input parameter, it serves as a hint to the decoder,
4753 which color_range the input has. Possible values:
4754
4755 tv
4756 mpeg
4757 MPEG (219*2^(n-8))
4758
4759 pc
4760 jpeg
4761 JPEG (2^n-1)
4762
4763 chroma_sample_location integer (decoding/encoding,video)
4764 Possible values:
4765
4766 left
4767 center
4768 topleft
4769 top
4770 bottomleft
4771 bottom
4772 log_level_offset integer
4773 Set the log level offset.
4774
4775 slices integer (encoding,video)
4776 Number of slices, used in parallelized encoding.
4777
4778 thread_type flags (decoding/encoding,video)
4779 Select which multithreading methods to use.
4780
4781 Use of frame will increase decoding delay by one frame per thread,
4782 so clients which cannot provide future frames should not use it.
4783
4784 Possible values:
4785
4786 slice
4787 Decode more than one part of a single frame at once.
4788
4789 Multithreading using slices works only when the video was
4790 encoded with slices.
4791
4792 frame
4793 Decode more than one frame at once.
4794
4795 Default value is slice+frame.
4796
4797 audio_service_type integer (encoding,audio)
4798 Set audio service type.
4799
4800 Possible values:
4801
4802 ma Main Audio Service
4803
4804 ef Effects
4805
4806 vi Visually Impaired
4807
4808 hi Hearing Impaired
4809
4810 di Dialogue
4811
4812 co Commentary
4813
4814 em Emergency
4815
4816 vo Voice Over
4817
4818 ka Karaoke
4819
4820 request_sample_fmt sample_fmt (decoding,audio)
4821 Set sample format audio decoders should prefer. Default value is
4822 "none".
4823
4824 pkt_timebase rational number
4825 sub_charenc encoding (decoding,subtitles)
4826 Set the input subtitles character encoding.
4827
4828 field_order field_order (video)
4829 Set/override the field order of the video. Possible values:
4830
4831 progressive
4832 Progressive video
4833
4834 tt Interlaced video, top field coded and displayed first
4835
4836 bb Interlaced video, bottom field coded and displayed first
4837
4838 tb Interlaced video, top coded first, bottom displayed first
4839
4840 bt Interlaced video, bottom coded first, top displayed first
4841
4842 skip_alpha bool (decoding,video)
4843 Set to 1 to disable processing alpha (transparency). This works
4844 like the gray flag in the flags option which skips chroma
4845 information instead of alpha. Default is 0.
4846
4847 codec_whitelist list (input)
4848 "," separated list of allowed decoders. By default all are allowed.
4849
4850 dump_separator string (input)
4851 Separator used to separate the fields printed on the command line
4852 about the Stream parameters. For example, to separate the fields
4853 with newlines and indentation:
4854
4855 ffprobe -dump_separator "
4856 " -i ~/videos/matrixbench_mpeg2.mpg
4857
4858 max_pixels integer (decoding/encoding,video)
4859 Maximum number of pixels per image. This value can be used to avoid
4860 out of memory failures due to large images.
4861
4862 apply_cropping bool (decoding,video)
4863 Enable cropping if cropping parameters are multiples of the
4864 required alignment for the left and top parameters. If the
4865 alignment is not met the cropping will be partially applied to
4866 maintain alignment. Default is 1 (enabled). Note: The required
4867 alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
4868 CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
4869 line. Also hardware decoders will not apply left/top Cropping.
4870
4872 Decoders are configured elements in FFmpeg which allow the decoding of
4873 multimedia streams.
4874
4875 When you configure your FFmpeg build, all the supported native decoders
4876 are enabled by default. Decoders requiring an external library must be
4877 enabled manually via the corresponding "--enable-lib" option. You can
4878 list all available decoders using the configure option
4879 "--list-decoders".
4880
4881 You can disable all the decoders with the configure option
4882 "--disable-decoders" and selectively enable / disable single decoders
4883 with the options "--enable-decoder=DECODER" /
4884 "--disable-decoder=DECODER".
4885
4886 The option "-decoders" of the ff* tools will display the list of
4887 enabled decoders.
4888
4890 A description of some of the currently available video decoders
4891 follows.
4892
4893 av1
4894 AOMedia Video 1 (AV1) decoder.
4895
4896 Options
4897
4898 operating_point
4899 Select an operating point of a scalable AV1 bitstream (0 - 31).
4900 Default is 0.
4901
4902 rawvideo
4903 Raw video decoder.
4904
4905 This decoder decodes rawvideo streams.
4906
4907 Options
4908
4909 top top_field_first
4910 Specify the assumed field type of the input video.
4911
4912 -1 the video is assumed to be progressive (default)
4913
4914 0 bottom-field-first is assumed
4915
4916 1 top-field-first is assumed
4917
4918 libdav1d
4919 dav1d AV1 decoder.
4920
4921 libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
4922 Requires the presence of the libdav1d headers and library during
4923 configuration. You need to explicitly configure the build with
4924 "--enable-libdav1d".
4925
4926 Options
4927
4928 The following options are supported by the libdav1d wrapper.
4929
4930 framethreads
4931 Set amount of frame threads to use during decoding. The default
4932 value is 0 (autodetect). This option is deprecated for libdav1d >=
4933 1.0 and will be removed in the future. Use the global option
4934 "threads" instead.
4935
4936 tilethreads
4937 Set amount of tile threads to use during decoding. The default
4938 value is 0 (autodetect). This option is deprecated for libdav1d >=
4939 1.0 and will be removed in the future. Use the global option
4940 "threads" instead.
4941
4942 filmgrain
4943 Apply film grain to the decoded video if present in the bitstream.
4944 Defaults to the internal default of the library. This option is
4945 deprecated and will be removed in the future. See the global option
4946 "export_side_data" to export Film Grain parameters instead of
4947 applying it.
4948
4949 oppoint
4950 Select an operating point of a scalable AV1 bitstream (0 - 31).
4951 Defaults to the internal default of the library.
4952
4953 alllayers
4954 Output all spatial layers of a scalable AV1 bitstream. The default
4955 value is false.
4956
4957 libdavs2
4958 AVS2-P2/IEEE1857.4 video decoder wrapper.
4959
4960 This decoder allows libavcodec to decode AVS2 streams with davs2
4961 library.
4962
4963 libuavs3d
4964 AVS3-P2/IEEE1857.10 video decoder.
4965
4966 libuavs3d allows libavcodec to decode AVS3 streams. Requires the
4967 presence of the libuavs3d headers and library during configuration.
4968 You need to explicitly configure the build with "--enable-libuavs3d".
4969
4970 Options
4971
4972 The following option is supported by the libuavs3d wrapper.
4973
4974 frame_threads
4975 Set amount of frame threads to use during decoding. The default
4976 value is 0 (autodetect).
4977
4978 QSV Decoders
4979 The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
4980 JPEG/MJPEG, VP8, VP9, AV1).
4981
4982 Common Options
4983
4984 The following options are supported by all qsv decoders.
4985
4986 async_depth
4987 Internal parallelization depth, the higher the value the higher the
4988 latency.
4989
4990 gpu_copy
4991 A GPU-accelerated copy between video and system memory
4992
4993 default
4994 on
4995 off
4996
4997 HEVC Options
4998
4999 Extra options for hevc_qsv.
5000
5001 load_plugin
5002 A user plugin to load in an internal session
5003
5004 none
5005 hevc_sw
5006 hevc_hw
5007 load_plugins
5008 A :-separate list of hexadecimal plugin UIDs to load in an internal
5009 session
5010
5011 v210
5012 Uncompressed 4:2:2 10-bit decoder.
5013
5014 Options
5015
5016 custom_stride
5017 Set the line size of the v210 data in bytes. The default value is 0
5018 (autodetect). You can use the special -1 value for a strideless
5019 v210 as seen in BOXX files.
5020
5022 A description of some of the currently available audio decoders
5023 follows.
5024
5025 ac3
5026 AC-3 audio decoder.
5027
5028 This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
5029 well as the undocumented RealAudio 3 (a.k.a. dnet).
5030
5031 AC-3 Decoder Options
5032
5033 -drc_scale value
5034 Dynamic Range Scale Factor. The factor to apply to dynamic range
5035 values from the AC-3 stream. This factor is applied exponentially.
5036 The default value is 1. There are 3 notable scale factor ranges:
5037
5038 drc_scale == 0
5039 DRC disabled. Produces full range audio.
5040
5041 0 < drc_scale <= 1
5042 DRC enabled. Applies a fraction of the stream DRC value.
5043 Audio reproduction is between full range and full compression.
5044
5045 drc_scale > 1
5046 DRC enabled. Applies drc_scale asymmetrically. Loud sounds are
5047 fully compressed. Soft sounds are enhanced.
5048
5049 flac
5050 FLAC audio decoder.
5051
5052 This decoder aims to implement the complete FLAC specification from
5053 Xiph.
5054
5055 FLAC Decoder options
5056
5057 -use_buggy_lpc
5058 The lavc FLAC encoder used to produce buggy streams with high lpc
5059 values (like the default value). This option makes it possible to
5060 decode such streams correctly by using lavc's old buggy lpc logic
5061 for decoding.
5062
5063 ffwavesynth
5064 Internal wave synthesizer.
5065
5066 This decoder generates wave patterns according to predefined sequences.
5067 Its use is purely internal and the format of the data it accepts is not
5068 publicly documented.
5069
5070 libcelt
5071 libcelt decoder wrapper.
5072
5073 libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
5074 codec. Requires the presence of the libcelt headers and library during
5075 configuration. You need to explicitly configure the build with
5076 "--enable-libcelt".
5077
5078 libgsm
5079 libgsm decoder wrapper.
5080
5081 libgsm allows libavcodec to decode the GSM full rate audio codec.
5082 Requires the presence of the libgsm headers and library during
5083 configuration. You need to explicitly configure the build with
5084 "--enable-libgsm".
5085
5086 This decoder supports both the ordinary GSM and the Microsoft variant.
5087
5088 libilbc
5089 libilbc decoder wrapper.
5090
5091 libilbc allows libavcodec to decode the Internet Low Bitrate Codec
5092 (iLBC) audio codec. Requires the presence of the libilbc headers and
5093 library during configuration. You need to explicitly configure the
5094 build with "--enable-libilbc".
5095
5096 Options
5097
5098 The following option is supported by the libilbc wrapper.
5099
5100 enhance
5101 Enable the enhancement of the decoded audio when set to 1. The
5102 default value is 0 (disabled).
5103
5104 libopencore-amrnb
5105 libopencore-amrnb decoder wrapper.
5106
5107 libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
5108 Narrowband audio codec. Using it requires the presence of the
5109 libopencore-amrnb headers and library during configuration. You need to
5110 explicitly configure the build with "--enable-libopencore-amrnb".
5111
5112 An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
5113 without this library.
5114
5115 libopencore-amrwb
5116 libopencore-amrwb decoder wrapper.
5117
5118 libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
5119 Wideband audio codec. Using it requires the presence of the
5120 libopencore-amrwb headers and library during configuration. You need to
5121 explicitly configure the build with "--enable-libopencore-amrwb".
5122
5123 An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
5124 without this library.
5125
5126 libopus
5127 libopus decoder wrapper.
5128
5129 libopus allows libavcodec to decode the Opus Interactive Audio Codec.
5130 Requires the presence of the libopus headers and library during
5131 configuration. You need to explicitly configure the build with
5132 "--enable-libopus".
5133
5134 An FFmpeg native decoder for Opus exists, so users can decode Opus
5135 without this library.
5136
5138 libaribb24
5139 ARIB STD-B24 caption decoder.
5140
5141 Implements profiles A and C of the ARIB STD-B24 standard.
5142
5143 libaribb24 Decoder Options
5144
5145 -aribb24-base-path path
5146 Sets the base path for the libaribb24 library. This is utilized for
5147 reading of configuration files (for custom unicode conversions),
5148 and for dumping of non-text symbols as images under that location.
5149
5150 Unset by default.
5151
5152 -aribb24-skip-ruby-text boolean
5153 Tells the decoder wrapper to skip text blocks that contain half-
5154 height ruby text.
5155
5156 Enabled by default.
5157
5158 dvbsub
5159 Options
5160
5161 compute_clut
5162 -2 Compute clut once if no matching CLUT is in the stream.
5163
5164 -1 Compute clut if no matching CLUT is in the stream.
5165
5166 0 Never compute CLUT
5167
5168 1 Always compute CLUT and override the one provided in the
5169 stream.
5170
5171 dvb_substream
5172 Selects the dvb substream, or all substreams if -1 which is
5173 default.
5174
5175 dvdsub
5176 This codec decodes the bitmap subtitles used in DVDs; the same
5177 subtitles can also be found in VobSub file pairs and in some Matroska
5178 files.
5179
5180 Options
5181
5182 palette
5183 Specify the global palette used by the bitmaps. When stored in
5184 VobSub, the palette is normally specified in the index file; in
5185 Matroska, the palette is stored in the codec extra-data in the same
5186 format as in VobSub. In DVDs, the palette is stored in the IFO
5187 file, and therefore not available when reading from dumped VOB
5188 files.
5189
5190 The format for this option is a string containing 16 24-bits
5191 hexadecimal numbers (without 0x prefix) separated by commas, for
5192 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
5193 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
5194 7c127b".
5195
5196 ifo_palette
5197 Specify the IFO file from which the global palette is obtained.
5198 (experimental)
5199
5200 forced_subs_only
5201 Only decode subtitle entries marked as forced. Some titles have
5202 forced and non-forced subtitles in the same track. Setting this
5203 flag to 1 will only keep the forced subtitles. Default value is 0.
5204
5205 libzvbi-teletext
5206 Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
5207 subtitles. Requires the presence of the libzvbi headers and library
5208 during configuration. You need to explicitly configure the build with
5209 "--enable-libzvbi".
5210
5211 Options
5212
5213 txt_page
5214 List of teletext page numbers to decode. Pages that do not match
5215 the specified list are dropped. You may use the special "*" string
5216 to match all pages, or "subtitle" to match all subtitle pages.
5217 Default value is *.
5218
5219 txt_default_region
5220 Set default character set used for decoding, a value between 0 and
5221 87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
5222 which does not override the libzvbi default. This option is needed
5223 for some legacy level 1.0 transmissions which cannot signal the
5224 proper charset.
5225
5226 txt_chop_top
5227 Discards the top teletext line. Default value is 1.
5228
5229 txt_format
5230 Specifies the format of the decoded subtitles.
5231
5232 bitmap
5233 The default format, you should use this for teletext pages,
5234 because certain graphics and colors cannot be expressed in
5235 simple text or even ASS.
5236
5237 text
5238 Simple text based output without formatting.
5239
5240 ass Formatted ASS output, subtitle pages and teletext pages are
5241 returned in different styles, subtitle pages are stripped down
5242 to text, but an effort is made to keep the text alignment and
5243 the formatting.
5244
5245 txt_left
5246 X offset of generated bitmaps, default is 0.
5247
5248 txt_top
5249 Y offset of generated bitmaps, default is 0.
5250
5251 txt_chop_spaces
5252 Chops leading and trailing spaces and removes empty lines from the
5253 generated text. This option is useful for teletext based subtitles
5254 where empty spaces may be present at the start or at the end of the
5255 lines or empty lines may be present between the subtitle lines
5256 because of double-sized teletext characters. Default value is 1.
5257
5258 txt_duration
5259 Sets the display duration of the decoded teletext pages or
5260 subtitles in milliseconds. Default value is -1 which means infinity
5261 or until the next subtitle event comes.
5262
5263 txt_transparent
5264 Force transparent background of the generated teletext bitmaps.
5265 Default value is 0 which means an opaque background.
5266
5267 txt_opacity
5268 Sets the opacity (0-255) of the teletext background. If
5269 txt_transparent is not set, it only affects characters between a
5270 start box and an end box, typically subtitles. Default value is 0
5271 if txt_transparent is set, 255 otherwise.
5272
5274 Encoders are configured elements in FFmpeg which allow the encoding of
5275 multimedia streams.
5276
5277 When you configure your FFmpeg build, all the supported native encoders
5278 are enabled by default. Encoders requiring an external library must be
5279 enabled manually via the corresponding "--enable-lib" option. You can
5280 list all available encoders using the configure option
5281 "--list-encoders".
5282
5283 You can disable all the encoders with the configure option
5284 "--disable-encoders" and selectively enable / disable single encoders
5285 with the options "--enable-encoder=ENCODER" /
5286 "--disable-encoder=ENCODER".
5287
5288 The option "-encoders" of the ff* tools will display the list of
5289 enabled encoders.
5290
5292 A description of some of the currently available audio encoders
5293 follows.
5294
5295 aac
5296 Advanced Audio Coding (AAC) encoder.
5297
5298 This encoder is the default AAC encoder, natively implemented into
5299 FFmpeg.
5300
5301 Options
5302
5303 b Set bit rate in bits/s. Setting this automatically activates
5304 constant bit rate (CBR) mode. If this option is unspecified it is
5305 set to 128kbps.
5306
5307 q Set quality for variable bit rate (VBR) mode. This option is valid
5308 only using the ffmpeg command-line tool. For library interface
5309 users, use global_quality.
5310
5311 cutoff
5312 Set cutoff frequency. If unspecified will allow the encoder to
5313 dynamically adjust the cutoff to improve clarity on low bitrates.
5314
5315 aac_coder
5316 Set AAC encoder coding method. Possible values:
5317
5318 twoloop
5319 Two loop searching (TLS) method. This is the default method.
5320
5321 This method first sets quantizers depending on band thresholds
5322 and then tries to find an optimal combination by adding or
5323 subtracting a specific value from all quantizers and adjusting
5324 some individual quantizer a little. Will tune itself based on
5325 whether aac_is, aac_ms and aac_pns are enabled.
5326
5327 anmr
5328 Average noise to mask ratio (ANMR) trellis-based solution.
5329
5330 This is an experimental coder which currently produces a lower
5331 quality, is more unstable and is slower than the default
5332 twoloop coder but has potential. Currently has no support for
5333 the aac_is or aac_pns options. Not currently recommended.
5334
5335 fast
5336 Constant quantizer method.
5337
5338 Uses a cheaper version of twoloop algorithm that doesn't try to
5339 do as many clever adjustments. Worse with low bitrates (less
5340 than 64kbps), but is better and much faster at higher bitrates.
5341
5342 aac_ms
5343 Sets mid/side coding mode. The default value of "auto" will
5344 automatically use M/S with bands which will benefit from such
5345 coding. Can be forced for all bands using the value "enable", which
5346 is mainly useful for debugging or disabled using "disable".
5347
5348 aac_is
5349 Sets intensity stereo coding tool usage. By default, it's enabled
5350 and will automatically toggle IS for similar pairs of stereo bands
5351 if it's beneficial. Can be disabled for debugging by setting the
5352 value to "disable".
5353
5354 aac_pns
5355 Uses perceptual noise substitution to replace low entropy high
5356 frequency bands with imperceptible white noise during the decoding
5357 process. By default, it's enabled, but can be disabled for
5358 debugging purposes by using "disable".
5359
5360 aac_tns
5361 Enables the use of a multitap FIR filter which spans through the
5362 high frequency bands to hide quantization noise during the encoding
5363 process and is reverted by the decoder. As well as decreasing
5364 unpleasant artifacts in the high range this also reduces the
5365 entropy in the high bands and allows for more bits to be used by
5366 the mid-low bands. By default it's enabled but can be disabled for
5367 debugging by setting the option to "disable".
5368
5369 aac_ltp
5370 Enables the use of the long term prediction extension which
5371 increases coding efficiency in very low bandwidth situations such
5372 as encoding of voice or solo piano music by extending constant
5373 harmonic peaks in bands throughout frames. This option is implied
5374 by profile:a aac_low and is incompatible with aac_pred. Use in
5375 conjunction with -ar to decrease the samplerate.
5376
5377 aac_pred
5378 Enables the use of a more traditional style of prediction where the
5379 spectral coefficients transmitted are replaced by the difference of
5380 the current coefficients minus the previous "predicted"
5381 coefficients. In theory and sometimes in practice this can improve
5382 quality for low to mid bitrate audio. This option implies the
5383 aac_main profile and is incompatible with aac_ltp.
5384
5385 profile
5386 Sets the encoding profile, possible values:
5387
5388 aac_low
5389 The default, AAC "Low-complexity" profile. Is the most
5390 compatible and produces decent quality.
5391
5392 mpeg2_aac_low
5393 Equivalent to "-profile:a aac_low -aac_pns 0". PNS was
5394 introduced with the MPEG4 specifications.
5395
5396 aac_ltp
5397 Long term prediction profile, is enabled by and will enable the
5398 aac_ltp option. Introduced in MPEG4.
5399
5400 aac_main
5401 Main-type prediction profile, is enabled by and will enable the
5402 aac_pred option. Introduced in MPEG2.
5403
5404 If this option is unspecified it is set to aac_low.
5405
5406 ac3 and ac3_fixed
5407 AC-3 audio encoders.
5408
5409 These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as
5410 well as the undocumented RealAudio 3 (a.k.a. dnet).
5411
5412 The ac3 encoder uses floating-point math, while the ac3_fixed encoder
5413 only uses fixed-point integer math. This does not mean that one is
5414 always faster, just that one or the other may be better suited to a
5415 particular system. The ac3_fixed encoder is not the default codec for
5416 any of the output formats, so it must be specified explicitly using the
5417 option "-acodec ac3_fixed" in order to use it.
5418
5419 AC-3 Metadata
5420
5421 The AC-3 metadata options are used to set parameters that describe the
5422 audio, but in most cases do not affect the audio encoding itself. Some
5423 of the options do directly affect or influence the decoding and
5424 playback of the resulting bitstream, while others are just for
5425 informational purposes. A few of the options will add bits to the
5426 output stream that could otherwise be used for audio data, and will
5427 thus affect the quality of the output. Those will be indicated
5428 accordingly with a note in the option list below.
5429
5430 These parameters are described in detail in several publicly-available
5431 documents.
5432
5433 *<<http://www.atsc.org/cms/standards/a_52-2010.pdf>>
5434 *<<http://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf>>
5435 *<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf>>
5436 *<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf>>
5437
5438 Metadata Control Options
5439
5440 -per_frame_metadata boolean
5441 Allow Per-Frame Metadata. Specifies if the encoder should check for
5442 changing metadata for each frame.
5443
5444 0 The metadata values set at initialization will be used for
5445 every frame in the stream. (default)
5446
5447 1 Metadata values can be changed before encoding each frame.
5448
5449 Downmix Levels
5450
5451 -center_mixlev level
5452 Center Mix Level. The amount of gain the decoder should apply to
5453 the center channel when downmixing to stereo. This field will only
5454 be written to the bitstream if a center channel is present. The
5455 value is specified as a scale factor. There are 3 valid values:
5456
5457 0.707
5458 Apply -3dB gain
5459
5460 0.595
5461 Apply -4.5dB gain (default)
5462
5463 0.500
5464 Apply -6dB gain
5465
5466 -surround_mixlev level
5467 Surround Mix Level. The amount of gain the decoder should apply to
5468 the surround channel(s) when downmixing to stereo. This field will
5469 only be written to the bitstream if one or more surround channels
5470 are present. The value is specified as a scale factor. There are 3
5471 valid values:
5472
5473 0.707
5474 Apply -3dB gain
5475
5476 0.500
5477 Apply -6dB gain (default)
5478
5479 0.000
5480 Silence Surround Channel(s)
5481
5482 Audio Production Information
5483
5484 Audio Production Information is optional information describing the
5485 mixing environment. Either none or both of the fields are written to
5486 the bitstream.
5487
5488 -mixing_level number
5489 Mixing Level. Specifies peak sound pressure level (SPL) in the
5490 production environment when the mix was mastered. Valid values are
5491 80 to 111, or -1 for unknown or not indicated. The default value is
5492 -1, but that value cannot be used if the Audio Production
5493 Information is written to the bitstream. Therefore, if the
5494 "room_type" option is not the default value, the "mixing_level"
5495 option must not be -1.
5496
5497 -room_type type
5498 Room Type. Describes the equalization used during the final mixing
5499 session at the studio or on the dubbing stage. A large room is a
5500 dubbing stage with the industry standard X-curve equalization; a
5501 small room has flat equalization. This field will not be written
5502 to the bitstream if both the "mixing_level" option and the
5503 "room_type" option have the default values.
5504
5505 0
5506 notindicated
5507 Not Indicated (default)
5508
5509 1
5510 large
5511 Large Room
5512
5513 2
5514 small
5515 Small Room
5516
5517 Other Metadata Options
5518
5519 -copyright boolean
5520 Copyright Indicator. Specifies whether a copyright exists for this
5521 audio.
5522
5523 0
5524 off No Copyright Exists (default)
5525
5526 1
5527 on Copyright Exists
5528
5529 -dialnorm value
5530 Dialogue Normalization. Indicates how far the average dialogue
5531 level of the program is below digital 100% full scale (0 dBFS).
5532 This parameter determines a level shift during audio reproduction
5533 that sets the average volume of the dialogue to a preset level. The
5534 goal is to match volume level between program sources. A value of
5535 -31dB will result in no volume level change, relative to the source
5536 volume, during audio reproduction. Valid values are whole numbers
5537 in the range -31 to -1, with -31 being the default.
5538
5539 -dsur_mode mode
5540 Dolby Surround Mode. Specifies whether the stereo signal uses Dolby
5541 Surround (Pro Logic). This field will only be written to the
5542 bitstream if the audio stream is stereo. Using this option does NOT
5543 mean the encoder will actually apply Dolby Surround processing.
5544
5545 0
5546 notindicated
5547 Not Indicated (default)
5548
5549 1
5550 off Not Dolby Surround Encoded
5551
5552 2
5553 on Dolby Surround Encoded
5554
5555 -original boolean
5556 Original Bit Stream Indicator. Specifies whether this audio is from
5557 the original source and not a copy.
5558
5559 0
5560 off Not Original Source
5561
5562 1
5563 on Original Source (default)
5564
5565 Extended Bitstream Information
5566
5567 The extended bitstream options are part of the Alternate Bit Stream
5568 Syntax as specified in Annex D of the A/52:2010 standard. It is grouped
5569 into 2 parts. If any one parameter in a group is specified, all values
5570 in that group will be written to the bitstream. Default values are
5571 used for those that are written but have not been specified. If the
5572 mixing levels are written, the decoder will use these values instead of
5573 the ones specified in the "center_mixlev" and "surround_mixlev" options
5574 if it supports the Alternate Bit Stream Syntax.
5575
5576 Extended Bitstream Information - Part 1
5577
5578 -dmix_mode mode
5579 Preferred Stereo Downmix Mode. Allows the user to select either
5580 Lt/Rt (Dolby Surround) or Lo/Ro (normal stereo) as the preferred
5581 stereo downmix mode.
5582
5583 0
5584 notindicated
5585 Not Indicated (default)
5586
5587 1
5588 ltrt
5589 Lt/Rt Downmix Preferred
5590
5591 2
5592 loro
5593 Lo/Ro Downmix Preferred
5594
5595 -ltrt_cmixlev level
5596 Lt/Rt Center Mix Level. The amount of gain the decoder should apply
5597 to the center channel when downmixing to stereo in Lt/Rt mode.
5598
5599 1.414
5600 Apply +3dB gain
5601
5602 1.189
5603 Apply +1.5dB gain
5604
5605 1.000
5606 Apply 0dB gain
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 (default)
5616
5617 0.500
5618 Apply -6.0dB gain
5619
5620 0.000
5621 Silence Center Channel
5622
5623 -ltrt_surmixlev level
5624 Lt/Rt Surround Mix Level. The amount of gain the decoder should
5625 apply to the surround channel(s) when downmixing to stereo in Lt/Rt
5626 mode.
5627
5628 0.841
5629 Apply -1.5dB gain
5630
5631 0.707
5632 Apply -3.0dB gain
5633
5634 0.595
5635 Apply -4.5dB gain
5636
5637 0.500
5638 Apply -6.0dB gain (default)
5639
5640 0.000
5641 Silence Surround Channel(s)
5642
5643 -loro_cmixlev level
5644 Lo/Ro Center Mix Level. The amount of gain the decoder should apply
5645 to the center channel when downmixing to stereo in Lo/Ro mode.
5646
5647 1.414
5648 Apply +3dB gain
5649
5650 1.189
5651 Apply +1.5dB gain
5652
5653 1.000
5654 Apply 0dB gain
5655
5656 0.841
5657 Apply -1.5dB gain
5658
5659 0.707
5660 Apply -3.0dB gain
5661
5662 0.595
5663 Apply -4.5dB gain (default)
5664
5665 0.500
5666 Apply -6.0dB gain
5667
5668 0.000
5669 Silence Center Channel
5670
5671 -loro_surmixlev level
5672 Lo/Ro Surround Mix Level. The amount of gain the decoder should
5673 apply to the surround channel(s) when downmixing to stereo in Lo/Ro
5674 mode.
5675
5676 0.841
5677 Apply -1.5dB gain
5678
5679 0.707
5680 Apply -3.0dB gain
5681
5682 0.595
5683 Apply -4.5dB gain
5684
5685 0.500
5686 Apply -6.0dB gain (default)
5687
5688 0.000
5689 Silence Surround Channel(s)
5690
5691 Extended Bitstream Information - Part 2
5692
5693 -dsurex_mode mode
5694 Dolby Surround EX Mode. Indicates whether the stream uses Dolby
5695 Surround EX (7.1 matrixed to 5.1). Using this option does NOT mean
5696 the encoder will actually apply Dolby Surround EX processing.
5697
5698 0
5699 notindicated
5700 Not Indicated (default)
5701
5702 1
5703 on Dolby Surround EX Off
5704
5705 2
5706 off Dolby Surround EX On
5707
5708 -dheadphone_mode mode
5709 Dolby Headphone Mode. Indicates whether the stream uses Dolby
5710 Headphone encoding (multi-channel matrixed to 2.0 for use with
5711 headphones). Using this option does NOT mean the encoder will
5712 actually apply Dolby Headphone processing.
5713
5714 0
5715 notindicated
5716 Not Indicated (default)
5717
5718 1
5719 on Dolby Headphone Off
5720
5721 2
5722 off Dolby Headphone On
5723
5724 -ad_conv_type type
5725 A/D Converter Type. Indicates whether the audio has passed through
5726 HDCD A/D conversion.
5727
5728 0
5729 standard
5730 Standard A/D Converter (default)
5731
5732 1
5733 hdcd
5734 HDCD A/D Converter
5735
5736 Other AC-3 Encoding Options
5737
5738 -stereo_rematrixing boolean
5739 Stereo Rematrixing. Enables/Disables use of rematrixing for stereo
5740 input. This is an optional AC-3 feature that increases quality by
5741 selectively encoding the left/right channels as mid/side. This
5742 option is enabled by default, and it is highly recommended that it
5743 be left as enabled except for testing purposes.
5744
5745 cutoff frequency
5746 Set lowpass cutoff frequency. If unspecified, the encoder selects a
5747 default determined by various other encoding parameters.
5748
5749 Floating-Point-Only AC-3 Encoding Options
5750
5751 These options are only valid for the floating-point encoder and do not
5752 exist for the fixed-point encoder due to the corresponding features not
5753 being implemented in fixed-point.
5754
5755 -channel_coupling boolean
5756 Enables/Disables use of channel coupling, which is an optional AC-3
5757 feature that increases quality by combining high frequency
5758 information from multiple channels into a single channel. The per-
5759 channel high frequency information is sent with less accuracy in
5760 both the frequency and time domains. This allows more bits to be
5761 used for lower frequencies while preserving enough information to
5762 reconstruct the high frequencies. This option is enabled by default
5763 for the floating-point encoder and should generally be left as
5764 enabled except for testing purposes or to increase encoding speed.
5765
5766 -1
5767 auto
5768 Selected by Encoder (default)
5769
5770 0
5771 off Disable Channel Coupling
5772
5773 1
5774 on Enable Channel Coupling
5775
5776 -cpl_start_band number
5777 Coupling Start Band. Sets the channel coupling start band, from 1
5778 to 15. If a value higher than the bandwidth is used, it will be
5779 reduced to 1 less than the coupling end band. If auto is used, the
5780 start band will be determined by the encoder based on the bit rate,
5781 sample rate, and channel layout. This option has no effect if
5782 channel coupling is disabled.
5783
5784 -1
5785 auto
5786 Selected by Encoder (default)
5787
5788 flac
5789 FLAC (Free Lossless Audio Codec) Encoder
5790
5791 Options
5792
5793 The following options are supported by FFmpeg's flac encoder.
5794
5795 compression_level
5796 Sets the compression level, which chooses defaults for many other
5797 options if they are not set explicitly. Valid values are from 0 to
5798 12, 5 is the default.
5799
5800 frame_size
5801 Sets the size of the frames in samples per channel.
5802
5803 lpc_coeff_precision
5804 Sets the LPC coefficient precision, valid values are from 1 to 15,
5805 15 is the default.
5806
5807 lpc_type
5808 Sets the first stage LPC algorithm
5809
5810 none
5811 LPC is not used
5812
5813 fixed
5814 fixed LPC coefficients
5815
5816 levinson
5817 cholesky
5818 lpc_passes
5819 Number of passes to use for Cholesky factorization during LPC
5820 analysis
5821
5822 min_partition_order
5823 The minimum partition order
5824
5825 max_partition_order
5826 The maximum partition order
5827
5828 prediction_order_method
5829 estimation
5830 2level
5831 4level
5832 8level
5833 search
5834 Bruteforce search
5835
5836 log
5837 ch_mode
5838 Channel mode
5839
5840 auto
5841 The mode is chosen automatically for each frame
5842
5843 indep
5844 Channels are independently coded
5845
5846 left_side
5847 right_side
5848 mid_side
5849 exact_rice_parameters
5850 Chooses if rice parameters are calculated exactly or approximately.
5851 if set to 1 then they are chosen exactly, which slows the code down
5852 slightly and improves compression slightly.
5853
5854 multi_dim_quant
5855 Multi Dimensional Quantization. If set to 1 then a 2nd stage LPC
5856 algorithm is applied after the first stage to finetune the
5857 coefficients. This is quite slow and slightly improves compression.
5858
5859 opus
5860 Opus encoder.
5861
5862 This is a native FFmpeg encoder for the Opus format. Currently its in
5863 development and only implements the CELT part of the codec. Its quality
5864 is usually worse and at best is equal to the libopus encoder.
5865
5866 Options
5867
5868 b Set bit rate in bits/s. If unspecified it uses the number of
5869 channels and the layout to make a good guess.
5870
5871 opus_delay
5872 Sets the maximum delay in milliseconds. Lower delays than 20ms will
5873 very quickly decrease quality.
5874
5875 libfdk_aac
5876 libfdk-aac AAC (Advanced Audio Coding) encoder wrapper.
5877
5878 The libfdk-aac library is based on the Fraunhofer FDK AAC code from the
5879 Android project.
5880
5881 Requires the presence of the libfdk-aac headers and library during
5882 configuration. You need to explicitly configure the build with
5883 "--enable-libfdk-aac". The library is also incompatible with GPL, so if
5884 you allow the use of GPL, you should configure with "--enable-gpl
5885 --enable-nonfree --enable-libfdk-aac".
5886
5887 This encoder has support for the AAC-HE profiles.
5888
5889 VBR encoding, enabled through the vbr or flags +qscale options, is
5890 experimental and only works with some combinations of parameters.
5891
5892 Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3
5893 or higher.
5894
5895 For more information see the fdk-aac project at
5896 <http://sourceforge.net/p/opencore-amr/fdk-aac/>.
5897
5898 Options
5899
5900 The following options are mapped on the shared FFmpeg codec options.
5901
5902 b Set bit rate in bits/s. If the bitrate is not explicitly specified,
5903 it is automatically set to a suitable value depending on the
5904 selected profile.
5905
5906 In case VBR mode is enabled the option is ignored.
5907
5908 ar Set audio sampling rate (in Hz).
5909
5910 channels
5911 Set the number of audio channels.
5912
5913 flags +qscale
5914 Enable fixed quality, VBR (Variable Bit Rate) mode. Note that VBR
5915 is implicitly enabled when the vbr value is positive.
5916
5917 cutoff
5918 Set cutoff frequency. If not specified (or explicitly set to 0) it
5919 will use a value automatically computed by the library. Default
5920 value is 0.
5921
5922 profile
5923 Set audio profile.
5924
5925 The following profiles are recognized:
5926
5927 aac_low
5928 Low Complexity AAC (LC)
5929
5930 aac_he
5931 High Efficiency AAC (HE-AAC)
5932
5933 aac_he_v2
5934 High Efficiency AAC version 2 (HE-AACv2)
5935
5936 aac_ld
5937 Low Delay AAC (LD)
5938
5939 aac_eld
5940 Enhanced Low Delay AAC (ELD)
5941
5942 If not specified it is set to aac_low.
5943
5944 The following are private options of the libfdk_aac encoder.
5945
5946 afterburner
5947 Enable afterburner feature if set to 1, disabled if set to 0. This
5948 improves the quality but also the required processing power.
5949
5950 Default value is 1.
5951
5952 eld_sbr
5953 Enable SBR (Spectral Band Replication) for ELD if set to 1,
5954 disabled if set to 0.
5955
5956 Default value is 0.
5957
5958 eld_v2
5959 Enable ELDv2 (LD-MPS extension for ELD stereo signals) for ELDv2 if
5960 set to 1, disabled if set to 0.
5961
5962 Note that option is available when fdk-aac version
5963 (AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) >
5964 (4.0.0).
5965
5966 Default value is 0.
5967
5968 signaling
5969 Set SBR/PS signaling style.
5970
5971 It can assume one of the following values:
5972
5973 default
5974 choose signaling implicitly (explicit hierarchical by default,
5975 implicit if global header is disabled)
5976
5977 implicit
5978 implicit backwards compatible signaling
5979
5980 explicit_sbr
5981 explicit SBR, implicit PS signaling
5982
5983 explicit_hierarchical
5984 explicit hierarchical signaling
5985
5986 Default value is default.
5987
5988 latm
5989 Output LATM/LOAS encapsulated data if set to 1, disabled if set to
5990 0.
5991
5992 Default value is 0.
5993
5994 header_period
5995 Set StreamMuxConfig and PCE repetition period (in frames) for
5996 sending in-band configuration buffers within LATM/LOAS transport
5997 layer.
5998
5999 Must be a 16-bits non-negative integer.
6000
6001 Default value is 0.
6002
6003 vbr Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty
6004 good) and 5 is highest quality. A value of 0 will disable VBR, and
6005 CBR (Constant Bit Rate) is enabled.
6006
6007 Currently only the aac_low profile supports VBR encoding.
6008
6009 VBR modes 1-5 correspond to roughly the following average bit
6010 rates:
6011
6012 1 32 kbps/channel
6013
6014 2 40 kbps/channel
6015
6016 3 48-56 kbps/channel
6017
6018 4 64 kbps/channel
6019
6020 5 about 80-96 kbps/channel
6021
6022 Default value is 0.
6023
6024 Examples
6025
6026 • Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4)
6027 container:
6028
6029 ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
6030
6031 • Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using the
6032 High-Efficiency AAC profile:
6033
6034 ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
6035
6036 libmp3lame
6037 LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper.
6038
6039 Requires the presence of the libmp3lame headers and library during
6040 configuration. You need to explicitly configure the build with
6041 "--enable-libmp3lame".
6042
6043 See libshine for a fixed-point MP3 encoder, although with a lower
6044 quality.
6045
6046 Options
6047
6048 The following options are supported by the libmp3lame wrapper. The
6049 lame-equivalent of the options are listed in parentheses.
6050
6051 b (-b)
6052 Set bitrate expressed in bits/s for CBR or ABR. LAME "bitrate" is
6053 expressed in kilobits/s.
6054
6055 q (-V)
6056 Set constant quality setting for VBR. This option is valid only
6057 using the ffmpeg command-line tool. For library interface users,
6058 use global_quality.
6059
6060 compression_level (-q)
6061 Set algorithm quality. Valid arguments are integers in the 0-9
6062 range, with 0 meaning highest quality but slowest, and 9 meaning
6063 fastest while producing the worst quality.
6064
6065 cutoff (--lowpass)
6066 Set lowpass cutoff frequency. If unspecified, the encoder
6067 dynamically adjusts the cutoff.
6068
6069 reservoir
6070 Enable use of bit reservoir when set to 1. Default value is 1. LAME
6071 has this enabled by default, but can be overridden by use --nores
6072 option.
6073
6074 joint_stereo (-m j)
6075 Enable the encoder to use (on a frame by frame basis) either L/R
6076 stereo or mid/side stereo. Default value is 1.
6077
6078 abr (--abr)
6079 Enable the encoder to use ABR when set to 1. The lame --abr sets
6080 the target bitrate, while this options only tells FFmpeg to use ABR
6081 still relies on b to set bitrate.
6082
6083 libopencore-amrnb
6084 OpenCORE Adaptive Multi-Rate Narrowband encoder.
6085
6086 Requires the presence of the libopencore-amrnb headers and library
6087 during configuration. You need to explicitly configure the build with
6088 "--enable-libopencore-amrnb --enable-version3".
6089
6090 This is a mono-only encoder. Officially it only supports 8000Hz sample
6091 rate, but you can override it by setting strict to unofficial or lower.
6092
6093 Options
6094
6095 b Set bitrate in bits per second. Only the following bitrates are
6096 supported, otherwise libavcodec will round to the nearest valid
6097 bitrate.
6098
6099 4750
6100 5150
6101 5900
6102 6700
6103 7400
6104 7950
6105 10200
6106 12200
6107 dtx Allow discontinuous transmission (generate comfort noise) when set
6108 to 1. The default value is 0 (disabled).
6109
6110 libopus
6111 libopus Opus Interactive Audio Codec encoder wrapper.
6112
6113 Requires the presence of the libopus headers and library during
6114 configuration. You need to explicitly configure the build with
6115 "--enable-libopus".
6116
6117 Option Mapping
6118
6119 Most libopus options are modelled after the opusenc utility from opus-
6120 tools. The following is an option mapping chart describing options
6121 supported by the libopus wrapper, and their opusenc-equivalent in
6122 parentheses.
6123
6124 b (bitrate)
6125 Set the bit rate in bits/s. FFmpeg's b option is expressed in
6126 bits/s, while opusenc's bitrate in kilobits/s.
6127
6128 vbr (vbr, hard-cbr, and cvbr)
6129 Set VBR mode. The FFmpeg vbr option has the following valid
6130 arguments, with the opusenc equivalent options in parentheses:
6131
6132 off (hard-cbr)
6133 Use constant bit rate encoding.
6134
6135 on (vbr)
6136 Use variable bit rate encoding (the default).
6137
6138 constrained (cvbr)
6139 Use constrained variable bit rate encoding.
6140
6141 compression_level (comp)
6142 Set encoding algorithm complexity. Valid options are integers in
6143 the 0-10 range. 0 gives the fastest encodes but lower quality,
6144 while 10 gives the highest quality but slowest encoding. The
6145 default is 10.
6146
6147 frame_duration (framesize)
6148 Set maximum frame size, or duration of a frame in milliseconds. The
6149 argument must be exactly the following: 2.5, 5, 10, 20, 40, 60.
6150 Smaller frame sizes achieve lower latency but less quality at a
6151 given bitrate. Sizes greater than 20ms are only interesting at
6152 fairly low bitrates. The default is 20ms.
6153
6154 packet_loss (expect-loss)
6155 Set expected packet loss percentage. The default is 0.
6156
6157 fec (n/a)
6158 Enable inband forward error correction. packet_loss must be non-
6159 zero to take advantage - frequency of FEC 'side-data' is
6160 proportional to expected packet loss. Default is disabled.
6161
6162 application (N.A.)
6163 Set intended application type. Valid options are listed below:
6164
6165 voip
6166 Favor improved speech intelligibility.
6167
6168 audio
6169 Favor faithfulness to the input (the default).
6170
6171 lowdelay
6172 Restrict to only the lowest delay modes.
6173
6174 cutoff (N.A.)
6175 Set cutoff bandwidth in Hz. The argument must be exactly one of the
6176 following: 4000, 6000, 8000, 12000, or 20000, corresponding to
6177 narrowband, mediumband, wideband, super wideband, and fullband
6178 respectively. The default is 0 (cutoff disabled).
6179
6180 mapping_family (mapping_family)
6181 Set channel mapping family to be used by the encoder. The default
6182 value of -1 uses mapping family 0 for mono and stereo inputs, and
6183 mapping family 1 otherwise. The default also disables the surround
6184 masking and LFE bandwidth optimzations in libopus, and requires
6185 that the input contains 8 channels or fewer.
6186
6187 Other values include 0 for mono and stereo, 1 for surround sound
6188 with masking and LFE bandwidth optimizations, and 255 for
6189 independent streams with an unspecified channel layout.
6190
6191 apply_phase_inv (N.A.) (requires libopus >= 1.2)
6192 If set to 0, disables the use of phase inversion for intensity
6193 stereo, improving the quality of mono downmixes, but slightly
6194 reducing normal stereo quality. The default is 1 (phase inversion
6195 enabled).
6196
6197 libshine
6198 Shine Fixed-Point MP3 encoder wrapper.
6199
6200 Shine is a fixed-point MP3 encoder. It has a far better performance on
6201 platforms without an FPU, e.g. armel CPUs, and some phones and tablets.
6202 However, as it is more targeted on performance than quality, it is not
6203 on par with LAME and other production-grade encoders quality-wise.
6204 Also, according to the project's homepage, this encoder may not be free
6205 of bugs as the code was written a long time ago and the project was
6206 dead for at least 5 years.
6207
6208 This encoder only supports stereo and mono input. This is also CBR-
6209 only.
6210
6211 The original project (last updated in early 2007) is at
6212 <http://sourceforge.net/projects/libshine-fxp/>. We only support the
6213 updated fork by the Savonet/Liquidsoap project at
6214 <https://github.com/savonet/shine>.
6215
6216 Requires the presence of the libshine headers and library during
6217 configuration. You need to explicitly configure the build with
6218 "--enable-libshine".
6219
6220 See also libmp3lame.
6221
6222 Options
6223
6224 The following options are supported by the libshine wrapper. The
6225 shineenc-equivalent of the options are listed in parentheses.
6226
6227 b (-b)
6228 Set bitrate expressed in bits/s for CBR. shineenc -b option is
6229 expressed in kilobits/s.
6230
6231 libtwolame
6232 TwoLAME MP2 encoder wrapper.
6233
6234 Requires the presence of the libtwolame headers and library during
6235 configuration. You need to explicitly configure the build with
6236 "--enable-libtwolame".
6237
6238 Options
6239
6240 The following options are supported by the libtwolame wrapper. The
6241 twolame-equivalent options follow the FFmpeg ones and are in
6242 parentheses.
6243
6244 b (-b)
6245 Set bitrate expressed in bits/s for CBR. twolame b option is
6246 expressed in kilobits/s. Default value is 128k.
6247
6248 q (-V)
6249 Set quality for experimental VBR support. Maximum value range is
6250 from -50 to 50, useful range is from -10 to 10. The higher the
6251 value, the better the quality. This option is valid only using the
6252 ffmpeg command-line tool. For library interface users, use
6253 global_quality.
6254
6255 mode (--mode)
6256 Set the mode of the resulting audio. Possible values:
6257
6258 auto
6259 Choose mode automatically based on the input. This is the
6260 default.
6261
6262 stereo
6263 Stereo
6264
6265 joint_stereo
6266 Joint stereo
6267
6268 dual_channel
6269 Dual channel
6270
6271 mono
6272 Mono
6273
6274 psymodel (--psyc-mode)
6275 Set psychoacoustic model to use in encoding. The argument must be
6276 an integer between -1 and 4, inclusive. The higher the value, the
6277 better the quality. The default value is 3.
6278
6279 energy_levels (--energy)
6280 Enable energy levels extensions when set to 1. The default value is
6281 0 (disabled).
6282
6283 error_protection (--protect)
6284 Enable CRC error protection when set to 1. The default value is 0
6285 (disabled).
6286
6287 copyright (--copyright)
6288 Set MPEG audio copyright flag when set to 1. The default value is 0
6289 (disabled).
6290
6291 original (--original)
6292 Set MPEG audio original flag when set to 1. The default value is 0
6293 (disabled).
6294
6295 libvo-amrwbenc
6296 VisualOn Adaptive Multi-Rate Wideband encoder.
6297
6298 Requires the presence of the libvo-amrwbenc headers and library during
6299 configuration. You need to explicitly configure the build with
6300 "--enable-libvo-amrwbenc --enable-version3".
6301
6302 This is a mono-only encoder. Officially it only supports 16000Hz sample
6303 rate, but you can override it by setting strict to unofficial or lower.
6304
6305 Options
6306
6307 b Set bitrate in bits/s. Only the following bitrates are supported,
6308 otherwise libavcodec will round to the nearest valid bitrate.
6309
6310 6600
6311 8850
6312 12650
6313 14250
6314 15850
6315 18250
6316 19850
6317 23050
6318 23850
6319 dtx Allow discontinuous transmission (generate comfort noise) when set
6320 to 1. The default value is 0 (disabled).
6321
6322 libvorbis
6323 libvorbis encoder wrapper.
6324
6325 Requires the presence of the libvorbisenc headers and library during
6326 configuration. You need to explicitly configure the build with
6327 "--enable-libvorbis".
6328
6329 Options
6330
6331 The following options are supported by the libvorbis wrapper. The
6332 oggenc-equivalent of the options are listed in parentheses.
6333
6334 To get a more accurate and extensive documentation of the libvorbis
6335 options, consult the libvorbisenc's and oggenc's documentations. See
6336 <http://xiph.org/vorbis/>, <http://wiki.xiph.org/Vorbis-tools>, and
6337 oggenc(1).
6338
6339 b (-b)
6340 Set bitrate expressed in bits/s for ABR. oggenc -b is expressed in
6341 kilobits/s.
6342
6343 q (-q)
6344 Set constant quality setting for VBR. The value should be a float
6345 number in the range of -1.0 to 10.0. The higher the value, the
6346 better the quality. The default value is 3.0.
6347
6348 This option is valid only using the ffmpeg command-line tool. For
6349 library interface users, use global_quality.
6350
6351 cutoff (--advanced-encode-option lowpass_frequency=N)
6352 Set cutoff bandwidth in Hz, a value of 0 disables cutoff. oggenc's
6353 related option is expressed in kHz. The default value is 0 (cutoff
6354 disabled).
6355
6356 minrate (-m)
6357 Set minimum bitrate expressed in bits/s. oggenc -m is expressed in
6358 kilobits/s.
6359
6360 maxrate (-M)
6361 Set maximum bitrate expressed in bits/s. oggenc -M is expressed in
6362 kilobits/s. This only has effect on ABR mode.
6363
6364 iblock (--advanced-encode-option impulse_noisetune=N)
6365 Set noise floor bias for impulse blocks. The value is a float
6366 number from -15.0 to 0.0. A negative bias instructs the encoder to
6367 pay special attention to the crispness of transients in the encoded
6368 audio. The tradeoff for better transient response is a higher
6369 bitrate.
6370
6371 mjpeg
6372 Motion JPEG encoder.
6373
6374 Options
6375
6376 huffman
6377 Set the huffman encoding strategy. Possible values:
6378
6379 default
6380 Use the default huffman tables. This is the default strategy.
6381
6382 optimal
6383 Compute and use optimal huffman tables.
6384
6385 wavpack
6386 WavPack lossless audio encoder.
6387
6388 Options
6389
6390 The equivalent options for wavpack command line utility are listed in
6391 parentheses.
6392
6393 Shared options
6394
6395 The following shared options are effective for this encoder. Only
6396 special notes about this particular encoder will be documented here.
6397 For the general meaning of the options, see the Codec Options chapter.
6398
6399 frame_size (--blocksize)
6400 For this encoder, the range for this option is between 128 and
6401 131072. Default is automatically decided based on sample rate and
6402 number of channel.
6403
6404 For the complete formula of calculating default, see
6405 libavcodec/wavpackenc.c.
6406
6407 compression_level (-f, -h, -hh, and -x)
6408
6409 Private options
6410
6411 joint_stereo (-j)
6412 Set whether to enable joint stereo. Valid values are:
6413
6414 on (1)
6415 Force mid/side audio encoding.
6416
6417 off (0)
6418 Force left/right audio encoding.
6419
6420 auto
6421 Let the encoder decide automatically.
6422
6423 optimize_mono
6424 Set whether to enable optimization for mono. This option is only
6425 effective for non-mono streams. Available values:
6426
6427 on enabled
6428
6429 off disabled
6430
6432 A description of some of the currently available video encoders
6433 follows.
6434
6435 a64_multi, a64_multi5
6436 A64 / Commodore 64 multicolor charset encoder. "a64_multi5" is extended
6437 with 5th color (colram).
6438
6439 Cinepak
6440 Cinepak aka CVID encoder. Compatible with Windows 3.1 and vintage
6441 MacOS.
6442
6443 Options
6444
6445 g integer
6446 Keyframe interval. A keyframe is inserted at least every "-g"
6447 frames, sometimes sooner.
6448
6449 q:v integer
6450 Quality factor. Lower is better. Higher gives lower bitrate. The
6451 following table lists bitrates when encoding akiyo_cif.y4m for
6452 various values of "-q:v" with "-g 100":
6453
6454 "-q:v 1" 1918 kb/s
6455 "-q:v 2" 1735 kb/s
6456 "-q:v 4" 1500 kb/s
6457 "-q:v 10" 1041 kb/s
6458 "-q:v 20" 826 kb/s
6459 "-q:v 40" 553 kb/s
6460 "-q:v 100" 394 kb/s
6461 "-q:v 200" 312 kb/s
6462 "-q:v 400" 266 kb/s
6463 "-q:v 1000" 237 kb/s
6464 max_extra_cb_iterations integer
6465 Max extra codebook recalculation passes, more is better and slower.
6466
6467 skip_empty_cb boolean
6468 Avoid wasting bytes, ignore vintage MacOS decoder.
6469
6470 max_strips integer
6471 min_strips integer
6472 The minimum and maximum number of strips to use. Wider range
6473 sometimes improves quality. More strips is generally better
6474 quality but costs more bits. Fewer strips tend to yield more
6475 keyframes. Vintage compatible is 1..3.
6476
6477 strip_number_adaptivity integer
6478 How much number of strips is allowed to change between frames.
6479 Higher is better but slower.
6480
6481 GIF
6482 GIF image/animation encoder.
6483
6484 Options
6485
6486 gifflags integer
6487 Sets the flags used for GIF encoding.
6488
6489 offsetting
6490 Enables picture offsetting.
6491
6492 Default is enabled.
6493
6494 transdiff
6495 Enables transparency detection between frames.
6496
6497 Default is enabled.
6498
6499 gifimage integer
6500 Enables encoding one full GIF image per frame, rather than an
6501 animated GIF.
6502
6503 Default value is 0.
6504
6505 global_palette integer
6506 Writes a palette to the global GIF header where feasible.
6507
6508 If disabled, every frame will always have a palette written, even
6509 if there is a global palette supplied.
6510
6511 Default value is 1.
6512
6513 Hap
6514 Vidvox Hap video encoder.
6515
6516 Options
6517
6518 format integer
6519 Specifies the Hap format to encode.
6520
6521 hap
6522 hap_alpha
6523 hap_q
6524
6525 Default value is hap.
6526
6527 chunks integer
6528 Specifies the number of chunks to split frames into, between 1 and
6529 64. This permits multithreaded decoding of large frames,
6530 potentially at the cost of data-rate. The encoder may modify this
6531 value to divide frames evenly.
6532
6533 Default value is 1.
6534
6535 compressor integer
6536 Specifies the second-stage compressor to use. If set to none,
6537 chunks will be limited to 1, as chunked uncompressed frames offer
6538 no benefit.
6539
6540 none
6541 snappy
6542
6543 Default value is snappy.
6544
6545 jpeg2000
6546 The native jpeg 2000 encoder is lossy by default, the "-q:v" option can
6547 be used to set the encoding quality. Lossless encoding can be selected
6548 with "-pred 1".
6549
6550 Options
6551
6552 format integer
6553 Can be set to either "j2k" or "jp2" (the default) that makes it
6554 possible to store non-rgb pix_fmts.
6555
6556 tile_width integer
6557 Sets tile width. Range is 1 to 1073741824. Default is 256.
6558
6559 tile_height integer
6560 Sets tile height. Range is 1 to 1073741824. Default is 256.
6561
6562 pred integer
6563 Allows setting the discrete wavelet transform (DWT) type
6564
6565 dwt97int (Lossy)
6566 dwt53 (Lossless)
6567
6568 Default is "dwt97int"
6569
6570 sop boolean
6571 Enable this to add SOP marker at the start of each packet. Disabled
6572 by default.
6573
6574 eph boolean
6575 Enable this to add EPH marker at the end of each packet header.
6576 Disabled by default.
6577
6578 prog integer
6579 Sets the progression order to be used by the encoder. Possible
6580 values are:
6581
6582 lrcp
6583 rlcp
6584 rpcl
6585 pcrl
6586 cprl
6587
6588 Set to "lrcp" by default.
6589
6590 layer_rates string
6591 By default, when this option is not used, compression is done using
6592 the quality metric. This option allows for compression using
6593 compression ratio. The compression ratio for each level could be
6594 specified. The compression ratio of a layer "l" species the what
6595 ratio of total file size is contained in the first "l" layers.
6596
6597 Example usage:
6598
6599 ffmpeg -i input.bmp -c:v jpeg2000 -layer_rates "100,10,1" output.j2k
6600
6601 This would compress the image to contain 3 layers, where the data
6602 contained in the first layer would be compressed by 1000 times,
6603 compressed by 100 in the first two layers, and shall contain all
6604 data while using all 3 layers.
6605
6606 librav1e
6607 rav1e AV1 encoder wrapper.
6608
6609 Requires the presence of the rav1e headers and library during
6610 configuration. You need to explicitly configure the build with
6611 "--enable-librav1e".
6612
6613 Options
6614
6615 qmax
6616 Sets the maximum quantizer to use when using bitrate mode.
6617
6618 qmin
6619 Sets the minimum quantizer to use when using bitrate mode.
6620
6621 qp Uses quantizer mode to encode at the given quantizer (0-255).
6622
6623 speed
6624 Selects the speed preset (0-10) to encode with.
6625
6626 tiles
6627 Selects how many tiles to encode with.
6628
6629 tile-rows
6630 Selects how many rows of tiles to encode with.
6631
6632 tile-columns
6633 Selects how many columns of tiles to encode with.
6634
6635 rav1e-params
6636 Set rav1e options using a list of key=value pairs separated by ":".
6637 See rav1e --help for a list of options.
6638
6639 For example to specify librav1e encoding options with
6640 -rav1e-params:
6641
6642 ffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:low_latency=true output.mp4
6643
6644 libaom-av1
6645 libaom AV1 encoder wrapper.
6646
6647 Requires the presence of the libaom headers and library during
6648 configuration. You need to explicitly configure the build with
6649 "--enable-libaom".
6650
6651 Options
6652
6653 The wrapper supports the following standard libavcodec options:
6654
6655 b Set bitrate target in bits/second. By default this will use
6656 variable-bitrate mode. If maxrate and minrate are also set to the
6657 same value then it will use constant-bitrate mode, otherwise if crf
6658 is set as well then it will use constrained-quality mode.
6659
6660 g keyint_min
6661 Set key frame placement. The GOP size sets the maximum distance
6662 between key frames; if zero the output stream will be intra-only.
6663 The minimum distance is ignored unless it is the same as the GOP
6664 size, in which case key frames will always appear at a fixed
6665 interval. Not set by default, so without this option the library
6666 has completely free choice about where to place key frames.
6667
6668 qmin qmax
6669 Set minimum/maximum quantisation values. Valid range is from 0 to
6670 63 (warning: this does not match the quantiser values actually used
6671 by AV1 - divide by four to map real quantiser values to this
6672 range). Defaults to min/max (no constraint).
6673
6674 minrate maxrate bufsize rc_init_occupancy
6675 Set rate control buffering parameters. Not used if not set -
6676 defaults to unconstrained variable bitrate.
6677
6678 threads
6679 Set the number of threads to use while encoding. This may require
6680 the tiles or row-mt options to also be set to actually use the
6681 specified number of threads fully. Defaults to the number of
6682 hardware threads supported by the host machine.
6683
6684 profile
6685 Set the encoding profile. Defaults to using the profile which
6686 matches the bit depth and chroma subsampling of the input.
6687
6688 The wrapper also has some specific options:
6689
6690 cpu-used
6691 Set the quality/encoding speed tradeoff. Valid range is from 0 to
6692 8, higher numbers indicating greater speed and lower quality. The
6693 default value is 1, which will be slow and high quality.
6694
6695 auto-alt-ref
6696 Enable use of alternate reference frames. Defaults to the internal
6697 default of the library.
6698
6699 arnr-max-frames (frames)
6700 Set altref noise reduction max frame count. Default is -1.
6701
6702 arnr-strength (strength)
6703 Set altref noise reduction filter strength. Range is -1 to 6.
6704 Default is -1.
6705
6706 aq-mode (aq-mode)
6707 Set adaptive quantization mode. Possible values:
6708
6709 none (0)
6710 Disabled.
6711
6712 variance (1)
6713 Variance-based.
6714
6715 complexity (2)
6716 Complexity-based.
6717
6718 cyclic (3)
6719 Cyclic refresh.
6720
6721 tune (tune)
6722 Set the distortion metric the encoder is tuned with. Default is
6723 "psnr".
6724
6725 psnr (0)
6726 ssim (1)
6727 lag-in-frames
6728 Set the maximum number of frames which the encoder may keep in
6729 flight at any one time for lookahead purposes. Defaults to the
6730 internal default of the library.
6731
6732 error-resilience
6733 Enable error resilience features:
6734
6735 default
6736 Improve resilience against losses of whole frames.
6737
6738 Not enabled by default.
6739
6740 crf Set the quality/size tradeoff for constant-quality (no bitrate
6741 target) and constrained-quality (with maximum bitrate target)
6742 modes. Valid range is 0 to 63, higher numbers indicating lower
6743 quality and smaller output size. Only used if set; by default only
6744 the bitrate target is used.
6745
6746 static-thresh
6747 Set a change threshold on blocks below which they will be skipped
6748 by the encoder. Defined in arbitrary units as a nonnegative
6749 integer, defaulting to zero (no blocks are skipped).
6750
6751 drop-threshold
6752 Set a threshold for dropping frames when close to rate control
6753 bounds. Defined as a percentage of the target buffer - when the
6754 rate control buffer falls below this percentage, frames will be
6755 dropped until it has refilled above the threshold. Defaults to
6756 zero (no frames are dropped).
6757
6758 denoise-noise-level (level)
6759 Amount of noise to be removed for grain synthesis. Grain synthesis
6760 is disabled if this option is not set or set to 0.
6761
6762 denoise-block-size (pixels)
6763 Block size used for denoising for grain synthesis. If not set, AV1
6764 codec uses the default value of 32.
6765
6766 undershoot-pct (pct)
6767 Set datarate undershoot (min) percentage of the target bitrate.
6768 Range is -1 to 100. Default is -1.
6769
6770 overshoot-pct (pct)
6771 Set datarate overshoot (max) percentage of the target bitrate.
6772 Range is -1 to 1000. Default is -1.
6773
6774 minsection-pct (pct)
6775 Minimum percentage variation of the GOP bitrate from the target
6776 bitrate. If minsection-pct is not set, the libaomenc wrapper
6777 computes it as follows: "(minrate * 100 / bitrate)". Range is -1
6778 to 100. Default is -1 (unset).
6779
6780 maxsection-pct (pct)
6781 Maximum percentage variation of the GOP bitrate from the target
6782 bitrate. If maxsection-pct is not set, the libaomenc wrapper
6783 computes it as follows: "(maxrate * 100 / bitrate)". Range is -1
6784 to 5000. Default is -1 (unset).
6785
6786 frame-parallel (boolean)
6787 Enable frame parallel decodability features. Default is true.
6788
6789 tiles
6790 Set the number of tiles to encode the input video with, as columns
6791 x rows. Larger numbers allow greater parallelism in both encoding
6792 and decoding, but may decrease coding efficiency. Defaults to the
6793 minimum number of tiles required by the size of the input video
6794 (this is 1x1 (that is, a single tile) for sizes up to and including
6795 4K).
6796
6797 tile-columns tile-rows
6798 Set the number of tiles as log2 of the number of tile rows and
6799 columns. Provided for compatibility with libvpx/VP9.
6800
6801 row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2)
6802 Enable row based multi-threading. Disabled by default.
6803
6804 enable-cdef (boolean)
6805 Enable Constrained Directional Enhancement Filter. The libaom-av1
6806 encoder enables CDEF by default.
6807
6808 enable-restoration (boolean)
6809 Enable Loop Restoration Filter. Default is true for libaom-av1.
6810
6811 enable-global-motion (boolean)
6812 Enable the use of global motion for block prediction. Default is
6813 true.
6814
6815 enable-intrabc (boolean)
6816 Enable block copy mode for intra block prediction. This mode is
6817 useful for screen content. Default is true.
6818
6819 enable-rect-partitions (boolean) (Requires libaom >= v2.0.0)
6820 Enable rectangular partitions. Default is true.
6821
6822 enable-1to4-partitions (boolean) (Requires libaom >= v2.0.0)
6823 Enable 1:4/4:1 partitions. Default is true.
6824
6825 enable-ab-partitions (boolean) (Requires libaom >= v2.0.0)
6826 Enable AB shape partitions. Default is true.
6827
6828 enable-angle-delta (boolean) (Requires libaom >= v2.0.0)
6829 Enable angle delta intra prediction. Default is true.
6830
6831 enable-cfl-intra (boolean) (Requires libaom >= v2.0.0)
6832 Enable chroma predicted from luma intra prediction. Default is
6833 true.
6834
6835 enable-filter-intra (boolean) (Requires libaom >= v2.0.0)
6836 Enable filter intra predictor. Default is true.
6837
6838 enable-intra-edge-filter (boolean) (Requires libaom >= v2.0.0)
6839 Enable intra edge filter. Default is true.
6840
6841 enable-smooth-intra (boolean) (Requires libaom >= v2.0.0)
6842 Enable smooth intra prediction mode. Default is true.
6843
6844 enable-paeth-intra (boolean) (Requires libaom >= v2.0.0)
6845 Enable paeth predictor in intra prediction. Default is true.
6846
6847 enable-palette (boolean) (Requires libaom >= v2.0.0)
6848 Enable palette prediction mode. Default is true.
6849
6850 enable-flip-idtx (boolean) (Requires libaom >= v2.0.0)
6851 Enable extended transform type, including FLIPADST_DCT,
6852 DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST,
6853 IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST. Default
6854 is true.
6855
6856 enable-tx64 (boolean) (Requires libaom >= v2.0.0)
6857 Enable 64-pt transform. Default is true.
6858
6859 reduced-tx-type-set (boolean) (Requires libaom >= v2.0.0)
6860 Use reduced set of transform types. Default is false.
6861
6862 use-intra-dct-only (boolean) (Requires libaom >= v2.0.0)
6863 Use DCT only for INTRA modes. Default is false.
6864
6865 use-inter-dct-only (boolean) (Requires libaom >= v2.0.0)
6866 Use DCT only for INTER modes. Default is false.
6867
6868 use-intra-default-tx-only (boolean) (Requires libaom >= v2.0.0)
6869 Use Default-transform only for INTRA modes. Default is false.
6870
6871 enable-ref-frame-mvs (boolean) (Requires libaom >= v2.0.0)
6872 Enable temporal mv prediction. Default is true.
6873
6874 enable-reduced-reference-set (boolean) (Requires libaom >= v2.0.0)
6875 Use reduced set of single and compound references. Default is
6876 false.
6877
6878 enable-obmc (boolean) (Requires libaom >= v2.0.0)
6879 Enable obmc. Default is true.
6880
6881 enable-dual-filter (boolean) (Requires libaom >= v2.0.0)
6882 Enable dual filter. Default is true.
6883
6884 enable-diff-wtd-comp (boolean) (Requires libaom >= v2.0.0)
6885 Enable difference-weighted compound. Default is true.
6886
6887 enable-dist-wtd-comp (boolean) (Requires libaom >= v2.0.0)
6888 Enable distance-weighted compound. Default is true.
6889
6890 enable-onesided-comp (boolean) (Requires libaom >= v2.0.0)
6891 Enable one sided compound. Default is true.
6892
6893 enable-interinter-wedge (boolean) (Requires libaom >= v2.0.0)
6894 Enable interinter wedge compound. Default is true.
6895
6896 enable-interintra-wedge (boolean) (Requires libaom >= v2.0.0)
6897 Enable interintra wedge compound. Default is true.
6898
6899 enable-masked-comp (boolean) (Requires libaom >= v2.0.0)
6900 Enable masked compound. Default is true.
6901
6902 enable-interintra-comp (boolean) (Requires libaom >= v2.0.0)
6903 Enable interintra compound. Default is true.
6904
6905 enable-smooth-interintra (boolean) (Requires libaom >= v2.0.0)
6906 Enable smooth interintra mode. Default is true.
6907
6908 aom-params
6909 Set libaom options using a list of key=value pairs separated by
6910 ":". For a list of supported options, see aomenc --help under the
6911 section "AV1 Specific Options".
6912
6913 For example to specify libaom encoding options with -aom-params:
6914
6915 ffmpeg -i input -c:v libaom-av1 -b:v 500K -aom-params tune=psnr:enable-tpl-model=1 output.mp4
6916
6917 libsvtav1
6918 SVT-AV1 encoder wrapper.
6919
6920 Requires the presence of the SVT-AV1 headers and library during
6921 configuration. You need to explicitly configure the build with
6922 "--enable-libsvtav1".
6923
6924 Options
6925
6926 profile
6927 Set the encoding profile.
6928
6929 main
6930 high
6931 professional
6932 level
6933 Set the operating point level. For example: '4.0'
6934
6935 hielevel
6936 Set the Hierarchical prediction levels.
6937
6938 3level
6939 4level
6940 This is the default.
6941
6942 tier
6943 Set the operating point tier.
6944
6945 main
6946 This is the default.
6947
6948 high
6949 qmax
6950 Set the maximum quantizer to use when using a bitrate mode.
6951
6952 qmin
6953 Set the minimum quantizer to use when using a bitrate mode.
6954
6955 crf Constant rate factor value used in crf rate control mode (0-63).
6956
6957 qp Set the quantizer used in cqp rate control mode (0-63).
6958
6959 sc_detection
6960 Enable scene change detection.
6961
6962 la_depth
6963 Set number of frames to look ahead (0-120).
6964
6965 preset
6966 Set the quality-speed tradeoff, in the range 0 to 13. Higher
6967 values are faster but lower quality.
6968
6969 tile_rows
6970 Set log2 of the number of rows of tiles to use (0-6).
6971
6972 tile_columns
6973 Set log2 of the number of columns of tiles to use (0-4).
6974
6975 svtav1-params
6976 Set SVT-AV1 options using a list of key=value pairs separated by
6977 ":". See the SVT-AV1 encoder user guide for a list of accepted
6978 parameters.
6979
6980 libjxl
6981 libjxl JPEG XL encoder wrapper.
6982
6983 Requires the presence of the libjxl headers and library during
6984 configuration. You need to explicitly configure the build with
6985 "--enable-libjxl".
6986
6987 Options
6988
6989 The libjxl wrapper supports the following options:
6990
6991 distance
6992 Set the target Butteraugli distance. This is a quality setting:
6993 lower distance yields higher quality, with distance=1.0 roughly
6994 comparable to libjpeg Quality 90 for photographic content. Setting
6995 distance=0.0 yields true lossless encoding. Valid values range
6996 between 0.0 and 15.0, and sane values rarely exceed 5.0. Setting
6997 distance=0.1 usually attains transparency for most input. The
6998 default is 1.0.
6999
7000 effort
7001 Set the encoding effort used. Higher effort values produce more
7002 consistent quality and usually produces a better quality/bpp curve,
7003 at the cost of more CPU time required. Valid values range from 1 to
7004 9, and the default is 7.
7005
7006 modular
7007 Force the encoder to use Modular mode instead of choosing
7008 automatically. The default is to use VarDCT for lossy encoding and
7009 Modular for lossless. VarDCT is generally superior to Modular for
7010 lossy encoding but does not support lossless encoding.
7011
7012 libkvazaar
7013 Kvazaar H.265/HEVC encoder.
7014
7015 Requires the presence of the libkvazaar headers and library during
7016 configuration. You need to explicitly configure the build with
7017 --enable-libkvazaar.
7018
7019 Options
7020
7021 b Set target video bitrate in bit/s and enable rate control.
7022
7023 kvazaar-params
7024 Set kvazaar parameters as a list of name=value pairs separated by
7025 commas (,). See kvazaar documentation for a list of options.
7026
7027 libopenh264
7028 Cisco libopenh264 H.264/MPEG-4 AVC encoder wrapper.
7029
7030 This encoder requires the presence of the libopenh264 headers and
7031 library during configuration. You need to explicitly configure the
7032 build with "--enable-libopenh264". The library is detected using pkg-
7033 config.
7034
7035 For more information about the library see <http://www.openh264.org>.
7036
7037 Options
7038
7039 The following FFmpeg global options affect the configurations of the
7040 libopenh264 encoder.
7041
7042 b Set the bitrate (as a number of bits per second).
7043
7044 g Set the GOP size.
7045
7046 maxrate
7047 Set the max bitrate (as a number of bits per second).
7048
7049 flags +global_header
7050 Set global header in the bitstream.
7051
7052 slices
7053 Set the number of slices, used in parallelized encoding. Default
7054 value is 0. This is only used when slice_mode is set to fixed.
7055
7056 slice_mode
7057 Set slice mode. Can assume one of the following possible values:
7058
7059 fixed
7060 a fixed number of slices
7061
7062 rowmb
7063 one slice per row of macroblocks
7064
7065 auto
7066 automatic number of slices according to number of threads
7067
7068 dyn dynamic slicing
7069
7070 Default value is auto.
7071
7072 loopfilter
7073 Enable loop filter, if set to 1 (automatically enabled). To disable
7074 set a value of 0.
7075
7076 profile
7077 Set profile restrictions. If set to the value of main enable CABAC
7078 (set the "SEncParamExt.iEntropyCodingModeFlag" flag to 1).
7079
7080 max_nal_size
7081 Set maximum NAL size in bytes.
7082
7083 allow_skip_frames
7084 Allow skipping frames to hit the target bitrate if set to 1.
7085
7086 libtheora
7087 libtheora Theora encoder wrapper.
7088
7089 Requires the presence of the libtheora headers and library during
7090 configuration. You need to explicitly configure the build with
7091 "--enable-libtheora".
7092
7093 For more information about the libtheora project see
7094 <http://www.theora.org/>.
7095
7096 Options
7097
7098 The following global options are mapped to internal libtheora options
7099 which affect the quality and the bitrate of the encoded stream.
7100
7101 b Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode.
7102 In case VBR (Variable Bit Rate) mode is enabled this option is
7103 ignored.
7104
7105 flags
7106 Used to enable constant quality mode (VBR) encoding through the
7107 qscale flag, and to enable the "pass1" and "pass2" modes.
7108
7109 g Set the GOP size.
7110
7111 global_quality
7112 Set the global quality as an integer in lambda units.
7113
7114 Only relevant when VBR mode is enabled with "flags +qscale". The
7115 value is converted to QP units by dividing it by "FF_QP2LAMBDA",
7116 clipped in the [0 - 10] range, and then multiplied by 6.3 to get a
7117 value in the native libtheora range [0-63]. A higher value
7118 corresponds to a higher quality.
7119
7120 q Enable VBR mode when set to a non-negative value, and set constant
7121 quality value as a double floating point value in QP units.
7122
7123 The value is clipped in the [0-10] range, and then multiplied by
7124 6.3 to get a value in the native libtheora range [0-63].
7125
7126 This option is valid only using the ffmpeg command-line tool. For
7127 library interface users, use global_quality.
7128
7129 Examples
7130
7131 • Set maximum constant quality (VBR) encoding with ffmpeg:
7132
7133 ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
7134
7135 • Use ffmpeg to convert a CBR 1000 kbps Theora video stream:
7136
7137 ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
7138
7139 libvpx
7140 VP8/VP9 format supported through libvpx.
7141
7142 Requires the presence of the libvpx headers and library during
7143 configuration. You need to explicitly configure the build with
7144 "--enable-libvpx".
7145
7146 Options
7147
7148 The following options are supported by the libvpx wrapper. The
7149 vpxenc-equivalent options or values are listed in parentheses for easy
7150 migration.
7151
7152 To reduce the duplication of documentation, only the private options
7153 and some others requiring special attention are documented here. For
7154 the documentation of the undocumented generic options, see the Codec
7155 Options chapter.
7156
7157 To get more documentation of the libvpx options, invoke the command
7158 ffmpeg -h encoder=libvpx, ffmpeg -h encoder=libvpx-vp9 or vpxenc
7159 --help. Further information is available in the libvpx API
7160 documentation.
7161
7162 b (target-bitrate)
7163 Set bitrate in bits/s. Note that FFmpeg's b option is expressed in
7164 bits/s, while vpxenc's target-bitrate is in kilobits/s.
7165
7166 g (kf-max-dist)
7167 keyint_min (kf-min-dist)
7168 qmin (min-q)
7169 Minimum (Best Quality) Quantizer.
7170
7171 qmax (max-q)
7172 Maximum (Worst Quality) Quantizer. Can be changed per-frame.
7173
7174 bufsize (buf-sz, buf-optimal-sz)
7175 Set ratecontrol buffer size (in bits). Note vpxenc's options are
7176 specified in milliseconds, the libvpx wrapper converts this value
7177 as follows: "buf-sz = bufsize * 1000 / bitrate", "buf-optimal-sz =
7178 bufsize * 1000 / bitrate * 5 / 6".
7179
7180 rc_init_occupancy (buf-initial-sz)
7181 Set number of bits which should be loaded into the rc buffer before
7182 decoding starts. Note vpxenc's option is specified in milliseconds,
7183 the libvpx wrapper converts this value as follows:
7184 "rc_init_occupancy * 1000 / bitrate".
7185
7186 undershoot-pct
7187 Set datarate undershoot (min) percentage of the target bitrate.
7188
7189 overshoot-pct
7190 Set datarate overshoot (max) percentage of the target bitrate.
7191
7192 skip_threshold (drop-frame)
7193 qcomp (bias-pct)
7194 maxrate (maxsection-pct)
7195 Set GOP max bitrate in bits/s. Note vpxenc's option is specified as
7196 a percentage of the target bitrate, the libvpx wrapper converts
7197 this value as follows: "(maxrate * 100 / bitrate)".
7198
7199 minrate (minsection-pct)
7200 Set GOP min bitrate in bits/s. Note vpxenc's option is specified as
7201 a percentage of the target bitrate, the libvpx wrapper converts
7202 this value as follows: "(minrate * 100 / bitrate)".
7203
7204 minrate, maxrate, b end-usage=cbr
7205 "(minrate == maxrate == bitrate)".
7206
7207 crf (end-usage=cq, cq-level)
7208 tune (tune)
7209 psnr (psnr)
7210 ssim (ssim)
7211 quality, deadline (deadline)
7212 best
7213 Use best quality deadline. Poorly named and quite slow, this
7214 option should be avoided as it may give worse quality output
7215 than good.
7216
7217 good
7218 Use good quality deadline. This is a good trade-off between
7219 speed and quality when used with the cpu-used option.
7220
7221 realtime
7222 Use realtime quality deadline.
7223
7224 speed, cpu-used (cpu-used)
7225 Set quality/speed ratio modifier. Higher values speed up the encode
7226 at the cost of quality.
7227
7228 nr (noise-sensitivity)
7229 static-thresh
7230 Set a change threshold on blocks below which they will be skipped
7231 by the encoder.
7232
7233 slices (token-parts)
7234 Note that FFmpeg's slices option gives the total number of
7235 partitions, while vpxenc's token-parts is given as
7236 "log2(partitions)".
7237
7238 max-intra-rate
7239 Set maximum I-frame bitrate as a percentage of the target bitrate.
7240 A value of 0 means unlimited.
7241
7242 force_key_frames
7243 "VPX_EFLAG_FORCE_KF"
7244
7245 Alternate reference frame related
7246 auto-alt-ref
7247 Enable use of alternate reference frames (2-pass only). Values
7248 greater than 1 enable multi-layer alternate reference frames
7249 (VP9 only).
7250
7251 arnr-maxframes
7252 Set altref noise reduction max frame count.
7253
7254 arnr-type
7255 Set altref noise reduction filter type: backward, forward,
7256 centered.
7257
7258 arnr-strength
7259 Set altref noise reduction filter strength.
7260
7261 rc-lookahead, lag-in-frames (lag-in-frames)
7262 Set number of frames to look ahead for frametype and
7263 ratecontrol.
7264
7265 error-resilient
7266 Enable error resiliency features.
7267
7268 sharpness integer
7269 Increase sharpness at the expense of lower PSNR. The valid range
7270 is [0, 7].
7271
7272 ts-parameters
7273 Sets the temporal scalability configuration using a :-separated
7274 list of key=value pairs. For example, to specify temporal
7275 scalability parameters with "ffmpeg":
7276
7277 ffmpeg -i INPUT -c:v libvpx -ts-parameters ts_number_layers=3:\
7278 ts_target_bitrate=250,500,1000:ts_rate_decimator=4,2,1:\
7279 ts_periodicity=4:ts_layer_id=0,2,1,2:ts_layering_mode=3 OUTPUT
7280
7281 Below is a brief explanation of each of the parameters, please
7282 refer to "struct vpx_codec_enc_cfg" in "vpx/vpx_encoder.h" for more
7283 details.
7284
7285 ts_number_layers
7286 Number of temporal coding layers.
7287
7288 ts_target_bitrate
7289 Target bitrate for each temporal layer (in kbps). (bitrate
7290 should be inclusive of the lower temporal layer).
7291
7292 ts_rate_decimator
7293 Frame rate decimation factor for each temporal layer.
7294
7295 ts_periodicity
7296 Length of the sequence defining frame temporal layer
7297 membership.
7298
7299 ts_layer_id
7300 Template defining the membership of frames to temporal layers.
7301
7302 ts_layering_mode
7303 (optional) Selecting the temporal structure from a set of pre-
7304 defined temporal layering modes. Currently supports the
7305 following options.
7306
7307 0 No temporal layering flags are provided internally, relies
7308 on flags being passed in using "metadata" field in
7309 "AVFrame" with following keys.
7310
7311 vp8-flags
7312 Sets the flags passed into the encoder to indicate the
7313 referencing scheme for the current frame. Refer to
7314 function "vpx_codec_encode" in "vpx/vpx_encoder.h" for
7315 more details.
7316
7317 temporal_id
7318 Explicitly sets the temporal id of the current frame to
7319 encode.
7320
7321 2 Two temporal layers. 0-1...
7322
7323 3 Three temporal layers. 0-2-1-2...; with single reference
7324 frame.
7325
7326 4 Same as option "3", except there is a dependency between
7327 the two temporal layer 2 frames within the temporal period.
7328
7329 VP9-specific options
7330 lossless
7331 Enable lossless mode.
7332
7333 tile-columns
7334 Set number of tile columns to use. Note this is given as
7335 "log2(tile_columns)". For example, 8 tile columns would be
7336 requested by setting the tile-columns option to 3.
7337
7338 tile-rows
7339 Set number of tile rows to use. Note this is given as
7340 "log2(tile_rows)". For example, 4 tile rows would be requested
7341 by setting the tile-rows option to 2.
7342
7343 frame-parallel
7344 Enable frame parallel decodability features.
7345
7346 aq-mode
7347 Set adaptive quantization mode (0: off (default), 1: variance
7348 2: complexity, 3: cyclic refresh, 4: equator360).
7349
7350 colorspace color-space
7351 Set input color space. The VP9 bitstream supports signaling the
7352 following colorspaces:
7353
7354 rgb sRGB
7355 bt709 bt709
7356 unspecified unknown
7357 bt470bg bt601
7358 smpte170m smpte170
7359 smpte240m smpte240
7360 bt2020_ncl bt2020
7361 row-mt boolean
7362 Enable row based multi-threading.
7363
7364 tune-content
7365 Set content type: default (0), screen (1), film (2).
7366
7367 corpus-complexity
7368 Corpus VBR mode is a variant of standard VBR where the
7369 complexity distribution midpoint is passed in rather than
7370 calculated for a specific clip or chunk.
7371
7372 The valid range is [0, 10000]. 0 (default) uses standard VBR.
7373
7374 enable-tpl boolean
7375 Enable temporal dependency model.
7376
7377 ref-frame-config
7378 Using per-frame metadata, set members of the structure
7379 "vpx_svc_ref_frame_config_t" in "vpx/vp8cx.h" to fine-control
7380 referencing schemes and frame buffer management. Use a
7381 :-separated list of key=value pairs. For example,
7382
7383 av_dict_set(&av_frame->metadata, "ref-frame-config", \
7384 "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");
7385
7386 rfc_update_buffer_slot
7387 Indicates the buffer slot number to update
7388
7389 rfc_update_last
7390 Indicates whether to update the LAST frame
7391
7392 rfc_update_golden
7393 Indicates whether to update GOLDEN frame
7394
7395 rfc_update_alt_ref
7396 Indicates whether to update ALT_REF frame
7397
7398 rfc_lst_fb_idx
7399 LAST frame buffer index
7400
7401 rfc_gld_fb_idx
7402 GOLDEN frame buffer index
7403
7404 rfc_alt_fb_idx
7405 ALT_REF frame buffer index
7406
7407 rfc_reference_last
7408 Indicates whether to reference LAST frame
7409
7410 rfc_reference_golden
7411 Indicates whether to reference GOLDEN frame
7412
7413 rfc_reference_alt_ref
7414 Indicates whether to reference ALT_REF frame
7415
7416 rfc_reference_duration
7417 Indicates frame duration
7418
7419 For more information about libvpx see: <http://www.webmproject.org/>
7420
7421 libwebp
7422 libwebp WebP Image encoder wrapper
7423
7424 libwebp is Google's official encoder for WebP images. It can encode in
7425 either lossy or lossless mode. Lossy images are essentially a wrapper
7426 around a VP8 frame. Lossless images are a separate codec developed by
7427 Google.
7428
7429 Pixel Format
7430
7431 Currently, libwebp only supports YUV420 for lossy and RGB for lossless
7432 due to limitations of the format and libwebp. Alpha is supported for
7433 either mode. Because of API limitations, if RGB is passed in when
7434 encoding lossy or YUV is passed in for encoding lossless, the pixel
7435 format will automatically be converted using functions from libwebp.
7436 This is not ideal and is done only for convenience.
7437
7438 Options
7439
7440 -lossless boolean
7441 Enables/Disables use of lossless mode. Default is 0.
7442
7443 -compression_level integer
7444 For lossy, this is a quality/speed tradeoff. Higher values give
7445 better quality for a given size at the cost of increased encoding
7446 time. For lossless, this is a size/speed tradeoff. Higher values
7447 give smaller size at the cost of increased encoding time. More
7448 specifically, it controls the number of extra algorithms and
7449 compression tools used, and varies the combination of these tools.
7450 This maps to the method option in libwebp. The valid range is 0 to
7451 6. Default is 4.
7452
7453 -quality float
7454 For lossy encoding, this controls image quality. For lossless
7455 encoding, this controls the effort and time spent in compression.
7456 Range is 0 to 100. Default is 75.
7457
7458 -preset type
7459 Configuration preset. This does some automatic settings based on
7460 the general type of the image.
7461
7462 none
7463 Do not use a preset.
7464
7465 default
7466 Use the encoder default.
7467
7468 picture
7469 Digital picture, like portrait, inner shot
7470
7471 photo
7472 Outdoor photograph, with natural lighting
7473
7474 drawing
7475 Hand or line drawing, with high-contrast details
7476
7477 icon
7478 Small-sized colorful images
7479
7480 text
7481 Text-like
7482
7483 libx264, libx264rgb
7484 x264 H.264/MPEG-4 AVC encoder wrapper.
7485
7486 This encoder requires the presence of the libx264 headers and library
7487 during configuration. You need to explicitly configure the build with
7488 "--enable-libx264".
7489
7490 libx264 supports an impressive number of features, including 8x8 and
7491 4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC
7492 entropy coding, interlacing (MBAFF), lossless mode, psy optimizations
7493 for detail retention (adaptive quantization, psy-RD, psy-trellis).
7494
7495 Many libx264 encoder options are mapped to FFmpeg global codec options,
7496 while unique encoder options are provided through private options.
7497 Additionally the x264opts and x264-params private options allows one to
7498 pass a list of key=value tuples as accepted by the libx264
7499 "x264_param_parse" function.
7500
7501 The x264 project website is at
7502 <http://www.videolan.org/developers/x264.html>.
7503
7504 The libx264rgb encoder is the same as libx264, except it accepts packed
7505 RGB pixel formats as input instead of YUV.
7506
7507 Supported Pixel Formats
7508
7509 x264 supports 8- to 10-bit color spaces. The exact bit depth is
7510 controlled at x264's configure time.
7511
7512 Options
7513
7514 The following options are supported by the libx264 wrapper. The
7515 x264-equivalent options or values are listed in parentheses for easy
7516 migration.
7517
7518 To reduce the duplication of documentation, only the private options
7519 and some others requiring special attention are documented here. For
7520 the documentation of the undocumented generic options, see the Codec
7521 Options chapter.
7522
7523 To get a more accurate and extensive documentation of the libx264
7524 options, invoke the command x264 --fullhelp or consult the libx264
7525 documentation.
7526
7527 b (bitrate)
7528 Set bitrate in bits/s. Note that FFmpeg's b option is expressed in
7529 bits/s, while x264's bitrate is in kilobits/s.
7530
7531 bf (bframes)
7532 g (keyint)
7533 qmin (qpmin)
7534 Minimum quantizer scale.
7535
7536 qmax (qpmax)
7537 Maximum quantizer scale.
7538
7539 qdiff (qpstep)
7540 Maximum difference between quantizer scales.
7541
7542 qblur (qblur)
7543 Quantizer curve blur
7544
7545 qcomp (qcomp)
7546 Quantizer curve compression factor
7547
7548 refs (ref)
7549 Number of reference frames each P-frame can use. The range is from
7550 0-16.
7551
7552 sc_threshold (scenecut)
7553 Sets the threshold for the scene change detection.
7554
7555 trellis (trellis)
7556 Performs Trellis quantization to increase efficiency. Enabled by
7557 default.
7558
7559 nr (nr)
7560 me_range (merange)
7561 Maximum range of the motion search in pixels.
7562
7563 me_method (me)
7564 Set motion estimation method. Possible values in the decreasing
7565 order of speed:
7566
7567 dia (dia)
7568 epzs (dia)
7569 Diamond search with radius 1 (fastest). epzs is an alias for
7570 dia.
7571
7572 hex (hex)
7573 Hexagonal search with radius 2.
7574
7575 umh (umh)
7576 Uneven multi-hexagon search.
7577
7578 esa (esa)
7579 Exhaustive search.
7580
7581 tesa (tesa)
7582 Hadamard exhaustive search (slowest).
7583
7584 forced-idr
7585 Normally, when forcing a I-frame type, the encoder can select any
7586 type of I-frame. This option forces it to choose an IDR-frame.
7587
7588 subq (subme)
7589 Sub-pixel motion estimation method.
7590
7591 b_strategy (b-adapt)
7592 Adaptive B-frame placement decision algorithm. Use only on first-
7593 pass.
7594
7595 keyint_min (min-keyint)
7596 Minimum GOP size.
7597
7598 coder
7599 Set entropy encoder. Possible values:
7600
7601 ac Enable CABAC.
7602
7603 vlc Enable CAVLC and disable CABAC. It generates the same effect as
7604 x264's --no-cabac option.
7605
7606 cmp Set full pixel motion estimation comparison algorithm. Possible
7607 values:
7608
7609 chroma
7610 Enable chroma in motion estimation.
7611
7612 sad Ignore chroma in motion estimation. It generates the same
7613 effect as x264's --no-chroma-me option.
7614
7615 threads (threads)
7616 Number of encoding threads.
7617
7618 thread_type
7619 Set multithreading technique. Possible values:
7620
7621 slice
7622 Slice-based multithreading. It generates the same effect as
7623 x264's --sliced-threads option.
7624
7625 frame
7626 Frame-based multithreading.
7627
7628 flags
7629 Set encoding flags. It can be used to disable closed GOP and enable
7630 open GOP by setting it to "-cgop". The result is similar to the
7631 behavior of x264's --open-gop option.
7632
7633 rc_init_occupancy (vbv-init)
7634 preset (preset)
7635 Set the encoding preset.
7636
7637 tune (tune)
7638 Set tuning of the encoding params.
7639
7640 profile (profile)
7641 Set profile restrictions.
7642
7643 fastfirstpass
7644 Enable fast settings when encoding first pass, when set to 1. When
7645 set to 0, it has the same effect of x264's --slow-firstpass option.
7646
7647 crf (crf)
7648 Set the quality for constant quality mode.
7649
7650 crf_max (crf-max)
7651 In CRF mode, prevents VBV from lowering quality beyond this point.
7652
7653 qp (qp)
7654 Set constant quantization rate control method parameter.
7655
7656 aq-mode (aq-mode)
7657 Set AQ method. Possible values:
7658
7659 none (0)
7660 Disabled.
7661
7662 variance (1)
7663 Variance AQ (complexity mask).
7664
7665 autovariance (2)
7666 Auto-variance AQ (experimental).
7667
7668 aq-strength (aq-strength)
7669 Set AQ strength, reduce blocking and blurring in flat and textured
7670 areas.
7671
7672 psy Use psychovisual optimizations when set to 1. When set to 0, it has
7673 the same effect as x264's --no-psy option.
7674
7675 psy-rd (psy-rd)
7676 Set strength of psychovisual optimization, in psy-rd:psy-trellis
7677 format.
7678
7679 rc-lookahead (rc-lookahead)
7680 Set number of frames to look ahead for frametype and ratecontrol.
7681
7682 weightb
7683 Enable weighted prediction for B-frames when set to 1. When set to
7684 0, it has the same effect as x264's --no-weightb option.
7685
7686 weightp (weightp)
7687 Set weighted prediction method for P-frames. Possible values:
7688
7689 none (0)
7690 Disabled
7691
7692 simple (1)
7693 Enable only weighted refs
7694
7695 smart (2)
7696 Enable both weighted refs and duplicates
7697
7698 ssim (ssim)
7699 Enable calculation and printing SSIM stats after the encoding.
7700
7701 intra-refresh (intra-refresh)
7702 Enable the use of Periodic Intra Refresh instead of IDR frames when
7703 set to 1.
7704
7705 avcintra-class (class)
7706 Configure the encoder to generate AVC-Intra. Valid values are
7707 50,100 and 200
7708
7709 bluray-compat (bluray-compat)
7710 Configure the encoder to be compatible with the bluray standard.
7711 It is a shorthand for setting "bluray-compat=1 force-cfr=1".
7712
7713 b-bias (b-bias)
7714 Set the influence on how often B-frames are used.
7715
7716 b-pyramid (b-pyramid)
7717 Set method for keeping of some B-frames as references. Possible
7718 values:
7719
7720 none (none)
7721 Disabled.
7722
7723 strict (strict)
7724 Strictly hierarchical pyramid.
7725
7726 normal (normal)
7727 Non-strict (not Blu-ray compatible).
7728
7729 mixed-refs
7730 Enable the use of one reference per partition, as opposed to one
7731 reference per macroblock when set to 1. When set to 0, it has the
7732 same effect as x264's --no-mixed-refs option.
7733
7734 8x8dct
7735 Enable adaptive spatial transform (high profile 8x8 transform) when
7736 set to 1. When set to 0, it has the same effect as x264's
7737 --no-8x8dct option.
7738
7739 fast-pskip
7740 Enable early SKIP detection on P-frames when set to 1. When set to
7741 0, it has the same effect as x264's --no-fast-pskip option.
7742
7743 aud (aud)
7744 Enable use of access unit delimiters when set to 1.
7745
7746 mbtree
7747 Enable use macroblock tree ratecontrol when set to 1. When set to
7748 0, it has the same effect as x264's --no-mbtree option.
7749
7750 deblock (deblock)
7751 Set loop filter parameters, in alpha:beta form.
7752
7753 cplxblur (cplxblur)
7754 Set fluctuations reduction in QP (before curve compression).
7755
7756 partitions (partitions)
7757 Set partitions to consider as a comma-separated list of. Possible
7758 values in the list:
7759
7760 p8x8
7761 8x8 P-frame partition.
7762
7763 p4x4
7764 4x4 P-frame partition.
7765
7766 b8x8
7767 4x4 B-frame partition.
7768
7769 i8x8
7770 8x8 I-frame partition.
7771
7772 i4x4
7773 4x4 I-frame partition. (Enabling p4x4 requires p8x8 to be
7774 enabled. Enabling i8x8 requires adaptive spatial transform
7775 (8x8dct option) to be enabled.)
7776
7777 none (none)
7778 Do not consider any partitions.
7779
7780 all (all)
7781 Consider every partition.
7782
7783 direct-pred (direct)
7784 Set direct MV prediction mode. Possible values:
7785
7786 none (none)
7787 Disable MV prediction.
7788
7789 spatial (spatial)
7790 Enable spatial predicting.
7791
7792 temporal (temporal)
7793 Enable temporal predicting.
7794
7795 auto (auto)
7796 Automatically decided.
7797
7798 slice-max-size (slice-max-size)
7799 Set the limit of the size of each slice in bytes. If not specified
7800 but RTP payload size (ps) is specified, that is used.
7801
7802 stats (stats)
7803 Set the file name for multi-pass stats.
7804
7805 nal-hrd (nal-hrd)
7806 Set signal HRD information (requires vbv-bufsize to be set).
7807 Possible values:
7808
7809 none (none)
7810 Disable HRD information signaling.
7811
7812 vbr (vbr)
7813 Variable bit rate.
7814
7815 cbr (cbr)
7816 Constant bit rate (not allowed in MP4 container).
7817
7818 x264opts (N.A.)
7819 Set any x264 option, see x264 --fullhelp for a list.
7820
7821 Argument is a list of key=value couples separated by ":". In filter
7822 and psy-rd options that use ":" as a separator themselves, use ","
7823 instead. They accept it as well since long ago but this is kept
7824 undocumented for some reason.
7825
7826 For example to specify libx264 encoding options with ffmpeg:
7827
7828 ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
7829
7830 a53cc boolean
7831 Import closed captions (which must be ATSC compatible format) into
7832 output. Only the mpeg2 and h264 decoders provide these. Default is
7833 1 (on).
7834
7835 udu_sei boolean
7836 Import user data unregistered SEI if available into output. Default
7837 is 0 (off).
7838
7839 x264-params (N.A.)
7840 Override the x264 configuration using a :-separated list of
7841 key=value parameters.
7842
7843 This option is functionally the same as the x264opts, but is
7844 duplicated for compatibility with the Libav fork.
7845
7846 For example to specify libx264 encoding options with ffmpeg:
7847
7848 ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\
7849 cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\
7850 no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
7851
7852 Encoding ffpresets for common usages are provided so they can be used
7853 with the general presets system (e.g. passing the pre option).
7854
7855 libx265
7856 x265 H.265/HEVC encoder wrapper.
7857
7858 This encoder requires the presence of the libx265 headers and library
7859 during configuration. You need to explicitly configure the build with
7860 --enable-libx265.
7861
7862 Options
7863
7864 b Sets target video bitrate.
7865
7866 bf
7867 g Set the GOP size.
7868
7869 keyint_min
7870 Minimum GOP size.
7871
7872 refs
7873 Number of reference frames each P-frame can use. The range is from
7874 1-16.
7875
7876 preset
7877 Set the x265 preset.
7878
7879 tune
7880 Set the x265 tune parameter.
7881
7882 profile
7883 Set profile restrictions.
7884
7885 crf Set the quality for constant quality mode.
7886
7887 qp Set constant quantization rate control method parameter.
7888
7889 qmin
7890 Minimum quantizer scale.
7891
7892 qmax
7893 Maximum quantizer scale.
7894
7895 qdiff
7896 Maximum difference between quantizer scales.
7897
7898 qblur
7899 Quantizer curve blur
7900
7901 qcomp
7902 Quantizer curve compression factor
7903
7904 i_qfactor
7905 b_qfactor
7906 forced-idr
7907 Normally, when forcing a I-frame type, the encoder can select any
7908 type of I-frame. This option forces it to choose an IDR-frame.
7909
7910 udu_sei boolean
7911 Import user data unregistered SEI if available into output. Default
7912 is 0 (off).
7913
7914 x265-params
7915 Set x265 options using a list of key=value couples separated by
7916 ":". See x265 --help for a list of options.
7917
7918 For example to specify libx265 encoding options with -x265-params:
7919
7920 ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4
7921
7922 libxavs2
7923 xavs2 AVS2-P2/IEEE1857.4 encoder wrapper.
7924
7925 This encoder requires the presence of the libxavs2 headers and library
7926 during configuration. You need to explicitly configure the build with
7927 --enable-libxavs2.
7928
7929 The following standard libavcodec options are used:
7930
7931 • b / bit_rate
7932
7933 • g / gop_size
7934
7935 • bf / max_b_frames
7936
7937 The encoder also has its own specific options:
7938
7939 Options
7940
7941 lcu_row_threads
7942 Set the number of parallel threads for rows from 1 to 8 (default
7943 5).
7944
7945 initial_qp
7946 Set the xavs2 quantization parameter from 1 to 63 (default 34).
7947 This is used to set the initial qp for the first frame.
7948
7949 qp Set the xavs2 quantization parameter from 1 to 63 (default 34).
7950 This is used to set the qp value under constant-QP mode.
7951
7952 max_qp
7953 Set the max qp for rate control from 1 to 63 (default 55).
7954
7955 min_qp
7956 Set the min qp for rate control from 1 to 63 (default 20).
7957
7958 speed_level
7959 Set the Speed level from 0 to 9 (default 0). Higher is better but
7960 slower.
7961
7962 log_level
7963 Set the log level from -1 to 3 (default 0). -1: none, 0: error, 1:
7964 warning, 2: info, 3: debug.
7965
7966 xavs2-params
7967 Set xavs2 options using a list of key=value couples separated by
7968 ":".
7969
7970 For example to specify libxavs2 encoding options with
7971 -xavs2-params:
7972
7973 ffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2
7974
7975 libxvid
7976 Xvid MPEG-4 Part 2 encoder wrapper.
7977
7978 This encoder requires the presence of the libxvidcore headers and
7979 library during configuration. You need to explicitly configure the
7980 build with "--enable-libxvid --enable-gpl".
7981
7982 The native "mpeg4" encoder supports the MPEG-4 Part 2 format, so users
7983 can encode to this format without this library.
7984
7985 Options
7986
7987 The following options are supported by the libxvid wrapper. Some of the
7988 following options are listed but are not documented, and correspond to
7989 shared codec options. See the Codec Options chapter for their
7990 documentation. The other shared options which are not listed have no
7991 effect for the libxvid encoder.
7992
7993 b
7994 g
7995 qmin
7996 qmax
7997 mpeg_quant
7998 threads
7999 bf
8000 b_qfactor
8001 b_qoffset
8002 flags
8003 Set specific encoding flags. Possible values:
8004
8005 mv4 Use four motion vector by macroblock.
8006
8007 aic Enable high quality AC prediction.
8008
8009 gray
8010 Only encode grayscale.
8011
8012 gmc Enable the use of global motion compensation (GMC).
8013
8014 qpel
8015 Enable quarter-pixel motion compensation.
8016
8017 cgop
8018 Enable closed GOP.
8019
8020 global_header
8021 Place global headers in extradata instead of every keyframe.
8022
8023 trellis
8024 me_method
8025 Set motion estimation method. Possible values in decreasing order
8026 of speed and increasing order of quality:
8027
8028 zero
8029 Use no motion estimation (default).
8030
8031 phods
8032 x1
8033 log Enable advanced diamond zonal search for 16x16 blocks and half-
8034 pixel refinement for 16x16 blocks. x1 and log are aliases for
8035 phods.
8036
8037 epzs
8038 Enable all of the things described above, plus advanced diamond
8039 zonal search for 8x8 blocks, half-pixel refinement for 8x8
8040 blocks, and motion estimation on chroma planes.
8041
8042 full
8043 Enable all of the things described above, plus extended 16x16
8044 and 8x8 blocks search.
8045
8046 mbd Set macroblock decision algorithm. Possible values in the
8047 increasing order of quality:
8048
8049 simple
8050 Use macroblock comparing function algorithm (default).
8051
8052 bits
8053 Enable rate distortion-based half pixel and quarter pixel
8054 refinement for 16x16 blocks.
8055
8056 rd Enable all of the things described above, plus rate distortion-
8057 based half pixel and quarter pixel refinement for 8x8 blocks,
8058 and rate distortion-based search using square pattern.
8059
8060 lumi_aq
8061 Enable lumi masking adaptive quantization when set to 1. Default is
8062 0 (disabled).
8063
8064 variance_aq
8065 Enable variance adaptive quantization when set to 1. Default is 0
8066 (disabled).
8067
8068 When combined with lumi_aq, the resulting quality will not be
8069 better than any of the two specified individually. In other words,
8070 the resulting quality will be the worse one of the two effects.
8071
8072 ssim
8073 Set structural similarity (SSIM) displaying method. Possible
8074 values:
8075
8076 off Disable displaying of SSIM information.
8077
8078 avg Output average SSIM at the end of encoding to stdout. The
8079 format of showing the average SSIM is:
8080
8081 Average SSIM: %f
8082
8083 For users who are not familiar with C, %f means a float number,
8084 or a decimal (e.g. 0.939232).
8085
8086 frame
8087 Output both per-frame SSIM data during encoding and average
8088 SSIM at the end of encoding to stdout. The format of per-frame
8089 information is:
8090
8091 SSIM: avg: %1.3f min: %1.3f max: %1.3f
8092
8093 For users who are not familiar with C, %1.3f means a float
8094 number rounded to 3 digits after the dot (e.g. 0.932).
8095
8096 ssim_acc
8097 Set SSIM accuracy. Valid options are integers within the range of
8098 0-4, while 0 gives the most accurate result and 4 computes the
8099 fastest.
8100
8101 MediaFoundation
8102 This provides wrappers to encoders (both audio and video) in the
8103 MediaFoundation framework. It can access both SW and HW encoders.
8104 Video encoders can take input in either of nv12 or yuv420p form (some
8105 encoders support both, some support only either - in practice, nv12 is
8106 the safer choice, especially among HW encoders).
8107
8108 mpeg2
8109 MPEG-2 video encoder.
8110
8111 Options
8112
8113 profile
8114 Select the mpeg2 profile to encode:
8115
8116 422
8117 high
8118 ss Spatially Scalable
8119
8120 snr SNR Scalable
8121
8122 main
8123 simple
8124 level
8125 Select the mpeg2 level to encode:
8126
8127 high
8128 high1440
8129 main
8130 low
8131 seq_disp_ext integer
8132 Specifies if the encoder should write a sequence_display_extension
8133 to the output.
8134
8135 -1
8136 auto
8137 Decide automatically to write it or not (this is the default)
8138 by checking if the data to be written is different from the
8139 default or unspecified values.
8140
8141 0
8142 never
8143 Never write it.
8144
8145 1
8146 always
8147 Always write it.
8148
8149 video_format integer
8150 Specifies the video_format written into the sequence display
8151 extension indicating the source of the video pictures. The default
8152 is unspecified, can be component, pal, ntsc, secam or mac. For
8153 maximum compatibility, use component.
8154
8155 a53cc boolean
8156 Import closed captions (which must be ATSC compatible format) into
8157 output. Default is 1 (on).
8158
8159 png
8160 PNG image encoder.
8161
8162 Private options
8163
8164 dpi integer
8165 Set physical density of pixels, in dots per inch, unset by default
8166
8167 dpm integer
8168 Set physical density of pixels, in dots per meter, unset by default
8169
8170 ProRes
8171 Apple ProRes encoder.
8172
8173 FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder.
8174 The used encoder can be chosen with the "-vcodec" option.
8175
8176 Private Options for prores-ks
8177
8178 profile integer
8179 Select the ProRes profile to encode
8180
8181 proxy
8182 lt
8183 standard
8184 hq
8185 4444
8186 4444xq
8187 quant_mat integer
8188 Select quantization matrix.
8189
8190 auto
8191 default
8192 proxy
8193 lt
8194 standard
8195 hq
8196
8197 If set to auto, the matrix matching the profile will be picked. If
8198 not set, the matrix providing the highest quality, default, will be
8199 picked.
8200
8201 bits_per_mb integer
8202 How many bits to allot for coding one macroblock. Different
8203 profiles use between 200 and 2400 bits per macroblock, the maximum
8204 is 8000.
8205
8206 mbs_per_slice integer
8207 Number of macroblocks in each slice (1-8); the default value (8)
8208 should be good in almost all situations.
8209
8210 vendor string
8211 Override the 4-byte vendor ID. A custom vendor ID like apl0 would
8212 claim the stream was produced by the Apple encoder.
8213
8214 alpha_bits integer
8215 Specify number of bits for alpha component. Possible values are 0,
8216 8 and 16. Use 0 to disable alpha plane coding.
8217
8218 Speed considerations
8219
8220 In the default mode of operation the encoder has to honor frame
8221 constraints (i.e. not produce frames with size bigger than requested)
8222 while still making output picture as good as possible. A frame
8223 containing a lot of small details is harder to compress and the encoder
8224 would spend more time searching for appropriate quantizers for each
8225 slice.
8226
8227 Setting a higher bits_per_mb limit will improve the speed.
8228
8229 For the fastest encoding speed set the qscale parameter (4 is the
8230 recommended value) and do not set a size constraint.
8231
8232 QSV Encoders
8233 The family of Intel QuickSync Video encoders (MPEG-2, H.264, HEVC,
8234 JPEG/MJPEG and VP9)
8235
8236 Ratecontrol Method
8237
8238 The ratecontrol method is selected as follows:
8239
8240 • When global_quality is specified, a quality-based mode is used.
8241 Specifically this means either
8242
8243 - CQP - constant quantizer scale, when the qscale codec flag is
8244 also set (the -qscale ffmpeg option).
8245
8246 - LA_ICQ - intelligent constant quality with lookahead, when the
8247 look_ahead option is also set.
8248
8249 - ICQ -- intelligent constant quality otherwise. For the ICQ
8250 modes, global quality range is 1 to 51, with 1 being the best
8251 quality.
8252
8253 • Otherwise, a bitrate-based mode is used. For all of those, you
8254 should specify at least the desired average bitrate with the b
8255 option.
8256
8257 - LA - VBR with lookahead, when the look_ahead option is
8258 specified.
8259
8260 - VCM - video conferencing mode, when the vcm option is set.
8261
8262 - CBR - constant bitrate, when maxrate is specified and equal to
8263 the average bitrate.
8264
8265 - VBR - variable bitrate, when maxrate is specified, but is
8266 higher than the average bitrate.
8267
8268 - AVBR - average VBR mode, when maxrate is not specified. This
8269 mode is further configured by the avbr_accuracy and
8270 avbr_convergence options.
8271
8272 Note that depending on your system, a different mode than the one you
8273 specified may be selected by the encoder. Set the verbosity level to
8274 verbose or higher to see the actual settings used by the QSV runtime.
8275
8276 Global Options -> MSDK Options
8277
8278 Additional libavcodec global options are mapped to MSDK options as
8279 follows:
8280
8281 • g/gop_size -> GopPicSize
8282
8283 • bf/max_b_frames+1 -> GopRefDist
8284
8285 • rc_init_occupancy/rc_initial_buffer_occupancy -> InitialDelayInKB
8286
8287 • slices -> NumSlice
8288
8289 • refs -> NumRefFrame
8290
8291 • b_strategy/b_frame_strategy -> BRefType
8292
8293 • cgop/CLOSED_GOP codec flag -> GopOptFlag
8294
8295 • For the CQP mode, the i_qfactor/i_qoffset and b_qfactor/b_qoffset
8296 set the difference between QPP and QPI, and QPP and QPB
8297 respectively.
8298
8299 • Setting the coder option to the value vlc will make the H.264
8300 encoder use CAVLC instead of CABAC.
8301
8302 Common Options
8303
8304 Following options are used by all qsv encoders.
8305
8306 async_depth
8307 Specifies how many asynchronous operations an application performs
8308 before the application explicitly synchronizes the result. If zero,
8309 the value is not specified.
8310
8311 avbr_accuracy
8312 Accuracy of the AVBR ratecontrol (unit of tenth of percent).
8313
8314 avbr_convergence
8315 Convergence of the AVBR ratecontrol (unit of 100 frames)
8316
8317 The parameters avbr_accuracy and avbr_convergence are for the
8318 average variable bitrate control (AVBR) algorithm. The algorithm
8319 focuses on overall encoding quality while meeting the specified
8320 bitrate, target_bitrate, within the accuracy range avbr_accuracy,
8321 after a avbr_Convergence period. This method does not follow HRD
8322 and the instant bitrate is not capped or padded.
8323
8324 preset
8325 This option itemizes a range of choices from veryfast (best speed)
8326 to veryslow (best quality).
8327
8328 veryfast
8329 faster
8330 fast
8331 medium
8332 slow
8333 slower
8334 veryslow
8335 forced_idr
8336 Forcing I frames as IDR frames.
8337
8338 low_power
8339 For encoders set this flag to ON to reduce power consumption and
8340 GPU usage.
8341
8342 Runtime Options
8343
8344 Following options can be used durning qsv encoding.
8345
8346 qsv_config_qp
8347 Supported in h264_qsv and hevc_qsv. This option can be set in per-
8348 frame metadata. QP parameter can be dynamically changed when
8349 encoding in CQP mode.
8350
8351 H264 options
8352
8353 These options are used by h264_qsv
8354
8355 extbrc
8356 Extended bitrate control.
8357
8358 recovery_point_sei
8359 Set this flag to insert the recovery point SEI message at the
8360 beginning of every intra refresh cycle.
8361
8362 rdo Enable rate distortion optimization.
8363
8364 max_frame_size
8365 Maximum encoded frame size in bytes.
8366
8367 max_frame_size_i
8368 Maximum encoded frame size for I frames in bytes. If this value is
8369 set as larger than zero, then for I frames the value set by
8370 max_frame_size is ignored.
8371
8372 max_frame_size_p
8373 Maximum encoded frame size for P frames in bytes. If this value is
8374 set as larger than zero, then for P frames the value set by
8375 max_frame_size is ignored.
8376
8377 max_slice_size
8378 Maximum encoded slice size in bytes.
8379
8380 bitrate_limit
8381 Toggle bitrate limitations. Modifies bitrate to be in the range
8382 imposed by the QSV encoder. Setting this flag off may lead to
8383 violation of HRD conformance. Mind that specifying bitrate below
8384 the QSV encoder range might significantly affect quality. If on
8385 this option takes effect in non CQP modes: if bitrate is not in the
8386 range imposed by the QSV encoder, it will be changed to be in the
8387 range.
8388
8389 mbbrc
8390 Setting this flag enables macroblock level bitrate control that
8391 generally improves subjective visual quality. Enabling this flag
8392 may have negative impact on performance and objective visual
8393 quality metric.
8394
8395 low_delay_brc
8396 Setting this flag turns on or off LowDelayBRC feautre in qsv
8397 plugin, which provides more accurate bitrate control to minimize
8398 the variance of bitstream size frame by frame. Value: -1-default
8399 0-off 1-on
8400
8401 adaptive_i
8402 This flag controls insertion of I frames by the QSV encoder. Turn
8403 ON this flag to allow changing of frame type from P and B to I.
8404
8405 adaptive_b
8406 This flag controls changing of frame type from B to P.
8407
8408 p_strategy
8409 Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to
8410 0).
8411
8412 b_strategy
8413 This option controls usage of B frames as reference.
8414
8415 dblk_idc
8416 This option disable deblocking. It has value in range 0~2.
8417
8418 cavlc
8419 If set, CAVLC is used; if unset, CABAC is used for encoding.
8420
8421 vcm Video conferencing mode, please see ratecontrol method.
8422
8423 idr_interval
8424 Distance (in I-frames) between IDR frames.
8425
8426 pic_timing_sei
8427 Insert picture timing SEI with pic_struct_syntax element.
8428
8429 single_sei_nal_unit
8430 Put all the SEI messages into one NALU.
8431
8432 max_dec_frame_buffering
8433 Maximum number of frames buffered in the DPB.
8434
8435 look_ahead
8436 Use VBR algorithm with look ahead.
8437
8438 look_ahead_depth
8439 Depth of look ahead in number frames.
8440
8441 look_ahead_downsampling
8442 Downscaling factor for the frames saved for the lookahead analysis.
8443
8444 unknown
8445 auto
8446 off
8447 2x
8448 4x
8449 int_ref_type
8450 Specifies intra refresh type. The major goal of intra refresh is
8451 improvement of error resilience without significant impact on
8452 encoded bitstream size caused by I frames. The SDK encoder achieves
8453 this by encoding part of each frame in refresh cycle using intra
8454 MBs. none means no refresh. vertical means vertical refresh, by
8455 column of MBs. To enable intra refresh, B frame should be set to 0.
8456
8457 int_ref_cycle_size
8458 Specifies number of pictures within refresh cycle starting from 2.
8459 0 and 1 are invalid values.
8460
8461 int_ref_qp_delta
8462 Specifies QP difference for inserted intra MBs. This is signed
8463 value in [-51, 51] range if target encoding bit-depth for luma
8464 samples is 8 and this range is [-63, 63] for 10 bit-depth or [-75,
8465 75] for 12 bit-depth respectively.
8466
8467 int_ref_cycle_dist
8468 Distance between the beginnings of the intra-refresh cycles in
8469 frames.
8470
8471 profile
8472 unknown
8473 baseline
8474 main
8475 high
8476 a53cc
8477 Use A53 Closed Captions (if available).
8478
8479 aud Insert the Access Unit Delimiter NAL.
8480
8481 mfmode
8482 Multi-Frame Mode.
8483
8484 off
8485 auto
8486 repeat_pps
8487 Repeat pps for every frame.
8488
8489 max_qp_i
8490 Maximum video quantizer scale for I frame.
8491
8492 min_qp_i
8493 Minimum video quantizer scale for I frame.
8494
8495 max_qp_p
8496 Maximum video quantizer scale for P frame.
8497
8498 min_qp_p
8499 Minimum video quantizer scale for P frame.
8500
8501 max_qp_b
8502 Maximum video quantizer scale for B frame.
8503
8504 min_qp_b
8505 Minimum video quantizer scale for B frame.
8506
8507 HEVC Options
8508
8509 These options are used by hevc_qsv
8510
8511 extbrc
8512 Extended bitrate control.
8513
8514 recovery_point_sei
8515 Set this flag to insert the recovery point SEI message at the
8516 beginning of every intra refresh cycle.
8517
8518 rdo Enable rate distortion optimization.
8519
8520 max_frame_size
8521 Maximum encoded frame size in bytes.
8522
8523 max_frame_size_i
8524 Maximum encoded frame size for I frames in bytes. If this value is
8525 set as larger than zero, then for I frames the value set by
8526 max_frame_size is ignored.
8527
8528 max_frame_size_p
8529 Maximum encoded frame size for P frames in bytes. If this value is
8530 set as larger than zero, then for P frames the value set by
8531 max_frame_size is ignored.
8532
8533 max_slice_size
8534 Maximum encoded slice size in bytes.
8535
8536 mbbrc
8537 Setting this flag enables macroblock level bitrate control that
8538 generally improves subjective visual quality. Enabling this flag
8539 may have negative impact on performance and objective visual
8540 quality metric.
8541
8542 low_delay_brc
8543 Setting this flag turns on or off LowDelayBRC feautre in qsv
8544 plugin, which provides more accurate bitrate control to minimize
8545 the variance of bitstream size frame by frame. Value: -1-default
8546 0-off 1-on
8547
8548 p_strategy
8549 Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to
8550 0).
8551
8552 b_strategy
8553 This option controls usage of B frames as reference.
8554
8555 dblk_idc
8556 This option disable deblocking. It has value in range 0~2.
8557
8558 idr_interval
8559 Distance (in I-frames) between IDR frames.
8560
8561 begin_only
8562 Output an IDR-frame only at the beginning of the stream.
8563
8564 load_plugin
8565 A user plugin to load in an internal session.
8566
8567 none
8568 hevc_sw
8569 hevc_hw
8570 load_plugins
8571 A :-separate list of hexadecimal plugin UIDs to load in an internal
8572 session.
8573
8574 look_ahead_depth
8575 Depth of look ahead in number frames, available when extbrc option
8576 is enabled.
8577
8578 profile
8579 Set the encoding profile (scc requires libmfx >= 1.32).
8580
8581 unknown
8582 main
8583 main10
8584 mainsp
8585 rext
8586 scc
8587 gpb 1: GPB (generalized P/B frame)
8588
8589 0: regular P frame.
8590
8591 tile_cols
8592 Number of columns for tiled encoding.
8593
8594 tile_rows
8595 Number of rows for tiled encoding.
8596
8597 aud Insert the Access Unit Delimiter NAL.
8598
8599 pic_timing_sei
8600 Insert picture timing SEI with pic_struct_syntax element.
8601
8602 transform_skip
8603 Turn this option ON to enable transformskip. It is supported on
8604 platform equal or newer than ICL.
8605
8606 int_ref_type
8607 Specifies intra refresh type. The major goal of intra refresh is
8608 improvement of error resilience without significant impact on
8609 encoded bitstream size caused by I frames. The SDK encoder achieves
8610 this by encoding part of each frame in refresh cycle using intra
8611 MBs. none means no refresh. vertical means vertical refresh, by
8612 column of MBs. To enable intra refresh, B frame should be set to 0.
8613
8614 int_ref_cycle_size
8615 Specifies number of pictures within refresh cycle starting from 2.
8616 0 and 1 are invalid values.
8617
8618 int_ref_qp_delta
8619 Specifies QP difference for inserted intra MBs. This is signed
8620 value in [-51, 51] range if target encoding bit-depth for luma
8621 samples is 8 and this range is [-63, 63] for 10 bit-depth or [-75,
8622 75] for 12 bit-depth respectively.
8623
8624 int_ref_cycle_dist
8625 Distance between the beginnings of the intra-refresh cycles in
8626 frames.
8627
8628 max_qp_i
8629 Maximum video quantizer scale for I frame.
8630
8631 min_qp_i
8632 Minimum video quantizer scale for I frame.
8633
8634 max_qp_p
8635 Maximum video quantizer scale for P frame.
8636
8637 min_qp_p
8638 Minimum video quantizer scale for P frame.
8639
8640 max_qp_b
8641 Maximum video quantizer scale for B frame.
8642
8643 min_qp_b
8644 Minimum video quantizer scale for B frame.
8645
8646 MPEG2 Options
8647
8648 These options are used by mpeg2_qsv
8649
8650 profile
8651 unknown
8652 simple
8653 main
8654 high
8655
8656 VP9 Options
8657
8658 These options are used by vp9_qsv
8659
8660 profile
8661 unknown
8662 profile0
8663 profile1
8664 profile2
8665 profile3
8666 tile_cols
8667 Number of columns for tiled encoding (requires libmfx >= 1.29).
8668
8669 tile_rows
8670 Number of rows for tiled encoding (requires libmfx >= 1.29).
8671
8672 snow
8673 Options
8674
8675 iterative_dia_size
8676 dia size for the iterative motion estimation
8677
8678 VAAPI encoders
8679 Wrappers for hardware encoders accessible via VAAPI.
8680
8681 These encoders only accept input in VAAPI hardware surfaces. If you
8682 have input in software frames, use the hwupload filter to upload them
8683 to the GPU.
8684
8685 The following standard libavcodec options are used:
8686
8687 • g / gop_size
8688
8689 • bf / max_b_frames
8690
8691 • profile
8692
8693 If not set, this will be determined automatically from the format
8694 of the input frames and the profiles supported by the driver.
8695
8696 • level
8697
8698 • b / bit_rate
8699
8700 • maxrate / rc_max_rate
8701
8702 • bufsize / rc_buffer_size
8703
8704 • rc_init_occupancy / rc_initial_buffer_occupancy
8705
8706 • compression_level
8707
8708 Speed / quality tradeoff: higher values are faster / worse quality.
8709
8710 • q / global_quality
8711
8712 Size / quality tradeoff: higher values are smaller / worse quality.
8713
8714 • qmin
8715
8716 • qmax
8717
8718 • i_qfactor / i_quant_factor
8719
8720 • i_qoffset / i_quant_offset
8721
8722 • b_qfactor / b_quant_factor
8723
8724 • b_qoffset / b_quant_offset
8725
8726 • slices
8727
8728 All encoders support the following options:
8729
8730 low_power
8731 Some drivers/platforms offer a second encoder for some codecs
8732 intended to use less power than the default encoder; setting this
8733 option will attempt to use that encoder. Note that it may support
8734 a reduced feature set, so some other options may not be available
8735 in this mode.
8736
8737 idr_interval
8738 Set the number of normal intra frames between full-refresh (IDR)
8739 frames in open-GOP mode. The intra frames are still IRAPs, but
8740 will not include global headers and may have non-decodable leading
8741 pictures.
8742
8743 b_depth
8744 Set the B-frame reference depth. When set to one (the default),
8745 all B-frames will refer only to P- or I-frames. When set to
8746 greater values multiple layers of B-frames will be present, frames
8747 in each layer only referring to frames in higher layers.
8748
8749 async_depth
8750 Maximum processing parallelism. Increase this to improve single
8751 channel performance. This option doesn't work if driver doesn't
8752 implement vaSyncBuffer function. Please make sure there are enough
8753 hw_frames allocated if a large number of async_depth is used.
8754
8755 max_frame_size
8756 Set the allowed max size in bytes for each frame. If the frame size
8757 exceeds the limitation, encoder will adjust the QP value to control
8758 the frame size. Invalid in CQP rate control mode.
8759
8760 rc_mode
8761 Set the rate control mode to use. A given driver may only support
8762 a subset of modes.
8763
8764 Possible modes:
8765
8766 auto
8767 Choose the mode automatically based on driver support and the
8768 other options. This is the default.
8769
8770 CQP Constant-quality.
8771
8772 CBR Constant-bitrate.
8773
8774 VBR Variable-bitrate.
8775
8776 ICQ Intelligent constant-quality.
8777
8778 QVBR
8779 Quality-defined variable-bitrate.
8780
8781 AVBR
8782 Average variable bitrate.
8783
8784 Each encoder also has its own specific options:
8785
8786 h264_vaapi
8787 profile sets the value of profile_idc and the
8788 constraint_set*_flags. level sets the value of level_idc.
8789
8790 coder
8791 Set entropy encoder (default is cabac). Possible values:
8792
8793 ac
8794 cabac
8795 Use CABAC.
8796
8797 vlc
8798 cavlc
8799 Use CAVLC.
8800
8801 aud Include access unit delimiters in the stream (not included by
8802 default).
8803
8804 sei Set SEI message types to include. Some combination of the
8805 following values:
8806
8807 identifier
8808 Include a user_data_unregistered message containing
8809 information about the encoder.
8810
8811 timing
8812 Include picture timing parameters (buffering_period and
8813 pic_timing messages).
8814
8815 recovery_point
8816 Include recovery points where appropriate (recovery_point
8817 messages).
8818
8819 hevc_vaapi
8820 profile and level set the values of general_profile_idc and
8821 general_level_idc respectively.
8822
8823 aud Include access unit delimiters in the stream (not included by
8824 default).
8825
8826 tier
8827 Set general_tier_flag. This may affect the level chosen for
8828 the stream if it is not explicitly specified.
8829
8830 sei Set SEI message types to include. Some combination of the
8831 following values:
8832
8833 hdr Include HDR metadata if the input frames have it
8834 (mastering_display_colour_volume and content_light_level
8835 messages).
8836
8837 tiles
8838 Set the number of tiles to encode the input video with, as
8839 columns x rows. Larger numbers allow greater parallelism in
8840 both encoding and decoding, but may decrease coding efficiency.
8841
8842 mjpeg_vaapi
8843 Only baseline DCT encoding is supported. The encoder always uses
8844 the standard quantisation and huffman tables - global_quality
8845 scales the standard quantisation table (range 1-100).
8846
8847 For YUV, 4:2:0, 4:2:2 and 4:4:4 subsampling modes are supported.
8848 RGB is also supported, and will create an RGB JPEG.
8849
8850 jfif
8851 Include JFIF header in each frame (not included by default).
8852
8853 huffman
8854 Include standard huffman tables (on by default). Turning this
8855 off will save a few hundred bytes in each output frame, but may
8856 lose compatibility with some JPEG decoders which don't fully
8857 handle MJPEG.
8858
8859 mpeg2_vaapi
8860 profile and level set the value of profile_and_level_indication.
8861
8862 vp8_vaapi
8863 B-frames are not supported.
8864
8865 global_quality sets the q_idx used for non-key frames (range
8866 0-127).
8867
8868 loop_filter_level
8869 loop_filter_sharpness
8870 Manually set the loop filter parameters.
8871
8872 vp9_vaapi
8873 global_quality sets the q_idx used for P-frames (range 0-255).
8874
8875 loop_filter_level
8876 loop_filter_sharpness
8877 Manually set the loop filter parameters.
8878
8879 B-frames are supported, but the output stream is always in encode
8880 order rather than display order. If B-frames are enabled, it may
8881 be necessary to use the vp9_raw_reorder bitstream filter to modify
8882 the output stream to display frames in the correct order.
8883
8884 Only normal frames are produced - the vp9_superframe bitstream
8885 filter may be required to produce a stream usable with all
8886 decoders.
8887
8888 vbn
8889 Vizrt Binary Image encoder.
8890
8891 This format is used by the broadcast vendor Vizrt for quick texture
8892 streaming. Advanced features of the format such as LZW compression of
8893 texture data or generation of mipmaps are not supported.
8894
8895 Options
8896
8897 format string
8898 Sets the texture compression used by the VBN file. Can be dxt1,
8899 dxt5 or raw. Default is dxt5.
8900
8901 vc2
8902 SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed
8903 at professional broadcasting but since it supports yuv420, yuv422 and
8904 yuv444 at 8 (limited range or full range), 10 or 12 bits, this makes it
8905 suitable for other tasks which require low overhead and low compression
8906 (like screen recording).
8907
8908 Options
8909
8910 b Sets target video bitrate. Usually that's around 1:6 of the
8911 uncompressed video bitrate (e.g. for 1920x1080 50fps yuv422p10
8912 that's around 400Mbps). Higher values (close to the uncompressed
8913 bitrate) turn on lossless compression mode.
8914
8915 field_order
8916 Enables field coding when set (e.g. to tt - top field first) for
8917 interlaced inputs. Should increase compression with interlaced
8918 content as it splits the fields and encodes each separately.
8919
8920 wavelet_depth
8921 Sets the total amount of wavelet transforms to apply, between 1 and
8922 5 (default). Lower values reduce compression and quality. Less
8923 capable decoders may not be able to handle values of wavelet_depth
8924 over 3.
8925
8926 wavelet_type
8927 Sets the transform type. Currently only 5_3 (LeGall) and 9_7
8928 (Deslauriers-Dubuc) are implemented, with 9_7 being the one with
8929 better compression and thus is the default.
8930
8931 slice_width
8932 slice_height
8933 Sets the slice size for each slice. Larger values result in better
8934 compression. For compatibility with other more limited decoders
8935 use slice_width of 32 and slice_height of 8.
8936
8937 tolerance
8938 Sets the undershoot tolerance of the rate control system in
8939 percent. This is to prevent an expensive search from being run.
8940
8941 qm Sets the quantization matrix preset to use by default or when
8942 wavelet_depth is set to 5
8943
8944 - default Uses the default quantization matrix from the
8945 specifications, extended with values for the fifth level. This
8946 provides a good balance between keeping detail and omitting
8947 artifacts.
8948
8949 - flat Use a completely zeroed out quantization matrix. This
8950 increases PSNR but might reduce perception. Use in bogus
8951 benchmarks.
8952
8953 - color Reduces detail but attempts to preserve color at
8954 extremely low bitrates.
8955
8957 dvdsub
8958 This codec encodes the bitmap subtitle format that is used in DVDs.
8959 Typically they are stored in VOBSUB file pairs (*.idx + *.sub), and
8960 they can also be used in Matroska files.
8961
8962 Options
8963
8964 palette
8965 Specify the global palette used by the bitmaps.
8966
8967 The format for this option is a string containing 16 24-bits
8968 hexadecimal numbers (without 0x prefix) separated by commas, for
8969 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
8970 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
8971 7c127b".
8972
8973 even_rows_fix
8974 When set to 1, enable a work-around that makes the number of pixel
8975 rows even in all subtitles. This fixes a problem with some players
8976 that cut off the bottom row if the number is odd. The work-around
8977 just adds a fully transparent row if needed. The overhead is low,
8978 typically one byte per subtitle on average.
8979
8980 By default, this work-around is disabled.
8981
8983 When you configure your FFmpeg build, all the supported bitstream
8984 filters are enabled by default. You can list all available ones using
8985 the configure option "--list-bsfs".
8986
8987 You can disable all the bitstream filters using the configure option
8988 "--disable-bsfs", and selectively enable any bitstream filter using the
8989 option "--enable-bsf=BSF", or you can disable a particular bitstream
8990 filter using the option "--disable-bsf=BSF".
8991
8992 The option "-bsfs" of the ff* tools will display the list of all the
8993 supported bitstream filters included in your build.
8994
8995 The ff* tools have a -bsf option applied per stream, taking a comma-
8996 separated list of filters, whose parameters follow the filter name
8997 after a '='.
8998
8999 ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
9000
9001 Below is a description of the currently available bitstream filters,
9002 with their parameters, if any.
9003
9004 aac_adtstoasc
9005 Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
9006 bitstream.
9007
9008 This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
9009 header and removes the ADTS header.
9010
9011 This filter is required for example when copying an AAC stream from a
9012 raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
9013 to MOV/MP4 files and related formats such as 3GP or M4A. Please note
9014 that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
9015
9016 av1_metadata
9017 Modify metadata embedded in an AV1 stream.
9018
9019 td Insert or remove temporal delimiter OBUs in all temporal units of
9020 the stream.
9021
9022 insert
9023 Insert a TD at the beginning of every TU which does not already
9024 have one.
9025
9026 remove
9027 Remove the TD from the beginning of every TU which has one.
9028
9029 color_primaries
9030 transfer_characteristics
9031 matrix_coefficients
9032 Set the color description fields in the stream (see AV1 section
9033 6.4.2).
9034
9035 color_range
9036 Set the color range in the stream (see AV1 section 6.4.2; note that
9037 this cannot be set for streams using BT.709 primaries, sRGB
9038 transfer characteristic and identity (RGB) matrix coefficients).
9039
9040 tv Limited range.
9041
9042 pc Full range.
9043
9044 chroma_sample_position
9045 Set the chroma sample location in the stream (see AV1 section
9046 6.4.2). This can only be set for 4:2:0 streams.
9047
9048 vertical
9049 Left position (matching the default in MPEG-2 and H.264).
9050
9051 colocated
9052 Top-left position.
9053
9054 tick_rate
9055 Set the tick rate (time_scale / num_units_in_display_tick) in the
9056 timing info in the sequence header.
9057
9058 num_ticks_per_picture
9059 Set the number of ticks in each picture, to indicate that the
9060 stream has a fixed framerate. Ignored if tick_rate is not also
9061 set.
9062
9063 delete_padding
9064 Deletes Padding OBUs.
9065
9066 chomp
9067 Remove zero padding at the end of a packet.
9068
9069 dca_core
9070 Extract the core from a DCA/DTS stream, dropping extensions such as
9071 DTS-HD.
9072
9073 dump_extra
9074 Add extradata to the beginning of the filtered packets except when said
9075 packets already exactly begin with the extradata that is intended to be
9076 added.
9077
9078 freq
9079 The additional argument specifies which packets should be filtered.
9080 It accepts the values:
9081
9082 k
9083 keyframe
9084 add extradata to all key packets
9085
9086 e
9087 all add extradata to all packets
9088
9089 If not specified it is assumed k.
9090
9091 For example the following ffmpeg command forces a global header (thus
9092 disabling individual packet headers) in the H.264 packets generated by
9093 the "libx264" encoder, but corrects them by adding the header stored in
9094 extradata to the key packets:
9095
9096 ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
9097
9098 dv_error_marker
9099 Blocks in DV which are marked as damaged are replaced by blocks of the
9100 specified color.
9101
9102 color
9103 The color to replace damaged blocks by
9104
9105 sta A 16 bit mask which specifies which of the 16 possible error status
9106 values are to be replaced by colored blocks. 0xFFFE is the default
9107 which replaces all non 0 error status values.
9108
9109 ok No error, no concealment
9110
9111 err Error, No concealment
9112
9113 res Reserved
9114
9115 notok
9116 Error or concealment
9117
9118 notres
9119 Not reserved
9120
9121 Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru
9122 The specific error status code
9123
9124 see page 44-46 or section 5.5 of
9125 <http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf>
9126
9127 eac3_core
9128 Extract the core from a E-AC-3 stream, dropping extra channels.
9129
9130 extract_extradata
9131 Extract the in-band extradata.
9132
9133 Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
9134 headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
9135 band" (i.e. as a part of the bitstream containing the coded frames) or
9136 "out of band" (e.g. on the container level). This latter form is called
9137 "extradata" in FFmpeg terminology.
9138
9139 This bitstream filter detects the in-band headers and makes them
9140 available as extradata.
9141
9142 remove
9143 When this option is enabled, the long-term headers are removed from
9144 the bitstream after extraction.
9145
9146 filter_units
9147 Remove units with types in or not in a given set from the stream.
9148
9149 pass_types
9150 List of unit types or ranges of unit types to pass through while
9151 removing all others. This is specified as a '|'-separated list of
9152 unit type values or ranges of values with '-'.
9153
9154 remove_types
9155 Identical to pass_types, except the units in the given set removed
9156 and all others passed through.
9157
9158 Extradata is unchanged by this transformation, but note that if the
9159 stream contains inline parameter sets then the output may be unusable
9160 if they are removed.
9161
9162 For example, to remove all non-VCL NAL units from an H.264 stream:
9163
9164 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
9165
9166 To remove all AUDs, SEI and filler from an H.265 stream:
9167
9168 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
9169
9170 hapqa_extract
9171 Extract Rgb or Alpha part of an HAPQA file, without recompression, in
9172 order to create an HAPQ or an HAPAlphaOnly file.
9173
9174 texture
9175 Specifies the texture to keep.
9176
9177 color
9178 alpha
9179
9180 Convert HAPQA to HAPQ
9181
9182 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
9183
9184 Convert HAPQA to HAPAlphaOnly
9185
9186 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
9187
9188 h264_metadata
9189 Modify metadata embedded in an H.264 stream.
9190
9191 aud Insert or remove AUD NAL units in all access units of the stream.
9192
9193 pass
9194 insert
9195 remove
9196
9197 Default is pass.
9198
9199 sample_aspect_ratio
9200 Set the sample aspect ratio of the stream in the VUI parameters.
9201 See H.264 table E-1.
9202
9203 overscan_appropriate_flag
9204 Set whether the stream is suitable for display using overscan or
9205 not (see H.264 section E.2.1).
9206
9207 video_format
9208 video_full_range_flag
9209 Set the video format in the stream (see H.264 section E.2.1 and
9210 table E-2).
9211
9212 colour_primaries
9213 transfer_characteristics
9214 matrix_coefficients
9215 Set the colour description in the stream (see H.264 section E.2.1
9216 and tables E-3, E-4 and E-5).
9217
9218 chroma_sample_loc_type
9219 Set the chroma sample location in the stream (see H.264 section
9220 E.2.1 and figure E-1).
9221
9222 tick_rate
9223 Set the tick rate (time_scale / num_units_in_tick) in the VUI
9224 parameters. This is the smallest time unit representable in the
9225 stream, and in many cases represents the field rate of the stream
9226 (double the frame rate).
9227
9228 fixed_frame_rate_flag
9229 Set whether the stream has fixed framerate - typically this
9230 indicates that the framerate is exactly half the tick rate, but the
9231 exact meaning is dependent on interlacing and the picture structure
9232 (see H.264 section E.2.1 and table E-6).
9233
9234 zero_new_constraint_set_flags
9235 Zero constraint_set4_flag and constraint_set5_flag in the SPS.
9236 These bits were reserved in a previous version of the H.264 spec,
9237 and thus some hardware decoders require these to be zero. The
9238 result of zeroing this is still a valid bitstream.
9239
9240 crop_left
9241 crop_right
9242 crop_top
9243 crop_bottom
9244 Set the frame cropping offsets in the SPS. These values will
9245 replace the current ones if the stream is already cropped.
9246
9247 These fields are set in pixels. Note that some sizes may not be
9248 representable if the chroma is subsampled or the stream is
9249 interlaced (see H.264 section 7.4.2.1.1).
9250
9251 sei_user_data
9252 Insert a string as SEI unregistered user data. The argument must
9253 be of the form UUID+string, where the UUID is as hex digits
9254 possibly separated by hyphens, and the string can be anything.
9255
9256 For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
9257 the string ``hello'' associated with the given UUID.
9258
9259 delete_filler
9260 Deletes both filler NAL units and filler SEI messages.
9261
9262 display_orientation
9263 Insert, extract or remove Display orientation SEI messages. See
9264 H.264 section D.1.27 and D.2.27 for syntax and semantics.
9265
9266 pass
9267 insert
9268 remove
9269 extract
9270
9271 Default is pass.
9272
9273 Insert mode works in conjunction with "rotate" and "flip" options.
9274 Any pre-existing Display orientation messages will be removed in
9275 insert or remove mode. Extract mode attaches the display matrix to
9276 the packet as side data.
9277
9278 rotate
9279 Set rotation in display orientation SEI (anticlockwise angle in
9280 degrees). Range is -360 to +360. Default is NaN.
9281
9282 flip
9283 Set flip in display orientation SEI.
9284
9285 horizontal
9286 vertical
9287
9288 Default is unset.
9289
9290 level
9291 Set the level in the SPS. Refer to H.264 section A.3 and tables
9292 A-1 to A-5.
9293
9294 The argument must be the name of a level (for example, 4.2), a
9295 level_idc value (for example, 42), or the special name auto
9296 indicating that the filter should attempt to guess the level from
9297 the input stream properties.
9298
9299 h264_mp4toannexb
9300 Convert an H.264 bitstream from length prefixed mode to start code
9301 prefixed mode (as defined in the Annex B of the ITU-T H.264
9302 specification).
9303
9304 This is required by some streaming formats, typically the MPEG-2
9305 transport stream format (muxer "mpegts").
9306
9307 For example to remux an MP4 file containing an H.264 stream to mpegts
9308 format with ffmpeg, you can use the command:
9309
9310 ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
9311
9312 Please note that this filter is auto-inserted for MPEG-TS (muxer
9313 "mpegts") and raw H.264 (muxer "h264") output formats.
9314
9315 h264_redundant_pps
9316 This applies a specific fixup to some Blu-ray streams which contain
9317 redundant PPSs modifying irrelevant parameters of the stream which
9318 confuse other transformations which require correct extradata.
9319
9320 A new single global PPS is created, and all of the redundant PPSs
9321 within the stream are removed.
9322
9323 hevc_metadata
9324 Modify metadata embedded in an HEVC stream.
9325
9326 aud Insert or remove AUD NAL units in all access units of the stream.
9327
9328 insert
9329 remove
9330 sample_aspect_ratio
9331 Set the sample aspect ratio in the stream in the VUI parameters.
9332
9333 video_format
9334 video_full_range_flag
9335 Set the video format in the stream (see H.265 section E.3.1 and
9336 table E.2).
9337
9338 colour_primaries
9339 transfer_characteristics
9340 matrix_coefficients
9341 Set the colour description in the stream (see H.265 section E.3.1
9342 and tables E.3, E.4 and E.5).
9343
9344 chroma_sample_loc_type
9345 Set the chroma sample location in the stream (see H.265 section
9346 E.3.1 and figure E.1).
9347
9348 tick_rate
9349 Set the tick rate in the VPS and VUI parameters (time_scale /
9350 num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
9351 set a constant framerate in the stream. Note that it is likely to
9352 be overridden by container parameters when the stream is in a
9353 container.
9354
9355 num_ticks_poc_diff_one
9356 Set poc_proportional_to_timing_flag in VPS and VUI and use this
9357 value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
9358 7.4.3.1 and E.3.1). Ignored if tick_rate is not also set.
9359
9360 crop_left
9361 crop_right
9362 crop_top
9363 crop_bottom
9364 Set the conformance window cropping offsets in the SPS. These
9365 values will replace the current ones if the stream is already
9366 cropped.
9367
9368 These fields are set in pixels. Note that some sizes may not be
9369 representable if the chroma is subsampled (H.265 section
9370 7.4.3.2.1).
9371
9372 level
9373 Set the level in the VPS and SPS. See H.265 section A.4 and tables
9374 A.6 and A.7.
9375
9376 The argument must be the name of a level (for example, 5.1), a
9377 general_level_idc value (for example, 153 for level 5.1), or the
9378 special name auto indicating that the filter should attempt to
9379 guess the level from the input stream properties.
9380
9381 hevc_mp4toannexb
9382 Convert an HEVC/H.265 bitstream from length prefixed mode to start code
9383 prefixed mode (as defined in the Annex B of the ITU-T H.265
9384 specification).
9385
9386 This is required by some streaming formats, typically the MPEG-2
9387 transport stream format (muxer "mpegts").
9388
9389 For example to remux an MP4 file containing an HEVC stream to mpegts
9390 format with ffmpeg, you can use the command:
9391
9392 ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
9393
9394 Please note that this filter is auto-inserted for MPEG-TS (muxer
9395 "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
9396
9397 imxdump
9398 Modifies the bitstream to fit in MOV and to be usable by the Final Cut
9399 Pro decoder. This filter only applies to the mpeg2video codec, and is
9400 likely not needed for Final Cut Pro 7 and newer with the appropriate
9401 -tag:v.
9402
9403 For example, to remux 30 MB/sec NTSC IMX to MOV:
9404
9405 ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
9406
9407 mjpeg2jpeg
9408 Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
9409
9410 MJPEG is a video codec wherein each video frame is essentially a JPEG
9411 image. The individual frames can be extracted without loss, e.g. by
9412
9413 ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
9414
9415 Unfortunately, these chunks are incomplete JPEG images, because they
9416 lack the DHT segment required for decoding. Quoting from
9417 <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
9418
9419 Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
9420 commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
9421 fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
9422 table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
9423 use basic Huffman encoding, not arithmetic or progressive. . . . You
9424 can indeed extract the MJPEG frames and decode them with a regular JPEG
9425 decoder, but you have to prepend the DHT segment to them, or else the
9426 decoder won't have any idea how to decompress the data. The exact table
9427 necessary is given in the OpenDML spec."
9428
9429 This bitstream filter patches the header of frames extracted from an
9430 MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
9431 produce fully qualified JPEG images.
9432
9433 ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
9434 exiftran -i -9 frame*.jpg
9435 ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
9436
9437 mjpegadump
9438 Add an MJPEG A header to the bitstream, to enable decoding by
9439 Quicktime.
9440
9441 mov2textsub
9442 Extract a representable text file from MOV subtitles, stripping the
9443 metadata header from each subtitle packet.
9444
9445 See also the text2movsub filter.
9446
9447 mp3decomp
9448 Decompress non-standard compressed MP3 audio headers.
9449
9450 mpeg2_metadata
9451 Modify metadata embedded in an MPEG-2 stream.
9452
9453 display_aspect_ratio
9454 Set the display aspect ratio in the stream.
9455
9456 The following fixed values are supported:
9457
9458 4/3
9459 16/9
9460 221/100
9461
9462 Any other value will result in square pixels being signalled
9463 instead (see H.262 section 6.3.3 and table 6-3).
9464
9465 frame_rate
9466 Set the frame rate in the stream. This is constructed from a table
9467 of known values combined with a small multiplier and divisor - if
9468 the supplied value is not exactly representable, the nearest
9469 representable value will be used instead (see H.262 section 6.3.3
9470 and table 6-4).
9471
9472 video_format
9473 Set the video format in the stream (see H.262 section 6.3.6 and
9474 table 6-6).
9475
9476 colour_primaries
9477 transfer_characteristics
9478 matrix_coefficients
9479 Set the colour description in the stream (see H.262 section 6.3.6
9480 and tables 6-7, 6-8 and 6-9).
9481
9482 mpeg4_unpack_bframes
9483 Unpack DivX-style packed B-frames.
9484
9485 DivX-style packed B-frames are not valid MPEG-4 and were only a
9486 workaround for the broken Video for Windows subsystem. They use more
9487 space, can cause minor AV sync issues, require more CPU power to decode
9488 (unless the player has some decoded picture queue to compensate the
9489 2,0,2,0 frame per packet style) and cause trouble if copied into a
9490 standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
9491 not be able to decode them, since they are not valid MPEG-4.
9492
9493 For example to fix an AVI file containing an MPEG-4 stream with DivX-
9494 style packed B-frames using ffmpeg, you can use the command:
9495
9496 ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
9497
9498 noise
9499 Damages the contents of packets or simply drops them without damaging
9500 the container. Can be used for fuzzing or testing error
9501 resilience/concealment.
9502
9503 Parameters:
9504
9505 amount
9506 Accepts an expression whose evaluation per-packet determines how
9507 often bytes in that packet will be modified. A value below 0 will
9508 result in a variable frequency. Default is 0 which results in no
9509 modification. However, if neither amount nor drop is specified,
9510 amount will be set to -1. See below for accepted variables.
9511
9512 drop
9513 Accepts an expression evaluated per-packet whose value determines
9514 whether that packet is dropped. Evaluation to a positive value
9515 results in the packet being dropped. Evaluation to a negative value
9516 results in a variable chance of it being dropped, roughly inverse
9517 in proportion to the magnitude of the value. Default is 0 which
9518 results in no drops. See below for accepted variables.
9519
9520 dropamount
9521 Accepts a non-negative integer, which assigns a variable chance of
9522 it being dropped, roughly inverse in proportion to the value.
9523 Default is 0 which results in no drops. This option is kept for
9524 backwards compatibility and is equivalent to setting drop to a
9525 negative value with the same magnitude i.e. "dropamount=4" is the
9526 same as "drop=-4". Ignored if drop is also specified.
9527
9528 Both "amount" and "drop" accept expressions containing the following
9529 variables:
9530
9531 n The index of the packet, starting from zero.
9532
9533 tb The timebase for packet timestamps.
9534
9535 pts Packet presentation timestamp.
9536
9537 dts Packet decoding timestamp.
9538
9539 nopts
9540 Constant representing AV_NOPTS_VALUE.
9541
9542 startpts
9543 First non-AV_NOPTS_VALUE PTS seen in the stream.
9544
9545 startdts
9546 First non-AV_NOPTS_VALUE DTS seen in the stream.
9547
9548 duration
9549 d Packet duration, in timebase units.
9550
9551 pos Packet position in input; may be -1 when unknown or not set.
9552
9553 size
9554 Packet size, in bytes.
9555
9556 key Whether packet is marked as a keyframe.
9557
9558 state
9559 A pseudo random integer, primarily derived from the content of
9560 packet payload.
9561
9562 Examples
9563
9564 Apply modification to every byte but don't drop any packets.
9565
9566 ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
9567
9568 Drop every video packet not marked as a keyframe after timestamp 30s
9569 but do not modify any of the remaining packets.
9570
9571 ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
9572
9573 Drop one second of audio every 10 seconds and add some random noise to
9574 the rest.
9575
9576 ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
9577
9578 null
9579 This bitstream filter passes the packets through unchanged.
9580
9581 pcm_rechunk
9582 Repacketize PCM audio to a fixed number of samples per packet or a
9583 fixed packet rate per second. This is similar to the asetnsamples audio
9584 filter but works on audio packets instead of audio frames.
9585
9586 nb_out_samples, n
9587 Set the number of samples per each output audio packet. The number
9588 is intended as the number of samples per each channel. Default
9589 value is 1024.
9590
9591 pad, p
9592 If set to 1, the filter will pad the last audio packet with
9593 silence, so that it will contain the same number of samples (or
9594 roughly the same number of samples, see frame_rate) as the previous
9595 ones. Default value is 1.
9596
9597 frame_rate, r
9598 This option makes the filter output a fixed number of packets per
9599 second instead of a fixed number of samples per packet. If the
9600 audio sample rate is not divisible by the frame rate then the
9601 number of samples will not be constant but will vary slightly so
9602 that each packet will start as close to the frame boundary as
9603 possible. Using this option has precedence over nb_out_samples.
9604
9605 You can generate the well known 1602-1601-1602-1601-1602 pattern of
9606 48kHz audio for NTSC frame rate using the frame_rate option.
9607
9608 ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
9609
9610 pgs_frame_merge
9611 Merge a sequence of PGS Subtitle segments ending with an "end of
9612 display set" segment into a single packet.
9613
9614 This is required by some containers that support PGS subtitles (muxer
9615 "matroska").
9616
9617 prores_metadata
9618 Modify color property metadata embedded in prores stream.
9619
9620 color_primaries
9621 Set the color primaries. Available values are:
9622
9623 auto
9624 Keep the same color primaries property (default).
9625
9626 unknown
9627 bt709
9628 bt470bg
9629 BT601 625
9630
9631 smpte170m
9632 BT601 525
9633
9634 bt2020
9635 smpte431
9636 DCI P3
9637
9638 smpte432
9639 P3 D65
9640
9641 transfer_characteristics
9642 Set the color transfer. Available values are:
9643
9644 auto
9645 Keep the same transfer characteristics property (default).
9646
9647 unknown
9648 bt709
9649 BT 601, BT 709, BT 2020
9650
9651 smpte2084
9652 SMPTE ST 2084
9653
9654 arib-std-b67
9655 ARIB STD-B67
9656
9657 matrix_coefficients
9658 Set the matrix coefficient. Available values are:
9659
9660 auto
9661 Keep the same colorspace property (default).
9662
9663 unknown
9664 bt709
9665 smpte170m
9666 BT 601
9667
9668 bt2020nc
9669
9670 Set Rec709 colorspace for each frame of the file
9671
9672 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
9673
9674 Set Hybrid Log-Gamma parameters for each frame of the file
9675
9676 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
9677
9678 remove_extra
9679 Remove extradata from packets.
9680
9681 It accepts the following parameter:
9682
9683 freq
9684 Set which frame types to remove extradata from.
9685
9686 k Remove extradata from non-keyframes only.
9687
9688 keyframe
9689 Remove extradata from keyframes only.
9690
9691 e, all
9692 Remove extradata from all frames.
9693
9694 setts
9695 Set PTS and DTS in packets.
9696
9697 It accepts the following parameters:
9698
9699 ts
9700 pts
9701 dts Set expressions for PTS, DTS or both.
9702
9703 duration
9704 Set expression for duration.
9705
9706 time_base
9707 Set output time base.
9708
9709 The expressions are evaluated through the eval API and can contain the
9710 following constants:
9711
9712 N The count of the input packet. Starting from 0.
9713
9714 TS The demux timestamp in input in case of "ts" or "dts" option or
9715 presentation timestamp in case of "pts" option.
9716
9717 POS The original position in the file of the packet, or undefined if
9718 undefined for the current packet
9719
9720 DTS The demux timestamp in input.
9721
9722 PTS The presentation timestamp in input.
9723
9724 DURATION
9725 The duration in input.
9726
9727 STARTDTS
9728 The DTS of the first packet.
9729
9730 STARTPTS
9731 The PTS of the first packet.
9732
9733 PREV_INDTS
9734 The previous input DTS.
9735
9736 PREV_INPTS
9737 The previous input PTS.
9738
9739 PREV_INDURATION
9740 The previous input duration.
9741
9742 PREV_OUTDTS
9743 The previous output DTS.
9744
9745 PREV_OUTPTS
9746 The previous output PTS.
9747
9748 PREV_OUTDURATION
9749 The previous output duration.
9750
9751 NEXT_DTS
9752 The next input DTS.
9753
9754 NEXT_PTS
9755 The next input PTS.
9756
9757 NEXT_DURATION
9758 The next input duration.
9759
9760 TB The timebase of stream packet belongs.
9761
9762 TB_OUT
9763 The output timebase.
9764
9765 SR The sample rate of stream packet belongs.
9766
9767 NOPTS
9768 The AV_NOPTS_VALUE constant.
9769
9770 text2movsub
9771 Convert text subtitles to MOV subtitles (as used by the "mov_text"
9772 codec) with metadata headers.
9773
9774 See also the mov2textsub filter.
9775
9776 trace_headers
9777 Log trace output containing all syntax elements in the coded stream
9778 headers (everything above the level of individual coded blocks). This
9779 can be useful for debugging low-level stream issues.
9780
9781 Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
9782 the build only a subset of these may be available.
9783
9784 truehd_core
9785 Extract the core from a TrueHD stream, dropping ATMOS data.
9786
9787 vp9_metadata
9788 Modify metadata embedded in a VP9 stream.
9789
9790 color_space
9791 Set the color space value in the frame header. Note that any frame
9792 set to RGB will be implicitly set to PC range and that RGB is
9793 incompatible with profiles 0 and 2.
9794
9795 unknown
9796 bt601
9797 bt709
9798 smpte170
9799 smpte240
9800 bt2020
9801 rgb
9802 color_range
9803 Set the color range value in the frame header. Note that any value
9804 imposed by the color space will take precedence over this value.
9805
9806 tv
9807 pc
9808
9809 vp9_superframe
9810 Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
9811 fixes merging of split/segmented VP9 streams where the alt-ref frame
9812 was split from its visible counterpart.
9813
9814 vp9_superframe_split
9815 Split VP9 superframes into single frames.
9816
9817 vp9_raw_reorder
9818 Given a VP9 stream with correct timestamps but possibly out of order,
9819 insert additional show-existing-frame packets to correct the ordering.
9820
9822 The libavformat library provides some generic global options, which can
9823 be set on all the muxers and demuxers. In addition each muxer or
9824 demuxer may support so-called private options, which are specific for
9825 that component.
9826
9827 Options may be set by specifying -option value in the FFmpeg tools, or
9828 by setting the value explicitly in the "AVFormatContext" options or
9829 using the libavutil/opt.h API for programmatic use.
9830
9831 The list of supported options follows:
9832
9833 avioflags flags (input/output)
9834 Possible values:
9835
9836 direct
9837 Reduce buffering.
9838
9839 probesize integer (input)
9840 Set probing size in bytes, i.e. the size of the data to analyze to
9841 get stream information. A higher value will enable detecting more
9842 information in case it is dispersed into the stream, but will
9843 increase latency. Must be an integer not lesser than 32. It is
9844 5000000 by default.
9845
9846 max_probe_packets integer (input)
9847 Set the maximum number of buffered packets when probing a codec.
9848 Default is 2500 packets.
9849
9850 packetsize integer (output)
9851 Set packet size.
9852
9853 fflags flags
9854 Set format flags. Some are implemented for a limited number of
9855 formats.
9856
9857 Possible values for input files:
9858
9859 discardcorrupt
9860 Discard corrupted packets.
9861
9862 fastseek
9863 Enable fast, but inaccurate seeks for some formats.
9864
9865 genpts
9866 Generate missing PTS if DTS is present.
9867
9868 igndts
9869 Ignore DTS if PTS is set. Inert when nofillin is set.
9870
9871 ignidx
9872 Ignore index.
9873
9874 nobuffer
9875 Reduce the latency introduced by buffering during initial input
9876 streams analysis.
9877
9878 nofillin
9879 Do not fill in missing values in packet fields that can be
9880 exactly calculated.
9881
9882 noparse
9883 Disable AVParsers, this needs "+nofillin" too.
9884
9885 sortdts
9886 Try to interleave output packets by DTS. At present, available
9887 only for AVIs with an index.
9888
9889 Possible values for output files:
9890
9891 autobsf
9892 Automatically apply bitstream filters as required by the output
9893 format. Enabled by default.
9894
9895 bitexact
9896 Only write platform-, build- and time-independent data. This
9897 ensures that file and data checksums are reproducible and match
9898 between platforms. Its primary use is for regression testing.
9899
9900 flush_packets
9901 Write out packets immediately.
9902
9903 shortest
9904 Stop muxing at the end of the shortest stream. It may be
9905 needed to increase max_interleave_delta to avoid flushing the
9906 longer streams before EOF.
9907
9908 seek2any integer (input)
9909 Allow seeking to non-keyframes on demuxer level when supported if
9910 set to 1. Default is 0.
9911
9912 analyzeduration integer (input)
9913 Specify how many microseconds are analyzed to probe the input. A
9914 higher value will enable detecting more accurate information, but
9915 will increase latency. It defaults to 5,000,000 microseconds = 5
9916 seconds.
9917
9918 cryptokey hexadecimal string (input)
9919 Set decryption key.
9920
9921 indexmem integer (input)
9922 Set max memory used for timestamp index (per stream).
9923
9924 rtbufsize integer (input)
9925 Set max memory used for buffering real-time frames.
9926
9927 fdebug flags (input/output)
9928 Print specific debug info.
9929
9930 Possible values:
9931
9932 ts
9933 max_delay integer (input/output)
9934 Set maximum muxing or demuxing delay in microseconds.
9935
9936 fpsprobesize integer (input)
9937 Set number of frames used to probe fps.
9938
9939 audio_preload integer (output)
9940 Set microseconds by which audio packets should be interleaved
9941 earlier.
9942
9943 chunk_duration integer (output)
9944 Set microseconds for each chunk.
9945
9946 chunk_size integer (output)
9947 Set size in bytes for each chunk.
9948
9949 err_detect, f_err_detect flags (input)
9950 Set error detection flags. "f_err_detect" is deprecated and should
9951 be used only via the ffmpeg tool.
9952
9953 Possible values:
9954
9955 crccheck
9956 Verify embedded CRCs.
9957
9958 bitstream
9959 Detect bitstream specification deviations.
9960
9961 buffer
9962 Detect improper bitstream length.
9963
9964 explode
9965 Abort decoding on minor error detection.
9966
9967 careful
9968 Consider things that violate the spec and have not been seen in
9969 the wild as errors.
9970
9971 compliant
9972 Consider all spec non compliancies as errors.
9973
9974 aggressive
9975 Consider things that a sane encoder should not do as an error.
9976
9977 max_interleave_delta integer (output)
9978 Set maximum buffering duration for interleaving. The duration is
9979 expressed in microseconds, and defaults to 10000000 (10 seconds).
9980
9981 To ensure all the streams are interleaved correctly, libavformat
9982 will wait until it has at least one packet for each stream before
9983 actually writing any packets to the output file. When some streams
9984 are "sparse" (i.e. there are large gaps between successive
9985 packets), this can result in excessive buffering.
9986
9987 This field specifies the maximum difference between the timestamps
9988 of the first and the last packet in the muxing queue, above which
9989 libavformat will output a packet regardless of whether it has
9990 queued a packet for all the streams.
9991
9992 If set to 0, libavformat will continue buffering packets until it
9993 has a packet for each stream, regardless of the maximum timestamp
9994 difference between the buffered packets.
9995
9996 use_wallclock_as_timestamps integer (input)
9997 Use wallclock as timestamps if set to 1. Default is 0.
9998
9999 avoid_negative_ts integer (output)
10000 Possible values:
10001
10002 make_non_negative
10003 Shift timestamps to make them non-negative. Also note that
10004 this affects only leading negative timestamps, and not non-
10005 monotonic negative timestamps.
10006
10007 make_zero
10008 Shift timestamps so that the first timestamp is 0.
10009
10010 auto (default)
10011 Enables shifting when required by the target format.
10012
10013 disabled
10014 Disables shifting of timestamp.
10015
10016 When shifting is enabled, all output timestamps are shifted by the
10017 same amount. Audio, video, and subtitles desynching and relative
10018 timestamp differences are preserved compared to how they would have
10019 been without shifting.
10020
10021 skip_initial_bytes integer (input)
10022 Set number of bytes to skip before reading header and frames if set
10023 to 1. Default is 0.
10024
10025 correct_ts_overflow integer (input)
10026 Correct single timestamp overflows if set to 1. Default is 1.
10027
10028 flush_packets integer (output)
10029 Flush the underlying I/O stream after each packet. Default is -1
10030 (auto), which means that the underlying protocol will decide, 1
10031 enables it, and has the effect of reducing the latency, 0 disables
10032 it and may increase IO throughput in some cases.
10033
10034 output_ts_offset offset (output)
10035 Set the output time offset.
10036
10037 offset must be a time duration specification, see the Time duration
10038 section in the ffmpeg-utils(1) manual.
10039
10040 The offset is added by the muxer to the output timestamps.
10041
10042 Specifying a positive offset means that the corresponding streams
10043 are delayed bt the time duration specified in offset. Default value
10044 is 0 (meaning that no offset is applied).
10045
10046 format_whitelist list (input)
10047 "," separated list of allowed demuxers. By default all are allowed.
10048
10049 dump_separator string (input)
10050 Separator used to separate the fields printed on the command line
10051 about the Stream parameters. For example, to separate the fields
10052 with newlines and indentation:
10053
10054 ffprobe -dump_separator "
10055 " -i ~/videos/matrixbench_mpeg2.mpg
10056
10057 max_streams integer (input)
10058 Specifies the maximum number of streams. This can be used to reject
10059 files that would require too many resources due to a large number
10060 of streams.
10061
10062 skip_estimate_duration_from_pts bool (input)
10063 Skip estimation of input duration when calculated using PTS. At
10064 present, applicable for MPEG-PS and MPEG-TS.
10065
10066 strict, f_strict integer (input/output)
10067 Specify how strictly to follow the standards. "f_strict" is
10068 deprecated and should be used only via the ffmpeg tool.
10069
10070 Possible values:
10071
10072 very
10073 strictly conform to an older more strict version of the spec or
10074 reference software
10075
10076 strict
10077 strictly conform to all the things in the spec no matter what
10078 consequences
10079
10080 normal
10081 unofficial
10082 allow unofficial extensions
10083
10084 experimental
10085 allow non standardized experimental things, experimental
10086 (unfinished/work in progress/not well tested) decoders and
10087 encoders. Note: experimental decoders can pose a security
10088 risk, do not use this for decoding untrusted input.
10089
10090 Format stream specifiers
10091 Format stream specifiers allow selection of one or more streams that
10092 match specific properties.
10093
10094 The exact semantics of stream specifiers is defined by the
10095 "avformat_match_stream_specifier()" function declared in the
10096 libavformat/avformat.h header and documented in the Stream specifiers
10097 section in the ffmpeg(1) manual.
10098
10100 Demuxers are configured elements in FFmpeg that can read the multimedia
10101 streams from a particular type of file.
10102
10103 When you configure your FFmpeg build, all the supported demuxers are
10104 enabled by default. You can list all available ones using the configure
10105 option "--list-demuxers".
10106
10107 You can disable all the demuxers using the configure option
10108 "--disable-demuxers", and selectively enable a single demuxer with the
10109 option "--enable-demuxer=DEMUXER", or disable it with the option
10110 "--disable-demuxer=DEMUXER".
10111
10112 The option "-demuxers" of the ff* tools will display the list of
10113 enabled demuxers. Use "-formats" to view a combined list of enabled
10114 demuxers and muxers.
10115
10116 The description of some of the currently available demuxers follows.
10117
10118 aa
10119 Audible Format 2, 3, and 4 demuxer.
10120
10121 This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
10122
10123 aac
10124 Raw Audio Data Transport Stream AAC demuxer.
10125
10126 This demuxer is used to demux an ADTS input containing a single AAC
10127 stream alongwith any ID3v1/2 or APE tags in it.
10128
10129 apng
10130 Animated Portable Network Graphics demuxer.
10131
10132 This demuxer is used to demux APNG files. All headers, but the PNG
10133 signature, up to (but not including) the first fcTL chunk are
10134 transmitted as extradata. Frames are then split as being all the
10135 chunks between two fcTL ones, or between the last fcTL and IEND chunks.
10136
10137 -ignore_loop bool
10138 Ignore the loop variable in the file if set. Default is enabled.
10139
10140 -max_fps int
10141 Maximum framerate in frames per second. Default of 0 imposes no
10142 limit.
10143
10144 -default_fps int
10145 Default framerate in frames per second when none is specified in
10146 the file (0 meaning as fast as possible). Default is 15.
10147
10148 asf
10149 Advanced Systems Format demuxer.
10150
10151 This demuxer is used to demux ASF files and MMS network streams.
10152
10153 -no_resync_search bool
10154 Do not try to resynchronize by looking for a certain optional start
10155 code.
10156
10157 concat
10158 Virtual concatenation script demuxer.
10159
10160 This demuxer reads a list of files and other directives from a text
10161 file and demuxes them one after the other, as if all their packets had
10162 been muxed together.
10163
10164 The timestamps in the files are adjusted so that the first file starts
10165 at 0 and each next file starts where the previous one finishes. Note
10166 that it is done globally and may cause gaps if all streams do not have
10167 exactly the same length.
10168
10169 All files must have the same streams (same codecs, same time base,
10170 etc.).
10171
10172 The duration of each file is used to adjust the timestamps of the next
10173 file: if the duration is incorrect (because it was computed using the
10174 bit-rate or because the file is truncated, for example), it can cause
10175 artifacts. The "duration" directive can be used to override the
10176 duration stored in each file.
10177
10178 Syntax
10179
10180 The script is a text file in extended-ASCII, with one directive per
10181 line. Empty lines, leading spaces and lines starting with '#' are
10182 ignored. The following directive is recognized:
10183
10184 "file path"
10185 Path to a file to read; special characters and spaces must be
10186 escaped with backslash or single quotes.
10187
10188 All subsequent file-related directives apply to that file.
10189
10190 "ffconcat version 1.0"
10191 Identify the script type and version.
10192
10193 To make FFmpeg recognize the format automatically, this directive
10194 must appear exactly as is (no extra space or byte-order-mark) on
10195 the very first line of the script.
10196
10197 "duration dur"
10198 Duration of the file. This information can be specified from the
10199 file; specifying it here may be more efficient or help if the
10200 information from the file is not available or accurate.
10201
10202 If the duration is set for all files, then it is possible to seek
10203 in the whole concatenated video.
10204
10205 "inpoint timestamp"
10206 In point of the file. When the demuxer opens the file it instantly
10207 seeks to the specified timestamp. Seeking is done so that all
10208 streams can be presented successfully at In point.
10209
10210 This directive works best with intra frame codecs, because for non-
10211 intra frame ones you will usually get extra packets before the
10212 actual In point and the decoded content will most likely contain
10213 frames before In point too.
10214
10215 For each file, packets before the file In point will have
10216 timestamps less than the calculated start timestamp of the file
10217 (negative in case of the first file), and the duration of the files
10218 (if not specified by the "duration" directive) will be reduced
10219 based on their specified In point.
10220
10221 Because of potential packets before the specified In point, packet
10222 timestamps may overlap between two concatenated files.
10223
10224 "outpoint timestamp"
10225 Out point of the file. When the demuxer reaches the specified
10226 decoding timestamp in any of the streams, it handles it as an end
10227 of file condition and skips the current and all the remaining
10228 packets from all streams.
10229
10230 Out point is exclusive, which means that the demuxer will not
10231 output packets with a decoding timestamp greater or equal to Out
10232 point.
10233
10234 This directive works best with intra frame codecs and formats where
10235 all streams are tightly interleaved. For non-intra frame codecs you
10236 will usually get additional packets with presentation timestamp
10237 after Out point therefore the decoded content will most likely
10238 contain frames after Out point too. If your streams are not tightly
10239 interleaved you may not get all the packets from all streams before
10240 Out point and you may only will be able to decode the earliest
10241 stream until Out point.
10242
10243 The duration of the files (if not specified by the "duration"
10244 directive) will be reduced based on their specified Out point.
10245
10246 "file_packet_metadata key=value"
10247 Metadata of the packets of the file. The specified metadata will be
10248 set for each file packet. You can specify this directive multiple
10249 times to add multiple metadata entries. This directive is
10250 deprecated, use "file_packet_meta" instead.
10251
10252 "file_packet_meta key value"
10253 Metadata of the packets of the file. The specified metadata will be
10254 set for each file packet. You can specify this directive multiple
10255 times to add multiple metadata entries.
10256
10257 "option key value"
10258 Option to access, open and probe the file. Can be present multiple
10259 times.
10260
10261 "stream"
10262 Introduce a stream in the virtual file. All subsequent stream-
10263 related directives apply to the last introduced stream. Some
10264 streams properties must be set in order to allow identifying the
10265 matching streams in the subfiles. If no streams are defined in the
10266 script, the streams from the first file are copied.
10267
10268 "exact_stream_id id"
10269 Set the id of the stream. If this directive is given, the string
10270 with the corresponding id in the subfiles will be used. This is
10271 especially useful for MPEG-PS (VOB) files, where the order of the
10272 streams is not reliable.
10273
10274 "stream_meta key value"
10275 Metadata for the stream. Can be present multiple times.
10276
10277 "stream_codec value"
10278 Codec for the stream.
10279
10280 "stream_extradata hex_string"
10281 Extradata for the string, encoded in hexadecimal.
10282
10283 "chapter id start end"
10284 Add a chapter. id is an unique identifier, possibly small and
10285 consecutive.
10286
10287 Options
10288
10289 This demuxer accepts the following option:
10290
10291 safe
10292 If set to 1, reject unsafe file paths and directives. A file path
10293 is considered safe if it does not contain a protocol specification
10294 and is relative and all components only contain characters from the
10295 portable character set (letters, digits, period, underscore and
10296 hyphen) and have no period at the beginning of a component.
10297
10298 If set to 0, any file name is accepted.
10299
10300 The default is 1.
10301
10302 auto_convert
10303 If set to 1, try to perform automatic conversions on packet data to
10304 make the streams concatenable. The default is 1.
10305
10306 Currently, the only conversion is adding the h264_mp4toannexb
10307 bitstream filter to H.264 streams in MP4 format. This is necessary
10308 in particular if there are resolution changes.
10309
10310 segment_time_metadata
10311 If set to 1, every packet will contain the lavf.concat.start_time
10312 and the lavf.concat.duration packet metadata values which are the
10313 start_time and the duration of the respective file segments in the
10314 concatenated output expressed in microseconds. The duration
10315 metadata is only set if it is known based on the concat file. The
10316 default is 0.
10317
10318 Examples
10319
10320 • Use absolute filenames and include some comments:
10321
10322 # my first filename
10323 file /mnt/share/file-1.wav
10324 # my second filename including whitespace
10325 file '/mnt/share/file 2.wav'
10326 # my third filename including whitespace plus single quote
10327 file '/mnt/share/file 3'\''.wav'
10328
10329 • Allow for input format auto-probing, use safe filenames and set the
10330 duration of the first file:
10331
10332 ffconcat version 1.0
10333
10334 file file-1.wav
10335 duration 20.0
10336
10337 file subdir/file-2.wav
10338
10339 dash
10340 Dynamic Adaptive Streaming over HTTP demuxer.
10341
10342 This demuxer presents all AVStreams found in the manifest. By setting
10343 the discard flags on AVStreams the caller can decide which streams to
10344 actually receive. Each stream mirrors the "id" and "bandwidth"
10345 properties from the "<Representation>" as metadata keys named "id" and
10346 "variant_bitrate" respectively.
10347
10348 Options
10349
10350 This demuxer accepts the following option:
10351
10352 cenc_decryption_key
10353 16-byte key, in hex, to decrypt files encrypted using ISO Common
10354 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
10355
10356 imf
10357 Interoperable Master Format demuxer.
10358
10359 This demuxer presents audio and video streams found in an IMF
10360 Composition.
10361
10362 flv, live_flv, kux
10363 Adobe Flash Video Format demuxer.
10364
10365 This demuxer is used to demux FLV files and RTMP network streams. In
10366 case of live network streams, if you force format, you may use live_flv
10367 option instead of flv to survive timestamp discontinuities. KUX is a
10368 flv variant used on the Youku platform.
10369
10370 ffmpeg -f flv -i myfile.flv ...
10371 ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
10372
10373 -flv_metadata bool
10374 Allocate the streams according to the onMetaData array content.
10375
10376 -flv_ignore_prevtag bool
10377 Ignore the size of previous tag value.
10378
10379 -flv_full_metadata bool
10380 Output all context of the onMetadata.
10381
10382 gif
10383 Animated GIF demuxer.
10384
10385 It accepts the following options:
10386
10387 min_delay
10388 Set the minimum valid delay between frames in hundredths of
10389 seconds. Range is 0 to 6000. Default value is 2.
10390
10391 max_gif_delay
10392 Set the maximum valid delay between frames in hundredth of seconds.
10393 Range is 0 to 65535. Default value is 65535 (nearly eleven
10394 minutes), the maximum value allowed by the specification.
10395
10396 default_delay
10397 Set the default delay between frames in hundredths of seconds.
10398 Range is 0 to 6000. Default value is 10.
10399
10400 ignore_loop
10401 GIF files can contain information to loop a certain number of times
10402 (or infinitely). If ignore_loop is set to 1, then the loop setting
10403 from the input will be ignored and looping will not occur. If set
10404 to 0, then looping will occur and will cycle the number of times
10405 according to the GIF. Default value is 1.
10406
10407 For example, with the overlay filter, place an infinitely looping GIF
10408 over another video:
10409
10410 ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
10411
10412 Note that in the above example the shortest option for overlay filter
10413 is used to end the output video at the length of the shortest input
10414 file, which in this case is input.mp4 as the GIF in this example loops
10415 infinitely.
10416
10417 hls
10418 HLS demuxer
10419
10420 Apple HTTP Live Streaming demuxer.
10421
10422 This demuxer presents all AVStreams from all variant streams. The id
10423 field is set to the bitrate variant index number. By setting the
10424 discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
10425 caller can decide which variant streams to actually receive. The total
10426 bitrate of the variant that the stream belongs to is available in a
10427 metadata key named "variant_bitrate".
10428
10429 It accepts the following options:
10430
10431 live_start_index
10432 segment index to start live streams at (negative values are from
10433 the end).
10434
10435 prefer_x_start
10436 prefer to use #EXT-X-START if it's in playlist instead of
10437 live_start_index.
10438
10439 allowed_extensions
10440 ',' separated list of file extensions that hls is allowed to
10441 access.
10442
10443 max_reload
10444 Maximum number of times a insufficient list is attempted to be
10445 reloaded. Default value is 1000.
10446
10447 m3u8_hold_counters
10448 The maximum number of times to load m3u8 when it refreshes without
10449 new segments. Default value is 1000.
10450
10451 http_persistent
10452 Use persistent HTTP connections. Applicable only for HTTP streams.
10453 Enabled by default.
10454
10455 http_multiple
10456 Use multiple HTTP connections for downloading HTTP segments.
10457 Enabled by default for HTTP/1.1 servers.
10458
10459 http_seekable
10460 Use HTTP partial requests for downloading HTTP segments. 0 =
10461 disable, 1 = enable, -1 = auto, Default is auto.
10462
10463 seg_format_options
10464 Set options for the demuxer of media segments using a list of
10465 key=value pairs separated by ":".
10466
10467 image2
10468 Image file demuxer.
10469
10470 This demuxer reads from a list of image files specified by a pattern.
10471 The syntax and meaning of the pattern is specified by the option
10472 pattern_type.
10473
10474 The pattern may contain a suffix which is used to automatically
10475 determine the format of the images contained in the files.
10476
10477 The size, the pixel format, and the format of each image must be the
10478 same for all the files in the sequence.
10479
10480 This demuxer accepts the following options:
10481
10482 framerate
10483 Set the frame rate for the video stream. It defaults to 25.
10484
10485 loop
10486 If set to 1, loop over the input. Default value is 0.
10487
10488 pattern_type
10489 Select the pattern type used to interpret the provided filename.
10490
10491 pattern_type accepts one of the following values.
10492
10493 none
10494 Disable pattern matching, therefore the video will only contain
10495 the specified image. You should use this option if you do not
10496 want to create sequences from multiple images and your
10497 filenames may contain special pattern characters.
10498
10499 sequence
10500 Select a sequence pattern type, used to specify a sequence of
10501 files indexed by sequential numbers.
10502
10503 A sequence pattern may contain the string "%d" or "%0Nd", which
10504 specifies the position of the characters representing a
10505 sequential number in each filename matched by the pattern. If
10506 the form "%d0Nd" is used, the string representing the number in
10507 each filename is 0-padded and N is the total number of 0-padded
10508 digits representing the number. The literal character '%' can
10509 be specified in the pattern with the string "%%".
10510
10511 If the sequence pattern contains "%d" or "%0Nd", the first
10512 filename of the file list specified by the pattern must contain
10513 a number inclusively contained between start_number and
10514 start_number+start_number_range-1, and all the following
10515 numbers must be sequential.
10516
10517 For example the pattern "img-%03d.bmp" will match a sequence of
10518 filenames of the form img-001.bmp, img-002.bmp, ...,
10519 img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
10520 sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
10521 ..., i%m%g-10.jpg, etc.
10522
10523 Note that the pattern must not necessarily contain "%d" or
10524 "%0Nd", for example to convert a single image file img.jpeg you
10525 can employ the command:
10526
10527 ffmpeg -i img.jpeg img.png
10528
10529 glob
10530 Select a glob wildcard pattern type.
10531
10532 The pattern is interpreted like a "glob()" pattern. This is
10533 only selectable if libavformat was compiled with globbing
10534 support.
10535
10536 glob_sequence (deprecated, will be removed)
10537 Select a mixed glob wildcard/sequence pattern.
10538
10539 If your version of libavformat was compiled with globbing
10540 support, and the provided pattern contains at least one glob
10541 meta character among "%*?[]{}" that is preceded by an unescaped
10542 "%", the pattern is interpreted like a "glob()" pattern,
10543 otherwise it is interpreted like a sequence pattern.
10544
10545 All glob special characters "%*?[]{}" must be prefixed with
10546 "%". To escape a literal "%" you shall use "%%".
10547
10548 For example the pattern "foo-%*.jpeg" will match all the
10549 filenames prefixed by "foo-" and terminating with ".jpeg", and
10550 "foo-%?%?%?.jpeg" will match all the filenames prefixed with
10551 "foo-", followed by a sequence of three characters, and
10552 terminating with ".jpeg".
10553
10554 This pattern type is deprecated in favor of glob and sequence.
10555
10556 Default value is glob_sequence.
10557
10558 pixel_format
10559 Set the pixel format of the images to read. If not specified the
10560 pixel format is guessed from the first image file in the sequence.
10561
10562 start_number
10563 Set the index of the file matched by the image file pattern to
10564 start to read from. Default value is 0.
10565
10566 start_number_range
10567 Set the index interval range to check when looking for the first
10568 image file in the sequence, starting from start_number. Default
10569 value is 5.
10570
10571 ts_from_file
10572 If set to 1, will set frame timestamp to modification time of image
10573 file. Note that monotonity of timestamps is not provided: images go
10574 in the same order as without this option. Default value is 0. If
10575 set to 2, will set frame timestamp to the modification time of the
10576 image file in nanosecond precision.
10577
10578 video_size
10579 Set the video size of the images to read. If not specified the
10580 video size is guessed from the first image file in the sequence.
10581
10582 export_path_metadata
10583 If set to 1, will add two extra fields to the metadata found in
10584 input, making them also available for other filters (see drawtext
10585 filter for examples). Default value is 0. The extra fields are
10586 described below:
10587
10588 lavf.image2dec.source_path
10589 Corresponds to the full path to the input file being read.
10590
10591 lavf.image2dec.source_basename
10592 Corresponds to the name of the file being read.
10593
10594 Examples
10595
10596 • Use ffmpeg for creating a video from the images in the file
10597 sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
10598 rate of 10 frames per second:
10599
10600 ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
10601
10602 • As above, but start by reading from a file with index 100 in the
10603 sequence:
10604
10605 ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
10606
10607 • Read images matching the "*.png" glob pattern , that is all the
10608 files terminating with the ".png" suffix:
10609
10610 ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
10611
10612 libgme
10613 The Game Music Emu library is a collection of video game music file
10614 emulators.
10615
10616 See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
10617 information.
10618
10619 It accepts the following options:
10620
10621 track_index
10622 Set the index of which track to demux. The demuxer can only export
10623 one track. Track indexes start at 0. Default is to pick the first
10624 track. Number of tracks is exported as tracks metadata entry.
10625
10626 sample_rate
10627 Set the sampling rate of the exported track. Range is 1000 to
10628 999999. Default is 44100.
10629
10630 max_size (bytes)
10631 The demuxer buffers the entire file into memory. Adjust this value
10632 to set the maximum buffer size, which in turn, acts as a ceiling
10633 for the size of files that can be read. Default is 50 MiB.
10634
10635 libmodplug
10636 ModPlug based module demuxer
10637
10638 See <https://github.com/Konstanty/libmodplug>
10639
10640 It will export one 2-channel 16-bit 44.1 kHz audio stream. Optionally,
10641 a "pal8" 16-color video stream can be exported with or without printed
10642 metadata.
10643
10644 It accepts the following options:
10645
10646 noise_reduction
10647 Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
10648 is 0.
10649
10650 reverb_depth
10651 Set amount of reverb. Range 0-100. Default is 0.
10652
10653 reverb_delay
10654 Set delay in ms, clamped to 40-250 ms. Default is 0.
10655
10656 bass_amount
10657 Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
10658 to 100 (loud). Default is 0.
10659
10660 bass_range
10661 Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
10662 Hz. Default is 0.
10663
10664 surround_depth
10665 Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
10666 (heavy). Default is 0.
10667
10668 surround_delay
10669 Set surround delay in ms, clamped to 5-40 ms. Default is 0.
10670
10671 max_size
10672 The demuxer buffers the entire file into memory. Adjust this value
10673 to set the maximum buffer size, which in turn, acts as a ceiling
10674 for the size of files that can be read. Range is 0 to 100 MiB. 0
10675 removes buffer size limit (not recommended). Default is 5 MiB.
10676
10677 video_stream_expr
10678 String which is evaluated using the eval API to assign colors to
10679 the generated video stream. Variables which can be used are "x",
10680 "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
10681
10682 video_stream
10683 Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
10684
10685 video_stream_w
10686 Set video frame width in 'chars' where one char indicates 8 pixels.
10687 Range is 20-512. Default is 30.
10688
10689 video_stream_h
10690 Set video frame height in 'chars' where one char indicates 8
10691 pixels. Range is 20-512. Default is 30.
10692
10693 video_stream_ptxt
10694 Print metadata on video stream. Includes "speed", "tempo", "order",
10695 "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
10696 Default is 1.
10697
10698 libopenmpt
10699 libopenmpt based module demuxer
10700
10701 See <https://lib.openmpt.org/libopenmpt/> for more information.
10702
10703 Some files have multiple subsongs (tracks) this can be set with the
10704 subsong option.
10705
10706 It accepts the following options:
10707
10708 subsong
10709 Set the subsong index. This can be either 'all', 'auto', or the
10710 index of the subsong. Subsong indexes start at 0. The default is
10711 'auto'.
10712
10713 The default value is to let libopenmpt choose.
10714
10715 layout
10716 Set the channel layout. Valid values are 1, 2, and 4 channel
10717 layouts. The default value is STEREO.
10718
10719 sample_rate
10720 Set the sample rate for libopenmpt to output. Range is from 1000
10721 to INT_MAX. The value default is 48000.
10722
10723 mov/mp4/3gp
10724 Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
10725 (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
10726 12).
10727
10728 Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
10729 ismv, isma, f4v
10730
10731 Options
10732
10733 This demuxer accepts the following options:
10734
10735 enable_drefs
10736 Enable loading of external tracks, disabled by default. Enabling
10737 this can theoretically leak information in some use cases.
10738
10739 use_absolute_path
10740 Allows loading of external tracks via absolute paths, disabled by
10741 default. Enabling this poses a security risk. It should only be
10742 enabled if the source is known to be non-malicious.
10743
10744 seek_streams_individually
10745 When seeking, identify the closest point in each stream
10746 individually and demux packets in that stream from identified
10747 point. This can lead to a different sequence of packets compared to
10748 demuxing linearly from the beginning. Default is true.
10749
10750 ignore_editlist
10751 Ignore any edit list atoms. The demuxer, by default, modifies the
10752 stream index to reflect the timeline described by the edit list.
10753 Default is false.
10754
10755 advanced_editlist
10756 Modify the stream index to reflect the timeline described by the
10757 edit list. "ignore_editlist" must be set to false for this option
10758 to be effective. If both "ignore_editlist" and this option are set
10759 to false, then only the start of the stream index is modified to
10760 reflect initial dwell time or starting timestamp described by the
10761 edit list. Default is true.
10762
10763 ignore_chapters
10764 Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
10765 Note that chapters are only parsed when input is seekable. Default
10766 is false.
10767
10768 use_mfra_for
10769 For seekable fragmented input, set fragment's starting timestamp
10770 from media fragment random access box, if present.
10771
10772 Following options are available:
10773
10774 auto
10775 Auto-detect whether to set mfra timestamps as PTS or DTS
10776 (default)
10777
10778 dts Set mfra timestamps as DTS
10779
10780 pts Set mfra timestamps as PTS
10781
10782 0 Don't use mfra box to set timestamps
10783
10784 use_tfdt
10785 For fragmented input, set fragment's starting timestamp to
10786 "baseMediaDecodeTime" from the "tfdt" box. Default is enabled,
10787 which will prefer to use the "tfdt" box to set DTS. Disable to use
10788 the "earliest_presentation_time" from the "sidx" box. In either
10789 case, the timestamp from the "mfra" box will be used if it's
10790 available and "use_mfra_for" is set to pts or dts.
10791
10792 export_all
10793 Export unrecognized boxes within the udta box as metadata entries.
10794 The first four characters of the box type are set as the key.
10795 Default is false.
10796
10797 export_xmp
10798 Export entire contents of XMP_ box and uuid box as a string with
10799 key "xmp". Note that if "export_all" is set and this option isn't,
10800 the contents of XMP_ box are still exported but with key "XMP_".
10801 Default is false.
10802
10803 activation_bytes
10804 4-byte key required to decrypt Audible AAX and AAX+ files. See
10805 Audible AAX subsection below.
10806
10807 audible_fixed_key
10808 Fixed key used for handling Audible AAX/AAX+ files. It has been
10809 pre-set so should not be necessary to specify.
10810
10811 decryption_key
10812 16-byte key, in hex, to decrypt files encrypted using ISO Common
10813 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
10814
10815 max_stts_delta
10816 Very high sample deltas written in a trak's stts box may
10817 occasionally be intended but usually they are written in error or
10818 used to store a negative value for dts correction when treated as
10819 signed 32-bit integers. This option lets the user set an upper
10820 limit, beyond which the delta is clamped to 1. Values greater than
10821 the limit if negative when cast to int32 are used to adjust onward
10822 dts.
10823
10824 Unit is the track time scale. Range is 0 to UINT_MAX. Default is
10825 "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
10826 for 48 kHz audio streams while accommodating 99.9% of "uint32"
10827 range.
10828
10829 Audible AAX
10830
10831 Audible AAX files are encrypted M4B files, and they can be decrypted by
10832 specifying a 4 byte activation secret.
10833
10834 ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
10835
10836 mpegts
10837 MPEG-2 transport stream demuxer.
10838
10839 This demuxer accepts the following options:
10840
10841 resync_size
10842 Set size limit for looking up a new synchronization. Default value
10843 is 65536.
10844
10845 skip_unknown_pmt
10846 Skip PMTs for programs not defined in the PAT. Default value is 0.
10847
10848 fix_teletext_pts
10849 Override teletext packet PTS and DTS values with the timestamps
10850 calculated from the PCR of the first program which the teletext
10851 stream is part of and is not discarded. Default value is 1, set
10852 this option to 0 if you want your teletext packet PTS and DTS
10853 values untouched.
10854
10855 ts_packetsize
10856 Output option carrying the raw packet size in bytes. Show the
10857 detected raw packet size, cannot be set by the user.
10858
10859 scan_all_pmts
10860 Scan and combine all PMTs. The value is an integer with value from
10861 -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
10862 disabled). Default value is -1.
10863
10864 merge_pmt_versions
10865 Re-use existing streams when a PMT's version is updated and
10866 elementary streams move to different PIDs. Default value is 0.
10867
10868 max_packet_size
10869 Set maximum size, in bytes, of packet emitted by the demuxer.
10870 Payloads above this size are split across multiple packets. Range
10871 is 1 to INT_MAX/2. Default is 204800 bytes.
10872
10873 mpjpeg
10874 MJPEG encapsulated in multi-part MIME demuxer.
10875
10876 This demuxer allows reading of MJPEG, where each frame is represented
10877 as a part of multipart/x-mixed-replace stream.
10878
10879 strict_mime_boundary
10880 Default implementation applies a relaxed standard to multi-part
10881 MIME boundary detection, to prevent regression with numerous
10882 existing endpoints not generating a proper MIME MJPEG stream.
10883 Turning this option on by setting it to 1 will result in a stricter
10884 check of the boundary value.
10885
10886 rawvideo
10887 Raw video demuxer.
10888
10889 This demuxer allows one to read raw video data. Since there is no
10890 header specifying the assumed video parameters, the user must specify
10891 them in order to be able to decode the data correctly.
10892
10893 This demuxer accepts the following options:
10894
10895 framerate
10896 Set input video frame rate. Default value is 25.
10897
10898 pixel_format
10899 Set the input video pixel format. Default value is "yuv420p".
10900
10901 video_size
10902 Set the input video size. This value must be specified explicitly.
10903
10904 For example to read a rawvideo file input.raw with ffplay, assuming a
10905 pixel format of "rgb24", a video size of "320x240", and a frame rate of
10906 10 images per second, use the command:
10907
10908 ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
10909
10910 sbg
10911 SBaGen script demuxer.
10912
10913 This demuxer reads the script language used by SBaGen
10914 <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
10915 script looks like that:
10916
10917 -SE
10918 a: 300-2.5/3 440+4.5/0
10919 b: 300-2.5/0 440+4.5/3
10920 off: -
10921 NOW == a
10922 +0:07:00 == b
10923 +0:14:00 == a
10924 +0:21:00 == b
10925 +0:30:00 off
10926
10927 A SBG script can mix absolute and relative timestamps. If the script
10928 uses either only absolute timestamps (including the script start time)
10929 or only relative ones, then its layout is fixed, and the conversion is
10930 straightforward. On the other hand, if the script mixes both kind of
10931 timestamps, then the NOW reference for relative timestamps will be
10932 taken from the current time of day at the time the script is read, and
10933 the script layout will be frozen according to that reference. That
10934 means that if the script is directly played, the actual times will
10935 match the absolute timestamps up to the sound controller's clock
10936 accuracy, but if the user somehow pauses the playback or seeks, all
10937 times will be shifted accordingly.
10938
10939 tedcaptions
10940 JSON captions used for <http://www.ted.com/>.
10941
10942 TED does not provide links to the captions, but they can be guessed
10943 from the page. The file tools/bookmarklets.html from the FFmpeg source
10944 tree contains a bookmarklet to expose them.
10945
10946 This demuxer accepts the following option:
10947
10948 start_time
10949 Set the start time of the TED talk, in milliseconds. The default is
10950 15000 (15s). It is used to sync the captions with the downloadable
10951 videos, because they include a 15s intro.
10952
10953 Example: convert the captions to a format most players understand:
10954
10955 ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
10956
10957 vapoursynth
10958 Vapoursynth wrapper.
10959
10960 Due to security concerns, Vapoursynth scripts will not be autodetected
10961 so the input format has to be forced. For ff* CLI tools, add "-f
10962 vapoursynth" before the input "-i yourscript.vpy".
10963
10964 This demuxer accepts the following option:
10965
10966 max_script_size
10967 The demuxer buffers the entire script into memory. Adjust this
10968 value to set the maximum buffer size, which in turn, acts as a
10969 ceiling for the size of scripts that can be read. Default is 1
10970 MiB.
10971
10973 Muxers are configured elements in FFmpeg which allow writing multimedia
10974 streams to a particular type of file.
10975
10976 When you configure your FFmpeg build, all the supported muxers are
10977 enabled by default. You can list all available muxers using the
10978 configure option "--list-muxers".
10979
10980 You can disable all the muxers with the configure option
10981 "--disable-muxers" and selectively enable / disable single muxers with
10982 the options "--enable-muxer=MUXER" / "--disable-muxer=MUXER".
10983
10984 The option "-muxers" of the ff* tools will display the list of enabled
10985 muxers. Use "-formats" to view a combined list of enabled demuxers and
10986 muxers.
10987
10988 A description of some of the currently available muxers follows.
10989
10990 a64
10991 A64 muxer for Commodore 64 video. Accepts a single "a64_multi" or
10992 "a64_multi5" codec video stream.
10993
10994 adts
10995 Audio Data Transport Stream muxer. It accepts a single AAC stream.
10996
10997 Options
10998
10999 It accepts the following options:
11000
11001 write_id3v2 bool
11002 Enable to write ID3v2.4 tags at the start of the stream. Default is
11003 disabled.
11004
11005 write_apetag bool
11006 Enable to write APE tags at the end of the stream. Default is
11007 disabled.
11008
11009 write_mpeg2 bool
11010 Enable to set MPEG version bit in the ADTS frame header to 1 which
11011 indicates MPEG-2. Default is 0, which indicates MPEG-4.
11012
11013 aiff
11014 Audio Interchange File Format muxer.
11015
11016 Options
11017
11018 It accepts the following options:
11019
11020 write_id3v2
11021 Enable ID3v2 tags writing when set to 1. Default is 0 (disabled).
11022
11023 id3v2_version
11024 Select ID3v2 version to write. Currently only version 3 and 4 (aka.
11025 ID3v2.3 and ID3v2.4) are supported. The default is version 4.
11026
11027 alp
11028 Muxer for audio of High Voltage Software's Lego Racers game. It accepts
11029 a single ADPCM_IMA_ALP stream with no more than 2 channels nor a sample
11030 rate greater than 44100 Hz.
11031
11032 Extensions: tun, pcm
11033
11034 Options
11035
11036 It accepts the following options:
11037
11038 type type
11039 Set file type.
11040
11041 tun Set file type as music. Must have a sample rate of 22050 Hz.
11042
11043 pcm Set file type as sfx.
11044
11045 auto
11046 Set file type as per output file extension. ".pcm" results in
11047 type "pcm" else type "tun" is set. (default)
11048
11049 asf
11050 Advanced Systems Format muxer.
11051
11052 Note that Windows Media Audio (wma) and Windows Media Video (wmv) use
11053 this muxer too.
11054
11055 Options
11056
11057 It accepts the following options:
11058
11059 packet_size
11060 Set the muxer packet size. By tuning this setting you may reduce
11061 data fragmentation or muxer overhead depending on your source.
11062 Default value is 3200, minimum is 100, maximum is 64k.
11063
11064 avi
11065 Audio Video Interleaved muxer.
11066
11067 Options
11068
11069 It accepts the following options:
11070
11071 reserve_index_space
11072 Reserve the specified amount of bytes for the OpenDML master index
11073 of each stream within the file header. By default additional master
11074 indexes are embedded within the data packets if there is no space
11075 left in the first master index and are linked together as a chain
11076 of indexes. This index structure can cause problems for some use
11077 cases, e.g. third-party software strictly relying on the OpenDML
11078 index specification or when file seeking is slow. Reserving enough
11079 index space in the file header avoids these problems.
11080
11081 The required index space depends on the output file size and should
11082 be about 16 bytes per gigabyte. When this option is omitted or set
11083 to zero the necessary index space is guessed.
11084
11085 write_channel_mask
11086 Write the channel layout mask into the audio stream header.
11087
11088 This option is enabled by default. Disabling the channel mask can
11089 be useful in specific scenarios, e.g. when merging multiple audio
11090 streams into one for compatibility with software that only supports
11091 a single audio stream in AVI (see the "amerge" section in the
11092 ffmpeg-filters manual).
11093
11094 flipped_raw_rgb
11095 If set to true, store positive height for raw RGB bitmaps, which
11096 indicates bitmap is stored bottom-up. Note that this option does
11097 not flip the bitmap which has to be done manually beforehand, e.g.
11098 by using the vflip filter. Default is false and indicates bitmap
11099 is stored top down.
11100
11101 chromaprint
11102 Chromaprint fingerprinter.
11103
11104 This muxer feeds audio data to the Chromaprint library, which generates
11105 a fingerprint for the provided audio data. See
11106 <https://acoustid.org/chromaprint>
11107
11108 It takes a single signed native-endian 16-bit raw audio stream of at
11109 most 2 channels.
11110
11111 Options
11112
11113 silence_threshold
11114 Threshold for detecting silence. Range is from -1 to 32767, where
11115 -1 disables silence detection. Silence detection can only be used
11116 with version 3 of the algorithm. Silence detection must be
11117 disabled for use with the AcoustID service. Default is -1.
11118
11119 algorithm
11120 Version of algorithm to fingerprint with. Range is 0 to 4. Version
11121 3 enables silence detection. Default is 1.
11122
11123 fp_format
11124 Format to output the fingerprint as. Accepts the following options:
11125
11126 raw Binary raw fingerprint
11127
11128 compressed
11129 Binary compressed fingerprint
11130
11131 base64
11132 Base64 compressed fingerprint (default)
11133
11134 crc
11135 CRC (Cyclic Redundancy Check) testing format.
11136
11137 This muxer computes and prints the Adler-32 CRC of all the input audio
11138 and video frames. By default audio frames are converted to signed
11139 16-bit raw audio and video frames to raw video before computing the
11140 CRC.
11141
11142 The output of the muxer consists of a single line of the form:
11143 CRC=0xCRC, where CRC is a hexadecimal number 0-padded to 8 digits
11144 containing the CRC for all the decoded input frames.
11145
11146 See also the framecrc muxer.
11147
11148 Examples
11149
11150 For example to compute the CRC of the input, and store it in the file
11151 out.crc:
11152
11153 ffmpeg -i INPUT -f crc out.crc
11154
11155 You can print the CRC to stdout with the command:
11156
11157 ffmpeg -i INPUT -f crc -
11158
11159 You can select the output format of each frame with ffmpeg by
11160 specifying the audio and video codec and format. For example to compute
11161 the CRC of the input audio converted to PCM unsigned 8-bit and the
11162 input video converted to MPEG-2 video, use the command:
11163
11164 ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
11165
11166 dash
11167 Dynamic Adaptive Streaming over HTTP (DASH) muxer that creates segments
11168 and manifest files according to the MPEG-DASH standard ISO/IEC
11169 23009-1:2014.
11170
11171 For more information see:
11172
11173 • ISO DASH Specification:
11174 <http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
11175
11176 • WebM DASH Specification:
11177 <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
11178
11179 It creates a MPD manifest file and segment files for each stream.
11180
11181 The segment filename might contain pre-defined identifiers used with
11182 SegmentTemplate as defined in section 5.3.9.4.4 of the standard.
11183 Available identifiers are "$RepresentationID$", "$Number$",
11184 "$Bandwidth$" and "$Time$". In addition to the standard identifiers,
11185 an ffmpeg-specific "$ext$" identifier is also supported. When
11186 specified ffmpeg will replace $ext$ in the file name with muxing
11187 format's extensions such as mp4, webm etc.,
11188
11189 ffmpeg -re -i <input> -map 0 -map 0 -c:a libfdk_aac -c:v libx264 \
11190 -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline \
11191 -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
11192 -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 \
11193 -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \
11194 -f dash /path/to/out.mpd
11195
11196 seg_duration duration
11197 Set the segment length in seconds (fractional value can be set).
11198 The value is treated as average segment duration when use_template
11199 is enabled and use_timeline is disabled and as minimum segment
11200 duration for all the other use cases.
11201
11202 frag_duration duration
11203 Set the length in seconds of fragments within segments (fractional
11204 value can be set).
11205
11206 frag_type type
11207 Set the type of interval for fragmentation.
11208
11209 window_size size
11210 Set the maximum number of segments kept in the manifest.
11211
11212 extra_window_size size
11213 Set the maximum number of segments kept outside of the manifest
11214 before removing from disk.
11215
11216 remove_at_exit remove
11217 Enable (1) or disable (0) removal of all segments when finished.
11218
11219 use_template template
11220 Enable (1) or disable (0) use of SegmentTemplate instead of
11221 SegmentList.
11222
11223 use_timeline timeline
11224 Enable (1) or disable (0) use of SegmentTimeline in
11225 SegmentTemplate.
11226
11227 single_file single_file
11228 Enable (1) or disable (0) storing all segments in one file,
11229 accessed using byte ranges.
11230
11231 single_file_name file_name
11232 DASH-templated name to be used for baseURL. Implies single_file set
11233 to "1". In the template, "$ext$" is replaced with the file name
11234 extension specific for the segment format.
11235
11236 init_seg_name init_name
11237 DASH-templated name to used for the initialization segment. Default
11238 is "init-stream$RepresentationID$.$ext$". "$ext$" is replaced with
11239 the file name extension specific for the segment format.
11240
11241 media_seg_name segment_name
11242 DASH-templated name to used for the media segments. Default is
11243 "chunk-stream$RepresentationID$-$Number%05d$.$ext$". "$ext$" is
11244 replaced with the file name extension specific for the segment
11245 format.
11246
11247 utc_timing_url utc_url
11248 URL of the page that will return the UTC timestamp in ISO format.
11249 Example: "https://time.akamai.com/?iso"
11250
11251 method method
11252 Use the given HTTP method to create output files. Generally set to
11253 PUT or POST.
11254
11255 http_user_agent user_agent
11256 Override User-Agent field in HTTP header. Applicable only for HTTP
11257 output.
11258
11259 http_persistent http_persistent
11260 Use persistent HTTP connections. Applicable only for HTTP output.
11261
11262 hls_playlist hls_playlist
11263 Generate HLS playlist files as well. The master playlist is
11264 generated with the filename hls_master_name. One media playlist
11265 file is generated for each stream with filenames media_0.m3u8,
11266 media_1.m3u8, etc.
11267
11268 hls_master_name file_name
11269 HLS master playlist name. Default is "master.m3u8".
11270
11271 streaming streaming
11272 Enable (1) or disable (0) chunk streaming mode of output. In chunk
11273 streaming mode, each frame will be a moof fragment which forms a
11274 chunk.
11275
11276 adaptation_sets adaptation_sets
11277 Assign streams to AdaptationSets. Syntax is "id=x,streams=a,b,c
11278 id=y,streams=d,e" with x and y being the IDs of the adaptation sets
11279 and a,b,c,d and e are the indices of the mapped streams.
11280
11281 To map all video (or audio) streams to an AdaptationSet, "v" (or
11282 "a") can be used as stream identifier instead of IDs.
11283
11284 When no assignment is defined, this defaults to an AdaptationSet
11285 for each stream.
11286
11287 Optional syntax is
11288 "id=x,seg_duration=x,frag_duration=x,frag_type=type,descriptor=descriptor_string,streams=a,b,c
11289 id=y,seg_duration=y,frag_type=type,streams=d,e" and so on,
11290 descriptor is useful to the scheme defined by ISO/IEC
11291 23009-1:2014/Amd.2:2015. For example, -adaptation_sets
11292 "id=0,descriptor=<SupplementalProperty
11293 schemeIdUri=\"urn:mpeg:dash:srd:2014\"
11294 value=\"0,0,0,1,1,2,2\"/>,streams=v". Please note that descriptor
11295 string should be a self-closing xml tag. seg_duration,
11296 frag_duration and frag_type override the global option values for
11297 each adaptation set. For example, -adaptation_sets
11298 "id=0,seg_duration=2,frag_duration=1,frag_type=duration,streams=v
11299 id=1,seg_duration=2,frag_type=none,streams=a" type_id marks an
11300 adaptation set as containing streams meant to be used for Trick
11301 Mode for the referenced adaptation set. For example,
11302 -adaptation_sets "id=0,seg_duration=2,frag_type=none,streams=0
11303 id=1,seg_duration=10,frag_type=none,trick_id=0,streams=1"
11304
11305 timeout timeout
11306 Set timeout for socket I/O operations. Applicable only for HTTP
11307 output.
11308
11309 index_correction index_correction
11310 Enable (1) or Disable (0) segment index correction logic.
11311 Applicable only when use_template is enabled and use_timeline is
11312 disabled.
11313
11314 When enabled, the logic monitors the flow of segment indexes. If a
11315 streams's segment index value is not at the expected real time
11316 position, then the logic corrects that index value.
11317
11318 Typically this logic is needed in live streaming use cases. The
11319 network bandwidth fluctuations are common during long run
11320 streaming. Each fluctuation can cause the segment indexes fall
11321 behind the expected real time position.
11322
11323 format_options options_list
11324 Set container format (mp4/webm) options using a ":" separated list
11325 of key=value parameters. Values containing ":" special characters
11326 must be escaped.
11327
11328 global_sidx global_sidx
11329 Write global SIDX atom. Applicable only for single file, mp4
11330 output, non-streaming mode.
11331
11332 dash_segment_type dash_segment_type
11333 Possible values:
11334
11335 auto
11336 If this flag is set, the dash segment files format will be
11337 selected based on the stream codec. This is the default mode.
11338
11339 mp4 If this flag is set, the dash segment files will be in in
11340 ISOBMFF format.
11341
11342 webm
11343 If this flag is set, the dash segment files will be in in WebM
11344 format.
11345
11346 ignore_io_errors ignore_io_errors
11347 Ignore IO errors during open and write. Useful for long-duration
11348 runs with network output.
11349
11350 lhls lhls
11351 Enable Low-latency HLS(LHLS). Adds #EXT-X-PREFETCH tag with current
11352 segment's URI. hls.js player folks are trying to standardize an
11353 open LHLS spec. The draft spec is available in
11354 https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md
11355 This option tries to comply with the above open spec. It enables
11356 streaming and hls_playlist options automatically. This is an
11357 experimental feature.
11358
11359 Note: This is not Apple's version LHLS. See
11360 <https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis>
11361
11362 ldash ldash
11363 Enable Low-latency Dash by constraining the presence and values of
11364 some elements.
11365
11366 master_m3u8_publish_rate master_m3u8_publish_rate
11367 Publish master playlist repeatedly every after specified number of
11368 segment intervals.
11369
11370 write_prft write_prft
11371 Write Producer Reference Time elements on supported streams. This
11372 also enables writing prft boxes in the underlying muxer. Applicable
11373 only when the utc_url option is enabled. It's set to auto by
11374 default, in which case the muxer will attempt to enable it only in
11375 modes that require it.
11376
11377 mpd_profile mpd_profile
11378 Set one or more manifest profiles.
11379
11380 http_opts http_opts
11381 A :-separated list of key=value options to pass to the underlying
11382 HTTP protocol. Applicable only for HTTP output.
11383
11384 target_latency target_latency
11385 Set an intended target latency in seconds (fractional value can be
11386 set) for serving. Applicable only when streaming and write_prft
11387 options are enabled. This is an informative fields clients can use
11388 to measure the latency of the service.
11389
11390 min_playback_rate min_playback_rate
11391 Set the minimum playback rate indicated as appropriate for the
11392 purposes of automatically adjusting playback latency and buffer
11393 occupancy during normal playback by clients.
11394
11395 max_playback_rate max_playback_rate
11396 Set the maximum playback rate indicated as appropriate for the
11397 purposes of automatically adjusting playback latency and buffer
11398 occupancy during normal playback by clients.
11399
11400 update_period update_period
11401 Set the mpd update period ,for dynamic content.
11402 The unit is second.
11403
11404 fifo
11405 The fifo pseudo-muxer allows the separation of encoding and muxing by
11406 using first-in-first-out queue and running the actual muxer in a
11407 separate thread. This is especially useful in combination with the tee
11408 muxer and can be used to send data to several destinations with
11409 different reliability/writing speed/latency.
11410
11411 API users should be aware that callback functions (interrupt_callback,
11412 io_open and io_close) used within its AVFormatContext must be thread-
11413 safe.
11414
11415 The behavior of the fifo muxer if the queue fills up or if the output
11416 fails is selectable,
11417
11418 • output can be transparently restarted with configurable delay
11419 between retries based on real time or time of the processed stream.
11420
11421 • encoding can be blocked during temporary failure, or continue
11422 transparently dropping packets in case fifo queue fills up.
11423
11424 fifo_format
11425 Specify the format name. Useful if it cannot be guessed from the
11426 output name suffix.
11427
11428 queue_size
11429 Specify size of the queue (number of packets). Default value is 60.
11430
11431 format_opts
11432 Specify format options for the underlying muxer. Muxer options can
11433 be specified as a list of key=value pairs separated by ':'.
11434
11435 drop_pkts_on_overflow bool
11436 If set to 1 (true), in case the fifo queue fills up, packets will
11437 be dropped rather than blocking the encoder. This makes it possible
11438 to continue streaming without delaying the input, at the cost of
11439 omitting part of the stream. By default this option is set to 0
11440 (false), so in such cases the encoder will be blocked until the
11441 muxer processes some of the packets and none of them is lost.
11442
11443 attempt_recovery bool
11444 If failure occurs, attempt to recover the output. This is
11445 especially useful when used with network output, since it makes it
11446 possible to restart streaming transparently. By default this
11447 option is set to 0 (false).
11448
11449 max_recovery_attempts
11450 Sets maximum number of successive unsuccessful recovery attempts
11451 after which the output fails permanently. By default this option is
11452 set to 0 (unlimited).
11453
11454 recovery_wait_time duration
11455 Waiting time before the next recovery attempt after previous
11456 unsuccessful recovery attempt. Default value is 5 seconds.
11457
11458 recovery_wait_streamtime bool
11459 If set to 0 (false), the real time is used when waiting for the
11460 recovery attempt (i.e. the recovery will be attempted after at
11461 least recovery_wait_time seconds). If set to 1 (true), the time of
11462 the processed stream is taken into account instead (i.e. the
11463 recovery will be attempted after at least recovery_wait_time
11464 seconds of the stream is omitted). By default, this option is set
11465 to 0 (false).
11466
11467 recover_any_error bool
11468 If set to 1 (true), recovery will be attempted regardless of type
11469 of the error causing the failure. By default this option is set to
11470 0 (false) and in case of certain (usually permanent) errors the
11471 recovery is not attempted even when attempt_recovery is set to 1.
11472
11473 restart_with_keyframe bool
11474 Specify whether to wait for the keyframe after recovering from
11475 queue overflow or failure. This option is set to 0 (false) by
11476 default.
11477
11478 timeshift duration
11479 Buffer the specified amount of packets and delay writing the
11480 output. Note that queue_size must be big enough to store the
11481 packets for timeshift. At the end of the input the fifo buffer is
11482 flushed at realtime speed.
11483
11484 Examples
11485
11486 • Stream something to rtmp server, continue processing the stream at
11487 real-time rate even in case of temporary failure (network outage)
11488 and attempt to recover streaming every second indefinitely.
11489
11490 ffmpeg -re -i ... -c:v libx264 -c:a aac -f fifo -fifo_format flv -map 0:v -map 0:a
11491 -drop_pkts_on_overflow 1 -attempt_recovery 1 -recovery_wait_time 1 rtmp://example.com/live/stream_name
11492
11493 flv
11494 Adobe Flash Video Format muxer.
11495
11496 This muxer accepts the following options:
11497
11498 flvflags flags
11499 Possible values:
11500
11501 aac_seq_header_detect
11502 Place AAC sequence header based on audio stream data.
11503
11504 no_sequence_end
11505 Disable sequence end tag.
11506
11507 no_metadata
11508 Disable metadata tag.
11509
11510 no_duration_filesize
11511 Disable duration and filesize in metadata when they are equal
11512 to zero at the end of stream. (Be used to non-seekable living
11513 stream).
11514
11515 add_keyframe_index
11516 Used to facilitate seeking; particularly for HTTP pseudo
11517 streaming.
11518
11519 framecrc
11520 Per-packet CRC (Cyclic Redundancy Check) testing format.
11521
11522 This muxer computes and prints the Adler-32 CRC for each audio and
11523 video packet. By default audio frames are converted to signed 16-bit
11524 raw audio and video frames to raw video before computing the CRC.
11525
11526 The output of the muxer consists of a line for each audio and video
11527 packet of the form:
11528
11529 <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, 0x<CRC>
11530
11531 CRC is a hexadecimal number 0-padded to 8 digits containing the CRC of
11532 the packet.
11533
11534 Examples
11535
11536 For example to compute the CRC of the audio and video frames in INPUT,
11537 converted to raw audio and video packets, and store it in the file
11538 out.crc:
11539
11540 ffmpeg -i INPUT -f framecrc out.crc
11541
11542 To print the information to stdout, use the command:
11543
11544 ffmpeg -i INPUT -f framecrc -
11545
11546 With ffmpeg, you can select the output format to which the audio and
11547 video frames are encoded before computing the CRC for each packet by
11548 specifying the audio and video codec. For example, to compute the CRC
11549 of each decoded input audio frame converted to PCM unsigned 8-bit and
11550 of each decoded input video frame converted to MPEG-2 video, use the
11551 command:
11552
11553 ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
11554
11555 See also the crc muxer.
11556
11557 framehash
11558 Per-packet hash testing format.
11559
11560 This muxer computes and prints a cryptographic hash for each audio and
11561 video packet. This can be used for packet-by-packet equality checks
11562 without having to individually do a binary comparison on each.
11563
11564 By default audio frames are converted to signed 16-bit raw audio and
11565 video frames to raw video before computing the hash, but the output of
11566 explicit conversions to other codecs can also be used. It uses the
11567 SHA-256 cryptographic hash function by default, but supports several
11568 other algorithms.
11569
11570 The output of the muxer consists of a line for each audio and video
11571 packet of the form:
11572
11573 <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, <hash>
11574
11575 hash is a hexadecimal number representing the computed hash for the
11576 packet.
11577
11578 hash algorithm
11579 Use the cryptographic hash function specified by the string
11580 algorithm. Supported values include "MD5", "murmur3", "RIPEMD128",
11581 "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
11582 (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
11583 and "adler32".
11584
11585 Examples
11586
11587 To compute the SHA-256 hash of the audio and video frames in INPUT,
11588 converted to raw audio and video packets, and store it in the file
11589 out.sha256:
11590
11591 ffmpeg -i INPUT -f framehash out.sha256
11592
11593 To print the information to stdout, using the MD5 hash function, use
11594 the command:
11595
11596 ffmpeg -i INPUT -f framehash -hash md5 -
11597
11598 See also the hash muxer.
11599
11600 framemd5
11601 Per-packet MD5 testing format.
11602
11603 This is a variant of the framehash muxer. Unlike that muxer, it
11604 defaults to using the MD5 hash function.
11605
11606 Examples
11607
11608 To compute the MD5 hash of the audio and video frames in INPUT,
11609 converted to raw audio and video packets, and store it in the file
11610 out.md5:
11611
11612 ffmpeg -i INPUT -f framemd5 out.md5
11613
11614 To print the information to stdout, use the command:
11615
11616 ffmpeg -i INPUT -f framemd5 -
11617
11618 See also the framehash and md5 muxers.
11619
11620 gif
11621 Animated GIF muxer.
11622
11623 It accepts the following options:
11624
11625 loop
11626 Set the number of times to loop the output. Use "-1" for no loop, 0
11627 for looping indefinitely (default).
11628
11629 final_delay
11630 Force the delay (expressed in centiseconds) after the last frame.
11631 Each frame ends with a delay until the next frame. The default is
11632 "-1", which is a special value to tell the muxer to re-use the
11633 previous delay. In case of a loop, you might want to customize this
11634 value to mark a pause for instance.
11635
11636 For example, to encode a gif looping 10 times, with a 5 seconds delay
11637 between the loops:
11638
11639 ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
11640
11641 Note 1: if you wish to extract the frames into separate GIF files, you
11642 need to force the image2 muxer:
11643
11644 ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
11645
11646 Note 2: the GIF format has a very large time base: the delay between
11647 two frames can therefore not be smaller than one centi second.
11648
11649 hash
11650 Hash testing format.
11651
11652 This muxer computes and prints a cryptographic hash of all the input
11653 audio and video frames. This can be used for equality checks without
11654 having to do a complete binary comparison.
11655
11656 By default audio frames are converted to signed 16-bit raw audio and
11657 video frames to raw video before computing the hash, but the output of
11658 explicit conversions to other codecs can also be used. Timestamps are
11659 ignored. It uses the SHA-256 cryptographic hash function by default,
11660 but supports several other algorithms.
11661
11662 The output of the muxer consists of a single line of the form:
11663 algo=hash, where algo is a short string representing the hash function
11664 used, and hash is a hexadecimal number representing the computed hash.
11665
11666 hash algorithm
11667 Use the cryptographic hash function specified by the string
11668 algorithm. Supported values include "MD5", "murmur3", "RIPEMD128",
11669 "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
11670 (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
11671 and "adler32".
11672
11673 Examples
11674
11675 To compute the SHA-256 hash of the input converted to raw audio and
11676 video, and store it in the file out.sha256:
11677
11678 ffmpeg -i INPUT -f hash out.sha256
11679
11680 To print an MD5 hash to stdout use the command:
11681
11682 ffmpeg -i INPUT -f hash -hash md5 -
11683
11684 See also the framehash muxer.
11685
11686 hls
11687 Apple HTTP Live Streaming muxer that segments MPEG-TS according to the
11688 HTTP Live Streaming (HLS) specification.
11689
11690 It creates a playlist file, and one or more segment files. The output
11691 filename specifies the playlist filename.
11692
11693 By default, the muxer creates a file for each segment produced. These
11694 files have the same name as the playlist, followed by a sequential
11695 number and a .ts extension.
11696
11697 Make sure to require a closed GOP when encoding and to set the GOP size
11698 to fit your segment time constraint.
11699
11700 For example, to convert an input file with ffmpeg:
11701
11702 ffmpeg -i in.mkv -c:v h264 -flags +cgop -g 30 -hls_time 1 out.m3u8
11703
11704 This example will produce the playlist, out.m3u8, and segment files:
11705 out0.ts, out1.ts, out2.ts, etc.
11706
11707 See also the segment muxer, which provides a more generic and flexible
11708 implementation of a segmenter, and can be used to perform HLS
11709 segmentation.
11710
11711 Options
11712
11713 This muxer supports the following options:
11714
11715 hls_init_time duration
11716 Set the initial target segment length. Default value is 0.
11717
11718 duration must be a time duration specification, see the Time
11719 duration section in the ffmpeg-utils(1) manual.
11720
11721 Segment will be cut on the next key frame after this time has
11722 passed on the first m3u8 list. After the initial playlist is
11723 filled ffmpeg will cut segments at duration equal to "hls_time"
11724
11725 hls_time duration
11726 Set the target segment length. Default value is 2.
11727
11728 duration must be a time duration specification, see the Time
11729 duration section in the ffmpeg-utils(1) manual. Segment will be
11730 cut on the next key frame after this time has passed.
11731
11732 hls_list_size size
11733 Set the maximum number of playlist entries. If set to 0 the list
11734 file will contain all the segments. Default value is 5.
11735
11736 hls_delete_threshold size
11737 Set the number of unreferenced segments to keep on disk before
11738 "hls_flags delete_segments" deletes them. Increase this to allow
11739 continue clients to download segments which were recently
11740 referenced in the playlist. Default value is 1, meaning segments
11741 older than "hls_list_size+1" will be deleted.
11742
11743 hls_ts_options options_list
11744 Set output format options using a :-separated list of key=value
11745 parameters. Values containing ":" special characters must be
11746 escaped. "hls_ts_options" is deprecated, use hls_segment_options
11747 instead of it..
11748
11749 hls_start_number_source
11750 Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE")
11751 according to the specified source. Unless "hls_flags single_file"
11752 is set, it also specifies source of starting sequence numbers of
11753 segment and subtitle filenames. In any case, if "hls_flags
11754 append_list" is set and read playlist sequence number is greater
11755 than the specified start sequence number, then that value will be
11756 used as start value.
11757
11758 It accepts the following values:
11759
11760 generic (default)
11761 Set the starting sequence numbers according to start_number
11762 option value.
11763
11764 epoch
11765 The start number will be the seconds since epoch (1970-01-01
11766 00:00:00)
11767
11768 epoch_us
11769 The start number will be the microseconds since epoch
11770 (1970-01-01 00:00:00)
11771
11772 datetime
11773 The start number will be based on the current date/time as
11774 YYYYmmddHHMMSS. e.g. 20161231235759.
11775
11776 start_number number
11777 Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE") from
11778 the specified number when hls_start_number_source value is generic.
11779 (This is the default case.) Unless "hls_flags single_file" is set,
11780 it also specifies starting sequence numbers of segment and subtitle
11781 filenames. Default value is 0.
11782
11783 hls_allow_cache allowcache
11784 Explicitly set whether the client MAY (1) or MUST NOT (0) cache
11785 media segments.
11786
11787 hls_base_url baseurl
11788 Append baseurl to every entry in the playlist. Useful to generate
11789 playlists with absolute paths.
11790
11791 Note that the playlist sequence number must be unique for each
11792 segment and it is not to be confused with the segment filename
11793 sequence number which can be cyclic, for example if the wrap option
11794 is specified.
11795
11796 hls_segment_filename filename
11797 Set the segment filename. Unless "hls_flags single_file" is set,
11798 filename is used as a string format with the segment number:
11799
11800 ffmpeg -i in.nut -hls_segment_filename 'file%03d.ts' out.m3u8
11801
11802 This example will produce the playlist, out.m3u8, and segment
11803 files: file000.ts, file001.ts, file002.ts, etc.
11804
11805 filename may contain full path or relative path specification, but
11806 only the file name part without any path info will be contained in
11807 the m3u8 segment list. Should a relative path be specified, the
11808 path of the created segment files will be relative to the current
11809 working directory. When strftime_mkdir is set, the whole expanded
11810 value of filename will be written into the m3u8 segment list.
11811
11812 When "var_stream_map" is set with two or more variant streams, the
11813 filename pattern must contain the string "%v", this string
11814 specifies the position of variant stream index in the generated
11815 segment file names.
11816
11817 ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11818 -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" \
11819 -hls_segment_filename 'file_%v_%03d.ts' out_%v.m3u8
11820
11821 This example will produce the playlists segment file sets:
11822 file_0_000.ts, file_0_001.ts, file_0_002.ts, etc. and
11823 file_1_000.ts, file_1_001.ts, file_1_002.ts, etc.
11824
11825 The string "%v" may be present in the filename or in the last
11826 directory name containing the file, but only in one of them.
11827 (Additionally, %v may appear multiple times in the last sub-
11828 directory or filename.) If the string %v is present in the
11829 directory name, then sub-directories are created after expanding
11830 the directory name pattern. This enables creation of segments
11831 corresponding to different variant streams in subdirectories.
11832
11833 ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11834 -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" \
11835 -hls_segment_filename 'vs%v/file_%03d.ts' vs%v/out.m3u8
11836
11837 This example will produce the playlists segment file sets:
11838 vs0/file_000.ts, vs0/file_001.ts, vs0/file_002.ts, etc. and
11839 vs1/file_000.ts, vs1/file_001.ts, vs1/file_002.ts, etc.
11840
11841 strftime
11842 Use strftime() on filename to expand the segment filename with
11843 localtime. The segment number is also available in this mode, but
11844 to use it, you need to specify second_level_segment_index hls_flag
11845 and %%d will be the specifier.
11846
11847 ffmpeg -i in.nut -strftime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8
11848
11849 This example will produce the playlist, out.m3u8, and segment
11850 files: file-20160215-1455569023.ts, file-20160215-1455569024.ts,
11851 etc. Note: On some systems/environments, the %s specifier is not
11852 available. See
11853 "strftime()" documentation.
11854
11855 ffmpeg -i in.nut -strftime 1 -hls_flags second_level_segment_index -hls_segment_filename 'file-%Y%m%d-%%04d.ts' out.m3u8
11856
11857 This example will produce the playlist, out.m3u8, and segment
11858 files: file-20160215-0001.ts, file-20160215-0002.ts, etc.
11859
11860 strftime_mkdir
11861 Used together with -strftime_mkdir, it will create all
11862 subdirectories which is expanded in filename.
11863
11864 ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8
11865
11866 This example will create a directory 201560215 (if it does not
11867 exist), and then produce the playlist, out.m3u8, and segment files:
11868 20160215/file-20160215-1455569023.ts,
11869 20160215/file-20160215-1455569024.ts, etc.
11870
11871 ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y/%m/%d/file-%Y%m%d-%s.ts' out.m3u8
11872
11873 This example will create a directory hierarchy 2016/02/15 (if any
11874 of them do not exist), and then produce the playlist, out.m3u8, and
11875 segment files: 2016/02/15/file-20160215-1455569023.ts,
11876 2016/02/15/file-20160215-1455569024.ts, etc.
11877
11878 hls_segment_options options_list
11879 Set output format options using a :-separated list of key=value
11880 parameters. Values containing ":" special characters must be
11881 escaped.
11882
11883 hls_key_info_file key_info_file
11884 Use the information in key_info_file for segment encryption. The
11885 first line of key_info_file specifies the key URI written to the
11886 playlist. The key URL is used to access the encryption key during
11887 playback. The second line specifies the path to the key file used
11888 to obtain the key during the encryption process. The key file is
11889 read as a single packed array of 16 octets in binary format. The
11890 optional third line specifies the initialization vector (IV) as a
11891 hexadecimal string to be used instead of the segment sequence
11892 number (default) for encryption. Changes to key_info_file will
11893 result in segment encryption with the new key/IV and an entry in
11894 the playlist for the new key URI/IV if "hls_flags periodic_rekey"
11895 is enabled.
11896
11897 Key info file format:
11898
11899 <key URI>
11900 <key file path>
11901 <IV> (optional)
11902
11903 Example key URIs:
11904
11905 http://server/file.key
11906 /path/to/file.key
11907 file.key
11908
11909 Example key file paths:
11910
11911 file.key
11912 /path/to/file.key
11913
11914 Example IV:
11915
11916 0123456789ABCDEF0123456789ABCDEF
11917
11918 Key info file example:
11919
11920 http://server/file.key
11921 /path/to/file.key
11922 0123456789ABCDEF0123456789ABCDEF
11923
11924 Example shell script:
11925
11926 #!/bin/sh
11927 BASE_URL=${1:-'.'}
11928 openssl rand 16 > file.key
11929 echo $BASE_URL/file.key > file.keyinfo
11930 echo file.key >> file.keyinfo
11931 echo $(openssl rand -hex 16) >> file.keyinfo
11932 ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
11933 -hls_key_info_file file.keyinfo out.m3u8
11934
11935 -hls_enc enc
11936 Enable (1) or disable (0) the AES128 encryption. When enabled
11937 every segment generated is encrypted and the encryption key is
11938 saved as playlist name.key.
11939
11940 -hls_enc_key key
11941 16-octet key to encrypt the segments, by default it is randomly
11942 generated.
11943
11944 -hls_enc_key_url keyurl
11945 If set, keyurl is prepended instead of baseurl to the key filename
11946 in the playlist.
11947
11948 -hls_enc_iv iv
11949 16-octet initialization vector for every segment instead of the
11950 autogenerated ones.
11951
11952 hls_segment_type flags
11953 Possible values:
11954
11955 mpegts
11956 Output segment files in MPEG-2 Transport Stream format. This is
11957 compatible with all HLS versions.
11958
11959 fmp4
11960 Output segment files in fragmented MP4 format, similar to MPEG-
11961 DASH. fmp4 files may be used in HLS version 7 and above.
11962
11963 hls_fmp4_init_filename filename
11964 Set filename to the fragment files header file, default filename is
11965 init.mp4.
11966
11967 Use "-strftime 1" on filename to expand the segment filename with
11968 localtime.
11969
11970 ffmpeg -i in.nut -hls_segment_type fmp4 -strftime 1 -hls_fmp4_init_filename "%s_init.mp4" out.m3u8
11971
11972 This will produce init like this 1602678741_init.mp4
11973
11974 hls_fmp4_init_resend
11975 Resend init file after m3u8 file refresh every time, default is 0.
11976
11977 When "var_stream_map" is set with two or more variant streams, the
11978 filename pattern must contain the string "%v", this string
11979 specifies the position of variant stream index in the generated
11980 init file names. The string "%v" may be present in the filename or
11981 in the last directory name containing the file. If the string is
11982 present in the directory name, then sub-directories are created
11983 after expanding the directory name pattern. This enables creation
11984 of init files corresponding to different variant streams in
11985 subdirectories.
11986
11987 hls_flags flags
11988 Possible values:
11989
11990 single_file
11991 If this flag is set, the muxer will store all segments in a
11992 single MPEG-TS file, and will use byte ranges in the playlist.
11993 HLS playlists generated with this way will have the version
11994 number 4. For example:
11995
11996 ffmpeg -i in.nut -hls_flags single_file out.m3u8
11997
11998 Will produce the playlist, out.m3u8, and a single segment file,
11999 out.ts.
12000
12001 delete_segments
12002 Segment files removed from the playlist are deleted after a
12003 period of time equal to the duration of the segment plus the
12004 duration of the playlist.
12005
12006 append_list
12007 Append new segments into the end of old segment list, and
12008 remove the "#EXT-X-ENDLIST" from the old segment list.
12009
12010 round_durations
12011 Round the duration info in the playlist file segment info to
12012 integer values, instead of using floating point. If there are
12013 no other features requiring higher HLS versions be used, then
12014 this will allow ffmpeg to output a HLS version 2 m3u8.
12015
12016 discont_start
12017 Add the "#EXT-X-DISCONTINUITY" tag to the playlist, before the
12018 first segment's information.
12019
12020 omit_endlist
12021 Do not append the "EXT-X-ENDLIST" tag at the end of the
12022 playlist.
12023
12024 periodic_rekey
12025 The file specified by "hls_key_info_file" will be checked
12026 periodically and detect updates to the encryption info. Be sure
12027 to replace this file atomically, including the file containing
12028 the AES encryption key.
12029
12030 independent_segments
12031 Add the "#EXT-X-INDEPENDENT-SEGMENTS" to playlists that has
12032 video segments and when all the segments of that playlist are
12033 guaranteed to start with a Key frame.
12034
12035 iframes_only
12036 Add the "#EXT-X-I-FRAMES-ONLY" to playlists that has video
12037 segments and can play only I-frames in the "#EXT-X-BYTERANGE"
12038 mode.
12039
12040 split_by_time
12041 Allow segments to start on frames other than keyframes. This
12042 improves behavior on some players when the time between
12043 keyframes is inconsistent, but may make things worse on others,
12044 and can cause some oddities during seeking. This flag should be
12045 used with the "hls_time" option.
12046
12047 program_date_time
12048 Generate "EXT-X-PROGRAM-DATE-TIME" tags.
12049
12050 second_level_segment_index
12051 Makes it possible to use segment indexes as %%d in
12052 hls_segment_filename expression besides date/time values when
12053 strftime is on. To get fixed width numbers with trailing
12054 zeroes, %%0xd format is available where x is the required
12055 width.
12056
12057 second_level_segment_size
12058 Makes it possible to use segment sizes (counted in bytes) as
12059 %%s in hls_segment_filename expression besides date/time values
12060 when strftime is on. To get fixed width numbers with trailing
12061 zeroes, %%0xs format is available where x is the required
12062 width.
12063
12064 second_level_segment_duration
12065 Makes it possible to use segment duration (calculated in
12066 microseconds) as %%t in hls_segment_filename expression besides
12067 date/time values when strftime is on. To get fixed width
12068 numbers with trailing zeroes, %%0xt format is available where x
12069 is the required width.
12070
12071 ffmpeg -i sample.mpeg \
12072 -f hls -hls_time 3 -hls_list_size 5 \
12073 -hls_flags second_level_segment_index+second_level_segment_size+second_level_segment_duration \
12074 -strftime 1 -strftime_mkdir 1 -hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8
12075
12076 This will produce segments like this:
12077 segment_20170102194334_0003_00122200_0000003000000.ts,
12078 segment_20170102194334_0004_00120072_0000003000000.ts etc.
12079
12080 temp_file
12081 Write segment data to filename.tmp and rename to filename only
12082 once the segment is complete. A webserver serving up segments
12083 can be configured to reject requests to *.tmp to prevent access
12084 to in-progress segments before they have been added to the m3u8
12085 playlist. This flag also affects how m3u8 playlist files are
12086 created. If this flag is set, all playlist files will written
12087 into temporary file and renamed after they are complete,
12088 similarly as segments are handled. But playlists with "file"
12089 protocol and with type ("hls_playlist_type") other than "vod"
12090 are always written into temporary file regardless of this flag.
12091 Master playlist files ("master_pl_name"), if any, with "file"
12092 protocol, are always written into temporary file regardless of
12093 this flag if "master_pl_publish_rate" value is other than zero.
12094
12095 hls_playlist_type event
12096 Emit "#EXT-X-PLAYLIST-TYPE:EVENT" in the m3u8 header. Forces
12097 hls_list_size to 0; the playlist can only be appended to.
12098
12099 hls_playlist_type vod
12100 Emit "#EXT-X-PLAYLIST-TYPE:VOD" in the m3u8 header. Forces
12101 hls_list_size to 0; the playlist must not change.
12102
12103 method
12104 Use the given HTTP method to create the hls files.
12105
12106 ffmpeg -re -i in.ts -f hls -method PUT http://example.com/live/out.m3u8
12107
12108 This example will upload all the mpegts segment files to the HTTP
12109 server using the HTTP PUT method, and update the m3u8 files every
12110 "refresh" times using the same method. Note that the HTTP server
12111 must support the given method for uploading files.
12112
12113 http_user_agent
12114 Override User-Agent field in HTTP header. Applicable only for HTTP
12115 output.
12116
12117 var_stream_map
12118 Map string which specifies how to group the audio, video and
12119 subtitle streams into different variant streams. The variant stream
12120 groups are separated by space. Expected string format is like this
12121 "a:0,v:0 a:1,v:1 ....". Here a:, v:, s: are the keys to specify
12122 audio, video and subtitle streams respectively. Allowed values are
12123 0 to 9 (limited just based on practical usage).
12124
12125 When there are two or more variant streams, the output filename
12126 pattern must contain the string "%v", this string specifies the
12127 position of variant stream index in the output media playlist
12128 filenames. The string "%v" may be present in the filename or in the
12129 last directory name containing the file. If the string is present
12130 in the directory name, then sub-directories are created after
12131 expanding the directory name pattern. This enables creation of
12132 variant streams in subdirectories.
12133
12134 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
12135 -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" \
12136 http://example.com/live/out_%v.m3u8
12137
12138 This example creates two hls variant streams. The first variant
12139 stream will contain video stream of bitrate 1000k and audio stream
12140 of bitrate 64k and the second variant stream will contain video
12141 stream of bitrate 256k and audio stream of bitrate 32k. Here, two
12142 media playlist with file names out_0.m3u8 and out_1.m3u8 will be
12143 created. If you want something meaningful text instead of indexes
12144 in result names, you may specify names for each or some of the
12145 variants as in the following example.
12146
12147 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
12148 -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" \
12149 http://example.com/live/out_%v.m3u8
12150
12151 This example creates two hls variant streams as in the previous
12152 one. But here, the two media playlist with file names
12153 out_my_hd.m3u8 and out_my_sd.m3u8 will be created.
12154
12155 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k \
12156 -map 0:v -map 0:a -map 0:v -f hls -var_stream_map "v:0 a:0 v:1" \
12157 http://example.com/live/out_%v.m3u8
12158
12159 This example creates three hls variant streams. The first variant
12160 stream will be a video only stream with video bitrate 1000k, the
12161 second variant stream will be an audio only stream with bitrate 64k
12162 and the third variant stream will be a video only stream with
12163 bitrate 256k. Here, three media playlist with file names
12164 out_0.m3u8, out_1.m3u8 and out_2.m3u8 will be created.
12165
12166 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
12167 -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" \
12168 http://example.com/live/vs_%v/out.m3u8
12169
12170 This example creates the variant streams in subdirectories. Here,
12171 the first media playlist is created at
12172 http://example.com/live/vs_0/out.m3u8 and the second one at
12173 http://example.com/live/vs_1/out.m3u8.
12174
12175 ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k -b:v:1 3000k \
12176 -map 0:a -map 0:a -map 0:v -map 0:v -f hls \
12177 -var_stream_map "a:0,agroup:aud_low a:1,agroup:aud_high v:0,agroup:aud_low v:1,agroup:aud_high" \
12178 -master_pl_name master.m3u8 \
12179 http://example.com/live/out_%v.m3u8
12180
12181 This example creates two audio only and two video only variant
12182 streams. In addition to the #EXT-X-STREAM-INF tag for each variant
12183 stream in the master playlist, #EXT-X-MEDIA tag is also added for
12184 the two audio only variant streams and they are mapped to the two
12185 video only variant streams with audio group names 'aud_low' and
12186 'aud_high'.
12187
12188 By default, a single hls variant containing all the encoded streams
12189 is created.
12190
12191 ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \
12192 -map 0:a -map 0:a -map 0:v -f hls \
12193 -var_stream_map "a:0,agroup:aud_low,default:yes a:1,agroup:aud_low v:0,agroup:aud_low" \
12194 -master_pl_name master.m3u8 \
12195 http://example.com/live/out_%v.m3u8
12196
12197 This example creates two audio only and one video only variant
12198 streams. In addition to the #EXT-X-STREAM-INF tag for each variant
12199 stream in the master playlist, #EXT-X-MEDIA tag is also added for
12200 the two audio only variant streams and they are mapped to the one
12201 video only variant streams with audio group name 'aud_low', and the
12202 audio group have default stat is NO or YES.
12203
12204 By default, a single hls variant containing all the encoded streams
12205 is created.
12206
12207 ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \
12208 -map 0:a -map 0:a -map 0:v -f hls \
12209 -var_stream_map "a:0,agroup:aud_low,default:yes,language:ENG a:1,agroup:aud_low,language:CHN v:0,agroup:aud_low" \
12210 -master_pl_name master.m3u8 \
12211 http://example.com/live/out_%v.m3u8
12212
12213 This example creates two audio only and one video only variant
12214 streams. In addition to the #EXT-X-STREAM-INF tag for each variant
12215 stream in the master playlist, #EXT-X-MEDIA tag is also added for
12216 the two audio only variant streams and they are mapped to the one
12217 video only variant streams with audio group name 'aud_low', and the
12218 audio group have default stat is NO or YES, and one audio have and
12219 language is named ENG, the other audio language is named CHN.
12220
12221 By default, a single hls variant containing all the encoded streams
12222 is created.
12223
12224 ffmpeg -y -i input_with_subtitle.mkv \
12225 -b:v:0 5250k -c:v h264 -pix_fmt yuv420p -profile:v main -level 4.1 \
12226 -b:a:0 256k \
12227 -c:s webvtt -c:a mp2 -ar 48000 -ac 2 -map 0:v -map 0:a:0 -map 0:s:0 \
12228 -f hls -var_stream_map "v:0,a:0,s:0,sgroup:subtitle" \
12229 -master_pl_name master.m3u8 -t 300 -hls_time 10 -hls_init_time 4 -hls_list_size \
12230 10 -master_pl_publish_rate 10 -hls_flags \
12231 delete_segments+discont_start+split_by_time ./tmp/video.m3u8
12232
12233 This example adds "#EXT-X-MEDIA" tag with "TYPE=SUBTITLES" in the
12234 master playlist with webvtt subtitle group name 'subtitle'. Please
12235 make sure the input file has one text subtitle stream at least.
12236
12237 cc_stream_map
12238 Map string which specifies different closed captions groups and
12239 their attributes. The closed captions stream groups are separated
12240 by space. Expected string format is like this "ccgroup:<group
12241 name>,instreamid:<INSTREAM-ID>,language:<language code> ....".
12242 'ccgroup' and 'instreamid' are mandatory attributes. 'language' is
12243 an optional attribute. The closed captions groups configured using
12244 this option are mapped to different variant streams by providing
12245 the same 'ccgroup' name in the "var_stream_map" string. If
12246 "var_stream_map" is not set, then the first available ccgroup in
12247 "cc_stream_map" is mapped to the output variant stream. The
12248 examples for these two use cases are given below.
12249
12250 ffmpeg -re -i in.ts -b:v 1000k -b:a 64k -a53cc 1 -f hls \
12251 -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en" \
12252 -master_pl_name master.m3u8 \
12253 http://example.com/live/out.m3u8
12254
12255 This example adds "#EXT-X-MEDIA" tag with "TYPE=CLOSED-CAPTIONS" in
12256 the master playlist with group name 'cc', language 'en' (english)
12257 and INSTREAM-ID 'CC1'. Also, it adds "CLOSED-CAPTIONS" attribute
12258 with group name 'cc' for the output variant stream.
12259
12260 ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
12261 -a53cc:0 1 -a53cc:1 1\
12262 -map 0:v -map 0:a -map 0:v -map 0:a -f hls \
12263 -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en ccgroup:cc,instreamid:CC2,language:sp" \
12264 -var_stream_map "v:0,a:0,ccgroup:cc v:1,a:1,ccgroup:cc" \
12265 -master_pl_name master.m3u8 \
12266 http://example.com/live/out_%v.m3u8
12267
12268 This example adds two "#EXT-X-MEDIA" tags with
12269 "TYPE=CLOSED-CAPTIONS" in the master playlist for the INSTREAM-IDs
12270 'CC1' and 'CC2'. Also, it adds "CLOSED-CAPTIONS" attribute with
12271 group name 'cc' for the two output variant streams.
12272
12273 master_pl_name
12274 Create HLS master playlist with the given name.
12275
12276 ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 http://example.com/live/out.m3u8
12277
12278 This example creates HLS master playlist with name master.m3u8 and
12279 it is published at http://example.com/live/
12280
12281 master_pl_publish_rate
12282 Publish master play list repeatedly every after specified number of
12283 segment intervals.
12284
12285 ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 \
12286 -hls_time 2 -master_pl_publish_rate 30 http://example.com/live/out.m3u8
12287
12288 This example creates HLS master playlist with name master.m3u8 and
12289 keep publishing it repeatedly every after 30 segments i.e. every
12290 after 60s.
12291
12292 http_persistent
12293 Use persistent HTTP connections. Applicable only for HTTP output.
12294
12295 timeout
12296 Set timeout for socket I/O operations. Applicable only for HTTP
12297 output.
12298
12299 -ignore_io_errors
12300 Ignore IO errors during open, write and delete. Useful for long-
12301 duration runs with network output.
12302
12303 headers
12304 Set custom HTTP headers, can override built in default headers.
12305 Applicable only for HTTP output.
12306
12307 ico
12308 ICO file muxer.
12309
12310 Microsoft's icon file format (ICO) has some strict limitations that
12311 should be noted:
12312
12313 • Size cannot exceed 256 pixels in any dimension
12314
12315 • Only BMP and PNG images can be stored
12316
12317 • If a BMP image is used, it must be one of the following pixel
12318 formats:
12319
12320 BMP Bit Depth FFmpeg Pixel Format
12321 1bit pal8
12322 4bit pal8
12323 8bit pal8
12324 16bit rgb555le
12325 24bit bgr24
12326 32bit bgra
12327
12328 • If a BMP image is used, it must use the BITMAPINFOHEADER DIB header
12329
12330 • If a PNG image is used, it must use the rgba pixel format
12331
12332 image2
12333 Image file muxer.
12334
12335 The image file muxer writes video frames to image files.
12336
12337 The output filenames are specified by a pattern, which can be used to
12338 produce sequentially numbered series of files. The pattern may contain
12339 the string "%d" or "%0Nd", this string specifies the position of the
12340 characters representing a numbering in the filenames. If the form
12341 "%0Nd" is used, the string representing the number in each filename is
12342 0-padded to N digits. The literal character '%' can be specified in the
12343 pattern with the string "%%".
12344
12345 If the pattern contains "%d" or "%0Nd", the first filename of the file
12346 list specified will contain the number 1, all the following numbers
12347 will be sequential.
12348
12349 The pattern may contain a suffix which is used to automatically
12350 determine the format of the image files to write.
12351
12352 For example the pattern "img-%03d.bmp" will specify a sequence of
12353 filenames of the form img-001.bmp, img-002.bmp, ..., img-010.bmp, etc.
12354 The pattern "img%%-%d.jpg" will specify a sequence of filenames of the
12355 form img%-1.jpg, img%-2.jpg, ..., img%-10.jpg, etc.
12356
12357 The image muxer supports the .Y.U.V image file format. This format is
12358 special in that that each image frame consists of three files, for each
12359 of the YUV420P components. To read or write this image file format,
12360 specify the name of the '.Y' file. The muxer will automatically open
12361 the '.U' and '.V' files as required.
12362
12363 Options
12364
12365 frame_pts
12366 If set to 1, expand the filename with pts from pkt->pts. Default
12367 value is 0.
12368
12369 start_number
12370 Start the sequence from the specified number. Default value is 1.
12371
12372 update
12373 If set to 1, the filename will always be interpreted as just a
12374 filename, not a pattern, and the corresponding file will be
12375 continuously overwritten with new images. Default value is 0.
12376
12377 strftime
12378 If set to 1, expand the filename with date and time information
12379 from "strftime()". Default value is 0.
12380
12381 atomic_writing
12382 Write output to a temporary file, which is renamed to target
12383 filename once writing is completed. Default is disabled.
12384
12385 protocol_opts options_list
12386 Set protocol options as a :-separated list of key=value parameters.
12387 Values containing the ":" special character must be escaped.
12388
12389 Examples
12390
12391 The following example shows how to use ffmpeg for creating a sequence
12392 of files img-001.jpeg, img-002.jpeg, ..., taking one image every second
12393 from the input video:
12394
12395 ffmpeg -i in.avi -vsync cfr -r 1 -f image2 'img-%03d.jpeg'
12396
12397 Note that with ffmpeg, if the format is not specified with the "-f"
12398 option and the output filename specifies an image file format, the
12399 image2 muxer is automatically selected, so the previous command can be
12400 written as:
12401
12402 ffmpeg -i in.avi -vsync cfr -r 1 'img-%03d.jpeg'
12403
12404 Note also that the pattern must not necessarily contain "%d" or "%0Nd",
12405 for example to create a single image file img.jpeg from the start of
12406 the input video you can employ the command:
12407
12408 ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
12409
12410 The strftime option allows you to expand the filename with date and
12411 time information. Check the documentation of the "strftime()" function
12412 for the syntax.
12413
12414 For example to generate image files from the "strftime()"
12415 "%Y-%m-%d_%H-%M-%S" pattern, the following ffmpeg command can be used:
12416
12417 ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
12418
12419 You can set the file name with current frame's PTS:
12420
12421 ffmpeg -f v4l2 -r 1 -i /dev/video0 -copyts -f image2 -frame_pts true %d.jpg"
12422
12423 A more complex example is to publish contents of your desktop directly
12424 to a WebDAV server every second:
12425
12426 ffmpeg -f x11grab -framerate 1 -i :0.0 -q:v 6 -update 1 -protocol_opts method=PUT http://example.com/desktop.jpg
12427
12428 matroska
12429 Matroska container muxer.
12430
12431 This muxer implements the matroska and webm container specs.
12432
12433 Metadata
12434
12435 The recognized metadata settings in this muxer are:
12436
12437 title
12438 Set title name provided to a single track. This gets mapped to the
12439 FileDescription element for a stream written as attachment.
12440
12441 language
12442 Specify the language of the track in the Matroska languages form.
12443
12444 The language can be either the 3 letters bibliographic ISO-639-2
12445 (ISO 639-2/B) form (like "fre" for French), or a language code
12446 mixed with a country code for specialities in languages (like "fre-
12447 ca" for Canadian French).
12448
12449 stereo_mode
12450 Set stereo 3D video layout of two views in a single video track.
12451
12452 The following values are recognized:
12453
12454 mono
12455 video is not stereo
12456
12457 left_right
12458 Both views are arranged side by side, Left-eye view is on the
12459 left
12460
12461 bottom_top
12462 Both views are arranged in top-bottom orientation, Left-eye
12463 view is at bottom
12464
12465 top_bottom
12466 Both views are arranged in top-bottom orientation, Left-eye
12467 view is on top
12468
12469 checkerboard_rl
12470 Each view is arranged in a checkerboard interleaved pattern,
12471 Left-eye view being first
12472
12473 checkerboard_lr
12474 Each view is arranged in a checkerboard interleaved pattern,
12475 Right-eye view being first
12476
12477 row_interleaved_rl
12478 Each view is constituted by a row based interleaving, Right-eye
12479 view is first row
12480
12481 row_interleaved_lr
12482 Each view is constituted by a row based interleaving, Left-eye
12483 view is first row
12484
12485 col_interleaved_rl
12486 Both views are arranged in a column based interleaving manner,
12487 Right-eye view is first column
12488
12489 col_interleaved_lr
12490 Both views are arranged in a column based interleaving manner,
12491 Left-eye view is first column
12492
12493 anaglyph_cyan_red
12494 All frames are in anaglyph format viewable through red-cyan
12495 filters
12496
12497 right_left
12498 Both views are arranged side by side, Right-eye view is on the
12499 left
12500
12501 anaglyph_green_magenta
12502 All frames are in anaglyph format viewable through green-
12503 magenta filters
12504
12505 block_lr
12506 Both eyes laced in one Block, Left-eye view is first
12507
12508 block_rl
12509 Both eyes laced in one Block, Right-eye view is first
12510
12511 For example a 3D WebM clip can be created using the following command
12512 line:
12513
12514 ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
12515
12516 Options
12517
12518 This muxer supports the following options:
12519
12520 reserve_index_space
12521 By default, this muxer writes the index for seeking (called cues in
12522 Matroska terms) at the end of the file, because it cannot know in
12523 advance how much space to leave for the index at the beginning of
12524 the file. However for some use cases -- e.g. streaming where
12525 seeking is possible but slow -- it is useful to put the index at
12526 the beginning of the file.
12527
12528 If this option is set to a non-zero value, the muxer will reserve a
12529 given amount of space in the file header and then try to write the
12530 cues there when the muxing finishes. If the reserved space does not
12531 suffice, no Cues will be written, the file will be finalized and
12532 writing the trailer will return an error. A safe size for most use
12533 cases should be about 50kB per hour of video.
12534
12535 Note that cues are only written if the output is seekable and this
12536 option will have no effect if it is not.
12537
12538 cues_to_front
12539 If set, the muxer will write the index at the beginning of the file
12540 by shifting the main data if necessary. This can be combined with
12541 reserve_index_space in which case the data is only shifted if the
12542 initially reserved space turns out to be insufficient.
12543
12544 This option is ignored if the output is unseekable.
12545
12546 default_mode
12547 This option controls how the FlagDefault of the output tracks will
12548 be set. It influences which tracks players should play by default.
12549 The default mode is passthrough.
12550
12551 infer
12552 Every track with disposition default will have the FlagDefault
12553 set. Additionally, for each type of track (audio, video or
12554 subtitle), if no track with disposition default of this type
12555 exists, then the first track of this type will be marked as
12556 default (if existing). This ensures that the default flag is
12557 set in a sensible way even if the input originated from
12558 containers that lack the concept of default tracks.
12559
12560 infer_no_subs
12561 This mode is the same as infer except that if no subtitle track
12562 with disposition default exists, no subtitle track will be
12563 marked as default.
12564
12565 passthrough
12566 In this mode the FlagDefault is set if and only if the
12567 AV_DISPOSITION_DEFAULT flag is set in the disposition of the
12568 corresponding stream.
12569
12570 flipped_raw_rgb
12571 If set to true, store positive height for raw RGB bitmaps, which
12572 indicates bitmap is stored bottom-up. Note that this option does
12573 not flip the bitmap which has to be done manually beforehand, e.g.
12574 by using the vflip filter. Default is false and indicates bitmap
12575 is stored top down.
12576
12577 md5
12578 MD5 testing format.
12579
12580 This is a variant of the hash muxer. Unlike that muxer, it defaults to
12581 using the MD5 hash function.
12582
12583 Examples
12584
12585 To compute the MD5 hash of the input converted to raw audio and video,
12586 and store it in the file out.md5:
12587
12588 ffmpeg -i INPUT -f md5 out.md5
12589
12590 You can print the MD5 to stdout with the command:
12591
12592 ffmpeg -i INPUT -f md5 -
12593
12594 See also the hash and framemd5 muxers.
12595
12596 mov, mp4, ismv
12597 MOV/MP4/ISMV (Smooth Streaming) muxer.
12598
12599 The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4 file
12600 has all the metadata about all packets stored in one location (written
12601 at the end of the file, it can be moved to the start for better
12602 playback by adding faststart to the movflags, or using the qt-faststart
12603 tool). A fragmented file consists of a number of fragments, where
12604 packets and metadata about these packets are stored together. Writing a
12605 fragmented file has the advantage that the file is decodable even if
12606 the writing is interrupted (while a normal MOV/MP4 is undecodable if it
12607 is not properly finished), and it requires less memory when writing
12608 very long files (since writing normal MOV/MP4 files stores info about
12609 every single packet in memory until the file is closed). The downside
12610 is that it is less compatible with other applications.
12611
12612 Options
12613
12614 Fragmentation is enabled by setting one of the AVOptions that define
12615 how to cut the file into fragments:
12616
12617 -moov_size bytes
12618 Reserves space for the moov atom at the beginning of the file
12619 instead of placing the moov atom at the end. If the space reserved
12620 is insufficient, muxing will fail.
12621
12622 -movflags frag_keyframe
12623 Start a new fragment at each video keyframe.
12624
12625 -frag_duration duration
12626 Create fragments that are duration microseconds long.
12627
12628 -frag_size size
12629 Create fragments that contain up to size bytes of payload data.
12630
12631 -movflags frag_custom
12632 Allow the caller to manually choose when to cut fragments, by
12633 calling "av_write_frame(ctx, NULL)" to write a fragment with the
12634 packets written so far. (This is only useful with other
12635 applications integrating libavformat, not from ffmpeg.)
12636
12637 -min_frag_duration duration
12638 Don't create fragments that are shorter than duration microseconds
12639 long.
12640
12641 If more than one condition is specified, fragments are cut when one of
12642 the specified conditions is fulfilled. The exception to this is
12643 "-min_frag_duration", which has to be fulfilled for any of the other
12644 conditions to apply.
12645
12646 Additionally, the way the output file is written can be adjusted
12647 through a few other options:
12648
12649 -movflags empty_moov
12650 Write an initial moov atom directly at the start of the file,
12651 without describing any samples in it. Generally, an mdat/moov pair
12652 is written at the start of the file, as a normal MOV/MP4 file,
12653 containing only a short portion of the file. With this option set,
12654 there is no initial mdat atom, and the moov atom only describes the
12655 tracks but has a zero duration.
12656
12657 This option is implicitly set when writing ismv (Smooth Streaming)
12658 files.
12659
12660 -movflags separate_moof
12661 Write a separate moof (movie fragment) atom for each track.
12662 Normally, packets for all tracks are written in a moof atom (which
12663 is slightly more efficient), but with this option set, the muxer
12664 writes one moof/mdat pair for each track, making it easier to
12665 separate tracks.
12666
12667 This option is implicitly set when writing ismv (Smooth Streaming)
12668 files.
12669
12670 -movflags skip_sidx
12671 Skip writing of sidx atom. When bitrate overhead due to sidx atom
12672 is high, this option could be used for cases where sidx atom is not
12673 mandatory. When global_sidx flag is enabled, this option will be
12674 ignored.
12675
12676 -movflags faststart
12677 Run a second pass moving the index (moov atom) to the beginning of
12678 the file. This operation can take a while, and will not work in
12679 various situations such as fragmented output, thus it is not
12680 enabled by default.
12681
12682 -movflags rtphint
12683 Add RTP hinting tracks to the output file.
12684
12685 -movflags disable_chpl
12686 Disable Nero chapter markers (chpl atom). Normally, both Nero
12687 chapters and a QuickTime chapter track are written to the file.
12688 With this option set, only the QuickTime chapter track will be
12689 written. Nero chapters can cause failures when the file is
12690 reprocessed with certain tagging programs, like mp3Tag 2.61a and
12691 iTunes 11.3, most likely other versions are affected as well.
12692
12693 -movflags omit_tfhd_offset
12694 Do not write any absolute base_data_offset in tfhd atoms. This
12695 avoids tying fragments to absolute byte positions in the
12696 file/streams.
12697
12698 -movflags default_base_moof
12699 Similarly to the omit_tfhd_offset, this flag avoids writing the
12700 absolute base_data_offset field in tfhd atoms, but does so by using
12701 the new default-base-is-moof flag instead. This flag is new from
12702 14496-12:2012. This may make the fragments easier to parse in
12703 certain circumstances (avoiding basing track fragment location
12704 calculations on the implicit end of the previous track fragment).
12705
12706 -write_tmcd
12707 Specify "on" to force writing a timecode track, "off" to disable it
12708 and "auto" to write a timecode track only for mov and mp4 output
12709 (default).
12710
12711 -movflags negative_cts_offsets
12712 Enables utilization of version 1 of the CTTS box, in which the CTS
12713 offsets can be negative. This enables the initial sample to have
12714 DTS/CTS of zero, and reduces the need for edit lists for some cases
12715 such as video tracks with B-frames. Additionally, eases conformance
12716 with the DASH-IF interoperability guidelines.
12717
12718 This option is implicitly set when writing ismv (Smooth Streaming)
12719 files.
12720
12721 -write_btrt bool
12722 Force or disable writing bitrate box inside stsd box of a track.
12723 The box contains decoding buffer size (in bytes), maximum bitrate
12724 and average bitrate for the track. The box will be skipped if none
12725 of these values can be computed. Default is "-1" or "auto", which
12726 will write the box only in MP4 mode.
12727
12728 -write_prft
12729 Write producer time reference box (PRFT) with a specified time
12730 source for the NTP field in the PRFT box. Set value as wallclock to
12731 specify timesource as wallclock time and pts to specify timesource
12732 as input packets' PTS values.
12733
12734 Setting value to pts is applicable only for a live encoding use
12735 case, where PTS values are set as as wallclock time at the source.
12736 For example, an encoding use case with decklink capture source
12737 where video_pts and audio_pts are set to abs_wallclock.
12738
12739 -empty_hdlr_name bool
12740 Enable to skip writing the name inside a "hdlr" box. Default is
12741 "false".
12742
12743 -movie_timescale scale
12744 Set the timescale written in the movie header box ("mvhd"). Range
12745 is 1 to INT_MAX. Default is 1000.
12746
12747 -video_track_timescale scale
12748 Set the timescale used for video tracks. Range is 0 to INT_MAX. If
12749 set to 0, the timescale is automatically set based on the native
12750 stream time base. Default is 0.
12751
12752 Example
12753
12754 Smooth Streaming content can be pushed in real time to a publishing
12755 point on IIS with this muxer. Example:
12756
12757 ffmpeg -re <<normal input/transcoding options>> -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)
12758
12759 mp3
12760 The MP3 muxer writes a raw MP3 stream with the following optional
12761 features:
12762
12763 • An ID3v2 metadata header at the beginning (enabled by default).
12764 Versions 2.3 and 2.4 are supported, the "id3v2_version" private
12765 option controls which one is used (3 or 4). Setting "id3v2_version"
12766 to 0 disables the ID3v2 header completely.
12767
12768 The muxer supports writing attached pictures (APIC frames) to the
12769 ID3v2 header. The pictures are supplied to the muxer in form of a
12770 video stream with a single packet. There can be any number of those
12771 streams, each will correspond to a single APIC frame. The stream
12772 metadata tags title and comment map to APIC description and picture
12773 type respectively. See <http://id3.org/id3v2.4.0-frames> for
12774 allowed picture types.
12775
12776 Note that the APIC frames must be written at the beginning, so the
12777 muxer will buffer the audio frames until it gets all the pictures.
12778 It is therefore advised to provide the pictures as soon as possible
12779 to avoid excessive buffering.
12780
12781 • A Xing/LAME frame right after the ID3v2 header (if present). It is
12782 enabled by default, but will be written only if the output is
12783 seekable. The "write_xing" private option can be used to disable
12784 it. The frame contains various information that may be useful to
12785 the decoder, like the audio duration or encoder delay.
12786
12787 • A legacy ID3v1 tag at the end of the file (disabled by default). It
12788 may be enabled with the "write_id3v1" private option, but as its
12789 capabilities are very limited, its usage is not recommended.
12790
12791 Examples:
12792
12793 Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
12794
12795 ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
12796
12797 To attach a picture to an mp3 file select both the audio and the
12798 picture stream with "map":
12799
12800 ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
12801 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3
12802
12803 Write a "clean" MP3 without any extra features:
12804
12805 ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
12806
12807 mpegts
12808 MPEG transport stream muxer.
12809
12810 This muxer implements ISO 13818-1 and part of ETSI EN 300 468.
12811
12812 The recognized metadata settings in mpegts muxer are "service_provider"
12813 and "service_name". If they are not set the default for
12814 "service_provider" is FFmpeg and the default for "service_name" is
12815 Service01.
12816
12817 Options
12818
12819 The muxer options are:
12820
12821 mpegts_transport_stream_id integer
12822 Set the transport_stream_id. This identifies a transponder in DVB.
12823 Default is 0x0001.
12824
12825 mpegts_original_network_id integer
12826 Set the original_network_id. This is unique identifier of a network
12827 in DVB. Its main use is in the unique identification of a service
12828 through the path Original_Network_ID, Transport_Stream_ID. Default
12829 is 0x0001.
12830
12831 mpegts_service_id integer
12832 Set the service_id, also known as program in DVB. Default is
12833 0x0001.
12834
12835 mpegts_service_type integer
12836 Set the program service_type. Default is "digital_tv". Accepts the
12837 following options:
12838
12839 hex_value
12840 Any hexadecimal value between 0x01 and 0xff as defined in ETSI
12841 300 468.
12842
12843 digital_tv
12844 Digital TV service.
12845
12846 digital_radio
12847 Digital Radio service.
12848
12849 teletext
12850 Teletext service.
12851
12852 advanced_codec_digital_radio
12853 Advanced Codec Digital Radio service.
12854
12855 mpeg2_digital_hdtv
12856 MPEG2 Digital HDTV service.
12857
12858 advanced_codec_digital_sdtv
12859 Advanced Codec Digital SDTV service.
12860
12861 advanced_codec_digital_hdtv
12862 Advanced Codec Digital HDTV service.
12863
12864 mpegts_pmt_start_pid integer
12865 Set the first PID for PMTs. Default is 0x1000, minimum is 0x0020,
12866 maximum is 0x1ffa. This option has no effect in m2ts mode where the
12867 PMT PID is fixed 0x0100.
12868
12869 mpegts_start_pid integer
12870 Set the first PID for elementary streams. Default is 0x0100,
12871 minimum is 0x0020, maximum is 0x1ffa. This option has no effect in
12872 m2ts mode where the elementary stream PIDs are fixed.
12873
12874 mpegts_m2ts_mode boolean
12875 Enable m2ts mode if set to 1. Default value is "-1" which disables
12876 m2ts mode.
12877
12878 muxrate integer
12879 Set a constant muxrate. Default is VBR.
12880
12881 pes_payload_size integer
12882 Set minimum PES packet payload in bytes. Default is 2930.
12883
12884 mpegts_flags flags
12885 Set mpegts flags. Accepts the following options:
12886
12887 resend_headers
12888 Reemit PAT/PMT before writing the next packet.
12889
12890 latm
12891 Use LATM packetization for AAC.
12892
12893 pat_pmt_at_frames
12894 Reemit PAT and PMT at each video frame.
12895
12896 system_b
12897 Conform to System B (DVB) instead of System A (ATSC).
12898
12899 initial_discontinuity
12900 Mark the initial packet of each stream as discontinuity.
12901
12902 nit Emit NIT table.
12903
12904 mpegts_copyts boolean
12905 Preserve original timestamps, if value is set to 1. Default value
12906 is "-1", which results in shifting timestamps so that they start
12907 from 0.
12908
12909 omit_video_pes_length boolean
12910 Omit the PES packet length for video packets. Default is 1 (true).
12911
12912 pcr_period integer
12913 Override the default PCR retransmission time in milliseconds.
12914 Default is "-1" which means that the PCR interval will be
12915 determined automatically: 20 ms is used for CBR streams, the
12916 highest multiple of the frame duration which is less than 100 ms is
12917 used for VBR streams.
12918
12919 pat_period duration
12920 Maximum time in seconds between PAT/PMT tables. Default is 0.1.
12921
12922 sdt_period duration
12923 Maximum time in seconds between SDT tables. Default is 0.5.
12924
12925 nit_period duration
12926 Maximum time in seconds between NIT tables. Default is 0.5.
12927
12928 tables_version integer
12929 Set PAT, PMT, SDT and NIT version (default 0, valid values are from
12930 0 to 31, inclusively). This option allows updating stream
12931 structure so that standard consumer may detect the change. To do
12932 so, reopen output "AVFormatContext" (in case of API usage) or
12933 restart ffmpeg instance, cyclically changing tables_version value:
12934
12935 ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
12936 ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
12937 ...
12938 ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
12939 ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
12940 ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
12941 ...
12942
12943 Example
12944
12945 ffmpeg -i file.mpg -c copy \
12946 -mpegts_original_network_id 0x1122 \
12947 -mpegts_transport_stream_id 0x3344 \
12948 -mpegts_service_id 0x5566 \
12949 -mpegts_pmt_start_pid 0x1500 \
12950 -mpegts_start_pid 0x150 \
12951 -metadata service_provider="Some provider" \
12952 -metadata service_name="Some Channel" \
12953 out.ts
12954
12955 mxf, mxf_d10, mxf_opatom
12956 MXF muxer.
12957
12958 Options
12959
12960 The muxer options are:
12961
12962 store_user_comments bool
12963 Set if user comments should be stored if available or never. IRT
12964 D-10 does not allow user comments. The default is thus to write
12965 them for mxf and mxf_opatom but not for mxf_d10
12966
12967 null
12968 Null muxer.
12969
12970 This muxer does not generate any output file, it is mainly useful for
12971 testing or benchmarking purposes.
12972
12973 For example to benchmark decoding with ffmpeg you can use the command:
12974
12975 ffmpeg -benchmark -i INPUT -f null out.null
12976
12977 Note that the above command does not read or write the out.null file,
12978 but specifying the output file is required by the ffmpeg syntax.
12979
12980 Alternatively you can write the command as:
12981
12982 ffmpeg -benchmark -i INPUT -f null -
12983
12984 nut
12985 -syncpoints flags
12986 Change the syncpoint usage in nut:
12987
12988 default use the normal low-overhead seeking aids.
12989 none do not use the syncpoints at all, reducing the overhead but
12990 making the stream non-seekable;
12991 Use of this option is not recommended, as the resulting files are very damage
12992 sensitive and seeking is not possible. Also in general the overhead from
12993 syncpoints is negligible. Note, -C<write_index> 0 can be used to disable
12994 all growing data tables, allowing to mux endless streams with limited memory
12995 and without these disadvantages.
12996
12997 timestamped extend the syncpoint with a wallclock field.
12998
12999 The none and timestamped flags are experimental.
13000
13001 -write_index bool
13002 Write index at the end, the default is to write an index.
13003
13004 ffmpeg -i INPUT -f_strict experimental -syncpoints none - | processor
13005
13006 ogg
13007 Ogg container muxer.
13008
13009 -page_duration duration
13010 Preferred page duration, in microseconds. The muxer will attempt to
13011 create pages that are approximately duration microseconds long.
13012 This allows the user to compromise between seek granularity and
13013 container overhead. The default is 1 second. A value of 0 will fill
13014 all segments, making pages as large as possible. A value of 1 will
13015 effectively use 1 packet-per-page in most situations, giving a
13016 small seek granularity at the cost of additional container
13017 overhead.
13018
13019 -serial_offset value
13020 Serial value from which to set the streams serial number. Setting
13021 it to different and sufficiently large values ensures that the
13022 produced ogg files can be safely chained.
13023
13024 raw muxers
13025 Raw muxers accept a single stream matching the designated codec. They
13026 do not store timestamps or metadata. The recognized extension is the
13027 same as the muxer name unless indicated otherwise.
13028
13029 ac3
13030
13031 Dolby Digital, also known as AC-3, audio.
13032
13033 adx
13034
13035 CRI Middleware ADX audio.
13036
13037 This muxer will write out the total sample count near the start of the
13038 first packet when the output is seekable and the count can be stored in
13039 32 bits.
13040
13041 aptx
13042
13043 aptX (Audio Processing Technology for Bluetooth) audio.
13044
13045 aptx_hd
13046
13047 aptX HD (Audio Processing Technology for Bluetooth) audio.
13048
13049 Extensions: aptxhd
13050
13051 avs2
13052
13053 AVS2-P2/IEEE1857.4 video.
13054
13055 Extensions: avs, avs2
13056
13057 cavsvideo
13058
13059 Chinese AVS (Audio Video Standard) video.
13060
13061 Extensions: cavs
13062
13063 codec2raw
13064
13065 Codec 2 audio.
13066
13067 No extension is registered so format name has to be supplied e.g. with
13068 the ffmpeg CLI tool "-f codec2raw".
13069
13070 data
13071
13072 Data muxer accepts a single stream with any codec of any type. The
13073 input stream has to be selected using the "-map" option with the ffmpeg
13074 CLI tool.
13075
13076 No extension is registered so format name has to be supplied e.g. with
13077 the ffmpeg CLI tool "-f data".
13078
13079 dirac
13080
13081 BBC Dirac video. The Dirac Pro codec is a subset and is standardized as
13082 SMPTE VC-2.
13083
13084 Extensions: drc, vc2
13085
13086 dnxhd
13087
13088 Avid DNxHD video. It is standardized as SMPTE VC-3. Accepts DNxHR
13089 streams.
13090
13091 Extensions: dnxhd, dnxhr
13092
13093 dts
13094
13095 DTS Coherent Acoustics (DCA) audio.
13096
13097 eac3
13098
13099 Dolby Digital Plus, also known as Enhanced AC-3, audio.
13100
13101 g722
13102
13103 ITU-T G.722 audio.
13104
13105 g723_1
13106
13107 ITU-T G.723.1 audio.
13108
13109 Extensions: tco, rco
13110
13111 g726
13112
13113 ITU-T G.726 big-endian ("left-justified") audio.
13114
13115 No extension is registered so format name has to be supplied e.g. with
13116 the ffmpeg CLI tool "-f g726".
13117
13118 g726le
13119
13120 ITU-T G.726 little-endian ("right-justified") audio.
13121
13122 No extension is registered so format name has to be supplied e.g. with
13123 the ffmpeg CLI tool "-f g726le".
13124
13125 gsm
13126
13127 Global System for Mobile Communications audio.
13128
13129 h261
13130
13131 ITU-T H.261 video.
13132
13133 h263
13134
13135 ITU-T H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 video.
13136
13137 h264
13138
13139 ITU-T H.264 / MPEG-4 Part 10 AVC video. Bitstream shall be converted to
13140 Annex B syntax if it's in length-prefixed mode.
13141
13142 Extensions: h264, 264
13143
13144 hevc
13145
13146 ITU-T H.265 / MPEG-H Part 2 HEVC video. Bitstream shall be converted to
13147 Annex B syntax if it's in length-prefixed mode.
13148
13149 Extensions: hevc, h265, 265
13150
13151 m4v
13152
13153 MPEG-4 Part 2 video.
13154
13155 mjpeg
13156
13157 Motion JPEG video.
13158
13159 Extensions: mjpg, mjpeg
13160
13161 mlp
13162
13163 Meridian Lossless Packing, also known as Packed PCM, audio.
13164
13165 mp2
13166
13167 MPEG-1 Audio Layer II audio.
13168
13169 Extensions: mp2, m2a, mpa
13170
13171 mpeg1video
13172
13173 MPEG-1 Part 2 video.
13174
13175 Extensions: mpg, mpeg, m1v
13176
13177 mpeg2video
13178
13179 ITU-T H.262 / MPEG-2 Part 2 video.
13180
13181 Extensions: m2v
13182
13183 obu
13184
13185 AV1 low overhead Open Bitstream Units muxer. Temporal delimiter OBUs
13186 will be inserted in all temporal units of the stream.
13187
13188 rawvideo
13189
13190 Raw uncompressed video.
13191
13192 Extensions: yuv, rgb
13193
13194 sbc
13195
13196 Bluetooth SIG low-complexity subband codec audio.
13197
13198 Extensions: sbc, msbc
13199
13200 truehd
13201
13202 Dolby TrueHD audio.
13203
13204 Extensions: thd
13205
13206 vc1
13207
13208 SMPTE 421M / VC-1 video.
13209
13210 segment, stream_segment, ssegment
13211 Basic stream segmenter.
13212
13213 This muxer outputs streams to a number of separate files of nearly
13214 fixed duration. Output filename pattern can be set in a fashion similar
13215 to image2, or by using a "strftime" template if the strftime option is
13216 enabled.
13217
13218 "stream_segment" is a variant of the muxer used to write to streaming
13219 output formats, i.e. which do not require global headers, and is
13220 recommended for outputting e.g. to MPEG transport stream segments.
13221 "ssegment" is a shorter alias for "stream_segment".
13222
13223 Every segment starts with a keyframe of the selected reference stream,
13224 which is set through the reference_stream option.
13225
13226 Note that if you want accurate splitting for a video file, you need to
13227 make the input key frames correspond to the exact splitting times
13228 expected by the segmenter, or the segment muxer will start the new
13229 segment with the key frame found next after the specified start time.
13230
13231 The segment muxer works best with a single constant frame rate video.
13232
13233 Optionally it can generate a list of the created segments, by setting
13234 the option segment_list. The list type is specified by the
13235 segment_list_type option. The entry filenames in the segment list are
13236 set by default to the basename of the corresponding segment files.
13237
13238 See also the hls muxer, which provides a more specific implementation
13239 for HLS segmentation.
13240
13241 Options
13242
13243 The segment muxer supports the following options:
13244
13245 increment_tc 1|0
13246 if set to 1, increment timecode between each segment If this is
13247 selected, the input need to have a timecode in the first video
13248 stream. Default value is 0.
13249
13250 reference_stream specifier
13251 Set the reference stream, as specified by the string specifier. If
13252 specifier is set to "auto", the reference is chosen automatically.
13253 Otherwise it must be a stream specifier (see the ``Stream
13254 specifiers'' chapter in the ffmpeg manual) which specifies the
13255 reference stream. The default value is "auto".
13256
13257 segment_format format
13258 Override the inner container format, by default it is guessed by
13259 the filename extension.
13260
13261 segment_format_options options_list
13262 Set output format options using a :-separated list of key=value
13263 parameters. Values containing the ":" special character must be
13264 escaped.
13265
13266 segment_list name
13267 Generate also a listfile named name. If not specified no listfile
13268 is generated.
13269
13270 segment_list_flags flags
13271 Set flags affecting the segment list generation.
13272
13273 It currently supports the following flags:
13274
13275 cache
13276 Allow caching (only affects M3U8 list files).
13277
13278 live
13279 Allow live-friendly file generation.
13280
13281 segment_list_size size
13282 Update the list file so that it contains at most size segments. If
13283 0 the list file will contain all the segments. Default value is 0.
13284
13285 segment_list_entry_prefix prefix
13286 Prepend prefix to each entry. Useful to generate absolute paths.
13287 By default no prefix is applied.
13288
13289 segment_list_type type
13290 Select the listing format.
13291
13292 The following values are recognized:
13293
13294 flat
13295 Generate a flat list for the created segments, one segment per
13296 line.
13297
13298 csv, ext
13299 Generate a list for the created segments, one segment per line,
13300 each line matching the format (comma-separated values):
13301
13302 <segment_filename>,<segment_start_time>,<segment_end_time>
13303
13304 segment_filename is the name of the output file generated by
13305 the muxer according to the provided pattern. CSV escaping
13306 (according to RFC4180) is applied if required.
13307
13308 segment_start_time and segment_end_time specify the segment
13309 start and end time expressed in seconds.
13310
13311 A list file with the suffix ".csv" or ".ext" will auto-select
13312 this format.
13313
13314 ext is deprecated in favor or csv.
13315
13316 ffconcat
13317 Generate an ffconcat file for the created segments. The
13318 resulting file can be read using the FFmpeg concat demuxer.
13319
13320 A list file with the suffix ".ffcat" or ".ffconcat" will auto-
13321 select this format.
13322
13323 m3u8
13324 Generate an extended M3U8 file, version 3, compliant with
13325 <http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
13326
13327 A list file with the suffix ".m3u8" will auto-select this
13328 format.
13329
13330 If not specified the type is guessed from the list file name
13331 suffix.
13332
13333 segment_time time
13334 Set segment duration to time, the value must be a duration
13335 specification. Default value is "2". See also the segment_times
13336 option.
13337
13338 Note that splitting may not be accurate, unless you force the
13339 reference stream key-frames at the given time. See the introductory
13340 notice and the examples below.
13341
13342 segment_atclocktime 1|0
13343 If set to "1" split at regular clock time intervals starting from
13344 00:00 o'clock. The time value specified in segment_time is used for
13345 setting the length of the splitting interval.
13346
13347 For example with segment_time set to "900" this makes it possible
13348 to create files at 12:00 o'clock, 12:15, 12:30, etc.
13349
13350 Default value is "0".
13351
13352 segment_clocktime_offset duration
13353 Delay the segment splitting times with the specified duration when
13354 using segment_atclocktime.
13355
13356 For example with segment_time set to "900" and
13357 segment_clocktime_offset set to "300" this makes it possible to
13358 create files at 12:05, 12:20, 12:35, etc.
13359
13360 Default value is "0".
13361
13362 segment_clocktime_wrap_duration duration
13363 Force the segmenter to only start a new segment if a packet reaches
13364 the muxer within the specified duration after the segmenting clock
13365 time. This way you can make the segmenter more resilient to
13366 backward local time jumps, such as leap seconds or transition to
13367 standard time from daylight savings time.
13368
13369 Default is the maximum possible duration which means starting a new
13370 segment regardless of the elapsed time since the last clock time.
13371
13372 segment_time_delta delta
13373 Specify the accuracy time when selecting the start time for a
13374 segment, expressed as a duration specification. Default value is
13375 "0".
13376
13377 When delta is specified a key-frame will start a new segment if its
13378 PTS satisfies the relation:
13379
13380 PTS >= start_time - time_delta
13381
13382 This option is useful when splitting video content, which is always
13383 split at GOP boundaries, in case a key frame is found just before
13384 the specified split time.
13385
13386 In particular may be used in combination with the ffmpeg option
13387 force_key_frames. The key frame times specified by force_key_frames
13388 may not be set accurately because of rounding issues, with the
13389 consequence that a key frame time may result set just before the
13390 specified time. For constant frame rate videos a value of
13391 1/(2*frame_rate) should address the worst case mismatch between the
13392 specified time and the time set by force_key_frames.
13393
13394 segment_times times
13395 Specify a list of split points. times contains a list of comma
13396 separated duration specifications, in increasing order. See also
13397 the segment_time option.
13398
13399 segment_frames frames
13400 Specify a list of split video frame numbers. frames contains a list
13401 of comma separated integer numbers, in increasing order.
13402
13403 This option specifies to start a new segment whenever a reference
13404 stream key frame is found and the sequential number (starting from
13405 0) of the frame is greater or equal to the next value in the list.
13406
13407 segment_wrap limit
13408 Wrap around segment index once it reaches limit.
13409
13410 segment_start_number number
13411 Set the sequence number of the first segment. Defaults to 0.
13412
13413 strftime 1|0
13414 Use the "strftime" function to define the name of the new segments
13415 to write. If this is selected, the output segment name must contain
13416 a "strftime" function template. Default value is 0.
13417
13418 break_non_keyframes 1|0
13419 If enabled, allow segments to start on frames other than keyframes.
13420 This improves behavior on some players when the time between
13421 keyframes is inconsistent, but may make things worse on others, and
13422 can cause some oddities during seeking. Defaults to 0.
13423
13424 reset_timestamps 1|0
13425 Reset timestamps at the beginning of each segment, so that each
13426 segment will start with near-zero timestamps. It is meant to ease
13427 the playback of the generated segments. May not work with some
13428 combinations of muxers/codecs. It is set to 0 by default.
13429
13430 initial_offset offset
13431 Specify timestamp offset to apply to the output packet timestamps.
13432 The argument must be a time duration specification, and defaults to
13433 0.
13434
13435 write_empty_segments 1|0
13436 If enabled, write an empty segment if there are no packets during
13437 the period a segment would usually span. Otherwise, the segment
13438 will be filled with the next packet written. Defaults to 0.
13439
13440 Make sure to require a closed GOP when encoding and to set the GOP size
13441 to fit your segment time constraint.
13442
13443 Examples
13444
13445 • Remux the content of file in.mkv to a list of segments out-000.nut,
13446 out-001.nut, etc., and write the list of generated segments to
13447 out.list:
13448
13449 ffmpeg -i in.mkv -codec hevc -flags +cgop -g 60 -map 0 -f segment -segment_list out.list out%03d.nut
13450
13451 • Segment input and set output format options for the output
13452 segments:
13453
13454 ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
13455
13456 • Segment the input file according to the split points specified by
13457 the segment_times option:
13458
13459 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
13460
13461 • Use the ffmpeg force_key_frames option to force key frames in the
13462 input at the specified location, together with the segment option
13463 segment_time_delta to account for possible roundings operated when
13464 setting key frame times.
13465
13466 ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
13467 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
13468
13469 In order to force key frames on the input file, transcoding is
13470 required.
13471
13472 • Segment the input file by splitting the input file according to the
13473 frame numbers sequence specified with the segment_frames option:
13474
13475 ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
13476
13477 • Convert the in.mkv to TS segments using the "libx264" and "aac"
13478 encoders:
13479
13480 ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a aac -f ssegment -segment_list out.list out%03d.ts
13481
13482 • Segment the input file, and create an M3U8 live playlist (can be
13483 used as live HLS source):
13484
13485 ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
13486 -segment_list_flags +live -segment_time 10 out%03d.mkv
13487
13488 smoothstreaming
13489 Smooth Streaming muxer generates a set of files (Manifest, chunks)
13490 suitable for serving with conventional web server.
13491
13492 window_size
13493 Specify the number of fragments kept in the manifest. Default 0
13494 (keep all).
13495
13496 extra_window_size
13497 Specify the number of fragments kept outside of the manifest before
13498 removing from disk. Default 5.
13499
13500 lookahead_count
13501 Specify the number of lookahead fragments. Default 2.
13502
13503 min_frag_duration
13504 Specify the minimum fragment duration (in microseconds). Default
13505 5000000.
13506
13507 remove_at_exit
13508 Specify whether to remove all fragments when finished. Default 0
13509 (do not remove).
13510
13511 streamhash
13512 Per stream hash testing format.
13513
13514 This muxer computes and prints a cryptographic hash of all the input
13515 frames, on a per-stream basis. This can be used for equality checks
13516 without having to do a complete binary comparison.
13517
13518 By default audio frames are converted to signed 16-bit raw audio and
13519 video frames to raw video before computing the hash, but the output of
13520 explicit conversions to other codecs can also be used. Timestamps are
13521 ignored. It uses the SHA-256 cryptographic hash function by default,
13522 but supports several other algorithms.
13523
13524 The output of the muxer consists of one line per stream of the form:
13525 streamindex,streamtype,algo=hash, where streamindex is the index of the
13526 mapped stream, streamtype is a single character indicating the type of
13527 stream, algo is a short string representing the hash function used, and
13528 hash is a hexadecimal number representing the computed hash.
13529
13530 hash algorithm
13531 Use the cryptographic hash function specified by the string
13532 algorithm. Supported values include "MD5", "murmur3", "RIPEMD128",
13533 "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
13534 (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
13535 and "adler32".
13536
13537 Examples
13538
13539 To compute the SHA-256 hash of the input converted to raw audio and
13540 video, and store it in the file out.sha256:
13541
13542 ffmpeg -i INPUT -f streamhash out.sha256
13543
13544 To print an MD5 hash to stdout use the command:
13545
13546 ffmpeg -i INPUT -f streamhash -hash md5 -
13547
13548 See also the hash and framehash muxers.
13549
13550 tee
13551 The tee muxer can be used to write the same data to several outputs,
13552 such as files or streams. It can be used, for example, to stream a
13553 video over a network and save it to disk at the same time.
13554
13555 It is different from specifying several outputs to the ffmpeg command-
13556 line tool. With the tee muxer, the audio and video data will be encoded
13557 only once. With conventional multiple outputs, multiple encoding
13558 operations in parallel are initiated, which can be a very expensive
13559 process. The tee muxer is not useful when using the libavformat API
13560 directly because it is then possible to feed the same packets to
13561 several muxers directly.
13562
13563 Since the tee muxer does not represent any particular output format,
13564 ffmpeg cannot auto-select output streams. So all streams intended for
13565 output must be specified using "-map". See the examples below.
13566
13567 Some encoders may need different options depending on the output
13568 format; the auto-detection of this can not work with the tee muxer, so
13569 they need to be explicitly specified. The main example is the
13570 global_header flag.
13571
13572 The slave outputs are specified in the file name given to the muxer,
13573 separated by '|'. If any of the slave name contains the '|' separator,
13574 leading or trailing spaces or any special character, those must be
13575 escaped (see the "Quoting and escaping" section in the ffmpeg-utils(1)
13576 manual).
13577
13578 Options
13579
13580 use_fifo bool
13581 If set to 1, slave outputs will be processed in separate threads
13582 using the fifo muxer. This allows to compensate for different
13583 speed/latency/reliability of outputs and setup transparent
13584 recovery. By default this feature is turned off.
13585
13586 fifo_options
13587 Options to pass to fifo pseudo-muxer instances. See fifo.
13588
13589 Muxer options can be specified for each slave by prepending them as a
13590 list of key=value pairs separated by ':', between square brackets. If
13591 the options values contain a special character or the ':' separator,
13592 they must be escaped; note that this is a second level escaping.
13593
13594 The following special options are also recognized:
13595
13596 f Specify the format name. Required if it cannot be guessed from the
13597 output URL.
13598
13599 bsfs[/spec]
13600 Specify a list of bitstream filters to apply to the specified
13601 output.
13602
13603 It is possible to specify to which streams a given bitstream filter
13604 applies, by appending a stream specifier to the option separated by
13605 "/". spec must be a stream specifier (see Format stream
13606 specifiers).
13607
13608 If the stream specifier is not specified, the bitstream filters
13609 will be applied to all streams in the output. This will cause that
13610 output operation to fail if the output contains streams to which
13611 the bitstream filter cannot be applied e.g. "h264_mp4toannexb"
13612 being applied to an output containing an audio stream.
13613
13614 Options for a bitstream filter must be specified in the form of
13615 "opt=value".
13616
13617 Several bitstream filters can be specified, separated by ",".
13618
13619 use_fifo bool
13620 This allows to override tee muxer use_fifo option for individual
13621 slave muxer.
13622
13623 fifo_options
13624 This allows to override tee muxer fifo_options for individual slave
13625 muxer. See fifo.
13626
13627 select
13628 Select the streams that should be mapped to the slave output,
13629 specified by a stream specifier. If not specified, this defaults to
13630 all the mapped streams. This will cause that output operation to
13631 fail if the output format does not accept all mapped streams.
13632
13633 You may use multiple stream specifiers separated by commas (",")
13634 e.g.: "a:0,v"
13635
13636 onfail
13637 Specify behaviour on output failure. This can be set to either
13638 "abort" (which is default) or "ignore". "abort" will cause whole
13639 process to fail in case of failure on this slave output. "ignore"
13640 will ignore failure on this output, so other outputs will continue
13641 without being affected.
13642
13643 Examples
13644
13645 • Encode something and both archive it in a WebM file and stream it
13646 as MPEG-TS over UDP:
13647
13648 ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
13649 "archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
13650
13651 • As above, but continue streaming even if output to local file fails
13652 (for example local drive fills up):
13653
13654 ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
13655 "[onfail=ignore]archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
13656
13657 • Use ffmpeg to encode the input, and send the output to three
13658 different destinations. The "dump_extra" bitstream filter is used
13659 to add extradata information to all the output video keyframes
13660 packets, as requested by the MPEG-TS format. The select option is
13661 applied to out.aac in order to make it contain only audio packets.
13662
13663 ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac
13664 -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
13665
13666 • As above, but select only stream "a:1" for the audio output. Note
13667 that a second level escaping must be performed, as ":" is a special
13668 character used to separate options.
13669
13670 ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac
13671 -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
13672
13673 webm_chunk
13674 WebM Live Chunk Muxer.
13675
13676 This muxer writes out WebM headers and chunks as separate files which
13677 can be consumed by clients that support WebM Live streams via DASH.
13678
13679 Options
13680
13681 This muxer supports the following options:
13682
13683 chunk_start_index
13684 Index of the first chunk (defaults to 0).
13685
13686 header
13687 Filename of the header where the initialization data will be
13688 written.
13689
13690 audio_chunk_duration
13691 Duration of each audio chunk in milliseconds (defaults to 5000).
13692
13693 Example
13694
13695 ffmpeg -f v4l2 -i /dev/video0 \
13696 -f alsa -i hw:0 \
13697 -map 0:0 \
13698 -c:v libvpx-vp9 \
13699 -s 640x360 -keyint_min 30 -g 30 \
13700 -f webm_chunk \
13701 -header webm_live_video_360.hdr \
13702 -chunk_start_index 1 \
13703 webm_live_video_360_%d.chk \
13704 -map 1:0 \
13705 -c:a libvorbis \
13706 -b:a 128k \
13707 -f webm_chunk \
13708 -header webm_live_audio_128.hdr \
13709 -chunk_start_index 1 \
13710 -audio_chunk_duration 1000 \
13711 webm_live_audio_128_%d.chk
13712
13713 webm_dash_manifest
13714 WebM DASH Manifest muxer.
13715
13716 This muxer implements the WebM DASH Manifest specification to generate
13717 the DASH manifest XML. It also supports manifest generation for DASH
13718 live streams.
13719
13720 For more information see:
13721
13722 • WebM DASH Specification:
13723 <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
13724
13725 • ISO DASH Specification:
13726 <http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
13727
13728 Options
13729
13730 This muxer supports the following options:
13731
13732 adaptation_sets
13733 This option has the following syntax: "id=x,streams=a,b,c
13734 id=y,streams=d,e" where x and y are the unique identifiers of the
13735 adaptation sets and a,b,c,d and e are the indices of the
13736 corresponding audio and video streams. Any number of adaptation
13737 sets can be added using this option.
13738
13739 live
13740 Set this to 1 to create a live stream DASH Manifest. Default: 0.
13741
13742 chunk_start_index
13743 Start index of the first chunk. This will go in the startNumber
13744 attribute of the SegmentTemplate element in the manifest. Default:
13745 0.
13746
13747 chunk_duration_ms
13748 Duration of each chunk in milliseconds. This will go in the
13749 duration attribute of the SegmentTemplate element in the manifest.
13750 Default: 1000.
13751
13752 utc_timing_url
13753 URL of the page that will return the UTC timestamp in ISO format.
13754 This will go in the value attribute of the UTCTiming element in the
13755 manifest. Default: None.
13756
13757 time_shift_buffer_depth
13758 Smallest time (in seconds) shifting buffer for which any
13759 Representation is guaranteed to be available. This will go in the
13760 timeShiftBufferDepth attribute of the MPD element. Default: 60.
13761
13762 minimum_update_period
13763 Minimum update period (in seconds) of the manifest. This will go in
13764 the minimumUpdatePeriod attribute of the MPD element. Default: 0.
13765
13766 Example
13767
13768 ffmpeg -f webm_dash_manifest -i video1.webm \
13769 -f webm_dash_manifest -i video2.webm \
13770 -f webm_dash_manifest -i audio1.webm \
13771 -f webm_dash_manifest -i audio2.webm \
13772 -map 0 -map 1 -map 2 -map 3 \
13773 -c copy \
13774 -f webm_dash_manifest \
13775 -adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \
13776 manifest.xml
13777
13779 FFmpeg is able to dump metadata from media files into a simple
13780 UTF-8-encoded INI-like text file and then load it back using the
13781 metadata muxer/demuxer.
13782
13783 The file format is as follows:
13784
13785 1. A file consists of a header and a number of metadata tags divided
13786 into sections, each on its own line.
13787
13788 2. The header is a ;FFMETADATA string, followed by a version number
13789 (now 1).
13790
13791 3. Metadata tags are of the form key=value
13792
13793 4. Immediately after header follows global metadata
13794
13795 5. After global metadata there may be sections with
13796 per-stream/per-chapter metadata.
13797
13798 6. A section starts with the section name in uppercase (i.e. STREAM or
13799 CHAPTER) in brackets ([, ]) and ends with next section or end of
13800 file.
13801
13802 7. At the beginning of a chapter section there may be an optional
13803 timebase to be used for start/end values. It must be in form
13804 TIMEBASE=num/den, where num and den are integers. If the timebase
13805 is missing then start/end times are assumed to be in nanoseconds.
13806
13807 Next a chapter section must contain chapter start and end times in
13808 form START=num, END=num, where num is a positive integer.
13809
13810 8. Empty lines and lines starting with ; or # are ignored.
13811
13812 9. Metadata keys or values containing special characters (=, ;, #, \
13813 and a newline) must be escaped with a backslash \.
13814
13815 10. Note that whitespace in metadata (e.g. foo = bar) is considered to
13816 be a part of the tag (in the example above key is foo , value is
13817 bar).
13818
13819 A ffmetadata file might look like this:
13820
13821 ;FFMETADATA1
13822 title=bike\\shed
13823 ;this is a comment
13824 artist=FFmpeg troll team
13825
13826 [CHAPTER]
13827 TIMEBASE=1/1000
13828 START=0
13829 #chapter ends at 0:01:00
13830 END=60000
13831 title=chapter \#1
13832 [STREAM]
13833 title=multi\
13834 line
13835
13836 By using the ffmetadata muxer and demuxer it is possible to extract
13837 metadata from an input file to an ffmetadata file, and then transcode
13838 the file into an output file with the edited ffmetadata file.
13839
13840 Extracting an ffmetadata file with ffmpeg goes as follows:
13841
13842 ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
13843
13844 Reinserting edited metadata information from the FFMETADATAFILE file
13845 can be done as:
13846
13847 ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
13848
13850 The libavformat library provides some generic global options, which can
13851 be set on all the protocols. In addition each protocol may support so-
13852 called private options, which are specific for that component.
13853
13854 Options may be set by specifying -option value in the FFmpeg tools, or
13855 by setting the value explicitly in the "AVFormatContext" options or
13856 using the libavutil/opt.h API for programmatic use.
13857
13858 The list of supported options follows:
13859
13860 protocol_whitelist list (input)
13861 Set a ","-separated list of allowed protocols. "ALL" matches all
13862 protocols. Protocols prefixed by "-" are disabled. All protocols
13863 are allowed by default but protocols used by an another protocol
13864 (nested protocols) are restricted to a per protocol subset.
13865
13867 Protocols are configured elements in FFmpeg that enable access to
13868 resources that require specific protocols.
13869
13870 When you configure your FFmpeg build, all the supported protocols are
13871 enabled by default. You can list all available ones using the configure
13872 option "--list-protocols".
13873
13874 You can disable all the protocols using the configure option
13875 "--disable-protocols", and selectively enable a protocol using the
13876 option "--enable-protocol=PROTOCOL", or you can disable a particular
13877 protocol using the option "--disable-protocol=PROTOCOL".
13878
13879 The option "-protocols" of the ff* tools will display the list of
13880 supported protocols.
13881
13882 All protocols accept the following options:
13883
13884 rw_timeout
13885 Maximum time to wait for (network) read/write operations to
13886 complete, in microseconds.
13887
13888 A description of the currently available protocols follows.
13889
13890 amqp
13891 Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
13892 based publish-subscribe communication protocol.
13893
13894 FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
13895 separate AMQP broker must also be run. An example open-source AMQP
13896 broker is RabbitMQ.
13897
13898 After starting the broker, an FFmpeg client may stream data to the
13899 broker using the command:
13900
13901 ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
13902
13903 Where hostname and port (default is 5672) is the address of the broker.
13904 The client may also set a user/password for authentication. The default
13905 for both fields is "guest". Name of virtual host on broker can be set
13906 with vhost. The default value is "/".
13907
13908 Muliple subscribers may stream from the broker using the command:
13909
13910 ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
13911
13912 In RabbitMQ all data published to the broker flows through a specific
13913 exchange, and each subscribing client has an assigned queue/buffer.
13914 When a packet arrives at an exchange, it may be copied to a client's
13915 queue depending on the exchange and routing_key fields.
13916
13917 The following options are supported:
13918
13919 exchange
13920 Sets the exchange to use on the broker. RabbitMQ has several
13921 predefined exchanges: "amq.direct" is the default exchange, where
13922 the publisher and subscriber must have a matching routing_key;
13923 "amq.fanout" is the same as a broadcast operation (i.e. the data is
13924 forwarded to all queues on the fanout exchange independent of the
13925 routing_key); and "amq.topic" is similar to "amq.direct", but
13926 allows for more complex pattern matching (refer to the RabbitMQ
13927 documentation).
13928
13929 routing_key
13930 Sets the routing key. The default value is "amqp". The routing key
13931 is used on the "amq.direct" and "amq.topic" exchanges to decide
13932 whether packets are written to the queue of a subscriber.
13933
13934 pkt_size
13935 Maximum size of each packet sent/received to the broker. Default is
13936 131072. Minimum is 4096 and max is any large value (representable
13937 by an int). When receiving packets, this sets an internal buffer
13938 size in FFmpeg. It should be equal to or greater than the size of
13939 the published packets to the broker. Otherwise the received message
13940 may be truncated causing decoding errors.
13941
13942 connection_timeout
13943 The timeout in seconds during the initial connection to the broker.
13944 The default value is rw_timeout, or 5 seconds if rw_timeout is not
13945 set.
13946
13947 delivery_mode mode
13948 Sets the delivery mode of each message sent to broker. The
13949 following values are accepted:
13950
13951 persistent
13952 Delivery mode set to "persistent" (2). This is the default
13953 value. Messages may be written to the broker's disk depending
13954 on its setup.
13955
13956 non-persistent
13957 Delivery mode set to "non-persistent" (1). Messages will stay
13958 in broker's memory unless the broker is under memory pressure.
13959
13960 async
13961 Asynchronous data filling wrapper for input stream.
13962
13963 Fill data in a background thread, to decouple I/O operation from demux
13964 thread.
13965
13966 async:<URL>
13967 async:http://host/resource
13968 async:cache:http://host/resource
13969
13970 bluray
13971 Read BluRay playlist.
13972
13973 The accepted options are:
13974
13975 angle
13976 BluRay angle
13977
13978 chapter
13979 Start chapter (1...N)
13980
13981 playlist
13982 Playlist to read (BDMV/PLAYLIST/?????.mpls)
13983
13984 Examples:
13985
13986 Read longest playlist from BluRay mounted to /mnt/bluray:
13987
13988 bluray:/mnt/bluray
13989
13990 Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
13991 from chapter 2:
13992
13993 -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
13994
13995 cache
13996 Caching wrapper for input stream.
13997
13998 Cache the input stream to temporary file. It brings seeking capability
13999 to live streams.
14000
14001 The accepted options are:
14002
14003 read_ahead_limit
14004 Amount in bytes that may be read ahead when seeking isn't
14005 supported. Range is -1 to INT_MAX. -1 for unlimited. Default is
14006 65536.
14007
14008 URL Syntax is
14009
14010 cache:<URL>
14011
14012 concat
14013 Physical concatenation protocol.
14014
14015 Read and seek from many resources in sequence as if they were a unique
14016 resource.
14017
14018 A URL accepted by this protocol has the syntax:
14019
14020 concat:<URL1>|<URL2>|...|<URLN>
14021
14022 where URL1, URL2, ..., URLN are the urls of the resource to be
14023 concatenated, each one possibly specifying a distinct protocol.
14024
14025 For example to read a sequence of files split1.mpeg, split2.mpeg,
14026 split3.mpeg with ffplay use the command:
14027
14028 ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
14029
14030 Note that you may need to escape the character "|" which is special for
14031 many shells.
14032
14033 concatf
14034 Physical concatenation protocol using a line break delimited list of
14035 resources.
14036
14037 Read and seek from many resources in sequence as if they were a unique
14038 resource.
14039
14040 A URL accepted by this protocol has the syntax:
14041
14042 concatf:<URL>
14043
14044 where URL is the url containing a line break delimited list of
14045 resources to be concatenated, each one possibly specifying a distinct
14046 protocol. Special characters must be escaped with backslash or single
14047 quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
14048 manual.
14049
14050 For example to read a sequence of files split1.mpeg, split2.mpeg,
14051 split3.mpeg listed in separate lines within a file split.txt with
14052 ffplay use the command:
14053
14054 ffplay concatf:split.txt
14055
14056 Where split.txt contains the lines:
14057
14058 split1.mpeg
14059 split2.mpeg
14060 split3.mpeg
14061
14062 crypto
14063 AES-encrypted stream reading protocol.
14064
14065 The accepted options are:
14066
14067 key Set the AES decryption key binary block from given hexadecimal
14068 representation.
14069
14070 iv Set the AES decryption initialization vector binary block from
14071 given hexadecimal representation.
14072
14073 Accepted URL formats:
14074
14075 crypto:<URL>
14076 crypto+<URL>
14077
14078 data
14079 Data in-line in the URI. See
14080 <http://en.wikipedia.org/wiki/Data_URI_scheme>.
14081
14082 For example, to convert a GIF file given inline with ffmpeg:
14083
14084 ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
14085
14086 file
14087 File access protocol.
14088
14089 Read from or write to a file.
14090
14091 A file URL can have the form:
14092
14093 file:<filename>
14094
14095 where filename is the path of the file to read.
14096
14097 An URL that does not have a protocol prefix will be assumed to be a
14098 file URL. Depending on the build, an URL that looks like a Windows path
14099 with the drive letter at the beginning will also be assumed to be a
14100 file URL (usually not the case in builds for unix-like systems).
14101
14102 For example to read from a file input.mpeg with ffmpeg use the command:
14103
14104 ffmpeg -i file:input.mpeg output.mpeg
14105
14106 This protocol accepts the following options:
14107
14108 truncate
14109 Truncate existing files on write, if set to 1. A value of 0
14110 prevents truncating. Default value is 1.
14111
14112 blocksize
14113 Set I/O operation maximum block size, in bytes. Default value is
14114 "INT_MAX", which results in not limiting the requested block size.
14115 Setting this value reasonably low improves user termination request
14116 reaction time, which is valuable for files on slow medium.
14117
14118 follow
14119 If set to 1, the protocol will retry reading at the end of the
14120 file, allowing reading files that still are being written. In order
14121 for this to terminate, you either need to use the rw_timeout
14122 option, or use the interrupt callback (for API users).
14123
14124 seekable
14125 Controls if seekability is advertised on the file. 0 means non-
14126 seekable, -1 means auto (seekable for normal files, non-seekable
14127 for named pipes).
14128
14129 Many demuxers handle seekable and non-seekable resources
14130 differently, overriding this might speed up opening certain files
14131 at the cost of losing some features (e.g. accurate seeking).
14132
14133 ftp
14134 FTP (File Transfer Protocol).
14135
14136 Read from or write to remote resources using FTP protocol.
14137
14138 Following syntax is required.
14139
14140 ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
14141
14142 This protocol accepts the following options.
14143
14144 timeout
14145 Set timeout in microseconds of socket I/O operations used by the
14146 underlying low level operation. By default it is set to -1, which
14147 means that the timeout is not specified.
14148
14149 ftp-user
14150 Set a user to be used for authenticating to the FTP server. This is
14151 overridden by the user in the FTP URL.
14152
14153 ftp-password
14154 Set a password to be used for authenticating to the FTP server.
14155 This is overridden by the password in the FTP URL, or by ftp-
14156 anonymous-password if no user is set.
14157
14158 ftp-anonymous-password
14159 Password used when login as anonymous user. Typically an e-mail
14160 address should be used.
14161
14162 ftp-write-seekable
14163 Control seekability of connection during encoding. If set to 1 the
14164 resource is supposed to be seekable, if set to 0 it is assumed not
14165 to be seekable. Default value is 0.
14166
14167 NOTE: Protocol can be used as output, but it is recommended to not do
14168 it, unless special care is taken (tests, customized server
14169 configuration etc.). Different FTP servers behave in different way
14170 during seek operation. ff* tools may produce incomplete content due to
14171 server limitations.
14172
14173 gopher
14174 Gopher protocol.
14175
14176 gophers
14177 Gophers protocol.
14178
14179 The Gopher protocol with TLS encapsulation.
14180
14181 hls
14182 Read Apple HTTP Live Streaming compliant segmented stream as a uniform
14183 one. The M3U8 playlists describing the segments can be remote HTTP
14184 resources or local files, accessed using the standard file protocol.
14185 The nested protocol is declared by specifying "+proto" after the hls
14186 URI scheme name, where proto is either "file" or "http".
14187
14188 hls+http://host/path/to/remote/resource.m3u8
14189 hls+file://path/to/local/resource.m3u8
14190
14191 Using this protocol is discouraged - the hls demuxer should work just
14192 as well (if not, please report the issues) and is more complete. To
14193 use the hls demuxer instead, simply use the direct URLs to the m3u8
14194 files.
14195
14196 http
14197 HTTP (Hyper Text Transfer Protocol).
14198
14199 This protocol accepts the following options:
14200
14201 seekable
14202 Control seekability of connection. If set to 1 the resource is
14203 supposed to be seekable, if set to 0 it is assumed not to be
14204 seekable, if set to -1 it will try to autodetect if it is seekable.
14205 Default value is -1.
14206
14207 chunked_post
14208 If set to 1 use chunked Transfer-Encoding for posts, default is 1.
14209
14210 content_type
14211 Set a specific content type for the POST messages or for listen
14212 mode.
14213
14214 http_proxy
14215 set HTTP proxy to tunnel through e.g. http://example.com:1234
14216
14217 headers
14218 Set custom HTTP headers, can override built in default headers. The
14219 value must be a string encoding the headers.
14220
14221 multiple_requests
14222 Use persistent connections if set to 1, default is 0.
14223
14224 post_data
14225 Set custom HTTP post data.
14226
14227 referer
14228 Set the Referer header. Include 'Referer: URL' header in HTTP
14229 request.
14230
14231 user_agent
14232 Override the User-Agent header. If not specified the protocol will
14233 use a string describing the libavformat build. ("Lavf/<version>")
14234
14235 reconnect_at_eof
14236 If set then eof is treated like an error and causes reconnection,
14237 this is useful for live / endless streams.
14238
14239 reconnect_streamed
14240 If set then even streamed/non seekable streams will be reconnected
14241 on errors.
14242
14243 reconnect_on_network_error
14244 Reconnect automatically in case of TCP/TLS errors during connect.
14245
14246 reconnect_on_http_error
14247 A comma separated list of HTTP status codes to reconnect on. The
14248 list can include specific status codes (e.g. '503') or the strings
14249 '4xx' / '5xx'.
14250
14251 reconnect_delay_max
14252 Sets the maximum delay in seconds after which to give up
14253 reconnecting
14254
14255 mime_type
14256 Export the MIME type.
14257
14258 http_version
14259 Exports the HTTP response version number. Usually "1.0" or "1.1".
14260
14261 icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
14262 the server supports this, the metadata has to be retrieved by the
14263 application by reading the icy_metadata_headers and
14264 icy_metadata_packet options. The default is 1.
14265
14266 icy_metadata_headers
14267 If the server supports ICY metadata, this contains the ICY-specific
14268 HTTP reply headers, separated by newline characters.
14269
14270 icy_metadata_packet
14271 If the server supports ICY metadata, and icy was set to 1, this
14272 contains the last non-empty metadata packet sent by the server. It
14273 should be polled in regular intervals by applications interested in
14274 mid-stream metadata updates.
14275
14276 cookies
14277 Set the cookies to be sent in future requests. The format of each
14278 cookie is the same as the value of a Set-Cookie HTTP response
14279 field. Multiple cookies can be delimited by a newline character.
14280
14281 offset
14282 Set initial byte offset.
14283
14284 end_offset
14285 Try to limit the request to bytes preceding this offset.
14286
14287 method
14288 When used as a client option it sets the HTTP method for the
14289 request.
14290
14291 When used as a server option it sets the HTTP method that is going
14292 to be expected from the client(s). If the expected and the
14293 received HTTP method do not match the client will be given a Bad
14294 Request response. When unset the HTTP method is not checked for
14295 now. This will be replaced by autodetection in the future.
14296
14297 listen
14298 If set to 1 enables experimental HTTP server. This can be used to
14299 send data when used as an output option, or read data from a client
14300 with HTTP POST when used as an input option. If set to 2 enables
14301 experimental multi-client HTTP server. This is not yet implemented
14302 in ffmpeg.c and thus must not be used as a command line option.
14303
14304 # Server side (sending):
14305 ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
14306
14307 # Client side (receiving):
14308 ffmpeg -i http://<server>:<port> -c copy somefile.ogg
14309
14310 # Client can also be done with wget:
14311 wget http://<server>:<port> -O somefile.ogg
14312
14313 # Server side (receiving):
14314 ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
14315
14316 # Client side (sending):
14317 ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
14318
14319 # Client can also be done with wget:
14320 wget --post-file=somefile.ogg http://<server>:<port>
14321
14322 send_expect_100
14323 Send an Expect: 100-continue header for POST. If set to 1 it will
14324 send, if set to 0 it won't, if set to -1 it will try to send if it
14325 is applicable. Default value is -1.
14326
14327 auth_type
14328 Set HTTP authentication type. No option for Digest, since this
14329 method requires getting nonce parameters from the server first and
14330 can't be used straight away like Basic.
14331
14332 none
14333 Choose the HTTP authentication type automatically. This is the
14334 default.
14335
14336 basic
14337 Choose the HTTP basic authentication.
14338
14339 Basic authentication sends a Base64-encoded string that
14340 contains a user name and password for the client. Base64 is not
14341 a form of encryption and should be considered the same as
14342 sending the user name and password in clear text (Base64 is a
14343 reversible encoding). If a resource needs to be protected,
14344 strongly consider using an authentication scheme other than
14345 basic authentication. HTTPS/TLS should be used with basic
14346 authentication. Without these additional security
14347 enhancements, basic authentication should not be used to
14348 protect sensitive or valuable information.
14349
14350 HTTP Cookies
14351
14352 Some HTTP requests will be denied unless cookie values are passed in
14353 with the request. The cookies option allows these cookies to be
14354 specified. At the very least, each cookie must specify a value along
14355 with a path and domain. HTTP requests that match both the domain and
14356 path will automatically include the cookie value in the HTTP Cookie
14357 header field. Multiple cookies can be delimited by a newline.
14358
14359 The required syntax to play a stream specifying a cookie is:
14360
14361 ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
14362
14363 Icecast
14364 Icecast protocol (stream to Icecast servers)
14365
14366 This protocol accepts the following options:
14367
14368 ice_genre
14369 Set the stream genre.
14370
14371 ice_name
14372 Set the stream name.
14373
14374 ice_description
14375 Set the stream description.
14376
14377 ice_url
14378 Set the stream website URL.
14379
14380 ice_public
14381 Set if the stream should be public. The default is 0 (not public).
14382
14383 user_agent
14384 Override the User-Agent header. If not specified a string of the
14385 form "Lavf/<version>" will be used.
14386
14387 password
14388 Set the Icecast mountpoint password.
14389
14390 content_type
14391 Set the stream content type. This must be set if it is different
14392 from audio/mpeg.
14393
14394 legacy_icecast
14395 This enables support for Icecast versions < 2.4.0, that do not
14396 support the HTTP PUT method but the SOURCE method.
14397
14398 tls Establish a TLS (HTTPS) connection to Icecast.
14399
14400 icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
14401
14402 ipfs
14403 InterPlanetary File System (IPFS) protocol support. One can access
14404 files stored on the IPFS network through so-called gateways. These are
14405 http(s) endpoints. This protocol wraps the IPFS native protocols
14406 (ipfs:// and ipns://) to be sent to such a gateway. Users can (and
14407 should) host their own node which means this protocol will use one's
14408 local gateway to access files on the IPFS network.
14409
14410 If a user doesn't have a node of their own then the public gateway
14411 "https://dweb.link" is used by default.
14412
14413 This protocol accepts the following options:
14414
14415 gateway
14416 Defines the gateway to use. When not set, the protocol will first
14417 try locating the local gateway by looking at $IPFS_GATEWAY,
14418 $IPFS_PATH and "$HOME/.ipfs/", in that order. If that fails
14419 "https://dweb.link" will be used.
14420
14421 One can use this protocol in 2 ways. Using IPFS:
14422
14423 ffplay ipfs://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
14424
14425 Or the IPNS protocol (IPNS is mutable IPFS):
14426
14427 ffplay ipns://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
14428
14429 mmst
14430 MMS (Microsoft Media Server) protocol over TCP.
14431
14432 mmsh
14433 MMS (Microsoft Media Server) protocol over HTTP.
14434
14435 The required syntax is:
14436
14437 mmsh://<server>[:<port>][/<app>][/<playpath>]
14438
14439 md5
14440 MD5 output protocol.
14441
14442 Computes the MD5 hash of the data to be written, and on close writes
14443 this to the designated output or stdout if none is specified. It can be
14444 used to test muxers without writing an actual file.
14445
14446 Some examples follow.
14447
14448 # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
14449 ffmpeg -i input.flv -f avi -y md5:output.avi.md5
14450
14451 # Write the MD5 hash of the encoded AVI file to stdout.
14452 ffmpeg -i input.flv -f avi -y md5:
14453
14454 Note that some formats (typically MOV) require the output protocol to
14455 be seekable, so they will fail with the MD5 output protocol.
14456
14457 pipe
14458 UNIX pipe access protocol.
14459
14460 Read and write from UNIX pipes.
14461
14462 The accepted syntax is:
14463
14464 pipe:[<number>]
14465
14466 number is the number corresponding to the file descriptor of the pipe
14467 (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number is not
14468 specified, by default the stdout file descriptor will be used for
14469 writing, stdin for reading.
14470
14471 For example to read from stdin with ffmpeg:
14472
14473 cat test.wav | ffmpeg -i pipe:0
14474 # ...this is the same as...
14475 cat test.wav | ffmpeg -i pipe:
14476
14477 For writing to stdout with ffmpeg:
14478
14479 ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
14480 # ...this is the same as...
14481 ffmpeg -i test.wav -f avi pipe: | cat > test.avi
14482
14483 This protocol accepts the following options:
14484
14485 blocksize
14486 Set I/O operation maximum block size, in bytes. Default value is
14487 "INT_MAX", which results in not limiting the requested block size.
14488 Setting this value reasonably low improves user termination request
14489 reaction time, which is valuable if data transmission is slow.
14490
14491 Note that some formats (typically MOV), require the output protocol to
14492 be seekable, so they will fail with the pipe output protocol.
14493
14494 prompeg
14495 Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
14496
14497 The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
14498 mechanism for MPEG-2 Transport Streams sent over RTP.
14499
14500 This protocol must be used in conjunction with the "rtp_mpegts" muxer
14501 and the "rtp" protocol.
14502
14503 The required syntax is:
14504
14505 -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
14506
14507 The destination UDP ports are "port + 2" for the column FEC stream and
14508 "port + 4" for the row FEC stream.
14509
14510 This protocol accepts the following options:
14511
14512 l=n The number of columns (4-20, LxD <= 100)
14513
14514 d=n The number of rows (4-20, LxD <= 100)
14515
14516 Example usage:
14517
14518 -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
14519
14520 rist
14521 Reliable Internet Streaming Transport protocol
14522
14523 The accepted options are:
14524
14525 rist_profile
14526 Supported values:
14527
14528 simple
14529 main
14530 This one is default.
14531
14532 advanced
14533 buffer_size
14534 Set internal RIST buffer size in milliseconds for retransmission of
14535 data. Default value is 0 which means the librist default (1 sec).
14536 Maximum value is 30 seconds.
14537
14538 fifo_size
14539 Size of the librist receiver output fifo in number of packets. This
14540 must be a power of 2. Defaults to 8192 (vs the librist default of
14541 1024).
14542
14543 overrun_nonfatal=1|0
14544 Survive in case of librist fifo buffer overrun. Default value is 0.
14545
14546 pkt_size
14547 Set maximum packet size for sending data. 1316 by default.
14548
14549 log_level
14550 Set loglevel for RIST logging messages. You only need to set this
14551 if you explicitly want to enable debug level messages or packet
14552 loss simulation, otherwise the regular loglevel is respected.
14553
14554 secret
14555 Set override of encryption secret, by default is unset.
14556
14557 encryption
14558 Set encryption type, by default is disabled. Acceptable values are
14559 128 and 256.
14560
14561 rtmp
14562 Real-Time Messaging Protocol.
14563
14564 The Real-Time Messaging Protocol (RTMP) is used for streaming
14565 multimedia content across a TCP/IP network.
14566
14567 The required syntax is:
14568
14569 rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
14570
14571 The accepted parameters are:
14572
14573 username
14574 An optional username (mostly for publishing).
14575
14576 password
14577 An optional password (mostly for publishing).
14578
14579 server
14580 The address of the RTMP server.
14581
14582 port
14583 The number of the TCP port to use (by default is 1935).
14584
14585 app It is the name of the application to access. It usually corresponds
14586 to the path where the application is installed on the RTMP server
14587 (e.g. /ondemand/, /flash/live/, etc.). You can override the value
14588 parsed from the URI through the "rtmp_app" option, too.
14589
14590 playpath
14591 It is the path or name of the resource to play with reference to
14592 the application specified in app, may be prefixed by "mp4:". You
14593 can override the value parsed from the URI through the
14594 "rtmp_playpath" option, too.
14595
14596 listen
14597 Act as a server, listening for an incoming connection.
14598
14599 timeout
14600 Maximum time to wait for the incoming connection. Implies listen.
14601
14602 Additionally, the following parameters can be set via command line
14603 options (or in code via "AVOption"s):
14604
14605 rtmp_app
14606 Name of application to connect on the RTMP server. This option
14607 overrides the parameter specified in the URI.
14608
14609 rtmp_buffer
14610 Set the client buffer time in milliseconds. The default is 3000.
14611
14612 rtmp_conn
14613 Extra arbitrary AMF connection parameters, parsed from a string,
14614 e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Each
14615 value is prefixed by a single character denoting the type, B for
14616 Boolean, N for number, S for string, O for object, or Z for null,
14617 followed by a colon. For Booleans the data must be either 0 or 1
14618 for FALSE or TRUE, respectively. Likewise for Objects the data
14619 must be 0 or 1 to end or begin an object, respectively. Data items
14620 in subobjects may be named, by prefixing the type with 'N' and
14621 specifying the name before the value (i.e. "NB:myFlag:1"). This
14622 option may be used multiple times to construct arbitrary AMF
14623 sequences.
14624
14625 rtmp_flashver
14626 Version of the Flash plugin used to run the SWF player. The default
14627 is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
14628 (compatible; <libavformat version>).)
14629
14630 rtmp_flush_interval
14631 Number of packets flushed in the same request (RTMPT only). The
14632 default is 10.
14633
14634 rtmp_live
14635 Specify that the media is a live stream. No resuming or seeking in
14636 live streams is possible. The default value is "any", which means
14637 the subscriber first tries to play the live stream specified in the
14638 playpath. If a live stream of that name is not found, it plays the
14639 recorded stream. The other possible values are "live" and
14640 "recorded".
14641
14642 rtmp_pageurl
14643 URL of the web page in which the media was embedded. By default no
14644 value will be sent.
14645
14646 rtmp_playpath
14647 Stream identifier to play or to publish. This option overrides the
14648 parameter specified in the URI.
14649
14650 rtmp_subscribe
14651 Name of live stream to subscribe to. By default no value will be
14652 sent. It is only sent if the option is specified or if rtmp_live
14653 is set to live.
14654
14655 rtmp_swfhash
14656 SHA256 hash of the decompressed SWF file (32 bytes).
14657
14658 rtmp_swfsize
14659 Size of the decompressed SWF file, required for SWFVerification.
14660
14661 rtmp_swfurl
14662 URL of the SWF player for the media. By default no value will be
14663 sent.
14664
14665 rtmp_swfverify
14666 URL to player swf file, compute hash/size automatically.
14667
14668 rtmp_tcurl
14669 URL of the target stream. Defaults to proto://host[:port]/app.
14670
14671 tcp_nodelay=1|0
14672 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
14673
14674 Remark: Writing to the socket is currently not optimized to
14675 minimize system calls and reduces the efficiency / effect of
14676 TCP_NODELAY.
14677
14678 For example to read with ffplay a multimedia resource named "sample"
14679 from the application "vod" from an RTMP server "myserver":
14680
14681 ffplay rtmp://myserver/vod/sample
14682
14683 To publish to a password protected server, passing the playpath and app
14684 names separately:
14685
14686 ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
14687
14688 rtmpe
14689 Encrypted Real-Time Messaging Protocol.
14690
14691 The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
14692 streaming multimedia content within standard cryptographic primitives,
14693 consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
14694 pair of RC4 keys.
14695
14696 rtmps
14697 Real-Time Messaging Protocol over a secure SSL connection.
14698
14699 The Real-Time Messaging Protocol (RTMPS) is used for streaming
14700 multimedia content across an encrypted connection.
14701
14702 rtmpt
14703 Real-Time Messaging Protocol tunneled through HTTP.
14704
14705 The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
14706 for streaming multimedia content within HTTP requests to traverse
14707 firewalls.
14708
14709 rtmpte
14710 Encrypted Real-Time Messaging Protocol tunneled through HTTP.
14711
14712 The Encrypted Real-Time Messaging Protocol tunneled through HTTP
14713 (RTMPTE) is used for streaming multimedia content within HTTP requests
14714 to traverse firewalls.
14715
14716 rtmpts
14717 Real-Time Messaging Protocol tunneled through HTTPS.
14718
14719 The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
14720 used for streaming multimedia content within HTTPS requests to traverse
14721 firewalls.
14722
14723 libsmbclient
14724 libsmbclient permits one to manipulate CIFS/SMB network resources.
14725
14726 Following syntax is required.
14727
14728 smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
14729
14730 This protocol accepts the following options.
14731
14732 timeout
14733 Set timeout in milliseconds of socket I/O operations used by the
14734 underlying low level operation. By default it is set to -1, which
14735 means that the timeout is not specified.
14736
14737 truncate
14738 Truncate existing files on write, if set to 1. A value of 0
14739 prevents truncating. Default value is 1.
14740
14741 workgroup
14742 Set the workgroup used for making connections. By default workgroup
14743 is not specified.
14744
14745 For more information see: <http://www.samba.org/>.
14746
14747 libssh
14748 Secure File Transfer Protocol via libssh
14749
14750 Read from or write to remote resources using SFTP protocol.
14751
14752 Following syntax is required.
14753
14754 sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
14755
14756 This protocol accepts the following options.
14757
14758 timeout
14759 Set timeout of socket I/O operations used by the underlying low
14760 level operation. By default it is set to -1, which means that the
14761 timeout is not specified.
14762
14763 truncate
14764 Truncate existing files on write, if set to 1. A value of 0
14765 prevents truncating. Default value is 1.
14766
14767 private_key
14768 Specify the path of the file containing private key to use during
14769 authorization. By default libssh searches for keys in the ~/.ssh/
14770 directory.
14771
14772 Example: Play a file stored on remote server.
14773
14774 ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
14775
14776 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
14777 Real-Time Messaging Protocol and its variants supported through
14778 librtmp.
14779
14780 Requires the presence of the librtmp headers and library during
14781 configuration. You need to explicitly configure the build with
14782 "--enable-librtmp". If enabled this will replace the native RTMP
14783 protocol.
14784
14785 This protocol provides most client functions and a few server functions
14786 needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
14787 (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
14788 encrypted types (RTMPTE, RTMPTS).
14789
14790 The required syntax is:
14791
14792 <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
14793
14794 where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
14795 "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
14796 server, port, app and playpath have the same meaning as specified for
14797 the RTMP native protocol. options contains a list of space-separated
14798 options of the form key=val.
14799
14800 See the librtmp manual page (man 3 librtmp) for more information.
14801
14802 For example, to stream a file in real-time to an RTMP server using
14803 ffmpeg:
14804
14805 ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
14806
14807 To play the same stream using ffplay:
14808
14809 ffplay "rtmp://myserver/live/mystream live=1"
14810
14811 rtp
14812 Real-time Transport Protocol.
14813
14814 The required syntax for an RTP URL is:
14815 rtp://hostname[:port][?option=val...]
14816
14817 port specifies the RTP port to use.
14818
14819 The following URL options are supported:
14820
14821 ttl=n
14822 Set the TTL (Time-To-Live) value (for multicast only).
14823
14824 rtcpport=n
14825 Set the remote RTCP port to n.
14826
14827 localrtpport=n
14828 Set the local RTP port to n.
14829
14830 localrtcpport=n'
14831 Set the local RTCP port to n.
14832
14833 pkt_size=n
14834 Set max packet size (in bytes) to n.
14835
14836 buffer_size=size
14837 Set the maximum UDP socket buffer size in bytes.
14838
14839 connect=0|1
14840 Do a "connect()" on the UDP socket (if set to 1) or not (if set to
14841 0).
14842
14843 sources=ip[,ip]
14844 List allowed source IP addresses.
14845
14846 block=ip[,ip]
14847 List disallowed (blocked) source IP addresses.
14848
14849 write_to_source=0|1
14850 Send packets to the source address of the latest received packet
14851 (if set to 1) or to a default remote address (if set to 0).
14852
14853 localport=n
14854 Set the local RTP port to n.
14855
14856 localaddr=addr
14857 Local IP address of a network interface used for sending packets or
14858 joining multicast groups.
14859
14860 timeout=n
14861 Set timeout (in microseconds) of socket I/O operations to n.
14862
14863 This is a deprecated option. Instead, localrtpport should be used.
14864
14865 Important notes:
14866
14867 1. If rtcpport is not set the RTCP port will be set to the RTP port
14868 value plus 1.
14869
14870 2. If localrtpport (the local RTP port) is not set any available port
14871 will be used for the local RTP and RTCP ports.
14872
14873 3. If localrtcpport (the local RTCP port) is not set it will be set to
14874 the local RTP port value plus 1.
14875
14876 rtsp
14877 Real-Time Streaming Protocol.
14878
14879 RTSP is not technically a protocol handler in libavformat, it is a
14880 demuxer and muxer. The demuxer supports both normal RTSP (with data
14881 transferred over RTP; this is used by e.g. Apple and Microsoft) and
14882 Real-RTSP (with data transferred over RDT).
14883
14884 The muxer can be used to send a stream using RTSP ANNOUNCE to a server
14885 supporting it (currently Darwin Streaming Server and Mischa
14886 Spiegelmock's <https://github.com/revmischa/rtsp-server>).
14887
14888 The required syntax for a RTSP url is:
14889
14890 rtsp://<hostname>[:<port>]/<path>
14891
14892 Options can be set on the ffmpeg/ffplay command line, or set in code
14893 via "AVOption"s or in "avformat_open_input".
14894
14895 The following options are supported.
14896
14897 initial_pause
14898 Do not start playing the stream immediately if set to 1. Default
14899 value is 0.
14900
14901 rtsp_transport
14902 Set RTSP transport protocols.
14903
14904 It accepts the following values:
14905
14906 udp Use UDP as lower transport protocol.
14907
14908 tcp Use TCP (interleaving within the RTSP control channel) as lower
14909 transport protocol.
14910
14911 udp_multicast
14912 Use UDP multicast as lower transport protocol.
14913
14914 http
14915 Use HTTP tunneling as lower transport protocol, which is useful
14916 for passing proxies.
14917
14918 Multiple lower transport protocols may be specified, in that case
14919 they are tried one at a time (if the setup of one fails, the next
14920 one is tried). For the muxer, only the tcp and udp options are
14921 supported.
14922
14923 rtsp_flags
14924 Set RTSP flags.
14925
14926 The following values are accepted:
14927
14928 filter_src
14929 Accept packets only from negotiated peer address and port.
14930
14931 listen
14932 Act as a server, listening for an incoming connection.
14933
14934 prefer_tcp
14935 Try TCP for RTP transport first, if TCP is available as RTSP
14936 RTP transport.
14937
14938 Default value is none.
14939
14940 allowed_media_types
14941 Set media types to accept from the server.
14942
14943 The following flags are accepted:
14944
14945 video
14946 audio
14947 data
14948
14949 By default it accepts all media types.
14950
14951 min_port
14952 Set minimum local UDP port. Default value is 5000.
14953
14954 max_port
14955 Set maximum local UDP port. Default value is 65000.
14956
14957 listen_timeout
14958 Set maximum timeout (in seconds) to establish an initial
14959 connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
14960 Default is -1 which means an infinite timeout when listen mode is
14961 set.
14962
14963 reorder_queue_size
14964 Set number of packets to buffer for handling of reordered packets.
14965
14966 timeout
14967 Set socket TCP I/O timeout in microseconds.
14968
14969 user_agent
14970 Override User-Agent header. If not specified, it defaults to the
14971 libavformat identifier string.
14972
14973 When receiving data over UDP, the demuxer tries to reorder received
14974 packets (since they may arrive out of order, or packets may get lost
14975 totally). This can be disabled by setting the maximum demuxing delay to
14976 zero (via the "max_delay" field of AVFormatContext).
14977
14978 When watching multi-bitrate Real-RTSP streams with ffplay, the streams
14979 to display can be chosen with "-vst" n and "-ast" n for video and audio
14980 respectively, and can be switched on the fly by pressing "v" and "a".
14981
14982 Examples
14983
14984 The following examples all make use of the ffplay and ffmpeg tools.
14985
14986 • Watch a stream over UDP, with a max reordering delay of 0.5
14987 seconds:
14988
14989 ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
14990
14991 • Watch a stream tunneled over HTTP:
14992
14993 ffplay -rtsp_transport http rtsp://server/video.mp4
14994
14995 • Send a stream in realtime to a RTSP server, for others to watch:
14996
14997 ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
14998
14999 • Receive a stream in realtime:
15000
15001 ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
15002
15003 sap
15004 Session Announcement Protocol (RFC 2974). This is not technically a
15005 protocol handler in libavformat, it is a muxer and demuxer. It is used
15006 for signalling of RTP streams, by announcing the SDP for the streams
15007 regularly on a separate port.
15008
15009 Muxer
15010
15011 The syntax for a SAP url given to the muxer is:
15012
15013 sap://<destination>[:<port>][?<options>]
15014
15015 The RTP packets are sent to destination on port port, or to port 5004
15016 if no port is specified. options is a "&"-separated list. The
15017 following options are supported:
15018
15019 announce_addr=address
15020 Specify the destination IP address for sending the announcements
15021 to. If omitted, the announcements are sent to the commonly used
15022 SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
15023 or ff0e::2:7ffe if destination is an IPv6 address.
15024
15025 announce_port=port
15026 Specify the port to send the announcements on, defaults to 9875 if
15027 not specified.
15028
15029 ttl=ttl
15030 Specify the time to live value for the announcements and RTP
15031 packets, defaults to 255.
15032
15033 same_port=0|1
15034 If set to 1, send all RTP streams on the same port pair. If zero
15035 (the default), all streams are sent on unique ports, with each
15036 stream on a port 2 numbers higher than the previous. VLC/Live555
15037 requires this to be set to 1, to be able to receive the stream.
15038 The RTP stack in libavformat for receiving requires all streams to
15039 be sent on unique ports.
15040
15041 Example command lines follow.
15042
15043 To broadcast a stream on the local subnet, for watching in VLC:
15044
15045 ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
15046
15047 Similarly, for watching in ffplay:
15048
15049 ffmpeg -re -i <input> -f sap sap://224.0.0.255
15050
15051 And for watching in ffplay, over IPv6:
15052
15053 ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
15054
15055 Demuxer
15056
15057 The syntax for a SAP url given to the demuxer is:
15058
15059 sap://[<address>][:<port>]
15060
15061 address is the multicast address to listen for announcements on, if
15062 omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
15063 port that is listened on, 9875 if omitted.
15064
15065 The demuxers listens for announcements on the given address and port.
15066 Once an announcement is received, it tries to receive that particular
15067 stream.
15068
15069 Example command lines follow.
15070
15071 To play back the first stream announced on the normal SAP multicast
15072 address:
15073
15074 ffplay sap://
15075
15076 To play back the first stream announced on one the default IPv6 SAP
15077 multicast address:
15078
15079 ffplay sap://[ff0e::2:7ffe]
15080
15081 sctp
15082 Stream Control Transmission Protocol.
15083
15084 The accepted URL syntax is:
15085
15086 sctp://<host>:<port>[?<options>]
15087
15088 The protocol accepts the following options:
15089
15090 listen
15091 If set to any value, listen for an incoming connection. Outgoing
15092 connection is done by default.
15093
15094 max_streams
15095 Set the maximum number of streams. By default no limit is set.
15096
15097 srt
15098 Haivision Secure Reliable Transport Protocol via libsrt.
15099
15100 The supported syntax for a SRT URL is:
15101
15102 srt://<hostname>:<port>[?<options>]
15103
15104 options contains a list of &-separated options of the form key=val.
15105
15106 or
15107
15108 <options> srt://<hostname>:<port>
15109
15110 options contains a list of '-key val' options.
15111
15112 This protocol accepts the following options.
15113
15114 connect_timeout=milliseconds
15115 Connection timeout; SRT cannot connect for RTT > 1500 msec (2
15116 handshake exchanges) with the default connect timeout of 3 seconds.
15117 This option applies to the caller and rendezvous connection modes.
15118 The connect timeout is 10 times the value set for the rendezvous
15119 mode (which can be used as a workaround for this connection problem
15120 with earlier versions).
15121
15122 ffs=bytes
15123 Flight Flag Size (Window Size), in bytes. FFS is actually an
15124 internal parameter and you should set it to not less than
15125 recv_buffer_size and mss. The default value is relatively large,
15126 therefore unless you set a very large receiver buffer, you do not
15127 need to change this option. Default value is 25600.
15128
15129 inputbw=bytes/seconds
15130 Sender nominal input rate, in bytes per seconds. Used along with
15131 oheadbw, when maxbw is set to relative (0), to calculate maximum
15132 sending rate when recovery packets are sent along with the main
15133 media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
15134 while maxbw is set to relative (0), the actual input rate is
15135 evaluated inside the library. Default value is 0.
15136
15137 iptos=tos
15138 IP Type of Service. Applies to sender only. Default value is 0xB8.
15139
15140 ipttl=ttl
15141 IP Time To Live. Applies to sender only. Default value is 64.
15142
15143 latency=microseconds
15144 Timestamp-based Packet Delivery Delay. Used to absorb bursts of
15145 missed packet retransmissions. This flag sets both rcvlatency and
15146 peerlatency to the same value. Note that prior to version 1.3.0
15147 this is the only flag to set the latency, however this is
15148 effectively equivalent to setting peerlatency, when side is sender
15149 and rcvlatency when side is receiver, and the bidirectional stream
15150 sending is not supported.
15151
15152 listen_timeout=microseconds
15153 Set socket listen timeout.
15154
15155 maxbw=bytes/seconds
15156 Maximum sending bandwidth, in bytes per seconds. -1 infinite
15157 (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
15158 absolute limit value Default value is 0 (relative)
15159
15160 mode=caller|listener|rendezvous
15161 Connection mode. caller opens client connection. listener starts
15162 server to listen for incoming connections. rendezvous use Rendez-
15163 Vous connection mode. Default value is caller.
15164
15165 mss=bytes
15166 Maximum Segment Size, in bytes. Used for buffer allocation and rate
15167 calculation using a packet counter assuming fully filled packets.
15168 The smallest MSS between the peers is used. This is 1500 by default
15169 in the overall internet. This is the maximum size of the UDP
15170 packet and can be only decreased, unless you have some unusual
15171 dedicated network settings. Default value is 1500.
15172
15173 nakreport=1|0
15174 If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
15175 periodically until a lost packet is retransmitted or intentionally
15176 dropped. Default value is 1.
15177
15178 oheadbw=percents
15179 Recovery bandwidth overhead above input rate, in percents. See
15180 inputbw. Default value is 25%.
15181
15182 passphrase=string
15183 HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
15184 79 characters. The passphrase is the shared secret between the
15185 sender and the receiver. It is used to generate the Key Encrypting
15186 Key using PBKDF2 (Password-Based Key Derivation Function). It is
15187 used only if pbkeylen is non-zero. It is used on the receiver only
15188 if the received data is encrypted. The configured passphrase
15189 cannot be recovered (write-only).
15190
15191 enforced_encryption=1|0
15192 If true, both connection parties must have the same password set
15193 (including empty, that is, with no encryption). If the password
15194 doesn't match or only one side is unencrypted, the connection is
15195 rejected. Default is true.
15196
15197 kmrefreshrate=packets
15198 The number of packets to be transmitted after which the encryption
15199 key is switched to a new key. Default is -1. -1 means auto
15200 (0x1000000 in srt library). The range for this option is integers
15201 in the 0 - "INT_MAX".
15202
15203 kmpreannounce=packets
15204 The interval between when a new encryption key is sent and when
15205 switchover occurs. This value also applies to the subsequent
15206 interval between when switchover occurs and when the old encryption
15207 key is decommissioned. Default is -1. -1 means auto (0x1000 in srt
15208 library). The range for this option is integers in the 0 -
15209 "INT_MAX".
15210
15211 snddropdelay=microseconds
15212 The sender's extra delay before dropping packets. This delay is
15213 added to the default drop delay time interval value.
15214
15215 Special value -1: Do not drop packets on the sender at all.
15216
15217 payload_size=bytes
15218 Sets the maximum declared size of a packet transferred during the
15219 single call to the sending function in Live mode. Use 0 if this
15220 value isn't used (which is default in file mode). Default is -1
15221 (automatic), which typically means MPEG-TS; if you are going to use
15222 SRT to send any different kind of payload, such as, for example,
15223 wrapping a live stream in very small frames, then you can use a
15224 bigger maximum frame size, though not greater than 1456 bytes.
15225
15226 pkt_size=bytes
15227 Alias for payload_size.
15228
15229 peerlatency=microseconds
15230 The latency value (as described in rcvlatency) that is set by the
15231 sender side as a minimum value for the receiver.
15232
15233 pbkeylen=bytes
15234 Sender encryption key length, in bytes. Only can be set to 0, 16,
15235 24 and 32. Enable sender encryption if not 0. Not required on
15236 receiver (set to 0), key size obtained from sender in HaiCrypt
15237 handshake. Default value is 0.
15238
15239 rcvlatency=microseconds
15240 The time that should elapse since the moment when the packet was
15241 sent and the moment when it's delivered to the receiver application
15242 in the receiving function. This time should be a buffer time large
15243 enough to cover the time spent for sending, unexpectedly extended
15244 RTT time, and the time needed to retransmit the lost UDP packet.
15245 The effective latency value will be the maximum of this options'
15246 value and the value of peerlatency set by the peer side. Before
15247 version 1.3.0 this option is only available as latency.
15248
15249 recv_buffer_size=bytes
15250 Set UDP receive buffer size, expressed in bytes.
15251
15252 send_buffer_size=bytes
15253 Set UDP send buffer size, expressed in bytes.
15254
15255 timeout=microseconds
15256 Set raise error timeouts for read, write and connect operations.
15257 Note that the SRT library has internal timeouts which can be
15258 controlled separately, the value set here is only a cap on those.
15259
15260 tlpktdrop=1|0
15261 Too-late Packet Drop. When enabled on receiver, it skips missing
15262 packets that have not been delivered in time and delivers the
15263 following packets to the application when their time-to-play has
15264 come. It also sends a fake ACK to the sender. When enabled on
15265 sender and enabled on the receiving peer, the sender drops the
15266 older packets that have no chance of being delivered in time. It
15267 was automatically enabled in the sender if the receiver supports
15268 it.
15269
15270 sndbuf=bytes
15271 Set send buffer size, expressed in bytes.
15272
15273 rcvbuf=bytes
15274 Set receive buffer size, expressed in bytes.
15275
15276 Receive buffer must not be greater than ffs.
15277
15278 lossmaxttl=packets
15279 The value up to which the Reorder Tolerance may grow. When Reorder
15280 Tolerance is > 0, then packet loss report is delayed until that
15281 number of packets come in. Reorder Tolerance increases every time a
15282 "belated" packet has come, but it wasn't due to retransmission
15283 (that is, when UDP packets tend to come out of order), with the
15284 difference between the latest sequence and this packet's sequence,
15285 and not more than the value of this option. By default it's 0,
15286 which means that this mechanism is turned off, and the loss report
15287 is always sent immediately upon experiencing a "gap" in sequences.
15288
15289 minversion
15290 The minimum SRT version that is required from the peer. A
15291 connection to a peer that does not satisfy the minimum version
15292 requirement will be rejected.
15293
15294 The version format in hex is 0xXXYYZZ for x.y.z in human readable
15295 form.
15296
15297 streamid=string
15298 A string limited to 512 characters that can be set on the socket
15299 prior to connecting. This stream ID will be able to be retrieved by
15300 the listener side from the socket that is returned from srt_accept
15301 and was connected by a socket with that set stream ID. SRT does not
15302 enforce any special interpretation of the contents of this string.
15303 This option doesnXt make sense in Rendezvous connection; the result
15304 might be that simply one side will override the value from the
15305 other side and itXs the matter of luck which one would win
15306
15307 srt_streamid=string
15308 Alias for streamid to avoid conflict with ffmpeg command line
15309 option.
15310
15311 smoother=live|file
15312 The type of Smoother used for the transmission for that socket,
15313 which is responsible for the transmission and congestion control.
15314 The Smoother type must be exactly the same on both connecting
15315 parties, otherwise the connection is rejected.
15316
15317 messageapi=1|0
15318 When set, this socket uses the Message API, otherwise it uses
15319 Buffer API. Note that in live mode (see transtype) thereXs only
15320 message API available. In File mode you can chose to use one of two
15321 modes:
15322
15323 Stream API (default, when this option is false). In this mode you
15324 may send as many data as you wish with one sending instruction, or
15325 even use dedicated functions that read directly from a file. The
15326 internal facility will take care of any speed and congestion
15327 control. When receiving, you can also receive as many data as
15328 desired, the data not extracted will be waiting for the next call.
15329 There is no boundary between data portions in the Stream mode.
15330
15331 Message API. In this mode your single sending instruction passes
15332 exactly one piece of data that has boundaries (a message). Contrary
15333 to Live mode, this message may span across multiple UDP packets and
15334 the only size limitation is that it shall fit as a whole in the
15335 sending buffer. The receiver shall use as large buffer as necessary
15336 to receive the message, otherwise the message will not be given up.
15337 When the message is not complete (not all packets received or there
15338 was a packet loss) it will not be given up.
15339
15340 transtype=live|file
15341 Sets the transmission type for the socket, in particular, setting
15342 this option sets multiple other parameters to their default values
15343 as required for a particular transmission type.
15344
15345 live: Set options as for live transmission. In this mode, you
15346 should send by one sending instruction only so many data that fit
15347 in one UDP packet, and limited to the value defined first in
15348 payload_size (1316 is default in this mode). There is no speed
15349 control in this mode, only the bandwidth control, if configured, in
15350 order to not exceed the bandwidth with the overhead transmission
15351 (retransmitted and control packets).
15352
15353 file: Set options as for non-live transmission. See messageapi for
15354 further explanations
15355
15356 linger=seconds
15357 The number of seconds that the socket waits for unsent data when
15358 closing. Default is -1. -1 means auto (off with 0 seconds in live
15359 mode, on with 180 seconds in file mode). The range for this option
15360 is integers in the 0 - "INT_MAX".
15361
15362 tsbpd=1|0
15363 When true, use Timestamp-based Packet Delivery mode. The default
15364 behavior depends on the transmission type: enabled in live mode,
15365 disabled in file mode.
15366
15367 For more information see: <https://github.com/Haivision/srt>.
15368
15369 srtp
15370 Secure Real-time Transport Protocol.
15371
15372 The accepted options are:
15373
15374 srtp_in_suite
15375 srtp_out_suite
15376 Select input and output encoding suites.
15377
15378 Supported values:
15379
15380 AES_CM_128_HMAC_SHA1_80
15381 SRTP_AES128_CM_HMAC_SHA1_80
15382 AES_CM_128_HMAC_SHA1_32
15383 SRTP_AES128_CM_HMAC_SHA1_32
15384 srtp_in_params
15385 srtp_out_params
15386 Set input and output encoding parameters, which are expressed by a
15387 base64-encoded representation of a binary block. The first 16 bytes
15388 of this binary block are used as master key, the following 14 bytes
15389 are used as master salt.
15390
15391 subfile
15392 Virtually extract a segment of a file or another stream. The
15393 underlying stream must be seekable.
15394
15395 Accepted options:
15396
15397 start
15398 Start offset of the extracted segment, in bytes.
15399
15400 end End offset of the extracted segment, in bytes. If set to 0,
15401 extract till end of file.
15402
15403 Examples:
15404
15405 Extract a chapter from a DVD VOB file (start and end sectors obtained
15406 externally and multiplied by 2048):
15407
15408 subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
15409
15410 Play an AVI file directly from a TAR archive:
15411
15412 subfile,,start,183241728,end,366490624,,:archive.tar
15413
15414 Play a MPEG-TS file from start offset till end:
15415
15416 subfile,,start,32815239,end,0,,:video.ts
15417
15418 tee
15419 Writes the output to multiple protocols. The individual outputs are
15420 separated by |
15421
15422 tee:file://path/to/local/this.avi|file://path/to/local/that.avi
15423
15424 tcp
15425 Transmission Control Protocol.
15426
15427 The required syntax for a TCP url is:
15428
15429 tcp://<hostname>:<port>[?<options>]
15430
15431 options contains a list of &-separated options of the form key=val.
15432
15433 The list of supported options follows.
15434
15435 listen=2|1|0
15436 Listen for an incoming connection. 0 disables listen, 1 enables
15437 listen in single client mode, 2 enables listen in multi-client
15438 mode. Default value is 0.
15439
15440 timeout=microseconds
15441 Set raise error timeout, expressed in microseconds.
15442
15443 This option is only relevant in read mode: if no data arrived in
15444 more than this time interval, raise error.
15445
15446 listen_timeout=milliseconds
15447 Set listen timeout, expressed in milliseconds.
15448
15449 recv_buffer_size=bytes
15450 Set receive buffer size, expressed bytes.
15451
15452 send_buffer_size=bytes
15453 Set send buffer size, expressed bytes.
15454
15455 tcp_nodelay=1|0
15456 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
15457
15458 Remark: Writing to the socket is currently not optimized to
15459 minimize system calls and reduces the efficiency / effect of
15460 TCP_NODELAY.
15461
15462 tcp_mss=bytes
15463 Set maximum segment size for outgoing TCP packets, expressed in
15464 bytes.
15465
15466 The following example shows how to setup a listening TCP connection
15467 with ffmpeg, which is then accessed with ffplay:
15468
15469 ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
15470 ffplay tcp://<hostname>:<port>
15471
15472 tls
15473 Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
15474
15475 The required syntax for a TLS/SSL url is:
15476
15477 tls://<hostname>:<port>[?<options>]
15478
15479 The following parameters can be set via command line options (or in
15480 code via "AVOption"s):
15481
15482 ca_file, cafile=filename
15483 A file containing certificate authority (CA) root certificates to
15484 treat as trusted. If the linked TLS library contains a default this
15485 might not need to be specified for verification to work, but not
15486 all libraries and setups have defaults built in. The file must be
15487 in OpenSSL PEM format.
15488
15489 tls_verify=1|0
15490 If enabled, try to verify the peer that we are communicating with.
15491 Note, if using OpenSSL, this currently only makes sure that the
15492 peer certificate is signed by one of the root certificates in the
15493 CA database, but it does not validate that the certificate actually
15494 matches the host name we are trying to connect to. (With other
15495 backends, the host name is validated as well.)
15496
15497 This is disabled by default since it requires a CA database to be
15498 provided by the caller in many cases.
15499
15500 cert_file, cert=filename
15501 A file containing a certificate to use in the handshake with the
15502 peer. (When operating as server, in listen mode, this is more
15503 often required by the peer, while client certificates only are
15504 mandated in certain setups.)
15505
15506 key_file, key=filename
15507 A file containing the private key for the certificate.
15508
15509 listen=1|0
15510 If enabled, listen for connections on the provided port, and assume
15511 the server role in the handshake instead of the client role.
15512
15513 http_proxy
15514 The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
15515 The proxy must support the CONNECT method.
15516
15517 Example command lines:
15518
15519 To create a TLS/SSL server that serves an input stream.
15520
15521 ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
15522
15523 To play back a stream from the TLS/SSL server using ffplay:
15524
15525 ffplay tls://<hostname>:<port>
15526
15527 udp
15528 User Datagram Protocol.
15529
15530 The required syntax for an UDP URL is:
15531
15532 udp://<hostname>:<port>[?<options>]
15533
15534 options contains a list of &-separated options of the form key=val.
15535
15536 In case threading is enabled on the system, a circular buffer is used
15537 to store the incoming data, which allows one to reduce loss of data due
15538 to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
15539 options are related to this buffer.
15540
15541 The list of supported options follows.
15542
15543 buffer_size=size
15544 Set the UDP maximum socket buffer size in bytes. This is used to
15545 set either the receive or send buffer size, depending on what the
15546 socket is used for. Default is 32 KB for output, 384 KB for input.
15547 See also fifo_size.
15548
15549 bitrate=bitrate
15550 If set to nonzero, the output will have the specified constant
15551 bitrate if the input has enough packets to sustain it.
15552
15553 burst_bits=bits
15554 When using bitrate this specifies the maximum number of bits in
15555 packet bursts.
15556
15557 localport=port
15558 Override the local UDP port to bind with.
15559
15560 localaddr=addr
15561 Local IP address of a network interface used for sending packets or
15562 joining multicast groups.
15563
15564 pkt_size=size
15565 Set the size in bytes of UDP packets.
15566
15567 reuse=1|0
15568 Explicitly allow or disallow reusing UDP sockets.
15569
15570 ttl=ttl
15571 Set the time to live value (for multicast only).
15572
15573 connect=1|0
15574 Initialize the UDP socket with "connect()". In this case, the
15575 destination address can't be changed with ff_udp_set_remote_url
15576 later. If the destination address isn't known at the start, this
15577 option can be specified in ff_udp_set_remote_url, too. This allows
15578 finding out the source address for the packets with getsockname,
15579 and makes writes return with AVERROR(ECONNREFUSED) if "destination
15580 unreachable" is received. For receiving, this gives the benefit of
15581 only receiving packets from the specified peer address/port.
15582
15583 sources=address[,address]
15584 Only receive packets sent from the specified addresses. In case of
15585 multicast, also subscribe to multicast traffic coming from these
15586 addresses only.
15587
15588 block=address[,address]
15589 Ignore packets sent from the specified addresses. In case of
15590 multicast, also exclude the source addresses in the multicast
15591 subscription.
15592
15593 fifo_size=units
15594 Set the UDP receiving circular buffer size, expressed as a number
15595 of packets with size of 188 bytes. If not specified defaults to
15596 7*4096.
15597
15598 overrun_nonfatal=1|0
15599 Survive in case of UDP receiving circular buffer overrun. Default
15600 value is 0.
15601
15602 timeout=microseconds
15603 Set raise error timeout, expressed in microseconds.
15604
15605 This option is only relevant in read mode: if no data arrived in
15606 more than this time interval, raise error.
15607
15608 broadcast=1|0
15609 Explicitly allow or disallow UDP broadcasting.
15610
15611 Note that broadcasting may not work properly on networks having a
15612 broadcast storm protection.
15613
15614 Examples
15615
15616 • Use ffmpeg to stream over UDP to a remote endpoint:
15617
15618 ffmpeg -i <input> -f <format> udp://<hostname>:<port>
15619
15620 • Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
15621 packets, using a large input buffer:
15622
15623 ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
15624
15625 • Use ffmpeg to receive over UDP from a remote endpoint:
15626
15627 ffmpeg -i udp://[<multicast-address>]:<port> ...
15628
15629 unix
15630 Unix local socket
15631
15632 The required syntax for a Unix socket URL is:
15633
15634 unix://<filepath>
15635
15636 The following parameters can be set via command line options (or in
15637 code via "AVOption"s):
15638
15639 timeout
15640 Timeout in ms.
15641
15642 listen
15643 Create the Unix socket in listening mode.
15644
15645 zmq
15646 ZeroMQ asynchronous messaging using the libzmq library.
15647
15648 This library supports unicast streaming to multiple clients without
15649 relying on an external server.
15650
15651 The required syntax for streaming or connecting to a stream is:
15652
15653 zmq:tcp://ip-address:port
15654
15655 Example: Create a localhost stream on port 5555:
15656
15657 ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
15658
15659 Multiple clients may connect to the stream using:
15660
15661 ffplay zmq:tcp://127.0.0.1:5555
15662
15663 Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
15664 pattern. The server side binds to a port and publishes data. Clients
15665 connect to the server (via IP address/port) and subscribe to the
15666 stream. The order in which the server and client start generally does
15667 not matter.
15668
15669 ffmpeg must be compiled with the --enable-libzmq option to support this
15670 protocol.
15671
15672 Options can be set on the ffmpeg/ffplay command line. The following
15673 options are supported:
15674
15675 pkt_size
15676 Forces the maximum packet size for sending/receiving data. The
15677 default value is 131,072 bytes. On the server side, this sets the
15678 maximum size of sent packets via ZeroMQ. On the clients, it sets an
15679 internal buffer size for receiving packets. Note that pkt_size on
15680 the clients should be equal to or greater than pkt_size on the
15681 server. Otherwise the received message may be truncated causing
15682 decoding errors.
15683
15685 The libavdevice library provides the same interface as libavformat.
15686 Namely, an input device is considered like a demuxer, and an output
15687 device like a muxer, and the interface and generic device options are
15688 the same provided by libavformat (see the ffmpeg-formats manual).
15689
15690 In addition each input or output device may support so-called private
15691 options, which are specific for that component.
15692
15693 Options may be set by specifying -option value in the FFmpeg tools, or
15694 by setting the value explicitly in the device "AVFormatContext" options
15695 or using the libavutil/opt.h API for programmatic use.
15696
15698 Input devices are configured elements in FFmpeg which enable accessing
15699 the data coming from a multimedia device attached to your system.
15700
15701 When you configure your FFmpeg build, all the supported input devices
15702 are enabled by default. You can list all available ones using the
15703 configure option "--list-indevs".
15704
15705 You can disable all the input devices using the configure option
15706 "--disable-indevs", and selectively enable an input device using the
15707 option "--enable-indev=INDEV", or you can disable a particular input
15708 device using the option "--disable-indev=INDEV".
15709
15710 The option "-devices" of the ff* tools will display the list of
15711 supported input devices.
15712
15713 A description of the currently available input devices follows.
15714
15715 alsa
15716 ALSA (Advanced Linux Sound Architecture) input device.
15717
15718 To enable this input device during configuration you need libasound
15719 installed on your system.
15720
15721 This device allows capturing from an ALSA device. The name of the
15722 device to capture has to be an ALSA card identifier.
15723
15724 An ALSA identifier has the syntax:
15725
15726 hw:<CARD>[,<DEV>[,<SUBDEV>]]
15727
15728 where the DEV and SUBDEV components are optional.
15729
15730 The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
15731 identifier, device number and subdevice number (-1 means any).
15732
15733 To see the list of cards currently recognized by your system check the
15734 files /proc/asound/cards and /proc/asound/devices.
15735
15736 For example to capture with ffmpeg from an ALSA device with card id 0,
15737 you may run the command:
15738
15739 ffmpeg -f alsa -i hw:0 alsaout.wav
15740
15741 For more information see:
15742 <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
15743
15744 Options
15745
15746 sample_rate
15747 Set the sample rate in Hz. Default is 48000.
15748
15749 channels
15750 Set the number of channels. Default is 2.
15751
15752 android_camera
15753 Android camera input device.
15754
15755 This input devices uses the Android Camera2 NDK API which is available
15756 on devices with API level 24+. The availability of android_camera is
15757 autodetected during configuration.
15758
15759 This device allows capturing from all cameras on an Android device,
15760 which are integrated into the Camera2 NDK API.
15761
15762 The available cameras are enumerated internally and can be selected
15763 with the camera_index parameter. The input file string is discarded.
15764
15765 Generally the back facing camera has index 0 while the front facing
15766 camera has index 1.
15767
15768 Options
15769
15770 video_size
15771 Set the video size given as a string such as 640x480 or hd720.
15772 Falls back to the first available configuration reported by Android
15773 if requested video size is not available or by default.
15774
15775 framerate
15776 Set the video framerate. Falls back to the first available
15777 configuration reported by Android if requested framerate is not
15778 available or by default (-1).
15779
15780 camera_index
15781 Set the index of the camera to use. Default is 0.
15782
15783 input_queue_size
15784 Set the maximum number of frames to buffer. Default is 5.
15785
15786 avfoundation
15787 AVFoundation input device.
15788
15789 AVFoundation is the currently recommended framework by Apple for
15790 streamgrabbing on OSX >= 10.7 as well as on iOS.
15791
15792 The input filename has to be given in the following syntax:
15793
15794 -i "[[VIDEO]:[AUDIO]]"
15795
15796 The first entry selects the video input while the latter selects the
15797 audio input. The stream has to be specified by the device name or the
15798 device index as shown by the device list. Alternatively, the video
15799 and/or audio input device can be chosen by index using the
15800
15801 B<-video_device_index E<lt>INDEXE<gt>>
15802
15803 and/or
15804
15805 B<-audio_device_index E<lt>INDEXE<gt>>
15806
15807 , overriding any device name or index given in the input filename.
15808
15809 All available devices can be enumerated by using -list_devices true,
15810 listing all device names and corresponding indices.
15811
15812 There are two device name aliases:
15813
15814 "default"
15815 Select the AVFoundation default device of the corresponding type.
15816
15817 "none"
15818 Do not record the corresponding media type. This is equivalent to
15819 specifying an empty device name or index.
15820
15821 Options
15822
15823 AVFoundation supports the following options:
15824
15825 -list_devices <TRUE|FALSE>
15826 If set to true, a list of all available input devices is given
15827 showing all device names and indices.
15828
15829 -video_device_index <INDEX>
15830 Specify the video device by its index. Overrides anything given in
15831 the input filename.
15832
15833 -audio_device_index <INDEX>
15834 Specify the audio device by its index. Overrides anything given in
15835 the input filename.
15836
15837 -pixel_format <FORMAT>
15838 Request the video device to use a specific pixel format. If the
15839 specified format is not supported, a list of available formats is
15840 given and the first one in this list is used instead. Available
15841 pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
15842 rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
15843 bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
15844 yuv422p10, yuv444p10,
15845 yuv420p, nv12, yuyv422, gray"
15846
15847 -framerate
15848 Set the grabbing frame rate. Default is "ntsc", corresponding to a
15849 frame rate of "30000/1001".
15850
15851 -video_size
15852 Set the video frame size.
15853
15854 -capture_cursor
15855 Capture the mouse pointer. Default is 0.
15856
15857 -capture_mouse_clicks
15858 Capture the screen mouse clicks. Default is 0.
15859
15860 -capture_raw_data
15861 Capture the raw device data. Default is 0. Using this option may
15862 result in receiving the underlying data delivered to the
15863 AVFoundation framework. E.g. for muxed devices that sends raw DV
15864 data to the framework (like tape-based camcorders), setting this
15865 option to false results in extracted video frames captured in the
15866 designated pixel format only. Setting this option to true results
15867 in receiving the raw DV stream untouched.
15868
15869 Examples
15870
15871 • Print the list of AVFoundation supported devices and exit:
15872
15873 $ ffmpeg -f avfoundation -list_devices true -i ""
15874
15875 • Record video from video device 0 and audio from audio device 0 into
15876 out.avi:
15877
15878 $ ffmpeg -f avfoundation -i "0:0" out.avi
15879
15880 • Record video from video device 2 and audio from audio device 1 into
15881 out.avi:
15882
15883 $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
15884
15885 • Record video from the system default video device using the pixel
15886 format bgr0 and do not record any audio into out.avi:
15887
15888 $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
15889
15890 • Record raw DV data from a suitable input device and write the
15891 output into out.dv:
15892
15893 $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
15894
15895 bktr
15896 BSD video input device.
15897
15898 Options
15899
15900 framerate
15901 Set the frame rate.
15902
15903 video_size
15904 Set the video frame size. Default is "vga".
15905
15906 standard
15907 Available values are:
15908
15909 pal
15910 ntsc
15911 secam
15912 paln
15913 palm
15914 ntscj
15915
15916 decklink
15917 The decklink input device provides capture capabilities for Blackmagic
15918 DeckLink devices.
15919
15920 To enable this input device, you need the Blackmagic DeckLink SDK and
15921 you need to configure with the appropriate "--extra-cflags" and
15922 "--extra-ldflags". On Windows, you need to run the IDL files through
15923 widl.
15924
15925 DeckLink is very picky about the formats it supports. Pixel format of
15926 the input can be set with raw_format. Framerate and video size must be
15927 determined for your device with -list_formats 1. Audio sample rate is
15928 always 48 kHz and the number of channels can be 2, 8 or 16. Note that
15929 all audio channels are bundled in one single audio track.
15930
15931 Options
15932
15933 list_devices
15934 If set to true, print a list of devices and exit. Defaults to
15935 false. This option is deprecated, please use the "-sources" option
15936 of ffmpeg to list the available input devices.
15937
15938 list_formats
15939 If set to true, print a list of supported formats and exit.
15940 Defaults to false.
15941
15942 format_code <FourCC>
15943 This sets the input video format to the format given by the FourCC.
15944 To see the supported values of your device(s) use list_formats.
15945 Note that there is a FourCC 'pal ' that can also be used as pal (3
15946 letters). Default behavior is autodetection of the input video
15947 format, if the hardware supports it.
15948
15949 raw_format
15950 Set the pixel format of the captured video. Available values are:
15951
15952 auto
15953 This is the default which means 8-bit YUV 422 or 8-bit ARGB if
15954 format autodetection is used, 8-bit YUV 422 otherwise.
15955
15956 uyvy422
15957 8-bit YUV 422.
15958
15959 yuv422p10
15960 10-bit YUV 422.
15961
15962 argb
15963 8-bit RGB.
15964
15965 bgra
15966 8-bit RGB.
15967
15968 rgb10
15969 10-bit RGB.
15970
15971 teletext_lines
15972 If set to nonzero, an additional teletext stream will be captured
15973 from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
15974 or 1080p) sources are supported. In case of HD sources, OP47
15975 packets are decoded.
15976
15977 This option is a bitmask of the SD PAL VBI lines captured,
15978 specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
15979 in the mask. Selected lines which do not contain teletext
15980 information will be ignored. You can use the special all constant
15981 to select all possible lines, or standard to skip lines 6, 318 and
15982 319, which are not compatible with all receivers.
15983
15984 For SD sources, ffmpeg needs to be compiled with
15985 "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
15986 models you have to capture in 10 bit mode.
15987
15988 channels
15989 Defines number of audio channels to capture. Must be 2, 8 or 16.
15990 Defaults to 2.
15991
15992 duplex_mode
15993 Sets the decklink device duplex/profile mode. Must be unset, half,
15994 full, one_sub_device_full, one_sub_device_half,
15995 two_sub_device_full, four_sub_device_half Defaults to unset.
15996
15997 Note: DeckLink SDK 11.0 have replaced the duplex property by a
15998 profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
15999 profile is shared between any 2 sub-devices that utilize the same
16000 connectors. For the DeckLink 8K Pro, a profile is shared between
16001 all 4 sub-devices. So DeckLink 8K Pro support four profiles.
16002
16003 Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
16004 one_sub_device_full, one_sub_device_half, two_sub_device_full,
16005 four_sub_device_half
16006
16007 Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
16008 full
16009
16010 timecode_format
16011 Timecode type to include in the frame and video stream metadata.
16012 Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
16013 vitc, vitc2, or serial. Defaults to none (not included).
16014
16015 In order to properly support 50/60 fps timecodes, the ordering of
16016 the queried timecode types for rp188any is HFR, VITC1, VITC2 and
16017 LTC for >30 fps content. Note that this is slightly different to
16018 the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
16019 VITC2.
16020
16021 video_input
16022 Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
16023 component, composite or s_video. Defaults to unset.
16024
16025 audio_input
16026 Sets the audio input source. Must be unset, embedded, aes_ebu,
16027 analog, analog_xlr, analog_rca or microphone. Defaults to unset.
16028
16029 video_pts
16030 Sets the video packet timestamp source. Must be video, audio,
16031 reference, wallclock or abs_wallclock. Defaults to video.
16032
16033 audio_pts
16034 Sets the audio packet timestamp source. Must be video, audio,
16035 reference, wallclock or abs_wallclock. Defaults to audio.
16036
16037 draw_bars
16038 If set to true, color bars are drawn in the event of a signal loss.
16039 Defaults to true.
16040
16041 queue_size
16042 Sets maximum input buffer size in bytes. If the buffering reaches
16043 this value, incoming frames will be dropped. Defaults to
16044 1073741824.
16045
16046 audio_depth
16047 Sets the audio sample bit depth. Must be 16 or 32. Defaults to 16.
16048
16049 decklink_copyts
16050 If set to true, timestamps are forwarded as they are without
16051 removing the initial offset. Defaults to false.
16052
16053 timestamp_align
16054 Capture start time alignment in seconds. If set to nonzero, input
16055 frames are dropped till the system timestamp aligns with configured
16056 value. Alignment difference of up to one frame duration is
16057 tolerated. This is useful for maintaining input synchronization
16058 across N different hardware devices deployed for 'N-way'
16059 redundancy. The system time of different hardware devices should be
16060 synchronized with protocols such as NTP or PTP, before using this
16061 option. Note that this method is not foolproof. In some border
16062 cases input synchronization may not happen due to thread scheduling
16063 jitters in the OS. Either sync could go wrong by 1 frame or in a
16064 rarer case timestamp_align seconds. Defaults to 0.
16065
16066 wait_for_tc (bool)
16067 Drop frames till a frame with timecode is received. Sometimes
16068 serial timecode isn't received with the first input frame. If that
16069 happens, the stored stream timecode will be inaccurate. If this
16070 option is set to true, input frames are dropped till a frame with
16071 timecode is received. Option timecode_format must be specified.
16072 Defaults to false.
16073
16074 enable_klv(bool)
16075 If set to true, extracts KLV data from VANC and outputs KLV
16076 packets. KLV VANC packets are joined based on MID and PSC fields
16077 and aggregated into one KLV packet. Defaults to false.
16078
16079 Examples
16080
16081 • List input devices:
16082
16083 ffmpeg -sources decklink
16084
16085 • List supported formats:
16086
16087 ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
16088
16089 • Capture video clip at 1080i50:
16090
16091 ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
16092
16093 • Capture video clip at 1080i50 10 bit:
16094
16095 ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
16096
16097 • Capture video clip at 1080i50 with 16 audio channels:
16098
16099 ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
16100
16101 dshow
16102 Windows DirectShow input device.
16103
16104 DirectShow support is enabled when FFmpeg is built with the mingw-w64
16105 project. Currently only audio and video devices are supported.
16106
16107 Multiple devices may be opened as separate inputs, but they may also be
16108 opened on the same input, which should improve synchronism between
16109 them.
16110
16111 The input name should be in the format:
16112
16113 <TYPE>=<NAME>[:<TYPE>=<NAME>]
16114
16115 where TYPE can be either audio or video, and NAME is the device's name
16116 or alternative name..
16117
16118 Options
16119
16120 If no options are specified, the device's defaults are used. If the
16121 device does not support the requested options, it will fail to open.
16122
16123 video_size
16124 Set the video size in the captured video.
16125
16126 framerate
16127 Set the frame rate in the captured video.
16128
16129 sample_rate
16130 Set the sample rate (in Hz) of the captured audio.
16131
16132 sample_size
16133 Set the sample size (in bits) of the captured audio.
16134
16135 channels
16136 Set the number of channels in the captured audio.
16137
16138 list_devices
16139 If set to true, print a list of devices and exit.
16140
16141 list_options
16142 If set to true, print a list of selected device's options and exit.
16143
16144 video_device_number
16145 Set video device number for devices with the same name (starts at
16146 0, defaults to 0).
16147
16148 audio_device_number
16149 Set audio device number for devices with the same name (starts at
16150 0, defaults to 0).
16151
16152 pixel_format
16153 Select pixel format to be used by DirectShow. This may only be set
16154 when the video codec is not set or set to rawvideo.
16155
16156 audio_buffer_size
16157 Set audio device buffer size in milliseconds (which can directly
16158 impact latency, depending on the device). Defaults to using the
16159 audio device's default buffer size (typically some multiple of
16160 500ms). Setting this value too low can degrade performance. See
16161 also
16162 <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
16163
16164 video_pin_name
16165 Select video capture pin to use by name or alternative name.
16166
16167 audio_pin_name
16168 Select audio capture pin to use by name or alternative name.
16169
16170 crossbar_video_input_pin_number
16171 Select video input pin number for crossbar device. This will be
16172 routed to the crossbar device's Video Decoder output pin. Note
16173 that changing this value can affect future invocations (sets a new
16174 default) until system reboot occurs.
16175
16176 crossbar_audio_input_pin_number
16177 Select audio input pin number for crossbar device. This will be
16178 routed to the crossbar device's Audio Decoder output pin. Note
16179 that changing this value can affect future invocations (sets a new
16180 default) until system reboot occurs.
16181
16182 show_video_device_dialog
16183 If set to true, before capture starts, popup a display dialog to
16184 the end user, allowing them to change video filter properties and
16185 configurations manually. Note that for crossbar devices, adjusting
16186 values in this dialog may be needed at times to toggle between PAL
16187 (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
16188 etc. Changing these values can enable different scan rates/frame
16189 rates and avoiding green bars at the bottom, flickering scan lines,
16190 etc. Note that with some devices, changing these properties can
16191 also affect future invocations (sets new defaults) until system
16192 reboot occurs.
16193
16194 show_audio_device_dialog
16195 If set to true, before capture starts, popup a display dialog to
16196 the end user, allowing them to change audio filter properties and
16197 configurations manually.
16198
16199 show_video_crossbar_connection_dialog
16200 If set to true, before capture starts, popup a display dialog to
16201 the end user, allowing them to manually modify crossbar pin
16202 routings, when it opens a video device.
16203
16204 show_audio_crossbar_connection_dialog
16205 If set to true, before capture starts, popup a display dialog to
16206 the end user, allowing them to manually modify crossbar pin
16207 routings, when it opens an audio device.
16208
16209 show_analog_tv_tuner_dialog
16210 If set to true, before capture starts, popup a display dialog to
16211 the end user, allowing them to manually modify TV channels and
16212 frequencies.
16213
16214 show_analog_tv_tuner_audio_dialog
16215 If set to true, before capture starts, popup a display dialog to
16216 the end user, allowing them to manually modify TV audio (like mono
16217 vs. stereo, Language A,B or C).
16218
16219 audio_device_load
16220 Load an audio capture filter device from file instead of searching
16221 it by name. It may load additional parameters too, if the filter
16222 supports the serialization of its properties to. To use this an
16223 audio capture source has to be specified, but it can be anything
16224 even fake one.
16225
16226 audio_device_save
16227 Save the currently used audio capture filter device and its
16228 parameters (if the filter supports it) to a file. If a file with
16229 the same name exists it will be overwritten.
16230
16231 video_device_load
16232 Load a video capture filter device from file instead of searching
16233 it by name. It may load additional parameters too, if the filter
16234 supports the serialization of its properties to. To use this a
16235 video capture source has to be specified, but it can be anything
16236 even fake one.
16237
16238 video_device_save
16239 Save the currently used video capture filter device and its
16240 parameters (if the filter supports it) to a file. If a file with
16241 the same name exists it will be overwritten.
16242
16243 use_video_device_timestamps
16244 If set to false, the timestamp for video frames will be derived
16245 from the wallclock instead of the timestamp provided by the capture
16246 device. This allows working around devices that provide unreliable
16247 timestamps.
16248
16249 Examples
16250
16251 • Print the list of DirectShow supported devices and exit:
16252
16253 $ ffmpeg -list_devices true -f dshow -i dummy
16254
16255 • Open video device Camera:
16256
16257 $ ffmpeg -f dshow -i video="Camera"
16258
16259 • Open second video device with name Camera:
16260
16261 $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
16262
16263 • Open video device Camera and audio device Microphone:
16264
16265 $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
16266
16267 • Print the list of supported options in selected device and exit:
16268
16269 $ ffmpeg -list_options true -f dshow -i video="Camera"
16270
16271 • Specify pin names to capture by name or alternative name, specify
16272 alternative device name:
16273
16274 $ 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"
16275
16276 • Configure a crossbar device, specifying crossbar pins, allow user
16277 to adjust video capture properties at startup:
16278
16279 $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
16280 -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
16281
16282 fbdev
16283 Linux framebuffer input device.
16284
16285 The Linux framebuffer is a graphic hardware-independent abstraction
16286 layer to show graphics on a computer monitor, typically on the console.
16287 It is accessed through a file device node, usually /dev/fb0.
16288
16289 For more detailed information read the file
16290 Documentation/fb/framebuffer.txt included in the Linux source tree.
16291
16292 See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
16293
16294 To record from the framebuffer device /dev/fb0 with ffmpeg:
16295
16296 ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
16297
16298 You can take a single screenshot image with the command:
16299
16300 ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
16301
16302 Options
16303
16304 framerate
16305 Set the frame rate. Default is 25.
16306
16307 gdigrab
16308 Win32 GDI-based screen capture device.
16309
16310 This device allows you to capture a region of the display on Windows.
16311
16312 There are two options for the input filename:
16313
16314 desktop
16315
16316 or
16317
16318 title=<window_title>
16319
16320 The first option will capture the entire desktop, or a fixed region of
16321 the desktop. The second option will instead capture the contents of a
16322 single window, regardless of its position on the screen.
16323
16324 For example, to grab the entire desktop using ffmpeg:
16325
16326 ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
16327
16328 Grab a 640x480 region at position "10,20":
16329
16330 ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
16331
16332 Grab the contents of the window named "Calculator"
16333
16334 ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
16335
16336 Options
16337
16338 draw_mouse
16339 Specify whether to draw the mouse pointer. Use the value 0 to not
16340 draw the pointer. Default value is 1.
16341
16342 framerate
16343 Set the grabbing frame rate. Default value is "ntsc", corresponding
16344 to a frame rate of "30000/1001".
16345
16346 show_region
16347 Show grabbed region on screen.
16348
16349 If show_region is specified with 1, then the grabbing region will
16350 be indicated on screen. With this option, it is easy to know what
16351 is being grabbed if only a portion of the screen is grabbed.
16352
16353 Note that show_region is incompatible with grabbing the contents of
16354 a single window.
16355
16356 For example:
16357
16358 ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
16359
16360 video_size
16361 Set the video frame size. The default is to capture the full screen
16362 if desktop is selected, or the full window size if
16363 title=window_title is selected.
16364
16365 offset_x
16366 When capturing a region with video_size, set the distance from the
16367 left edge of the screen or desktop.
16368
16369 Note that the offset calculation is from the top left corner of the
16370 primary monitor on Windows. If you have a monitor positioned to the
16371 left of your primary monitor, you will need to use a negative
16372 offset_x value to move the region to that monitor.
16373
16374 offset_y
16375 When capturing a region with video_size, set the distance from the
16376 top edge of the screen or desktop.
16377
16378 Note that the offset calculation is from the top left corner of the
16379 primary monitor on Windows. If you have a monitor positioned above
16380 your primary monitor, you will need to use a negative offset_y
16381 value to move the region to that monitor.
16382
16383 iec61883
16384 FireWire DV/HDV input device using libiec61883.
16385
16386 To enable this input device, you need libiec61883, libraw1394 and
16387 libavc1394 installed on your system. Use the configure option
16388 "--enable-libiec61883" to compile with the device enabled.
16389
16390 The iec61883 capture device supports capturing from a video device
16391 connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
16392 FireWire stack (juju). This is the default DV/HDV input method in Linux
16393 Kernel 2.6.37 and later, since the old FireWire stack was removed.
16394
16395 Specify the FireWire port to be used as input file, or "auto" to choose
16396 the first port connected.
16397
16398 Options
16399
16400 dvtype
16401 Override autodetection of DV/HDV. This should only be used if auto
16402 detection does not work, or if usage of a different device type
16403 should be prohibited. Treating a DV device as HDV (or vice versa)
16404 will not work and result in undefined behavior. The values auto,
16405 dv and hdv are supported.
16406
16407 dvbuffer
16408 Set maximum size of buffer for incoming data, in frames. For DV,
16409 this is an exact value. For HDV, it is not frame exact, since HDV
16410 does not have a fixed frame size.
16411
16412 dvguid
16413 Select the capture device by specifying its GUID. Capturing will
16414 only be performed from the specified device and fails if no device
16415 with the given GUID is found. This is useful to select the input if
16416 multiple devices are connected at the same time. Look at
16417 /sys/bus/firewire/devices to find out the GUIDs.
16418
16419 Examples
16420
16421 • Grab and show the input of a FireWire DV/HDV device.
16422
16423 ffplay -f iec61883 -i auto
16424
16425 • Grab and record the input of a FireWire DV/HDV device, using a
16426 packet buffer of 100000 packets if the source is HDV.
16427
16428 ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
16429
16430 jack
16431 JACK input device.
16432
16433 To enable this input device during configuration you need libjack
16434 installed on your system.
16435
16436 A JACK input device creates one or more JACK writable clients, one for
16437 each audio channel, with name client_name:input_N, where client_name is
16438 the name provided by the application, and N is a number which
16439 identifies the channel. Each writable client will send the acquired
16440 data to the FFmpeg input device.
16441
16442 Once you have created one or more JACK readable clients, you need to
16443 connect them to one or more JACK writable clients.
16444
16445 To connect or disconnect JACK clients you can use the jack_connect and
16446 jack_disconnect programs, or do it through a graphical interface, for
16447 example with qjackctl.
16448
16449 To list the JACK clients and their properties you can invoke the
16450 command jack_lsp.
16451
16452 Follows an example which shows how to capture a JACK readable client
16453 with ffmpeg.
16454
16455 # Create a JACK writable client with name "ffmpeg".
16456 $ ffmpeg -f jack -i ffmpeg -y out.wav
16457
16458 # Start the sample jack_metro readable client.
16459 $ jack_metro -b 120 -d 0.2 -f 4000
16460
16461 # List the current JACK clients.
16462 $ jack_lsp -c
16463 system:capture_1
16464 system:capture_2
16465 system:playback_1
16466 system:playback_2
16467 ffmpeg:input_1
16468 metro:120_bpm
16469
16470 # Connect metro to the ffmpeg writable client.
16471 $ jack_connect metro:120_bpm ffmpeg:input_1
16472
16473 For more information read: <http://jackaudio.org/>
16474
16475 Options
16476
16477 channels
16478 Set the number of channels. Default is 2.
16479
16480 kmsgrab
16481 KMS video input device.
16482
16483 Captures the KMS scanout framebuffer associated with a specified CRTC
16484 or plane as a DRM object that can be passed to other hardware
16485 functions.
16486
16487 Requires either DRM master or CAP_SYS_ADMIN to run.
16488
16489 If you don't understand what all of that means, you probably don't want
16490 this. Look at x11grab instead.
16491
16492 Options
16493
16494 device
16495 DRM device to capture on. Defaults to /dev/dri/card0.
16496
16497 format
16498 Pixel format of the framebuffer. This can be autodetected if you
16499 are running Linux 5.7 or later, but needs to be provided for
16500 earlier versions. Defaults to bgr0, which is the most common
16501 format used by the Linux console and Xorg X server.
16502
16503 format_modifier
16504 Format modifier to signal on output frames. This is necessary to
16505 import correctly into some APIs. It can be autodetected if you are
16506 running Linux 5.7 or later, but will need to be provided explicitly
16507 when needed in earlier versions. See the libdrm documentation for
16508 possible values.
16509
16510 crtc_id
16511 KMS CRTC ID to define the capture source. The first active plane
16512 on the given CRTC will be used.
16513
16514 plane_id
16515 KMS plane ID to define the capture source. Defaults to the first
16516 active plane found if neither crtc_id nor plane_id are specified.
16517
16518 framerate
16519 Framerate to capture at. This is not synchronised to any page
16520 flipping or framebuffer changes - it just defines the interval at
16521 which the framebuffer is sampled. Sampling faster than the
16522 framebuffer update rate will generate independent frames with the
16523 same content. Defaults to 30.
16524
16525 Examples
16526
16527 • Capture from the first active plane, download the result to normal
16528 frames and encode. This will only work if the framebuffer is both
16529 linear and mappable - if not, the result may be scrambled or fail
16530 to download.
16531
16532 ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
16533
16534 • Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
16535 to NV12 and encode as H.264.
16536
16537 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
16538
16539 • To capture only part of a plane the output can be cropped - this
16540 can be used to capture a single window, as long as it has a known
16541 absolute position and size. For example, to capture and encode the
16542 middle quarter of a 1920x1080 plane:
16543
16544 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
16545
16546 lavfi
16547 Libavfilter input virtual device.
16548
16549 This input device reads data from the open output pads of a libavfilter
16550 filtergraph.
16551
16552 For each filtergraph open output, the input device will create a
16553 corresponding stream which is mapped to the generated output. Currently
16554 only video data is supported. The filtergraph is specified through the
16555 option graph.
16556
16557 Options
16558
16559 graph
16560 Specify the filtergraph to use as input. Each video open output
16561 must be labelled by a unique string of the form "outN", where N is
16562 a number starting from 0 corresponding to the mapped input stream
16563 generated by the device. The first unlabelled output is
16564 automatically assigned to the "out0" label, but all the others need
16565 to be specified explicitly.
16566
16567 The suffix "+subcc" can be appended to the output label to create
16568 an extra stream with the closed captions packets attached to that
16569 output (experimental; only for EIA-608 / CEA-708 for now). The
16570 subcc streams are created after all the normal streams, in the
16571 order of the corresponding stream. For example, if there is
16572 "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
16573 subcc for stream #7 and stream #44 is subcc for stream #19.
16574
16575 If not specified defaults to the filename specified for the input
16576 device.
16577
16578 graph_file
16579 Set the filename of the filtergraph to be read and sent to the
16580 other filters. Syntax of the filtergraph is the same as the one
16581 specified by the option graph.
16582
16583 dumpgraph
16584 Dump graph to stderr.
16585
16586 Examples
16587
16588 • Create a color video stream and play it back with ffplay:
16589
16590 ffplay -f lavfi -graph "color=c=pink [out0]" dummy
16591
16592 • As the previous example, but use filename for specifying the graph
16593 description, and omit the "out0" label:
16594
16595 ffplay -f lavfi color=c=pink
16596
16597 • Create three different video test filtered sources and play them:
16598
16599 ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
16600
16601 • Read an audio stream from a file using the amovie source and play
16602 it back with ffplay:
16603
16604 ffplay -f lavfi "amovie=test.wav"
16605
16606 • Read an audio stream and a video stream and play it back with
16607 ffplay:
16608
16609 ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
16610
16611 • Dump decoded frames to images and closed captions to a file
16612 (experimental):
16613
16614 ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
16615
16616 libcdio
16617 Audio-CD input device based on libcdio.
16618
16619 To enable this input device during configuration you need libcdio
16620 installed on your system. It requires the configure option
16621 "--enable-libcdio".
16622
16623 This device allows playing and grabbing from an Audio-CD.
16624
16625 For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
16626 may run the command:
16627
16628 ffmpeg -f libcdio -i /dev/sr0 cd.wav
16629
16630 Options
16631
16632 speed
16633 Set drive reading speed. Default value is 0.
16634
16635 The speed is specified CD-ROM speed units. The speed is set through
16636 the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
16637 specifying a value too large will result in using the fastest
16638 speed.
16639
16640 paranoia_mode
16641 Set paranoia recovery mode flags. It accepts one of the following
16642 values:
16643
16644 disable
16645 verify
16646 overlap
16647 neverskip
16648 full
16649
16650 Default value is disable.
16651
16652 For more information about the available recovery modes, consult
16653 the paranoia project documentation.
16654
16655 libdc1394
16656 IIDC1394 input device, based on libdc1394 and libraw1394.
16657
16658 Requires the configure option "--enable-libdc1394".
16659
16660 Options
16661
16662 framerate
16663 Set the frame rate. Default is "ntsc", corresponding to a frame
16664 rate of "30000/1001".
16665
16666 pixel_format
16667 Select the pixel format. Default is "uyvy422".
16668
16669 video_size
16670 Set the video size given as a string such as "640x480" or "hd720".
16671 Default is "qvga".
16672
16673 openal
16674 The OpenAL input device provides audio capture on all systems with a
16675 working OpenAL 1.1 implementation.
16676
16677 To enable this input device during configuration, you need OpenAL
16678 headers and libraries installed on your system, and need to configure
16679 FFmpeg with "--enable-openal".
16680
16681 OpenAL headers and libraries should be provided as part of your OpenAL
16682 implementation, or as an additional download (an SDK). Depending on
16683 your installation you may need to specify additional flags via the
16684 "--extra-cflags" and "--extra-ldflags" for allowing the build system to
16685 locate the OpenAL headers and libraries.
16686
16687 An incomplete list of OpenAL implementations follows:
16688
16689 Creative
16690 The official Windows implementation, providing hardware
16691 acceleration with supported devices and software fallback. See
16692 <http://openal.org/>.
16693
16694 OpenAL Soft
16695 Portable, open source (LGPL) software implementation. Includes
16696 backends for the most common sound APIs on the Windows, Linux,
16697 Solaris, and BSD operating systems. See
16698 <http://kcat.strangesoft.net/openal.html>.
16699
16700 Apple
16701 OpenAL is part of Core Audio, the official Mac OS X Audio
16702 interface. See
16703 <http://developer.apple.com/technologies/mac/audio-and-video.html>
16704
16705 This device allows one to capture from an audio input device handled
16706 through OpenAL.
16707
16708 You need to specify the name of the device to capture in the provided
16709 filename. If the empty string is provided, the device will
16710 automatically select the default device. You can get the list of the
16711 supported devices by using the option list_devices.
16712
16713 Options
16714
16715 channels
16716 Set the number of channels in the captured audio. Only the values 1
16717 (monaural) and 2 (stereo) are currently supported. Defaults to 2.
16718
16719 sample_size
16720 Set the sample size (in bits) of the captured audio. Only the
16721 values 8 and 16 are currently supported. Defaults to 16.
16722
16723 sample_rate
16724 Set the sample rate (in Hz) of the captured audio. Defaults to
16725 44.1k.
16726
16727 list_devices
16728 If set to true, print a list of devices and exit. Defaults to
16729 false.
16730
16731 Examples
16732
16733 Print the list of OpenAL supported devices and exit:
16734
16735 $ ffmpeg -list_devices true -f openal -i dummy out.ogg
16736
16737 Capture from the OpenAL device DR-BT101 via PulseAudio:
16738
16739 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
16740
16741 Capture from the default device (note the empty string '' as filename):
16742
16743 $ ffmpeg -f openal -i '' out.ogg
16744
16745 Capture from two devices simultaneously, writing to two different
16746 files, within the same ffmpeg command:
16747
16748 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
16749
16750 Note: not all OpenAL implementations support multiple simultaneous
16751 capture - try the latest OpenAL Soft if the above does not work.
16752
16753 oss
16754 Open Sound System input device.
16755
16756 The filename to provide to the input device is the device node
16757 representing the OSS input device, and is usually set to /dev/dsp.
16758
16759 For example to grab from /dev/dsp using ffmpeg use the command:
16760
16761 ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
16762
16763 For more information about OSS see:
16764 <http://manuals.opensound.com/usersguide/dsp.html>
16765
16766 Options
16767
16768 sample_rate
16769 Set the sample rate in Hz. Default is 48000.
16770
16771 channels
16772 Set the number of channels. Default is 2.
16773
16774 pulse
16775 PulseAudio input device.
16776
16777 To enable this output device you need to configure FFmpeg with
16778 "--enable-libpulse".
16779
16780 The filename to provide to the input device is a source device or the
16781 string "default"
16782
16783 To list the PulseAudio source devices and their properties you can
16784 invoke the command pactl list sources.
16785
16786 More information about PulseAudio can be found on
16787 <http://www.pulseaudio.org>.
16788
16789 Options
16790
16791 server
16792 Connect to a specific PulseAudio server, specified by an IP
16793 address. Default server is used when not provided.
16794
16795 name
16796 Specify the application name PulseAudio will use when showing
16797 active clients, by default it is the "LIBAVFORMAT_IDENT" string.
16798
16799 stream_name
16800 Specify the stream name PulseAudio will use when showing active
16801 streams, by default it is "record".
16802
16803 sample_rate
16804 Specify the samplerate in Hz, by default 48kHz is used.
16805
16806 channels
16807 Specify the channels in use, by default 2 (stereo) is set.
16808
16809 frame_size
16810 This option does nothing and is deprecated.
16811
16812 fragment_size
16813 Specify the size in bytes of the minimal buffering fragment in
16814 PulseAudio, it will affect the audio latency. By default it is set
16815 to 50 ms amount of data.
16816
16817 wallclock
16818 Set the initial PTS using the current time. Default is 1.
16819
16820 Examples
16821
16822 Record a stream from default device:
16823
16824 ffmpeg -f pulse -i default /tmp/pulse.wav
16825
16826 sndio
16827 sndio input device.
16828
16829 To enable this input device during configuration you need libsndio
16830 installed on your system.
16831
16832 The filename to provide to the input device is the device node
16833 representing the sndio input device, and is usually set to /dev/audio0.
16834
16835 For example to grab from /dev/audio0 using ffmpeg use the command:
16836
16837 ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
16838
16839 Options
16840
16841 sample_rate
16842 Set the sample rate in Hz. Default is 48000.
16843
16844 channels
16845 Set the number of channels. Default is 2.
16846
16847 video4linux2, v4l2
16848 Video4Linux2 input video device.
16849
16850 "v4l2" can be used as alias for "video4linux2".
16851
16852 If FFmpeg is built with v4l-utils support (by using the
16853 "--enable-libv4l2" configure option), it is possible to use it with the
16854 "-use_libv4l2" input device option.
16855
16856 The name of the device to grab is a file device node, usually Linux
16857 systems tend to automatically create such nodes when the device (e.g.
16858 an USB webcam) is plugged into the system, and has a name of the kind
16859 /dev/videoN, where N is a number associated to the device.
16860
16861 Video4Linux2 devices usually support a limited set of widthxheight
16862 sizes and frame rates. You can check which are supported using
16863 -list_formats all for Video4Linux2 devices. Some devices, like TV
16864 cards, support one or more standards. It is possible to list all the
16865 supported standards using -list_standards all.
16866
16867 The time base for the timestamps is 1 microsecond. Depending on the
16868 kernel version and configuration, the timestamps may be derived from
16869 the real time clock (origin at the Unix Epoch) or the monotonic clock
16870 (origin usually at boot time, unaffected by NTP or manual changes to
16871 the clock). The -timestamps abs or -ts abs option can be used to force
16872 conversion into the real time clock.
16873
16874 Some usage examples of the video4linux2 device with ffmpeg and ffplay:
16875
16876 • List supported formats for a video4linux2 device:
16877
16878 ffplay -f video4linux2 -list_formats all /dev/video0
16879
16880 • Grab and show the input of a video4linux2 device:
16881
16882 ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
16883
16884 • Grab and record the input of a video4linux2 device, leave the frame
16885 rate and size as previously set:
16886
16887 ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
16888
16889 For more information about Video4Linux, check <http://linuxtv.org/>.
16890
16891 Options
16892
16893 standard
16894 Set the standard. Must be the name of a supported standard. To get
16895 a list of the supported standards, use the list_standards option.
16896
16897 channel
16898 Set the input channel number. Default to -1, which means using the
16899 previously selected channel.
16900
16901 video_size
16902 Set the video frame size. The argument must be a string in the form
16903 WIDTHxHEIGHT or a valid size abbreviation.
16904
16905 pixel_format
16906 Select the pixel format (only valid for raw video input).
16907
16908 input_format
16909 Set the preferred pixel format (for raw video) or a codec name.
16910 This option allows one to select the input format, when several are
16911 available.
16912
16913 framerate
16914 Set the preferred video frame rate.
16915
16916 list_formats
16917 List available formats (supported pixel formats, codecs, and frame
16918 sizes) and exit.
16919
16920 Available values are:
16921
16922 all Show all available (compressed and non-compressed) formats.
16923
16924 raw Show only raw video (non-compressed) formats.
16925
16926 compressed
16927 Show only compressed formats.
16928
16929 list_standards
16930 List supported standards and exit.
16931
16932 Available values are:
16933
16934 all Show all supported standards.
16935
16936 timestamps, ts
16937 Set type of timestamps for grabbed frames.
16938
16939 Available values are:
16940
16941 default
16942 Use timestamps from the kernel.
16943
16944 abs Use absolute timestamps (wall clock).
16945
16946 mono2abs
16947 Force conversion from monotonic to absolute timestamps.
16948
16949 Default value is "default".
16950
16951 use_libv4l2
16952 Use libv4l2 (v4l-utils) conversion functions. Default is 0.
16953
16954 vfwcap
16955 VfW (Video for Windows) capture input device.
16956
16957 The filename passed as input is the capture driver number, ranging from
16958 0 to 9. You may use "list" as filename to print a list of drivers. Any
16959 other filename will be interpreted as device number 0.
16960
16961 Options
16962
16963 video_size
16964 Set the video frame size.
16965
16966 framerate
16967 Set the grabbing frame rate. Default value is "ntsc", corresponding
16968 to a frame rate of "30000/1001".
16969
16970 x11grab
16971 X11 video input device.
16972
16973 To enable this input device during configuration you need libxcb
16974 installed on your system. It will be automatically detected during
16975 configuration.
16976
16977 This device allows one to capture a region of an X11 display.
16978
16979 The filename passed as input has the syntax:
16980
16981 [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
16982
16983 hostname:display_number.screen_number specifies the X11 display name of
16984 the screen to grab from. hostname can be omitted, and defaults to
16985 "localhost". The environment variable DISPLAY contains the default
16986 display name.
16987
16988 x_offset and y_offset specify the offsets of the grabbed area with
16989 respect to the top-left border of the X11 screen. They default to 0.
16990
16991 Check the X11 documentation (e.g. man X) for more detailed information.
16992
16993 Use the xdpyinfo program for getting basic information about the
16994 properties of your X11 display (e.g. grep for "name" or "dimensions").
16995
16996 For example to grab from :0.0 using ffmpeg:
16997
16998 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
16999
17000 Grab at position "10,20":
17001
17002 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
17003
17004 Options
17005
17006 select_region
17007 Specify whether to select the grabbing area graphically using the
17008 pointer. A value of 1 prompts the user to select the grabbing area
17009 graphically by clicking and dragging. A single click with no
17010 dragging will select the whole screen. A region with zero width or
17011 height will also select the whole screen. This option overwrites
17012 the video_size, grab_x, and grab_y options. Default value is 0.
17013
17014 draw_mouse
17015 Specify whether to draw the mouse pointer. A value of 0 specifies
17016 not to draw the pointer. Default value is 1.
17017
17018 follow_mouse
17019 Make the grabbed area follow the mouse. The argument can be
17020 "centered" or a number of pixels PIXELS.
17021
17022 When it is specified with "centered", the grabbing region follows
17023 the mouse pointer and keeps the pointer at the center of region;
17024 otherwise, the region follows only when the mouse pointer reaches
17025 within PIXELS (greater than zero) to the edge of region.
17026
17027 For example:
17028
17029 ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
17030
17031 To follow only when the mouse pointer reaches within 100 pixels to
17032 edge:
17033
17034 ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
17035
17036 framerate
17037 Set the grabbing frame rate. Default value is "ntsc", corresponding
17038 to a frame rate of "30000/1001".
17039
17040 show_region
17041 Show grabbed region on screen.
17042
17043 If show_region is specified with 1, then the grabbing region will
17044 be indicated on screen. With this option, it is easy to know what
17045 is being grabbed if only a portion of the screen is grabbed.
17046
17047 region_border
17048 Set the region border thickness if -show_region 1 is used. Range
17049 is 1 to 128 and default is 3 (XCB-based x11grab only).
17050
17051 For example:
17052
17053 ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
17054
17055 With follow_mouse:
17056
17057 ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
17058
17059 window_id
17060 Grab this window, instead of the whole screen. Default value is 0,
17061 which maps to the whole screen (root window).
17062
17063 The id of a window can be found using the xwininfo program,
17064 possibly with options -tree and -root.
17065
17066 If the window is later enlarged, the new area is not recorded.
17067 Video ends when the window is closed, unmapped (i.e., iconified) or
17068 shrunk beyond the video size (which defaults to the initial window
17069 size).
17070
17071 This option disables options follow_mouse and select_region.
17072
17073 video_size
17074 Set the video frame size. Default is the full desktop or window.
17075
17076 grab_x
17077 grab_y
17078 Set the grabbing region coordinates. They are expressed as offset
17079 from the top left corner of the X11 window and correspond to the
17080 x_offset and y_offset parameters in the device name. The default
17081 value for both options is 0.
17082
17084 Output devices are configured elements in FFmpeg that can write
17085 multimedia data to an output device attached to your system.
17086
17087 When you configure your FFmpeg build, all the supported output devices
17088 are enabled by default. You can list all available ones using the
17089 configure option "--list-outdevs".
17090
17091 You can disable all the output devices using the configure option
17092 "--disable-outdevs", and selectively enable an output device using the
17093 option "--enable-outdev=OUTDEV", or you can disable a particular input
17094 device using the option "--disable-outdev=OUTDEV".
17095
17096 The option "-devices" of the ff* tools will display the list of enabled
17097 output devices.
17098
17099 A description of the currently available output devices follows.
17100
17101 alsa
17102 ALSA (Advanced Linux Sound Architecture) output device.
17103
17104 Examples
17105
17106 • Play a file on default ALSA device:
17107
17108 ffmpeg -i INPUT -f alsa default
17109
17110 • Play a file on soundcard 1, audio device 7:
17111
17112 ffmpeg -i INPUT -f alsa hw:1,7
17113
17114 AudioToolbox
17115 AudioToolbox output device.
17116
17117 Allows native output to CoreAudio devices on OSX.
17118
17119 The output filename can be empty (or "-") to refer to the default
17120 system output device or a number that refers to the device index as
17121 shown using: "-list_devices true".
17122
17123 Alternatively, the audio input device can be chosen by index using the
17124
17125 B<-audio_device_index E<lt>INDEXE<gt>>
17126
17127 , overriding any device name or index given in the input filename.
17128
17129 All available devices can be enumerated by using -list_devices true,
17130 listing all device names, UIDs and corresponding indices.
17131
17132 Options
17133
17134 AudioToolbox supports the following options:
17135
17136 -audio_device_index <INDEX>
17137 Specify the audio device by its index. Overrides anything given in
17138 the output filename.
17139
17140 Examples
17141
17142 • Print the list of supported devices and output a sine wave to the
17143 default device:
17144
17145 $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -list_devices true -
17146
17147 • Output a sine wave to the device with the index 2, overriding any
17148 output filename:
17149
17150 $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -audio_device_index 2 -
17151
17152 caca
17153 CACA output device.
17154
17155 This output device allows one to show a video stream in CACA window.
17156 Only one CACA window is allowed per application, so you can have only
17157 one instance of this output device in an application.
17158
17159 To enable this output device you need to configure FFmpeg with
17160 "--enable-libcaca". libcaca is a graphics library that outputs text
17161 instead of pixels.
17162
17163 For more information about libcaca, check:
17164 <http://caca.zoy.org/wiki/libcaca>
17165
17166 Options
17167
17168 window_title
17169 Set the CACA window title, if not specified default to the filename
17170 specified for the output device.
17171
17172 window_size
17173 Set the CACA window size, can be a string of the form widthxheight
17174 or a video size abbreviation. If not specified it defaults to the
17175 size of the input video.
17176
17177 driver
17178 Set display driver.
17179
17180 algorithm
17181 Set dithering algorithm. Dithering is necessary because the picture
17182 being rendered has usually far more colours than the available
17183 palette. The accepted values are listed with "-list_dither
17184 algorithms".
17185
17186 antialias
17187 Set antialias method. Antialiasing smoothens the rendered image and
17188 avoids the commonly seen staircase effect. The accepted values are
17189 listed with "-list_dither antialiases".
17190
17191 charset
17192 Set which characters are going to be used when rendering text. The
17193 accepted values are listed with "-list_dither charsets".
17194
17195 color
17196 Set color to be used when rendering text. The accepted values are
17197 listed with "-list_dither colors".
17198
17199 list_drivers
17200 If set to true, print a list of available drivers and exit.
17201
17202 list_dither
17203 List available dither options related to the argument. The
17204 argument must be one of "algorithms", "antialiases", "charsets",
17205 "colors".
17206
17207 Examples
17208
17209 • The following command shows the ffmpeg output is an CACA window,
17210 forcing its size to 80x25:
17211
17212 ffmpeg -i INPUT -c:v rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
17213
17214 • Show the list of available drivers and exit:
17215
17216 ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
17217
17218 • Show the list of available dither colors and exit:
17219
17220 ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
17221
17222 decklink
17223 The decklink output device provides playback capabilities for
17224 Blackmagic DeckLink devices.
17225
17226 To enable this output device, you need the Blackmagic DeckLink SDK and
17227 you need to configure with the appropriate "--extra-cflags" and
17228 "--extra-ldflags". On Windows, you need to run the IDL files through
17229 widl.
17230
17231 DeckLink is very picky about the formats it supports. Pixel format is
17232 always uyvy422, framerate, field order and video size must be
17233 determined for your device with -list_formats 1. Audio sample rate is
17234 always 48 kHz.
17235
17236 Options
17237
17238 list_devices
17239 If set to true, print a list of devices and exit. Defaults to
17240 false. This option is deprecated, please use the "-sinks" option of
17241 ffmpeg to list the available output devices.
17242
17243 list_formats
17244 If set to true, print a list of supported formats and exit.
17245 Defaults to false.
17246
17247 preroll
17248 Amount of time to preroll video in seconds. Defaults to 0.5.
17249
17250 duplex_mode
17251 Sets the decklink device duplex/profile mode. Must be unset, half,
17252 full, one_sub_device_full, one_sub_device_half,
17253 two_sub_device_full, four_sub_device_half Defaults to unset.
17254
17255 Note: DeckLink SDK 11.0 have replaced the duplex property by a
17256 profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
17257 profile is shared between any 2 sub-devices that utilize the same
17258 connectors. For the DeckLink 8K Pro, a profile is shared between
17259 all 4 sub-devices. So DeckLink 8K Pro support four profiles.
17260
17261 Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
17262 one_sub_device_full, one_sub_device_half, two_sub_device_full,
17263 four_sub_device_half
17264
17265 Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
17266 full
17267
17268 timing_offset
17269 Sets the genlock timing pixel offset on the used output. Defaults
17270 to unset.
17271
17272 link
17273 Sets the SDI video link configuration on the used output. Must be
17274 unset, single link SDI, dual link SDI or quad link SDI. Defaults
17275 to unset.
17276
17277 sqd Enable Square Division Quad Split mode for Quad-link SDI output.
17278 Must be unset, true or false. Defaults to unset.
17279
17280 level_a
17281 Enable SMPTE Level A mode on the used output. Must be unset, true
17282 or false. Defaults to unset.
17283
17284 Examples
17285
17286 • List output devices:
17287
17288 ffmpeg -sinks decklink
17289
17290 • List supported formats:
17291
17292 ffmpeg -i test.avi -f decklink -list_formats 1 'DeckLink Mini Monitor'
17293
17294 • Play video clip:
17295
17296 ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 'DeckLink Mini Monitor'
17297
17298 • Play video clip with non-standard framerate or video size:
17299
17300 ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLink Mini Monitor'
17301
17302 fbdev
17303 Linux framebuffer output device.
17304
17305 The Linux framebuffer is a graphic hardware-independent abstraction
17306 layer to show graphics on a computer monitor, typically on the console.
17307 It is accessed through a file device node, usually /dev/fb0.
17308
17309 For more detailed information read the file
17310 Documentation/fb/framebuffer.txt included in the Linux source tree.
17311
17312 Options
17313
17314 xoffset
17315 yoffset
17316 Set x/y coordinate of top left corner. Default is 0.
17317
17318 Examples
17319
17320 Play a file on framebuffer device /dev/fb0. Required pixel format
17321 depends on current framebuffer settings.
17322
17323 ffmpeg -re -i INPUT -c:v rawvideo -pix_fmt bgra -f fbdev /dev/fb0
17324
17325 See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
17326
17327 opengl
17328 OpenGL output device.
17329
17330 To enable this output device you need to configure FFmpeg with
17331 "--enable-opengl".
17332
17333 This output device allows one to render to OpenGL context. Context may
17334 be provided by application or default SDL window is created.
17335
17336 When device renders to external context, application must implement
17337 handlers for following messages: "AV_DEV_TO_APP_CREATE_WINDOW_BUFFER" -
17338 create OpenGL context on current thread.
17339 "AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER" - make OpenGL context current.
17340 "AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER" - swap buffers.
17341 "AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER" - destroy OpenGL context.
17342 Application is also required to inform a device about current
17343 resolution by sending "AV_APP_TO_DEV_WINDOW_SIZE" message.
17344
17345 Options
17346
17347 background
17348 Set background color. Black is a default.
17349
17350 no_window
17351 Disables default SDL window when set to non-zero value.
17352 Application must provide OpenGL context and both "window_size_cb"
17353 and "window_swap_buffers_cb" callbacks when set.
17354
17355 window_title
17356 Set the SDL window title, if not specified default to the filename
17357 specified for the output device. Ignored when no_window is set.
17358
17359 window_size
17360 Set preferred window size, can be a string of the form widthxheight
17361 or a video size abbreviation. If not specified it defaults to the
17362 size of the input video, downscaled according to the aspect ratio.
17363 Mostly usable when no_window is not set.
17364
17365 Examples
17366
17367 Play a file on SDL window using OpenGL rendering:
17368
17369 ffmpeg -i INPUT -f opengl "window title"
17370
17371 oss
17372 OSS (Open Sound System) output device.
17373
17374 pulse
17375 PulseAudio output device.
17376
17377 To enable this output device you need to configure FFmpeg with
17378 "--enable-libpulse".
17379
17380 More information about PulseAudio can be found on
17381 <http://www.pulseaudio.org>
17382
17383 Options
17384
17385 server
17386 Connect to a specific PulseAudio server, specified by an IP
17387 address. Default server is used when not provided.
17388
17389 name
17390 Specify the application name PulseAudio will use when showing
17391 active clients, by default it is the "LIBAVFORMAT_IDENT" string.
17392
17393 stream_name
17394 Specify the stream name PulseAudio will use when showing active
17395 streams, by default it is set to the specified output name.
17396
17397 device
17398 Specify the device to use. Default device is used when not
17399 provided. List of output devices can be obtained with command
17400 pactl list sinks.
17401
17402 buffer_size
17403 buffer_duration
17404 Control the size and duration of the PulseAudio buffer. A small
17405 buffer gives more control, but requires more frequent updates.
17406
17407 buffer_size specifies size in bytes while buffer_duration specifies
17408 duration in milliseconds.
17409
17410 When both options are provided then the highest value is used
17411 (duration is recalculated to bytes using stream parameters). If
17412 they are set to 0 (which is default), the device will use the
17413 default PulseAudio duration value. By default PulseAudio set buffer
17414 duration to around 2 seconds.
17415
17416 prebuf
17417 Specify pre-buffering size in bytes. The server does not start with
17418 playback before at least prebuf bytes are available in the buffer.
17419 By default this option is initialized to the same value as
17420 buffer_size or buffer_duration (whichever is bigger).
17421
17422 minreq
17423 Specify minimum request size in bytes. The server does not request
17424 less than minreq bytes from the client, instead waits until the
17425 buffer is free enough to request more bytes at once. It is
17426 recommended to not set this option, which will initialize this to a
17427 value that is deemed sensible by the server.
17428
17429 Examples
17430
17431 Play a file on default device on default server:
17432
17433 ffmpeg -i INPUT -f pulse "stream name"
17434
17435 sdl
17436 SDL (Simple DirectMedia Layer) output device.
17437
17438 "sdl2" can be used as alias for "sdl".
17439
17440 This output device allows one to show a video stream in an SDL window.
17441 Only one SDL window is allowed per application, so you can have only
17442 one instance of this output device in an application.
17443
17444 To enable this output device you need libsdl installed on your system
17445 when configuring your build.
17446
17447 For more information about SDL, check: <http://www.libsdl.org/>
17448
17449 Options
17450
17451 window_title
17452 Set the SDL window title, if not specified default to the filename
17453 specified for the output device.
17454
17455 icon_title
17456 Set the name of the iconified SDL window, if not specified it is
17457 set to the same value of window_title.
17458
17459 window_size
17460 Set the SDL window size, can be a string of the form widthxheight
17461 or a video size abbreviation. If not specified it defaults to the
17462 size of the input video, downscaled according to the aspect ratio.
17463
17464 window_x
17465 window_y
17466 Set the position of the window on the screen.
17467
17468 window_fullscreen
17469 Set fullscreen mode when non-zero value is provided. Default value
17470 is zero.
17471
17472 window_enable_quit
17473 Enable quit action (using window button or keyboard key) when non-
17474 zero value is provided. Default value is 1 (enable quit action)
17475
17476 Interactive commands
17477
17478 The window created by the device can be controlled through the
17479 following interactive commands.
17480
17481 q, ESC
17482 Quit the device immediately.
17483
17484 Examples
17485
17486 The following command shows the ffmpeg output is an SDL window, forcing
17487 its size to the qcif format:
17488
17489 ffmpeg -i INPUT -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
17490
17491 sndio
17492 sndio audio output device.
17493
17494 v4l2
17495 Video4Linux2 output device.
17496
17497 xv
17498 XV (XVideo) output device.
17499
17500 This output device allows one to show a video stream in a X Window
17501 System window.
17502
17503 Options
17504
17505 display_name
17506 Specify the hardware display name, which determines the display and
17507 communications domain to be used.
17508
17509 The display name or DISPLAY environment variable can be a string in
17510 the format hostname[:number[.screen_number]].
17511
17512 hostname specifies the name of the host machine on which the
17513 display is physically attached. number specifies the number of the
17514 display server on that host machine. screen_number specifies the
17515 screen to be used on that server.
17516
17517 If unspecified, it defaults to the value of the DISPLAY environment
17518 variable.
17519
17520 For example, "dual-headed:0.1" would specify screen 1 of display 0
17521 on the machine named ``dual-headed''.
17522
17523 Check the X11 specification for more detailed information about the
17524 display name format.
17525
17526 window_id
17527 When set to non-zero value then device doesn't create new window,
17528 but uses existing one with provided window_id. By default this
17529 options is set to zero and device creates its own window.
17530
17531 window_size
17532 Set the created window size, can be a string of the form
17533 widthxheight or a video size abbreviation. If not specified it
17534 defaults to the size of the input video. Ignored when window_id is
17535 set.
17536
17537 window_x
17538 window_y
17539 Set the X and Y window offsets for the created window. They are
17540 both set to 0 by default. The values may be ignored by the window
17541 manager. Ignored when window_id is set.
17542
17543 window_title
17544 Set the window title, if not specified default to the filename
17545 specified for the output device. Ignored when window_id is set.
17546
17547 For more information about XVideo see <http://www.x.org/>.
17548
17549 Examples
17550
17551 • Decode, display and encode video input with ffmpeg at the same
17552 time:
17553
17554 ffmpeg -i INPUT OUTPUT -f xv display
17555
17556 • Decode and display the input video to multiple X11 windows:
17557
17558 ffmpeg -i INPUT -f xv normal -vf negate -f xv negated
17559
17561 The audio resampler supports the following named options.
17562
17563 Options may be set by specifying -option value in the FFmpeg tools,
17564 option=value for the aresample filter, by setting the value explicitly
17565 in the "SwrContext" options or using the libavutil/opt.h API for
17566 programmatic use.
17567
17568 ich, in_channel_count
17569 Set the number of input channels. Default value is 0. Setting this
17570 value is not mandatory if the corresponding channel layout
17571 in_channel_layout is set.
17572
17573 och, out_channel_count
17574 Set the number of output channels. Default value is 0. Setting this
17575 value is not mandatory if the corresponding channel layout
17576 out_channel_layout is set.
17577
17578 uch, used_channel_count
17579 Set the number of used input channels. Default value is 0. This
17580 option is only used for special remapping.
17581
17582 isr, in_sample_rate
17583 Set the input sample rate. Default value is 0.
17584
17585 osr, out_sample_rate
17586 Set the output sample rate. Default value is 0.
17587
17588 isf, in_sample_fmt
17589 Specify the input sample format. It is set by default to "none".
17590
17591 osf, out_sample_fmt
17592 Specify the output sample format. It is set by default to "none".
17593
17594 tsf, internal_sample_fmt
17595 Set the internal sample format. Default value is "none". This will
17596 automatically be chosen when it is not explicitly set.
17597
17598 icl, in_channel_layout
17599 ocl, out_channel_layout
17600 Set the input/output channel layout.
17601
17602 See the Channel Layout section in the ffmpeg-utils(1) manual for
17603 the required syntax.
17604
17605 clev, center_mix_level
17606 Set the center mix level. It is a value expressed in deciBel, and
17607 must be in the interval [-32,32].
17608
17609 slev, surround_mix_level
17610 Set the surround mix level. It is a value expressed in deciBel, and
17611 must be in the interval [-32,32].
17612
17613 lfe_mix_level
17614 Set LFE mix into non LFE level. It is used when there is a LFE
17615 input but no LFE output. It is a value expressed in deciBel, and
17616 must be in the interval [-32,32].
17617
17618 rmvol, rematrix_volume
17619 Set rematrix volume. Default value is 1.0.
17620
17621 rematrix_maxval
17622 Set maximum output value for rematrixing. This can be used to
17623 prevent clipping vs. preventing volume reduction. A value of 1.0
17624 prevents clipping.
17625
17626 flags, swr_flags
17627 Set flags used by the converter. Default value is 0.
17628
17629 It supports the following individual flags:
17630
17631 res force resampling, this flag forces resampling to be used even
17632 when the input and output sample rates match.
17633
17634 dither_scale
17635 Set the dither scale. Default value is 1.
17636
17637 dither_method
17638 Set dither method. Default value is 0.
17639
17640 Supported values:
17641
17642 rectangular
17643 select rectangular dither
17644
17645 triangular
17646 select triangular dither
17647
17648 triangular_hp
17649 select triangular dither with high pass
17650
17651 lipshitz
17652 select Lipshitz noise shaping dither.
17653
17654 shibata
17655 select Shibata noise shaping dither.
17656
17657 low_shibata
17658 select low Shibata noise shaping dither.
17659
17660 high_shibata
17661 select high Shibata noise shaping dither.
17662
17663 f_weighted
17664 select f-weighted noise shaping dither
17665
17666 modified_e_weighted
17667 select modified-e-weighted noise shaping dither
17668
17669 improved_e_weighted
17670 select improved-e-weighted noise shaping dither
17671
17672 resampler
17673 Set resampling engine. Default value is swr.
17674
17675 Supported values:
17676
17677 swr select the native SW Resampler; filter options precision and
17678 cheby are not applicable in this case.
17679
17680 soxr
17681 select the SoX Resampler (where available); compensation, and
17682 filter options filter_size, phase_shift, exact_rational,
17683 filter_type & kaiser_beta, are not applicable in this case.
17684
17685 filter_size
17686 For swr only, set resampling filter size, default value is 32.
17687
17688 phase_shift
17689 For swr only, set resampling phase shift, default value is 10, and
17690 must be in the interval [0,30].
17691
17692 linear_interp
17693 Use linear interpolation when enabled (the default). Disable it if
17694 you want to preserve speed instead of quality when exact_rational
17695 fails.
17696
17697 exact_rational
17698 For swr only, when enabled, try to use exact phase_count based on
17699 input and output sample rate. However, if it is larger than "1 <<
17700 phase_shift", the phase_count will be "1 << phase_shift" as
17701 fallback. Default is enabled.
17702
17703 cutoff
17704 Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
17705 be a float value between 0 and 1. Default value is 0.97 with swr,
17706 and 0.91 with soxr (which, with a sample-rate of 44100, preserves
17707 the entire audio band to 20kHz).
17708
17709 precision
17710 For soxr only, the precision in bits to which the resampled signal
17711 will be calculated. The default value of 20 (which, with suitable
17712 dithering, is appropriate for a destination bit-depth of 16) gives
17713 SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
17714 Quality'.
17715
17716 cheby
17717 For soxr only, selects passband rolloff none (Chebyshev) & higher-
17718 precision approximation for 'irrational' ratios. Default value is
17719 0.
17720
17721 async
17722 For swr only, simple 1 parameter audio sync to timestamps using
17723 stretching, squeezing, filling and trimming. Setting this to 1 will
17724 enable filling and trimming, larger values represent the maximum
17725 amount in samples that the data may be stretched or squeezed for
17726 each second. Default value is 0, thus no compensation is applied
17727 to make the samples match the audio timestamps.
17728
17729 first_pts
17730 For swr only, assume the first pts should be this value. The time
17731 unit is 1 / sample rate. This allows for padding/trimming at the
17732 start of stream. By default, no assumption is made about the first
17733 frame's expected pts, so no padding or trimming is done. For
17734 example, this could be set to 0 to pad the beginning with silence
17735 if an audio stream starts after the video stream or to trim any
17736 samples with a negative pts due to encoder delay.
17737
17738 min_comp
17739 For swr only, set the minimum difference between timestamps and
17740 audio data (in seconds) to trigger stretching/squeezing/filling or
17741 trimming of the data to make it match the timestamps. The default
17742 is that stretching/squeezing/filling and trimming is disabled
17743 (min_comp = "FLT_MAX").
17744
17745 min_hard_comp
17746 For swr only, set the minimum difference between timestamps and
17747 audio data (in seconds) to trigger adding/dropping samples to make
17748 it match the timestamps. This option effectively is a threshold to
17749 select between hard (trim/fill) and soft (squeeze/stretch)
17750 compensation. Note that all compensation is by default disabled
17751 through min_comp. The default is 0.1.
17752
17753 comp_duration
17754 For swr only, set duration (in seconds) over which data is
17755 stretched/squeezed to make it match the timestamps. Must be a non-
17756 negative double float value, default value is 1.0.
17757
17758 max_soft_comp
17759 For swr only, set maximum factor by which data is
17760 stretched/squeezed to make it match the timestamps. Must be a non-
17761 negative double float value, default value is 0.
17762
17763 matrix_encoding
17764 Select matrixed stereo encoding.
17765
17766 It accepts the following values:
17767
17768 none
17769 select none
17770
17771 dolby
17772 select Dolby
17773
17774 dplii
17775 select Dolby Pro Logic II
17776
17777 Default value is "none".
17778
17779 filter_type
17780 For swr only, select resampling filter type. This only affects
17781 resampling operations.
17782
17783 It accepts the following values:
17784
17785 cubic
17786 select cubic
17787
17788 blackman_nuttall
17789 select Blackman Nuttall windowed sinc
17790
17791 kaiser
17792 select Kaiser windowed sinc
17793
17794 kaiser_beta
17795 For swr only, set Kaiser window beta value. Must be a double float
17796 value in the interval [2,16], default value is 9.
17797
17798 output_sample_bits
17799 For swr only, set number of used output sample bits for dithering.
17800 Must be an integer in the interval [0,64], default value is 0,
17801 which means it's not used.
17802
17804 The video scaler supports the following named options.
17805
17806 Options may be set by specifying -option value in the FFmpeg tools,
17807 with a few API-only exceptions noted below. For programmatic use, they
17808 can be set explicitly in the "SwsContext" options or through the
17809 libavutil/opt.h API.
17810
17811 sws_flags
17812 Set the scaler flags. This is also used to set the scaling
17813 algorithm. Only a single algorithm should be selected. Default
17814 value is bicubic.
17815
17816 It accepts the following values:
17817
17818 fast_bilinear
17819 Select fast bilinear scaling algorithm.
17820
17821 bilinear
17822 Select bilinear scaling algorithm.
17823
17824 bicubic
17825 Select bicubic scaling algorithm.
17826
17827 experimental
17828 Select experimental scaling algorithm.
17829
17830 neighbor
17831 Select nearest neighbor rescaling algorithm.
17832
17833 area
17834 Select averaging area rescaling algorithm.
17835
17836 bicublin
17837 Select bicubic scaling algorithm for the luma component,
17838 bilinear for chroma components.
17839
17840 gauss
17841 Select Gaussian rescaling algorithm.
17842
17843 sinc
17844 Select sinc rescaling algorithm.
17845
17846 lanczos
17847 Select Lanczos rescaling algorithm. The default width (alpha)
17848 is 3 and can be changed by setting "param0".
17849
17850 spline
17851 Select natural bicubic spline rescaling algorithm.
17852
17853 print_info
17854 Enable printing/debug logging.
17855
17856 accurate_rnd
17857 Enable accurate rounding.
17858
17859 full_chroma_int
17860 Enable full chroma interpolation.
17861
17862 full_chroma_inp
17863 Select full chroma input.
17864
17865 bitexact
17866 Enable bitexact output.
17867
17868 srcw (API only)
17869 Set source width.
17870
17871 srch (API only)
17872 Set source height.
17873
17874 dstw (API only)
17875 Set destination width.
17876
17877 dsth (API only)
17878 Set destination height.
17879
17880 src_format (API only)
17881 Set source pixel format (must be expressed as an integer).
17882
17883 dst_format (API only)
17884 Set destination pixel format (must be expressed as an integer).
17885
17886 src_range (boolean)
17887 If value is set to 1, indicates source is full range. Default value
17888 is 0, which indicates source is limited range.
17889
17890 dst_range (boolean)
17891 If value is set to 1, enable full range for destination. Default
17892 value is 0, which enables limited range.
17893
17894 param0, param1
17895 Set scaling algorithm parameters. The specified values are specific
17896 of some scaling algorithms and ignored by others. The specified
17897 values are floating point number values.
17898
17899 sws_dither
17900 Set the dithering algorithm. Accepts one of the following values.
17901 Default value is auto.
17902
17903 auto
17904 automatic choice
17905
17906 none
17907 no dithering
17908
17909 bayer
17910 bayer dither
17911
17912 ed error diffusion dither
17913
17914 a_dither
17915 arithmetic dither, based using addition
17916
17917 x_dither
17918 arithmetic dither, based using xor (more random/less apparent
17919 patterning that a_dither).
17920
17921 alphablend
17922 Set the alpha blending to use when the input has alpha but the
17923 output does not. Default value is none.
17924
17925 uniform_color
17926 Blend onto a uniform background color
17927
17928 checkerboard
17929 Blend onto a checkerboard
17930
17931 none
17932 No blending
17933
17935 Filtering in FFmpeg is enabled through the libavfilter library.
17936
17937 In libavfilter, a filter can have multiple inputs and multiple outputs.
17938 To illustrate the sorts of things that are possible, we consider the
17939 following filtergraph.
17940
17941 [main]
17942 input --> split ---------------------> overlay --> output
17943 | ^
17944 |[tmp] [flip]|
17945 +-----> crop --> vflip -------+
17946
17947 This filtergraph splits the input stream in two streams, then sends one
17948 stream through the crop filter and the vflip filter, before merging it
17949 back with the other stream by overlaying it on top. You can use the
17950 following command to achieve this:
17951
17952 ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
17953
17954 The result will be that the top half of the video is mirrored onto the
17955 bottom half of the output video.
17956
17957 Filters in the same linear chain are separated by commas, and distinct
17958 linear chains of filters are separated by semicolons. In our example,
17959 crop,vflip are in one linear chain, split and overlay are separately in
17960 another. The points where the linear chains join are labelled by names
17961 enclosed in square brackets. In the example, the split filter generates
17962 two outputs that are associated to the labels [main] and [tmp].
17963
17964 The stream sent to the second output of split, labelled as [tmp], is
17965 processed through the crop filter, which crops away the lower half part
17966 of the video, and then vertically flipped. The overlay filter takes in
17967 input the first unchanged output of the split filter (which was
17968 labelled as [main]), and overlay on its lower half the output generated
17969 by the crop,vflip filterchain.
17970
17971 Some filters take in input a list of parameters: they are specified
17972 after the filter name and an equal sign, and are separated from each
17973 other by a colon.
17974
17975 There exist so-called source filters that do not have an audio/video
17976 input, and sink filters that will not have audio/video output.
17977
17979 The graph2dot program included in the FFmpeg tools directory can be
17980 used to parse a filtergraph description and issue a corresponding
17981 textual representation in the dot language.
17982
17983 Invoke the command:
17984
17985 graph2dot -h
17986
17987 to see how to use graph2dot.
17988
17989 You can then pass the dot description to the dot program (from the
17990 graphviz suite of programs) and obtain a graphical representation of
17991 the filtergraph.
17992
17993 For example the sequence of commands:
17994
17995 echo <GRAPH_DESCRIPTION> | \
17996 tools/graph2dot -o graph.tmp && \
17997 dot -Tpng graph.tmp -o graph.png && \
17998 display graph.png
17999
18000 can be used to create and display an image representing the graph
18001 described by the GRAPH_DESCRIPTION string. Note that this string must
18002 be a complete self-contained graph, with its inputs and outputs
18003 explicitly defined. For example if your command line is of the form:
18004
18005 ffmpeg -i infile -vf scale=640:360 outfile
18006
18007 your GRAPH_DESCRIPTION string will need to be of the form:
18008
18009 nullsrc,scale=640:360,nullsink
18010
18011 you may also need to set the nullsrc parameters and add a format filter
18012 in order to simulate a specific input file.
18013
18015 A filtergraph is a directed graph of connected filters. It can contain
18016 cycles, and there can be multiple links between a pair of filters. Each
18017 link has one input pad on one side connecting it to one filter from
18018 which it takes its input, and one output pad on the other side
18019 connecting it to one filter accepting its output.
18020
18021 Each filter in a filtergraph is an instance of a filter class
18022 registered in the application, which defines the features and the
18023 number of input and output pads of the filter.
18024
18025 A filter with no input pads is called a "source", and a filter with no
18026 output pads is called a "sink".
18027
18028 Filtergraph syntax
18029 A filtergraph has a textual representation, which is recognized by the
18030 -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
18031 ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
18032 libavfilter/avfilter.h.
18033
18034 A filterchain consists of a sequence of connected filters, each one
18035 connected to the previous one in the sequence. A filterchain is
18036 represented by a list of ","-separated filter descriptions.
18037
18038 A filtergraph consists of a sequence of filterchains. A sequence of
18039 filterchains is represented by a list of ";"-separated filterchain
18040 descriptions.
18041
18042 A filter is represented by a string of the form:
18043 [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
18044
18045 filter_name is the name of the filter class of which the described
18046 filter is an instance of, and has to be the name of one of the filter
18047 classes registered in the program optionally followed by "@id". The
18048 name of the filter class is optionally followed by a string
18049 "=arguments".
18050
18051 arguments is a string which contains the parameters used to initialize
18052 the filter instance. It may have one of two forms:
18053
18054 • A ':'-separated list of key=value pairs.
18055
18056 • A ':'-separated list of value. In this case, the keys are assumed
18057 to be the option names in the order they are declared. E.g. the
18058 "fade" filter declares three options in this order -- type,
18059 start_frame and nb_frames. Then the parameter list in:0:30 means
18060 that the value in is assigned to the option type, 0 to start_frame
18061 and 30 to nb_frames.
18062
18063 • A ':'-separated list of mixed direct value and long key=value
18064 pairs. The direct value must precede the key=value pairs, and
18065 follow the same constraints order of the previous point. The
18066 following key=value pairs can be set in any preferred order.
18067
18068 If the option value itself is a list of items (e.g. the "format" filter
18069 takes a list of pixel formats), the items in the list are usually
18070 separated by |.
18071
18072 The list of arguments can be quoted using the character ' as initial
18073 and ending mark, and the character \ for escaping the characters within
18074 the quoted text; otherwise the argument string is considered terminated
18075 when the next special character (belonging to the set []=;,) is
18076 encountered.
18077
18078 The name and arguments of the filter are optionally preceded and
18079 followed by a list of link labels. A link label allows one to name a
18080 link and associate it to a filter output or input pad. The preceding
18081 labels in_link_1 ... in_link_N, are associated to the filter input
18082 pads, the following labels out_link_1 ... out_link_M, are associated to
18083 the output pads.
18084
18085 When two link labels with the same name are found in the filtergraph, a
18086 link between the corresponding input and output pad is created.
18087
18088 If an output pad is not labelled, it is linked by default to the first
18089 unlabelled input pad of the next filter in the filterchain. For
18090 example in the filterchain
18091
18092 nullsrc, split[L1], [L2]overlay, nullsink
18093
18094 the split filter instance has two output pads, and the overlay filter
18095 instance two input pads. The first output pad of split is labelled
18096 "L1", the first input pad of overlay is labelled "L2", and the second
18097 output pad of split is linked to the second input pad of overlay, which
18098 are both unlabelled.
18099
18100 In a filter description, if the input label of the first filter is not
18101 specified, "in" is assumed; if the output label of the last filter is
18102 not specified, "out" is assumed.
18103
18104 In a complete filterchain all the unlabelled filter input and output
18105 pads must be connected. A filtergraph is considered valid if all the
18106 filter input and output pads of all the filterchains are connected.
18107
18108 Libavfilter will automatically insert scale filters where format
18109 conversion is required. It is possible to specify swscale flags for
18110 those automatically inserted scalers by prepending "sws_flags=flags;"
18111 to the filtergraph description.
18112
18113 Here is a BNF description of the filtergraph syntax:
18114
18115 <NAME> ::= sequence of alphanumeric characters and '_'
18116 <FILTER_NAME> ::= <NAME>["@"<NAME>]
18117 <LINKLABEL> ::= "[" <NAME> "]"
18118 <LINKLABELS> ::= <LINKLABEL> [<LINKLABELS>]
18119 <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
18120 <FILTER> ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
18121 <FILTERCHAIN> ::= <FILTER> [,<FILTERCHAIN>]
18122 <FILTERGRAPH> ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
18123
18124 Notes on filtergraph escaping
18125 Filtergraph description composition entails several levels of escaping.
18126 See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
18127 for more information about the employed escaping procedure.
18128
18129 A first level escaping affects the content of each filter option value,
18130 which may contain the special character ":" used to separate values, or
18131 one of the escaping characters "\'".
18132
18133 A second level escaping affects the whole filter description, which may
18134 contain the escaping characters "\'" or the special characters "[],;"
18135 used by the filtergraph description.
18136
18137 Finally, when you specify a filtergraph on a shell commandline, you
18138 need to perform a third level escaping for the shell special characters
18139 contained within it.
18140
18141 For example, consider the following string to be embedded in the
18142 drawtext filter description text value:
18143
18144 this is a 'string': may contain one, or more, special characters
18145
18146 This string contains the "'" special escaping character, and the ":"
18147 special character, so it needs to be escaped in this way:
18148
18149 text=this is a \'string\'\: may contain one, or more, special characters
18150
18151 A second level of escaping is required when embedding the filter
18152 description in a filtergraph description, in order to escape all the
18153 filtergraph special characters. Thus the example above becomes:
18154
18155 drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
18156
18157 (note that in addition to the "\'" escaping special characters, also
18158 "," needs to be escaped).
18159
18160 Finally an additional level of escaping is needed when writing the
18161 filtergraph description in a shell command, which depends on the
18162 escaping rules of the adopted shell. For example, assuming that "\" is
18163 special and needs to be escaped with another "\", the previous string
18164 will finally result in:
18165
18166 -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
18167
18169 Some filters support a generic enable option. For the filters
18170 supporting timeline editing, this option can be set to an expression
18171 which is evaluated before sending a frame to the filter. If the
18172 evaluation is non-zero, the filter will be enabled, otherwise the frame
18173 will be sent unchanged to the next filter in the filtergraph.
18174
18175 The expression accepts the following values:
18176
18177 t timestamp expressed in seconds, NAN if the input timestamp is
18178 unknown
18179
18180 n sequential number of the input frame, starting from 0
18181
18182 pos the position in the file of the input frame, NAN if unknown
18183
18184 w
18185 h width and height of the input frame if video
18186
18187 Additionally, these filters support an enable command that can be used
18188 to re-define the expression.
18189
18190 Like any other filtering option, the enable option follows the same
18191 rules.
18192
18193 For example, to enable a blur filter (smartblur) from 10 seconds to 3
18194 minutes, and a curves filter starting at 3 seconds:
18195
18196 smartblur = enable='between(t,10,3*60)',
18197 curves = enable='gte(t,3)' : preset=cross_process
18198
18199 See "ffmpeg -filters" to view which filters have timeline support.
18200
18202 Some options can be changed during the operation of the filter using a
18203 command. These options are marked 'T' on the output of ffmpeg -h
18204 filter=<name of filter>. The name of the command is the name of the
18205 option and the argument is the new value.
18206
18208 Some filters with several inputs support a common set of options.
18209 These options can only be set by name, not with the short notation.
18210
18211 eof_action
18212 The action to take when EOF is encountered on the secondary input;
18213 it accepts one of the following values:
18214
18215 repeat
18216 Repeat the last frame (the default).
18217
18218 endall
18219 End both streams.
18220
18221 pass
18222 Pass the main input through.
18223
18224 shortest
18225 If set to 1, force the output to terminate when the shortest input
18226 terminates. Default value is 0.
18227
18228 repeatlast
18229 If set to 1, force the filter to extend the last frame of secondary
18230 streams until the end of the primary stream. A value of 0 disables
18231 this behavior. Default value is 1.
18232
18234 When you configure your FFmpeg build, you can disable any of the
18235 existing filters using "--disable-filters". The configure output will
18236 show the audio filters included in your build.
18237
18238 Below is a description of the currently available audio filters.
18239
18240 acompressor
18241 A compressor is mainly used to reduce the dynamic range of a signal.
18242 Especially modern music is mostly compressed at a high ratio to improve
18243 the overall loudness. It's done to get the highest attention of a
18244 listener, "fatten" the sound and bring more "power" to the track. If a
18245 signal is compressed too much it may sound dull or "dead" afterwards or
18246 it may start to "pump" (which could be a powerful effect but can also
18247 destroy a track completely). The right compression is the key to reach
18248 a professional sound and is the high art of mixing and mastering.
18249 Because of its complex settings it may take a long time to get the
18250 right feeling for this kind of effect.
18251
18252 Compression is done by detecting the volume above a chosen level
18253 "threshold" and dividing it by the factor set with "ratio". So if you
18254 set the threshold to -12dB and your signal reaches -6dB a ratio of 2:1
18255 will result in a signal at -9dB. Because an exact manipulation of the
18256 signal would cause distortion of the waveform the reduction can be
18257 levelled over the time. This is done by setting "Attack" and "Release".
18258 "attack" determines how long the signal has to rise above the threshold
18259 before any reduction will occur and "release" sets the time the signal
18260 has to fall below the threshold to reduce the reduction again. Shorter
18261 signals than the chosen attack time will be left untouched. The
18262 overall reduction of the signal can be made up afterwards with the
18263 "makeup" setting. So compressing the peaks of a signal about 6dB and
18264 raising the makeup to this level results in a signal twice as loud than
18265 the source. To gain a softer entry in the compression the "knee"
18266 flattens the hard edge at the threshold in the range of the chosen
18267 decibels.
18268
18269 The filter accepts the following options:
18270
18271 level_in
18272 Set input gain. Default is 1. Range is between 0.015625 and 64.
18273
18274 mode
18275 Set mode of compressor operation. Can be "upward" or "downward".
18276 Default is "downward".
18277
18278 threshold
18279 If a signal of stream rises above this level it will affect the
18280 gain reduction. By default it is 0.125. Range is between
18281 0.00097563 and 1.
18282
18283 ratio
18284 Set a ratio by which the signal is reduced. 1:2 means that if the
18285 level rose 4dB above the threshold, it will be only 2dB above after
18286 the reduction. Default is 2. Range is between 1 and 20.
18287
18288 attack
18289 Amount of milliseconds the signal has to rise above the threshold
18290 before gain reduction starts. Default is 20. Range is between 0.01
18291 and 2000.
18292
18293 release
18294 Amount of milliseconds the signal has to fall below the threshold
18295 before reduction is decreased again. Default is 250. Range is
18296 between 0.01 and 9000.
18297
18298 makeup
18299 Set the amount by how much signal will be amplified after
18300 processing. Default is 1. Range is from 1 to 64.
18301
18302 knee
18303 Curve the sharp knee around the threshold to enter gain reduction
18304 more softly. Default is 2.82843. Range is between 1 and 8.
18305
18306 link
18307 Choose if the "average" level between all channels of input stream
18308 or the louder("maximum") channel of input stream affects the
18309 reduction. Default is "average".
18310
18311 detection
18312 Should the exact signal be taken in case of "peak" or an RMS one in
18313 case of "rms". Default is "rms" which is mostly smoother.
18314
18315 mix How much to use compressed signal in output. Default is 1. Range
18316 is between 0 and 1.
18317
18318 Commands
18319
18320 This filter supports the all above options as commands.
18321
18322 acontrast
18323 Simple audio dynamic range compression/expansion filter.
18324
18325 The filter accepts the following options:
18326
18327 contrast
18328 Set contrast. Default is 33. Allowed range is between 0 and 100.
18329
18330 acopy
18331 Copy the input audio source unchanged to the output. This is mainly
18332 useful for testing purposes.
18333
18334 acrossfade
18335 Apply cross fade from one input audio stream to another input audio
18336 stream. The cross fade is applied for specified duration near the end
18337 of first stream.
18338
18339 The filter accepts the following options:
18340
18341 nb_samples, ns
18342 Specify the number of samples for which the cross fade effect has
18343 to last. At the end of the cross fade effect the first input audio
18344 will be completely silent. Default is 44100.
18345
18346 duration, d
18347 Specify the duration of the cross fade effect. See the Time
18348 duration section in the ffmpeg-utils(1) manual for the accepted
18349 syntax. By default the duration is determined by nb_samples. If
18350 set this option is used instead of nb_samples.
18351
18352 overlap, o
18353 Should first stream end overlap with second stream start. Default
18354 is enabled.
18355
18356 curve1
18357 Set curve for cross fade transition for first stream.
18358
18359 curve2
18360 Set curve for cross fade transition for second stream.
18361
18362 For description of available curve types see afade filter
18363 description.
18364
18365 Examples
18366
18367 • Cross fade from one input to another:
18368
18369 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
18370
18371 • Cross fade from one input to another but without overlapping:
18372
18373 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
18374
18375 acrossover
18376 Split audio stream into several bands.
18377
18378 This filter splits audio stream into two or more frequency ranges.
18379 Summing all streams back will give flat output.
18380
18381 The filter accepts the following options:
18382
18383 split
18384 Set split frequencies. Those must be positive and increasing.
18385
18386 order
18387 Set filter order for each band split. This controls filter roll-off
18388 or steepness of filter transfer function. Available values are:
18389
18390 2nd 12 dB per octave.
18391
18392 4th 24 dB per octave.
18393
18394 6th 36 dB per octave.
18395
18396 8th 48 dB per octave.
18397
18398 10th
18399 60 dB per octave.
18400
18401 12th
18402 72 dB per octave.
18403
18404 14th
18405 84 dB per octave.
18406
18407 16th
18408 96 dB per octave.
18409
18410 18th
18411 108 dB per octave.
18412
18413 20th
18414 120 dB per octave.
18415
18416 Default is 4th.
18417
18418 level
18419 Set input gain level. Allowed range is from 0 to 1. Default value
18420 is 1.
18421
18422 gains
18423 Set output gain for each band. Default value is 1 for all bands.
18424
18425 precision
18426 Set which precision to use when processing samples.
18427
18428 auto
18429 Auto pick internal sample format depending on other filters.
18430
18431 float
18432 Always use single-floating point precision sample format.
18433
18434 double
18435 Always use double-floating point precision sample format.
18436
18437 Default value is "auto".
18438
18439 Examples
18440
18441 • Split input audio stream into two bands (low and high) with split
18442 frequency of 1500 Hz, each band will be in separate stream:
18443
18444 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
18445
18446 • Same as above, but with higher filter order:
18447
18448 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
18449
18450 • Same as above, but also with additional middle band (frequencies
18451 between 1500 and 8000):
18452
18453 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
18454
18455 acrusher
18456 Reduce audio bit resolution.
18457
18458 This filter is bit crusher with enhanced functionality. A bit crusher
18459 is used to audibly reduce number of bits an audio signal is sampled
18460 with. This doesn't change the bit depth at all, it just produces the
18461 effect. Material reduced in bit depth sounds more harsh and "digital".
18462 This filter is able to even round to continuous values instead of
18463 discrete bit depths. Additionally it has a D/C offset which results in
18464 different crushing of the lower and the upper half of the signal. An
18465 Anti-Aliasing setting is able to produce "softer" crushing sounds.
18466
18467 Another feature of this filter is the logarithmic mode. This setting
18468 switches from linear distances between bits to logarithmic ones. The
18469 result is a much more "natural" sounding crusher which doesn't gate low
18470 signals for example. The human ear has a logarithmic perception, so
18471 this kind of crushing is much more pleasant. Logarithmic crushing is
18472 also able to get anti-aliased.
18473
18474 The filter accepts the following options:
18475
18476 level_in
18477 Set level in.
18478
18479 level_out
18480 Set level out.
18481
18482 bits
18483 Set bit reduction.
18484
18485 mix Set mixing amount.
18486
18487 mode
18488 Can be linear: "lin" or logarithmic: "log".
18489
18490 dc Set DC.
18491
18492 aa Set anti-aliasing.
18493
18494 samples
18495 Set sample reduction.
18496
18497 lfo Enable LFO. By default disabled.
18498
18499 lforange
18500 Set LFO range.
18501
18502 lforate
18503 Set LFO rate.
18504
18505 Commands
18506
18507 This filter supports the all above options as commands.
18508
18509 acue
18510 Delay audio filtering until a given wallclock timestamp. See the cue
18511 filter.
18512
18513 adeclick
18514 Remove impulsive noise from input audio.
18515
18516 Samples detected as impulsive noise are replaced by interpolated
18517 samples using autoregressive modelling.
18518
18519 window, w
18520 Set window size, in milliseconds. Allowed range is from 10 to 100.
18521 Default value is 55 milliseconds. This sets size of window which
18522 will be processed at once.
18523
18524 overlap, o
18525 Set window overlap, in percentage of window size. Allowed range is
18526 from 50 to 95. Default value is 75 percent. Setting this to a very
18527 high value increases impulsive noise removal but makes whole
18528 process much slower.
18529
18530 arorder, a
18531 Set autoregression order, in percentage of window size. Allowed
18532 range is from 0 to 25. Default value is 2 percent. This option also
18533 controls quality of interpolated samples using neighbour good
18534 samples.
18535
18536 threshold, t
18537 Set threshold value. Allowed range is from 1 to 100. Default value
18538 is 2. This controls the strength of impulsive noise which is going
18539 to be removed. The lower value, the more samples will be detected
18540 as impulsive noise.
18541
18542 burst, b
18543 Set burst fusion, in percentage of window size. Allowed range is 0
18544 to 10. Default value is 2. If any two samples detected as noise
18545 are spaced less than this value then any sample between those two
18546 samples will be also detected as noise.
18547
18548 method, m
18549 Set overlap method.
18550
18551 It accepts the following values:
18552
18553 add, a
18554 Select overlap-add method. Even not interpolated samples are
18555 slightly changed with this method.
18556
18557 save, s
18558 Select overlap-save method. Not interpolated samples remain
18559 unchanged.
18560
18561 Default value is "a".
18562
18563 adeclip
18564 Remove clipped samples from input audio.
18565
18566 Samples detected as clipped are replaced by interpolated samples using
18567 autoregressive modelling.
18568
18569 window, w
18570 Set window size, in milliseconds. Allowed range is from 10 to 100.
18571 Default value is 55 milliseconds. This sets size of window which
18572 will be processed at once.
18573
18574 overlap, o
18575 Set window overlap, in percentage of window size. Allowed range is
18576 from 50 to 95. Default value is 75 percent.
18577
18578 arorder, a
18579 Set autoregression order, in percentage of window size. Allowed
18580 range is from 0 to 25. Default value is 8 percent. This option also
18581 controls quality of interpolated samples using neighbour good
18582 samples.
18583
18584 threshold, t
18585 Set threshold value. Allowed range is from 1 to 100. Default value
18586 is 10. Higher values make clip detection less aggressive.
18587
18588 hsize, n
18589 Set size of histogram used to detect clips. Allowed range is from
18590 100 to 9999. Default value is 1000. Higher values make clip
18591 detection less aggressive.
18592
18593 method, m
18594 Set overlap method.
18595
18596 It accepts the following values:
18597
18598 add, a
18599 Select overlap-add method. Even not interpolated samples are
18600 slightly changed with this method.
18601
18602 save, s
18603 Select overlap-save method. Not interpolated samples remain
18604 unchanged.
18605
18606 Default value is "a".
18607
18608 adecorrelate
18609 Apply decorrelation to input audio stream.
18610
18611 The filter accepts the following options:
18612
18613 stages
18614 Set decorrelation stages of filtering. Allowed range is from 1 to
18615 16. Default value is 6.
18616
18617 seed
18618 Set random seed used for setting delay in samples across channels.
18619
18620 adelay
18621 Delay one or more audio channels.
18622
18623 Samples in delayed channel are filled with silence.
18624
18625 The filter accepts the following option:
18626
18627 delays
18628 Set list of delays in milliseconds for each channel separated by
18629 '|'. Unused delays will be silently ignored. If number of given
18630 delays is smaller than number of channels all remaining channels
18631 will not be delayed. If you want to delay exact number of samples,
18632 append 'S' to number. If you want instead to delay in seconds,
18633 append 's' to number.
18634
18635 all Use last set delay for all remaining channels. By default is
18636 disabled. This option if enabled changes how option "delays" is
18637 interpreted.
18638
18639 Examples
18640
18641 • Delay first channel by 1.5 seconds, the third channel by 0.5
18642 seconds and leave the second channel (and any other channels that
18643 may be present) unchanged.
18644
18645 adelay=1500|0|500
18646
18647 • Delay second channel by 500 samples, the third channel by 700
18648 samples and leave the first channel (and any other channels that
18649 may be present) unchanged.
18650
18651 adelay=0|500S|700S
18652
18653 • Delay all channels by same number of samples:
18654
18655 adelay=delays=64S:all=1
18656
18657 adenorm
18658 Remedy denormals in audio by adding extremely low-level noise.
18659
18660 This filter shall be placed before any filter that can produce
18661 denormals.
18662
18663 A description of the accepted parameters follows.
18664
18665 level
18666 Set level of added noise in dB. Default is "-351". Allowed range
18667 is from -451 to -90.
18668
18669 type
18670 Set type of added noise.
18671
18672 dc Add DC signal.
18673
18674 ac Add AC signal.
18675
18676 square
18677 Add square signal.
18678
18679 pulse
18680 Add pulse signal.
18681
18682 Default is "dc".
18683
18684 Commands
18685
18686 This filter supports the all above options as commands.
18687
18688 aderivative, aintegral
18689 Compute derivative/integral of audio stream.
18690
18691 Applying both filters one after another produces original audio.
18692
18693 adynamicequalizer
18694 Apply dynamic equalization to input audio stream.
18695
18696 A description of the accepted options follows.
18697
18698 threshold
18699 Set the detection threshold used to trigger equalization.
18700 Threshold detection is using bandpass filter. Default value is 0.
18701 Allowed range is from 0 to 100.
18702
18703 dfrequency
18704 Set the detection frequency in Hz used for bandpass filter used to
18705 trigger equalization. Default value is 1000 Hz. Allowed range is
18706 between 2 and 1000000 Hz.
18707
18708 dqfactor
18709 Set the detection resonance factor for bandpass filter used to
18710 trigger equalization. Default value is 1. Allowed range is from
18711 0.001 to 1000.
18712
18713 tfrequency
18714 Set the target frequency of equalization filter. Default value is
18715 1000 Hz. Allowed range is between 2 and 1000000 Hz.
18716
18717 tqfactor
18718 Set the target resonance factor for target equalization filter.
18719 Default value is 1. Allowed range is from 0.001 to 1000.
18720
18721 attack
18722 Set the amount of milliseconds the signal from detection has to
18723 rise above the detection threshold before equalization starts.
18724 Default is 20. Allowed range is between 1 and 2000.
18725
18726 release
18727 Set the amount of milliseconds the signal from detection has to
18728 fall below the detection threshold before equalization ends.
18729 Default is 200. Allowed range is between 1 and 2000.
18730
18731 knee
18732 Curve the sharp knee around the detection threshold to calculate
18733 equalization gain more softly. Default is 1. Allowed range is
18734 between 0 and 8.
18735
18736 ratio
18737 Set the ratio by which the equalization gain is raised. Default is
18738 1. Allowed range is between 1 and 20.
18739
18740 makeup
18741 Set the makeup offset in dB by which the equalization gain is
18742 raised. Default is 0. Allowed range is between 0 and 30.
18743
18744 range
18745 Set the max allowed cut/boost amount in dB. Default is 0. Allowed
18746 range is from 0 to 200.
18747
18748 slew
18749 Set the slew factor. Default is 1. Allowed range is from 1 to 200.
18750
18751 mode
18752 Set the mode of filter operation, can be one of the following:
18753
18754 listen
18755 Output only isolated bandpass signal.
18756
18757 cut Cut frequencies above detection threshold.
18758
18759 boost
18760 Boost frequencies bellow detection threshold.
18761
18762 Default mode is cut.
18763
18764 tftype
18765 Set the type of target filter, can be one of the following:
18766
18767 bell
18768 lowshelf
18769 highshelf
18770
18771 Default type is bell.
18772
18773 Commands
18774
18775 This filter supports the all above options as commands.
18776
18777 adynamicsmooth
18778 Apply dynamic smoothing to input audio stream.
18779
18780 A description of the accepted options follows.
18781
18782 sensitivity
18783 Set an amount of sensitivity to frequency fluctations. Default is
18784 2. Allowed range is from 0 to 1e+06.
18785
18786 basefreq
18787 Set a base frequency for smoothing. Default value is 22050.
18788 Allowed range is from 2 to 1e+06.
18789
18790 Commands
18791
18792 This filter supports the all above options as commands.
18793
18794 aecho
18795 Apply echoing to the input audio.
18796
18797 Echoes are reflected sound and can occur naturally amongst mountains
18798 (and sometimes large buildings) when talking or shouting; digital echo
18799 effects emulate this behaviour and are often used to help fill out the
18800 sound of a single instrument or vocal. The time difference between the
18801 original signal and the reflection is the "delay", and the loudness of
18802 the reflected signal is the "decay". Multiple echoes can have
18803 different delays and decays.
18804
18805 A description of the accepted parameters follows.
18806
18807 in_gain
18808 Set input gain of reflected signal. Default is 0.6.
18809
18810 out_gain
18811 Set output gain of reflected signal. Default is 0.3.
18812
18813 delays
18814 Set list of time intervals in milliseconds between original signal
18815 and reflections separated by '|'. Allowed range for each "delay" is
18816 "(0 - 90000.0]". Default is 1000.
18817
18818 decays
18819 Set list of loudness of reflected signals separated by '|'.
18820 Allowed range for each "decay" is "(0 - 1.0]". Default is 0.5.
18821
18822 Examples
18823
18824 • Make it sound as if there are twice as many instruments as are
18825 actually playing:
18826
18827 aecho=0.8:0.88:60:0.4
18828
18829 • If delay is very short, then it sounds like a (metallic) robot
18830 playing music:
18831
18832 aecho=0.8:0.88:6:0.4
18833
18834 • A longer delay will sound like an open air concert in the
18835 mountains:
18836
18837 aecho=0.8:0.9:1000:0.3
18838
18839 • Same as above but with one more mountain:
18840
18841 aecho=0.8:0.9:1000|1800:0.3|0.25
18842
18843 aemphasis
18844 Audio emphasis filter creates or restores material directly taken from
18845 LPs or emphased CDs with different filter curves. E.g. to store music
18846 on vinyl the signal has to be altered by a filter first to even out the
18847 disadvantages of this recording medium. Once the material is played
18848 back the inverse filter has to be applied to restore the distortion of
18849 the frequency response.
18850
18851 The filter accepts the following options:
18852
18853 level_in
18854 Set input gain.
18855
18856 level_out
18857 Set output gain.
18858
18859 mode
18860 Set filter mode. For restoring material use "reproduction" mode,
18861 otherwise use "production" mode. Default is "reproduction" mode.
18862
18863 type
18864 Set filter type. Selects medium. Can be one of the following:
18865
18866 col select Columbia.
18867
18868 emi select EMI.
18869
18870 bsi select BSI (78RPM).
18871
18872 riaa
18873 select RIAA.
18874
18875 cd select Compact Disc (CD).
18876
18877 50fm
18878 select 50Xs (FM).
18879
18880 75fm
18881 select 75Xs (FM).
18882
18883 50kf
18884 select 50Xs (FM-KF).
18885
18886 75kf
18887 select 75Xs (FM-KF).
18888
18889 Commands
18890
18891 This filter supports the all above options as commands.
18892
18893 aeval
18894 Modify an audio signal according to the specified expressions.
18895
18896 This filter accepts one or more expressions (one for each channel),
18897 which are evaluated and used to modify a corresponding audio signal.
18898
18899 It accepts the following parameters:
18900
18901 exprs
18902 Set the '|'-separated expressions list for each separate channel.
18903 If the number of input channels is greater than the number of
18904 expressions, the last specified expression is used for the
18905 remaining output channels.
18906
18907 channel_layout, c
18908 Set output channel layout. If not specified, the channel layout is
18909 specified by the number of expressions. If set to same, it will use
18910 by default the same input channel layout.
18911
18912 Each expression in exprs can contain the following constants and
18913 functions:
18914
18915 ch channel number of the current expression
18916
18917 n number of the evaluated sample, starting from 0
18918
18919 s sample rate
18920
18921 t time of the evaluated sample expressed in seconds
18922
18923 nb_in_channels
18924 nb_out_channels
18925 input and output number of channels
18926
18927 val(CH)
18928 the value of input channel with number CH
18929
18930 Note: this filter is slow. For faster processing you should use a
18931 dedicated filter.
18932
18933 Examples
18934
18935 • Half volume:
18936
18937 aeval=val(ch)/2:c=same
18938
18939 • Invert phase of the second channel:
18940
18941 aeval=val(0)|-val(1)
18942
18943 aexciter
18944 An exciter is used to produce high sound that is not present in the
18945 original signal. This is done by creating harmonic distortions of the
18946 signal which are restricted in range and added to the original signal.
18947 An Exciter raises the upper end of an audio signal without simply
18948 raising the higher frequencies like an equalizer would do to create a
18949 more "crisp" or "brilliant" sound.
18950
18951 The filter accepts the following options:
18952
18953 level_in
18954 Set input level prior processing of signal. Allowed range is from
18955 0 to 64. Default value is 1.
18956
18957 level_out
18958 Set output level after processing of signal. Allowed range is from
18959 0 to 64. Default value is 1.
18960
18961 amount
18962 Set the amount of harmonics added to original signal. Allowed
18963 range is from 0 to 64. Default value is 1.
18964
18965 drive
18966 Set the amount of newly created harmonics. Allowed range is from
18967 0.1 to 10. Default value is 8.5.
18968
18969 blend
18970 Set the octave of newly created harmonics. Allowed range is from
18971 -10 to 10. Default value is 0.
18972
18973 freq
18974 Set the lower frequency limit of producing harmonics in Hz.
18975 Allowed range is from 2000 to 12000 Hz. Default is 7500 Hz.
18976
18977 ceil
18978 Set the upper frequency limit of producing harmonics. Allowed
18979 range is from 9999 to 20000 Hz. If value is lower than 10000 Hz no
18980 limit is applied.
18981
18982 listen
18983 Mute the original signal and output only added harmonics. By
18984 default is disabled.
18985
18986 Commands
18987
18988 This filter supports the all above options as commands.
18989
18990 afade
18991 Apply fade-in/out effect to input audio.
18992
18993 A description of the accepted parameters follows.
18994
18995 type, t
18996 Specify the effect type, can be either "in" for fade-in, or "out"
18997 for a fade-out effect. Default is "in".
18998
18999 start_sample, ss
19000 Specify the number of the start sample for starting to apply the
19001 fade effect. Default is 0.
19002
19003 nb_samples, ns
19004 Specify the number of samples for which the fade effect has to
19005 last. At the end of the fade-in effect the output audio will have
19006 the same volume as the input audio, at the end of the fade-out
19007 transition the output audio will be silence. Default is 44100.
19008
19009 start_time, st
19010 Specify the start time of the fade effect. Default is 0. The value
19011 must be specified as a time duration; see the Time duration section
19012 in the ffmpeg-utils(1) manual for the accepted syntax. If set this
19013 option is used instead of start_sample.
19014
19015 duration, d
19016 Specify the duration of the fade effect. See the Time duration
19017 section in the ffmpeg-utils(1) manual for the accepted syntax. At
19018 the end of the fade-in effect the output audio will have the same
19019 volume as the input audio, at the end of the fade-out transition
19020 the output audio will be silence. By default the duration is
19021 determined by nb_samples. If set this option is used instead of
19022 nb_samples.
19023
19024 curve
19025 Set curve for fade transition.
19026
19027 It accepts the following values:
19028
19029 tri select triangular, linear slope (default)
19030
19031 qsin
19032 select quarter of sine wave
19033
19034 hsin
19035 select half of sine wave
19036
19037 esin
19038 select exponential sine wave
19039
19040 log select logarithmic
19041
19042 ipar
19043 select inverted parabola
19044
19045 qua select quadratic
19046
19047 cub select cubic
19048
19049 squ select square root
19050
19051 cbr select cubic root
19052
19053 par select parabola
19054
19055 exp select exponential
19056
19057 iqsin
19058 select inverted quarter of sine wave
19059
19060 ihsin
19061 select inverted half of sine wave
19062
19063 dese
19064 select double-exponential seat
19065
19066 desi
19067 select double-exponential sigmoid
19068
19069 losi
19070 select logistic sigmoid
19071
19072 sinc
19073 select sine cardinal function
19074
19075 isinc
19076 select inverted sine cardinal function
19077
19078 nofade
19079 no fade applied
19080
19081 Commands
19082
19083 This filter supports the all above options as commands.
19084
19085 Examples
19086
19087 • Fade in first 15 seconds of audio:
19088
19089 afade=t=in:ss=0:d=15
19090
19091 • Fade out last 25 seconds of a 900 seconds audio:
19092
19093 afade=t=out:st=875:d=25
19094
19095 afftdn
19096 Denoise audio samples with FFT.
19097
19098 A description of the accepted parameters follows.
19099
19100 noise_reduction, nr
19101 Set the noise reduction in dB, allowed range is 0.01 to 97.
19102 Default value is 12 dB.
19103
19104 noise_floor, nf
19105 Set the noise floor in dB, allowed range is -80 to -20. Default
19106 value is -50 dB.
19107
19108 noise_type, nt
19109 Set the noise type.
19110
19111 It accepts the following values:
19112
19113 white, w
19114 Select white noise.
19115
19116 vinyl, v
19117 Select vinyl noise.
19118
19119 shellac, s
19120 Select shellac noise.
19121
19122 custom, c
19123 Select custom noise, defined in "bn" option.
19124
19125 Default value is white noise.
19126
19127 band_noise, bn
19128 Set custom band noise profile for every one of 15 bands. Bands are
19129 separated by ' ' or '|'.
19130
19131 residual_floor, rf
19132 Set the residual floor in dB, allowed range is -80 to -20. Default
19133 value is -38 dB.
19134
19135 track_noise, tn
19136 Enable noise floor tracking. By default is disabled. With this
19137 enabled, noise floor is automatically adjusted.
19138
19139 track_residual, tr
19140 Enable residual tracking. By default is disabled.
19141
19142 output_mode, om
19143 Set the output mode.
19144
19145 It accepts the following values:
19146
19147 input, i
19148 Pass input unchanged.
19149
19150 output, o
19151 Pass noise filtered out.
19152
19153 noise, n
19154 Pass only noise.
19155
19156 Default value is output.
19157
19158 adaptivity, ad
19159 Set the adaptivity factor, used how fast to adapt gains adjustments
19160 per each frequency bin. Value 0 enables instant adaptation, while
19161 higher values react much slower. Allowed range is from 0 to 1.
19162 Default value is 0.5.
19163
19164 floor_offset, fo
19165 Set the noise floor offset factor. This option is used to adjust
19166 offset applied to measured noise floor. It is only effective when
19167 noise floor tracking is enabled. Allowed range is from -2.0 to
19168 2.0. Default value is 1.0.
19169
19170 noise_link, nl
19171 Set the noise link used for multichannel audio.
19172
19173 It accepts the following values:
19174
19175 none
19176 Use unchanged channel's noise floor.
19177
19178 min Use measured min noise floor of all channels.
19179
19180 max Use measured max noise floor of all channels.
19181
19182 average
19183 Use measured average noise floor of all channels.
19184
19185 Default value is min.
19186
19187 band_multiplier, bm
19188 Set the band multiplier factor, used how much to spread bands
19189 across frequency bins. Allowed range is from 0.2 to 5. Default
19190 value is 1.25.
19191
19192 sample_noise, sn
19193 Toggle capturing and measurement of noise profile from input audio.
19194
19195 It accepts the following values:
19196
19197 start, begin
19198 Start sample noise capture.
19199
19200 stop, end
19201 Stop sample noise capture and measure new noise band profile.
19202
19203 Default value is "none".
19204
19205 gain_smooth, gs
19206 Set gain smooth spatial radius, used to smooth gains applied to
19207 each frequency bin. Useful to reduce random music noise artefacts.
19208 Higher values increases smoothing of gains. Allowed range is from
19209 0 to 50. Default value is 0.
19210
19211 Commands
19212
19213 This filter supports the some above mentioned options as commands.
19214
19215 Examples
19216
19217 • Reduce white noise by 10dB, and use previously measured noise floor
19218 of -40dB:
19219
19220 afftdn=nr=10:nf=-40
19221
19222 • Reduce white noise by 10dB, also set initial noise floor to -80dB
19223 and enable automatic tracking of noise floor so noise floor will
19224 gradually change during processing:
19225
19226 afftdn=nr=10:nf=-80:tn=1
19227
19228 • Reduce noise by 20dB, using noise floor of -40dB and using commands
19229 to take noise profile of first 0.4 seconds of input audio:
19230
19231 asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
19232
19233 afftfilt
19234 Apply arbitrary expressions to samples in frequency domain.
19235
19236 real
19237 Set frequency domain real expression for each separate channel
19238 separated by '|'. Default is "re". If the number of input channels
19239 is greater than the number of expressions, the last specified
19240 expression is used for the remaining output channels.
19241
19242 imag
19243 Set frequency domain imaginary expression for each separate channel
19244 separated by '|'. Default is "im".
19245
19246 Each expression in real and imag can contain the following
19247 constants and functions:
19248
19249 sr sample rate
19250
19251 b current frequency bin number
19252
19253 nb number of available bins
19254
19255 ch channel number of the current expression
19256
19257 chs number of channels
19258
19259 pts current frame pts
19260
19261 re current real part of frequency bin of current channel
19262
19263 im current imaginary part of frequency bin of current channel
19264
19265 real(b, ch)
19266 Return the value of real part of frequency bin at location
19267 (bin,channel)
19268
19269 imag(b, ch)
19270 Return the value of imaginary part of frequency bin at location
19271 (bin,channel)
19272
19273 win_size
19274 Set window size. Allowed range is from 16 to 131072. Default is
19275 4096
19276
19277 win_func
19278 Set window function.
19279
19280 It accepts the following values:
19281
19282 rect
19283 bartlett
19284 hann, hanning
19285 hamming
19286 blackman
19287 welch
19288 flattop
19289 bharris
19290 bnuttall
19291 bhann
19292 sine
19293 nuttall
19294 lanczos
19295 gauss
19296 tukey
19297 dolph
19298 cauchy
19299 parzen
19300 poisson
19301 bohman
19302
19303 Default is "hann".
19304
19305 overlap
19306 Set window overlap. If set to 1, the recommended overlap for
19307 selected window function will be picked. Default is 0.75.
19308
19309 Examples
19310
19311 • Leave almost only low frequencies in audio:
19312
19313 afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
19314
19315 • Apply robotize effect:
19316
19317 afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
19318
19319 • Apply whisper effect:
19320
19321 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"
19322
19323 afir
19324 Apply an arbitrary Finite Impulse Response filter.
19325
19326 This filter is designed for applying long FIR filters, up to 60 seconds
19327 long.
19328
19329 It can be used as component for digital crossover filters, room
19330 equalization, cross talk cancellation, wavefield synthesis,
19331 auralization, ambiophonics, ambisonics and spatialization.
19332
19333 This filter uses the streams higher than first one as FIR coefficients.
19334 If the non-first stream holds a single channel, it will be used for all
19335 input channels in the first stream, otherwise the number of channels in
19336 the non-first stream must be same as the number of channels in the
19337 first stream.
19338
19339 It accepts the following parameters:
19340
19341 dry Set dry gain. This sets input gain.
19342
19343 wet Set wet gain. This sets final output gain.
19344
19345 length
19346 Set Impulse Response filter length. Default is 1, which means whole
19347 IR is processed.
19348
19349 gtype
19350 Enable applying gain measured from power of IR.
19351
19352 Set which approach to use for auto gain measurement.
19353
19354 none
19355 Do not apply any gain.
19356
19357 peak
19358 select peak gain, very conservative approach. This is default
19359 value.
19360
19361 dc select DC gain, limited application.
19362
19363 gn select gain to noise approach, this is most popular one.
19364
19365 irgain
19366 Set gain to be applied to IR coefficients before filtering.
19367 Allowed range is 0 to 1. This gain is applied after any gain
19368 applied with gtype option.
19369
19370 irfmt
19371 Set format of IR stream. Can be "mono" or "input". Default is
19372 "input".
19373
19374 maxir
19375 Set max allowed Impulse Response filter duration in seconds.
19376 Default is 30 seconds. Allowed range is 0.1 to 60 seconds.
19377
19378 response
19379 Show IR frequency response, magnitude(magenta), phase(green) and
19380 group delay(yellow) in additional video stream. By default it is
19381 disabled.
19382
19383 channel
19384 Set for which IR channel to display frequency response. By default
19385 is first channel displayed. This option is used only when response
19386 is enabled.
19387
19388 size
19389 Set video stream size. This option is used only when response is
19390 enabled.
19391
19392 rate
19393 Set video stream frame rate. This option is used only when response
19394 is enabled.
19395
19396 minp
19397 Set minimal partition size used for convolution. Default is 8192.
19398 Allowed range is from 1 to 32768. Lower values decreases latency
19399 at cost of higher CPU usage.
19400
19401 maxp
19402 Set maximal partition size used for convolution. Default is 8192.
19403 Allowed range is from 8 to 32768. Lower values may increase CPU
19404 usage.
19405
19406 nbirs
19407 Set number of input impulse responses streams which will be
19408 switchable at runtime. Allowed range is from 1 to 32. Default is
19409 1.
19410
19411 ir Set IR stream which will be used for convolution, starting from 0,
19412 should always be lower than supplied value by "nbirs" option.
19413 Default is 0. This option can be changed at runtime via commands.
19414
19415 precision
19416 Set which precision to use when processing samples.
19417
19418 auto
19419 Auto pick internal sample format depending on other filters.
19420
19421 float
19422 Always use single-floating point precision sample format.
19423
19424 double
19425 Always use double-floating point precision sample format.
19426
19427 Default value is auto.
19428
19429 Examples
19430
19431 • Apply reverb to stream using mono IR file as second input, complete
19432 command using ffmpeg:
19433
19434 ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
19435
19436 aformat
19437 Set output format constraints for the input audio. The framework will
19438 negotiate the most appropriate format to minimize conversions.
19439
19440 It accepts the following parameters:
19441
19442 sample_fmts, f
19443 A '|'-separated list of requested sample formats.
19444
19445 sample_rates, r
19446 A '|'-separated list of requested sample rates.
19447
19448 channel_layouts, cl
19449 A '|'-separated list of requested channel layouts.
19450
19451 See the Channel Layout section in the ffmpeg-utils(1) manual for
19452 the required syntax.
19453
19454 If a parameter is omitted, all values are allowed.
19455
19456 Force the output to either unsigned 8-bit or signed 16-bit stereo
19457
19458 aformat=sample_fmts=u8|s16:channel_layouts=stereo
19459
19460 afreqshift
19461 Apply frequency shift to input audio samples.
19462
19463 The filter accepts the following options:
19464
19465 shift
19466 Specify frequency shift. Allowed range is -INT_MAX to INT_MAX.
19467 Default value is 0.0.
19468
19469 level
19470 Set output gain applied to final output. Allowed range is from 0.0
19471 to 1.0. Default value is 1.0.
19472
19473 order
19474 Set filter order used for filtering. Allowed range is from 1 to 16.
19475 Default value is 8.
19476
19477 Commands
19478
19479 This filter supports the all above options as commands.
19480
19481 afwtdn
19482 Reduce broadband noise from input samples using Wavelets.
19483
19484 A description of the accepted options follows.
19485
19486 sigma
19487 Set the noise sigma, allowed range is from 0 to 1. Default value
19488 is 0. This option controls strength of denoising applied to input
19489 samples. Most useful way to set this option is via decibels, eg.
19490 -45dB.
19491
19492 levels
19493 Set the number of wavelet levels of decomposition. Allowed range
19494 is from 1 to 12. Default value is 10. Setting this too low make
19495 denoising performance very poor.
19496
19497 wavet
19498 Set wavelet type for decomposition of input frame. They are sorted
19499 by number of coefficients, from lowest to highest. More
19500 coefficients means worse filtering speed, but overall better
19501 quality. Available wavelets are:
19502
19503 sym2
19504 sym4
19505 rbior68
19506 deb10
19507 sym10
19508 coif5
19509 bl3
19510 percent
19511 Set percent of full denoising. Allowed range is from 0 to 100
19512 percent. Default value is 85 percent or partial denoising.
19513
19514 profile
19515 If enabled, first input frame will be used as noise profile. If
19516 first frame samples contain non-noise performance will be very
19517 poor.
19518
19519 adaptive
19520 If enabled, input frames are analyzed for presence of noise. If
19521 noise is detected with high possibility then input frame profile
19522 will be used for processing following frames, until new noise frame
19523 is detected.
19524
19525 samples
19526 Set size of single frame in number of samples. Allowed range is
19527 from 512 to 65536. Default frame size is 8192 samples.
19528
19529 softness
19530 Set softness applied inside thresholding function. Allowed range is
19531 from 0 to 10. Default softness is 1.
19532
19533 Commands
19534
19535 This filter supports the all above options as commands.
19536
19537 agate
19538 A gate is mainly used to reduce lower parts of a signal. This kind of
19539 signal processing reduces disturbing noise between useful signals.
19540
19541 Gating is done by detecting the volume below a chosen level threshold
19542 and dividing it by the factor set with ratio. The bottom of the noise
19543 floor is set via range. Because an exact manipulation of the signal
19544 would cause distortion of the waveform the reduction can be levelled
19545 over time. This is done by setting attack and release.
19546
19547 attack determines how long the signal has to fall below the threshold
19548 before any reduction will occur and release sets the time the signal
19549 has to rise above the threshold to reduce the reduction again. Shorter
19550 signals than the chosen attack time will be left untouched.
19551
19552 level_in
19553 Set input level before filtering. Default is 1. Allowed range is
19554 from 0.015625 to 64.
19555
19556 mode
19557 Set the mode of operation. Can be "upward" or "downward". Default
19558 is "downward". If set to "upward" mode, higher parts of signal will
19559 be amplified, expanding dynamic range in upward direction.
19560 Otherwise, in case of "downward" lower parts of signal will be
19561 reduced.
19562
19563 range
19564 Set the level of gain reduction when the signal is below the
19565 threshold. Default is 0.06125. Allowed range is from 0 to 1.
19566 Setting this to 0 disables reduction and then filter behaves like
19567 expander.
19568
19569 threshold
19570 If a signal rises above this level the gain reduction is released.
19571 Default is 0.125. Allowed range is from 0 to 1.
19572
19573 ratio
19574 Set a ratio by which the signal is reduced. Default is 2. Allowed
19575 range is from 1 to 9000.
19576
19577 attack
19578 Amount of milliseconds the signal has to rise above the threshold
19579 before gain reduction stops. Default is 20 milliseconds. Allowed
19580 range is from 0.01 to 9000.
19581
19582 release
19583 Amount of milliseconds the signal has to fall below the threshold
19584 before the reduction is increased again. Default is 250
19585 milliseconds. Allowed range is from 0.01 to 9000.
19586
19587 makeup
19588 Set amount of amplification of signal after processing. Default is
19589 1. Allowed range is from 1 to 64.
19590
19591 knee
19592 Curve the sharp knee around the threshold to enter gain reduction
19593 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
19594
19595 detection
19596 Choose if exact signal should be taken for detection or an RMS like
19597 one. Default is "rms". Can be "peak" or "rms".
19598
19599 link
19600 Choose if the average level between all channels or the louder
19601 channel affects the reduction. Default is "average". Can be
19602 "average" or "maximum".
19603
19604 Commands
19605
19606 This filter supports the all above options as commands.
19607
19608 aiir
19609 Apply an arbitrary Infinite Impulse Response filter.
19610
19611 It accepts the following parameters:
19612
19613 zeros, z
19614 Set B/numerator/zeros/reflection coefficients.
19615
19616 poles, p
19617 Set A/denominator/poles/ladder coefficients.
19618
19619 gains, k
19620 Set channels gains.
19621
19622 dry_gain
19623 Set input gain.
19624
19625 wet_gain
19626 Set output gain.
19627
19628 format, f
19629 Set coefficients format.
19630
19631 ll lattice-ladder function
19632
19633 sf analog transfer function
19634
19635 tf digital transfer function
19636
19637 zp Z-plane zeros/poles, cartesian (default)
19638
19639 pr Z-plane zeros/poles, polar radians
19640
19641 pd Z-plane zeros/poles, polar degrees
19642
19643 sp S-plane zeros/poles
19644
19645 process, r
19646 Set type of processing.
19647
19648 d direct processing
19649
19650 s serial processing
19651
19652 p parallel processing
19653
19654 precision, e
19655 Set filtering precision.
19656
19657 dbl double-precision floating-point (default)
19658
19659 flt single-precision floating-point
19660
19661 i32 32-bit integers
19662
19663 i16 16-bit integers
19664
19665 normalize, n
19666 Normalize filter coefficients, by default is enabled. Enabling it
19667 will normalize magnitude response at DC to 0dB.
19668
19669 mix How much to use filtered signal in output. Default is 1. Range is
19670 between 0 and 1.
19671
19672 response
19673 Show IR frequency response, magnitude(magenta), phase(green) and
19674 group delay(yellow) in additional video stream. By default it is
19675 disabled.
19676
19677 channel
19678 Set for which IR channel to display frequency response. By default
19679 is first channel displayed. This option is used only when response
19680 is enabled.
19681
19682 size
19683 Set video stream size. This option is used only when response is
19684 enabled.
19685
19686 Coefficients in "tf" and "sf" format are separated by spaces and are in
19687 ascending order.
19688
19689 Coefficients in "zp" format are separated by spaces and order of
19690 coefficients doesn't matter. Coefficients in "zp" format are complex
19691 numbers with i imaginary unit.
19692
19693 Different coefficients and gains can be provided for every channel, in
19694 such case use '|' to separate coefficients or gains. Last provided
19695 coefficients will be used for all remaining channels.
19696
19697 Examples
19698
19699 • Apply 2 pole elliptic notch at around 5000Hz for 48000 Hz sample
19700 rate:
19701
19702 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
19703
19704 • Same as above but in "zp" format:
19705
19706 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
19707
19708 • Apply 3-rd order analog normalized Butterworth low-pass filter,
19709 using analog transfer function format:
19710
19711 aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
19712
19713 alimiter
19714 The limiter prevents an input signal from rising over a desired
19715 threshold. This limiter uses lookahead technology to prevent your
19716 signal from distorting. It means that there is a small delay after the
19717 signal is processed. Keep in mind that the delay it produces is the
19718 attack time you set.
19719
19720 The filter accepts the following options:
19721
19722 level_in
19723 Set input gain. Default is 1.
19724
19725 level_out
19726 Set output gain. Default is 1.
19727
19728 limit
19729 Don't let signals above this level pass the limiter. Default is 1.
19730
19731 attack
19732 The limiter will reach its attenuation level in this amount of time
19733 in milliseconds. Default is 5 milliseconds.
19734
19735 release
19736 Come back from limiting to attenuation 1.0 in this amount of
19737 milliseconds. Default is 50 milliseconds.
19738
19739 asc When gain reduction is always needed ASC takes care of releasing to
19740 an average reduction level rather than reaching a reduction of 0 in
19741 the release time.
19742
19743 asc_level
19744 Select how much the release time is affected by ASC, 0 means nearly
19745 no changes in release time while 1 produces higher release times.
19746
19747 level
19748 Auto level output signal. Default is enabled. This normalizes
19749 audio back to 0dB if enabled.
19750
19751 latency
19752 Compensate the delay introduced by using the lookahead buffer set
19753 with attack parameter. Also flush the valid audio data in the
19754 lookahead buffer when the stream hits EOF.
19755
19756 Depending on picked setting it is recommended to upsample input 2x or
19757 4x times with aresample before applying this filter.
19758
19759 allpass
19760 Apply a two-pole all-pass filter with central frequency (in Hz)
19761 frequency, and filter-width width. An all-pass filter changes the
19762 audio's frequency to phase relationship without changing its frequency
19763 to amplitude relationship.
19764
19765 The filter accepts the following options:
19766
19767 frequency, f
19768 Set frequency in Hz.
19769
19770 width_type, t
19771 Set method to specify band-width of filter.
19772
19773 h Hz
19774
19775 q Q-Factor
19776
19777 o octave
19778
19779 s slope
19780
19781 k kHz
19782
19783 width, w
19784 Specify the band-width of a filter in width_type units.
19785
19786 mix, m
19787 How much to use filtered signal in output. Default is 1. Range is
19788 between 0 and 1.
19789
19790 channels, c
19791 Specify which channels to filter, by default all available are
19792 filtered.
19793
19794 normalize, n
19795 Normalize biquad coefficients, by default is disabled. Enabling it
19796 will normalize magnitude response at DC to 0dB.
19797
19798 order, o
19799 Set the filter order, can be 1 or 2. Default is 2.
19800
19801 transform, a
19802 Set transform type of IIR filter.
19803
19804 di
19805 dii
19806 tdi
19807 tdii
19808 latt
19809 svf
19810 zdf
19811 precision, r
19812 Set precison of filtering.
19813
19814 auto
19815 Pick automatic sample format depending on surround filters.
19816
19817 s16 Always use signed 16-bit.
19818
19819 s32 Always use signed 32-bit.
19820
19821 f32 Always use float 32-bit.
19822
19823 f64 Always use float 64-bit.
19824
19825 Commands
19826
19827 This filter supports the following commands:
19828
19829 frequency, f
19830 Change allpass frequency. Syntax for the command is : "frequency"
19831
19832 width_type, t
19833 Change allpass width_type. Syntax for the command is :
19834 "width_type"
19835
19836 width, w
19837 Change allpass width. Syntax for the command is : "width"
19838
19839 mix, m
19840 Change allpass mix. Syntax for the command is : "mix"
19841
19842 aloop
19843 Loop audio samples.
19844
19845 The filter accepts the following options:
19846
19847 loop
19848 Set the number of loops. Setting this value to -1 will result in
19849 infinite loops. Default is 0.
19850
19851 size
19852 Set maximal number of samples. Default is 0.
19853
19854 start
19855 Set first sample of loop. Default is 0.
19856
19857 amerge
19858 Merge two or more audio streams into a single multi-channel stream.
19859
19860 The filter accepts the following options:
19861
19862 inputs
19863 Set the number of inputs. Default is 2.
19864
19865 If the channel layouts of the inputs are disjoint, and therefore
19866 compatible, the channel layout of the output will be set accordingly
19867 and the channels will be reordered as necessary. If the channel layouts
19868 of the inputs are not disjoint, the output will have all the channels
19869 of the first input then all the channels of the second input, in that
19870 order, and the channel layout of the output will be the default value
19871 corresponding to the total number of channels.
19872
19873 For example, if the first input is in 2.1 (FL+FR+LF) and the second
19874 input is FC+BL+BR, then the output will be in 5.1, with the channels in
19875 the following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of
19876 the first input, b1 is the first channel of the second input).
19877
19878 On the other hand, if both input are in stereo, the output channels
19879 will be in the default order: a1, a2, b1, b2, and the channel layout
19880 will be arbitrarily set to 4.0, which may or may not be the expected
19881 value.
19882
19883 All inputs must have the same sample rate, and format.
19884
19885 If inputs do not have the same duration, the output will stop with the
19886 shortest.
19887
19888 Examples
19889
19890 • Merge two mono files into a stereo stream:
19891
19892 amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
19893
19894 • Multiple merges assuming 1 video stream and 6 audio streams in
19895 input.mkv:
19896
19897 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
19898
19899 amix
19900 Mixes multiple audio inputs into a single output.
19901
19902 Note that this filter only supports float samples (the amerge and pan
19903 audio filters support many formats). If the amix input has integer
19904 samples then aresample will be automatically inserted to perform the
19905 conversion to float samples.
19906
19907 For example
19908
19909 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
19910
19911 will mix 3 input audio streams to a single output with the same
19912 duration as the first input and a dropout transition time of 3 seconds.
19913
19914 It accepts the following parameters:
19915
19916 inputs
19917 The number of inputs. If unspecified, it defaults to 2.
19918
19919 duration
19920 How to determine the end-of-stream.
19921
19922 longest
19923 The duration of the longest input. (default)
19924
19925 shortest
19926 The duration of the shortest input.
19927
19928 first
19929 The duration of the first input.
19930
19931 dropout_transition
19932 The transition time, in seconds, for volume renormalization when an
19933 input stream ends. The default value is 2 seconds.
19934
19935 weights
19936 Specify weight of each input audio stream as sequence. Each weight
19937 is separated by space. By default all inputs have same weight.
19938
19939 normalize
19940 Always scale inputs instead of only doing summation of samples.
19941 Beware of heavy clipping if inputs are not normalized prior or
19942 after filtering by this filter if this option is disabled. By
19943 default is enabled.
19944
19945 Commands
19946
19947 This filter supports the following commands:
19948
19949 weights
19950 normalize
19951 Syntax is same as option with same name.
19952
19953 amultiply
19954 Multiply first audio stream with second audio stream and store result
19955 in output audio stream. Multiplication is done by multiplying each
19956 sample from first stream with sample at same position from second
19957 stream.
19958
19959 With this element-wise multiplication one can create amplitude fades
19960 and amplitude modulations.
19961
19962 anequalizer
19963 High-order parametric multiband equalizer for each channel.
19964
19965 It accepts the following parameters:
19966
19967 params
19968 This option string is in format: "cchn f=cf w=w g=g t=f | ..."
19969 Each equalizer band is separated by '|'.
19970
19971 chn Set channel number to which equalization will be applied. If
19972 input doesn't have that channel the entry is ignored.
19973
19974 f Set central frequency for band. If input doesn't have that
19975 frequency the entry is ignored.
19976
19977 w Set band width in Hertz.
19978
19979 g Set band gain in dB.
19980
19981 t Set filter type for band, optional, can be:
19982
19983 0 Butterworth, this is default.
19984
19985 1 Chebyshev type 1.
19986
19987 2 Chebyshev type 2.
19988
19989 curves
19990 With this option activated frequency response of anequalizer is
19991 displayed in video stream.
19992
19993 size
19994 Set video stream size. Only useful if curves option is activated.
19995
19996 mgain
19997 Set max gain that will be displayed. Only useful if curves option
19998 is activated. Setting this to a reasonable value makes it possible
19999 to display gain which is derived from neighbour bands which are too
20000 close to each other and thus produce higher gain when both are
20001 activated.
20002
20003 fscale
20004 Set frequency scale used to draw frequency response in video
20005 output. Can be linear or logarithmic. Default is logarithmic.
20006
20007 colors
20008 Set color for each channel curve which is going to be displayed in
20009 video stream. This is list of color names separated by space or by
20010 '|'. Unrecognised or missing colors will be replaced by white
20011 color.
20012
20013 Examples
20014
20015 • Lower gain by 10 of central frequency 200Hz and width 100 Hz for
20016 first 2 channels using Chebyshev type 1 filter:
20017
20018 anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
20019
20020 Commands
20021
20022 This filter supports the following commands:
20023
20024 change
20025 Alter existing filter parameters. Syntax for the commands is :
20026 "fN|f=freq|w=width|g=gain"
20027
20028 fN is existing filter number, starting from 0, if no such filter is
20029 available error is returned. freq set new frequency parameter.
20030 width set new width parameter in Hertz. gain set new gain
20031 parameter in dB.
20032
20033 Full filter invocation with asendcmd may look like this:
20034 asendcmd=c='4.0 anequalizer change
20035 0|f=200|w=50|g=1',anequalizer=...
20036
20037 anlmdn
20038 Reduce broadband noise in audio samples using Non-Local Means
20039 algorithm.
20040
20041 Each sample is adjusted by looking for other samples with similar
20042 contexts. This context similarity is defined by comparing their
20043 surrounding patches of size p. Patches are searched in an area of r
20044 around the sample.
20045
20046 The filter accepts the following options:
20047
20048 strength, s
20049 Set denoising strength. Allowed range is from 0.00001 to 10000.
20050 Default value is 0.00001.
20051
20052 patch, p
20053 Set patch radius duration. Allowed range is from 1 to 100
20054 milliseconds. Default value is 2 milliseconds.
20055
20056 research, r
20057 Set research radius duration. Allowed range is from 2 to 300
20058 milliseconds. Default value is 6 milliseconds.
20059
20060 output, o
20061 Set the output mode.
20062
20063 It accepts the following values:
20064
20065 i Pass input unchanged.
20066
20067 o Pass noise filtered out.
20068
20069 n Pass only noise.
20070
20071 Default value is o.
20072
20073 smooth, m
20074 Set smooth factor. Default value is 11. Allowed range is from 1 to
20075 1000.
20076
20077 Commands
20078
20079 This filter supports the all above options as commands.
20080
20081 anlmf, anlms
20082 Apply Normalized Least-Mean-(Squares|Fourth) algorithm to the first
20083 audio stream using the second audio stream.
20084
20085 This adaptive filter is used to mimic a desired filter by finding the
20086 filter coefficients that relate to producing the least mean square of
20087 the error signal (difference between the desired, 2nd input audio
20088 stream and the actual signal, the 1st input audio stream).
20089
20090 A description of the accepted options follows.
20091
20092 order
20093 Set filter order.
20094
20095 mu Set filter mu.
20096
20097 eps Set the filter eps.
20098
20099 leakage
20100 Set the filter leakage.
20101
20102 out_mode
20103 It accepts the following values:
20104
20105 i Pass the 1st input.
20106
20107 d Pass the 2nd input.
20108
20109 o Pass filtered samples.
20110
20111 n Pass difference between desired and filtered samples.
20112
20113 Default value is o.
20114
20115 Examples
20116
20117 • One of many usages of this filter is noise reduction, input audio
20118 is filtered with same samples that are delayed by fixed amount, one
20119 such example for stereo audio is:
20120
20121 asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
20122
20123 Commands
20124
20125 This filter supports the same commands as options, excluding option
20126 "order".
20127
20128 anull
20129 Pass the audio source unchanged to the output.
20130
20131 apad
20132 Pad the end of an audio stream with silence.
20133
20134 This can be used together with ffmpeg -shortest to extend audio streams
20135 to the same length as the video stream.
20136
20137 A description of the accepted options follows.
20138
20139 packet_size
20140 Set silence packet size. Default value is 4096.
20141
20142 pad_len
20143 Set the number of samples of silence to add to the end. After the
20144 value is reached, the stream is terminated. This option is mutually
20145 exclusive with whole_len.
20146
20147 whole_len
20148 Set the minimum total number of samples in the output audio stream.
20149 If the value is longer than the input audio length, silence is
20150 added to the end, until the value is reached. This option is
20151 mutually exclusive with pad_len.
20152
20153 pad_dur
20154 Specify the duration of samples of silence to add. See the Time
20155 duration section in the ffmpeg-utils(1) manual for the accepted
20156 syntax. Used only if set to non-negative value.
20157
20158 whole_dur
20159 Specify the minimum total duration in the output audio stream. See
20160 the Time duration section in the ffmpeg-utils(1) manual for the
20161 accepted syntax. Used only if set to non-negative value. If the
20162 value is longer than the input audio length, silence is added to
20163 the end, until the value is reached. This option is mutually
20164 exclusive with pad_dur
20165
20166 If neither the pad_len nor the whole_len nor pad_dur nor whole_dur
20167 option is set, the filter will add silence to the end of the input
20168 stream indefinitely.
20169
20170 Note that for ffmpeg 4.4 and earlier a zero pad_dur or whole_dur also
20171 caused the filter to add silence indefinitely.
20172
20173 Examples
20174
20175 • Add 1024 samples of silence to the end of the input:
20176
20177 apad=pad_len=1024
20178
20179 • Make sure the audio output will contain at least 10000 samples, pad
20180 the input with silence if required:
20181
20182 apad=whole_len=10000
20183
20184 • Use ffmpeg to pad the audio input with silence, so that the video
20185 stream will always result the shortest and will be converted until
20186 the end in the output file when using the shortest option:
20187
20188 ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
20189
20190 aphaser
20191 Add a phasing effect to the input audio.
20192
20193 A phaser filter creates series of peaks and troughs in the frequency
20194 spectrum. The position of the peaks and troughs are modulated so that
20195 they vary over time, creating a sweeping effect.
20196
20197 A description of the accepted parameters follows.
20198
20199 in_gain
20200 Set input gain. Default is 0.4.
20201
20202 out_gain
20203 Set output gain. Default is 0.74
20204
20205 delay
20206 Set delay in milliseconds. Default is 3.0.
20207
20208 decay
20209 Set decay. Default is 0.4.
20210
20211 speed
20212 Set modulation speed in Hz. Default is 0.5.
20213
20214 type
20215 Set modulation type. Default is triangular.
20216
20217 It accepts the following values:
20218
20219 triangular, t
20220 sinusoidal, s
20221
20222 aphaseshift
20223 Apply phase shift to input audio samples.
20224
20225 The filter accepts the following options:
20226
20227 shift
20228 Specify phase shift. Allowed range is from -1.0 to 1.0. Default
20229 value is 0.0.
20230
20231 level
20232 Set output gain applied to final output. Allowed range is from 0.0
20233 to 1.0. Default value is 1.0.
20234
20235 order
20236 Set filter order used for filtering. Allowed range is from 1 to 16.
20237 Default value is 8.
20238
20239 Commands
20240
20241 This filter supports the all above options as commands.
20242
20243 apsyclip
20244 Apply Psychoacoustic clipper to input audio stream.
20245
20246 The filter accepts the following options:
20247
20248 level_in
20249 Set input gain. By default it is 1. Range is [0.015625 - 64].
20250
20251 level_out
20252 Set output gain. By default it is 1. Range is [0.015625 - 64].
20253
20254 clip
20255 Set the clipping start value. Default value is 0dBFS or 1.
20256
20257 diff
20258 Output only difference samples, useful to hear introduced
20259 distortions. By default is disabled.
20260
20261 adaptive
20262 Set strength of adaptive distortion applied. Default value is 0.5.
20263 Allowed range is from 0 to 1.
20264
20265 iterations
20266 Set number of iterations of psychoacoustic clipper. Allowed range
20267 is from 1 to 20. Default value is 10.
20268
20269 level
20270 Auto level output signal. Default is disabled. This normalizes
20271 audio back to 0dBFS if enabled.
20272
20273 Commands
20274
20275 This filter supports the all above options as commands.
20276
20277 apulsator
20278 Audio pulsator is something between an autopanner and a tremolo. But
20279 it can produce funny stereo effects as well. Pulsator changes the
20280 volume of the left and right channel based on a LFO (low frequency
20281 oscillator) with different waveforms and shifted phases. This filter
20282 have the ability to define an offset between left and right channel. An
20283 offset of 0 means that both LFO shapes match each other. The left and
20284 right channel are altered equally - a conventional tremolo. An offset
20285 of 50% means that the shape of the right channel is exactly shifted in
20286 phase (or moved backwards about half of the frequency) - pulsator acts
20287 as an autopanner. At 1 both curves match again. Every setting in
20288 between moves the phase shift gapless between all stages and produces
20289 some "bypassing" sounds with sine and triangle waveforms. The more you
20290 set the offset near 1 (starting from the 0.5) the faster the signal
20291 passes from the left to the right speaker.
20292
20293 The filter accepts the following options:
20294
20295 level_in
20296 Set input gain. By default it is 1. Range is [0.015625 - 64].
20297
20298 level_out
20299 Set output gain. By default it is 1. Range is [0.015625 - 64].
20300
20301 mode
20302 Set waveform shape the LFO will use. Can be one of: sine, triangle,
20303 square, sawup or sawdown. Default is sine.
20304
20305 amount
20306 Set modulation. Define how much of original signal is affected by
20307 the LFO.
20308
20309 offset_l
20310 Set left channel offset. Default is 0. Allowed range is [0 - 1].
20311
20312 offset_r
20313 Set right channel offset. Default is 0.5. Allowed range is [0 - 1].
20314
20315 width
20316 Set pulse width. Default is 1. Allowed range is [0 - 2].
20317
20318 timing
20319 Set possible timing mode. Can be one of: bpm, ms or hz. Default is
20320 hz.
20321
20322 bpm Set bpm. Default is 120. Allowed range is [30 - 300]. Only used if
20323 timing is set to bpm.
20324
20325 ms Set ms. Default is 500. Allowed range is [10 - 2000]. Only used if
20326 timing is set to ms.
20327
20328 hz Set frequency in Hz. Default is 2. Allowed range is [0.01 - 100].
20329 Only used if timing is set to hz.
20330
20331 aresample
20332 Resample the input audio to the specified parameters, using the
20333 libswresample library. If none are specified then the filter will
20334 automatically convert between its input and output.
20335
20336 This filter is also able to stretch/squeeze the audio data to make it
20337 match the timestamps or to inject silence / cut out audio to make it
20338 match the timestamps, do a combination of both or do neither.
20339
20340 The filter accepts the syntax [sample_rate:]resampler_options, where
20341 sample_rate expresses a sample rate and resampler_options is a list of
20342 key=value pairs, separated by ":". See the "Resampler Options" section
20343 in the ffmpeg-resampler(1) manual for the complete list of supported
20344 options.
20345
20346 Examples
20347
20348 • Resample the input audio to 44100Hz:
20349
20350 aresample=44100
20351
20352 • Stretch/squeeze samples to the given timestamps, with a maximum of
20353 1000 samples per second compensation:
20354
20355 aresample=async=1000
20356
20357 areverse
20358 Reverse an audio clip.
20359
20360 Warning: This filter requires memory to buffer the entire clip, so
20361 trimming is suggested.
20362
20363 Examples
20364
20365 • Take the first 5 seconds of a clip, and reverse it.
20366
20367 atrim=end=5,areverse
20368
20369 arnndn
20370 Reduce noise from speech using Recurrent Neural Networks.
20371
20372 This filter accepts the following options:
20373
20374 model, m
20375 Set train model file to load. This option is always required.
20376
20377 mix Set how much to mix filtered samples into final output. Allowed
20378 range is from -1 to 1. Default value is 1. Negative values are
20379 special, they set how much to keep filtered noise in the final
20380 filter output. Set this option to -1 to hear actual noise removed
20381 from input signal.
20382
20383 Commands
20384
20385 This filter supports the all above options as commands.
20386
20387 asdr
20388 Measure Audio Signal-to-Distortion Ratio.
20389
20390 This filter takes two audio streams for input, and outputs first audio
20391 stream. Results are in dB per channel at end of either input.
20392
20393 asetnsamples
20394 Set the number of samples per each output audio frame.
20395
20396 The last output packet may contain a different number of samples, as
20397 the filter will flush all the remaining samples when the input audio
20398 signals its end.
20399
20400 The filter accepts the following options:
20401
20402 nb_out_samples, n
20403 Set the number of frames per each output audio frame. The number is
20404 intended as the number of samples per each channel. Default value
20405 is 1024.
20406
20407 pad, p
20408 If set to 1, the filter will pad the last audio frame with zeroes,
20409 so that the last frame will contain the same number of samples as
20410 the previous ones. Default value is 1.
20411
20412 For example, to set the number of per-frame samples to 1234 and disable
20413 padding for the last frame, use:
20414
20415 asetnsamples=n=1234:p=0
20416
20417 asetrate
20418 Set the sample rate without altering the PCM data. This will result in
20419 a change of speed and pitch.
20420
20421 The filter accepts the following options:
20422
20423 sample_rate, r
20424 Set the output sample rate. Default is 44100 Hz.
20425
20426 ashowinfo
20427 Show a line containing various information for each input audio frame.
20428 The input audio is not modified.
20429
20430 The shown line contains a sequence of key/value pairs of the form
20431 key:value.
20432
20433 The following values are shown in the output:
20434
20435 n The (sequential) number of the input frame, starting from 0.
20436
20437 pts The presentation timestamp of the input frame, in time base units;
20438 the time base depends on the filter input pad, and is usually
20439 1/sample_rate.
20440
20441 pts_time
20442 The presentation timestamp of the input frame in seconds.
20443
20444 pos position of the frame in the input stream, -1 if this information
20445 in unavailable and/or meaningless (for example in case of synthetic
20446 audio)
20447
20448 fmt The sample format.
20449
20450 chlayout
20451 The channel layout.
20452
20453 rate
20454 The sample rate for the audio frame.
20455
20456 nb_samples
20457 The number of samples (per channel) in the frame.
20458
20459 checksum
20460 The Adler-32 checksum (printed in hexadecimal) of the audio data.
20461 For planar audio, the data is treated as if all the planes were
20462 concatenated.
20463
20464 plane_checksums
20465 A list of Adler-32 checksums for each data plane.
20466
20467 asoftclip
20468 Apply audio soft clipping.
20469
20470 Soft clipping is a type of distortion effect where the amplitude of a
20471 signal is saturated along a smooth curve, rather than the abrupt shape
20472 of hard-clipping.
20473
20474 This filter accepts the following options:
20475
20476 type
20477 Set type of soft-clipping.
20478
20479 It accepts the following values:
20480
20481 hard
20482 tanh
20483 atan
20484 cubic
20485 exp
20486 alg
20487 quintic
20488 sin
20489 erf
20490 threshold
20491 Set threshold from where to start clipping. Default value is 0dB or
20492 1.
20493
20494 output
20495 Set gain applied to output. Default value is 0dB or 1.
20496
20497 param
20498 Set additional parameter which controls sigmoid function.
20499
20500 oversample
20501 Set oversampling factor.
20502
20503 Commands
20504
20505 This filter supports the all above options as commands.
20506
20507 aspectralstats
20508 Display frequency domain statistical information about the audio
20509 channels. Statistics are calculated and stored as metadata for each
20510 audio channel and for each audio frame.
20511
20512 It accepts the following option:
20513
20514 win_size
20515 Set the window length in samples. Default value is 2048. Allowed
20516 range is from 32 to 65536.
20517
20518 win_func
20519 Set window function.
20520
20521 It accepts the following values:
20522
20523 rect
20524 bartlett
20525 hann, hanning
20526 hamming
20527 blackman
20528 welch
20529 flattop
20530 bharris
20531 bnuttall
20532 bhann
20533 sine
20534 nuttall
20535 lanczos
20536 gauss
20537 tukey
20538 dolph
20539 cauchy
20540 parzen
20541 poisson
20542 bohman
20543
20544 Default is "hann".
20545
20546 overlap
20547 Set window overlap. Allowed range is from 0 to 1. Default value is
20548 0.5.
20549
20550 A list of each metadata key follows:
20551
20552 mean
20553 variance
20554 centroid
20555 spread
20556 skewness
20557 kurtosis
20558 entropy
20559 flatness
20560 crest
20561 flux
20562 slope
20563 decrease
20564 rolloff
20565
20566 asr
20567 Automatic Speech Recognition
20568
20569 This filter uses PocketSphinx for speech recognition. To enable
20570 compilation of this filter, you need to configure FFmpeg with
20571 "--enable-pocketsphinx".
20572
20573 It accepts the following options:
20574
20575 rate
20576 Set sampling rate of input audio. Defaults is 16000. This need to
20577 match speech models, otherwise one will get poor results.
20578
20579 hmm Set dictionary containing acoustic model files.
20580
20581 dict
20582 Set pronunciation dictionary.
20583
20584 lm Set language model file.
20585
20586 lmctl
20587 Set language model set.
20588
20589 lmname
20590 Set which language model to use.
20591
20592 logfn
20593 Set output for log messages.
20594
20595 The filter exports recognized speech as the frame metadata
20596 "lavfi.asr.text".
20597
20598 astats
20599 Display time domain statistical information about the audio channels.
20600 Statistics are calculated and displayed for each audio channel and,
20601 where applicable, an overall figure is also given.
20602
20603 It accepts the following option:
20604
20605 length
20606 Short window length in seconds, used for peak and trough RMS
20607 measurement. Default is 0.05 (50 milliseconds). Allowed range is
20608 "[0 - 10]".
20609
20610 metadata
20611 Set metadata injection. All the metadata keys are prefixed with
20612 "lavfi.astats.X", where "X" is channel number starting from 1 or
20613 string "Overall". Default is disabled.
20614
20615 Available keys for each channel are: DC_offset Min_level Max_level
20616 Min_difference Max_difference Mean_difference RMS_difference
20617 Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count
20618 Noise_floor Noise_floor_count Entropy Bit_depth Dynamic_range
20619 Zero_crossings Zero_crossings_rate Number_of_NaNs Number_of_Infs
20620 Number_of_denormals
20621
20622 and for Overall: DC_offset Min_level Max_level Min_difference
20623 Max_difference Mean_difference RMS_difference Peak_level RMS_level
20624 RMS_peak RMS_trough Flat_factor Peak_count Noise_floor
20625 Noise_floor_count Entropy Bit_depth Number_of_samples
20626 Number_of_NaNs Number_of_Infs Number_of_denormals
20627
20628 For example full key look like this "lavfi.astats.1.DC_offset" or
20629 this "lavfi.astats.Overall.Peak_count".
20630
20631 For description what each key means read below.
20632
20633 reset
20634 Set the number of frames over which cumulative stats are calculated
20635 before being reset Default is disabled.
20636
20637 measure_perchannel
20638 Select the parameters which are measured per channel. The metadata
20639 keys can be used as flags, default is all which measures
20640 everything. none disables all per channel measurement.
20641
20642 measure_overall
20643 Select the parameters which are measured overall. The metadata keys
20644 can be used as flags, default is all which measures everything.
20645 none disables all overall measurement.
20646
20647 A description of each shown parameter follows:
20648
20649 DC offset
20650 Mean amplitude displacement from zero.
20651
20652 Min level
20653 Minimal sample level.
20654
20655 Max level
20656 Maximal sample level.
20657
20658 Min difference
20659 Minimal difference between two consecutive samples.
20660
20661 Max difference
20662 Maximal difference between two consecutive samples.
20663
20664 Mean difference
20665 Mean difference between two consecutive samples. The average of
20666 each difference between two consecutive samples.
20667
20668 RMS difference
20669 Root Mean Square difference between two consecutive samples.
20670
20671 Peak level dB
20672 RMS level dB
20673 Standard peak and RMS level measured in dBFS.
20674
20675 RMS peak dB
20676 RMS trough dB
20677 Peak and trough values for RMS level measured over a short window.
20678
20679 Crest factor
20680 Standard ratio of peak to RMS level (note: not in dB).
20681
20682 Flat factor
20683 Flatness (i.e. consecutive samples with the same value) of the
20684 signal at its peak levels (i.e. either Min level or Max level).
20685
20686 Peak count
20687 Number of occasions (not the number of samples) that the signal
20688 attained either Min level or Max level.
20689
20690 Noise floor dB
20691 Minimum local peak measured in dBFS over a short window.
20692
20693 Noise floor count
20694 Number of occasions (not the number of samples) that the signal
20695 attained Noise floor.
20696
20697 Entropy
20698 Entropy measured across whole audio. Entropy of value near 1.0 is
20699 typically measured for white noise.
20700
20701 Bit depth
20702 Overall bit depth of audio. Number of bits used for each sample.
20703
20704 Dynamic range
20705 Measured dynamic range of audio in dB.
20706
20707 Zero crossings
20708 Number of points where the waveform crosses the zero level axis.
20709
20710 Zero crossings rate
20711 Rate of Zero crossings and number of audio samples.
20712
20713 asubboost
20714 Boost subwoofer frequencies.
20715
20716 The filter accepts the following options:
20717
20718 dry Set dry gain, how much of original signal is kept. Allowed range is
20719 from 0 to 1. Default value is 1.0.
20720
20721 wet Set wet gain, how much of filtered signal is kept. Allowed range is
20722 from 0 to 1. Default value is 1.0.
20723
20724 boost
20725 Set max boost factor. Allowed range is from 1 to 12. Default value
20726 is 2.
20727
20728 decay
20729 Set delay line decay gain value. Allowed range is from 0 to 1.
20730 Default value is 0.0.
20731
20732 feedback
20733 Set delay line feedback gain value. Allowed range is from 0 to 1.
20734 Default value is 0.9.
20735
20736 cutoff
20737 Set cutoff frequency in Hertz. Allowed range is 50 to 900. Default
20738 value is 100.
20739
20740 slope
20741 Set slope amount for cutoff frequency. Allowed range is 0.0001 to
20742 1. Default value is 0.5.
20743
20744 delay
20745 Set delay. Allowed range is from 1 to 100. Default value is 20.
20746
20747 channels
20748 Set the channels to process. Default value is all available.
20749
20750 Commands
20751
20752 This filter supports the all above options as commands.
20753
20754 asubcut
20755 Cut subwoofer frequencies.
20756
20757 This filter allows to set custom, steeper roll off than highpass
20758 filter, and thus is able to more attenuate frequency content in stop-
20759 band.
20760
20761 The filter accepts the following options:
20762
20763 cutoff
20764 Set cutoff frequency in Hertz. Allowed range is 2 to 200. Default
20765 value is 20.
20766
20767 order
20768 Set filter order. Available values are from 3 to 20. Default value
20769 is 10.
20770
20771 level
20772 Set input gain level. Allowed range is from 0 to 1. Default value
20773 is 1.
20774
20775 Commands
20776
20777 This filter supports the all above options as commands.
20778
20779 asupercut
20780 Cut super frequencies.
20781
20782 The filter accepts the following options:
20783
20784 cutoff
20785 Set cutoff frequency in Hertz. Allowed range is 20000 to 192000.
20786 Default value is 20000.
20787
20788 order
20789 Set filter order. Available values are from 3 to 20. Default value
20790 is 10.
20791
20792 level
20793 Set input gain level. Allowed range is from 0 to 1. Default value
20794 is 1.
20795
20796 Commands
20797
20798 This filter supports the all above options as commands.
20799
20800 asuperpass
20801 Apply high order Butterworth band-pass filter.
20802
20803 The filter accepts the following options:
20804
20805 centerf
20806 Set center frequency in Hertz. Allowed range is 2 to 999999.
20807 Default value is 1000.
20808
20809 order
20810 Set filter order. Available values are from 4 to 20. Default value
20811 is 4.
20812
20813 qfactor
20814 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
20815 1.
20816
20817 level
20818 Set input gain level. Allowed range is from 0 to 2. Default value
20819 is 1.
20820
20821 Commands
20822
20823 This filter supports the all above options as commands.
20824
20825 asuperstop
20826 Apply high order Butterworth band-stop filter.
20827
20828 The filter accepts the following options:
20829
20830 centerf
20831 Set center frequency in Hertz. Allowed range is 2 to 999999.
20832 Default value is 1000.
20833
20834 order
20835 Set filter order. Available values are from 4 to 20. Default value
20836 is 4.
20837
20838 qfactor
20839 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
20840 1.
20841
20842 level
20843 Set input gain level. Allowed range is from 0 to 2. Default value
20844 is 1.
20845
20846 Commands
20847
20848 This filter supports the all above options as commands.
20849
20850 atempo
20851 Adjust audio tempo.
20852
20853 The filter accepts exactly one parameter, the audio tempo. If not
20854 specified then the filter will assume nominal 1.0 tempo. Tempo must be
20855 in the [0.5, 100.0] range.
20856
20857 Note that tempo greater than 2 will skip some samples rather than blend
20858 them in. If for any reason this is a concern it is always possible to
20859 daisy-chain several instances of atempo to achieve the desired product
20860 tempo.
20861
20862 Examples
20863
20864 • Slow down audio to 80% tempo:
20865
20866 atempo=0.8
20867
20868 • To speed up audio to 300% tempo:
20869
20870 atempo=3
20871
20872 • To speed up audio to 300% tempo by daisy-chaining two atempo
20873 instances:
20874
20875 atempo=sqrt(3),atempo=sqrt(3)
20876
20877 Commands
20878
20879 This filter supports the following commands:
20880
20881 tempo
20882 Change filter tempo scale factor. Syntax for the command is :
20883 "tempo"
20884
20885 atilt
20886 Apply spectral tilt filter to audio stream.
20887
20888 This filter apply any spectral roll-off slope over any specified
20889 frequency band.
20890
20891 The filter accepts the following options:
20892
20893 freq
20894 Set central frequency of tilt in Hz. Default is 10000 Hz.
20895
20896 slope
20897 Set slope direction of tilt. Default is 0. Allowed range is from -1
20898 to 1.
20899
20900 width
20901 Set width of tilt. Default is 1000. Allowed range is from 100 to
20902 10000.
20903
20904 order
20905 Set order of tilt filter.
20906
20907 level
20908 Set input volume level. Allowed range is from 0 to 4. Defalt is 1.
20909
20910 Commands
20911
20912 This filter supports the all above options as commands.
20913
20914 atrim
20915 Trim the input so that the output contains one continuous subpart of
20916 the input.
20917
20918 It accepts the following parameters:
20919
20920 start
20921 Timestamp (in seconds) of the start of the section to keep. I.e.
20922 the audio sample with the timestamp start will be the first sample
20923 in the output.
20924
20925 end Specify time of the first audio sample that will be dropped, i.e.
20926 the audio sample immediately preceding the one with the timestamp
20927 end will be the last sample in the output.
20928
20929 start_pts
20930 Same as start, except this option sets the start timestamp in
20931 samples instead of seconds.
20932
20933 end_pts
20934 Same as end, except this option sets the end timestamp in samples
20935 instead of seconds.
20936
20937 duration
20938 The maximum duration of the output in seconds.
20939
20940 start_sample
20941 The number of the first sample that should be output.
20942
20943 end_sample
20944 The number of the first sample that should be dropped.
20945
20946 start, end, and duration are expressed as time duration specifications;
20947 see the Time duration section in the ffmpeg-utils(1) manual.
20948
20949 Note that the first two sets of the start/end options and the duration
20950 option look at the frame timestamp, while the _sample options simply
20951 count the samples that pass through the filter. So start/end_pts and
20952 start/end_sample will give different results when the timestamps are
20953 wrong, inexact or do not start at zero. Also note that this filter does
20954 not modify the timestamps. If you wish to have the output timestamps
20955 start at zero, insert the asetpts filter after the atrim filter.
20956
20957 If multiple start or end options are set, this filter tries to be
20958 greedy and keep all samples that match at least one of the specified
20959 constraints. To keep only the part that matches all the constraints at
20960 once, chain multiple atrim filters.
20961
20962 The defaults are such that all the input is kept. So it is possible to
20963 set e.g. just the end values to keep everything before the specified
20964 time.
20965
20966 Examples:
20967
20968 • Drop everything except the second minute of input:
20969
20970 ffmpeg -i INPUT -af atrim=60:120
20971
20972 • Keep only the first 1000 samples:
20973
20974 ffmpeg -i INPUT -af atrim=end_sample=1000
20975
20976 axcorrelate
20977 Calculate normalized windowed cross-correlation between two input audio
20978 streams.
20979
20980 Resulted samples are always between -1 and 1 inclusive. If result is 1
20981 it means two input samples are highly correlated in that selected
20982 segment. Result 0 means they are not correlated at all. If result is
20983 -1 it means two input samples are out of phase, which means they cancel
20984 each other.
20985
20986 The filter accepts the following options:
20987
20988 size
20989 Set size of segment over which cross-correlation is calculated.
20990 Default is 256. Allowed range is from 2 to 131072.
20991
20992 algo
20993 Set algorithm for cross-correlation. Can be "slow" or "fast".
20994 Default is "slow". Fast algorithm assumes mean values over any
20995 given segment are always zero and thus need much less calculations
20996 to make. This is generally not true, but is valid for typical
20997 audio streams.
20998
20999 Examples
21000
21001 • Calculate correlation between channels in stereo audio stream:
21002
21003 ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
21004
21005 bandpass
21006 Apply a two-pole Butterworth band-pass filter with central frequency
21007 frequency, and (3dB-point) band-width width. The csg option selects a
21008 constant skirt gain (peak gain = Q) instead of the default: constant
21009 0dB peak gain. The filter roll off at 6dB per octave (20dB per
21010 decade).
21011
21012 The filter accepts the following options:
21013
21014 frequency, f
21015 Set the filter's central frequency. Default is 3000.
21016
21017 csg Constant skirt gain if set to 1. Defaults to 0.
21018
21019 width_type, t
21020 Set method to specify band-width of filter.
21021
21022 h Hz
21023
21024 q Q-Factor
21025
21026 o octave
21027
21028 s slope
21029
21030 k kHz
21031
21032 width, w
21033 Specify the band-width of a filter in width_type units.
21034
21035 mix, m
21036 How much to use filtered signal in output. Default is 1. Range is
21037 between 0 and 1.
21038
21039 channels, c
21040 Specify which channels to filter, by default all available are
21041 filtered.
21042
21043 normalize, n
21044 Normalize biquad coefficients, by default is disabled. Enabling it
21045 will normalize magnitude response at DC to 0dB.
21046
21047 transform, a
21048 Set transform type of IIR filter.
21049
21050 di
21051 dii
21052 tdi
21053 tdii
21054 latt
21055 svf
21056 zdf
21057 precision, r
21058 Set precison of filtering.
21059
21060 auto
21061 Pick automatic sample format depending on surround filters.
21062
21063 s16 Always use signed 16-bit.
21064
21065 s32 Always use signed 32-bit.
21066
21067 f32 Always use float 32-bit.
21068
21069 f64 Always use float 64-bit.
21070
21071 block_size, b
21072 Set block size used for reverse IIR processing. If this value is
21073 set to high enough value (higher than impulse response length
21074 truncated when reaches near zero values) filtering will become
21075 linear phase otherwise if not big enough it will just produce nasty
21076 artifacts.
21077
21078 Note that filter delay will be exactly this many samples when set
21079 to non-zero value.
21080
21081 Commands
21082
21083 This filter supports the following commands:
21084
21085 frequency, f
21086 Change bandpass frequency. Syntax for the command is : "frequency"
21087
21088 width_type, t
21089 Change bandpass width_type. Syntax for the command is :
21090 "width_type"
21091
21092 width, w
21093 Change bandpass width. Syntax for the command is : "width"
21094
21095 mix, m
21096 Change bandpass mix. Syntax for the command is : "mix"
21097
21098 bandreject
21099 Apply a two-pole Butterworth band-reject filter with central frequency
21100 frequency, and (3dB-point) band-width width. The filter roll off at
21101 6dB per octave (20dB per decade).
21102
21103 The filter accepts the following options:
21104
21105 frequency, f
21106 Set the filter's central frequency. Default is 3000.
21107
21108 width_type, t
21109 Set method to specify band-width of filter.
21110
21111 h Hz
21112
21113 q Q-Factor
21114
21115 o octave
21116
21117 s slope
21118
21119 k kHz
21120
21121 width, w
21122 Specify the band-width of a filter in width_type units.
21123
21124 mix, m
21125 How much to use filtered signal in output. Default is 1. Range is
21126 between 0 and 1.
21127
21128 channels, c
21129 Specify which channels to filter, by default all available are
21130 filtered.
21131
21132 normalize, n
21133 Normalize biquad coefficients, by default is disabled. Enabling it
21134 will normalize magnitude response at DC to 0dB.
21135
21136 transform, a
21137 Set transform type of IIR filter.
21138
21139 di
21140 dii
21141 tdi
21142 tdii
21143 latt
21144 svf
21145 zdf
21146 precision, r
21147 Set precison of filtering.
21148
21149 auto
21150 Pick automatic sample format depending on surround filters.
21151
21152 s16 Always use signed 16-bit.
21153
21154 s32 Always use signed 32-bit.
21155
21156 f32 Always use float 32-bit.
21157
21158 f64 Always use float 64-bit.
21159
21160 block_size, b
21161 Set block size used for reverse IIR processing. If this value is
21162 set to high enough value (higher than impulse response length
21163 truncated when reaches near zero values) filtering will become
21164 linear phase otherwise if not big enough it will just produce nasty
21165 artifacts.
21166
21167 Note that filter delay will be exactly this many samples when set
21168 to non-zero value.
21169
21170 Commands
21171
21172 This filter supports the following commands:
21173
21174 frequency, f
21175 Change bandreject frequency. Syntax for the command is :
21176 "frequency"
21177
21178 width_type, t
21179 Change bandreject width_type. Syntax for the command is :
21180 "width_type"
21181
21182 width, w
21183 Change bandreject width. Syntax for the command is : "width"
21184
21185 mix, m
21186 Change bandreject mix. Syntax for the command is : "mix"
21187
21188 bass, lowshelf
21189 Boost or cut the bass (lower) frequencies of the audio using a two-pole
21190 shelving filter with a response similar to that of a standard hi-fi's
21191 tone-controls. This is also known as shelving equalisation (EQ).
21192
21193 The filter accepts the following options:
21194
21195 gain, g
21196 Give the gain at 0 Hz. Its useful range is about -20 (for a large
21197 cut) to +20 (for a large boost). Beware of clipping when using a
21198 positive gain.
21199
21200 frequency, f
21201 Set the filter's central frequency and so can be used to extend or
21202 reduce the frequency range to be boosted or cut. The default value
21203 is 100 Hz.
21204
21205 width_type, t
21206 Set method to specify band-width of filter.
21207
21208 h Hz
21209
21210 q Q-Factor
21211
21212 o octave
21213
21214 s slope
21215
21216 k kHz
21217
21218 width, w
21219 Determine how steep is the filter's shelf transition.
21220
21221 poles, p
21222 Set number of poles. Default is 2.
21223
21224 mix, m
21225 How much to use filtered signal in output. Default is 1. Range is
21226 between 0 and 1.
21227
21228 channels, c
21229 Specify which channels to filter, by default all available are
21230 filtered.
21231
21232 normalize, n
21233 Normalize biquad coefficients, by default is disabled. Enabling it
21234 will normalize magnitude response at DC to 0dB.
21235
21236 transform, a
21237 Set transform type of IIR filter.
21238
21239 di
21240 dii
21241 tdi
21242 tdii
21243 latt
21244 svf
21245 zdf
21246 precision, r
21247 Set precison of filtering.
21248
21249 auto
21250 Pick automatic sample format depending on surround filters.
21251
21252 s16 Always use signed 16-bit.
21253
21254 s32 Always use signed 32-bit.
21255
21256 f32 Always use float 32-bit.
21257
21258 f64 Always use float 64-bit.
21259
21260 block_size, b
21261 Set block size used for reverse IIR processing. If this value is
21262 set to high enough value (higher than impulse response length
21263 truncated when reaches near zero values) filtering will become
21264 linear phase otherwise if not big enough it will just produce nasty
21265 artifacts.
21266
21267 Note that filter delay will be exactly this many samples when set
21268 to non-zero value.
21269
21270 Commands
21271
21272 This filter supports the following commands:
21273
21274 frequency, f
21275 Change bass frequency. Syntax for the command is : "frequency"
21276
21277 width_type, t
21278 Change bass width_type. Syntax for the command is : "width_type"
21279
21280 width, w
21281 Change bass width. Syntax for the command is : "width"
21282
21283 gain, g
21284 Change bass gain. Syntax for the command is : "gain"
21285
21286 mix, m
21287 Change bass mix. Syntax for the command is : "mix"
21288
21289 biquad
21290 Apply a biquad IIR filter with the given coefficients. Where b0, b1,
21291 b2 and a0, a1, a2 are the numerator and denominator coefficients
21292 respectively. and channels, c specify which channels to filter, by
21293 default all available are filtered.
21294
21295 Commands
21296
21297 This filter supports the following commands:
21298
21299 a0
21300 a1
21301 a2
21302 b0
21303 b1
21304 b2 Change biquad parameter. Syntax for the command is : "value"
21305
21306 mix, m
21307 How much to use filtered signal in output. Default is 1. Range is
21308 between 0 and 1.
21309
21310 channels, c
21311 Specify which channels to filter, by default all available are
21312 filtered.
21313
21314 normalize, n
21315 Normalize biquad coefficients, by default is disabled. Enabling it
21316 will normalize magnitude response at DC to 0dB.
21317
21318 transform, a
21319 Set transform type of IIR filter.
21320
21321 di
21322 dii
21323 tdi
21324 tdii
21325 latt
21326 svf
21327 zdf
21328 precision, r
21329 Set precison of filtering.
21330
21331 auto
21332 Pick automatic sample format depending on surround filters.
21333
21334 s16 Always use signed 16-bit.
21335
21336 s32 Always use signed 32-bit.
21337
21338 f32 Always use float 32-bit.
21339
21340 f64 Always use float 64-bit.
21341
21342 block_size, b
21343 Set block size used for reverse IIR processing. If this value is
21344 set to high enough value (higher than impulse response length
21345 truncated when reaches near zero values) filtering will become
21346 linear phase otherwise if not big enough it will just produce nasty
21347 artifacts.
21348
21349 Note that filter delay will be exactly this many samples when set
21350 to non-zero value.
21351
21352 bs2b
21353 Bauer stereo to binaural transformation, which improves headphone
21354 listening of stereo audio records.
21355
21356 To enable compilation of this filter you need to configure FFmpeg with
21357 "--enable-libbs2b".
21358
21359 It accepts the following parameters:
21360
21361 profile
21362 Pre-defined crossfeed level.
21363
21364 default
21365 Default level (fcut=700, feed=50).
21366
21367 cmoy
21368 Chu Moy circuit (fcut=700, feed=60).
21369
21370 jmeier
21371 Jan Meier circuit (fcut=650, feed=95).
21372
21373 fcut
21374 Cut frequency (in Hz).
21375
21376 feed
21377 Feed level (in Hz).
21378
21379 channelmap
21380 Remap input channels to new locations.
21381
21382 It accepts the following parameters:
21383
21384 map Map channels from input to output. The argument is a '|'-separated
21385 list of mappings, each in the "in_channel-out_channel" or
21386 in_channel form. in_channel can be either the name of the input
21387 channel (e.g. FL for front left) or its index in the input channel
21388 layout. out_channel is the name of the output channel or its index
21389 in the output channel layout. If out_channel is not given then it
21390 is implicitly an index, starting with zero and increasing by one
21391 for each mapping.
21392
21393 channel_layout
21394 The channel layout of the output stream.
21395
21396 If no mapping is present, the filter will implicitly map input channels
21397 to output channels, preserving indices.
21398
21399 Examples
21400
21401 • For example, assuming a 5.1+downmix input MOV file,
21402
21403 ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
21404
21405 will create an output WAV file tagged as stereo from the downmix
21406 channels of the input.
21407
21408 • To fix a 5.1 WAV improperly encoded in AAC's native channel order
21409
21410 ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
21411
21412 channelsplit
21413 Split each channel from an input audio stream into a separate output
21414 stream.
21415
21416 It accepts the following parameters:
21417
21418 channel_layout
21419 The channel layout of the input stream. The default is "stereo".
21420
21421 channels
21422 A channel layout describing the channels to be extracted as
21423 separate output streams or "all" to extract each input channel as a
21424 separate stream. The default is "all".
21425
21426 Choosing channels not present in channel layout in the input will
21427 result in an error.
21428
21429 Examples
21430
21431 • For example, assuming a stereo input MP3 file,
21432
21433 ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
21434
21435 will create an output Matroska file with two audio streams, one
21436 containing only the left channel and the other the right channel.
21437
21438 • Split a 5.1 WAV file into per-channel files:
21439
21440 ffmpeg -i in.wav -filter_complex
21441 'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
21442 -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
21443 front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
21444 side_right.wav
21445
21446 • Extract only LFE from a 5.1 WAV file:
21447
21448 ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
21449 -map '[LFE]' lfe.wav
21450
21451 chorus
21452 Add a chorus effect to the audio.
21453
21454 Can make a single vocal sound like a chorus, but can also be applied to
21455 instrumentation.
21456
21457 Chorus resembles an echo effect with a short delay, but whereas with
21458 echo the delay is constant, with chorus, it is varied using using
21459 sinusoidal or triangular modulation. The modulation depth defines the
21460 range the modulated delay is played before or after the delay. Hence
21461 the delayed sound will sound slower or faster, that is the delayed
21462 sound tuned around the original one, like in a chorus where some vocals
21463 are slightly off key.
21464
21465 It accepts the following parameters:
21466
21467 in_gain
21468 Set input gain. Default is 0.4.
21469
21470 out_gain
21471 Set output gain. Default is 0.4.
21472
21473 delays
21474 Set delays. A typical delay is around 40ms to 60ms.
21475
21476 decays
21477 Set decays.
21478
21479 speeds
21480 Set speeds.
21481
21482 depths
21483 Set depths.
21484
21485 Examples
21486
21487 • A single delay:
21488
21489 chorus=0.7:0.9:55:0.4:0.25:2
21490
21491 • Two delays:
21492
21493 chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
21494
21495 • Fuller sounding chorus with three delays:
21496
21497 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
21498
21499 compand
21500 Compress or expand the audio's dynamic range.
21501
21502 It accepts the following parameters:
21503
21504 attacks
21505 decays
21506 A list of times in seconds for each channel over which the
21507 instantaneous level of the input signal is averaged to determine
21508 its volume. attacks refers to increase of volume and decays refers
21509 to decrease of volume. For most situations, the attack time
21510 (response to the audio getting louder) should be shorter than the
21511 decay time, because the human ear is more sensitive to sudden loud
21512 audio than sudden soft audio. A typical value for attack is 0.3
21513 seconds and a typical value for decay is 0.8 seconds. If specified
21514 number of attacks & decays is lower than number of channels, the
21515 last set attack/decay will be used for all remaining channels.
21516
21517 points
21518 A list of points for the transfer function, specified in dB
21519 relative to the maximum possible signal amplitude. Each key points
21520 list must be defined using the following syntax:
21521 "x0/y0|x1/y1|x2/y2|...." or "x0/y0 x1/y1 x2/y2 ...."
21522
21523 The input values must be in strictly increasing order but the
21524 transfer function does not have to be monotonically rising. The
21525 point "0/0" is assumed but may be overridden (by "0/out-dBn").
21526 Typical values for the transfer function are "-70/-70|-60/-20|1/0".
21527
21528 soft-knee
21529 Set the curve radius in dB for all joints. It defaults to 0.01.
21530
21531 gain
21532 Set the additional gain in dB to be applied at all points on the
21533 transfer function. This allows for easy adjustment of the overall
21534 gain. It defaults to 0.
21535
21536 volume
21537 Set an initial volume, in dB, to be assumed for each channel when
21538 filtering starts. This permits the user to supply a nominal level
21539 initially, so that, for example, a very large gain is not applied
21540 to initial signal levels before the companding has begun to
21541 operate. A typical value for audio which is initially quiet is -90
21542 dB. It defaults to 0.
21543
21544 delay
21545 Set a delay, in seconds. The input audio is analyzed immediately,
21546 but audio is delayed before being fed to the volume adjuster.
21547 Specifying a delay approximately equal to the attack/decay times
21548 allows the filter to effectively operate in predictive rather than
21549 reactive mode. It defaults to 0.
21550
21551 Examples
21552
21553 • Make music with both quiet and loud passages suitable for listening
21554 to in a noisy environment:
21555
21556 compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
21557
21558 Another example for audio with whisper and explosion parts:
21559
21560 compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
21561
21562 • A noise gate for when the noise is at a lower level than the
21563 signal:
21564
21565 compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
21566
21567 • Here is another noise gate, this time for when the noise is at a
21568 higher level than the signal (making it, in some ways, similar to
21569 squelch):
21570
21571 compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
21572
21573 • 2:1 compression starting at -6dB:
21574
21575 compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
21576
21577 • 2:1 compression starting at -9dB:
21578
21579 compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
21580
21581 • 2:1 compression starting at -12dB:
21582
21583 compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
21584
21585 • 2:1 compression starting at -18dB:
21586
21587 compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
21588
21589 • 3:1 compression starting at -15dB:
21590
21591 compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
21592
21593 • Compressor/Gate:
21594
21595 compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
21596
21597 • Expander:
21598
21599 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
21600
21601 • Hard limiter at -6dB:
21602
21603 compand=attacks=0:points=-80/-80|-6/-6|20/-6
21604
21605 • Hard limiter at -12dB:
21606
21607 compand=attacks=0:points=-80/-80|-12/-12|20/-12
21608
21609 • Hard noise gate at -35 dB:
21610
21611 compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
21612
21613 • Soft limiter:
21614
21615 compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
21616
21617 compensationdelay
21618 Compensation Delay Line is a metric based delay to compensate differing
21619 positions of microphones or speakers.
21620
21621 For example, you have recorded guitar with two microphones placed in
21622 different locations. Because the front of sound wave has fixed speed in
21623 normal conditions, the phasing of microphones can vary and depends on
21624 their location and interposition. The best sound mix can be achieved
21625 when these microphones are in phase (synchronized). Note that a
21626 distance of ~30 cm between microphones makes one microphone capture the
21627 signal in antiphase to the other microphone. That makes the final mix
21628 sound moody. This filter helps to solve phasing problems by adding
21629 different delays to each microphone track and make them synchronized.
21630
21631 The best result can be reached when you take one track as base and
21632 synchronize other tracks one by one with it. Remember that
21633 synchronization/delay tolerance depends on sample rate, too. Higher
21634 sample rates will give more tolerance.
21635
21636 The filter accepts the following parameters:
21637
21638 mm Set millimeters distance. This is compensation distance for fine
21639 tuning. Default is 0.
21640
21641 cm Set cm distance. This is compensation distance for tightening
21642 distance setup. Default is 0.
21643
21644 m Set meters distance. This is compensation distance for hard
21645 distance setup. Default is 0.
21646
21647 dry Set dry amount. Amount of unprocessed (dry) signal. Default is 0.
21648
21649 wet Set wet amount. Amount of processed (wet) signal. Default is 1.
21650
21651 temp
21652 Set temperature in degrees Celsius. This is the temperature of the
21653 environment. Default is 20.
21654
21655 Commands
21656
21657 This filter supports the all above options as commands.
21658
21659 crossfeed
21660 Apply headphone crossfeed filter.
21661
21662 Crossfeed is the process of blending the left and right channels of
21663 stereo audio recording. It is mainly used to reduce extreme stereo
21664 separation of low frequencies.
21665
21666 The intent is to produce more speaker like sound to the listener.
21667
21668 The filter accepts the following options:
21669
21670 strength
21671 Set strength of crossfeed. Default is 0.2. Allowed range is from 0
21672 to 1. This sets gain of low shelf filter for side part of stereo
21673 image. Default is -6dB. Max allowed is -30db when strength is set
21674 to 1.
21675
21676 range
21677 Set soundstage wideness. Default is 0.5. Allowed range is from 0 to
21678 1. This sets cut off frequency of low shelf filter. Default is cut
21679 off near 1550 Hz. With range set to 1 cut off frequency is set to
21680 2100 Hz.
21681
21682 slope
21683 Set curve slope of low shelf filter. Default is 0.5. Allowed range
21684 is from 0.01 to 1.
21685
21686 level_in
21687 Set input gain. Default is 0.9.
21688
21689 level_out
21690 Set output gain. Default is 1.
21691
21692 block_size
21693 Set block size used for reverse IIR processing. If this value is
21694 set to high enough value (higher than impulse response length
21695 truncated when reaches near zero values) filtering will become
21696 linear phase otherwise if not big enough it will just produce nasty
21697 artifacts.
21698
21699 Note that filter delay will be exactly this many samples when set
21700 to non-zero value.
21701
21702 Commands
21703
21704 This filter supports the all above options as commands.
21705
21706 crystalizer
21707 Simple algorithm for audio noise sharpening.
21708
21709 This filter linearly increases differences betweeen each audio sample.
21710
21711 The filter accepts the following options:
21712
21713 i Sets the intensity of effect (default: 2.0). Must be in range
21714 between -10.0 to 0 (unchanged sound) to 10.0 (maximum effect). To
21715 inverse filtering use negative value.
21716
21717 c Enable clipping. By default is enabled.
21718
21719 Commands
21720
21721 This filter supports the all above options as commands.
21722
21723 dcshift
21724 Apply a DC shift to the audio.
21725
21726 This can be useful to remove a DC offset (caused perhaps by a hardware
21727 problem in the recording chain) from the audio. The effect of a DC
21728 offset is reduced headroom and hence volume. The astats filter can be
21729 used to determine if a signal has a DC offset.
21730
21731 shift
21732 Set the DC shift, allowed range is [-1, 1]. It indicates the amount
21733 to shift the audio.
21734
21735 limitergain
21736 Optional. It should have a value much less than 1 (e.g. 0.05 or
21737 0.02) and is used to prevent clipping.
21738
21739 deesser
21740 Apply de-essing to the audio samples.
21741
21742 i Set intensity for triggering de-essing. Allowed range is from 0 to
21743 1. Default is 0.
21744
21745 m Set amount of ducking on treble part of sound. Allowed range is
21746 from 0 to 1. Default is 0.5.
21747
21748 f How much of original frequency content to keep when de-essing.
21749 Allowed range is from 0 to 1. Default is 0.5.
21750
21751 s Set the output mode.
21752
21753 It accepts the following values:
21754
21755 i Pass input unchanged.
21756
21757 o Pass ess filtered out.
21758
21759 e Pass only ess.
21760
21761 Default value is o.
21762
21763 dialoguenhance
21764 Enhance dialogue in stereo audio.
21765
21766 This filter accepts stereo input and produce surround (3.0) channels
21767 output. The newly produced front center channel have enhanced speech
21768 dialogue originally available in both stereo channels. This filter
21769 outputs front left and front right channels same as available in stereo
21770 input.
21771
21772 The filter accepts the following options:
21773
21774 original
21775 Set the original center factor to keep in front center channel
21776 output. Allowed range is from 0 to 1. Default value is 1.
21777
21778 enhance
21779 Set the dialogue enhance factor to put in front center channel
21780 output. Allowed range is from 0 to 3. Default value is 1.
21781
21782 voice
21783 Set the voice detection factor. Allowed range is from 2 to 32.
21784 Default value is 2.
21785
21786 Commands
21787
21788 This filter supports the all above options as commands.
21789
21790 drmeter
21791 Measure audio dynamic range.
21792
21793 DR values of 14 and higher is found in very dynamic material. DR of 8
21794 to 13 is found in transition material. And anything less that 8 have
21795 very poor dynamics and is very compressed.
21796
21797 The filter accepts the following options:
21798
21799 length
21800 Set window length in seconds used to split audio into segments of
21801 equal length. Default is 3 seconds.
21802
21803 dynaudnorm
21804 Dynamic Audio Normalizer.
21805
21806 This filter applies a certain amount of gain to the input audio in
21807 order to bring its peak magnitude to a target level (e.g. 0 dBFS).
21808 However, in contrast to more "simple" normalization algorithms, the
21809 Dynamic Audio Normalizer *dynamically* re-adjusts the gain factor to
21810 the input audio. This allows for applying extra gain to the "quiet"
21811 sections of the audio while avoiding distortions or clipping the "loud"
21812 sections. In other words: The Dynamic Audio Normalizer will "even out"
21813 the volume of quiet and loud sections, in the sense that the volume of
21814 each section is brought to the same target level. Note, however, that
21815 the Dynamic Audio Normalizer achieves this goal *without* applying
21816 "dynamic range compressing". It will retain 100% of the dynamic range
21817 *within* each section of the audio file.
21818
21819 framelen, f
21820 Set the frame length in milliseconds. In range from 10 to 8000
21821 milliseconds. Default is 500 milliseconds. The Dynamic Audio
21822 Normalizer processes the input audio in small chunks, referred to
21823 as frames. This is required, because a peak magnitude has no
21824 meaning for just a single sample value. Instead, we need to
21825 determine the peak magnitude for a contiguous sequence of sample
21826 values. While a "standard" normalizer would simply use the peak
21827 magnitude of the complete file, the Dynamic Audio Normalizer
21828 determines the peak magnitude individually for each frame. The
21829 length of a frame is specified in milliseconds. By default, the
21830 Dynamic Audio Normalizer uses a frame length of 500 milliseconds,
21831 which has been found to give good results with most files. Note
21832 that the exact frame length, in number of samples, will be
21833 determined automatically, based on the sampling rate of the
21834 individual input audio file.
21835
21836 gausssize, g
21837 Set the Gaussian filter window size. In range from 3 to 301, must
21838 be odd number. Default is 31. Probably the most important
21839 parameter of the Dynamic Audio Normalizer is the "window size" of
21840 the Gaussian smoothing filter. The filter's window size is
21841 specified in frames, centered around the current frame. For the
21842 sake of simplicity, this must be an odd number. Consequently, the
21843 default value of 31 takes into account the current frame, as well
21844 as the 15 preceding frames and the 15 subsequent frames. Using a
21845 larger window results in a stronger smoothing effect and thus in
21846 less gain variation, i.e. slower gain adaptation. Conversely, using
21847 a smaller window results in a weaker smoothing effect and thus in
21848 more gain variation, i.e. faster gain adaptation. In other words,
21849 the more you increase this value, the more the Dynamic Audio
21850 Normalizer will behave like a "traditional" normalization filter.
21851 On the contrary, the more you decrease this value, the more the
21852 Dynamic Audio Normalizer will behave like a dynamic range
21853 compressor.
21854
21855 peak, p
21856 Set the target peak value. This specifies the highest permissible
21857 magnitude level for the normalized audio input. This filter will
21858 try to approach the target peak magnitude as closely as possible,
21859 but at the same time it also makes sure that the normalized signal
21860 will never exceed the peak magnitude. A frame's maximum local gain
21861 factor is imposed directly by the target peak magnitude. The
21862 default value is 0.95 and thus leaves a headroom of 5%*. It is not
21863 recommended to go above this value.
21864
21865 maxgain, m
21866 Set the maximum gain factor. In range from 1.0 to 100.0. Default is
21867 10.0. The Dynamic Audio Normalizer determines the maximum possible
21868 (local) gain factor for each input frame, i.e. the maximum gain
21869 factor that does not result in clipping or distortion. The maximum
21870 gain factor is determined by the frame's highest magnitude sample.
21871 However, the Dynamic Audio Normalizer additionally bounds the
21872 frame's maximum gain factor by a predetermined (global) maximum
21873 gain factor. This is done in order to avoid excessive gain factors
21874 in "silent" or almost silent frames. By default, the maximum gain
21875 factor is 10.0, For most inputs the default value should be
21876 sufficient and it usually is not recommended to increase this
21877 value. Though, for input with an extremely low overall volume
21878 level, it may be necessary to allow even higher gain factors. Note,
21879 however, that the Dynamic Audio Normalizer does not simply apply a
21880 "hard" threshold (i.e. cut off values above the threshold).
21881 Instead, a "sigmoid" threshold function will be applied. This way,
21882 the gain factors will smoothly approach the threshold value, but
21883 never exceed that value.
21884
21885 targetrms, r
21886 Set the target RMS. In range from 0.0 to 1.0. Default is 0.0 -
21887 disabled. By default, the Dynamic Audio Normalizer performs "peak"
21888 normalization. This means that the maximum local gain factor for
21889 each frame is defined (only) by the frame's highest magnitude
21890 sample. This way, the samples can be amplified as much as possible
21891 without exceeding the maximum signal level, i.e. without clipping.
21892 Optionally, however, the Dynamic Audio Normalizer can also take
21893 into account the frame's root mean square, abbreviated RMS. In
21894 electrical engineering, the RMS is commonly used to determine the
21895 power of a time-varying signal. It is therefore considered that the
21896 RMS is a better approximation of the "perceived loudness" than just
21897 looking at the signal's peak magnitude. Consequently, by adjusting
21898 all frames to a constant RMS value, a uniform "perceived loudness"
21899 can be established. If a target RMS value has been specified, a
21900 frame's local gain factor is defined as the factor that would
21901 result in exactly that RMS value. Note, however, that the maximum
21902 local gain factor is still restricted by the frame's highest
21903 magnitude sample, in order to prevent clipping.
21904
21905 coupling, n
21906 Enable channels coupling. By default is enabled. By default, the
21907 Dynamic Audio Normalizer will amplify all channels by the same
21908 amount. This means the same gain factor will be applied to all
21909 channels, i.e. the maximum possible gain factor is determined by
21910 the "loudest" channel. However, in some recordings, it may happen
21911 that the volume of the different channels is uneven, e.g. one
21912 channel may be "quieter" than the other one(s). In this case, this
21913 option can be used to disable the channel coupling. This way, the
21914 gain factor will be determined independently for each channel,
21915 depending only on the individual channel's highest magnitude
21916 sample. This allows for harmonizing the volume of the different
21917 channels.
21918
21919 correctdc, c
21920 Enable DC bias correction. By default is disabled. An audio signal
21921 (in the time domain) is a sequence of sample values. In the
21922 Dynamic Audio Normalizer these sample values are represented in the
21923 -1.0 to 1.0 range, regardless of the original input format.
21924 Normally, the audio signal, or "waveform", should be centered
21925 around the zero point. That means if we calculate the mean value
21926 of all samples in a file, or in a single frame, then the result
21927 should be 0.0 or at least very close to that value. If, however,
21928 there is a significant deviation of the mean value from 0.0, in
21929 either positive or negative direction, this is referred to as a DC
21930 bias or DC offset. Since a DC bias is clearly undesirable, the
21931 Dynamic Audio Normalizer provides optional DC bias correction.
21932 With DC bias correction enabled, the Dynamic Audio Normalizer will
21933 determine the mean value, or "DC correction" offset, of each input
21934 frame and subtract that value from all of the frame's sample values
21935 which ensures those samples are centered around 0.0 again. Also, in
21936 order to avoid "gaps" at the frame boundaries, the DC correction
21937 offset values will be interpolated smoothly between neighbouring
21938 frames.
21939
21940 altboundary, b
21941 Enable alternative boundary mode. By default is disabled. The
21942 Dynamic Audio Normalizer takes into account a certain neighbourhood
21943 around each frame. This includes the preceding frames as well as
21944 the subsequent frames. However, for the "boundary" frames, located
21945 at the very beginning and at the very end of the audio file, not
21946 all neighbouring frames are available. In particular, for the first
21947 few frames in the audio file, the preceding frames are not known.
21948 And, similarly, for the last few frames in the audio file, the
21949 subsequent frames are not known. Thus, the question arises which
21950 gain factors should be assumed for the missing frames in the
21951 "boundary" region. The Dynamic Audio Normalizer implements two
21952 modes to deal with this situation. The default boundary mode
21953 assumes a gain factor of exactly 1.0 for the missing frames,
21954 resulting in a smooth "fade in" and "fade out" at the beginning and
21955 at the end of the input, respectively.
21956
21957 compress, s
21958 Set the compress factor. In range from 0.0 to 30.0. Default is 0.0.
21959 By default, the Dynamic Audio Normalizer does not apply
21960 "traditional" compression. This means that signal peaks will not be
21961 pruned and thus the full dynamic range will be retained within each
21962 local neighbourhood. However, in some cases it may be desirable to
21963 combine the Dynamic Audio Normalizer's normalization algorithm with
21964 a more "traditional" compression. For this purpose, the Dynamic
21965 Audio Normalizer provides an optional compression (thresholding)
21966 function. If (and only if) the compression feature is enabled, all
21967 input frames will be processed by a soft knee thresholding function
21968 prior to the actual normalization process. Put simply, the
21969 thresholding function is going to prune all samples whose magnitude
21970 exceeds a certain threshold value. However, the Dynamic Audio
21971 Normalizer does not simply apply a fixed threshold value. Instead,
21972 the threshold value will be adjusted for each individual frame. In
21973 general, smaller parameters result in stronger compression, and
21974 vice versa. Values below 3.0 are not recommended, because audible
21975 distortion may appear.
21976
21977 threshold, t
21978 Set the target threshold value. This specifies the lowest
21979 permissible magnitude level for the audio input which will be
21980 normalized. If input frame volume is above this value frame will
21981 be normalized. Otherwise frame may not be normalized at all. The
21982 default value is set to 0, which means all input frames will be
21983 normalized. This option is mostly useful if digital noise is not
21984 wanted to be amplified.
21985
21986 channels, h
21987 Specify which channels to filter, by default all available channels
21988 are filtered.
21989
21990 overlap, o
21991 Specify overlap for frames. If set to 0 (default) no frame
21992 overlapping is done. Using >0 and <1 values will make less
21993 conservative gain adjustments, like when framelen option is set to
21994 smaller value, if framelen option value is compensated for non-zero
21995 overlap then gain adjustments will be smoother across time compared
21996 to zero overlap case.
21997
21998 Commands
21999
22000 This filter supports the all above options as commands.
22001
22002 earwax
22003 Make audio easier to listen to on headphones.
22004
22005 This filter adds `cues' to 44.1kHz stereo (i.e. audio CD format) audio
22006 so that when listened to on headphones the stereo image is moved from
22007 inside your head (standard for headphones) to outside and in front of
22008 the listener (standard for speakers).
22009
22010 Ported from SoX.
22011
22012 equalizer
22013 Apply a two-pole peaking equalisation (EQ) filter. With this filter,
22014 the signal-level at and around a selected frequency can be increased or
22015 decreased, whilst (unlike bandpass and bandreject filters) that at all
22016 other frequencies is unchanged.
22017
22018 In order to produce complex equalisation curves, this filter can be
22019 given several times, each with a different central frequency.
22020
22021 The filter accepts the following options:
22022
22023 frequency, f
22024 Set the filter's central frequency in Hz.
22025
22026 width_type, t
22027 Set method to specify band-width of filter.
22028
22029 h Hz
22030
22031 q Q-Factor
22032
22033 o octave
22034
22035 s slope
22036
22037 k kHz
22038
22039 width, w
22040 Specify the band-width of a filter in width_type units.
22041
22042 gain, g
22043 Set the required gain or attenuation in dB. Beware of clipping
22044 when using a positive gain.
22045
22046 mix, m
22047 How much to use filtered signal in output. Default is 1. Range is
22048 between 0 and 1.
22049
22050 channels, c
22051 Specify which channels to filter, by default all available are
22052 filtered.
22053
22054 normalize, n
22055 Normalize biquad coefficients, by default is disabled. Enabling it
22056 will normalize magnitude response at DC to 0dB.
22057
22058 transform, a
22059 Set transform type of IIR filter.
22060
22061 di
22062 dii
22063 tdi
22064 tdii
22065 latt
22066 svf
22067 zdf
22068 precision, r
22069 Set precison of filtering.
22070
22071 auto
22072 Pick automatic sample format depending on surround filters.
22073
22074 s16 Always use signed 16-bit.
22075
22076 s32 Always use signed 32-bit.
22077
22078 f32 Always use float 32-bit.
22079
22080 f64 Always use float 64-bit.
22081
22082 block_size, b
22083 Set block size used for reverse IIR processing. If this value is
22084 set to high enough value (higher than impulse response length
22085 truncated when reaches near zero values) filtering will become
22086 linear phase otherwise if not big enough it will just produce nasty
22087 artifacts.
22088
22089 Note that filter delay will be exactly this many samples when set
22090 to non-zero value.
22091
22092 Examples
22093
22094 • Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz:
22095
22096 equalizer=f=1000:t=h:width=200:g=-10
22097
22098 • Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz
22099 with Q 2:
22100
22101 equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
22102
22103 Commands
22104
22105 This filter supports the following commands:
22106
22107 frequency, f
22108 Change equalizer frequency. Syntax for the command is :
22109 "frequency"
22110
22111 width_type, t
22112 Change equalizer width_type. Syntax for the command is :
22113 "width_type"
22114
22115 width, w
22116 Change equalizer width. Syntax for the command is : "width"
22117
22118 gain, g
22119 Change equalizer gain. Syntax for the command is : "gain"
22120
22121 mix, m
22122 Change equalizer mix. Syntax for the command is : "mix"
22123
22124 extrastereo
22125 Linearly increases the difference between left and right channels which
22126 adds some sort of "live" effect to playback.
22127
22128 The filter accepts the following options:
22129
22130 m Sets the difference coefficient (default: 2.5). 0.0 means mono
22131 sound (average of both channels), with 1.0 sound will be unchanged,
22132 with -1.0 left and right channels will be swapped.
22133
22134 c Enable clipping. By default is enabled.
22135
22136 Commands
22137
22138 This filter supports the all above options as commands.
22139
22140 firequalizer
22141 Apply FIR Equalization using arbitrary frequency response.
22142
22143 The filter accepts the following option:
22144
22145 gain
22146 Set gain curve equation (in dB). The expression can contain
22147 variables:
22148
22149 f the evaluated frequency
22150
22151 sr sample rate
22152
22153 ch channel number, set to 0 when multichannels evaluation is
22154 disabled
22155
22156 chid
22157 channel id, see libavutil/channel_layout.h, set to the first
22158 channel id when multichannels evaluation is disabled
22159
22160 chs number of channels
22161
22162 chlayout
22163 channel_layout, see libavutil/channel_layout.h
22164
22165 and functions:
22166
22167 gain_interpolate(f)
22168 interpolate gain on frequency f based on gain_entry
22169
22170 cubic_interpolate(f)
22171 same as gain_interpolate, but smoother
22172
22173 This option is also available as command. Default is
22174 gain_interpolate(f).
22175
22176 gain_entry
22177 Set gain entry for gain_interpolate function. The expression can
22178 contain functions:
22179
22180 entry(f, g)
22181 store gain entry at frequency f with value g
22182
22183 This option is also available as command.
22184
22185 delay
22186 Set filter delay in seconds. Higher value means more accurate.
22187 Default is 0.01.
22188
22189 accuracy
22190 Set filter accuracy in Hz. Lower value means more accurate.
22191 Default is 5.
22192
22193 wfunc
22194 Set window function. Acceptable values are:
22195
22196 rectangular
22197 rectangular window, useful when gain curve is already smooth
22198
22199 hann
22200 hann window (default)
22201
22202 hamming
22203 hamming window
22204
22205 blackman
22206 blackman window
22207
22208 nuttall3
22209 3-terms continuous 1st derivative nuttall window
22210
22211 mnuttall3
22212 minimum 3-terms discontinuous nuttall window
22213
22214 nuttall
22215 4-terms continuous 1st derivative nuttall window
22216
22217 bnuttall
22218 minimum 4-terms discontinuous nuttall (blackman-nuttall) window
22219
22220 bharris
22221 blackman-harris window
22222
22223 tukey
22224 tukey window
22225
22226 fixed
22227 If enabled, use fixed number of audio samples. This improves speed
22228 when filtering with large delay. Default is disabled.
22229
22230 multi
22231 Enable multichannels evaluation on gain. Default is disabled.
22232
22233 zero_phase
22234 Enable zero phase mode by subtracting timestamp to compensate
22235 delay. Default is disabled.
22236
22237 scale
22238 Set scale used by gain. Acceptable values are:
22239
22240 linlin
22241 linear frequency, linear gain
22242
22243 linlog
22244 linear frequency, logarithmic (in dB) gain (default)
22245
22246 loglin
22247 logarithmic (in octave scale where 20 Hz is 0) frequency,
22248 linear gain
22249
22250 loglog
22251 logarithmic frequency, logarithmic gain
22252
22253 dumpfile
22254 Set file for dumping, suitable for gnuplot.
22255
22256 dumpscale
22257 Set scale for dumpfile. Acceptable values are same with scale
22258 option. Default is linlog.
22259
22260 fft2
22261 Enable 2-channel convolution using complex FFT. This improves speed
22262 significantly. Default is disabled.
22263
22264 min_phase
22265 Enable minimum phase impulse response. Default is disabled.
22266
22267 Examples
22268
22269 • lowpass at 1000 Hz:
22270
22271 firequalizer=gain='if(lt(f,1000), 0, -INF)'
22272
22273 • lowpass at 1000 Hz with gain_entry:
22274
22275 firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
22276
22277 • custom equalization:
22278
22279 firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
22280
22281 • higher delay with zero phase to compensate delay:
22282
22283 firequalizer=delay=0.1:fixed=on:zero_phase=on
22284
22285 • lowpass on left channel, highpass on right channel:
22286
22287 firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
22288 :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
22289
22290 flanger
22291 Apply a flanging effect to the audio.
22292
22293 The filter accepts the following options:
22294
22295 delay
22296 Set base delay in milliseconds. Range from 0 to 30. Default value
22297 is 0.
22298
22299 depth
22300 Set added sweep delay in milliseconds. Range from 0 to 10. Default
22301 value is 2.
22302
22303 regen
22304 Set percentage regeneration (delayed signal feedback). Range from
22305 -95 to 95. Default value is 0.
22306
22307 width
22308 Set percentage of delayed signal mixed with original. Range from 0
22309 to 100. Default value is 71.
22310
22311 speed
22312 Set sweeps per second (Hz). Range from 0.1 to 10. Default value is
22313 0.5.
22314
22315 shape
22316 Set swept wave shape, can be triangular or sinusoidal. Default
22317 value is sinusoidal.
22318
22319 phase
22320 Set swept wave percentage-shift for multi channel. Range from 0 to
22321 100. Default value is 25.
22322
22323 interp
22324 Set delay-line interpolation, linear or quadratic. Default is
22325 linear.
22326
22327 haas
22328 Apply Haas effect to audio.
22329
22330 Note that this makes most sense to apply on mono signals. With this
22331 filter applied to mono signals it give some directionality and
22332 stretches its stereo image.
22333
22334 The filter accepts the following options:
22335
22336 level_in
22337 Set input level. By default is 1, or 0dB
22338
22339 level_out
22340 Set output level. By default is 1, or 0dB.
22341
22342 side_gain
22343 Set gain applied to side part of signal. By default is 1.
22344
22345 middle_source
22346 Set kind of middle source. Can be one of the following:
22347
22348 left
22349 Pick left channel.
22350
22351 right
22352 Pick right channel.
22353
22354 mid Pick middle part signal of stereo image.
22355
22356 side
22357 Pick side part signal of stereo image.
22358
22359 middle_phase
22360 Change middle phase. By default is disabled.
22361
22362 left_delay
22363 Set left channel delay. By default is 2.05 milliseconds.
22364
22365 left_balance
22366 Set left channel balance. By default is -1.
22367
22368 left_gain
22369 Set left channel gain. By default is 1.
22370
22371 left_phase
22372 Change left phase. By default is disabled.
22373
22374 right_delay
22375 Set right channel delay. By defaults is 2.12 milliseconds.
22376
22377 right_balance
22378 Set right channel balance. By default is 1.
22379
22380 right_gain
22381 Set right channel gain. By default is 1.
22382
22383 right_phase
22384 Change right phase. By default is enabled.
22385
22386 hdcd
22387 Decodes High Definition Compatible Digital (HDCD) data. A 16-bit PCM
22388 stream with embedded HDCD codes is expanded into a 20-bit PCM stream.
22389
22390 The filter supports the Peak Extend and Low-level Gain Adjustment
22391 features of HDCD, and detects the Transient Filter flag.
22392
22393 ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
22394
22395 When using the filter with wav, note the default encoding for wav is
22396 16-bit, so the resulting 20-bit stream will be truncated back to
22397 16-bit. Use something like -acodec pcm_s24le after the filter to get
22398 24-bit PCM output.
22399
22400 ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
22401 ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
22402
22403 The filter accepts the following options:
22404
22405 disable_autoconvert
22406 Disable any automatic format conversion or resampling in the filter
22407 graph.
22408
22409 process_stereo
22410 Process the stereo channels together. If target_gain does not match
22411 between channels, consider it invalid and use the last valid
22412 target_gain.
22413
22414 cdt_ms
22415 Set the code detect timer period in ms.
22416
22417 force_pe
22418 Always extend peaks above -3dBFS even if PE isn't signaled.
22419
22420 analyze_mode
22421 Replace audio with a solid tone and adjust the amplitude to signal
22422 some specific aspect of the decoding process. The output file can
22423 be loaded in an audio editor alongside the original to aid
22424 analysis.
22425
22426 "analyze_mode=pe:force_pe=true" can be used to see all samples
22427 above the PE level.
22428
22429 Modes are:
22430
22431 0, off
22432 Disabled
22433
22434 1, lle
22435 Gain adjustment level at each sample
22436
22437 2, pe
22438 Samples where peak extend occurs
22439
22440 3, cdt
22441 Samples where the code detect timer is active
22442
22443 4, tgm
22444 Samples where the target gain does not match between channels
22445
22446 headphone
22447 Apply head-related transfer functions (HRTFs) to create virtual
22448 loudspeakers around the user for binaural listening via headphones.
22449 The HRIRs are provided via additional streams, for each channel one
22450 stereo input stream is needed.
22451
22452 The filter accepts the following options:
22453
22454 map Set mapping of input streams for convolution. The argument is a
22455 '|'-separated list of channel names in order as they are given as
22456 additional stream inputs for filter. This also specify number of
22457 input streams. Number of input streams must be not less than number
22458 of channels in first stream plus one.
22459
22460 gain
22461 Set gain applied to audio. Value is in dB. Default is 0.
22462
22463 type
22464 Set processing type. Can be time or freq. time is processing audio
22465 in time domain which is slow. freq is processing audio in
22466 frequency domain which is fast. Default is freq.
22467
22468 lfe Set custom gain for LFE channels. Value is in dB. Default is 0.
22469
22470 size
22471 Set size of frame in number of samples which will be processed at
22472 once. Default value is 1024. Allowed range is from 1024 to 96000.
22473
22474 hrir
22475 Set format of hrir stream. Default value is stereo. Alternative
22476 value is multich. If value is set to stereo, number of additional
22477 streams should be greater or equal to number of input channels in
22478 first input stream. Also each additional stream should have stereo
22479 number of channels. If value is set to multich, number of
22480 additional streams should be exactly one. Also number of input
22481 channels of additional stream should be equal or greater than twice
22482 number of channels of first input stream.
22483
22484 Examples
22485
22486 • Full example using wav files as coefficients with amovie filters
22487 for 7.1 downmix, each amovie filter use stereo file with IR
22488 coefficients as input. The files give coefficients for each
22489 position of virtual loudspeaker:
22490
22491 ffmpeg -i input.wav
22492 -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"
22493 output.wav
22494
22495 • Full example using wav files as coefficients with amovie filters
22496 for 7.1 downmix, but now in multich hrir format.
22497
22498 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"
22499 output.wav
22500
22501 highpass
22502 Apply a high-pass filter with 3dB point frequency. The filter can be
22503 either single-pole, or double-pole (the default). The filter roll off
22504 at 6dB per pole per octave (20dB per pole per decade).
22505
22506 The filter accepts the following options:
22507
22508 frequency, f
22509 Set frequency in Hz. Default is 3000.
22510
22511 poles, p
22512 Set number of poles. Default is 2.
22513
22514 width_type, t
22515 Set method to specify band-width of filter.
22516
22517 h Hz
22518
22519 q Q-Factor
22520
22521 o octave
22522
22523 s slope
22524
22525 k kHz
22526
22527 width, w
22528 Specify the band-width of a filter in width_type units. Applies
22529 only to double-pole filter. The default is 0.707q and gives a
22530 Butterworth response.
22531
22532 mix, m
22533 How much to use filtered signal in output. Default is 1. Range is
22534 between 0 and 1.
22535
22536 channels, c
22537 Specify which channels to filter, by default all available are
22538 filtered.
22539
22540 normalize, n
22541 Normalize biquad coefficients, by default is disabled. Enabling it
22542 will normalize magnitude response at DC to 0dB.
22543
22544 transform, a
22545 Set transform type of IIR filter.
22546
22547 di
22548 dii
22549 tdi
22550 tdii
22551 latt
22552 svf
22553 zdf
22554 precision, r
22555 Set precison of filtering.
22556
22557 auto
22558 Pick automatic sample format depending on surround filters.
22559
22560 s16 Always use signed 16-bit.
22561
22562 s32 Always use signed 32-bit.
22563
22564 f32 Always use float 32-bit.
22565
22566 f64 Always use float 64-bit.
22567
22568 block_size, b
22569 Set block size used for reverse IIR processing. If this value is
22570 set to high enough value (higher than impulse response length
22571 truncated when reaches near zero values) filtering will become
22572 linear phase otherwise if not big enough it will just produce nasty
22573 artifacts.
22574
22575 Note that filter delay will be exactly this many samples when set
22576 to non-zero value.
22577
22578 Commands
22579
22580 This filter supports the following commands:
22581
22582 frequency, f
22583 Change highpass frequency. Syntax for the command is : "frequency"
22584
22585 width_type, t
22586 Change highpass width_type. Syntax for the command is :
22587 "width_type"
22588
22589 width, w
22590 Change highpass width. Syntax for the command is : "width"
22591
22592 mix, m
22593 Change highpass mix. Syntax for the command is : "mix"
22594
22595 join
22596 Join multiple input streams into one multi-channel stream.
22597
22598 It accepts the following parameters:
22599
22600 inputs
22601 The number of input streams. It defaults to 2.
22602
22603 channel_layout
22604 The desired output channel layout. It defaults to stereo.
22605
22606 map Map channels from inputs to output. The argument is a '|'-separated
22607 list of mappings, each in the "input_idx.in_channel-out_channel"
22608 form. input_idx is the 0-based index of the input stream.
22609 in_channel can be either the name of the input channel (e.g. FL for
22610 front left) or its index in the specified input stream. out_channel
22611 is the name of the output channel.
22612
22613 The filter will attempt to guess the mappings when they are not
22614 specified explicitly. It does so by first trying to find an unused
22615 matching input channel and if that fails it picks the first unused
22616 input channel.
22617
22618 Join 3 inputs (with properly set channel layouts):
22619
22620 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
22621
22622 Build a 5.1 output from 6 single-channel streams:
22623
22624 ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
22625 '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'
22626 out
22627
22628 ladspa
22629 Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin.
22630
22631 To enable compilation of this filter you need to configure FFmpeg with
22632 "--enable-ladspa".
22633
22634 file, f
22635 Specifies the name of LADSPA plugin library to load. If the
22636 environment variable LADSPA_PATH is defined, the LADSPA plugin is
22637 searched in each one of the directories specified by the colon
22638 separated list in LADSPA_PATH, otherwise in the standard LADSPA
22639 paths, which are in this order: HOME/.ladspa/lib/,
22640 /usr/local/lib/ladspa/, /usr/lib/ladspa/.
22641
22642 plugin, p
22643 Specifies the plugin within the library. Some libraries contain
22644 only one plugin, but others contain many of them. If this is not
22645 set filter will list all available plugins within the specified
22646 library.
22647
22648 controls, c
22649 Set the '|' separated list of controls which are zero or more
22650 floating point values that determine the behavior of the loaded
22651 plugin (for example delay, threshold or gain). Controls need to be
22652 defined using the following syntax:
22653 c0=value0|c1=value1|c2=value2|..., where valuei is the value set on
22654 the i-th control. Alternatively they can be also defined using the
22655 following syntax: value0|value1|value2|..., where valuei is the
22656 value set on the i-th control. If controls is set to "help", all
22657 available controls and their valid ranges are printed.
22658
22659 sample_rate, s
22660 Specify the sample rate, default to 44100. Only used if plugin have
22661 zero inputs.
22662
22663 nb_samples, n
22664 Set the number of samples per channel per each output frame,
22665 default is 1024. Only used if plugin have zero inputs.
22666
22667 duration, d
22668 Set the minimum duration of the sourced audio. See the Time
22669 duration section in the ffmpeg-utils(1) manual for the accepted
22670 syntax. Note that the resulting duration may be greater than the
22671 specified duration, as the generated audio is always cut at the end
22672 of a complete frame. If not specified, or the expressed duration
22673 is negative, the audio is supposed to be generated forever. Only
22674 used if plugin have zero inputs.
22675
22676 latency, l
22677 Enable latency compensation, by default is disabled. Only used if
22678 plugin have inputs.
22679
22680 Examples
22681
22682 • List all available plugins within amp (LADSPA example plugin)
22683 library:
22684
22685 ladspa=file=amp
22686
22687 • List all available controls and their valid ranges for "vcf_notch"
22688 plugin from "VCF" library:
22689
22690 ladspa=f=vcf:p=vcf_notch:c=help
22691
22692 • Simulate low quality audio equipment using "Computer Music Toolkit"
22693 (CMT) plugin library:
22694
22695 ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
22696
22697 • Add reverberation to the audio using TAP-plugins (Tom's Audio
22698 Processing plugins):
22699
22700 ladspa=file=tap_reverb:tap_reverb
22701
22702 • Generate white noise, with 0.2 amplitude:
22703
22704 ladspa=file=cmt:noise_source_white:c=c0=.2
22705
22706 • Generate 20 bpm clicks using plugin "C* Click - Metronome" from the
22707 "C* Audio Plugin Suite" (CAPS) library:
22708
22709 ladspa=file=caps:Click:c=c1=20'
22710
22711 • Apply "C* Eq10X2 - Stereo 10-band equaliser" effect:
22712
22713 ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
22714
22715 • Increase volume by 20dB using fast lookahead limiter from Steve
22716 Harris "SWH Plugins" collection:
22717
22718 ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
22719
22720 • Attenuate low frequencies using Multiband EQ from Steve Harris "SWH
22721 Plugins" collection:
22722
22723 ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
22724
22725 • Reduce stereo image using "Narrower" from the "C* Audio Plugin
22726 Suite" (CAPS) library:
22727
22728 ladspa=caps:Narrower
22729
22730 • Another white noise, now using "C* Audio Plugin Suite" (CAPS)
22731 library:
22732
22733 ladspa=caps:White:.2
22734
22735 • Some fractal noise, using "C* Audio Plugin Suite" (CAPS) library:
22736
22737 ladspa=caps:Fractal:c=c1=1
22738
22739 • Dynamic volume normalization using "VLevel" plugin:
22740
22741 ladspa=vlevel-ladspa:vlevel_mono
22742
22743 Commands
22744
22745 This filter supports the following commands:
22746
22747 cN Modify the N-th control value.
22748
22749 If the specified value is not valid, it is ignored and prior one is
22750 kept.
22751
22752 loudnorm
22753 EBU R128 loudness normalization. Includes both dynamic and linear
22754 normalization modes. Support for both single pass (livestreams, files)
22755 and double pass (files) modes. This algorithm can target IL, LRA, and
22756 maximum true peak. In dynamic mode, to accurately detect true peaks,
22757 the audio stream will be upsampled to 192 kHz. Use the "-ar" option or
22758 "aresample" filter to explicitly set an output sample rate.
22759
22760 The filter accepts the following options:
22761
22762 I, i
22763 Set integrated loudness target. Range is -70.0 - -5.0. Default
22764 value is -24.0.
22765
22766 LRA, lra
22767 Set loudness range target. Range is 1.0 - 50.0. Default value is
22768 7.0.
22769
22770 TP, tp
22771 Set maximum true peak. Range is -9.0 - +0.0. Default value is
22772 -2.0.
22773
22774 measured_I, measured_i
22775 Measured IL of input file. Range is -99.0 - +0.0.
22776
22777 measured_LRA, measured_lra
22778 Measured LRA of input file. Range is 0.0 - 99.0.
22779
22780 measured_TP, measured_tp
22781 Measured true peak of input file. Range is -99.0 - +99.0.
22782
22783 measured_thresh
22784 Measured threshold of input file. Range is -99.0 - +0.0.
22785
22786 offset
22787 Set offset gain. Gain is applied before the true-peak limiter.
22788 Range is -99.0 - +99.0. Default is +0.0.
22789
22790 linear
22791 Normalize by linearly scaling the source audio. "measured_I",
22792 "measured_LRA", "measured_TP", and "measured_thresh" must all be
22793 specified. Target LRA shouldn't be lower than source LRA and the
22794 change in integrated loudness shouldn't result in a true peak which
22795 exceeds the target TP. If any of these conditions aren't met,
22796 normalization mode will revert to dynamic. Options are "true" or
22797 "false". Default is "true".
22798
22799 dual_mono
22800 Treat mono input files as "dual-mono". If a mono file is intended
22801 for playback on a stereo system, its EBU R128 measurement will be
22802 perceptually incorrect. If set to "true", this option will
22803 compensate for this effect. Multi-channel input files are not
22804 affected by this option. Options are true or false. Default is
22805 false.
22806
22807 print_format
22808 Set print format for stats. Options are summary, json, or none.
22809 Default value is none.
22810
22811 lowpass
22812 Apply a low-pass filter with 3dB point frequency. The filter can be
22813 either single-pole or double-pole (the default). The filter roll off
22814 at 6dB per pole per octave (20dB per pole per decade).
22815
22816 The filter accepts the following options:
22817
22818 frequency, f
22819 Set frequency in Hz. Default is 500.
22820
22821 poles, p
22822 Set number of poles. Default is 2.
22823
22824 width_type, t
22825 Set method to specify band-width of filter.
22826
22827 h Hz
22828
22829 q Q-Factor
22830
22831 o octave
22832
22833 s slope
22834
22835 k kHz
22836
22837 width, w
22838 Specify the band-width of a filter in width_type units. Applies
22839 only to double-pole filter. The default is 0.707q and gives a
22840 Butterworth response.
22841
22842 mix, m
22843 How much to use filtered signal in output. Default is 1. Range is
22844 between 0 and 1.
22845
22846 channels, c
22847 Specify which channels to filter, by default all available are
22848 filtered.
22849
22850 normalize, n
22851 Normalize biquad coefficients, by default is disabled. Enabling it
22852 will normalize magnitude response at DC to 0dB.
22853
22854 transform, a
22855 Set transform type of IIR filter.
22856
22857 di
22858 dii
22859 tdi
22860 tdii
22861 latt
22862 svf
22863 zdf
22864 precision, r
22865 Set precison of filtering.
22866
22867 auto
22868 Pick automatic sample format depending on surround filters.
22869
22870 s16 Always use signed 16-bit.
22871
22872 s32 Always use signed 32-bit.
22873
22874 f32 Always use float 32-bit.
22875
22876 f64 Always use float 64-bit.
22877
22878 block_size, b
22879 Set block size used for reverse IIR processing. If this value is
22880 set to high enough value (higher than impulse response length
22881 truncated when reaches near zero values) filtering will become
22882 linear phase otherwise if not big enough it will just produce nasty
22883 artifacts.
22884
22885 Note that filter delay will be exactly this many samples when set
22886 to non-zero value.
22887
22888 Examples
22889
22890 • Lowpass only LFE channel, it LFE is not present it does nothing:
22891
22892 lowpass=c=LFE
22893
22894 Commands
22895
22896 This filter supports the following commands:
22897
22898 frequency, f
22899 Change lowpass frequency. Syntax for the command is : "frequency"
22900
22901 width_type, t
22902 Change lowpass width_type. Syntax for the command is :
22903 "width_type"
22904
22905 width, w
22906 Change lowpass width. Syntax for the command is : "width"
22907
22908 mix, m
22909 Change lowpass mix. Syntax for the command is : "mix"
22910
22911 lv2
22912 Load a LV2 (LADSPA Version 2) plugin.
22913
22914 To enable compilation of this filter you need to configure FFmpeg with
22915 "--enable-lv2".
22916
22917 plugin, p
22918 Specifies the plugin URI. You may need to escape ':'.
22919
22920 controls, c
22921 Set the '|' separated list of controls which are zero or more
22922 floating point values that determine the behavior of the loaded
22923 plugin (for example delay, threshold or gain). If controls is set
22924 to "help", all available controls and their valid ranges are
22925 printed.
22926
22927 sample_rate, s
22928 Specify the sample rate, default to 44100. Only used if plugin have
22929 zero inputs.
22930
22931 nb_samples, n
22932 Set the number of samples per channel per each output frame,
22933 default is 1024. Only used if plugin have zero inputs.
22934
22935 duration, d
22936 Set the minimum duration of the sourced audio. See the Time
22937 duration section in the ffmpeg-utils(1) manual for the accepted
22938 syntax. Note that the resulting duration may be greater than the
22939 specified duration, as the generated audio is always cut at the end
22940 of a complete frame. If not specified, or the expressed duration
22941 is negative, the audio is supposed to be generated forever. Only
22942 used if plugin have zero inputs.
22943
22944 Examples
22945
22946 • Apply bass enhancer plugin from Calf:
22947
22948 lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
22949
22950 • Apply vinyl plugin from Calf:
22951
22952 lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
22953
22954 • Apply bit crusher plugin from ArtyFX:
22955
22956 lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
22957
22958 Commands
22959
22960 This filter supports all options that are exported by plugin as
22961 commands.
22962
22963 mcompand
22964 Multiband Compress or expand the audio's dynamic range.
22965
22966 The input audio is divided into bands using 4th order Linkwitz-Riley
22967 IIRs. This is akin to the crossover of a loudspeaker, and results in
22968 flat frequency response when absent compander action.
22969
22970 It accepts the following parameters:
22971
22972 args
22973 This option syntax is: attack,decay,[attack,decay..] soft-knee
22974 points crossover_frequency [delay [initial_volume [gain]]] |
22975 attack,decay ... For explanation of each item refer to compand
22976 filter documentation.
22977
22978 pan
22979 Mix channels with specific gain levels. The filter accepts the output
22980 channel layout followed by a set of channels definitions.
22981
22982 This filter is also designed to efficiently remap the channels of an
22983 audio stream.
22984
22985 The filter accepts parameters of the form: "l|outdef|outdef|..."
22986
22987 l output channel layout or number of channels
22988
22989 outdef
22990 output channel specification, of the form:
22991 "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
22992
22993 out_name
22994 output channel to define, either a channel name (FL, FR, etc.) or a
22995 channel number (c0, c1, etc.)
22996
22997 gain
22998 multiplicative coefficient for the channel, 1 leaving the volume
22999 unchanged
23000
23001 in_name
23002 input channel to use, see out_name for details; it is not possible
23003 to mix named and numbered input channels
23004
23005 If the `=' in a channel specification is replaced by `<', then the
23006 gains for that specification will be renormalized so that the total is
23007 1, thus avoiding clipping noise.
23008
23009 Mixing examples
23010
23011 For example, if you want to down-mix from stereo to mono, but with a
23012 bigger factor for the left channel:
23013
23014 pan=1c|c0=0.9*c0+0.1*c1
23015
23016 A customized down-mix to stereo that works automatically for 3-, 4-, 5-
23017 and 7-channels surround:
23018
23019 pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
23020
23021 Note that ffmpeg integrates a default down-mix (and up-mix) system that
23022 should be preferred (see "-ac" option) unless you have very specific
23023 needs.
23024
23025 Remapping examples
23026
23027 The channel remapping will be effective if, and only if:
23028
23029 *<gain coefficients are zeroes or ones,>
23030 *<only one input per channel output,>
23031
23032 If all these conditions are satisfied, the filter will notify the user
23033 ("Pure channel mapping detected"), and use an optimized and lossless
23034 method to do the remapping.
23035
23036 For example, if you have a 5.1 source and want a stereo audio stream by
23037 dropping the extra channels:
23038
23039 pan="stereo| c0=FL | c1=FR"
23040
23041 Given the same source, you can also switch front left and front right
23042 channels and keep the input channel layout:
23043
23044 pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
23045
23046 If the input is a stereo audio stream, you can mute the front left
23047 channel (and still keep the stereo channel layout) with:
23048
23049 pan="stereo|c1=c1"
23050
23051 Still with a stereo audio stream input, you can copy the right channel
23052 in both front left and right:
23053
23054 pan="stereo| c0=FR | c1=FR"
23055
23056 replaygain
23057 ReplayGain scanner filter. This filter takes an audio stream as an
23058 input and outputs it unchanged. At end of filtering it displays
23059 "track_gain" and "track_peak".
23060
23061 resample
23062 Convert the audio sample format, sample rate and channel layout. It is
23063 not meant to be used directly.
23064
23065 rubberband
23066 Apply time-stretching and pitch-shifting with librubberband.
23067
23068 To enable compilation of this filter, you need to configure FFmpeg with
23069 "--enable-librubberband".
23070
23071 The filter accepts the following options:
23072
23073 tempo
23074 Set tempo scale factor.
23075
23076 pitch
23077 Set pitch scale factor.
23078
23079 transients
23080 Set transients detector. Possible values are:
23081
23082 crisp
23083 mixed
23084 smooth
23085 detector
23086 Set detector. Possible values are:
23087
23088 compound
23089 percussive
23090 soft
23091 phase
23092 Set phase. Possible values are:
23093
23094 laminar
23095 independent
23096 window
23097 Set processing window size. Possible values are:
23098
23099 standard
23100 short
23101 long
23102 smoothing
23103 Set smoothing. Possible values are:
23104
23105 off
23106 on
23107 formant
23108 Enable formant preservation when shift pitching. Possible values
23109 are:
23110
23111 shifted
23112 preserved
23113 pitchq
23114 Set pitch quality. Possible values are:
23115
23116 quality
23117 speed
23118 consistency
23119 channels
23120 Set channels. Possible values are:
23121
23122 apart
23123 together
23124
23125 Commands
23126
23127 This filter supports the following commands:
23128
23129 tempo
23130 Change filter tempo scale factor. Syntax for the command is :
23131 "tempo"
23132
23133 pitch
23134 Change filter pitch scale factor. Syntax for the command is :
23135 "pitch"
23136
23137 sidechaincompress
23138 This filter acts like normal compressor but has the ability to compress
23139 detected signal using second input signal. It needs two input streams
23140 and returns one output stream. First input stream will be processed
23141 depending on second stream signal. The filtered signal then can be
23142 filtered with other filters in later stages of processing. See pan and
23143 amerge filter.
23144
23145 The filter accepts the following options:
23146
23147 level_in
23148 Set input gain. Default is 1. Range is between 0.015625 and 64.
23149
23150 mode
23151 Set mode of compressor operation. Can be "upward" or "downward".
23152 Default is "downward".
23153
23154 threshold
23155 If a signal of second stream raises above this level it will affect
23156 the gain reduction of first stream. By default is 0.125. Range is
23157 between 0.00097563 and 1.
23158
23159 ratio
23160 Set a ratio about which the signal is reduced. 1:2 means that if
23161 the level raised 4dB above the threshold, it will be only 2dB above
23162 after the reduction. Default is 2. Range is between 1 and 20.
23163
23164 attack
23165 Amount of milliseconds the signal has to rise above the threshold
23166 before gain reduction starts. Default is 20. Range is between 0.01
23167 and 2000.
23168
23169 release
23170 Amount of milliseconds the signal has to fall below the threshold
23171 before reduction is decreased again. Default is 250. Range is
23172 between 0.01 and 9000.
23173
23174 makeup
23175 Set the amount by how much signal will be amplified after
23176 processing. Default is 1. Range is from 1 to 64.
23177
23178 knee
23179 Curve the sharp knee around the threshold to enter gain reduction
23180 more softly. Default is 2.82843. Range is between 1 and 8.
23181
23182 link
23183 Choose if the "average" level between all channels of side-chain
23184 stream or the louder("maximum") channel of side-chain stream
23185 affects the reduction. Default is "average".
23186
23187 detection
23188 Should the exact signal be taken in case of "peak" or an RMS one in
23189 case of "rms". Default is "rms" which is mainly smoother.
23190
23191 level_sc
23192 Set sidechain gain. Default is 1. Range is between 0.015625 and 64.
23193
23194 mix How much to use compressed signal in output. Default is 1. Range
23195 is between 0 and 1.
23196
23197 Commands
23198
23199 This filter supports the all above options as commands.
23200
23201 Examples
23202
23203 • Full ffmpeg example taking 2 audio inputs, 1st input to be
23204 compressed depending on the signal of 2nd input and later
23205 compressed signal to be merged with 2nd input:
23206
23207 ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
23208
23209 sidechaingate
23210 A sidechain gate acts like a normal (wideband) gate but has the ability
23211 to filter the detected signal before sending it to the gain reduction
23212 stage. Normally a gate uses the full range signal to detect a level
23213 above the threshold. For example: If you cut all lower frequencies
23214 from your sidechain signal the gate will decrease the volume of your
23215 track only if not enough highs appear. With this technique you are able
23216 to reduce the resonation of a natural drum or remove "rumbling" of
23217 muted strokes from a heavily distorted guitar. It needs two input
23218 streams and returns one output stream. First input stream will be
23219 processed depending on second stream signal.
23220
23221 The filter accepts the following options:
23222
23223 level_in
23224 Set input level before filtering. Default is 1. Allowed range is
23225 from 0.015625 to 64.
23226
23227 mode
23228 Set the mode of operation. Can be "upward" or "downward". Default
23229 is "downward". If set to "upward" mode, higher parts of signal will
23230 be amplified, expanding dynamic range in upward direction.
23231 Otherwise, in case of "downward" lower parts of signal will be
23232 reduced.
23233
23234 range
23235 Set the level of gain reduction when the signal is below the
23236 threshold. Default is 0.06125. Allowed range is from 0 to 1.
23237 Setting this to 0 disables reduction and then filter behaves like
23238 expander.
23239
23240 threshold
23241 If a signal rises above this level the gain reduction is released.
23242 Default is 0.125. Allowed range is from 0 to 1.
23243
23244 ratio
23245 Set a ratio about which the signal is reduced. Default is 2.
23246 Allowed range is from 1 to 9000.
23247
23248 attack
23249 Amount of milliseconds the signal has to rise above the threshold
23250 before gain reduction stops. Default is 20 milliseconds. Allowed
23251 range is from 0.01 to 9000.
23252
23253 release
23254 Amount of milliseconds the signal has to fall below the threshold
23255 before the reduction is increased again. Default is 250
23256 milliseconds. Allowed range is from 0.01 to 9000.
23257
23258 makeup
23259 Set amount of amplification of signal after processing. Default is
23260 1. Allowed range is from 1 to 64.
23261
23262 knee
23263 Curve the sharp knee around the threshold to enter gain reduction
23264 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
23265
23266 detection
23267 Choose if exact signal should be taken for detection or an RMS like
23268 one. Default is rms. Can be peak or rms.
23269
23270 link
23271 Choose if the average level between all channels or the louder
23272 channel affects the reduction. Default is average. Can be average
23273 or maximum.
23274
23275 level_sc
23276 Set sidechain gain. Default is 1. Range is from 0.015625 to 64.
23277
23278 Commands
23279
23280 This filter supports the all above options as commands.
23281
23282 silencedetect
23283 Detect silence in an audio stream.
23284
23285 This filter logs a message when it detects that the input audio volume
23286 is less or equal to a noise tolerance value for a duration greater or
23287 equal to the minimum detected noise duration.
23288
23289 The printed times and duration are expressed in seconds. The
23290 "lavfi.silence_start" or "lavfi.silence_start.X" metadata key is set on
23291 the first frame whose timestamp equals or exceeds the detection
23292 duration and it contains the timestamp of the first frame of the
23293 silence.
23294
23295 The "lavfi.silence_duration" or "lavfi.silence_duration.X" and
23296 "lavfi.silence_end" or "lavfi.silence_end.X" metadata keys are set on
23297 the first frame after the silence. If mono is enabled, and each channel
23298 is evaluated separately, the ".X" suffixed keys are used, and "X"
23299 corresponds to the channel number.
23300
23301 The filter accepts the following options:
23302
23303 noise, n
23304 Set noise tolerance. Can be specified in dB (in case "dB" is
23305 appended to the specified value) or amplitude ratio. Default is
23306 -60dB, or 0.001.
23307
23308 duration, d
23309 Set silence duration until notification (default is 2 seconds). See
23310 the Time duration section in the ffmpeg-utils(1) manual for the
23311 accepted syntax.
23312
23313 mono, m
23314 Process each channel separately, instead of combined. By default is
23315 disabled.
23316
23317 Examples
23318
23319 • Detect 5 seconds of silence with -50dB noise tolerance:
23320
23321 silencedetect=n=-50dB:d=5
23322
23323 • Complete example with ffmpeg to detect silence with 0.0001 noise
23324 tolerance in silence.mp3:
23325
23326 ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
23327
23328 silenceremove
23329 Remove silence from the beginning, middle or end of the audio.
23330
23331 The filter accepts the following options:
23332
23333 start_periods
23334 This value is used to indicate if audio should be trimmed at
23335 beginning of the audio. A value of zero indicates no silence should
23336 be trimmed from the beginning. When specifying a non-zero value, it
23337 trims audio up until it finds non-silence. Normally, when trimming
23338 silence from beginning of audio the start_periods will be 1 but it
23339 can be increased to higher values to trim all audio up to specific
23340 count of non-silence periods. Default value is 0.
23341
23342 start_duration
23343 Specify the amount of time that non-silence must be detected before
23344 it stops trimming audio. By increasing the duration, bursts of
23345 noises can be treated as silence and trimmed off. Default value is
23346 0.
23347
23348 start_threshold
23349 This indicates what sample value should be treated as silence. For
23350 digital audio, a value of 0 may be fine but for audio recorded from
23351 analog, you may wish to increase the value to account for
23352 background noise. Can be specified in dB (in case "dB" is appended
23353 to the specified value) or amplitude ratio. Default value is 0.
23354
23355 start_silence
23356 Specify max duration of silence at beginning that will be kept
23357 after trimming. Default is 0, which is equal to trimming all
23358 samples detected as silence.
23359
23360 start_mode
23361 Specify mode of detection of silence end in start of multi-channel
23362 audio. Can be any or all. Default is any. With any, any sample
23363 that is detected as non-silence will cause stopped trimming of
23364 silence. With all, only if all channels are detected as non-
23365 silence will cause stopped trimming of silence.
23366
23367 stop_periods
23368 Set the count for trimming silence from the end of audio. To
23369 remove silence from the middle of a file, specify a stop_periods
23370 that is negative. This value is then treated as a positive value
23371 and is used to indicate the effect should restart processing as
23372 specified by start_periods, making it suitable for removing periods
23373 of silence in the middle of the audio. Default value is 0.
23374
23375 stop_duration
23376 Specify a duration of silence that must exist before audio is not
23377 copied any more. By specifying a higher duration, silence that is
23378 wanted can be left in the audio. Default value is 0.
23379
23380 stop_threshold
23381 This is the same as start_threshold but for trimming silence from
23382 the end of audio. Can be specified in dB (in case "dB" is appended
23383 to the specified value) or amplitude ratio. Default value is 0.
23384
23385 stop_silence
23386 Specify max duration of silence at end that will be kept after
23387 trimming. Default is 0, which is equal to trimming all samples
23388 detected as silence.
23389
23390 stop_mode
23391 Specify mode of detection of silence start in end of multi-channel
23392 audio. Can be any or all. Default is any. With any, any sample
23393 that is detected as non-silence will cause stopped trimming of
23394 silence. With all, only if all channels are detected as non-
23395 silence will cause stopped trimming of silence.
23396
23397 detection
23398 Set how is silence detected. Can be "rms" or "peak". Second is
23399 faster and works better with digital silence which is exactly 0.
23400 Default value is "rms".
23401
23402 window
23403 Set duration in number of seconds used to calculate size of window
23404 in number of samples for detecting silence. Default value is 0.02.
23405 Allowed range is from 0 to 10.
23406
23407 Examples
23408
23409 • The following example shows how this filter can be used to start a
23410 recording that does not contain the delay at the start which
23411 usually occurs between pressing the record button and the start of
23412 the performance:
23413
23414 silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
23415
23416 • Trim all silence encountered from beginning to end where there is
23417 more than 1 second of silence in audio:
23418
23419 silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
23420
23421 • Trim all digital silence samples, using peak detection, from
23422 beginning to end where there is more than 0 samples of digital
23423 silence in audio and digital silence is detected in all channels at
23424 same positions in stream:
23425
23426 silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
23427
23428 sofalizer
23429 SOFAlizer uses head-related transfer functions (HRTFs) to create
23430 virtual loudspeakers around the user for binaural listening via
23431 headphones (audio formats up to 9 channels supported). The HRTFs are
23432 stored in SOFA files (see <http://www.sofacoustics.org/> for a
23433 database). SOFAlizer is developed at the Acoustics Research Institute
23434 (ARI) of the Austrian Academy of Sciences.
23435
23436 To enable compilation of this filter you need to configure FFmpeg with
23437 "--enable-libmysofa".
23438
23439 The filter accepts the following options:
23440
23441 sofa
23442 Set the SOFA file used for rendering.
23443
23444 gain
23445 Set gain applied to audio. Value is in dB. Default is 0.
23446
23447 rotation
23448 Set rotation of virtual loudspeakers in deg. Default is 0.
23449
23450 elevation
23451 Set elevation of virtual speakers in deg. Default is 0.
23452
23453 radius
23454 Set distance in meters between loudspeakers and the listener with
23455 near-field HRTFs. Default is 1.
23456
23457 type
23458 Set processing type. Can be time or freq. time is processing audio
23459 in time domain which is slow. freq is processing audio in
23460 frequency domain which is fast. Default is freq.
23461
23462 speakers
23463 Set custom positions of virtual loudspeakers. Syntax for this
23464 option is: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Each
23465 virtual loudspeaker is described with short channel name following
23466 with azimuth and elevation in degrees. Each virtual loudspeaker
23467 description is separated by '|'. For example to override front
23468 left and front right channel positions use: 'speakers=FL 45 15|FR
23469 345 15'. Descriptions with unrecognised channel names are ignored.
23470
23471 lfegain
23472 Set custom gain for LFE channels. Value is in dB. Default is 0.
23473
23474 framesize
23475 Set custom frame size in number of samples. Default is 1024.
23476 Allowed range is from 1024 to 96000. Only used if option type is
23477 set to freq.
23478
23479 normalize
23480 Should all IRs be normalized upon importing SOFA file. By default
23481 is enabled.
23482
23483 interpolate
23484 Should nearest IRs be interpolated with neighbor IRs if exact
23485 position does not match. By default is disabled.
23486
23487 minphase
23488 Minphase all IRs upon loading of SOFA file. By default is disabled.
23489
23490 anglestep
23491 Set neighbor search angle step. Only used if option interpolate is
23492 enabled.
23493
23494 radstep
23495 Set neighbor search radius step. Only used if option interpolate is
23496 enabled.
23497
23498 Examples
23499
23500 • Using ClubFritz6 sofa file:
23501
23502 sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
23503
23504 • Using ClubFritz12 sofa file and bigger radius with small rotation:
23505
23506 sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
23507
23508 • Similar as above but with custom speaker positions for front left,
23509 front right, back left and back right and also with custom gain:
23510
23511 "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
23512
23513 speechnorm
23514 Speech Normalizer.
23515
23516 This filter expands or compresses each half-cycle of audio samples
23517 (local set of samples all above or all below zero and between two
23518 nearest zero crossings) depending on threshold value, so audio reaches
23519 target peak value under conditions controlled by below options.
23520
23521 The filter accepts the following options:
23522
23523 peak, p
23524 Set the expansion target peak value. This specifies the highest
23525 allowed absolute amplitude level for the normalized audio input.
23526 Default value is 0.95. Allowed range is from 0.0 to 1.0.
23527
23528 expansion, e
23529 Set the maximum expansion factor. Allowed range is from 1.0 to
23530 50.0. Default value is 2.0. This option controls maximum local
23531 half-cycle of samples expansion. The maximum expansion would be
23532 such that local peak value reaches target peak value but never to
23533 surpass it and that ratio between new and previous peak value does
23534 not surpass this option value.
23535
23536 compression, c
23537 Set the maximum compression factor. Allowed range is from 1.0 to
23538 50.0. Default value is 2.0. This option controls maximum local
23539 half-cycle of samples compression. This option is used only if
23540 threshold option is set to value greater than 0.0, then in such
23541 cases when local peak is lower or same as value set by threshold
23542 all samples belonging to that peak's half-cycle will be compressed
23543 by current compression factor.
23544
23545 threshold, t
23546 Set the threshold value. Default value is 0.0. Allowed range is
23547 from 0.0 to 1.0. This option specifies which half-cycles of
23548 samples will be compressed and which will be expanded. Any half-
23549 cycle samples with their local peak value below or same as this
23550 option value will be compressed by current compression factor,
23551 otherwise, if greater than threshold value they will be expanded
23552 with expansion factor so that it could reach peak target value but
23553 never surpass it.
23554
23555 raise, r
23556 Set the expansion raising amount per each half-cycle of samples.
23557 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
23558 controls how fast expansion factor is raised per each new half-
23559 cycle until it reaches expansion value. Setting this options too
23560 high may lead to distortions.
23561
23562 fall, f
23563 Set the compression raising amount per each half-cycle of samples.
23564 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
23565 controls how fast compression factor is raised per each new half-
23566 cycle until it reaches compression value.
23567
23568 channels, h
23569 Specify which channels to filter, by default all available channels
23570 are filtered.
23571
23572 invert, i
23573 Enable inverted filtering, by default is disabled. This inverts
23574 interpretation of threshold option. When enabled any half-cycle of
23575 samples with their local peak value below or same as threshold
23576 option will be expanded otherwise it will be compressed.
23577
23578 link, l
23579 Link channels when calculating gain applied to each filtered
23580 channel sample, by default is disabled. When disabled each
23581 filtered channel gain calculation is independent, otherwise when
23582 this option is enabled the minimum of all possible gains for each
23583 filtered channel is used.
23584
23585 Commands
23586
23587 This filter supports the all above options as commands.
23588
23589 stereotools
23590 This filter has some handy utilities to manage stereo signals, for
23591 converting M/S stereo recordings to L/R signal while having control
23592 over the parameters or spreading the stereo image of master track.
23593
23594 The filter accepts the following options:
23595
23596 level_in
23597 Set input level before filtering for both channels. Defaults is 1.
23598 Allowed range is from 0.015625 to 64.
23599
23600 level_out
23601 Set output level after filtering for both channels. Defaults is 1.
23602 Allowed range is from 0.015625 to 64.
23603
23604 balance_in
23605 Set input balance between both channels. Default is 0. Allowed
23606 range is from -1 to 1.
23607
23608 balance_out
23609 Set output balance between both channels. Default is 0. Allowed
23610 range is from -1 to 1.
23611
23612 softclip
23613 Enable softclipping. Results in analog distortion instead of harsh
23614 digital 0dB clipping. Disabled by default.
23615
23616 mutel
23617 Mute the left channel. Disabled by default.
23618
23619 muter
23620 Mute the right channel. Disabled by default.
23621
23622 phasel
23623 Change the phase of the left channel. Disabled by default.
23624
23625 phaser
23626 Change the phase of the right channel. Disabled by default.
23627
23628 mode
23629 Set stereo mode. Available values are:
23630
23631 lr>lr
23632 Left/Right to Left/Right, this is default.
23633
23634 lr>ms
23635 Left/Right to Mid/Side.
23636
23637 ms>lr
23638 Mid/Side to Left/Right.
23639
23640 lr>ll
23641 Left/Right to Left/Left.
23642
23643 lr>rr
23644 Left/Right to Right/Right.
23645
23646 lr>l+r
23647 Left/Right to Left + Right.
23648
23649 lr>rl
23650 Left/Right to Right/Left.
23651
23652 ms>ll
23653 Mid/Side to Left/Left.
23654
23655 ms>rr
23656 Mid/Side to Right/Right.
23657
23658 ms>rl
23659 Mid/Side to Right/Left.
23660
23661 lr>l-r
23662 Left/Right to Left - Right.
23663
23664 slev
23665 Set level of side signal. Default is 1. Allowed range is from
23666 0.015625 to 64.
23667
23668 sbal
23669 Set balance of side signal. Default is 0. Allowed range is from -1
23670 to 1.
23671
23672 mlev
23673 Set level of the middle signal. Default is 1. Allowed range is
23674 from 0.015625 to 64.
23675
23676 mpan
23677 Set middle signal pan. Default is 0. Allowed range is from -1 to 1.
23678
23679 base
23680 Set stereo base between mono and inversed channels. Default is 0.
23681 Allowed range is from -1 to 1.
23682
23683 delay
23684 Set delay in milliseconds how much to delay left from right channel
23685 and vice versa. Default is 0. Allowed range is from -20 to 20.
23686
23687 sclevel
23688 Set S/C level. Default is 1. Allowed range is from 1 to 100.
23689
23690 phase
23691 Set the stereo phase in degrees. Default is 0. Allowed range is
23692 from 0 to 360.
23693
23694 bmode_in, bmode_out
23695 Set balance mode for balance_in/balance_out option.
23696
23697 Can be one of the following:
23698
23699 balance
23700 Classic balance mode. Attenuate one channel at time. Gain is
23701 raised up to 1.
23702
23703 amplitude
23704 Similar as classic mode above but gain is raised up to 2.
23705
23706 power
23707 Equal power distribution, from -6dB to +6dB range.
23708
23709 Commands
23710
23711 This filter supports the all above options as commands.
23712
23713 Examples
23714
23715 • Apply karaoke like effect:
23716
23717 stereotools=mlev=0.015625
23718
23719 • Convert M/S signal to L/R:
23720
23721 "stereotools=mode=ms>lr"
23722
23723 stereowiden
23724 This filter enhance the stereo effect by suppressing signal common to
23725 both channels and by delaying the signal of left into right and vice
23726 versa, thereby widening the stereo effect.
23727
23728 The filter accepts the following options:
23729
23730 delay
23731 Time in milliseconds of the delay of left signal into right and
23732 vice versa. Default is 20 milliseconds.
23733
23734 feedback
23735 Amount of gain in delayed signal into right and vice versa. Gives a
23736 delay effect of left signal in right output and vice versa which
23737 gives widening effect. Default is 0.3.
23738
23739 crossfeed
23740 Cross feed of left into right with inverted phase. This helps in
23741 suppressing the mono. If the value is 1 it will cancel all the
23742 signal common to both channels. Default is 0.3.
23743
23744 drymix
23745 Set level of input signal of original channel. Default is 0.8.
23746
23747 Commands
23748
23749 This filter supports the all above options except "delay" as commands.
23750
23751 superequalizer
23752 Apply 18 band equalizer.
23753
23754 The filter accepts the following options:
23755
23756 1b Set 65Hz band gain.
23757
23758 2b Set 92Hz band gain.
23759
23760 3b Set 131Hz band gain.
23761
23762 4b Set 185Hz band gain.
23763
23764 5b Set 262Hz band gain.
23765
23766 6b Set 370Hz band gain.
23767
23768 7b Set 523Hz band gain.
23769
23770 8b Set 740Hz band gain.
23771
23772 9b Set 1047Hz band gain.
23773
23774 10b Set 1480Hz band gain.
23775
23776 11b Set 2093Hz band gain.
23777
23778 12b Set 2960Hz band gain.
23779
23780 13b Set 4186Hz band gain.
23781
23782 14b Set 5920Hz band gain.
23783
23784 15b Set 8372Hz band gain.
23785
23786 16b Set 11840Hz band gain.
23787
23788 17b Set 16744Hz band gain.
23789
23790 18b Set 20000Hz band gain.
23791
23792 surround
23793 Apply audio surround upmix filter.
23794
23795 This filter allows to produce multichannel output from audio stream.
23796
23797 The filter accepts the following options:
23798
23799 chl_out
23800 Set output channel layout. By default, this is 5.1.
23801
23802 See the Channel Layout section in the ffmpeg-utils(1) manual for
23803 the required syntax.
23804
23805 chl_in
23806 Set input channel layout. By default, this is stereo.
23807
23808 See the Channel Layout section in the ffmpeg-utils(1) manual for
23809 the required syntax.
23810
23811 level_in
23812 Set input volume level. By default, this is 1.
23813
23814 level_out
23815 Set output volume level. By default, this is 1.
23816
23817 lfe Enable LFE channel output if output channel layout has it. By
23818 default, this is enabled.
23819
23820 lfe_low
23821 Set LFE low cut off frequency. By default, this is 128 Hz.
23822
23823 lfe_high
23824 Set LFE high cut off frequency. By default, this is 256 Hz.
23825
23826 lfe_mode
23827 Set LFE mode, can be add or sub. Default is add. In add mode, LFE
23828 channel is created from input audio and added to output. In sub
23829 mode, LFE channel is created from input audio and added to output
23830 but also all non-LFE output channels are subtracted with output LFE
23831 channel.
23832
23833 angle
23834 Set angle of stereo surround transform, Allowed range is from 0 to
23835 360. Default is 90.
23836
23837 fc_in
23838 Set front center input volume. By default, this is 1.
23839
23840 fc_out
23841 Set front center output volume. By default, this is 1.
23842
23843 fl_in
23844 Set front left input volume. By default, this is 1.
23845
23846 fl_out
23847 Set front left output volume. By default, this is 1.
23848
23849 fr_in
23850 Set front right input volume. By default, this is 1.
23851
23852 fr_out
23853 Set front right output volume. By default, this is 1.
23854
23855 sl_in
23856 Set side left input volume. By default, this is 1.
23857
23858 sl_out
23859 Set side left output volume. By default, this is 1.
23860
23861 sr_in
23862 Set side right input volume. By default, this is 1.
23863
23864 sr_out
23865 Set side right output volume. By default, this is 1.
23866
23867 bl_in
23868 Set back left input volume. By default, this is 1.
23869
23870 bl_out
23871 Set back left output volume. By default, this is 1.
23872
23873 br_in
23874 Set back right input volume. By default, this is 1.
23875
23876 br_out
23877 Set back right output volume. By default, this is 1.
23878
23879 bc_in
23880 Set back center input volume. By default, this is 1.
23881
23882 bc_out
23883 Set back center output volume. By default, this is 1.
23884
23885 lfe_in
23886 Set LFE input volume. By default, this is 1.
23887
23888 lfe_out
23889 Set LFE output volume. By default, this is 1.
23890
23891 allx
23892 Set spread usage of stereo image across X axis for all channels.
23893 Allowed range is from -1 to 15. By default this value is negative
23894 -1, and thus unused.
23895
23896 ally
23897 Set spread usage of stereo image across Y axis for all channels.
23898 Allowed range is from -1 to 15. By default this value is negative
23899 -1, and thus unused.
23900
23901 fcx, flx, frx, blx, brx, slx, srx, bcx
23902 Set spread usage of stereo image across X axis for each channel.
23903 Allowed range is from 0.06 to 15. By default this value is 0.5.
23904
23905 fcy, fly, fry, bly, bry, sly, sry, bcy
23906 Set spread usage of stereo image across Y axis for each channel.
23907 Allowed range is from 0.06 to 15. By default this value is 0.5.
23908
23909 win_size
23910 Set window size. Allowed range is from 1024 to 65536. Default size
23911 is 4096.
23912
23913 win_func
23914 Set window function.
23915
23916 It accepts the following values:
23917
23918 rect
23919 bartlett
23920 hann, hanning
23921 hamming
23922 blackman
23923 welch
23924 flattop
23925 bharris
23926 bnuttall
23927 bhann
23928 sine
23929 nuttall
23930 lanczos
23931 gauss
23932 tukey
23933 dolph
23934 cauchy
23935 parzen
23936 poisson
23937 bohman
23938
23939 Default is "hann".
23940
23941 overlap
23942 Set window overlap. If set to 1, the recommended overlap for
23943 selected window function will be picked. Default is 0.5.
23944
23945 tiltshelf
23946 Boost or cut the lower frequencies and cut or boost higher frequencies
23947 of the audio using a two-pole shelving filter with a response similar
23948 to that of a standard hi-fi's tone-controls. This is also known as
23949 shelving equalisation (EQ).
23950
23951 The filter accepts the following options:
23952
23953 gain, g
23954 Give the gain at 0 Hz. Its useful range is about -20 (for a large
23955 cut) to +20 (for a large boost). Beware of clipping when using a
23956 positive gain.
23957
23958 frequency, f
23959 Set the filter's central frequency and so can be used to extend or
23960 reduce the frequency range to be boosted or cut. The default value
23961 is 3000 Hz.
23962
23963 width_type, t
23964 Set method to specify band-width of filter.
23965
23966 h Hz
23967
23968 q Q-Factor
23969
23970 o octave
23971
23972 s slope
23973
23974 k kHz
23975
23976 width, w
23977 Determine how steep is the filter's shelf transition.
23978
23979 poles, p
23980 Set number of poles. Default is 2.
23981
23982 mix, m
23983 How much to use filtered signal in output. Default is 1. Range is
23984 between 0 and 1.
23985
23986 channels, c
23987 Specify which channels to filter, by default all available are
23988 filtered.
23989
23990 normalize, n
23991 Normalize biquad coefficients, by default is disabled. Enabling it
23992 will normalize magnitude response at DC to 0dB.
23993
23994 transform, a
23995 Set transform type of IIR filter.
23996
23997 di
23998 dii
23999 tdi
24000 tdii
24001 latt
24002 svf
24003 zdf
24004 precision, r
24005 Set precison of filtering.
24006
24007 auto
24008 Pick automatic sample format depending on surround filters.
24009
24010 s16 Always use signed 16-bit.
24011
24012 s32 Always use signed 32-bit.
24013
24014 f32 Always use float 32-bit.
24015
24016 f64 Always use float 64-bit.
24017
24018 block_size, b
24019 Set block size used for reverse IIR processing. If this value is
24020 set to high enough value (higher than impulse response length
24021 truncated when reaches near zero values) filtering will become
24022 linear phase otherwise if not big enough it will just produce nasty
24023 artifacts.
24024
24025 Note that filter delay will be exactly this many samples when set
24026 to non-zero value.
24027
24028 Commands
24029
24030 This filter supports some options as commands.
24031
24032 treble, highshelf
24033 Boost or cut treble (upper) frequencies of the audio using a two-pole
24034 shelving filter with a response similar to that of a standard hi-fi's
24035 tone-controls. This is also known as shelving equalisation (EQ).
24036
24037 The filter accepts the following options:
24038
24039 gain, g
24040 Give the gain at whichever is the lower of ~22 kHz and the Nyquist
24041 frequency. Its useful range is about -20 (for a large cut) to +20
24042 (for a large boost). Beware of clipping when using a positive gain.
24043
24044 frequency, f
24045 Set the filter's central frequency and so can be used to extend or
24046 reduce the frequency range to be boosted or cut. The default value
24047 is 3000 Hz.
24048
24049 width_type, t
24050 Set method to specify band-width of filter.
24051
24052 h Hz
24053
24054 q Q-Factor
24055
24056 o octave
24057
24058 s slope
24059
24060 k kHz
24061
24062 width, w
24063 Determine how steep is the filter's shelf transition.
24064
24065 poles, p
24066 Set number of poles. Default is 2.
24067
24068 mix, m
24069 How much to use filtered signal in output. Default is 1. Range is
24070 between 0 and 1.
24071
24072 channels, c
24073 Specify which channels to filter, by default all available are
24074 filtered.
24075
24076 normalize, n
24077 Normalize biquad coefficients, by default is disabled. Enabling it
24078 will normalize magnitude response at DC to 0dB.
24079
24080 transform, a
24081 Set transform type of IIR filter.
24082
24083 di
24084 dii
24085 tdi
24086 tdii
24087 latt
24088 svf
24089 zdf
24090 precision, r
24091 Set precison of filtering.
24092
24093 auto
24094 Pick automatic sample format depending on surround filters.
24095
24096 s16 Always use signed 16-bit.
24097
24098 s32 Always use signed 32-bit.
24099
24100 f32 Always use float 32-bit.
24101
24102 f64 Always use float 64-bit.
24103
24104 block_size, b
24105 Set block size used for reverse IIR processing. If this value is
24106 set to high enough value (higher than impulse response length
24107 truncated when reaches near zero values) filtering will become
24108 linear phase otherwise if not big enough it will just produce nasty
24109 artifacts.
24110
24111 Note that filter delay will be exactly this many samples when set
24112 to non-zero value.
24113
24114 Commands
24115
24116 This filter supports the following commands:
24117
24118 frequency, f
24119 Change treble frequency. Syntax for the command is : "frequency"
24120
24121 width_type, t
24122 Change treble width_type. Syntax for the command is : "width_type"
24123
24124 width, w
24125 Change treble width. Syntax for the command is : "width"
24126
24127 gain, g
24128 Change treble gain. Syntax for the command is : "gain"
24129
24130 mix, m
24131 Change treble mix. Syntax for the command is : "mix"
24132
24133 tremolo
24134 Sinusoidal amplitude modulation.
24135
24136 The filter accepts the following options:
24137
24138 f Modulation frequency in Hertz. Modulation frequencies in the
24139 subharmonic range (20 Hz or lower) will result in a tremolo effect.
24140 This filter may also be used as a ring modulator by specifying a
24141 modulation frequency higher than 20 Hz. Range is 0.1 - 20000.0.
24142 Default value is 5.0 Hz.
24143
24144 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
24145 value is 0.5.
24146
24147 vibrato
24148 Sinusoidal phase modulation.
24149
24150 The filter accepts the following options:
24151
24152 f Modulation frequency in Hertz. Range is 0.1 - 20000.0. Default
24153 value is 5.0 Hz.
24154
24155 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
24156 value is 0.5.
24157
24158 virtualbass
24159 Apply audio Virtual Bass filter.
24160
24161 This filter accepts stereo input and produce stereo with LFE (2.1)
24162 channels output. The newly produced LFE channel have enhanced virtual
24163 bass originally obtained from both stereo channels. This filter
24164 outputs front left and front right channels unchanged as available in
24165 stereo input.
24166
24167 The filter accepts the following options:
24168
24169 cutoff
24170 Set the virtual bass cutoff frequency. Default value is 250 Hz.
24171 Allowed range is from 100 to 500 Hz.
24172
24173 strength
24174 Set the virtual bass strength. Allowed range is from 0.5 to 3.
24175 Default value is 3.
24176
24177 volume
24178 Adjust the input audio volume.
24179
24180 It accepts the following parameters:
24181
24182 volume
24183 Set audio volume expression.
24184
24185 Output values are clipped to the maximum value.
24186
24187 The output audio volume is given by the relation:
24188
24189 <output_volume> = <volume> * <input_volume>
24190
24191 The default value for volume is "1.0".
24192
24193 precision
24194 This parameter represents the mathematical precision.
24195
24196 It determines which input sample formats will be allowed, which
24197 affects the precision of the volume scaling.
24198
24199 fixed
24200 8-bit fixed-point; this limits input sample format to U8, S16,
24201 and S32.
24202
24203 float
24204 32-bit floating-point; this limits input sample format to FLT.
24205 (default)
24206
24207 double
24208 64-bit floating-point; this limits input sample format to DBL.
24209
24210 replaygain
24211 Choose the behaviour on encountering ReplayGain side data in input
24212 frames.
24213
24214 drop
24215 Remove ReplayGain side data, ignoring its contents (the
24216 default).
24217
24218 ignore
24219 Ignore ReplayGain side data, but leave it in the frame.
24220
24221 track
24222 Prefer the track gain, if present.
24223
24224 album
24225 Prefer the album gain, if present.
24226
24227 replaygain_preamp
24228 Pre-amplification gain in dB to apply to the selected replaygain
24229 gain.
24230
24231 Default value for replaygain_preamp is 0.0.
24232
24233 replaygain_noclip
24234 Prevent clipping by limiting the gain applied.
24235
24236 Default value for replaygain_noclip is 1.
24237
24238 eval
24239 Set when the volume expression is evaluated.
24240
24241 It accepts the following values:
24242
24243 once
24244 only evaluate expression once during the filter initialization,
24245 or when the volume command is sent
24246
24247 frame
24248 evaluate expression for each incoming frame
24249
24250 Default value is once.
24251
24252 The volume expression can contain the following parameters.
24253
24254 n frame number (starting at zero)
24255
24256 nb_channels
24257 number of channels
24258
24259 nb_consumed_samples
24260 number of samples consumed by the filter
24261
24262 nb_samples
24263 number of samples in the current frame
24264
24265 pos original frame position in the file
24266
24267 pts frame PTS
24268
24269 sample_rate
24270 sample rate
24271
24272 startpts
24273 PTS at start of stream
24274
24275 startt
24276 time at start of stream
24277
24278 t frame time
24279
24280 tb timestamp timebase
24281
24282 volume
24283 last set volume value
24284
24285 Note that when eval is set to once only the sample_rate and tb
24286 variables are available, all other variables will evaluate to NAN.
24287
24288 Commands
24289
24290 This filter supports the following commands:
24291
24292 volume
24293 Modify the volume expression. The command accepts the same syntax
24294 of the corresponding option.
24295
24296 If the specified expression is not valid, it is kept at its current
24297 value.
24298
24299 Examples
24300
24301 • Halve the input audio volume:
24302
24303 volume=volume=0.5
24304 volume=volume=1/2
24305 volume=volume=-6.0206dB
24306
24307 In all the above example the named key for volume can be omitted,
24308 for example like in:
24309
24310 volume=0.5
24311
24312 • Increase input audio power by 6 decibels using fixed-point
24313 precision:
24314
24315 volume=volume=6dB:precision=fixed
24316
24317 • Fade volume after time 10 with an annihilation period of 5 seconds:
24318
24319 volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
24320
24321 volumedetect
24322 Detect the volume of the input video.
24323
24324 The filter has no parameters. It supports only 16-bit signed integer
24325 samples, so the input will be converted when needed. Statistics about
24326 the volume will be printed in the log when the input stream end is
24327 reached.
24328
24329 In particular it will show the mean volume (root mean square), maximum
24330 volume (on a per-sample basis), and the beginning of a histogram of the
24331 registered volume values (from the maximum value to a cumulated 1/1000
24332 of the samples).
24333
24334 All volumes are in decibels relative to the maximum PCM value.
24335
24336 Examples
24337
24338 Here is an excerpt of the output:
24339
24340 [Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB
24341 [Parsed_volumedetect_0 0xa23120] max_volume: -4 dB
24342 [Parsed_volumedetect_0 0xa23120] histogram_4db: 6
24343 [Parsed_volumedetect_0 0xa23120] histogram_5db: 62
24344 [Parsed_volumedetect_0 0xa23120] histogram_6db: 286
24345 [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042
24346 [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551
24347 [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609
24348 [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
24349
24350 It means that:
24351
24352 • The mean square energy is approximately -27 dB, or 10^-2.7.
24353
24354 • The largest sample is at -4 dB, or more precisely between -4 dB and
24355 -5 dB.
24356
24357 • There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc.
24358
24359 In other words, raising the volume by +4 dB does not cause any
24360 clipping, raising it by +5 dB causes clipping for 6 samples, etc.
24361
24363 Below is a description of the currently available audio sources.
24364
24365 abuffer
24366 Buffer audio frames, and make them available to the filter chain.
24367
24368 This source is mainly intended for a programmatic use, in particular
24369 through the interface defined in libavfilter/buffersrc.h.
24370
24371 It accepts the following parameters:
24372
24373 time_base
24374 The timebase which will be used for timestamps of submitted frames.
24375 It must be either a floating-point number or in
24376 numerator/denominator form.
24377
24378 sample_rate
24379 The sample rate of the incoming audio buffers.
24380
24381 sample_fmt
24382 The sample format of the incoming audio buffers. Either a sample
24383 format name or its corresponding integer representation from the
24384 enum AVSampleFormat in libavutil/samplefmt.h
24385
24386 channel_layout
24387 The channel layout of the incoming audio buffers. Either a channel
24388 layout name from channel_layout_map in libavutil/channel_layout.c
24389 or its corresponding integer representation from the AV_CH_LAYOUT_*
24390 macros in libavutil/channel_layout.h
24391
24392 channels
24393 The number of channels of the incoming audio buffers. If both
24394 channels and channel_layout are specified, then they must be
24395 consistent.
24396
24397 Examples
24398
24399 abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
24400
24401 will instruct the source to accept planar 16bit signed stereo at
24402 44100Hz. Since the sample format with name "s16p" corresponds to the
24403 number 6 and the "stereo" channel layout corresponds to the value 0x3,
24404 this is equivalent to:
24405
24406 abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
24407
24408 aevalsrc
24409 Generate an audio signal specified by an expression.
24410
24411 This source accepts in input one or more expressions (one for each
24412 channel), which are evaluated and used to generate a corresponding
24413 audio signal.
24414
24415 This source accepts the following options:
24416
24417 exprs
24418 Set the '|'-separated expressions list for each separate channel.
24419 In case the channel_layout option is not specified, the selected
24420 channel layout depends on the number of provided expressions.
24421 Otherwise the last specified expression is applied to the remaining
24422 output channels.
24423
24424 channel_layout, c
24425 Set the channel layout. The number of channels in the specified
24426 layout must be equal to the number of specified expressions.
24427
24428 duration, d
24429 Set the minimum duration of the sourced audio. See the Time
24430 duration section in the ffmpeg-utils(1) manual for the accepted
24431 syntax. Note that the resulting duration may be greater than the
24432 specified duration, as the generated audio is always cut at the end
24433 of a complete frame.
24434
24435 If not specified, or the expressed duration is negative, the audio
24436 is supposed to be generated forever.
24437
24438 nb_samples, n
24439 Set the number of samples per channel per each output frame,
24440 default to 1024.
24441
24442 sample_rate, s
24443 Specify the sample rate, default to 44100.
24444
24445 Each expression in exprs can contain the following constants:
24446
24447 n number of the evaluated sample, starting from 0
24448
24449 t time of the evaluated sample expressed in seconds, starting from 0
24450
24451 s sample rate
24452
24453 Examples
24454
24455 • Generate silence:
24456
24457 aevalsrc=0
24458
24459 • Generate a sin signal with frequency of 440 Hz, set sample rate to
24460 8000 Hz:
24461
24462 aevalsrc="sin(440*2*PI*t):s=8000"
24463
24464 • Generate a two channels signal, specify the channel layout (Front
24465 Center + Back Center) explicitly:
24466
24467 aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
24468
24469 • Generate white noise:
24470
24471 aevalsrc="-2+random(0)"
24472
24473 • Generate an amplitude modulated signal:
24474
24475 aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
24476
24477 • Generate 2.5 Hz binaural beats on a 360 Hz carrier:
24478
24479 aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
24480
24481 afirsrc
24482 Generate a FIR coefficients using frequency sampling method.
24483
24484 The resulting stream can be used with afir filter for filtering the
24485 audio signal.
24486
24487 The filter accepts the following options:
24488
24489 taps, t
24490 Set number of filter coefficents in output audio stream. Default
24491 value is 1025.
24492
24493 frequency, f
24494 Set frequency points from where magnitude and phase are set. This
24495 must be in non decreasing order, and first element must be 0, while
24496 last element must be 1. Elements are separated by white spaces.
24497
24498 magnitude, m
24499 Set magnitude value for every frequency point set by frequency.
24500 Number of values must be same as number of frequency points.
24501 Values are separated by white spaces.
24502
24503 phase, p
24504 Set phase value for every frequency point set by frequency. Number
24505 of values must be same as number of frequency points. Values are
24506 separated by white spaces.
24507
24508 sample_rate, r
24509 Set sample rate, default is 44100.
24510
24511 nb_samples, n
24512 Set number of samples per each frame. Default is 1024.
24513
24514 win_func, w
24515 Set window function. Default is blackman.
24516
24517 anullsrc
24518 The null audio source, return unprocessed audio frames. It is mainly
24519 useful as a template and to be employed in analysis / debugging tools,
24520 or as the source for filters which ignore the input data (for example
24521 the sox synth filter).
24522
24523 This source accepts the following options:
24524
24525 channel_layout, cl
24526 Specifies the channel layout, and can be either an integer or a
24527 string representing a channel layout. The default value of
24528 channel_layout is "stereo".
24529
24530 Check the channel_layout_map definition in
24531 libavutil/channel_layout.c for the mapping between strings and
24532 channel layout values.
24533
24534 sample_rate, r
24535 Specifies the sample rate, and defaults to 44100.
24536
24537 nb_samples, n
24538 Set the number of samples per requested frames.
24539
24540 duration, d
24541 Set the duration of the sourced audio. See the Time duration
24542 section in the ffmpeg-utils(1) manual for the accepted syntax.
24543
24544 If not specified, or the expressed duration is negative, the audio
24545 is supposed to be generated forever.
24546
24547 Examples
24548
24549 • Set the sample rate to 48000 Hz and the channel layout to
24550 AV_CH_LAYOUT_MONO.
24551
24552 anullsrc=r=48000:cl=4
24553
24554 • Do the same operation with a more obvious syntax:
24555
24556 anullsrc=r=48000:cl=mono
24557
24558 All the parameters need to be explicitly defined.
24559
24560 flite
24561 Synthesize a voice utterance using the libflite library.
24562
24563 To enable compilation of this filter you need to configure FFmpeg with
24564 "--enable-libflite".
24565
24566 Note that versions of the flite library prior to 2.0 are not thread-
24567 safe.
24568
24569 The filter accepts the following options:
24570
24571 list_voices
24572 If set to 1, list the names of the available voices and exit
24573 immediately. Default value is 0.
24574
24575 nb_samples, n
24576 Set the maximum number of samples per frame. Default value is 512.
24577
24578 textfile
24579 Set the filename containing the text to speak.
24580
24581 text
24582 Set the text to speak.
24583
24584 voice, v
24585 Set the voice to use for the speech synthesis. Default value is
24586 "kal". See also the list_voices option.
24587
24588 Examples
24589
24590 • Read from file speech.txt, and synthesize the text using the
24591 standard flite voice:
24592
24593 flite=textfile=speech.txt
24594
24595 • Read the specified text selecting the "slt" voice:
24596
24597 flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
24598
24599 • Input text to ffmpeg:
24600
24601 ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
24602
24603 • Make ffplay speak the specified text, using "flite" and the "lavfi"
24604 device:
24605
24606 ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
24607
24608 For more information about libflite, check:
24609 <http://www.festvox.org/flite/>
24610
24611 anoisesrc
24612 Generate a noise audio signal.
24613
24614 The filter accepts the following options:
24615
24616 sample_rate, r
24617 Specify the sample rate. Default value is 48000 Hz.
24618
24619 amplitude, a
24620 Specify the amplitude (0.0 - 1.0) of the generated audio stream.
24621 Default value is 1.0.
24622
24623 duration, d
24624 Specify the duration of the generated audio stream. Not specifying
24625 this option results in noise with an infinite length.
24626
24627 color, colour, c
24628 Specify the color of noise. Available noise colors are white, pink,
24629 brown, blue, violet and velvet. Default color is white.
24630
24631 seed, s
24632 Specify a value used to seed the PRNG.
24633
24634 nb_samples, n
24635 Set the number of samples per each output frame, default is 1024.
24636
24637 Examples
24638
24639 • Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
24640 and an amplitude of 0.5:
24641
24642 anoisesrc=d=60:c=pink:r=44100:a=0.5
24643
24644 hilbert
24645 Generate odd-tap Hilbert transform FIR coefficients.
24646
24647 The resulting stream can be used with afir filter for phase-shifting
24648 the signal by 90 degrees.
24649
24650 This is used in many matrix coding schemes and for analytic signal
24651 generation. The process is often written as a multiplication by i (or
24652 j), the imaginary unit.
24653
24654 The filter accepts the following options:
24655
24656 sample_rate, s
24657 Set sample rate, default is 44100.
24658
24659 taps, t
24660 Set length of FIR filter, default is 22051.
24661
24662 nb_samples, n
24663 Set number of samples per each frame.
24664
24665 win_func, w
24666 Set window function to be used when generating FIR coefficients.
24667
24668 sinc
24669 Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
24670 band-reject FIR coefficients.
24671
24672 The resulting stream can be used with afir filter for filtering the
24673 audio signal.
24674
24675 The filter accepts the following options:
24676
24677 sample_rate, r
24678 Set sample rate, default is 44100.
24679
24680 nb_samples, n
24681 Set number of samples per each frame. Default is 1024.
24682
24683 hp Set high-pass frequency. Default is 0.
24684
24685 lp Set low-pass frequency. Default is 0. If high-pass frequency is
24686 lower than low-pass frequency and low-pass frequency is higher than
24687 0 then filter will create band-pass filter coefficients, otherwise
24688 band-reject filter coefficients.
24689
24690 phase
24691 Set filter phase response. Default is 50. Allowed range is from 0
24692 to 100.
24693
24694 beta
24695 Set Kaiser window beta.
24696
24697 att Set stop-band attenuation. Default is 120dB, allowed range is from
24698 40 to 180 dB.
24699
24700 round
24701 Enable rounding, by default is disabled.
24702
24703 hptaps
24704 Set number of taps for high-pass filter.
24705
24706 lptaps
24707 Set number of taps for low-pass filter.
24708
24709 sine
24710 Generate an audio signal made of a sine wave with amplitude 1/8.
24711
24712 The audio signal is bit-exact.
24713
24714 The filter accepts the following options:
24715
24716 frequency, f
24717 Set the carrier frequency. Default is 440 Hz.
24718
24719 beep_factor, b
24720 Enable a periodic beep every second with frequency beep_factor
24721 times the carrier frequency. Default is 0, meaning the beep is
24722 disabled.
24723
24724 sample_rate, r
24725 Specify the sample rate, default is 44100.
24726
24727 duration, d
24728 Specify the duration of the generated audio stream.
24729
24730 samples_per_frame
24731 Set the number of samples per output frame.
24732
24733 The expression can contain the following constants:
24734
24735 n The (sequential) number of the output audio frame, starting
24736 from 0.
24737
24738 pts The PTS (Presentation TimeStamp) of the output audio frame,
24739 expressed in TB units.
24740
24741 t The PTS of the output audio frame, expressed in seconds.
24742
24743 TB The timebase of the output audio frames.
24744
24745 Default is 1024.
24746
24747 Examples
24748
24749 • Generate a simple 440 Hz sine wave:
24750
24751 sine
24752
24753 • Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
24754 seconds:
24755
24756 sine=220:4:d=5
24757 sine=f=220:b=4:d=5
24758 sine=frequency=220:beep_factor=4:duration=5
24759
24760 • Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
24761 NTSC pattern:
24762
24763 sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
24764
24766 Below is a description of the currently available audio sinks.
24767
24768 abuffersink
24769 Buffer audio frames, and make them available to the end of filter
24770 chain.
24771
24772 This sink is mainly intended for programmatic use, in particular
24773 through the interface defined in libavfilter/buffersink.h or the
24774 options system.
24775
24776 It accepts a pointer to an AVABufferSinkContext structure, which
24777 defines the incoming buffers' formats, to be passed as the opaque
24778 parameter to "avfilter_init_filter" for initialization.
24779
24780 anullsink
24781 Null audio sink; do absolutely nothing with the input audio. It is
24782 mainly useful as a template and for use in analysis / debugging tools.
24783
24785 When you configure your FFmpeg build, you can disable any of the
24786 existing filters using "--disable-filters". The configure output will
24787 show the video filters included in your build.
24788
24789 Below is a description of the currently available video filters.
24790
24791 addroi
24792 Mark a region of interest in a video frame.
24793
24794 The frame data is passed through unchanged, but metadata is attached to
24795 the frame indicating regions of interest which can affect the behaviour
24796 of later encoding. Multiple regions can be marked by applying the
24797 filter multiple times.
24798
24799 x Region distance in pixels from the left edge of the frame.
24800
24801 y Region distance in pixels from the top edge of the frame.
24802
24803 w Region width in pixels.
24804
24805 h Region height in pixels.
24806
24807 The parameters x, y, w and h are expressions, and may contain the
24808 following variables:
24809
24810 iw Width of the input frame.
24811
24812 ih Height of the input frame.
24813
24814 qoffset
24815 Quantisation offset to apply within the region.
24816
24817 This must be a real value in the range -1 to +1. A value of zero
24818 indicates no quality change. A negative value asks for better
24819 quality (less quantisation), while a positive value asks for worse
24820 quality (greater quantisation).
24821
24822 The range is calibrated so that the extreme values indicate the
24823 largest possible offset - if the rest of the frame is encoded with
24824 the worst possible quality, an offset of -1 indicates that this
24825 region should be encoded with the best possible quality anyway.
24826 Intermediate values are then interpolated in some codec-dependent
24827 way.
24828
24829 For example, in 10-bit H.264 the quantisation parameter varies
24830 between -12 and 51. A typical qoffset value of -1/10 therefore
24831 indicates that this region should be encoded with a QP around one-
24832 tenth of the full range better than the rest of the frame. So, if
24833 most of the frame were to be encoded with a QP of around 30, this
24834 region would get a QP of around 24 (an offset of approximately
24835 -1/10 * (51 - -12) = -6.3). An extreme value of -1 would indicate
24836 that this region should be encoded with the best possible quality
24837 regardless of the treatment of the rest of the frame - that is,
24838 should be encoded at a QP of -12.
24839
24840 clear
24841 If set to true, remove any existing regions of interest marked on
24842 the frame before adding the new one.
24843
24844 Examples
24845
24846 • Mark the centre quarter of the frame as interesting.
24847
24848 addroi=iw/4:ih/4:iw/2:ih/2:-1/10
24849
24850 • Mark the 100-pixel-wide region on the left edge of the frame as
24851 very uninteresting (to be encoded at much lower quality than the
24852 rest of the frame).
24853
24854 addroi=0:0:100:ih:+1/5
24855
24856 alphaextract
24857 Extract the alpha component from the input as a grayscale video. This
24858 is especially useful with the alphamerge filter.
24859
24860 alphamerge
24861 Add or replace the alpha component of the primary input with the
24862 grayscale value of a second input. This is intended for use with
24863 alphaextract to allow the transmission or storage of frame sequences
24864 that have alpha in a format that doesn't support an alpha channel.
24865
24866 For example, to reconstruct full frames from a normal YUV-encoded video
24867 and a separate video created with alphaextract, you might use:
24868
24869 movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
24870
24871 amplify
24872 Amplify differences between current pixel and pixels of adjacent frames
24873 in same pixel location.
24874
24875 This filter accepts the following options:
24876
24877 radius
24878 Set frame radius. Default is 2. Allowed range is from 1 to 63. For
24879 example radius of 3 will instruct filter to calculate average of 7
24880 frames.
24881
24882 factor
24883 Set factor to amplify difference. Default is 2. Allowed range is
24884 from 0 to 65535.
24885
24886 threshold
24887 Set threshold for difference amplification. Any difference greater
24888 or equal to this value will not alter source pixel. Default is 10.
24889 Allowed range is from 0 to 65535.
24890
24891 tolerance
24892 Set tolerance for difference amplification. Any difference lower to
24893 this value will not alter source pixel. Default is 0. Allowed
24894 range is from 0 to 65535.
24895
24896 low Set lower limit for changing source pixel. Default is 65535.
24897 Allowed range is from 0 to 65535. This option controls maximum
24898 possible value that will decrease source pixel value.
24899
24900 high
24901 Set high limit for changing source pixel. Default is 65535. Allowed
24902 range is from 0 to 65535. This option controls maximum possible
24903 value that will increase source pixel value.
24904
24905 planes
24906 Set which planes to filter. Default is all. Allowed range is from 0
24907 to 15.
24908
24909 Commands
24910
24911 This filter supports the following commands that corresponds to option
24912 of same name:
24913
24914 factor
24915 threshold
24916 tolerance
24917 low
24918 high
24919 planes
24920
24921 ass
24922 Same as the subtitles filter, except that it doesn't require libavcodec
24923 and libavformat to work. On the other hand, it is limited to ASS
24924 (Advanced Substation Alpha) subtitles files.
24925
24926 This filter accepts the following option in addition to the common
24927 options from the subtitles filter:
24928
24929 shaping
24930 Set the shaping engine
24931
24932 Available values are:
24933
24934 auto
24935 The default libass shaping engine, which is the best available.
24936
24937 simple
24938 Fast, font-agnostic shaper that can do only substitutions
24939
24940 complex
24941 Slower shaper using OpenType for substitutions and positioning
24942
24943 The default is "auto".
24944
24945 atadenoise
24946 Apply an Adaptive Temporal Averaging Denoiser to the video input.
24947
24948 The filter accepts the following options:
24949
24950 0a Set threshold A for 1st plane. Default is 0.02. Valid range is 0
24951 to 0.3.
24952
24953 0b Set threshold B for 1st plane. Default is 0.04. Valid range is 0
24954 to 5.
24955
24956 1a Set threshold A for 2nd plane. Default is 0.02. Valid range is 0
24957 to 0.3.
24958
24959 1b Set threshold B for 2nd plane. Default is 0.04. Valid range is 0
24960 to 5.
24961
24962 2a Set threshold A for 3rd plane. Default is 0.02. Valid range is 0
24963 to 0.3.
24964
24965 2b Set threshold B for 3rd plane. Default is 0.04. Valid range is 0
24966 to 5.
24967
24968 Threshold A is designed to react on abrupt changes in the input
24969 signal and threshold B is designed to react on continuous changes
24970 in the input signal.
24971
24972 s Set number of frames filter will use for averaging. Default is 9.
24973 Must be odd number in range [5, 129].
24974
24975 p Set what planes of frame filter will use for averaging. Default is
24976 all.
24977
24978 a Set what variant of algorithm filter will use for averaging.
24979 Default is "p" parallel. Alternatively can be set to "s" serial.
24980
24981 Parallel can be faster then serial, while other way around is never
24982 true. Parallel will abort early on first change being greater then
24983 thresholds, while serial will continue processing other side of
24984 frames if they are equal or below thresholds.
24985
24986 0s
24987 1s
24988 2s Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
24989 Valid range is from 0 to 32767. This options controls weight for
24990 each pixel in radius defined by size. Default value means every
24991 pixel have same weight. Setting this option to 0 effectively
24992 disables filtering.
24993
24994 Commands
24995
24996 This filter supports same commands as options except option "s". The
24997 command accepts the same syntax of the corresponding option.
24998
24999 avgblur
25000 Apply average blur filter.
25001
25002 The filter accepts the following options:
25003
25004 sizeX
25005 Set horizontal radius size.
25006
25007 planes
25008 Set which planes to filter. By default all planes are filtered.
25009
25010 sizeY
25011 Set vertical radius size, if zero it will be same as "sizeX".
25012 Default is 0.
25013
25014 Commands
25015
25016 This filter supports same commands as options. The command accepts the
25017 same syntax of the corresponding option.
25018
25019 If the specified expression is not valid, it is kept at its current
25020 value.
25021
25022 bbox
25023 Compute the bounding box for the non-black pixels in the input frame
25024 luminance plane.
25025
25026 This filter computes the bounding box containing all the pixels with a
25027 luminance value greater than the minimum allowed value. The parameters
25028 describing the bounding box are printed on the filter log.
25029
25030 The filter accepts the following option:
25031
25032 min_val
25033 Set the minimal luminance value. Default is 16.
25034
25035 Commands
25036
25037 This filter supports the all above options as commands.
25038
25039 bilateral
25040 Apply bilateral filter, spatial smoothing while preserving edges.
25041
25042 The filter accepts the following options:
25043
25044 sigmaS
25045 Set sigma of gaussian function to calculate spatial weight.
25046 Allowed range is 0 to 512. Default is 0.1.
25047
25048 sigmaR
25049 Set sigma of gaussian function to calculate range weight. Allowed
25050 range is 0 to 1. Default is 0.1.
25051
25052 planes
25053 Set planes to filter. Default is first only.
25054
25055 Commands
25056
25057 This filter supports the all above options as commands.
25058
25059 bitplanenoise
25060 Show and measure bit plane noise.
25061
25062 The filter accepts the following options:
25063
25064 bitplane
25065 Set which plane to analyze. Default is 1.
25066
25067 filter
25068 Filter out noisy pixels from "bitplane" set above. Default is
25069 disabled.
25070
25071 blackdetect
25072 Detect video intervals that are (almost) completely black. Can be
25073 useful to detect chapter transitions, commercials, or invalid
25074 recordings.
25075
25076 The filter outputs its detection analysis to both the log as well as
25077 frame metadata. If a black segment of at least the specified minimum
25078 duration is found, a line with the start and end timestamps as well as
25079 duration is printed to the log with level "info". In addition, a log
25080 line with level "debug" is printed per frame showing the black amount
25081 detected for that frame.
25082
25083 The filter also attaches metadata to the first frame of a black segment
25084 with key "lavfi.black_start" and to the first frame after the black
25085 segment ends with key "lavfi.black_end". The value is the frame's
25086 timestamp. This metadata is added regardless of the minimum duration
25087 specified.
25088
25089 The filter accepts the following options:
25090
25091 black_min_duration, d
25092 Set the minimum detected black duration expressed in seconds. It
25093 must be a non-negative floating point number.
25094
25095 Default value is 2.0.
25096
25097 picture_black_ratio_th, pic_th
25098 Set the threshold for considering a picture "black". Express the
25099 minimum value for the ratio:
25100
25101 <nb_black_pixels> / <nb_pixels>
25102
25103 for which a picture is considered black. Default value is 0.98.
25104
25105 pixel_black_th, pix_th
25106 Set the threshold for considering a pixel "black".
25107
25108 The threshold expresses the maximum pixel luminance value for which
25109 a pixel is considered "black". The provided value is scaled
25110 according to the following equation:
25111
25112 <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
25113
25114 luminance_range_size and luminance_minimum_value depend on the
25115 input video format, the range is [0-255] for YUV full-range formats
25116 and [16-235] for YUV non full-range formats.
25117
25118 Default value is 0.10.
25119
25120 The following example sets the maximum pixel threshold to the minimum
25121 value, and detects only black intervals of 2 or more seconds:
25122
25123 blackdetect=d=2:pix_th=0.00
25124
25125 blackframe
25126 Detect frames that are (almost) completely black. Can be useful to
25127 detect chapter transitions or commercials. Output lines consist of the
25128 frame number of the detected frame, the percentage of blackness, the
25129 position in the file if known or -1 and the timestamp in seconds.
25130
25131 In order to display the output lines, you need to set the loglevel at
25132 least to the AV_LOG_INFO value.
25133
25134 This filter exports frame metadata "lavfi.blackframe.pblack". The
25135 value represents the percentage of pixels in the picture that are below
25136 the threshold value.
25137
25138 It accepts the following parameters:
25139
25140 amount
25141 The percentage of the pixels that have to be below the threshold;
25142 it defaults to 98.
25143
25144 threshold, thresh
25145 The threshold below which a pixel value is considered black; it
25146 defaults to 32.
25147
25148 blend
25149 Blend two video frames into each other.
25150
25151 The "blend" filter takes two input streams and outputs one stream, the
25152 first input is the "top" layer and second input is "bottom" layer. By
25153 default, the output terminates when the longest input terminates.
25154
25155 The "tblend" (time blend) filter takes two consecutive frames from one
25156 single stream, and outputs the result obtained by blending the new
25157 frame on top of the old frame.
25158
25159 A description of the accepted options follows.
25160
25161 c0_mode
25162 c1_mode
25163 c2_mode
25164 c3_mode
25165 all_mode
25166 Set blend mode for specific pixel component or all pixel components
25167 in case of all_mode. Default value is "normal".
25168
25169 Available values for component modes are:
25170
25171 addition
25172 and
25173 average
25174 bleach
25175 burn
25176 darken
25177 difference
25178 divide
25179 dodge
25180 exclusion
25181 extremity
25182 freeze
25183 geometric
25184 glow
25185 grainextract
25186 grainmerge
25187 hardlight
25188 hardmix
25189 hardoverlay
25190 harmonic
25191 heat
25192 interpolate
25193 lighten
25194 linearlight
25195 multiply
25196 multiply128
25197 negation
25198 normal
25199 or
25200 overlay
25201 phoenix
25202 pinlight
25203 reflect
25204 screen
25205 softdifference
25206 softlight
25207 stain
25208 subtract
25209 vividlight
25210 xor
25211 c0_opacity
25212 c1_opacity
25213 c2_opacity
25214 c3_opacity
25215 all_opacity
25216 Set blend opacity for specific pixel component or all pixel
25217 components in case of all_opacity. Only used in combination with
25218 pixel component blend modes.
25219
25220 c0_expr
25221 c1_expr
25222 c2_expr
25223 c3_expr
25224 all_expr
25225 Set blend expression for specific pixel component or all pixel
25226 components in case of all_expr. Note that related mode options will
25227 be ignored if those are set.
25228
25229 The expressions can use the following variables:
25230
25231 N The sequential number of the filtered frame, starting from 0.
25232
25233 X
25234 Y the coordinates of the current sample
25235
25236 W
25237 H the width and height of currently filtered plane
25238
25239 SW
25240 SH Width and height scale for the plane being filtered. It is the
25241 ratio between the dimensions of the current plane to the luma
25242 plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
25243 luma plane and "0.5,0.5" for the chroma planes.
25244
25245 T Time of the current frame, expressed in seconds.
25246
25247 TOP, A
25248 Value of pixel component at current location for first video
25249 frame (top layer).
25250
25251 BOTTOM, B
25252 Value of pixel component at current location for second video
25253 frame (bottom layer).
25254
25255 The "blend" filter also supports the framesync options.
25256
25257 Examples
25258
25259 • Apply transition from bottom layer to top layer in first 10
25260 seconds:
25261
25262 blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
25263
25264 • Apply linear horizontal transition from top layer to bottom layer:
25265
25266 blend=all_expr='A*(X/W)+B*(1-X/W)'
25267
25268 • Apply 1x1 checkerboard effect:
25269
25270 blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
25271
25272 • Apply uncover left effect:
25273
25274 blend=all_expr='if(gte(N*SW+X,W),A,B)'
25275
25276 • Apply uncover down effect:
25277
25278 blend=all_expr='if(gte(Y-N*SH,0),A,B)'
25279
25280 • Apply uncover up-left effect:
25281
25282 blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
25283
25284 • Split diagonally video and shows top and bottom layer on each side:
25285
25286 blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
25287
25288 • Display differences between the current and the previous frame:
25289
25290 tblend=all_mode=grainextract
25291
25292 Commands
25293
25294 This filter supports same commands as options.
25295
25296 blockdetect
25297 Determines blockiness of frames without altering the input frames.
25298
25299 Based on Remco Muijs and Ihor Kirenko: "A no-reference blocking
25300 artifact measure for adaptive video processing." 2005 13th European
25301 signal processing conference.
25302
25303 The filter accepts the following options:
25304
25305 period_min
25306 period_max
25307 Set minimum and maximum values for determining pixel grids
25308 (periods). Default values are [3,24].
25309
25310 planes
25311 Set planes to filter. Default is first only.
25312
25313 Examples
25314
25315 • Determine blockiness for the first plane and search for periods
25316 within [8,32]:
25317
25318 blockdetect=period_min=8:period_max=32:planes=1
25319
25320 blurdetect
25321 Determines blurriness of frames without altering the input frames.
25322
25323 Based on Marziliano, Pina, et al. "A no-reference perceptual blur
25324 metric." Allows for a block-based abbreviation.
25325
25326 The filter accepts the following options:
25327
25328 low
25329 high
25330 Set low and high threshold values used by the Canny thresholding
25331 algorithm.
25332
25333 The high threshold selects the "strong" edge pixels, which are then
25334 connected through 8-connectivity with the "weak" edge pixels
25335 selected by the low threshold.
25336
25337 low and high threshold values must be chosen in the range [0,1],
25338 and low should be lesser or equal to high.
25339
25340 Default value for low is "20/255", and default value for high is
25341 "50/255".
25342
25343 radius
25344 Define the radius to search around an edge pixel for local maxima.
25345
25346 block_pct
25347 Determine blurriness only for the most significant blocks, given in
25348 percentage.
25349
25350 block_width
25351 Determine blurriness for blocks of width block_width. If set to any
25352 value smaller 1, no blocks are used and the whole image is
25353 processed as one no matter of block_height.
25354
25355 block_height
25356 Determine blurriness for blocks of height block_height. If set to
25357 any value smaller 1, no blocks are used and the whole image is
25358 processed as one no matter of block_width.
25359
25360 planes
25361 Set planes to filter. Default is first only.
25362
25363 Examples
25364
25365 • Determine blur for 80% of most significant 32x32 blocks:
25366
25367 blurdetect=block_width=32:block_height=32:block_pct=80
25368
25369 bm3d
25370 Denoise frames using Block-Matching 3D algorithm.
25371
25372 The filter accepts the following options.
25373
25374 sigma
25375 Set denoising strength. Default value is 1. Allowed range is from
25376 0 to 999.9. The denoising algorithm is very sensitive to sigma, so
25377 adjust it according to the source.
25378
25379 block
25380 Set local patch size. This sets dimensions in 2D.
25381
25382 bstep
25383 Set sliding step for processing blocks. Default value is 4.
25384 Allowed range is from 1 to 64. Smaller values allows processing
25385 more reference blocks and is slower.
25386
25387 group
25388 Set maximal number of similar blocks for 3rd dimension. Default
25389 value is 1. When set to 1, no block matching is done. Larger
25390 values allows more blocks in single group. Allowed range is from 1
25391 to 256.
25392
25393 range
25394 Set radius for search block matching. Default is 9. Allowed range
25395 is from 1 to INT32_MAX.
25396
25397 mstep
25398 Set step between two search locations for block matching. Default
25399 is 1. Allowed range is from 1 to 64. Smaller is slower.
25400
25401 thmse
25402 Set threshold of mean square error for block matching. Valid range
25403 is 0 to INT32_MAX.
25404
25405 hdthr
25406 Set thresholding parameter for hard thresholding in 3D transformed
25407 domain. Larger values results in stronger hard-thresholding
25408 filtering in frequency domain.
25409
25410 estim
25411 Set filtering estimation mode. Can be "basic" or "final". Default
25412 is "basic".
25413
25414 ref If enabled, filter will use 2nd stream for block matching. Default
25415 is disabled for "basic" value of estim option, and always enabled
25416 if value of estim is "final".
25417
25418 planes
25419 Set planes to filter. Default is all available except alpha.
25420
25421 Examples
25422
25423 • Basic filtering with bm3d:
25424
25425 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
25426
25427 • Same as above, but filtering only luma:
25428
25429 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
25430
25431 • Same as above, but with both estimation modes:
25432
25433 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
25434
25435 • Same as above, but prefilter with nlmeans filter instead:
25436
25437 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
25438
25439 boxblur
25440 Apply a boxblur algorithm to the input video.
25441
25442 It accepts the following parameters:
25443
25444 luma_radius, lr
25445 luma_power, lp
25446 chroma_radius, cr
25447 chroma_power, cp
25448 alpha_radius, ar
25449 alpha_power, ap
25450
25451 A description of the accepted options follows.
25452
25453 luma_radius, lr
25454 chroma_radius, cr
25455 alpha_radius, ar
25456 Set an expression for the box radius in pixels used for blurring
25457 the corresponding input plane.
25458
25459 The radius value must be a non-negative number, and must not be
25460 greater than the value of the expression "min(w,h)/2" for the luma
25461 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
25462
25463 Default value for luma_radius is "2". If not specified,
25464 chroma_radius and alpha_radius default to the corresponding value
25465 set for luma_radius.
25466
25467 The expressions can contain the following constants:
25468
25469 w
25470 h The input width and height in pixels.
25471
25472 cw
25473 ch The input chroma image width and height in pixels.
25474
25475 hsub
25476 vsub
25477 The horizontal and vertical chroma subsample values. For
25478 example, for the pixel format "yuv422p", hsub is 2 and vsub is
25479 1.
25480
25481 luma_power, lp
25482 chroma_power, cp
25483 alpha_power, ap
25484 Specify how many times the boxblur filter is applied to the
25485 corresponding plane.
25486
25487 Default value for luma_power is 2. If not specified, chroma_power
25488 and alpha_power default to the corresponding value set for
25489 luma_power.
25490
25491 A value of 0 will disable the effect.
25492
25493 Examples
25494
25495 • Apply a boxblur filter with the luma, chroma, and alpha radii set
25496 to 2:
25497
25498 boxblur=luma_radius=2:luma_power=1
25499 boxblur=2:1
25500
25501 • Set the luma radius to 2, and alpha and chroma radius to 0:
25502
25503 boxblur=2:1:cr=0:ar=0
25504
25505 • Set the luma and chroma radii to a fraction of the video dimension:
25506
25507 boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
25508
25509 bwdif
25510 Deinterlace the input video ("bwdif" stands for "Bob Weaver
25511 Deinterlacing Filter").
25512
25513 Motion adaptive deinterlacing based on yadif with the use of w3fdif and
25514 cubic interpolation algorithms. It accepts the following parameters:
25515
25516 mode
25517 The interlacing mode to adopt. It accepts one of the following
25518 values:
25519
25520 0, send_frame
25521 Output one frame for each frame.
25522
25523 1, send_field
25524 Output one frame for each field.
25525
25526 The default value is "send_field".
25527
25528 parity
25529 The picture field parity assumed for the input interlaced video. It
25530 accepts one of the following values:
25531
25532 0, tff
25533 Assume the top field is first.
25534
25535 1, bff
25536 Assume the bottom field is first.
25537
25538 -1, auto
25539 Enable automatic detection of field parity.
25540
25541 The default value is "auto". If the interlacing is unknown or the
25542 decoder does not export this information, top field first will be
25543 assumed.
25544
25545 deint
25546 Specify which frames to deinterlace. Accepts one of the following
25547 values:
25548
25549 0, all
25550 Deinterlace all frames.
25551
25552 1, interlaced
25553 Only deinterlace frames marked as interlaced.
25554
25555 The default value is "all".
25556
25557 cas
25558 Apply Contrast Adaptive Sharpen filter to video stream.
25559
25560 The filter accepts the following options:
25561
25562 strength
25563 Set the sharpening strength. Default value is 0.
25564
25565 planes
25566 Set planes to filter. Default value is to filter all planes except
25567 alpha plane.
25568
25569 Commands
25570
25571 This filter supports same commands as options.
25572
25573 chromahold
25574 Remove all color information for all colors except for certain one.
25575
25576 The filter accepts the following options:
25577
25578 color
25579 The color which will not be replaced with neutral chroma.
25580
25581 similarity
25582 Similarity percentage with the above color. 0.01 matches only the
25583 exact key color, while 1.0 matches everything.
25584
25585 blend
25586 Blend percentage. 0.0 makes pixels either fully gray, or not gray
25587 at all. Higher values result in more preserved color.
25588
25589 yuv Signals that the color passed is already in YUV instead of RGB.
25590
25591 Literal colors like "green" or "red" don't make sense with this
25592 enabled anymore. This can be used to pass exact YUV values as
25593 hexadecimal numbers.
25594
25595 Commands
25596
25597 This filter supports same commands as options. The command accepts the
25598 same syntax of the corresponding option.
25599
25600 If the specified expression is not valid, it is kept at its current
25601 value.
25602
25603 chromakey
25604 YUV colorspace color/chroma keying.
25605
25606 The filter accepts the following options:
25607
25608 color
25609 The color which will be replaced with transparency.
25610
25611 similarity
25612 Similarity percentage with the key color.
25613
25614 0.01 matches only the exact key color, while 1.0 matches
25615 everything.
25616
25617 blend
25618 Blend percentage.
25619
25620 0.0 makes pixels either fully transparent, or not transparent at
25621 all.
25622
25623 Higher values result in semi-transparent pixels, with a higher
25624 transparency the more similar the pixels color is to the key color.
25625
25626 yuv Signals that the color passed is already in YUV instead of RGB.
25627
25628 Literal colors like "green" or "red" don't make sense with this
25629 enabled anymore. This can be used to pass exact YUV values as
25630 hexadecimal numbers.
25631
25632 Commands
25633
25634 This filter supports same commands as options. The command accepts the
25635 same syntax of the corresponding option.
25636
25637 If the specified expression is not valid, it is kept at its current
25638 value.
25639
25640 Examples
25641
25642 • Make every green pixel in the input image transparent:
25643
25644 ffmpeg -i input.png -vf chromakey=green out.png
25645
25646 • Overlay a greenscreen-video on top of a static black background.
25647
25648 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
25649
25650 chromakey_cuda
25651 CUDA accelerated YUV colorspace color/chroma keying.
25652
25653 This filter works like normal chromakey filter but operates on CUDA
25654 frames. for more details and parameters see chromakey.
25655
25656 Examples
25657
25658 • Make all the green pixels in the input video transparent and use it
25659 as an overlay for another video:
25660
25661 ./ffmpeg \
25662 -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4 \
25663 -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
25664 -init_hw_device cuda \
25665 -filter_complex \
25666 " \
25667 [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
25668 [1:v]scale_cuda=format=yuv420p[base]; \
25669 [base][overlay_video]overlay_cuda" \
25670 -an -sn -c:v h264_nvenc -cq 20 output.mp4
25671
25672 • Process two software sources, explicitly uploading the frames:
25673
25674 ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
25675 -f lavfi -i color=size=800x600:color=white,format=yuv420p \
25676 -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
25677 -filter_complex \
25678 " \
25679 [0]hwupload[under]; \
25680 [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
25681 [under][over]overlay_cuda" \
25682 -c:v hevc_nvenc -cq 18 -preset slow output.mp4
25683
25684 chromanr
25685 Reduce chrominance noise.
25686
25687 The filter accepts the following options:
25688
25689 thres
25690 Set threshold for averaging chrominance values. Sum of absolute
25691 difference of Y, U and V pixel components of current pixel and
25692 neighbour pixels lower than this threshold will be used in
25693 averaging. Luma component is left unchanged and is copied to
25694 output. Default value is 30. Allowed range is from 1 to 200.
25695
25696 sizew
25697 Set horizontal radius of rectangle used for averaging. Allowed
25698 range is from 1 to 100. Default value is 5.
25699
25700 sizeh
25701 Set vertical radius of rectangle used for averaging. Allowed range
25702 is from 1 to 100. Default value is 5.
25703
25704 stepw
25705 Set horizontal step when averaging. Default value is 1. Allowed
25706 range is from 1 to 50. Mostly useful to speed-up filtering.
25707
25708 steph
25709 Set vertical step when averaging. Default value is 1. Allowed
25710 range is from 1 to 50. Mostly useful to speed-up filtering.
25711
25712 threy
25713 Set Y threshold for averaging chrominance values. Set finer
25714 control for max allowed difference between Y components of current
25715 pixel and neigbour pixels. Default value is 200. Allowed range is
25716 from 1 to 200.
25717
25718 threu
25719 Set U threshold for averaging chrominance values. Set finer
25720 control for max allowed difference between U components of current
25721 pixel and neigbour pixels. Default value is 200. Allowed range is
25722 from 1 to 200.
25723
25724 threv
25725 Set V threshold for averaging chrominance values. Set finer
25726 control for max allowed difference between V components of current
25727 pixel and neigbour pixels. Default value is 200. Allowed range is
25728 from 1 to 200.
25729
25730 distance
25731 Set distance type used in calculations.
25732
25733 manhattan
25734 Absolute difference.
25735
25736 euclidean
25737 Difference squared.
25738
25739 Default distance type is manhattan.
25740
25741 Commands
25742
25743 This filter supports same commands as options. The command accepts the
25744 same syntax of the corresponding option.
25745
25746 chromashift
25747 Shift chroma pixels horizontally and/or vertically.
25748
25749 The filter accepts the following options:
25750
25751 cbh Set amount to shift chroma-blue horizontally.
25752
25753 cbv Set amount to shift chroma-blue vertically.
25754
25755 crh Set amount to shift chroma-red horizontally.
25756
25757 crv Set amount to shift chroma-red vertically.
25758
25759 edge
25760 Set edge mode, can be smear, default, or warp.
25761
25762 Commands
25763
25764 This filter supports the all above options as commands.
25765
25766 ciescope
25767 Display CIE color diagram with pixels overlaid onto it.
25768
25769 The filter accepts the following options:
25770
25771 system
25772 Set color system.
25773
25774 ntsc, 470m
25775 ebu, 470bg
25776 smpte
25777 240m
25778 apple
25779 widergb
25780 cie1931
25781 rec709, hdtv
25782 uhdtv, rec2020
25783 dcip3
25784 cie Set CIE system.
25785
25786 xyy
25787 ucs
25788 luv
25789 gamuts
25790 Set what gamuts to draw.
25791
25792 See "system" option for available values.
25793
25794 size, s
25795 Set ciescope size, by default set to 512.
25796
25797 intensity, i
25798 Set intensity used to map input pixel values to CIE diagram.
25799
25800 contrast
25801 Set contrast used to draw tongue colors that are out of active
25802 color system gamut.
25803
25804 corrgamma
25805 Correct gamma displayed on scope, by default enabled.
25806
25807 showwhite
25808 Show white point on CIE diagram, by default disabled.
25809
25810 gamma
25811 Set input gamma. Used only with XYZ input color space.
25812
25813 fill
25814 Fill with CIE colors. By default is enabled.
25815
25816 codecview
25817 Visualize information exported by some codecs.
25818
25819 Some codecs can export information through frames using side-data or
25820 other means. For example, some MPEG based codecs export motion vectors
25821 through the export_mvs flag in the codec flags2 option.
25822
25823 The filter accepts the following option:
25824
25825 block
25826 Display block partition structure using the luma plane.
25827
25828 mv Set motion vectors to visualize.
25829
25830 Available flags for mv are:
25831
25832 pf forward predicted MVs of P-frames
25833
25834 bf forward predicted MVs of B-frames
25835
25836 bb backward predicted MVs of B-frames
25837
25838 qp Display quantization parameters using the chroma planes.
25839
25840 mv_type, mvt
25841 Set motion vectors type to visualize. Includes MVs from all frames
25842 unless specified by frame_type option.
25843
25844 Available flags for mv_type are:
25845
25846 fp forward predicted MVs
25847
25848 bp backward predicted MVs
25849
25850 frame_type, ft
25851 Set frame type to visualize motion vectors of.
25852
25853 Available flags for frame_type are:
25854
25855 if intra-coded frames (I-frames)
25856
25857 pf predicted frames (P-frames)
25858
25859 bf bi-directionally predicted frames (B-frames)
25860
25861 Examples
25862
25863 • Visualize forward predicted MVs of all frames using ffplay:
25864
25865 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
25866
25867 • Visualize multi-directionals MVs of P and B-Frames using ffplay:
25868
25869 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
25870
25871 colorbalance
25872 Modify intensity of primary colors (red, green and blue) of input
25873 frames.
25874
25875 The filter allows an input frame to be adjusted in the shadows,
25876 midtones or highlights regions for the red-cyan, green-magenta or blue-
25877 yellow balance.
25878
25879 A positive adjustment value shifts the balance towards the primary
25880 color, a negative value towards the complementary color.
25881
25882 The filter accepts the following options:
25883
25884 rs
25885 gs
25886 bs Adjust red, green and blue shadows (darkest pixels).
25887
25888 rm
25889 gm
25890 bm Adjust red, green and blue midtones (medium pixels).
25891
25892 rh
25893 gh
25894 bh Adjust red, green and blue highlights (brightest pixels).
25895
25896 Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
25897
25898 pl Preserve lightness when changing color balance. Default is
25899 disabled.
25900
25901 Examples
25902
25903 • Add red color cast to shadows:
25904
25905 colorbalance=rs=.3
25906
25907 Commands
25908
25909 This filter supports the all above options as commands.
25910
25911 colorcontrast
25912 Adjust color contrast between RGB components.
25913
25914 The filter accepts the following options:
25915
25916 rc Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
25917 -1.0 to 1.0.
25918
25919 gm Set the green-magenta contrast. Defaults is 0.0. Allowed range is
25920 from -1.0 to 1.0.
25921
25922 by Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
25923 from -1.0 to 1.0.
25924
25925 rcw
25926 gmw
25927 byw Set the weight of each "rc", "gm", "by" option value. Default value
25928 is 0.0. Allowed range is from 0.0 to 1.0. If all weights are 0.0
25929 filtering is disabled.
25930
25931 pl Set the amount of preserving lightness. Default value is 0.0.
25932 Allowed range is from 0.0 to 1.0.
25933
25934 Commands
25935
25936 This filter supports the all above options as commands.
25937
25938 colorcorrect
25939 Adjust color white balance selectively for blacks and whites. This
25940 filter operates in YUV colorspace.
25941
25942 The filter accepts the following options:
25943
25944 rl Set the red shadow spot. Allowed range is from -1.0 to 1.0.
25945 Default value is 0.
25946
25947 bl Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
25948 Default value is 0.
25949
25950 rh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
25951 Default value is 0.
25952
25953 bh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
25954 Default value is 0.
25955
25956 saturation
25957 Set the amount of saturation. Allowed range is from -3.0 to 3.0.
25958 Default value is 1.
25959
25960 analyze
25961 If set to anything other than "manual" it will analyze every frame
25962 and use derived parameters for filtering output frame.
25963
25964 Possible values are:
25965
25966 manual
25967 average
25968 minmax
25969 median
25970
25971 Default value is "manual".
25972
25973 Commands
25974
25975 This filter supports the all above options as commands.
25976
25977 colorchannelmixer
25978 Adjust video input frames by re-mixing color channels.
25979
25980 This filter modifies a color channel by adding the values associated to
25981 the other channels of the same pixels. For example if the value to
25982 modify is red, the output value will be:
25983
25984 <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
25985
25986 The filter accepts the following options:
25987
25988 rr
25989 rg
25990 rb
25991 ra Adjust contribution of input red, green, blue and alpha channels
25992 for output red channel. Default is 1 for rr, and 0 for rg, rb and
25993 ra.
25994
25995 gr
25996 gg
25997 gb
25998 ga Adjust contribution of input red, green, blue and alpha channels
25999 for output green channel. Default is 1 for gg, and 0 for gr, gb
26000 and ga.
26001
26002 br
26003 bg
26004 bb
26005 ba Adjust contribution of input red, green, blue and alpha channels
26006 for output blue channel. Default is 1 for bb, and 0 for br, bg and
26007 ba.
26008
26009 ar
26010 ag
26011 ab
26012 aa Adjust contribution of input red, green, blue and alpha channels
26013 for output alpha channel. Default is 1 for aa, and 0 for ar, ag
26014 and ab.
26015
26016 Allowed ranges for options are "[-2.0, 2.0]".
26017
26018 pc Set preserve color mode. The accepted values are:
26019
26020 none
26021 Disable color preserving, this is default.
26022
26023 lum Preserve luminance.
26024
26025 max Preserve max value of RGB triplet.
26026
26027 avg Preserve average value of RGB triplet.
26028
26029 sum Preserve sum value of RGB triplet.
26030
26031 nrm Preserve normalized value of RGB triplet.
26032
26033 pwr Preserve power value of RGB triplet.
26034
26035 pa Set the preserve color amount when changing colors. Allowed range
26036 is from "[0.0, 1.0]". Default is 0.0, thus disabled.
26037
26038 Examples
26039
26040 • Convert source to grayscale:
26041
26042 colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
26043
26044 • Simulate sepia tones:
26045
26046 colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
26047
26048 Commands
26049
26050 This filter supports the all above options as commands.
26051
26052 colorize
26053 Overlay a solid color on the video stream.
26054
26055 The filter accepts the following options:
26056
26057 hue Set the color hue. Allowed range is from 0 to 360. Default value
26058 is 0.
26059
26060 saturation
26061 Set the color saturation. Allowed range is from 0 to 1. Default
26062 value is 0.5.
26063
26064 lightness
26065 Set the color lightness. Allowed range is from 0 to 1. Default
26066 value is 0.5.
26067
26068 mix Set the mix of source lightness. By default is set to 1.0. Allowed
26069 range is from 0.0 to 1.0.
26070
26071 Commands
26072
26073 This filter supports the all above options as commands.
26074
26075 colorkey
26076 RGB colorspace color keying. This filter operates on 8-bit RGB format
26077 frames by setting the alpha component of each pixel which falls within
26078 the similarity radius of the key color to 0. The alpha value for pixels
26079 outside the similarity radius depends on the value of the blend option.
26080
26081 The filter accepts the following options:
26082
26083 color
26084 Set the color for which alpha will be set to 0 (full transparency).
26085 See "Color" section in the ffmpeg-utils manual. Default is
26086 "black".
26087
26088 similarity
26089 Set the radius from the key color within which other colors also
26090 have full transparency. The computed distance is related to the
26091 unit fractional distance in 3D space between the RGB values of the
26092 key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
26093 within a very small radius around the exact key color, while 1.0
26094 matches everything. Default is 0.01.
26095
26096 blend
26097 Set how the alpha value for pixels that fall outside the similarity
26098 radius is computed. 0.0 makes pixels either fully transparent or
26099 fully opaque. Higher values result in semi-transparent pixels,
26100 with greater transparency the more similar the pixel color is to
26101 the key color. Range is 0.0 to 1.0. Default is 0.0.
26102
26103 Examples
26104
26105 • Make every green pixel in the input image transparent:
26106
26107 ffmpeg -i input.png -vf colorkey=green out.png
26108
26109 • Overlay a greenscreen-video on top of a static background image.
26110
26111 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
26112
26113 Commands
26114
26115 This filter supports same commands as options. The command accepts the
26116 same syntax of the corresponding option.
26117
26118 If the specified expression is not valid, it is kept at its current
26119 value.
26120
26121 colorhold
26122 Remove all color information for all RGB colors except for certain one.
26123
26124 The filter accepts the following options:
26125
26126 color
26127 The color which will not be replaced with neutral gray.
26128
26129 similarity
26130 Similarity percentage with the above color. 0.01 matches only the
26131 exact key color, while 1.0 matches everything.
26132
26133 blend
26134 Blend percentage. 0.0 makes pixels fully gray. Higher values
26135 result in more preserved color.
26136
26137 Commands
26138
26139 This filter supports same commands as options. The command accepts the
26140 same syntax of the corresponding option.
26141
26142 If the specified expression is not valid, it is kept at its current
26143 value.
26144
26145 colorlevels
26146 Adjust video input frames using levels.
26147
26148 The filter accepts the following options:
26149
26150 rimin
26151 gimin
26152 bimin
26153 aimin
26154 Adjust red, green, blue and alpha input black point. Allowed
26155 ranges for options are "[-1.0, 1.0]". Defaults are 0.
26156
26157 rimax
26158 gimax
26159 bimax
26160 aimax
26161 Adjust red, green, blue and alpha input white point. Allowed
26162 ranges for options are "[-1.0, 1.0]". Defaults are 1.
26163
26164 Input levels are used to lighten highlights (bright tones), darken
26165 shadows (dark tones), change the balance of bright and dark tones.
26166
26167 romin
26168 gomin
26169 bomin
26170 aomin
26171 Adjust red, green, blue and alpha output black point. Allowed
26172 ranges for options are "[0, 1.0]". Defaults are 0.
26173
26174 romax
26175 gomax
26176 bomax
26177 aomax
26178 Adjust red, green, blue and alpha output white point. Allowed
26179 ranges for options are "[0, 1.0]". Defaults are 1.
26180
26181 Output levels allows manual selection of a constrained output level
26182 range.
26183
26184 preserve
26185 Set preserve color mode. The accepted values are:
26186
26187 none
26188 Disable color preserving, this is default.
26189
26190 lum Preserve luminance.
26191
26192 max Preserve max value of RGB triplet.
26193
26194 avg Preserve average value of RGB triplet.
26195
26196 sum Preserve sum value of RGB triplet.
26197
26198 nrm Preserve normalized value of RGB triplet.
26199
26200 pwr Preserve power value of RGB triplet.
26201
26202 Examples
26203
26204 • Make video output darker:
26205
26206 colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
26207
26208 • Increase contrast:
26209
26210 colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
26211
26212 • Make video output lighter:
26213
26214 colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
26215
26216 • Increase brightness:
26217
26218 colorlevels=romin=0.5:gomin=0.5:bomin=0.5
26219
26220 Commands
26221
26222 This filter supports the all above options as commands.
26223
26224 colormap
26225 Apply custom color maps to video stream.
26226
26227 This filter needs three input video streams. First stream is video
26228 stream that is going to be filtered out. Second and third video stream
26229 specify color patches for source color to target color mapping.
26230
26231 The filter accepts the following options:
26232
26233 patch_size
26234 Set the source and target video stream patch size in pixels.
26235
26236 nb_patches
26237 Set the max number of used patches from source and target video
26238 stream. Default value is number of patches available in additional
26239 video streams. Max allowed number of patches is 64.
26240
26241 type
26242 Set the adjustments used for target colors. Can be "relative" or
26243 "absolute". Defaults is "absolute".
26244
26245 kernel
26246 Set the kernel used to measure color differences between mapped
26247 colors.
26248
26249 The accepted values are:
26250
26251 euclidean
26252 weuclidean
26253
26254 Default is "euclidean".
26255
26256 colormatrix
26257 Convert color matrix.
26258
26259 The filter accepts the following options:
26260
26261 src
26262 dst Specify the source and destination color matrix. Both values must
26263 be specified.
26264
26265 The accepted values are:
26266
26267 bt709
26268 BT.709
26269
26270 fcc FCC
26271
26272 bt601
26273 BT.601
26274
26275 bt470
26276 BT.470
26277
26278 bt470bg
26279 BT.470BG
26280
26281 smpte170m
26282 SMPTE-170M
26283
26284 smpte240m
26285 SMPTE-240M
26286
26287 bt2020
26288 BT.2020
26289
26290 For example to convert from BT.601 to SMPTE-240M, use the command:
26291
26292 colormatrix=bt601:smpte240m
26293
26294 colorspace
26295 Convert colorspace, transfer characteristics or color primaries. Input
26296 video needs to have an even size.
26297
26298 The filter accepts the following options:
26299
26300 all Specify all color properties at once.
26301
26302 The accepted values are:
26303
26304 bt470m
26305 BT.470M
26306
26307 bt470bg
26308 BT.470BG
26309
26310 bt601-6-525
26311 BT.601-6 525
26312
26313 bt601-6-625
26314 BT.601-6 625
26315
26316 bt709
26317 BT.709
26318
26319 smpte170m
26320 SMPTE-170M
26321
26322 smpte240m
26323 SMPTE-240M
26324
26325 bt2020
26326 BT.2020
26327
26328 space
26329 Specify output colorspace.
26330
26331 The accepted values are:
26332
26333 bt709
26334 BT.709
26335
26336 fcc FCC
26337
26338 bt470bg
26339 BT.470BG or BT.601-6 625
26340
26341 smpte170m
26342 SMPTE-170M or BT.601-6 525
26343
26344 smpte240m
26345 SMPTE-240M
26346
26347 ycgco
26348 YCgCo
26349
26350 bt2020ncl
26351 BT.2020 with non-constant luminance
26352
26353 trc Specify output transfer characteristics.
26354
26355 The accepted values are:
26356
26357 bt709
26358 BT.709
26359
26360 bt470m
26361 BT.470M
26362
26363 bt470bg
26364 BT.470BG
26365
26366 gamma22
26367 Constant gamma of 2.2
26368
26369 gamma28
26370 Constant gamma of 2.8
26371
26372 smpte170m
26373 SMPTE-170M, BT.601-6 625 or BT.601-6 525
26374
26375 smpte240m
26376 SMPTE-240M
26377
26378 srgb
26379 SRGB
26380
26381 iec61966-2-1
26382 iec61966-2-1
26383
26384 iec61966-2-4
26385 iec61966-2-4
26386
26387 xvycc
26388 xvycc
26389
26390 bt2020-10
26391 BT.2020 for 10-bits content
26392
26393 bt2020-12
26394 BT.2020 for 12-bits content
26395
26396 primaries
26397 Specify output color primaries.
26398
26399 The accepted values are:
26400
26401 bt709
26402 BT.709
26403
26404 bt470m
26405 BT.470M
26406
26407 bt470bg
26408 BT.470BG or BT.601-6 625
26409
26410 smpte170m
26411 SMPTE-170M or BT.601-6 525
26412
26413 smpte240m
26414 SMPTE-240M
26415
26416 film
26417 film
26418
26419 smpte431
26420 SMPTE-431
26421
26422 smpte432
26423 SMPTE-432
26424
26425 bt2020
26426 BT.2020
26427
26428 jedec-p22
26429 JEDEC P22 phosphors
26430
26431 range
26432 Specify output color range.
26433
26434 The accepted values are:
26435
26436 tv TV (restricted) range
26437
26438 mpeg
26439 MPEG (restricted) range
26440
26441 pc PC (full) range
26442
26443 jpeg
26444 JPEG (full) range
26445
26446 format
26447 Specify output color format.
26448
26449 The accepted values are:
26450
26451 yuv420p
26452 YUV 4:2:0 planar 8-bits
26453
26454 yuv420p10
26455 YUV 4:2:0 planar 10-bits
26456
26457 yuv420p12
26458 YUV 4:2:0 planar 12-bits
26459
26460 yuv422p
26461 YUV 4:2:2 planar 8-bits
26462
26463 yuv422p10
26464 YUV 4:2:2 planar 10-bits
26465
26466 yuv422p12
26467 YUV 4:2:2 planar 12-bits
26468
26469 yuv444p
26470 YUV 4:4:4 planar 8-bits
26471
26472 yuv444p10
26473 YUV 4:4:4 planar 10-bits
26474
26475 yuv444p12
26476 YUV 4:4:4 planar 12-bits
26477
26478 fast
26479 Do a fast conversion, which skips gamma/primary correction. This
26480 will take significantly less CPU, but will be mathematically
26481 incorrect. To get output compatible with that produced by the
26482 colormatrix filter, use fast=1.
26483
26484 dither
26485 Specify dithering mode.
26486
26487 The accepted values are:
26488
26489 none
26490 No dithering
26491
26492 fsb Floyd-Steinberg dithering
26493
26494 wpadapt
26495 Whitepoint adaptation mode.
26496
26497 The accepted values are:
26498
26499 bradford
26500 Bradford whitepoint adaptation
26501
26502 vonkries
26503 von Kries whitepoint adaptation
26504
26505 identity
26506 identity whitepoint adaptation (i.e. no whitepoint adaptation)
26507
26508 iall
26509 Override all input properties at once. Same accepted values as all.
26510
26511 ispace
26512 Override input colorspace. Same accepted values as space.
26513
26514 iprimaries
26515 Override input color primaries. Same accepted values as primaries.
26516
26517 itrc
26518 Override input transfer characteristics. Same accepted values as
26519 trc.
26520
26521 irange
26522 Override input color range. Same accepted values as range.
26523
26524 The filter converts the transfer characteristics, color space and color
26525 primaries to the specified user values. The output value, if not
26526 specified, is set to a default value based on the "all" property. If
26527 that property is also not specified, the filter will log an error. The
26528 output color range and format default to the same value as the input
26529 color range and format. The input transfer characteristics, color
26530 space, color primaries and color range should be set on the input data.
26531 If any of these are missing, the filter will log an error and no
26532 conversion will take place.
26533
26534 For example to convert the input to SMPTE-240M, use the command:
26535
26536 colorspace=smpte240m
26537
26538 colortemperature
26539 Adjust color temperature in video to simulate variations in ambient
26540 color temperature.
26541
26542 The filter accepts the following options:
26543
26544 temperature
26545 Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
26546 Default value is 6500 K.
26547
26548 mix Set mixing with filtered output. Allowed range is from 0 to 1.
26549 Default value is 1.
26550
26551 pl Set the amount of preserving lightness. Allowed range is from 0 to
26552 1. Default value is 0.
26553
26554 Commands
26555
26556 This filter supports same commands as options.
26557
26558 convolution
26559 Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
26560 elements.
26561
26562 The filter accepts the following options:
26563
26564 0m
26565 1m
26566 2m
26567 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
26568 signed integers in square mode, and from 1 to 49 odd number of
26569 signed integers in row mode.
26570
26571 0rdiv
26572 1rdiv
26573 2rdiv
26574 3rdiv
26575 Set multiplier for calculated value for each plane. If unset or 0,
26576 it will be sum of all matrix elements.
26577
26578 0bias
26579 1bias
26580 2bias
26581 3bias
26582 Set bias for each plane. This value is added to the result of the
26583 multiplication. Useful for making the overall image brighter or
26584 darker. Default is 0.0.
26585
26586 0mode
26587 1mode
26588 2mode
26589 3mode
26590 Set matrix mode for each plane. Can be square, row or column.
26591 Default is square.
26592
26593 Commands
26594
26595 This filter supports the all above options as commands.
26596
26597 Examples
26598
26599 • Apply sharpen:
26600
26601 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"
26602
26603 • Apply blur:
26604
26605 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"
26606
26607 • Apply edge enhance:
26608
26609 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"
26610
26611 • Apply edge detect:
26612
26613 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"
26614
26615 • Apply laplacian edge detector which includes diagonals:
26616
26617 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"
26618
26619 • Apply emboss:
26620
26621 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"
26622
26623 convolve
26624 Apply 2D convolution of video stream in frequency domain using second
26625 stream as impulse.
26626
26627 The filter accepts the following options:
26628
26629 planes
26630 Set which planes to process.
26631
26632 impulse
26633 Set which impulse video frames will be processed, can be first or
26634 all. Default is all.
26635
26636 The "convolve" filter also supports the framesync options.
26637
26638 copy
26639 Copy the input video source unchanged to the output. This is mainly
26640 useful for testing purposes.
26641
26642 coreimage
26643 Video filtering on GPU using Apple's CoreImage API on OSX.
26644
26645 Hardware acceleration is based on an OpenGL context. Usually, this
26646 means it is processed by video hardware. However, software-based OpenGL
26647 implementations exist which means there is no guarantee for hardware
26648 processing. It depends on the respective OSX.
26649
26650 There are many filters and image generators provided by Apple that come
26651 with a large variety of options. The filter has to be referenced by its
26652 name along with its options.
26653
26654 The coreimage filter accepts the following options:
26655
26656 list_filters
26657 List all available filters and generators along with all their
26658 respective options as well as possible minimum and maximum values
26659 along with the default values.
26660
26661 list_filters=true
26662
26663 filter
26664 Specify all filters by their respective name and options. Use
26665 list_filters to determine all valid filter names and options.
26666 Numerical options are specified by a float value and are
26667 automatically clamped to their respective value range. Vector and
26668 color options have to be specified by a list of space separated
26669 float values. Character escaping has to be done. A special option
26670 name "default" is available to use default options for a filter.
26671
26672 It is required to specify either "default" or at least one of the
26673 filter options. All omitted options are used with their default
26674 values. The syntax of the filter string is as follows:
26675
26676 filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
26677
26678 output_rect
26679 Specify a rectangle where the output of the filter chain is copied
26680 into the input image. It is given by a list of space separated
26681 float values:
26682
26683 output_rect=x\ y\ width\ height
26684
26685 If not given, the output rectangle equals the dimensions of the
26686 input image. The output rectangle is automatically cropped at the
26687 borders of the input image. Negative values are valid for each
26688 component.
26689
26690 output_rect=25\ 25\ 100\ 100
26691
26692 Several filters can be chained for successive processing without GPU-
26693 HOST transfers allowing for fast processing of complex filter chains.
26694 Currently, only filters with zero (generators) or exactly one (filters)
26695 input image and one output image are supported. Also, transition
26696 filters are not yet usable as intended.
26697
26698 Some filters generate output images with additional padding depending
26699 on the respective filter kernel. The padding is automatically removed
26700 to ensure the filter output has the same size as the input image.
26701
26702 For image generators, the size of the output image is determined by the
26703 previous output image of the filter chain or the input image of the
26704 whole filterchain, respectively. The generators do not use the pixel
26705 information of this image to generate their output. However, the
26706 generated output is blended onto this image, resulting in partial or
26707 complete coverage of the output image.
26708
26709 The coreimagesrc video source can be used for generating input images
26710 which are directly fed into the filter chain. By using it, providing
26711 input images by another video source or an input video is not required.
26712
26713 Examples
26714
26715 • List all filters available:
26716
26717 coreimage=list_filters=true
26718
26719 • Use the CIBoxBlur filter with default options to blur an image:
26720
26721 coreimage=filter=CIBoxBlur@default
26722
26723 • Use a filter chain with CISepiaTone at default values and
26724 CIVignetteEffect with its center at 100x100 and a radius of 50
26725 pixels:
26726
26727 coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
26728
26729 • Use nullsrc and CIQRCodeGenerator to create a QR code for the
26730 FFmpeg homepage, given as complete and escaped command-line for
26731 Apple's standard bash shell:
26732
26733 ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
26734
26735 cover_rect
26736 Cover a rectangular object
26737
26738 It accepts the following options:
26739
26740 cover
26741 Filepath of the optional cover image, needs to be in yuv420.
26742
26743 mode
26744 Set covering mode.
26745
26746 It accepts the following values:
26747
26748 cover
26749 cover it by the supplied image
26750
26751 blur
26752 cover it by interpolating the surrounding pixels
26753
26754 Default value is blur.
26755
26756 Examples
26757
26758 • Cover a rectangular object by the supplied image of a given video
26759 using ffmpeg:
26760
26761 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
26762
26763 crop
26764 Crop the input video to given dimensions.
26765
26766 It accepts the following parameters:
26767
26768 w, out_w
26769 The width of the output video. It defaults to "iw". This
26770 expression is evaluated only once during the filter configuration,
26771 or when the w or out_w command is sent.
26772
26773 h, out_h
26774 The height of the output video. It defaults to "ih". This
26775 expression is evaluated only once during the filter configuration,
26776 or when the h or out_h command is sent.
26777
26778 x The horizontal position, in the input video, of the left edge of
26779 the output video. It defaults to "(in_w-out_w)/2". This expression
26780 is evaluated per-frame.
26781
26782 y The vertical position, in the input video, of the top edge of the
26783 output video. It defaults to "(in_h-out_h)/2". This expression is
26784 evaluated per-frame.
26785
26786 keep_aspect
26787 If set to 1 will force the output display aspect ratio to be the
26788 same of the input, by changing the output sample aspect ratio. It
26789 defaults to 0.
26790
26791 exact
26792 Enable exact cropping. If enabled, subsampled videos will be
26793 cropped at exact width/height/x/y as specified and will not be
26794 rounded to nearest smaller value. It defaults to 0.
26795
26796 The out_w, out_h, x, y parameters are expressions containing the
26797 following constants:
26798
26799 x
26800 y The computed values for x and y. They are evaluated for each new
26801 frame.
26802
26803 in_w
26804 in_h
26805 The input width and height.
26806
26807 iw
26808 ih These are the same as in_w and in_h.
26809
26810 out_w
26811 out_h
26812 The output (cropped) width and height.
26813
26814 ow
26815 oh These are the same as out_w and out_h.
26816
26817 a same as iw / ih
26818
26819 sar input sample aspect ratio
26820
26821 dar input display aspect ratio, it is the same as (iw / ih) * sar
26822
26823 hsub
26824 vsub
26825 horizontal and vertical chroma subsample values. For example for
26826 the pixel format "yuv422p" hsub is 2 and vsub is 1.
26827
26828 n The number of the input frame, starting from 0.
26829
26830 pos the position in the file of the input frame, NAN if unknown
26831
26832 t The timestamp expressed in seconds. It's NAN if the input timestamp
26833 is unknown.
26834
26835 The expression for out_w may depend on the value of out_h, and the
26836 expression for out_h may depend on out_w, but they cannot depend on x
26837 and y, as x and y are evaluated after out_w and out_h.
26838
26839 The x and y parameters specify the expressions for the position of the
26840 top-left corner of the output (non-cropped) area. They are evaluated
26841 for each frame. If the evaluated value is not valid, it is approximated
26842 to the nearest valid value.
26843
26844 The expression for x may depend on y, and the expression for y may
26845 depend on x.
26846
26847 Examples
26848
26849 • Crop area with size 100x100 at position (12,34).
26850
26851 crop=100:100:12:34
26852
26853 Using named options, the example above becomes:
26854
26855 crop=w=100:h=100:x=12:y=34
26856
26857 • Crop the central input area with size 100x100:
26858
26859 crop=100:100
26860
26861 • Crop the central input area with size 2/3 of the input video:
26862
26863 crop=2/3*in_w:2/3*in_h
26864
26865 • Crop the input video central square:
26866
26867 crop=out_w=in_h
26868 crop=in_h
26869
26870 • Delimit the rectangle with the top-left corner placed at position
26871 100:100 and the right-bottom corner corresponding to the right-
26872 bottom corner of the input image.
26873
26874 crop=in_w-100:in_h-100:100:100
26875
26876 • Crop 10 pixels from the left and right borders, and 20 pixels from
26877 the top and bottom borders
26878
26879 crop=in_w-2*10:in_h-2*20
26880
26881 • Keep only the bottom right quarter of the input image:
26882
26883 crop=in_w/2:in_h/2:in_w/2:in_h/2
26884
26885 • Crop height for getting Greek harmony:
26886
26887 crop=in_w:1/PHI*in_w
26888
26889 • Apply trembling effect:
26890
26891 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)
26892
26893 • Apply erratic camera effect depending on timestamp:
26894
26895 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)"
26896
26897 • Set x depending on the value of y:
26898
26899 crop=in_w/2:in_h/2:y:10+10*sin(n/10)
26900
26901 Commands
26902
26903 This filter supports the following commands:
26904
26905 w, out_w
26906 h, out_h
26907 x
26908 y Set width/height of the output video and the horizontal/vertical
26909 position in the input video. The command accepts the same syntax
26910 of the corresponding option.
26911
26912 If the specified expression is not valid, it is kept at its current
26913 value.
26914
26915 cropdetect
26916 Auto-detect the crop size.
26917
26918 It calculates the necessary cropping parameters and prints the
26919 recommended parameters via the logging system. The detected dimensions
26920 correspond to the non-black area of the input video.
26921
26922 It accepts the following parameters:
26923
26924 limit
26925 Set higher black value threshold, which can be optionally specified
26926 from nothing (0) to everything (255 for 8-bit based formats). An
26927 intensity value greater to the set value is considered non-black.
26928 It defaults to 24. You can also specify a value between 0.0 and
26929 1.0 which will be scaled depending on the bitdepth of the pixel
26930 format.
26931
26932 round
26933 The value which the width/height should be divisible by. It
26934 defaults to 16. The offset is automatically adjusted to center the
26935 video. Use 2 to get only even dimensions (needed for 4:2:2 video).
26936 16 is best when encoding to most video codecs.
26937
26938 skip
26939 Set the number of initial frames for which evaluation is skipped.
26940 Default is 2. Range is 0 to INT_MAX.
26941
26942 reset_count, reset
26943 Set the counter that determines after how many frames cropdetect
26944 will reset the previously detected largest video area and start
26945 over to detect the current optimal crop area. Default value is 0.
26946
26947 This can be useful when channel logos distort the video area. 0
26948 indicates 'never reset', and returns the largest area encountered
26949 during playback.
26950
26951 cue
26952 Delay video filtering until a given wallclock timestamp. The filter
26953 first passes on preroll amount of frames, then it buffers at most
26954 buffer amount of frames and waits for the cue. After reaching the cue
26955 it forwards the buffered frames and also any subsequent frames coming
26956 in its input.
26957
26958 The filter can be used synchronize the output of multiple ffmpeg
26959 processes for realtime output devices like decklink. By putting the
26960 delay in the filtering chain and pre-buffering frames the process can
26961 pass on data to output almost immediately after the target wallclock
26962 timestamp is reached.
26963
26964 Perfect frame accuracy cannot be guaranteed, but the result is good
26965 enough for some use cases.
26966
26967 cue The cue timestamp expressed in a UNIX timestamp in microseconds.
26968 Default is 0.
26969
26970 preroll
26971 The duration of content to pass on as preroll expressed in seconds.
26972 Default is 0.
26973
26974 buffer
26975 The maximum duration of content to buffer before waiting for the
26976 cue expressed in seconds. Default is 0.
26977
26978 curves
26979 Apply color adjustments using curves.
26980
26981 This filter is similar to the Adobe Photoshop and GIMP curves tools.
26982 Each component (red, green and blue) has its values defined by N key
26983 points tied from each other using a smooth curve. The x-axis represents
26984 the pixel values from the input frame, and the y-axis the new pixel
26985 values to be set for the output frame.
26986
26987 By default, a component curve is defined by the two points (0;0) and
26988 (1;1). This creates a straight line where each original pixel value is
26989 "adjusted" to its own value, which means no change to the image.
26990
26991 The filter allows you to redefine these two points and add some more. A
26992 new curve (using a natural cubic spline interpolation) will be define
26993 to pass smoothly through all these new coordinates. The new defined
26994 points needs to be strictly increasing over the x-axis, and their x and
26995 y values must be in the [0;1] interval. If the computed curves
26996 happened to go outside the vector spaces, the values will be clipped
26997 accordingly.
26998
26999 The filter accepts the following options:
27000
27001 preset
27002 Select one of the available color presets. This option can be used
27003 in addition to the r, g, b parameters; in this case, the later
27004 options takes priority on the preset values. Available presets
27005 are:
27006
27007 none
27008 color_negative
27009 cross_process
27010 darker
27011 increase_contrast
27012 lighter
27013 linear_contrast
27014 medium_contrast
27015 negative
27016 strong_contrast
27017 vintage
27018
27019 Default is "none".
27020
27021 master, m
27022 Set the master key points. These points will define a second pass
27023 mapping. It is sometimes called a "luminance" or "value" mapping.
27024 It can be used with r, g, b or all since it acts like a post-
27025 processing LUT.
27026
27027 red, r
27028 Set the key points for the red component.
27029
27030 green, g
27031 Set the key points for the green component.
27032
27033 blue, b
27034 Set the key points for the blue component.
27035
27036 all Set the key points for all components (not including master). Can
27037 be used in addition to the other key points component options. In
27038 this case, the unset component(s) will fallback on this all
27039 setting.
27040
27041 psfile
27042 Specify a Photoshop curves file (".acv") to import the settings
27043 from.
27044
27045 plot
27046 Save Gnuplot script of the curves in specified file.
27047
27048 To avoid some filtergraph syntax conflicts, each key points list need
27049 to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
27050
27051 Commands
27052
27053 This filter supports same commands as options.
27054
27055 Examples
27056
27057 • Increase slightly the middle level of blue:
27058
27059 curves=blue='0/0 0.5/0.58 1/1'
27060
27061 • Vintage effect:
27062
27063 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'
27064
27065 Here we obtain the following coordinates for each components:
27066
27067 red "(0;0.11) (0.42;0.51) (1;0.95)"
27068
27069 green
27070 "(0;0) (0.50;0.48) (1;1)"
27071
27072 blue
27073 "(0;0.22) (0.49;0.44) (1;0.80)"
27074
27075 • The previous example can also be achieved with the associated
27076 built-in preset:
27077
27078 curves=preset=vintage
27079
27080 • Or simply:
27081
27082 curves=vintage
27083
27084 • Use a Photoshop preset and redefine the points of the green
27085 component:
27086
27087 curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
27088
27089 • Check out the curves of the "cross_process" profile using ffmpeg
27090 and gnuplot:
27091
27092 ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
27093 gnuplot -p /tmp/curves.plt
27094
27095 datascope
27096 Video data analysis filter.
27097
27098 This filter shows hexadecimal pixel values of part of video.
27099
27100 The filter accepts the following options:
27101
27102 size, s
27103 Set output video size.
27104
27105 x Set x offset from where to pick pixels.
27106
27107 y Set y offset from where to pick pixels.
27108
27109 mode
27110 Set scope mode, can be one of the following:
27111
27112 mono
27113 Draw hexadecimal pixel values with white color on black
27114 background.
27115
27116 color
27117 Draw hexadecimal pixel values with input video pixel color on
27118 black background.
27119
27120 color2
27121 Draw hexadecimal pixel values on color background picked from
27122 input video, the text color is picked in such way so its always
27123 visible.
27124
27125 axis
27126 Draw rows and columns numbers on left and top of video.
27127
27128 opacity
27129 Set background opacity.
27130
27131 format
27132 Set display number format. Can be "hex", or "dec". Default is
27133 "hex".
27134
27135 components
27136 Set pixel components to display. By default all pixel components
27137 are displayed.
27138
27139 Commands
27140
27141 This filter supports same commands as options excluding "size" option.
27142
27143 dblur
27144 Apply Directional blur filter.
27145
27146 The filter accepts the following options:
27147
27148 angle
27149 Set angle of directional blur. Default is 45.
27150
27151 radius
27152 Set radius of directional blur. Default is 5.
27153
27154 planes
27155 Set which planes to filter. By default all planes are filtered.
27156
27157 Commands
27158
27159 This filter supports same commands as options. The command accepts the
27160 same syntax of the corresponding option.
27161
27162 If the specified expression is not valid, it is kept at its current
27163 value.
27164
27165 dctdnoiz
27166 Denoise frames using 2D DCT (frequency domain filtering).
27167
27168 This filter is not designed for real time.
27169
27170 The filter accepts the following options:
27171
27172 sigma, s
27173 Set the noise sigma constant.
27174
27175 This sigma defines a hard threshold of "3 * sigma"; every DCT
27176 coefficient (absolute value) below this threshold with be dropped.
27177
27178 If you need a more advanced filtering, see expr.
27179
27180 Default is 0.
27181
27182 overlap
27183 Set number overlapping pixels for each block. Since the filter can
27184 be slow, you may want to reduce this value, at the cost of a less
27185 effective filter and the risk of various artefacts.
27186
27187 If the overlapping value doesn't permit processing the whole input
27188 width or height, a warning will be displayed and according borders
27189 won't be denoised.
27190
27191 Default value is blocksize-1, which is the best possible setting.
27192
27193 expr, e
27194 Set the coefficient factor expression.
27195
27196 For each coefficient of a DCT block, this expression will be
27197 evaluated as a multiplier value for the coefficient.
27198
27199 If this is option is set, the sigma option will be ignored.
27200
27201 The absolute value of the coefficient can be accessed through the c
27202 variable.
27203
27204 n Set the blocksize using the number of bits. "1<<n" defines the
27205 blocksize, which is the width and height of the processed blocks.
27206
27207 The default value is 3 (8x8) and can be raised to 4 for a blocksize
27208 of 16x16. Note that changing this setting has huge consequences on
27209 the speed processing. Also, a larger block size does not
27210 necessarily means a better de-noising.
27211
27212 Examples
27213
27214 Apply a denoise with a sigma of 4.5:
27215
27216 dctdnoiz=4.5
27217
27218 The same operation can be achieved using the expression system:
27219
27220 dctdnoiz=e='gte(c, 4.5*3)'
27221
27222 Violent denoise using a block size of "16x16":
27223
27224 dctdnoiz=15:n=4
27225
27226 deband
27227 Remove banding artifacts from input video. It works by replacing
27228 banded pixels with average value of referenced pixels.
27229
27230 The filter accepts the following options:
27231
27232 1thr
27233 2thr
27234 3thr
27235 4thr
27236 Set banding detection threshold for each plane. Default is 0.02.
27237 Valid range is 0.00003 to 0.5. If difference between current pixel
27238 and reference pixel is less than threshold, it will be considered
27239 as banded.
27240
27241 range, r
27242 Banding detection range in pixels. Default is 16. If positive,
27243 random number in range 0 to set value will be used. If negative,
27244 exact absolute value will be used. The range defines square of
27245 four pixels around current pixel.
27246
27247 direction, d
27248 Set direction in radians from which four pixel will be compared. If
27249 positive, random direction from 0 to set direction will be picked.
27250 If negative, exact of absolute value will be picked. For example
27251 direction 0, -PI or -2*PI radians will pick only pixels on same row
27252 and -PI/2 will pick only pixels on same column.
27253
27254 blur, b
27255 If enabled, current pixel is compared with average value of all
27256 four surrounding pixels. The default is enabled. If disabled
27257 current pixel is compared with all four surrounding pixels. The
27258 pixel is considered banded if only all four differences with
27259 surrounding pixels are less than threshold.
27260
27261 coupling, c
27262 If enabled, current pixel is changed if and only if all pixel
27263 components are banded, e.g. banding detection threshold is
27264 triggered for all color components. The default is disabled.
27265
27266 Commands
27267
27268 This filter supports the all above options as commands.
27269
27270 deblock
27271 Remove blocking artifacts from input video.
27272
27273 The filter accepts the following options:
27274
27275 filter
27276 Set filter type, can be weak or strong. Default is strong. This
27277 controls what kind of deblocking is applied.
27278
27279 block
27280 Set size of block, allowed range is from 4 to 512. Default is 8.
27281
27282 alpha
27283 beta
27284 gamma
27285 delta
27286 Set blocking detection thresholds. Allowed range is 0 to 1.
27287 Defaults are: 0.098 for alpha and 0.05 for the rest. Using higher
27288 threshold gives more deblocking strength. Setting alpha controls
27289 threshold detection at exact edge of block. Remaining options
27290 controls threshold detection near the edge. Each one for
27291 below/above or left/right. Setting any of those to 0 disables
27292 deblocking.
27293
27294 planes
27295 Set planes to filter. Default is to filter all available planes.
27296
27297 Examples
27298
27299 • Deblock using weak filter and block size of 4 pixels.
27300
27301 deblock=filter=weak:block=4
27302
27303 • Deblock using strong filter, block size of 4 pixels and custom
27304 thresholds for deblocking more edges.
27305
27306 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
27307
27308 • Similar as above, but filter only first plane.
27309
27310 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
27311
27312 • Similar as above, but filter only second and third plane.
27313
27314 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
27315
27316 Commands
27317
27318 This filter supports the all above options as commands.
27319
27320 decimate
27321 Drop duplicated frames at regular intervals.
27322
27323 The filter accepts the following options:
27324
27325 cycle
27326 Set the number of frames from which one will be dropped. Setting
27327 this to N means one frame in every batch of N frames will be
27328 dropped. Default is 5.
27329
27330 dupthresh
27331 Set the threshold for duplicate detection. If the difference metric
27332 for a frame is less than or equal to this value, then it is
27333 declared as duplicate. Default is 1.1
27334
27335 scthresh
27336 Set scene change threshold. Default is 15.
27337
27338 blockx
27339 blocky
27340 Set the size of the x and y-axis blocks used during metric
27341 calculations. Larger blocks give better noise suppression, but
27342 also give worse detection of small movements. Must be a power of
27343 two. Default is 32.
27344
27345 ppsrc
27346 Mark main input as a pre-processed input and activate clean source
27347 input stream. This allows the input to be pre-processed with
27348 various filters to help the metrics calculation while keeping the
27349 frame selection lossless. When set to 1, the first stream is for
27350 the pre-processed input, and the second stream is the clean source
27351 from where the kept frames are chosen. Default is 0.
27352
27353 chroma
27354 Set whether or not chroma is considered in the metric calculations.
27355 Default is 1.
27356
27357 deconvolve
27358 Apply 2D deconvolution of video stream in frequency domain using second
27359 stream as impulse.
27360
27361 The filter accepts the following options:
27362
27363 planes
27364 Set which planes to process.
27365
27366 impulse
27367 Set which impulse video frames will be processed, can be first or
27368 all. Default is all.
27369
27370 noise
27371 Set noise when doing divisions. Default is 0.0000001. Useful when
27372 width and height are not same and not power of 2 or if stream prior
27373 to convolving had noise.
27374
27375 The "deconvolve" filter also supports the framesync options.
27376
27377 dedot
27378 Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
27379 video.
27380
27381 It accepts the following options:
27382
27383 m Set mode of operation. Can be combination of dotcrawl for cross-
27384 luminance reduction and/or rainbows for cross-color reduction.
27385
27386 lt Set spatial luma threshold. Lower values increases reduction of
27387 cross-luminance.
27388
27389 tl Set tolerance for temporal luma. Higher values increases reduction
27390 of cross-luminance.
27391
27392 tc Set tolerance for chroma temporal variation. Higher values
27393 increases reduction of cross-color.
27394
27395 ct Set temporal chroma threshold. Lower values increases reduction of
27396 cross-color.
27397
27398 deflate
27399 Apply deflate effect to the video.
27400
27401 This filter replaces the pixel by the local(3x3) average by taking into
27402 account only values lower than the pixel.
27403
27404 It accepts the following options:
27405
27406 threshold0
27407 threshold1
27408 threshold2
27409 threshold3
27410 Limit the maximum change for each plane, default is 65535. If 0,
27411 plane will remain unchanged.
27412
27413 Commands
27414
27415 This filter supports the all above options as commands.
27416
27417 deflicker
27418 Remove temporal frame luminance variations.
27419
27420 It accepts the following options:
27421
27422 size, s
27423 Set moving-average filter size in frames. Default is 5. Allowed
27424 range is 2 - 129.
27425
27426 mode, m
27427 Set averaging mode to smooth temporal luminance variations.
27428
27429 Available values are:
27430
27431 am Arithmetic mean
27432
27433 gm Geometric mean
27434
27435 hm Harmonic mean
27436
27437 qm Quadratic mean
27438
27439 cm Cubic mean
27440
27441 pm Power mean
27442
27443 median
27444 Median
27445
27446 bypass
27447 Do not actually modify frame. Useful when one only wants metadata.
27448
27449 dejudder
27450 Remove judder produced by partially interlaced telecined content.
27451
27452 Judder can be introduced, for instance, by pullup filter. If the
27453 original source was partially telecined content then the output of
27454 "pullup,dejudder" will have a variable frame rate. May change the
27455 recorded frame rate of the container. Aside from that change, this
27456 filter will not affect constant frame rate video.
27457
27458 The option available in this filter is:
27459
27460 cycle
27461 Specify the length of the window over which the judder repeats.
27462
27463 Accepts any integer greater than 1. Useful values are:
27464
27465 4 If the original was telecined from 24 to 30 fps (Film to NTSC).
27466
27467 5 If the original was telecined from 25 to 30 fps (PAL to NTSC).
27468
27469 20 If a mixture of the two.
27470
27471 The default is 4.
27472
27473 delogo
27474 Suppress a TV station logo by a simple interpolation of the surrounding
27475 pixels. Just set a rectangle covering the logo and watch it disappear
27476 (and sometimes something even uglier appear - your mileage may vary).
27477
27478 It accepts the following parameters:
27479
27480 x
27481 y Specify the top left corner coordinates of the logo. They must be
27482 specified.
27483
27484 w
27485 h Specify the width and height of the logo to clear. They must be
27486 specified.
27487
27488 show
27489 When set to 1, a green rectangle is drawn on the screen to simplify
27490 finding the right x, y, w, and h parameters. The default value is
27491 0.
27492
27493 The rectangle is drawn on the outermost pixels which will be
27494 (partly) replaced with interpolated values. The values of the next
27495 pixels immediately outside this rectangle in each direction will be
27496 used to compute the interpolated pixel values inside the rectangle.
27497
27498 Examples
27499
27500 • Set a rectangle covering the area with top left corner coordinates
27501 0,0 and size 100x77:
27502
27503 delogo=x=0:y=0:w=100:h=77
27504
27505 derain
27506 Remove the rain in the input image/video by applying the derain methods
27507 based on convolutional neural networks. Supported models:
27508
27509 • Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
27510 See
27511 <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
27512
27513 Training as well as model generation scripts are provided in the
27514 repository at <https://github.com/XueweiMeng/derain_filter.git>.
27515
27516 Native model files (.model) can be generated from TensorFlow model
27517 files (.pb) by using tools/python/convert.py
27518
27519 The filter accepts the following options:
27520
27521 filter_type
27522 Specify which filter to use. This option accepts the following
27523 values:
27524
27525 derain
27526 Derain filter. To conduct derain filter, you need to use a
27527 derain model.
27528
27529 dehaze
27530 Dehaze filter. To conduct dehaze filter, you need to use a
27531 dehaze model.
27532
27533 Default value is derain.
27534
27535 dnn_backend
27536 Specify which DNN backend to use for model loading and execution.
27537 This option accepts the following values:
27538
27539 native
27540 Native implementation of DNN loading and execution.
27541
27542 tensorflow
27543 TensorFlow backend. To enable this backend you need to install
27544 the TensorFlow for C library (see
27545 <https://www.tensorflow.org/install/lang_c>) and configure
27546 FFmpeg with "--enable-libtensorflow"
27547
27548 Default value is native.
27549
27550 model
27551 Set path to model file specifying network architecture and its
27552 parameters. Note that different backends use different file
27553 formats. TensorFlow and native backend can load files for only its
27554 format.
27555
27556 To get full functionality (such as async execution), please use the
27557 dnn_processing filter.
27558
27559 deshake
27560 Attempt to fix small changes in horizontal and/or vertical shift. This
27561 filter helps remove camera shake from hand-holding a camera, bumping a
27562 tripod, moving on a vehicle, etc.
27563
27564 The filter accepts the following options:
27565
27566 x
27567 y
27568 w
27569 h Specify a rectangular area where to limit the search for motion
27570 vectors. If desired the search for motion vectors can be limited
27571 to a rectangular area of the frame defined by its top left corner,
27572 width and height. These parameters have the same meaning as the
27573 drawbox filter which can be used to visualise the position of the
27574 bounding box.
27575
27576 This is useful when simultaneous movement of subjects within the
27577 frame might be confused for camera motion by the motion vector
27578 search.
27579
27580 If any or all of x, y, w and h are set to -1 then the full frame is
27581 used. This allows later options to be set without specifying the
27582 bounding box for the motion vector search.
27583
27584 Default - search the whole frame.
27585
27586 rx
27587 ry Specify the maximum extent of movement in x and y directions in the
27588 range 0-64 pixels. Default 16.
27589
27590 edge
27591 Specify how to generate pixels to fill blanks at the edge of the
27592 frame. Available values are:
27593
27594 blank, 0
27595 Fill zeroes at blank locations
27596
27597 original, 1
27598 Original image at blank locations
27599
27600 clamp, 2
27601 Extruded edge value at blank locations
27602
27603 mirror, 3
27604 Mirrored edge at blank locations
27605
27606 Default value is mirror.
27607
27608 blocksize
27609 Specify the blocksize to use for motion search. Range 4-128 pixels,
27610 default 8.
27611
27612 contrast
27613 Specify the contrast threshold for blocks. Only blocks with more
27614 than the specified contrast (difference between darkest and
27615 lightest pixels) will be considered. Range 1-255, default 125.
27616
27617 search
27618 Specify the search strategy. Available values are:
27619
27620 exhaustive, 0
27621 Set exhaustive search
27622
27623 less, 1
27624 Set less exhaustive search.
27625
27626 Default value is exhaustive.
27627
27628 filename
27629 If set then a detailed log of the motion search is written to the
27630 specified file.
27631
27632 despill
27633 Remove unwanted contamination of foreground colors, caused by reflected
27634 color of greenscreen or bluescreen.
27635
27636 This filter accepts the following options:
27637
27638 type
27639 Set what type of despill to use.
27640
27641 mix Set how spillmap will be generated.
27642
27643 expand
27644 Set how much to get rid of still remaining spill.
27645
27646 red Controls amount of red in spill area.
27647
27648 green
27649 Controls amount of green in spill area. Should be -1 for
27650 greenscreen.
27651
27652 blue
27653 Controls amount of blue in spill area. Should be -1 for
27654 bluescreen.
27655
27656 brightness
27657 Controls brightness of spill area, preserving colors.
27658
27659 alpha
27660 Modify alpha from generated spillmap.
27661
27662 Commands
27663
27664 This filter supports the all above options as commands.
27665
27666 detelecine
27667 Apply an exact inverse of the telecine operation. It requires a
27668 predefined pattern specified using the pattern option which must be the
27669 same as that passed to the telecine filter.
27670
27671 This filter accepts the following options:
27672
27673 first_field
27674 top, t
27675 top field first
27676
27677 bottom, b
27678 bottom field first The default value is "top".
27679
27680 pattern
27681 A string of numbers representing the pulldown pattern you wish to
27682 apply. The default value is 23.
27683
27684 start_frame
27685 A number representing position of the first frame with respect to
27686 the telecine pattern. This is to be used if the stream is cut. The
27687 default value is 0.
27688
27689 dilation
27690 Apply dilation effect to the video.
27691
27692 This filter replaces the pixel by the local(3x3) maximum.
27693
27694 It accepts the following options:
27695
27696 threshold0
27697 threshold1
27698 threshold2
27699 threshold3
27700 Limit the maximum change for each plane, default is 65535. If 0,
27701 plane will remain unchanged.
27702
27703 coordinates
27704 Flag which specifies the pixel to refer to. Default is 255 i.e. all
27705 eight pixels are used.
27706
27707 Flags to local 3x3 coordinates maps like this:
27708
27709 1 2 3
27710 4 5
27711 6 7 8
27712
27713 Commands
27714
27715 This filter supports the all above options as commands.
27716
27717 displace
27718 Displace pixels as indicated by second and third input stream.
27719
27720 It takes three input streams and outputs one stream, the first input is
27721 the source, and second and third input are displacement maps.
27722
27723 The second input specifies how much to displace pixels along the
27724 x-axis, while the third input specifies how much to displace pixels
27725 along the y-axis. If one of displacement map streams terminates, last
27726 frame from that displacement map will be used.
27727
27728 Note that once generated, displacements maps can be reused over and
27729 over again.
27730
27731 A description of the accepted options follows.
27732
27733 edge
27734 Set displace behavior for pixels that are out of range.
27735
27736 Available values are:
27737
27738 blank
27739 Missing pixels are replaced by black pixels.
27740
27741 smear
27742 Adjacent pixels will spread out to replace missing pixels.
27743
27744 wrap
27745 Out of range pixels are wrapped so they point to pixels of
27746 other side.
27747
27748 mirror
27749 Out of range pixels will be replaced with mirrored pixels.
27750
27751 Default is smear.
27752
27753 Examples
27754
27755 • Add ripple effect to rgb input of video size hd720:
27756
27757 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
27758
27759 • Add wave effect to rgb input of video size hd720:
27760
27761 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
27762
27763 dnn_classify
27764 Do classification with deep neural networks based on bounding boxes.
27765
27766 The filter accepts the following options:
27767
27768 dnn_backend
27769 Specify which DNN backend to use for model loading and execution.
27770 This option accepts only openvino now, tensorflow backends will be
27771 added.
27772
27773 model
27774 Set path to model file specifying network architecture and its
27775 parameters. Note that different backends use different file
27776 formats.
27777
27778 input
27779 Set the input name of the dnn network.
27780
27781 output
27782 Set the output name of the dnn network.
27783
27784 confidence
27785 Set the confidence threshold (default: 0.5).
27786
27787 labels
27788 Set path to label file specifying the mapping between label id and
27789 name. Each label name is written in one line, tailing spaces and
27790 empty lines are skipped. The first line is the name of label id 0,
27791 and the second line is the name of label id 1, etc. The label id
27792 is considered as name if the label file is not provided.
27793
27794 backend_configs
27795 Set the configs to be passed into backend
27796
27797 For tensorflow backend, you can set its configs with sess_config
27798 options, please use tools/python/tf_sess_config.py to get the
27799 configs for your system.
27800
27801 dnn_detect
27802 Do object detection with deep neural networks.
27803
27804 The filter accepts the following options:
27805
27806 dnn_backend
27807 Specify which DNN backend to use for model loading and execution.
27808 This option accepts only openvino now, tensorflow backends will be
27809 added.
27810
27811 model
27812 Set path to model file specifying network architecture and its
27813 parameters. Note that different backends use different file
27814 formats.
27815
27816 input
27817 Set the input name of the dnn network.
27818
27819 output
27820 Set the output name of the dnn network.
27821
27822 confidence
27823 Set the confidence threshold (default: 0.5).
27824
27825 labels
27826 Set path to label file specifying the mapping between label id and
27827 name. Each label name is written in one line, tailing spaces and
27828 empty lines are skipped. The first line is the name of label id 0
27829 (usually it is 'background'), and the second line is the name of
27830 label id 1, etc. The label id is considered as name if the label
27831 file is not provided.
27832
27833 backend_configs
27834 Set the configs to be passed into backend. To use async execution,
27835 set async (default: set). Roll back to sync execution if the
27836 backend does not support async.
27837
27838 dnn_processing
27839 Do image processing with deep neural networks. It works together with
27840 another filter which converts the pixel format of the Frame to what the
27841 dnn network requires.
27842
27843 The filter accepts the following options:
27844
27845 dnn_backend
27846 Specify which DNN backend to use for model loading and execution.
27847 This option accepts the following values:
27848
27849 native
27850 Native implementation of DNN loading and execution.
27851
27852 tensorflow
27853 TensorFlow backend. To enable this backend you need to install
27854 the TensorFlow for C library (see
27855 <https://www.tensorflow.org/install/lang_c>) and configure
27856 FFmpeg with "--enable-libtensorflow"
27857
27858 openvino
27859 OpenVINO backend. To enable this backend you need to build and
27860 install the OpenVINO for C library (see
27861 <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
27862 and configure FFmpeg with "--enable-libopenvino"
27863 (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
27864 the header files and libraries are not installed into system
27865 path)
27866
27867 Default value is native.
27868
27869 model
27870 Set path to model file specifying network architecture and its
27871 parameters. Note that different backends use different file
27872 formats. TensorFlow, OpenVINO and native backend can load files for
27873 only its format.
27874
27875 Native model file (.model) can be generated from TensorFlow model
27876 file (.pb) by using tools/python/convert.py
27877
27878 input
27879 Set the input name of the dnn network.
27880
27881 output
27882 Set the output name of the dnn network.
27883
27884 backend_configs
27885 Set the configs to be passed into backend. To use async execution,
27886 set async (default: set). Roll back to sync execution if the
27887 backend does not support async.
27888
27889 For tensorflow backend, you can set its configs with sess_config
27890 options, please use tools/python/tf_sess_config.py to get the
27891 configs of TensorFlow backend for your system.
27892
27893 Examples
27894
27895 • Remove rain in rgb24 frame with can.pb (see derain filter):
27896
27897 ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
27898
27899 • Halve the pixel value of the frame with format gray32f:
27900
27901 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
27902
27903 • Handle the Y channel with srcnn.pb (see sr filter) for frame with
27904 yuv420p (planar YUV formats supported):
27905
27906 ./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
27907
27908 • Handle the Y channel with espcn.pb (see sr filter), which changes
27909 frame size, for format yuv420p (planar YUV formats supported),
27910 please use tools/python/tf_sess_config.py to get the configs of
27911 TensorFlow backend for your system.
27912
27913 ./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
27914
27915 drawbox
27916 Draw a colored box on the input image.
27917
27918 It accepts the following parameters:
27919
27920 x
27921 y The expressions which specify the top left corner coordinates of
27922 the box. It defaults to 0.
27923
27924 width, w
27925 height, h
27926 The expressions which specify the width and height of the box; if 0
27927 they are interpreted as the input width and height. It defaults to
27928 0.
27929
27930 color, c
27931 Specify the color of the box to write. For the general syntax of
27932 this option, check the "Color" section in the ffmpeg-utils manual.
27933 If the special value "invert" is used, the box edge color is the
27934 same as the video with inverted luma.
27935
27936 thickness, t
27937 The expression which sets the thickness of the box edge. A value
27938 of "fill" will create a filled box. Default value is 3.
27939
27940 See below for the list of accepted constants.
27941
27942 replace
27943 Applicable if the input has alpha. With value 1, the pixels of the
27944 painted box will overwrite the video's color and alpha pixels.
27945 Default is 0, which composites the box onto the input, leaving the
27946 video's alpha intact.
27947
27948 The parameters for x, y, w and h and t are expressions containing the
27949 following constants:
27950
27951 dar The input display aspect ratio, it is the same as (w / h) * sar.
27952
27953 hsub
27954 vsub
27955 horizontal and vertical chroma subsample values. For example for
27956 the pixel format "yuv422p" hsub is 2 and vsub is 1.
27957
27958 in_h, ih
27959 in_w, iw
27960 The input width and height.
27961
27962 sar The input sample aspect ratio.
27963
27964 x
27965 y The x and y offset coordinates where the box is drawn.
27966
27967 w
27968 h The width and height of the drawn box.
27969
27970 box_source
27971 Box source can be set as side_data_detection_bboxes if you want to
27972 use box data in detection bboxes of side data.
27973
27974 If box_source is set, the x, y, width and height will be ignored
27975 and still use box data in detection bboxes of side data. So please
27976 do not use this parameter if you were not sure about the box
27977 source.
27978
27979 t The thickness of the drawn box.
27980
27981 These constants allow the x, y, w, h and t expressions to refer to
27982 each other, so you may for example specify "y=x/dar" or "h=w/dar".
27983
27984 Examples
27985
27986 • Draw a black box around the edge of the input image:
27987
27988 drawbox
27989
27990 • Draw a box with color red and an opacity of 50%:
27991
27992 drawbox=10:20:200:60:red@0.5
27993
27994 The previous example can be specified as:
27995
27996 drawbox=x=10:y=20:w=200:h=60:color=red@0.5
27997
27998 • Fill the box with pink color:
27999
28000 drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
28001
28002 • Draw a 2-pixel red 2.40:1 mask:
28003
28004 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
28005
28006 Commands
28007
28008 This filter supports same commands as options. The command accepts the
28009 same syntax of the corresponding option.
28010
28011 If the specified expression is not valid, it is kept at its current
28012 value.
28013
28014 drawgraph
28015 Draw a graph using input video metadata.
28016
28017 It accepts the following parameters:
28018
28019 m1 Set 1st frame metadata key from which metadata values will be used
28020 to draw a graph.
28021
28022 fg1 Set 1st foreground color expression.
28023
28024 m2 Set 2nd frame metadata key from which metadata values will be used
28025 to draw a graph.
28026
28027 fg2 Set 2nd foreground color expression.
28028
28029 m3 Set 3rd frame metadata key from which metadata values will be used
28030 to draw a graph.
28031
28032 fg3 Set 3rd foreground color expression.
28033
28034 m4 Set 4th frame metadata key from which metadata values will be used
28035 to draw a graph.
28036
28037 fg4 Set 4th foreground color expression.
28038
28039 min Set minimal value of metadata value.
28040
28041 max Set maximal value of metadata value.
28042
28043 bg Set graph background color. Default is white.
28044
28045 mode
28046 Set graph mode.
28047
28048 Available values for mode is:
28049
28050 bar
28051 dot
28052 line
28053
28054 Default is "line".
28055
28056 slide
28057 Set slide mode.
28058
28059 Available values for slide is:
28060
28061 frame
28062 Draw new frame when right border is reached.
28063
28064 replace
28065 Replace old columns with new ones.
28066
28067 scroll
28068 Scroll from right to left.
28069
28070 rscroll
28071 Scroll from left to right.
28072
28073 picture
28074 Draw single picture.
28075
28076 Default is "frame".
28077
28078 size
28079 Set size of graph video. For the syntax of this option, check the
28080 "Video size" section in the ffmpeg-utils manual. The default value
28081 is "900x256".
28082
28083 rate, r
28084 Set the output frame rate. Default value is 25.
28085
28086 The foreground color expressions can use the following variables:
28087
28088 MIN Minimal value of metadata value.
28089
28090 MAX Maximal value of metadata value.
28091
28092 VAL Current metadata key value.
28093
28094 The color is defined as 0xAABBGGRR.
28095
28096 Example using metadata from signalstats filter:
28097
28098 signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
28099
28100 Example using metadata from ebur128 filter:
28101
28102 ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
28103
28104 drawgrid
28105 Draw a grid on the input image.
28106
28107 It accepts the following parameters:
28108
28109 x
28110 y The expressions which specify the coordinates of some point of grid
28111 intersection (meant to configure offset). Both default to 0.
28112
28113 width, w
28114 height, h
28115 The expressions which specify the width and height of the grid
28116 cell, if 0 they are interpreted as the input width and height,
28117 respectively, minus "thickness", so image gets framed. Default to
28118 0.
28119
28120 color, c
28121 Specify the color of the grid. For the general syntax of this
28122 option, check the "Color" section in the ffmpeg-utils manual. If
28123 the special value "invert" is used, the grid color is the same as
28124 the video with inverted luma.
28125
28126 thickness, t
28127 The expression which sets the thickness of the grid line. Default
28128 value is 1.
28129
28130 See below for the list of accepted constants.
28131
28132 replace
28133 Applicable if the input has alpha. With 1 the pixels of the painted
28134 grid will overwrite the video's color and alpha pixels. Default is
28135 0, which composites the grid onto the input, leaving the video's
28136 alpha intact.
28137
28138 The parameters for x, y, w and h and t are expressions containing the
28139 following constants:
28140
28141 dar The input display aspect ratio, it is the same as (w / h) * sar.
28142
28143 hsub
28144 vsub
28145 horizontal and vertical chroma subsample values. For example for
28146 the pixel format "yuv422p" hsub is 2 and vsub is 1.
28147
28148 in_h, ih
28149 in_w, iw
28150 The input grid cell width and height.
28151
28152 sar The input sample aspect ratio.
28153
28154 x
28155 y The x and y coordinates of some point of grid intersection (meant
28156 to configure offset).
28157
28158 w
28159 h The width and height of the drawn cell.
28160
28161 t The thickness of the drawn cell.
28162
28163 These constants allow the x, y, w, h and t expressions to refer to
28164 each other, so you may for example specify "y=x/dar" or "h=w/dar".
28165
28166 Examples
28167
28168 • Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
28169 color red and an opacity of 50%:
28170
28171 drawgrid=width=100:height=100:thickness=2:color=red@0.5
28172
28173 • Draw a white 3x3 grid with an opacity of 50%:
28174
28175 drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
28176
28177 Commands
28178
28179 This filter supports same commands as options. The command accepts the
28180 same syntax of the corresponding option.
28181
28182 If the specified expression is not valid, it is kept at its current
28183 value.
28184
28185 drawtext
28186 Draw a text string or text from a specified file on top of a video,
28187 using the libfreetype library.
28188
28189 To enable compilation of this filter, you need to configure FFmpeg with
28190 "--enable-libfreetype". To enable default font fallback and the font
28191 option you need to configure FFmpeg with "--enable-libfontconfig". To
28192 enable the text_shaping option, you need to configure FFmpeg with
28193 "--enable-libfribidi".
28194
28195 Syntax
28196
28197 It accepts the following parameters:
28198
28199 box Used to draw a box around text using the background color. The
28200 value must be either 1 (enable) or 0 (disable). The default value
28201 of box is 0.
28202
28203 boxborderw
28204 Set the width of the border to be drawn around the box using
28205 boxcolor. The default value of boxborderw is 0.
28206
28207 boxcolor
28208 The color to be used for drawing box around text. For the syntax of
28209 this option, check the "Color" section in the ffmpeg-utils manual.
28210
28211 The default value of boxcolor is "white".
28212
28213 line_spacing
28214 Set the line spacing in pixels of the border to be drawn around the
28215 box using box. The default value of line_spacing is 0.
28216
28217 borderw
28218 Set the width of the border to be drawn around the text using
28219 bordercolor. The default value of borderw is 0.
28220
28221 bordercolor
28222 Set the color to be used for drawing border around text. For the
28223 syntax of this option, check the "Color" section in the ffmpeg-
28224 utils manual.
28225
28226 The default value of bordercolor is "black".
28227
28228 expansion
28229 Select how the text is expanded. Can be either "none", "strftime"
28230 (deprecated) or "normal" (default). See the drawtext_expansion,
28231 Text expansion section below for details.
28232
28233 basetime
28234 Set a start time for the count. Value is in microseconds. Only
28235 applied in the deprecated strftime expansion mode. To emulate in
28236 normal expansion mode use the "pts" function, supplying the start
28237 time (in seconds) as the second argument.
28238
28239 fix_bounds
28240 If true, check and fix text coords to avoid clipping.
28241
28242 fontcolor
28243 The color to be used for drawing fonts. For the syntax of this
28244 option, check the "Color" section in the ffmpeg-utils manual.
28245
28246 The default value of fontcolor is "black".
28247
28248 fontcolor_expr
28249 String which is expanded the same way as text to obtain dynamic
28250 fontcolor value. By default this option has empty value and is not
28251 processed. When this option is set, it overrides fontcolor option.
28252
28253 font
28254 The font family to be used for drawing text. By default Sans.
28255
28256 fontfile
28257 The font file to be used for drawing text. The path must be
28258 included. This parameter is mandatory if the fontconfig support is
28259 disabled.
28260
28261 alpha
28262 Draw the text applying alpha blending. The value can be a number
28263 between 0.0 and 1.0. The expression accepts the same variables x,
28264 y as well. The default value is 1. Please see fontcolor_expr.
28265
28266 fontsize
28267 The font size to be used for drawing text. The default value of
28268 fontsize is 16.
28269
28270 text_shaping
28271 If set to 1, attempt to shape the text (for example, reverse the
28272 order of right-to-left text and join Arabic characters) before
28273 drawing it. Otherwise, just draw the text exactly as given. By
28274 default 1 (if supported).
28275
28276 ft_load_flags
28277 The flags to be used for loading the fonts.
28278
28279 The flags map the corresponding flags supported by libfreetype, and
28280 are a combination of the following values:
28281
28282 default
28283 no_scale
28284 no_hinting
28285 render
28286 no_bitmap
28287 vertical_layout
28288 force_autohint
28289 crop_bitmap
28290 pedantic
28291 ignore_global_advance_width
28292 no_recurse
28293 ignore_transform
28294 monochrome
28295 linear_design
28296 no_autohint
28297
28298 Default value is "default".
28299
28300 For more information consult the documentation for the FT_LOAD_*
28301 libfreetype flags.
28302
28303 shadowcolor
28304 The color to be used for drawing a shadow behind the drawn text.
28305 For the syntax of this option, check the "Color" section in the
28306 ffmpeg-utils manual.
28307
28308 The default value of shadowcolor is "black".
28309
28310 shadowx
28311 shadowy
28312 The x and y offsets for the text shadow position with respect to
28313 the position of the text. They can be either positive or negative
28314 values. The default value for both is "0".
28315
28316 start_number
28317 The starting frame number for the n/frame_num variable. The default
28318 value is "0".
28319
28320 tabsize
28321 The size in number of spaces to use for rendering the tab. Default
28322 value is 4.
28323
28324 timecode
28325 Set the initial timecode representation in "hh:mm:ss[:;.]ff"
28326 format. It can be used with or without text parameter.
28327 timecode_rate option must be specified.
28328
28329 timecode_rate, rate, r
28330 Set the timecode frame rate (timecode only). Value will be rounded
28331 to nearest integer. Minimum value is "1". Drop-frame timecode is
28332 supported for frame rates 30 & 60.
28333
28334 tc24hmax
28335 If set to 1, the output of the timecode option will wrap around at
28336 24 hours. Default is 0 (disabled).
28337
28338 text
28339 The text string to be drawn. The text must be a sequence of UTF-8
28340 encoded characters. This parameter is mandatory if no file is
28341 specified with the parameter textfile.
28342
28343 textfile
28344 A text file containing text to be drawn. The text must be a
28345 sequence of UTF-8 encoded characters.
28346
28347 This parameter is mandatory if no text string is specified with the
28348 parameter text.
28349
28350 If both text and textfile are specified, an error is thrown.
28351
28352 text_source
28353 Text source should be set as side_data_detection_bboxes if you want
28354 to use text data in detection bboxes of side data.
28355
28356 If text source is set, text and textfile will be ignored and still
28357 use text data in detection bboxes of side data. So please do not
28358 use this parameter if you are not sure about the text source.
28359
28360 reload
28361 The textfile will be reloaded at specified frame interval. Be sure
28362 to update textfile atomically, or it may be read partially, or even
28363 fail. Range is 0 to INT_MAX. Default is 0.
28364
28365 x
28366 y The expressions which specify the offsets where text will be drawn
28367 within the video frame. They are relative to the top/left border of
28368 the output image.
28369
28370 The default value of x and y is "0".
28371
28372 See below for the list of accepted constants and functions.
28373
28374 The parameters for x and y are expressions containing the following
28375 constants and functions:
28376
28377 dar input display aspect ratio, it is the same as (w / h) * sar
28378
28379 hsub
28380 vsub
28381 horizontal and vertical chroma subsample values. For example for
28382 the pixel format "yuv422p" hsub is 2 and vsub is 1.
28383
28384 line_h, lh
28385 the height of each text line
28386
28387 main_h, h, H
28388 the input height
28389
28390 main_w, w, W
28391 the input width
28392
28393 max_glyph_a, ascent
28394 the maximum distance from the baseline to the highest/upper grid
28395 coordinate used to place a glyph outline point, for all the
28396 rendered glyphs. It is a positive value, due to the grid's
28397 orientation with the Y axis upwards.
28398
28399 max_glyph_d, descent
28400 the maximum distance from the baseline to the lowest grid
28401 coordinate used to place a glyph outline point, for all the
28402 rendered glyphs. This is a negative value, due to the grid's
28403 orientation, with the Y axis upwards.
28404
28405 max_glyph_h
28406 maximum glyph height, that is the maximum height for all the glyphs
28407 contained in the rendered text, it is equivalent to ascent -
28408 descent.
28409
28410 max_glyph_w
28411 maximum glyph width, that is the maximum width for all the glyphs
28412 contained in the rendered text
28413
28414 n the number of input frame, starting from 0
28415
28416 rand(min, max)
28417 return a random number included between min and max
28418
28419 sar The input sample aspect ratio.
28420
28421 t timestamp expressed in seconds, NAN if the input timestamp is
28422 unknown
28423
28424 text_h, th
28425 the height of the rendered text
28426
28427 text_w, tw
28428 the width of the rendered text
28429
28430 x
28431 y the x and y offset coordinates where the text is drawn.
28432
28433 These parameters allow the x and y expressions to refer to each
28434 other, so you can for example specify "y=x/dar".
28435
28436 pict_type
28437 A one character description of the current frame's picture type.
28438
28439 pkt_pos
28440 The current packet's position in the input file or stream (in
28441 bytes, from the start of the input). A value of -1 indicates this
28442 info is not available.
28443
28444 pkt_duration
28445 The current packet's duration, in seconds.
28446
28447 pkt_size
28448 The current packet's size (in bytes).
28449
28450 Text expansion
28451
28452 If expansion is set to "strftime", the filter recognizes strftime()
28453 sequences in the provided text and expands them accordingly. Check the
28454 documentation of strftime(). This feature is deprecated.
28455
28456 If expansion is set to "none", the text is printed verbatim.
28457
28458 If expansion is set to "normal" (which is the default), the following
28459 expansion mechanism is used.
28460
28461 The backslash character \, followed by any character, always expands to
28462 the second character.
28463
28464 Sequences of the form "%{...}" are expanded. The text between the
28465 braces is a function name, possibly followed by arguments separated by
28466 ':'. If the arguments contain special characters or delimiters (':' or
28467 '}'), they should be escaped.
28468
28469 Note that they probably must also be escaped as the value for the text
28470 option in the filter argument string and as the filter argument in the
28471 filtergraph description, and possibly also for the shell, that makes up
28472 to four levels of escaping; using a text file avoids these problems.
28473
28474 The following functions are available:
28475
28476 expr, e
28477 The expression evaluation result.
28478
28479 It must take one argument specifying the expression to be
28480 evaluated, which accepts the same constants and functions as the x
28481 and y values. Note that not all constants should be used, for
28482 example the text size is not known when evaluating the expression,
28483 so the constants text_w and text_h will have an undefined value.
28484
28485 expr_int_format, eif
28486 Evaluate the expression's value and output as formatted integer.
28487
28488 The first argument is the expression to be evaluated, just as for
28489 the expr function. The second argument specifies the output
28490 format. Allowed values are x, X, d and u. They are treated exactly
28491 as in the "printf" function. The third parameter is optional and
28492 sets the number of positions taken by the output. It can be used
28493 to add padding with zeros from the left.
28494
28495 gmtime
28496 The time at which the filter is running, expressed in UTC. It can
28497 accept an argument: a strftime() format string. The format string
28498 is extended to support the variable %[1-6]N which prints fractions
28499 of the second with optionally specified number of digits.
28500
28501 localtime
28502 The time at which the filter is running, expressed in the local
28503 time zone. It can accept an argument: a strftime() format string.
28504 The format string is extended to support the variable %[1-6]N which
28505 prints fractions of the second with optionally specified number of
28506 digits.
28507
28508 metadata
28509 Frame metadata. Takes one or two arguments.
28510
28511 The first argument is mandatory and specifies the metadata key.
28512
28513 The second argument is optional and specifies a default value, used
28514 when the metadata key is not found or empty.
28515
28516 Available metadata can be identified by inspecting entries starting
28517 with TAG included within each frame section printed by running
28518 "ffprobe -show_frames".
28519
28520 String metadata generated in filters leading to the drawtext filter
28521 are also available.
28522
28523 n, frame_num
28524 The frame number, starting from 0.
28525
28526 pict_type
28527 A one character description of the current picture type.
28528
28529 pts The timestamp of the current frame. It can take up to three
28530 arguments.
28531
28532 The first argument is the format of the timestamp; it defaults to
28533 "flt" for seconds as a decimal number with microsecond accuracy;
28534 "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
28535 millisecond accuracy. "gmtime" stands for the timestamp of the
28536 frame formatted as UTC time; "localtime" stands for the timestamp
28537 of the frame formatted as local time zone time.
28538
28539 The second argument is an offset added to the timestamp.
28540
28541 If the format is set to "hms", a third argument "24HH" may be
28542 supplied to present the hour part of the formatted timestamp in 24h
28543 format (00-23).
28544
28545 If the format is set to "localtime" or "gmtime", a third argument
28546 may be supplied: a strftime() format string. By default, YYYY-MM-
28547 DD HH:MM:SS format will be used.
28548
28549 Commands
28550
28551 This filter supports altering parameters via commands:
28552
28553 reinit
28554 Alter existing filter parameters.
28555
28556 Syntax for the argument is the same as for filter invocation, e.g.
28557
28558 fontsize=56:fontcolor=green:text='Hello World'
28559
28560 Full filter invocation with sendcmd would look like this:
28561
28562 sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
28563
28564 If the entire argument can't be parsed or applied as valid values then
28565 the filter will continue with its existing parameters.
28566
28567 Examples
28568
28569 • Draw "Test Text" with font FreeSerif, using the default values for
28570 the optional parameters.
28571
28572 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
28573
28574 • Draw 'Test Text' with font FreeSerif of size 24 at position x=100
28575 and y=50 (counting from the top-left corner of the screen), text is
28576 yellow with a red box around it. Both the text and the box have an
28577 opacity of 20%.
28578
28579 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
28580 x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
28581
28582 Note that the double quotes are not necessary if spaces are not
28583 used within the parameter list.
28584
28585 • Show the text at the center of the video frame:
28586
28587 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
28588
28589 • Show the text at a random position, switching to a new position
28590 every 30 seconds:
28591
28592 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)"
28593
28594 • Show a text line sliding from right to left in the last row of the
28595 video frame. The file LONG_LINE is assumed to contain a single line
28596 with no newlines.
28597
28598 drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
28599
28600 • Show the content of file CREDITS off the bottom of the frame and
28601 scroll up.
28602
28603 drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
28604
28605 • Draw a single green letter "g", at the center of the input video.
28606 The glyph baseline is placed at half screen height.
28607
28608 drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
28609
28610 • Show text for 1 second every 3 seconds:
28611
28612 drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
28613
28614 • Use fontconfig to set the font. Note that the colons need to be
28615 escaped.
28616
28617 drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
28618
28619 • Draw "Test Text" with font size dependent on height of the video.
28620
28621 drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
28622
28623 • Print the date of a real-time encoding (see strftime(3)):
28624
28625 drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
28626
28627 • Show text fading in and out (appearing/disappearing):
28628
28629 #!/bin/sh
28630 DS=1.0 # display start
28631 DE=10.0 # display end
28632 FID=1.5 # fade in duration
28633 FOD=5 # fade out duration
28634 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 }"
28635
28636 • Horizontally align multiple separate texts. Note that max_glyph_a
28637 and the fontsize value are included in the y offset.
28638
28639 drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
28640 drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
28641
28642 • Plot special lavf.image2dec.source_basename metadata onto each
28643 frame if such metadata exists. Otherwise, plot the string "NA".
28644 Note that image2 demuxer must have option -export_path_metadata 1
28645 for the special metadata fields to be available for filters.
28646
28647 drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
28648
28649 For more information about libfreetype, check:
28650 <http://www.freetype.org/>.
28651
28652 For more information about fontconfig, check:
28653 <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
28654
28655 For more information about libfribidi, check: <http://fribidi.org/>.
28656
28657 edgedetect
28658 Detect and draw edges. The filter uses the Canny Edge Detection
28659 algorithm.
28660
28661 The filter accepts the following options:
28662
28663 low
28664 high
28665 Set low and high threshold values used by the Canny thresholding
28666 algorithm.
28667
28668 The high threshold selects the "strong" edge pixels, which are then
28669 connected through 8-connectivity with the "weak" edge pixels
28670 selected by the low threshold.
28671
28672 low and high threshold values must be chosen in the range [0,1],
28673 and low should be lesser or equal to high.
28674
28675 Default value for low is "20/255", and default value for high is
28676 "50/255".
28677
28678 mode
28679 Define the drawing mode.
28680
28681 wires
28682 Draw white/gray wires on black background.
28683
28684 colormix
28685 Mix the colors to create a paint/cartoon effect.
28686
28687 canny
28688 Apply Canny edge detector on all selected planes.
28689
28690 Default value is wires.
28691
28692 planes
28693 Select planes for filtering. By default all available planes are
28694 filtered.
28695
28696 Examples
28697
28698 • Standard edge detection with custom values for the hysteresis
28699 thresholding:
28700
28701 edgedetect=low=0.1:high=0.4
28702
28703 • Painting effect without thresholding:
28704
28705 edgedetect=mode=colormix:high=0
28706
28707 elbg
28708 Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
28709
28710 For each input image, the filter will compute the optimal mapping from
28711 the input to the output given the codebook length, that is the number
28712 of distinct output colors.
28713
28714 This filter accepts the following options.
28715
28716 codebook_length, l
28717 Set codebook length. The value must be a positive integer, and
28718 represents the number of distinct output colors. Default value is
28719 256.
28720
28721 nb_steps, n
28722 Set the maximum number of iterations to apply for computing the
28723 optimal mapping. The higher the value the better the result and the
28724 higher the computation time. Default value is 1.
28725
28726 seed, s
28727 Set a random seed, must be an integer included between 0 and
28728 UINT32_MAX. If not specified, or if explicitly set to -1, the
28729 filter will try to use a good random seed on a best effort basis.
28730
28731 pal8
28732 Set pal8 output pixel format. This option does not work with
28733 codebook length greater than 256. Default is disabled.
28734
28735 use_alpha
28736 Include alpha values in the quantization calculation. Allows
28737 creating palettized output images (e.g. PNG8) with multiple alpha
28738 smooth blending.
28739
28740 entropy
28741 Measure graylevel entropy in histogram of color channels of video
28742 frames.
28743
28744 It accepts the following parameters:
28745
28746 mode
28747 Can be either normal or diff. Default is normal.
28748
28749 diff mode measures entropy of histogram delta values, absolute
28750 differences between neighbour histogram values.
28751
28752 epx
28753 Apply the EPX magnification filter which is designed for pixel art.
28754
28755 It accepts the following option:
28756
28757 n Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX". Default
28758 is 3.
28759
28760 eq
28761 Set brightness, contrast, saturation and approximate gamma adjustment.
28762
28763 The filter accepts the following options:
28764
28765 contrast
28766 Set the contrast expression. The value must be a float value in
28767 range "-1000.0" to 1000.0. The default value is "1".
28768
28769 brightness
28770 Set the brightness expression. The value must be a float value in
28771 range "-1.0" to 1.0. The default value is "0".
28772
28773 saturation
28774 Set the saturation expression. The value must be a float in range
28775 0.0 to 3.0. The default value is "1".
28776
28777 gamma
28778 Set the gamma expression. The value must be a float in range 0.1 to
28779 10.0. The default value is "1".
28780
28781 gamma_r
28782 Set the gamma expression for red. The value must be a float in
28783 range 0.1 to 10.0. The default value is "1".
28784
28785 gamma_g
28786 Set the gamma expression for green. The value must be a float in
28787 range 0.1 to 10.0. The default value is "1".
28788
28789 gamma_b
28790 Set the gamma expression for blue. The value must be a float in
28791 range 0.1 to 10.0. The default value is "1".
28792
28793 gamma_weight
28794 Set the gamma weight expression. It can be used to reduce the
28795 effect of a high gamma value on bright image areas, e.g. keep them
28796 from getting overamplified and just plain white. The value must be
28797 a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
28798 correction all the way down while 1.0 leaves it at its full
28799 strength. Default is "1".
28800
28801 eval
28802 Set when the expressions for brightness, contrast, saturation and
28803 gamma expressions are evaluated.
28804
28805 It accepts the following values:
28806
28807 init
28808 only evaluate expressions once during the filter initialization
28809 or when a command is processed
28810
28811 frame
28812 evaluate expressions for each incoming frame
28813
28814 Default value is init.
28815
28816 The expressions accept the following parameters:
28817
28818 n frame count of the input frame starting from 0
28819
28820 pos byte position of the corresponding packet in the input file, NAN if
28821 unspecified
28822
28823 r frame rate of the input video, NAN if the input frame rate is
28824 unknown
28825
28826 t timestamp expressed in seconds, NAN if the input timestamp is
28827 unknown
28828
28829 Commands
28830
28831 The filter supports the following commands:
28832
28833 contrast
28834 Set the contrast expression.
28835
28836 brightness
28837 Set the brightness expression.
28838
28839 saturation
28840 Set the saturation expression.
28841
28842 gamma
28843 Set the gamma expression.
28844
28845 gamma_r
28846 Set the gamma_r expression.
28847
28848 gamma_g
28849 Set gamma_g expression.
28850
28851 gamma_b
28852 Set gamma_b expression.
28853
28854 gamma_weight
28855 Set gamma_weight expression.
28856
28857 The command accepts the same syntax of the corresponding option.
28858
28859 If the specified expression is not valid, it is kept at its current
28860 value.
28861
28862 erosion
28863 Apply erosion effect to the video.
28864
28865 This filter replaces the pixel by the local(3x3) minimum.
28866
28867 It accepts the following options:
28868
28869 threshold0
28870 threshold1
28871 threshold2
28872 threshold3
28873 Limit the maximum change for each plane, default is 65535. If 0,
28874 plane will remain unchanged.
28875
28876 coordinates
28877 Flag which specifies the pixel to refer to. Default is 255 i.e. all
28878 eight pixels are used.
28879
28880 Flags to local 3x3 coordinates maps like this:
28881
28882 1 2 3
28883 4 5
28884 6 7 8
28885
28886 Commands
28887
28888 This filter supports the all above options as commands.
28889
28890 estdif
28891 Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
28892 Deinterlacing Filter").
28893
28894 Spatial only filter that uses edge slope tracing algorithm to
28895 interpolate missing lines. It accepts the following parameters:
28896
28897 mode
28898 The interlacing mode to adopt. It accepts one of the following
28899 values:
28900
28901 frame
28902 Output one frame for each frame.
28903
28904 field
28905 Output one frame for each field.
28906
28907 The default value is "field".
28908
28909 parity
28910 The picture field parity assumed for the input interlaced video. It
28911 accepts one of the following values:
28912
28913 tff Assume the top field is first.
28914
28915 bff Assume the bottom field is first.
28916
28917 auto
28918 Enable automatic detection of field parity.
28919
28920 The default value is "auto". If the interlacing is unknown or the
28921 decoder does not export this information, top field first will be
28922 assumed.
28923
28924 deint
28925 Specify which frames to deinterlace. Accepts one of the following
28926 values:
28927
28928 all Deinterlace all frames.
28929
28930 interlaced
28931 Only deinterlace frames marked as interlaced.
28932
28933 The default value is "all".
28934
28935 rslope
28936 Specify the search radius for edge slope tracing. Default value is
28937 1. Allowed range is from 1 to 15.
28938
28939 redge
28940 Specify the search radius for best edge matching. Default value is
28941 2. Allowed range is from 0 to 15.
28942
28943 ecost
28944 Specify the edge cost for edge matching. Default value is 1.0.
28945 Allowed range is from 0 to 9.
28946
28947 mcost
28948 Specify the middle cost for edge matching. Default value is 0.5.
28949 Allowed range is from 0 to 1.
28950
28951 dcost
28952 Specify the distance cost for edge matching. Default value is 0.5.
28953 Allowed range is from 0 to 1.
28954
28955 interp
28956 Specify the interpolation used. Default is 4-point interpolation.
28957 It accepts one of the following values:
28958
28959 2p Two-point interpolation.
28960
28961 4p Four-point interpolation.
28962
28963 6p Six-point interpolation.
28964
28965 Commands
28966
28967 This filter supports same commands as options.
28968
28969 exposure
28970 Adjust exposure of the video stream.
28971
28972 The filter accepts the following options:
28973
28974 exposure
28975 Set the exposure correction in EV. Allowed range is from -3.0 to
28976 3.0 EV Default value is 0 EV.
28977
28978 black
28979 Set the black level correction. Allowed range is from -1.0 to 1.0.
28980 Default value is 0.
28981
28982 Commands
28983
28984 This filter supports same commands as options.
28985
28986 extractplanes
28987 Extract color channel components from input video stream into separate
28988 grayscale video streams.
28989
28990 The filter accepts the following option:
28991
28992 planes
28993 Set plane(s) to extract.
28994
28995 Available values for planes are:
28996
28997 y
28998 u
28999 v
29000 a
29001 r
29002 g
29003 b
29004
29005 Choosing planes not available in the input will result in an error.
29006 That means you cannot select "r", "g", "b" planes with "y", "u",
29007 "v" planes at same time.
29008
29009 Examples
29010
29011 • Extract luma, u and v color channel component from input video
29012 frame into 3 grayscale outputs:
29013
29014 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
29015
29016 fade
29017 Apply a fade-in/out effect to the input video.
29018
29019 It accepts the following parameters:
29020
29021 type, t
29022 The effect type can be either "in" for a fade-in, or "out" for a
29023 fade-out effect. Default is "in".
29024
29025 start_frame, s
29026 Specify the number of the frame to start applying the fade effect
29027 at. Default is 0.
29028
29029 nb_frames, n
29030 The number of frames that the fade effect lasts. At the end of the
29031 fade-in effect, the output video will have the same intensity as
29032 the input video. At the end of the fade-out transition, the output
29033 video will be filled with the selected color. Default is 25.
29034
29035 alpha
29036 If set to 1, fade only alpha channel, if one exists on the input.
29037 Default value is 0.
29038
29039 start_time, st
29040 Specify the timestamp (in seconds) of the frame to start to apply
29041 the fade effect. If both start_frame and start_time are specified,
29042 the fade will start at whichever comes last. Default is 0.
29043
29044 duration, d
29045 The number of seconds for which the fade effect has to last. At the
29046 end of the fade-in effect the output video will have the same
29047 intensity as the input video, at the end of the fade-out transition
29048 the output video will be filled with the selected color. If both
29049 duration and nb_frames are specified, duration is used. Default is
29050 0 (nb_frames is used by default).
29051
29052 color, c
29053 Specify the color of the fade. Default is "black".
29054
29055 Examples
29056
29057 • Fade in the first 30 frames of video:
29058
29059 fade=in:0:30
29060
29061 The command above is equivalent to:
29062
29063 fade=t=in:s=0:n=30
29064
29065 • Fade out the last 45 frames of a 200-frame video:
29066
29067 fade=out:155:45
29068 fade=type=out:start_frame=155:nb_frames=45
29069
29070 • Fade in the first 25 frames and fade out the last 25 frames of a
29071 1000-frame video:
29072
29073 fade=in:0:25, fade=out:975:25
29074
29075 • Make the first 5 frames yellow, then fade in from frame 5-24:
29076
29077 fade=in:5:20:color=yellow
29078
29079 • Fade in alpha over first 25 frames of video:
29080
29081 fade=in:0:25:alpha=1
29082
29083 • Make the first 5.5 seconds black, then fade in for 0.5 seconds:
29084
29085 fade=t=in:st=5.5:d=0.5
29086
29087 feedback
29088 Apply feedback video filter.
29089
29090 This filter pass cropped input frames to 2nd output. From there it can
29091 be filtered with other video filters. After filter receives frame from
29092 2nd input, that frame is combined on top of original frame from 1st
29093 input and passed to 1st output.
29094
29095 The typical usage is filter only part of frame.
29096
29097 The filter accepts the following options:
29098
29099 x
29100 y Set the top left crop position.
29101
29102 w
29103 h Set the crop size.
29104
29105 Examples
29106
29107 • Blur only top left rectangular part of video frame size 100x100
29108 with gblur filter.
29109
29110 [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
29111
29112 • Draw black box on top left part of video frame of size 100x100 with
29113 drawbox filter.
29114
29115 [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]drawbox=x=0:y=0:w=100:h=100:t=100[blurin]
29116
29117 fftdnoiz
29118 Denoise frames using 3D FFT (frequency domain filtering).
29119
29120 The filter accepts the following options:
29121
29122 sigma
29123 Set the noise sigma constant. This sets denoising strength.
29124 Default value is 1. Allowed range is from 0 to 30. Using very high
29125 sigma with low overlap may give blocking artifacts.
29126
29127 amount
29128 Set amount of denoising. By default all detected noise is reduced.
29129 Default value is 1. Allowed range is from 0 to 1.
29130
29131 block
29132 Set size of block in pixels, Default is 32, can be 8 to 256.
29133
29134 overlap
29135 Set block overlap. Default is 0.5. Allowed range is from 0.2 to
29136 0.8.
29137
29138 method
29139 Set denoising method. Default is "wiener", can also be "hard".
29140
29141 prev
29142 Set number of previous frames to use for denoising. By default is
29143 set to 0.
29144
29145 next
29146 Set number of next frames to to use for denoising. By default is
29147 set to 0.
29148
29149 planes
29150 Set planes which will be filtered, by default are all available
29151 filtered except alpha.
29152
29153 fftfilt
29154 Apply arbitrary expressions to samples in frequency domain
29155
29156 dc_Y
29157 Adjust the dc value (gain) of the luma plane of the image. The
29158 filter accepts an integer value in range 0 to 1000. The default
29159 value is set to 0.
29160
29161 dc_U
29162 Adjust the dc value (gain) of the 1st chroma plane of the image.
29163 The filter accepts an integer value in range 0 to 1000. The default
29164 value is set to 0.
29165
29166 dc_V
29167 Adjust the dc value (gain) of the 2nd chroma plane of the image.
29168 The filter accepts an integer value in range 0 to 1000. The default
29169 value is set to 0.
29170
29171 weight_Y
29172 Set the frequency domain weight expression for the luma plane.
29173
29174 weight_U
29175 Set the frequency domain weight expression for the 1st chroma
29176 plane.
29177
29178 weight_V
29179 Set the frequency domain weight expression for the 2nd chroma
29180 plane.
29181
29182 eval
29183 Set when the expressions are evaluated.
29184
29185 It accepts the following values:
29186
29187 init
29188 Only evaluate expressions once during the filter
29189 initialization.
29190
29191 frame
29192 Evaluate expressions for each incoming frame.
29193
29194 Default value is init.
29195
29196 The filter accepts the following variables:
29197
29198 X
29199 Y The coordinates of the current sample.
29200
29201 W
29202 H The width and height of the image.
29203
29204 N The number of input frame, starting from 0.
29205
29206 WS
29207 HS The size of FFT array for horizontal and vertical processing.
29208
29209 Examples
29210
29211 • High-pass:
29212
29213 fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
29214
29215 • Low-pass:
29216
29217 fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
29218
29219 • Sharpen:
29220
29221 fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
29222
29223 • Blur:
29224
29225 fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
29226
29227 field
29228 Extract a single field from an interlaced image using stride arithmetic
29229 to avoid wasting CPU time. The output frames are marked as non-
29230 interlaced.
29231
29232 The filter accepts the following options:
29233
29234 type
29235 Specify whether to extract the top (if the value is 0 or "top") or
29236 the bottom field (if the value is 1 or "bottom").
29237
29238 fieldhint
29239 Create new frames by copying the top and bottom fields from surrounding
29240 frames supplied as numbers by the hint file.
29241
29242 hint
29243 Set file containing hints: absolute/relative frame numbers.
29244
29245 There must be one line for each frame in a clip. Each line must
29246 contain two numbers separated by the comma, optionally followed by
29247 "-" or "+". Numbers supplied on each line of file can not be out
29248 of [N-1,N+1] where N is current frame number for "absolute" mode or
29249 out of [-1, 1] range for "relative" mode. First number tells from
29250 which frame to pick up top field and second number tells from which
29251 frame to pick up bottom field.
29252
29253 If optionally followed by "+" output frame will be marked as
29254 interlaced, else if followed by "-" output frame will be marked as
29255 progressive, else it will be marked same as input frame. If
29256 optionally followed by "t" output frame will use only top field, or
29257 in case of "b" it will use only bottom field. If line starts with
29258 "#" or ";" that line is skipped.
29259
29260 mode
29261 Can be item "absolute" or "relative" or "pattern". Default is
29262 "absolute". The "pattern" mode is same as "relative" mode, except
29263 at last entry of file if there are more frames to process than
29264 "hint" file is seek back to start.
29265
29266 Example of first several lines of "hint" file for "relative" mode:
29267
29268 0,0 - # first frame
29269 1,0 - # second frame, use third's frame top field and second's frame bottom field
29270 1,0 - # third frame, use fourth's frame top field and third's frame bottom field
29271 1,0 -
29272 0,0 -
29273 0,0 -
29274 1,0 -
29275 1,0 -
29276 1,0 -
29277 0,0 -
29278 0,0 -
29279 1,0 -
29280 1,0 -
29281 1,0 -
29282 0,0 -
29283
29284 fieldmatch
29285 Field matching filter for inverse telecine. It is meant to reconstruct
29286 the progressive frames from a telecined stream. The filter does not
29287 drop duplicated frames, so to achieve a complete inverse telecine
29288 "fieldmatch" needs to be followed by a decimation filter such as
29289 decimate in the filtergraph.
29290
29291 The separation of the field matching and the decimation is notably
29292 motivated by the possibility of inserting a de-interlacing filter
29293 fallback between the two. If the source has mixed telecined and real
29294 interlaced content, "fieldmatch" will not be able to match fields for
29295 the interlaced parts. But these remaining combed frames will be marked
29296 as interlaced, and thus can be de-interlaced by a later filter such as
29297 yadif before decimation.
29298
29299 In addition to the various configuration options, "fieldmatch" can take
29300 an optional second stream, activated through the ppsrc option. If
29301 enabled, the frames reconstruction will be based on the fields and
29302 frames from this second stream. This allows the first input to be pre-
29303 processed in order to help the various algorithms of the filter, while
29304 keeping the output lossless (assuming the fields are matched properly).
29305 Typically, a field-aware denoiser, or brightness/contrast adjustments
29306 can help.
29307
29308 Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
29309 project) and VIVTC/VFM (VapourSynth project). The later is a light
29310 clone of TFM from which "fieldmatch" is based on. While the semantic
29311 and usage are very close, some behaviour and options names can differ.
29312
29313 The decimate filter currently only works for constant frame rate input.
29314 If your input has mixed telecined (30fps) and progressive content with
29315 a lower framerate like 24fps use the following filterchain to produce
29316 the necessary cfr stream:
29317 "dejudder,fps=30000/1001,fieldmatch,decimate".
29318
29319 The filter accepts the following options:
29320
29321 order
29322 Specify the assumed field order of the input stream. Available
29323 values are:
29324
29325 auto
29326 Auto detect parity (use FFmpeg's internal parity value).
29327
29328 bff Assume bottom field first.
29329
29330 tff Assume top field first.
29331
29332 Note that it is sometimes recommended not to trust the parity
29333 announced by the stream.
29334
29335 Default value is auto.
29336
29337 mode
29338 Set the matching mode or strategy to use. pc mode is the safest in
29339 the sense that it won't risk creating jerkiness due to duplicate
29340 frames when possible, but if there are bad edits or blended fields
29341 it will end up outputting combed frames when a good match might
29342 actually exist. On the other hand, pcn_ub mode is the most risky in
29343 terms of creating jerkiness, but will almost always find a good
29344 frame if there is one. The other values are all somewhere in
29345 between pc and pcn_ub in terms of risking jerkiness and creating
29346 duplicate frames versus finding good matches in sections with bad
29347 edits, orphaned fields, blended fields, etc.
29348
29349 More details about p/c/n/u/b are available in p/c/n/u/b meaning
29350 section.
29351
29352 Available values are:
29353
29354 pc 2-way matching (p/c)
29355
29356 pc_n
29357 2-way matching, and trying 3rd match if still combed (p/c + n)
29358
29359 pc_u
29360 2-way matching, and trying 3rd match (same order) if still
29361 combed (p/c + u)
29362
29363 pc_n_ub
29364 2-way matching, trying 3rd match if still combed, and trying
29365 4th/5th matches if still combed (p/c + n + u/b)
29366
29367 pcn 3-way matching (p/c/n)
29368
29369 pcn_ub
29370 3-way matching, and trying 4th/5th matches if all 3 of the
29371 original matches are detected as combed (p/c/n + u/b)
29372
29373 The parenthesis at the end indicate the matches that would be used
29374 for that mode assuming order=tff (and field on auto or top).
29375
29376 In terms of speed pc mode is by far the fastest and pcn_ub is the
29377 slowest.
29378
29379 Default value is pc_n.
29380
29381 ppsrc
29382 Mark the main input stream as a pre-processed input, and enable the
29383 secondary input stream as the clean source to pick the fields from.
29384 See the filter introduction for more details. It is similar to the
29385 clip2 feature from VFM/TFM.
29386
29387 Default value is 0 (disabled).
29388
29389 field
29390 Set the field to match from. It is recommended to set this to the
29391 same value as order unless you experience matching failures with
29392 that setting. In certain circumstances changing the field that is
29393 used to match from can have a large impact on matching performance.
29394 Available values are:
29395
29396 auto
29397 Automatic (same value as order).
29398
29399 bottom
29400 Match from the bottom field.
29401
29402 top Match from the top field.
29403
29404 Default value is auto.
29405
29406 mchroma
29407 Set whether or not chroma is included during the match comparisons.
29408 In most cases it is recommended to leave this enabled. You should
29409 set this to 0 only if your clip has bad chroma problems such as
29410 heavy rainbowing or other artifacts. Setting this to 0 could also
29411 be used to speed things up at the cost of some accuracy.
29412
29413 Default value is 1.
29414
29415 y0
29416 y1 These define an exclusion band which excludes the lines between y0
29417 and y1 from being included in the field matching decision. An
29418 exclusion band can be used to ignore subtitles, a logo, or other
29419 things that may interfere with the matching. y0 sets the starting
29420 scan line and y1 sets the ending line; all lines in between y0 and
29421 y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
29422 same value will disable the feature. y0 and y1 defaults to 0.
29423
29424 scthresh
29425 Set the scene change detection threshold as a percentage of maximum
29426 change on the luma plane. Good values are in the "[8.0, 14.0]"
29427 range. Scene change detection is only relevant in case
29428 combmatch=sc. The range for scthresh is "[0.0, 100.0]".
29429
29430 Default value is 12.0.
29431
29432 combmatch
29433 When combatch is not none, "fieldmatch" will take into account the
29434 combed scores of matches when deciding what match to use as the
29435 final match. Available values are:
29436
29437 none
29438 No final matching based on combed scores.
29439
29440 sc Combed scores are only used when a scene change is detected.
29441
29442 full
29443 Use combed scores all the time.
29444
29445 Default is sc.
29446
29447 combdbg
29448 Force "fieldmatch" to calculate the combed metrics for certain
29449 matches and print them. This setting is known as micout in TFM/VFM
29450 vocabulary. Available values are:
29451
29452 none
29453 No forced calculation.
29454
29455 pcn Force p/c/n calculations.
29456
29457 pcnub
29458 Force p/c/n/u/b calculations.
29459
29460 Default value is none.
29461
29462 cthresh
29463 This is the area combing threshold used for combed frame detection.
29464 This essentially controls how "strong" or "visible" combing must be
29465 to be detected. Larger values mean combing must be more visible
29466 and smaller values mean combing can be less visible or strong and
29467 still be detected. Valid settings are from "-1" (every pixel will
29468 be detected as combed) to 255 (no pixel will be detected as
29469 combed). This is basically a pixel difference value. A good range
29470 is "[8, 12]".
29471
29472 Default value is 9.
29473
29474 chroma
29475 Sets whether or not chroma is considered in the combed frame
29476 decision. Only disable this if your source has chroma problems
29477 (rainbowing, etc.) that are causing problems for the combed frame
29478 detection with chroma enabled. Actually, using chroma=0 is usually
29479 more reliable, except for the case where there is chroma only
29480 combing in the source.
29481
29482 Default value is 0.
29483
29484 blockx
29485 blocky
29486 Respectively set the x-axis and y-axis size of the window used
29487 during combed frame detection. This has to do with the size of the
29488 area in which combpel pixels are required to be detected as combed
29489 for a frame to be declared combed. See the combpel parameter
29490 description for more info. Possible values are any number that is
29491 a power of 2 starting at 4 and going up to 512.
29492
29493 Default value is 16.
29494
29495 combpel
29496 The number of combed pixels inside any of the blocky by blockx size
29497 blocks on the frame for the frame to be detected as combed. While
29498 cthresh controls how "visible" the combing must be, this setting
29499 controls "how much" combing there must be in any localized area (a
29500 window defined by the blockx and blocky settings) on the frame.
29501 Minimum value is 0 and maximum is "blocky x blockx" (at which point
29502 no frames will ever be detected as combed). This setting is known
29503 as MI in TFM/VFM vocabulary.
29504
29505 Default value is 80.
29506
29507 p/c/n/u/b meaning
29508
29509 p/c/n
29510
29511 We assume the following telecined stream:
29512
29513 Top fields: 1 2 2 3 4
29514 Bottom fields: 1 2 3 4 4
29515
29516 The numbers correspond to the progressive frame the fields relate to.
29517 Here, the first two frames are progressive, the 3rd and 4th are combed,
29518 and so on.
29519
29520 When "fieldmatch" is configured to run a matching from bottom
29521 (field=bottom) this is how this input stream get transformed:
29522
29523 Input stream:
29524 T 1 2 2 3 4
29525 B 1 2 3 4 4 <-- matching reference
29526
29527 Matches: c c n n c
29528
29529 Output stream:
29530 T 1 2 3 4 4
29531 B 1 2 3 4 4
29532
29533 As a result of the field matching, we can see that some frames get
29534 duplicated. To perform a complete inverse telecine, you need to rely
29535 on a decimation filter after this operation. See for instance the
29536 decimate filter.
29537
29538 The same operation now matching from top fields (field=top) looks like
29539 this:
29540
29541 Input stream:
29542 T 1 2 2 3 4 <-- matching reference
29543 B 1 2 3 4 4
29544
29545 Matches: c c p p c
29546
29547 Output stream:
29548 T 1 2 2 3 4
29549 B 1 2 2 3 4
29550
29551 In these examples, we can see what p, c and n mean; basically, they
29552 refer to the frame and field of the opposite parity:
29553
29554 *<p matches the field of the opposite parity in the previous frame>
29555 *<c matches the field of the opposite parity in the current frame>
29556 *<n matches the field of the opposite parity in the next frame>
29557
29558 u/b
29559
29560 The u and b matching are a bit special in the sense that they match
29561 from the opposite parity flag. In the following examples, we assume
29562 that we are currently matching the 2nd frame (Top:2, bottom:2).
29563 According to the match, a 'x' is placed above and below each matched
29564 fields.
29565
29566 With bottom matching (field=bottom):
29567
29568 Match: c p n b u
29569
29570 x x x x x
29571 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
29572 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
29573 x x x x x
29574
29575 Output frames:
29576 2 1 2 2 2
29577 2 2 2 1 3
29578
29579 With top matching (field=top):
29580
29581 Match: c p n b u
29582
29583 x x x x x
29584 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
29585 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
29586 x x x x x
29587
29588 Output frames:
29589 2 2 2 1 2
29590 2 1 3 2 2
29591
29592 Examples
29593
29594 Simple IVTC of a top field first telecined stream:
29595
29596 fieldmatch=order=tff:combmatch=none, decimate
29597
29598 Advanced IVTC, with fallback on yadif for still combed frames:
29599
29600 fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
29601
29602 fieldorder
29603 Transform the field order of the input video.
29604
29605 It accepts the following parameters:
29606
29607 order
29608 The output field order. Valid values are tff for top field first or
29609 bff for bottom field first.
29610
29611 The default value is tff.
29612
29613 The transformation is done by shifting the picture content up or down
29614 by one line, and filling the remaining line with appropriate picture
29615 content. This method is consistent with most broadcast field order
29616 converters.
29617
29618 If the input video is not flagged as being interlaced, or it is already
29619 flagged as being of the required output field order, then this filter
29620 does not alter the incoming video.
29621
29622 It is very useful when converting to or from PAL DV material, which is
29623 bottom field first.
29624
29625 For example:
29626
29627 ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
29628
29629 fifo, afifo
29630 Buffer input images and send them when they are requested.
29631
29632 It is mainly useful when auto-inserted by the libavfilter framework.
29633
29634 It does not take parameters.
29635
29636 fillborders
29637 Fill borders of the input video, without changing video stream
29638 dimensions. Sometimes video can have garbage at the four edges and you
29639 may not want to crop video input to keep size multiple of some number.
29640
29641 This filter accepts the following options:
29642
29643 left
29644 Number of pixels to fill from left border.
29645
29646 right
29647 Number of pixels to fill from right border.
29648
29649 top Number of pixels to fill from top border.
29650
29651 bottom
29652 Number of pixels to fill from bottom border.
29653
29654 mode
29655 Set fill mode.
29656
29657 It accepts the following values:
29658
29659 smear
29660 fill pixels using outermost pixels
29661
29662 mirror
29663 fill pixels using mirroring (half sample symmetric)
29664
29665 fixed
29666 fill pixels with constant value
29667
29668 reflect
29669 fill pixels using reflecting (whole sample symmetric)
29670
29671 wrap
29672 fill pixels using wrapping
29673
29674 fade
29675 fade pixels to constant value
29676
29677 margins
29678 fill pixels at top and bottom with weighted averages pixels
29679 near borders
29680
29681 Default is smear.
29682
29683 color
29684 Set color for pixels in fixed or fade mode. Default is black.
29685
29686 Commands
29687
29688 This filter supports same commands as options. The command accepts the
29689 same syntax of the corresponding option.
29690
29691 If the specified expression is not valid, it is kept at its current
29692 value.
29693
29694 find_rect
29695 Find a rectangular object
29696
29697 It accepts the following options:
29698
29699 object
29700 Filepath of the object image, needs to be in gray8.
29701
29702 threshold
29703 Detection threshold, default is 0.5.
29704
29705 mipmaps
29706 Number of mipmaps, default is 3.
29707
29708 xmin, ymin, xmax, ymax
29709 Specifies the rectangle in which to search.
29710
29711 discard
29712 Discard frames where object is not detected. Default is disabled.
29713
29714 Examples
29715
29716 • Cover a rectangular object by the supplied image of a given video
29717 using ffmpeg:
29718
29719 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
29720
29721 floodfill
29722 Flood area with values of same pixel components with another values.
29723
29724 It accepts the following options:
29725
29726 x Set pixel x coordinate.
29727
29728 y Set pixel y coordinate.
29729
29730 s0 Set source #0 component value.
29731
29732 s1 Set source #1 component value.
29733
29734 s2 Set source #2 component value.
29735
29736 s3 Set source #3 component value.
29737
29738 d0 Set destination #0 component value.
29739
29740 d1 Set destination #1 component value.
29741
29742 d2 Set destination #2 component value.
29743
29744 d3 Set destination #3 component value.
29745
29746 format
29747 Convert the input video to one of the specified pixel formats.
29748 Libavfilter will try to pick one that is suitable as input to the next
29749 filter.
29750
29751 It accepts the following parameters:
29752
29753 pix_fmts
29754 A '|'-separated list of pixel format names, such as
29755 "pix_fmts=yuv420p|monow|rgb24".
29756
29757 Examples
29758
29759 • Convert the input video to the yuv420p format
29760
29761 format=pix_fmts=yuv420p
29762
29763 Convert the input video to any of the formats in the list
29764
29765 format=pix_fmts=yuv420p|yuv444p|yuv410p
29766
29767 fps
29768 Convert the video to specified constant frame rate by duplicating or
29769 dropping frames as necessary.
29770
29771 It accepts the following parameters:
29772
29773 fps The desired output frame rate. It accepts expressions containing
29774 the following constants:
29775
29776 source_fps
29777 The input's frame rate
29778
29779 ntsc
29780 NTSC frame rate of "30000/1001"
29781
29782 pal PAL frame rate of 25.0
29783
29784 film
29785 Film frame rate of 24.0
29786
29787 ntsc_film
29788 NTSC-film frame rate of "24000/1001"
29789
29790 The default is 25.
29791
29792 start_time
29793 Assume the first PTS should be the given value, in seconds. This
29794 allows for padding/trimming at the start of stream. By default, no
29795 assumption is made about the first frame's expected PTS, so no
29796 padding or trimming is done. For example, this could be set to 0
29797 to pad the beginning with duplicates of the first frame if a video
29798 stream starts after the audio stream or to trim any frames with a
29799 negative PTS.
29800
29801 round
29802 Timestamp (PTS) rounding method.
29803
29804 Possible values are:
29805
29806 zero
29807 round towards 0
29808
29809 inf round away from 0
29810
29811 down
29812 round towards -infinity
29813
29814 up round towards +infinity
29815
29816 near
29817 round to nearest
29818
29819 The default is "near".
29820
29821 eof_action
29822 Action performed when reading the last frame.
29823
29824 Possible values are:
29825
29826 round
29827 Use same timestamp rounding method as used for other frames.
29828
29829 pass
29830 Pass through last frame if input duration has not been reached
29831 yet.
29832
29833 The default is "round".
29834
29835 Alternatively, the options can be specified as a flat string:
29836 fps[:start_time[:round]].
29837
29838 See also the setpts filter.
29839
29840 Examples
29841
29842 • A typical usage in order to set the fps to 25:
29843
29844 fps=fps=25
29845
29846 • Sets the fps to 24, using abbreviation and rounding method to round
29847 to nearest:
29848
29849 fps=fps=film:round=near
29850
29851 framepack
29852 Pack two different video streams into a stereoscopic video, setting
29853 proper metadata on supported codecs. The two views should have the same
29854 size and framerate and processing will stop when the shorter video
29855 ends. Please note that you may conveniently adjust view properties with
29856 the scale and fps filters.
29857
29858 It accepts the following parameters:
29859
29860 format
29861 The desired packing format. Supported values are:
29862
29863 sbs The views are next to each other (default).
29864
29865 tab The views are on top of each other.
29866
29867 lines
29868 The views are packed by line.
29869
29870 columns
29871 The views are packed by column.
29872
29873 frameseq
29874 The views are temporally interleaved.
29875
29876 Some examples:
29877
29878 # Convert left and right views into a frame-sequential video
29879 ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
29880
29881 # Convert views into a side-by-side video with the same output resolution as the input
29882 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
29883
29884 framerate
29885 Change the frame rate by interpolating new video output frames from the
29886 source frames.
29887
29888 This filter is not designed to function correctly with interlaced
29889 media. If you wish to change the frame rate of interlaced media then
29890 you are required to deinterlace before this filter and re-interlace
29891 after this filter.
29892
29893 A description of the accepted options follows.
29894
29895 fps Specify the output frames per second. This option can also be
29896 specified as a value alone. The default is 50.
29897
29898 interp_start
29899 Specify the start of a range where the output frame will be created
29900 as a linear interpolation of two frames. The range is [0-255], the
29901 default is 15.
29902
29903 interp_end
29904 Specify the end of a range where the output frame will be created
29905 as a linear interpolation of two frames. The range is [0-255], the
29906 default is 240.
29907
29908 scene
29909 Specify the level at which a scene change is detected as a value
29910 between 0 and 100 to indicate a new scene; a low value reflects a
29911 low probability for the current frame to introduce a new scene,
29912 while a higher value means the current frame is more likely to be
29913 one. The default is 8.2.
29914
29915 flags
29916 Specify flags influencing the filter process.
29917
29918 Available value for flags is:
29919
29920 scene_change_detect, scd
29921 Enable scene change detection using the value of the option
29922 scene. This flag is enabled by default.
29923
29924 framestep
29925 Select one frame every N-th frame.
29926
29927 This filter accepts the following option:
29928
29929 step
29930 Select frame after every "step" frames. Allowed values are
29931 positive integers higher than 0. Default value is 1.
29932
29933 freezedetect
29934 Detect frozen video.
29935
29936 This filter logs a message and sets frame metadata when it detects that
29937 the input video has no significant change in content during a specified
29938 duration. Video freeze detection calculates the mean average absolute
29939 difference of all the components of video frames and compares it to a
29940 noise floor.
29941
29942 The printed times and duration are expressed in seconds. The
29943 "lavfi.freezedetect.freeze_start" metadata key is set on the first
29944 frame whose timestamp equals or exceeds the detection duration and it
29945 contains the timestamp of the first frame of the freeze. The
29946 "lavfi.freezedetect.freeze_duration" and
29947 "lavfi.freezedetect.freeze_end" metadata keys are set on the first
29948 frame after the freeze.
29949
29950 The filter accepts the following options:
29951
29952 noise, n
29953 Set noise tolerance. Can be specified in dB (in case "dB" is
29954 appended to the specified value) or as a difference ratio between 0
29955 and 1. Default is -60dB, or 0.001.
29956
29957 duration, d
29958 Set freeze duration until notification (default is 2 seconds).
29959
29960 freezeframes
29961 Freeze video frames.
29962
29963 This filter freezes video frames using frame from 2nd input.
29964
29965 The filter accepts the following options:
29966
29967 first
29968 Set number of first frame from which to start freeze.
29969
29970 last
29971 Set number of last frame from which to end freeze.
29972
29973 replace
29974 Set number of frame from 2nd input which will be used instead of
29975 replaced frames.
29976
29977 frei0r
29978 Apply a frei0r effect to the input video.
29979
29980 To enable the compilation of this filter, you need to install the
29981 frei0r header and configure FFmpeg with "--enable-frei0r".
29982
29983 It accepts the following parameters:
29984
29985 filter_name
29986 The name of the frei0r effect to load. If the environment variable
29987 FREI0R_PATH is defined, the frei0r effect is searched for in each
29988 of the directories specified by the colon-separated list in
29989 FREI0R_PATH. Otherwise, the standard frei0r paths are searched, in
29990 this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
29991 /usr/lib/frei0r-1/.
29992
29993 filter_params
29994 A '|'-separated list of parameters to pass to the frei0r effect.
29995
29996 A frei0r effect parameter can be a boolean (its value is either "y" or
29997 "n"), a double, a color (specified as R/G/B, where R, G, and B are
29998 floating point numbers between 0.0 and 1.0, inclusive) or a color
29999 description as specified in the "Color" section in the ffmpeg-utils
30000 manual, a position (specified as X/Y, where X and Y are floating point
30001 numbers) and/or a string.
30002
30003 The number and types of parameters depend on the loaded effect. If an
30004 effect parameter is not specified, the default value is set.
30005
30006 Examples
30007
30008 • Apply the distort0r effect, setting the first two double
30009 parameters:
30010
30011 frei0r=filter_name=distort0r:filter_params=0.5|0.01
30012
30013 • Apply the colordistance effect, taking a color as the first
30014 parameter:
30015
30016 frei0r=colordistance:0.2/0.3/0.4
30017 frei0r=colordistance:violet
30018 frei0r=colordistance:0x112233
30019
30020 • Apply the perspective effect, specifying the top left and top right
30021 image positions:
30022
30023 frei0r=perspective:0.2/0.2|0.8/0.2
30024
30025 For more information, see <http://frei0r.dyne.org>
30026
30027 Commands
30028
30029 This filter supports the filter_params option as commands.
30030
30031 fspp
30032 Apply fast and simple postprocessing. It is a faster version of spp.
30033
30034 It splits (I)DCT into horizontal/vertical passes. Unlike the simple
30035 post- processing filter, one of them is performed once per block, not
30036 per pixel. This allows for much higher speed.
30037
30038 The filter accepts the following options:
30039
30040 quality
30041 Set quality. This option defines the number of levels for
30042 averaging. It accepts an integer in the range 4-5. Default value is
30043 4.
30044
30045 qp Force a constant quantization parameter. It accepts an integer in
30046 range 0-63. If not set, the filter will use the QP from the video
30047 stream (if available).
30048
30049 strength
30050 Set filter strength. It accepts an integer in range -15 to 32.
30051 Lower values mean more details but also more artifacts, while
30052 higher values make the image smoother but also blurrier. Default
30053 value is 0 X PSNR optimal.
30054
30055 use_bframe_qp
30056 Enable the use of the QP from the B-Frames if set to 1. Using this
30057 option may cause flicker since the B-Frames have often larger QP.
30058 Default is 0 (not enabled).
30059
30060 gblur
30061 Apply Gaussian blur filter.
30062
30063 The filter accepts the following options:
30064
30065 sigma
30066 Set horizontal sigma, standard deviation of Gaussian blur. Default
30067 is 0.5.
30068
30069 steps
30070 Set number of steps for Gaussian approximation. Default is 1.
30071
30072 planes
30073 Set which planes to filter. By default all planes are filtered.
30074
30075 sigmaV
30076 Set vertical sigma, if negative it will be same as "sigma".
30077 Default is "-1".
30078
30079 Commands
30080
30081 This filter supports same commands as options. The command accepts the
30082 same syntax of the corresponding option.
30083
30084 If the specified expression is not valid, it is kept at its current
30085 value.
30086
30087 geq
30088 Apply generic equation to each pixel.
30089
30090 The filter accepts the following options:
30091
30092 lum_expr, lum
30093 Set the luminance expression.
30094
30095 cb_expr, cb
30096 Set the chrominance blue expression.
30097
30098 cr_expr, cr
30099 Set the chrominance red expression.
30100
30101 alpha_expr, a
30102 Set the alpha expression.
30103
30104 red_expr, r
30105 Set the red expression.
30106
30107 green_expr, g
30108 Set the green expression.
30109
30110 blue_expr, b
30111 Set the blue expression.
30112
30113 The colorspace is selected according to the specified options. If one
30114 of the lum_expr, cb_expr, or cr_expr options is specified, the filter
30115 will automatically select a YCbCr colorspace. If one of the red_expr,
30116 green_expr, or blue_expr options is specified, it will select an RGB
30117 colorspace.
30118
30119 If one of the chrominance expression is not defined, it falls back on
30120 the other one. If no alpha expression is specified it will evaluate to
30121 opaque value. If none of chrominance expressions are specified, they
30122 will evaluate to the luminance expression.
30123
30124 The expressions can use the following variables and functions:
30125
30126 N The sequential number of the filtered frame, starting from 0.
30127
30128 X
30129 Y The coordinates of the current sample.
30130
30131 W
30132 H The width and height of the image.
30133
30134 SW
30135 SH Width and height scale depending on the currently filtered plane.
30136 It is the ratio between the corresponding luma plane number of
30137 pixels and the current plane ones. E.g. for YUV4:2:0 the values are
30138 "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
30139
30140 T Time of the current frame, expressed in seconds.
30141
30142 p(x, y)
30143 Return the value of the pixel at location (x,y) of the current
30144 plane.
30145
30146 lum(x, y)
30147 Return the value of the pixel at location (x,y) of the luminance
30148 plane.
30149
30150 cb(x, y)
30151 Return the value of the pixel at location (x,y) of the blue-
30152 difference chroma plane. Return 0 if there is no such plane.
30153
30154 cr(x, y)
30155 Return the value of the pixel at location (x,y) of the red-
30156 difference chroma plane. Return 0 if there is no such plane.
30157
30158 r(x, y)
30159 g(x, y)
30160 b(x, y)
30161 Return the value of the pixel at location (x,y) of the
30162 red/green/blue component. Return 0 if there is no such component.
30163
30164 alpha(x, y)
30165 Return the value of the pixel at location (x,y) of the alpha plane.
30166 Return 0 if there is no such plane.
30167
30168 psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
30169 bsum(x,y), alphasum(x,y)
30170 Sum of sample values in the rectangle from (0,0) to (x,y), this
30171 allows obtaining sums of samples within a rectangle. See the
30172 functions without the sum postfix.
30173
30174 interpolation
30175 Set one of interpolation methods:
30176
30177 nearest, n
30178 bilinear, b
30179
30180 Default is bilinear.
30181
30182 For functions, if x and y are outside the area, the value will be
30183 automatically clipped to the closer edge.
30184
30185 Please note that this filter can use multiple threads in which case
30186 each slice will have its own expression state. If you want to use only
30187 a single expression state because your expressions depend on previous
30188 state then you should limit the number of filter threads to 1.
30189
30190 Examples
30191
30192 • Flip the image horizontally:
30193
30194 geq=p(W-X\,Y)
30195
30196 • Generate a bidimensional sine wave, with angle "PI/3" and a
30197 wavelength of 100 pixels:
30198
30199 geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
30200
30201 • Generate a fancy enigmatic moving light:
30202
30203 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
30204
30205 • Generate a quick emboss effect:
30206
30207 format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
30208
30209 • Modify RGB components depending on pixel position:
30210
30211 geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
30212
30213 • Create a radial gradient that is the same size as the input (also
30214 see the vignette filter):
30215
30216 geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
30217
30218 gradfun
30219 Fix the banding artifacts that are sometimes introduced into nearly
30220 flat regions by truncation to 8-bit color depth. Interpolate the
30221 gradients that should go where the bands are, and dither them.
30222
30223 It is designed for playback only. Do not use it prior to lossy
30224 compression, because compression tends to lose the dither and bring
30225 back the bands.
30226
30227 It accepts the following parameters:
30228
30229 strength
30230 The maximum amount by which the filter will change any one pixel.
30231 This is also the threshold for detecting nearly flat regions.
30232 Acceptable values range from .51 to 64; the default value is 1.2.
30233 Out-of-range values will be clipped to the valid range.
30234
30235 radius
30236 The neighborhood to fit the gradient to. A larger radius makes for
30237 smoother gradients, but also prevents the filter from modifying the
30238 pixels near detailed regions. Acceptable values are 8-32; the
30239 default value is 16. Out-of-range values will be clipped to the
30240 valid range.
30241
30242 Alternatively, the options can be specified as a flat string:
30243 strength[:radius]
30244
30245 Examples
30246
30247 • Apply the filter with a 3.5 strength and radius of 8:
30248
30249 gradfun=3.5:8
30250
30251 • Specify radius, omitting the strength (which will fall-back to the
30252 default value):
30253
30254 gradfun=radius=8
30255
30256 graphmonitor
30257 Show various filtergraph stats.
30258
30259 With this filter one can debug complete filtergraph. Especially issues
30260 with links filling with queued frames.
30261
30262 The filter accepts the following options:
30263
30264 size, s
30265 Set video output size. Default is hd720.
30266
30267 opacity, o
30268 Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
30269
30270 mode, m
30271 Set output mode, can be fulll or compact. In compact mode only
30272 filters with some queued frames have displayed stats.
30273
30274 flags, f
30275 Set flags which enable which stats are shown in video.
30276
30277 Available values for flags are:
30278
30279 queue
30280 Display number of queued frames in each link.
30281
30282 frame_count_in
30283 Display number of frames taken from filter.
30284
30285 frame_count_out
30286 Display number of frames given out from filter.
30287
30288 frame_count_delta
30289 Display delta number of frames between above two values.
30290
30291 pts Display current filtered frame pts.
30292
30293 pts_delta
30294 Display pts delta between current and previous frame.
30295
30296 time
30297 Display current filtered frame time.
30298
30299 time_delta
30300 Display time delta between current and previous frame.
30301
30302 timebase
30303 Display time base for filter link.
30304
30305 format
30306 Display used format for filter link.
30307
30308 size
30309 Display video size or number of audio channels in case of audio
30310 used by filter link.
30311
30312 rate
30313 Display video frame rate or sample rate in case of audio used
30314 by filter link.
30315
30316 eof Display link output status.
30317
30318 sample_count_in
30319 Display number of samples taken from filter.
30320
30321 sample_count_out
30322 Display number of samples given out from filter.
30323
30324 sample_count_delta
30325 Display delta number of samples between above two values.
30326
30327 rate, r
30328 Set upper limit for video rate of output stream, Default value is
30329 25. This guarantee that output video frame rate will not be higher
30330 than this value.
30331
30332 grayworld
30333 A color constancy filter that applies color correction based on the
30334 grayworld assumption
30335
30336 See:
30337 <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
30338
30339 The algorithm uses linear light, so input data should be linearized
30340 beforehand (and possibly correctly tagged).
30341
30342 ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
30343
30344 greyedge
30345 A color constancy variation filter which estimates scene illumination
30346 via grey edge algorithm and corrects the scene colors accordingly.
30347
30348 See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
30349
30350 The filter accepts the following options:
30351
30352 difford
30353 The order of differentiation to be applied on the scene. Must be
30354 chosen in the range [0,2] and default value is 1.
30355
30356 minknorm
30357 The Minkowski parameter to be used for calculating the Minkowski
30358 distance. Must be chosen in the range [0,20] and default value is
30359 1. Set to 0 for getting max value instead of calculating Minkowski
30360 distance.
30361
30362 sigma
30363 The standard deviation of Gaussian blur to be applied on the scene.
30364 Must be chosen in the range [0,1024.0] and default value = 1.
30365 floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
30366 is greater than 0.
30367
30368 Examples
30369
30370 • Grey Edge:
30371
30372 greyedge=difford=1:minknorm=5:sigma=2
30373
30374 • Max Edge:
30375
30376 greyedge=difford=1:minknorm=0:sigma=2
30377
30378 guided
30379 Apply guided filter for edge-preserving smoothing, dehazing and so on.
30380
30381 The filter accepts the following options:
30382
30383 radius
30384 Set the box radius in pixels. Allowed range is 1 to 20. Default is
30385 3.
30386
30387 eps Set regularization parameter (with square). Allowed range is 0 to
30388 1. Default is 0.01.
30389
30390 mode
30391 Set filter mode. Can be "basic" or "fast". Default is "basic".
30392
30393 sub Set subsampling ratio for "fast" mode. Range is 2 to 64. Default
30394 is 4. No subsampling occurs in "basic" mode.
30395
30396 guidance
30397 Set guidance mode. Can be "off" or "on". Default is "off". If
30398 "off", single input is required. If "on", two inputs of the same
30399 resolution and pixel format are required. The second input serves
30400 as the guidance.
30401
30402 planes
30403 Set planes to filter. Default is first only.
30404
30405 Commands
30406
30407 This filter supports the all above options as commands.
30408
30409 Examples
30410
30411 • Edge-preserving smoothing with guided filter:
30412
30413 ffmpeg -i in.png -vf guided out.png
30414
30415 • Dehazing, structure-transferring filtering, detail enhancement with
30416 guided filter. For the generation of guidance image, refer to
30417 paper "Guided Image Filtering". See:
30418 <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
30419
30420 ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
30421
30422 haldclut
30423 Apply a Hald CLUT to a video stream.
30424
30425 First input is the video stream to process, and second one is the Hald
30426 CLUT. The Hald CLUT input can be a simple picture or a complete video
30427 stream.
30428
30429 The filter accepts the following options:
30430
30431 clut
30432 Set which CLUT video frames will be processed from second input
30433 stream, can be first or all. Default is all.
30434
30435 shortest
30436 Force termination when the shortest input terminates. Default is 0.
30437
30438 repeatlast
30439 Continue applying the last CLUT after the end of the stream. A
30440 value of 0 disable the filter after the last frame of the CLUT is
30441 reached. Default is 1.
30442
30443 "haldclut" also has the same interpolation options as lut3d (both
30444 filters share the same internals).
30445
30446 This filter also supports the framesync options.
30447
30448 More information about the Hald CLUT can be found on Eskil Steenberg's
30449 website (Hald CLUT author) at
30450 <http://www.quelsolaar.com/technology/clut.html>.
30451
30452 Commands
30453
30454 This filter supports the "interp" option as commands.
30455
30456 Workflow examples
30457
30458 Hald CLUT video stream
30459
30460 Generate an identity Hald CLUT stream altered with various effects:
30461
30462 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
30463
30464 Note: make sure you use a lossless codec.
30465
30466 Then use it with "haldclut" to apply it on some random stream:
30467
30468 ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
30469
30470 The Hald CLUT will be applied to the 10 first seconds (duration of
30471 clut.nut), then the latest picture of that CLUT stream will be applied
30472 to the remaining frames of the "mandelbrot" stream.
30473
30474 Hald CLUT with preview
30475
30476 A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
30477 "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
30478 the biggest possible square starting at the top left of the picture.
30479 The remaining padding pixels (bottom or right) will be ignored. This
30480 area can be used to add a preview of the Hald CLUT.
30481
30482 Typically, the following generated Hald CLUT will be supported by the
30483 "haldclut" filter:
30484
30485 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
30486 pad=iw+320 [padded_clut];
30487 smptebars=s=320x256, split [a][b];
30488 [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
30489 [main][b] overlay=W-320" -frames:v 1 clut.png
30490
30491 It contains the original and a preview of the effect of the CLUT: SMPTE
30492 color bars are displayed on the right-top, and below the same color
30493 bars processed by the color changes.
30494
30495 Then, the effect of this Hald CLUT can be visualized with:
30496
30497 ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
30498
30499 hflip
30500 Flip the input video horizontally.
30501
30502 For example, to horizontally flip the input video with ffmpeg:
30503
30504 ffmpeg -i in.avi -vf "hflip" out.avi
30505
30506 histeq
30507 This filter applies a global color histogram equalization on a per-
30508 frame basis.
30509
30510 It can be used to correct video that has a compressed range of pixel
30511 intensities. The filter redistributes the pixel intensities to
30512 equalize their distribution across the intensity range. It may be
30513 viewed as an "automatically adjusting contrast filter". This filter is
30514 useful only for correcting degraded or poorly captured source video.
30515
30516 The filter accepts the following options:
30517
30518 strength
30519 Determine the amount of equalization to be applied. As the
30520 strength is reduced, the distribution of pixel intensities more-
30521 and-more approaches that of the input frame. The value must be a
30522 float number in the range [0,1] and defaults to 0.200.
30523
30524 intensity
30525 Set the maximum intensity that can generated and scale the output
30526 values appropriately. The strength should be set as desired and
30527 then the intensity can be limited if needed to avoid washing-out.
30528 The value must be a float number in the range [0,1] and defaults to
30529 0.210.
30530
30531 antibanding
30532 Set the antibanding level. If enabled the filter will randomly vary
30533 the luminance of output pixels by a small amount to avoid banding
30534 of the histogram. Possible values are "none", "weak" or "strong".
30535 It defaults to "none".
30536
30537 histogram
30538 Compute and draw a color distribution histogram for the input video.
30539
30540 The computed histogram is a representation of the color component
30541 distribution in an image.
30542
30543 Standard histogram displays the color components distribution in an
30544 image. Displays color graph for each color component. Shows
30545 distribution of the Y, U, V, A or R, G, B components, depending on
30546 input format, in the current frame. Below each graph a color component
30547 scale meter is shown.
30548
30549 The filter accepts the following options:
30550
30551 level_height
30552 Set height of level. Default value is 200. Allowed range is [50,
30553 2048].
30554
30555 scale_height
30556 Set height of color scale. Default value is 12. Allowed range is
30557 [0, 40].
30558
30559 display_mode
30560 Set display mode. It accepts the following values:
30561
30562 stack
30563 Per color component graphs are placed below each other.
30564
30565 parade
30566 Per color component graphs are placed side by side.
30567
30568 overlay
30569 Presents information identical to that in the "parade", except
30570 that the graphs representing color components are superimposed
30571 directly over one another.
30572
30573 Default is "stack".
30574
30575 levels_mode
30576 Set mode. Can be either "linear", or "logarithmic". Default is
30577 "linear".
30578
30579 components
30580 Set what color components to display. Default is 7.
30581
30582 fgopacity
30583 Set foreground opacity. Default is 0.7.
30584
30585 bgopacity
30586 Set background opacity. Default is 0.5.
30587
30588 colors_mode
30589 Set colors mode. It accepts the following values:
30590
30591 whiteonblack
30592 blackonwhite
30593 whiteongray
30594 blackongray
30595 coloronblack
30596 coloronwhite
30597 colorongray
30598 blackoncolor
30599 whiteoncolor
30600 grayoncolor
30601
30602 Default is "whiteonblack".
30603
30604 Examples
30605
30606 • Calculate and draw histogram:
30607
30608 ffplay -i input -vf histogram
30609
30610 hqdn3d
30611 This is a high precision/quality 3d denoise filter. It aims to reduce
30612 image noise, producing smooth images and making still images really
30613 still. It should enhance compressibility.
30614
30615 It accepts the following optional parameters:
30616
30617 luma_spatial
30618 A non-negative floating point number which specifies spatial luma
30619 strength. It defaults to 4.0.
30620
30621 chroma_spatial
30622 A non-negative floating point number which specifies spatial chroma
30623 strength. It defaults to 3.0*luma_spatial/4.0.
30624
30625 luma_tmp
30626 A floating point number which specifies luma temporal strength. It
30627 defaults to 6.0*luma_spatial/4.0.
30628
30629 chroma_tmp
30630 A floating point number which specifies chroma temporal strength.
30631 It defaults to luma_tmp*chroma_spatial/luma_spatial.
30632
30633 Commands
30634
30635 This filter supports same commands as options. The command accepts the
30636 same syntax of the corresponding option.
30637
30638 If the specified expression is not valid, it is kept at its current
30639 value.
30640
30641 hwdownload
30642 Download hardware frames to system memory.
30643
30644 The input must be in hardware frames, and the output a non-hardware
30645 format. Not all formats will be supported on the output - it may be
30646 necessary to insert an additional format filter immediately following
30647 in the graph to get the output in a supported format.
30648
30649 hwmap
30650 Map hardware frames to system memory or to another device.
30651
30652 This filter has several different modes of operation; which one is used
30653 depends on the input and output formats:
30654
30655 • Hardware frame input, normal frame output
30656
30657 Map the input frames to system memory and pass them to the output.
30658 If the original hardware frame is later required (for example,
30659 after overlaying something else on part of it), the hwmap filter
30660 can be used again in the next mode to retrieve it.
30661
30662 • Normal frame input, hardware frame output
30663
30664 If the input is actually a software-mapped hardware frame, then
30665 unmap it - that is, return the original hardware frame.
30666
30667 Otherwise, a device must be provided. Create new hardware surfaces
30668 on that device for the output, then map them back to the software
30669 format at the input and give those frames to the preceding filter.
30670 This will then act like the hwupload filter, but may be able to
30671 avoid an additional copy when the input is already in a compatible
30672 format.
30673
30674 • Hardware frame input and output
30675
30676 A device must be supplied for the output, either directly or with
30677 the derive_device option. The input and output devices must be of
30678 different types and compatible - the exact meaning of this is
30679 system-dependent, but typically it means that they must refer to
30680 the same underlying hardware context (for example, refer to the
30681 same graphics card).
30682
30683 If the input frames were originally created on the output device,
30684 then unmap to retrieve the original frames.
30685
30686 Otherwise, map the frames to the output device - create new
30687 hardware frames on the output corresponding to the frames on the
30688 input.
30689
30690 The following additional parameters are accepted:
30691
30692 mode
30693 Set the frame mapping mode. Some combination of:
30694
30695 read
30696 The mapped frame should be readable.
30697
30698 write
30699 The mapped frame should be writeable.
30700
30701 overwrite
30702 The mapping will always overwrite the entire frame.
30703
30704 This may improve performance in some cases, as the original
30705 contents of the frame need not be loaded.
30706
30707 direct
30708 The mapping must not involve any copying.
30709
30710 Indirect mappings to copies of frames are created in some cases
30711 where either direct mapping is not possible or it would have
30712 unexpected properties. Setting this flag ensures that the
30713 mapping is direct and will fail if that is not possible.
30714
30715 Defaults to read+write if not specified.
30716
30717 derive_device type
30718 Rather than using the device supplied at initialisation, instead
30719 derive a new device of type type from the device the input frames
30720 exist on.
30721
30722 reverse
30723 In a hardware to hardware mapping, map in reverse - create frames
30724 in the sink and map them back to the source. This may be necessary
30725 in some cases where a mapping in one direction is required but only
30726 the opposite direction is supported by the devices being used.
30727
30728 This option is dangerous - it may break the preceding filter in
30729 undefined ways if there are any additional constraints on that
30730 filter's output. Do not use it without fully understanding the
30731 implications of its use.
30732
30733 hwupload
30734 Upload system memory frames to hardware surfaces.
30735
30736 The device to upload to must be supplied when the filter is
30737 initialised. If using ffmpeg, select the appropriate device with the
30738 -filter_hw_device option or with the derive_device option. The input
30739 and output devices must be of different types and compatible - the
30740 exact meaning of this is system-dependent, but typically it means that
30741 they must refer to the same underlying hardware context (for example,
30742 refer to the same graphics card).
30743
30744 The following additional parameters are accepted:
30745
30746 derive_device type
30747 Rather than using the device supplied at initialisation, instead
30748 derive a new device of type type from the device the input frames
30749 exist on.
30750
30751 hwupload_cuda
30752 Upload system memory frames to a CUDA device.
30753
30754 It accepts the following optional parameters:
30755
30756 device
30757 The number of the CUDA device to use
30758
30759 hqx
30760 Apply a high-quality magnification filter designed for pixel art. This
30761 filter was originally created by Maxim Stepin.
30762
30763 It accepts the following option:
30764
30765 n Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
30766 "hq4x". Default is 3.
30767
30768 hstack
30769 Stack input videos horizontally.
30770
30771 All streams must be of same pixel format and of same height.
30772
30773 Note that this filter is faster than using overlay and pad filter to
30774 create same output.
30775
30776 The filter accepts the following option:
30777
30778 inputs
30779 Set number of input streams. Default is 2.
30780
30781 shortest
30782 If set to 1, force the output to terminate when the shortest input
30783 terminates. Default value is 0.
30784
30785 hsvhold
30786 Turns a certain HSV range into gray values.
30787
30788 This filter measures color difference between set HSV color in options
30789 and ones measured in video stream. Depending on options, output colors
30790 can be changed to be gray or not.
30791
30792 The filter accepts the following options:
30793
30794 hue Set the hue value which will be used in color difference
30795 calculation. Allowed range is from -360 to 360. Default value is
30796 0.
30797
30798 sat Set the saturation value which will be used in color difference
30799 calculation. Allowed range is from -1 to 1. Default value is 0.
30800
30801 val Set the value which will be used in color difference calculation.
30802 Allowed range is from -1 to 1. Default value is 0.
30803
30804 similarity
30805 Set similarity percentage with the key color. Allowed range is
30806 from 0 to 1. Default value is 0.01.
30807
30808 0.00001 matches only the exact key color, while 1.0 matches
30809 everything.
30810
30811 blend
30812 Blend percentage. Allowed range is from 0 to 1. Default value is
30813 0.
30814
30815 0.0 makes pixels either fully gray, or not gray at all.
30816
30817 Higher values result in more gray pixels, with a higher gray pixel
30818 the more similar the pixels color is to the key color.
30819
30820 hsvkey
30821 Turns a certain HSV range into transparency.
30822
30823 This filter measures color difference between set HSV color in options
30824 and ones measured in video stream. Depending on options, output colors
30825 can be changed to transparent by adding alpha channel.
30826
30827 The filter accepts the following options:
30828
30829 hue Set the hue value which will be used in color difference
30830 calculation. Allowed range is from -360 to 360. Default value is
30831 0.
30832
30833 sat Set the saturation value which will be used in color difference
30834 calculation. Allowed range is from -1 to 1. Default value is 0.
30835
30836 val Set the value which will be used in color difference calculation.
30837 Allowed range is from -1 to 1. Default value is 0.
30838
30839 similarity
30840 Set similarity percentage with the key color. Allowed range is
30841 from 0 to 1. Default value is 0.01.
30842
30843 0.00001 matches only the exact key color, while 1.0 matches
30844 everything.
30845
30846 blend
30847 Blend percentage. Allowed range is from 0 to 1. Default value is
30848 0.
30849
30850 0.0 makes pixels either fully transparent, or not transparent at
30851 all.
30852
30853 Higher values result in semi-transparent pixels, with a higher
30854 transparency the more similar the pixels color is to the key color.
30855
30856 hue
30857 Modify the hue and/or the saturation of the input.
30858
30859 It accepts the following parameters:
30860
30861 h Specify the hue angle as a number of degrees. It accepts an
30862 expression, and defaults to "0".
30863
30864 s Specify the saturation in the [-10,10] range. It accepts an
30865 expression and defaults to "1".
30866
30867 H Specify the hue angle as a number of radians. It accepts an
30868 expression, and defaults to "0".
30869
30870 b Specify the brightness in the [-10,10] range. It accepts an
30871 expression and defaults to "0".
30872
30873 h and H are mutually exclusive, and can't be specified at the same
30874 time.
30875
30876 The b, h, H and s option values are expressions containing the
30877 following constants:
30878
30879 n frame count of the input frame starting from 0
30880
30881 pts presentation timestamp of the input frame expressed in time base
30882 units
30883
30884 r frame rate of the input video, NAN if the input frame rate is
30885 unknown
30886
30887 t timestamp expressed in seconds, NAN if the input timestamp is
30888 unknown
30889
30890 tb time base of the input video
30891
30892 Examples
30893
30894 • Set the hue to 90 degrees and the saturation to 1.0:
30895
30896 hue=h=90:s=1
30897
30898 • Same command but expressing the hue in radians:
30899
30900 hue=H=PI/2:s=1
30901
30902 • Rotate hue and make the saturation swing between 0 and 2 over a
30903 period of 1 second:
30904
30905 hue="H=2*PI*t: s=sin(2*PI*t)+1"
30906
30907 • Apply a 3 seconds saturation fade-in effect starting at 0:
30908
30909 hue="s=min(t/3\,1)"
30910
30911 The general fade-in expression can be written as:
30912
30913 hue="s=min(0\, max((t-START)/DURATION\, 1))"
30914
30915 • Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
30916
30917 hue="s=max(0\, min(1\, (8-t)/3))"
30918
30919 The general fade-out expression can be written as:
30920
30921 hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
30922
30923 Commands
30924
30925 This filter supports the following commands:
30926
30927 b
30928 s
30929 h
30930 H Modify the hue and/or the saturation and/or brightness of the input
30931 video. The command accepts the same syntax of the corresponding
30932 option.
30933
30934 If the specified expression is not valid, it is kept at its current
30935 value.
30936
30937 huesaturation
30938 Apply hue-saturation-intensity adjustments to input video stream.
30939
30940 This filter operates in RGB colorspace.
30941
30942 This filter accepts the following options:
30943
30944 hue Set the hue shift in degrees to apply. Default is 0. Allowed range
30945 is from -180 to 180.
30946
30947 saturation
30948 Set the saturation shift. Default is 0. Allowed range is from -1
30949 to 1.
30950
30951 intensity
30952 Set the intensity shift. Default is 0. Allowed range is from -1 to
30953 1.
30954
30955 colors
30956 Set which primary and complementary colors are going to be
30957 adjusted. This options is set by providing one or multiple values.
30958 This can select multiple colors at once. By default all colors are
30959 selected.
30960
30961 r Adjust reds.
30962
30963 y Adjust yellows.
30964
30965 g Adjust greens.
30966
30967 c Adjust cyans.
30968
30969 b Adjust blues.
30970
30971 m Adjust magentas.
30972
30973 a Adjust all colors.
30974
30975 strength
30976 Set strength of filtering. Allowed range is from 0 to 100. Default
30977 value is 1.
30978
30979 rw, gw, bw
30980 Set weight for each RGB component. Allowed range is from 0 to 1.
30981 By default is set to 0.333, 0.334, 0.333. Those options are used
30982 in saturation and lightess processing.
30983
30984 lightness
30985 Set preserving lightness, by default is disabled. Adjusting hues
30986 can change lightness from original RGB triplet, with this option
30987 enabled lightness is kept at same value.
30988
30989 hysteresis
30990 Grow first stream into second stream by connecting components. This
30991 makes it possible to build more robust edge masks.
30992
30993 This filter accepts the following options:
30994
30995 planes
30996 Set which planes will be processed as bitmap, unprocessed planes
30997 will be copied from first stream. By default value 0xf, all planes
30998 will be processed.
30999
31000 threshold
31001 Set threshold which is used in filtering. If pixel component value
31002 is higher than this value filter algorithm for connecting
31003 components is activated. By default value is 0.
31004
31005 The "hysteresis" filter also supports the framesync options.
31006
31007 iccdetect
31008 Detect the colorspace from an embedded ICC profile (if present), and
31009 update the frame's tags accordingly.
31010
31011 This filter accepts the following options:
31012
31013 force
31014 If true, the frame's existing colorspace tags will always be
31015 overridden by values detected from an ICC profile. Otherwise, they
31016 will only be assigned if they contain "unknown". Enabled by
31017 default.
31018
31019 iccgen
31020 Generate ICC profiles and attach them to frames.
31021
31022 This filter accepts the following options:
31023
31024 color_primaries
31025 color_trc
31026 Configure the colorspace that the ICC profile will be generated
31027 for. The default value of "auto" infers the value from the input
31028 frame's metadata, defaulting to BT.709/sRGB as appropriate.
31029
31030 See the setparams filter for a list of possible values, but note
31031 that "unknown" are not valid values for this filter.
31032
31033 force
31034 If true, an ICC profile will be generated even if it would
31035 overwrite an already existing ICC profile. Disabled by default.
31036
31037 identity
31038 Obtain the identity score between two input videos.
31039
31040 This filter takes two input videos.
31041
31042 Both input videos must have the same resolution and pixel format for
31043 this filter to work correctly. Also it assumes that both inputs have
31044 the same number of frames, which are compared one by one.
31045
31046 The obtained per component, average, min and max identity score is
31047 printed through the logging system.
31048
31049 The filter stores the calculated identity scores of each frame in frame
31050 metadata.
31051
31052 In the below example the input file main.mpg being processed is
31053 compared with the reference file ref.mpg.
31054
31055 ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
31056
31057 idet
31058 Detect video interlacing type.
31059
31060 This filter tries to detect if the input frames are interlaced,
31061 progressive, top or bottom field first. It will also try to detect
31062 fields that are repeated between adjacent frames (a sign of telecine).
31063
31064 Single frame detection considers only immediately adjacent frames when
31065 classifying each frame. Multiple frame detection incorporates the
31066 classification history of previous frames.
31067
31068 The filter will log these metadata values:
31069
31070 single.current_frame
31071 Detected type of current frame using single-frame detection. One
31072 of: ``tff'' (top field first), ``bff'' (bottom field first),
31073 ``progressive'', or ``undetermined''
31074
31075 single.tff
31076 Cumulative number of frames detected as top field first using
31077 single-frame detection.
31078
31079 multiple.tff
31080 Cumulative number of frames detected as top field first using
31081 multiple-frame detection.
31082
31083 single.bff
31084 Cumulative number of frames detected as bottom field first using
31085 single-frame detection.
31086
31087 multiple.current_frame
31088 Detected type of current frame using multiple-frame detection. One
31089 of: ``tff'' (top field first), ``bff'' (bottom field first),
31090 ``progressive'', or ``undetermined''
31091
31092 multiple.bff
31093 Cumulative number of frames detected as bottom field first using
31094 multiple-frame detection.
31095
31096 single.progressive
31097 Cumulative number of frames detected as progressive using single-
31098 frame detection.
31099
31100 multiple.progressive
31101 Cumulative number of frames detected as progressive using multiple-
31102 frame detection.
31103
31104 single.undetermined
31105 Cumulative number of frames that could not be classified using
31106 single-frame detection.
31107
31108 multiple.undetermined
31109 Cumulative number of frames that could not be classified using
31110 multiple-frame detection.
31111
31112 repeated.current_frame
31113 Which field in the current frame is repeated from the last. One of
31114 ``neither'', ``top'', or ``bottom''.
31115
31116 repeated.neither
31117 Cumulative number of frames with no repeated field.
31118
31119 repeated.top
31120 Cumulative number of frames with the top field repeated from the
31121 previous frame's top field.
31122
31123 repeated.bottom
31124 Cumulative number of frames with the bottom field repeated from the
31125 previous frame's bottom field.
31126
31127 The filter accepts the following options:
31128
31129 intl_thres
31130 Set interlacing threshold.
31131
31132 prog_thres
31133 Set progressive threshold.
31134
31135 rep_thres
31136 Threshold for repeated field detection.
31137
31138 half_life
31139 Number of frames after which a given frame's contribution to the
31140 statistics is halved (i.e., it contributes only 0.5 to its
31141 classification). The default of 0 means that all frames seen are
31142 given full weight of 1.0 forever.
31143
31144 analyze_interlaced_flag
31145 When this is not 0 then idet will use the specified number of
31146 frames to determine if the interlaced flag is accurate, it will not
31147 count undetermined frames. If the flag is found to be accurate it
31148 will be used without any further computations, if it is found to be
31149 inaccurate it will be cleared without any further computations.
31150 This allows inserting the idet filter as a low computational method
31151 to clean up the interlaced flag
31152
31153 il
31154 Deinterleave or interleave fields.
31155
31156 This filter allows one to process interlaced images fields without
31157 deinterlacing them. Deinterleaving splits the input frame into 2 fields
31158 (so called half pictures). Odd lines are moved to the top half of the
31159 output image, even lines to the bottom half. You can process (filter)
31160 them independently and then re-interleave them.
31161
31162 The filter accepts the following options:
31163
31164 luma_mode, l
31165 chroma_mode, c
31166 alpha_mode, a
31167 Available values for luma_mode, chroma_mode and alpha_mode are:
31168
31169 none
31170 Do nothing.
31171
31172 deinterleave, d
31173 Deinterleave fields, placing one above the other.
31174
31175 interleave, i
31176 Interleave fields. Reverse the effect of deinterleaving.
31177
31178 Default value is "none".
31179
31180 luma_swap, ls
31181 chroma_swap, cs
31182 alpha_swap, as
31183 Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
31184 value is 0.
31185
31186 Commands
31187
31188 This filter supports the all above options as commands.
31189
31190 inflate
31191 Apply inflate effect to the video.
31192
31193 This filter replaces the pixel by the local(3x3) average by taking into
31194 account only values higher than the pixel.
31195
31196 It accepts the following options:
31197
31198 threshold0
31199 threshold1
31200 threshold2
31201 threshold3
31202 Limit the maximum change for each plane, default is 65535. If 0,
31203 plane will remain unchanged.
31204
31205 Commands
31206
31207 This filter supports the all above options as commands.
31208
31209 interlace
31210 Simple interlacing filter from progressive contents. This interleaves
31211 upper (or lower) lines from odd frames with lower (or upper) lines from
31212 even frames, halving the frame rate and preserving image height.
31213
31214 Original Original New Frame
31215 Frame 'j' Frame 'j+1' (tff)
31216 ========== =========== ==================
31217 Line 0 --------------------> Frame 'j' Line 0
31218 Line 1 Line 1 ----> Frame 'j+1' Line 1
31219 Line 2 ---------------------> Frame 'j' Line 2
31220 Line 3 Line 3 ----> Frame 'j+1' Line 3
31221 ... ... ...
31222 New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
31223
31224 It accepts the following optional parameters:
31225
31226 scan
31227 This determines whether the interlaced frame is taken from the even
31228 (tff - default) or odd (bff) lines of the progressive frame.
31229
31230 lowpass
31231 Vertical lowpass filter to avoid twitter interlacing and reduce
31232 moire patterns.
31233
31234 0, off
31235 Disable vertical lowpass filter
31236
31237 1, linear
31238 Enable linear filter (default)
31239
31240 2, complex
31241 Enable complex filter. This will slightly less reduce twitter
31242 and moire but better retain detail and subjective sharpness
31243 impression.
31244
31245 kerndeint
31246 Deinterlace input video by applying Donald Graft's adaptive kernel
31247 deinterling. Work on interlaced parts of a video to produce progressive
31248 frames.
31249
31250 The description of the accepted parameters follows.
31251
31252 thresh
31253 Set the threshold which affects the filter's tolerance when
31254 determining if a pixel line must be processed. It must be an
31255 integer in the range [0,255] and defaults to 10. A value of 0 will
31256 result in applying the process on every pixels.
31257
31258 map Paint pixels exceeding the threshold value to white if set to 1.
31259 Default is 0.
31260
31261 order
31262 Set the fields order. Swap fields if set to 1, leave fields alone
31263 if 0. Default is 0.
31264
31265 sharp
31266 Enable additional sharpening if set to 1. Default is 0.
31267
31268 twoway
31269 Enable twoway sharpening if set to 1. Default is 0.
31270
31271 Examples
31272
31273 • Apply default values:
31274
31275 kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
31276
31277 • Enable additional sharpening:
31278
31279 kerndeint=sharp=1
31280
31281 • Paint processed pixels in white:
31282
31283 kerndeint=map=1
31284
31285 kirsch
31286 Apply kirsch operator to input video stream.
31287
31288 The filter accepts the following option:
31289
31290 planes
31291 Set which planes will be processed, unprocessed planes will be
31292 copied. By default value 0xf, all planes will be processed.
31293
31294 scale
31295 Set value which will be multiplied with filtered result.
31296
31297 delta
31298 Set value which will be added to filtered result.
31299
31300 Commands
31301
31302 This filter supports the all above options as commands.
31303
31304 lagfun
31305 Slowly update darker pixels.
31306
31307 This filter makes short flashes of light appear longer. This filter
31308 accepts the following options:
31309
31310 decay
31311 Set factor for decaying. Default is .95. Allowed range is from 0 to
31312 1.
31313
31314 planes
31315 Set which planes to filter. Default is all. Allowed range is from 0
31316 to 15.
31317
31318 Commands
31319
31320 This filter supports the all above options as commands.
31321
31322 lenscorrection
31323 Correct radial lens distortion
31324
31325 This filter can be used to correct for radial distortion as can result
31326 from the use of wide angle lenses, and thereby re-rectify the image. To
31327 find the right parameters one can use tools available for example as
31328 part of opencv or simply trial-and-error. To use opencv use the
31329 calibration sample (under samples/cpp) from the opencv sources and
31330 extract the k1 and k2 coefficients from the resulting matrix.
31331
31332 Note that effectively the same filter is available in the open-source
31333 tools Krita and Digikam from the KDE project.
31334
31335 In contrast to the vignette filter, which can also be used to
31336 compensate lens errors, this filter corrects the distortion of the
31337 image, whereas vignette corrects the brightness distribution, so you
31338 may want to use both filters together in certain cases, though you will
31339 have to take care of ordering, i.e. whether vignetting should be
31340 applied before or after lens correction.
31341
31342 Options
31343
31344 The filter accepts the following options:
31345
31346 cx Relative x-coordinate of the focal point of the image, and thereby
31347 the center of the distortion. This value has a range [0,1] and is
31348 expressed as fractions of the image width. Default is 0.5.
31349
31350 cy Relative y-coordinate of the focal point of the image, and thereby
31351 the center of the distortion. This value has a range [0,1] and is
31352 expressed as fractions of the image height. Default is 0.5.
31353
31354 k1 Coefficient of the quadratic correction term. This value has a
31355 range [-1,1]. 0 means no correction. Default is 0.
31356
31357 k2 Coefficient of the double quadratic correction term. This value has
31358 a range [-1,1]. 0 means no correction. Default is 0.
31359
31360 i Set interpolation type. Can be "nearest" or "bilinear". Default is
31361 "nearest".
31362
31363 fc Specify the color of the unmapped pixels. For the syntax of this
31364 option, check the "Color" section in the ffmpeg-utils manual.
31365 Default color is "black@0".
31366
31367 The formula that generates the correction is:
31368
31369 r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
31370
31371 where r_0 is halve of the image diagonal and r_src and r_tgt are the
31372 distances from the focal point in the source and target images,
31373 respectively.
31374
31375 Commands
31376
31377 This filter supports the all above options as commands.
31378
31379 lensfun
31380 Apply lens correction via the lensfun library
31381 (<http://lensfun.sourceforge.net/>).
31382
31383 The "lensfun" filter requires the camera make, camera model, and lens
31384 model to apply the lens correction. The filter will load the lensfun
31385 database and query it to find the corresponding camera and lens entries
31386 in the database. As long as these entries can be found with the given
31387 options, the filter can perform corrections on frames. Note that
31388 incomplete strings will result in the filter choosing the best match
31389 with the given options, and the filter will output the chosen camera
31390 and lens models (logged with level "info"). You must provide the make,
31391 camera model, and lens model as they are required.
31392
31393 To obtain a list of available makes and models, leave out one or both
31394 of "make" and "model" options. The filter will send the full list to
31395 the log with level "INFO". The first column is the make and the second
31396 column is the model. To obtain a list of available lenses, set any
31397 values for make and model and leave out the "lens_model" option. The
31398 filter will send the full list of lenses in the log with level "INFO".
31399 The ffmpeg tool will exit after the list is printed.
31400
31401 The filter accepts the following options:
31402
31403 make
31404 The make of the camera (for example, "Canon"). This option is
31405 required.
31406
31407 model
31408 The model of the camera (for example, "Canon EOS 100D"). This
31409 option is required.
31410
31411 lens_model
31412 The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
31413 IS STM"). This option is required.
31414
31415 db_path
31416 The full path to the lens database folder. If not set, the filter
31417 will attempt to load the database from the install path when the
31418 library was built. Default is unset.
31419
31420 mode
31421 The type of correction to apply. The following values are valid
31422 options:
31423
31424 vignetting
31425 Enables fixing lens vignetting.
31426
31427 geometry
31428 Enables fixing lens geometry. This is the default.
31429
31430 subpixel
31431 Enables fixing chromatic aberrations.
31432
31433 vig_geo
31434 Enables fixing lens vignetting and lens geometry.
31435
31436 vig_subpixel
31437 Enables fixing lens vignetting and chromatic aberrations.
31438
31439 distortion
31440 Enables fixing both lens geometry and chromatic aberrations.
31441
31442 all Enables all possible corrections.
31443
31444 focal_length
31445 The focal length of the image/video (zoom; expected constant for
31446 video). For example, a 18--55mm lens has focal length range of
31447 [18--55], so a value in that range should be chosen when using that
31448 lens. Default 18.
31449
31450 aperture
31451 The aperture of the image/video (expected constant for video). Note
31452 that aperture is only used for vignetting correction. Default 3.5.
31453
31454 focus_distance
31455 The focus distance of the image/video (expected constant for
31456 video). Note that focus distance is only used for vignetting and
31457 only slightly affects the vignetting correction process. If
31458 unknown, leave it at the default value (which is 1000).
31459
31460 scale
31461 The scale factor which is applied after transformation. After
31462 correction the video is no longer necessarily rectangular. This
31463 parameter controls how much of the resulting image is visible. The
31464 value 0 means that a value will be chosen automatically such that
31465 there is little or no unmapped area in the output image. 1.0 means
31466 that no additional scaling is done. Lower values may result in more
31467 of the corrected image being visible, while higher values may avoid
31468 unmapped areas in the output.
31469
31470 target_geometry
31471 The target geometry of the output image/video. The following values
31472 are valid options:
31473
31474 rectilinear (default)
31475 fisheye
31476 panoramic
31477 equirectangular
31478 fisheye_orthographic
31479 fisheye_stereographic
31480 fisheye_equisolid
31481 fisheye_thoby
31482 reverse
31483 Apply the reverse of image correction (instead of correcting
31484 distortion, apply it).
31485
31486 interpolation
31487 The type of interpolation used when correcting distortion. The
31488 following values are valid options:
31489
31490 nearest
31491 linear (default)
31492 lanczos
31493
31494 Examples
31495
31496 • Apply lens correction with make "Canon", camera model "Canon EOS
31497 100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
31498 focal length of "18" and aperture of "8.0".
31499
31500 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
31501
31502 • Apply the same as before, but only for the first 5 seconds of
31503 video.
31504
31505 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
31506
31507 libplacebo
31508 Flexible GPU-accelerated processing filter based on libplacebo
31509 (<https://code.videolan.org/videolan/libplacebo>). Note that this
31510 filter currently only accepts Vulkan input frames.
31511
31512 Options
31513
31514 The options for this filter are divided into the following sections:
31515
31516 Output mode
31517
31518 These options control the overall output mode. By default, libplacebo
31519 will try to preserve the source colorimetry and size as best as it can,
31520 but it will apply any embedded film grain, dolby vision metadata or
31521 anamorphic SAR present in source frames.
31522
31523 w
31524 h Set the output video dimension expression. Default value is the
31525 input dimension.
31526
31527 Allows for the same expressions as the scale filter.
31528
31529 format
31530 Set the output format override. If unset (the default), frames will
31531 be output in the same format as the respective input frames.
31532 Otherwise, format conversion will be performed.
31533
31534 force_original_aspect_ratio
31535 force_divisible_by
31536 Work the same as the identical scale filter options.
31537
31538 normalize_sar
31539 If enabled (the default), output frames will always have a pixel
31540 aspect ratio of 1:1. If disabled, any aspect ratio mismatches,
31541 including those from e.g. anamorphic video sources, are forwarded
31542 to the output pixel aspect ratio.
31543
31544 pad_crop_ratio
31545 Specifies a ratio (between 0.0 and 1.0) between padding and
31546 cropping when the input aspect ratio does not match the output
31547 aspect ratio and normalize_sar is in effect. The default of 0.0
31548 always pads the content with black borders, while a value of 1.0
31549 always crops off parts of the content. Intermediate values are
31550 possible, leading to a mix of the two approaches.
31551
31552 colorspace
31553 color_primaries
31554 color_trc
31555 range
31556 Configure the colorspace that output frames will be delivered in.
31557 The default value of "auto" outputs frames in the same format as
31558 the input frames, leading to no change. For any other value,
31559 conversion will be performed.
31560
31561 See the setparams filter for a list of possible values.
31562
31563 apply_filmgrain
31564 Apply film grain (e.g. AV1 or H.274) if present in source frames,
31565 and strip it from the output. Enabled by default.
31566
31567 apply_dolbyvision
31568 Apply Dolby Vision RPU metadata if present in source frames, and
31569 strip it from the output. Enabled by default. Note that Dolby
31570 Vision will always output BT.2020+PQ, overriding the usual input
31571 frame metadata. These will also be picked as the values of "auto"
31572 for the respective frame output options.
31573
31574 Scaling
31575
31576 The options in this section control how libplacebo performs upscaling
31577 and (if necessary) downscaling. Note that libplacebo will always
31578 internally operate on 4:4:4 content, so any sub-sampled chroma formats
31579 such as "yuv420p" will necessarily be upsampled and downsampled as part
31580 of the rendering process. That means scaling might be in effect even if
31581 the source and destination resolution are the same.
31582
31583 upscaler
31584 downscaler
31585 Configure the filter kernel used for upscaling and downscaling. The
31586 respective defaults are "spline36" and "mitchell". For a full list
31587 of possible values, pass "help" to these options. The most
31588 important values are:
31589
31590 none
31591 Forces the use of built-in GPU texture sampling (typically
31592 bilinear). Extremely fast but poor quality, especially when
31593 downscaling.
31594
31595 bilinear
31596 Bilinear interpolation. Can generally be done for free on GPUs,
31597 except when doing so would lead to aliasing. Fast and low
31598 quality.
31599
31600 nearest
31601 Nearest-neighbour interpolation. Sharp but highly aliasing.
31602
31603 oversample
31604 Algorithm that looks visually similar to nearest-neighbour
31605 interpolation but tries to preserve pixel aspect ratio. Good
31606 for pixel art, since it results in minimal distortion of the
31607 artistic appearance.
31608
31609 lanczos
31610 Standard sinc-sinc interpolation kernel.
31611
31612 spline36
31613 Cubic spline approximation of lanczos. No difference in
31614 performance, but has very slightly less ringing.
31615
31616 ewa_lanczos
31617 Elliptically weighted average version of lanczos, based on a
31618 jinc-sinc kernel. This is also popularly referred to as just
31619 "Jinc scaling". Slow but very high quality.
31620
31621 gaussian
31622 Gaussian kernel. Has certain ideal mathematical properties, but
31623 subjectively very blurry.
31624
31625 mitchell
31626 Cubic BC spline with parameters recommended by Mitchell and
31627 Netravali. Very little ringing.
31628
31629 lut_entries
31630 Configures the size of scaler LUTs, ranging from 1 to 256. The
31631 default of 0 will pick libplacebo's internal default, typically 64.
31632
31633 antiringing
31634 Enables anti-ringing (for non-EWA filters). The value (between 0.0
31635 and 1.0) configures the strength of the anti-ringing algorithm. May
31636 increase aliasing if set too high. Disabled by default.
31637
31638 sigmoid
31639 Enable sigmoidal compression during upscaling. Reduces ringing
31640 slightly. Enabled by default.
31641
31642 Debanding
31643
31644 Libplacebo comes with a built-in debanding filter that is good at
31645 counteracting many common sources of banding and blocking. Turning this
31646 on is highly recommended whenever quality is desired.
31647
31648 deband
31649 Enable (fast) debanding algorithm. Disabled by default.
31650
31651 deband_iterations
31652 Number of deband iterations of the debanding algorithm. Each
31653 iteration is performed with progressively increased radius (and
31654 diminished threshold). Recommended values are in the range 1 to 4.
31655 Defaults to 1.
31656
31657 deband_threshold
31658 Debanding filter strength. Higher numbers lead to more aggressive
31659 debanding. Defaults to 4.0.
31660
31661 deband_radius
31662 Debanding filter radius. A higher radius is better for slow
31663 gradients, while a lower radius is better for steep gradients.
31664 Defaults to 16.0.
31665
31666 deband_grain
31667 Amount of extra output grain to add. Helps hide imperfections.
31668 Defaults to 6.0.
31669
31670 Color adjustment
31671
31672 A collection of subjective color controls. Not very rigorous, so the
31673 exact effect will vary somewhat depending on the input primaries and
31674 colorspace.
31675
31676 brightness
31677 Brightness boost, between "-1.0" and 1.0. Defaults to 0.0.
31678
31679 contrast
31680 Contrast gain, between 0.0 and 16.0. Defaults to 1.0.
31681
31682 saturation
31683 Saturation gain, between 0.0 and 16.0. Defaults to 1.0.
31684
31685 hue Hue shift in radians, between "-3.14" and 3.14. Defaults to 0.0.
31686 This will rotate the UV subvector, defaulting to BT.709
31687 coefficients for RGB inputs.
31688
31689 gamma
31690 Gamma adjustment, between 0.0 and 16.0. Defaults to 1.0.
31691
31692 cones
31693 Cone model to use for color blindness simulation. Accepts any
31694 combination of "l", "m" and "s". Here are some examples:
31695
31696 m Deuteranomaly / deuteranopia (affecting 3%-4% of the
31697 population)
31698
31699 l Protanomaly / protanopia (affecting 1%-2% of the population)
31700
31701 l+m Monochromacy (very rare)
31702
31703 l+m+s
31704 Achromatopsy (complete loss of daytime vision, extremely rare)
31705
31706 cone-strength
31707 Gain factor for the cones specified by "cones", between 0.0 and
31708 10.0. A value of 1.0 results in no change to color vision. A value
31709 of 0.0 (the default) simulates complete loss of those cones. Values
31710 above 1.0 result in exaggerating the differences between cones,
31711 which may help compensate for reduced color vision.
31712
31713 Peak detection
31714
31715 To help deal with sources that only have static HDR10 metadata (or no
31716 tagging whatsoever), libplacebo uses its own internal frame analysis
31717 compute shader to analyze source frames and adapt the tone mapping
31718 function in realtime. If this is too slow, or if exactly reproducible
31719 frame-perfect results are needed, it's recommended to turn this feature
31720 off.
31721
31722 peak_detect
31723 Enable HDR peak detection. Ignores static MaxCLL/MaxFALL values in
31724 favor of dynamic detection from the input. Note that the detected
31725 values do not get written back to the output frames, they merely
31726 guide the internal tone mapping process. Enabled by default.
31727
31728 smoothing_period
31729 Peak detection smoothing period, between 0.0 and 1000.0. Higher
31730 values result in peak detection becoming less responsive to changes
31731 in the input. Defaults to 100.0.
31732
31733 minimum_peak
31734 Lower bound on the detected peak (relative to SDR white), between
31735 0.0 and 100.0. Defaults to 1.0.
31736
31737 scene_threshold_low
31738 scene_threshold_high
31739 Lower and upper thresholds for scene change detection. Expressed in
31740 a logarithmic scale between 0.0 and 100.0. Default to 5.5 and 10.0,
31741 respectively. Setting either to a negative value disables this
31742 functionality.
31743
31744 overshoot
31745 Peak smoothing overshoot margin, between 0.0 and 1.0. Provides a
31746 safety margin to prevent clipping as a result of peak smoothing.
31747 Defaults to 0.05, corresponding to a margin of 5%.
31748
31749 Tone mapping
31750
31751 The options in this section control how libplacebo performs tone-
31752 mapping and gamut-mapping when dealing with mismatches between wide-
31753 gamut or HDR content. In general, libplacebo relies on accurate source
31754 tagging and mastering display gamut information to produce the best
31755 results.
31756
31757 intent
31758 Rendering intent to use when adapting between different primary
31759 color gamuts (after tone-mapping).
31760
31761 perceptual
31762 Perceptual gamut mapping. Currently equivalent to relative
31763 colorimetric.
31764
31765 relative
31766 Relative colorimetric. This is the default.
31767
31768 absolute
31769 Absolute colorimetric.
31770
31771 saturation
31772 Saturation mapping. Forcibly stretches the source gamut to the
31773 target gamut.
31774
31775 gamut_mode
31776 How to handle out-of-gamut colors that can occur as a result of
31777 colorimetric gamut mapping.
31778
31779 clip
31780 Do nothing, simply clip out-of-range colors to the RGB volume.
31781 This is the default.
31782
31783 warn
31784 Highlight out-of-gamut pixels (by coloring them pink).
31785
31786 darken
31787 Linearly reduces content brightness to preserves saturated
31788 details, followed by clipping the remaining out-of-gamut
31789 colors. As the name implies, this makes everything darker, but
31790 provides a good balance between preserving details and colors.
31791
31792 desaturate
31793 Hard-desaturates out-of-gamut colors towards white, while
31794 preserving the luminance. Has a tendency to shift colors.
31795
31796 tonemapping
31797 Tone-mapping algorithm to use. Available values are:
31798
31799 auto
31800 Automatic selection based on internal heuristics. This is the
31801 default.
31802
31803 clip
31804 Performs no tone-mapping, just clips out-of-range colors.
31805 Retains perfect color accuracy for in-range colors but
31806 completely destroys out-of-range information. Does not perform
31807 any black point adaptation. Not configurable.
31808
31809 bt.2390
31810 EETF from the ITU-R Report BT.2390, a hermite spline roll-off
31811 with linear segment. The knee point offset is configurable.
31812 Note that this parameter defaults to 1.0, rather than the value
31813 of 0.5 from the ITU-R spec.
31814
31815 bt.2446a
31816 EETF from ITU-R Report BT.2446, method A. Designed for well-
31817 mastered HDR sources. Can be used for both forward and inverse
31818 tone mapping. Not configurable.
31819
31820 spline
31821 Simple spline consisting of two polynomials, joined by a single
31822 pivot point. The parameter gives the pivot point (in PQ
31823 space), defaulting to 0.30. Can be used for both forward and
31824 inverse tone mapping.
31825
31826 reinhard
31827 Simple non-linear, global tone mapping algorithm. The parameter
31828 specifies the local contrast coefficient at the display peak.
31829 Essentially, a parameter of 0.5 implies that the reference
31830 white will be about half as bright as when clipping. Defaults
31831 to 0.5, which results in the simplest formulation of this
31832 function.
31833
31834 mobius
31835 Generalization of the reinhard tone mapping algorithm to
31836 support an additional linear slope near black. The tone mapping
31837 parameter indicates the trade-off between the linear section
31838 and the non-linear section. Essentially, for a given parameter
31839 x, every color value below x will be mapped linearly, while
31840 higher values get non-linearly tone-mapped. Values near 1.0
31841 make this curve behave like "clip", while values near 0.0 make
31842 this curve behave like "reinhard". The default value is 0.3,
31843 which provides a good balance between colorimetric accuracy and
31844 preserving out-of-gamut details.
31845
31846 hable
31847 Piece-wise, filmic tone-mapping algorithm developed by John
31848 Hable for use in Uncharted 2, inspired by a similar tone-
31849 mapping algorithm used by Kodak. Popularized by its use in
31850 video games with HDR rendering. Preserves both dark and bright
31851 details very well, but comes with the drawback of changing the
31852 average brightness quite significantly. This is sort of similar
31853 to "reinhard" with parameter 0.24.
31854
31855 gamma
31856 Fits a gamma (power) function to transfer between the source
31857 and target color spaces, effectively resulting in a perceptual
31858 hard-knee joining two roughly linear sections. This preserves
31859 details at all scales fairly accurately, but can result in an
31860 image with a muted or dull appearance. The parameter is used as
31861 the cutoff point, defaulting to 0.5.
31862
31863 linear
31864 Linearly stretches the input range to the output range, in PQ
31865 space. This will preserve all details accurately, but results
31866 in a significantly different average brightness. Can be used
31867 for inverse tone-mapping in addition to regular tone-mapping.
31868 The parameter can be used as an additional linear gain
31869 coefficient (defaulting to 1.0).
31870
31871 tonemapping_param
31872 For tunable tone mapping functions, this parameter can be used to
31873 fine-tune the curve behavior. Refer to the documentation of
31874 "tonemapping". The default value of 0.0 is replaced by the curve's
31875 preferred default setting.
31876
31877 tonemapping_mode
31878 This option determines how the tone mapping function specified by
31879 "tonemapping" is applied to the colors in a scene. Possible values
31880 are:
31881
31882 auto
31883 Automatic selection based on internal heuristics. This is the
31884 default.
31885
31886 rgb Apply the function per-channel in the RGB colorspace. Per-
31887 channel tone-mapping in RGB. Guarantees no clipping and heavily
31888 desaturates the output, but distorts the colors quite
31889 significantly. Very similar to the "Hollywood" look and feel.
31890
31891 max Tone-mapping is performed on the brightest component found in
31892 the signal. Good at preserving details in highlights, but has a
31893 tendency to crush blacks.
31894
31895 hybrid
31896 Tone-map per-channel for highlights and linearly (luma-based)
31897 for midtones/shadows, based on a fixed gamma 2.4 coefficient
31898 curve.
31899
31900 luma
31901 Tone-map linearly on the luma component (CIE Y), and adjust
31902 (desaturate) the chromaticities to compensate using a simple
31903 constant factor. This is essentially the mode used in ITU-R
31904 BT.2446 method A.
31905
31906 inverse_tonemapping
31907 If enabled, this filter will also attempt stretching SDR signals to
31908 fill HDR output color volumes. Disabled by default.
31909
31910 tonemapping_crosstalk
31911 Extra tone-mapping crosstalk factor, between 0.0 and 0.3. This can
31912 help reduce issues tone-mapping certain bright spectral colors.
31913 Defaults to 0.04.
31914
31915 tonemapping_lut_size
31916 Size of the tone-mapping LUT, between 2 and 1024. Defaults to 256.
31917 Note that this figure is squared when combined with "peak_detect".
31918
31919 Dithering
31920
31921 By default, libplacebo will dither whenever necessary, which includes
31922 rendering to any integer format below 16-bit precision. It's
31923 recommended to always leave this on, since not doing so may result in
31924 visible banding in the output, even if the "debanding" filter is
31925 enabled. If maximum performance is needed, use "ordered_fixed" instead
31926 of disabling dithering.
31927
31928 dithering
31929 Dithering method to use. Accepts the following values:
31930
31931 none
31932 Disables dithering completely. May result in visible banding.
31933
31934 blue
31935 Dither with pseudo-blue noise. This is the default.
31936
31937 ordered
31938 Tunable ordered dither pattern.
31939
31940 ordered_fixed
31941 Faster ordered dither with a fixed size of 6. Texture-less.
31942
31943 white
31944 Dither with white noise. Texture-less.
31945
31946 dither_lut_size
31947 Dither LUT size, as log base2 between 1 and 8. Defaults to 6,
31948 corresponding to a LUT size of "64x64".
31949
31950 dither_temporal
31951 Enables temporal dithering. Disabled by default.
31952
31953 Custom shaders
31954
31955 libplacebo supports a number of custom shaders based on the mpv .hook
31956 GLSL syntax. A collection of such shaders can be found here:
31957 <https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders>
31958
31959 A full description of the mpv shader format is beyond the scope of this
31960 section, but a summary can be found here:
31961 <https://mpv.io/manual/master/#options-glsl-shader>
31962
31963 custom_shader_path
31964 Specifies a path to a custom shader file to load at runtime.
31965
31966 custom_shader_bin
31967 Specifies a complete custom shader as a raw string.
31968
31969 Debugging / performance
31970
31971 All of the options in this section default off. They may be of
31972 assistance when attempting to squeeze the maximum performance at the
31973 cost of quality.
31974
31975 skip_aa
31976 Disable anti-aliasing when downscaling.
31977
31978 polar_cutoff
31979 Truncate polar (EWA) scaler kernels below this absolute magnitude,
31980 between 0.0 and 1.0.
31981
31982 disable_linear
31983 Disable linear light scaling.
31984
31985 disable_builtin
31986 Disable built-in GPU sampling (forces LUT).
31987
31988 force_icc_lut
31989 Force the use of a full ICC 3DLUT for gamut mapping.
31990
31991 disable_fbos
31992 Forcibly disable FBOs, resulting in loss of almost all
31993 functionality, but offering the maximum possible speed.
31994
31995 Commands
31996
31997 This filter supports almost all of the above options as commands.
31998
31999 Examples
32000
32001 • Complete example for how to initialize the Vulkan device, upload
32002 frames to the GPU, perform filter conversion to yuv420p, and
32003 download frames back to the CPU for output. Note that in specific
32004 cases you can get around the need to perform format conversion by
32005 specifying the correct "format" filter option corresponding to the
32006 input frames.
32007
32008 ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
32009
32010 • Tone-map input to standard gamut BT.709 output:
32011
32012 libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
32013
32014 • Rescale input to fit into standard 1080p, with high quality
32015 scaling:
32016
32017 libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
32018
32019 • Convert input to standard sRGB JPEG:
32020
32021 libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
32022
32023 • Use higher quality debanding settings:
32024
32025 libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
32026
32027 • Run this filter on the CPU, on systems with Mesa installed (and
32028 with the most expensive options disabled):
32029
32030 ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
32031
32032 • Suppress CPU-based AV1/H.274 film grain application in the decoder,
32033 in favor of doing it with this filter. Note that this is only a
32034 gain if the frames are either already on the GPU, or if you're
32035 using libplacebo for other purposes, since otherwise the VRAM
32036 roundtrip will more than offset any expected speedup.
32037
32038 ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
32039
32040 libvmaf
32041 Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
32042 reference/distorted pair of input videos.
32043
32044 The first input is the distorted video, and the second input is the
32045 reference video.
32046
32047 The obtained VMAF score is printed through the logging system.
32048
32049 It requires Netflix's vmaf library (libvmaf) as a pre-requisite. After
32050 installing the library it can be enabled using: "./configure
32051 --enable-libvmaf".
32052
32053 The filter has following options:
32054
32055 model
32056 A `|` delimited list of vmaf models. Each model can be configured
32057 with a number of parameters. Default value: "version=vmaf_v0.6.1"
32058
32059 model_path
32060 Deprecated, use model='path=...'.
32061
32062 enable_transform
32063 Deprecated, use model='enable_transform=true'.
32064
32065 phone_model
32066 Deprecated, use model='enable_transform=true'.
32067
32068 enable_conf_interval
32069 Deprecated, use model='enable_conf_interval=true'.
32070
32071 feature
32072 A `|` delimited list of features. Each feature can be configured
32073 with a number of parameters.
32074
32075 psnr
32076 Deprecated, use feature='name=psnr'.
32077
32078 ssim
32079 Deprecated, use feature='name=ssim'.
32080
32081 ms_ssim
32082 Deprecated, use feature='name=ms_ssim'.
32083
32084 log_path
32085 Set the file path to be used to store log files.
32086
32087 log_fmt
32088 Set the format of the log file (xml, json, csv, or sub).
32089
32090 n_threads
32091 Set number of threads to be used when initializing libvmaf.
32092 Default value: 0, no threads.
32093
32094 n_subsample
32095 Set frame subsampling interval to be used.
32096
32097 This filter also supports the framesync options.
32098
32099 Examples
32100
32101 • In the examples below, a distorted video distorted.mpg is compared
32102 with a reference file reference.mpg.
32103
32104 • Basic usage:
32105
32106 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
32107
32108 • Example with multiple models:
32109
32110 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null -
32111
32112 • Example with multiple addtional features:
32113
32114 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
32115
32116 • Example with options and different containers:
32117
32118 ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
32119
32120 limitdiff
32121 Apply limited difference filter using second and optionally third video
32122 stream.
32123
32124 The filter accepts the following options:
32125
32126 threshold
32127 Set the threshold to use when allowing certain differences between
32128 video streams. Any absolute difference value lower or exact than
32129 this threshold will pick pixel components from first video stream.
32130
32131 elasticity
32132 Set the elasticity of soft thresholding when processing video
32133 streams. This value multiplied with first one sets second
32134 threshold. Any absolute difference value greater or exact than
32135 second threshold will pick pixel components from second video
32136 stream. For values between those two threshold linear interpolation
32137 between first and second video stream will be used.
32138
32139 reference
32140 Enable the reference (third) video stream processing. By default is
32141 disabled. If set, this video stream will be used for calculating
32142 absolute difference with first video stream.
32143
32144 planes
32145 Specify which planes will be processed. Defaults to all available.
32146
32147 Commands
32148
32149 This filter supports the all above options as commands except option
32150 reference.
32151
32152 limiter
32153 Limits the pixel components values to the specified range [min, max].
32154
32155 The filter accepts the following options:
32156
32157 min Lower bound. Defaults to the lowest allowed value for the input.
32158
32159 max Upper bound. Defaults to the highest allowed value for the input.
32160
32161 planes
32162 Specify which planes will be processed. Defaults to all available.
32163
32164 Commands
32165
32166 This filter supports the all above options as commands.
32167
32168 loop
32169 Loop video frames.
32170
32171 The filter accepts the following options:
32172
32173 loop
32174 Set the number of loops. Setting this value to -1 will result in
32175 infinite loops. Default is 0.
32176
32177 size
32178 Set maximal size in number of frames. Default is 0.
32179
32180 start
32181 Set first frame of loop. Default is 0.
32182
32183 Examples
32184
32185 • Loop single first frame infinitely:
32186
32187 loop=loop=-1:size=1:start=0
32188
32189 • Loop single first frame 10 times:
32190
32191 loop=loop=10:size=1:start=0
32192
32193 • Loop 10 first frames 5 times:
32194
32195 loop=loop=5:size=10:start=0
32196
32197 lut1d
32198 Apply a 1D LUT to an input video.
32199
32200 The filter accepts the following options:
32201
32202 file
32203 Set the 1D LUT file name.
32204
32205 Currently supported formats:
32206
32207 cube
32208 Iridas
32209
32210 csp cineSpace
32211
32212 interp
32213 Select interpolation mode.
32214
32215 Available values are:
32216
32217 nearest
32218 Use values from the nearest defined point.
32219
32220 linear
32221 Interpolate values using the linear interpolation.
32222
32223 cosine
32224 Interpolate values using the cosine interpolation.
32225
32226 cubic
32227 Interpolate values using the cubic interpolation.
32228
32229 spline
32230 Interpolate values using the spline interpolation.
32231
32232 Commands
32233
32234 This filter supports the all above options as commands.
32235
32236 lut3d
32237 Apply a 3D LUT to an input video.
32238
32239 The filter accepts the following options:
32240
32241 file
32242 Set the 3D LUT file name.
32243
32244 Currently supported formats:
32245
32246 3dl AfterEffects
32247
32248 cube
32249 Iridas
32250
32251 dat DaVinci
32252
32253 m3d Pandora
32254
32255 csp cineSpace
32256
32257 interp
32258 Select interpolation mode.
32259
32260 Available values are:
32261
32262 nearest
32263 Use values from the nearest defined point.
32264
32265 trilinear
32266 Interpolate values using the 8 points defining a cube.
32267
32268 tetrahedral
32269 Interpolate values using a tetrahedron.
32270
32271 pyramid
32272 Interpolate values using a pyramid.
32273
32274 prism
32275 Interpolate values using a prism.
32276
32277 Commands
32278
32279 This filter supports the "interp" option as commands.
32280
32281 lumakey
32282 Turn certain luma values into transparency.
32283
32284 The filter accepts the following options:
32285
32286 threshold
32287 Set the luma which will be used as base for transparency. Default
32288 value is 0.
32289
32290 tolerance
32291 Set the range of luma values to be keyed out. Default value is
32292 0.01.
32293
32294 softness
32295 Set the range of softness. Default value is 0. Use this to control
32296 gradual transition from zero to full transparency.
32297
32298 Commands
32299
32300 This filter supports same commands as options. The command accepts the
32301 same syntax of the corresponding option.
32302
32303 If the specified expression is not valid, it is kept at its current
32304 value.
32305
32306 lut, lutrgb, lutyuv
32307 Compute a look-up table for binding each pixel component input value to
32308 an output value, and apply it to the input video.
32309
32310 lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
32311 input video.
32312
32313 These filters accept the following parameters:
32314
32315 c0 set first pixel component expression
32316
32317 c1 set second pixel component expression
32318
32319 c2 set third pixel component expression
32320
32321 c3 set fourth pixel component expression, corresponds to the alpha
32322 component
32323
32324 r set red component expression
32325
32326 g set green component expression
32327
32328 b set blue component expression
32329
32330 a alpha component expression
32331
32332 y set Y/luminance component expression
32333
32334 u set U/Cb component expression
32335
32336 v set V/Cr component expression
32337
32338 Each of them specifies the expression to use for computing the lookup
32339 table for the corresponding pixel component values.
32340
32341 The exact component associated to each of the c* options depends on the
32342 format in input.
32343
32344 The lut filter requires either YUV or RGB pixel formats in input,
32345 lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
32346
32347 The expressions can contain the following constants and functions:
32348
32349 w
32350 h The input width and height.
32351
32352 val The input value for the pixel component.
32353
32354 clipval
32355 The input value, clipped to the minval-maxval range.
32356
32357 maxval
32358 The maximum value for the pixel component.
32359
32360 minval
32361 The minimum value for the pixel component.
32362
32363 negval
32364 The negated value for the pixel component value, clipped to the
32365 minval-maxval range; it corresponds to the expression
32366 "maxval-clipval+minval".
32367
32368 clip(val)
32369 The computed value in val, clipped to the minval-maxval range.
32370
32371 gammaval(gamma)
32372 The computed gamma correction value of the pixel component value,
32373 clipped to the minval-maxval range. It corresponds to the
32374 expression
32375 "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
32376
32377 All expressions default to "clipval".
32378
32379 Commands
32380
32381 This filter supports same commands as options.
32382
32383 Examples
32384
32385 • Negate input video:
32386
32387 lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
32388 lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
32389
32390 The above is the same as:
32391
32392 lutrgb="r=negval:g=negval:b=negval"
32393 lutyuv="y=negval:u=negval:v=negval"
32394
32395 • Negate luminance:
32396
32397 lutyuv=y=negval
32398
32399 • Remove chroma components, turning the video into a graytone image:
32400
32401 lutyuv="u=128:v=128"
32402
32403 • Apply a luma burning effect:
32404
32405 lutyuv="y=2*val"
32406
32407 • Remove green and blue components:
32408
32409 lutrgb="g=0:b=0"
32410
32411 • Set a constant alpha channel value on input:
32412
32413 format=rgba,lutrgb=a="maxval-minval/2"
32414
32415 • Correct luminance gamma by a factor of 0.5:
32416
32417 lutyuv=y=gammaval(0.5)
32418
32419 • Discard least significant bits of luma:
32420
32421 lutyuv=y='bitand(val, 128+64+32)'
32422
32423 • Technicolor like effect:
32424
32425 lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
32426
32427 lut2, tlut2
32428 The "lut2" filter takes two input streams and outputs one stream.
32429
32430 The "tlut2" (time lut2) filter takes two consecutive frames from one
32431 single stream.
32432
32433 This filter accepts the following parameters:
32434
32435 c0 set first pixel component expression
32436
32437 c1 set second pixel component expression
32438
32439 c2 set third pixel component expression
32440
32441 c3 set fourth pixel component expression, corresponds to the alpha
32442 component
32443
32444 d set output bit depth, only available for "lut2" filter. By default
32445 is 0, which means bit depth is automatically picked from first
32446 input format.
32447
32448 The "lut2" filter also supports the framesync options.
32449
32450 Each of them specifies the expression to use for computing the lookup
32451 table for the corresponding pixel component values.
32452
32453 The exact component associated to each of the c* options depends on the
32454 format in inputs.
32455
32456 The expressions can contain the following constants:
32457
32458 w
32459 h The input width and height.
32460
32461 x The first input value for the pixel component.
32462
32463 y The second input value for the pixel component.
32464
32465 bdx The first input video bit depth.
32466
32467 bdy The second input video bit depth.
32468
32469 All expressions default to "x".
32470
32471 Commands
32472
32473 This filter supports the all above options as commands except option
32474 "d".
32475
32476 Examples
32477
32478 • Highlight differences between two RGB video streams:
32479
32480 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)'
32481
32482 • Highlight differences between two YUV video streams:
32483
32484 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)'
32485
32486 • Show max difference between two video streams:
32487
32488 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)))'
32489
32490 maskedclamp
32491 Clamp the first input stream with the second input and third input
32492 stream.
32493
32494 Returns the value of first stream to be between second input stream -
32495 "undershoot" and third input stream + "overshoot".
32496
32497 This filter accepts the following options:
32498
32499 undershoot
32500 Default value is 0.
32501
32502 overshoot
32503 Default value is 0.
32504
32505 planes
32506 Set which planes will be processed as bitmap, unprocessed planes
32507 will be copied from first stream. By default value 0xf, all planes
32508 will be processed.
32509
32510 Commands
32511
32512 This filter supports the all above options as commands.
32513
32514 maskedmax
32515 Merge the second and third input stream into output stream using
32516 absolute differences between second input stream and first input stream
32517 and absolute difference between third input stream and first input
32518 stream. The picked value will be from second input stream if second
32519 absolute difference is greater than first one or from third input
32520 stream otherwise.
32521
32522 This filter accepts the following options:
32523
32524 planes
32525 Set which planes will be processed as bitmap, unprocessed planes
32526 will be copied from first stream. By default value 0xf, all planes
32527 will be processed.
32528
32529 Commands
32530
32531 This filter supports the all above options as commands.
32532
32533 maskedmerge
32534 Merge the first input stream with the second input stream using per
32535 pixel weights in the third input stream.
32536
32537 A value of 0 in the third stream pixel component means that pixel
32538 component from first stream is returned unchanged, while maximum value
32539 (eg. 255 for 8-bit videos) means that pixel component from second
32540 stream is returned unchanged. Intermediate values define the amount of
32541 merging between both input stream's pixel components.
32542
32543 This filter accepts the following options:
32544
32545 planes
32546 Set which planes will be processed as bitmap, unprocessed planes
32547 will be copied from first stream. By default value 0xf, all planes
32548 will be processed.
32549
32550 Commands
32551
32552 This filter supports the all above options as commands.
32553
32554 maskedmin
32555 Merge the second and third input stream into output stream using
32556 absolute differences between second input stream and first input stream
32557 and absolute difference between third input stream and first input
32558 stream. The picked value will be from second input stream if second
32559 absolute difference is less than first one or from third input stream
32560 otherwise.
32561
32562 This filter accepts the following options:
32563
32564 planes
32565 Set which planes will be processed as bitmap, unprocessed planes
32566 will be copied from first stream. By default value 0xf, all planes
32567 will be processed.
32568
32569 Commands
32570
32571 This filter supports the all above options as commands.
32572
32573 maskedthreshold
32574 Pick pixels comparing absolute difference of two video streams with
32575 fixed threshold.
32576
32577 If absolute difference between pixel component of first and second
32578 video stream is equal or lower than user supplied threshold than pixel
32579 component from first video stream is picked, otherwise pixel component
32580 from second video stream is picked.
32581
32582 This filter accepts the following options:
32583
32584 threshold
32585 Set threshold used when picking pixels from absolute difference
32586 from two input video streams.
32587
32588 planes
32589 Set which planes will be processed as bitmap, unprocessed planes
32590 will be copied from second stream. By default value 0xf, all
32591 planes will be processed.
32592
32593 Commands
32594
32595 This filter supports the all above options as commands.
32596
32597 maskfun
32598 Create mask from input video.
32599
32600 For example it is useful to create motion masks after "tblend" filter.
32601
32602 This filter accepts the following options:
32603
32604 low Set low threshold. Any pixel component lower or exact than this
32605 value will be set to 0.
32606
32607 high
32608 Set high threshold. Any pixel component higher than this value will
32609 be set to max value allowed for current pixel format.
32610
32611 planes
32612 Set planes to filter, by default all available planes are filtered.
32613
32614 fill
32615 Fill all frame pixels with this value.
32616
32617 sum Set max average pixel value for frame. If sum of all pixel
32618 components is higher that this average, output frame will be
32619 completely filled with value set by fill option. Typically useful
32620 for scene changes when used in combination with "tblend" filter.
32621
32622 Commands
32623
32624 This filter supports the all above options as commands.
32625
32626 mcdeint
32627 Apply motion-compensation deinterlacing.
32628
32629 It needs one field per frame as input and must thus be used together
32630 with yadif=1/3 or equivalent.
32631
32632 This filter is only available in ffmpeg version 4.4 or earlier.
32633
32634 This filter accepts the following options:
32635
32636 mode
32637 Set the deinterlacing mode.
32638
32639 It accepts one of the following values:
32640
32641 fast
32642 medium
32643 slow
32644 use iterative motion estimation
32645
32646 extra_slow
32647 like slow, but use multiple reference frames.
32648
32649 Default value is fast.
32650
32651 parity
32652 Set the picture field parity assumed for the input video. It must
32653 be one of the following values:
32654
32655 0, tff
32656 assume top field first
32657
32658 1, bff
32659 assume bottom field first
32660
32661 Default value is bff.
32662
32663 qp Set per-block quantization parameter (QP) used by the internal
32664 encoder.
32665
32666 Higher values should result in a smoother motion vector field but
32667 less optimal individual vectors. Default value is 1.
32668
32669 median
32670 Pick median pixel from certain rectangle defined by radius.
32671
32672 This filter accepts the following options:
32673
32674 radius
32675 Set horizontal radius size. Default value is 1. Allowed range is
32676 integer from 1 to 127.
32677
32678 planes
32679 Set which planes to process. Default is 15, which is all available
32680 planes.
32681
32682 radiusV
32683 Set vertical radius size. Default value is 0. Allowed range is
32684 integer from 0 to 127. If it is 0, value will be picked from
32685 horizontal "radius" option.
32686
32687 percentile
32688 Set median percentile. Default value is 0.5. Default value of 0.5
32689 will pick always median values, while 0 will pick minimum values,
32690 and 1 maximum values.
32691
32692 Commands
32693
32694 This filter supports same commands as options. The command accepts the
32695 same syntax of the corresponding option.
32696
32697 If the specified expression is not valid, it is kept at its current
32698 value.
32699
32700 mergeplanes
32701 Merge color channel components from several video streams.
32702
32703 The filter accepts up to 4 input streams, and merge selected input
32704 planes to the output video.
32705
32706 This filter accepts the following options:
32707
32708 mapping
32709 Set input to output plane mapping. Default is 0.
32710
32711 The mappings is specified as a bitmap. It should be specified as a
32712 hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
32713 mapping for the first plane of the output stream. 'A' sets the
32714 number of the input stream to use (from 0 to 3), and 'a' the plane
32715 number of the corresponding input to use (from 0 to 3). The rest of
32716 the mappings is similar, 'Bb' describes the mapping for the output
32717 stream second plane, 'Cc' describes the mapping for the output
32718 stream third plane and 'Dd' describes the mapping for the output
32719 stream fourth plane.
32720
32721 format
32722 Set output pixel format. Default is "yuva444p".
32723
32724 map0s
32725 map1s
32726 map2s
32727 map3s
32728 Set input to output stream mapping for output Nth plane. Default is
32729 0.
32730
32731 map0p
32732 map1p
32733 map2p
32734 map3p
32735 Set input to output plane mapping for output Nth plane. Default is
32736 0.
32737
32738 Examples
32739
32740 • Merge three gray video streams of same width and height into single
32741 video stream:
32742
32743 [a0][a1][a2]mergeplanes=0x001020:yuv444p
32744
32745 • Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
32746 video stream:
32747
32748 [a0][a1]mergeplanes=0x00010210:yuva444p
32749
32750 • Swap Y and A plane in yuva444p stream:
32751
32752 format=yuva444p,mergeplanes=0x03010200:yuva444p
32753
32754 • Swap U and V plane in yuv420p stream:
32755
32756 format=yuv420p,mergeplanes=0x000201:yuv420p
32757
32758 • Cast a rgb24 clip to yuv444p:
32759
32760 format=rgb24,mergeplanes=0x000102:yuv444p
32761
32762 mestimate
32763 Estimate and export motion vectors using block matching algorithms.
32764 Motion vectors are stored in frame side data to be used by other
32765 filters.
32766
32767 This filter accepts the following options:
32768
32769 method
32770 Specify the motion estimation method. Accepts one of the following
32771 values:
32772
32773 esa Exhaustive search algorithm.
32774
32775 tss Three step search algorithm.
32776
32777 tdls
32778 Two dimensional logarithmic search algorithm.
32779
32780 ntss
32781 New three step search algorithm.
32782
32783 fss Four step search algorithm.
32784
32785 ds Diamond search algorithm.
32786
32787 hexbs
32788 Hexagon-based search algorithm.
32789
32790 epzs
32791 Enhanced predictive zonal search algorithm.
32792
32793 umh Uneven multi-hexagon search algorithm.
32794
32795 Default value is esa.
32796
32797 mb_size
32798 Macroblock size. Default 16.
32799
32800 search_param
32801 Search parameter. Default 7.
32802
32803 midequalizer
32804 Apply Midway Image Equalization effect using two video streams.
32805
32806 Midway Image Equalization adjusts a pair of images to have the same
32807 histogram, while maintaining their dynamics as much as possible. It's
32808 useful for e.g. matching exposures from a pair of stereo cameras.
32809
32810 This filter has two inputs and one output, which must be of same pixel
32811 format, but may be of different sizes. The output of filter is first
32812 input adjusted with midway histogram of both inputs.
32813
32814 This filter accepts the following option:
32815
32816 planes
32817 Set which planes to process. Default is 15, which is all available
32818 planes.
32819
32820 minterpolate
32821 Convert the video to specified frame rate using motion interpolation.
32822
32823 This filter accepts the following options:
32824
32825 fps Specify the output frame rate. This can be rational e.g.
32826 "60000/1001". Frames are dropped if fps is lower than source fps.
32827 Default 60.
32828
32829 mi_mode
32830 Motion interpolation mode. Following values are accepted:
32831
32832 dup Duplicate previous or next frame for interpolating new ones.
32833
32834 blend
32835 Blend source frames. Interpolated frame is mean of previous and
32836 next frames.
32837
32838 mci Motion compensated interpolation. Following options are
32839 effective when this mode is selected:
32840
32841 mc_mode
32842 Motion compensation mode. Following values are accepted:
32843
32844 obmc
32845 Overlapped block motion compensation.
32846
32847 aobmc
32848 Adaptive overlapped block motion compensation. Window
32849 weighting coefficients are controlled adaptively
32850 according to the reliabilities of the neighboring
32851 motion vectors to reduce oversmoothing.
32852
32853 Default mode is obmc.
32854
32855 me_mode
32856 Motion estimation mode. Following values are accepted:
32857
32858 bidir
32859 Bidirectional motion estimation. Motion vectors are
32860 estimated for each source frame in both forward and
32861 backward directions.
32862
32863 bilat
32864 Bilateral motion estimation. Motion vectors are
32865 estimated directly for interpolated frame.
32866
32867 Default mode is bilat.
32868
32869 me The algorithm to be used for motion estimation. Following
32870 values are accepted:
32871
32872 esa Exhaustive search algorithm.
32873
32874 tss Three step search algorithm.
32875
32876 tdls
32877 Two dimensional logarithmic search algorithm.
32878
32879 ntss
32880 New three step search algorithm.
32881
32882 fss Four step search algorithm.
32883
32884 ds Diamond search algorithm.
32885
32886 hexbs
32887 Hexagon-based search algorithm.
32888
32889 epzs
32890 Enhanced predictive zonal search algorithm.
32891
32892 umh Uneven multi-hexagon search algorithm.
32893
32894 Default algorithm is epzs.
32895
32896 mb_size
32897 Macroblock size. Default 16.
32898
32899 search_param
32900 Motion estimation search parameter. Default 32.
32901
32902 vsbmc
32903 Enable variable-size block motion compensation. Motion
32904 estimation is applied with smaller block sizes at object
32905 boundaries in order to make the them less blur. Default is
32906 0 (disabled).
32907
32908 scd Scene change detection method. Scene change leads motion vectors to
32909 be in random direction. Scene change detection replace interpolated
32910 frames by duplicate ones. May not be needed for other modes.
32911 Following values are accepted:
32912
32913 none
32914 Disable scene change detection.
32915
32916 fdiff
32917 Frame difference. Corresponding pixel values are compared and
32918 if it satisfies scd_threshold scene change is detected.
32919
32920 Default method is fdiff.
32921
32922 scd_threshold
32923 Scene change detection threshold. Default is 10..
32924
32925 mix
32926 Mix several video input streams into one video stream.
32927
32928 A description of the accepted options follows.
32929
32930 inputs
32931 The number of inputs. If unspecified, it defaults to 2.
32932
32933 weights
32934 Specify weight of each input video stream as sequence. Each weight
32935 is separated by space. If number of weights is smaller than number
32936 of frames last specified weight will be used for all remaining
32937 unset weights.
32938
32939 scale
32940 Specify scale, if it is set it will be multiplied with sum of each
32941 weight multiplied with pixel values to give final destination pixel
32942 value. By default scale is auto scaled to sum of weights.
32943
32944 planes
32945 Set which planes to filter. Default is all. Allowed range is from 0
32946 to 15.
32947
32948 duration
32949 Specify how end of stream is determined.
32950
32951 longest
32952 The duration of the longest input. (default)
32953
32954 shortest
32955 The duration of the shortest input.
32956
32957 first
32958 The duration of the first input.
32959
32960 Commands
32961
32962 This filter supports the following commands:
32963
32964 weights
32965 scale
32966 planes
32967 Syntax is same as option with same name.
32968
32969 monochrome
32970 Convert video to gray using custom color filter.
32971
32972 A description of the accepted options follows.
32973
32974 cb Set the chroma blue spot. Allowed range is from -1 to 1. Default
32975 value is 0.
32976
32977 cr Set the chroma red spot. Allowed range is from -1 to 1. Default
32978 value is 0.
32979
32980 size
32981 Set the color filter size. Allowed range is from .1 to 10. Default
32982 value is 1.
32983
32984 high
32985 Set the highlights strength. Allowed range is from 0 to 1. Default
32986 value is 0.
32987
32988 Commands
32989
32990 This filter supports the all above options as commands.
32991
32992 morpho
32993 This filter allows to apply main morphological grayscale transforms,
32994 erode and dilate with arbitrary structures set in second input stream.
32995
32996 Unlike naive implementation and much slower performance in erosion and
32997 dilation filters, when speed is critical "morpho" filter should be used
32998 instead.
32999
33000 A description of accepted options follows,
33001
33002 mode
33003 Set morphological transform to apply, can be:
33004
33005 erode
33006 dilate
33007 open
33008 close
33009 gradient
33010 tophat
33011 blackhat
33012
33013 Default is "erode".
33014
33015 planes
33016 Set planes to filter, by default all planes except alpha are
33017 filtered.
33018
33019 structure
33020 Set which structure video frames will be processed from second
33021 input stream, can be first or all. Default is all.
33022
33023 The "morpho" filter also supports the framesync options.
33024
33025 Commands
33026
33027 This filter supports same commands as options.
33028
33029 mpdecimate
33030 Drop frames that do not differ greatly from the previous frame in order
33031 to reduce frame rate.
33032
33033 The main use of this filter is for very-low-bitrate encoding (e.g.
33034 streaming over dialup modem), but it could in theory be used for fixing
33035 movies that were inverse-telecined incorrectly.
33036
33037 A description of the accepted options follows.
33038
33039 max Set the maximum number of consecutive frames which can be dropped
33040 (if positive), or the minimum interval between dropped frames (if
33041 negative). If the value is 0, the frame is dropped disregarding the
33042 number of previous sequentially dropped frames.
33043
33044 Default value is 0.
33045
33046 hi
33047 lo
33048 frac
33049 Set the dropping threshold values.
33050
33051 Values for hi and lo are for 8x8 pixel blocks and represent actual
33052 pixel value differences, so a threshold of 64 corresponds to 1 unit
33053 of difference for each pixel, or the same spread out differently
33054 over the block.
33055
33056 A frame is a candidate for dropping if no 8x8 blocks differ by more
33057 than a threshold of hi, and if no more than frac blocks (1 meaning
33058 the whole image) differ by more than a threshold of lo.
33059
33060 Default value for hi is 64*12, default value for lo is 64*5, and
33061 default value for frac is 0.33.
33062
33063 msad
33064 Obtain the MSAD (Mean Sum of Absolute Differences) between two input
33065 videos.
33066
33067 This filter takes two input videos.
33068
33069 Both input videos must have the same resolution and pixel format for
33070 this filter to work correctly. Also it assumes that both inputs have
33071 the same number of frames, which are compared one by one.
33072
33073 The obtained per component, average, min and max MSAD is printed
33074 through the logging system.
33075
33076 The filter stores the calculated MSAD of each frame in frame metadata.
33077
33078 In the below example the input file main.mpg being processed is
33079 compared with the reference file ref.mpg.
33080
33081 ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
33082
33083 multiply
33084 Multiply first video stream pixels values with second video stream
33085 pixels values.
33086
33087 The filter accepts the following options:
33088
33089 scale
33090 Set the scale applied to second video stream. By default is 1.
33091 Allowed range is from 0 to 9.
33092
33093 offset
33094 Set the offset applied to second video stream. By default is 0.5.
33095 Allowed range is from "-1" to 1.
33096
33097 planes
33098 Specify planes from input video stream that will be processed. By
33099 default all planes are processed.
33100
33101 Commands
33102
33103 This filter supports same commands as options.
33104
33105 negate
33106 Negate (invert) the input video.
33107
33108 It accepts the following option:
33109
33110 components
33111 Set components to negate.
33112
33113 Available values for components are:
33114
33115 y
33116 u
33117 v
33118 a
33119 r
33120 g
33121 b
33122 negate_alpha
33123 With value 1, it negates the alpha component, if present. Default
33124 value is 0.
33125
33126 Commands
33127
33128 This filter supports same commands as options.
33129
33130 nlmeans
33131 Denoise frames using Non-Local Means algorithm.
33132
33133 Each pixel is adjusted by looking for other pixels with similar
33134 contexts. This context similarity is defined by comparing their
33135 surrounding patches of size pxp. Patches are searched in an area of rxr
33136 around the pixel.
33137
33138 Note that the research area defines centers for patches, which means
33139 some patches will be made of pixels outside that research area.
33140
33141 The filter accepts the following options.
33142
33143 s Set denoising strength. Default is 1.0. Must be in range [1.0,
33144 30.0].
33145
33146 p Set patch size. Default is 7. Must be odd number in range [0, 99].
33147
33148 pc Same as p but for chroma planes.
33149
33150 The default value is 0 and means automatic.
33151
33152 r Set research size. Default is 15. Must be odd number in range [0,
33153 99].
33154
33155 rc Same as r but for chroma planes.
33156
33157 The default value is 0 and means automatic.
33158
33159 nnedi
33160 Deinterlace video using neural network edge directed interpolation.
33161
33162 This filter accepts the following options:
33163
33164 weights
33165 Mandatory option, without binary file filter can not work.
33166 Currently file can be found here:
33167 https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
33168
33169 deint
33170 Set which frames to deinterlace, by default it is "all". Can be
33171 "all" or "interlaced".
33172
33173 field
33174 Set mode of operation.
33175
33176 Can be one of the following:
33177
33178 af Use frame flags, both fields.
33179
33180 a Use frame flags, single field.
33181
33182 t Use top field only.
33183
33184 b Use bottom field only.
33185
33186 tf Use both fields, top first.
33187
33188 bf Use both fields, bottom first.
33189
33190 planes
33191 Set which planes to process, by default filter process all frames.
33192
33193 nsize
33194 Set size of local neighborhood around each pixel, used by the
33195 predictor neural network.
33196
33197 Can be one of the following:
33198
33199 s8x6
33200 s16x6
33201 s32x6
33202 s48x6
33203 s8x4
33204 s16x4
33205 s32x4
33206 nns Set the number of neurons in predictor neural network. Can be one
33207 of the following:
33208
33209 n16
33210 n32
33211 n64
33212 n128
33213 n256
33214 qual
33215 Controls the number of different neural network predictions that
33216 are blended together to compute the final output value. Can be
33217 "fast", default or "slow".
33218
33219 etype
33220 Set which set of weights to use in the predictor. Can be one of
33221 the following:
33222
33223 a, abs
33224 weights trained to minimize absolute error
33225
33226 s, mse
33227 weights trained to minimize squared error
33228
33229 pscrn
33230 Controls whether or not the prescreener neural network is used to
33231 decide which pixels should be processed by the predictor neural
33232 network and which can be handled by simple cubic interpolation.
33233 The prescreener is trained to know whether cubic interpolation will
33234 be sufficient for a pixel or whether it should be predicted by the
33235 predictor nn. The computational complexity of the prescreener nn
33236 is much less than that of the predictor nn. Since most pixels can
33237 be handled by cubic interpolation, using the prescreener generally
33238 results in much faster processing. The prescreener is pretty
33239 accurate, so the difference between using it and not using it is
33240 almost always unnoticeable.
33241
33242 Can be one of the following:
33243
33244 none
33245 original
33246 new
33247 new2
33248 new3
33249
33250 Default is "new".
33251
33252 Commands
33253
33254 This filter supports same commands as options, excluding weights
33255 option.
33256
33257 noformat
33258 Force libavfilter not to use any of the specified pixel formats for the
33259 input to the next filter.
33260
33261 It accepts the following parameters:
33262
33263 pix_fmts
33264 A '|'-separated list of pixel format names, such as
33265 pix_fmts=yuv420p|monow|rgb24".
33266
33267 Examples
33268
33269 • Force libavfilter to use a format different from yuv420p for the
33270 input to the vflip filter:
33271
33272 noformat=pix_fmts=yuv420p,vflip
33273
33274 • Convert the input video to any of the formats not contained in the
33275 list:
33276
33277 noformat=yuv420p|yuv444p|yuv410p
33278
33279 noise
33280 Add noise on video input frame.
33281
33282 The filter accepts the following options:
33283
33284 all_seed
33285 c0_seed
33286 c1_seed
33287 c2_seed
33288 c3_seed
33289 Set noise seed for specific pixel component or all pixel components
33290 in case of all_seed. Default value is 123457.
33291
33292 all_strength, alls
33293 c0_strength, c0s
33294 c1_strength, c1s
33295 c2_strength, c2s
33296 c3_strength, c3s
33297 Set noise strength for specific pixel component or all pixel
33298 components in case all_strength. Default value is 0. Allowed range
33299 is [0, 100].
33300
33301 all_flags, allf
33302 c0_flags, c0f
33303 c1_flags, c1f
33304 c2_flags, c2f
33305 c3_flags, c3f
33306 Set pixel component flags or set flags for all components if
33307 all_flags. Available values for component flags are:
33308
33309 a averaged temporal noise (smoother)
33310
33311 p mix random noise with a (semi)regular pattern
33312
33313 t temporal noise (noise pattern changes between frames)
33314
33315 u uniform noise (gaussian otherwise)
33316
33317 Examples
33318
33319 Add temporal and uniform noise to input video:
33320
33321 noise=alls=20:allf=t+u
33322
33323 normalize
33324 Normalize RGB video (aka histogram stretching, contrast stretching).
33325 See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
33326
33327 For each channel of each frame, the filter computes the input range and
33328 maps it linearly to the user-specified output range. The output range
33329 defaults to the full dynamic range from pure black to pure white.
33330
33331 Temporal smoothing can be used on the input range to reduce flickering
33332 (rapid changes in brightness) caused when small dark or bright objects
33333 enter or leave the scene. This is similar to the auto-exposure
33334 (automatic gain control) on a video camera, and, like a video camera,
33335 it may cause a period of over- or under-exposure of the video.
33336
33337 The R,G,B channels can be normalized independently, which may cause
33338 some color shifting, or linked together as a single channel, which
33339 prevents color shifting. Linked normalization preserves hue.
33340 Independent normalization does not, so it can be used to remove some
33341 color casts. Independent and linked normalization can be combined in
33342 any ratio.
33343
33344 The normalize filter accepts the following options:
33345
33346 blackpt
33347 whitept
33348 Colors which define the output range. The minimum input value is
33349 mapped to the blackpt. The maximum input value is mapped to the
33350 whitept. The defaults are black and white respectively. Specifying
33351 white for blackpt and black for whitept will give color-inverted,
33352 normalized video. Shades of grey can be used to reduce the dynamic
33353 range (contrast). Specifying saturated colors here can create some
33354 interesting effects.
33355
33356 smoothing
33357 The number of previous frames to use for temporal smoothing. The
33358 input range of each channel is smoothed using a rolling average
33359 over the current frame and the smoothing previous frames. The
33360 default is 0 (no temporal smoothing).
33361
33362 independence
33363 Controls the ratio of independent (color shifting) channel
33364 normalization to linked (color preserving) normalization. 0.0 is
33365 fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
33366 independent).
33367
33368 strength
33369 Overall strength of the filter. 1.0 is full strength. 0.0 is a
33370 rather expensive no-op. Defaults to 1.0 (full strength).
33371
33372 Commands
33373
33374 This filter supports same commands as options, excluding smoothing
33375 option. The command accepts the same syntax of the corresponding
33376 option.
33377
33378 If the specified expression is not valid, it is kept at its current
33379 value.
33380
33381 Examples
33382
33383 Stretch video contrast to use the full dynamic range, with no temporal
33384 smoothing; may flicker depending on the source content:
33385
33386 normalize=blackpt=black:whitept=white:smoothing=0
33387
33388 As above, but with 50 frames of temporal smoothing; flicker should be
33389 reduced, depending on the source content:
33390
33391 normalize=blackpt=black:whitept=white:smoothing=50
33392
33393 As above, but with hue-preserving linked channel normalization:
33394
33395 normalize=blackpt=black:whitept=white:smoothing=50:independence=0
33396
33397 As above, but with half strength:
33398
33399 normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
33400
33401 Map the darkest input color to red, the brightest input color to cyan:
33402
33403 normalize=blackpt=red:whitept=cyan
33404
33405 null
33406 Pass the video source unchanged to the output.
33407
33408 ocr
33409 Optical Character Recognition
33410
33411 This filter uses Tesseract for optical character recognition. To enable
33412 compilation of this filter, you need to configure FFmpeg with
33413 "--enable-libtesseract".
33414
33415 It accepts the following options:
33416
33417 datapath
33418 Set datapath to tesseract data. Default is to use whatever was set
33419 at installation.
33420
33421 language
33422 Set language, default is "eng".
33423
33424 whitelist
33425 Set character whitelist.
33426
33427 blacklist
33428 Set character blacklist.
33429
33430 The filter exports recognized text as the frame metadata
33431 "lavfi.ocr.text". The filter exports confidence of recognized words as
33432 the frame metadata "lavfi.ocr.confidence".
33433
33434 ocv
33435 Apply a video transform using libopencv.
33436
33437 To enable this filter, install the libopencv library and headers and
33438 configure FFmpeg with "--enable-libopencv".
33439
33440 It accepts the following parameters:
33441
33442 filter_name
33443 The name of the libopencv filter to apply.
33444
33445 filter_params
33446 The parameters to pass to the libopencv filter. If not specified,
33447 the default values are assumed.
33448
33449 Refer to the official libopencv documentation for more precise
33450 information:
33451 <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
33452
33453 Several libopencv filters are supported; see the following subsections.
33454
33455 dilate
33456
33457 Dilate an image by using a specific structuring element. It
33458 corresponds to the libopencv function "cvDilate".
33459
33460 It accepts the parameters: struct_el|nb_iterations.
33461
33462 struct_el represents a structuring element, and has the syntax:
33463 colsxrows+anchor_xxanchor_y/shape
33464
33465 cols and rows represent the number of columns and rows of the
33466 structuring element, anchor_x and anchor_y the anchor point, and shape
33467 the shape for the structuring element. shape must be "rect", "cross",
33468 "ellipse", or "custom".
33469
33470 If the value for shape is "custom", it must be followed by a string of
33471 the form "=filename". The file with name filename is assumed to
33472 represent a binary image, with each printable character corresponding
33473 to a bright pixel. When a custom shape is used, cols and rows are
33474 ignored, the number or columns and rows of the read file are assumed
33475 instead.
33476
33477 The default value for struct_el is "3x3+0x0/rect".
33478
33479 nb_iterations specifies the number of times the transform is applied to
33480 the image, and defaults to 1.
33481
33482 Some examples:
33483
33484 # Use the default values
33485 ocv=dilate
33486
33487 # Dilate using a structuring element with a 5x5 cross, iterating two times
33488 ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
33489
33490 # Read the shape from the file diamond.shape, iterating two times.
33491 # The file diamond.shape may contain a pattern of characters like this
33492 # *
33493 # ***
33494 # *****
33495 # ***
33496 # *
33497 # The specified columns and rows are ignored
33498 # but the anchor point coordinates are not
33499 ocv=dilate:0x0+2x2/custom=diamond.shape|2
33500
33501 erode
33502
33503 Erode an image by using a specific structuring element. It corresponds
33504 to the libopencv function "cvErode".
33505
33506 It accepts the parameters: struct_el:nb_iterations, with the same
33507 syntax and semantics as the dilate filter.
33508
33509 smooth
33510
33511 Smooth the input video.
33512
33513 The filter takes the following parameters:
33514 type|param1|param2|param3|param4.
33515
33516 type is the type of smooth filter to apply, and must be one of the
33517 following values: "blur", "blur_no_scale", "median", "gaussian", or
33518 "bilateral". The default value is "gaussian".
33519
33520 The meaning of param1, param2, param3, and param4 depends on the smooth
33521 type. param1 and param2 accept integer positive values or 0. param3 and
33522 param4 accept floating point values.
33523
33524 The default value for param1 is 3. The default value for the other
33525 parameters is 0.
33526
33527 These parameters correspond to the parameters assigned to the libopencv
33528 function "cvSmooth".
33529
33530 oscilloscope
33531 2D Video Oscilloscope.
33532
33533 Useful to measure spatial impulse, step responses, chroma delays, etc.
33534
33535 It accepts the following parameters:
33536
33537 x Set scope center x position.
33538
33539 y Set scope center y position.
33540
33541 s Set scope size, relative to frame diagonal.
33542
33543 t Set scope tilt/rotation.
33544
33545 o Set trace opacity.
33546
33547 tx Set trace center x position.
33548
33549 ty Set trace center y position.
33550
33551 tw Set trace width, relative to width of frame.
33552
33553 th Set trace height, relative to height of frame.
33554
33555 c Set which components to trace. By default it traces first three
33556 components.
33557
33558 g Draw trace grid. By default is enabled.
33559
33560 st Draw some statistics. By default is enabled.
33561
33562 sc Draw scope. By default is enabled.
33563
33564 Commands
33565
33566 This filter supports same commands as options. The command accepts the
33567 same syntax of the corresponding option.
33568
33569 If the specified expression is not valid, it is kept at its current
33570 value.
33571
33572 Examples
33573
33574 • Inspect full first row of video frame.
33575
33576 oscilloscope=x=0.5:y=0:s=1
33577
33578 • Inspect full last row of video frame.
33579
33580 oscilloscope=x=0.5:y=1:s=1
33581
33582 • Inspect full 5th line of video frame of height 1080.
33583
33584 oscilloscope=x=0.5:y=5/1080:s=1
33585
33586 • Inspect full last column of video frame.
33587
33588 oscilloscope=x=1:y=0.5:s=1:t=1
33589
33590 overlay
33591 Overlay one video on top of another.
33592
33593 It takes two inputs and has one output. The first input is the "main"
33594 video on which the second input is overlaid.
33595
33596 It accepts the following parameters:
33597
33598 A description of the accepted options follows.
33599
33600 x
33601 y Set the expression for the x and y coordinates of the overlaid
33602 video on the main video. Default value is "0" for both expressions.
33603 In case the expression is invalid, it is set to a huge value
33604 (meaning that the overlay will not be displayed within the output
33605 visible area).
33606
33607 eof_action
33608 See framesync.
33609
33610 eval
33611 Set when the expressions for x, and y are evaluated.
33612
33613 It accepts the following values:
33614
33615 init
33616 only evaluate expressions once during the filter initialization
33617 or when a command is processed
33618
33619 frame
33620 evaluate expressions for each incoming frame
33621
33622 Default value is frame.
33623
33624 shortest
33625 See framesync.
33626
33627 format
33628 Set the format for the output video.
33629
33630 It accepts the following values:
33631
33632 yuv420
33633 force YUV420 output
33634
33635 yuv420p10
33636 force YUV420p10 output
33637
33638 yuv422
33639 force YUV422 output
33640
33641 yuv422p10
33642 force YUV422p10 output
33643
33644 yuv444
33645 force YUV444 output
33646
33647 rgb force packed RGB output
33648
33649 gbrp
33650 force planar RGB output
33651
33652 auto
33653 automatically pick format
33654
33655 Default value is yuv420.
33656
33657 repeatlast
33658 See framesync.
33659
33660 alpha
33661 Set format of alpha of the overlaid video, it can be straight or
33662 premultiplied. Default is straight.
33663
33664 The x, and y expressions can contain the following parameters.
33665
33666 main_w, W
33667 main_h, H
33668 The main input width and height.
33669
33670 overlay_w, w
33671 overlay_h, h
33672 The overlay input width and height.
33673
33674 x
33675 y The computed values for x and y. They are evaluated for each new
33676 frame.
33677
33678 hsub
33679 vsub
33680 horizontal and vertical chroma subsample values of the output
33681 format. For example for the pixel format "yuv422p" hsub is 2 and
33682 vsub is 1.
33683
33684 n the number of input frame, starting from 0
33685
33686 pos the position in the file of the input frame, NAN if unknown
33687
33688 t The timestamp, expressed in seconds. It's NAN if the input
33689 timestamp is unknown.
33690
33691 This filter also supports the framesync options.
33692
33693 Note that the n, pos, t variables are available only when evaluation is
33694 done per frame, and will evaluate to NAN when eval is set to init.
33695
33696 Be aware that frames are taken from each input video in timestamp
33697 order, hence, if their initial timestamps differ, it is a good idea to
33698 pass the two inputs through a setpts=PTS-STARTPTS filter to have them
33699 begin in the same zero timestamp, as the example for the movie filter
33700 does.
33701
33702 You can chain together more overlays but you should test the efficiency
33703 of such approach.
33704
33705 Commands
33706
33707 This filter supports the following commands:
33708
33709 x
33710 y Modify the x and y of the overlay input. The command accepts the
33711 same syntax of the corresponding option.
33712
33713 If the specified expression is not valid, it is kept at its current
33714 value.
33715
33716 Examples
33717
33718 • Draw the overlay at 10 pixels from the bottom right corner of the
33719 main video:
33720
33721 overlay=main_w-overlay_w-10:main_h-overlay_h-10
33722
33723 Using named options the example above becomes:
33724
33725 overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
33726
33727 • Insert a transparent PNG logo in the bottom left corner of the
33728 input, using the ffmpeg tool with the "-filter_complex" option:
33729
33730 ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
33731
33732 • Insert 2 different transparent PNG logos (second logo on bottom
33733 right corner) using the ffmpeg tool:
33734
33735 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
33736
33737 • Add a transparent color layer on top of the main video; "WxH" must
33738 specify the size of the main input to the overlay filter:
33739
33740 color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
33741
33742 • Play an original video and a filtered version (here with the
33743 deshake filter) side by side using the ffplay tool:
33744
33745 ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
33746
33747 The above command is the same as:
33748
33749 ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
33750
33751 • Make a sliding overlay appearing from the left to the right top
33752 part of the screen starting since time 2:
33753
33754 overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
33755
33756 • Compose output by putting two input videos side to side:
33757
33758 ffmpeg -i left.avi -i right.avi -filter_complex "
33759 nullsrc=size=200x100 [background];
33760 [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
33761 [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
33762 [background][left] overlay=shortest=1 [background+left];
33763 [background+left][right] overlay=shortest=1:x=100 [left+right]
33764 "
33765
33766 • Mask 10-20 seconds of a video by applying the delogo filter to a
33767 section
33768
33769 ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
33770 -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]'
33771 masked.avi
33772
33773 • Chain several overlays in cascade:
33774
33775 nullsrc=s=200x200 [bg];
33776 testsrc=s=100x100, split=4 [in0][in1][in2][in3];
33777 [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0];
33778 [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1];
33779 [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2];
33780 [in3] null, [mid2] overlay=100:100 [out0]
33781
33782 overlay_cuda
33783 Overlay one video on top of another.
33784
33785 This is the CUDA variant of the overlay filter. It only accepts CUDA
33786 frames. The underlying input pixel formats have to match.
33787
33788 It takes two inputs and has one output. The first input is the "main"
33789 video on which the second input is overlaid.
33790
33791 It accepts the following parameters:
33792
33793 x
33794 y Set expressions for the x and y coordinates of the overlaid video
33795 on the main video.
33796
33797 They can contain the following parameters:
33798
33799 main_w, W
33800 main_h, H
33801 The main input width and height.
33802
33803 overlay_w, w
33804 overlay_h, h
33805 The overlay input width and height.
33806
33807 x
33808 y The computed values for x and y. They are evaluated for each
33809 new frame.
33810
33811 n The ordinal index of the main input frame, starting from 0.
33812
33813 pos The byte offset position in the file of the main input frame,
33814 NAN if unknown.
33815
33816 t The timestamp of the main input frame, expressed in seconds,
33817 NAN if unknown.
33818
33819 Default value is "0" for both expressions.
33820
33821 eval
33822 Set when the expressions for x and y are evaluated.
33823
33824 It accepts the following values:
33825
33826 init
33827 Evaluate expressions once during filter initialization or when
33828 a command is processed.
33829
33830 frame
33831 Evaluate expressions for each incoming frame
33832
33833 Default value is frame.
33834
33835 eof_action
33836 See framesync.
33837
33838 shortest
33839 See framesync.
33840
33841 repeatlast
33842 See framesync.
33843
33844 This filter also supports the framesync options.
33845
33846 owdenoise
33847 Apply Overcomplete Wavelet denoiser.
33848
33849 The filter accepts the following options:
33850
33851 depth
33852 Set depth.
33853
33854 Larger depth values will denoise lower frequency components more,
33855 but slow down filtering.
33856
33857 Must be an int in the range 8-16, default is 8.
33858
33859 luma_strength, ls
33860 Set luma strength.
33861
33862 Must be a double value in the range 0-1000, default is 1.0.
33863
33864 chroma_strength, cs
33865 Set chroma strength.
33866
33867 Must be a double value in the range 0-1000, default is 1.0.
33868
33869 pad
33870 Add paddings to the input image, and place the original input at the
33871 provided x, y coordinates.
33872
33873 It accepts the following parameters:
33874
33875 width, w
33876 height, h
33877 Specify an expression for the size of the output image with the
33878 paddings added. If the value for width or height is 0, the
33879 corresponding input size is used for the output.
33880
33881 The width expression can reference the value set by the height
33882 expression, and vice versa.
33883
33884 The default value of width and height is 0.
33885
33886 x
33887 y Specify the offsets to place the input image at within the padded
33888 area, with respect to the top/left border of the output image.
33889
33890 The x expression can reference the value set by the y expression,
33891 and vice versa.
33892
33893 The default value of x and y is 0.
33894
33895 If x or y evaluate to a negative number, they'll be changed so the
33896 input image is centered on the padded area.
33897
33898 color
33899 Specify the color of the padded area. For the syntax of this
33900 option, check the "Color" section in the ffmpeg-utils manual.
33901
33902 The default value of color is "black".
33903
33904 eval
33905 Specify when to evaluate width, height, x and y expression.
33906
33907 It accepts the following values:
33908
33909 init
33910 Only evaluate expressions once during the filter initialization
33911 or when a command is processed.
33912
33913 frame
33914 Evaluate expressions for each incoming frame.
33915
33916 Default value is init.
33917
33918 aspect
33919 Pad to aspect instead to a resolution.
33920
33921 The value for the width, height, x, and y options are expressions
33922 containing the following constants:
33923
33924 in_w
33925 in_h
33926 The input video width and height.
33927
33928 iw
33929 ih These are the same as in_w and in_h.
33930
33931 out_w
33932 out_h
33933 The output width and height (the size of the padded area), as
33934 specified by the width and height expressions.
33935
33936 ow
33937 oh These are the same as out_w and out_h.
33938
33939 x
33940 y The x and y offsets as specified by the x and y expressions, or NAN
33941 if not yet specified.
33942
33943 a same as iw / ih
33944
33945 sar input sample aspect ratio
33946
33947 dar input display aspect ratio, it is the same as (iw / ih) * sar
33948
33949 hsub
33950 vsub
33951 The horizontal and vertical chroma subsample values. For example
33952 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
33953
33954 Examples
33955
33956 • Add paddings with the color "violet" to the input video. The output
33957 video size is 640x480, and the top-left corner of the input video
33958 is placed at column 0, row 40
33959
33960 pad=640:480:0:40:violet
33961
33962 The example above is equivalent to the following command:
33963
33964 pad=width=640:height=480:x=0:y=40:color=violet
33965
33966 • Pad the input to get an output with dimensions increased by 3/2,
33967 and put the input video at the center of the padded area:
33968
33969 pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
33970
33971 • Pad the input to get a squared output with size equal to the
33972 maximum value between the input width and height, and put the input
33973 video at the center of the padded area:
33974
33975 pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
33976
33977 • Pad the input to get a final w/h ratio of 16:9:
33978
33979 pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
33980
33981 • In case of anamorphic video, in order to set the output display
33982 aspect correctly, it is necessary to use sar in the expression,
33983 according to the relation:
33984
33985 (ih * X / ih) * sar = output_dar
33986 X = output_dar / sar
33987
33988 Thus the previous example needs to be modified to:
33989
33990 pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
33991
33992 • Double the output size and put the input video in the bottom-right
33993 corner of the output padded area:
33994
33995 pad="2*iw:2*ih:ow-iw:oh-ih"
33996
33997 palettegen
33998 Generate one palette for a whole video stream.
33999
34000 It accepts the following options:
34001
34002 max_colors
34003 Set the maximum number of colors to quantize in the palette. Note:
34004 the palette will still contain 256 colors; the unused palette
34005 entries will be black.
34006
34007 reserve_transparent
34008 Create a palette of 255 colors maximum and reserve the last one for
34009 transparency. Reserving the transparency color is useful for GIF
34010 optimization. If not set, the maximum of colors in the palette
34011 will be 256. You probably want to disable this option for a
34012 standalone image. Set by default.
34013
34014 transparency_color
34015 Set the color that will be used as background for transparency.
34016
34017 stats_mode
34018 Set statistics mode.
34019
34020 It accepts the following values:
34021
34022 full
34023 Compute full frame histograms.
34024
34025 diff
34026 Compute histograms only for the part that differs from previous
34027 frame. This might be relevant to give more importance to the
34028 moving part of your input if the background is static.
34029
34030 single
34031 Compute new histogram for each frame.
34032
34033 Default value is full.
34034
34035 use_alpha
34036 Create a palette of colors with alpha components. Setting this,
34037 will automatically disable 'reserve_transparent'.
34038
34039 The filter also exports the frame metadata "lavfi.color_quant_ratio"
34040 ("nb_color_in / nb_color_out") which you can use to evaluate the degree
34041 of color quantization of the palette. This information is also visible
34042 at info logging level.
34043
34044 Examples
34045
34046 • Generate a representative palette of a given video using ffmpeg:
34047
34048 ffmpeg -i input.mkv -vf palettegen palette.png
34049
34050 paletteuse
34051 Use a palette to downsample an input video stream.
34052
34053 The filter takes two inputs: one video stream and a palette. The
34054 palette must be a 256 pixels image.
34055
34056 It accepts the following options:
34057
34058 dither
34059 Select dithering mode. Available algorithms are:
34060
34061 bayer
34062 Ordered 8x8 bayer dithering (deterministic)
34063
34064 heckbert
34065 Dithering as defined by Paul Heckbert in 1982 (simple error
34066 diffusion). Note: this dithering is sometimes considered
34067 "wrong" and is included as a reference.
34068
34069 floyd_steinberg
34070 Floyd and Steingberg dithering (error diffusion)
34071
34072 sierra2
34073 Frankie Sierra dithering v2 (error diffusion)
34074
34075 sierra2_4a
34076 Frankie Sierra dithering v2 "Lite" (error diffusion)
34077
34078 Default is sierra2_4a.
34079
34080 bayer_scale
34081 When bayer dithering is selected, this option defines the scale of
34082 the pattern (how much the crosshatch pattern is visible). A low
34083 value means more visible pattern for less banding, and higher value
34084 means less visible pattern at the cost of more banding.
34085
34086 The option must be an integer value in the range [0,5]. Default is
34087 2.
34088
34089 diff_mode
34090 If set, define the zone to process
34091
34092 rectangle
34093 Only the changing rectangle will be reprocessed. This is
34094 similar to GIF cropping/offsetting compression mechanism. This
34095 option can be useful for speed if only a part of the image is
34096 changing, and has use cases such as limiting the scope of the
34097 error diffusal dither to the rectangle that bounds the moving
34098 scene (it leads to more deterministic output if the scene
34099 doesn't change much, and as a result less moving noise and
34100 better GIF compression).
34101
34102 Default is none.
34103
34104 new Take new palette for each output frame.
34105
34106 alpha_threshold
34107 Sets the alpha threshold for transparency. Alpha values above this
34108 threshold will be treated as completely opaque, and values below
34109 this threshold will be treated as completely transparent.
34110
34111 The option must be an integer value in the range [0,255]. Default
34112 is 128.
34113
34114 use_alpha
34115 Apply the palette by taking alpha values into account. Only useful
34116 with palettes that are containing multiple colors with alpha
34117 components. Setting this will automatically disable
34118 'alpha_treshold'.
34119
34120 Examples
34121
34122 • Use a palette (generated for example with palettegen) to encode a
34123 GIF using ffmpeg:
34124
34125 ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
34126
34127 perspective
34128 Correct perspective of video not recorded perpendicular to the screen.
34129
34130 A description of the accepted parameters follows.
34131
34132 x0
34133 y0
34134 x1
34135 y1
34136 x2
34137 y2
34138 x3
34139 y3 Set coordinates expression for top left, top right, bottom left and
34140 bottom right corners. Default values are "0:0:W:0:0:H:W:H" with
34141 which perspective will remain unchanged. If the "sense" option is
34142 set to "source", then the specified points will be sent to the
34143 corners of the destination. If the "sense" option is set to
34144 "destination", then the corners of the source will be sent to the
34145 specified coordinates.
34146
34147 The expressions can use the following variables:
34148
34149 W
34150 H the width and height of video frame.
34151
34152 in Input frame count.
34153
34154 on Output frame count.
34155
34156 interpolation
34157 Set interpolation for perspective correction.
34158
34159 It accepts the following values:
34160
34161 linear
34162 cubic
34163
34164 Default value is linear.
34165
34166 sense
34167 Set interpretation of coordinate options.
34168
34169 It accepts the following values:
34170
34171 0, source
34172 Send point in the source specified by the given coordinates to
34173 the corners of the destination.
34174
34175 1, destination
34176 Send the corners of the source to the point in the destination
34177 specified by the given coordinates.
34178
34179 Default value is source.
34180
34181 eval
34182 Set when the expressions for coordinates x0,y0,...x3,y3 are
34183 evaluated.
34184
34185 It accepts the following values:
34186
34187 init
34188 only evaluate expressions once during the filter initialization
34189 or when a command is processed
34190
34191 frame
34192 evaluate expressions for each incoming frame
34193
34194 Default value is init.
34195
34196 phase
34197 Delay interlaced video by one field time so that the field order
34198 changes.
34199
34200 The intended use is to fix PAL movies that have been captured with the
34201 opposite field order to the film-to-video transfer.
34202
34203 A description of the accepted parameters follows.
34204
34205 mode
34206 Set phase mode.
34207
34208 It accepts the following values:
34209
34210 t Capture field order top-first, transfer bottom-first. Filter
34211 will delay the bottom field.
34212
34213 b Capture field order bottom-first, transfer top-first. Filter
34214 will delay the top field.
34215
34216 p Capture and transfer with the same field order. This mode only
34217 exists for the documentation of the other options to refer to,
34218 but if you actually select it, the filter will faithfully do
34219 nothing.
34220
34221 a Capture field order determined automatically by field flags,
34222 transfer opposite. Filter selects among t and b modes on a
34223 frame by frame basis using field flags. If no field information
34224 is available, then this works just like u.
34225
34226 u Capture unknown or varying, transfer opposite. Filter selects
34227 among t and b on a frame by frame basis by analyzing the images
34228 and selecting the alternative that produces best match between
34229 the fields.
34230
34231 T Capture top-first, transfer unknown or varying. Filter selects
34232 among t and p using image analysis.
34233
34234 B Capture bottom-first, transfer unknown or varying. Filter
34235 selects among b and p using image analysis.
34236
34237 A Capture determined by field flags, transfer unknown or varying.
34238 Filter selects among t, b and p using field flags and image
34239 analysis. If no field information is available, then this works
34240 just like U. This is the default mode.
34241
34242 U Both capture and transfer unknown or varying. Filter selects
34243 among t, b and p using image analysis only.
34244
34245 Commands
34246
34247 This filter supports the all above options as commands.
34248
34249 photosensitivity
34250 Reduce various flashes in video, so to help users with epilepsy.
34251
34252 It accepts the following options:
34253
34254 frames, f
34255 Set how many frames to use when filtering. Default is 30.
34256
34257 threshold, t
34258 Set detection threshold factor. Default is 1. Lower is stricter.
34259
34260 skip
34261 Set how many pixels to skip when sampling frames. Default is 1.
34262 Allowed range is from 1 to 1024.
34263
34264 bypass
34265 Leave frames unchanged. Default is disabled.
34266
34267 pixdesctest
34268 Pixel format descriptor test filter, mainly useful for internal
34269 testing. The output video should be equal to the input video.
34270
34271 For example:
34272
34273 format=monow, pixdesctest
34274
34275 can be used to test the monowhite pixel format descriptor definition.
34276
34277 pixelize
34278 Apply pixelization to video stream.
34279
34280 The filter accepts the following options:
34281
34282 width, w
34283 height, h
34284 Set block dimensions that will be used for pixelization. Default
34285 value is 16.
34286
34287 mode, m
34288 Set the mode of pixelization used.
34289
34290 Possible values are:
34291
34292 avg
34293 min
34294 max
34295
34296 Default value is "avg".
34297
34298 planes, p
34299 Set what planes to filter. Default is to filter all planes.
34300
34301 Commands
34302
34303 This filter supports all options as commands.
34304
34305 pixscope
34306 Display sample values of color channels. Mainly useful for checking
34307 color and levels. Minimum supported resolution is 640x480.
34308
34309 The filters accept the following options:
34310
34311 x Set scope X position, relative offset on X axis.
34312
34313 y Set scope Y position, relative offset on Y axis.
34314
34315 w Set scope width.
34316
34317 h Set scope height.
34318
34319 o Set window opacity. This window also holds statistics about pixel
34320 area.
34321
34322 wx Set window X position, relative offset on X axis.
34323
34324 wy Set window Y position, relative offset on Y axis.
34325
34326 Commands
34327
34328 This filter supports same commands as options.
34329
34330 pp
34331 Enable the specified chain of postprocessing subfilters using
34332 libpostproc. This library should be automatically selected with a GPL
34333 build ("--enable-gpl"). Subfilters must be separated by '/' and can be
34334 disabled by prepending a '-'. Each subfilter and some options have a
34335 short and a long name that can be used interchangeably, i.e. dr/dering
34336 are the same.
34337
34338 The filters accept the following options:
34339
34340 subfilters
34341 Set postprocessing subfilters string.
34342
34343 All subfilters share common options to determine their scope:
34344
34345 a/autoq
34346 Honor the quality commands for this subfilter.
34347
34348 c/chrom
34349 Do chrominance filtering, too (default).
34350
34351 y/nochrom
34352 Do luminance filtering only (no chrominance).
34353
34354 n/noluma
34355 Do chrominance filtering only (no luminance).
34356
34357 These options can be appended after the subfilter name, separated by a
34358 '|'.
34359
34360 Available subfilters are:
34361
34362 hb/hdeblock[|difference[|flatness]]
34363 Horizontal deblocking filter
34364
34365 difference
34366 Difference factor where higher values mean more deblocking
34367 (default: 32).
34368
34369 flatness
34370 Flatness threshold where lower values mean more deblocking
34371 (default: 39).
34372
34373 vb/vdeblock[|difference[|flatness]]
34374 Vertical deblocking filter
34375
34376 difference
34377 Difference factor where higher values mean more deblocking
34378 (default: 32).
34379
34380 flatness
34381 Flatness threshold where lower values mean more deblocking
34382 (default: 39).
34383
34384 ha/hadeblock[|difference[|flatness]]
34385 Accurate horizontal deblocking filter
34386
34387 difference
34388 Difference factor where higher values mean more deblocking
34389 (default: 32).
34390
34391 flatness
34392 Flatness threshold where lower values mean more deblocking
34393 (default: 39).
34394
34395 va/vadeblock[|difference[|flatness]]
34396 Accurate vertical deblocking filter
34397
34398 difference
34399 Difference factor where higher values mean more deblocking
34400 (default: 32).
34401
34402 flatness
34403 Flatness threshold where lower values mean more deblocking
34404 (default: 39).
34405
34406 The horizontal and vertical deblocking filters share the difference and
34407 flatness values so you cannot set different horizontal and vertical
34408 thresholds.
34409
34410 h1/x1hdeblock
34411 Experimental horizontal deblocking filter
34412
34413 v1/x1vdeblock
34414 Experimental vertical deblocking filter
34415
34416 dr/dering
34417 Deringing filter
34418
34419 tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
34420 reducer
34421 threshold1
34422 larger -> stronger filtering
34423
34424 threshold2
34425 larger -> stronger filtering
34426
34427 threshold3
34428 larger -> stronger filtering
34429
34430 al/autolevels[:f/fullyrange], automatic brightness / contrast
34431 correction
34432 f/fullyrange
34433 Stretch luminance to "0-255".
34434
34435 lb/linblenddeint
34436 Linear blend deinterlacing filter that deinterlaces the given block
34437 by filtering all lines with a "(1 2 1)" filter.
34438
34439 li/linipoldeint
34440 Linear interpolating deinterlacing filter that deinterlaces the
34441 given block by linearly interpolating every second line.
34442
34443 ci/cubicipoldeint
34444 Cubic interpolating deinterlacing filter deinterlaces the given
34445 block by cubically interpolating every second line.
34446
34447 md/mediandeint
34448 Median deinterlacing filter that deinterlaces the given block by
34449 applying a median filter to every second line.
34450
34451 fd/ffmpegdeint
34452 FFmpeg deinterlacing filter that deinterlaces the given block by
34453 filtering every second line with a "(-1 4 2 4 -1)" filter.
34454
34455 l5/lowpass5
34456 Vertically applied FIR lowpass deinterlacing filter that
34457 deinterlaces the given block by filtering all lines with a "(-1 2 6
34458 2 -1)" filter.
34459
34460 fq/forceQuant[|quantizer]
34461 Overrides the quantizer table from the input with the constant
34462 quantizer you specify.
34463
34464 quantizer
34465 Quantizer to use
34466
34467 de/default
34468 Default pp filter combination ("hb|a,vb|a,dr|a")
34469
34470 fa/fast
34471 Fast pp filter combination ("h1|a,v1|a,dr|a")
34472
34473 ac High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
34474
34475 Examples
34476
34477 • Apply horizontal and vertical deblocking, deringing and automatic
34478 brightness/contrast:
34479
34480 pp=hb/vb/dr/al
34481
34482 • Apply default filters without brightness/contrast correction:
34483
34484 pp=de/-al
34485
34486 • Apply default filters and temporal denoiser:
34487
34488 pp=default/tmpnoise|1|2|3
34489
34490 • Apply deblocking on luminance only, and switch vertical deblocking
34491 on or off automatically depending on available CPU time:
34492
34493 pp=hb|y/vb|a
34494
34495 pp7
34496 Apply Postprocessing filter 7. It is variant of the spp filter, similar
34497 to spp = 6 with 7 point DCT, where only the center sample is used after
34498 IDCT.
34499
34500 The filter accepts the following options:
34501
34502 qp Force a constant quantization parameter. It accepts an integer in
34503 range 0 to 63. If not set, the filter will use the QP from the
34504 video stream (if available).
34505
34506 mode
34507 Set thresholding mode. Available modes are:
34508
34509 hard
34510 Set hard thresholding.
34511
34512 soft
34513 Set soft thresholding (better de-ringing effect, but likely
34514 blurrier).
34515
34516 medium
34517 Set medium thresholding (good results, default).
34518
34519 premultiply
34520 Apply alpha premultiply effect to input video stream using first plane
34521 of second stream as alpha.
34522
34523 Both streams must have same dimensions and same pixel format.
34524
34525 The filter accepts the following option:
34526
34527 planes
34528 Set which planes will be processed, unprocessed planes will be
34529 copied. By default value 0xf, all planes will be processed.
34530
34531 inplace
34532 Do not require 2nd input for processing, instead use alpha plane
34533 from input stream.
34534
34535 prewitt
34536 Apply prewitt operator to input video stream.
34537
34538 The filter accepts the following option:
34539
34540 planes
34541 Set which planes will be processed, unprocessed planes will be
34542 copied. By default value 0xf, all planes will be processed.
34543
34544 scale
34545 Set value which will be multiplied with filtered result.
34546
34547 delta
34548 Set value which will be added to filtered result.
34549
34550 Commands
34551
34552 This filter supports the all above options as commands.
34553
34554 pseudocolor
34555 Alter frame colors in video with pseudocolors.
34556
34557 This filter accepts the following options:
34558
34559 c0 set pixel first component expression
34560
34561 c1 set pixel second component expression
34562
34563 c2 set pixel third component expression
34564
34565 c3 set pixel fourth component expression, corresponds to the alpha
34566 component
34567
34568 index, i
34569 set component to use as base for altering colors
34570
34571 preset, p
34572 Pick one of built-in LUTs. By default is set to none.
34573
34574 Available LUTs:
34575
34576 magma
34577 inferno
34578 plasma
34579 viridis
34580 turbo
34581 cividis
34582 range1
34583 range2
34584 shadows
34585 highlights
34586 solar
34587 nominal
34588 preferred
34589 total
34590 opacity
34591 Set opacity of output colors. Allowed range is from 0 to 1.
34592 Default value is set to 1.
34593
34594 Each of the expression options specifies the expression to use for
34595 computing the lookup table for the corresponding pixel component
34596 values.
34597
34598 The expressions can contain the following constants and functions:
34599
34600 w
34601 h The input width and height.
34602
34603 val The input value for the pixel component.
34604
34605 ymin, umin, vmin, amin
34606 The minimum allowed component value.
34607
34608 ymax, umax, vmax, amax
34609 The maximum allowed component value.
34610
34611 All expressions default to "val".
34612
34613 Commands
34614
34615 This filter supports the all above options as commands.
34616
34617 Examples
34618
34619 • Change too high luma values to gradient:
34620
34621 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'"
34622
34623 psnr
34624 Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
34625 Ratio) between two input videos.
34626
34627 This filter takes in input two input videos, the first input is
34628 considered the "main" source and is passed unchanged to the output. The
34629 second input is used as a "reference" video for computing the PSNR.
34630
34631 Both video inputs must have the same resolution and pixel format for
34632 this filter to work correctly. Also it assumes that both inputs have
34633 the same number of frames, which are compared one by one.
34634
34635 The obtained average PSNR is printed through the logging system.
34636
34637 The filter stores the accumulated MSE (mean squared error) of each
34638 frame, and at the end of the processing it is averaged across all
34639 frames equally, and the following formula is applied to obtain the
34640 PSNR:
34641
34642 PSNR = 10*log10(MAX^2/MSE)
34643
34644 Where MAX is the average of the maximum values of each component of the
34645 image.
34646
34647 The description of the accepted parameters follows.
34648
34649 stats_file, f
34650 If specified the filter will use the named file to save the PSNR of
34651 each individual frame. When filename equals "-" the data is sent to
34652 standard output.
34653
34654 stats_version
34655 Specifies which version of the stats file format to use. Details of
34656 each format are written below. Default value is 1.
34657
34658 stats_add_max
34659 Determines whether the max value is output to the stats log.
34660 Default value is 0. Requires stats_version >= 2. If this is set
34661 and stats_version < 2, the filter will return an error.
34662
34663 This filter also supports the framesync options.
34664
34665 The file printed if stats_file is selected, contains a sequence of
34666 key/value pairs of the form key:value for each compared couple of
34667 frames.
34668
34669 If a stats_version greater than 1 is specified, a header line precedes
34670 the list of per-frame-pair stats, with key value pairs following the
34671 frame format with the following parameters:
34672
34673 psnr_log_version
34674 The version of the log file format. Will match stats_version.
34675
34676 fields
34677 A comma separated list of the per-frame-pair parameters included in
34678 the log.
34679
34680 A description of each shown per-frame-pair parameter follows:
34681
34682 n sequential number of the input frame, starting from 1
34683
34684 mse_avg
34685 Mean Square Error pixel-by-pixel average difference of the compared
34686 frames, averaged over all the image components.
34687
34688 mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
34689 Mean Square Error pixel-by-pixel average difference of the compared
34690 frames for the component specified by the suffix.
34691
34692 psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
34693 Peak Signal to Noise ratio of the compared frames for the component
34694 specified by the suffix.
34695
34696 max_avg, max_y, max_u, max_v
34697 Maximum allowed value for each channel, and average over all
34698 channels.
34699
34700 Examples
34701
34702 • For example:
34703
34704 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
34705 [main][ref] psnr="stats_file=stats.log" [out]
34706
34707 On this example the input file being processed is compared with the
34708 reference file ref_movie.mpg. The PSNR of each individual frame is
34709 stored in stats.log.
34710
34711 • Another example with different containers:
34712
34713 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 -
34714
34715 pullup
34716 Pulldown reversal (inverse telecine) filter, capable of handling mixed
34717 hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
34718 progressive content.
34719
34720 The pullup filter is designed to take advantage of future context in
34721 making its decisions. This filter is stateless in the sense that it
34722 does not lock onto a pattern to follow, but it instead looks forward to
34723 the following fields in order to identify matches and rebuild
34724 progressive frames.
34725
34726 To produce content with an even framerate, insert the fps filter after
34727 pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
34728 "fps=24" for 30fps and the (rare) telecined 25fps input.
34729
34730 The filter accepts the following options:
34731
34732 jl
34733 jr
34734 jt
34735 jb These options set the amount of "junk" to ignore at the left,
34736 right, top, and bottom of the image, respectively. Left and right
34737 are in units of 8 pixels, while top and bottom are in units of 2
34738 lines. The default is 8 pixels on each side.
34739
34740 sb Set the strict breaks. Setting this option to 1 will reduce the
34741 chances of filter generating an occasional mismatched frame, but it
34742 may also cause an excessive number of frames to be dropped during
34743 high motion sequences. Conversely, setting it to -1 will make
34744 filter match fields more easily. This may help processing of video
34745 where there is slight blurring between the fields, but may also
34746 cause there to be interlaced frames in the output. Default value
34747 is 0.
34748
34749 mp Set the metric plane to use. It accepts the following values:
34750
34751 l Use luma plane.
34752
34753 u Use chroma blue plane.
34754
34755 v Use chroma red plane.
34756
34757 This option may be set to use chroma plane instead of the default
34758 luma plane for doing filter's computations. This may improve
34759 accuracy on very clean source material, but more likely will
34760 decrease accuracy, especially if there is chroma noise (rainbow
34761 effect) or any grayscale video. The main purpose of setting mp to
34762 a chroma plane is to reduce CPU load and make pullup usable in
34763 realtime on slow machines.
34764
34765 For best results (without duplicated frames in the output file) it is
34766 necessary to change the output frame rate. For example, to inverse
34767 telecine NTSC input:
34768
34769 ffmpeg -i input -vf pullup -r 24000/1001 ...
34770
34771 qp
34772 Change video quantization parameters (QP).
34773
34774 The filter accepts the following option:
34775
34776 qp Set expression for quantization parameter.
34777
34778 The expression is evaluated through the eval API and can contain, among
34779 others, the following constants:
34780
34781 known
34782 1 if index is not 129, 0 otherwise.
34783
34784 qp Sequential index starting from -129 to 128.
34785
34786 Examples
34787
34788 • Some equation like:
34789
34790 qp=2+2*sin(PI*qp)
34791
34792 random
34793 Flush video frames from internal cache of frames into a random order.
34794 No frame is discarded. Inspired by frei0r nervous filter.
34795
34796 frames
34797 Set size in number of frames of internal cache, in range from 2 to
34798 512. Default is 30.
34799
34800 seed
34801 Set seed for random number generator, must be an integer included
34802 between 0 and "UINT32_MAX". If not specified, or if explicitly set
34803 to less than 0, the filter will try to use a good random seed on a
34804 best effort basis.
34805
34806 readeia608
34807 Read closed captioning (EIA-608) information from the top lines of a
34808 video frame.
34809
34810 This filter adds frame metadata for "lavfi.readeia608.X.cc" and
34811 "lavfi.readeia608.X.line", where "X" is the number of the identified
34812 line with EIA-608 data (starting from 0). A description of each
34813 metadata value follows:
34814
34815 lavfi.readeia608.X.cc
34816 The two bytes stored as EIA-608 data (printed in hexadecimal).
34817
34818 lavfi.readeia608.X.line
34819 The number of the line on which the EIA-608 data was identified and
34820 read.
34821
34822 This filter accepts the following options:
34823
34824 scan_min
34825 Set the line to start scanning for EIA-608 data. Default is 0.
34826
34827 scan_max
34828 Set the line to end scanning for EIA-608 data. Default is 29.
34829
34830 spw Set the ratio of width reserved for sync code detection. Default
34831 is 0.27. Allowed range is "[0.1 - 0.7]".
34832
34833 chp Enable checking the parity bit. In the event of a parity error, the
34834 filter will output 0x00 for that character. Default is false.
34835
34836 lp Lowpass lines prior to further processing. Default is enabled.
34837
34838 Commands
34839
34840 This filter supports the all above options as commands.
34841
34842 Examples
34843
34844 • Output a csv with presentation time and the first two lines of
34845 identified EIA-608 captioning data.
34846
34847 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
34848
34849 readvitc
34850 Read vertical interval timecode (VITC) information from the top lines
34851 of a video frame.
34852
34853 The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
34854 timecode value, if a valid timecode has been detected. Further metadata
34855 key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
34856 data has been found or not.
34857
34858 This filter accepts the following options:
34859
34860 scan_max
34861 Set the maximum number of lines to scan for VITC data. If the value
34862 is set to "-1" the full video frame is scanned. Default is 45.
34863
34864 thr_b
34865 Set the luma threshold for black. Accepts float numbers in the
34866 range [0.0,1.0], default value is 0.2. The value must be equal or
34867 less than "thr_w".
34868
34869 thr_w
34870 Set the luma threshold for white. Accepts float numbers in the
34871 range [0.0,1.0], default value is 0.6. The value must be equal or
34872 greater than "thr_b".
34873
34874 Examples
34875
34876 • Detect and draw VITC data onto the video frame; if no valid VITC is
34877 detected, draw "--:--:--:--" as a placeholder:
34878
34879 ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
34880
34881 remap
34882 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
34883
34884 Destination pixel at position (X, Y) will be picked from source (x, y)
34885 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
34886 out of range, zero value for pixel will be used for destination pixel.
34887
34888 Xmap and Ymap input video streams must be of same dimensions. Output
34889 video stream will have Xmap/Ymap video stream dimensions. Xmap and
34890 Ymap input video streams are 16bit depth, single channel.
34891
34892 format
34893 Specify pixel format of output from this filter. Can be "color" or
34894 "gray". Default is "color".
34895
34896 fill
34897 Specify the color of the unmapped pixels. For the syntax of this
34898 option, check the "Color" section in the ffmpeg-utils manual.
34899 Default color is "black".
34900
34901 removegrain
34902 The removegrain filter is a spatial denoiser for progressive video.
34903
34904 m0 Set mode for the first plane.
34905
34906 m1 Set mode for the second plane.
34907
34908 m2 Set mode for the third plane.
34909
34910 m3 Set mode for the fourth plane.
34911
34912 Range of mode is from 0 to 24. Description of each mode follows:
34913
34914 0 Leave input plane unchanged. Default.
34915
34916 1 Clips the pixel with the minimum and maximum of the 8 neighbour
34917 pixels.
34918
34919 2 Clips the pixel with the second minimum and maximum of the 8
34920 neighbour pixels.
34921
34922 3 Clips the pixel with the third minimum and maximum of the 8
34923 neighbour pixels.
34924
34925 4 Clips the pixel with the fourth minimum and maximum of the 8
34926 neighbour pixels. This is equivalent to a median filter.
34927
34928 5 Line-sensitive clipping giving the minimal change.
34929
34930 6 Line-sensitive clipping, intermediate.
34931
34932 7 Line-sensitive clipping, intermediate.
34933
34934 8 Line-sensitive clipping, intermediate.
34935
34936 9 Line-sensitive clipping on a line where the neighbours pixels are
34937 the closest.
34938
34939 10 Replaces the target pixel with the closest neighbour.
34940
34941 11 [1 2 1] horizontal and vertical kernel blur.
34942
34943 12 Same as mode 11.
34944
34945 13 Bob mode, interpolates top field from the line where the neighbours
34946 pixels are the closest.
34947
34948 14 Bob mode, interpolates bottom field from the line where the
34949 neighbours pixels are the closest.
34950
34951 15 Bob mode, interpolates top field. Same as 13 but with a more
34952 complicated interpolation formula.
34953
34954 16 Bob mode, interpolates bottom field. Same as 14 but with a more
34955 complicated interpolation formula.
34956
34957 17 Clips the pixel with the minimum and maximum of respectively the
34958 maximum and minimum of each pair of opposite neighbour pixels.
34959
34960 18 Line-sensitive clipping using opposite neighbours whose greatest
34961 distance from the current pixel is minimal.
34962
34963 19 Replaces the pixel with the average of its 8 neighbours.
34964
34965 20 Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
34966
34967 21 Clips pixels using the averages of opposite neighbour.
34968
34969 22 Same as mode 21 but simpler and faster.
34970
34971 23 Small edge and halo removal, but reputed useless.
34972
34973 24 Similar as 23.
34974
34975 removelogo
34976 Suppress a TV station logo, using an image file to determine which
34977 pixels comprise the logo. It works by filling in the pixels that
34978 comprise the logo with neighboring pixels.
34979
34980 The filter accepts the following options:
34981
34982 filename, f
34983 Set the filter bitmap file, which can be any image format supported
34984 by libavformat. The width and height of the image file must match
34985 those of the video stream being processed.
34986
34987 Pixels in the provided bitmap image with a value of zero are not
34988 considered part of the logo, non-zero pixels are considered part of the
34989 logo. If you use white (255) for the logo and black (0) for the rest,
34990 you will be safe. For making the filter bitmap, it is recommended to
34991 take a screen capture of a black frame with the logo visible, and then
34992 using a threshold filter followed by the erode filter once or twice.
34993
34994 If needed, little splotches can be fixed manually. Remember that if
34995 logo pixels are not covered, the filter quality will be much reduced.
34996 Marking too many pixels as part of the logo does not hurt as much, but
34997 it will increase the amount of blurring needed to cover over the image
34998 and will destroy more information than necessary, and extra pixels will
34999 slow things down on a large logo.
35000
35001 repeatfields
35002 This filter uses the repeat_field flag from the Video ES headers and
35003 hard repeats fields based on its value.
35004
35005 reverse
35006 Reverse a video clip.
35007
35008 Warning: This filter requires memory to buffer the entire clip, so
35009 trimming is suggested.
35010
35011 Examples
35012
35013 • Take the first 5 seconds of a clip, and reverse it.
35014
35015 trim=end=5,reverse
35016
35017 rgbashift
35018 Shift R/G/B/A pixels horizontally and/or vertically.
35019
35020 The filter accepts the following options:
35021
35022 rh Set amount to shift red horizontally.
35023
35024 rv Set amount to shift red vertically.
35025
35026 gh Set amount to shift green horizontally.
35027
35028 gv Set amount to shift green vertically.
35029
35030 bh Set amount to shift blue horizontally.
35031
35032 bv Set amount to shift blue vertically.
35033
35034 ah Set amount to shift alpha horizontally.
35035
35036 av Set amount to shift alpha vertically.
35037
35038 edge
35039 Set edge mode, can be smear, default, or warp.
35040
35041 Commands
35042
35043 This filter supports the all above options as commands.
35044
35045 roberts
35046 Apply roberts cross operator to input video stream.
35047
35048 The filter accepts the following option:
35049
35050 planes
35051 Set which planes will be processed, unprocessed planes will be
35052 copied. By default value 0xf, all planes will be processed.
35053
35054 scale
35055 Set value which will be multiplied with filtered result.
35056
35057 delta
35058 Set value which will be added to filtered result.
35059
35060 Commands
35061
35062 This filter supports the all above options as commands.
35063
35064 rotate
35065 Rotate video by an arbitrary angle expressed in radians.
35066
35067 The filter accepts the following options:
35068
35069 A description of the optional parameters follows.
35070
35071 angle, a
35072 Set an expression for the angle by which to rotate the input video
35073 clockwise, expressed as a number of radians. A negative value will
35074 result in a counter-clockwise rotation. By default it is set to
35075 "0".
35076
35077 This expression is evaluated for each frame.
35078
35079 out_w, ow
35080 Set the output width expression, default value is "iw". This
35081 expression is evaluated just once during configuration.
35082
35083 out_h, oh
35084 Set the output height expression, default value is "ih". This
35085 expression is evaluated just once during configuration.
35086
35087 bilinear
35088 Enable bilinear interpolation if set to 1, a value of 0 disables
35089 it. Default value is 1.
35090
35091 fillcolor, c
35092 Set the color used to fill the output area not covered by the
35093 rotated image. For the general syntax of this option, check the
35094 "Color" section in the ffmpeg-utils manual. If the special value
35095 "none" is selected then no background is printed (useful for
35096 example if the background is never shown).
35097
35098 Default value is "black".
35099
35100 The expressions for the angle and the output size can contain the
35101 following constants and functions:
35102
35103 n sequential number of the input frame, starting from 0. It is always
35104 NAN before the first frame is filtered.
35105
35106 t time in seconds of the input frame, it is set to 0 when the filter
35107 is configured. It is always NAN before the first frame is filtered.
35108
35109 hsub
35110 vsub
35111 horizontal and vertical chroma subsample values. For example for
35112 the pixel format "yuv422p" hsub is 2 and vsub is 1.
35113
35114 in_w, iw
35115 in_h, ih
35116 the input video width and height
35117
35118 out_w, ow
35119 out_h, oh
35120 the output width and height, that is the size of the padded area as
35121 specified by the width and height expressions
35122
35123 rotw(a)
35124 roth(a)
35125 the minimal width/height required for completely containing the
35126 input video rotated by a radians.
35127
35128 These are only available when computing the out_w and out_h
35129 expressions.
35130
35131 Examples
35132
35133 • Rotate the input by PI/6 radians clockwise:
35134
35135 rotate=PI/6
35136
35137 • Rotate the input by PI/6 radians counter-clockwise:
35138
35139 rotate=-PI/6
35140
35141 • Rotate the input by 45 degrees clockwise:
35142
35143 rotate=45*PI/180
35144
35145 • Apply a constant rotation with period T, starting from an angle of
35146 PI/3:
35147
35148 rotate=PI/3+2*PI*t/T
35149
35150 • Make the input video rotation oscillating with a period of T
35151 seconds and an amplitude of A radians:
35152
35153 rotate=A*sin(2*PI/T*t)
35154
35155 • Rotate the video, output size is chosen so that the whole rotating
35156 input video is always completely contained in the output:
35157
35158 rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
35159
35160 • Rotate the video, reduce the output size so that no background is
35161 ever shown:
35162
35163 rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
35164
35165 Commands
35166
35167 The filter supports the following commands:
35168
35169 a, angle
35170 Set the angle expression. The command accepts the same syntax of
35171 the corresponding option.
35172
35173 If the specified expression is not valid, it is kept at its current
35174 value.
35175
35176 sab
35177 Apply Shape Adaptive Blur.
35178
35179 The filter accepts the following options:
35180
35181 luma_radius, lr
35182 Set luma blur filter strength, must be a value in range 0.1-4.0,
35183 default value is 1.0. A greater value will result in a more blurred
35184 image, and in slower processing.
35185
35186 luma_pre_filter_radius, lpfr
35187 Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
35188 default value is 1.0.
35189
35190 luma_strength, ls
35191 Set luma maximum difference between pixels to still be considered,
35192 must be a value in the 0.1-100.0 range, default value is 1.0.
35193
35194 chroma_radius, cr
35195 Set chroma blur filter strength, must be a value in range -0.9-4.0.
35196 A greater value will result in a more blurred image, and in slower
35197 processing.
35198
35199 chroma_pre_filter_radius, cpfr
35200 Set chroma pre-filter radius, must be a value in the -0.9-2.0
35201 range.
35202
35203 chroma_strength, cs
35204 Set chroma maximum difference between pixels to still be
35205 considered, must be a value in the -0.9-100.0 range.
35206
35207 Each chroma option value, if not explicitly specified, is set to the
35208 corresponding luma option value.
35209
35210 scale
35211 Scale (resize) the input video, using the libswscale library.
35212
35213 The scale filter forces the output display aspect ratio to be the same
35214 of the input, by changing the output sample aspect ratio.
35215
35216 If the input image format is different from the format requested by the
35217 next filter, the scale filter will convert the input to the requested
35218 format.
35219
35220 Options
35221
35222 The filter accepts the following options, or any of the options
35223 supported by the libswscale scaler.
35224
35225 See the ffmpeg-scaler manual for the complete list of scaler options.
35226
35227 width, w
35228 height, h
35229 Set the output video dimension expression. Default value is the
35230 input dimension.
35231
35232 If the width or w value is 0, the input width is used for the
35233 output. If the height or h value is 0, the input height is used for
35234 the output.
35235
35236 If one and only one of the values is -n with n >= 1, the scale
35237 filter will use a value that maintains the aspect ratio of the
35238 input image, calculated from the other specified dimension. After
35239 that it will, however, make sure that the calculated dimension is
35240 divisible by n and adjust the value if necessary.
35241
35242 If both values are -n with n >= 1, the behavior will be identical
35243 to both values being set to 0 as previously detailed.
35244
35245 See below for the list of accepted constants for use in the
35246 dimension expression.
35247
35248 eval
35249 Specify when to evaluate width and height expression. It accepts
35250 the following values:
35251
35252 init
35253 Only evaluate expressions once during the filter initialization
35254 or when a command is processed.
35255
35256 frame
35257 Evaluate expressions for each incoming frame.
35258
35259 Default value is init.
35260
35261 interl
35262 Set the interlacing mode. It accepts the following values:
35263
35264 1 Force interlaced aware scaling.
35265
35266 0 Do not apply interlaced scaling.
35267
35268 -1 Select interlaced aware scaling depending on whether the source
35269 frames are flagged as interlaced or not.
35270
35271 Default value is 0.
35272
35273 flags
35274 Set libswscale scaling flags. See the ffmpeg-scaler manual for the
35275 complete list of values. If not explicitly specified the filter
35276 applies the default flags.
35277
35278 param0, param1
35279 Set libswscale input parameters for scaling algorithms that need
35280 them. See the ffmpeg-scaler manual for the complete documentation.
35281 If not explicitly specified the filter applies empty parameters.
35282
35283 size, s
35284 Set the video size. For the syntax of this option, check the "Video
35285 size" section in the ffmpeg-utils manual.
35286
35287 in_color_matrix
35288 out_color_matrix
35289 Set in/output YCbCr color space type.
35290
35291 This allows the autodetected value to be overridden as well as
35292 allows forcing a specific value used for the output and encoder.
35293
35294 If not specified, the color space type depends on the pixel format.
35295
35296 Possible values:
35297
35298 auto
35299 Choose automatically.
35300
35301 bt709
35302 Format conforming to International Telecommunication Union
35303 (ITU) Recommendation BT.709.
35304
35305 fcc Set color space conforming to the United States Federal
35306 Communications Commission (FCC) Code of Federal Regulations
35307 (CFR) Title 47 (2003) 73.682 (a).
35308
35309 bt601
35310 bt470
35311 smpte170m
35312 Set color space conforming to:
35313
35314 • ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
35315
35316 • ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
35317
35318 • Society of Motion Picture and Television Engineers (SMPTE)
35319 ST 170:2004
35320
35321 smpte240m
35322 Set color space conforming to SMPTE ST 240:1999.
35323
35324 bt2020
35325 Set color space conforming to ITU-R BT.2020 non-constant
35326 luminance system.
35327
35328 in_range
35329 out_range
35330 Set in/output YCbCr sample range.
35331
35332 This allows the autodetected value to be overridden as well as
35333 allows forcing a specific value used for the output and encoder. If
35334 not specified, the range depends on the pixel format. Possible
35335 values:
35336
35337 auto/unknown
35338 Choose automatically.
35339
35340 jpeg/full/pc
35341 Set full range (0-255 in case of 8-bit luma).
35342
35343 mpeg/limited/tv
35344 Set "MPEG" range (16-235 in case of 8-bit luma).
35345
35346 force_original_aspect_ratio
35347 Enable decreasing or increasing output video width or height if
35348 necessary to keep the original aspect ratio. Possible values:
35349
35350 disable
35351 Scale the video as specified and disable this feature.
35352
35353 decrease
35354 The output video dimensions will automatically be decreased if
35355 needed.
35356
35357 increase
35358 The output video dimensions will automatically be increased if
35359 needed.
35360
35361 One useful instance of this option is that when you know a specific
35362 device's maximum allowed resolution, you can use this to limit the
35363 output video to that, while retaining the aspect ratio. For
35364 example, device A allows 1280x720 playback, and your video is
35365 1920x800. Using this option (set it to decrease) and specifying
35366 1280x720 to the command line makes the output 1280x533.
35367
35368 Please note that this is a different thing than specifying -1 for w
35369 or h, you still need to specify the output resolution for this
35370 option to work.
35371
35372 force_divisible_by
35373 Ensures that both the output dimensions, width and height, are
35374 divisible by the given integer when used together with
35375 force_original_aspect_ratio. This works similar to using "-n" in
35376 the w and h options.
35377
35378 This option respects the value set for force_original_aspect_ratio,
35379 increasing or decreasing the resolution accordingly. The video's
35380 aspect ratio may be slightly modified.
35381
35382 This option can be handy if you need to have a video fit within or
35383 exceed a defined resolution using force_original_aspect_ratio but
35384 also have encoder restrictions on width or height divisibility.
35385
35386 The values of the w and h options are expressions containing the
35387 following constants:
35388
35389 in_w
35390 in_h
35391 The input width and height
35392
35393 iw
35394 ih These are the same as in_w and in_h.
35395
35396 out_w
35397 out_h
35398 The output (scaled) width and height
35399
35400 ow
35401 oh These are the same as out_w and out_h
35402
35403 a The same as iw / ih
35404
35405 sar input sample aspect ratio
35406
35407 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
35408
35409 hsub
35410 vsub
35411 horizontal and vertical input chroma subsample values. For example
35412 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
35413
35414 ohsub
35415 ovsub
35416 horizontal and vertical output chroma subsample values. For example
35417 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
35418
35419 n The (sequential) number of the input frame, starting from 0. Only
35420 available with "eval=frame".
35421
35422 t The presentation timestamp of the input frame, expressed as a
35423 number of seconds. Only available with "eval=frame".
35424
35425 pos The position (byte offset) of the frame in the input stream, or NaN
35426 if this information is unavailable and/or meaningless (for example
35427 in case of synthetic video). Only available with "eval=frame".
35428
35429 Examples
35430
35431 • Scale the input video to a size of 200x100
35432
35433 scale=w=200:h=100
35434
35435 This is equivalent to:
35436
35437 scale=200:100
35438
35439 or:
35440
35441 scale=200x100
35442
35443 • Specify a size abbreviation for the output size:
35444
35445 scale=qcif
35446
35447 which can also be written as:
35448
35449 scale=size=qcif
35450
35451 • Scale the input to 2x:
35452
35453 scale=w=2*iw:h=2*ih
35454
35455 • The above is the same as:
35456
35457 scale=2*in_w:2*in_h
35458
35459 • Scale the input to 2x with forced interlaced scaling:
35460
35461 scale=2*iw:2*ih:interl=1
35462
35463 • Scale the input to half size:
35464
35465 scale=w=iw/2:h=ih/2
35466
35467 • Increase the width, and set the height to the same size:
35468
35469 scale=3/2*iw:ow
35470
35471 • Seek Greek harmony:
35472
35473 scale=iw:1/PHI*iw
35474 scale=ih*PHI:ih
35475
35476 • Increase the height, and set the width to 3/2 of the height:
35477
35478 scale=w=3/2*oh:h=3/5*ih
35479
35480 • Increase the size, making the size a multiple of the chroma
35481 subsample values:
35482
35483 scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
35484
35485 • Increase the width to a maximum of 500 pixels, keeping the same
35486 aspect ratio as the input:
35487
35488 scale=w='min(500\, iw*3/2):h=-1'
35489
35490 • Make pixels square by combining scale and setsar:
35491
35492 scale='trunc(ih*dar):ih',setsar=1/1
35493
35494 • Make pixels square by combining scale and setsar, making sure the
35495 resulting resolution is even (required by some codecs):
35496
35497 scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
35498
35499 Commands
35500
35501 This filter supports the following commands:
35502
35503 width, w
35504 height, h
35505 Set the output video dimension expression. The command accepts the
35506 same syntax of the corresponding option.
35507
35508 If the specified expression is not valid, it is kept at its current
35509 value.
35510
35511 scale_cuda
35512 Scale (resize) and convert (pixel format) the input video, using
35513 accelerated CUDA kernels. Setting the output width and height works in
35514 the same way as for the scale filter.
35515
35516 The filter accepts the following options:
35517
35518 w
35519 h Set the output video dimension expression. Default value is the
35520 input dimension.
35521
35522 Allows for the same expressions as the scale filter.
35523
35524 interp_algo
35525 Sets the algorithm used for scaling:
35526
35527 nearest
35528 Nearest neighbour
35529
35530 Used by default if input parameters match the desired output.
35531
35532 bilinear
35533 Bilinear
35534
35535 bicubic
35536 Bicubic
35537
35538 This is the default.
35539
35540 lanczos
35541 Lanczos
35542
35543 format
35544 Controls the output pixel format. By default, or if none is
35545 specified, the input pixel format is used.
35546
35547 The filter does not support converting between YUV and RGB pixel
35548 formats.
35549
35550 passthrough
35551 If set to 0, every frame is processed, even if no conversion is
35552 neccesary. This mode can be useful to use the filter as a buffer
35553 for a downstream frame-consumer that exhausts the limited decoder
35554 frame pool.
35555
35556 If set to 1, frames are passed through as-is if they match the
35557 desired output parameters. This is the default behaviour.
35558
35559 param
35560 Algorithm-Specific parameter.
35561
35562 Affects the curves of the bicubic algorithm.
35563
35564 force_original_aspect_ratio
35565 force_divisible_by
35566 Work the same as the identical scale filter options.
35567
35568 Examples
35569
35570 • Scale input to 720p, keeping aspect ratio and ensuring the output
35571 is yuv420p.
35572
35573 scale_cuda=-2:720:format=yuv420p
35574
35575 • Upscale to 4K using nearest neighbour algorithm.
35576
35577 scale_cuda=4096:2160:interp_algo=nearest
35578
35579 • Don't do any conversion or scaling, but copy all input frames into
35580 newly allocated ones. This can be useful to deal with a filter and
35581 encode chain that otherwise exhausts the decoders frame pool.
35582
35583 scale_cuda=passthrough=0
35584
35585 scale_npp
35586 Use the NVIDIA Performance Primitives (libnpp) to perform scaling
35587 and/or pixel format conversion on CUDA video frames. Setting the output
35588 width and height works in the same way as for the scale filter.
35589
35590 The following additional options are accepted:
35591
35592 format
35593 The pixel format of the output CUDA frames. If set to the string
35594 "same" (the default), the input format will be kept. Note that
35595 automatic format negotiation and conversion is not yet supported
35596 for hardware frames
35597
35598 interp_algo
35599 The interpolation algorithm used for resizing. One of the
35600 following:
35601
35602 nn Nearest neighbour.
35603
35604 linear
35605 cubic
35606 cubic2p_bspline
35607 2-parameter cubic (B=1, C=0)
35608
35609 cubic2p_catmullrom
35610 2-parameter cubic (B=0, C=1/2)
35611
35612 cubic2p_b05c03
35613 2-parameter cubic (B=1/2, C=3/10)
35614
35615 super
35616 Supersampling
35617
35618 lanczos
35619 force_original_aspect_ratio
35620 Enable decreasing or increasing output video width or height if
35621 necessary to keep the original aspect ratio. Possible values:
35622
35623 disable
35624 Scale the video as specified and disable this feature.
35625
35626 decrease
35627 The output video dimensions will automatically be decreased if
35628 needed.
35629
35630 increase
35631 The output video dimensions will automatically be increased if
35632 needed.
35633
35634 One useful instance of this option is that when you know a specific
35635 device's maximum allowed resolution, you can use this to limit the
35636 output video to that, while retaining the aspect ratio. For
35637 example, device A allows 1280x720 playback, and your video is
35638 1920x800. Using this option (set it to decrease) and specifying
35639 1280x720 to the command line makes the output 1280x533.
35640
35641 Please note that this is a different thing than specifying -1 for w
35642 or h, you still need to specify the output resolution for this
35643 option to work.
35644
35645 force_divisible_by
35646 Ensures that both the output dimensions, width and height, are
35647 divisible by the given integer when used together with
35648 force_original_aspect_ratio. This works similar to using "-n" in
35649 the w and h options.
35650
35651 This option respects the value set for force_original_aspect_ratio,
35652 increasing or decreasing the resolution accordingly. The video's
35653 aspect ratio may be slightly modified.
35654
35655 This option can be handy if you need to have a video fit within or
35656 exceed a defined resolution using force_original_aspect_ratio but
35657 also have encoder restrictions on width or height divisibility.
35658
35659 eval
35660 Specify when to evaluate width and height expression. It accepts
35661 the following values:
35662
35663 init
35664 Only evaluate expressions once during the filter initialization
35665 or when a command is processed.
35666
35667 frame
35668 Evaluate expressions for each incoming frame.
35669
35670 The values of the w and h options are expressions containing the
35671 following constants:
35672
35673 in_w
35674 in_h
35675 The input width and height
35676
35677 iw
35678 ih These are the same as in_w and in_h.
35679
35680 out_w
35681 out_h
35682 The output (scaled) width and height
35683
35684 ow
35685 oh These are the same as out_w and out_h
35686
35687 a The same as iw / ih
35688
35689 sar input sample aspect ratio
35690
35691 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
35692
35693 n The (sequential) number of the input frame, starting from 0. Only
35694 available with "eval=frame".
35695
35696 t The presentation timestamp of the input frame, expressed as a
35697 number of seconds. Only available with "eval=frame".
35698
35699 pos The position (byte offset) of the frame in the input stream, or NaN
35700 if this information is unavailable and/or meaningless (for example
35701 in case of synthetic video). Only available with "eval=frame".
35702
35703 scale2ref
35704 Scale (resize) the input video, based on a reference video.
35705
35706 See the scale filter for available options, scale2ref supports the same
35707 but uses the reference video instead of the main input as basis.
35708 scale2ref also supports the following additional constants for the w
35709 and h options:
35710
35711 main_w
35712 main_h
35713 The main input video's width and height
35714
35715 main_a
35716 The same as main_w / main_h
35717
35718 main_sar
35719 The main input video's sample aspect ratio
35720
35721 main_dar, mdar
35722 The main input video's display aspect ratio. Calculated from
35723 "(main_w / main_h) * main_sar".
35724
35725 main_hsub
35726 main_vsub
35727 The main input video's horizontal and vertical chroma subsample
35728 values. For example for the pixel format "yuv422p" hsub is 2 and
35729 vsub is 1.
35730
35731 main_n
35732 The (sequential) number of the main input frame, starting from 0.
35733 Only available with "eval=frame".
35734
35735 main_t
35736 The presentation timestamp of the main input frame, expressed as a
35737 number of seconds. Only available with "eval=frame".
35738
35739 main_pos
35740 The position (byte offset) of the frame in the main input stream,
35741 or NaN if this information is unavailable and/or meaningless (for
35742 example in case of synthetic video). Only available with
35743 "eval=frame".
35744
35745 Examples
35746
35747 • Scale a subtitle stream (b) to match the main video (a) in size
35748 before overlaying
35749
35750 'scale2ref[b][a];[a][b]overlay'
35751
35752 • Scale a logo to 1/10th the height of a video, while preserving its
35753 display aspect ratio.
35754
35755 [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
35756
35757 Commands
35758
35759 This filter supports the following commands:
35760
35761 width, w
35762 height, h
35763 Set the output video dimension expression. The command accepts the
35764 same syntax of the corresponding option.
35765
35766 If the specified expression is not valid, it is kept at its current
35767 value.
35768
35769 scale2ref_npp
35770 Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
35771 input video, based on a reference video.
35772
35773 See the scale_npp filter for available options, scale2ref_npp supports
35774 the same but uses the reference video instead of the main input as
35775 basis. scale2ref_npp also supports the following additional constants
35776 for the w and h options:
35777
35778 main_w
35779 main_h
35780 The main input video's width and height
35781
35782 main_a
35783 The same as main_w / main_h
35784
35785 main_sar
35786 The main input video's sample aspect ratio
35787
35788 main_dar, mdar
35789 The main input video's display aspect ratio. Calculated from
35790 "(main_w / main_h) * main_sar".
35791
35792 main_n
35793 The (sequential) number of the main input frame, starting from 0.
35794 Only available with "eval=frame".
35795
35796 main_t
35797 The presentation timestamp of the main input frame, expressed as a
35798 number of seconds. Only available with "eval=frame".
35799
35800 main_pos
35801 The position (byte offset) of the frame in the main input stream,
35802 or NaN if this information is unavailable and/or meaningless (for
35803 example in case of synthetic video). Only available with
35804 "eval=frame".
35805
35806 Examples
35807
35808 • Scale a subtitle stream (b) to match the main video (a) in size
35809 before overlaying
35810
35811 'scale2ref_npp[b][a];[a][b]overlay_cuda'
35812
35813 • Scale a logo to 1/10th the height of a video, while preserving its
35814 display aspect ratio.
35815
35816 [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
35817
35818 scharr
35819 Apply scharr operator to input video stream.
35820
35821 The filter accepts the following option:
35822
35823 planes
35824 Set which planes will be processed, unprocessed planes will be
35825 copied. By default value 0xf, all planes will be processed.
35826
35827 scale
35828 Set value which will be multiplied with filtered result.
35829
35830 delta
35831 Set value which will be added to filtered result.
35832
35833 Commands
35834
35835 This filter supports the all above options as commands.
35836
35837 scroll
35838 Scroll input video horizontally and/or vertically by constant speed.
35839
35840 The filter accepts the following options:
35841
35842 horizontal, h
35843 Set the horizontal scrolling speed. Default is 0. Allowed range is
35844 from -1 to 1. Negative values changes scrolling direction.
35845
35846 vertical, v
35847 Set the vertical scrolling speed. Default is 0. Allowed range is
35848 from -1 to 1. Negative values changes scrolling direction.
35849
35850 hpos
35851 Set the initial horizontal scrolling position. Default is 0.
35852 Allowed range is from 0 to 1.
35853
35854 vpos
35855 Set the initial vertical scrolling position. Default is 0. Allowed
35856 range is from 0 to 1.
35857
35858 Commands
35859
35860 This filter supports the following commands:
35861
35862 horizontal, h
35863 Set the horizontal scrolling speed.
35864
35865 vertical, v
35866 Set the vertical scrolling speed.
35867
35868 scdet
35869 Detect video scene change.
35870
35871 This filter sets frame metadata with mafd between frame, the scene
35872 score, and forward the frame to the next filter, so they can use these
35873 metadata to detect scene change or others.
35874
35875 In addition, this filter logs a message and sets frame metadata when it
35876 detects a scene change by threshold.
35877
35878 "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
35879
35880 "lavfi.scd.score" metadata keys are set with scene change score for
35881 every frame to detect scene change.
35882
35883 "lavfi.scd.time" metadata keys are set with current filtered frame time
35884 which detect scene change with threshold.
35885
35886 The filter accepts the following options:
35887
35888 threshold, t
35889 Set the scene change detection threshold as a percentage of maximum
35890 change. Good values are in the "[8.0, 14.0]" range. The range for
35891 threshold is "[0., 100.]".
35892
35893 Default value is 10..
35894
35895 sc_pass, s
35896 Set the flag to pass scene change frames to the next filter.
35897 Default value is 0 You can enable it if you want to get snapshot of
35898 scene change frames only.
35899
35900 selectivecolor
35901 Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
35902 colors (such as "reds", "yellows", "greens", "cyans", ...). The
35903 adjustment range is defined by the "purity" of the color (that is, how
35904 saturated it already is).
35905
35906 This filter is similar to the Adobe Photoshop Selective Color tool.
35907
35908 The filter accepts the following options:
35909
35910 correction_method
35911 Select color correction method.
35912
35913 Available values are:
35914
35915 absolute
35916 Specified adjustments are applied "as-is" (added/subtracted to
35917 original pixel component value).
35918
35919 relative
35920 Specified adjustments are relative to the original component
35921 value.
35922
35923 Default is "absolute".
35924
35925 reds
35926 Adjustments for red pixels (pixels where the red component is the
35927 maximum)
35928
35929 yellows
35930 Adjustments for yellow pixels (pixels where the blue component is
35931 the minimum)
35932
35933 greens
35934 Adjustments for green pixels (pixels where the green component is
35935 the maximum)
35936
35937 cyans
35938 Adjustments for cyan pixels (pixels where the red component is the
35939 minimum)
35940
35941 blues
35942 Adjustments for blue pixels (pixels where the blue component is the
35943 maximum)
35944
35945 magentas
35946 Adjustments for magenta pixels (pixels where the green component is
35947 the minimum)
35948
35949 whites
35950 Adjustments for white pixels (pixels where all components are
35951 greater than 128)
35952
35953 neutrals
35954 Adjustments for all pixels except pure black and pure white
35955
35956 blacks
35957 Adjustments for black pixels (pixels where all components are
35958 lesser than 128)
35959
35960 psfile
35961 Specify a Photoshop selective color file (".asv") to import the
35962 settings from.
35963
35964 All the adjustment settings (reds, yellows, ...) accept up to 4 space
35965 separated floating point adjustment values in the [-1,1] range,
35966 respectively to adjust the amount of cyan, magenta, yellow and black
35967 for the pixels of its range.
35968
35969 Examples
35970
35971 • Increase cyan by 50% and reduce yellow by 33% in every green areas,
35972 and increase magenta by 27% in blue areas:
35973
35974 selectivecolor=greens=.5 0 -.33 0:blues=0 .27
35975
35976 • Use a Photoshop selective color preset:
35977
35978 selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
35979
35980 separatefields
35981 The "separatefields" takes a frame-based video input and splits each
35982 frame into its components fields, producing a new half height clip with
35983 twice the frame rate and twice the frame count.
35984
35985 This filter use field-dominance information in frame to decide which of
35986 each pair of fields to place first in the output. If it gets it wrong
35987 use setfield filter before "separatefields" filter.
35988
35989 setdar, setsar
35990 The "setdar" filter sets the Display Aspect Ratio for the filter output
35991 video.
35992
35993 This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
35994 according to the following equation:
35995
35996 <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
35997
35998 Keep in mind that the "setdar" filter does not modify the pixel
35999 dimensions of the video frame. Also, the display aspect ratio set by
36000 this filter may be changed by later filters in the filterchain, e.g. in
36001 case of scaling or if another "setdar" or a "setsar" filter is applied.
36002
36003 The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
36004 filter output video.
36005
36006 Note that as a consequence of the application of this filter, the
36007 output display aspect ratio will change according to the equation
36008 above.
36009
36010 Keep in mind that the sample aspect ratio set by the "setsar" filter
36011 may be changed by later filters in the filterchain, e.g. if another
36012 "setsar" or a "setdar" filter is applied.
36013
36014 It accepts the following parameters:
36015
36016 r, ratio, dar ("setdar" only), sar ("setsar" only)
36017 Set the aspect ratio used by the filter.
36018
36019 The parameter can be a floating point number string, an expression,
36020 or a string of the form num:den, where num and den are the
36021 numerator and denominator of the aspect ratio. If the parameter is
36022 not specified, it is assumed the value "0". In case the form
36023 "num:den" is used, the ":" character should be escaped.
36024
36025 max Set the maximum integer value to use for expressing numerator and
36026 denominator when reducing the expressed aspect ratio to a rational.
36027 Default value is 100.
36028
36029 The parameter sar is an expression containing the following constants:
36030
36031 E, PI, PHI
36032 These are approximated values for the mathematical constants e
36033 (Euler's number), pi (Greek pi), and phi (the golden ratio).
36034
36035 w, h
36036 The input width and height.
36037
36038 a These are the same as w / h.
36039
36040 sar The input sample aspect ratio.
36041
36042 dar The input display aspect ratio. It is the same as (w / h) * sar.
36043
36044 hsub, vsub
36045 Horizontal and vertical chroma subsample values. For example, for
36046 the pixel format "yuv422p" hsub is 2 and vsub is 1.
36047
36048 Examples
36049
36050 • To change the display aspect ratio to 16:9, specify one of the
36051 following:
36052
36053 setdar=dar=1.77777
36054 setdar=dar=16/9
36055
36056 • To change the sample aspect ratio to 10:11, specify:
36057
36058 setsar=sar=10/11
36059
36060 • To set a display aspect ratio of 16:9, and specify a maximum
36061 integer value of 1000 in the aspect ratio reduction, use the
36062 command:
36063
36064 setdar=ratio=16/9:max=1000
36065
36066 setfield
36067 Force field for the output video frame.
36068
36069 The "setfield" filter marks the interlace type field for the output
36070 frames. It does not change the input frame, but only sets the
36071 corresponding property, which affects how the frame is treated by
36072 following filters (e.g. "fieldorder" or "yadif").
36073
36074 The filter accepts the following options:
36075
36076 mode
36077 Available values are:
36078
36079 auto
36080 Keep the same field property.
36081
36082 bff Mark the frame as bottom-field-first.
36083
36084 tff Mark the frame as top-field-first.
36085
36086 prog
36087 Mark the frame as progressive.
36088
36089 setparams
36090 Force frame parameter for the output video frame.
36091
36092 The "setparams" filter marks interlace and color range for the output
36093 frames. It does not change the input frame, but only sets the
36094 corresponding property, which affects how the frame is treated by
36095 filters/encoders.
36096
36097 field_mode
36098 Available values are:
36099
36100 auto
36101 Keep the same field property (default).
36102
36103 bff Mark the frame as bottom-field-first.
36104
36105 tff Mark the frame as top-field-first.
36106
36107 prog
36108 Mark the frame as progressive.
36109
36110 range
36111 Available values are:
36112
36113 auto
36114 Keep the same color range property (default).
36115
36116 unspecified, unknown
36117 Mark the frame as unspecified color range.
36118
36119 limited, tv, mpeg
36120 Mark the frame as limited range.
36121
36122 full, pc, jpeg
36123 Mark the frame as full range.
36124
36125 color_primaries
36126 Set the color primaries. Available values are:
36127
36128 auto
36129 Keep the same color primaries property (default).
36130
36131 bt709
36132 unknown
36133 bt470m
36134 bt470bg
36135 smpte170m
36136 smpte240m
36137 film
36138 bt2020
36139 smpte428
36140 smpte431
36141 smpte432
36142 jedec-p22
36143 color_trc
36144 Set the color transfer. Available values are:
36145
36146 auto
36147 Keep the same color trc property (default).
36148
36149 bt709
36150 unknown
36151 bt470m
36152 bt470bg
36153 smpte170m
36154 smpte240m
36155 linear
36156 log100
36157 log316
36158 iec61966-2-4
36159 bt1361e
36160 iec61966-2-1
36161 bt2020-10
36162 bt2020-12
36163 smpte2084
36164 smpte428
36165 arib-std-b67
36166 colorspace
36167 Set the colorspace. Available values are:
36168
36169 auto
36170 Keep the same colorspace property (default).
36171
36172 gbr
36173 bt709
36174 unknown
36175 fcc
36176 bt470bg
36177 smpte170m
36178 smpte240m
36179 ycgco
36180 bt2020nc
36181 bt2020c
36182 smpte2085
36183 chroma-derived-nc
36184 chroma-derived-c
36185 ictcp
36186
36187 sharpen_npp
36188 Use the NVIDIA Performance Primitives (libnpp) to perform image
36189 sharpening with border control.
36190
36191 The following additional options are accepted:
36192
36193 border_type
36194 Type of sampling to be used ad frame borders. One of the following:
36195
36196 replicate
36197 Replicate pixel values.
36198
36199 shear
36200 Apply shear transform to input video.
36201
36202 This filter supports the following options:
36203
36204 shx Shear factor in X-direction. Default value is 0. Allowed range is
36205 from -2 to 2.
36206
36207 shy Shear factor in Y-direction. Default value is 0. Allowed range is
36208 from -2 to 2.
36209
36210 fillcolor, c
36211 Set the color used to fill the output area not covered by the
36212 transformed video. For the general syntax of this option, check the
36213 "Color" section in the ffmpeg-utils manual. If the special value
36214 "none" is selected then no background is printed (useful for
36215 example if the background is never shown).
36216
36217 Default value is "black".
36218
36219 interp
36220 Set interpolation type. Can be "bilinear" or "nearest". Default is
36221 "bilinear".
36222
36223 Commands
36224
36225 This filter supports the all above options as commands.
36226
36227 showinfo
36228 Show a line containing various information for each input video frame.
36229 The input video is not modified.
36230
36231 This filter supports the following options:
36232
36233 checksum
36234 Calculate checksums of each plane. By default enabled.
36235
36236 The shown line contains a sequence of key/value pairs of the form
36237 key:value.
36238
36239 The following values are shown in the output:
36240
36241 n The (sequential) number of the input frame, starting from 0.
36242
36243 pts The Presentation TimeStamp of the input frame, expressed as a
36244 number of time base units. The time base unit depends on the filter
36245 input pad.
36246
36247 pts_time
36248 The Presentation TimeStamp of the input frame, expressed as a
36249 number of seconds.
36250
36251 pos The position of the frame in the input stream, or -1 if this
36252 information is unavailable and/or meaningless (for example in case
36253 of synthetic video).
36254
36255 fmt The pixel format name.
36256
36257 sar The sample aspect ratio of the input frame, expressed in the form
36258 num/den.
36259
36260 s The size of the input frame. For the syntax of this option, check
36261 the "Video size" section in the ffmpeg-utils manual.
36262
36263 i The type of interlaced mode ("P" for "progressive", "T" for top
36264 field first, "B" for bottom field first).
36265
36266 iskey
36267 This is 1 if the frame is a key frame, 0 otherwise.
36268
36269 type
36270 The picture type of the input frame ("I" for an I-frame, "P" for a
36271 P-frame, "B" for a B-frame, or "?" for an unknown type). Also
36272 refer to the documentation of the "AVPictureType" enum and of the
36273 "av_get_picture_type_char" function defined in libavutil/avutil.h.
36274
36275 checksum
36276 The Adler-32 checksum (printed in hexadecimal) of all the planes of
36277 the input frame.
36278
36279 plane_checksum
36280 The Adler-32 checksum (printed in hexadecimal) of each plane of the
36281 input frame, expressed in the form "[c0 c1 c2 c3]".
36282
36283 mean
36284 The mean value of pixels in each plane of the input frame,
36285 expressed in the form "[mean0 mean1 mean2 mean3]".
36286
36287 stdev
36288 The standard deviation of pixel values in each plane of the input
36289 frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
36290
36291 showpalette
36292 Displays the 256 colors palette of each frame. This filter is only
36293 relevant for pal8 pixel format frames.
36294
36295 It accepts the following option:
36296
36297 s Set the size of the box used to represent one palette color entry.
36298 Default is 30 (for a "30x30" pixel box).
36299
36300 shuffleframes
36301 Reorder and/or duplicate and/or drop video frames.
36302
36303 It accepts the following parameters:
36304
36305 mapping
36306 Set the destination indexes of input frames. This is space or '|'
36307 separated list of indexes that maps input frames to output frames.
36308 Number of indexes also sets maximal value that each index may have.
36309 '-1' index have special meaning and that is to drop frame.
36310
36311 The first frame has the index 0. The default is to keep the input
36312 unchanged.
36313
36314 Examples
36315
36316 • Swap second and third frame of every three frames of the input:
36317
36318 ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
36319
36320 • Swap 10th and 1st frame of every ten frames of the input:
36321
36322 ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
36323
36324 shufflepixels
36325 Reorder pixels in video frames.
36326
36327 This filter accepts the following options:
36328
36329 direction, d
36330 Set shuffle direction. Can be forward or inverse direction.
36331 Default direction is forward.
36332
36333 mode, m
36334 Set shuffle mode. Can be horizontal, vertical or block mode.
36335
36336 width, w
36337 height, h
36338 Set shuffle block_size. In case of horizontal shuffle mode only
36339 width part of size is used, and in case of vertical shuffle mode
36340 only height part of size is used.
36341
36342 seed, s
36343 Set random seed used with shuffling pixels. Mainly useful to set to
36344 be able to reverse filtering process to get original input. For
36345 example, to reverse forward shuffle you need to use same parameters
36346 and exact same seed and to set direction to inverse.
36347
36348 shuffleplanes
36349 Reorder and/or duplicate video planes.
36350
36351 It accepts the following parameters:
36352
36353 map0
36354 The index of the input plane to be used as the first output plane.
36355
36356 map1
36357 The index of the input plane to be used as the second output plane.
36358
36359 map2
36360 The index of the input plane to be used as the third output plane.
36361
36362 map3
36363 The index of the input plane to be used as the fourth output plane.
36364
36365 The first plane has the index 0. The default is to keep the input
36366 unchanged.
36367
36368 Examples
36369
36370 • Swap the second and third planes of the input:
36371
36372 ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
36373
36374 signalstats
36375 Evaluate various visual metrics that assist in determining issues
36376 associated with the digitization of analog video media.
36377
36378 By default the filter will log these metadata values:
36379
36380 YMIN
36381 Display the minimal Y value contained within the input frame.
36382 Expressed in range of [0-255].
36383
36384 YLOW
36385 Display the Y value at the 10% percentile within the input frame.
36386 Expressed in range of [0-255].
36387
36388 YAVG
36389 Display the average Y value within the input frame. Expressed in
36390 range of [0-255].
36391
36392 YHIGH
36393 Display the Y value at the 90% percentile within the input frame.
36394 Expressed in range of [0-255].
36395
36396 YMAX
36397 Display the maximum Y value contained within the input frame.
36398 Expressed in range of [0-255].
36399
36400 UMIN
36401 Display the minimal U value contained within the input frame.
36402 Expressed in range of [0-255].
36403
36404 ULOW
36405 Display the U value at the 10% percentile within the input frame.
36406 Expressed in range of [0-255].
36407
36408 UAVG
36409 Display the average U value within the input frame. Expressed in
36410 range of [0-255].
36411
36412 UHIGH
36413 Display the U value at the 90% percentile within the input frame.
36414 Expressed in range of [0-255].
36415
36416 UMAX
36417 Display the maximum U value contained within the input frame.
36418 Expressed in range of [0-255].
36419
36420 VMIN
36421 Display the minimal V value contained within the input frame.
36422 Expressed in range of [0-255].
36423
36424 VLOW
36425 Display the V value at the 10% percentile within the input frame.
36426 Expressed in range of [0-255].
36427
36428 VAVG
36429 Display the average V value within the input frame. Expressed in
36430 range of [0-255].
36431
36432 VHIGH
36433 Display the V value at the 90% percentile within the input frame.
36434 Expressed in range of [0-255].
36435
36436 VMAX
36437 Display the maximum V value contained within the input frame.
36438 Expressed in range of [0-255].
36439
36440 SATMIN
36441 Display the minimal saturation value contained within the input
36442 frame. Expressed in range of [0-~181.02].
36443
36444 SATLOW
36445 Display the saturation value at the 10% percentile within the input
36446 frame. Expressed in range of [0-~181.02].
36447
36448 SATAVG
36449 Display the average saturation value within the input frame.
36450 Expressed in range of [0-~181.02].
36451
36452 SATHIGH
36453 Display the saturation value at the 90% percentile within the input
36454 frame. Expressed in range of [0-~181.02].
36455
36456 SATMAX
36457 Display the maximum saturation value contained within the input
36458 frame. Expressed in range of [0-~181.02].
36459
36460 HUEMED
36461 Display the median value for hue within the input frame. Expressed
36462 in range of [0-360].
36463
36464 HUEAVG
36465 Display the average value for hue within the input frame. Expressed
36466 in range of [0-360].
36467
36468 YDIF
36469 Display the average of sample value difference between all values
36470 of the Y plane in the current frame and corresponding values of the
36471 previous input frame. Expressed in range of [0-255].
36472
36473 UDIF
36474 Display the average of sample value difference between all values
36475 of the U plane in the current frame and corresponding values of the
36476 previous input frame. Expressed in range of [0-255].
36477
36478 VDIF
36479 Display the average of sample value difference between all values
36480 of the V plane in the current frame and corresponding values of the
36481 previous input frame. Expressed in range of [0-255].
36482
36483 YBITDEPTH
36484 Display bit depth of Y plane in current frame. Expressed in range
36485 of [0-16].
36486
36487 UBITDEPTH
36488 Display bit depth of U plane in current frame. Expressed in range
36489 of [0-16].
36490
36491 VBITDEPTH
36492 Display bit depth of V plane in current frame. Expressed in range
36493 of [0-16].
36494
36495 The filter accepts the following options:
36496
36497 stat
36498 out stat specify an additional form of image analysis. out output
36499 video with the specified type of pixel highlighted.
36500
36501 Both options accept the following values:
36502
36503 tout
36504 Identify temporal outliers pixels. A temporal outlier is a
36505 pixel unlike the neighboring pixels of the same field. Examples
36506 of temporal outliers include the results of video dropouts,
36507 head clogs, or tape tracking issues.
36508
36509 vrep
36510 Identify vertical line repetition. Vertical line repetition
36511 includes similar rows of pixels within a frame. In born-digital
36512 video vertical line repetition is common, but this pattern is
36513 uncommon in video digitized from an analog source. When it
36514 occurs in video that results from the digitization of an analog
36515 source it can indicate concealment from a dropout compensator.
36516
36517 brng
36518 Identify pixels that fall outside of legal broadcast range.
36519
36520 color, c
36521 Set the highlight color for the out option. The default color is
36522 yellow.
36523
36524 Examples
36525
36526 • Output data of various video metrics:
36527
36528 ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
36529
36530 • Output specific data about the minimum and maximum values of the Y
36531 plane per frame:
36532
36533 ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
36534
36535 • Playback video while highlighting pixels that are outside of
36536 broadcast range in red.
36537
36538 ffplay example.mov -vf signalstats="out=brng:color=red"
36539
36540 • Playback video with signalstats metadata drawn over the frame.
36541
36542 ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
36543
36544 The contents of signalstat_drawtext.txt used in the command are:
36545
36546 time %{pts:hms}
36547 Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
36548 U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
36549 V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
36550 saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
36551
36552 signature
36553 Calculates the MPEG-7 Video Signature. The filter can handle more than
36554 one input. In this case the matching between the inputs can be
36555 calculated additionally. The filter always passes through the first
36556 input. The signature of each stream can be written into a file.
36557
36558 It accepts the following options:
36559
36560 detectmode
36561 Enable or disable the matching process.
36562
36563 Available values are:
36564
36565 off Disable the calculation of a matching (default).
36566
36567 full
36568 Calculate the matching for the whole video and output whether
36569 the whole video matches or only parts.
36570
36571 fast
36572 Calculate only until a matching is found or the video ends.
36573 Should be faster in some cases.
36574
36575 nb_inputs
36576 Set the number of inputs. The option value must be a non negative
36577 integer. Default value is 1.
36578
36579 filename
36580 Set the path to which the output is written. If there is more than
36581 one input, the path must be a prototype, i.e. must contain %d or
36582 %0nd (where n is a positive integer), that will be replaced with
36583 the input number. If no filename is specified, no output will be
36584 written. This is the default.
36585
36586 format
36587 Choose the output format.
36588
36589 Available values are:
36590
36591 binary
36592 Use the specified binary representation (default).
36593
36594 xml Use the specified xml representation.
36595
36596 th_d
36597 Set threshold to detect one word as similar. The option value must
36598 be an integer greater than zero. The default value is 9000.
36599
36600 th_dc
36601 Set threshold to detect all words as similar. The option value must
36602 be an integer greater than zero. The default value is 60000.
36603
36604 th_xh
36605 Set threshold to detect frames as similar. The option value must be
36606 an integer greater than zero. The default value is 116.
36607
36608 th_di
36609 Set the minimum length of a sequence in frames to recognize it as
36610 matching sequence. The option value must be a non negative integer
36611 value. The default value is 0.
36612
36613 th_it
36614 Set the minimum relation, that matching frames to all frames must
36615 have. The option value must be a double value between 0 and 1. The
36616 default value is 0.5.
36617
36618 Examples
36619
36620 • To calculate the signature of an input video and store it in
36621 signature.bin:
36622
36623 ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
36624
36625 • To detect whether two videos match and store the signatures in XML
36626 format in signature0.xml and signature1.xml:
36627
36628 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 -
36629
36630 siti
36631 Calculate Spatial Info (SI) and Temporal Info (TI) scores for a video,
36632 as defined in ITU-T P.910: Subjective video quality assessment methods
36633 for multimedia applications. Available PDF at
36634 <https://www.itu.int/rec/T-REC-P.910-199909-S/en >.
36635
36636 It accepts the following option:
36637
36638 print_summary
36639 If set to 1, Summary statistics will be printed to the console.
36640 Default 0.
36641
36642 Examples
36643
36644 • To calculate SI/TI metrics and print summary:
36645
36646 ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
36647
36648 smartblur
36649 Blur the input video without impacting the outlines.
36650
36651 It accepts the following options:
36652
36653 luma_radius, lr
36654 Set the luma radius. The option value must be a float number in the
36655 range [0.1,5.0] that specifies the variance of the gaussian filter
36656 used to blur the image (slower if larger). Default value is 1.0.
36657
36658 luma_strength, ls
36659 Set the luma strength. The option value must be a float number in
36660 the range [-1.0,1.0] that configures the blurring. A value included
36661 in [0.0,1.0] will blur the image whereas a value included in
36662 [-1.0,0.0] will sharpen the image. Default value is 1.0.
36663
36664 luma_threshold, lt
36665 Set the luma threshold used as a coefficient to determine whether a
36666 pixel should be blurred or not. The option value must be an integer
36667 in the range [-30,30]. A value of 0 will filter all the image, a
36668 value included in [0,30] will filter flat areas and a value
36669 included in [-30,0] will filter edges. Default value is 0.
36670
36671 chroma_radius, cr
36672 Set the chroma radius. The option value must be a float number in
36673 the range [0.1,5.0] that specifies the variance of the gaussian
36674 filter used to blur the image (slower if larger). Default value is
36675 luma_radius.
36676
36677 chroma_strength, cs
36678 Set the chroma strength. The option value must be a float number in
36679 the range [-1.0,1.0] that configures the blurring. A value included
36680 in [0.0,1.0] will blur the image whereas a value included in
36681 [-1.0,0.0] will sharpen the image. Default value is luma_strength.
36682
36683 chroma_threshold, ct
36684 Set the chroma threshold used as a coefficient to determine whether
36685 a pixel should be blurred or not. The option value must be an
36686 integer in the range [-30,30]. A value of 0 will filter all the
36687 image, a value included in [0,30] will filter flat areas and a
36688 value included in [-30,0] will filter edges. Default value is
36689 luma_threshold.
36690
36691 If a chroma option is not explicitly set, the corresponding luma value
36692 is set.
36693
36694 sobel
36695 Apply sobel operator to input video stream.
36696
36697 The filter accepts the following option:
36698
36699 planes
36700 Set which planes will be processed, unprocessed planes will be
36701 copied. By default value 0xf, all planes will be processed.
36702
36703 scale
36704 Set value which will be multiplied with filtered result.
36705
36706 delta
36707 Set value which will be added to filtered result.
36708
36709 Commands
36710
36711 This filter supports the all above options as commands.
36712
36713 spp
36714 Apply a simple postprocessing filter that compresses and decompresses
36715 the image at several (or - in the case of quality level 6 - all) shifts
36716 and average the results.
36717
36718 The filter accepts the following options:
36719
36720 quality
36721 Set quality. This option defines the number of levels for
36722 averaging. It accepts an integer in the range 0-6. If set to 0, the
36723 filter will have no effect. A value of 6 means the higher quality.
36724 For each increment of that value the speed drops by a factor of
36725 approximately 2. Default value is 3.
36726
36727 qp Force a constant quantization parameter. If not set, the filter
36728 will use the QP from the video stream (if available).
36729
36730 mode
36731 Set thresholding mode. Available modes are:
36732
36733 hard
36734 Set hard thresholding (default).
36735
36736 soft
36737 Set soft thresholding (better de-ringing effect, but likely
36738 blurrier).
36739
36740 use_bframe_qp
36741 Enable the use of the QP from the B-Frames if set to 1. Using this
36742 option may cause flicker since the B-Frames have often larger QP.
36743 Default is 0 (not enabled).
36744
36745 Commands
36746
36747 This filter supports the following commands:
36748
36749 quality, level
36750 Set quality level. The value "max" can be used to set the maximum
36751 level, currently 6.
36752
36753 sr
36754 Scale the input by applying one of the super-resolution methods based
36755 on convolutional neural networks. Supported models:
36756
36757 • Super-Resolution Convolutional Neural Network model (SRCNN). See
36758 <https://arxiv.org/abs/1501.00092>.
36759
36760 • Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
36761 See <https://arxiv.org/abs/1609.05158>.
36762
36763 Training scripts as well as scripts for model file (.pb) saving can be
36764 found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
36765 Original repository is at
36766 <https://github.com/HighVoltageRocknRoll/sr.git>.
36767
36768 Native model files (.model) can be generated from TensorFlow model
36769 files (.pb) by using tools/python/convert.py
36770
36771 The filter accepts the following options:
36772
36773 dnn_backend
36774 Specify which DNN backend to use for model loading and execution.
36775 This option accepts the following values:
36776
36777 native
36778 Native implementation of DNN loading and execution.
36779
36780 tensorflow
36781 TensorFlow backend. To enable this backend you need to install
36782 the TensorFlow for C library (see
36783 <https://www.tensorflow.org/install/lang_c>) and configure
36784 FFmpeg with "--enable-libtensorflow"
36785
36786 Default value is native.
36787
36788 model
36789 Set path to model file specifying network architecture and its
36790 parameters. Note that different backends use different file
36791 formats. TensorFlow backend can load files for both formats, while
36792 native backend can load files for only its format.
36793
36794 scale_factor
36795 Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
36796 Default value is 2. Scale factor is necessary for SRCNN model,
36797 because it accepts input upscaled using bicubic upscaling with
36798 proper scale factor.
36799
36800 To get full functionality (such as async execution), please use the
36801 dnn_processing filter.
36802
36803 ssim
36804 Obtain the SSIM (Structural SImilarity Metric) between two input
36805 videos.
36806
36807 This filter takes in input two input videos, the first input is
36808 considered the "main" source and is passed unchanged to the output. The
36809 second input is used as a "reference" video for computing the SSIM.
36810
36811 Both video inputs must have the same resolution and pixel format for
36812 this filter to work correctly. Also it assumes that both inputs have
36813 the same number of frames, which are compared one by one.
36814
36815 The filter stores the calculated SSIM of each frame.
36816
36817 The description of the accepted parameters follows.
36818
36819 stats_file, f
36820 If specified the filter will use the named file to save the SSIM of
36821 each individual frame. When filename equals "-" the data is sent to
36822 standard output.
36823
36824 The file printed if stats_file is selected, contains a sequence of
36825 key/value pairs of the form key:value for each compared couple of
36826 frames.
36827
36828 A description of each shown parameter follows:
36829
36830 n sequential number of the input frame, starting from 1
36831
36832 Y, U, V, R, G, B
36833 SSIM of the compared frames for the component specified by the
36834 suffix.
36835
36836 All SSIM of the compared frames for the whole frame.
36837
36838 dB Same as above but in dB representation.
36839
36840 This filter also supports the framesync options.
36841
36842 Examples
36843
36844 • For example:
36845
36846 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
36847 [main][ref] ssim="stats_file=stats.log" [out]
36848
36849 On this example the input file being processed is compared with the
36850 reference file ref_movie.mpg. The SSIM of each individual frame is
36851 stored in stats.log.
36852
36853 • Another example with both psnr and ssim at same time:
36854
36855 ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null -
36856
36857 • Another example with different containers:
36858
36859 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 -
36860
36861 stereo3d
36862 Convert between different stereoscopic image formats.
36863
36864 The filters accept the following options:
36865
36866 in Set stereoscopic image format of input.
36867
36868 Available values for input image formats are:
36869
36870 sbsl
36871 side by side parallel (left eye left, right eye right)
36872
36873 sbsr
36874 side by side crosseye (right eye left, left eye right)
36875
36876 sbs2l
36877 side by side parallel with half width resolution (left eye
36878 left, right eye right)
36879
36880 sbs2r
36881 side by side crosseye with half width resolution (right eye
36882 left, left eye right)
36883
36884 abl
36885 tbl above-below (left eye above, right eye below)
36886
36887 abr
36888 tbr above-below (right eye above, left eye below)
36889
36890 ab2l
36891 tb2l
36892 above-below with half height resolution (left eye above, right
36893 eye below)
36894
36895 ab2r
36896 tb2r
36897 above-below with half height resolution (right eye above, left
36898 eye below)
36899
36900 al alternating frames (left eye first, right eye second)
36901
36902 ar alternating frames (right eye first, left eye second)
36903
36904 irl interleaved rows (left eye has top row, right eye starts on
36905 next row)
36906
36907 irr interleaved rows (right eye has top row, left eye starts on
36908 next row)
36909
36910 icl interleaved columns, left eye first
36911
36912 icr interleaved columns, right eye first
36913
36914 Default value is sbsl.
36915
36916 out Set stereoscopic image format of output.
36917
36918 sbsl
36919 side by side parallel (left eye left, right eye right)
36920
36921 sbsr
36922 side by side crosseye (right eye left, left eye right)
36923
36924 sbs2l
36925 side by side parallel with half width resolution (left eye
36926 left, right eye right)
36927
36928 sbs2r
36929 side by side crosseye with half width resolution (right eye
36930 left, left eye right)
36931
36932 abl
36933 tbl above-below (left eye above, right eye below)
36934
36935 abr
36936 tbr above-below (right eye above, left eye below)
36937
36938 ab2l
36939 tb2l
36940 above-below with half height resolution (left eye above, right
36941 eye below)
36942
36943 ab2r
36944 tb2r
36945 above-below with half height resolution (right eye above, left
36946 eye below)
36947
36948 al alternating frames (left eye first, right eye second)
36949
36950 ar alternating frames (right eye first, left eye second)
36951
36952 irl interleaved rows (left eye has top row, right eye starts on
36953 next row)
36954
36955 irr interleaved rows (right eye has top row, left eye starts on
36956 next row)
36957
36958 arbg
36959 anaglyph red/blue gray (red filter on left eye, blue filter on
36960 right eye)
36961
36962 argg
36963 anaglyph red/green gray (red filter on left eye, green filter
36964 on right eye)
36965
36966 arcg
36967 anaglyph red/cyan gray (red filter on left eye, cyan filter on
36968 right eye)
36969
36970 arch
36971 anaglyph red/cyan half colored (red filter on left eye, cyan
36972 filter on right eye)
36973
36974 arcc
36975 anaglyph red/cyan color (red filter on left eye, cyan filter on
36976 right eye)
36977
36978 arcd
36979 anaglyph red/cyan color optimized with the least squares
36980 projection of dubois (red filter on left eye, cyan filter on
36981 right eye)
36982
36983 agmg
36984 anaglyph green/magenta gray (green filter on left eye, magenta
36985 filter on right eye)
36986
36987 agmh
36988 anaglyph green/magenta half colored (green filter on left eye,
36989 magenta filter on right eye)
36990
36991 agmc
36992 anaglyph green/magenta colored (green filter on left eye,
36993 magenta filter on right eye)
36994
36995 agmd
36996 anaglyph green/magenta color optimized with the least squares
36997 projection of dubois (green filter on left eye, magenta filter
36998 on right eye)
36999
37000 aybg
37001 anaglyph yellow/blue gray (yellow filter on left eye, blue
37002 filter on right eye)
37003
37004 aybh
37005 anaglyph yellow/blue half colored (yellow filter on left eye,
37006 blue filter on right eye)
37007
37008 aybc
37009 anaglyph yellow/blue colored (yellow filter on left eye, blue
37010 filter on right eye)
37011
37012 aybd
37013 anaglyph yellow/blue color optimized with the least squares
37014 projection of dubois (yellow filter on left eye, blue filter on
37015 right eye)
37016
37017 ml mono output (left eye only)
37018
37019 mr mono output (right eye only)
37020
37021 chl checkerboard, left eye first
37022
37023 chr checkerboard, right eye first
37024
37025 icl interleaved columns, left eye first
37026
37027 icr interleaved columns, right eye first
37028
37029 hdmi
37030 HDMI frame pack
37031
37032 Default value is arcd.
37033
37034 Examples
37035
37036 • Convert input video from side by side parallel to anaglyph
37037 yellow/blue dubois:
37038
37039 stereo3d=sbsl:aybd
37040
37041 • Convert input video from above below (left eye above, right eye
37042 below) to side by side crosseye.
37043
37044 stereo3d=abl:sbsr
37045
37046 streamselect, astreamselect
37047 Select video or audio streams.
37048
37049 The filter accepts the following options:
37050
37051 inputs
37052 Set number of inputs. Default is 2.
37053
37054 map Set input indexes to remap to outputs.
37055
37056 Commands
37057
37058 The "streamselect" and "astreamselect" filter supports the following
37059 commands:
37060
37061 map Set input indexes to remap to outputs.
37062
37063 Examples
37064
37065 • Select first 5 seconds 1st stream and rest of time 2nd stream:
37066
37067 sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
37068
37069 • Same as above, but for audio:
37070
37071 asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
37072
37073 subtitles
37074 Draw subtitles on top of input video using the libass library.
37075
37076 To enable compilation of this filter you need to configure FFmpeg with
37077 "--enable-libass". This filter also requires a build with libavcodec
37078 and libavformat to convert the passed subtitles file to ASS (Advanced
37079 Substation Alpha) subtitles format.
37080
37081 The filter accepts the following options:
37082
37083 filename, f
37084 Set the filename of the subtitle file to read. It must be
37085 specified.
37086
37087 original_size
37088 Specify the size of the original video, the video for which the ASS
37089 file was composed. For the syntax of this option, check the "Video
37090 size" section in the ffmpeg-utils manual. Due to a misdesign in
37091 ASS aspect ratio arithmetic, this is necessary to correctly scale
37092 the fonts if the aspect ratio has been changed.
37093
37094 fontsdir
37095 Set a directory path containing fonts that can be used by the
37096 filter. These fonts will be used in addition to whatever the font
37097 provider uses.
37098
37099 alpha
37100 Process alpha channel, by default alpha channel is untouched.
37101
37102 charenc
37103 Set subtitles input character encoding. "subtitles" filter only.
37104 Only useful if not UTF-8.
37105
37106 stream_index, si
37107 Set subtitles stream index. "subtitles" filter only.
37108
37109 force_style
37110 Override default style or script info parameters of the subtitles.
37111 It accepts a string containing ASS style format "KEY=VALUE" couples
37112 separated by ",".
37113
37114 If the first key is not specified, it is assumed that the first value
37115 specifies the filename.
37116
37117 For example, to render the file sub.srt on top of the input video, use
37118 the command:
37119
37120 subtitles=sub.srt
37121
37122 which is equivalent to:
37123
37124 subtitles=filename=sub.srt
37125
37126 To render the default subtitles stream from file video.mkv, use:
37127
37128 subtitles=video.mkv
37129
37130 To render the second subtitles stream from that file, use:
37131
37132 subtitles=video.mkv:si=1
37133
37134 To make the subtitles stream from sub.srt appear in 80% transparent
37135 blue "DejaVu Serif", use:
37136
37137 subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
37138
37139 super2xsai
37140 Scale the input by 2x and smooth using the Super2xSaI (Scale and
37141 Interpolate) pixel art scaling algorithm.
37142
37143 Useful for enlarging pixel art images without reducing sharpness.
37144
37145 swaprect
37146 Swap two rectangular objects in video.
37147
37148 This filter accepts the following options:
37149
37150 w Set object width.
37151
37152 h Set object height.
37153
37154 x1 Set 1st rect x coordinate.
37155
37156 y1 Set 1st rect y coordinate.
37157
37158 x2 Set 2nd rect x coordinate.
37159
37160 y2 Set 2nd rect y coordinate.
37161
37162 All expressions are evaluated once for each frame.
37163
37164 The all options are expressions containing the following constants:
37165
37166 w
37167 h The input width and height.
37168
37169 a same as w / h
37170
37171 sar input sample aspect ratio
37172
37173 dar input display aspect ratio, it is the same as (w / h) * sar
37174
37175 n The number of the input frame, starting from 0.
37176
37177 t The timestamp expressed in seconds. It's NAN if the input timestamp
37178 is unknown.
37179
37180 pos the position in the file of the input frame, NAN if unknown
37181
37182 Commands
37183
37184 This filter supports the all above options as commands.
37185
37186 swapuv
37187 Swap U & V plane.
37188
37189 tblend
37190 Blend successive video frames.
37191
37192 See blend
37193
37194 telecine
37195 Apply telecine process to the video.
37196
37197 This filter accepts the following options:
37198
37199 first_field
37200 top, t
37201 top field first
37202
37203 bottom, b
37204 bottom field first The default value is "top".
37205
37206 pattern
37207 A string of numbers representing the pulldown pattern you wish to
37208 apply. The default value is 23.
37209
37210 Some typical patterns:
37211
37212 NTSC output (30i):
37213 27.5p: 32222
37214 24p: 23 (classic)
37215 24p: 2332 (preferred)
37216 20p: 33
37217 18p: 334
37218 16p: 3444
37219
37220 PAL output (25i):
37221 27.5p: 12222
37222 24p: 222222222223 ("Euro pulldown")
37223 16.67p: 33
37224 16p: 33333334
37225
37226 thistogram
37227 Compute and draw a color distribution histogram for the input video
37228 across time.
37229
37230 Unlike histogram video filter which only shows histogram of single
37231 input frame at certain time, this filter shows also past histograms of
37232 number of frames defined by "width" option.
37233
37234 The computed histogram is a representation of the color component
37235 distribution in an image.
37236
37237 The filter accepts the following options:
37238
37239 width, w
37240 Set width of single color component output. Default value is 0.
37241 Value of 0 means width will be picked from input video. This also
37242 set number of passed histograms to keep. Allowed range is [0,
37243 8192].
37244
37245 display_mode, d
37246 Set display mode. It accepts the following values:
37247
37248 stack
37249 Per color component graphs are placed below each other.
37250
37251 parade
37252 Per color component graphs are placed side by side.
37253
37254 overlay
37255 Presents information identical to that in the "parade", except
37256 that the graphs representing color components are superimposed
37257 directly over one another.
37258
37259 Default is "stack".
37260
37261 levels_mode, m
37262 Set mode. Can be either "linear", or "logarithmic". Default is
37263 "linear".
37264
37265 components, c
37266 Set what color components to display. Default is 7.
37267
37268 bgopacity, b
37269 Set background opacity. Default is 0.9.
37270
37271 envelope, e
37272 Show envelope. Default is disabled.
37273
37274 ecolor, ec
37275 Set envelope color. Default is "gold".
37276
37277 slide
37278 Set slide mode.
37279
37280 Available values for slide is:
37281
37282 frame
37283 Draw new frame when right border is reached.
37284
37285 replace
37286 Replace old columns with new ones.
37287
37288 scroll
37289 Scroll from right to left.
37290
37291 rscroll
37292 Scroll from left to right.
37293
37294 picture
37295 Draw single picture.
37296
37297 Default is "replace".
37298
37299 threshold
37300 Apply threshold effect to video stream.
37301
37302 This filter needs four video streams to perform thresholding. First
37303 stream is stream we are filtering. Second stream is holding threshold
37304 values, third stream is holding min values, and last, fourth stream is
37305 holding max values.
37306
37307 The filter accepts the following option:
37308
37309 planes
37310 Set which planes will be processed, unprocessed planes will be
37311 copied. By default value 0xf, all planes will be processed.
37312
37313 For example if first stream pixel's component value is less then
37314 threshold value of pixel component from 2nd threshold stream, third
37315 stream value will picked, otherwise fourth stream pixel component value
37316 will be picked.
37317
37318 Using color source filter one can perform various types of
37319 thresholding:
37320
37321 Commands
37322
37323 This filter supports the all options as commands.
37324
37325 Examples
37326
37327 • Binary threshold, using gray color as threshold:
37328
37329 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
37330
37331 • Inverted binary threshold, using gray color as threshold:
37332
37333 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
37334
37335 • Truncate binary threshold, using gray color as threshold:
37336
37337 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
37338
37339 • Threshold to zero, using gray color as threshold:
37340
37341 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
37342
37343 • Inverted threshold to zero, using gray color as threshold:
37344
37345 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
37346
37347 thumbnail
37348 Select the most representative frame in a given sequence of consecutive
37349 frames.
37350
37351 The filter accepts the following options:
37352
37353 n Set the frames batch size to analyze; in a set of n frames, the
37354 filter will pick one of them, and then handle the next batch of n
37355 frames until the end. Default is 100.
37356
37357 Since the filter keeps track of the whole frames sequence, a bigger n
37358 value will result in a higher memory usage, so a high value is not
37359 recommended.
37360
37361 Examples
37362
37363 • Extract one picture each 50 frames:
37364
37365 thumbnail=50
37366
37367 • Complete example of a thumbnail creation with ffmpeg:
37368
37369 ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
37370
37371 tile
37372 Tile several successive frames together.
37373
37374 The untile filter can do the reverse.
37375
37376 The filter accepts the following options:
37377
37378 layout
37379 Set the grid size in the form "COLUMNSxROWS". Range is upto
37380 UINT_MAX cells. Default is "6x5".
37381
37382 nb_frames
37383 Set the maximum number of frames to render in the given area. It
37384 must be less than or equal to wxh. The default value is 0, meaning
37385 all the area will be used.
37386
37387 margin
37388 Set the outer border margin in pixels. Range is 0 to 1024. Default
37389 is 0.
37390
37391 padding
37392 Set the inner border thickness (i.e. the number of pixels between
37393 frames). For more advanced padding options (such as having
37394 different values for the edges), refer to the pad video filter.
37395 Range is 0 to 1024. Default is 0.
37396
37397 color
37398 Specify the color of the unused area. For the syntax of this
37399 option, check the "Color" section in the ffmpeg-utils manual. The
37400 default value of color is "black".
37401
37402 overlap
37403 Set the number of frames to overlap when tiling several successive
37404 frames together. The value must be between 0 and nb_frames - 1.
37405 Default is 0.
37406
37407 init_padding
37408 Set the number of frames to initially be empty before displaying
37409 first output frame. This controls how soon will one get first
37410 output frame. The value must be between 0 and nb_frames - 1.
37411 Default is 0.
37412
37413 Examples
37414
37415 • Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
37416 movie:
37417
37418 ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
37419
37420 The -vsync 0 is necessary to prevent ffmpeg from duplicating each
37421 output frame to accommodate the originally detected frame rate.
37422
37423 • Display 5 pictures in an area of "3x2" frames, with 7 pixels
37424 between them, and 2 pixels of initial margin, using mixed flat and
37425 named options:
37426
37427 tile=3x2:nb_frames=5:padding=7:margin=2
37428
37429 tinterlace
37430 Perform various types of temporal field interlacing.
37431
37432 Frames are counted starting from 1, so the first input frame is
37433 considered odd.
37434
37435 The filter accepts the following options:
37436
37437 mode
37438 Specify the mode of the interlacing. This option can also be
37439 specified as a value alone. See below for a list of values for this
37440 option.
37441
37442 Available values are:
37443
37444 merge, 0
37445 Move odd frames into the upper field, even into the lower
37446 field, generating a double height frame at half frame rate.
37447
37448 ------> time
37449 Input:
37450 Frame 1 Frame 2 Frame 3 Frame 4
37451
37452 11111 22222 33333 44444
37453 11111 22222 33333 44444
37454 11111 22222 33333 44444
37455 11111 22222 33333 44444
37456
37457 Output:
37458 11111 33333
37459 22222 44444
37460 11111 33333
37461 22222 44444
37462 11111 33333
37463 22222 44444
37464 11111 33333
37465 22222 44444
37466
37467 drop_even, 1
37468 Only output odd frames, even frames are dropped, generating a
37469 frame with unchanged height at half frame rate.
37470
37471 ------> time
37472 Input:
37473 Frame 1 Frame 2 Frame 3 Frame 4
37474
37475 11111 22222 33333 44444
37476 11111 22222 33333 44444
37477 11111 22222 33333 44444
37478 11111 22222 33333 44444
37479
37480 Output:
37481 11111 33333
37482 11111 33333
37483 11111 33333
37484 11111 33333
37485
37486 drop_odd, 2
37487 Only output even frames, odd frames are dropped, generating a
37488 frame with unchanged height at half frame rate.
37489
37490 ------> time
37491 Input:
37492 Frame 1 Frame 2 Frame 3 Frame 4
37493
37494 11111 22222 33333 44444
37495 11111 22222 33333 44444
37496 11111 22222 33333 44444
37497 11111 22222 33333 44444
37498
37499 Output:
37500 22222 44444
37501 22222 44444
37502 22222 44444
37503 22222 44444
37504
37505 pad, 3
37506 Expand each frame to full height, but pad alternate lines with
37507 black, generating a frame with double height at the same input
37508 frame rate.
37509
37510 ------> time
37511 Input:
37512 Frame 1 Frame 2 Frame 3 Frame 4
37513
37514 11111 22222 33333 44444
37515 11111 22222 33333 44444
37516 11111 22222 33333 44444
37517 11111 22222 33333 44444
37518
37519 Output:
37520 11111 ..... 33333 .....
37521 ..... 22222 ..... 44444
37522 11111 ..... 33333 .....
37523 ..... 22222 ..... 44444
37524 11111 ..... 33333 .....
37525 ..... 22222 ..... 44444
37526 11111 ..... 33333 .....
37527 ..... 22222 ..... 44444
37528
37529 interleave_top, 4
37530 Interleave the upper field from odd frames with the lower field
37531 from even frames, generating a frame with unchanged height at
37532 half frame rate.
37533
37534 ------> time
37535 Input:
37536 Frame 1 Frame 2 Frame 3 Frame 4
37537
37538 11111<- 22222 33333<- 44444
37539 11111 22222<- 33333 44444<-
37540 11111<- 22222 33333<- 44444
37541 11111 22222<- 33333 44444<-
37542
37543 Output:
37544 11111 33333
37545 22222 44444
37546 11111 33333
37547 22222 44444
37548
37549 interleave_bottom, 5
37550 Interleave the lower field from odd frames with the upper field
37551 from even frames, generating a frame with unchanged height at
37552 half frame rate.
37553
37554 ------> time
37555 Input:
37556 Frame 1 Frame 2 Frame 3 Frame 4
37557
37558 11111 22222<- 33333 44444<-
37559 11111<- 22222 33333<- 44444
37560 11111 22222<- 33333 44444<-
37561 11111<- 22222 33333<- 44444
37562
37563 Output:
37564 22222 44444
37565 11111 33333
37566 22222 44444
37567 11111 33333
37568
37569 interlacex2, 6
37570 Double frame rate with unchanged height. Frames are inserted
37571 each containing the second temporal field from the previous
37572 input frame and the first temporal field from the next input
37573 frame. This mode relies on the top_field_first flag. Useful for
37574 interlaced video displays with no field synchronisation.
37575
37576 ------> time
37577 Input:
37578 Frame 1 Frame 2 Frame 3 Frame 4
37579
37580 11111 22222 33333 44444
37581 11111 22222 33333 44444
37582 11111 22222 33333 44444
37583 11111 22222 33333 44444
37584
37585 Output:
37586 11111 22222 22222 33333 33333 44444 44444
37587 11111 11111 22222 22222 33333 33333 44444
37588 11111 22222 22222 33333 33333 44444 44444
37589 11111 11111 22222 22222 33333 33333 44444
37590
37591 mergex2, 7
37592 Move odd frames into the upper field, even into the lower
37593 field, generating a double height frame at same frame rate.
37594
37595 ------> time
37596 Input:
37597 Frame 1 Frame 2 Frame 3 Frame 4
37598
37599 11111 22222 33333 44444
37600 11111 22222 33333 44444
37601 11111 22222 33333 44444
37602 11111 22222 33333 44444
37603
37604 Output:
37605 11111 33333 33333 55555
37606 22222 22222 44444 44444
37607 11111 33333 33333 55555
37608 22222 22222 44444 44444
37609 11111 33333 33333 55555
37610 22222 22222 44444 44444
37611 11111 33333 33333 55555
37612 22222 22222 44444 44444
37613
37614 Numeric values are deprecated but are accepted for backward
37615 compatibility reasons.
37616
37617 Default mode is "merge".
37618
37619 flags
37620 Specify flags influencing the filter process.
37621
37622 Available value for flags is:
37623
37624 low_pass_filter, vlpf
37625 Enable linear vertical low-pass filtering in the filter.
37626 Vertical low-pass filtering is required when creating an
37627 interlaced destination from a progressive source which contains
37628 high-frequency vertical detail. Filtering will reduce interlace
37629 'twitter' and Moire patterning.
37630
37631 complex_filter, cvlpf
37632 Enable complex vertical low-pass filtering. This will slightly
37633 less reduce interlace 'twitter' and Moire patterning but better
37634 retain detail and subjective sharpness impression.
37635
37636 bypass_il
37637 Bypass already interlaced frames, only adjust the frame rate.
37638
37639 Vertical low-pass filtering and bypassing already interlaced frames
37640 can only be enabled for mode interleave_top and interleave_bottom.
37641
37642 tmedian
37643 Pick median pixels from several successive input video frames.
37644
37645 The filter accepts the following options:
37646
37647 radius
37648 Set radius of median filter. Default is 1. Allowed range is from 1
37649 to 127.
37650
37651 planes
37652 Set which planes to filter. Default value is 15, by which all
37653 planes are processed.
37654
37655 percentile
37656 Set median percentile. Default value is 0.5. Default value of 0.5
37657 will pick always median values, while 0 will pick minimum values,
37658 and 1 maximum values.
37659
37660 Commands
37661
37662 This filter supports all above options as commands, excluding option
37663 "radius".
37664
37665 tmidequalizer
37666 Apply Temporal Midway Video Equalization effect.
37667
37668 Midway Video Equalization adjusts a sequence of video frames to have
37669 the same histograms, while maintaining their dynamics as much as
37670 possible. It's useful for e.g. matching exposures from a video frames
37671 sequence.
37672
37673 This filter accepts the following option:
37674
37675 radius
37676 Set filtering radius. Default is 5. Allowed range is from 1 to 127.
37677
37678 sigma
37679 Set filtering sigma. Default is 0.5. This controls strength of
37680 filtering. Setting this option to 0 effectively does nothing.
37681
37682 planes
37683 Set which planes to process. Default is 15, which is all available
37684 planes.
37685
37686 tmix
37687 Mix successive video frames.
37688
37689 A description of the accepted options follows.
37690
37691 frames
37692 The number of successive frames to mix. If unspecified, it defaults
37693 to 3.
37694
37695 weights
37696 Specify weight of each input video frame. Each weight is separated
37697 by space. If number of weights is smaller than number of frames
37698 last specified weight will be used for all remaining unset weights.
37699
37700 scale
37701 Specify scale, if it is set it will be multiplied with sum of each
37702 weight multiplied with pixel values to give final destination pixel
37703 value. By default scale is auto scaled to sum of weights.
37704
37705 planes
37706 Set which planes to filter. Default is all. Allowed range is from 0
37707 to 15.
37708
37709 Examples
37710
37711 • Average 7 successive frames:
37712
37713 tmix=frames=7:weights="1 1 1 1 1 1 1"
37714
37715 • Apply simple temporal convolution:
37716
37717 tmix=frames=3:weights="-1 3 -1"
37718
37719 • Similar as above but only showing temporal differences:
37720
37721 tmix=frames=3:weights="-1 2 -1":scale=1
37722
37723 Commands
37724
37725 This filter supports the following commands:
37726
37727 weights
37728 scale
37729 planes
37730 Syntax is same as option with same name.
37731
37732 tonemap
37733 Tone map colors from different dynamic ranges.
37734
37735 This filter expects data in single precision floating point, as it
37736 needs to operate on (and can output) out-of-range values. Another
37737 filter, such as zscale, is needed to convert the resulting frame to a
37738 usable format.
37739
37740 The tonemapping algorithms implemented only work on linear light, so
37741 input data should be linearized beforehand (and possibly correctly
37742 tagged).
37743
37744 ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
37745
37746 Options
37747
37748 The filter accepts the following options.
37749
37750 tonemap
37751 Set the tone map algorithm to use.
37752
37753 Possible values are:
37754
37755 none
37756 Do not apply any tone map, only desaturate overbright pixels.
37757
37758 clip
37759 Hard-clip any out-of-range values. Use it for perfect color
37760 accuracy for in-range values, while distorting out-of-range
37761 values.
37762
37763 linear
37764 Stretch the entire reference gamut to a linear multiple of the
37765 display.
37766
37767 gamma
37768 Fit a logarithmic transfer between the tone curves.
37769
37770 reinhard
37771 Preserve overall image brightness with a simple curve, using
37772 nonlinear contrast, which results in flattening details and
37773 degrading color accuracy.
37774
37775 hable
37776 Preserve both dark and bright details better than reinhard, at
37777 the cost of slightly darkening everything. Use it when detail
37778 preservation is more important than color and brightness
37779 accuracy.
37780
37781 mobius
37782 Smoothly map out-of-range values, while retaining contrast and
37783 colors for in-range material as much as possible. Use it when
37784 color accuracy is more important than detail preservation.
37785
37786 Default is none.
37787
37788 param
37789 Tune the tone mapping algorithm.
37790
37791 This affects the following algorithms:
37792
37793 none
37794 Ignored.
37795
37796 linear
37797 Specifies the scale factor to use while stretching. Default to
37798 1.0.
37799
37800 gamma
37801 Specifies the exponent of the function. Default to 1.8.
37802
37803 clip
37804 Specify an extra linear coefficient to multiply into the signal
37805 before clipping. Default to 1.0.
37806
37807 reinhard
37808 Specify the local contrast coefficient at the display peak.
37809 Default to 0.5, which means that in-gamut values will be about
37810 half as bright as when clipping.
37811
37812 hable
37813 Ignored.
37814
37815 mobius
37816 Specify the transition point from linear to mobius transform.
37817 Every value below this point is guaranteed to be mapped 1:1.
37818 The higher the value, the more accurate the result will be, at
37819 the cost of losing bright details. Default to 0.3, which due
37820 to the steep initial slope still preserves in-range colors
37821 fairly accurately.
37822
37823 desat
37824 Apply desaturation for highlights that exceed this level of
37825 brightness. The higher the parameter, the more color information
37826 will be preserved. This setting helps prevent unnaturally blown-out
37827 colors for super-highlights, by (smoothly) turning into white
37828 instead. This makes images feel more natural, at the cost of
37829 reducing information about out-of-range colors.
37830
37831 The default of 2.0 is somewhat conservative and will mostly just
37832 apply to skies or directly sunlit surfaces. A setting of 0.0
37833 disables this option.
37834
37835 This option works only if the input frame has a supported color
37836 tag.
37837
37838 peak
37839 Override signal/nominal/reference peak with this value. Useful when
37840 the embedded peak information in display metadata is not reliable
37841 or when tone mapping from a lower range to a higher range.
37842
37843 tpad
37844 Temporarily pad video frames.
37845
37846 The filter accepts the following options:
37847
37848 start
37849 Specify number of delay frames before input video stream. Default
37850 is 0.
37851
37852 stop
37853 Specify number of padding frames after input video stream. Set to
37854 -1 to pad indefinitely. Default is 0.
37855
37856 start_mode
37857 Set kind of frames added to beginning of stream. Can be either add
37858 or clone. With add frames of solid-color are added. With clone
37859 frames are clones of first frame. Default is add.
37860
37861 stop_mode
37862 Set kind of frames added to end of stream. Can be either add or
37863 clone. With add frames of solid-color are added. With clone
37864 frames are clones of last frame. Default is add.
37865
37866 start_duration, stop_duration
37867 Specify the duration of the start/stop delay. See the Time duration
37868 section in the ffmpeg-utils(1) manual for the accepted syntax.
37869 These options override start and stop. Default is 0.
37870
37871 color
37872 Specify the color of the padded area. For the syntax of this
37873 option, check the "Color" section in the ffmpeg-utils manual.
37874
37875 The default value of color is "black".
37876
37877 transpose
37878 Transpose rows with columns in the input video and optionally flip it.
37879
37880 It accepts the following parameters:
37881
37882 dir Specify the transposition direction.
37883
37884 Can assume the following values:
37885
37886 0, 4, cclock_flip
37887 Rotate by 90 degrees counterclockwise and vertically flip
37888 (default), that is:
37889
37890 L.R L.l
37891 . . -> . .
37892 l.r R.r
37893
37894 1, 5, clock
37895 Rotate by 90 degrees clockwise, that is:
37896
37897 L.R l.L
37898 . . -> . .
37899 l.r r.R
37900
37901 2, 6, cclock
37902 Rotate by 90 degrees counterclockwise, that is:
37903
37904 L.R R.r
37905 . . -> . .
37906 l.r L.l
37907
37908 3, 7, clock_flip
37909 Rotate by 90 degrees clockwise and vertically flip, that is:
37910
37911 L.R r.R
37912 . . -> . .
37913 l.r l.L
37914
37915 For values between 4-7, the transposition is only done if the input
37916 video geometry is portrait and not landscape. These values are
37917 deprecated, the "passthrough" option should be used instead.
37918
37919 Numerical values are deprecated, and should be dropped in favor of
37920 symbolic constants.
37921
37922 passthrough
37923 Do not apply the transposition if the input geometry matches the
37924 one specified by the specified value. It accepts the following
37925 values:
37926
37927 none
37928 Always apply transposition.
37929
37930 portrait
37931 Preserve portrait geometry (when height >= width).
37932
37933 landscape
37934 Preserve landscape geometry (when width >= height).
37935
37936 Default value is "none".
37937
37938 For example to rotate by 90 degrees clockwise and preserve portrait
37939 layout:
37940
37941 transpose=dir=1:passthrough=portrait
37942
37943 The command above can also be specified as:
37944
37945 transpose=1:portrait
37946
37947 transpose_npp
37948 Transpose rows with columns in the input video and optionally flip it.
37949 For more in depth examples see the transpose video filter, which shares
37950 mostly the same options.
37951
37952 It accepts the following parameters:
37953
37954 dir Specify the transposition direction.
37955
37956 Can assume the following values:
37957
37958 cclock_flip
37959 Rotate by 90 degrees counterclockwise and vertically flip.
37960 (default)
37961
37962 clock
37963 Rotate by 90 degrees clockwise.
37964
37965 cclock
37966 Rotate by 90 degrees counterclockwise.
37967
37968 clock_flip
37969 Rotate by 90 degrees clockwise and vertically flip.
37970
37971 passthrough
37972 Do not apply the transposition if the input geometry matches the
37973 one specified by the specified value. It accepts the following
37974 values:
37975
37976 none
37977 Always apply transposition. (default)
37978
37979 portrait
37980 Preserve portrait geometry (when height >= width).
37981
37982 landscape
37983 Preserve landscape geometry (when width >= height).
37984
37985 trim
37986 Trim the input so that the output contains one continuous subpart of
37987 the input.
37988
37989 It accepts the following parameters:
37990
37991 start
37992 Specify the time of the start of the kept section, i.e. the frame
37993 with the timestamp start will be the first frame in the output.
37994
37995 end Specify the time of the first frame that will be dropped, i.e. the
37996 frame immediately preceding the one with the timestamp end will be
37997 the last frame in the output.
37998
37999 start_pts
38000 This is the same as start, except this option sets the start
38001 timestamp in timebase units instead of seconds.
38002
38003 end_pts
38004 This is the same as end, except this option sets the end timestamp
38005 in timebase units instead of seconds.
38006
38007 duration
38008 The maximum duration of the output in seconds.
38009
38010 start_frame
38011 The number of the first frame that should be passed to the output.
38012
38013 end_frame
38014 The number of the first frame that should be dropped.
38015
38016 start, end, and duration are expressed as time duration specifications;
38017 see the Time duration section in the ffmpeg-utils(1) manual for the
38018 accepted syntax.
38019
38020 Note that the first two sets of the start/end options and the duration
38021 option look at the frame timestamp, while the _frame variants simply
38022 count the frames that pass through the filter. Also note that this
38023 filter does not modify the timestamps. If you wish for the output
38024 timestamps to start at zero, insert a setpts filter after the trim
38025 filter.
38026
38027 If multiple start or end options are set, this filter tries to be
38028 greedy and keep all the frames that match at least one of the specified
38029 constraints. To keep only the part that matches all the constraints at
38030 once, chain multiple trim filters.
38031
38032 The defaults are such that all the input is kept. So it is possible to
38033 set e.g. just the end values to keep everything before the specified
38034 time.
38035
38036 Examples:
38037
38038 • Drop everything except the second minute of input:
38039
38040 ffmpeg -i INPUT -vf trim=60:120
38041
38042 • Keep only the first second:
38043
38044 ffmpeg -i INPUT -vf trim=duration=1
38045
38046 unpremultiply
38047 Apply alpha unpremultiply effect to input video stream using first
38048 plane of second stream as alpha.
38049
38050 Both streams must have same dimensions and same pixel format.
38051
38052 The filter accepts the following option:
38053
38054 planes
38055 Set which planes will be processed, unprocessed planes will be
38056 copied. By default value 0xf, all planes will be processed.
38057
38058 If the format has 1 or 2 components, then luma is bit 0. If the
38059 format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
38060 is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
38061 chroma-U and bit 2 is chroma-V. If present, the alpha channel is
38062 always the last bit.
38063
38064 inplace
38065 Do not require 2nd input for processing, instead use alpha plane
38066 from input stream.
38067
38068 unsharp
38069 Sharpen or blur the input video.
38070
38071 It accepts the following parameters:
38072
38073 luma_msize_x, lx
38074 Set the luma matrix horizontal size. It must be an odd integer
38075 between 3 and 23. The default value is 5.
38076
38077 luma_msize_y, ly
38078 Set the luma matrix vertical size. It must be an odd integer
38079 between 3 and 23. The default value is 5.
38080
38081 luma_amount, la
38082 Set the luma effect strength. It must be a floating point number,
38083 reasonable values lay between -1.5 and 1.5.
38084
38085 Negative values will blur the input video, while positive values
38086 will sharpen it, a value of zero will disable the effect.
38087
38088 Default value is 1.0.
38089
38090 chroma_msize_x, cx
38091 Set the chroma matrix horizontal size. It must be an odd integer
38092 between 3 and 23. The default value is 5.
38093
38094 chroma_msize_y, cy
38095 Set the chroma matrix vertical size. It must be an odd integer
38096 between 3 and 23. The default value is 5.
38097
38098 chroma_amount, ca
38099 Set the chroma effect strength. It must be a floating point number,
38100 reasonable values lay between -1.5 and 1.5.
38101
38102 Negative values will blur the input video, while positive values
38103 will sharpen it, a value of zero will disable the effect.
38104
38105 Default value is 0.0.
38106
38107 alpha_msize_x, ax
38108 Set the alpha matrix horizontal size. It must be an odd integer
38109 between 3 and 23. The default value is 5.
38110
38111 alpha_msize_y, ay
38112 Set the alpha matrix vertical size. It must be an odd integer
38113 between 3 and 23. The default value is 5.
38114
38115 alpha_amount, aa
38116 Set the alpha effect strength. It must be a floating point number,
38117 reasonable values lay between -1.5 and 1.5.
38118
38119 Negative values will blur the input video, while positive values
38120 will sharpen it, a value of zero will disable the effect.
38121
38122 Default value is 0.0.
38123
38124 All parameters are optional and default to the equivalent of the string
38125 '5:5:1.0:5:5:0.0'.
38126
38127 Examples
38128
38129 • Apply strong luma sharpen effect:
38130
38131 unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
38132
38133 • Apply a strong blur of both luma and chroma parameters:
38134
38135 unsharp=7:7:-2:7:7:-2
38136
38137 untile
38138 Decompose a video made of tiled images into the individual images.
38139
38140 The frame rate of the output video is the frame rate of the input video
38141 multiplied by the number of tiles.
38142
38143 This filter does the reverse of tile.
38144
38145 The filter accepts the following options:
38146
38147 layout
38148 Set the grid size (i.e. the number of lines and columns). For the
38149 syntax of this option, check the "Video size" section in the
38150 ffmpeg-utils manual.
38151
38152 Examples
38153
38154 • Produce a 1-second video from a still image file made of 25 frames
38155 stacked vertically, like an analogic film reel:
38156
38157 ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
38158
38159 uspp
38160 Apply ultra slow/simple postprocessing filter that compresses and
38161 decompresses the image at several (or - in the case of quality level 8
38162 - all) shifts and average the results.
38163
38164 The way this differs from the behavior of spp is that uspp actually
38165 encodes & decodes each case with libavcodec Snow, whereas spp uses a
38166 simplified intra only 8x8 DCT similar to MJPEG.
38167
38168 This filter is only available in ffmpeg version 4.4 or earlier.
38169
38170 The filter accepts the following options:
38171
38172 quality
38173 Set quality. This option defines the number of levels for
38174 averaging. It accepts an integer in the range 0-8. If set to 0, the
38175 filter will have no effect. A value of 8 means the higher quality.
38176 For each increment of that value the speed drops by a factor of
38177 approximately 2. Default value is 3.
38178
38179 qp Force a constant quantization parameter. If not set, the filter
38180 will use the QP from the video stream (if available).
38181
38182 v360
38183 Convert 360 videos between various formats.
38184
38185 The filter accepts the following options:
38186
38187 input
38188 output
38189 Set format of the input/output video.
38190
38191 Available formats:
38192
38193 e
38194 equirect
38195 Equirectangular projection.
38196
38197 c3x2
38198 c6x1
38199 c1x6
38200 Cubemap with 3x2/6x1/1x6 layout.
38201
38202 Format specific options:
38203
38204 in_pad
38205 out_pad
38206 Set padding proportion for the input/output cubemap. Values
38207 in decimals.
38208
38209 Example values:
38210
38211 0 No padding.
38212
38213 0.01
38214 1% of face is padding. For example, with 1920x1280
38215 resolution face size would be 640x640 and padding would
38216 be 3 pixels from each side. (640 * 0.01 = 6 pixels)
38217
38218 Default value is @samp{0}. Maximum value is @samp{0.1}.
38219
38220 fin_pad
38221 fout_pad
38222 Set fixed padding for the input/output cubemap. Values in
38223 pixels.
38224
38225 Default value is @samp{0}. If greater than zero it
38226 overrides other padding options.
38227
38228 in_forder
38229 out_forder
38230 Set order of faces for the input/output cubemap. Choose one
38231 direction for each position.
38232
38233 Designation of directions:
38234
38235 r right
38236
38237 l left
38238
38239 u up
38240
38241 d down
38242
38243 f forward
38244
38245 b back
38246
38247 Default value is @samp{rludfb}.
38248
38249 in_frot
38250 out_frot
38251 Set rotation of faces for the input/output cubemap. Choose
38252 one angle for each position.
38253
38254 Designation of angles:
38255
38256 0 0 degrees clockwise
38257
38258 1 90 degrees clockwise
38259
38260 2 180 degrees clockwise
38261
38262 3 270 degrees clockwise
38263
38264 Default value is @samp{000000}.
38265
38266 eac Equi-Angular Cubemap.
38267
38268 flat
38269 gnomonic
38270 rectilinear
38271 Regular video.
38272
38273 Format specific options:
38274
38275 h_fov
38276 v_fov
38277 d_fov
38278 Set output horizontal/vertical/diagonal field of view.
38279 Values in degrees.
38280
38281 If diagonal field of view is set it overrides horizontal
38282 and vertical field of view.
38283
38284 ih_fov
38285 iv_fov
38286 id_fov
38287 Set input horizontal/vertical/diagonal field of view.
38288 Values in degrees.
38289
38290 If diagonal field of view is set it overrides horizontal
38291 and vertical field of view.
38292
38293 dfisheye
38294 Dual fisheye.
38295
38296 Format specific options:
38297
38298 h_fov
38299 v_fov
38300 d_fov
38301 Set output horizontal/vertical/diagonal field of view.
38302 Values in degrees.
38303
38304 If diagonal field of view is set it overrides horizontal
38305 and vertical field of view.
38306
38307 ih_fov
38308 iv_fov
38309 id_fov
38310 Set input horizontal/vertical/diagonal field of view.
38311 Values in degrees.
38312
38313 If diagonal field of view is set it overrides horizontal
38314 and vertical field of view.
38315
38316 barrel
38317 fb
38318 barrelsplit
38319 Facebook's 360 formats.
38320
38321 sg Stereographic format.
38322
38323 Format specific options:
38324
38325 h_fov
38326 v_fov
38327 d_fov
38328 Set output horizontal/vertical/diagonal field of view.
38329 Values in degrees.
38330
38331 If diagonal field of view is set it overrides horizontal
38332 and vertical field of view.
38333
38334 ih_fov
38335 iv_fov
38336 id_fov
38337 Set input horizontal/vertical/diagonal field of view.
38338 Values in degrees.
38339
38340 If diagonal field of view is set it overrides horizontal
38341 and vertical field of view.
38342
38343 mercator
38344 Mercator format.
38345
38346 ball
38347 Ball format, gives significant distortion toward the back.
38348
38349 hammer
38350 Hammer-Aitoff map projection format.
38351
38352 sinusoidal
38353 Sinusoidal map projection format.
38354
38355 fisheye
38356 Fisheye projection.
38357
38358 Format specific options:
38359
38360 h_fov
38361 v_fov
38362 d_fov
38363 Set output horizontal/vertical/diagonal field of view.
38364 Values in degrees.
38365
38366 If diagonal field of view is set it overrides horizontal
38367 and vertical field of view.
38368
38369 ih_fov
38370 iv_fov
38371 id_fov
38372 Set input horizontal/vertical/diagonal field of view.
38373 Values in degrees.
38374
38375 If diagonal field of view is set it overrides horizontal
38376 and vertical field of view.
38377
38378 pannini
38379 Pannini projection.
38380
38381 Format specific options:
38382
38383 h_fov
38384 Set output pannini parameter.
38385
38386 ih_fov
38387 Set input pannini parameter.
38388
38389 cylindrical
38390 Cylindrical projection.
38391
38392 Format specific options:
38393
38394 h_fov
38395 v_fov
38396 d_fov
38397 Set output horizontal/vertical/diagonal field of view.
38398 Values in degrees.
38399
38400 If diagonal field of view is set it overrides horizontal
38401 and vertical field of view.
38402
38403 ih_fov
38404 iv_fov
38405 id_fov
38406 Set input horizontal/vertical/diagonal field of view.
38407 Values in degrees.
38408
38409 If diagonal field of view is set it overrides horizontal
38410 and vertical field of view.
38411
38412 perspective
38413 Perspective projection. (output only)
38414
38415 Format specific options:
38416
38417 v_fov
38418 Set perspective parameter.
38419
38420 tetrahedron
38421 Tetrahedron projection.
38422
38423 tsp Truncated square pyramid projection.
38424
38425 he
38426 hequirect
38427 Half equirectangular projection.
38428
38429 equisolid
38430 Equisolid format.
38431
38432 Format specific options:
38433
38434 h_fov
38435 v_fov
38436 d_fov
38437 Set output horizontal/vertical/diagonal field of view.
38438 Values in degrees.
38439
38440 If diagonal field of view is set it overrides horizontal
38441 and vertical field of view.
38442
38443 ih_fov
38444 iv_fov
38445 id_fov
38446 Set input horizontal/vertical/diagonal field of view.
38447 Values in degrees.
38448
38449 If diagonal field of view is set it overrides horizontal
38450 and vertical field of view.
38451
38452 og Orthographic format.
38453
38454 Format specific options:
38455
38456 h_fov
38457 v_fov
38458 d_fov
38459 Set output horizontal/vertical/diagonal field of view.
38460 Values in degrees.
38461
38462 If diagonal field of view is set it overrides horizontal
38463 and vertical field of view.
38464
38465 ih_fov
38466 iv_fov
38467 id_fov
38468 Set input horizontal/vertical/diagonal field of view.
38469 Values in degrees.
38470
38471 If diagonal field of view is set it overrides horizontal
38472 and vertical field of view.
38473
38474 octahedron
38475 Octahedron projection.
38476
38477 cylindricalea
38478 Cylindrical Equal Area projection.
38479
38480 interp
38481 Set interpolation method.Note: more complex interpolation methods
38482 require much more memory to run.
38483
38484 Available methods:
38485
38486 near
38487 nearest
38488 Nearest neighbour.
38489
38490 line
38491 linear
38492 Bilinear interpolation.
38493
38494 lagrange9
38495 Lagrange9 interpolation.
38496
38497 cube
38498 cubic
38499 Bicubic interpolation.
38500
38501 lanc
38502 lanczos
38503 Lanczos interpolation.
38504
38505 sp16
38506 spline16
38507 Spline16 interpolation.
38508
38509 gauss
38510 gaussian
38511 Gaussian interpolation.
38512
38513 mitchell
38514 Mitchell interpolation.
38515
38516 Default value is @samp{line}.
38517
38518 w
38519 h Set the output video resolution.
38520
38521 Default resolution depends on formats.
38522
38523 in_stereo
38524 out_stereo
38525 Set the input/output stereo format.
38526
38527 2d 2D mono
38528
38529 sbs Side by side
38530
38531 tb Top bottom
38532
38533 Default value is @samp{2d} for input and output format.
38534
38535 yaw
38536 pitch
38537 roll
38538 Set rotation for the output video. Values in degrees.
38539
38540 rorder
38541 Set rotation order for the output video. Choose one item for each
38542 position.
38543
38544 y, Y
38545 yaw
38546
38547 p, P
38548 pitch
38549
38550 r, R
38551 roll
38552
38553 Default value is @samp{ypr}.
38554
38555 h_flip
38556 v_flip
38557 d_flip
38558 Flip the output video horizontally(swaps
38559 left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
38560 Boolean values.
38561
38562 ih_flip
38563 iv_flip
38564 Set if input video is flipped horizontally/vertically. Boolean
38565 values.
38566
38567 in_trans
38568 Set if input video is transposed. Boolean value, by default
38569 disabled.
38570
38571 out_trans
38572 Set if output video needs to be transposed. Boolean value, by
38573 default disabled.
38574
38575 h_offset
38576 v_offset
38577 Set output horizontal/vertical off-axis offset. Default is set to
38578 0. Allowed range is from -1 to 1.
38579
38580 alpha_mask
38581 Build mask in alpha plane for all unmapped pixels by marking them
38582 fully transparent. Boolean value, by default disabled.
38583
38584 reset_rot
38585 Reset rotation of output video. Boolean value, by default disabled.
38586
38587 Examples
38588
38589 • Convert equirectangular video to cubemap with 3x2 layout and 1%
38590 padding using bicubic interpolation:
38591
38592 ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
38593
38594 • Extract back view of Equi-Angular Cubemap:
38595
38596 ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
38597
38598 • Convert transposed and horizontally flipped Equi-Angular Cubemap in
38599 side-by-side stereo format to equirectangular top-bottom stereo
38600 format:
38601
38602 v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
38603
38604 Commands
38605
38606 This filter supports subset of above options as commands.
38607
38608 vaguedenoiser
38609 Apply a wavelet based denoiser.
38610
38611 It transforms each frame from the video input into the wavelet domain,
38612 using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
38613 the obtained coefficients. It does an inverse wavelet transform after.
38614 Due to wavelet properties, it should give a nice smoothed result, and
38615 reduced noise, without blurring picture features.
38616
38617 This filter accepts the following options:
38618
38619 threshold
38620 The filtering strength. The higher, the more filtered the video
38621 will be. Hard thresholding can use a higher threshold than soft
38622 thresholding before the video looks overfiltered. Default value is
38623 2.
38624
38625 method
38626 The filtering method the filter will use.
38627
38628 It accepts the following values:
38629
38630 hard
38631 All values under the threshold will be zeroed.
38632
38633 soft
38634 All values under the threshold will be zeroed. All values above
38635 will be reduced by the threshold.
38636
38637 garrote
38638 Scales or nullifies coefficients - intermediary between (more)
38639 soft and (less) hard thresholding.
38640
38641 Default is garrote.
38642
38643 nsteps
38644 Number of times, the wavelet will decompose the picture. Picture
38645 can't be decomposed beyond a particular point (typically, 8 for a
38646 640x480 frame - as 2^9 = 512 > 480). Valid values are integers
38647 between 1 and 32. Default value is 6.
38648
38649 percent
38650 Partial of full denoising (limited coefficients shrinking), from 0
38651 to 100. Default value is 85.
38652
38653 planes
38654 A list of the planes to process. By default all planes are
38655 processed.
38656
38657 type
38658 The threshold type the filter will use.
38659
38660 It accepts the following values:
38661
38662 universal
38663 Threshold used is same for all decompositions.
38664
38665 bayes
38666 Threshold used depends also on each decomposition coefficients.
38667
38668 Default is universal.
38669
38670 varblur
38671 Apply variable blur filter by using 2nd video stream to set blur
38672 radius. The 2nd stream must have the same dimensions.
38673
38674 This filter accepts the following options:
38675
38676 min_r
38677 Set min allowed radius. Allowed range is from 0 to 254. Default is
38678 0.
38679
38680 max_r
38681 Set max allowed radius. Allowed range is from 1 to 255. Default is
38682 8.
38683
38684 planes
38685 Set which planes to process. By default, all are used.
38686
38687 The "varblur" filter also supports the framesync options.
38688
38689 Commands
38690
38691 This filter supports all the above options as commands.
38692
38693 vectorscope
38694 Display 2 color component values in the two dimensional graph (which is
38695 called a vectorscope).
38696
38697 This filter accepts the following options:
38698
38699 mode, m
38700 Set vectorscope mode.
38701
38702 It accepts the following values:
38703
38704 gray
38705 tint
38706 Gray values are displayed on graph, higher brightness means
38707 more pixels have same component color value on location in
38708 graph. This is the default mode.
38709
38710 color
38711 Gray values are displayed on graph. Surrounding pixels values
38712 which are not present in video frame are drawn in gradient of 2
38713 color components which are set by option "x" and "y". The 3rd
38714 color component is static.
38715
38716 color2
38717 Actual color components values present in video frame are
38718 displayed on graph.
38719
38720 color3
38721 Similar as color2 but higher frequency of same values "x" and
38722 "y" on graph increases value of another color component, which
38723 is luminance by default values of "x" and "y".
38724
38725 color4
38726 Actual colors present in video frame are displayed on graph. If
38727 two different colors map to same position on graph then color
38728 with higher value of component not present in graph is picked.
38729
38730 color5
38731 Gray values are displayed on graph. Similar to "color" but with
38732 3rd color component picked from radial gradient.
38733
38734 x Set which color component will be represented on X-axis. Default is
38735 1.
38736
38737 y Set which color component will be represented on Y-axis. Default is
38738 2.
38739
38740 intensity, i
38741 Set intensity, used by modes: gray, color, color3 and color5 for
38742 increasing brightness of color component which represents frequency
38743 of (X, Y) location in graph.
38744
38745 envelope, e
38746 none
38747 No envelope, this is default.
38748
38749 instant
38750 Instant envelope, even darkest single pixel will be clearly
38751 highlighted.
38752
38753 peak
38754 Hold maximum and minimum values presented in graph over time.
38755 This way you can still spot out of range values without
38756 constantly looking at vectorscope.
38757
38758 peak+instant
38759 Peak and instant envelope combined together.
38760
38761 graticule, g
38762 Set what kind of graticule to draw.
38763
38764 none
38765 green
38766 color
38767 invert
38768 opacity, o
38769 Set graticule opacity.
38770
38771 flags, f
38772 Set graticule flags.
38773
38774 white
38775 Draw graticule for white point.
38776
38777 black
38778 Draw graticule for black point.
38779
38780 name
38781 Draw color points short names.
38782
38783 bgopacity, b
38784 Set background opacity.
38785
38786 lthreshold, l
38787 Set low threshold for color component not represented on X or Y
38788 axis. Values lower than this value will be ignored. Default is 0.
38789 Note this value is multiplied with actual max possible value one
38790 pixel component can have. So for 8-bit input and low threshold
38791 value of 0.1 actual threshold is 0.1 * 255 = 25.
38792
38793 hthreshold, h
38794 Set high threshold for color component not represented on X or Y
38795 axis. Values higher than this value will be ignored. Default is 1.
38796 Note this value is multiplied with actual max possible value one
38797 pixel component can have. So for 8-bit input and high threshold
38798 value of 0.9 actual threshold is 0.9 * 255 = 230.
38799
38800 colorspace, c
38801 Set what kind of colorspace to use when drawing graticule.
38802
38803 auto
38804 601
38805 709
38806
38807 Default is auto.
38808
38809 tint0, t0
38810 tint1, t1
38811 Set color tint for gray/tint vectorscope mode. By default both
38812 options are zero. This means no tint, and output will remain gray.
38813
38814 vidstabdetect
38815 Analyze video stabilization/deshaking. Perform pass 1 of 2, see
38816 vidstabtransform for pass 2.
38817
38818 This filter generates a file with relative translation and rotation
38819 transform information about subsequent frames, which is then used by
38820 the vidstabtransform filter.
38821
38822 To enable compilation of this filter you need to configure FFmpeg with
38823 "--enable-libvidstab".
38824
38825 This filter accepts the following options:
38826
38827 result
38828 Set the path to the file used to write the transforms information.
38829 Default value is transforms.trf.
38830
38831 shakiness
38832 Set how shaky the video is and how quick the camera is. It accepts
38833 an integer in the range 1-10, a value of 1 means little shakiness,
38834 a value of 10 means strong shakiness. Default value is 5.
38835
38836 accuracy
38837 Set the accuracy of the detection process. It must be a value in
38838 the range 1-15. A value of 1 means low accuracy, a value of 15
38839 means high accuracy. Default value is 15.
38840
38841 stepsize
38842 Set stepsize of the search process. The region around minimum is
38843 scanned with 1 pixel resolution. Default value is 6.
38844
38845 mincontrast
38846 Set minimum contrast. Below this value a local measurement field is
38847 discarded. Must be a floating point value in the range 0-1. Default
38848 value is 0.3.
38849
38850 tripod
38851 Set reference frame number for tripod mode.
38852
38853 If enabled, the motion of the frames is compared to a reference
38854 frame in the filtered stream, identified by the specified number.
38855 The idea is to compensate all movements in a more-or-less static
38856 scene and keep the camera view absolutely still.
38857
38858 If set to 0, it is disabled. The frames are counted starting from
38859 1.
38860
38861 show
38862 Show fields and transforms in the resulting frames. It accepts an
38863 integer in the range 0-2. Default value is 0, which disables any
38864 visualization.
38865
38866 Examples
38867
38868 • Use default values:
38869
38870 vidstabdetect
38871
38872 • Analyze strongly shaky movie and put the results in file
38873 mytransforms.trf:
38874
38875 vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
38876
38877 • Visualize the result of internal transformations in the resulting
38878 video:
38879
38880 vidstabdetect=show=1
38881
38882 • Analyze a video with medium shakiness using ffmpeg:
38883
38884 ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
38885
38886 vidstabtransform
38887 Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
38888 1.
38889
38890 Read a file with transform information for each frame and
38891 apply/compensate them. Together with the vidstabdetect filter this can
38892 be used to deshake videos. See also
38893 <http://public.hronopik.de/vid.stab>. It is important to also use the
38894 unsharp filter, see below.
38895
38896 To enable compilation of this filter you need to configure FFmpeg with
38897 "--enable-libvidstab".
38898
38899 Options
38900
38901 input
38902 Set path to the file used to read the transforms. Default value is
38903 transforms.trf.
38904
38905 smoothing
38906 Set the number of frames (value*2 + 1) used for lowpass filtering
38907 the camera movements. Default value is 10.
38908
38909 For example a number of 10 means that 21 frames are used (10 in the
38910 past and 10 in the future) to smoothen the motion in the video. A
38911 larger value leads to a smoother video, but limits the acceleration
38912 of the camera (pan/tilt movements). 0 is a special case where a
38913 static camera is simulated.
38914
38915 optalgo
38916 Set the camera path optimization algorithm.
38917
38918 Accepted values are:
38919
38920 gauss
38921 gaussian kernel low-pass filter on camera motion (default)
38922
38923 avg averaging on transformations
38924
38925 maxshift
38926 Set maximal number of pixels to translate frames. Default value is
38927 -1, meaning no limit.
38928
38929 maxangle
38930 Set maximal angle in radians (degree*PI/180) to rotate frames.
38931 Default value is -1, meaning no limit.
38932
38933 crop
38934 Specify how to deal with borders that may be visible due to
38935 movement compensation.
38936
38937 Available values are:
38938
38939 keep
38940 keep image information from previous frame (default)
38941
38942 black
38943 fill the border black
38944
38945 invert
38946 Invert transforms if set to 1. Default value is 0.
38947
38948 relative
38949 Consider transforms as relative to previous frame if set to 1,
38950 absolute if set to 0. Default value is 0.
38951
38952 zoom
38953 Set percentage to zoom. A positive value will result in a zoom-in
38954 effect, a negative value in a zoom-out effect. Default value is 0
38955 (no zoom).
38956
38957 optzoom
38958 Set optimal zooming to avoid borders.
38959
38960 Accepted values are:
38961
38962 0 disabled
38963
38964 1 optimal static zoom value is determined (only very strong
38965 movements will lead to visible borders) (default)
38966
38967 2 optimal adaptive zoom value is determined (no borders will be
38968 visible), see zoomspeed
38969
38970 Note that the value given at zoom is added to the one calculated
38971 here.
38972
38973 zoomspeed
38974 Set percent to zoom maximally each frame (enabled when optzoom is
38975 set to 2). Range is from 0 to 5, default value is 0.25.
38976
38977 interpol
38978 Specify type of interpolation.
38979
38980 Available values are:
38981
38982 no no interpolation
38983
38984 linear
38985 linear only horizontal
38986
38987 bilinear
38988 linear in both directions (default)
38989
38990 bicubic
38991 cubic in both directions (slow)
38992
38993 tripod
38994 Enable virtual tripod mode if set to 1, which is equivalent to
38995 "relative=0:smoothing=0". Default value is 0.
38996
38997 Use also "tripod" option of vidstabdetect.
38998
38999 debug
39000 Increase log verbosity if set to 1. Also the detected global
39001 motions are written to the temporary file global_motions.trf.
39002 Default value is 0.
39003
39004 Examples
39005
39006 • Use ffmpeg for a typical stabilization with default values:
39007
39008 ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
39009
39010 Note the use of the unsharp filter which is always recommended.
39011
39012 • Zoom in a bit more and load transform data from a given file:
39013
39014 vidstabtransform=zoom=5:input="mytransforms.trf"
39015
39016 • Smoothen the video even more:
39017
39018 vidstabtransform=smoothing=30
39019
39020 vflip
39021 Flip the input video vertically.
39022
39023 For example, to vertically flip a video with ffmpeg:
39024
39025 ffmpeg -i in.avi -vf "vflip" out.avi
39026
39027 vfrdet
39028 Detect variable frame rate video.
39029
39030 This filter tries to detect if the input is variable or constant frame
39031 rate.
39032
39033 At end it will output number of frames detected as having variable
39034 delta pts, and ones with constant delta pts. If there was frames with
39035 variable delta, than it will also show min, max and average delta
39036 encountered.
39037
39038 vibrance
39039 Boost or alter saturation.
39040
39041 The filter accepts the following options:
39042
39043 intensity
39044 Set strength of boost if positive value or strength of alter if
39045 negative value. Default is 0. Allowed range is from -2 to 2.
39046
39047 rbal
39048 Set the red balance. Default is 1. Allowed range is from -10 to 10.
39049
39050 gbal
39051 Set the green balance. Default is 1. Allowed range is from -10 to
39052 10.
39053
39054 bbal
39055 Set the blue balance. Default is 1. Allowed range is from -10 to
39056 10.
39057
39058 rlum
39059 Set the red luma coefficient.
39060
39061 glum
39062 Set the green luma coefficient.
39063
39064 blum
39065 Set the blue luma coefficient.
39066
39067 alternate
39068 If "intensity" is negative and this is set to 1, colors will
39069 change, otherwise colors will be less saturated, more towards gray.
39070
39071 Commands
39072
39073 This filter supports the all above options as commands.
39074
39075 vif
39076 Obtain the average VIF (Visual Information Fidelity) between two input
39077 videos.
39078
39079 This filter takes two input videos.
39080
39081 Both input videos must have the same resolution and pixel format for
39082 this filter to work correctly. Also it assumes that both inputs have
39083 the same number of frames, which are compared one by one.
39084
39085 The obtained average VIF score is printed through the logging system.
39086
39087 The filter stores the calculated VIF score of each frame.
39088
39089 In the below example the input file main.mpg being processed is
39090 compared with the reference file ref.mpg.
39091
39092 ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
39093
39094 vignette
39095 Make or reverse a natural vignetting effect.
39096
39097 The filter accepts the following options:
39098
39099 angle, a
39100 Set lens angle expression as a number of radians.
39101
39102 The value is clipped in the "[0,PI/2]" range.
39103
39104 Default value: "PI/5"
39105
39106 x0
39107 y0 Set center coordinates expressions. Respectively "w/2" and "h/2" by
39108 default.
39109
39110 mode
39111 Set forward/backward mode.
39112
39113 Available modes are:
39114
39115 forward
39116 The larger the distance from the central point, the darker the
39117 image becomes.
39118
39119 backward
39120 The larger the distance from the central point, the brighter
39121 the image becomes. This can be used to reverse a vignette
39122 effect, though there is no automatic detection to extract the
39123 lens angle and other settings (yet). It can also be used to
39124 create a burning effect.
39125
39126 Default value is forward.
39127
39128 eval
39129 Set evaluation mode for the expressions (angle, x0, y0).
39130
39131 It accepts the following values:
39132
39133 init
39134 Evaluate expressions only once during the filter
39135 initialization.
39136
39137 frame
39138 Evaluate expressions for each incoming frame. This is way
39139 slower than the init mode since it requires all the scalers to
39140 be re-computed, but it allows advanced dynamic expressions.
39141
39142 Default value is init.
39143
39144 dither
39145 Set dithering to reduce the circular banding effects. Default is 1
39146 (enabled).
39147
39148 aspect
39149 Set vignette aspect. This setting allows one to adjust the shape of
39150 the vignette. Setting this value to the SAR of the input will make
39151 a rectangular vignetting following the dimensions of the video.
39152
39153 Default is "1/1".
39154
39155 Expressions
39156
39157 The alpha, x0 and y0 expressions can contain the following parameters.
39158
39159 w
39160 h input width and height
39161
39162 n the number of input frame, starting from 0
39163
39164 pts the PTS (Presentation TimeStamp) time of the filtered video frame,
39165 expressed in TB units, NAN if undefined
39166
39167 r frame rate of the input video, NAN if the input frame rate is
39168 unknown
39169
39170 t the PTS (Presentation TimeStamp) of the filtered video frame,
39171 expressed in seconds, NAN if undefined
39172
39173 tb time base of the input video
39174
39175 Examples
39176
39177 • Apply simple strong vignetting effect:
39178
39179 vignette=PI/4
39180
39181 • Make a flickering vignetting:
39182
39183 vignette='PI/4+random(1)*PI/50':eval=frame
39184
39185 vmafmotion
39186 Obtain the average VMAF motion score of a video. It is one of the
39187 component metrics of VMAF.
39188
39189 The obtained average motion score is printed through the logging
39190 system.
39191
39192 The filter accepts the following options:
39193
39194 stats_file
39195 If specified, the filter will use the named file to save the motion
39196 score of each frame with respect to the previous frame. When
39197 filename equals "-" the data is sent to standard output.
39198
39199 Example:
39200
39201 ffmpeg -i ref.mpg -vf vmafmotion -f null -
39202
39203 vstack
39204 Stack input videos vertically.
39205
39206 All streams must be of same pixel format and of same width.
39207
39208 Note that this filter is faster than using overlay and pad filter to
39209 create same output.
39210
39211 The filter accepts the following options:
39212
39213 inputs
39214 Set number of input streams. Default is 2.
39215
39216 shortest
39217 If set to 1, force the output to terminate when the shortest input
39218 terminates. Default value is 0.
39219
39220 w3fdif
39221 Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
39222 Deinterlacing Filter").
39223
39224 Based on the process described by Martin Weston for BBC R&D, and
39225 implemented based on the de-interlace algorithm written by Jim
39226 Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
39227 filter coefficients calculated by BBC R&D.
39228
39229 This filter uses field-dominance information in frame to decide which
39230 of each pair of fields to place first in the output. If it gets it
39231 wrong use setfield filter before "w3fdif" filter.
39232
39233 There are two sets of filter coefficients, so called "simple" and
39234 "complex". Which set of filter coefficients is used can be set by
39235 passing an optional parameter:
39236
39237 filter
39238 Set the interlacing filter coefficients. Accepts one of the
39239 following values:
39240
39241 simple
39242 Simple filter coefficient set.
39243
39244 complex
39245 More-complex filter coefficient set.
39246
39247 Default value is complex.
39248
39249 mode
39250 The interlacing mode to adopt. It accepts one of the following
39251 values:
39252
39253 frame
39254 Output one frame for each frame.
39255
39256 field
39257 Output one frame for each field.
39258
39259 The default value is "field".
39260
39261 parity
39262 The picture field parity assumed for the input interlaced video. It
39263 accepts one of the following values:
39264
39265 tff Assume the top field is first.
39266
39267 bff Assume the bottom field is first.
39268
39269 auto
39270 Enable automatic detection of field parity.
39271
39272 The default value is "auto". If the interlacing is unknown or the
39273 decoder does not export this information, top field first will be
39274 assumed.
39275
39276 deint
39277 Specify which frames to deinterlace. Accepts one of the following
39278 values:
39279
39280 all Deinterlace all frames,
39281
39282 interlaced
39283 Only deinterlace frames marked as interlaced.
39284
39285 Default value is all.
39286
39287 Commands
39288
39289 This filter supports same commands as options.
39290
39291 waveform
39292 Video waveform monitor.
39293
39294 The waveform monitor plots color component intensity. By default
39295 luminance only. Each column of the waveform corresponds to a column of
39296 pixels in the source video.
39297
39298 It accepts the following options:
39299
39300 mode, m
39301 Can be either "row", or "column". Default is "column". In row
39302 mode, the graph on the left side represents color component value 0
39303 and the right side represents value = 255. In column mode, the top
39304 side represents color component value = 0 and bottom side
39305 represents value = 255.
39306
39307 intensity, i
39308 Set intensity. Smaller values are useful to find out how many
39309 values of the same luminance are distributed across input
39310 rows/columns. Default value is 0.04. Allowed range is [0, 1].
39311
39312 mirror, r
39313 Set mirroring mode. 0 means unmirrored, 1 means mirrored. In
39314 mirrored mode, higher values will be represented on the left side
39315 for "row" mode and at the top for "column" mode. Default is 1
39316 (mirrored).
39317
39318 display, d
39319 Set display mode. It accepts the following values:
39320
39321 overlay
39322 Presents information identical to that in the "parade", except
39323 that the graphs representing color components are superimposed
39324 directly over one another.
39325
39326 This display mode makes it easier to spot relative differences
39327 or similarities in overlapping areas of the color components
39328 that are supposed to be identical, such as neutral whites,
39329 grays, or blacks.
39330
39331 stack
39332 Display separate graph for the color components side by side in
39333 "row" mode or one below the other in "column" mode.
39334
39335 parade
39336 Display separate graph for the color components side by side in
39337 "column" mode or one below the other in "row" mode.
39338
39339 Using this display mode makes it easy to spot color casts in
39340 the highlights and shadows of an image, by comparing the
39341 contours of the top and the bottom graphs of each waveform.
39342 Since whites, grays, and blacks are characterized by exactly
39343 equal amounts of red, green, and blue, neutral areas of the
39344 picture should display three waveforms of roughly equal
39345 width/height. If not, the correction is easy to perform by
39346 making level adjustments the three waveforms.
39347
39348 Default is "stack".
39349
39350 components, c
39351 Set which color components to display. Default is 1, which means
39352 only luminance or red color component if input is in RGB
39353 colorspace. If is set for example to 7 it will display all 3 (if)
39354 available color components.
39355
39356 envelope, e
39357 none
39358 No envelope, this is default.
39359
39360 instant
39361 Instant envelope, minimum and maximum values presented in graph
39362 will be easily visible even with small "step" value.
39363
39364 peak
39365 Hold minimum and maximum values presented in graph across time.
39366 This way you can still spot out of range values without
39367 constantly looking at waveforms.
39368
39369 peak+instant
39370 Peak and instant envelope combined together.
39371
39372 filter, f
39373 lowpass
39374 No filtering, this is default.
39375
39376 flat
39377 Luma and chroma combined together.
39378
39379 aflat
39380 Similar as above, but shows difference between blue and red
39381 chroma.
39382
39383 xflat
39384 Similar as above, but use different colors.
39385
39386 yflat
39387 Similar as above, but again with different colors.
39388
39389 chroma
39390 Displays only chroma.
39391
39392 color
39393 Displays actual color value on waveform.
39394
39395 acolor
39396 Similar as above, but with luma showing frequency of chroma
39397 values.
39398
39399 graticule, g
39400 Set which graticule to display.
39401
39402 none
39403 Do not display graticule.
39404
39405 green
39406 Display green graticule showing legal broadcast ranges.
39407
39408 orange
39409 Display orange graticule showing legal broadcast ranges.
39410
39411 invert
39412 Display invert graticule showing legal broadcast ranges.
39413
39414 opacity, o
39415 Set graticule opacity.
39416
39417 flags, fl
39418 Set graticule flags.
39419
39420 numbers
39421 Draw numbers above lines. By default enabled.
39422
39423 dots
39424 Draw dots instead of lines.
39425
39426 scale, s
39427 Set scale used for displaying graticule.
39428
39429 digital
39430 millivolts
39431 ire
39432
39433 Default is digital.
39434
39435 bgopacity, b
39436 Set background opacity.
39437
39438 tint0, t0
39439 tint1, t1
39440 Set tint for output. Only used with lowpass filter and when
39441 display is not overlay and input pixel formats are not RGB.
39442
39443 fitmode, fm
39444 Set sample aspect ratio of video output frames. Can be used to
39445 configure waveform so it is not streched too much in one of
39446 directions.
39447
39448 none
39449 Set sample aspect ration to 1/1.
39450
39451 size
39452 Set sample aspect ratio to match input size of video
39453
39454 Default is none.
39455
39456 weave, doubleweave
39457 The "weave" takes a field-based video input and join each two
39458 sequential fields into single frame, producing a new double height clip
39459 with half the frame rate and half the frame count.
39460
39461 The "doubleweave" works same as "weave" but without halving frame rate
39462 and frame count.
39463
39464 It accepts the following option:
39465
39466 first_field
39467 Set first field. Available values are:
39468
39469 top, t
39470 Set the frame as top-field-first.
39471
39472 bottom, b
39473 Set the frame as bottom-field-first.
39474
39475 Examples
39476
39477 • Interlace video using select and separatefields filter:
39478
39479 separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
39480
39481 xbr
39482 Apply the xBR high-quality magnification filter which is designed for
39483 pixel art. It follows a set of edge-detection rules, see
39484 <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
39485
39486 It accepts the following option:
39487
39488 n Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
39489 "4xBR". Default is 3.
39490
39491 xcorrelate
39492 Apply normalized cross-correlation between first and second input video
39493 stream.
39494
39495 Second input video stream dimensions must be lower than first input
39496 video stream.
39497
39498 The filter accepts the following options:
39499
39500 planes
39501 Set which planes to process.
39502
39503 secondary
39504 Set which secondary video frames will be processed from second
39505 input video stream, can be first or all. Default is all.
39506
39507 The "xcorrelate" filter also supports the framesync options.
39508
39509 xfade
39510 Apply cross fade from one input video stream to another input video
39511 stream. The cross fade is applied for specified duration.
39512
39513 Both inputs must be constant frame-rate and have the same resolution,
39514 pixel format, frame rate and timebase.
39515
39516 The filter accepts the following options:
39517
39518 transition
39519 Set one of available transition effects:
39520
39521 custom
39522 fade
39523 wipeleft
39524 wiperight
39525 wipeup
39526 wipedown
39527 slideleft
39528 slideright
39529 slideup
39530 slidedown
39531 circlecrop
39532 rectcrop
39533 distance
39534 fadeblack
39535 fadewhite
39536 radial
39537 smoothleft
39538 smoothright
39539 smoothup
39540 smoothdown
39541 circleopen
39542 circleclose
39543 vertopen
39544 vertclose
39545 horzopen
39546 horzclose
39547 dissolve
39548 pixelize
39549 diagtl
39550 diagtr
39551 diagbl
39552 diagbr
39553 hlslice
39554 hrslice
39555 vuslice
39556 vdslice
39557 hblur
39558 fadegrays
39559 wipetl
39560 wipetr
39561 wipebl
39562 wipebr
39563 squeezeh
39564 squeezev
39565 zoomin
39566 fadefast
39567 fadeslow
39568
39569 Default transition effect is fade.
39570
39571 duration
39572 Set cross fade duration in seconds. Range is 0 to 60 seconds.
39573 Default duration is 1 second.
39574
39575 offset
39576 Set cross fade start relative to first input stream in seconds.
39577 Default offset is 0.
39578
39579 expr
39580 Set expression for custom transition effect.
39581
39582 The expressions can use the following variables and functions:
39583
39584 X
39585 Y The coordinates of the current sample.
39586
39587 W
39588 H The width and height of the image.
39589
39590 P Progress of transition effect.
39591
39592 PLANE
39593 Currently processed plane.
39594
39595 A Return value of first input at current location and plane.
39596
39597 B Return value of second input at current location and plane.
39598
39599 a0(x, y)
39600 a1(x, y)
39601 a2(x, y)
39602 a3(x, y)
39603 Return the value of the pixel at location (x,y) of the
39604 first/second/third/fourth component of first input.
39605
39606 b0(x, y)
39607 b1(x, y)
39608 b2(x, y)
39609 b3(x, y)
39610 Return the value of the pixel at location (x,y) of the
39611 first/second/third/fourth component of second input.
39612
39613 Examples
39614
39615 • Cross fade from one input video to another input video, with fade
39616 transition and duration of transition of 2 seconds starting at
39617 offset of 5 seconds:
39618
39619 ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
39620
39621 xmedian
39622 Pick median pixels from several input videos.
39623
39624 The filter accepts the following options:
39625
39626 inputs
39627 Set number of inputs. Default is 3. Allowed range is from 3 to
39628 255. If number of inputs is even number, than result will be mean
39629 value between two median values.
39630
39631 planes
39632 Set which planes to filter. Default value is 15, by which all
39633 planes are processed.
39634
39635 percentile
39636 Set median percentile. Default value is 0.5. Default value of 0.5
39637 will pick always median values, while 0 will pick minimum values,
39638 and 1 maximum values.
39639
39640 Commands
39641
39642 This filter supports all above options as commands, excluding option
39643 "inputs".
39644
39645 xstack
39646 Stack video inputs into custom layout.
39647
39648 All streams must be of same pixel format.
39649
39650 The filter accepts the following options:
39651
39652 inputs
39653 Set number of input streams. Default is 2.
39654
39655 layout
39656 Specify layout of inputs. This option requires the desired layout
39657 configuration to be explicitly set by the user. This sets position
39658 of each video input in output. Each input is separated by '|'. The
39659 first number represents the column, and the second number
39660 represents the row. Numbers start at 0 and are separated by '_'.
39661 Optionally one can use wX and hX, where X is video input from which
39662 to take width or height. Multiple values can be used when
39663 separated by '+'. In such case values are summed together.
39664
39665 Note that if inputs are of different sizes gaps may appear, as not
39666 all of the output video frame will be filled. Similarly, videos can
39667 overlap each other if their position doesn't leave enough space for
39668 the full frame of adjoining videos.
39669
39670 For 2 inputs, a default layout of "0_0|w0_0" (equivalent to
39671 "grid=2x1") is set. In all other cases, a layout or a grid must be
39672 set by the user. Either "grid" or "layout" can be specified at a
39673 time. Specifying both will result in an error.
39674
39675 grid
39676 Specify a fixed size grid of inputs. This option is used to create
39677 a fixed size grid of the input streams. Set the grid size in the
39678 form "COLUMNSxROWS". There must be "ROWS * COLUMNS" input streams
39679 and they will be arranged as a grid with "ROWS" rows and "COLUMNS"
39680 columns. When using this option, each input stream within a row
39681 must have the same height and all the rows must have the same
39682 width.
39683
39684 If "grid" is set, then "inputs" option is ignored and is implicitly
39685 set to "ROWS * COLUMNS".
39686
39687 For 2 inputs, a default grid of "2x1" (equivalent to
39688 "layout=0_0|w0_0") is set. In all other cases, a layout or a grid
39689 must be set by the user. Either "grid" or "layout" can be specified
39690 at a time. Specifying both will result in an error.
39691
39692 shortest
39693 If set to 1, force the output to terminate when the shortest input
39694 terminates. Default value is 0.
39695
39696 fill
39697 If set to valid color, all unused pixels will be filled with that
39698 color. By default fill is set to none, so it is disabled.
39699
39700 Examples
39701
39702 • Display 4 inputs into 2x2 grid.
39703
39704 Layout:
39705
39706 input1(0, 0) | input3(w0, 0)
39707 input2(0, h0) | input4(w0, h0)
39708
39709
39710
39711 xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
39712
39713 Note that if inputs are of different sizes, gaps or overlaps may
39714 occur.
39715
39716 • Display 4 inputs into 1x4 grid.
39717
39718 Layout:
39719
39720 input1(0, 0)
39721 input2(0, h0)
39722 input3(0, h0+h1)
39723 input4(0, h0+h1+h2)
39724
39725
39726
39727 xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
39728
39729 Note that if inputs are of different widths, unused space will
39730 appear.
39731
39732 • Display 9 inputs into 3x3 grid.
39733
39734 Layout:
39735
39736 input1(0, 0) | input4(w0, 0) | input7(w0+w3, 0)
39737 input2(0, h0) | input5(w0, h0) | input8(w0+w3, h0)
39738 input3(0, h0+h1) | input6(w0, h0+h1) | input9(w0+w3, h0+h1)
39739
39740
39741
39742 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
39743
39744 Note that if inputs are of different sizes, gaps or overlaps may
39745 occur.
39746
39747 • Display 16 inputs into 4x4 grid.
39748
39749 Layout:
39750
39751 input1(0, 0) | input5(w0, 0) | input9 (w0+w4, 0) | input13(w0+w4+w8, 0)
39752 input2(0, h0) | input6(w0, h0) | input10(w0+w4, h0) | input14(w0+w4+w8, h0)
39753 input3(0, h0+h1) | input7(w0, h0+h1) | input11(w0+w4, h0+h1) | input15(w0+w4+w8, h0+h1)
39754 input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
39755
39756
39757
39758 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|
39759 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
39760
39761 Note that if inputs are of different sizes, gaps or overlaps may
39762 occur.
39763
39764 yadif
39765 Deinterlace the input video ("yadif" means "yet another deinterlacing
39766 filter").
39767
39768 It accepts the following parameters:
39769
39770 mode
39771 The interlacing mode to adopt. It accepts one of the following
39772 values:
39773
39774 0, send_frame
39775 Output one frame for each frame.
39776
39777 1, send_field
39778 Output one frame for each field.
39779
39780 2, send_frame_nospatial
39781 Like "send_frame", but it skips the spatial interlacing check.
39782
39783 3, send_field_nospatial
39784 Like "send_field", but it skips the spatial interlacing check.
39785
39786 The default value is "send_frame".
39787
39788 parity
39789 The picture field parity assumed for the input interlaced video. It
39790 accepts one of the following values:
39791
39792 0, tff
39793 Assume the top field is first.
39794
39795 1, bff
39796 Assume the bottom field is first.
39797
39798 -1, auto
39799 Enable automatic detection of field parity.
39800
39801 The default value is "auto". If the interlacing is unknown or the
39802 decoder does not export this information, top field first will be
39803 assumed.
39804
39805 deint
39806 Specify which frames to deinterlace. Accepts one of the following
39807 values:
39808
39809 0, all
39810 Deinterlace all frames.
39811
39812 1, interlaced
39813 Only deinterlace frames marked as interlaced.
39814
39815 The default value is "all".
39816
39817 yadif_cuda
39818 Deinterlace the input video using the yadif algorithm, but implemented
39819 in CUDA so that it can work as part of a GPU accelerated pipeline with
39820 nvdec and/or nvenc.
39821
39822 It accepts the following parameters:
39823
39824 mode
39825 The interlacing mode to adopt. It accepts one of the following
39826 values:
39827
39828 0, send_frame
39829 Output one frame for each frame.
39830
39831 1, send_field
39832 Output one frame for each field.
39833
39834 2, send_frame_nospatial
39835 Like "send_frame", but it skips the spatial interlacing check.
39836
39837 3, send_field_nospatial
39838 Like "send_field", but it skips the spatial interlacing check.
39839
39840 The default value is "send_frame".
39841
39842 parity
39843 The picture field parity assumed for the input interlaced video. It
39844 accepts one of the following values:
39845
39846 0, tff
39847 Assume the top field is first.
39848
39849 1, bff
39850 Assume the bottom field is first.
39851
39852 -1, auto
39853 Enable automatic detection of field parity.
39854
39855 The default value is "auto". If the interlacing is unknown or the
39856 decoder does not export this information, top field first will be
39857 assumed.
39858
39859 deint
39860 Specify which frames to deinterlace. Accepts one of the following
39861 values:
39862
39863 0, all
39864 Deinterlace all frames.
39865
39866 1, interlaced
39867 Only deinterlace frames marked as interlaced.
39868
39869 The default value is "all".
39870
39871 yaepblur
39872 Apply blur filter while preserving edges ("yaepblur" means "yet another
39873 edge preserving blur filter"). The algorithm is described in "J. S.
39874 Lee, Digital image enhancement and noise filtering by use of local
39875 statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
39876
39877 It accepts the following parameters:
39878
39879 radius, r
39880 Set the window radius. Default value is 3.
39881
39882 planes, p
39883 Set which planes to filter. Default is only the first plane.
39884
39885 sigma, s
39886 Set blur strength. Default value is 128.
39887
39888 Commands
39889
39890 This filter supports same commands as options.
39891
39892 zoompan
39893 Apply Zoom & Pan effect.
39894
39895 This filter accepts the following options:
39896
39897 zoom, z
39898 Set the zoom expression. Range is 1-10. Default is 1.
39899
39900 x
39901 y Set the x and y expression. Default is 0.
39902
39903 d Set the duration expression in number of frames. This sets for how
39904 many number of frames effect will last for single input image.
39905 Default is 90.
39906
39907 s Set the output image size, default is 'hd720'.
39908
39909 fps Set the output frame rate, default is '25'.
39910
39911 Each expression can contain the following constants:
39912
39913 in_w, iw
39914 Input width.
39915
39916 in_h, ih
39917 Input height.
39918
39919 out_w, ow
39920 Output width.
39921
39922 out_h, oh
39923 Output height.
39924
39925 in Input frame count.
39926
39927 on Output frame count.
39928
39929 in_time, it
39930 The input timestamp expressed in seconds. It's NAN if the input
39931 timestamp is unknown.
39932
39933 out_time, time, ot
39934 The output timestamp expressed in seconds.
39935
39936 x
39937 y Last calculated 'x' and 'y' position from 'x' and 'y' expression
39938 for current input frame.
39939
39940 px
39941 py 'x' and 'y' of last output frame of previous input frame or 0 when
39942 there was not yet such frame (first input frame).
39943
39944 zoom
39945 Last calculated zoom from 'z' expression for current input frame.
39946
39947 pzoom
39948 Last calculated zoom of last output frame of previous input frame.
39949
39950 duration
39951 Number of output frames for current input frame. Calculated from
39952 'd' expression for each input frame.
39953
39954 pduration
39955 number of output frames created for previous input frame
39956
39957 a Rational number: input width / input height
39958
39959 sar sample aspect ratio
39960
39961 dar display aspect ratio
39962
39963 Examples
39964
39965 • Zoom in up to 1.5x and pan at same time to some spot near center of
39966 picture:
39967
39968 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
39969
39970 • Zoom in up to 1.5x and pan always at center of picture:
39971
39972 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
39973
39974 • Same as above but without pausing:
39975
39976 zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
39977
39978 • Zoom in 2x into center of picture only for the first second of the
39979 input video:
39980
39981 zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
39982
39983 zscale
39984 Scale (resize) the input video, using the z.lib library:
39985 <https://github.com/sekrit-twc/zimg>. To enable compilation of this
39986 filter, you need to configure FFmpeg with "--enable-libzimg".
39987
39988 The zscale filter forces the output display aspect ratio to be the same
39989 as the input, by changing the output sample aspect ratio.
39990
39991 If the input image format is different from the format requested by the
39992 next filter, the zscale filter will convert the input to the requested
39993 format.
39994
39995 Options
39996
39997 The filter accepts the following options.
39998
39999 width, w
40000 height, h
40001 Set the output video dimension expression. Default value is the
40002 input dimension.
40003
40004 If the width or w value is 0, the input width is used for the
40005 output. If the height or h value is 0, the input height is used for
40006 the output.
40007
40008 If one and only one of the values is -n with n >= 1, the zscale
40009 filter will use a value that maintains the aspect ratio of the
40010 input image, calculated from the other specified dimension. After
40011 that it will, however, make sure that the calculated dimension is
40012 divisible by n and adjust the value if necessary.
40013
40014 If both values are -n with n >= 1, the behavior will be identical
40015 to both values being set to 0 as previously detailed.
40016
40017 See below for the list of accepted constants for use in the
40018 dimension expression.
40019
40020 size, s
40021 Set the video size. For the syntax of this option, check the "Video
40022 size" section in the ffmpeg-utils manual.
40023
40024 dither, d
40025 Set the dither type.
40026
40027 Possible values are:
40028
40029 none
40030 ordered
40031 random
40032 error_diffusion
40033
40034 Default is none.
40035
40036 filter, f
40037 Set the resize filter type.
40038
40039 Possible values are:
40040
40041 point
40042 bilinear
40043 bicubic
40044 spline16
40045 spline36
40046 lanczos
40047
40048 Default is bilinear.
40049
40050 range, r
40051 Set the color range.
40052
40053 Possible values are:
40054
40055 input
40056 limited
40057 full
40058
40059 Default is same as input.
40060
40061 primaries, p
40062 Set the color primaries.
40063
40064 Possible values are:
40065
40066 input
40067 709
40068 unspecified
40069 170m
40070 240m
40071 2020
40072
40073 Default is same as input.
40074
40075 transfer, t
40076 Set the transfer characteristics.
40077
40078 Possible values are:
40079
40080 input
40081 709
40082 unspecified
40083 601
40084 linear
40085 2020_10
40086 2020_12
40087 smpte2084
40088 iec61966-2-1
40089 arib-std-b67
40090
40091 Default is same as input.
40092
40093 matrix, m
40094 Set the colorspace matrix.
40095
40096 Possible value are:
40097
40098 input
40099 709
40100 unspecified
40101 470bg
40102 170m
40103 2020_ncl
40104 2020_cl
40105
40106 Default is same as input.
40107
40108 rangein, rin
40109 Set the input color range.
40110
40111 Possible values are:
40112
40113 input
40114 limited
40115 full
40116
40117 Default is same as input.
40118
40119 primariesin, pin
40120 Set the input color primaries.
40121
40122 Possible values are:
40123
40124 input
40125 709
40126 unspecified
40127 170m
40128 240m
40129 2020
40130
40131 Default is same as input.
40132
40133 transferin, tin
40134 Set the input transfer characteristics.
40135
40136 Possible values are:
40137
40138 input
40139 709
40140 unspecified
40141 601
40142 linear
40143 2020_10
40144 2020_12
40145
40146 Default is same as input.
40147
40148 matrixin, min
40149 Set the input colorspace matrix.
40150
40151 Possible value are:
40152
40153 input
40154 709
40155 unspecified
40156 470bg
40157 170m
40158 2020_ncl
40159 2020_cl
40160 chromal, c
40161 Set the output chroma location.
40162
40163 Possible values are:
40164
40165 input
40166 left
40167 center
40168 topleft
40169 top
40170 bottomleft
40171 bottom
40172 chromalin, cin
40173 Set the input chroma location.
40174
40175 Possible values are:
40176
40177 input
40178 left
40179 center
40180 topleft
40181 top
40182 bottomleft
40183 bottom
40184 npl Set the nominal peak luminance.
40185
40186 param_a
40187 Parameter A for scaling filters. Parameter "b" for bicubic, and the
40188 number of filter taps for lanczos.
40189
40190 param_b
40191 Parameter B for scaling filters. Parameter "c" for bicubic.
40192
40193 The values of the w and h options are expressions containing the
40194 following constants:
40195
40196 in_w
40197 in_h
40198 The input width and height
40199
40200 iw
40201 ih These are the same as in_w and in_h.
40202
40203 out_w
40204 out_h
40205 The output (scaled) width and height
40206
40207 ow
40208 oh These are the same as out_w and out_h
40209
40210 a The same as iw / ih
40211
40212 sar input sample aspect ratio
40213
40214 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
40215
40216 hsub
40217 vsub
40218 horizontal and vertical input chroma subsample values. For example
40219 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
40220
40221 ohsub
40222 ovsub
40223 horizontal and vertical output chroma subsample values. For example
40224 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
40225
40226 Commands
40227
40228 This filter supports the following commands:
40229
40230 width, w
40231 height, h
40232 Set the output video dimension expression. The command accepts the
40233 same syntax of the corresponding option.
40234
40235 If the specified expression is not valid, it is kept at its current
40236 value.
40237
40239 Below is a description of the currently available OpenCL video filters.
40240
40241 To enable compilation of these filters you need to configure FFmpeg
40242 with "--enable-opencl".
40243
40244 Running OpenCL filters requires you to initialize a hardware device and
40245 to pass that device to all filters in any filter graph.
40246
40247 -init_hw_device opencl[=name][:device[,key=value...]]
40248 Initialise a new hardware device of type opencl called name, using
40249 the given device parameters.
40250
40251 -filter_hw_device name
40252 Pass the hardware device called name to all filters in any filter
40253 graph.
40254
40255 For more detailed information see
40256 <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
40257
40258 • Example of choosing the first device on the second platform and
40259 running avgblur_opencl filter with default parameters on it.
40260
40261 -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
40262
40263 Since OpenCL filters are not able to access frame data in normal
40264 memory, all frame data needs to be uploaded(hwupload) to hardware
40265 surfaces connected to the appropriate device before being used and then
40266 downloaded(hwdownload) back to normal memory. Note that hwupload will
40267 upload to a surface with the same layout as the software frame, so it
40268 may be necessary to add a format filter immediately before to get the
40269 input into the right format and hwdownload does not support all formats
40270 on the output - it may be necessary to insert an additional format
40271 filter immediately following in the graph to get the output in a
40272 supported format.
40273
40274 avgblur_opencl
40275 Apply average blur filter.
40276
40277 The filter accepts the following options:
40278
40279 sizeX
40280 Set horizontal radius size. Range is "[1, 1024]" and default value
40281 is 1.
40282
40283 planes
40284 Set which planes to filter. Default value is 0xf, by which all
40285 planes are processed.
40286
40287 sizeY
40288 Set vertical radius size. Range is "[1, 1024]" and default value is
40289 0. If zero, "sizeX" value will be used.
40290
40291 Example
40292
40293 • Apply average blur filter with horizontal and vertical size of 3,
40294 setting each pixel of the output to the average value of the 7x7
40295 region centered on it in the input. For pixels on the edges of the
40296 image, the region does not extend beyond the image boundaries, and
40297 so out-of-range coordinates are not used in the calculations.
40298
40299 -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
40300
40301 boxblur_opencl
40302 Apply a boxblur algorithm to the input video.
40303
40304 It accepts the following parameters:
40305
40306 luma_radius, lr
40307 luma_power, lp
40308 chroma_radius, cr
40309 chroma_power, cp
40310 alpha_radius, ar
40311 alpha_power, ap
40312
40313 A description of the accepted options follows.
40314
40315 luma_radius, lr
40316 chroma_radius, cr
40317 alpha_radius, ar
40318 Set an expression for the box radius in pixels used for blurring
40319 the corresponding input plane.
40320
40321 The radius value must be a non-negative number, and must not be
40322 greater than the value of the expression "min(w,h)/2" for the luma
40323 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
40324
40325 Default value for luma_radius is "2". If not specified,
40326 chroma_radius and alpha_radius default to the corresponding value
40327 set for luma_radius.
40328
40329 The expressions can contain the following constants:
40330
40331 w
40332 h The input width and height in pixels.
40333
40334 cw
40335 ch The input chroma image width and height in pixels.
40336
40337 hsub
40338 vsub
40339 The horizontal and vertical chroma subsample values. For
40340 example, for the pixel format "yuv422p", hsub is 2 and vsub is
40341 1.
40342
40343 luma_power, lp
40344 chroma_power, cp
40345 alpha_power, ap
40346 Specify how many times the boxblur filter is applied to the
40347 corresponding plane.
40348
40349 Default value for luma_power is 2. If not specified, chroma_power
40350 and alpha_power default to the corresponding value set for
40351 luma_power.
40352
40353 A value of 0 will disable the effect.
40354
40355 Examples
40356
40357 Apply boxblur filter, setting each pixel of the output to the average
40358 value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
40359 plane respectively. The filter will apply luma_power, chroma_power,
40360 alpha_power times onto the corresponding plane. For pixels on the edges
40361 of the image, the radius does not extend beyond the image boundaries,
40362 and so out-of-range coordinates are not used in the calculations.
40363
40364 • Apply a boxblur filter with the luma, chroma, and alpha radius set
40365 to 2 and luma, chroma, and alpha power set to 3. The filter will
40366 run 3 times with box-radius set to 2 for every plane of the image.
40367
40368 -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
40369 -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
40370
40371 • Apply a boxblur filter with luma radius set to 2, luma_power to 1,
40372 chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
40373 alpha_power to 7.
40374
40375 For the luma plane, a 2x2 box radius will be run once.
40376
40377 For the chroma plane, a 4x4 box radius will be run 5 times.
40378
40379 For the alpha plane, a 3x3 box radius will be run 7 times.
40380
40381 -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
40382
40383 colorkey_opencl
40384 RGB colorspace color keying.
40385
40386 The filter accepts the following options:
40387
40388 color
40389 The color which will be replaced with transparency.
40390
40391 similarity
40392 Similarity percentage with the key color.
40393
40394 0.01 matches only the exact key color, while 1.0 matches
40395 everything.
40396
40397 blend
40398 Blend percentage.
40399
40400 0.0 makes pixels either fully transparent, or not transparent at
40401 all.
40402
40403 Higher values result in semi-transparent pixels, with a higher
40404 transparency the more similar the pixels color is to the key color.
40405
40406 Examples
40407
40408 • Make every semi-green pixel in the input transparent with some
40409 slight blending:
40410
40411 -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
40412
40413 convolution_opencl
40414 Apply convolution of 3x3, 5x5, 7x7 matrix.
40415
40416 The filter accepts the following options:
40417
40418 0m
40419 1m
40420 2m
40421 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
40422 signed numbers. Default value for each plane is "0 0 0 0 1 0 0 0
40423 0".
40424
40425 0rdiv
40426 1rdiv
40427 2rdiv
40428 3rdiv
40429 Set multiplier for calculated value for each plane. If unset or 0,
40430 it will be sum of all matrix elements. The option value must be a
40431 float number greater or equal to 0.0. Default value is 1.0.
40432
40433 0bias
40434 1bias
40435 2bias
40436 3bias
40437 Set bias for each plane. This value is added to the result of the
40438 multiplication. Useful for making the overall image brighter or
40439 darker. The option value must be a float number greater or equal
40440 to 0.0. Default value is 0.0.
40441
40442 Examples
40443
40444 • Apply sharpen:
40445
40446 -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
40447
40448 • Apply blur:
40449
40450 -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
40451
40452 • Apply edge enhance:
40453
40454 -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
40455
40456 • Apply edge detect:
40457
40458 -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
40459
40460 • Apply laplacian edge detector which includes diagonals:
40461
40462 -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
40463
40464 • Apply emboss:
40465
40466 -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
40467
40468 erosion_opencl
40469 Apply erosion effect to the video.
40470
40471 This filter replaces the pixel by the local(3x3) minimum.
40472
40473 It accepts the following options:
40474
40475 threshold0
40476 threshold1
40477 threshold2
40478 threshold3
40479 Limit the maximum change for each plane. Range is "[0, 65535]" and
40480 default value is 65535. If 0, plane will remain unchanged.
40481
40482 coordinates
40483 Flag which specifies the pixel to refer to. Range is "[0, 255]"
40484 and default value is 255, i.e. all eight pixels are used.
40485
40486 Flags to local 3x3 coordinates region centered on "x":
40487
40488 1 2 3
40489
40490 4 x 5
40491
40492 6 7 8
40493
40494 Example
40495
40496 • Apply erosion filter with threshold0 set to 30, threshold1 set 40,
40497 threshold2 set to 50 and coordinates set to 231, setting each pixel
40498 of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
40499 of the 3x3 region centered on it in the input. If the difference
40500 between input pixel and local minimum is more then threshold of the
40501 corresponding plane, output pixel will be set to input pixel -
40502 threshold of corresponding plane.
40503
40504 -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
40505
40506 deshake_opencl
40507 Feature-point based video stabilization filter.
40508
40509 The filter accepts the following options:
40510
40511 tripod
40512 Simulates a tripod by preventing any camera movement whatsoever
40513 from the original frame. Defaults to 0.
40514
40515 debug
40516 Whether or not additional debug info should be displayed, both in
40517 the processed output and in the console.
40518
40519 Note that in order to see console debug output you will also need
40520 to pass "-v verbose" to ffmpeg.
40521
40522 Viewing point matches in the output video is only supported for RGB
40523 input.
40524
40525 Defaults to 0.
40526
40527 adaptive_crop
40528 Whether or not to do a tiny bit of cropping at the borders to cut
40529 down on the amount of mirrored pixels.
40530
40531 Defaults to 1.
40532
40533 refine_features
40534 Whether or not feature points should be refined at a sub-pixel
40535 level.
40536
40537 This can be turned off for a slight performance gain at the cost of
40538 precision.
40539
40540 Defaults to 1.
40541
40542 smooth_strength
40543 The strength of the smoothing applied to the camera path from 0.0
40544 to 1.0.
40545
40546 1.0 is the maximum smoothing strength while values less than that
40547 result in less smoothing.
40548
40549 0.0 causes the filter to adaptively choose a smoothing strength on
40550 a per-frame basis.
40551
40552 Defaults to 0.0.
40553
40554 smooth_window_multiplier
40555 Controls the size of the smoothing window (the number of frames
40556 buffered to determine motion information from).
40557
40558 The size of the smoothing window is determined by multiplying the
40559 framerate of the video by this number.
40560
40561 Acceptable values range from 0.1 to 10.0.
40562
40563 Larger values increase the amount of motion data available for
40564 determining how to smooth the camera path, potentially improving
40565 smoothness, but also increase latency and memory usage.
40566
40567 Defaults to 2.0.
40568
40569 Examples
40570
40571 • Stabilize a video with a fixed, medium smoothing strength:
40572
40573 -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
40574
40575 • Stabilize a video with debugging (both in console and in rendered
40576 video):
40577
40578 -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
40579
40580 dilation_opencl
40581 Apply dilation effect to the video.
40582
40583 This filter replaces the pixel by the local(3x3) maximum.
40584
40585 It accepts the following options:
40586
40587 threshold0
40588 threshold1
40589 threshold2
40590 threshold3
40591 Limit the maximum change for each plane. Range is "[0, 65535]" and
40592 default value is 65535. If 0, plane will remain unchanged.
40593
40594 coordinates
40595 Flag which specifies the pixel to refer to. Range is "[0, 255]"
40596 and default value is 255, i.e. all eight pixels are used.
40597
40598 Flags to local 3x3 coordinates region centered on "x":
40599
40600 1 2 3
40601
40602 4 x 5
40603
40604 6 7 8
40605
40606 Example
40607
40608 • Apply dilation filter with threshold0 set to 30, threshold1 set 40,
40609 threshold2 set to 50 and coordinates set to 231, setting each pixel
40610 of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
40611 of the 3x3 region centered on it in the input. If the difference
40612 between input pixel and local maximum is more then threshold of the
40613 corresponding plane, output pixel will be set to input pixel +
40614 threshold of corresponding plane.
40615
40616 -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
40617
40618 nlmeans_opencl
40619 Non-local Means denoise filter through OpenCL, this filter accepts same
40620 options as nlmeans.
40621
40622 overlay_opencl
40623 Overlay one video on top of another.
40624
40625 It takes two inputs and has one output. The first input is the "main"
40626 video on which the second input is overlaid. This filter requires same
40627 memory layout for all the inputs. So, format conversion may be needed.
40628
40629 The filter accepts the following options:
40630
40631 x Set the x coordinate of the overlaid video on the main video.
40632 Default value is 0.
40633
40634 y Set the y coordinate of the overlaid video on the main video.
40635 Default value is 0.
40636
40637 Examples
40638
40639 • Overlay an image LOGO at the top-left corner of the INPUT video.
40640 Both inputs are yuv420p format.
40641
40642 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
40643
40644 • The inputs have same memory layout for color channels , the overlay
40645 has additional alpha plane, like INPUT is yuv420p, and the LOGO is
40646 yuva420p.
40647
40648 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
40649
40650 pad_opencl
40651 Add paddings to the input image, and place the original input at the
40652 provided x, y coordinates.
40653
40654 It accepts the following options:
40655
40656 width, w
40657 height, h
40658 Specify an expression for the size of the output image with the
40659 paddings added. If the value for width or height is 0, the
40660 corresponding input size is used for the output.
40661
40662 The width expression can reference the value set by the height
40663 expression, and vice versa.
40664
40665 The default value of width and height is 0.
40666
40667 x
40668 y Specify the offsets to place the input image at within the padded
40669 area, with respect to the top/left border of the output image.
40670
40671 The x expression can reference the value set by the y expression,
40672 and vice versa.
40673
40674 The default value of x and y is 0.
40675
40676 If x or y evaluate to a negative number, they'll be changed so the
40677 input image is centered on the padded area.
40678
40679 color
40680 Specify the color of the padded area. For the syntax of this
40681 option, check the "Color" section in the ffmpeg-utils manual.
40682
40683 aspect
40684 Pad to an aspect instead to a resolution.
40685
40686 The value for the width, height, x, and y options are expressions
40687 containing the following constants:
40688
40689 in_w
40690 in_h
40691 The input video width and height.
40692
40693 iw
40694 ih These are the same as in_w and in_h.
40695
40696 out_w
40697 out_h
40698 The output width and height (the size of the padded area), as
40699 specified by the width and height expressions.
40700
40701 ow
40702 oh These are the same as out_w and out_h.
40703
40704 x
40705 y The x and y offsets as specified by the x and y expressions, or NAN
40706 if not yet specified.
40707
40708 a same as iw / ih
40709
40710 sar input sample aspect ratio
40711
40712 dar input display aspect ratio, it is the same as (iw / ih) * sar
40713
40714 prewitt_opencl
40715 Apply the Prewitt operator
40716 (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
40717 stream.
40718
40719 The filter accepts the following option:
40720
40721 planes
40722 Set which planes to filter. Default value is 0xf, by which all
40723 planes are processed.
40724
40725 scale
40726 Set value which will be multiplied with filtered result. Range is
40727 "[0.0, 65535]" and default value is 1.0.
40728
40729 delta
40730 Set value which will be added to filtered result. Range is
40731 "[-65535, 65535]" and default value is 0.0.
40732
40733 Example
40734
40735 • Apply the Prewitt operator with scale set to 2 and delta set to 10.
40736
40737 -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
40738
40739 program_opencl
40740 Filter video using an OpenCL program.
40741
40742 source
40743 OpenCL program source file.
40744
40745 kernel
40746 Kernel name in program.
40747
40748 inputs
40749 Number of inputs to the filter. Defaults to 1.
40750
40751 size, s
40752 Size of output frames. Defaults to the same as the first input.
40753
40754 The "program_opencl" filter also supports the framesync options.
40755
40756 The program source file must contain a kernel function with the given
40757 name, which will be run once for each plane of the output. Each run on
40758 a plane gets enqueued as a separate 2D global NDRange with one work-
40759 item for each pixel to be generated. The global ID offset for each
40760 work-item is therefore the coordinates of a pixel in the destination
40761 image.
40762
40763 The kernel function needs to take the following arguments:
40764
40765 • Destination image, __write_only image2d_t.
40766
40767 This image will become the output; the kernel should write all of
40768 it.
40769
40770 • Frame index, unsigned int.
40771
40772 This is a counter starting from zero and increasing by one for each
40773 frame.
40774
40775 • Source images, __read_only image2d_t.
40776
40777 These are the most recent images on each input. The kernel may
40778 read from them to generate the output, but they can't be written
40779 to.
40780
40781 Example programs:
40782
40783 • Copy the input to the output (output must be the same size as the
40784 input).
40785
40786 __kernel void copy(__write_only image2d_t destination,
40787 unsigned int index,
40788 __read_only image2d_t source)
40789 {
40790 const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
40791
40792 int2 location = (int2)(get_global_id(0), get_global_id(1));
40793
40794 float4 value = read_imagef(source, sampler, location);
40795
40796 write_imagef(destination, location, value);
40797 }
40798
40799 • Apply a simple transformation, rotating the input by an amount
40800 increasing with the index counter. Pixel values are linearly
40801 interpolated by the sampler, and the output need not have the same
40802 dimensions as the input.
40803
40804 __kernel void rotate_image(__write_only image2d_t dst,
40805 unsigned int index,
40806 __read_only image2d_t src)
40807 {
40808 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
40809 CLK_FILTER_LINEAR);
40810
40811 float angle = (float)index / 100.0f;
40812
40813 float2 dst_dim = convert_float2(get_image_dim(dst));
40814 float2 src_dim = convert_float2(get_image_dim(src));
40815
40816 float2 dst_cen = dst_dim / 2.0f;
40817 float2 src_cen = src_dim / 2.0f;
40818
40819 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
40820
40821 float2 dst_pos = convert_float2(dst_loc) - dst_cen;
40822 float2 src_pos = {
40823 cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
40824 sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
40825 };
40826 src_pos = src_pos * src_dim / dst_dim;
40827
40828 float2 src_loc = src_pos + src_cen;
40829
40830 if (src_loc.x < 0.0f || src_loc.y < 0.0f ||
40831 src_loc.x > src_dim.x || src_loc.y > src_dim.y)
40832 write_imagef(dst, dst_loc, 0.5f);
40833 else
40834 write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
40835 }
40836
40837 • Blend two inputs together, with the amount of each input used
40838 varying with the index counter.
40839
40840 __kernel void blend_images(__write_only image2d_t dst,
40841 unsigned int index,
40842 __read_only image2d_t src1,
40843 __read_only image2d_t src2)
40844 {
40845 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
40846 CLK_FILTER_LINEAR);
40847
40848 float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
40849
40850 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
40851 int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
40852 int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
40853
40854 float4 val1 = read_imagef(src1, sampler, src1_loc);
40855 float4 val2 = read_imagef(src2, sampler, src2_loc);
40856
40857 write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
40858 }
40859
40860 remap_opencl
40861 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
40862
40863 Destination pixel at position (X, Y) will be picked from source (x, y)
40864 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
40865 out of range, zero value for pixel will be used for destination pixel.
40866
40867 Xmap and Ymap input video streams must be of same dimensions. Output
40868 video stream will have Xmap/Ymap video stream dimensions. Xmap and
40869 Ymap input video streams are 32bit float pixel format, single channel.
40870
40871 interp
40872 Specify interpolation used for remapping of pixels. Allowed values
40873 are "near" and "linear". Default value is "linear".
40874
40875 fill
40876 Specify the color of the unmapped pixels. For the syntax of this
40877 option, check the "Color" section in the ffmpeg-utils manual.
40878 Default color is "black".
40879
40880 roberts_opencl
40881 Apply the Roberts cross operator
40882 (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
40883
40884 The filter accepts the following option:
40885
40886 planes
40887 Set which planes to filter. Default value is 0xf, by which all
40888 planes are processed.
40889
40890 scale
40891 Set value which will be multiplied with filtered result. Range is
40892 "[0.0, 65535]" and default value is 1.0.
40893
40894 delta
40895 Set value which will be added to filtered result. Range is
40896 "[-65535, 65535]" and default value is 0.0.
40897
40898 Example
40899
40900 • Apply the Roberts cross operator with scale set to 2 and delta set
40901 to 10
40902
40903 -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
40904
40905 sobel_opencl
40906 Apply the Sobel operator
40907 (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
40908
40909 The filter accepts the following option:
40910
40911 planes
40912 Set which planes to filter. Default value is 0xf, by which all
40913 planes are processed.
40914
40915 scale
40916 Set value which will be multiplied with filtered result. Range is
40917 "[0.0, 65535]" and default value is 1.0.
40918
40919 delta
40920 Set value which will be added to filtered result. Range is
40921 "[-65535, 65535]" and default value is 0.0.
40922
40923 Example
40924
40925 • Apply sobel operator with scale set to 2 and delta set to 10
40926
40927 -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
40928
40929 tonemap_opencl
40930 Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
40931
40932 It accepts the following parameters:
40933
40934 tonemap
40935 Specify the tone-mapping operator to be used. Same as tonemap
40936 option in tonemap.
40937
40938 param
40939 Tune the tone mapping algorithm. same as param option in tonemap.
40940
40941 desat
40942 Apply desaturation for highlights that exceed this level of
40943 brightness. The higher the parameter, the more color information
40944 will be preserved. This setting helps prevent unnaturally blown-out
40945 colors for super-highlights, by (smoothly) turning into white
40946 instead. This makes images feel more natural, at the cost of
40947 reducing information about out-of-range colors.
40948
40949 The default value is 0.5, and the algorithm here is a little
40950 different from the cpu version tonemap currently. A setting of 0.0
40951 disables this option.
40952
40953 threshold
40954 The tonemapping algorithm parameters is fine-tuned per each scene.
40955 And a threshold is used to detect whether the scene has changed or
40956 not. If the distance between the current frame average brightness
40957 and the current running average exceeds a threshold value, we would
40958 re-calculate scene average and peak brightness. The default value
40959 is 0.2.
40960
40961 format
40962 Specify the output pixel format.
40963
40964 Currently supported formats are:
40965
40966 p010
40967 nv12
40968 range, r
40969 Set the output color range.
40970
40971 Possible values are:
40972
40973 tv/mpeg
40974 pc/jpeg
40975
40976 Default is same as input.
40977
40978 primaries, p
40979 Set the output color primaries.
40980
40981 Possible values are:
40982
40983 bt709
40984 bt2020
40985
40986 Default is same as input.
40987
40988 transfer, t
40989 Set the output transfer characteristics.
40990
40991 Possible values are:
40992
40993 bt709
40994 bt2020
40995
40996 Default is bt709.
40997
40998 matrix, m
40999 Set the output colorspace matrix.
41000
41001 Possible value are:
41002
41003 bt709
41004 bt2020
41005
41006 Default is same as input.
41007
41008 Example
41009
41010 • Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
41011 format using linear operator.
41012
41013 -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
41014
41015 unsharp_opencl
41016 Sharpen or blur the input video.
41017
41018 It accepts the following parameters:
41019
41020 luma_msize_x, lx
41021 Set the luma matrix horizontal size. Range is "[1, 23]" and
41022 default value is 5.
41023
41024 luma_msize_y, ly
41025 Set the luma matrix vertical size. Range is "[1, 23]" and default
41026 value is 5.
41027
41028 luma_amount, la
41029 Set the luma effect strength. Range is "[-10, 10]" and default
41030 value is 1.0.
41031
41032 Negative values will blur the input video, while positive values
41033 will sharpen it, a value of zero will disable the effect.
41034
41035 chroma_msize_x, cx
41036 Set the chroma matrix horizontal size. Range is "[1, 23]" and
41037 default value is 5.
41038
41039 chroma_msize_y, cy
41040 Set the chroma matrix vertical size. Range is "[1, 23]" and
41041 default value is 5.
41042
41043 chroma_amount, ca
41044 Set the chroma effect strength. Range is "[-10, 10]" and default
41045 value is 0.0.
41046
41047 Negative values will blur the input video, while positive values
41048 will sharpen it, a value of zero will disable the effect.
41049
41050 All parameters are optional and default to the equivalent of the string
41051 '5:5:1.0:5:5:0.0'.
41052
41053 Examples
41054
41055 • Apply strong luma sharpen effect:
41056
41057 -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
41058
41059 • Apply a strong blur of both luma and chroma parameters:
41060
41061 -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
41062
41063 xfade_opencl
41064 Cross fade two videos with custom transition effect by using OpenCL.
41065
41066 It accepts the following options:
41067
41068 transition
41069 Set one of possible transition effects.
41070
41071 custom
41072 Select custom transition effect, the actual transition
41073 description will be picked from source and kernel options.
41074
41075 fade
41076 wipeleft
41077 wiperight
41078 wipeup
41079 wipedown
41080 slideleft
41081 slideright
41082 slideup
41083 slidedown
41084 Default transition is fade.
41085
41086 source
41087 OpenCL program source file for custom transition.
41088
41089 kernel
41090 Set name of kernel to use for custom transition from program source
41091 file.
41092
41093 duration
41094 Set duration of video transition.
41095
41096 offset
41097 Set time of start of transition relative to first video.
41098
41099 The program source file must contain a kernel function with the given
41100 name, which will be run once for each plane of the output. Each run on
41101 a plane gets enqueued as a separate 2D global NDRange with one work-
41102 item for each pixel to be generated. The global ID offset for each
41103 work-item is therefore the coordinates of a pixel in the destination
41104 image.
41105
41106 The kernel function needs to take the following arguments:
41107
41108 • Destination image, __write_only image2d_t.
41109
41110 This image will become the output; the kernel should write all of
41111 it.
41112
41113 • First Source image, __read_only image2d_t. Second Source image,
41114 __read_only image2d_t.
41115
41116 These are the most recent images on each input. The kernel may
41117 read from them to generate the output, but they can't be written
41118 to.
41119
41120 • Transition progress, float. This value is always between 0 and 1
41121 inclusive.
41122
41123 Example programs:
41124
41125 • Apply dots curtain transition effect:
41126
41127 __kernel void blend_images(__write_only image2d_t dst,
41128 __read_only image2d_t src1,
41129 __read_only image2d_t src2,
41130 float progress)
41131 {
41132 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
41133 CLK_FILTER_LINEAR);
41134 int2 p = (int2)(get_global_id(0), get_global_id(1));
41135 float2 rp = (float2)(get_global_id(0), get_global_id(1));
41136 float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
41137 rp = rp / dim;
41138
41139 float2 dots = (float2)(20.0, 20.0);
41140 float2 center = (float2)(0,0);
41141 float2 unused;
41142
41143 float4 val1 = read_imagef(src1, sampler, p);
41144 float4 val2 = read_imagef(src2, sampler, p);
41145 bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
41146
41147 write_imagef(dst, p, next ? val1 : val2);
41148 }
41149
41151 VAAPI Video filters are usually used with VAAPI decoder and VAAPI
41152 encoder. Below is a description of VAAPI video filters.
41153
41154 To enable compilation of these filters you need to configure FFmpeg
41155 with "--enable-vaapi".
41156
41157 To use vaapi filters, you need to setup the vaapi device correctly. For
41158 more information, please read
41159 <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
41160
41161 overlay_vaapi
41162 Overlay one video on the top of another.
41163
41164 It takes two inputs and has one output. The first input is the "main"
41165 video on which the second input is overlaid. This filter requires same
41166 memory layout for all the inputs. So, format conversion may be needed.
41167
41168 The filter accepts the following options:
41169
41170 x Set the x coordinate of the overlaid video on the main video.
41171 Default value is 0.
41172
41173 y Set the y coordinate of the overlaid video on the main video.
41174 Default value is 0.
41175
41176 w Set the width of the overlaid video on the main video. Default
41177 value is the width of input overlay video.
41178
41179 h Set the height of the overlaid video on the main video. Default
41180 value is the height of input overlay video.
41181
41182 alpha
41183 Set blocking detection thresholds. Allowed range is 0.0 to 1.0, it
41184 requires an input video with alpha channel. Default value is 0.0.
41185
41186 Examples
41187
41188 • Overlay an image LOGO at the top-left corner of the INPUT video.
41189 Both inputs for this filter are yuv420p format.
41190
41191 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
41192
41193 • Overlay an image LOGO at the offset (200, 100) from the top-left
41194 corner of the INPUT video. The inputs have same memory layout for
41195 color channels, the overlay has additional alpha plane, like INPUT
41196 is yuv420p, and the LOGO is yuva420p.
41197
41198 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_vaapi=x=200:y=100:w=400:h=300:alpha=1.0, hwdownload, format=nv12" OUTPUT
41199
41200 tonemap_vaapi
41201 Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
41202 conversion with tone-mapping. It maps the dynamic range of HDR10
41203 content to the SDR content. It currently only accepts HDR10 as input.
41204
41205 It accepts the following parameters:
41206
41207 format
41208 Specify the output pixel format.
41209
41210 Currently supported formats are:
41211
41212 p010
41213 nv12
41214
41215 Default is nv12.
41216
41217 primaries, p
41218 Set the output color primaries.
41219
41220 Default is same as input.
41221
41222 transfer, t
41223 Set the output transfer characteristics.
41224
41225 Default is bt709.
41226
41227 matrix, m
41228 Set the output colorspace matrix.
41229
41230 Default is same as input.
41231
41232 Example
41233
41234 • Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
41235 format
41236
41237 tonemap_vaapi=format=p010:t=bt2020-10
41238
41240 Below is a description of the currently available video sources.
41241
41242 buffer
41243 Buffer video frames, and make them available to the filter chain.
41244
41245 This source is mainly intended for a programmatic use, in particular
41246 through the interface defined in libavfilter/buffersrc.h.
41247
41248 It accepts the following parameters:
41249
41250 video_size
41251 Specify the size (width and height) of the buffered video frames.
41252 For the syntax of this option, check the "Video size" section in
41253 the ffmpeg-utils manual.
41254
41255 width
41256 The input video width.
41257
41258 height
41259 The input video height.
41260
41261 pix_fmt
41262 A string representing the pixel format of the buffered video
41263 frames. It may be a number corresponding to a pixel format, or a
41264 pixel format name.
41265
41266 time_base
41267 Specify the timebase assumed by the timestamps of the buffered
41268 frames.
41269
41270 frame_rate
41271 Specify the frame rate expected for the video stream.
41272
41273 pixel_aspect, sar
41274 The sample (pixel) aspect ratio of the input video.
41275
41276 sws_param
41277 This option is deprecated and ignored. Prepend "sws_flags=flags;"
41278 to the filtergraph description to specify swscale flags for
41279 automatically inserted scalers. See Filtergraph syntax.
41280
41281 hw_frames_ctx
41282 When using a hardware pixel format, this should be a reference to
41283 an AVHWFramesContext describing input frames.
41284
41285 For example:
41286
41287 buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
41288
41289 will instruct the source to accept video frames with size 320x240 and
41290 with format "yuv410p", assuming 1/24 as the timestamps timebase and
41291 square pixels (1:1 sample aspect ratio). Since the pixel format with
41292 name "yuv410p" corresponds to the number 6 (check the enum
41293 AVPixelFormat definition in libavutil/pixfmt.h), this example
41294 corresponds to:
41295
41296 buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
41297
41298 Alternatively, the options can be specified as a flat string, but this
41299 syntax is deprecated:
41300
41301 width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
41302
41303 cellauto
41304 Create a pattern generated by an elementary cellular automaton.
41305
41306 The initial state of the cellular automaton can be defined through the
41307 filename and pattern options. If such options are not specified an
41308 initial state is created randomly.
41309
41310 At each new frame a new row in the video is filled with the result of
41311 the cellular automaton next generation. The behavior when the whole
41312 frame is filled is defined by the scroll option.
41313
41314 This source accepts the following options:
41315
41316 filename, f
41317 Read the initial cellular automaton state, i.e. the starting row,
41318 from the specified file. In the file, each non-whitespace
41319 character is considered an alive cell, a newline will terminate the
41320 row, and further characters in the file will be ignored.
41321
41322 pattern, p
41323 Read the initial cellular automaton state, i.e. the starting row,
41324 from the specified string.
41325
41326 Each non-whitespace character in the string is considered an alive
41327 cell, a newline will terminate the row, and further characters in
41328 the string will be ignored.
41329
41330 rate, r
41331 Set the video rate, that is the number of frames generated per
41332 second. Default is 25.
41333
41334 random_fill_ratio, ratio
41335 Set the random fill ratio for the initial cellular automaton row.
41336 It is a floating point number value ranging from 0 to 1, defaults
41337 to 1/PHI.
41338
41339 This option is ignored when a file or a pattern is specified.
41340
41341 random_seed, seed
41342 Set the seed for filling randomly the initial row, must be an
41343 integer included between 0 and UINT32_MAX. If not specified, or if
41344 explicitly set to -1, the filter will try to use a good random seed
41345 on a best effort basis.
41346
41347 rule
41348 Set the cellular automaton rule, it is a number ranging from 0 to
41349 255. Default value is 110.
41350
41351 size, s
41352 Set the size of the output video. For the syntax of this option,
41353 check the "Video size" section in the ffmpeg-utils manual.
41354
41355 If filename or pattern is specified, the size is set by default to
41356 the width of the specified initial state row, and the height is set
41357 to width * PHI.
41358
41359 If size is set, it must contain the width of the specified pattern
41360 string, and the specified pattern will be centered in the larger
41361 row.
41362
41363 If a filename or a pattern string is not specified, the size value
41364 defaults to "320x518" (used for a randomly generated initial
41365 state).
41366
41367 scroll
41368 If set to 1, scroll the output upward when all the rows in the
41369 output have been already filled. If set to 0, the new generated row
41370 will be written over the top row just after the bottom row is
41371 filled. Defaults to 1.
41372
41373 start_full, full
41374 If set to 1, completely fill the output with generated rows before
41375 outputting the first frame. This is the default behavior, for
41376 disabling set the value to 0.
41377
41378 stitch
41379 If set to 1, stitch the left and right row edges together. This is
41380 the default behavior, for disabling set the value to 0.
41381
41382 Examples
41383
41384 • Read the initial state from pattern, and specify an output of size
41385 200x400.
41386
41387 cellauto=f=pattern:s=200x400
41388
41389 • Generate a random initial row with a width of 200 cells, with a
41390 fill ratio of 2/3:
41391
41392 cellauto=ratio=2/3:s=200x200
41393
41394 • Create a pattern generated by rule 18 starting by a single alive
41395 cell centered on an initial row with width 100:
41396
41397 cellauto=p=@s=100x400:full=0:rule=18
41398
41399 • Specify a more elaborated initial pattern:
41400
41401 cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
41402
41403 coreimagesrc
41404 Video source generated on GPU using Apple's CoreImage API on OSX.
41405
41406 This video source is a specialized version of the coreimage video
41407 filter. Use a core image generator at the beginning of the applied
41408 filterchain to generate the content.
41409
41410 The coreimagesrc video source accepts the following options:
41411
41412 list_generators
41413 List all available generators along with all their respective
41414 options as well as possible minimum and maximum values along with
41415 the default values.
41416
41417 list_generators=true
41418
41419 size, s
41420 Specify the size of the sourced video. For the syntax of this
41421 option, check the "Video size" section in the ffmpeg-utils manual.
41422 The default value is "320x240".
41423
41424 rate, r
41425 Specify the frame rate of the sourced video, as the number of
41426 frames generated per second. It has to be a string in the format
41427 frame_rate_num/frame_rate_den, an integer number, a floating point
41428 number or a valid video frame rate abbreviation. The default value
41429 is "25".
41430
41431 sar Set the sample aspect ratio of the sourced video.
41432
41433 duration, d
41434 Set the duration of the sourced video. See the Time duration
41435 section in the ffmpeg-utils(1) manual for the accepted syntax.
41436
41437 If not specified, or the expressed duration is negative, the video
41438 is supposed to be generated forever.
41439
41440 Additionally, all options of the coreimage video filter are accepted.
41441 A complete filterchain can be used for further processing of the
41442 generated input without CPU-HOST transfer. See coreimage documentation
41443 and examples for details.
41444
41445 Examples
41446
41447 • Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
41448 given as complete and escaped command-line for Apple's standard
41449 bash shell:
41450
41451 ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
41452
41453 This example is equivalent to the QRCode example of coreimage
41454 without the need for a nullsrc video source.
41455
41456 gradients
41457 Generate several gradients.
41458
41459 size, s
41460 Set frame size. For the syntax of this option, check the "Video
41461 size" section in the ffmpeg-utils manual. Default value is
41462 "640x480".
41463
41464 rate, r
41465 Set frame rate, expressed as number of frames per second. Default
41466 value is "25".
41467
41468 c0, c1, c2, c3, c4, c5, c6, c7
41469 Set 8 colors. Default values for colors is to pick random one.
41470
41471 x0, y0, y0, y1
41472 Set gradient line source and destination points. If negative or out
41473 of range, random ones are picked.
41474
41475 nb_colors, n
41476 Set number of colors to use at once. Allowed range is from 2 to 8.
41477 Default value is 2.
41478
41479 seed
41480 Set seed for picking gradient line points.
41481
41482 duration, d
41483 Set the duration of the sourced video. See the Time duration
41484 section in the ffmpeg-utils(1) manual for the accepted syntax.
41485
41486 If not specified, or the expressed duration is negative, the video
41487 is supposed to be generated forever.
41488
41489 speed
41490 Set speed of gradients rotation.
41491
41492 type, t
41493 Set type of gradients, can be "linear" or "radial" or "circular" or
41494 "spiral".
41495
41496 mandelbrot
41497 Generate a Mandelbrot set fractal, and progressively zoom towards the
41498 point specified with start_x and start_y.
41499
41500 This source accepts the following options:
41501
41502 end_pts
41503 Set the terminal pts value. Default value is 400.
41504
41505 end_scale
41506 Set the terminal scale value. Must be a floating point value.
41507 Default value is 0.3.
41508
41509 inner
41510 Set the inner coloring mode, that is the algorithm used to draw the
41511 Mandelbrot fractal internal region.
41512
41513 It shall assume one of the following values:
41514
41515 black
41516 Set black mode.
41517
41518 convergence
41519 Show time until convergence.
41520
41521 mincol
41522 Set color based on point closest to the origin of the
41523 iterations.
41524
41525 period
41526 Set period mode.
41527
41528 Default value is mincol.
41529
41530 bailout
41531 Set the bailout value. Default value is 10.0.
41532
41533 maxiter
41534 Set the maximum of iterations performed by the rendering algorithm.
41535 Default value is 7189.
41536
41537 outer
41538 Set outer coloring mode. It shall assume one of following values:
41539
41540 iteration_count
41541 Set iteration count mode.
41542
41543 normalized_iteration_count
41544 set normalized iteration count mode.
41545
41546 Default value is normalized_iteration_count.
41547
41548 rate, r
41549 Set frame rate, expressed as number of frames per second. Default
41550 value is "25".
41551
41552 size, s
41553 Set frame size. For the syntax of this option, check the "Video
41554 size" section in the ffmpeg-utils manual. Default value is
41555 "640x480".
41556
41557 start_scale
41558 Set the initial scale value. Default value is 3.0.
41559
41560 start_x
41561 Set the initial x position. Must be a floating point value between
41562 -100 and 100. Default value is
41563 -0.743643887037158704752191506114774.
41564
41565 start_y
41566 Set the initial y position. Must be a floating point value between
41567 -100 and 100. Default value is
41568 -0.131825904205311970493132056385139.
41569
41570 mptestsrc
41571 Generate various test patterns, as generated by the MPlayer test
41572 filter.
41573
41574 The size of the generated video is fixed, and is 256x256. This source
41575 is useful in particular for testing encoding features.
41576
41577 This source accepts the following options:
41578
41579 rate, r
41580 Specify the frame rate of the sourced video, as the number of
41581 frames generated per second. It has to be a string in the format
41582 frame_rate_num/frame_rate_den, an integer number, a floating point
41583 number or a valid video frame rate abbreviation. The default value
41584 is "25".
41585
41586 duration, d
41587 Set the duration of the sourced video. See the Time duration
41588 section in the ffmpeg-utils(1) manual for the accepted syntax.
41589
41590 If not specified, or the expressed duration is negative, the video
41591 is supposed to be generated forever.
41592
41593 test, t
41594 Set the number or the name of the test to perform. Supported tests
41595 are:
41596
41597 dc_luma
41598 dc_chroma
41599 freq_luma
41600 freq_chroma
41601 amp_luma
41602 amp_chroma
41603 cbp
41604 mv
41605 ring1
41606 ring2
41607 all
41608 max_frames, m
41609 Set the maximum number of frames generated for each test,
41610 default value is 30.
41611
41612 Default value is "all", which will cycle through the list of all
41613 tests.
41614
41615 Some examples:
41616
41617 mptestsrc=t=dc_luma
41618
41619 will generate a "dc_luma" test pattern.
41620
41621 frei0r_src
41622 Provide a frei0r source.
41623
41624 To enable compilation of this filter you need to install the frei0r
41625 header and configure FFmpeg with "--enable-frei0r".
41626
41627 This source accepts the following parameters:
41628
41629 size
41630 The size of the video to generate. For the syntax of this option,
41631 check the "Video size" section in the ffmpeg-utils manual.
41632
41633 framerate
41634 The framerate of the generated video. It may be a string of the
41635 form num/den or a frame rate abbreviation.
41636
41637 filter_name
41638 The name to the frei0r source to load. For more information
41639 regarding frei0r and how to set the parameters, read the frei0r
41640 section in the video filters documentation.
41641
41642 filter_params
41643 A '|'-separated list of parameters to pass to the frei0r source.
41644
41645 For example, to generate a frei0r partik0l source with size 200x200 and
41646 frame rate 10 which is overlaid on the overlay filter main input:
41647
41648 frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
41649
41650 life
41651 Generate a life pattern.
41652
41653 This source is based on a generalization of John Conway's life game.
41654
41655 The sourced input represents a life grid, each pixel represents a cell
41656 which can be in one of two possible states, alive or dead. Every cell
41657 interacts with its eight neighbours, which are the cells that are
41658 horizontally, vertically, or diagonally adjacent.
41659
41660 At each interaction the grid evolves according to the adopted rule,
41661 which specifies the number of neighbor alive cells which will make a
41662 cell stay alive or born. The rule option allows one to specify the rule
41663 to adopt.
41664
41665 This source accepts the following options:
41666
41667 filename, f
41668 Set the file from which to read the initial grid state. In the
41669 file, each non-whitespace character is considered an alive cell,
41670 and newline is used to delimit the end of each row.
41671
41672 If this option is not specified, the initial grid is generated
41673 randomly.
41674
41675 rate, r
41676 Set the video rate, that is the number of frames generated per
41677 second. Default is 25.
41678
41679 random_fill_ratio, ratio
41680 Set the random fill ratio for the initial random grid. It is a
41681 floating point number value ranging from 0 to 1, defaults to 1/PHI.
41682 It is ignored when a file is specified.
41683
41684 random_seed, seed
41685 Set the seed for filling the initial random grid, must be an
41686 integer included between 0 and UINT32_MAX. If not specified, or if
41687 explicitly set to -1, the filter will try to use a good random seed
41688 on a best effort basis.
41689
41690 rule
41691 Set the life rule.
41692
41693 A rule can be specified with a code of the kind "SNS/BNB", where NS
41694 and NB are sequences of numbers in the range 0-8, NS specifies the
41695 number of alive neighbor cells which make a live cell stay alive,
41696 and NB the number of alive neighbor cells which make a dead cell to
41697 become alive (i.e. to "born"). "s" and "b" can be used in place of
41698 "S" and "B", respectively.
41699
41700 Alternatively a rule can be specified by an 18-bits integer. The 9
41701 high order bits are used to encode the next cell state if it is
41702 alive for each number of neighbor alive cells, the low order bits
41703 specify the rule for "borning" new cells. Higher order bits encode
41704 for an higher number of neighbor cells. For example the number
41705 6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
41706 rule of 9, which corresponds to "S23/B03".
41707
41708 Default value is "S23/B3", which is the original Conway's game of
41709 life rule, and will keep a cell alive if it has 2 or 3 neighbor
41710 alive cells, and will born a new cell if there are three alive
41711 cells around a dead cell.
41712
41713 size, s
41714 Set the size of the output video. For the syntax of this option,
41715 check the "Video size" section in the ffmpeg-utils manual.
41716
41717 If filename is specified, the size is set by default to the same
41718 size of the input file. If size is set, it must contain the size
41719 specified in the input file, and the initial grid defined in that
41720 file is centered in the larger resulting area.
41721
41722 If a filename is not specified, the size value defaults to
41723 "320x240" (used for a randomly generated initial grid).
41724
41725 stitch
41726 If set to 1, stitch the left and right grid edges together, and the
41727 top and bottom edges also. Defaults to 1.
41728
41729 mold
41730 Set cell mold speed. If set, a dead cell will go from death_color
41731 to mold_color with a step of mold. mold can have a value from 0 to
41732 255.
41733
41734 life_color
41735 Set the color of living (or new born) cells.
41736
41737 death_color
41738 Set the color of dead cells. If mold is set, this is the first
41739 color used to represent a dead cell.
41740
41741 mold_color
41742 Set mold color, for definitely dead and moldy cells.
41743
41744 For the syntax of these 3 color options, check the "Color" section
41745 in the ffmpeg-utils manual.
41746
41747 Examples
41748
41749 • Read a grid from pattern, and center it on a grid of size 300x300
41750 pixels:
41751
41752 life=f=pattern:s=300x300
41753
41754 • Generate a random grid of size 200x200, with a fill ratio of 2/3:
41755
41756 life=ratio=2/3:s=200x200
41757
41758 • Specify a custom rule for evolving a randomly generated grid:
41759
41760 life=rule=S14/B34
41761
41762 • Full example with slow death effect (mold) using ffplay:
41763
41764 ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
41765
41766 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc,
41767 pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc,
41768 testsrc2, yuvtestsrc
41769 The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
41770
41771 The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
41772
41773 The "color" source provides an uniformly colored input.
41774
41775 The "colorchart" source provides a colors checker chart.
41776
41777 The "colorspectrum" source provides a color spectrum input.
41778
41779 The "haldclutsrc" source provides an identity Hald CLUT. See also
41780 haldclut filter.
41781
41782 The "nullsrc" source returns unprocessed video frames. It is mainly
41783 useful to be employed in analysis / debugging tools, or as the source
41784 for filters which ignore the input data.
41785
41786 The "pal75bars" source generates a color bars pattern, based on EBU PAL
41787 recommendations with 75% color levels.
41788
41789 The "pal100bars" source generates a color bars pattern, based on EBU
41790 PAL recommendations with 100% color levels.
41791
41792 The "rgbtestsrc" source generates an RGB test pattern useful for
41793 detecting RGB vs BGR issues. You should see a red, green and blue
41794 stripe from top to bottom.
41795
41796 The "smptebars" source generates a color bars pattern, based on the
41797 SMPTE Engineering Guideline EG 1-1990.
41798
41799 The "smptehdbars" source generates a color bars pattern, based on the
41800 SMPTE RP 219-2002.
41801
41802 The "testsrc" source generates a test video pattern, showing a color
41803 pattern, a scrolling gradient and a timestamp. This is mainly intended
41804 for testing purposes.
41805
41806 The "testsrc2" source is similar to testsrc, but supports more pixel
41807 formats instead of just "rgb24". This allows using it as an input for
41808 other tests without requiring a format conversion.
41809
41810 The "yuvtestsrc" source generates an YUV test pattern. You should see a
41811 y, cb and cr stripe from top to bottom.
41812
41813 The sources accept the following parameters:
41814
41815 level
41816 Specify the level of the Hald CLUT, only available in the
41817 "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
41818 by "N*N*N" pixels to be used as identity matrix for 3D lookup
41819 tables. Each component is coded on a "1/(N*N)" scale.
41820
41821 color, c
41822 Specify the color of the source, only available in the "color"
41823 source. For the syntax of this option, check the "Color" section in
41824 the ffmpeg-utils manual.
41825
41826 size, s
41827 Specify the size of the sourced video. For the syntax of this
41828 option, check the "Video size" section in the ffmpeg-utils manual.
41829 The default value is "320x240".
41830
41831 This option is not available with the "allrgb", "allyuv", and
41832 "haldclutsrc" filters.
41833
41834 rate, r
41835 Specify the frame rate of the sourced video, as the number of
41836 frames generated per second. It has to be a string in the format
41837 frame_rate_num/frame_rate_den, an integer number, a floating point
41838 number or a valid video frame rate abbreviation. The default value
41839 is "25".
41840
41841 duration, d
41842 Set the duration of the sourced video. See the Time duration
41843 section in the ffmpeg-utils(1) manual for the accepted syntax.
41844
41845 If not specified, or the expressed duration is negative, the video
41846 is supposed to be generated forever.
41847
41848 Since the frame rate is used as time base, all frames including the
41849 last one will have their full duration. If the specified duration
41850 is not a multiple of the frame duration, it will be rounded up.
41851
41852 sar Set the sample aspect ratio of the sourced video.
41853
41854 alpha
41855 Specify the alpha (opacity) of the background, only available in
41856 the "testsrc2" source. The value must be between 0 (fully
41857 transparent) and 255 (fully opaque, the default).
41858
41859 decimals, n
41860 Set the number of decimals to show in the timestamp, only available
41861 in the "testsrc" source.
41862
41863 The displayed timestamp value will correspond to the original
41864 timestamp value multiplied by the power of 10 of the specified
41865 value. Default value is 0.
41866
41867 type
41868 Set the type of the color spectrum, only available in the
41869 "colorspectrum" source. Can be one of the following:
41870
41871 black
41872 white
41873 all
41874 patch_size
41875 Set patch size of single color patch, only available in the
41876 "colorchart" source. Default is "64x64".
41877
41878 preset
41879 Set colorchecker colors preset, only available in the "colorchart"
41880 source.
41881
41882 Available values are:
41883
41884 reference
41885 skintones
41886
41887 Default value is "reference".
41888
41889 Examples
41890
41891 • Generate a video with a duration of 5.3 seconds, with size 176x144
41892 and a frame rate of 10 frames per second:
41893
41894 testsrc=duration=5.3:size=qcif:rate=10
41895
41896 • The following graph description will generate a red source with an
41897 opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
41898 second:
41899
41900 color=c=red@0.2:s=qcif:r=10
41901
41902 • If the input content is to be ignored, "nullsrc" can be used. The
41903 following command generates noise in the luminance plane by
41904 employing the "geq" filter:
41905
41906 nullsrc=s=256x256, geq=random(1)*255:128:128
41907
41908 Commands
41909
41910 The "color" source supports the following commands:
41911
41912 c, color
41913 Set the color of the created image. Accepts the same syntax of the
41914 corresponding color option.
41915
41916 openclsrc
41917 Generate video using an OpenCL program.
41918
41919 source
41920 OpenCL program source file.
41921
41922 kernel
41923 Kernel name in program.
41924
41925 size, s
41926 Size of frames to generate. This must be set.
41927
41928 format
41929 Pixel format to use for the generated frames. This must be set.
41930
41931 rate, r
41932 Number of frames generated every second. Default value is '25'.
41933
41934 For details of how the program loading works, see the program_opencl
41935 filter.
41936
41937 Example programs:
41938
41939 • Generate a colour ramp by setting pixel values from the position of
41940 the pixel in the output image. (Note that this will work with all
41941 pixel formats, but the generated output will not be the same.)
41942
41943 __kernel void ramp(__write_only image2d_t dst,
41944 unsigned int index)
41945 {
41946 int2 loc = (int2)(get_global_id(0), get_global_id(1));
41947
41948 float4 val;
41949 val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
41950
41951 write_imagef(dst, loc, val);
41952 }
41953
41954 • Generate a Sierpinski carpet pattern, panning by a single pixel
41955 each frame.
41956
41957 __kernel void sierpinski_carpet(__write_only image2d_t dst,
41958 unsigned int index)
41959 {
41960 int2 loc = (int2)(get_global_id(0), get_global_id(1));
41961
41962 float4 value = 0.0f;
41963 int x = loc.x + index;
41964 int y = loc.y + index;
41965 while (x > 0 || y > 0) {
41966 if (x % 3 == 1 && y % 3 == 1) {
41967 value = 1.0f;
41968 break;
41969 }
41970 x /= 3;
41971 y /= 3;
41972 }
41973
41974 write_imagef(dst, loc, value);
41975 }
41976
41977 sierpinski
41978 Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
41979
41980 This source accepts the following options:
41981
41982 size, s
41983 Set frame size. For the syntax of this option, check the "Video
41984 size" section in the ffmpeg-utils manual. Default value is
41985 "640x480".
41986
41987 rate, r
41988 Set frame rate, expressed as number of frames per second. Default
41989 value is "25".
41990
41991 seed
41992 Set seed which is used for random panning.
41993
41994 jump
41995 Set max jump for single pan destination. Allowed range is from 1 to
41996 10000.
41997
41998 type
41999 Set fractal type, can be default "carpet" or "triangle".
42000
42002 Below is a description of the currently available video sinks.
42003
42004 buffersink
42005 Buffer video frames, and make them available to the end of the filter
42006 graph.
42007
42008 This sink is mainly intended for programmatic use, in particular
42009 through the interface defined in libavfilter/buffersink.h or the
42010 options system.
42011
42012 It accepts a pointer to an AVBufferSinkContext structure, which defines
42013 the incoming buffers' formats, to be passed as the opaque parameter to
42014 "avfilter_init_filter" for initialization.
42015
42016 nullsink
42017 Null video sink: do absolutely nothing with the input video. It is
42018 mainly useful as a template and for use in analysis / debugging tools.
42019
42021 Below is a description of the currently available multimedia filters.
42022
42023 abitscope
42024 Convert input audio to a video output, displaying the audio bit scope.
42025
42026 The filter accepts the following options:
42027
42028 rate, r
42029 Set frame rate, expressed as number of frames per second. Default
42030 value is "25".
42031
42032 size, s
42033 Specify the video size for the output. For the syntax of this
42034 option, check the "Video size" section in the ffmpeg-utils manual.
42035 Default value is "1024x256".
42036
42037 colors
42038 Specify list of colors separated by space or by '|' which will be
42039 used to draw channels. Unrecognized or missing colors will be
42040 replaced by white color.
42041
42042 mode, m
42043 Set output mode. Can be "bars" or "trace". Default is "bars".
42044
42045 adrawgraph
42046 Draw a graph using input audio metadata.
42047
42048 See drawgraph
42049
42050 agraphmonitor
42051 See graphmonitor.
42052
42053 ahistogram
42054 Convert input audio to a video output, displaying the volume histogram.
42055
42056 The filter accepts the following options:
42057
42058 dmode
42059 Specify how histogram is calculated.
42060
42061 It accepts the following values:
42062
42063 single
42064 Use single histogram for all channels.
42065
42066 separate
42067 Use separate histogram for each channel.
42068
42069 Default is "single".
42070
42071 rate, r
42072 Set frame rate, expressed as number of frames per second. Default
42073 value is "25".
42074
42075 size, s
42076 Specify the video size for the output. For the syntax of this
42077 option, check the "Video size" section in the ffmpeg-utils manual.
42078 Default value is "hd720".
42079
42080 scale
42081 Set display scale.
42082
42083 It accepts the following values:
42084
42085 log logarithmic
42086
42087 sqrt
42088 square root
42089
42090 cbrt
42091 cubic root
42092
42093 lin linear
42094
42095 rlog
42096 reverse logarithmic
42097
42098 Default is "log".
42099
42100 ascale
42101 Set amplitude scale.
42102
42103 It accepts the following values:
42104
42105 log logarithmic
42106
42107 lin linear
42108
42109 Default is "log".
42110
42111 acount
42112 Set how much frames to accumulate in histogram. Default is 1.
42113 Setting this to -1 accumulates all frames.
42114
42115 rheight
42116 Set histogram ratio of window height.
42117
42118 slide
42119 Set sonogram sliding.
42120
42121 It accepts the following values:
42122
42123 replace
42124 replace old rows with new ones.
42125
42126 scroll
42127 scroll from top to bottom.
42128
42129 Default is "replace".
42130
42131 hmode
42132 Set histogram mode.
42133
42134 It accepts the following values:
42135
42136 abs Use absolute values of samples.
42137
42138 sign
42139 Use untouched values of samples.
42140
42141 Default is "abs".
42142
42143 aphasemeter
42144 Measures phase of input audio, which is exported as metadata
42145 "lavfi.aphasemeter.phase", representing mean phase of current audio
42146 frame. A video output can also be produced and is enabled by default.
42147 The audio is passed through as first output.
42148
42149 Audio will be rematrixed to stereo if it has a different channel
42150 layout. Phase value is in range "[-1, 1]" where "-1" means left and
42151 right channels are completely out of phase and 1 means channels are in
42152 phase.
42153
42154 The filter accepts the following options, all related to its video
42155 output:
42156
42157 rate, r
42158 Set the output frame rate. Default value is 25.
42159
42160 size, s
42161 Set the video size for the output. For the syntax of this option,
42162 check the "Video size" section in the ffmpeg-utils manual. Default
42163 value is "800x400".
42164
42165 rc
42166 gc
42167 bc Specify the red, green, blue contrast. Default values are 2, 7 and
42168 1. Allowed range is "[0, 255]".
42169
42170 mpc Set color which will be used for drawing median phase. If color is
42171 "none" which is default, no median phase value will be drawn.
42172
42173 video
42174 Enable video output. Default is enabled.
42175
42176 phasing detection
42177
42178 The filter also detects out of phase and mono sequences in stereo
42179 streams. It logs the sequence start, end and duration when it lasts
42180 longer or as long as the minimum set.
42181
42182 The filter accepts the following options for this detection:
42183
42184 phasing
42185 Enable mono and out of phase detection. Default is disabled.
42186
42187 tolerance, t
42188 Set phase tolerance for mono detection, in amplitude ratio. Default
42189 is 0. Allowed range is "[0, 1]".
42190
42191 angle, a
42192 Set angle threshold for out of phase detection, in degree. Default
42193 is 170. Allowed range is "[90, 180]".
42194
42195 duration, d
42196 Set mono or out of phase duration until notification, expressed in
42197 seconds. Default is 2.
42198
42199 Examples
42200
42201 • Complete example with ffmpeg to detect 1 second of mono with 0.001
42202 phase tolerance:
42203
42204 ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
42205
42206 avectorscope
42207 Convert input audio to a video output, representing the audio vector
42208 scope.
42209
42210 The filter is used to measure the difference between channels of stereo
42211 audio stream. A monaural signal, consisting of identical left and right
42212 signal, results in straight vertical line. Any stereo separation is
42213 visible as a deviation from this line, creating a Lissajous figure. If
42214 the straight (or deviation from it) but horizontal line appears this
42215 indicates that the left and right channels are out of phase.
42216
42217 The filter accepts the following options:
42218
42219 mode, m
42220 Set the vectorscope mode.
42221
42222 Available values are:
42223
42224 lissajous
42225 Lissajous rotated by 45 degrees.
42226
42227 lissajous_xy
42228 Same as above but not rotated.
42229
42230 polar
42231 Shape resembling half of circle.
42232
42233 Default value is lissajous.
42234
42235 size, s
42236 Set the video size for the output. For the syntax of this option,
42237 check the "Video size" section in the ffmpeg-utils manual. Default
42238 value is "400x400".
42239
42240 rate, r
42241 Set the output frame rate. Default value is 25.
42242
42243 rc
42244 gc
42245 bc
42246 ac Specify the red, green, blue and alpha contrast. Default values are
42247 40, 160, 80 and 255. Allowed range is "[0, 255]".
42248
42249 rf
42250 gf
42251 bf
42252 af Specify the red, green, blue and alpha fade. Default values are 15,
42253 10, 5 and 5. Allowed range is "[0, 255]".
42254
42255 zoom
42256 Set the zoom factor. Default value is 1. Allowed range is "[0,
42257 10]". Values lower than 1 will auto adjust zoom factor to maximal
42258 possible value.
42259
42260 draw
42261 Set the vectorscope drawing mode.
42262
42263 Available values are:
42264
42265 dot Draw dot for each sample.
42266
42267 line
42268 Draw line between previous and current sample.
42269
42270 Default value is dot.
42271
42272 scale
42273 Specify amplitude scale of audio samples.
42274
42275 Available values are:
42276
42277 lin Linear.
42278
42279 sqrt
42280 Square root.
42281
42282 cbrt
42283 Cubic root.
42284
42285 log Logarithmic.
42286
42287 swap
42288 Swap left channel axis with right channel axis.
42289
42290 mirror
42291 Mirror axis.
42292
42293 none
42294 No mirror.
42295
42296 x Mirror only x axis.
42297
42298 y Mirror only y axis.
42299
42300 xy Mirror both axis.
42301
42302 Examples
42303
42304 • Complete example using ffplay:
42305
42306 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
42307 [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
42308
42309 Commands
42310
42311 This filter supports the all above options as commands except options
42312 "size" and "rate".
42313
42314 bench, abench
42315 Benchmark part of a filtergraph.
42316
42317 The filter accepts the following options:
42318
42319 action
42320 Start or stop a timer.
42321
42322 Available values are:
42323
42324 start
42325 Get the current time, set it as frame metadata (using the key
42326 "lavfi.bench.start_time"), and forward the frame to the next
42327 filter.
42328
42329 stop
42330 Get the current time and fetch the "lavfi.bench.start_time"
42331 metadata from the input frame metadata to get the time
42332 difference. Time difference, average, maximum and minimum time
42333 (respectively "t", "avg", "max" and "min") are then printed.
42334 The timestamps are expressed in seconds.
42335
42336 Examples
42337
42338 • Benchmark selectivecolor filter:
42339
42340 bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
42341
42342 concat
42343 Concatenate audio and video streams, joining them together one after
42344 the other.
42345
42346 The filter works on segments of synchronized video and audio streams.
42347 All segments must have the same number of streams of each type, and
42348 that will also be the number of streams at output.
42349
42350 The filter accepts the following options:
42351
42352 n Set the number of segments. Default is 2.
42353
42354 v Set the number of output video streams, that is also the number of
42355 video streams in each segment. Default is 1.
42356
42357 a Set the number of output audio streams, that is also the number of
42358 audio streams in each segment. Default is 0.
42359
42360 unsafe
42361 Activate unsafe mode: do not fail if segments have a different
42362 format.
42363
42364 The filter has v+a outputs: first v video outputs, then a audio
42365 outputs.
42366
42367 There are nx(v+a) inputs: first the inputs for the first segment, in
42368 the same order as the outputs, then the inputs for the second segment,
42369 etc.
42370
42371 Related streams do not always have exactly the same duration, for
42372 various reasons including codec frame size or sloppy authoring. For
42373 that reason, related synchronized streams (e.g. a video and its audio
42374 track) should be concatenated at once. The concat filter will use the
42375 duration of the longest stream in each segment (except the last one),
42376 and if necessary pad shorter audio streams with silence.
42377
42378 For this filter to work correctly, all segments must start at timestamp
42379 0.
42380
42381 All corresponding streams must have the same parameters in all
42382 segments; the filtering system will automatically select a common pixel
42383 format for video streams, and a common sample format, sample rate and
42384 channel layout for audio streams, but other settings, such as
42385 resolution, must be converted explicitly by the user.
42386
42387 Different frame rates are acceptable but will result in variable frame
42388 rate at output; be sure to configure the output file to handle it.
42389
42390 Examples
42391
42392 • Concatenate an opening, an episode and an ending, all in bilingual
42393 version (video in stream 0, audio in streams 1 and 2):
42394
42395 ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
42396 '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
42397 concat=n=3:v=1:a=2 [v] [a1] [a2]' \
42398 -map '[v]' -map '[a1]' -map '[a2]' output.mkv
42399
42400 • Concatenate two parts, handling audio and video separately, using
42401 the (a)movie sources, and adjusting the resolution:
42402
42403 movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
42404 movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
42405 [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
42406
42407 Note that a desync will happen at the stitch if the audio and video
42408 streams do not have exactly the same duration in the first file.
42409
42410 Commands
42411
42412 This filter supports the following commands:
42413
42414 next
42415 Close the current segment and step to the next one
42416
42417 ebur128
42418 EBU R128 scanner filter. This filter takes an audio stream and analyzes
42419 its loudness level. By default, it logs a message at a frequency of
42420 10Hz with the Momentary loudness (identified by "M"), Short-term
42421 loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
42422
42423 The filter can only analyze streams which have sample format is double-
42424 precision floating point. The input stream will be converted to this
42425 specification, if needed. Users may need to insert aformat and/or
42426 aresample filters after this filter to obtain the original parameters.
42427
42428 The filter also has a video output (see the video option) with a real
42429 time graph to observe the loudness evolution. The graphic contains the
42430 logged message mentioned above, so it is not printed anymore when this
42431 option is set, unless the verbose logging is set. The main graphing
42432 area contains the short-term loudness (3 seconds of analysis), and the
42433 gauge on the right is for the momentary loudness (400 milliseconds),
42434 but can optionally be configured to instead display short-term loudness
42435 (see gauge).
42436
42437 The green area marks a +/- 1LU target range around the target loudness
42438 (-23LUFS by default, unless modified through target).
42439
42440 More information about the Loudness Recommendation EBU R128 on
42441 <http://tech.ebu.ch/loudness>.
42442
42443 The filter accepts the following options:
42444
42445 video
42446 Activate the video output. The audio stream is passed unchanged
42447 whether this option is set or no. The video stream will be the
42448 first output stream if activated. Default is 0.
42449
42450 size
42451 Set the video size. This option is for video only. For the syntax
42452 of this option, check the "Video size" section in the ffmpeg-utils
42453 manual. Default and minimum resolution is "640x480".
42454
42455 meter
42456 Set the EBU scale meter. Default is 9. Common values are 9 and 18,
42457 respectively for EBU scale meter +9 and EBU scale meter +18. Any
42458 other integer value between this range is allowed.
42459
42460 metadata
42461 Set metadata injection. If set to 1, the audio input will be
42462 segmented into 100ms output frames, each of them containing various
42463 loudness information in metadata. All the metadata keys are
42464 prefixed with "lavfi.r128.".
42465
42466 Default is 0.
42467
42468 framelog
42469 Force the frame logging level.
42470
42471 Available values are:
42472
42473 info
42474 information logging level
42475
42476 verbose
42477 verbose logging level
42478
42479 By default, the logging level is set to info. If the video or the
42480 metadata options are set, it switches to verbose.
42481
42482 peak
42483 Set peak mode(s).
42484
42485 Available modes can be cumulated (the option is a "flag" type).
42486 Possible values are:
42487
42488 none
42489 Disable any peak mode (default).
42490
42491 sample
42492 Enable sample-peak mode.
42493
42494 Simple peak mode looking for the higher sample value. It logs a
42495 message for sample-peak (identified by "SPK").
42496
42497 true
42498 Enable true-peak mode.
42499
42500 If enabled, the peak lookup is done on an over-sampled version
42501 of the input stream for better peak accuracy. It logs a message
42502 for true-peak. (identified by "TPK") and true-peak per frame
42503 (identified by "FTPK"). This mode requires a build with
42504 "libswresample".
42505
42506 dualmono
42507 Treat mono input files as "dual mono". If a mono file is intended
42508 for playback on a stereo system, its EBU R128 measurement will be
42509 perceptually incorrect. If set to "true", this option will
42510 compensate for this effect. Multi-channel input files are not
42511 affected by this option.
42512
42513 panlaw
42514 Set a specific pan law to be used for the measurement of dual mono
42515 files. This parameter is optional, and has a default value of
42516 -3.01dB.
42517
42518 target
42519 Set a specific target level (in LUFS) used as relative zero in the
42520 visualization. This parameter is optional and has a default value
42521 of -23LUFS as specified by EBU R128. However, material published
42522 online may prefer a level of -16LUFS (e.g. for use with podcasts or
42523 video platforms).
42524
42525 gauge
42526 Set the value displayed by the gauge. Valid values are "momentary"
42527 and s "shortterm". By default the momentary value will be used, but
42528 in certain scenarios it may be more useful to observe the short
42529 term value instead (e.g. live mixing).
42530
42531 scale
42532 Sets the display scale for the loudness. Valid parameters are
42533 "absolute" (in LUFS) or "relative" (LU) relative to the target.
42534 This only affects the video output, not the summary or continuous
42535 log output.
42536
42537 Examples
42538
42539 • Real-time graph using ffplay, with a EBU scale meter +18:
42540
42541 ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
42542
42543 • Run an analysis with ffmpeg:
42544
42545 ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
42546
42547 interleave, ainterleave
42548 Temporally interleave frames from several inputs.
42549
42550 "interleave" works with video inputs, "ainterleave" with audio.
42551
42552 These filters read frames from several inputs and send the oldest
42553 queued frame to the output.
42554
42555 Input streams must have well defined, monotonically increasing frame
42556 timestamp values.
42557
42558 In order to submit one frame to output, these filters need to enqueue
42559 at least one frame for each input, so they cannot work in case one
42560 input is not yet terminated and will not receive incoming frames.
42561
42562 For example consider the case when one input is a "select" filter which
42563 always drops input frames. The "interleave" filter will keep reading
42564 from that input, but it will never be able to send new frames to output
42565 until the input sends an end-of-stream signal.
42566
42567 Also, depending on inputs synchronization, the filters will drop frames
42568 in case one input receives more frames than the other ones, and the
42569 queue is already filled.
42570
42571 These filters accept the following options:
42572
42573 nb_inputs, n
42574 Set the number of different inputs, it is 2 by default.
42575
42576 duration
42577 How to determine the end-of-stream.
42578
42579 longest
42580 The duration of the longest input. (default)
42581
42582 shortest
42583 The duration of the shortest input.
42584
42585 first
42586 The duration of the first input.
42587
42588 Examples
42589
42590 • Interleave frames belonging to different streams using ffmpeg:
42591
42592 ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
42593
42594 • Add flickering blur effect:
42595
42596 select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
42597
42598 latency, alatency
42599 Measure filtering latency.
42600
42601 Report previous filter filtering latency, delay in number of audio
42602 samples for audio filters or number of video frames for video filters.
42603
42604 On end of input stream, filter will report min and max measured latency
42605 for previous running filter in filtergraph.
42606
42607 metadata, ametadata
42608 Manipulate frame metadata.
42609
42610 This filter accepts the following options:
42611
42612 mode
42613 Set mode of operation of the filter.
42614
42615 Can be one of the following:
42616
42617 select
42618 If both "value" and "key" is set, select frames which have such
42619 metadata. If only "key" is set, select every frame that has
42620 such key in metadata.
42621
42622 add Add new metadata "key" and "value". If key is already available
42623 do nothing.
42624
42625 modify
42626 Modify value of already present key.
42627
42628 delete
42629 If "value" is set, delete only keys that have such value.
42630 Otherwise, delete key. If "key" is not set, delete all metadata
42631 values in the frame.
42632
42633 print
42634 Print key and its value if metadata was found. If "key" is not
42635 set print all metadata values available in frame.
42636
42637 key Set key used with all modes. Must be set for all modes except
42638 "print" and "delete".
42639
42640 value
42641 Set metadata value which will be used. This option is mandatory for
42642 "modify" and "add" mode.
42643
42644 function
42645 Which function to use when comparing metadata value and "value".
42646
42647 Can be one of following:
42648
42649 same_str
42650 Values are interpreted as strings, returns true if metadata
42651 value is same as "value".
42652
42653 starts_with
42654 Values are interpreted as strings, returns true if metadata
42655 value starts with the "value" option string.
42656
42657 less
42658 Values are interpreted as floats, returns true if metadata
42659 value is less than "value".
42660
42661 equal
42662 Values are interpreted as floats, returns true if "value" is
42663 equal with metadata value.
42664
42665 greater
42666 Values are interpreted as floats, returns true if metadata
42667 value is greater than "value".
42668
42669 expr
42670 Values are interpreted as floats, returns true if expression
42671 from option "expr" evaluates to true.
42672
42673 ends_with
42674 Values are interpreted as strings, returns true if metadata
42675 value ends with the "value" option string.
42676
42677 expr
42678 Set expression which is used when "function" is set to "expr". The
42679 expression is evaluated through the eval API and can contain the
42680 following constants:
42681
42682 VALUE1, FRAMEVAL
42683 Float representation of "value" from metadata key.
42684
42685 VALUE2, USERVAL
42686 Float representation of "value" as supplied by user in "value"
42687 option.
42688
42689 file
42690 If specified in "print" mode, output is written to the named file.
42691 Instead of plain filename any writable url can be specified.
42692 Filename ``-'' is a shorthand for standard output. If "file" option
42693 is not set, output is written to the log with AV_LOG_INFO loglevel.
42694
42695 direct
42696 Reduces buffering in print mode when output is written to a URL set
42697 using file.
42698
42699 Examples
42700
42701 • Print all metadata values for frames with key
42702 "lavfi.signalstats.YDIF" with values between 0 and 1.
42703
42704 signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
42705
42706 • Print silencedetect output to file metadata.txt.
42707
42708 silencedetect,ametadata=mode=print:file=metadata.txt
42709
42710 • Direct all metadata to a pipe with file descriptor 4.
42711
42712 metadata=mode=print:file='pipe\:4'
42713
42714 perms, aperms
42715 Set read/write permissions for the output frames.
42716
42717 These filters are mainly aimed at developers to test direct path in the
42718 following filter in the filtergraph.
42719
42720 The filters accept the following options:
42721
42722 mode
42723 Select the permissions mode.
42724
42725 It accepts the following values:
42726
42727 none
42728 Do nothing. This is the default.
42729
42730 ro Set all the output frames read-only.
42731
42732 rw Set all the output frames directly writable.
42733
42734 toggle
42735 Make the frame read-only if writable, and writable if read-
42736 only.
42737
42738 random
42739 Set each output frame read-only or writable randomly.
42740
42741 seed
42742 Set the seed for the random mode, must be an integer included
42743 between 0 and "UINT32_MAX". If not specified, or if explicitly set
42744 to "-1", the filter will try to use a good random seed on a best
42745 effort basis.
42746
42747 Note: in case of auto-inserted filter between the permission filter and
42748 the following one, the permission might not be received as expected in
42749 that following filter. Inserting a format or aformat filter before the
42750 perms/aperms filter can avoid this problem.
42751
42752 realtime, arealtime
42753 Slow down filtering to match real time approximately.
42754
42755 These filters will pause the filtering for a variable amount of time to
42756 match the output rate with the input timestamps. They are similar to
42757 the re option to "ffmpeg".
42758
42759 They accept the following options:
42760
42761 limit
42762 Time limit for the pauses. Any pause longer than that will be
42763 considered a timestamp discontinuity and reset the timer. Default
42764 is 2 seconds.
42765
42766 speed
42767 Speed factor for processing. The value must be a float larger than
42768 zero. Values larger than 1.0 will result in faster than realtime
42769 processing, smaller will slow processing down. The limit is
42770 automatically adapted accordingly. Default is 1.0.
42771
42772 A processing speed faster than what is possible without these
42773 filters cannot be achieved.
42774
42775 Commands
42776
42777 Both filters supports the all above options as commands.
42778
42779 segment, asegment
42780 Split single input stream into multiple streams.
42781
42782 This filter does opposite of concat filters.
42783
42784 "segment" works on video frames, "asegment" on audio samples.
42785
42786 This filter accepts the following options:
42787
42788 timestamps
42789 Timestamps of output segments separated by '|'. The first segment
42790 will run from the beginning of the input stream. The last segment
42791 will run until the end of the input stream
42792
42793 frames, samples
42794 Exact frame/sample count to split the segments.
42795
42796 In all cases, prefixing an each segment with '+' will make it relative
42797 to the previous segment.
42798
42799 Examples
42800
42801 • Split input audio stream into three output audio streams, starting
42802 at start of input audio stream and storing that in 1st output audio
42803 stream, then following at 60th second and storing than in 2nd
42804 output audio stream, and last after 150th second of input audio
42805 stream store in 3rd output audio stream:
42806
42807 asegment=timestamps="60|150"
42808
42809 select, aselect
42810 Select frames to pass in output.
42811
42812 This filter accepts the following options:
42813
42814 expr, e
42815 Set expression, which is evaluated for each input frame.
42816
42817 If the expression is evaluated to zero, the frame is discarded.
42818
42819 If the evaluation result is negative or NaN, the frame is sent to
42820 the first output; otherwise it is sent to the output with index
42821 "ceil(val)-1", assuming that the input index starts from 0.
42822
42823 For example a value of 1.2 corresponds to the output with index
42824 "ceil(1.2)-1 = 2-1 = 1", that is the second output.
42825
42826 outputs, n
42827 Set the number of outputs. The output to which to send the selected
42828 frame is based on the result of the evaluation. Default value is 1.
42829
42830 The expression can contain the following constants:
42831
42832 n The (sequential) number of the filtered frame, starting from 0.
42833
42834 selected_n
42835 The (sequential) number of the selected frame, starting from 0.
42836
42837 prev_selected_n
42838 The sequential number of the last selected frame. It's NAN if
42839 undefined.
42840
42841 TB The timebase of the input timestamps.
42842
42843 pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
42844 in TB units. It's NAN if undefined.
42845
42846 t The PTS of the filtered frame, expressed in seconds. It's NAN if
42847 undefined.
42848
42849 prev_pts
42850 The PTS of the previously filtered frame. It's NAN if undefined.
42851
42852 prev_selected_pts
42853 The PTS of the last previously filtered frame. It's NAN if
42854 undefined.
42855
42856 prev_selected_t
42857 The PTS of the last previously selected frame, expressed in
42858 seconds. It's NAN if undefined.
42859
42860 start_pts
42861 The first PTS in the stream which is not NAN. It remains NAN if not
42862 found.
42863
42864 start_t
42865 The first PTS, in seconds, in the stream which is not NAN. It
42866 remains NAN if not found.
42867
42868 pict_type (video only)
42869 The type of the filtered frame. It can assume one of the following
42870 values:
42871
42872 I
42873 P
42874 B
42875 S
42876 SI
42877 SP
42878 BI
42879 interlace_type (video only)
42880 The frame interlace type. It can assume one of the following
42881 values:
42882
42883 PROGRESSIVE
42884 The frame is progressive (not interlaced).
42885
42886 TOPFIRST
42887 The frame is top-field-first.
42888
42889 BOTTOMFIRST
42890 The frame is bottom-field-first.
42891
42892 consumed_sample_n (audio only)
42893 the number of selected samples before the current frame
42894
42895 samples_n (audio only)
42896 the number of samples in the current frame
42897
42898 sample_rate (audio only)
42899 the input sample rate
42900
42901 key This is 1 if the filtered frame is a key-frame, 0 otherwise.
42902
42903 pos the position in the file of the filtered frame, -1 if the
42904 information is not available (e.g. for synthetic video)
42905
42906 scene (video only)
42907 value between 0 and 1 to indicate a new scene; a low value reflects
42908 a low probability for the current frame to introduce a new scene,
42909 while a higher value means the current frame is more likely to be
42910 one (see the example below)
42911
42912 concatdec_select
42913 The concat demuxer can select only part of a concat input file by
42914 setting an inpoint and an outpoint, but the output packets may not
42915 be entirely contained in the selected interval. By using this
42916 variable, it is possible to skip frames generated by the concat
42917 demuxer which are not exactly contained in the selected interval.
42918
42919 This works by comparing the frame pts against the
42920 lavf.concat.start_time and the lavf.concat.duration packet metadata
42921 values which are also present in the decoded frames.
42922
42923 The concatdec_select variable is -1 if the frame pts is at least
42924 start_time and either the duration metadata is missing or the frame
42925 pts is less than start_time + duration, 0 otherwise, and NaN if the
42926 start_time metadata is missing.
42927
42928 That basically means that an input frame is selected if its pts is
42929 within the interval set by the concat demuxer.
42930
42931 The default value of the select expression is "1".
42932
42933 Examples
42934
42935 • Select all frames in input:
42936
42937 select
42938
42939 The example above is the same as:
42940
42941 select=1
42942
42943 • Skip all frames:
42944
42945 select=0
42946
42947 • Select only I-frames:
42948
42949 select='eq(pict_type\,I)'
42950
42951 • Select one frame every 100:
42952
42953 select='not(mod(n\,100))'
42954
42955 • Select only frames contained in the 10-20 time interval:
42956
42957 select=between(t\,10\,20)
42958
42959 • Select only I-frames contained in the 10-20 time interval:
42960
42961 select=between(t\,10\,20)*eq(pict_type\,I)
42962
42963 • Select frames with a minimum distance of 10 seconds:
42964
42965 select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
42966
42967 • Use aselect to select only audio frames with samples number > 100:
42968
42969 aselect='gt(samples_n\,100)'
42970
42971 • Create a mosaic of the first scenes:
42972
42973 ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
42974
42975 Comparing scene against a value between 0.3 and 0.5 is generally a
42976 sane choice.
42977
42978 • Send even and odd frames to separate outputs, and compose them:
42979
42980 select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
42981
42982 • Select useful frames from an ffconcat file which is using inpoints
42983 and outpoints but where the source files are not intra frame only.
42984
42985 ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
42986
42987 sendcmd, asendcmd
42988 Send commands to filters in the filtergraph.
42989
42990 These filters read commands to be sent to other filters in the
42991 filtergraph.
42992
42993 "sendcmd" must be inserted between two video filters, "asendcmd" must
42994 be inserted between two audio filters, but apart from that they act the
42995 same way.
42996
42997 The specification of commands can be provided in the filter arguments
42998 with the commands option, or in a file specified by the filename
42999 option.
43000
43001 These filters accept the following options:
43002
43003 commands, c
43004 Set the commands to be read and sent to the other filters.
43005
43006 filename, f
43007 Set the filename of the commands to be read and sent to the other
43008 filters.
43009
43010 Commands syntax
43011
43012 A commands description consists of a sequence of interval
43013 specifications, comprising a list of commands to be executed when a
43014 particular event related to that interval occurs. The occurring event
43015 is typically the current frame time entering or leaving a given time
43016 interval.
43017
43018 An interval is specified by the following syntax:
43019
43020 <START>[-<END>] <COMMANDS>;
43021
43022 The time interval is specified by the START and END times. END is
43023 optional and defaults to the maximum time.
43024
43025 The current frame time is considered within the specified interval if
43026 it is included in the interval [START, END), that is when the time is
43027 greater or equal to START and is lesser than END.
43028
43029 COMMANDS consists of a sequence of one or more command specifications,
43030 separated by ",", relating to that interval. The syntax of a command
43031 specification is given by:
43032
43033 [<FLAGS>] <TARGET> <COMMAND> <ARG>
43034
43035 FLAGS is optional and specifies the type of events relating to the time
43036 interval which enable sending the specified command, and must be a non-
43037 null sequence of identifier flags separated by "+" or "|" and enclosed
43038 between "[" and "]".
43039
43040 The following flags are recognized:
43041
43042 enter
43043 The command is sent when the current frame timestamp enters the
43044 specified interval. In other words, the command is sent when the
43045 previous frame timestamp was not in the given interval, and the
43046 current is.
43047
43048 leave
43049 The command is sent when the current frame timestamp leaves the
43050 specified interval. In other words, the command is sent when the
43051 previous frame timestamp was in the given interval, and the current
43052 is not.
43053
43054 expr
43055 The command ARG is interpreted as expression and result of
43056 expression is passed as ARG.
43057
43058 The expression is evaluated through the eval API and can contain
43059 the following constants:
43060
43061 POS Original position in the file of the frame, or undefined if
43062 undefined for the current frame.
43063
43064 PTS The presentation timestamp in input.
43065
43066 N The count of the input frame for video or audio, starting from
43067 0.
43068
43069 T The time in seconds of the current frame.
43070
43071 TS The start time in seconds of the current command interval.
43072
43073 TE The end time in seconds of the current command interval.
43074
43075 TI The interpolated time of the current command interval, TI = (T
43076 - TS) / (TE - TS).
43077
43078 W The video frame width.
43079
43080 H The video frame height.
43081
43082 If FLAGS is not specified, a default value of "[enter]" is assumed.
43083
43084 TARGET specifies the target of the command, usually the name of the
43085 filter class or a specific filter instance name.
43086
43087 COMMAND specifies the name of the command for the target filter.
43088
43089 ARG is optional and specifies the optional list of argument for the
43090 given COMMAND.
43091
43092 Between one interval specification and another, whitespaces, or
43093 sequences of characters starting with "#" until the end of line, are
43094 ignored and can be used to annotate comments.
43095
43096 A simplified BNF description of the commands specification syntax
43097 follows:
43098
43099 <COMMAND_FLAG> ::= "enter" | "leave"
43100 <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
43101 <COMMAND> ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
43102 <COMMANDS> ::= <COMMAND> [,<COMMANDS>]
43103 <INTERVAL> ::= <START>[-<END>] <COMMANDS>
43104 <INTERVALS> ::= <INTERVAL>[;<INTERVALS>]
43105
43106 Examples
43107
43108 • Specify audio tempo change at second 4:
43109
43110 asendcmd=c='4.0 atempo tempo 1.5',atempo
43111
43112 • Target a specific filter instance:
43113
43114 asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
43115
43116 • Specify a list of drawtext and hue commands in a file.
43117
43118 # show text in the interval 5-10
43119 5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
43120 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
43121
43122 # desaturate the image in the interval 15-20
43123 15.0-20.0 [enter] hue s 0,
43124 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
43125 [leave] hue s 1,
43126 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
43127
43128 # apply an exponential saturation fade-out effect, starting from time 25
43129 25 [enter] hue s exp(25-t)
43130
43131 A filtergraph allowing to read and process the above command list
43132 stored in a file test.cmd, can be specified with:
43133
43134 sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
43135
43136 setpts, asetpts
43137 Change the PTS (presentation timestamp) of the input frames.
43138
43139 "setpts" works on video frames, "asetpts" on audio frames.
43140
43141 This filter accepts the following options:
43142
43143 expr
43144 The expression which is evaluated for each frame to construct its
43145 timestamp.
43146
43147 The expression is evaluated through the eval API and can contain the
43148 following constants:
43149
43150 FRAME_RATE, FR
43151 frame rate, only defined for constant frame-rate video
43152
43153 PTS The presentation timestamp in input
43154
43155 N The count of the input frame for video or the number of consumed
43156 samples, not including the current frame for audio, starting from
43157 0.
43158
43159 NB_CONSUMED_SAMPLES
43160 The number of consumed samples, not including the current frame
43161 (only audio)
43162
43163 NB_SAMPLES, S
43164 The number of samples in the current frame (only audio)
43165
43166 SAMPLE_RATE, SR
43167 The audio sample rate.
43168
43169 STARTPTS
43170 The PTS of the first frame.
43171
43172 STARTT
43173 the time in seconds of the first frame
43174
43175 INTERLACED
43176 State whether the current frame is interlaced.
43177
43178 T the time in seconds of the current frame
43179
43180 POS original position in the file of the frame, or undefined if
43181 undefined for the current frame
43182
43183 PREV_INPTS
43184 The previous input PTS.
43185
43186 PREV_INT
43187 previous input time in seconds
43188
43189 PREV_OUTPTS
43190 The previous output PTS.
43191
43192 PREV_OUTT
43193 previous output time in seconds
43194
43195 RTCTIME
43196 The wallclock (RTC) time in microseconds. This is deprecated, use
43197 time(0) instead.
43198
43199 RTCSTART
43200 The wallclock (RTC) time at the start of the movie in microseconds.
43201
43202 TB The timebase of the input timestamps.
43203
43204 Examples
43205
43206 • Start counting PTS from zero
43207
43208 setpts=PTS-STARTPTS
43209
43210 • Apply fast motion effect:
43211
43212 setpts=0.5*PTS
43213
43214 • Apply slow motion effect:
43215
43216 setpts=2.0*PTS
43217
43218 • Set fixed rate of 25 frames per second:
43219
43220 setpts=N/(25*TB)
43221
43222 • Set fixed rate 25 fps with some jitter:
43223
43224 setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
43225
43226 • Apply an offset of 10 seconds to the input PTS:
43227
43228 setpts=PTS+10/TB
43229
43230 • Generate timestamps from a "live source" and rebase onto the
43231 current timebase:
43232
43233 setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
43234
43235 • Generate timestamps by counting samples:
43236
43237 asetpts=N/SR/TB
43238
43239 setrange
43240 Force color range for the output video frame.
43241
43242 The "setrange" filter marks the color range property for the output
43243 frames. It does not change the input frame, but only sets the
43244 corresponding property, which affects how the frame is treated by
43245 following filters.
43246
43247 The filter accepts the following options:
43248
43249 range
43250 Available values are:
43251
43252 auto
43253 Keep the same color range property.
43254
43255 unspecified, unknown
43256 Set the color range as unspecified.
43257
43258 limited, tv, mpeg
43259 Set the color range as limited.
43260
43261 full, pc, jpeg
43262 Set the color range as full.
43263
43264 settb, asettb
43265 Set the timebase to use for the output frames timestamps. It is mainly
43266 useful for testing timebase configuration.
43267
43268 It accepts the following parameters:
43269
43270 expr, tb
43271 The expression which is evaluated into the output timebase.
43272
43273 The value for tb is an arithmetic expression representing a rational.
43274 The expression can contain the constants "AVTB" (the default timebase),
43275 "intb" (the input timebase) and "sr" (the sample rate, audio only).
43276 Default value is "intb".
43277
43278 Examples
43279
43280 • Set the timebase to 1/25:
43281
43282 settb=expr=1/25
43283
43284 • Set the timebase to 1/10:
43285
43286 settb=expr=0.1
43287
43288 • Set the timebase to 1001/1000:
43289
43290 settb=1+0.001
43291
43292 • Set the timebase to 2*intb:
43293
43294 settb=2*intb
43295
43296 • Set the default timebase value:
43297
43298 settb=AVTB
43299
43300 showcqt
43301 Convert input audio to a video output representing frequency spectrum
43302 logarithmically using Brown-Puckette constant Q transform algorithm
43303 with direct frequency domain coefficient calculation (but the transform
43304 itself is not really constant Q, instead the Q factor is actually
43305 variable/clamped), with musical tone scale, from E0 to D#10.
43306
43307 The filter accepts the following options:
43308
43309 size, s
43310 Specify the video size for the output. It must be even. For the
43311 syntax of this option, check the "Video size" section in the
43312 ffmpeg-utils manual. Default value is "1920x1080".
43313
43314 fps, rate, r
43315 Set the output frame rate. Default value is 25.
43316
43317 bar_h
43318 Set the bargraph height. It must be even. Default value is "-1"
43319 which computes the bargraph height automatically.
43320
43321 axis_h
43322 Set the axis height. It must be even. Default value is "-1" which
43323 computes the axis height automatically.
43324
43325 sono_h
43326 Set the sonogram height. It must be even. Default value is "-1"
43327 which computes the sonogram height automatically.
43328
43329 fullhd
43330 Set the fullhd resolution. This option is deprecated, use size, s
43331 instead. Default value is 1.
43332
43333 sono_v, volume
43334 Specify the sonogram volume expression. It can contain variables:
43335
43336 bar_v
43337 the bar_v evaluated expression
43338
43339 frequency, freq, f
43340 the frequency where it is evaluated
43341
43342 timeclamp, tc
43343 the value of timeclamp option
43344
43345 and functions:
43346
43347 a_weighting(f)
43348 A-weighting of equal loudness
43349
43350 b_weighting(f)
43351 B-weighting of equal loudness
43352
43353 c_weighting(f)
43354 C-weighting of equal loudness.
43355
43356 Default value is 16.
43357
43358 bar_v, volume2
43359 Specify the bargraph volume expression. It can contain variables:
43360
43361 sono_v
43362 the sono_v evaluated expression
43363
43364 frequency, freq, f
43365 the frequency where it is evaluated
43366
43367 timeclamp, tc
43368 the value of timeclamp option
43369
43370 and functions:
43371
43372 a_weighting(f)
43373 A-weighting of equal loudness
43374
43375 b_weighting(f)
43376 B-weighting of equal loudness
43377
43378 c_weighting(f)
43379 C-weighting of equal loudness.
43380
43381 Default value is "sono_v".
43382
43383 sono_g, gamma
43384 Specify the sonogram gamma. Lower gamma makes the spectrum more
43385 contrast, higher gamma makes the spectrum having more range.
43386 Default value is 3. Acceptable range is "[1, 7]".
43387
43388 bar_g, gamma2
43389 Specify the bargraph gamma. Default value is 1. Acceptable range is
43390 "[1, 7]".
43391
43392 bar_t
43393 Specify the bargraph transparency level. Lower value makes the
43394 bargraph sharper. Default value is 1. Acceptable range is "[0,
43395 1]".
43396
43397 timeclamp, tc
43398 Specify the transform timeclamp. At low frequency, there is trade-
43399 off between accuracy in time domain and frequency domain. If
43400 timeclamp is lower, event in time domain is represented more
43401 accurately (such as fast bass drum), otherwise event in frequency
43402 domain is represented more accurately (such as bass guitar).
43403 Acceptable range is "[0.002, 1]". Default value is 0.17.
43404
43405 attack
43406 Set attack time in seconds. The default is 0 (disabled). Otherwise,
43407 it limits future samples by applying asymmetric windowing in time
43408 domain, useful when low latency is required. Accepted range is "[0,
43409 1]".
43410
43411 basefreq
43412 Specify the transform base frequency. Default value is
43413 20.01523126408007475, which is frequency 50 cents below E0.
43414 Acceptable range is "[10, 100000]".
43415
43416 endfreq
43417 Specify the transform end frequency. Default value is
43418 20495.59681441799654, which is frequency 50 cents above D#10.
43419 Acceptable range is "[10, 100000]".
43420
43421 coeffclamp
43422 This option is deprecated and ignored.
43423
43424 tlength
43425 Specify the transform length in time domain. Use this option to
43426 control accuracy trade-off between time domain and frequency domain
43427 at every frequency sample. It can contain variables:
43428
43429 frequency, freq, f
43430 the frequency where it is evaluated
43431
43432 timeclamp, tc
43433 the value of timeclamp option.
43434
43435 Default value is "384*tc/(384+tc*f)".
43436
43437 count
43438 Specify the transform count for every video frame. Default value is
43439 6. Acceptable range is "[1, 30]".
43440
43441 fcount
43442 Specify the transform count for every single pixel. Default value
43443 is 0, which makes it computed automatically. Acceptable range is
43444 "[0, 10]".
43445
43446 fontfile
43447 Specify font file for use with freetype to draw the axis. If not
43448 specified, use embedded font. Note that drawing with font file or
43449 embedded font is not implemented with custom basefreq and endfreq,
43450 use axisfile option instead.
43451
43452 font
43453 Specify fontconfig pattern. This has lower priority than fontfile.
43454 The ":" in the pattern may be replaced by "|" to avoid unnecessary
43455 escaping.
43456
43457 fontcolor
43458 Specify font color expression. This is arithmetic expression that
43459 should return integer value 0xRRGGBB. It can contain variables:
43460
43461 frequency, freq, f
43462 the frequency where it is evaluated
43463
43464 timeclamp, tc
43465 the value of timeclamp option
43466
43467 and functions:
43468
43469 midi(f)
43470 midi number of frequency f, some midi numbers: E0(16), C1(24),
43471 C2(36), A4(69)
43472
43473 r(x), g(x), b(x)
43474 red, green, and blue value of intensity x.
43475
43476 Default value is "st(0, (midi(f)-59.5)/12); st(1,
43477 if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
43478 b(ld(1))".
43479
43480 axisfile
43481 Specify image file to draw the axis. This option override fontfile
43482 and fontcolor option.
43483
43484 axis, text
43485 Enable/disable drawing text to the axis. If it is set to 0, drawing
43486 to the axis is disabled, ignoring fontfile and axisfile option.
43487 Default value is 1.
43488
43489 csp Set colorspace. The accepted values are:
43490
43491 unspecified
43492 Unspecified (default)
43493
43494 bt709
43495 BT.709
43496
43497 fcc FCC
43498
43499 bt470bg
43500 BT.470BG or BT.601-6 625
43501
43502 smpte170m
43503 SMPTE-170M or BT.601-6 525
43504
43505 smpte240m
43506 SMPTE-240M
43507
43508 bt2020ncl
43509 BT.2020 with non-constant luminance
43510
43511 cscheme
43512 Set spectrogram color scheme. This is list of floating point values
43513 with format "left_r|left_g|left_b|right_r|right_g|right_b". The
43514 default is "1|0.5|0|0|0.5|1".
43515
43516 Examples
43517
43518 • Playing audio while showing the spectrum:
43519
43520 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
43521
43522 • Same as above, but with frame rate 30 fps:
43523
43524 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
43525
43526 • Playing at 1280x720:
43527
43528 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
43529
43530 • Disable sonogram display:
43531
43532 sono_h=0
43533
43534 • A1 and its harmonics: A1, A2, (near)E3, A3:
43535
43536 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),
43537 asplit[a][out1]; [a] showcqt [out0]'
43538
43539 • Same as above, but with more accuracy in frequency domain:
43540
43541 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),
43542 asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
43543
43544 • Custom volume:
43545
43546 bar_v=10:sono_v=bar_v*a_weighting(f)
43547
43548 • Custom gamma, now spectrum is linear to the amplitude.
43549
43550 bar_g=2:sono_g=2
43551
43552 • Custom tlength equation:
43553
43554 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)))'
43555
43556 • Custom fontcolor and fontfile, C-note is colored green, others are
43557 colored blue:
43558
43559 fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
43560
43561 • Custom font using fontconfig:
43562
43563 font='Courier New,Monospace,mono|bold'
43564
43565 • Custom frequency range with custom axis using image file:
43566
43567 axisfile=myaxis.png:basefreq=40:endfreq=10000
43568
43569 showfreqs
43570 Convert input audio to video output representing the audio power
43571 spectrum. Audio amplitude is on Y-axis while frequency is on X-axis.
43572
43573 The filter accepts the following options:
43574
43575 size, s
43576 Specify size of video. For the syntax of this option, check the
43577 "Video size" section in the ffmpeg-utils manual. Default is
43578 "1024x512".
43579
43580 rate, r
43581 Set video rate. Default is 25.
43582
43583 mode
43584 Set display mode. This set how each frequency bin will be
43585 represented.
43586
43587 It accepts the following values:
43588
43589 line
43590 bar
43591 dot
43592
43593 Default is "bar".
43594
43595 ascale
43596 Set amplitude scale.
43597
43598 It accepts the following values:
43599
43600 lin Linear scale.
43601
43602 sqrt
43603 Square root scale.
43604
43605 cbrt
43606 Cubic root scale.
43607
43608 log Logarithmic scale.
43609
43610 Default is "log".
43611
43612 fscale
43613 Set frequency scale.
43614
43615 It accepts the following values:
43616
43617 lin Linear scale.
43618
43619 log Logarithmic scale.
43620
43621 rlog
43622 Reverse logarithmic scale.
43623
43624 Default is "lin".
43625
43626 win_size
43627 Set window size. Allowed range is from 16 to 65536.
43628
43629 Default is 2048
43630
43631 win_func
43632 Set windowing function.
43633
43634 It accepts the following values:
43635
43636 rect
43637 bartlett
43638 hanning
43639 hamming
43640 blackman
43641 welch
43642 flattop
43643 bharris
43644 bnuttall
43645 bhann
43646 sine
43647 nuttall
43648 lanczos
43649 gauss
43650 tukey
43651 dolph
43652 cauchy
43653 parzen
43654 poisson
43655 bohman
43656
43657 Default is "hanning".
43658
43659 overlap
43660 Set window overlap. In range "[0, 1]". Default is 1, which means
43661 optimal overlap for selected window function will be picked.
43662
43663 averaging
43664 Set time averaging. Setting this to 0 will display current maximal
43665 peaks. Default is 1, which means time averaging is disabled.
43666
43667 colors
43668 Specify list of colors separated by space or by '|' which will be
43669 used to draw channel frequencies. Unrecognized or missing colors
43670 will be replaced by white color.
43671
43672 cmode
43673 Set channel display mode.
43674
43675 It accepts the following values:
43676
43677 combined
43678 separate
43679
43680 Default is "combined".
43681
43682 minamp
43683 Set minimum amplitude used in "log" amplitude scaler.
43684
43685 data
43686 Set data display mode.
43687
43688 It accepts the following values:
43689
43690 magnitude
43691 phase
43692 delay
43693
43694 Default is "magnitude".
43695
43696 channels
43697 Set channels to use when processing audio. By default all are
43698 processed.
43699
43700 showspatial
43701 Convert stereo input audio to a video output, representing the spatial
43702 relationship between two channels.
43703
43704 The filter accepts the following options:
43705
43706 size, s
43707 Specify the video size for the output. For the syntax of this
43708 option, check the "Video size" section in the ffmpeg-utils manual.
43709 Default value is "512x512".
43710
43711 win_size
43712 Set window size. Allowed range is from 1024 to 65536. Default size
43713 is 4096.
43714
43715 win_func
43716 Set window function.
43717
43718 It accepts the following values:
43719
43720 rect
43721 bartlett
43722 hann
43723 hanning
43724 hamming
43725 blackman
43726 welch
43727 flattop
43728 bharris
43729 bnuttall
43730 bhann
43731 sine
43732 nuttall
43733 lanczos
43734 gauss
43735 tukey
43736 dolph
43737 cauchy
43738 parzen
43739 poisson
43740 bohman
43741
43742 Default value is "hann".
43743
43744 overlap
43745 Set ratio of overlap window. Default value is 0.5. When value is 1
43746 overlap is set to recommended size for specific window function
43747 currently used.
43748
43749 showspectrum
43750 Convert input audio to a video output, representing the audio frequency
43751 spectrum.
43752
43753 The filter accepts the following options:
43754
43755 size, s
43756 Specify the video size for the output. For the syntax of this
43757 option, check the "Video size" section in the ffmpeg-utils manual.
43758 Default value is "640x512".
43759
43760 slide
43761 Specify how the spectrum should slide along the window.
43762
43763 It accepts the following values:
43764
43765 replace
43766 the samples start again on the left when they reach the right
43767
43768 scroll
43769 the samples scroll from right to left
43770
43771 fullframe
43772 frames are only produced when the samples reach the right
43773
43774 rscroll
43775 the samples scroll from left to right
43776
43777 lreplace
43778 the samples start again on the right when they reach the left
43779
43780 Default value is "replace".
43781
43782 mode
43783 Specify display mode.
43784
43785 It accepts the following values:
43786
43787 combined
43788 all channels are displayed in the same row
43789
43790 separate
43791 all channels are displayed in separate rows
43792
43793 Default value is combined.
43794
43795 color
43796 Specify display color mode.
43797
43798 It accepts the following values:
43799
43800 channel
43801 each channel is displayed in a separate color
43802
43803 intensity
43804 each channel is displayed using the same color scheme
43805
43806 rainbow
43807 each channel is displayed using the rainbow color scheme
43808
43809 moreland
43810 each channel is displayed using the moreland color scheme
43811
43812 nebulae
43813 each channel is displayed using the nebulae color scheme
43814
43815 fire
43816 each channel is displayed using the fire color scheme
43817
43818 fiery
43819 each channel is displayed using the fiery color scheme
43820
43821 fruit
43822 each channel is displayed using the fruit color scheme
43823
43824 cool
43825 each channel is displayed using the cool color scheme
43826
43827 magma
43828 each channel is displayed using the magma color scheme
43829
43830 green
43831 each channel is displayed using the green color scheme
43832
43833 viridis
43834 each channel is displayed using the viridis color scheme
43835
43836 plasma
43837 each channel is displayed using the plasma color scheme
43838
43839 cividis
43840 each channel is displayed using the cividis color scheme
43841
43842 terrain
43843 each channel is displayed using the terrain color scheme
43844
43845 Default value is channel.
43846
43847 scale
43848 Specify scale used for calculating intensity color values.
43849
43850 It accepts the following values:
43851
43852 lin linear
43853
43854 sqrt
43855 square root, default
43856
43857 cbrt
43858 cubic root
43859
43860 log logarithmic
43861
43862 4thrt
43863 4th root
43864
43865 5thrt
43866 5th root
43867
43868 Default value is sqrt.
43869
43870 fscale
43871 Specify frequency scale.
43872
43873 It accepts the following values:
43874
43875 lin linear
43876
43877 log logarithmic
43878
43879 Default value is lin.
43880
43881 saturation
43882 Set saturation modifier for displayed colors. Negative values
43883 provide alternative color scheme. 0 is no saturation at all.
43884 Saturation must be in [-10.0, 10.0] range. Default value is 1.
43885
43886 win_func
43887 Set window function.
43888
43889 It accepts the following values:
43890
43891 rect
43892 bartlett
43893 hann
43894 hanning
43895 hamming
43896 blackman
43897 welch
43898 flattop
43899 bharris
43900 bnuttall
43901 bhann
43902 sine
43903 nuttall
43904 lanczos
43905 gauss
43906 tukey
43907 dolph
43908 cauchy
43909 parzen
43910 poisson
43911 bohman
43912
43913 Default value is "hann".
43914
43915 orientation
43916 Set orientation of time vs frequency axis. Can be "vertical" or
43917 "horizontal". Default is "vertical".
43918
43919 overlap
43920 Set ratio of overlap window. Default value is 0. When value is 1
43921 overlap is set to recommended size for specific window function
43922 currently used.
43923
43924 gain
43925 Set scale gain for calculating intensity color values. Default
43926 value is 1.
43927
43928 data
43929 Set which data to display. Can be "magnitude", default or "phase",
43930 or unwrapped phase: "uphase".
43931
43932 rotation
43933 Set color rotation, must be in [-1.0, 1.0] range. Default value is
43934 0.
43935
43936 start
43937 Set start frequency from which to display spectrogram. Default is
43938 0.
43939
43940 stop
43941 Set stop frequency to which to display spectrogram. Default is 0.
43942
43943 fps Set upper frame rate limit. Default is "auto", unlimited.
43944
43945 legend
43946 Draw time and frequency axes and legends. Default is disabled.
43947
43948 drange
43949 Set dynamic range used to calculate intensity color values. Default
43950 is 120 dBFS. Allowed range is from 10 to 200.
43951
43952 limit
43953 Set upper limit of input audio samples volume in dBFS. Default is 0
43954 dBFS. Allowed range is from -100 to 100.
43955
43956 opacity
43957 Set opacity strength when using pixel format output with alpha
43958 component.
43959
43960 The usage is very similar to the showwaves filter; see the examples in
43961 that section.
43962
43963 Examples
43964
43965 • Large window with logarithmic color scaling:
43966
43967 showspectrum=s=1280x480:scale=log
43968
43969 • Complete example for a colored and sliding spectrum per channel
43970 using ffplay:
43971
43972 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
43973 [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
43974
43975 showspectrumpic
43976 Convert input audio to a single video frame, representing the audio
43977 frequency spectrum.
43978
43979 The filter accepts the following options:
43980
43981 size, s
43982 Specify the video size for the output. For the syntax of this
43983 option, check the "Video size" section in the ffmpeg-utils manual.
43984 Default value is "4096x2048".
43985
43986 mode
43987 Specify display mode.
43988
43989 It accepts the following values:
43990
43991 combined
43992 all channels are displayed in the same row
43993
43994 separate
43995 all channels are displayed in separate rows
43996
43997 Default value is combined.
43998
43999 color
44000 Specify display color mode.
44001
44002 It accepts the following values:
44003
44004 channel
44005 each channel is displayed in a separate color
44006
44007 intensity
44008 each channel is displayed using the same color scheme
44009
44010 rainbow
44011 each channel is displayed using the rainbow color scheme
44012
44013 moreland
44014 each channel is displayed using the moreland color scheme
44015
44016 nebulae
44017 each channel is displayed using the nebulae color scheme
44018
44019 fire
44020 each channel is displayed using the fire color scheme
44021
44022 fiery
44023 each channel is displayed using the fiery color scheme
44024
44025 fruit
44026 each channel is displayed using the fruit color scheme
44027
44028 cool
44029 each channel is displayed using the cool color scheme
44030
44031 magma
44032 each channel is displayed using the magma color scheme
44033
44034 green
44035 each channel is displayed using the green color scheme
44036
44037 viridis
44038 each channel is displayed using the viridis color scheme
44039
44040 plasma
44041 each channel is displayed using the plasma color scheme
44042
44043 cividis
44044 each channel is displayed using the cividis color scheme
44045
44046 terrain
44047 each channel is displayed using the terrain color scheme
44048
44049 Default value is intensity.
44050
44051 scale
44052 Specify scale used for calculating intensity color values.
44053
44054 It accepts the following values:
44055
44056 lin linear
44057
44058 sqrt
44059 square root, default
44060
44061 cbrt
44062 cubic root
44063
44064 log logarithmic
44065
44066 4thrt
44067 4th root
44068
44069 5thrt
44070 5th root
44071
44072 Default value is log.
44073
44074 fscale
44075 Specify frequency scale.
44076
44077 It accepts the following values:
44078
44079 lin linear
44080
44081 log logarithmic
44082
44083 Default value is lin.
44084
44085 saturation
44086 Set saturation modifier for displayed colors. Negative values
44087 provide alternative color scheme. 0 is no saturation at all.
44088 Saturation must be in [-10.0, 10.0] range. Default value is 1.
44089
44090 win_func
44091 Set window function.
44092
44093 It accepts the following values:
44094
44095 rect
44096 bartlett
44097 hann
44098 hanning
44099 hamming
44100 blackman
44101 welch
44102 flattop
44103 bharris
44104 bnuttall
44105 bhann
44106 sine
44107 nuttall
44108 lanczos
44109 gauss
44110 tukey
44111 dolph
44112 cauchy
44113 parzen
44114 poisson
44115 bohman
44116
44117 Default value is "hann".
44118
44119 orientation
44120 Set orientation of time vs frequency axis. Can be "vertical" or
44121 "horizontal". Default is "vertical".
44122
44123 gain
44124 Set scale gain for calculating intensity color values. Default
44125 value is 1.
44126
44127 legend
44128 Draw time and frequency axes and legends. Default is enabled.
44129
44130 rotation
44131 Set color rotation, must be in [-1.0, 1.0] range. Default value is
44132 0.
44133
44134 start
44135 Set start frequency from which to display spectrogram. Default is
44136 0.
44137
44138 stop
44139 Set stop frequency to which to display spectrogram. Default is 0.
44140
44141 drange
44142 Set dynamic range used to calculate intensity color values. Default
44143 is 120 dBFS. Allowed range is from 10 to 200.
44144
44145 limit
44146 Set upper limit of input audio samples volume in dBFS. Default is 0
44147 dBFS. Allowed range is from -100 to 100.
44148
44149 opacity
44150 Set opacity strength when using pixel format output with alpha
44151 component.
44152
44153 Examples
44154
44155 • Extract an audio spectrogram of a whole audio track in a 1024x1024
44156 picture using ffmpeg:
44157
44158 ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
44159
44160 showvolume
44161 Convert input audio volume to a video output.
44162
44163 The filter accepts the following options:
44164
44165 rate, r
44166 Set video rate.
44167
44168 b Set border width, allowed range is [0, 5]. Default is 1.
44169
44170 w Set channel width, allowed range is [80, 8192]. Default is 400.
44171
44172 h Set channel height, allowed range is [1, 900]. Default is 20.
44173
44174 f Set fade, allowed range is [0, 1]. Default is 0.95.
44175
44176 c Set volume color expression.
44177
44178 The expression can use the following variables:
44179
44180 VOLUME
44181 Current max volume of channel in dB.
44182
44183 PEAK
44184 Current peak.
44185
44186 CHANNEL
44187 Current channel number, starting from 0.
44188
44189 t If set, displays channel names. Default is enabled.
44190
44191 v If set, displays volume values. Default is enabled.
44192
44193 o Set orientation, can be horizontal: "h" or vertical: "v", default
44194 is "h".
44195
44196 s Set step size, allowed range is [0, 5]. Default is 0, which means
44197 step is disabled.
44198
44199 p Set background opacity, allowed range is [0, 1]. Default is 0.
44200
44201 m Set metering mode, can be peak: "p" or rms: "r", default is "p".
44202
44203 ds Set display scale, can be linear: "lin" or log: "log", default is
44204 "lin".
44205
44206 dm In second. If set to > 0., display a line for the max level in the
44207 previous seconds. default is disabled: 0.
44208
44209 dmc The color of the max line. Use when "dm" option is set to > 0.
44210 default is: "orange"
44211
44212 showwaves
44213 Convert input audio to a video output, representing the samples waves.
44214
44215 The filter accepts the following options:
44216
44217 size, s
44218 Specify the video size for the output. For the syntax of this
44219 option, check the "Video size" section in the ffmpeg-utils manual.
44220 Default value is "600x240".
44221
44222 mode
44223 Set display mode.
44224
44225 Available values are:
44226
44227 point
44228 Draw a point for each sample.
44229
44230 line
44231 Draw a vertical line for each sample.
44232
44233 p2p Draw a point for each sample and a line between them.
44234
44235 cline
44236 Draw a centered vertical line for each sample.
44237
44238 Default value is "point".
44239
44240 n Set the number of samples which are printed on the same column. A
44241 larger value will decrease the frame rate. Must be a positive
44242 integer. This option can be set only if the value for rate is not
44243 explicitly specified.
44244
44245 rate, r
44246 Set the (approximate) output frame rate. This is done by setting
44247 the option n. Default value is "25".
44248
44249 split_channels
44250 Set if channels should be drawn separately or overlap. Default
44251 value is 0.
44252
44253 colors
44254 Set colors separated by '|' which are going to be used for drawing
44255 of each channel.
44256
44257 scale
44258 Set amplitude scale.
44259
44260 Available values are:
44261
44262 lin Linear.
44263
44264 log Logarithmic.
44265
44266 sqrt
44267 Square root.
44268
44269 cbrt
44270 Cubic root.
44271
44272 Default is linear.
44273
44274 draw
44275 Set the draw mode. This is mostly useful to set for high n.
44276
44277 Available values are:
44278
44279 scale
44280 Scale pixel values for each drawn sample.
44281
44282 full
44283 Draw every sample directly.
44284
44285 Default value is "scale".
44286
44287 Examples
44288
44289 • Output the input file audio and the corresponding video
44290 representation at the same time:
44291
44292 amovie=a.mp3,asplit[out0],showwaves[out1]
44293
44294 • Create a synthetic signal and show it with showwaves, forcing a
44295 frame rate of 30 frames per second:
44296
44297 aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
44298
44299 showwavespic
44300 Convert input audio to a single video frame, representing the samples
44301 waves.
44302
44303 The filter accepts the following options:
44304
44305 size, s
44306 Specify the video size for the output. For the syntax of this
44307 option, check the "Video size" section in the ffmpeg-utils manual.
44308 Default value is "600x240".
44309
44310 split_channels
44311 Set if channels should be drawn separately or overlap. Default
44312 value is 0.
44313
44314 colors
44315 Set colors separated by '|' which are going to be used for drawing
44316 of each channel.
44317
44318 scale
44319 Set amplitude scale.
44320
44321 Available values are:
44322
44323 lin Linear.
44324
44325 log Logarithmic.
44326
44327 sqrt
44328 Square root.
44329
44330 cbrt
44331 Cubic root.
44332
44333 Default is linear.
44334
44335 draw
44336 Set the draw mode.
44337
44338 Available values are:
44339
44340 scale
44341 Scale pixel values for each drawn sample.
44342
44343 full
44344 Draw every sample directly.
44345
44346 Default value is "scale".
44347
44348 filter
44349 Set the filter mode.
44350
44351 Available values are:
44352
44353 average
44354 Use average samples values for each drawn sample.
44355
44356 peak
44357 Use peak samples values for each drawn sample.
44358
44359 Default value is "average".
44360
44361 Examples
44362
44363 • Extract a channel split representation of the wave form of a whole
44364 audio track in a 1024x800 picture using ffmpeg:
44365
44366 ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
44367
44368 sidedata, asidedata
44369 Delete frame side data, or select frames based on it.
44370
44371 This filter accepts the following options:
44372
44373 mode
44374 Set mode of operation of the filter.
44375
44376 Can be one of the following:
44377
44378 select
44379 Select every frame with side data of "type".
44380
44381 delete
44382 Delete side data of "type". If "type" is not set, delete all
44383 side data in the frame.
44384
44385 type
44386 Set side data type used with all modes. Must be set for "select"
44387 mode. For the list of frame side data types, refer to the
44388 "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
44389 choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
44390 "PANSCAN".
44391
44392 spectrumsynth
44393 Synthesize audio from 2 input video spectrums, first input stream
44394 represents magnitude across time and second represents phase across
44395 time. The filter will transform from frequency domain as displayed in
44396 videos back to time domain as presented in audio output.
44397
44398 This filter is primarily created for reversing processed showspectrum
44399 filter outputs, but can synthesize sound from other spectrograms too.
44400 But in such case results are going to be poor if the phase data is not
44401 available, because in such cases phase data need to be recreated,
44402 usually it's just recreated from random noise. For best results use
44403 gray only output ("channel" color mode in showspectrum filter) and
44404 "log" scale for magnitude video and "lin" scale for phase video. To
44405 produce phase, for 2nd video, use "data" option. Inputs videos should
44406 generally use "fullframe" slide mode as that saves resources needed for
44407 decoding video.
44408
44409 The filter accepts the following options:
44410
44411 sample_rate
44412 Specify sample rate of output audio, the sample rate of audio from
44413 which spectrum was generated may differ.
44414
44415 channels
44416 Set number of channels represented in input video spectrums.
44417
44418 scale
44419 Set scale which was used when generating magnitude input spectrum.
44420 Can be "lin" or "log". Default is "log".
44421
44422 slide
44423 Set slide which was used when generating inputs spectrums. Can be
44424 "replace", "scroll", "fullframe" or "rscroll". Default is
44425 "fullframe".
44426
44427 win_func
44428 Set window function used for resynthesis.
44429
44430 overlap
44431 Set window overlap. In range "[0, 1]". Default is 1, which means
44432 optimal overlap for selected window function will be picked.
44433
44434 orientation
44435 Set orientation of input videos. Can be "vertical" or "horizontal".
44436 Default is "vertical".
44437
44438 Examples
44439
44440 • First create magnitude and phase videos from audio, assuming audio
44441 is stereo with 44100 sample rate, then resynthesize videos back to
44442 audio with spectrumsynth:
44443
44444 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
44445 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
44446 ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
44447
44448 split, asplit
44449 Split input into several identical outputs.
44450
44451 "asplit" works with audio input, "split" with video.
44452
44453 The filter accepts a single parameter which specifies the number of
44454 outputs. If unspecified, it defaults to 2.
44455
44456 Examples
44457
44458 • Create two separate outputs from the same input:
44459
44460 [in] split [out0][out1]
44461
44462 • To create 3 or more outputs, you need to specify the number of
44463 outputs, like in:
44464
44465 [in] asplit=3 [out0][out1][out2]
44466
44467 • Create two separate outputs from the same input, one cropped and
44468 one padded:
44469
44470 [in] split [splitout1][splitout2];
44471 [splitout1] crop=100:100:0:0 [cropout];
44472 [splitout2] pad=200:200:100:100 [padout];
44473
44474 • Create 5 copies of the input audio with ffmpeg:
44475
44476 ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
44477
44478 zmq, azmq
44479 Receive commands sent through a libzmq client, and forward them to
44480 filters in the filtergraph.
44481
44482 "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
44483 between two video filters, "azmq" between two audio filters. Both are
44484 capable to send messages to any filter type.
44485
44486 To enable these filters you need to install the libzmq library and
44487 headers and configure FFmpeg with "--enable-libzmq".
44488
44489 For more information about libzmq see: <http://www.zeromq.org/>
44490
44491 The "zmq" and "azmq" filters work as a libzmq server, which receives
44492 messages sent through a network interface defined by the bind_address
44493 (or the abbreviation "b") option. Default value of this option is
44494 tcp://localhost:5555. You may want to alter this value to your needs,
44495 but do not forget to escape any ':' signs (see filtergraph escaping).
44496
44497 The received message must be in the form:
44498
44499 <TARGET> <COMMAND> [<ARG>]
44500
44501 TARGET specifies the target of the command, usually the name of the
44502 filter class or a specific filter instance name. The default filter
44503 instance name uses the pattern Parsed_<filter_name>_<index>, but you
44504 can override this by using the filter_name@id syntax (see Filtergraph
44505 syntax).
44506
44507 COMMAND specifies the name of the command for the target filter.
44508
44509 ARG is optional and specifies the optional argument list for the given
44510 COMMAND.
44511
44512 Upon reception, the message is processed and the corresponding command
44513 is injected into the filtergraph. Depending on the result, the filter
44514 will send a reply to the client, adopting the format:
44515
44516 <ERROR_CODE> <ERROR_REASON>
44517 <MESSAGE>
44518
44519 MESSAGE is optional.
44520
44521 Examples
44522
44523 Look at tools/zmqsend for an example of a zmq client which can be used
44524 to send commands processed by these filters.
44525
44526 Consider the following filtergraph generated by ffplay. In this
44527 example the last overlay filter has an instance name. All other filters
44528 will have default instance names.
44529
44530 ffplay -dumpgraph 1 -f lavfi "
44531 color=s=100x100:c=red [l];
44532 color=s=100x100:c=blue [r];
44533 nullsrc=s=200x100, zmq [bg];
44534 [bg][l] overlay [bg+l];
44535 [bg+l][r] overlay@my=x=100 "
44536
44537 To change the color of the left side of the video, the following
44538 command can be used:
44539
44540 echo Parsed_color_0 c yellow | tools/zmqsend
44541
44542 To change the right side:
44543
44544 echo Parsed_color_1 c pink | tools/zmqsend
44545
44546 To change the position of the right side:
44547
44548 echo overlay@my x 150 | tools/zmqsend
44549
44551 Below is a description of the currently available multimedia sources.
44552
44553 amovie
44554 This is the same as movie source, except it selects an audio stream by
44555 default.
44556
44557 avsynctest
44558 Generate an Audio/Video Sync Test.
44559
44560 Generated stream periodically shows flash video frame and emits beep in
44561 audio. Useful to inspect A/V sync issues.
44562
44563 It accepts the following options:
44564
44565 size, s
44566 Set output video size. Default value is "hd720".
44567
44568 framerate, fr
44569 Set output video frame rate. Default value is 30.
44570
44571 samplerate, sr
44572 Set output audio sample rate. Default value is 44100.
44573
44574 amplitude, a
44575 Set output audio beep amplitude. Default value is 0.7.
44576
44577 period, p
44578 Set output audio beep period in seconds. Default value is 3.
44579
44580 delay, dl
44581 Set output video flash delay in number of frames. Default value is
44582 0.
44583
44584 cycle, c
44585 Enable cycling of video delays, by default is disabled.
44586
44587 duration, d
44588 Set stream output duration. By default duration is unlimited.
44589
44590 fg, bg, ag
44591 Set foreground/background/additional color.
44592
44593 movie
44594 Read audio and/or video stream(s) from a movie container.
44595
44596 It accepts the following parameters:
44597
44598 filename
44599 The name of the resource to read (not necessarily a file; it can
44600 also be a device or a stream accessed through some protocol).
44601
44602 format_name, f
44603 Specifies the format assumed for the movie to read, and can be
44604 either the name of a container or an input device. If not
44605 specified, the format is guessed from movie_name or by probing.
44606
44607 seek_point, sp
44608 Specifies the seek point in seconds. The frames will be output
44609 starting from this seek point. The parameter is evaluated with
44610 "av_strtod", so the numerical value may be suffixed by an IS
44611 postfix. The default value is "0".
44612
44613 streams, s
44614 Specifies the streams to read. Several streams can be specified,
44615 separated by "+". The source will then have as many outputs, in the
44616 same order. The syntax is explained in the "Stream specifiers"
44617 section in the ffmpeg manual. Two special names, "dv" and "da"
44618 specify respectively the default (best suited) video and audio
44619 stream. Default is "dv", or "da" if the filter is called as
44620 "amovie".
44621
44622 stream_index, si
44623 Specifies the index of the video stream to read. If the value is
44624 -1, the most suitable video stream will be automatically selected.
44625 The default value is "-1". Deprecated. If the filter is called
44626 "amovie", it will select audio instead of video.
44627
44628 loop
44629 Specifies how many times to read the stream in sequence. If the
44630 value is 0, the stream will be looped infinitely. Default value is
44631 "1".
44632
44633 Note that when the movie is looped the source timestamps are not
44634 changed, so it will generate non monotonically increasing
44635 timestamps.
44636
44637 discontinuity
44638 Specifies the time difference between frames above which the point
44639 is considered a timestamp discontinuity which is removed by
44640 adjusting the later timestamps.
44641
44642 dec_threads
44643 Specifies the number of threads for decoding
44644
44645 format_opts
44646 Specify format options for the opened file. Format options can be
44647 specified as a list of key=value pairs separated by ':'. The
44648 following example shows how to add protocol_whitelist and
44649 protocol_blacklist options:
44650
44651 ffplay -f lavfi
44652 "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
44653
44654 It allows overlaying a second video on top of the main input of a
44655 filtergraph, as shown in this graph:
44656
44657 input -----------> deltapts0 --> overlay --> output
44658 ^
44659 |
44660 movie --> scale--> deltapts1 -------+
44661
44662 Examples
44663
44664 • Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
44665 it on top of the input labelled "in":
44666
44667 movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
44668 [in] setpts=PTS-STARTPTS [main];
44669 [main][over] overlay=16:16 [out]
44670
44671 • Read from a video4linux2 device, and overlay it on top of the input
44672 labelled "in":
44673
44674 movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
44675 [in] setpts=PTS-STARTPTS [main];
44676 [main][over] overlay=16:16 [out]
44677
44678 • Read the first video stream and the audio stream with id 0x81 from
44679 dvd.vob; the video is connected to the pad named "video" and the
44680 audio is connected to the pad named "audio":
44681
44682 movie=dvd.vob:s=v:0+#0x81 [video] [audio]
44683
44684 Commands
44685
44686 Both movie and amovie support the following commands:
44687
44688 seek
44689 Perform seek using "av_seek_frame". The syntax is: seek
44690 stream_index|timestamp|flags
44691
44692 • stream_index: If stream_index is -1, a default stream is
44693 selected, and timestamp is automatically converted from
44694 AV_TIME_BASE units to the stream specific time_base.
44695
44696 • timestamp: Timestamp in AVStream.time_base units or, if no
44697 stream is specified, in AV_TIME_BASE units.
44698
44699 • flags: Flags which select direction and seeking mode.
44700
44701 get_duration
44702 Get movie duration in AV_TIME_BASE units.
44703
44705 FFmpeg can be hooked up with a number of external libraries to add
44706 support for more formats. None of them are used by default, their use
44707 has to be explicitly requested by passing the appropriate flags to
44708 ./configure.
44709
44710 Alliance for Open Media (AOM)
44711 FFmpeg can make use of the AOM library for AV1 decoding and encoding.
44712
44713 Go to <http://aomedia.org/> and follow the instructions for installing
44714 the library. Then pass "--enable-libaom" to configure to enable it.
44715
44716 AMD AMF/VCE
44717 FFmpeg can use the AMD Advanced Media Framework library for accelerated
44718 H.264 and HEVC(only windows) encoding on hardware with Video Coding
44719 Engine (VCE).
44720
44721 To enable support you must obtain the AMF framework header
44722 files(version 1.4.9+) from
44723 <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
44724
44725 Create an "AMF/" directory in the system include path. Copy the
44726 contents of "AMF/amf/public/include/" into that directory. Then
44727 configure FFmpeg with "--enable-amf".
44728
44729 Initialization of amf encoder occurs in this order: 1) trying to
44730 initialize through dx11(only windows) 2) trying to initialize through
44731 dx9(only windows) 3) trying to initialize through vulkan
44732
44733 To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
44734 amf-amdgpu-pro package(amdgru-pro contains, but does not install
44735 automatically) are required.
44736
44737 This driver can be installed using amdgpu-pro-install script in
44738 official amd driver archive.
44739
44740 AviSynth
44741 FFmpeg can read AviSynth scripts as input. To enable support, pass
44742 "--enable-avisynth" to configure after installing the headers provided
44743 by <https://github.com/AviSynth/AviSynthPlus>. AviSynth+ can be
44744 configured to install only the headers by either passing
44745 "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
44746 using the supplied "GNUmakefile".
44747
44748 For Windows, supported AviSynth variants are <http://avisynth.nl> for
44749 32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
44750 and 64-bit builds.
44751
44752 For Linux, macOS, and BSD, the only supported AviSynth variant is
44753 <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
44754
44755 In 2016, AviSynth+ added support for building with GCC. However,
44756 due to the eccentricities of Windows' calling conventions, 32-bit
44757 GCC builds of AviSynth+ are not compatible with typical 32-bit
44758 builds of FFmpeg.
44759
44760 By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
44761 AviSynth+ since that is the most widely-used and entrenched build
44762 configuration. Users can override this and enable support for
44763 32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
44764 "--extra-cflags" when configuring FFmpeg.
44765
44766 64-bit builds of FFmpeg are not affected, and can use either MSVC
44767 or GCC builds of AviSynth+ without any special flags.
44768
44769 AviSynth(+) is loaded dynamically. Distributors can build FFmpeg
44770 with "--enable-avisynth", and the binaries will work regardless of
44771 the end user having AviSynth installed. If/when an end user would
44772 like to use AviSynth scripts, then they can install AviSynth(+) and
44773 FFmpeg will be able to find and use it to open scripts.
44774
44775 Chromaprint
44776 FFmpeg can make use of the Chromaprint library for generating audio
44777 fingerprints. Pass "--enable-chromaprint" to configure to enable it.
44778 See <https://acoustid.org/chromaprint>.
44779
44780 codec2
44781 FFmpeg can make use of the codec2 library for codec2 decoding and
44782 encoding. There is currently no native decoder, so libcodec2 must be
44783 used for decoding.
44784
44785 Go to <http://freedv.org/>, download "Codec 2 source archive". Build
44786 and install using CMake. Debian users can install the libcodec2-dev
44787 package instead. Once libcodec2 is installed you can pass
44788 "--enable-libcodec2" to configure to enable it.
44789
44790 The easiest way to use codec2 is with .c2 files, since they contain the
44791 mode information required for decoding. To encode such a file, use a
44792 .c2 file extension and give the libcodec2 encoder the -mode option:
44793 "ffmpeg -i input.wav -mode 700C output.c2". Playback is as simple as
44794 "ffplay output.c2". For a list of supported modes, run "ffmpeg -h
44795 encoder=libcodec2". Raw codec2 files are also supported. To make
44796 sense of them the mode in use needs to be specified as a format option:
44797 "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
44798
44799 dav1d
44800 FFmpeg can make use of the dav1d library for AV1 video decoding.
44801
44802 Go to <https://code.videolan.org/videolan/dav1d> and follow the
44803 instructions for installing the library. Then pass "--enable-libdav1d"
44804 to configure to enable it.
44805
44806 davs2
44807 FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
44808 decoding.
44809
44810 Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
44811 installing the library. Then pass "--enable-libdavs2" to configure to
44812 enable it.
44813
44814 libdavs2 is under the GNU Public License Version 2 or later (see
44815 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
44816 details), you must upgrade FFmpeg's license to GPL in order to use
44817 it.
44818
44819 uavs3d
44820 FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
44821 decoding.
44822
44823 Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
44824 installing the library. Then pass "--enable-libuavs3d" to configure to
44825 enable it.
44826
44827 Game Music Emu
44828 FFmpeg can make use of the Game Music Emu library to read audio from
44829 supported video game music file formats. Pass "--enable-libgme" to
44830 configure to enable it. See
44831 <https://bitbucket.org/mpyne/game-music-emu/overview>.
44832
44833 Intel QuickSync Video
44834 FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
44835 encoding of multiple codecs. To use QSV, FFmpeg must be linked against
44836 the "libmfx" dispatcher, which loads the actual decoding libraries.
44837
44838 The dispatcher is open source and can be downloaded from
44839 <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
44840 configured with the "--enable-libmfx" option and "pkg-config" needs to
44841 be able to locate the dispatcher's ".pc" files.
44842
44843 Kvazaar
44844 FFmpeg can make use of the Kvazaar library for HEVC encoding.
44845
44846 Go to <https://github.com/ultravideo/kvazaar> and follow the
44847 instructions for installing the library. Then pass
44848 "--enable-libkvazaar" to configure to enable it.
44849
44850 LAME
44851 FFmpeg can make use of the LAME library for MP3 encoding.
44852
44853 Go to <http://lame.sourceforge.net/> and follow the instructions for
44854 installing the library. Then pass "--enable-libmp3lame" to configure
44855 to enable it.
44856
44857 libilbc
44858 iLBC is a narrowband speech codec that has been made freely available
44859 by Google as part of the WebRTC project. libilbc is a packaging
44860 friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
44861 library for iLBC decoding and encoding.
44862
44863 Go to <https://github.com/TimothyGu/libilbc> and follow the
44864 instructions for installing the library. Then pass "--enable-libilbc"
44865 to configure to enable it.
44866
44867 libjxl
44868 JPEG XL is an image format intended to fully replace legacy JPEG for an
44869 extended period of life. See <https://jpegxl.info/> for more
44870 information, and see <https://github.com/libjxl/libjxl> for the library
44871 source. You can pass "--enable-libjxl" to configure in order enable the
44872 libjxl wrapper.
44873
44874 libvpx
44875 FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
44876 encoding.
44877
44878 Go to <http://www.webmproject.org/> and follow the instructions for
44879 installing the library. Then pass "--enable-libvpx" to configure to
44880 enable it.
44881
44882 ModPlug
44883 FFmpeg can make use of this library, originating in Modplug-XMMS, to
44884 read from MOD-like music files. See
44885 <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
44886 to configure to enable it.
44887
44888 OpenCORE, VisualOn, and Fraunhofer libraries
44889 Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
44890 libraries provide encoders for a number of audio codecs.
44891
44892 OpenCORE and VisualOn libraries are under the Apache License 2.0
44893 (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
44894 which is incompatible to the LGPL version 2.1 and GPL version 2.
44895 You have to upgrade FFmpeg's license to LGPL version 3 (or if you
44896 have enabled GPL components, GPL version 3) by passing
44897 "--enable-version3" to configure in order to use it.
44898
44899 The license of the Fraunhofer AAC library is incompatible with the
44900 GPL. Therefore, for GPL builds, you have to pass
44901 "--enable-nonfree" to configure in order to use it. To the best of
44902 our knowledge, it is compatible with the LGPL.
44903
44904 OpenCORE AMR
44905
44906 FFmpeg can make use of the OpenCORE libraries for AMR-NB
44907 decoding/encoding and AMR-WB decoding.
44908
44909 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
44910 instructions for installing the libraries. Then pass
44911 "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
44912 configure to enable them.
44913
44914 VisualOn AMR-WB encoder library
44915
44916 FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
44917 encoding.
44918
44919 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
44920 instructions for installing the library. Then pass
44921 "--enable-libvo-amrwbenc" to configure to enable it.
44922
44923 Fraunhofer AAC library
44924
44925 FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
44926 encoding.
44927
44928 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
44929 instructions for installing the library. Then pass
44930 "--enable-libfdk-aac" to configure to enable it.
44931
44932 OpenH264
44933 FFmpeg can make use of the OpenH264 library for H.264 decoding and
44934 encoding.
44935
44936 Go to <http://www.openh264.org/> and follow the instructions for
44937 installing the library. Then pass "--enable-libopenh264" to configure
44938 to enable it.
44939
44940 For decoding, this library is much more limited than the built-in
44941 decoder in libavcodec; currently, this library lacks support for
44942 decoding B-frames and some other main/high profile features. (It
44943 currently only supports constrained baseline profile and CABAC.) Using
44944 it is mostly useful for testing and for taking advantage of Cisco's
44945 patent portfolio license
44946 (<http://www.openh264.org/BINARY_LICENSE.txt>).
44947
44948 OpenJPEG
44949 FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
44950 Go to <http://www.openjpeg.org/> to get the libraries and follow the
44951 installation instructions. To enable using OpenJPEG in FFmpeg, pass
44952 "--enable-libopenjpeg" to ./configure.
44953
44954 rav1e
44955 FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
44956 encode videos. Go to <https://github.com/xiph/rav1e/> and follow the
44957 instructions to build the C library. To enable using rav1e in FFmpeg,
44958 pass "--enable-librav1e" to ./configure.
44959
44960 SVT-AV1
44961 FFmpeg can make use of the Scalable Video Technology for AV1 library
44962 for AV1 encoding.
44963
44964 Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
44965 instructions for installing the library. Then pass "--enable-libsvtav1"
44966 to configure to enable it.
44967
44968 TwoLAME
44969 FFmpeg can make use of the TwoLAME library for MP2 encoding.
44970
44971 Go to <http://www.twolame.org/> and follow the instructions for
44972 installing the library. Then pass "--enable-libtwolame" to configure
44973 to enable it.
44974
44975 VapourSynth
44976 FFmpeg can read VapourSynth scripts as input. To enable support, pass
44977 "--enable-vapoursynth" to configure. Vapoursynth is detected via
44978 "pkg-config". Versions 42 or greater supported. See
44979 <http://www.vapoursynth.com/>.
44980
44981 Due to security concerns, Vapoursynth scripts will not be autodetected
44982 so the input format has to be forced. For ff* CLI tools, add "-f
44983 vapoursynth" before the input "-i yourscript.vpy".
44984
44985 x264
44986 FFmpeg can make use of the x264 library for H.264 encoding.
44987
44988 Go to <http://www.videolan.org/developers/x264.html> and follow the
44989 instructions for installing the library. Then pass "--enable-libx264"
44990 to configure to enable it.
44991
44992 x264 is under the GNU Public License Version 2 or later (see
44993 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
44994 details), you must upgrade FFmpeg's license to GPL in order to use
44995 it.
44996
44997 x265
44998 FFmpeg can make use of the x265 library for HEVC encoding.
44999
45000 Go to <http://x265.org/developers.html> and follow the instructions for
45001 installing the library. Then pass "--enable-libx265" to configure to
45002 enable it.
45003
45004 x265 is under the GNU Public License Version 2 or later (see
45005 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
45006 details), you must upgrade FFmpeg's license to GPL in order to use
45007 it.
45008
45009 xavs
45010 FFmpeg can make use of the xavs library for AVS encoding.
45011
45012 Go to <http://xavs.sf.net/> and follow the instructions for installing
45013 the library. Then pass "--enable-libxavs" to configure to enable it.
45014
45015 xavs2
45016 FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
45017 encoding.
45018
45019 Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
45020 installing the library. Then pass "--enable-libxavs2" to configure to
45021 enable it.
45022
45023 libxavs2 is under the GNU Public License Version 2 or later (see
45024 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
45025 details), you must upgrade FFmpeg's license to GPL in order to use
45026 it.
45027
45028 ZVBI
45029 ZVBI is a VBI decoding library which can be used by FFmpeg to decode
45030 DVB teletext pages and DVB teletext subtitles.
45031
45032 Go to <http://sourceforge.net/projects/zapping/> and follow the
45033 instructions for installing the library. Then pass "--enable-libzvbi"
45034 to configure to enable it.
45035
45037 You can use the "-formats" and "-codecs" options to have an exhaustive
45038 list.
45039
45040 File Formats
45041 FFmpeg supports the following file formats through the "libavformat"
45042 library:
45043
45044 Name : Encoding @tab Decoding @tab Comments
45045 3dostr : @tab X
45046 4xm : @tab X
45047 @tab 4X Technologies format, used in some games.
45048
45049 8088flex TMV : @tab X
45050 AAX : @tab X
45051 @tab Audible Enhanced Audio format, used in audiobooks.
45052
45053 AA : @tab X
45054 @tab Audible Format 2, 3, and 4, used in audiobooks.
45055
45056 ACT Voice : @tab X
45057 @tab contains G.729 audio
45058
45059 Adobe Filmstrip : X @tab X
45060 Audio IFF (AIFF) : X @tab X
45061 American Laser Games MM : @tab X
45062 @tab Multimedia format used in games like Mad Dog McCree.
45063
45064 3GPP AMR : X @tab X
45065 Amazing Studio Packed Animation File : @tab X
45066 @tab Multimedia format used in game Heart Of Darkness.
45067
45068 Apple HTTP Live Streaming : @tab X
45069 Artworx Data Format : @tab X
45070 Interplay ACM : @tab X
45071 @tab Audio only format used in some Interplay games.
45072
45073 ADP : @tab X
45074 @tab Audio format used on the Nintendo Gamecube.
45075
45076 AFC : @tab X
45077 @tab Audio format used on the Nintendo Gamecube.
45078
45079 ADS/SS2 : @tab X
45080 @tab Audio format used on the PS2.
45081
45082 APNG : X @tab X
45083 ASF : X @tab X
45084 @tab Advanced / Active Streaming Format.
45085
45086 AST : X @tab X
45087 @tab Audio format used on the Nintendo Wii.
45088
45089 AVI : X @tab X
45090 AviSynth : @tab X
45091 AVR : @tab X
45092 @tab Audio format used on Mac.
45093
45094 AVS : @tab X
45095 @tab Multimedia format used by the Creature Shock game.
45096
45097 Beam Software SIFF : @tab X
45098 @tab Audio and video format used in some games by Beam Software.
45099
45100 Bethesda Softworks VID : @tab X
45101 @tab Used in some games from Bethesda Softworks.
45102
45103 Binary text : @tab X
45104 Bink : @tab X
45105 @tab Multimedia format used by many games.
45106
45107 Bink Audio : @tab X
45108 @tab Audio only multimedia format used by some games.
45109
45110 Bitmap Brothers JV : @tab X
45111 @tab Used in Z and Z95 games.
45112
45113 BRP : @tab X
45114 @tab Argonaut Games format.
45115
45116 Brute Force & Ignorance : @tab X
45117 @tab Used in the game Flash Traffic: City of Angels.
45118
45119 BFSTM : @tab X
45120 @tab Audio format used on the Nintendo WiiU (based on BRSTM).
45121
45122 BRSTM : @tab X
45123 @tab Audio format used on the Nintendo Wii.
45124
45125 BW64 : @tab X
45126 @tab Broadcast Wave 64bit.
45127
45128 BWF : X @tab X
45129 codec2 (raw) : X @tab X
45130 @tab Must be given -mode format option to decode correctly.
45131
45132 codec2 (.c2 files) : X @tab X
45133 @tab Contains header with version and mode info, simplifying playback.
45134
45135 CRI ADX : X @tab X
45136 @tab Audio-only format used in console video games.
45137
45138 CRI AIX : @tab X
45139 CRI HCA : @tab X
45140 @tab Audio-only format used in console video games.
45141
45142 Discworld II BMV : @tab X
45143 Interplay C93 : @tab X
45144 @tab Used in the game Cyberia from Interplay.
45145
45146 Delphine Software International CIN : @tab X
45147 @tab Multimedia format used by Delphine Software games.
45148
45149 Digital Speech Standard (DSS) : @tab X
45150 CD+G : @tab X
45151 @tab Video format used by CD+G karaoke disks
45152
45153 Phantom Cine : @tab X
45154 Commodore CDXL : @tab X
45155 @tab Amiga CD video format
45156
45157 Core Audio Format : X @tab X
45158 @tab Apple Core Audio Format
45159
45160 CRC testing format : X @tab
45161 Creative Voice : X @tab X
45162 @tab Created for the Sound Blaster Pro.
45163
45164 CRYO APC : @tab X
45165 @tab Audio format used in some games by CRYO Interactive Entertainment.
45166
45167 D-Cinema audio : X @tab X
45168 Deluxe Paint Animation : @tab X
45169 DCSTR : @tab X
45170 DFA : @tab X
45171 @tab This format is used in Chronomaster game
45172
45173 DirectDraw Surface : @tab X
45174 DSD Stream File (DSF) : @tab X
45175 DV video : X @tab X
45176 DXA : @tab X
45177 @tab This format is used in the non-Windows version of the Feeble Files
45178 game and different game cutscenes repacked for use with ScummVM.
45179
45180 Electronic Arts cdata : @tab X
45181 Electronic Arts Multimedia : @tab X
45182 @tab Used in various EA games; files have extensions like WVE and UV2.
45183
45184 Ensoniq Paris Audio File : @tab X
45185 FFM (FFserver live feed) : X @tab X
45186 Flash (SWF) : X @tab X
45187 Flash 9 (AVM2) : X @tab X
45188 @tab Only embedded audio is decoded.
45189
45190 FLI/FLC/FLX animation : @tab X
45191 @tab .fli/.flc files
45192
45193 Flash Video (FLV) : X @tab X
45194 @tab Macromedia Flash video files
45195
45196 framecrc testing format : X @tab
45197 FunCom ISS : @tab X
45198 @tab Audio format used in various games from FunCom like The Longest Journey.
45199
45200 G.723.1 : X @tab X
45201 G.726 : @tab X @tab Both left- and right-
45202 justified.
45203 G.729 BIT : X @tab X
45204 G.729 raw : @tab X
45205 GENH : @tab X
45206 @tab Audio format for various games.
45207
45208 GIF Animation : X @tab X
45209 GXF : X @tab X
45210 @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
45211 playout servers.
45212
45213 HNM : @tab X
45214 @tab Only version 4 supported, used in some games from Cryo Interactive
45215
45216 iCEDraw File : @tab X
45217 ICO : X @tab X
45218 @tab Microsoft Windows ICO
45219
45220 id Quake II CIN video : @tab X
45221 id RoQ : X @tab X
45222 @tab Used in Quake III, Jedi Knight 2 and other computer games.
45223
45224 IEC61937 encapsulation : X @tab X
45225 IFF : @tab X
45226 @tab Interchange File Format
45227
45228 IFV : @tab X
45229 @tab A format used by some old CCTV DVRs.
45230
45231 iLBC : X @tab X
45232 Interplay MVE : @tab X
45233 @tab Format used in various Interplay computer games.
45234
45235 Iterated Systems ClearVideo : @tab X
45236 @tab I-frames only
45237
45238 IV8 : @tab X
45239 @tab A format generated by IndigoVision 8000 video server.
45240
45241 IVF (On2) : X @tab X
45242 @tab A format used by libvpx
45243
45244 Internet Video Recording : @tab X
45245 IRCAM : X @tab X
45246 LATM : X @tab X
45247 LMLM4 : @tab X
45248 @tab Used by Linux Media Labs MPEG-4 PCI boards
45249
45250 LOAS : @tab X
45251 @tab contains LATM multiplexed AAC audio
45252
45253 LRC : X @tab X
45254 LVF : @tab X
45255 LXF : @tab X
45256 @tab VR native stream format, used by Leitch/Harris' video servers.
45257
45258 Magic Lantern Video (MLV) : @tab X
45259 Matroska : X @tab X
45260 Matroska audio : X @tab
45261 FFmpeg metadata : X @tab X
45262 @tab Metadata in text format.
45263
45264 MAXIS XA : @tab X
45265 @tab Used in Sim City 3000; file extension .xa.
45266
45267 MCA : @tab X
45268 @tab Used in some games from Capcom; file extension .mca.
45269
45270 MD Studio : @tab X
45271 Metal Gear Solid: The Twin Snakes : @tab X
45272 Megalux Frame : @tab X
45273 @tab Used by Megalux Ultimate Paint
45274
45275 Mobotix .mxg : @tab X
45276 Monkey's Audio : @tab X
45277 Motion Pixels MVI : @tab X
45278 MOV/QuickTime/MP4 : X @tab X
45279 @tab 3GP, 3GP2, PSP, iPod variants supported
45280
45281 MP2 : X @tab X
45282 MP3 : X @tab X
45283 MPEG-1 System : X @tab X
45284 @tab muxed audio and video, VCD format supported
45285
45286 MPEG-PS (program stream) : X @tab X
45287 @tab also known as C<VOB> file, SVCD and DVD format supported
45288
45289 MPEG-TS (transport stream) : X @tab X
45290 @tab also known as DVB Transport Stream
45291
45292 MPEG-4 : X @tab X
45293 @tab MPEG-4 is a variant of QuickTime.
45294
45295 MSF : @tab X
45296 @tab Audio format used on the PS3.
45297
45298 Mirillis FIC video : @tab X
45299 @tab No cursor rendering.
45300
45301 MIDI Sample Dump Standard : @tab X
45302 MIME multipart JPEG : X @tab
45303 MSN TCP webcam : @tab X
45304 @tab Used by MSN Messenger webcam streams.
45305
45306 MTV : @tab X
45307 Musepack : @tab X
45308 Musepack SV8 : @tab X
45309 Material eXchange Format (MXF) : X @tab X
45310 @tab SMPTE 377M, used by D-Cinema, broadcast industry.
45311
45312 Material eXchange Format (MXF), D-10 Mapping : X @tab X
45313 @tab SMPTE 386M, D-10/IMX Mapping.
45314
45315 NC camera feed : @tab X
45316 @tab NC (AVIP NC4600) camera streams
45317
45318 NIST SPeech HEader REsources : @tab X
45319 Computerized Speech Lab NSP : @tab X
45320 NTT TwinVQ (VQF) : @tab X
45321 @tab Nippon Telegraph and Telephone Corporation TwinVQ.
45322
45323 Nullsoft Streaming Video : @tab X
45324 NuppelVideo : @tab X
45325 NUT : X @tab X
45326 @tab NUT Open Container Format
45327
45328 Ogg : X @tab X
45329 Playstation Portable PMP : @tab X
45330 Portable Voice Format : @tab X
45331 TechnoTrend PVA : @tab X
45332 @tab Used by TechnoTrend DVB PCI boards.
45333
45334 QCP : @tab X
45335 raw ADTS (AAC) : X @tab X
45336 raw AC-3 : X @tab X
45337 raw AMR-NB : @tab X
45338 raw AMR-WB : @tab X
45339 raw aptX : X @tab X
45340 raw aptX HD : X @tab X
45341 raw Chinese AVS video : X @tab X
45342 raw DFPWM : X @tab X
45343 raw Dirac : X @tab X
45344 raw DNxHD : X @tab X
45345 raw DTS : X @tab X
45346 raw DTS-HD : @tab X
45347 raw E-AC-3 : X @tab X
45348 raw FLAC : X @tab X
45349 raw GSM : @tab X
45350 raw H.261 : X @tab X
45351 raw H.263 : X @tab X
45352 raw H.264 : X @tab X
45353 raw HEVC : X @tab X
45354 raw Ingenient MJPEG : @tab X
45355 raw MJPEG : X @tab X
45356 raw MLP : @tab X
45357 raw MPEG : @tab X
45358 raw MPEG-1 : @tab X
45359 raw MPEG-2 : @tab X
45360 raw MPEG-4 : X @tab X
45361 raw NULL : X @tab
45362 raw video : X @tab X
45363 raw id RoQ : X @tab
45364 raw OBU : X @tab X
45365 raw SBC : X @tab X
45366 raw Shorten : @tab X
45367 raw TAK : @tab X
45368 raw TrueHD : X @tab X
45369 raw VC-1 : X @tab X
45370 raw PCM A-law : X @tab X
45371 raw PCM mu-law : X @tab X
45372 raw PCM Archimedes VIDC : X @tab X
45373 raw PCM signed 8 bit : X @tab X
45374 raw PCM signed 16 bit big-endian : X @tab X
45375 raw PCM signed 16 bit little-endian : X @tab X
45376 raw PCM signed 24 bit big-endian : X @tab X
45377 raw PCM signed 24 bit little-endian : X @tab X
45378 raw PCM signed 32 bit big-endian : X @tab X
45379 raw PCM signed 32 bit little-endian : X @tab X
45380 raw PCM signed 64 bit big-endian : X @tab X
45381 raw PCM signed 64 bit little-endian : X @tab X
45382 raw PCM unsigned 8 bit : X @tab X
45383 raw PCM unsigned 16 bit big-endian : X @tab X
45384 raw PCM unsigned 16 bit little-endian : X @tab X
45385 raw PCM unsigned 24 bit big-endian : X @tab X
45386 raw PCM unsigned 24 bit little-endian : X @tab X
45387 raw PCM unsigned 32 bit big-endian : X @tab X
45388 raw PCM unsigned 32 bit little-endian : X @tab X
45389 raw PCM 16.8 floating point little-endian : @tab X
45390 raw PCM 24.0 floating point little-endian : @tab X
45391 raw PCM floating-point 32 bit big-endian : X @tab X
45392 raw PCM floating-point 32 bit little-endian : X @tab X
45393 raw PCM floating-point 64 bit big-endian : X @tab X
45394 raw PCM floating-point 64 bit little-endian : X @tab X
45395 RDT : @tab X
45396 REDCODE R3D : @tab X
45397 @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
45398
45399 RealMedia : X @tab X
45400 Redirector : @tab X
45401 RedSpark : @tab X
45402 Renderware TeXture Dictionary : @tab X
45403 Resolume DXV : @tab X
45404 RF64 : @tab X
45405 RL2 : @tab X
45406 @tab Audio and video format used in some games by Entertainment Software Partners.
45407
45408 RPL/ARMovie : @tab X
45409 Lego Mindstorms RSO : X @tab X
45410 RSD : @tab X
45411 RTMP : X @tab X
45412 @tab Output is performed by publishing stream to RTMP server
45413
45414 RTP : X @tab X
45415 RTSP : X @tab X
45416 Sample Dump eXchange : @tab X
45417 SAP : X @tab X
45418 SBG : @tab X
45419 SDP : @tab X
45420 SER : @tab X
45421 Sega FILM/CPK : X @tab X
45422 @tab Used in many Sega Saturn console games.
45423
45424 Silicon Graphics Movie : @tab X
45425 Sierra SOL : @tab X
45426 @tab .sol files used in Sierra Online games.
45427
45428 Sierra VMD : @tab X
45429 @tab Used in Sierra CD-ROM games.
45430
45431 Smacker : @tab X
45432 @tab Multimedia format used by many games.
45433
45434 SMJPEG : X @tab X
45435 @tab Used in certain Loki game ports.
45436
45437 SMPTE 337M encapsulation : @tab X
45438 Smush : @tab X
45439 @tab Multimedia format used in some LucasArts games.
45440
45441 Sony OpenMG (OMA) : X @tab X
45442 @tab Audio format used in Sony Sonic Stage and Sony Vegas.
45443
45444 Sony PlayStation STR : @tab X
45445 Sony Wave64 (W64) : X @tab X
45446 SoX native format : X @tab X
45447 SUN AU format : X @tab X
45448 SUP raw PGS subtitles : X @tab X
45449 SVAG : @tab X
45450 @tab Audio format used in Konami PS2 games.
45451
45452 TDSC : @tab X
45453 Text files : @tab X
45454 THP : @tab X
45455 @tab Used on the Nintendo GameCube.
45456
45457 Tiertex Limited SEQ : @tab X
45458 @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
45459
45460 True Audio : X @tab X
45461 VAG : @tab X
45462 @tab Audio format used in many Sony PS2 games.
45463
45464 VC-1 test bitstream : X @tab X
45465 Vidvox Hap : X @tab X
45466 Vivo : @tab X
45467 VPK : @tab X
45468 @tab Audio format used in Sony PS games.
45469
45470 WAV : X @tab X
45471 WavPack : X @tab X
45472 WebM : X @tab X
45473 Windows Televison (WTV) : X @tab X
45474 Wing Commander III movie : @tab X
45475 @tab Multimedia format used in Origin's Wing Commander III computer game.
45476
45477 Westwood Studios audio : X @tab X
45478 @tab Multimedia format used in Westwood Studios games.
45479
45480 Westwood Studios VQA : @tab X
45481 @tab Multimedia format used in Westwood Studios games.
45482
45483 Wideband Single-bit Data (WSD) : @tab X
45484 WVE : @tab X
45485 XMV : @tab X
45486 @tab Microsoft video container used in Xbox games.
45487
45488 XVAG : @tab X
45489 @tab Audio format used on the PS3.
45490
45491 xWMA : @tab X
45492 @tab Microsoft audio container used by XAudio 2.
45493
45494 eXtended BINary text (XBIN) : @tab X
45495 YUV4MPEG pipe : X @tab X
45496 Psygnosis YOP : @tab X
45497
45498 "X" means that the feature in that column (encoding / decoding) is
45499 supported.
45500
45501 Image Formats
45502 FFmpeg can read and write images for each frame of a video sequence.
45503 The following image formats are supported:
45504
45505 Name : Encoding @tab Decoding @tab Comments
45506 .Y.U.V : X @tab X
45507 @tab one raw file per component
45508
45509 Alias PIX : X @tab X
45510 @tab Alias/Wavefront PIX image format
45511
45512 animated GIF : X @tab X
45513 APNG : X @tab X
45514 @tab Animated Portable Network Graphics
45515
45516 BMP : X @tab X
45517 @tab Microsoft BMP image
45518
45519 BRender PIX : @tab X
45520 @tab Argonaut BRender 3D engine image format.
45521
45522 CRI : @tab X
45523 @tab Cintel RAW
45524
45525 DPX : X @tab X
45526 @tab Digital Picture Exchange
45527
45528 EXR : @tab X
45529 @tab OpenEXR
45530
45531 FITS : X @tab X
45532 @tab Flexible Image Transport System
45533
45534 IMG : @tab X
45535 @tab GEM Raster image
45536
45537 JPEG : X @tab X
45538 @tab Progressive JPEG is not supported.
45539
45540 JPEG 2000 : X @tab X
45541 JPEG-LS : X @tab X
45542 LJPEG : X @tab
45543 @tab Lossless JPEG
45544
45545 MSP : @tab X
45546 @tab Microsoft Paint image
45547
45548 PAM : X @tab X
45549 @tab PAM is a PNM extension with alpha support.
45550
45551 PBM : X @tab X
45552 @tab Portable BitMap image
45553
45554 PCD : @tab X
45555 @tab PhotoCD
45556
45557 PCX : X @tab X
45558 @tab PC Paintbrush
45559
45560 PFM : X @tab X
45561 @tab Portable FloatMap image
45562
45563 PGM : X @tab X
45564 @tab Portable GrayMap image
45565
45566 PGMYUV : X @tab X
45567 @tab PGM with U and V components in YUV 4:2:0
45568
45569 PGX : @tab X
45570 @tab PGX file decoder
45571
45572 PHM : X @tab X
45573 @tab Portable HalfFloatMap image
45574
45575 PIC : @tab X
45576 @tab Pictor/PC Paint
45577
45578 PNG : X @tab X
45579 @tab Portable Network Graphics image
45580
45581 PPM : X @tab X
45582 @tab Portable PixelMap image
45583
45584 PSD : @tab X
45585 @tab Photoshop
45586
45587 PTX : @tab X
45588 @tab V.Flash PTX format
45589
45590 QOI : X @tab X
45591 @tab Quite OK Image format
45592
45593 SGI : X @tab X
45594 @tab SGI RGB image format
45595
45596 Sun Rasterfile : X @tab X
45597 @tab Sun RAS image format
45598
45599 TIFF : X @tab X
45600 @tab YUV, JPEG and some extension is not supported yet.
45601
45602 Truevision Targa : X @tab X
45603 @tab Targa (.TGA) image format
45604
45605 VBN : X @tab X
45606 @tab Vizrt Binary Image format
45607
45608 WebP : E @tab X
45609 @tab WebP image format, encoding supported through external library libwebp
45610
45611 XBM : X @tab X
45612 @tab X BitMap image format
45613
45614 XFace : X @tab X
45615 @tab X-Face image format
45616
45617 XPM : @tab X
45618 @tab X PixMap image format
45619
45620 XWD : X @tab X
45621 @tab X Window Dump image format
45622
45623 "X" means that the feature in that column (encoding / decoding) is
45624 supported.
45625
45626 "E" means that support is provided through an external library.
45627
45628 Video Codecs
45629 Name : Encoding @tab Decoding @tab Comments
45630 4X Movie : @tab X
45631 @tab Used in certain computer games.
45632
45633 8088flex TMV : @tab X
45634 A64 multicolor : X @tab
45635 @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
45636
45637 Amazing Studio PAF Video : @tab X
45638 American Laser Games MM : @tab X
45639 @tab Used in games like Mad Dog McCree.
45640
45641 Amuse Graphics Movie : @tab X
45642 AMV Video : X @tab X
45643 @tab Used in Chinese MP3 players.
45644
45645 ANSI/ASCII art : @tab X
45646 Apple Intermediate Codec : @tab X
45647 Apple MJPEG-B : @tab X
45648 Apple Pixlet : @tab X
45649 Apple ProRes : X @tab X
45650 @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
45651
45652 Apple QuickDraw : @tab X
45653 @tab fourcc: qdrw
45654
45655 Argonaut Video : @tab X
45656 @tab Used in some Argonaut games.
45657
45658 Asus v1 : X @tab X
45659 @tab fourcc: ASV1
45660
45661 Asus v2 : X @tab X
45662 @tab fourcc: ASV2
45663
45664 ATI VCR1 : @tab X
45665 @tab fourcc: VCR1
45666
45667 ATI VCR2 : @tab X
45668 @tab fourcc: VCR2
45669
45670 Auravision Aura : @tab X
45671 Auravision Aura 2 : @tab X
45672 Autodesk Animator Flic video : @tab X
45673 Autodesk RLE : @tab X
45674 @tab fourcc: AASC
45675
45676 AV1 : E @tab E
45677 @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
45678
45679 Avid 1:1 10-bit RGB Packer : X @tab X
45680 @tab fourcc: AVrp
45681
45682 AVS (Audio Video Standard) video : @tab X
45683 @tab Video encoding used by the Creature Shock game.
45684
45685 AVS2-P2/IEEE1857.4 : E @tab E
45686 @tab Supported through external libraries libxavs2 and libdavs2
45687
45688 AVS3-P2/IEEE1857.10 : @tab E
45689 @tab Supported through external library libuavs3d
45690
45691 AYUV : X @tab X
45692 @tab Microsoft uncompressed packed 4:4:4:4
45693
45694 Beam Software VB : @tab X
45695 Bethesda VID video : @tab X
45696 @tab Used in some games from Bethesda Softworks.
45697
45698 Bink Video : @tab X
45699 BitJazz SheerVideo : @tab X
45700 Bitmap Brothers JV video : @tab X
45701 y41p Brooktree uncompressed 4:1:1 12-bit : X @tab X
45702 Brooktree ProSumer Video : @tab X
45703 @tab fourcc: BT20
45704
45705 Brute Force & Ignorance : @tab X
45706 @tab Used in the game Flash Traffic: City of Angels.
45707
45708 C93 video : @tab X
45709 @tab Codec used in Cyberia game.
45710
45711 CamStudio : @tab X
45712 @tab fourcc: CSCD
45713
45714 CD+G : @tab X
45715 @tab Video codec for CD+G karaoke disks
45716
45717 CDXL : @tab X
45718 @tab Amiga CD video codec
45719
45720 Chinese AVS video : E @tab X
45721 @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
45722
45723 Delphine Software International CIN video : @tab X
45724 @tab Codec used in Delphine Software International games.
45725
45726 Discworld II BMV Video : @tab X
45727 CineForm HD : X @tab X
45728 Canopus HQ : @tab X
45729 Canopus HQA : @tab X
45730 Canopus HQX : @tab X
45731 Canopus Lossless Codec : @tab X
45732 CDToons : @tab X
45733 @tab Codec used in various Broderbund games.
45734
45735 Cinepak : @tab X
45736 Cirrus Logic AccuPak : X @tab X
45737 @tab fourcc: CLJR
45738
45739 CPiA Video Format : @tab X
45740 Creative YUV (CYUV) : @tab X
45741 DFA : @tab X
45742 @tab Codec used in Chronomaster game.
45743
45744 Dirac : E @tab X
45745 @tab supported though the native vc2 (Dirac Pro) encoder
45746
45747 Deluxe Paint Animation : @tab X
45748 DNxHD : X @tab X
45749 @tab aka SMPTE VC3
45750
45751 Duck TrueMotion 1.0 : @tab X
45752 @tab fourcc: DUCK
45753
45754 Duck TrueMotion 2.0 : @tab X
45755 @tab fourcc: TM20
45756
45757 Duck TrueMotion 2.0 RT : @tab X
45758 @tab fourcc: TR20
45759
45760 DV (Digital Video) : X @tab X
45761 Dxtory capture format : @tab X
45762 Feeble Files/ScummVM DXA : @tab X
45763 @tab Codec originally used in Feeble Files game.
45764
45765 Electronic Arts CMV video : @tab X
45766 @tab Used in NHL 95 game.
45767
45768 Electronic Arts Madcow video : @tab X
45769 Electronic Arts TGV video : @tab X
45770 Electronic Arts TGQ video : @tab X
45771 Electronic Arts TQI video : @tab X
45772 Escape 124 : @tab X
45773 Escape 130 : @tab X
45774 FFmpeg video codec #1 : X @tab X
45775 @tab lossless codec (fourcc: FFV1)
45776
45777 Flash Screen Video v1 : X @tab X
45778 @tab fourcc: FSV1
45779
45780 Flash Screen Video v2 : X @tab X
45781 Flash Video (FLV) : X @tab X
45782 @tab Sorenson H.263 used in Flash
45783
45784 FM Screen Capture Codec : @tab X
45785 Forward Uncompressed : @tab X
45786 Fraps : @tab X
45787 Go2Meeting : @tab X
45788 @tab fourcc: G2M2, G2M3
45789
45790 Go2Webinar : @tab X
45791 @tab fourcc: G2M4
45792
45793 Gremlin Digital Video : @tab X
45794 H.261 : X @tab X
45795 H.263 / H.263-1996 : X @tab X
45796 H.263+ / H.263-1998 / H.263 version 2 : X @tab X
45797 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 : E @tab X
45798 @tab encoding supported through external library libx264 and OpenH264
45799
45800 HEVC : X @tab X
45801 @tab encoding supported through external library libx265 and libkvazaar
45802
45803 HNM version 4 : @tab X
45804 HuffYUV : X @tab X
45805 HuffYUV FFmpeg variant : X @tab X
45806 IBM Ultimotion : @tab X
45807 @tab fourcc: ULTI
45808
45809 id Cinematic video : @tab X
45810 @tab Used in Quake II.
45811
45812 id RoQ video : X @tab X
45813 @tab Used in Quake III, Jedi Knight 2, other computer games.
45814
45815 IFF ILBM : @tab X
45816 @tab IFF interleaved bitmap
45817
45818 IFF ByteRun1 : @tab X
45819 @tab IFF run length encoded bitmap
45820
45821 Infinity IMM4 : @tab X
45822 Intel H.263 : @tab X
45823 Intel Indeo 2 : @tab X
45824 Intel Indeo 3 : @tab X
45825 Intel Indeo 4 : @tab X
45826 Intel Indeo 5 : @tab X
45827 Interplay C93 : @tab X
45828 @tab Used in the game Cyberia from Interplay.
45829
45830 Interplay MVE video : @tab X
45831 @tab Used in Interplay .MVE files.
45832
45833 J2K : X @tab X
45834 Karl Morton's video codec : @tab X
45835 @tab Codec used in Worms games.
45836
45837 Kega Game Video (KGV1) : @tab X
45838 @tab Kega emulator screen capture codec.
45839
45840 Lagarith : @tab X
45841 LCL (LossLess Codec Library) MSZH : @tab X
45842 LCL (LossLess Codec Library) ZLIB : E @tab E
45843 LOCO : @tab X
45844 LucasArts SANM/Smush : @tab X
45845 @tab Used in LucasArts games / SMUSH animations.
45846
45847 lossless MJPEG : X @tab X
45848 MagicYUV Video : X @tab X
45849 Mandsoft Screen Capture Codec : @tab X
45850 Microsoft ATC Screen : @tab X
45851 @tab Also known as Microsoft Screen 3.
45852
45853 Microsoft Expression Encoder Screen : @tab X
45854 @tab Also known as Microsoft Titanium Screen 2.
45855
45856 Microsoft RLE : @tab X
45857 Microsoft Screen 1 : @tab X
45858 @tab Also known as Windows Media Video V7 Screen.
45859
45860 Microsoft Screen 2 : @tab X
45861 @tab Also known as Windows Media Video V9 Screen.
45862
45863 Microsoft Video 1 : @tab X
45864 Mimic : @tab X
45865 @tab Used in MSN Messenger Webcam streams.
45866
45867 Miro VideoXL : @tab X
45868 @tab fourcc: VIXL
45869
45870 MJPEG (Motion JPEG) : X @tab X
45871 Mobotix MxPEG video : @tab X
45872 Motion Pixels video : @tab X
45873 MPEG-1 video : X @tab X
45874 MPEG-2 video : X @tab X
45875 MPEG-4 part 2 : X @tab X
45876 @tab libxvidcore can be used alternatively for encoding.
45877
45878 MPEG-4 part 2 Microsoft variant version 1 : @tab X
45879 MPEG-4 part 2 Microsoft variant version 2 : X @tab X
45880 MPEG-4 part 2 Microsoft variant version 3 : X @tab X
45881 Newtek SpeedHQ : X @tab X
45882 Nintendo Gamecube THP video : @tab X
45883 NotchLC : @tab X
45884 NuppelVideo/RTjpeg : @tab X
45885 @tab Video encoding used in NuppelVideo files.
45886
45887 On2 VP3 : @tab X
45888 @tab still experimental
45889
45890 On2 VP4 : @tab X
45891 @tab fourcc: VP40
45892
45893 On2 VP5 : @tab X
45894 @tab fourcc: VP50
45895
45896 On2 VP6 : @tab X
45897 @tab fourcc: VP60,VP61,VP62
45898
45899 On2 VP7 : @tab X
45900 @tab fourcc: VP70,VP71
45901
45902 VP8 : E @tab X
45903 @tab fourcc: VP80, encoding supported through external library libvpx
45904
45905 VP9 : E @tab X
45906 @tab encoding supported through external library libvpx
45907
45908 Pinnacle TARGA CineWave YUV16 : @tab X
45909 @tab fourcc: Y216
45910
45911 Q-team QPEG : @tab X
45912 @tab fourccs: QPEG, Q1.0, Q1.1
45913
45914 QuickTime 8BPS video : @tab X
45915 QuickTime Animation (RLE) video : X @tab X
45916 @tab fourcc: 'rle '
45917
45918 QuickTime Graphics (SMC) : X @tab X
45919 @tab fourcc: 'smc '
45920
45921 QuickTime video (RPZA) : X @tab X
45922 @tab fourcc: rpza
45923
45924 R10K AJA Kona 10-bit RGB Codec : X @tab X
45925 R210 Quicktime Uncompressed RGB 10-bit : X @tab X
45926 Raw Video : X @tab X
45927 RealVideo 1.0 : X @tab X
45928 RealVideo 2.0 : X @tab X
45929 RealVideo 3.0 : @tab X
45930 @tab still far from ideal
45931
45932 RealVideo 4.0 : @tab X
45933 Renderware TXD (TeXture Dictionary) : @tab X
45934 @tab Texture dictionaries used by the Renderware Engine.
45935
45936 RL2 video : @tab X
45937 @tab used in some games by Entertainment Software Partners
45938
45939 ScreenPressor : @tab X
45940 Screenpresso : @tab X
45941 Screen Recorder Gold Codec : @tab X
45942 Sierra VMD video : @tab X
45943 @tab Used in Sierra VMD files.
45944
45945 Silicon Graphics Motion Video Compressor 1 (MVC1) : @tab X
45946 Silicon Graphics Motion Video Compressor 2 (MVC2) : @tab X
45947 Silicon Graphics RLE 8-bit video : @tab X
45948 Smacker video : @tab X
45949 @tab Video encoding used in Smacker.
45950
45951 SMPTE VC-1 : @tab X
45952 Snow : X @tab X
45953 @tab experimental wavelet codec (fourcc: SNOW)
45954
45955 Sony PlayStation MDEC (Motion DECoder) : @tab X
45956 Sorenson Vector Quantizer 1 : X @tab X
45957 @tab fourcc: SVQ1
45958
45959 Sorenson Vector Quantizer 3 : @tab X
45960 @tab fourcc: SVQ3
45961
45962 Sunplus JPEG (SP5X) : @tab X
45963 @tab fourcc: SP5X
45964
45965 TechSmith Screen Capture Codec : @tab X
45966 @tab fourcc: TSCC
45967
45968 TechSmith Screen Capture Codec 2 : @tab X
45969 @tab fourcc: TSC2
45970
45971 Theora : E @tab X
45972 @tab encoding supported through external library libtheora
45973
45974 Tiertex Limited SEQ video : @tab X
45975 @tab Codec used in DOS CD-ROM FlashBack game.
45976
45977 Ut Video : X @tab X
45978 v210 QuickTime uncompressed 4:2:2 10-bit : X @tab X
45979 v308 QuickTime uncompressed 4:4:4 : X @tab X
45980 v408 QuickTime uncompressed 4:4:4:4 : X @tab X
45981 v410 QuickTime uncompressed 4:4:4 10-bit : X @tab X
45982 VBLE Lossless Codec : @tab X
45983 VMware Screen Codec / VMware Video : @tab X
45984 @tab Codec used in videos captured by VMware.
45985
45986 Westwood Studios VQA (Vector Quantized Animation) video : @tab
45987 X
45988 Windows Media Image : @tab X
45989 Windows Media Video 7 : X @tab X
45990 Windows Media Video 8 : X @tab X
45991 Windows Media Video 9 : @tab X
45992 @tab not completely working
45993
45994 Wing Commander III / Xan : @tab X
45995 @tab Used in Wing Commander III .MVE files.
45996
45997 Wing Commander IV / Xan : @tab X
45998 @tab Used in Wing Commander IV.
45999
46000 Winnov WNV1 : @tab X
46001 WMV7 : X @tab X
46002 YAMAHA SMAF : X @tab X
46003 Psygnosis YOP Video : @tab X
46004 yuv4 : X @tab X
46005 @tab libquicktime uncompressed packed 4:2:0
46006
46007 ZeroCodec Lossless Video : @tab X
46008 ZLIB : X @tab X
46009 @tab part of LCL, encoder experimental
46010
46011 Zip Motion Blocks Video : X @tab X
46012 @tab Encoder works only in PAL8.
46013
46014 "X" means that the feature in that column (encoding / decoding) is
46015 supported.
46016
46017 "E" means that support is provided through an external library.
46018
46019 Audio Codecs
46020 Name : Encoding @tab Decoding @tab Comments
46021 8SVX exponential : @tab X
46022 8SVX fibonacci : @tab X
46023 AAC : EX @tab X
46024 @tab encoding supported through internal encoder and external library libfdk-aac
46025
46026 AAC+ : E @tab IX
46027 @tab encoding supported through external library libfdk-aac
46028
46029 AC-3 : IX @tab IX
46030 ACELP.KELVIN : @tab X
46031 ADPCM 4X Movie : @tab X
46032 ADPCM Yamaha AICA : @tab X
46033 ADPCM AmuseGraphics Movie : @tab X
46034 ADPCM Argonaut Games : X @tab X
46035 ADPCM CDROM XA : @tab X
46036 ADPCM Creative Technology : @tab X
46037 @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
46038
46039 ADPCM Electronic Arts : @tab X
46040 @tab Used in various EA titles.
46041
46042 ADPCM Electronic Arts Maxis CDROM XS : @tab X
46043 @tab Used in Sim City 3000.
46044
46045 ADPCM Electronic Arts R1 : @tab X
46046 ADPCM Electronic Arts R2 : @tab X
46047 ADPCM Electronic Arts R3 : @tab X
46048 ADPCM Electronic Arts XAS : @tab X
46049 ADPCM G.722 : X @tab X
46050 ADPCM G.726 : X @tab X
46051 ADPCM IMA Acorn Replay : @tab X
46052 ADPCM IMA AMV : X @tab X
46053 @tab Used in AMV files
46054
46055 ADPCM IMA Cunning Developments : @tab X
46056 ADPCM IMA Electronic Arts EACS : @tab X
46057 ADPCM IMA Electronic Arts SEAD : @tab X
46058 ADPCM IMA Funcom : @tab X
46059 ADPCM IMA High Voltage Software ALP : X @tab X
46060 ADPCM IMA QuickTime : X @tab X
46061 ADPCM IMA Simon & Schuster Interactive : X @tab X
46062 ADPCM IMA Ubisoft APM : X @tab X
46063 ADPCM IMA Loki SDL MJPEG : @tab X
46064 ADPCM IMA WAV : X @tab X
46065 ADPCM IMA Westwood : @tab X
46066 ADPCM ISS IMA : @tab X
46067 @tab Used in FunCom games.
46068
46069 ADPCM IMA Dialogic : @tab X
46070 ADPCM IMA Duck DK3 : @tab X
46071 @tab Used in some Sega Saturn console games.
46072
46073 ADPCM IMA Duck DK4 : @tab X
46074 @tab Used in some Sega Saturn console games.
46075
46076 ADPCM IMA Radical : @tab X
46077 ADPCM Microsoft : X @tab X
46078 ADPCM MS IMA : X @tab X
46079 ADPCM Nintendo Gamecube AFC : @tab X
46080 ADPCM Nintendo Gamecube DTK : @tab X
46081 ADPCM Nintendo THP : @tab X
46082 ADPCM Playstation : @tab X
46083 ADPCM QT IMA : X @tab X
46084 ADPCM SEGA CRI ADX : X @tab X
46085 @tab Used in Sega Dreamcast games.
46086
46087 ADPCM Shockwave Flash : X @tab X
46088 ADPCM Sound Blaster Pro 2-bit : @tab X
46089 ADPCM Sound Blaster Pro 2.6-bit : @tab X
46090 ADPCM Sound Blaster Pro 4-bit : @tab X
46091 ADPCM VIMA : @tab X
46092 @tab Used in LucasArts SMUSH animations.
46093
46094 ADPCM Westwood Studios IMA : X @tab X
46095 @tab Used in Westwood Studios games like Command and Conquer.
46096
46097 ADPCM Yamaha : X @tab X
46098 ADPCM Zork : @tab X
46099 AMR-NB : E @tab X
46100 @tab encoding supported through external library libopencore-amrnb
46101
46102 AMR-WB : E @tab X
46103 @tab encoding supported through external library libvo-amrwbenc
46104
46105 Amazing Studio PAF Audio : @tab X
46106 Apple lossless audio : X @tab X
46107 @tab QuickTime fourcc 'alac'
46108
46109 aptX : X @tab X
46110 @tab Used in Bluetooth A2DP
46111
46112 aptX HD : X @tab X
46113 @tab Used in Bluetooth A2DP
46114
46115 ATRAC1 : @tab X
46116 ATRAC3 : @tab X
46117 ATRAC3+ : @tab X
46118 ATRAC9 : @tab X
46119 Bink Audio : @tab X
46120 @tab Used in Bink and Smacker files in many games.
46121
46122 CELT : @tab E
46123 @tab decoding supported through external library libcelt
46124
46125 codec2 : E @tab E
46126 @tab en/decoding supported through external library libcodec2
46127
46128 CRI HCA : @tab X
46129 Delphine Software International CIN audio : @tab X
46130 @tab Codec used in Delphine Software International games.
46131
46132 DFPWM : X @tab X
46133 Digital Speech Standard - Standard Play mode (DSS SP) : @tab X
46134 Discworld II BMV Audio : @tab X
46135 COOK : @tab X
46136 @tab All versions except 5.1 are supported.
46137
46138 DCA (DTS Coherent Acoustics) : X @tab X
46139 @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
46140
46141 Dolby E : @tab X
46142 DPCM Gremlin : @tab X
46143 DPCM id RoQ : X @tab X
46144 @tab Used in Quake III, Jedi Knight 2 and other computer games.
46145
46146 DPCM Interplay : @tab X
46147 @tab Used in various Interplay computer games.
46148
46149 DPCM Squareroot-Delta-Exact : @tab X
46150 @tab Used in various games.
46151
46152 DPCM Sierra Online : @tab X
46153 @tab Used in Sierra Online game audio files.
46154
46155 DPCM Sol : @tab X
46156 DPCM Xan : @tab X
46157 @tab Used in Origin's Wing Commander IV AVI files.
46158
46159 DPCM Xilam DERF : @tab X
46160 DSD (Direct Stream Digital), least significant bit first : @tab X
46161 DSD (Direct Stream Digital), most significant bit first : @tab X
46162 DSD (Direct Stream Digital), least significant bit first, planar :
46163 @tab X
46164 DSD (Direct Stream Digital), most significant bit first, planar :
46165 @tab X
46166 DSP Group TrueSpeech : @tab X
46167 DST (Direct Stream Transfer) : @tab X
46168 DV audio : @tab X
46169 Enhanced AC-3 : X @tab X
46170 EVRC (Enhanced Variable Rate Codec) : @tab X
46171 FLAC (Free Lossless Audio Codec) : X @tab IX
46172 G.723.1 : X @tab X
46173 G.729 : @tab X
46174 GSM : E @tab X
46175 @tab encoding supported through external library libgsm
46176
46177 GSM Microsoft variant : E @tab X
46178 @tab encoding supported through external library libgsm
46179
46180 IAC (Indeo Audio Coder) : @tab X
46181 iLBC (Internet Low Bitrate Codec) : E @tab EX
46182 @tab encoding and decoding supported through external library libilbc
46183
46184 IMC (Intel Music Coder) : @tab X
46185 Interplay ACM : @tab X
46186 MACE (Macintosh Audio Compression/Expansion) 3:1 : @tab X
46187 MACE (Macintosh Audio Compression/Expansion) 6:1 : @tab X
46188 MLP (Meridian Lossless Packing) : X @tab X
46189 @tab Used in DVD-Audio discs.
46190
46191 Monkey's Audio : @tab X
46192 MP1 (MPEG audio layer 1) : @tab IX
46193 MP2 (MPEG audio layer 2) : IX @tab IX
46194 @tab encoding supported also through external library TwoLAME
46195
46196 MP3 (MPEG audio layer 3) : E @tab IX
46197 @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
46198
46199 MPEG-4 Audio Lossless Coding (ALS) : @tab X
46200 Musepack SV7 : @tab X
46201 Musepack SV8 : @tab X
46202 Nellymoser Asao : X @tab X
46203 On2 AVC (Audio for Video Codec) : @tab X
46204 Opus : E @tab X
46205 @tab encoding supported through external library libopus
46206
46207 PCM A-law : X @tab X
46208 PCM mu-law : X @tab X
46209 PCM Archimedes VIDC : X @tab X
46210 PCM signed 8-bit planar : X @tab X
46211 PCM signed 16-bit big-endian planar : X @tab X
46212 PCM signed 16-bit little-endian planar : X @tab X
46213 PCM signed 24-bit little-endian planar : X @tab X
46214 PCM signed 32-bit little-endian planar : X @tab X
46215 PCM 32-bit floating point big-endian : X @tab X
46216 PCM 32-bit floating point little-endian : X @tab X
46217 PCM 64-bit floating point big-endian : X @tab X
46218 PCM 64-bit floating point little-endian : X @tab X
46219 PCM D-Cinema audio signed 24-bit : X @tab X
46220 PCM signed 8-bit : X @tab X
46221 PCM signed 16-bit big-endian : X @tab X
46222 PCM signed 16-bit little-endian : X @tab X
46223 PCM signed 24-bit big-endian : X @tab X
46224 PCM signed 24-bit little-endian : X @tab X
46225 PCM signed 32-bit big-endian : X @tab X
46226 PCM signed 32-bit little-endian : X @tab X
46227 PCM signed 16/20/24-bit big-endian in MPEG-TS : @tab X
46228 PCM unsigned 8-bit : X @tab X
46229 PCM unsigned 16-bit big-endian : X @tab X
46230 PCM unsigned 16-bit little-endian : X @tab X
46231 PCM unsigned 24-bit big-endian : X @tab X
46232 PCM unsigned 24-bit little-endian : X @tab X
46233 PCM unsigned 32-bit big-endian : X @tab X
46234 PCM unsigned 32-bit little-endian : X @tab X
46235 QCELP / PureVoice : @tab X
46236 QDesign Music Codec 1 : @tab X
46237 QDesign Music Codec 2 : @tab X
46238 @tab There are still some distortions.
46239
46240 RealAudio 1.0 (14.4K) : X @tab X
46241 @tab Real 14400 bit/s codec
46242
46243 RealAudio 2.0 (28.8K) : @tab X
46244 @tab Real 28800 bit/s codec
46245
46246 RealAudio 3.0 (dnet) : IX @tab X
46247 @tab Real low bitrate AC-3 codec
46248
46249 RealAudio Lossless : @tab X
46250 RealAudio SIPR / ACELP.NET : @tab X
46251 SBC (low-complexity subband codec) : X @tab X
46252 @tab Used in Bluetooth A2DP
46253
46254 Shorten : @tab X
46255 Sierra VMD audio : @tab X
46256 @tab Used in Sierra VMD files.
46257
46258 Smacker audio : @tab X
46259 SMPTE 302M AES3 audio : X @tab X
46260 Sonic : X @tab X
46261 @tab experimental codec
46262
46263 Sonic lossless : X @tab X
46264 @tab experimental codec
46265
46266 Speex : E @tab EX
46267 @tab supported through external library libspeex
46268
46269 TAK (Tom's lossless Audio Kompressor) : @tab X
46270 True Audio (TTA) : X @tab X
46271 TrueHD : X @tab X
46272 @tab Used in HD-DVD and Blu-Ray discs.
46273
46274 TwinVQ (VQF flavor) : @tab X
46275 VIMA : @tab X
46276 @tab Used in LucasArts SMUSH animations.
46277
46278 Vorbis : E @tab X
46279 @tab A native but very primitive encoder exists.
46280
46281 Voxware MetaSound : @tab X
46282 WavPack : X @tab X
46283 Westwood Audio (SND1) : @tab X
46284 Windows Media Audio 1 : X @tab X
46285 Windows Media Audio 2 : X @tab X
46286 Windows Media Audio Lossless : @tab X
46287 Windows Media Audio Pro : @tab X
46288 Windows Media Audio Voice : @tab X
46289 Xbox Media Audio 1 : @tab X
46290 Xbox Media Audio 2 : @tab X
46291
46292 "X" means that the feature in that column (encoding / decoding) is
46293 supported.
46294
46295 "E" means that support is provided through an external library.
46296
46297 "I" means that an integer-only version is available, too (ensures high
46298 performance on systems without hardware floating point support).
46299
46300 Subtitle Formats
46301 Name : Muxing @tab Demuxing @tab Encoding @tab Decoding
46302 3GPP Timed Text : @tab @tab X @tab X
46303 AQTitle : @tab X @tab @tab X
46304 DVB : X @tab X @tab X @tab X
46305 DVB teletext : @tab X @tab @tab E
46306 DVD : X @tab X @tab X @tab X
46307 JACOsub : X @tab X @tab @tab X
46308 MicroDVD : X @tab X @tab @tab X
46309 MPL2 : @tab X @tab @tab X
46310 MPsub (MPlayer) : @tab X @tab @tab X
46311 PGS : @tab @tab @tab X
46312 PJS (Phoenix) : @tab X @tab @tab X
46313 RealText : @tab X @tab @tab X
46314 SAMI : @tab X @tab @tab X
46315 Spruce format (STL) : @tab X @tab @tab X
46316 SSA/ASS : X @tab X @tab X @tab X
46317 SubRip (SRT) : X @tab X @tab X @tab X
46318 SubViewer v1 : @tab X @tab @tab X
46319 SubViewer : @tab X @tab @tab X
46320 TED Talks captions : @tab X @tab @tab X
46321 TTML : X @tab @tab X @tab
46322 VobSub (IDX+SUB) : @tab X @tab @tab X
46323 VPlayer : @tab X @tab @tab X
46324 WebVTT : X @tab X @tab X @tab X
46325 XSUB : @tab @tab X @tab X
46326
46327 "X" means that the feature is supported.
46328
46329 "E" means that support is provided through an external library.
46330
46331 Network Protocols
46332 Name : Support
46333 AMQP : E
46334 file : X
46335 FTP : X
46336 Gopher : X
46337 Gophers : X
46338 HLS : X
46339 HTTP : X
46340 HTTPS : X
46341 Icecast : X
46342 MMSH : X
46343 MMST : X
46344 pipe : X
46345 Pro-MPEG FEC : X
46346 RTMP : X
46347 RTMPE : X
46348 RTMPS : X
46349 RTMPT : X
46350 RTMPTE : X
46351 RTMPTS : X
46352 RTP : X
46353 SAMBA : E
46354 SCTP : X
46355 SFTP : E
46356 TCP : X
46357 TLS : X
46358 UDP : X
46359 ZMQ : E
46360
46361 "X" means that the protocol is supported.
46362
46363 "E" means that support is provided through an external library.
46364
46365 Input/Output Devices
46366 Name : Input @tab Output
46367 ALSA : X @tab X
46368 BKTR : X @tab
46369 caca : @tab X
46370 DV1394 : X @tab
46371 Lavfi virtual device : X @tab
46372 Linux framebuffer : X @tab X
46373 JACK : X @tab
46374 LIBCDIO : X
46375 LIBDC1394 : X @tab
46376 OpenAL : X
46377 OpenGL : @tab X
46378 OSS : X @tab X
46379 PulseAudio : X @tab X
46380 SDL : @tab X
46381 Video4Linux2 : X @tab X
46382 VfW capture : X @tab
46383 X11 grabbing : X @tab
46384 Win32 grabbing : X @tab
46385
46386 "X" means that input/output is supported.
46387
46388 Timecode
46389 Codec/format : Read @tab Write
46390 AVI : X @tab X
46391 DV : X @tab X
46392 GXF : X @tab X
46393 MOV : X @tab X
46394 MPEG1/2 : X @tab X
46395 MXF : X @tab X
46396
46398 ffmpeg(1), ffplay(1), ffprobe(1), ffmpeg-utils(1), ffmpeg-scaler(1),
46399 ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
46400 ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
46401 ffmpeg-filters(1)
46402
46404 The FFmpeg developers.
46405
46406 For details about the authorship, see the Git history of the project
46407 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
46408 the FFmpeg source directory, or browsing the online repository at
46409 <http://source.ffmpeg.org>.
46410
46411 Maintainers for the specific components are listed in the file
46412 MAINTAINERS in the source code tree.
46413
46414
46415
46416 FFMPEG-ALL(1)