1FFMPEG-CODECS(1)                                              FFMPEG-CODECS(1)
2
3
4

NAME

6       ffmpeg-codecs - FFmpeg codecs
7

DESCRIPTION

9       This document describes the codecs (decoders and encoders) provided by
10       the libavcodec library.
11

CODEC OPTIONS

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

DECODERS

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

VIDEO DECODERS

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

AUDIO DECODERS

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

SUBTITLES DECODERS

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

ENCODERS

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

AUDIO ENCODERS

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

VIDEO ENCODERS

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
4119b / bit_rate
4120
4121g / gop_size
4122
4123bf / 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
4469g/gop_size -> GopPicSize
4470
4471bf/max_b_frames+1 -> GopRefDist
4472
4473rc_init_occupancy/rc_initial_buffer_occupancy -> InitialDelayInKB
4474
4475slices -> NumSlice
4476
4477refs -> NumRefFrame
4478
4479b_strategy/b_frame_strategy -> BRefType
4480
4481cgop/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
4875g / gop_size
4876
4877bf / max_b_frames
4878
4879profile
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
4884level
4885
4886b / bit_rate
4887
4888maxrate / rc_max_rate
4889
4890bufsize / rc_buffer_size
4891
4892rc_init_occupancy / rc_initial_buffer_occupancy
4893
4894compression_level
4895
4896           Speed / quality tradeoff: higher values are faster / worse quality.
4897
4898q / global_quality
4899
4900           Size / quality tradeoff: higher values are smaller / worse quality.
4901
4902qmin
4903
4904qmax
4905
4906i_qfactor / i_quant_factor
4907
4908i_qoffset / i_quant_offset
4909
4910b_qfactor / b_quant_factor
4911
4912b_qoffset / b_quant_offset
4913
4914slices
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

SUBTITLES ENCODERS

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

SEE ALSO

5171       ffmpeg(1), ffplay(1), ffprobe(1), libavcodec(3)
5172

AUTHORS

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)
Impressum