1FFMPEG-CODECS(1) FFMPEG-CODECS(1)
2
3
4
6 ffmpeg-codecs - FFmpeg codecs
7
9 This document describes the codecs (decoders and encoders) provided by
10 the libavcodec library.
11
13 libavcodec provides some generic global options, which can be set on
14 all the encoders and decoders. In addition each codec may support so-
15 called private options, which are specific for a given codec.
16
17 Sometimes, a global option may only affect a specific kind of codec,
18 and may be nonsensical or ignored by another, so you need to be aware
19 of the meaning of the specified options. Also some options are meant
20 only for decoding or encoding.
21
22 Options may be set by specifying -option value in the FFmpeg tools, or
23 by setting the value explicitly in the "AVCodecContext" options or
24 using the libavutil/opt.h API for programmatic use.
25
26 The list of supported options follow:
27
28 b integer (encoding,audio,video)
29 Set bitrate in bits/s. Default value is 200K.
30
31 ab integer (encoding,audio)
32 Set audio bitrate (in bits/s). Default value is 128K.
33
34 bt integer (encoding,video)
35 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
36 tolerance specifies how far ratecontrol is willing to deviate from
37 the target average bitrate value. This is not related to min/max
38 bitrate. Lowering tolerance too much has an adverse effect on
39 quality.
40
41 flags flags (decoding/encoding,audio,video,subtitles)
42 Set generic flags.
43
44 Possible values:
45
46 mv4 Use four motion vector by macroblock (mpeg4).
47
48 qpel
49 Use 1/4 pel motion compensation.
50
51 loop
52 Use loop filter.
53
54 qscale
55 Use fixed qscale.
56
57 pass1
58 Use internal 2pass ratecontrol in first pass mode.
59
60 pass2
61 Use internal 2pass ratecontrol in second pass mode.
62
63 gray
64 Only decode/encode grayscale.
65
66 psnr
67 Set error[?] variables during encoding.
68
69 truncated
70 Input bitstream might be randomly truncated.
71
72 drop_changed
73 Don't output frames whose parameters differ from first decoded
74 frame in stream. Error AVERROR_INPUT_CHANGED is returned when
75 a frame is dropped.
76
77 ildct
78 Use interlaced DCT.
79
80 low_delay
81 Force low delay.
82
83 global_header
84 Place global headers in extradata instead of every keyframe.
85
86 bitexact
87 Only write platform-, build- and time-independent data. (except
88 (I)DCT). This ensures that file and data checksums are
89 reproducible and match between platforms. Its primary use is
90 for regression testing.
91
92 aic Apply H263 advanced intra coding / mpeg4 ac prediction.
93
94 ilme
95 Apply interlaced motion estimation.
96
97 cgop
98 Use closed gop.
99
100 output_corrupt
101 Output even potentially corrupted frames.
102
103 time_base rational number
104 Set codec time base.
105
106 It is the fundamental unit of time (in seconds) in terms of which
107 frame timestamps are represented. For fixed-fps content, timebase
108 should be "1 / frame_rate" and timestamp increments should be
109 identically 1.
110
111 g integer (encoding,video)
112 Set the group of picture (GOP) size. Default value is 12.
113
114 ar integer (decoding/encoding,audio)
115 Set audio sampling rate (in Hz).
116
117 ac integer (decoding/encoding,audio)
118 Set number of audio channels.
119
120 cutoff integer (encoding,audio)
121 Set cutoff bandwidth. (Supported only by selected encoders, see
122 their respective documentation sections.)
123
124 frame_size integer (encoding,audio)
125 Set audio frame size.
126
127 Each submitted frame except the last must contain exactly
128 frame_size samples per channel. May be 0 when the codec has
129 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
130 not restricted. It is set by some decoders to indicate constant
131 frame size.
132
133 frame_number integer
134 Set the frame number.
135
136 delay integer
137 qcomp float (encoding,video)
138 Set video quantizer scale compression (VBR). It is used as a
139 constant in the ratecontrol equation. Recommended range for default
140 rc_eq: 0.0-1.0.
141
142 qblur float (encoding,video)
143 Set video quantizer scale blur (VBR).
144
145 qmin integer (encoding,video)
146 Set min video quantizer scale (VBR). Must be included between -1
147 and 69, default value is 2.
148
149 qmax integer (encoding,video)
150 Set max video quantizer scale (VBR). Must be included between -1
151 and 1024, default value is 31.
152
153 qdiff integer (encoding,video)
154 Set max difference between the quantizer scale (VBR).
155
156 bf integer (encoding,video)
157 Set max number of B frames between non-B-frames.
158
159 Must be an integer between -1 and 16. 0 means that B-frames are
160 disabled. If a value of -1 is used, it will choose an automatic
161 value depending on the encoder.
162
163 Default value is 0.
164
165 b_qfactor float (encoding,video)
166 Set qp factor between P and B frames.
167
168 codec_tag integer
169 bug flags (decoding,video)
170 Workaround not auto detected encoder bugs.
171
172 Possible values:
173
174 autodetect
175 xvid_ilace
176 Xvid interlacing bug (autodetected if fourcc==XVIX)
177
178 ump4
179 (autodetected if fourcc==UMP4)
180
181 no_padding
182 padding bug (autodetected)
183
184 amv
185 qpel_chroma
186 std_qpel
187 old standard qpel (autodetected per fourcc/version)
188
189 qpel_chroma2
190 direct_blocksize
191 direct-qpel-blocksize bug (autodetected per fourcc/version)
192
193 edge
194 edge padding bug (autodetected per fourcc/version)
195
196 hpel_chroma
197 dc_clip
198 ms Workaround various bugs in microsoft broken decoders.
199
200 trunc
201 trancated frames
202
203 strict integer (decoding/encoding,audio,video)
204 Specify how strictly to follow the standards.
205
206 Possible values:
207
208 very
209 strictly conform to an older more strict version of the spec or
210 reference software
211
212 strict
213 strictly conform to all the things in the spec no matter what
214 consequences
215
216 normal
217 unofficial
218 allow unofficial extensions
219
220 experimental
221 allow non standardized experimental things, experimental
222 (unfinished/work in progress/not well tested) decoders and
223 encoders. Note: experimental decoders can pose a security
224 risk, do not use this for decoding untrusted input.
225
226 b_qoffset float (encoding,video)
227 Set QP offset between P and B frames.
228
229 err_detect flags (decoding,audio,video)
230 Set error detection flags.
231
232 Possible values:
233
234 crccheck
235 verify embedded CRCs
236
237 bitstream
238 detect bitstream specification deviations
239
240 buffer
241 detect improper bitstream length
242
243 explode
244 abort decoding on minor error detection
245
246 ignore_err
247 ignore decoding errors, and continue decoding. This is useful
248 if you want to analyze the content of a video and thus want
249 everything to be decoded no matter what. This option will not
250 result in a video that is pleasing to watch in case of errors.
251
252 careful
253 consider things that violate the spec and have not been seen in
254 the wild as errors
255
256 compliant
257 consider all spec non compliancies as errors
258
259 aggressive
260 consider things that a sane encoder should not do as an error
261
262 has_b_frames integer
263 block_align integer
264 rc_override_count integer
265 maxrate integer (encoding,audio,video)
266 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
267
268 minrate integer (encoding,audio,video)
269 Set min bitrate tolerance (in bits/s). Most useful in setting up a
270 CBR encode. It is of little use elsewise.
271
272 bufsize integer (encoding,audio,video)
273 Set ratecontrol buffer size (in bits).
274
275 i_qfactor float (encoding,video)
276 Set QP factor between P and I frames.
277
278 i_qoffset float (encoding,video)
279 Set QP offset between P and I frames.
280
281 dct integer (encoding,video)
282 Set DCT algorithm.
283
284 Possible values:
285
286 auto
287 autoselect a good one (default)
288
289 fastint
290 fast integer
291
292 int accurate integer
293
294 mmx
295 altivec
296 faan
297 floating point AAN DCT
298
299 lumi_mask float (encoding,video)
300 Compress bright areas stronger than medium ones.
301
302 tcplx_mask float (encoding,video)
303 Set temporal complexity masking.
304
305 scplx_mask float (encoding,video)
306 Set spatial complexity masking.
307
308 p_mask float (encoding,video)
309 Set inter masking.
310
311 dark_mask float (encoding,video)
312 Compress dark areas stronger than medium ones.
313
314 idct integer (decoding/encoding,video)
315 Select IDCT implementation.
316
317 Possible values:
318
319 auto
320 int
321 simple
322 simplemmx
323 simpleauto
324 Automatically pick a IDCT compatible with the simple one
325
326 arm
327 altivec
328 sh4
329 simplearm
330 simplearmv5te
331 simplearmv6
332 simpleneon
333 xvid
334 faani
335 floating point AAN IDCT
336
337 slice_count integer
338 ec flags (decoding,video)
339 Set error concealment strategy.
340
341 Possible values:
342
343 guess_mvs
344 iterative motion vector (MV) search (slow)
345
346 deblock
347 use strong deblock filter for damaged MBs
348
349 favor_inter
350 favor predicting from the previous frame instead of the current
351
352 bits_per_coded_sample integer
353 aspect rational number (encoding,video)
354 Set sample aspect ratio.
355
356 sar rational number (encoding,video)
357 Set sample aspect ratio. Alias to aspect.
358
359 debug flags (decoding/encoding,audio,video,subtitles)
360 Print specific debug info.
361
362 Possible values:
363
364 pict
365 picture info
366
367 rc rate control
368
369 bitstream
370 mb_type
371 macroblock (MB) type
372
373 qp per-block quantization parameter (QP)
374
375 dct_coeff
376 green_metadata
377 display complexity metadata for the upcoming frame, GoP or for
378 a given duration.
379
380 skip
381 startcode
382 er error recognition
383
384 mmco
385 memory management control operations (H.264)
386
387 bugs
388 buffers
389 picture buffer allocations
390
391 thread_ops
392 threading operations
393
394 nomc
395 skip motion compensation
396
397 cmp integer (encoding,video)
398 Set full pel me compare function.
399
400 Possible values:
401
402 sad sum of absolute differences, fast (default)
403
404 sse sum of squared errors
405
406 satd
407 sum of absolute Hadamard transformed differences
408
409 dct sum of absolute DCT transformed differences
410
411 psnr
412 sum of squared quantization errors (avoid, low quality)
413
414 bit number of bits needed for the block
415
416 rd rate distortion optimal, slow
417
418 zero
419 0
420
421 vsad
422 sum of absolute vertical differences
423
424 vsse
425 sum of squared vertical differences
426
427 nsse
428 noise preserving sum of squared differences
429
430 w53 5/3 wavelet, only used in snow
431
432 w97 9/7 wavelet, only used in snow
433
434 dctmax
435 chroma
436 subcmp integer (encoding,video)
437 Set sub pel me compare function.
438
439 Possible values:
440
441 sad sum of absolute differences, fast (default)
442
443 sse sum of squared errors
444
445 satd
446 sum of absolute Hadamard transformed differences
447
448 dct sum of absolute DCT transformed differences
449
450 psnr
451 sum of squared quantization errors (avoid, low quality)
452
453 bit number of bits needed for the block
454
455 rd rate distortion optimal, slow
456
457 zero
458 0
459
460 vsad
461 sum of absolute vertical differences
462
463 vsse
464 sum of squared vertical differences
465
466 nsse
467 noise preserving sum of squared differences
468
469 w53 5/3 wavelet, only used in snow
470
471 w97 9/7 wavelet, only used in snow
472
473 dctmax
474 chroma
475 mbcmp integer (encoding,video)
476 Set macroblock compare function.
477
478 Possible values:
479
480 sad sum of absolute differences, fast (default)
481
482 sse sum of squared errors
483
484 satd
485 sum of absolute Hadamard transformed differences
486
487 dct sum of absolute DCT transformed differences
488
489 psnr
490 sum of squared quantization errors (avoid, low quality)
491
492 bit number of bits needed for the block
493
494 rd rate distortion optimal, slow
495
496 zero
497 0
498
499 vsad
500 sum of absolute vertical differences
501
502 vsse
503 sum of squared vertical differences
504
505 nsse
506 noise preserving sum of squared differences
507
508 w53 5/3 wavelet, only used in snow
509
510 w97 9/7 wavelet, only used in snow
511
512 dctmax
513 chroma
514 ildctcmp integer (encoding,video)
515 Set interlaced dct compare function.
516
517 Possible values:
518
519 sad sum of absolute differences, fast (default)
520
521 sse sum of squared errors
522
523 satd
524 sum of absolute Hadamard transformed differences
525
526 dct sum of absolute DCT transformed differences
527
528 psnr
529 sum of squared quantization errors (avoid, low quality)
530
531 bit number of bits needed for the block
532
533 rd rate distortion optimal, slow
534
535 zero
536 0
537
538 vsad
539 sum of absolute vertical differences
540
541 vsse
542 sum of squared vertical differences
543
544 nsse
545 noise preserving sum of squared differences
546
547 w53 5/3 wavelet, only used in snow
548
549 w97 9/7 wavelet, only used in snow
550
551 dctmax
552 chroma
553 dia_size integer (encoding,video)
554 Set diamond type & size for motion estimation.
555
556 (1024, INT_MAX)
557 full motion estimation(slowest)
558
559 (768, 1024]
560 umh motion estimation
561
562 (512, 768]
563 hex motion estimation
564
565 (256, 512]
566 l2s diamond motion estimation
567
568 [2,256]
569 var diamond motion estimation
570
571 (-1, 2)
572 small diamond motion estimation
573
574 -1 funny diamond motion estimation
575
576 (INT_MIN, -1)
577 sab diamond motion estimation
578
579 last_pred integer (encoding,video)
580 Set amount of motion predictors from the previous frame.
581
582 precmp integer (encoding,video)
583 Set pre motion estimation compare function.
584
585 Possible values:
586
587 sad sum of absolute differences, fast (default)
588
589 sse sum of squared errors
590
591 satd
592 sum of absolute Hadamard transformed differences
593
594 dct sum of absolute DCT transformed differences
595
596 psnr
597 sum of squared quantization errors (avoid, low quality)
598
599 bit number of bits needed for the block
600
601 rd rate distortion optimal, slow
602
603 zero
604 0
605
606 vsad
607 sum of absolute vertical differences
608
609 vsse
610 sum of squared vertical differences
611
612 nsse
613 noise preserving sum of squared differences
614
615 w53 5/3 wavelet, only used in snow
616
617 w97 9/7 wavelet, only used in snow
618
619 dctmax
620 chroma
621 pre_dia_size integer (encoding,video)
622 Set diamond type & size for motion estimation pre-pass.
623
624 subq integer (encoding,video)
625 Set sub pel motion estimation quality.
626
627 me_range integer (encoding,video)
628 Set limit motion vectors range (1023 for DivX player).
629
630 global_quality integer (encoding,audio,video)
631 slice_flags integer
632 mbd integer (encoding,video)
633 Set macroblock decision algorithm (high quality mode).
634
635 Possible values:
636
637 simple
638 use mbcmp (default)
639
640 bits
641 use fewest bits
642
643 rd use best rate distortion
644
645 rc_init_occupancy integer (encoding,video)
646 Set number of bits which should be loaded into the rc buffer before
647 decoding starts.
648
649 flags2 flags (decoding/encoding,audio,video,subtitles)
650 Possible values:
651
652 fast
653 Allow non spec compliant speedup tricks.
654
655 noout
656 Skip bitstream encoding.
657
658 ignorecrop
659 Ignore cropping information from sps.
660
661 local_header
662 Place global headers at every keyframe instead of in extradata.
663
664 chunks
665 Frame data might be split into multiple chunks.
666
667 showall
668 Show all frames before the first keyframe.
669
670 export_mvs
671 Export motion vectors into frame side-data (see
672 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
673 also doc/examples/export_mvs.c.
674
675 skip_manual
676 Do not skip samples and export skip information as frame side
677 data.
678
679 ass_ro_flush_noop
680 Do not reset ASS ReadOrder field on flush.
681
682 export_side_data flags (decoding/encoding,audio,video,subtitles)
683 Possible values:
684
685 mvs Export motion vectors into frame side-data (see
686 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
687 also doc/examples/export_mvs.c.
688
689 prft
690 Export encoder Producer Reference Time into packet side-data
691 (see "AV_PKT_DATA_PRFT") for codecs that support it.
692
693 venc_params
694 Export video encoding parameters through frame side data (see
695 "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
696 At present, those are H.264 and VP9.
697
698 film_grain
699 Export film grain parameters through frame side data (see
700 "AV_FRAME_DATA_FILM_GRAIN_PARAMS"). Supported at present by
701 AV1 decoders.
702
703 threads integer (decoding/encoding,video)
704 Set the number of threads to be used, in case the selected codec
705 implementation supports multi-threading.
706
707 Possible values:
708
709 auto, 0
710 automatically select the number of threads to set
711
712 Default value is auto.
713
714 dc integer (encoding,video)
715 Set intra_dc_precision.
716
717 nssew integer (encoding,video)
718 Set nsse weight.
719
720 skip_top integer (decoding,video)
721 Set number of macroblock rows at the top which are skipped.
722
723 skip_bottom integer (decoding,video)
724 Set number of macroblock rows at the bottom which are skipped.
725
726 profile integer (encoding,audio,video)
727 Set encoder codec profile. Default value is unknown. Encoder
728 specific profiles are documented in the relevant encoder
729 documentation.
730
731 level integer (encoding,audio,video)
732 Possible values:
733
734 unknown
735 lowres integer (decoding,audio,video)
736 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
737
738 mblmin integer (encoding,video)
739 Set min macroblock lagrange factor (VBR).
740
741 mblmax integer (encoding,video)
742 Set max macroblock lagrange factor (VBR).
743
744 skip_loop_filter integer (decoding,video)
745 skip_idct integer (decoding,video)
746 skip_frame integer (decoding,video)
747 Make decoder discard processing depending on the frame type
748 selected by the option value.
749
750 skip_loop_filter skips frame loop filtering, skip_idct skips frame
751 IDCT/dequantization, skip_frame skips decoding.
752
753 Possible values:
754
755 none
756 Discard no frame.
757
758 default
759 Discard useless frames like 0-sized frames.
760
761 noref
762 Discard all non-reference frames.
763
764 bidir
765 Discard all bidirectional frames.
766
767 nokey
768 Discard all frames excepts keyframes.
769
770 nointra
771 Discard all frames except I frames.
772
773 all Discard all frames.
774
775 Default value is default.
776
777 bidir_refine integer (encoding,video)
778 Refine the two motion vectors used in bidirectional macroblocks.
779
780 keyint_min integer (encoding,video)
781 Set minimum interval between IDR-frames.
782
783 refs integer (encoding,video)
784 Set reference frames to consider for motion compensation.
785
786 trellis integer (encoding,audio,video)
787 Set rate-distortion optimal quantization.
788
789 mv0_threshold integer (encoding,video)
790 compression_level integer (encoding,audio,video)
791 bits_per_raw_sample integer
792 channel_layout integer (decoding/encoding,audio)
793 Possible values:
794
795 request_channel_layout integer (decoding,audio)
796 Possible values:
797
798 rc_max_vbv_use float (encoding,video)
799 rc_min_vbv_use float (encoding,video)
800 ticks_per_frame integer (decoding/encoding,audio,video)
801 color_primaries integer (decoding/encoding,video)
802 Possible values:
803
804 bt709
805 BT.709
806
807 bt470m
808 BT.470 M
809
810 bt470bg
811 BT.470 BG
812
813 smpte170m
814 SMPTE 170 M
815
816 smpte240m
817 SMPTE 240 M
818
819 film
820 Film
821
822 bt2020
823 BT.2020
824
825 smpte428
826 smpte428_1
827 SMPTE ST 428-1
828
829 smpte431
830 SMPTE 431-2
831
832 smpte432
833 SMPTE 432-1
834
835 jedec-p22
836 JEDEC P22
837
838 color_trc integer (decoding/encoding,video)
839 Possible values:
840
841 bt709
842 BT.709
843
844 gamma22
845 BT.470 M
846
847 gamma28
848 BT.470 BG
849
850 smpte170m
851 SMPTE 170 M
852
853 smpte240m
854 SMPTE 240 M
855
856 linear
857 Linear
858
859 log
860 log100
861 Log
862
863 log_sqrt
864 log316
865 Log square root
866
867 iec61966_2_4
868 iec61966-2-4
869 IEC 61966-2-4
870
871 bt1361
872 bt1361e
873 BT.1361
874
875 iec61966_2_1
876 iec61966-2-1
877 IEC 61966-2-1
878
879 bt2020_10
880 bt2020_10bit
881 BT.2020 - 10 bit
882
883 bt2020_12
884 bt2020_12bit
885 BT.2020 - 12 bit
886
887 smpte2084
888 SMPTE ST 2084
889
890 smpte428
891 smpte428_1
892 SMPTE ST 428-1
893
894 arib-std-b67
895 ARIB STD-B67
896
897 colorspace integer (decoding/encoding,video)
898 Possible values:
899
900 rgb RGB
901
902 bt709
903 BT.709
904
905 fcc FCC
906
907 bt470bg
908 BT.470 BG
909
910 smpte170m
911 SMPTE 170 M
912
913 smpte240m
914 SMPTE 240 M
915
916 ycocg
917 YCOCG
918
919 bt2020nc
920 bt2020_ncl
921 BT.2020 NCL
922
923 bt2020c
924 bt2020_cl
925 BT.2020 CL
926
927 smpte2085
928 SMPTE 2085
929
930 chroma-derived-nc
931 Chroma-derived NCL
932
933 chroma-derived-c
934 Chroma-derived CL
935
936 ictcp
937 ICtCp
938
939 color_range integer (decoding/encoding,video)
940 If used as input parameter, it serves as a hint to the decoder,
941 which color_range the input has. Possible values:
942
943 tv
944 mpeg
945 MPEG (219*2^(n-8))
946
947 pc
948 jpeg
949 JPEG (2^n-1)
950
951 chroma_sample_location integer (decoding/encoding,video)
952 Possible values:
953
954 left
955 center
956 topleft
957 top
958 bottomleft
959 bottom
960 log_level_offset integer
961 Set the log level offset.
962
963 slices integer (encoding,video)
964 Number of slices, used in parallelized encoding.
965
966 thread_type flags (decoding/encoding,video)
967 Select which multithreading methods to use.
968
969 Use of frame will increase decoding delay by one frame per thread,
970 so clients which cannot provide future frames should not use it.
971
972 Possible values:
973
974 slice
975 Decode more than one part of a single frame at once.
976
977 Multithreading using slices works only when the video was
978 encoded with slices.
979
980 frame
981 Decode more than one frame at once.
982
983 Default value is slice+frame.
984
985 audio_service_type integer (encoding,audio)
986 Set audio service type.
987
988 Possible values:
989
990 ma Main Audio Service
991
992 ef Effects
993
994 vi Visually Impaired
995
996 hi Hearing Impaired
997
998 di Dialogue
999
1000 co Commentary
1001
1002 em Emergency
1003
1004 vo Voice Over
1005
1006 ka Karaoke
1007
1008 request_sample_fmt sample_fmt (decoding,audio)
1009 Set sample format audio decoders should prefer. Default value is
1010 "none".
1011
1012 pkt_timebase rational number
1013 sub_charenc encoding (decoding,subtitles)
1014 Set the input subtitles character encoding.
1015
1016 field_order field_order (video)
1017 Set/override the field order of the video. Possible values:
1018
1019 progressive
1020 Progressive video
1021
1022 tt Interlaced video, top field coded and displayed first
1023
1024 bb Interlaced video, bottom field coded and displayed first
1025
1026 tb Interlaced video, top coded first, bottom displayed first
1027
1028 bt Interlaced video, bottom coded first, top displayed first
1029
1030 skip_alpha bool (decoding,video)
1031 Set to 1 to disable processing alpha (transparency). This works
1032 like the gray flag in the flags option which skips chroma
1033 information instead of alpha. Default is 0.
1034
1035 codec_whitelist list (input)
1036 "," separated list of allowed decoders. By default all are allowed.
1037
1038 dump_separator string (input)
1039 Separator used to separate the fields printed on the command line
1040 about the Stream parameters. For example, to separate the fields
1041 with newlines and indentation:
1042
1043 ffprobe -dump_separator "
1044 " -i ~/videos/matrixbench_mpeg2.mpg
1045
1046 max_pixels integer (decoding/encoding,video)
1047 Maximum number of pixels per image. This value can be used to avoid
1048 out of memory failures due to large images.
1049
1050 apply_cropping bool (decoding,video)
1051 Enable cropping if cropping parameters are multiples of the
1052 required alignment for the left and top parameters. If the
1053 alignment is not met the cropping will be partially applied to
1054 maintain alignment. Default is 1 (enabled). Note: The required
1055 alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
1056 CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
1057 line. Also hardware decoders will not apply left/top Cropping.
1058
1060 Decoders are configured elements in FFmpeg which allow the decoding of
1061 multimedia streams.
1062
1063 When you configure your FFmpeg build, all the supported native decoders
1064 are enabled by default. Decoders requiring an external library must be
1065 enabled manually via the corresponding "--enable-lib" option. You can
1066 list all available decoders using the configure option
1067 "--list-decoders".
1068
1069 You can disable all the decoders with the configure option
1070 "--disable-decoders" and selectively enable / disable single decoders
1071 with the options "--enable-decoder=DECODER" /
1072 "--disable-decoder=DECODER".
1073
1074 The option "-decoders" of the ff* tools will display the list of
1075 enabled decoders.
1076
1078 A description of some of the currently available video decoders
1079 follows.
1080
1081 av1
1082 AOMedia Video 1 (AV1) decoder.
1083
1084 Options
1085
1086 operating_point
1087 Select an operating point of a scalable AV1 bitstream (0 - 31).
1088 Default is 0.
1089
1090 rawvideo
1091 Raw video decoder.
1092
1093 This decoder decodes rawvideo streams.
1094
1095 Options
1096
1097 top top_field_first
1098 Specify the assumed field type of the input video.
1099
1100 -1 the video is assumed to be progressive (default)
1101
1102 0 bottom-field-first is assumed
1103
1104 1 top-field-first is assumed
1105
1106 libdav1d
1107 dav1d AV1 decoder.
1108
1109 libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
1110 Requires the presence of the libdav1d headers and library during
1111 configuration. You need to explicitly configure the build with
1112 "--enable-libdav1d".
1113
1114 Options
1115
1116 The following options are supported by the libdav1d wrapper.
1117
1118 framethreads
1119 Set amount of frame threads to use during decoding. The default
1120 value is 0 (autodetect). This option is deprecated for libdav1d >=
1121 1.0 and will be removed in the future. Use the global option
1122 "threads" instead.
1123
1124 tilethreads
1125 Set amount of tile threads to use during decoding. The default
1126 value is 0 (autodetect). This option is deprecated for libdav1d >=
1127 1.0 and will be removed in the future. Use the global option
1128 "threads" instead.
1129
1130 filmgrain
1131 Apply film grain to the decoded video if present in the bitstream.
1132 Defaults to the internal default of the library. This option is
1133 deprecated and will be removed in the future. See the global option
1134 "export_side_data" to export Film Grain parameters instead of
1135 applying it.
1136
1137 oppoint
1138 Select an operating point of a scalable AV1 bitstream (0 - 31).
1139 Defaults to the internal default of the library.
1140
1141 alllayers
1142 Output all spatial layers of a scalable AV1 bitstream. The default
1143 value is false.
1144
1145 libdavs2
1146 AVS2-P2/IEEE1857.4 video decoder wrapper.
1147
1148 This decoder allows libavcodec to decode AVS2 streams with davs2
1149 library.
1150
1151 libuavs3d
1152 AVS3-P2/IEEE1857.10 video decoder.
1153
1154 libuavs3d allows libavcodec to decode AVS3 streams. Requires the
1155 presence of the libuavs3d headers and library during configuration.
1156 You need to explicitly configure the build with "--enable-libuavs3d".
1157
1158 Options
1159
1160 The following option is supported by the libuavs3d wrapper.
1161
1162 frame_threads
1163 Set amount of frame threads to use during decoding. The default
1164 value is 0 (autodetect).
1165
1166 QSV Decoders
1167 The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
1168 JPEG/MJPEG, VP8, VP9, AV1).
1169
1170 Common Options
1171
1172 The following options are supported by all qsv decoders.
1173
1174 async_depth
1175 Internal parallelization depth, the higher the value the higher the
1176 latency.
1177
1178 gpu_copy
1179 A GPU-accelerated copy between video and system memory
1180
1181 default
1182 on
1183 off
1184
1185 HEVC Options
1186
1187 Extra options for hevc_qsv.
1188
1189 load_plugin
1190 A user plugin to load in an internal session
1191
1192 none
1193 hevc_sw
1194 hevc_hw
1195 load_plugins
1196 A :-separate list of hexadecimal plugin UIDs to load in an internal
1197 session
1198
1199 v210
1200 Uncompressed 4:2:2 10-bit decoder.
1201
1202 Options
1203
1204 custom_stride
1205 Set the line size of the v210 data in bytes. The default value is 0
1206 (autodetect). You can use the special -1 value for a strideless
1207 v210 as seen in BOXX files.
1208
1210 A description of some of the currently available audio decoders
1211 follows.
1212
1213 ac3
1214 AC-3 audio decoder.
1215
1216 This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
1217 well as the undocumented RealAudio 3 (a.k.a. dnet).
1218
1219 AC-3 Decoder Options
1220
1221 -drc_scale value
1222 Dynamic Range Scale Factor. The factor to apply to dynamic range
1223 values from the AC-3 stream. This factor is applied exponentially.
1224 The default value is 1. There are 3 notable scale factor ranges:
1225
1226 drc_scale == 0
1227 DRC disabled. Produces full range audio.
1228
1229 0 < drc_scale <= 1
1230 DRC enabled. Applies a fraction of the stream DRC value.
1231 Audio reproduction is between full range and full compression.
1232
1233 drc_scale > 1
1234 DRC enabled. Applies drc_scale asymmetrically. Loud sounds are
1235 fully compressed. Soft sounds are enhanced.
1236
1237 flac
1238 FLAC audio decoder.
1239
1240 This decoder aims to implement the complete FLAC specification from
1241 Xiph.
1242
1243 FLAC Decoder options
1244
1245 -use_buggy_lpc
1246 The lavc FLAC encoder used to produce buggy streams with high lpc
1247 values (like the default value). This option makes it possible to
1248 decode such streams correctly by using lavc's old buggy lpc logic
1249 for decoding.
1250
1251 ffwavesynth
1252 Internal wave synthesizer.
1253
1254 This decoder generates wave patterns according to predefined sequences.
1255 Its use is purely internal and the format of the data it accepts is not
1256 publicly documented.
1257
1258 libcelt
1259 libcelt decoder wrapper.
1260
1261 libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
1262 codec. Requires the presence of the libcelt headers and library during
1263 configuration. You need to explicitly configure the build with
1264 "--enable-libcelt".
1265
1266 libgsm
1267 libgsm decoder wrapper.
1268
1269 libgsm allows libavcodec to decode the GSM full rate audio codec.
1270 Requires the presence of the libgsm headers and library during
1271 configuration. You need to explicitly configure the build with
1272 "--enable-libgsm".
1273
1274 This decoder supports both the ordinary GSM and the Microsoft variant.
1275
1276 libilbc
1277 libilbc decoder wrapper.
1278
1279 libilbc allows libavcodec to decode the Internet Low Bitrate Codec
1280 (iLBC) audio codec. Requires the presence of the libilbc headers and
1281 library during configuration. You need to explicitly configure the
1282 build with "--enable-libilbc".
1283
1284 Options
1285
1286 The following option is supported by the libilbc wrapper.
1287
1288 enhance
1289 Enable the enhancement of the decoded audio when set to 1. The
1290 default value is 0 (disabled).
1291
1292 libopencore-amrnb
1293 libopencore-amrnb decoder wrapper.
1294
1295 libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
1296 Narrowband audio codec. Using it requires the presence of the
1297 libopencore-amrnb headers and library during configuration. You need to
1298 explicitly configure the build with "--enable-libopencore-amrnb".
1299
1300 An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
1301 without this library.
1302
1303 libopencore-amrwb
1304 libopencore-amrwb decoder wrapper.
1305
1306 libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
1307 Wideband audio codec. Using it requires the presence of the
1308 libopencore-amrwb headers and library during configuration. You need to
1309 explicitly configure the build with "--enable-libopencore-amrwb".
1310
1311 An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
1312 without this library.
1313
1314 libopus
1315 libopus decoder wrapper.
1316
1317 libopus allows libavcodec to decode the Opus Interactive Audio Codec.
1318 Requires the presence of the libopus headers and library during
1319 configuration. You need to explicitly configure the build with
1320 "--enable-libopus".
1321
1322 An FFmpeg native decoder for Opus exists, so users can decode Opus
1323 without this library.
1324
1326 libaribb24
1327 ARIB STD-B24 caption decoder.
1328
1329 Implements profiles A and C of the ARIB STD-B24 standard.
1330
1331 libaribb24 Decoder Options
1332
1333 -aribb24-base-path path
1334 Sets the base path for the libaribb24 library. This is utilized for
1335 reading of configuration files (for custom unicode conversions),
1336 and for dumping of non-text symbols as images under that location.
1337
1338 Unset by default.
1339
1340 -aribb24-skip-ruby-text boolean
1341 Tells the decoder wrapper to skip text blocks that contain half-
1342 height ruby text.
1343
1344 Enabled by default.
1345
1346 dvbsub
1347 Options
1348
1349 compute_clut
1350 -2 Compute clut once if no matching CLUT is in the stream.
1351
1352 -1 Compute clut if no matching CLUT is in the stream.
1353
1354 0 Never compute CLUT
1355
1356 1 Always compute CLUT and override the one provided in the
1357 stream.
1358
1359 dvb_substream
1360 Selects the dvb substream, or all substreams if -1 which is
1361 default.
1362
1363 dvdsub
1364 This codec decodes the bitmap subtitles used in DVDs; the same
1365 subtitles can also be found in VobSub file pairs and in some Matroska
1366 files.
1367
1368 Options
1369
1370 palette
1371 Specify the global palette used by the bitmaps. When stored in
1372 VobSub, the palette is normally specified in the index file; in
1373 Matroska, the palette is stored in the codec extra-data in the same
1374 format as in VobSub. In DVDs, the palette is stored in the IFO
1375 file, and therefore not available when reading from dumped VOB
1376 files.
1377
1378 The format for this option is a string containing 16 24-bits
1379 hexadecimal numbers (without 0x prefix) separated by commas, for
1380 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
1381 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
1382 7c127b".
1383
1384 ifo_palette
1385 Specify the IFO file from which the global palette is obtained.
1386 (experimental)
1387
1388 forced_subs_only
1389 Only decode subtitle entries marked as forced. Some titles have
1390 forced and non-forced subtitles in the same track. Setting this
1391 flag to 1 will only keep the forced subtitles. Default value is 0.
1392
1393 libzvbi-teletext
1394 Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
1395 subtitles. Requires the presence of the libzvbi headers and library
1396 during configuration. You need to explicitly configure the build with
1397 "--enable-libzvbi".
1398
1399 Options
1400
1401 txt_page
1402 List of teletext page numbers to decode. Pages that do not match
1403 the specified list are dropped. You may use the special "*" string
1404 to match all pages, or "subtitle" to match all subtitle pages.
1405 Default value is *.
1406
1407 txt_default_region
1408 Set default character set used for decoding, a value between 0 and
1409 87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
1410 which does not override the libzvbi default. This option is needed
1411 for some legacy level 1.0 transmissions which cannot signal the
1412 proper charset.
1413
1414 txt_chop_top
1415 Discards the top teletext line. Default value is 1.
1416
1417 txt_format
1418 Specifies the format of the decoded subtitles.
1419
1420 bitmap
1421 The default format, you should use this for teletext pages,
1422 because certain graphics and colors cannot be expressed in
1423 simple text or even ASS.
1424
1425 text
1426 Simple text based output without formatting.
1427
1428 ass Formatted ASS output, subtitle pages and teletext pages are
1429 returned in different styles, subtitle pages are stripped down
1430 to text, but an effort is made to keep the text alignment and
1431 the formatting.
1432
1433 txt_left
1434 X offset of generated bitmaps, default is 0.
1435
1436 txt_top
1437 Y offset of generated bitmaps, default is 0.
1438
1439 txt_chop_spaces
1440 Chops leading and trailing spaces and removes empty lines from the
1441 generated text. This option is useful for teletext based subtitles
1442 where empty spaces may be present at the start or at the end of the
1443 lines or empty lines may be present between the subtitle lines
1444 because of double-sized teletext characters. Default value is 1.
1445
1446 txt_duration
1447 Sets the display duration of the decoded teletext pages or
1448 subtitles in milliseconds. Default value is -1 which means infinity
1449 or until the next subtitle event comes.
1450
1451 txt_transparent
1452 Force transparent background of the generated teletext bitmaps.
1453 Default value is 0 which means an opaque background.
1454
1455 txt_opacity
1456 Sets the opacity (0-255) of the teletext background. If
1457 txt_transparent is not set, it only affects characters between a
1458 start box and an end box, typically subtitles. Default value is 0
1459 if txt_transparent is set, 255 otherwise.
1460
1462 Encoders are configured elements in FFmpeg which allow the encoding of
1463 multimedia streams.
1464
1465 When you configure your FFmpeg build, all the supported native encoders
1466 are enabled by default. Encoders requiring an external library must be
1467 enabled manually via the corresponding "--enable-lib" option. You can
1468 list all available encoders using the configure option
1469 "--list-encoders".
1470
1471 You can disable all the encoders with the configure option
1472 "--disable-encoders" and selectively enable / disable single encoders
1473 with the options "--enable-encoder=ENCODER" /
1474 "--disable-encoder=ENCODER".
1475
1476 The option "-encoders" of the ff* tools will display the list of
1477 enabled encoders.
1478
1480 A description of some of the currently available audio encoders
1481 follows.
1482
1483 aac
1484 Advanced Audio Coding (AAC) encoder.
1485
1486 This encoder is the default AAC encoder, natively implemented into
1487 FFmpeg.
1488
1489 Options
1490
1491 b Set bit rate in bits/s. Setting this automatically activates
1492 constant bit rate (CBR) mode. If this option is unspecified it is
1493 set to 128kbps.
1494
1495 q Set quality for variable bit rate (VBR) mode. This option is valid
1496 only using the ffmpeg command-line tool. For library interface
1497 users, use global_quality.
1498
1499 cutoff
1500 Set cutoff frequency. If unspecified will allow the encoder to
1501 dynamically adjust the cutoff to improve clarity on low bitrates.
1502
1503 aac_coder
1504 Set AAC encoder coding method. Possible values:
1505
1506 twoloop
1507 Two loop searching (TLS) method. This is the default method.
1508
1509 This method first sets quantizers depending on band thresholds
1510 and then tries to find an optimal combination by adding or
1511 subtracting a specific value from all quantizers and adjusting
1512 some individual quantizer a little. Will tune itself based on
1513 whether aac_is, aac_ms and aac_pns are enabled.
1514
1515 anmr
1516 Average noise to mask ratio (ANMR) trellis-based solution.
1517
1518 This is an experimental coder which currently produces a lower
1519 quality, is more unstable and is slower than the default
1520 twoloop coder but has potential. Currently has no support for
1521 the aac_is or aac_pns options. Not currently recommended.
1522
1523 fast
1524 Constant quantizer method.
1525
1526 Uses a cheaper version of twoloop algorithm that doesn't try to
1527 do as many clever adjustments. Worse with low bitrates (less
1528 than 64kbps), but is better and much faster at higher bitrates.
1529
1530 aac_ms
1531 Sets mid/side coding mode. The default value of "auto" will
1532 automatically use M/S with bands which will benefit from such
1533 coding. Can be forced for all bands using the value "enable", which
1534 is mainly useful for debugging or disabled using "disable".
1535
1536 aac_is
1537 Sets intensity stereo coding tool usage. By default, it's enabled
1538 and will automatically toggle IS for similar pairs of stereo bands
1539 if it's beneficial. Can be disabled for debugging by setting the
1540 value to "disable".
1541
1542 aac_pns
1543 Uses perceptual noise substitution to replace low entropy high
1544 frequency bands with imperceptible white noise during the decoding
1545 process. By default, it's enabled, but can be disabled for
1546 debugging purposes by using "disable".
1547
1548 aac_tns
1549 Enables the use of a multitap FIR filter which spans through the
1550 high frequency bands to hide quantization noise during the encoding
1551 process and is reverted by the decoder. As well as decreasing
1552 unpleasant artifacts in the high range this also reduces the
1553 entropy in the high bands and allows for more bits to be used by
1554 the mid-low bands. By default it's enabled but can be disabled for
1555 debugging by setting the option to "disable".
1556
1557 aac_ltp
1558 Enables the use of the long term prediction extension which
1559 increases coding efficiency in very low bandwidth situations such
1560 as encoding of voice or solo piano music by extending constant
1561 harmonic peaks in bands throughout frames. This option is implied
1562 by profile:a aac_low and is incompatible with aac_pred. Use in
1563 conjunction with -ar to decrease the samplerate.
1564
1565 aac_pred
1566 Enables the use of a more traditional style of prediction where the
1567 spectral coefficients transmitted are replaced by the difference of
1568 the current coefficients minus the previous "predicted"
1569 coefficients. In theory and sometimes in practice this can improve
1570 quality for low to mid bitrate audio. This option implies the
1571 aac_main profile and is incompatible with aac_ltp.
1572
1573 profile
1574 Sets the encoding profile, possible values:
1575
1576 aac_low
1577 The default, AAC "Low-complexity" profile. Is the most
1578 compatible and produces decent quality.
1579
1580 mpeg2_aac_low
1581 Equivalent to "-profile:a aac_low -aac_pns 0". PNS was
1582 introduced with the MPEG4 specifications.
1583
1584 aac_ltp
1585 Long term prediction profile, is enabled by and will enable the
1586 aac_ltp option. Introduced in MPEG4.
1587
1588 aac_main
1589 Main-type prediction profile, is enabled by and will enable the
1590 aac_pred option. Introduced in MPEG2.
1591
1592 If this option is unspecified it is set to aac_low.
1593
1594 ac3 and ac3_fixed
1595 AC-3 audio encoders.
1596
1597 These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as
1598 well as the undocumented RealAudio 3 (a.k.a. dnet).
1599
1600 The ac3 encoder uses floating-point math, while the ac3_fixed encoder
1601 only uses fixed-point integer math. This does not mean that one is
1602 always faster, just that one or the other may be better suited to a
1603 particular system. The ac3_fixed encoder is not the default codec for
1604 any of the output formats, so it must be specified explicitly using the
1605 option "-acodec ac3_fixed" in order to use it.
1606
1607 AC-3 Metadata
1608
1609 The AC-3 metadata options are used to set parameters that describe the
1610 audio, but in most cases do not affect the audio encoding itself. Some
1611 of the options do directly affect or influence the decoding and
1612 playback of the resulting bitstream, while others are just for
1613 informational purposes. A few of the options will add bits to the
1614 output stream that could otherwise be used for audio data, and will
1615 thus affect the quality of the output. Those will be indicated
1616 accordingly with a note in the option list below.
1617
1618 These parameters are described in detail in several publicly-available
1619 documents.
1620
1621 *<<http://www.atsc.org/cms/standards/a_52-2010.pdf>>
1622 *<<http://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf>>
1623 *<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf>>
1624 *<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf>>
1625
1626 Metadata Control Options
1627
1628 -per_frame_metadata boolean
1629 Allow Per-Frame Metadata. Specifies if the encoder should check for
1630 changing metadata for each frame.
1631
1632 0 The metadata values set at initialization will be used for
1633 every frame in the stream. (default)
1634
1635 1 Metadata values can be changed before encoding each frame.
1636
1637 Downmix Levels
1638
1639 -center_mixlev level
1640 Center Mix Level. The amount of gain the decoder should apply to
1641 the center channel when downmixing to stereo. This field will only
1642 be written to the bitstream if a center channel is present. The
1643 value is specified as a scale factor. There are 3 valid values:
1644
1645 0.707
1646 Apply -3dB gain
1647
1648 0.595
1649 Apply -4.5dB gain (default)
1650
1651 0.500
1652 Apply -6dB gain
1653
1654 -surround_mixlev level
1655 Surround Mix Level. The amount of gain the decoder should apply to
1656 the surround channel(s) when downmixing to stereo. This field will
1657 only be written to the bitstream if one or more surround channels
1658 are present. The value is specified as a scale factor. There are 3
1659 valid values:
1660
1661 0.707
1662 Apply -3dB gain
1663
1664 0.500
1665 Apply -6dB gain (default)
1666
1667 0.000
1668 Silence Surround Channel(s)
1669
1670 Audio Production Information
1671
1672 Audio Production Information is optional information describing the
1673 mixing environment. Either none or both of the fields are written to
1674 the bitstream.
1675
1676 -mixing_level number
1677 Mixing Level. Specifies peak sound pressure level (SPL) in the
1678 production environment when the mix was mastered. Valid values are
1679 80 to 111, or -1 for unknown or not indicated. The default value is
1680 -1, but that value cannot be used if the Audio Production
1681 Information is written to the bitstream. Therefore, if the
1682 "room_type" option is not the default value, the "mixing_level"
1683 option must not be -1.
1684
1685 -room_type type
1686 Room Type. Describes the equalization used during the final mixing
1687 session at the studio or on the dubbing stage. A large room is a
1688 dubbing stage with the industry standard X-curve equalization; a
1689 small room has flat equalization. This field will not be written
1690 to the bitstream if both the "mixing_level" option and the
1691 "room_type" option have the default values.
1692
1693 0
1694 notindicated
1695 Not Indicated (default)
1696
1697 1
1698 large
1699 Large Room
1700
1701 2
1702 small
1703 Small Room
1704
1705 Other Metadata Options
1706
1707 -copyright boolean
1708 Copyright Indicator. Specifies whether a copyright exists for this
1709 audio.
1710
1711 0
1712 off No Copyright Exists (default)
1713
1714 1
1715 on Copyright Exists
1716
1717 -dialnorm value
1718 Dialogue Normalization. Indicates how far the average dialogue
1719 level of the program is below digital 100% full scale (0 dBFS).
1720 This parameter determines a level shift during audio reproduction
1721 that sets the average volume of the dialogue to a preset level. The
1722 goal is to match volume level between program sources. A value of
1723 -31dB will result in no volume level change, relative to the source
1724 volume, during audio reproduction. Valid values are whole numbers
1725 in the range -31 to -1, with -31 being the default.
1726
1727 -dsur_mode mode
1728 Dolby Surround Mode. Specifies whether the stereo signal uses Dolby
1729 Surround (Pro Logic). This field will only be written to the
1730 bitstream if the audio stream is stereo. Using this option does NOT
1731 mean the encoder will actually apply Dolby Surround processing.
1732
1733 0
1734 notindicated
1735 Not Indicated (default)
1736
1737 1
1738 off Not Dolby Surround Encoded
1739
1740 2
1741 on Dolby Surround Encoded
1742
1743 -original boolean
1744 Original Bit Stream Indicator. Specifies whether this audio is from
1745 the original source and not a copy.
1746
1747 0
1748 off Not Original Source
1749
1750 1
1751 on Original Source (default)
1752
1753 Extended Bitstream Information
1754
1755 The extended bitstream options are part of the Alternate Bit Stream
1756 Syntax as specified in Annex D of the A/52:2010 standard. It is grouped
1757 into 2 parts. If any one parameter in a group is specified, all values
1758 in that group will be written to the bitstream. Default values are
1759 used for those that are written but have not been specified. If the
1760 mixing levels are written, the decoder will use these values instead of
1761 the ones specified in the "center_mixlev" and "surround_mixlev" options
1762 if it supports the Alternate Bit Stream Syntax.
1763
1764 Extended Bitstream Information - Part 1
1765
1766 -dmix_mode mode
1767 Preferred Stereo Downmix Mode. Allows the user to select either
1768 Lt/Rt (Dolby Surround) or Lo/Ro (normal stereo) as the preferred
1769 stereo downmix mode.
1770
1771 0
1772 notindicated
1773 Not Indicated (default)
1774
1775 1
1776 ltrt
1777 Lt/Rt Downmix Preferred
1778
1779 2
1780 loro
1781 Lo/Ro Downmix Preferred
1782
1783 -ltrt_cmixlev level
1784 Lt/Rt Center Mix Level. The amount of gain the decoder should apply
1785 to the center channel when downmixing to stereo in Lt/Rt mode.
1786
1787 1.414
1788 Apply +3dB gain
1789
1790 1.189
1791 Apply +1.5dB gain
1792
1793 1.000
1794 Apply 0dB gain
1795
1796 0.841
1797 Apply -1.5dB gain
1798
1799 0.707
1800 Apply -3.0dB gain
1801
1802 0.595
1803 Apply -4.5dB gain (default)
1804
1805 0.500
1806 Apply -6.0dB gain
1807
1808 0.000
1809 Silence Center Channel
1810
1811 -ltrt_surmixlev level
1812 Lt/Rt Surround Mix Level. The amount of gain the decoder should
1813 apply to the surround channel(s) when downmixing to stereo in Lt/Rt
1814 mode.
1815
1816 0.841
1817 Apply -1.5dB gain
1818
1819 0.707
1820 Apply -3.0dB gain
1821
1822 0.595
1823 Apply -4.5dB gain
1824
1825 0.500
1826 Apply -6.0dB gain (default)
1827
1828 0.000
1829 Silence Surround Channel(s)
1830
1831 -loro_cmixlev level
1832 Lo/Ro Center Mix Level. The amount of gain the decoder should apply
1833 to the center channel when downmixing to stereo in Lo/Ro mode.
1834
1835 1.414
1836 Apply +3dB gain
1837
1838 1.189
1839 Apply +1.5dB gain
1840
1841 1.000
1842 Apply 0dB gain
1843
1844 0.841
1845 Apply -1.5dB gain
1846
1847 0.707
1848 Apply -3.0dB gain
1849
1850 0.595
1851 Apply -4.5dB gain (default)
1852
1853 0.500
1854 Apply -6.0dB gain
1855
1856 0.000
1857 Silence Center Channel
1858
1859 -loro_surmixlev level
1860 Lo/Ro Surround Mix Level. The amount of gain the decoder should
1861 apply to the surround channel(s) when downmixing to stereo in Lo/Ro
1862 mode.
1863
1864 0.841
1865 Apply -1.5dB gain
1866
1867 0.707
1868 Apply -3.0dB gain
1869
1870 0.595
1871 Apply -4.5dB gain
1872
1873 0.500
1874 Apply -6.0dB gain (default)
1875
1876 0.000
1877 Silence Surround Channel(s)
1878
1879 Extended Bitstream Information - Part 2
1880
1881 -dsurex_mode mode
1882 Dolby Surround EX Mode. Indicates whether the stream uses Dolby
1883 Surround EX (7.1 matrixed to 5.1). Using this option does NOT mean
1884 the encoder will actually apply Dolby Surround EX processing.
1885
1886 0
1887 notindicated
1888 Not Indicated (default)
1889
1890 1
1891 on Dolby Surround EX Off
1892
1893 2
1894 off Dolby Surround EX On
1895
1896 -dheadphone_mode mode
1897 Dolby Headphone Mode. Indicates whether the stream uses Dolby
1898 Headphone encoding (multi-channel matrixed to 2.0 for use with
1899 headphones). Using this option does NOT mean the encoder will
1900 actually apply Dolby Headphone processing.
1901
1902 0
1903 notindicated
1904 Not Indicated (default)
1905
1906 1
1907 on Dolby Headphone Off
1908
1909 2
1910 off Dolby Headphone On
1911
1912 -ad_conv_type type
1913 A/D Converter Type. Indicates whether the audio has passed through
1914 HDCD A/D conversion.
1915
1916 0
1917 standard
1918 Standard A/D Converter (default)
1919
1920 1
1921 hdcd
1922 HDCD A/D Converter
1923
1924 Other AC-3 Encoding Options
1925
1926 -stereo_rematrixing boolean
1927 Stereo Rematrixing. Enables/Disables use of rematrixing for stereo
1928 input. This is an optional AC-3 feature that increases quality by
1929 selectively encoding the left/right channels as mid/side. This
1930 option is enabled by default, and it is highly recommended that it
1931 be left as enabled except for testing purposes.
1932
1933 cutoff frequency
1934 Set lowpass cutoff frequency. If unspecified, the encoder selects a
1935 default determined by various other encoding parameters.
1936
1937 Floating-Point-Only AC-3 Encoding Options
1938
1939 These options are only valid for the floating-point encoder and do not
1940 exist for the fixed-point encoder due to the corresponding features not
1941 being implemented in fixed-point.
1942
1943 -channel_coupling boolean
1944 Enables/Disables use of channel coupling, which is an optional AC-3
1945 feature that increases quality by combining high frequency
1946 information from multiple channels into a single channel. The per-
1947 channel high frequency information is sent with less accuracy in
1948 both the frequency and time domains. This allows more bits to be
1949 used for lower frequencies while preserving enough information to
1950 reconstruct the high frequencies. This option is enabled by default
1951 for the floating-point encoder and should generally be left as
1952 enabled except for testing purposes or to increase encoding speed.
1953
1954 -1
1955 auto
1956 Selected by Encoder (default)
1957
1958 0
1959 off Disable Channel Coupling
1960
1961 1
1962 on Enable Channel Coupling
1963
1964 -cpl_start_band number
1965 Coupling Start Band. Sets the channel coupling start band, from 1
1966 to 15. If a value higher than the bandwidth is used, it will be
1967 reduced to 1 less than the coupling end band. If auto is used, the
1968 start band will be determined by the encoder based on the bit rate,
1969 sample rate, and channel layout. This option has no effect if
1970 channel coupling is disabled.
1971
1972 -1
1973 auto
1974 Selected by Encoder (default)
1975
1976 flac
1977 FLAC (Free Lossless Audio Codec) Encoder
1978
1979 Options
1980
1981 The following options are supported by FFmpeg's flac encoder.
1982
1983 compression_level
1984 Sets the compression level, which chooses defaults for many other
1985 options if they are not set explicitly. Valid values are from 0 to
1986 12, 5 is the default.
1987
1988 frame_size
1989 Sets the size of the frames in samples per channel.
1990
1991 lpc_coeff_precision
1992 Sets the LPC coefficient precision, valid values are from 1 to 15,
1993 15 is the default.
1994
1995 lpc_type
1996 Sets the first stage LPC algorithm
1997
1998 none
1999 LPC is not used
2000
2001 fixed
2002 fixed LPC coefficients
2003
2004 levinson
2005 cholesky
2006 lpc_passes
2007 Number of passes to use for Cholesky factorization during LPC
2008 analysis
2009
2010 min_partition_order
2011 The minimum partition order
2012
2013 max_partition_order
2014 The maximum partition order
2015
2016 prediction_order_method
2017 estimation
2018 2level
2019 4level
2020 8level
2021 search
2022 Bruteforce search
2023
2024 log
2025 ch_mode
2026 Channel mode
2027
2028 auto
2029 The mode is chosen automatically for each frame
2030
2031 indep
2032 Channels are independently coded
2033
2034 left_side
2035 right_side
2036 mid_side
2037 exact_rice_parameters
2038 Chooses if rice parameters are calculated exactly or approximately.
2039 if set to 1 then they are chosen exactly, which slows the code down
2040 slightly and improves compression slightly.
2041
2042 multi_dim_quant
2043 Multi Dimensional Quantization. If set to 1 then a 2nd stage LPC
2044 algorithm is applied after the first stage to finetune the
2045 coefficients. This is quite slow and slightly improves compression.
2046
2047 opus
2048 Opus encoder.
2049
2050 This is a native FFmpeg encoder for the Opus format. Currently its in
2051 development and only implements the CELT part of the codec. Its quality
2052 is usually worse and at best is equal to the libopus encoder.
2053
2054 Options
2055
2056 b Set bit rate in bits/s. If unspecified it uses the number of
2057 channels and the layout to make a good guess.
2058
2059 opus_delay
2060 Sets the maximum delay in milliseconds. Lower delays than 20ms will
2061 very quickly decrease quality.
2062
2063 libfdk_aac
2064 libfdk-aac AAC (Advanced Audio Coding) encoder wrapper.
2065
2066 The libfdk-aac library is based on the Fraunhofer FDK AAC code from the
2067 Android project.
2068
2069 Requires the presence of the libfdk-aac headers and library during
2070 configuration. You need to explicitly configure the build with
2071 "--enable-libfdk-aac". The library is also incompatible with GPL, so if
2072 you allow the use of GPL, you should configure with "--enable-gpl
2073 --enable-nonfree --enable-libfdk-aac".
2074
2075 This encoder has support for the AAC-HE profiles.
2076
2077 VBR encoding, enabled through the vbr or flags +qscale options, is
2078 experimental and only works with some combinations of parameters.
2079
2080 Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3
2081 or higher.
2082
2083 For more information see the fdk-aac project at
2084 <http://sourceforge.net/p/opencore-amr/fdk-aac/>.
2085
2086 Options
2087
2088 The following options are mapped on the shared FFmpeg codec options.
2089
2090 b Set bit rate in bits/s. If the bitrate is not explicitly specified,
2091 it is automatically set to a suitable value depending on the
2092 selected profile.
2093
2094 In case VBR mode is enabled the option is ignored.
2095
2096 ar Set audio sampling rate (in Hz).
2097
2098 channels
2099 Set the number of audio channels.
2100
2101 flags +qscale
2102 Enable fixed quality, VBR (Variable Bit Rate) mode. Note that VBR
2103 is implicitly enabled when the vbr value is positive.
2104
2105 cutoff
2106 Set cutoff frequency. If not specified (or explicitly set to 0) it
2107 will use a value automatically computed by the library. Default
2108 value is 0.
2109
2110 profile
2111 Set audio profile.
2112
2113 The following profiles are recognized:
2114
2115 aac_low
2116 Low Complexity AAC (LC)
2117
2118 aac_he
2119 High Efficiency AAC (HE-AAC)
2120
2121 aac_he_v2
2122 High Efficiency AAC version 2 (HE-AACv2)
2123
2124 aac_ld
2125 Low Delay AAC (LD)
2126
2127 aac_eld
2128 Enhanced Low Delay AAC (ELD)
2129
2130 If not specified it is set to aac_low.
2131
2132 The following are private options of the libfdk_aac encoder.
2133
2134 afterburner
2135 Enable afterburner feature if set to 1, disabled if set to 0. This
2136 improves the quality but also the required processing power.
2137
2138 Default value is 1.
2139
2140 eld_sbr
2141 Enable SBR (Spectral Band Replication) for ELD if set to 1,
2142 disabled if set to 0.
2143
2144 Default value is 0.
2145
2146 eld_v2
2147 Enable ELDv2 (LD-MPS extension for ELD stereo signals) for ELDv2 if
2148 set to 1, disabled if set to 0.
2149
2150 Note that option is available when fdk-aac version
2151 (AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) >
2152 (4.0.0).
2153
2154 Default value is 0.
2155
2156 signaling
2157 Set SBR/PS signaling style.
2158
2159 It can assume one of the following values:
2160
2161 default
2162 choose signaling implicitly (explicit hierarchical by default,
2163 implicit if global header is disabled)
2164
2165 implicit
2166 implicit backwards compatible signaling
2167
2168 explicit_sbr
2169 explicit SBR, implicit PS signaling
2170
2171 explicit_hierarchical
2172 explicit hierarchical signaling
2173
2174 Default value is default.
2175
2176 latm
2177 Output LATM/LOAS encapsulated data if set to 1, disabled if set to
2178 0.
2179
2180 Default value is 0.
2181
2182 header_period
2183 Set StreamMuxConfig and PCE repetition period (in frames) for
2184 sending in-band configuration buffers within LATM/LOAS transport
2185 layer.
2186
2187 Must be a 16-bits non-negative integer.
2188
2189 Default value is 0.
2190
2191 vbr Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty
2192 good) and 5 is highest quality. A value of 0 will disable VBR, and
2193 CBR (Constant Bit Rate) is enabled.
2194
2195 Currently only the aac_low profile supports VBR encoding.
2196
2197 VBR modes 1-5 correspond to roughly the following average bit
2198 rates:
2199
2200 1 32 kbps/channel
2201
2202 2 40 kbps/channel
2203
2204 3 48-56 kbps/channel
2205
2206 4 64 kbps/channel
2207
2208 5 about 80-96 kbps/channel
2209
2210 Default value is 0.
2211
2212 Examples
2213
2214 • Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4)
2215 container:
2216
2217 ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
2218
2219 • Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using the
2220 High-Efficiency AAC profile:
2221
2222 ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
2223
2224 libmp3lame
2225 LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper.
2226
2227 Requires the presence of the libmp3lame headers and library during
2228 configuration. You need to explicitly configure the build with
2229 "--enable-libmp3lame".
2230
2231 See libshine for a fixed-point MP3 encoder, although with a lower
2232 quality.
2233
2234 Options
2235
2236 The following options are supported by the libmp3lame wrapper. The
2237 lame-equivalent of the options are listed in parentheses.
2238
2239 b (-b)
2240 Set bitrate expressed in bits/s for CBR or ABR. LAME "bitrate" is
2241 expressed in kilobits/s.
2242
2243 q (-V)
2244 Set constant quality setting for VBR. This option is valid only
2245 using the ffmpeg command-line tool. For library interface users,
2246 use global_quality.
2247
2248 compression_level (-q)
2249 Set algorithm quality. Valid arguments are integers in the 0-9
2250 range, with 0 meaning highest quality but slowest, and 9 meaning
2251 fastest while producing the worst quality.
2252
2253 cutoff (--lowpass)
2254 Set lowpass cutoff frequency. If unspecified, the encoder
2255 dynamically adjusts the cutoff.
2256
2257 reservoir
2258 Enable use of bit reservoir when set to 1. Default value is 1. LAME
2259 has this enabled by default, but can be overridden by use --nores
2260 option.
2261
2262 joint_stereo (-m j)
2263 Enable the encoder to use (on a frame by frame basis) either L/R
2264 stereo or mid/side stereo. Default value is 1.
2265
2266 abr (--abr)
2267 Enable the encoder to use ABR when set to 1. The lame --abr sets
2268 the target bitrate, while this options only tells FFmpeg to use ABR
2269 still relies on b to set bitrate.
2270
2271 libopencore-amrnb
2272 OpenCORE Adaptive Multi-Rate Narrowband encoder.
2273
2274 Requires the presence of the libopencore-amrnb headers and library
2275 during configuration. You need to explicitly configure the build with
2276 "--enable-libopencore-amrnb --enable-version3".
2277
2278 This is a mono-only encoder. Officially it only supports 8000Hz sample
2279 rate, but you can override it by setting strict to unofficial or lower.
2280
2281 Options
2282
2283 b Set bitrate in bits per second. Only the following bitrates are
2284 supported, otherwise libavcodec will round to the nearest valid
2285 bitrate.
2286
2287 4750
2288 5150
2289 5900
2290 6700
2291 7400
2292 7950
2293 10200
2294 12200
2295 dtx Allow discontinuous transmission (generate comfort noise) when set
2296 to 1. The default value is 0 (disabled).
2297
2298 libopus
2299 libopus Opus Interactive Audio Codec encoder wrapper.
2300
2301 Requires the presence of the libopus headers and library during
2302 configuration. You need to explicitly configure the build with
2303 "--enable-libopus".
2304
2305 Option Mapping
2306
2307 Most libopus options are modelled after the opusenc utility from opus-
2308 tools. The following is an option mapping chart describing options
2309 supported by the libopus wrapper, and their opusenc-equivalent in
2310 parentheses.
2311
2312 b (bitrate)
2313 Set the bit rate in bits/s. FFmpeg's b option is expressed in
2314 bits/s, while opusenc's bitrate in kilobits/s.
2315
2316 vbr (vbr, hard-cbr, and cvbr)
2317 Set VBR mode. The FFmpeg vbr option has the following valid
2318 arguments, with the opusenc equivalent options in parentheses:
2319
2320 off (hard-cbr)
2321 Use constant bit rate encoding.
2322
2323 on (vbr)
2324 Use variable bit rate encoding (the default).
2325
2326 constrained (cvbr)
2327 Use constrained variable bit rate encoding.
2328
2329 compression_level (comp)
2330 Set encoding algorithm complexity. Valid options are integers in
2331 the 0-10 range. 0 gives the fastest encodes but lower quality,
2332 while 10 gives the highest quality but slowest encoding. The
2333 default is 10.
2334
2335 frame_duration (framesize)
2336 Set maximum frame size, or duration of a frame in milliseconds. The
2337 argument must be exactly the following: 2.5, 5, 10, 20, 40, 60.
2338 Smaller frame sizes achieve lower latency but less quality at a
2339 given bitrate. Sizes greater than 20ms are only interesting at
2340 fairly low bitrates. The default is 20ms.
2341
2342 packet_loss (expect-loss)
2343 Set expected packet loss percentage. The default is 0.
2344
2345 fec (n/a)
2346 Enable inband forward error correction. packet_loss must be non-
2347 zero to take advantage - frequency of FEC 'side-data' is
2348 proportional to expected packet loss. Default is disabled.
2349
2350 application (N.A.)
2351 Set intended application type. Valid options are listed below:
2352
2353 voip
2354 Favor improved speech intelligibility.
2355
2356 audio
2357 Favor faithfulness to the input (the default).
2358
2359 lowdelay
2360 Restrict to only the lowest delay modes.
2361
2362 cutoff (N.A.)
2363 Set cutoff bandwidth in Hz. The argument must be exactly one of the
2364 following: 4000, 6000, 8000, 12000, or 20000, corresponding to
2365 narrowband, mediumband, wideband, super wideband, and fullband
2366 respectively. The default is 0 (cutoff disabled).
2367
2368 mapping_family (mapping_family)
2369 Set channel mapping family to be used by the encoder. The default
2370 value of -1 uses mapping family 0 for mono and stereo inputs, and
2371 mapping family 1 otherwise. The default also disables the surround
2372 masking and LFE bandwidth optimzations in libopus, and requires
2373 that the input contains 8 channels or fewer.
2374
2375 Other values include 0 for mono and stereo, 1 for surround sound
2376 with masking and LFE bandwidth optimizations, and 255 for
2377 independent streams with an unspecified channel layout.
2378
2379 apply_phase_inv (N.A.) (requires libopus >= 1.2)
2380 If set to 0, disables the use of phase inversion for intensity
2381 stereo, improving the quality of mono downmixes, but slightly
2382 reducing normal stereo quality. The default is 1 (phase inversion
2383 enabled).
2384
2385 libshine
2386 Shine Fixed-Point MP3 encoder wrapper.
2387
2388 Shine is a fixed-point MP3 encoder. It has a far better performance on
2389 platforms without an FPU, e.g. armel CPUs, and some phones and tablets.
2390 However, as it is more targeted on performance than quality, it is not
2391 on par with LAME and other production-grade encoders quality-wise.
2392 Also, according to the project's homepage, this encoder may not be free
2393 of bugs as the code was written a long time ago and the project was
2394 dead for at least 5 years.
2395
2396 This encoder only supports stereo and mono input. This is also CBR-
2397 only.
2398
2399 The original project (last updated in early 2007) is at
2400 <http://sourceforge.net/projects/libshine-fxp/>. We only support the
2401 updated fork by the Savonet/Liquidsoap project at
2402 <https://github.com/savonet/shine>.
2403
2404 Requires the presence of the libshine headers and library during
2405 configuration. You need to explicitly configure the build with
2406 "--enable-libshine".
2407
2408 See also libmp3lame.
2409
2410 Options
2411
2412 The following options are supported by the libshine wrapper. The
2413 shineenc-equivalent of the options are listed in parentheses.
2414
2415 b (-b)
2416 Set bitrate expressed in bits/s for CBR. shineenc -b option is
2417 expressed in kilobits/s.
2418
2419 libtwolame
2420 TwoLAME MP2 encoder wrapper.
2421
2422 Requires the presence of the libtwolame headers and library during
2423 configuration. You need to explicitly configure the build with
2424 "--enable-libtwolame".
2425
2426 Options
2427
2428 The following options are supported by the libtwolame wrapper. The
2429 twolame-equivalent options follow the FFmpeg ones and are in
2430 parentheses.
2431
2432 b (-b)
2433 Set bitrate expressed in bits/s for CBR. twolame b option is
2434 expressed in kilobits/s. Default value is 128k.
2435
2436 q (-V)
2437 Set quality for experimental VBR support. Maximum value range is
2438 from -50 to 50, useful range is from -10 to 10. The higher the
2439 value, the better the quality. This option is valid only using the
2440 ffmpeg command-line tool. For library interface users, use
2441 global_quality.
2442
2443 mode (--mode)
2444 Set the mode of the resulting audio. Possible values:
2445
2446 auto
2447 Choose mode automatically based on the input. This is the
2448 default.
2449
2450 stereo
2451 Stereo
2452
2453 joint_stereo
2454 Joint stereo
2455
2456 dual_channel
2457 Dual channel
2458
2459 mono
2460 Mono
2461
2462 psymodel (--psyc-mode)
2463 Set psychoacoustic model to use in encoding. The argument must be
2464 an integer between -1 and 4, inclusive. The higher the value, the
2465 better the quality. The default value is 3.
2466
2467 energy_levels (--energy)
2468 Enable energy levels extensions when set to 1. The default value is
2469 0 (disabled).
2470
2471 error_protection (--protect)
2472 Enable CRC error protection when set to 1. The default value is 0
2473 (disabled).
2474
2475 copyright (--copyright)
2476 Set MPEG audio copyright flag when set to 1. The default value is 0
2477 (disabled).
2478
2479 original (--original)
2480 Set MPEG audio original flag when set to 1. The default value is 0
2481 (disabled).
2482
2483 libvo-amrwbenc
2484 VisualOn Adaptive Multi-Rate Wideband encoder.
2485
2486 Requires the presence of the libvo-amrwbenc headers and library during
2487 configuration. You need to explicitly configure the build with
2488 "--enable-libvo-amrwbenc --enable-version3".
2489
2490 This is a mono-only encoder. Officially it only supports 16000Hz sample
2491 rate, but you can override it by setting strict to unofficial or lower.
2492
2493 Options
2494
2495 b Set bitrate in bits/s. Only the following bitrates are supported,
2496 otherwise libavcodec will round to the nearest valid bitrate.
2497
2498 6600
2499 8850
2500 12650
2501 14250
2502 15850
2503 18250
2504 19850
2505 23050
2506 23850
2507 dtx Allow discontinuous transmission (generate comfort noise) when set
2508 to 1. The default value is 0 (disabled).
2509
2510 libvorbis
2511 libvorbis encoder wrapper.
2512
2513 Requires the presence of the libvorbisenc headers and library during
2514 configuration. You need to explicitly configure the build with
2515 "--enable-libvorbis".
2516
2517 Options
2518
2519 The following options are supported by the libvorbis wrapper. The
2520 oggenc-equivalent of the options are listed in parentheses.
2521
2522 To get a more accurate and extensive documentation of the libvorbis
2523 options, consult the libvorbisenc's and oggenc's documentations. See
2524 <http://xiph.org/vorbis/>, <http://wiki.xiph.org/Vorbis-tools>, and
2525 oggenc(1).
2526
2527 b (-b)
2528 Set bitrate expressed in bits/s for ABR. oggenc -b is expressed in
2529 kilobits/s.
2530
2531 q (-q)
2532 Set constant quality setting for VBR. The value should be a float
2533 number in the range of -1.0 to 10.0. The higher the value, the
2534 better the quality. The default value is 3.0.
2535
2536 This option is valid only using the ffmpeg command-line tool. For
2537 library interface users, use global_quality.
2538
2539 cutoff (--advanced-encode-option lowpass_frequency=N)
2540 Set cutoff bandwidth in Hz, a value of 0 disables cutoff. oggenc's
2541 related option is expressed in kHz. The default value is 0 (cutoff
2542 disabled).
2543
2544 minrate (-m)
2545 Set minimum bitrate expressed in bits/s. oggenc -m is expressed in
2546 kilobits/s.
2547
2548 maxrate (-M)
2549 Set maximum bitrate expressed in bits/s. oggenc -M is expressed in
2550 kilobits/s. This only has effect on ABR mode.
2551
2552 iblock (--advanced-encode-option impulse_noisetune=N)
2553 Set noise floor bias for impulse blocks. The value is a float
2554 number from -15.0 to 0.0. A negative bias instructs the encoder to
2555 pay special attention to the crispness of transients in the encoded
2556 audio. The tradeoff for better transient response is a higher
2557 bitrate.
2558
2559 mjpeg
2560 Motion JPEG encoder.
2561
2562 Options
2563
2564 huffman
2565 Set the huffman encoding strategy. Possible values:
2566
2567 default
2568 Use the default huffman tables. This is the default strategy.
2569
2570 optimal
2571 Compute and use optimal huffman tables.
2572
2573 wavpack
2574 WavPack lossless audio encoder.
2575
2576 Options
2577
2578 The equivalent options for wavpack command line utility are listed in
2579 parentheses.
2580
2581 Shared options
2582
2583 The following shared options are effective for this encoder. Only
2584 special notes about this particular encoder will be documented here.
2585 For the general meaning of the options, see the Codec Options chapter.
2586
2587 frame_size (--blocksize)
2588 For this encoder, the range for this option is between 128 and
2589 131072. Default is automatically decided based on sample rate and
2590 number of channel.
2591
2592 For the complete formula of calculating default, see
2593 libavcodec/wavpackenc.c.
2594
2595 compression_level (-f, -h, -hh, and -x)
2596
2597 Private options
2598
2599 joint_stereo (-j)
2600 Set whether to enable joint stereo. Valid values are:
2601
2602 on (1)
2603 Force mid/side audio encoding.
2604
2605 off (0)
2606 Force left/right audio encoding.
2607
2608 auto
2609 Let the encoder decide automatically.
2610
2611 optimize_mono
2612 Set whether to enable optimization for mono. This option is only
2613 effective for non-mono streams. Available values:
2614
2615 on enabled
2616
2617 off disabled
2618
2620 A description of some of the currently available video encoders
2621 follows.
2622
2623 a64_multi, a64_multi5
2624 A64 / Commodore 64 multicolor charset encoder. "a64_multi5" is extended
2625 with 5th color (colram).
2626
2627 Cinepak
2628 Cinepak aka CVID encoder. Compatible with Windows 3.1 and vintage
2629 MacOS.
2630
2631 Options
2632
2633 g integer
2634 Keyframe interval. A keyframe is inserted at least every "-g"
2635 frames, sometimes sooner.
2636
2637 q:v integer
2638 Quality factor. Lower is better. Higher gives lower bitrate. The
2639 following table lists bitrates when encoding akiyo_cif.y4m for
2640 various values of "-q:v" with "-g 100":
2641
2642 "-q:v 1" 1918 kb/s
2643 "-q:v 2" 1735 kb/s
2644 "-q:v 4" 1500 kb/s
2645 "-q:v 10" 1041 kb/s
2646 "-q:v 20" 826 kb/s
2647 "-q:v 40" 553 kb/s
2648 "-q:v 100" 394 kb/s
2649 "-q:v 200" 312 kb/s
2650 "-q:v 400" 266 kb/s
2651 "-q:v 1000" 237 kb/s
2652 max_extra_cb_iterations integer
2653 Max extra codebook recalculation passes, more is better and slower.
2654
2655 skip_empty_cb boolean
2656 Avoid wasting bytes, ignore vintage MacOS decoder.
2657
2658 max_strips integer
2659 min_strips integer
2660 The minimum and maximum number of strips to use. Wider range
2661 sometimes improves quality. More strips is generally better
2662 quality but costs more bits. Fewer strips tend to yield more
2663 keyframes. Vintage compatible is 1..3.
2664
2665 strip_number_adaptivity integer
2666 How much number of strips is allowed to change between frames.
2667 Higher is better but slower.
2668
2669 GIF
2670 GIF image/animation encoder.
2671
2672 Options
2673
2674 gifflags integer
2675 Sets the flags used for GIF encoding.
2676
2677 offsetting
2678 Enables picture offsetting.
2679
2680 Default is enabled.
2681
2682 transdiff
2683 Enables transparency detection between frames.
2684
2685 Default is enabled.
2686
2687 gifimage integer
2688 Enables encoding one full GIF image per frame, rather than an
2689 animated GIF.
2690
2691 Default value is 0.
2692
2693 global_palette integer
2694 Writes a palette to the global GIF header where feasible.
2695
2696 If disabled, every frame will always have a palette written, even
2697 if there is a global palette supplied.
2698
2699 Default value is 1.
2700
2701 Hap
2702 Vidvox Hap video encoder.
2703
2704 Options
2705
2706 format integer
2707 Specifies the Hap format to encode.
2708
2709 hap
2710 hap_alpha
2711 hap_q
2712
2713 Default value is hap.
2714
2715 chunks integer
2716 Specifies the number of chunks to split frames into, between 1 and
2717 64. This permits multithreaded decoding of large frames,
2718 potentially at the cost of data-rate. The encoder may modify this
2719 value to divide frames evenly.
2720
2721 Default value is 1.
2722
2723 compressor integer
2724 Specifies the second-stage compressor to use. If set to none,
2725 chunks will be limited to 1, as chunked uncompressed frames offer
2726 no benefit.
2727
2728 none
2729 snappy
2730
2731 Default value is snappy.
2732
2733 jpeg2000
2734 The native jpeg 2000 encoder is lossy by default, the "-q:v" option can
2735 be used to set the encoding quality. Lossless encoding can be selected
2736 with "-pred 1".
2737
2738 Options
2739
2740 format integer
2741 Can be set to either "j2k" or "jp2" (the default) that makes it
2742 possible to store non-rgb pix_fmts.
2743
2744 tile_width integer
2745 Sets tile width. Range is 1 to 1073741824. Default is 256.
2746
2747 tile_height integer
2748 Sets tile height. Range is 1 to 1073741824. Default is 256.
2749
2750 pred integer
2751 Allows setting the discrete wavelet transform (DWT) type
2752
2753 dwt97int (Lossy)
2754 dwt53 (Lossless)
2755
2756 Default is "dwt97int"
2757
2758 sop boolean
2759 Enable this to add SOP marker at the start of each packet. Disabled
2760 by default.
2761
2762 eph boolean
2763 Enable this to add EPH marker at the end of each packet header.
2764 Disabled by default.
2765
2766 prog integer
2767 Sets the progression order to be used by the encoder. Possible
2768 values are:
2769
2770 lrcp
2771 rlcp
2772 rpcl
2773 pcrl
2774 cprl
2775
2776 Set to "lrcp" by default.
2777
2778 layer_rates string
2779 By default, when this option is not used, compression is done using
2780 the quality metric. This option allows for compression using
2781 compression ratio. The compression ratio for each level could be
2782 specified. The compression ratio of a layer "l" species the what
2783 ratio of total file size is contained in the first "l" layers.
2784
2785 Example usage:
2786
2787 ffmpeg -i input.bmp -c:v jpeg2000 -layer_rates "100,10,1" output.j2k
2788
2789 This would compress the image to contain 3 layers, where the data
2790 contained in the first layer would be compressed by 1000 times,
2791 compressed by 100 in the first two layers, and shall contain all
2792 data while using all 3 layers.
2793
2794 librav1e
2795 rav1e AV1 encoder wrapper.
2796
2797 Requires the presence of the rav1e headers and library during
2798 configuration. You need to explicitly configure the build with
2799 "--enable-librav1e".
2800
2801 Options
2802
2803 qmax
2804 Sets the maximum quantizer to use when using bitrate mode.
2805
2806 qmin
2807 Sets the minimum quantizer to use when using bitrate mode.
2808
2809 qp Uses quantizer mode to encode at the given quantizer (0-255).
2810
2811 speed
2812 Selects the speed preset (0-10) to encode with.
2813
2814 tiles
2815 Selects how many tiles to encode with.
2816
2817 tile-rows
2818 Selects how many rows of tiles to encode with.
2819
2820 tile-columns
2821 Selects how many columns of tiles to encode with.
2822
2823 rav1e-params
2824 Set rav1e options using a list of key=value pairs separated by ":".
2825 See rav1e --help for a list of options.
2826
2827 For example to specify librav1e encoding options with
2828 -rav1e-params:
2829
2830 ffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:low_latency=true output.mp4
2831
2832 libaom-av1
2833 libaom AV1 encoder wrapper.
2834
2835 Requires the presence of the libaom headers and library during
2836 configuration. You need to explicitly configure the build with
2837 "--enable-libaom".
2838
2839 Options
2840
2841 The wrapper supports the following standard libavcodec options:
2842
2843 b Set bitrate target in bits/second. By default this will use
2844 variable-bitrate mode. If maxrate and minrate are also set to the
2845 same value then it will use constant-bitrate mode, otherwise if crf
2846 is set as well then it will use constrained-quality mode.
2847
2848 g keyint_min
2849 Set key frame placement. The GOP size sets the maximum distance
2850 between key frames; if zero the output stream will be intra-only.
2851 The minimum distance is ignored unless it is the same as the GOP
2852 size, in which case key frames will always appear at a fixed
2853 interval. Not set by default, so without this option the library
2854 has completely free choice about where to place key frames.
2855
2856 qmin qmax
2857 Set minimum/maximum quantisation values. Valid range is from 0 to
2858 63 (warning: this does not match the quantiser values actually used
2859 by AV1 - divide by four to map real quantiser values to this
2860 range). Defaults to min/max (no constraint).
2861
2862 minrate maxrate bufsize rc_init_occupancy
2863 Set rate control buffering parameters. Not used if not set -
2864 defaults to unconstrained variable bitrate.
2865
2866 threads
2867 Set the number of threads to use while encoding. This may require
2868 the tiles or row-mt options to also be set to actually use the
2869 specified number of threads fully. Defaults to the number of
2870 hardware threads supported by the host machine.
2871
2872 profile
2873 Set the encoding profile. Defaults to using the profile which
2874 matches the bit depth and chroma subsampling of the input.
2875
2876 The wrapper also has some specific options:
2877
2878 cpu-used
2879 Set the quality/encoding speed tradeoff. Valid range is from 0 to
2880 8, higher numbers indicating greater speed and lower quality. The
2881 default value is 1, which will be slow and high quality.
2882
2883 auto-alt-ref
2884 Enable use of alternate reference frames. Defaults to the internal
2885 default of the library.
2886
2887 arnr-max-frames (frames)
2888 Set altref noise reduction max frame count. Default is -1.
2889
2890 arnr-strength (strength)
2891 Set altref noise reduction filter strength. Range is -1 to 6.
2892 Default is -1.
2893
2894 aq-mode (aq-mode)
2895 Set adaptive quantization mode. Possible values:
2896
2897 none (0)
2898 Disabled.
2899
2900 variance (1)
2901 Variance-based.
2902
2903 complexity (2)
2904 Complexity-based.
2905
2906 cyclic (3)
2907 Cyclic refresh.
2908
2909 tune (tune)
2910 Set the distortion metric the encoder is tuned with. Default is
2911 "psnr".
2912
2913 psnr (0)
2914 ssim (1)
2915 lag-in-frames
2916 Set the maximum number of frames which the encoder may keep in
2917 flight at any one time for lookahead purposes. Defaults to the
2918 internal default of the library.
2919
2920 error-resilience
2921 Enable error resilience features:
2922
2923 default
2924 Improve resilience against losses of whole frames.
2925
2926 Not enabled by default.
2927
2928 crf Set the quality/size tradeoff for constant-quality (no bitrate
2929 target) and constrained-quality (with maximum bitrate target)
2930 modes. Valid range is 0 to 63, higher numbers indicating lower
2931 quality and smaller output size. Only used if set; by default only
2932 the bitrate target is used.
2933
2934 static-thresh
2935 Set a change threshold on blocks below which they will be skipped
2936 by the encoder. Defined in arbitrary units as a nonnegative
2937 integer, defaulting to zero (no blocks are skipped).
2938
2939 drop-threshold
2940 Set a threshold for dropping frames when close to rate control
2941 bounds. Defined as a percentage of the target buffer - when the
2942 rate control buffer falls below this percentage, frames will be
2943 dropped until it has refilled above the threshold. Defaults to
2944 zero (no frames are dropped).
2945
2946 denoise-noise-level (level)
2947 Amount of noise to be removed for grain synthesis. Grain synthesis
2948 is disabled if this option is not set or set to 0.
2949
2950 denoise-block-size (pixels)
2951 Block size used for denoising for grain synthesis. If not set, AV1
2952 codec uses the default value of 32.
2953
2954 undershoot-pct (pct)
2955 Set datarate undershoot (min) percentage of the target bitrate.
2956 Range is -1 to 100. Default is -1.
2957
2958 overshoot-pct (pct)
2959 Set datarate overshoot (max) percentage of the target bitrate.
2960 Range is -1 to 1000. Default is -1.
2961
2962 minsection-pct (pct)
2963 Minimum percentage variation of the GOP bitrate from the target
2964 bitrate. If minsection-pct is not set, the libaomenc wrapper
2965 computes it as follows: "(minrate * 100 / bitrate)". Range is -1
2966 to 100. Default is -1 (unset).
2967
2968 maxsection-pct (pct)
2969 Maximum percentage variation of the GOP bitrate from the target
2970 bitrate. If maxsection-pct is not set, the libaomenc wrapper
2971 computes it as follows: "(maxrate * 100 / bitrate)". Range is -1
2972 to 5000. Default is -1 (unset).
2973
2974 frame-parallel (boolean)
2975 Enable frame parallel decodability features. Default is true.
2976
2977 tiles
2978 Set the number of tiles to encode the input video with, as columns
2979 x rows. Larger numbers allow greater parallelism in both encoding
2980 and decoding, but may decrease coding efficiency. Defaults to the
2981 minimum number of tiles required by the size of the input video
2982 (this is 1x1 (that is, a single tile) for sizes up to and including
2983 4K).
2984
2985 tile-columns tile-rows
2986 Set the number of tiles as log2 of the number of tile rows and
2987 columns. Provided for compatibility with libvpx/VP9.
2988
2989 row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2)
2990 Enable row based multi-threading. Disabled by default.
2991
2992 enable-cdef (boolean)
2993 Enable Constrained Directional Enhancement Filter. The libaom-av1
2994 encoder enables CDEF by default.
2995
2996 enable-restoration (boolean)
2997 Enable Loop Restoration Filter. Default is true for libaom-av1.
2998
2999 enable-global-motion (boolean)
3000 Enable the use of global motion for block prediction. Default is
3001 true.
3002
3003 enable-intrabc (boolean)
3004 Enable block copy mode for intra block prediction. This mode is
3005 useful for screen content. Default is true.
3006
3007 enable-rect-partitions (boolean) (Requires libaom >= v2.0.0)
3008 Enable rectangular partitions. Default is true.
3009
3010 enable-1to4-partitions (boolean) (Requires libaom >= v2.0.0)
3011 Enable 1:4/4:1 partitions. Default is true.
3012
3013 enable-ab-partitions (boolean) (Requires libaom >= v2.0.0)
3014 Enable AB shape partitions. Default is true.
3015
3016 enable-angle-delta (boolean) (Requires libaom >= v2.0.0)
3017 Enable angle delta intra prediction. Default is true.
3018
3019 enable-cfl-intra (boolean) (Requires libaom >= v2.0.0)
3020 Enable chroma predicted from luma intra prediction. Default is
3021 true.
3022
3023 enable-filter-intra (boolean) (Requires libaom >= v2.0.0)
3024 Enable filter intra predictor. Default is true.
3025
3026 enable-intra-edge-filter (boolean) (Requires libaom >= v2.0.0)
3027 Enable intra edge filter. Default is true.
3028
3029 enable-smooth-intra (boolean) (Requires libaom >= v2.0.0)
3030 Enable smooth intra prediction mode. Default is true.
3031
3032 enable-paeth-intra (boolean) (Requires libaom >= v2.0.0)
3033 Enable paeth predictor in intra prediction. Default is true.
3034
3035 enable-palette (boolean) (Requires libaom >= v2.0.0)
3036 Enable palette prediction mode. Default is true.
3037
3038 enable-flip-idtx (boolean) (Requires libaom >= v2.0.0)
3039 Enable extended transform type, including FLIPADST_DCT,
3040 DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST,
3041 IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST. Default
3042 is true.
3043
3044 enable-tx64 (boolean) (Requires libaom >= v2.0.0)
3045 Enable 64-pt transform. Default is true.
3046
3047 reduced-tx-type-set (boolean) (Requires libaom >= v2.0.0)
3048 Use reduced set of transform types. Default is false.
3049
3050 use-intra-dct-only (boolean) (Requires libaom >= v2.0.0)
3051 Use DCT only for INTRA modes. Default is false.
3052
3053 use-inter-dct-only (boolean) (Requires libaom >= v2.0.0)
3054 Use DCT only for INTER modes. Default is false.
3055
3056 use-intra-default-tx-only (boolean) (Requires libaom >= v2.0.0)
3057 Use Default-transform only for INTRA modes. Default is false.
3058
3059 enable-ref-frame-mvs (boolean) (Requires libaom >= v2.0.0)
3060 Enable temporal mv prediction. Default is true.
3061
3062 enable-reduced-reference-set (boolean) (Requires libaom >= v2.0.0)
3063 Use reduced set of single and compound references. Default is
3064 false.
3065
3066 enable-obmc (boolean) (Requires libaom >= v2.0.0)
3067 Enable obmc. Default is true.
3068
3069 enable-dual-filter (boolean) (Requires libaom >= v2.0.0)
3070 Enable dual filter. Default is true.
3071
3072 enable-diff-wtd-comp (boolean) (Requires libaom >= v2.0.0)
3073 Enable difference-weighted compound. Default is true.
3074
3075 enable-dist-wtd-comp (boolean) (Requires libaom >= v2.0.0)
3076 Enable distance-weighted compound. Default is true.
3077
3078 enable-onesided-comp (boolean) (Requires libaom >= v2.0.0)
3079 Enable one sided compound. Default is true.
3080
3081 enable-interinter-wedge (boolean) (Requires libaom >= v2.0.0)
3082 Enable interinter wedge compound. Default is true.
3083
3084 enable-interintra-wedge (boolean) (Requires libaom >= v2.0.0)
3085 Enable interintra wedge compound. Default is true.
3086
3087 enable-masked-comp (boolean) (Requires libaom >= v2.0.0)
3088 Enable masked compound. Default is true.
3089
3090 enable-interintra-comp (boolean) (Requires libaom >= v2.0.0)
3091 Enable interintra compound. Default is true.
3092
3093 enable-smooth-interintra (boolean) (Requires libaom >= v2.0.0)
3094 Enable smooth interintra mode. Default is true.
3095
3096 aom-params
3097 Set libaom options using a list of key=value pairs separated by
3098 ":". For a list of supported options, see aomenc --help under the
3099 section "AV1 Specific Options".
3100
3101 For example to specify libaom encoding options with -aom-params:
3102
3103 ffmpeg -i input -c:v libaom-av1 -b:v 500K -aom-params tune=psnr:enable-tpl-model=1 output.mp4
3104
3105 libsvtav1
3106 SVT-AV1 encoder wrapper.
3107
3108 Requires the presence of the SVT-AV1 headers and library during
3109 configuration. You need to explicitly configure the build with
3110 "--enable-libsvtav1".
3111
3112 Options
3113
3114 profile
3115 Set the encoding profile.
3116
3117 main
3118 high
3119 professional
3120 level
3121 Set the operating point level. For example: '4.0'
3122
3123 hielevel
3124 Set the Hierarchical prediction levels.
3125
3126 3level
3127 4level
3128 This is the default.
3129
3130 tier
3131 Set the operating point tier.
3132
3133 main
3134 This is the default.
3135
3136 high
3137 qmax
3138 Set the maximum quantizer to use when using a bitrate mode.
3139
3140 qmin
3141 Set the minimum quantizer to use when using a bitrate mode.
3142
3143 crf Constant rate factor value used in crf rate control mode (0-63).
3144
3145 qp Set the quantizer used in cqp rate control mode (0-63).
3146
3147 sc_detection
3148 Enable scene change detection.
3149
3150 la_depth
3151 Set number of frames to look ahead (0-120).
3152
3153 preset
3154 Set the quality-speed tradeoff, in the range 0 to 13. Higher
3155 values are faster but lower quality.
3156
3157 tile_rows
3158 Set log2 of the number of rows of tiles to use (0-6).
3159
3160 tile_columns
3161 Set log2 of the number of columns of tiles to use (0-4).
3162
3163 svtav1-params
3164 Set SVT-AV1 options using a list of key=value pairs separated by
3165 ":". See the SVT-AV1 encoder user guide for a list of accepted
3166 parameters.
3167
3168 libjxl
3169 libjxl JPEG XL encoder wrapper.
3170
3171 Requires the presence of the libjxl headers and library during
3172 configuration. You need to explicitly configure the build with
3173 "--enable-libjxl".
3174
3175 Options
3176
3177 The libjxl wrapper supports the following options:
3178
3179 distance
3180 Set the target Butteraugli distance. This is a quality setting:
3181 lower distance yields higher quality, with distance=1.0 roughly
3182 comparable to libjpeg Quality 90 for photographic content. Setting
3183 distance=0.0 yields true lossless encoding. Valid values range
3184 between 0.0 and 15.0, and sane values rarely exceed 5.0. Setting
3185 distance=0.1 usually attains transparency for most input. The
3186 default is 1.0.
3187
3188 effort
3189 Set the encoding effort used. Higher effort values produce more
3190 consistent quality and usually produces a better quality/bpp curve,
3191 at the cost of more CPU time required. Valid values range from 1 to
3192 9, and the default is 7.
3193
3194 modular
3195 Force the encoder to use Modular mode instead of choosing
3196 automatically. The default is to use VarDCT for lossy encoding and
3197 Modular for lossless. VarDCT is generally superior to Modular for
3198 lossy encoding but does not support lossless encoding.
3199
3200 libkvazaar
3201 Kvazaar H.265/HEVC encoder.
3202
3203 Requires the presence of the libkvazaar headers and library during
3204 configuration. You need to explicitly configure the build with
3205 --enable-libkvazaar.
3206
3207 Options
3208
3209 b Set target video bitrate in bit/s and enable rate control.
3210
3211 kvazaar-params
3212 Set kvazaar parameters as a list of name=value pairs separated by
3213 commas (,). See kvazaar documentation for a list of options.
3214
3215 libopenh264
3216 Cisco libopenh264 H.264/MPEG-4 AVC encoder wrapper.
3217
3218 This encoder requires the presence of the libopenh264 headers and
3219 library during configuration. You need to explicitly configure the
3220 build with "--enable-libopenh264". The library is detected using pkg-
3221 config.
3222
3223 For more information about the library see <http://www.openh264.org>.
3224
3225 Options
3226
3227 The following FFmpeg global options affect the configurations of the
3228 libopenh264 encoder.
3229
3230 b Set the bitrate (as a number of bits per second).
3231
3232 g Set the GOP size.
3233
3234 maxrate
3235 Set the max bitrate (as a number of bits per second).
3236
3237 flags +global_header
3238 Set global header in the bitstream.
3239
3240 slices
3241 Set the number of slices, used in parallelized encoding. Default
3242 value is 0. This is only used when slice_mode is set to fixed.
3243
3244 slice_mode
3245 Set slice mode. Can assume one of the following possible values:
3246
3247 fixed
3248 a fixed number of slices
3249
3250 rowmb
3251 one slice per row of macroblocks
3252
3253 auto
3254 automatic number of slices according to number of threads
3255
3256 dyn dynamic slicing
3257
3258 Default value is auto.
3259
3260 loopfilter
3261 Enable loop filter, if set to 1 (automatically enabled). To disable
3262 set a value of 0.
3263
3264 profile
3265 Set profile restrictions. If set to the value of main enable CABAC
3266 (set the "SEncParamExt.iEntropyCodingModeFlag" flag to 1).
3267
3268 max_nal_size
3269 Set maximum NAL size in bytes.
3270
3271 allow_skip_frames
3272 Allow skipping frames to hit the target bitrate if set to 1.
3273
3274 libtheora
3275 libtheora Theora encoder wrapper.
3276
3277 Requires the presence of the libtheora headers and library during
3278 configuration. You need to explicitly configure the build with
3279 "--enable-libtheora".
3280
3281 For more information about the libtheora project see
3282 <http://www.theora.org/>.
3283
3284 Options
3285
3286 The following global options are mapped to internal libtheora options
3287 which affect the quality and the bitrate of the encoded stream.
3288
3289 b Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode.
3290 In case VBR (Variable Bit Rate) mode is enabled this option is
3291 ignored.
3292
3293 flags
3294 Used to enable constant quality mode (VBR) encoding through the
3295 qscale flag, and to enable the "pass1" and "pass2" modes.
3296
3297 g Set the GOP size.
3298
3299 global_quality
3300 Set the global quality as an integer in lambda units.
3301
3302 Only relevant when VBR mode is enabled with "flags +qscale". The
3303 value is converted to QP units by dividing it by "FF_QP2LAMBDA",
3304 clipped in the [0 - 10] range, and then multiplied by 6.3 to get a
3305 value in the native libtheora range [0-63]. A higher value
3306 corresponds to a higher quality.
3307
3308 q Enable VBR mode when set to a non-negative value, and set constant
3309 quality value as a double floating point value in QP units.
3310
3311 The value is clipped in the [0-10] range, and then multiplied by
3312 6.3 to get a value in the native libtheora range [0-63].
3313
3314 This option is valid only using the ffmpeg command-line tool. For
3315 library interface users, use global_quality.
3316
3317 Examples
3318
3319 • Set maximum constant quality (VBR) encoding with ffmpeg:
3320
3321 ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
3322
3323 • Use ffmpeg to convert a CBR 1000 kbps Theora video stream:
3324
3325 ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
3326
3327 libvpx
3328 VP8/VP9 format supported through libvpx.
3329
3330 Requires the presence of the libvpx headers and library during
3331 configuration. You need to explicitly configure the build with
3332 "--enable-libvpx".
3333
3334 Options
3335
3336 The following options are supported by the libvpx wrapper. The
3337 vpxenc-equivalent options or values are listed in parentheses for easy
3338 migration.
3339
3340 To reduce the duplication of documentation, only the private options
3341 and some others requiring special attention are documented here. For
3342 the documentation of the undocumented generic options, see the Codec
3343 Options chapter.
3344
3345 To get more documentation of the libvpx options, invoke the command
3346 ffmpeg -h encoder=libvpx, ffmpeg -h encoder=libvpx-vp9 or vpxenc
3347 --help. Further information is available in the libvpx API
3348 documentation.
3349
3350 b (target-bitrate)
3351 Set bitrate in bits/s. Note that FFmpeg's b option is expressed in
3352 bits/s, while vpxenc's target-bitrate is in kilobits/s.
3353
3354 g (kf-max-dist)
3355 keyint_min (kf-min-dist)
3356 qmin (min-q)
3357 Minimum (Best Quality) Quantizer.
3358
3359 qmax (max-q)
3360 Maximum (Worst Quality) Quantizer. Can be changed per-frame.
3361
3362 bufsize (buf-sz, buf-optimal-sz)
3363 Set ratecontrol buffer size (in bits). Note vpxenc's options are
3364 specified in milliseconds, the libvpx wrapper converts this value
3365 as follows: "buf-sz = bufsize * 1000 / bitrate", "buf-optimal-sz =
3366 bufsize * 1000 / bitrate * 5 / 6".
3367
3368 rc_init_occupancy (buf-initial-sz)
3369 Set number of bits which should be loaded into the rc buffer before
3370 decoding starts. Note vpxenc's option is specified in milliseconds,
3371 the libvpx wrapper converts this value as follows:
3372 "rc_init_occupancy * 1000 / bitrate".
3373
3374 undershoot-pct
3375 Set datarate undershoot (min) percentage of the target bitrate.
3376
3377 overshoot-pct
3378 Set datarate overshoot (max) percentage of the target bitrate.
3379
3380 skip_threshold (drop-frame)
3381 qcomp (bias-pct)
3382 maxrate (maxsection-pct)
3383 Set GOP max bitrate in bits/s. Note vpxenc's option is specified as
3384 a percentage of the target bitrate, the libvpx wrapper converts
3385 this value as follows: "(maxrate * 100 / bitrate)".
3386
3387 minrate (minsection-pct)
3388 Set GOP min bitrate in bits/s. Note vpxenc's option is specified as
3389 a percentage of the target bitrate, the libvpx wrapper converts
3390 this value as follows: "(minrate * 100 / bitrate)".
3391
3392 minrate, maxrate, b end-usage=cbr
3393 "(minrate == maxrate == bitrate)".
3394
3395 crf (end-usage=cq, cq-level)
3396 tune (tune)
3397 psnr (psnr)
3398 ssim (ssim)
3399 quality, deadline (deadline)
3400 best
3401 Use best quality deadline. Poorly named and quite slow, this
3402 option should be avoided as it may give worse quality output
3403 than good.
3404
3405 good
3406 Use good quality deadline. This is a good trade-off between
3407 speed and quality when used with the cpu-used option.
3408
3409 realtime
3410 Use realtime quality deadline.
3411
3412 speed, cpu-used (cpu-used)
3413 Set quality/speed ratio modifier. Higher values speed up the encode
3414 at the cost of quality.
3415
3416 nr (noise-sensitivity)
3417 static-thresh
3418 Set a change threshold on blocks below which they will be skipped
3419 by the encoder.
3420
3421 slices (token-parts)
3422 Note that FFmpeg's slices option gives the total number of
3423 partitions, while vpxenc's token-parts is given as
3424 "log2(partitions)".
3425
3426 max-intra-rate
3427 Set maximum I-frame bitrate as a percentage of the target bitrate.
3428 A value of 0 means unlimited.
3429
3430 force_key_frames
3431 "VPX_EFLAG_FORCE_KF"
3432
3433 Alternate reference frame related
3434 auto-alt-ref
3435 Enable use of alternate reference frames (2-pass only). Values
3436 greater than 1 enable multi-layer alternate reference frames
3437 (VP9 only).
3438
3439 arnr-maxframes
3440 Set altref noise reduction max frame count.
3441
3442 arnr-type
3443 Set altref noise reduction filter type: backward, forward,
3444 centered.
3445
3446 arnr-strength
3447 Set altref noise reduction filter strength.
3448
3449 rc-lookahead, lag-in-frames (lag-in-frames)
3450 Set number of frames to look ahead for frametype and
3451 ratecontrol.
3452
3453 error-resilient
3454 Enable error resiliency features.
3455
3456 sharpness integer
3457 Increase sharpness at the expense of lower PSNR. The valid range
3458 is [0, 7].
3459
3460 ts-parameters
3461 Sets the temporal scalability configuration using a :-separated
3462 list of key=value pairs. For example, to specify temporal
3463 scalability parameters with "ffmpeg":
3464
3465 ffmpeg -i INPUT -c:v libvpx -ts-parameters ts_number_layers=3:\
3466 ts_target_bitrate=250,500,1000:ts_rate_decimator=4,2,1:\
3467 ts_periodicity=4:ts_layer_id=0,2,1,2:ts_layering_mode=3 OUTPUT
3468
3469 Below is a brief explanation of each of the parameters, please
3470 refer to "struct vpx_codec_enc_cfg" in "vpx/vpx_encoder.h" for more
3471 details.
3472
3473 ts_number_layers
3474 Number of temporal coding layers.
3475
3476 ts_target_bitrate
3477 Target bitrate for each temporal layer (in kbps). (bitrate
3478 should be inclusive of the lower temporal layer).
3479
3480 ts_rate_decimator
3481 Frame rate decimation factor for each temporal layer.
3482
3483 ts_periodicity
3484 Length of the sequence defining frame temporal layer
3485 membership.
3486
3487 ts_layer_id
3488 Template defining the membership of frames to temporal layers.
3489
3490 ts_layering_mode
3491 (optional) Selecting the temporal structure from a set of pre-
3492 defined temporal layering modes. Currently supports the
3493 following options.
3494
3495 0 No temporal layering flags are provided internally, relies
3496 on flags being passed in using "metadata" field in
3497 "AVFrame" with following keys.
3498
3499 vp8-flags
3500 Sets the flags passed into the encoder to indicate the
3501 referencing scheme for the current frame. Refer to
3502 function "vpx_codec_encode" in "vpx/vpx_encoder.h" for
3503 more details.
3504
3505 temporal_id
3506 Explicitly sets the temporal id of the current frame to
3507 encode.
3508
3509 2 Two temporal layers. 0-1...
3510
3511 3 Three temporal layers. 0-2-1-2...; with single reference
3512 frame.
3513
3514 4 Same as option "3", except there is a dependency between
3515 the two temporal layer 2 frames within the temporal period.
3516
3517 VP9-specific options
3518 lossless
3519 Enable lossless mode.
3520
3521 tile-columns
3522 Set number of tile columns to use. Note this is given as
3523 "log2(tile_columns)". For example, 8 tile columns would be
3524 requested by setting the tile-columns option to 3.
3525
3526 tile-rows
3527 Set number of tile rows to use. Note this is given as
3528 "log2(tile_rows)". For example, 4 tile rows would be requested
3529 by setting the tile-rows option to 2.
3530
3531 frame-parallel
3532 Enable frame parallel decodability features.
3533
3534 aq-mode
3535 Set adaptive quantization mode (0: off (default), 1: variance
3536 2: complexity, 3: cyclic refresh, 4: equator360).
3537
3538 colorspace color-space
3539 Set input color space. The VP9 bitstream supports signaling the
3540 following colorspaces:
3541
3542 rgb sRGB
3543 bt709 bt709
3544 unspecified unknown
3545 bt470bg bt601
3546 smpte170m smpte170
3547 smpte240m smpte240
3548 bt2020_ncl bt2020
3549 row-mt boolean
3550 Enable row based multi-threading.
3551
3552 tune-content
3553 Set content type: default (0), screen (1), film (2).
3554
3555 corpus-complexity
3556 Corpus VBR mode is a variant of standard VBR where the
3557 complexity distribution midpoint is passed in rather than
3558 calculated for a specific clip or chunk.
3559
3560 The valid range is [0, 10000]. 0 (default) uses standard VBR.
3561
3562 enable-tpl boolean
3563 Enable temporal dependency model.
3564
3565 ref-frame-config
3566 Using per-frame metadata, set members of the structure
3567 "vpx_svc_ref_frame_config_t" in "vpx/vp8cx.h" to fine-control
3568 referencing schemes and frame buffer management. Use a
3569 :-separated list of key=value pairs. For example,
3570
3571 av_dict_set(&av_frame->metadata, "ref-frame-config", \
3572 "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");
3573
3574 rfc_update_buffer_slot
3575 Indicates the buffer slot number to update
3576
3577 rfc_update_last
3578 Indicates whether to update the LAST frame
3579
3580 rfc_update_golden
3581 Indicates whether to update GOLDEN frame
3582
3583 rfc_update_alt_ref
3584 Indicates whether to update ALT_REF frame
3585
3586 rfc_lst_fb_idx
3587 LAST frame buffer index
3588
3589 rfc_gld_fb_idx
3590 GOLDEN frame buffer index
3591
3592 rfc_alt_fb_idx
3593 ALT_REF frame buffer index
3594
3595 rfc_reference_last
3596 Indicates whether to reference LAST frame
3597
3598 rfc_reference_golden
3599 Indicates whether to reference GOLDEN frame
3600
3601 rfc_reference_alt_ref
3602 Indicates whether to reference ALT_REF frame
3603
3604 rfc_reference_duration
3605 Indicates frame duration
3606
3607 For more information about libvpx see: <http://www.webmproject.org/>
3608
3609 libwebp
3610 libwebp WebP Image encoder wrapper
3611
3612 libwebp is Google's official encoder for WebP images. It can encode in
3613 either lossy or lossless mode. Lossy images are essentially a wrapper
3614 around a VP8 frame. Lossless images are a separate codec developed by
3615 Google.
3616
3617 Pixel Format
3618
3619 Currently, libwebp only supports YUV420 for lossy and RGB for lossless
3620 due to limitations of the format and libwebp. Alpha is supported for
3621 either mode. Because of API limitations, if RGB is passed in when
3622 encoding lossy or YUV is passed in for encoding lossless, the pixel
3623 format will automatically be converted using functions from libwebp.
3624 This is not ideal and is done only for convenience.
3625
3626 Options
3627
3628 -lossless boolean
3629 Enables/Disables use of lossless mode. Default is 0.
3630
3631 -compression_level integer
3632 For lossy, this is a quality/speed tradeoff. Higher values give
3633 better quality for a given size at the cost of increased encoding
3634 time. For lossless, this is a size/speed tradeoff. Higher values
3635 give smaller size at the cost of increased encoding time. More
3636 specifically, it controls the number of extra algorithms and
3637 compression tools used, and varies the combination of these tools.
3638 This maps to the method option in libwebp. The valid range is 0 to
3639 6. Default is 4.
3640
3641 -quality float
3642 For lossy encoding, this controls image quality. For lossless
3643 encoding, this controls the effort and time spent in compression.
3644 Range is 0 to 100. Default is 75.
3645
3646 -preset type
3647 Configuration preset. This does some automatic settings based on
3648 the general type of the image.
3649
3650 none
3651 Do not use a preset.
3652
3653 default
3654 Use the encoder default.
3655
3656 picture
3657 Digital picture, like portrait, inner shot
3658
3659 photo
3660 Outdoor photograph, with natural lighting
3661
3662 drawing
3663 Hand or line drawing, with high-contrast details
3664
3665 icon
3666 Small-sized colorful images
3667
3668 text
3669 Text-like
3670
3671 libx264, libx264rgb
3672 x264 H.264/MPEG-4 AVC encoder wrapper.
3673
3674 This encoder requires the presence of the libx264 headers and library
3675 during configuration. You need to explicitly configure the build with
3676 "--enable-libx264".
3677
3678 libx264 supports an impressive number of features, including 8x8 and
3679 4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC
3680 entropy coding, interlacing (MBAFF), lossless mode, psy optimizations
3681 for detail retention (adaptive quantization, psy-RD, psy-trellis).
3682
3683 Many libx264 encoder options are mapped to FFmpeg global codec options,
3684 while unique encoder options are provided through private options.
3685 Additionally the x264opts and x264-params private options allows one to
3686 pass a list of key=value tuples as accepted by the libx264
3687 "x264_param_parse" function.
3688
3689 The x264 project website is at
3690 <http://www.videolan.org/developers/x264.html>.
3691
3692 The libx264rgb encoder is the same as libx264, except it accepts packed
3693 RGB pixel formats as input instead of YUV.
3694
3695 Supported Pixel Formats
3696
3697 x264 supports 8- to 10-bit color spaces. The exact bit depth is
3698 controlled at x264's configure time.
3699
3700 Options
3701
3702 The following options are supported by the libx264 wrapper. The
3703 x264-equivalent options or values are listed in parentheses for easy
3704 migration.
3705
3706 To reduce the duplication of documentation, only the private options
3707 and some others requiring special attention are documented here. For
3708 the documentation of the undocumented generic options, see the Codec
3709 Options chapter.
3710
3711 To get a more accurate and extensive documentation of the libx264
3712 options, invoke the command x264 --fullhelp or consult the libx264
3713 documentation.
3714
3715 b (bitrate)
3716 Set bitrate in bits/s. Note that FFmpeg's b option is expressed in
3717 bits/s, while x264's bitrate is in kilobits/s.
3718
3719 bf (bframes)
3720 g (keyint)
3721 qmin (qpmin)
3722 Minimum quantizer scale.
3723
3724 qmax (qpmax)
3725 Maximum quantizer scale.
3726
3727 qdiff (qpstep)
3728 Maximum difference between quantizer scales.
3729
3730 qblur (qblur)
3731 Quantizer curve blur
3732
3733 qcomp (qcomp)
3734 Quantizer curve compression factor
3735
3736 refs (ref)
3737 Number of reference frames each P-frame can use. The range is from
3738 0-16.
3739
3740 sc_threshold (scenecut)
3741 Sets the threshold for the scene change detection.
3742
3743 trellis (trellis)
3744 Performs Trellis quantization to increase efficiency. Enabled by
3745 default.
3746
3747 nr (nr)
3748 me_range (merange)
3749 Maximum range of the motion search in pixels.
3750
3751 me_method (me)
3752 Set motion estimation method. Possible values in the decreasing
3753 order of speed:
3754
3755 dia (dia)
3756 epzs (dia)
3757 Diamond search with radius 1 (fastest). epzs is an alias for
3758 dia.
3759
3760 hex (hex)
3761 Hexagonal search with radius 2.
3762
3763 umh (umh)
3764 Uneven multi-hexagon search.
3765
3766 esa (esa)
3767 Exhaustive search.
3768
3769 tesa (tesa)
3770 Hadamard exhaustive search (slowest).
3771
3772 forced-idr
3773 Normally, when forcing a I-frame type, the encoder can select any
3774 type of I-frame. This option forces it to choose an IDR-frame.
3775
3776 subq (subme)
3777 Sub-pixel motion estimation method.
3778
3779 b_strategy (b-adapt)
3780 Adaptive B-frame placement decision algorithm. Use only on first-
3781 pass.
3782
3783 keyint_min (min-keyint)
3784 Minimum GOP size.
3785
3786 coder
3787 Set entropy encoder. Possible values:
3788
3789 ac Enable CABAC.
3790
3791 vlc Enable CAVLC and disable CABAC. It generates the same effect as
3792 x264's --no-cabac option.
3793
3794 cmp Set full pixel motion estimation comparison algorithm. Possible
3795 values:
3796
3797 chroma
3798 Enable chroma in motion estimation.
3799
3800 sad Ignore chroma in motion estimation. It generates the same
3801 effect as x264's --no-chroma-me option.
3802
3803 threads (threads)
3804 Number of encoding threads.
3805
3806 thread_type
3807 Set multithreading technique. Possible values:
3808
3809 slice
3810 Slice-based multithreading. It generates the same effect as
3811 x264's --sliced-threads option.
3812
3813 frame
3814 Frame-based multithreading.
3815
3816 flags
3817 Set encoding flags. It can be used to disable closed GOP and enable
3818 open GOP by setting it to "-cgop". The result is similar to the
3819 behavior of x264's --open-gop option.
3820
3821 rc_init_occupancy (vbv-init)
3822 preset (preset)
3823 Set the encoding preset.
3824
3825 tune (tune)
3826 Set tuning of the encoding params.
3827
3828 profile (profile)
3829 Set profile restrictions.
3830
3831 fastfirstpass
3832 Enable fast settings when encoding first pass, when set to 1. When
3833 set to 0, it has the same effect of x264's --slow-firstpass option.
3834
3835 crf (crf)
3836 Set the quality for constant quality mode.
3837
3838 crf_max (crf-max)
3839 In CRF mode, prevents VBV from lowering quality beyond this point.
3840
3841 qp (qp)
3842 Set constant quantization rate control method parameter.
3843
3844 aq-mode (aq-mode)
3845 Set AQ method. Possible values:
3846
3847 none (0)
3848 Disabled.
3849
3850 variance (1)
3851 Variance AQ (complexity mask).
3852
3853 autovariance (2)
3854 Auto-variance AQ (experimental).
3855
3856 aq-strength (aq-strength)
3857 Set AQ strength, reduce blocking and blurring in flat and textured
3858 areas.
3859
3860 psy Use psychovisual optimizations when set to 1. When set to 0, it has
3861 the same effect as x264's --no-psy option.
3862
3863 psy-rd (psy-rd)
3864 Set strength of psychovisual optimization, in psy-rd:psy-trellis
3865 format.
3866
3867 rc-lookahead (rc-lookahead)
3868 Set number of frames to look ahead for frametype and ratecontrol.
3869
3870 weightb
3871 Enable weighted prediction for B-frames when set to 1. When set to
3872 0, it has the same effect as x264's --no-weightb option.
3873
3874 weightp (weightp)
3875 Set weighted prediction method for P-frames. Possible values:
3876
3877 none (0)
3878 Disabled
3879
3880 simple (1)
3881 Enable only weighted refs
3882
3883 smart (2)
3884 Enable both weighted refs and duplicates
3885
3886 ssim (ssim)
3887 Enable calculation and printing SSIM stats after the encoding.
3888
3889 intra-refresh (intra-refresh)
3890 Enable the use of Periodic Intra Refresh instead of IDR frames when
3891 set to 1.
3892
3893 avcintra-class (class)
3894 Configure the encoder to generate AVC-Intra. Valid values are
3895 50,100 and 200
3896
3897 bluray-compat (bluray-compat)
3898 Configure the encoder to be compatible with the bluray standard.
3899 It is a shorthand for setting "bluray-compat=1 force-cfr=1".
3900
3901 b-bias (b-bias)
3902 Set the influence on how often B-frames are used.
3903
3904 b-pyramid (b-pyramid)
3905 Set method for keeping of some B-frames as references. Possible
3906 values:
3907
3908 none (none)
3909 Disabled.
3910
3911 strict (strict)
3912 Strictly hierarchical pyramid.
3913
3914 normal (normal)
3915 Non-strict (not Blu-ray compatible).
3916
3917 mixed-refs
3918 Enable the use of one reference per partition, as opposed to one
3919 reference per macroblock when set to 1. When set to 0, it has the
3920 same effect as x264's --no-mixed-refs option.
3921
3922 8x8dct
3923 Enable adaptive spatial transform (high profile 8x8 transform) when
3924 set to 1. When set to 0, it has the same effect as x264's
3925 --no-8x8dct option.
3926
3927 fast-pskip
3928 Enable early SKIP detection on P-frames when set to 1. When set to
3929 0, it has the same effect as x264's --no-fast-pskip option.
3930
3931 aud (aud)
3932 Enable use of access unit delimiters when set to 1.
3933
3934 mbtree
3935 Enable use macroblock tree ratecontrol when set to 1. When set to
3936 0, it has the same effect as x264's --no-mbtree option.
3937
3938 deblock (deblock)
3939 Set loop filter parameters, in alpha:beta form.
3940
3941 cplxblur (cplxblur)
3942 Set fluctuations reduction in QP (before curve compression).
3943
3944 partitions (partitions)
3945 Set partitions to consider as a comma-separated list of. Possible
3946 values in the list:
3947
3948 p8x8
3949 8x8 P-frame partition.
3950
3951 p4x4
3952 4x4 P-frame partition.
3953
3954 b8x8
3955 4x4 B-frame partition.
3956
3957 i8x8
3958 8x8 I-frame partition.
3959
3960 i4x4
3961 4x4 I-frame partition. (Enabling p4x4 requires p8x8 to be
3962 enabled. Enabling i8x8 requires adaptive spatial transform
3963 (8x8dct option) to be enabled.)
3964
3965 none (none)
3966 Do not consider any partitions.
3967
3968 all (all)
3969 Consider every partition.
3970
3971 direct-pred (direct)
3972 Set direct MV prediction mode. Possible values:
3973
3974 none (none)
3975 Disable MV prediction.
3976
3977 spatial (spatial)
3978 Enable spatial predicting.
3979
3980 temporal (temporal)
3981 Enable temporal predicting.
3982
3983 auto (auto)
3984 Automatically decided.
3985
3986 slice-max-size (slice-max-size)
3987 Set the limit of the size of each slice in bytes. If not specified
3988 but RTP payload size (ps) is specified, that is used.
3989
3990 stats (stats)
3991 Set the file name for multi-pass stats.
3992
3993 nal-hrd (nal-hrd)
3994 Set signal HRD information (requires vbv-bufsize to be set).
3995 Possible values:
3996
3997 none (none)
3998 Disable HRD information signaling.
3999
4000 vbr (vbr)
4001 Variable bit rate.
4002
4003 cbr (cbr)
4004 Constant bit rate (not allowed in MP4 container).
4005
4006 x264opts (N.A.)
4007 Set any x264 option, see x264 --fullhelp for a list.
4008
4009 Argument is a list of key=value couples separated by ":". In filter
4010 and psy-rd options that use ":" as a separator themselves, use ","
4011 instead. They accept it as well since long ago but this is kept
4012 undocumented for some reason.
4013
4014 For example to specify libx264 encoding options with ffmpeg:
4015
4016 ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
4017
4018 a53cc boolean
4019 Import closed captions (which must be ATSC compatible format) into
4020 output. Only the mpeg2 and h264 decoders provide these. Default is
4021 1 (on).
4022
4023 udu_sei boolean
4024 Import user data unregistered SEI if available into output. Default
4025 is 0 (off).
4026
4027 x264-params (N.A.)
4028 Override the x264 configuration using a :-separated list of
4029 key=value parameters.
4030
4031 This option is functionally the same as the x264opts, but is
4032 duplicated for compatibility with the Libav fork.
4033
4034 For example to specify libx264 encoding options with ffmpeg:
4035
4036 ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\
4037 cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\
4038 no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
4039
4040 Encoding ffpresets for common usages are provided so they can be used
4041 with the general presets system (e.g. passing the pre option).
4042
4043 libx265
4044 x265 H.265/HEVC encoder wrapper.
4045
4046 This encoder requires the presence of the libx265 headers and library
4047 during configuration. You need to explicitly configure the build with
4048 --enable-libx265.
4049
4050 Options
4051
4052 b Sets target video bitrate.
4053
4054 bf
4055 g Set the GOP size.
4056
4057 keyint_min
4058 Minimum GOP size.
4059
4060 refs
4061 Number of reference frames each P-frame can use. The range is from
4062 1-16.
4063
4064 preset
4065 Set the x265 preset.
4066
4067 tune
4068 Set the x265 tune parameter.
4069
4070 profile
4071 Set profile restrictions.
4072
4073 crf Set the quality for constant quality mode.
4074
4075 qp Set constant quantization rate control method parameter.
4076
4077 qmin
4078 Minimum quantizer scale.
4079
4080 qmax
4081 Maximum quantizer scale.
4082
4083 qdiff
4084 Maximum difference between quantizer scales.
4085
4086 qblur
4087 Quantizer curve blur
4088
4089 qcomp
4090 Quantizer curve compression factor
4091
4092 i_qfactor
4093 b_qfactor
4094 forced-idr
4095 Normally, when forcing a I-frame type, the encoder can select any
4096 type of I-frame. This option forces it to choose an IDR-frame.
4097
4098 udu_sei boolean
4099 Import user data unregistered SEI if available into output. Default
4100 is 0 (off).
4101
4102 x265-params
4103 Set x265 options using a list of key=value couples separated by
4104 ":". See x265 --help for a list of options.
4105
4106 For example to specify libx265 encoding options with -x265-params:
4107
4108 ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4
4109
4110 libxavs2
4111 xavs2 AVS2-P2/IEEE1857.4 encoder wrapper.
4112
4113 This encoder requires the presence of the libxavs2 headers and library
4114 during configuration. You need to explicitly configure the build with
4115 --enable-libxavs2.
4116
4117 The following standard libavcodec options are used:
4118
4119 • b / bit_rate
4120
4121 • g / gop_size
4122
4123 • bf / max_b_frames
4124
4125 The encoder also has its own specific options:
4126
4127 Options
4128
4129 lcu_row_threads
4130 Set the number of parallel threads for rows from 1 to 8 (default
4131 5).
4132
4133 initial_qp
4134 Set the xavs2 quantization parameter from 1 to 63 (default 34).
4135 This is used to set the initial qp for the first frame.
4136
4137 qp Set the xavs2 quantization parameter from 1 to 63 (default 34).
4138 This is used to set the qp value under constant-QP mode.
4139
4140 max_qp
4141 Set the max qp for rate control from 1 to 63 (default 55).
4142
4143 min_qp
4144 Set the min qp for rate control from 1 to 63 (default 20).
4145
4146 speed_level
4147 Set the Speed level from 0 to 9 (default 0). Higher is better but
4148 slower.
4149
4150 log_level
4151 Set the log level from -1 to 3 (default 0). -1: none, 0: error, 1:
4152 warning, 2: info, 3: debug.
4153
4154 xavs2-params
4155 Set xavs2 options using a list of key=value couples separated by
4156 ":".
4157
4158 For example to specify libxavs2 encoding options with
4159 -xavs2-params:
4160
4161 ffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2
4162
4163 libxvid
4164 Xvid MPEG-4 Part 2 encoder wrapper.
4165
4166 This encoder requires the presence of the libxvidcore headers and
4167 library during configuration. You need to explicitly configure the
4168 build with "--enable-libxvid --enable-gpl".
4169
4170 The native "mpeg4" encoder supports the MPEG-4 Part 2 format, so users
4171 can encode to this format without this library.
4172
4173 Options
4174
4175 The following options are supported by the libxvid wrapper. Some of the
4176 following options are listed but are not documented, and correspond to
4177 shared codec options. See the Codec Options chapter for their
4178 documentation. The other shared options which are not listed have no
4179 effect for the libxvid encoder.
4180
4181 b
4182 g
4183 qmin
4184 qmax
4185 mpeg_quant
4186 threads
4187 bf
4188 b_qfactor
4189 b_qoffset
4190 flags
4191 Set specific encoding flags. Possible values:
4192
4193 mv4 Use four motion vector by macroblock.
4194
4195 aic Enable high quality AC prediction.
4196
4197 gray
4198 Only encode grayscale.
4199
4200 gmc Enable the use of global motion compensation (GMC).
4201
4202 qpel
4203 Enable quarter-pixel motion compensation.
4204
4205 cgop
4206 Enable closed GOP.
4207
4208 global_header
4209 Place global headers in extradata instead of every keyframe.
4210
4211 trellis
4212 me_method
4213 Set motion estimation method. Possible values in decreasing order
4214 of speed and increasing order of quality:
4215
4216 zero
4217 Use no motion estimation (default).
4218
4219 phods
4220 x1
4221 log Enable advanced diamond zonal search for 16x16 blocks and half-
4222 pixel refinement for 16x16 blocks. x1 and log are aliases for
4223 phods.
4224
4225 epzs
4226 Enable all of the things described above, plus advanced diamond
4227 zonal search for 8x8 blocks, half-pixel refinement for 8x8
4228 blocks, and motion estimation on chroma planes.
4229
4230 full
4231 Enable all of the things described above, plus extended 16x16
4232 and 8x8 blocks search.
4233
4234 mbd Set macroblock decision algorithm. Possible values in the
4235 increasing order of quality:
4236
4237 simple
4238 Use macroblock comparing function algorithm (default).
4239
4240 bits
4241 Enable rate distortion-based half pixel and quarter pixel
4242 refinement for 16x16 blocks.
4243
4244 rd Enable all of the things described above, plus rate distortion-
4245 based half pixel and quarter pixel refinement for 8x8 blocks,
4246 and rate distortion-based search using square pattern.
4247
4248 lumi_aq
4249 Enable lumi masking adaptive quantization when set to 1. Default is
4250 0 (disabled).
4251
4252 variance_aq
4253 Enable variance adaptive quantization when set to 1. Default is 0
4254 (disabled).
4255
4256 When combined with lumi_aq, the resulting quality will not be
4257 better than any of the two specified individually. In other words,
4258 the resulting quality will be the worse one of the two effects.
4259
4260 ssim
4261 Set structural similarity (SSIM) displaying method. Possible
4262 values:
4263
4264 off Disable displaying of SSIM information.
4265
4266 avg Output average SSIM at the end of encoding to stdout. The
4267 format of showing the average SSIM is:
4268
4269 Average SSIM: %f
4270
4271 For users who are not familiar with C, %f means a float number,
4272 or a decimal (e.g. 0.939232).
4273
4274 frame
4275 Output both per-frame SSIM data during encoding and average
4276 SSIM at the end of encoding to stdout. The format of per-frame
4277 information is:
4278
4279 SSIM: avg: %1.3f min: %1.3f max: %1.3f
4280
4281 For users who are not familiar with C, %1.3f means a float
4282 number rounded to 3 digits after the dot (e.g. 0.932).
4283
4284 ssim_acc
4285 Set SSIM accuracy. Valid options are integers within the range of
4286 0-4, while 0 gives the most accurate result and 4 computes the
4287 fastest.
4288
4289 MediaFoundation
4290 This provides wrappers to encoders (both audio and video) in the
4291 MediaFoundation framework. It can access both SW and HW encoders.
4292 Video encoders can take input in either of nv12 or yuv420p form (some
4293 encoders support both, some support only either - in practice, nv12 is
4294 the safer choice, especially among HW encoders).
4295
4296 mpeg2
4297 MPEG-2 video encoder.
4298
4299 Options
4300
4301 profile
4302 Select the mpeg2 profile to encode:
4303
4304 422
4305 high
4306 ss Spatially Scalable
4307
4308 snr SNR Scalable
4309
4310 main
4311 simple
4312 level
4313 Select the mpeg2 level to encode:
4314
4315 high
4316 high1440
4317 main
4318 low
4319 seq_disp_ext integer
4320 Specifies if the encoder should write a sequence_display_extension
4321 to the output.
4322
4323 -1
4324 auto
4325 Decide automatically to write it or not (this is the default)
4326 by checking if the data to be written is different from the
4327 default or unspecified values.
4328
4329 0
4330 never
4331 Never write it.
4332
4333 1
4334 always
4335 Always write it.
4336
4337 video_format integer
4338 Specifies the video_format written into the sequence display
4339 extension indicating the source of the video pictures. The default
4340 is unspecified, can be component, pal, ntsc, secam or mac. For
4341 maximum compatibility, use component.
4342
4343 a53cc boolean
4344 Import closed captions (which must be ATSC compatible format) into
4345 output. Default is 1 (on).
4346
4347 png
4348 PNG image encoder.
4349
4350 Private options
4351
4352 dpi integer
4353 Set physical density of pixels, in dots per inch, unset by default
4354
4355 dpm integer
4356 Set physical density of pixels, in dots per meter, unset by default
4357
4358 ProRes
4359 Apple ProRes encoder.
4360
4361 FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder.
4362 The used encoder can be chosen with the "-vcodec" option.
4363
4364 Private Options for prores-ks
4365
4366 profile integer
4367 Select the ProRes profile to encode
4368
4369 proxy
4370 lt
4371 standard
4372 hq
4373 4444
4374 4444xq
4375 quant_mat integer
4376 Select quantization matrix.
4377
4378 auto
4379 default
4380 proxy
4381 lt
4382 standard
4383 hq
4384
4385 If set to auto, the matrix matching the profile will be picked. If
4386 not set, the matrix providing the highest quality, default, will be
4387 picked.
4388
4389 bits_per_mb integer
4390 How many bits to allot for coding one macroblock. Different
4391 profiles use between 200 and 2400 bits per macroblock, the maximum
4392 is 8000.
4393
4394 mbs_per_slice integer
4395 Number of macroblocks in each slice (1-8); the default value (8)
4396 should be good in almost all situations.
4397
4398 vendor string
4399 Override the 4-byte vendor ID. A custom vendor ID like apl0 would
4400 claim the stream was produced by the Apple encoder.
4401
4402 alpha_bits integer
4403 Specify number of bits for alpha component. Possible values are 0,
4404 8 and 16. Use 0 to disable alpha plane coding.
4405
4406 Speed considerations
4407
4408 In the default mode of operation the encoder has to honor frame
4409 constraints (i.e. not produce frames with size bigger than requested)
4410 while still making output picture as good as possible. A frame
4411 containing a lot of small details is harder to compress and the encoder
4412 would spend more time searching for appropriate quantizers for each
4413 slice.
4414
4415 Setting a higher bits_per_mb limit will improve the speed.
4416
4417 For the fastest encoding speed set the qscale parameter (4 is the
4418 recommended value) and do not set a size constraint.
4419
4420 QSV Encoders
4421 The family of Intel QuickSync Video encoders (MPEG-2, H.264, HEVC,
4422 JPEG/MJPEG and VP9)
4423
4424 Ratecontrol Method
4425
4426 The ratecontrol method is selected as follows:
4427
4428 • When global_quality is specified, a quality-based mode is used.
4429 Specifically this means either
4430
4431 - CQP - constant quantizer scale, when the qscale codec flag is
4432 also set (the -qscale ffmpeg option).
4433
4434 - LA_ICQ - intelligent constant quality with lookahead, when the
4435 look_ahead option is also set.
4436
4437 - ICQ -- intelligent constant quality otherwise. For the ICQ
4438 modes, global quality range is 1 to 51, with 1 being the best
4439 quality.
4440
4441 • Otherwise, a bitrate-based mode is used. For all of those, you
4442 should specify at least the desired average bitrate with the b
4443 option.
4444
4445 - LA - VBR with lookahead, when the look_ahead option is
4446 specified.
4447
4448 - VCM - video conferencing mode, when the vcm option is set.
4449
4450 - CBR - constant bitrate, when maxrate is specified and equal to
4451 the average bitrate.
4452
4453 - VBR - variable bitrate, when maxrate is specified, but is
4454 higher than the average bitrate.
4455
4456 - AVBR - average VBR mode, when maxrate is not specified. This
4457 mode is further configured by the avbr_accuracy and
4458 avbr_convergence options.
4459
4460 Note that depending on your system, a different mode than the one you
4461 specified may be selected by the encoder. Set the verbosity level to
4462 verbose or higher to see the actual settings used by the QSV runtime.
4463
4464 Global Options -> MSDK Options
4465
4466 Additional libavcodec global options are mapped to MSDK options as
4467 follows:
4468
4469 • g/gop_size -> GopPicSize
4470
4471 • bf/max_b_frames+1 -> GopRefDist
4472
4473 • rc_init_occupancy/rc_initial_buffer_occupancy -> InitialDelayInKB
4474
4475 • slices -> NumSlice
4476
4477 • refs -> NumRefFrame
4478
4479 • b_strategy/b_frame_strategy -> BRefType
4480
4481 • cgop/CLOSED_GOP codec flag -> GopOptFlag
4482
4483 • For the CQP mode, the i_qfactor/i_qoffset and b_qfactor/b_qoffset
4484 set the difference between QPP and QPI, and QPP and QPB
4485 respectively.
4486
4487 • Setting the coder option to the value vlc will make the H.264
4488 encoder use CAVLC instead of CABAC.
4489
4490 Common Options
4491
4492 Following options are used by all qsv encoders.
4493
4494 async_depth
4495 Specifies how many asynchronous operations an application performs
4496 before the application explicitly synchronizes the result. If zero,
4497 the value is not specified.
4498
4499 avbr_accuracy
4500 Accuracy of the AVBR ratecontrol (unit of tenth of percent).
4501
4502 avbr_convergence
4503 Convergence of the AVBR ratecontrol (unit of 100 frames)
4504
4505 The parameters avbr_accuracy and avbr_convergence are for the
4506 average variable bitrate control (AVBR) algorithm. The algorithm
4507 focuses on overall encoding quality while meeting the specified
4508 bitrate, target_bitrate, within the accuracy range avbr_accuracy,
4509 after a avbr_Convergence period. This method does not follow HRD
4510 and the instant bitrate is not capped or padded.
4511
4512 preset
4513 This option itemizes a range of choices from veryfast (best speed)
4514 to veryslow (best quality).
4515
4516 veryfast
4517 faster
4518 fast
4519 medium
4520 slow
4521 slower
4522 veryslow
4523 forced_idr
4524 Forcing I frames as IDR frames.
4525
4526 low_power
4527 For encoders set this flag to ON to reduce power consumption and
4528 GPU usage.
4529
4530 Runtime Options
4531
4532 Following options can be used durning qsv encoding.
4533
4534 qsv_config_qp
4535 Supported in h264_qsv and hevc_qsv. This option can be set in per-
4536 frame metadata. QP parameter can be dynamically changed when
4537 encoding in CQP mode.
4538
4539 H264 options
4540
4541 These options are used by h264_qsv
4542
4543 extbrc
4544 Extended bitrate control.
4545
4546 recovery_point_sei
4547 Set this flag to insert the recovery point SEI message at the
4548 beginning of every intra refresh cycle.
4549
4550 rdo Enable rate distortion optimization.
4551
4552 max_frame_size
4553 Maximum encoded frame size in bytes.
4554
4555 max_frame_size_i
4556 Maximum encoded frame size for I frames in bytes. If this value is
4557 set as larger than zero, then for I frames the value set by
4558 max_frame_size is ignored.
4559
4560 max_frame_size_p
4561 Maximum encoded frame size for P frames in bytes. If this value is
4562 set as larger than zero, then for P frames the value set by
4563 max_frame_size is ignored.
4564
4565 max_slice_size
4566 Maximum encoded slice size in bytes.
4567
4568 bitrate_limit
4569 Toggle bitrate limitations. Modifies bitrate to be in the range
4570 imposed by the QSV encoder. Setting this flag off may lead to
4571 violation of HRD conformance. Mind that specifying bitrate below
4572 the QSV encoder range might significantly affect quality. If on
4573 this option takes effect in non CQP modes: if bitrate is not in the
4574 range imposed by the QSV encoder, it will be changed to be in the
4575 range.
4576
4577 mbbrc
4578 Setting this flag enables macroblock level bitrate control that
4579 generally improves subjective visual quality. Enabling this flag
4580 may have negative impact on performance and objective visual
4581 quality metric.
4582
4583 low_delay_brc
4584 Setting this flag turns on or off LowDelayBRC feautre in qsv
4585 plugin, which provides more accurate bitrate control to minimize
4586 the variance of bitstream size frame by frame. Value: -1-default
4587 0-off 1-on
4588
4589 adaptive_i
4590 This flag controls insertion of I frames by the QSV encoder. Turn
4591 ON this flag to allow changing of frame type from P and B to I.
4592
4593 adaptive_b
4594 This flag controls changing of frame type from B to P.
4595
4596 p_strategy
4597 Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to
4598 0).
4599
4600 b_strategy
4601 This option controls usage of B frames as reference.
4602
4603 dblk_idc
4604 This option disable deblocking. It has value in range 0~2.
4605
4606 cavlc
4607 If set, CAVLC is used; if unset, CABAC is used for encoding.
4608
4609 vcm Video conferencing mode, please see ratecontrol method.
4610
4611 idr_interval
4612 Distance (in I-frames) between IDR frames.
4613
4614 pic_timing_sei
4615 Insert picture timing SEI with pic_struct_syntax element.
4616
4617 single_sei_nal_unit
4618 Put all the SEI messages into one NALU.
4619
4620 max_dec_frame_buffering
4621 Maximum number of frames buffered in the DPB.
4622
4623 look_ahead
4624 Use VBR algorithm with look ahead.
4625
4626 look_ahead_depth
4627 Depth of look ahead in number frames.
4628
4629 look_ahead_downsampling
4630 Downscaling factor for the frames saved for the lookahead analysis.
4631
4632 unknown
4633 auto
4634 off
4635 2x
4636 4x
4637 int_ref_type
4638 Specifies intra refresh type. The major goal of intra refresh is
4639 improvement of error resilience without significant impact on
4640 encoded bitstream size caused by I frames. The SDK encoder achieves
4641 this by encoding part of each frame in refresh cycle using intra
4642 MBs. none means no refresh. vertical means vertical refresh, by
4643 column of MBs. To enable intra refresh, B frame should be set to 0.
4644
4645 int_ref_cycle_size
4646 Specifies number of pictures within refresh cycle starting from 2.
4647 0 and 1 are invalid values.
4648
4649 int_ref_qp_delta
4650 Specifies QP difference for inserted intra MBs. This is signed
4651 value in [-51, 51] range if target encoding bit-depth for luma
4652 samples is 8 and this range is [-63, 63] for 10 bit-depth or [-75,
4653 75] for 12 bit-depth respectively.
4654
4655 int_ref_cycle_dist
4656 Distance between the beginnings of the intra-refresh cycles in
4657 frames.
4658
4659 profile
4660 unknown
4661 baseline
4662 main
4663 high
4664 a53cc
4665 Use A53 Closed Captions (if available).
4666
4667 aud Insert the Access Unit Delimiter NAL.
4668
4669 mfmode
4670 Multi-Frame Mode.
4671
4672 off
4673 auto
4674 repeat_pps
4675 Repeat pps for every frame.
4676
4677 max_qp_i
4678 Maximum video quantizer scale for I frame.
4679
4680 min_qp_i
4681 Minimum video quantizer scale for I frame.
4682
4683 max_qp_p
4684 Maximum video quantizer scale for P frame.
4685
4686 min_qp_p
4687 Minimum video quantizer scale for P frame.
4688
4689 max_qp_b
4690 Maximum video quantizer scale for B frame.
4691
4692 min_qp_b
4693 Minimum video quantizer scale for B frame.
4694
4695 HEVC Options
4696
4697 These options are used by hevc_qsv
4698
4699 extbrc
4700 Extended bitrate control.
4701
4702 recovery_point_sei
4703 Set this flag to insert the recovery point SEI message at the
4704 beginning of every intra refresh cycle.
4705
4706 rdo Enable rate distortion optimization.
4707
4708 max_frame_size
4709 Maximum encoded frame size in bytes.
4710
4711 max_frame_size_i
4712 Maximum encoded frame size for I frames in bytes. If this value is
4713 set as larger than zero, then for I frames the value set by
4714 max_frame_size is ignored.
4715
4716 max_frame_size_p
4717 Maximum encoded frame size for P frames in bytes. If this value is
4718 set as larger than zero, then for P frames the value set by
4719 max_frame_size is ignored.
4720
4721 max_slice_size
4722 Maximum encoded slice size in bytes.
4723
4724 mbbrc
4725 Setting this flag enables macroblock level bitrate control that
4726 generally improves subjective visual quality. Enabling this flag
4727 may have negative impact on performance and objective visual
4728 quality metric.
4729
4730 low_delay_brc
4731 Setting this flag turns on or off LowDelayBRC feautre in qsv
4732 plugin, which provides more accurate bitrate control to minimize
4733 the variance of bitstream size frame by frame. Value: -1-default
4734 0-off 1-on
4735
4736 p_strategy
4737 Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to
4738 0).
4739
4740 b_strategy
4741 This option controls usage of B frames as reference.
4742
4743 dblk_idc
4744 This option disable deblocking. It has value in range 0~2.
4745
4746 idr_interval
4747 Distance (in I-frames) between IDR frames.
4748
4749 begin_only
4750 Output an IDR-frame only at the beginning of the stream.
4751
4752 load_plugin
4753 A user plugin to load in an internal session.
4754
4755 none
4756 hevc_sw
4757 hevc_hw
4758 load_plugins
4759 A :-separate list of hexadecimal plugin UIDs to load in an internal
4760 session.
4761
4762 look_ahead_depth
4763 Depth of look ahead in number frames, available when extbrc option
4764 is enabled.
4765
4766 profile
4767 Set the encoding profile (scc requires libmfx >= 1.32).
4768
4769 unknown
4770 main
4771 main10
4772 mainsp
4773 rext
4774 scc
4775 gpb 1: GPB (generalized P/B frame)
4776
4777 0: regular P frame.
4778
4779 tile_cols
4780 Number of columns for tiled encoding.
4781
4782 tile_rows
4783 Number of rows for tiled encoding.
4784
4785 aud Insert the Access Unit Delimiter NAL.
4786
4787 pic_timing_sei
4788 Insert picture timing SEI with pic_struct_syntax element.
4789
4790 transform_skip
4791 Turn this option ON to enable transformskip. It is supported on
4792 platform equal or newer than ICL.
4793
4794 int_ref_type
4795 Specifies intra refresh type. The major goal of intra refresh is
4796 improvement of error resilience without significant impact on
4797 encoded bitstream size caused by I frames. The SDK encoder achieves
4798 this by encoding part of each frame in refresh cycle using intra
4799 MBs. none means no refresh. vertical means vertical refresh, by
4800 column of MBs. To enable intra refresh, B frame should be set to 0.
4801
4802 int_ref_cycle_size
4803 Specifies number of pictures within refresh cycle starting from 2.
4804 0 and 1 are invalid values.
4805
4806 int_ref_qp_delta
4807 Specifies QP difference for inserted intra MBs. This is signed
4808 value in [-51, 51] range if target encoding bit-depth for luma
4809 samples is 8 and this range is [-63, 63] for 10 bit-depth or [-75,
4810 75] for 12 bit-depth respectively.
4811
4812 int_ref_cycle_dist
4813 Distance between the beginnings of the intra-refresh cycles in
4814 frames.
4815
4816 max_qp_i
4817 Maximum video quantizer scale for I frame.
4818
4819 min_qp_i
4820 Minimum video quantizer scale for I frame.
4821
4822 max_qp_p
4823 Maximum video quantizer scale for P frame.
4824
4825 min_qp_p
4826 Minimum video quantizer scale for P frame.
4827
4828 max_qp_b
4829 Maximum video quantizer scale for B frame.
4830
4831 min_qp_b
4832 Minimum video quantizer scale for B frame.
4833
4834 MPEG2 Options
4835
4836 These options are used by mpeg2_qsv
4837
4838 profile
4839 unknown
4840 simple
4841 main
4842 high
4843
4844 VP9 Options
4845
4846 These options are used by vp9_qsv
4847
4848 profile
4849 unknown
4850 profile0
4851 profile1
4852 profile2
4853 profile3
4854 tile_cols
4855 Number of columns for tiled encoding (requires libmfx >= 1.29).
4856
4857 tile_rows
4858 Number of rows for tiled encoding (requires libmfx >= 1.29).
4859
4860 snow
4861 Options
4862
4863 iterative_dia_size
4864 dia size for the iterative motion estimation
4865
4866 VAAPI encoders
4867 Wrappers for hardware encoders accessible via VAAPI.
4868
4869 These encoders only accept input in VAAPI hardware surfaces. If you
4870 have input in software frames, use the hwupload filter to upload them
4871 to the GPU.
4872
4873 The following standard libavcodec options are used:
4874
4875 • g / gop_size
4876
4877 • bf / max_b_frames
4878
4879 • profile
4880
4881 If not set, this will be determined automatically from the format
4882 of the input frames and the profiles supported by the driver.
4883
4884 • level
4885
4886 • b / bit_rate
4887
4888 • maxrate / rc_max_rate
4889
4890 • bufsize / rc_buffer_size
4891
4892 • rc_init_occupancy / rc_initial_buffer_occupancy
4893
4894 • compression_level
4895
4896 Speed / quality tradeoff: higher values are faster / worse quality.
4897
4898 • q / global_quality
4899
4900 Size / quality tradeoff: higher values are smaller / worse quality.
4901
4902 • qmin
4903
4904 • qmax
4905
4906 • i_qfactor / i_quant_factor
4907
4908 • i_qoffset / i_quant_offset
4909
4910 • b_qfactor / b_quant_factor
4911
4912 • b_qoffset / b_quant_offset
4913
4914 • slices
4915
4916 All encoders support the following options:
4917
4918 low_power
4919 Some drivers/platforms offer a second encoder for some codecs
4920 intended to use less power than the default encoder; setting this
4921 option will attempt to use that encoder. Note that it may support
4922 a reduced feature set, so some other options may not be available
4923 in this mode.
4924
4925 idr_interval
4926 Set the number of normal intra frames between full-refresh (IDR)
4927 frames in open-GOP mode. The intra frames are still IRAPs, but
4928 will not include global headers and may have non-decodable leading
4929 pictures.
4930
4931 b_depth
4932 Set the B-frame reference depth. When set to one (the default),
4933 all B-frames will refer only to P- or I-frames. When set to
4934 greater values multiple layers of B-frames will be present, frames
4935 in each layer only referring to frames in higher layers.
4936
4937 async_depth
4938 Maximum processing parallelism. Increase this to improve single
4939 channel performance. This option doesn't work if driver doesn't
4940 implement vaSyncBuffer function. Please make sure there are enough
4941 hw_frames allocated if a large number of async_depth is used.
4942
4943 max_frame_size
4944 Set the allowed max size in bytes for each frame. If the frame size
4945 exceeds the limitation, encoder will adjust the QP value to control
4946 the frame size. Invalid in CQP rate control mode.
4947
4948 rc_mode
4949 Set the rate control mode to use. A given driver may only support
4950 a subset of modes.
4951
4952 Possible modes:
4953
4954 auto
4955 Choose the mode automatically based on driver support and the
4956 other options. This is the default.
4957
4958 CQP Constant-quality.
4959
4960 CBR Constant-bitrate.
4961
4962 VBR Variable-bitrate.
4963
4964 ICQ Intelligent constant-quality.
4965
4966 QVBR
4967 Quality-defined variable-bitrate.
4968
4969 AVBR
4970 Average variable bitrate.
4971
4972 Each encoder also has its own specific options:
4973
4974 h264_vaapi
4975 profile sets the value of profile_idc and the
4976 constraint_set*_flags. level sets the value of level_idc.
4977
4978 coder
4979 Set entropy encoder (default is cabac). Possible values:
4980
4981 ac
4982 cabac
4983 Use CABAC.
4984
4985 vlc
4986 cavlc
4987 Use CAVLC.
4988
4989 aud Include access unit delimiters in the stream (not included by
4990 default).
4991
4992 sei Set SEI message types to include. Some combination of the
4993 following values:
4994
4995 identifier
4996 Include a user_data_unregistered message containing
4997 information about the encoder.
4998
4999 timing
5000 Include picture timing parameters (buffering_period and
5001 pic_timing messages).
5002
5003 recovery_point
5004 Include recovery points where appropriate (recovery_point
5005 messages).
5006
5007 hevc_vaapi
5008 profile and level set the values of general_profile_idc and
5009 general_level_idc respectively.
5010
5011 aud Include access unit delimiters in the stream (not included by
5012 default).
5013
5014 tier
5015 Set general_tier_flag. This may affect the level chosen for
5016 the stream if it is not explicitly specified.
5017
5018 sei Set SEI message types to include. Some combination of the
5019 following values:
5020
5021 hdr Include HDR metadata if the input frames have it
5022 (mastering_display_colour_volume and content_light_level
5023 messages).
5024
5025 tiles
5026 Set the number of tiles to encode the input video with, as
5027 columns x rows. Larger numbers allow greater parallelism in
5028 both encoding and decoding, but may decrease coding efficiency.
5029
5030 mjpeg_vaapi
5031 Only baseline DCT encoding is supported. The encoder always uses
5032 the standard quantisation and huffman tables - global_quality
5033 scales the standard quantisation table (range 1-100).
5034
5035 For YUV, 4:2:0, 4:2:2 and 4:4:4 subsampling modes are supported.
5036 RGB is also supported, and will create an RGB JPEG.
5037
5038 jfif
5039 Include JFIF header in each frame (not included by default).
5040
5041 huffman
5042 Include standard huffman tables (on by default). Turning this
5043 off will save a few hundred bytes in each output frame, but may
5044 lose compatibility with some JPEG decoders which don't fully
5045 handle MJPEG.
5046
5047 mpeg2_vaapi
5048 profile and level set the value of profile_and_level_indication.
5049
5050 vp8_vaapi
5051 B-frames are not supported.
5052
5053 global_quality sets the q_idx used for non-key frames (range
5054 0-127).
5055
5056 loop_filter_level
5057 loop_filter_sharpness
5058 Manually set the loop filter parameters.
5059
5060 vp9_vaapi
5061 global_quality sets the q_idx used for P-frames (range 0-255).
5062
5063 loop_filter_level
5064 loop_filter_sharpness
5065 Manually set the loop filter parameters.
5066
5067 B-frames are supported, but the output stream is always in encode
5068 order rather than display order. If B-frames are enabled, it may
5069 be necessary to use the vp9_raw_reorder bitstream filter to modify
5070 the output stream to display frames in the correct order.
5071
5072 Only normal frames are produced - the vp9_superframe bitstream
5073 filter may be required to produce a stream usable with all
5074 decoders.
5075
5076 vbn
5077 Vizrt Binary Image encoder.
5078
5079 This format is used by the broadcast vendor Vizrt for quick texture
5080 streaming. Advanced features of the format such as LZW compression of
5081 texture data or generation of mipmaps are not supported.
5082
5083 Options
5084
5085 format string
5086 Sets the texture compression used by the VBN file. Can be dxt1,
5087 dxt5 or raw. Default is dxt5.
5088
5089 vc2
5090 SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed
5091 at professional broadcasting but since it supports yuv420, yuv422 and
5092 yuv444 at 8 (limited range or full range), 10 or 12 bits, this makes it
5093 suitable for other tasks which require low overhead and low compression
5094 (like screen recording).
5095
5096 Options
5097
5098 b Sets target video bitrate. Usually that's around 1:6 of the
5099 uncompressed video bitrate (e.g. for 1920x1080 50fps yuv422p10
5100 that's around 400Mbps). Higher values (close to the uncompressed
5101 bitrate) turn on lossless compression mode.
5102
5103 field_order
5104 Enables field coding when set (e.g. to tt - top field first) for
5105 interlaced inputs. Should increase compression with interlaced
5106 content as it splits the fields and encodes each separately.
5107
5108 wavelet_depth
5109 Sets the total amount of wavelet transforms to apply, between 1 and
5110 5 (default). Lower values reduce compression and quality. Less
5111 capable decoders may not be able to handle values of wavelet_depth
5112 over 3.
5113
5114 wavelet_type
5115 Sets the transform type. Currently only 5_3 (LeGall) and 9_7
5116 (Deslauriers-Dubuc) are implemented, with 9_7 being the one with
5117 better compression and thus is the default.
5118
5119 slice_width
5120 slice_height
5121 Sets the slice size for each slice. Larger values result in better
5122 compression. For compatibility with other more limited decoders
5123 use slice_width of 32 and slice_height of 8.
5124
5125 tolerance
5126 Sets the undershoot tolerance of the rate control system in
5127 percent. This is to prevent an expensive search from being run.
5128
5129 qm Sets the quantization matrix preset to use by default or when
5130 wavelet_depth is set to 5
5131
5132 - default Uses the default quantization matrix from the
5133 specifications, extended with values for the fifth level. This
5134 provides a good balance between keeping detail and omitting
5135 artifacts.
5136
5137 - flat Use a completely zeroed out quantization matrix. This
5138 increases PSNR but might reduce perception. Use in bogus
5139 benchmarks.
5140
5141 - color Reduces detail but attempts to preserve color at
5142 extremely low bitrates.
5143
5145 dvdsub
5146 This codec encodes the bitmap subtitle format that is used in DVDs.
5147 Typically they are stored in VOBSUB file pairs (*.idx + *.sub), and
5148 they can also be used in Matroska files.
5149
5150 Options
5151
5152 palette
5153 Specify the global palette used by the bitmaps.
5154
5155 The format for this option is a string containing 16 24-bits
5156 hexadecimal numbers (without 0x prefix) separated by commas, for
5157 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
5158 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
5159 7c127b".
5160
5161 even_rows_fix
5162 When set to 1, enable a work-around that makes the number of pixel
5163 rows even in all subtitles. This fixes a problem with some players
5164 that cut off the bottom row if the number is odd. The work-around
5165 just adds a fully transparent row if needed. The overhead is low,
5166 typically one byte per subtitle on average.
5167
5168 By default, this work-around is disabled.
5169
5171 ffmpeg(1), ffplay(1), ffprobe(1), libavcodec(3)
5172
5174 The FFmpeg developers.
5175
5176 For details about the authorship, see the Git history of the project
5177 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
5178 the FFmpeg source directory, or browsing the online repository at
5179 <http://source.ffmpeg.org>.
5180
5181 Maintainers for the specific components are listed in the file
5182 MAINTAINERS in the source code tree.
5183
5184
5185
5186 FFMPEG-CODECS(1)