]> git.sesse.net Git - ffmpeg/blob - doc/codecs.texi
avcodec: Remove deprecated stat-bits fields
[ffmpeg] / doc / codecs.texi
1 @anchor{codec-options}
2 @chapter Codec Options
3 @c man begin CODEC OPTIONS
4
5 libavcodec provides some generic global options, which can be set on
6 all the encoders and decoders. In addition each codec may support
7 so-called private options, which are specific for a given codec.
8
9 Sometimes, a global option may only affect a specific kind of codec,
10 and may be nonsensical or ignored by another, so you need to be aware
11 of the meaning of the specified options. Also some options are
12 meant only for decoding or encoding.
13
14 Options may be set by specifying -@var{option} @var{value} in the
15 FFmpeg tools, or by setting the value explicitly in the
16 @code{AVCodecContext} options or using the @file{libavutil/opt.h} API
17 for programmatic use.
18
19 The list of supported options follow:
20
21 @table @option
22 @item b @var{integer} (@emph{encoding,audio,video})
23 Set bitrate in bits/s. Default value is 200K.
24
25 @item ab @var{integer} (@emph{encoding,audio})
26 Set audio bitrate (in bits/s). Default value is 128K.
27
28 @item bt @var{integer} (@emph{encoding,video})
29 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
30 tolerance specifies how far ratecontrol is willing to deviate from the
31 target average bitrate value. This is not related to min/max
32 bitrate. Lowering tolerance too much has an adverse effect on quality.
33
34 @item flags @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
35 Set generic flags.
36
37 Possible values:
38 @table @samp
39 @item mv4
40 Use four motion vector by macroblock (mpeg4).
41 @item qpel
42 Use 1/4 pel motion compensation.
43 @item loop
44 Use loop filter.
45 @item qscale
46 Use fixed qscale.
47 @item pass1
48 Use internal 2pass ratecontrol in first pass mode.
49 @item pass2
50 Use internal 2pass ratecontrol in second pass mode.
51 @item gray
52 Only decode/encode grayscale.
53 @item psnr
54 Set error[?] variables during encoding.
55 @item truncated
56 Input bitstream might be randomly truncated.
57 @item drop_changed
58 Don't output frames whose parameters differ from first decoded frame in stream.
59 Error AVERROR_INPUT_CHANGED is returned when a frame is dropped.
60
61 @item ildct
62 Use interlaced DCT.
63 @item low_delay
64 Force low delay.
65 @item global_header
66 Place global headers in extradata instead of every keyframe.
67 @item bitexact
68 Only write platform-, build- and time-independent data. (except (I)DCT).
69 This ensures that file and data checksums are reproducible and match between
70 platforms. Its primary use is for regression testing.
71 @item aic
72 Apply H263 advanced intra coding / mpeg4 ac prediction.
73 @item ilme
74 Apply interlaced motion estimation.
75 @item cgop
76 Use closed gop.
77 @item output_corrupt
78 Output even potentially corrupted frames.
79 @end table
80
81 @item time_base @var{rational number}
82 Set codec time base.
83
84 It is the fundamental unit of time (in seconds) in terms of which
85 frame timestamps are represented. For fixed-fps content, timebase
86 should be @code{1 / frame_rate} and timestamp increments should be
87 identically 1.
88
89 @item g @var{integer} (@emph{encoding,video})
90 Set the group of picture (GOP) size. Default value is 12.
91
92 @item ar @var{integer} (@emph{decoding/encoding,audio})
93 Set audio sampling rate (in Hz).
94
95 @item ac @var{integer} (@emph{decoding/encoding,audio})
96 Set number of audio channels.
97
98 @item cutoff @var{integer} (@emph{encoding,audio})
99 Set cutoff bandwidth. (Supported only by selected encoders, see
100 their respective documentation sections.)
101
102 @item frame_size @var{integer} (@emph{encoding,audio})
103 Set audio frame size.
104
105 Each submitted frame except the last must contain exactly frame_size
106 samples per channel. May be 0 when the codec has
107 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
108 restricted. It is set by some decoders to indicate constant frame
109 size.
110
111 @item frame_number @var{integer}
112 Set the frame number.
113
114 @item delay @var{integer}
115
116 @item qcomp @var{float} (@emph{encoding,video})
117 Set video quantizer scale compression (VBR). It is used as a constant
118 in the ratecontrol equation. Recommended range for default rc_eq:
119 0.0-1.0.
120
121 @item qblur @var{float} (@emph{encoding,video})
122 Set video quantizer scale blur (VBR).
123
124 @item qmin @var{integer} (@emph{encoding,video})
125 Set min video quantizer scale (VBR). Must be included between -1 and
126 69, default value is 2.
127
128 @item qmax @var{integer} (@emph{encoding,video})
129 Set max video quantizer scale (VBR). Must be included between -1 and
130 1024, default value is 31.
131
132 @item qdiff @var{integer} (@emph{encoding,video})
133 Set max difference between the quantizer scale (VBR).
134
135 @item bf @var{integer} (@emph{encoding,video})
136 Set max number of B frames between non-B-frames.
137
138 Must be an integer between -1 and 16. 0 means that B-frames are
139 disabled. If a value of -1 is used, it will choose an automatic value
140 depending on the encoder.
141
142 Default value is 0.
143
144 @item b_qfactor @var{float} (@emph{encoding,video})
145 Set qp factor between P and B frames.
146
147 @item b_strategy @var{integer} (@emph{encoding,video})
148 Set strategy to choose between I/P/B-frames.
149
150 @item ps @var{integer} (@emph{encoding,video})
151 Set RTP payload size in bytes.
152
153 @item codec_tag @var{integer}
154 @item bug @var{flags} (@emph{decoding,video})
155 Workaround not auto detected encoder bugs.
156
157 Possible values:
158 @table @samp
159 @item autodetect
160
161 @item xvid_ilace
162 Xvid interlacing bug (autodetected if fourcc==XVIX)
163 @item ump4
164 (autodetected if fourcc==UMP4)
165 @item no_padding
166 padding bug (autodetected)
167 @item amv
168
169 @item qpel_chroma
170
171 @item std_qpel
172 old standard qpel (autodetected per fourcc/version)
173 @item qpel_chroma2
174
175 @item direct_blocksize
176 direct-qpel-blocksize bug (autodetected per fourcc/version)
177 @item edge
178 edge padding bug (autodetected per fourcc/version)
179 @item hpel_chroma
180
181 @item dc_clip
182
183 @item ms
184 Workaround various bugs in microsoft broken decoders.
185 @item trunc
186 trancated frames
187 @end table
188
189 @item strict @var{integer} (@emph{decoding/encoding,audio,video})
190 Specify how strictly to follow the standards.
191
192 Possible values:
193 @table @samp
194 @item very
195 strictly conform to an older more strict version of the spec or reference software
196 @item strict
197 strictly conform to all the things in the spec no matter what consequences
198 @item normal
199
200 @item unofficial
201 allow unofficial extensions
202 @item experimental
203 allow non standardized experimental things, experimental
204 (unfinished/work in progress/not well tested) decoders and encoders.
205 Note: experimental decoders can pose a security risk, do not use this for
206 decoding untrusted input.
207 @end table
208
209 @item b_qoffset @var{float} (@emph{encoding,video})
210 Set QP offset between P and B frames.
211
212 @item err_detect @var{flags} (@emph{decoding,audio,video})
213 Set error detection flags.
214
215 Possible values:
216 @table @samp
217 @item crccheck
218 verify embedded CRCs
219 @item bitstream
220 detect bitstream specification deviations
221 @item buffer
222 detect improper bitstream length
223 @item explode
224 abort decoding on minor error detection
225 @item ignore_err
226 ignore decoding errors, and continue decoding.
227 This is useful if you want to analyze the content of a video and thus want
228 everything to be decoded no matter what. This option will not result in a video
229 that is pleasing to watch in case of errors.
230 @item careful
231 consider things that violate the spec and have not been seen in the wild as errors
232 @item compliant
233 consider all spec non compliancies as errors
234 @item aggressive
235 consider things that a sane encoder should not do as an error
236 @end table
237
238 @item has_b_frames @var{integer}
239
240 @item block_align @var{integer}
241
242 @item mpeg_quant @var{integer} (@emph{encoding,video})
243 Use MPEG quantizers instead of H.263.
244
245 @item rc_override_count @var{integer}
246
247 @item maxrate @var{integer} (@emph{encoding,audio,video})
248 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
249
250 @item minrate @var{integer} (@emph{encoding,audio,video})
251 Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR
252 encode. It is of little use elsewise.
253
254 @item bufsize @var{integer} (@emph{encoding,audio,video})
255 Set ratecontrol buffer size (in bits).
256
257 @item i_qfactor @var{float} (@emph{encoding,video})
258 Set QP factor between P and I frames.
259
260 @item i_qoffset @var{float} (@emph{encoding,video})
261 Set QP offset between P and I frames.
262
263 @item dct @var{integer} (@emph{encoding,video})
264 Set DCT algorithm.
265
266 Possible values:
267 @table @samp
268 @item auto
269 autoselect a good one (default)
270 @item fastint
271 fast integer
272 @item int
273 accurate integer
274 @item mmx
275
276 @item altivec
277
278 @item faan
279 floating point AAN DCT
280 @end table
281
282 @item lumi_mask @var{float} (@emph{encoding,video})
283 Compress bright areas stronger than medium ones.
284
285 @item tcplx_mask @var{float} (@emph{encoding,video})
286 Set temporal complexity masking.
287
288 @item scplx_mask @var{float} (@emph{encoding,video})
289 Set spatial complexity masking.
290
291 @item p_mask @var{float} (@emph{encoding,video})
292 Set inter masking.
293
294 @item dark_mask @var{float} (@emph{encoding,video})
295 Compress dark areas stronger than medium ones.
296
297 @item idct @var{integer} (@emph{decoding/encoding,video})
298 Select IDCT implementation.
299
300 Possible values:
301 @table @samp
302 @item auto
303
304 @item int
305
306 @item simple
307
308 @item simplemmx
309
310 @item simpleauto
311 Automatically pick a IDCT compatible with the simple one
312
313 @item arm
314
315 @item altivec
316
317 @item sh4
318
319 @item simplearm
320
321 @item simplearmv5te
322
323 @item simplearmv6
324
325 @item simpleneon
326
327 @item xvid
328
329 @item faani
330 floating point AAN IDCT
331 @end table
332
333 @item slice_count @var{integer}
334
335 @item ec @var{flags} (@emph{decoding,video})
336 Set error concealment strategy.
337
338 Possible values:
339 @table @samp
340 @item guess_mvs
341 iterative motion vector (MV) search (slow)
342 @item deblock
343 use strong deblock filter for damaged MBs
344 @item favor_inter
345 favor predicting from the previous frame instead of the current
346 @end table
347
348 @item bits_per_coded_sample @var{integer}
349
350 @item pred @var{integer} (@emph{encoding,video})
351 Set prediction method.
352
353 Possible values:
354 @table @samp
355 @item left
356
357 @item plane
358
359 @item median
360
361 @end table
362
363 @item aspect @var{rational number} (@emph{encoding,video})
364 Set sample aspect ratio.
365
366 @item sar @var{rational number} (@emph{encoding,video})
367 Set sample aspect ratio. Alias to @var{aspect}.
368
369 @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
370 Print specific debug info.
371
372 Possible values:
373 @table @samp
374 @item pict
375 picture info
376 @item rc
377 rate control
378 @item bitstream
379
380 @item mb_type
381 macroblock (MB) type
382 @item qp
383 per-block quantization parameter (QP)
384 @item dct_coeff
385
386 @item green_metadata
387 display complexity metadata for the upcoming frame, GoP or for a given duration.
388
389 @item skip
390
391 @item startcode
392
393 @item er
394 error recognition
395 @item mmco
396 memory management control operations (H.264)
397 @item bugs
398
399 @item buffers
400 picture buffer allocations
401 @item thread_ops
402 threading operations
403 @item nomc
404 skip motion compensation
405 @end table
406
407 @item cmp @var{integer} (@emph{encoding,video})
408 Set full pel me compare function.
409
410 Possible values:
411 @table @samp
412 @item sad
413 sum of absolute differences, fast (default)
414 @item sse
415 sum of squared errors
416 @item satd
417 sum of absolute Hadamard transformed differences
418 @item dct
419 sum of absolute DCT transformed differences
420 @item psnr
421 sum of squared quantization errors (avoid, low quality)
422 @item bit
423 number of bits needed for the block
424 @item rd
425 rate distortion optimal, slow
426 @item zero
427 0
428 @item vsad
429 sum of absolute vertical differences
430 @item vsse
431 sum of squared vertical differences
432 @item nsse
433 noise preserving sum of squared differences
434 @item w53
435 5/3 wavelet, only used in snow
436 @item w97
437 9/7 wavelet, only used in snow
438 @item dctmax
439
440 @item chroma
441
442 @end table
443
444 @item subcmp @var{integer} (@emph{encoding,video})
445 Set sub pel me compare function.
446
447 Possible values:
448 @table @samp
449 @item sad
450 sum of absolute differences, fast (default)
451 @item sse
452 sum of squared errors
453 @item satd
454 sum of absolute Hadamard transformed differences
455 @item dct
456 sum of absolute DCT transformed differences
457 @item psnr
458 sum of squared quantization errors (avoid, low quality)
459 @item bit
460 number of bits needed for the block
461 @item rd
462 rate distortion optimal, slow
463 @item zero
464 0
465 @item vsad
466 sum of absolute vertical differences
467 @item vsse
468 sum of squared vertical differences
469 @item nsse
470 noise preserving sum of squared differences
471 @item w53
472 5/3 wavelet, only used in snow
473 @item w97
474 9/7 wavelet, only used in snow
475 @item dctmax
476
477 @item chroma
478
479 @end table
480
481 @item mbcmp @var{integer} (@emph{encoding,video})
482 Set macroblock compare function.
483
484 Possible values:
485 @table @samp
486 @item sad
487 sum of absolute differences, fast (default)
488 @item sse
489 sum of squared errors
490 @item satd
491 sum of absolute Hadamard transformed differences
492 @item dct
493 sum of absolute DCT transformed differences
494 @item psnr
495 sum of squared quantization errors (avoid, low quality)
496 @item bit
497 number of bits needed for the block
498 @item rd
499 rate distortion optimal, slow
500 @item zero
501 0
502 @item vsad
503 sum of absolute vertical differences
504 @item vsse
505 sum of squared vertical differences
506 @item nsse
507 noise preserving sum of squared differences
508 @item w53
509 5/3 wavelet, only used in snow
510 @item w97
511 9/7 wavelet, only used in snow
512 @item dctmax
513
514 @item chroma
515
516 @end table
517
518 @item ildctcmp @var{integer} (@emph{encoding,video})
519 Set interlaced dct compare function.
520
521 Possible values:
522 @table @samp
523 @item sad
524 sum of absolute differences, fast (default)
525 @item sse
526 sum of squared errors
527 @item satd
528 sum of absolute Hadamard transformed differences
529 @item dct
530 sum of absolute DCT transformed differences
531 @item psnr
532 sum of squared quantization errors (avoid, low quality)
533 @item bit
534 number of bits needed for the block
535 @item rd
536 rate distortion optimal, slow
537 @item zero
538 0
539 @item vsad
540 sum of absolute vertical differences
541 @item vsse
542 sum of squared vertical differences
543 @item nsse
544 noise preserving sum of squared differences
545 @item w53
546 5/3 wavelet, only used in snow
547 @item w97
548 9/7 wavelet, only used in snow
549 @item dctmax
550
551 @item chroma
552
553 @end table
554
555 @item dia_size @var{integer} (@emph{encoding,video})
556 Set diamond type & size for motion estimation.
557 @table @samp
558 @item (1024, INT_MAX)
559 full motion estimation(slowest)
560 @item (768, 1024]
561 umh motion estimation
562 @item (512, 768]
563 hex motion estimation
564 @item (256, 512]
565 l2s diamond motion estimation
566 @item [2,256]
567 var diamond motion estimation
568 @item (-1,  2)
569 small diamond motion estimation
570 @item -1
571 funny diamond motion estimation
572 @item (INT_MIN, -1)
573 sab diamond motion estimation
574 @end table
575
576 @item last_pred @var{integer} (@emph{encoding,video})
577 Set amount of motion predictors from the previous frame.
578
579 @item preme @var{integer} (@emph{encoding,video})
580 Set pre motion estimation.
581
582 @item precmp @var{integer} (@emph{encoding,video})
583 Set pre motion estimation compare function.
584
585 Possible values:
586 @table @samp
587 @item sad
588 sum of absolute differences, fast (default)
589 @item sse
590 sum of squared errors
591 @item satd
592 sum of absolute Hadamard transformed differences
593 @item dct
594 sum of absolute DCT transformed differences
595 @item psnr
596 sum of squared quantization errors (avoid, low quality)
597 @item bit
598 number of bits needed for the block
599 @item rd
600 rate distortion optimal, slow
601 @item zero
602 0
603 @item vsad
604 sum of absolute vertical differences
605 @item vsse
606 sum of squared vertical differences
607 @item nsse
608 noise preserving sum of squared differences
609 @item w53
610 5/3 wavelet, only used in snow
611 @item w97
612 9/7 wavelet, only used in snow
613 @item dctmax
614
615 @item chroma
616
617 @end table
618
619 @item pre_dia_size @var{integer} (@emph{encoding,video})
620 Set diamond type & size for motion estimation pre-pass.
621
622 @item subq @var{integer} (@emph{encoding,video})
623 Set sub pel motion estimation quality.
624
625 @item me_range @var{integer} (@emph{encoding,video})
626 Set limit motion vectors range (1023 for DivX player).
627
628 @item global_quality @var{integer} (@emph{encoding,audio,video})
629
630 @item coder @var{integer} (@emph{encoding,video})
631
632 Possible values:
633 @table @samp
634 @item vlc
635 variable length coder / huffman coder
636 @item ac
637 arithmetic coder
638 @item raw
639 raw (no encoding)
640 @item rle
641 run-length coder
642 @end table
643
644 @item context @var{integer} (@emph{encoding,video})
645 Set context model.
646
647 @item slice_flags @var{integer}
648
649 @item mbd @var{integer} (@emph{encoding,video})
650 Set macroblock decision algorithm (high quality mode).
651
652 Possible values:
653 @table @samp
654 @item simple
655 use mbcmp (default)
656 @item bits
657 use fewest bits
658 @item rd
659 use best rate distortion
660 @end table
661
662 @item sc_threshold @var{integer} (@emph{encoding,video})
663 Set scene change threshold.
664
665 @item nr @var{integer} (@emph{encoding,video})
666 Set noise reduction.
667
668 @item rc_init_occupancy @var{integer} (@emph{encoding,video})
669 Set number of bits which should be loaded into the rc buffer before
670 decoding starts.
671
672 @item flags2 @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
673
674 Possible values:
675 @table @samp
676 @item fast
677 Allow non spec compliant speedup tricks.
678 @item noout
679 Skip bitstream encoding.
680 @item ignorecrop
681 Ignore cropping information from sps.
682 @item local_header
683 Place global headers at every keyframe instead of in extradata.
684 @item chunks
685 Frame data might be split into multiple chunks.
686 @item showall
687 Show all frames before the first keyframe.
688 @item export_mvs
689 Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
690 for codecs that support it. See also @file{doc/examples/export_mvs.c}.
691 @item skip_manual
692 Do not skip samples and export skip information as frame side data.
693 @item ass_ro_flush_noop
694 Do not reset ASS ReadOrder field on flush.
695 @end table
696
697 @item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
698
699 Possible values:
700 @table @samp
701 @item mvs
702 Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
703 for codecs that support it. See also @file{doc/examples/export_mvs.c}.
704 @item prft
705 Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT})
706 for codecs that support it.
707 @item venc_params
708 Export video encoding parameters through frame side data (see @code{AV_FRAME_DATA_VIDEO_ENC_PARAMS})
709 for codecs that support it. At present, those are H.264 and VP9.
710 @item film_grain
711 Export film grain parameters through frame side data (see @code{AV_FRAME_DATA_FILM_GRAIN_PARAMS}).
712 Supported at present by AV1 decoders.
713 @end table
714
715 @item threads @var{integer} (@emph{decoding/encoding,video})
716 Set the number of threads to be used, in case the selected codec
717 implementation supports multi-threading.
718
719 Possible values:
720 @table @samp
721 @item auto, 0
722 automatically select the number of threads to set
723 @end table
724
725 Default value is @samp{auto}.
726
727 @item dc @var{integer} (@emph{encoding,video})
728 Set intra_dc_precision.
729
730 @item nssew @var{integer} (@emph{encoding,video})
731 Set nsse weight.
732
733 @item skip_top @var{integer} (@emph{decoding,video})
734 Set number of macroblock rows at the top which are skipped.
735
736 @item skip_bottom @var{integer} (@emph{decoding,video})
737 Set number of macroblock rows at the bottom which are skipped.
738
739 @item profile @var{integer} (@emph{encoding,audio,video})
740
741 Set encoder codec profile. Default value is @samp{unknown}. Encoder specific
742 profiles are documented in the relevant encoder documentation.
743
744 @item level @var{integer} (@emph{encoding,audio,video})
745
746 Possible values:
747 @table @samp
748 @item unknown
749
750 @end table
751
752 @item lowres @var{integer} (@emph{decoding,audio,video})
753 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
754
755 @item skip_threshold @var{integer} (@emph{encoding,video})
756 Set frame skip threshold.
757
758 @item skip_factor @var{integer} (@emph{encoding,video})
759 Set frame skip factor.
760
761 @item skip_exp @var{integer} (@emph{encoding,video})
762 Set frame skip exponent.
763 Negative values behave identical to the corresponding positive ones, except
764 that the score is normalized.
765 Positive values exist primarily for compatibility reasons and are not so useful.
766
767 @item skipcmp @var{integer} (@emph{encoding,video})
768 Set frame skip compare function.
769
770 Possible values:
771 @table @samp
772 @item sad
773 sum of absolute differences, fast (default)
774 @item sse
775 sum of squared errors
776 @item satd
777 sum of absolute Hadamard transformed differences
778 @item dct
779 sum of absolute DCT transformed differences
780 @item psnr
781 sum of squared quantization errors (avoid, low quality)
782 @item bit
783 number of bits needed for the block
784 @item rd
785 rate distortion optimal, slow
786 @item zero
787 0
788 @item vsad
789 sum of absolute vertical differences
790 @item vsse
791 sum of squared vertical differences
792 @item nsse
793 noise preserving sum of squared differences
794 @item w53
795 5/3 wavelet, only used in snow
796 @item w97
797 9/7 wavelet, only used in snow
798 @item dctmax
799
800 @item chroma
801
802 @end table
803
804 @item mblmin @var{integer} (@emph{encoding,video})
805 Set min macroblock lagrange factor (VBR).
806
807 @item mblmax @var{integer} (@emph{encoding,video})
808 Set max macroblock lagrange factor (VBR).
809
810 @item mepc @var{integer} (@emph{encoding,video})
811 Set motion estimation bitrate penalty compensation (1.0 = 256).
812
813 @item skip_loop_filter @var{integer} (@emph{decoding,video})
814 @item skip_idct        @var{integer} (@emph{decoding,video})
815 @item skip_frame       @var{integer} (@emph{decoding,video})
816
817 Make decoder discard processing depending on the frame type selected
818 by the option value.
819
820 @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
821 skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
822
823 Possible values:
824 @table @samp
825 @item none
826 Discard no frame.
827
828 @item default
829 Discard useless frames like 0-sized frames.
830
831 @item noref
832 Discard all non-reference frames.
833
834 @item bidir
835 Discard all bidirectional frames.
836
837 @item nokey
838 Discard all frames excepts keyframes.
839
840 @item nointra
841 Discard all frames except I frames.
842
843 @item all
844 Discard all frames.
845 @end table
846
847 Default value is @samp{default}.
848
849 @item bidir_refine @var{integer} (@emph{encoding,video})
850 Refine the two motion vectors used in bidirectional macroblocks.
851
852 @item brd_scale @var{integer} (@emph{encoding,video})
853 Downscale frames for dynamic B-frame decision.
854
855 @item keyint_min @var{integer} (@emph{encoding,video})
856 Set minimum interval between IDR-frames.
857
858 @item refs @var{integer} (@emph{encoding,video})
859 Set reference frames to consider for motion compensation.
860
861 @item chromaoffset @var{integer} (@emph{encoding,video})
862 Set chroma qp offset from luma.
863
864 @item trellis @var{integer} (@emph{encoding,audio,video})
865 Set rate-distortion optimal quantization.
866
867 @item mv0_threshold @var{integer} (@emph{encoding,video})
868 @item b_sensitivity @var{integer} (@emph{encoding,video})
869 Adjust sensitivity of b_frame_strategy 1.
870
871 @item compression_level @var{integer} (@emph{encoding,audio,video})
872 @item min_prediction_order @var{integer} (@emph{encoding,audio})
873 @item max_prediction_order @var{integer} (@emph{encoding,audio})
874 @item timecode_frame_start @var{integer} (@emph{encoding,video})
875 Set GOP timecode frame start number, in non drop frame format.
876
877 @item bits_per_raw_sample @var{integer}
878 @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
879
880 Possible values:
881 @table @samp
882 @end table
883 @item request_channel_layout @var{integer} (@emph{decoding,audio})
884
885 Possible values:
886 @table @samp
887 @end table
888 @item rc_max_vbv_use @var{float} (@emph{encoding,video})
889 @item rc_min_vbv_use @var{float} (@emph{encoding,video})
890 @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
891
892 @item color_primaries @var{integer} (@emph{decoding/encoding,video})
893 Possible values:
894 @table @samp
895 @item bt709
896 BT.709
897 @item bt470m
898 BT.470 M
899 @item bt470bg
900 BT.470 BG
901 @item smpte170m
902 SMPTE 170 M
903 @item smpte240m
904 SMPTE 240 M
905 @item film
906 Film
907 @item bt2020
908 BT.2020
909 @item smpte428
910 @item smpte428_1
911 SMPTE ST 428-1
912 @item smpte431
913 SMPTE 431-2
914 @item smpte432
915 SMPTE 432-1
916 @item jedec-p22
917 JEDEC P22
918 @end table
919
920 @item color_trc @var{integer} (@emph{decoding/encoding,video})
921 Possible values:
922 @table @samp
923 @item bt709
924 BT.709
925 @item gamma22
926 BT.470 M
927 @item gamma28
928 BT.470 BG
929 @item smpte170m
930 SMPTE 170 M
931 @item smpte240m
932 SMPTE 240 M
933 @item linear
934 Linear
935 @item log
936 @item log100
937 Log
938 @item log_sqrt
939 @item log316
940 Log square root
941 @item iec61966_2_4
942 @item iec61966-2-4
943 IEC 61966-2-4
944 @item bt1361
945 @item bt1361e
946 BT.1361
947 @item iec61966_2_1
948 @item iec61966-2-1
949 IEC 61966-2-1
950 @item bt2020_10
951 @item bt2020_10bit
952 BT.2020 - 10 bit
953 @item bt2020_12
954 @item bt2020_12bit
955 BT.2020 - 12 bit
956 @item smpte2084
957 SMPTE ST 2084
958 @item smpte428
959 @item smpte428_1
960 SMPTE ST 428-1
961 @item arib-std-b67
962 ARIB STD-B67
963 @end table
964
965 @item colorspace @var{integer} (@emph{decoding/encoding,video})
966 Possible values:
967 @table @samp
968 @item rgb
969 RGB
970 @item bt709
971 BT.709
972 @item fcc
973 FCC
974 @item bt470bg
975 BT.470 BG
976 @item smpte170m
977 SMPTE 170 M
978 @item smpte240m
979 SMPTE 240 M
980 @item ycocg
981 YCOCG
982 @item bt2020nc
983 @item bt2020_ncl
984 BT.2020 NCL
985 @item bt2020c
986 @item bt2020_cl
987 BT.2020 CL
988 @item smpte2085
989 SMPTE 2085
990 @item chroma-derived-nc
991 Chroma-derived NCL
992 @item chroma-derived-c
993 Chroma-derived CL
994 @item ictcp
995 ICtCp
996 @end table
997
998 @item color_range @var{integer} (@emph{decoding/encoding,video})
999 If used as input parameter, it serves as a hint to the decoder, which
1000 color_range the input has.
1001 Possible values:
1002 @table @samp
1003 @item tv
1004 @item mpeg
1005 MPEG (219*2^(n-8))
1006 @item pc
1007 @item jpeg
1008 JPEG (2^n-1)
1009 @end table
1010
1011 @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
1012 Possible values:
1013 @table @samp
1014 @item left
1015
1016 @item center
1017
1018 @item topleft
1019
1020 @item top
1021
1022 @item bottomleft
1023
1024 @item bottom
1025
1026 @end table
1027
1028 @item log_level_offset @var{integer}
1029 Set the log level offset.
1030
1031 @item slices @var{integer} (@emph{encoding,video})
1032 Number of slices, used in parallelized encoding.
1033
1034 @item thread_type @var{flags} (@emph{decoding/encoding,video})
1035 Select which multithreading methods to use.
1036
1037 Use of @samp{frame} will increase decoding delay by one frame per
1038 thread, so clients which cannot provide future frames should not use
1039 it.
1040
1041 Possible values:
1042 @table @samp
1043 @item slice
1044 Decode more than one part of a single frame at once.
1045
1046 Multithreading using slices works only when the video was encoded with
1047 slices.
1048
1049 @item frame
1050 Decode more than one frame at once.
1051 @end table
1052
1053 Default value is @samp{slice+frame}.
1054
1055 @item audio_service_type @var{integer} (@emph{encoding,audio})
1056 Set audio service type.
1057
1058 Possible values:
1059 @table @samp
1060 @item ma
1061 Main Audio Service
1062 @item ef
1063 Effects
1064 @item vi
1065 Visually Impaired
1066 @item hi
1067 Hearing Impaired
1068 @item di
1069 Dialogue
1070 @item co
1071 Commentary
1072 @item em
1073 Emergency
1074 @item vo
1075 Voice Over
1076 @item ka
1077 Karaoke
1078 @end table
1079
1080 @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
1081 Set sample format audio decoders should prefer. Default value is
1082 @code{none}.
1083
1084 @item pkt_timebase @var{rational number}
1085
1086 @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
1087 Set the input subtitles character encoding.
1088
1089 @item field_order  @var{field_order} (@emph{video})
1090 Set/override the field order of the video.
1091 Possible values:
1092 @table @samp
1093 @item progressive
1094 Progressive video
1095 @item tt
1096 Interlaced video, top field coded and displayed first
1097 @item bb
1098 Interlaced video, bottom field coded and displayed first
1099 @item tb
1100 Interlaced video, top coded first, bottom displayed first
1101 @item bt
1102 Interlaced video, bottom coded first, top displayed first
1103 @end table
1104
1105 @item skip_alpha @var{bool} (@emph{decoding,video})
1106 Set to 1 to disable processing alpha (transparency). This works like the
1107 @samp{gray} flag in the @option{flags} option which skips chroma information
1108 instead of alpha. Default is 0.
1109
1110 @item codec_whitelist @var{list} (@emph{input})
1111 "," separated list of allowed decoders. By default all are allowed.
1112
1113 @item dump_separator @var{string} (@emph{input})
1114 Separator used to separate the fields printed on the command line about the
1115 Stream parameters.
1116 For example, to separate the fields with newlines and indentation:
1117 @example
1118 ffprobe -dump_separator "
1119                           "  -i ~/videos/matrixbench_mpeg2.mpg
1120 @end example
1121
1122 @item max_pixels @var{integer} (@emph{decoding/encoding,video})
1123 Maximum number of pixels per image. This value can be used to avoid out of
1124 memory failures due to large images.
1125
1126 @item apply_cropping @var{bool} (@emph{decoding,video})
1127 Enable cropping if cropping parameters are multiples of the required
1128 alignment for the left and top parameters. If the alignment is not met the
1129 cropping will be partially applied to maintain alignment.
1130 Default is 1 (enabled).
1131 Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
1132 CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
1133 decoders will not apply left/top Cropping.
1134
1135
1136 @end table
1137
1138 @c man end CODEC OPTIONS
1139
1140 @ifclear config-writeonly
1141 @include decoders.texi
1142 @end ifclear
1143 @ifclear config-readonly
1144 @include encoders.texi
1145 @end ifclear