]> git.sesse.net Git - ffmpeg/blob - doc/codecs.texi
702caa2a1da1069b895920b7fd41c3ece58e4e63
[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 context @var{integer} (@emph{encoding,video})
631 Set context model.
632
633 @item slice_flags @var{integer}
634
635 @item mbd @var{integer} (@emph{encoding,video})
636 Set macroblock decision algorithm (high quality mode).
637
638 Possible values:
639 @table @samp
640 @item simple
641 use mbcmp (default)
642 @item bits
643 use fewest bits
644 @item rd
645 use best rate distortion
646 @end table
647
648 @item sc_threshold @var{integer} (@emph{encoding,video})
649 Set scene change threshold.
650
651 @item nr @var{integer} (@emph{encoding,video})
652 Set noise reduction.
653
654 @item rc_init_occupancy @var{integer} (@emph{encoding,video})
655 Set number of bits which should be loaded into the rc buffer before
656 decoding starts.
657
658 @item flags2 @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
659
660 Possible values:
661 @table @samp
662 @item fast
663 Allow non spec compliant speedup tricks.
664 @item noout
665 Skip bitstream encoding.
666 @item ignorecrop
667 Ignore cropping information from sps.
668 @item local_header
669 Place global headers at every keyframe instead of in extradata.
670 @item chunks
671 Frame data might be split into multiple chunks.
672 @item showall
673 Show all frames before the first keyframe.
674 @item export_mvs
675 Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
676 for codecs that support it. See also @file{doc/examples/export_mvs.c}.
677 @item skip_manual
678 Do not skip samples and export skip information as frame side data.
679 @item ass_ro_flush_noop
680 Do not reset ASS ReadOrder field on flush.
681 @end table
682
683 @item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
684
685 Possible values:
686 @table @samp
687 @item mvs
688 Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
689 for codecs that support it. See also @file{doc/examples/export_mvs.c}.
690 @item prft
691 Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT})
692 for codecs that support it.
693 @item venc_params
694 Export video encoding parameters through frame side data (see @code{AV_FRAME_DATA_VIDEO_ENC_PARAMS})
695 for codecs that support it. At present, those are H.264 and VP9.
696 @item film_grain
697 Export film grain parameters through frame side data (see @code{AV_FRAME_DATA_FILM_GRAIN_PARAMS}).
698 Supported at present by AV1 decoders.
699 @end table
700
701 @item threads @var{integer} (@emph{decoding/encoding,video})
702 Set the number of threads to be used, in case the selected codec
703 implementation supports multi-threading.
704
705 Possible values:
706 @table @samp
707 @item auto, 0
708 automatically select the number of threads to set
709 @end table
710
711 Default value is @samp{auto}.
712
713 @item dc @var{integer} (@emph{encoding,video})
714 Set intra_dc_precision.
715
716 @item nssew @var{integer} (@emph{encoding,video})
717 Set nsse weight.
718
719 @item skip_top @var{integer} (@emph{decoding,video})
720 Set number of macroblock rows at the top which are skipped.
721
722 @item skip_bottom @var{integer} (@emph{decoding,video})
723 Set number of macroblock rows at the bottom which are skipped.
724
725 @item profile @var{integer} (@emph{encoding,audio,video})
726
727 Set encoder codec profile. Default value is @samp{unknown}. Encoder specific
728 profiles are documented in the relevant encoder documentation.
729
730 @item level @var{integer} (@emph{encoding,audio,video})
731
732 Possible values:
733 @table @samp
734 @item unknown
735
736 @end table
737
738 @item lowres @var{integer} (@emph{decoding,audio,video})
739 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
740
741 @item skip_threshold @var{integer} (@emph{encoding,video})
742 Set frame skip threshold.
743
744 @item skip_factor @var{integer} (@emph{encoding,video})
745 Set frame skip factor.
746
747 @item skip_exp @var{integer} (@emph{encoding,video})
748 Set frame skip exponent.
749 Negative values behave identical to the corresponding positive ones, except
750 that the score is normalized.
751 Positive values exist primarily for compatibility reasons and are not so useful.
752
753 @item skipcmp @var{integer} (@emph{encoding,video})
754 Set frame skip compare function.
755
756 Possible values:
757 @table @samp
758 @item sad
759 sum of absolute differences, fast (default)
760 @item sse
761 sum of squared errors
762 @item satd
763 sum of absolute Hadamard transformed differences
764 @item dct
765 sum of absolute DCT transformed differences
766 @item psnr
767 sum of squared quantization errors (avoid, low quality)
768 @item bit
769 number of bits needed for the block
770 @item rd
771 rate distortion optimal, slow
772 @item zero
773 0
774 @item vsad
775 sum of absolute vertical differences
776 @item vsse
777 sum of squared vertical differences
778 @item nsse
779 noise preserving sum of squared differences
780 @item w53
781 5/3 wavelet, only used in snow
782 @item w97
783 9/7 wavelet, only used in snow
784 @item dctmax
785
786 @item chroma
787
788 @end table
789
790 @item mblmin @var{integer} (@emph{encoding,video})
791 Set min macroblock lagrange factor (VBR).
792
793 @item mblmax @var{integer} (@emph{encoding,video})
794 Set max macroblock lagrange factor (VBR).
795
796 @item mepc @var{integer} (@emph{encoding,video})
797 Set motion estimation bitrate penalty compensation (1.0 = 256).
798
799 @item skip_loop_filter @var{integer} (@emph{decoding,video})
800 @item skip_idct        @var{integer} (@emph{decoding,video})
801 @item skip_frame       @var{integer} (@emph{decoding,video})
802
803 Make decoder discard processing depending on the frame type selected
804 by the option value.
805
806 @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
807 skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
808
809 Possible values:
810 @table @samp
811 @item none
812 Discard no frame.
813
814 @item default
815 Discard useless frames like 0-sized frames.
816
817 @item noref
818 Discard all non-reference frames.
819
820 @item bidir
821 Discard all bidirectional frames.
822
823 @item nokey
824 Discard all frames excepts keyframes.
825
826 @item nointra
827 Discard all frames except I frames.
828
829 @item all
830 Discard all frames.
831 @end table
832
833 Default value is @samp{default}.
834
835 @item bidir_refine @var{integer} (@emph{encoding,video})
836 Refine the two motion vectors used in bidirectional macroblocks.
837
838 @item brd_scale @var{integer} (@emph{encoding,video})
839 Downscale frames for dynamic B-frame decision.
840
841 @item keyint_min @var{integer} (@emph{encoding,video})
842 Set minimum interval between IDR-frames.
843
844 @item refs @var{integer} (@emph{encoding,video})
845 Set reference frames to consider for motion compensation.
846
847 @item chromaoffset @var{integer} (@emph{encoding,video})
848 Set chroma qp offset from luma.
849
850 @item trellis @var{integer} (@emph{encoding,audio,video})
851 Set rate-distortion optimal quantization.
852
853 @item mv0_threshold @var{integer} (@emph{encoding,video})
854 @item b_sensitivity @var{integer} (@emph{encoding,video})
855 Adjust sensitivity of b_frame_strategy 1.
856
857 @item compression_level @var{integer} (@emph{encoding,audio,video})
858 @item min_prediction_order @var{integer} (@emph{encoding,audio})
859 @item max_prediction_order @var{integer} (@emph{encoding,audio})
860 @item timecode_frame_start @var{integer} (@emph{encoding,video})
861 Set GOP timecode frame start number, in non drop frame format.
862
863 @item bits_per_raw_sample @var{integer}
864 @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
865
866 Possible values:
867 @table @samp
868 @end table
869 @item request_channel_layout @var{integer} (@emph{decoding,audio})
870
871 Possible values:
872 @table @samp
873 @end table
874 @item rc_max_vbv_use @var{float} (@emph{encoding,video})
875 @item rc_min_vbv_use @var{float} (@emph{encoding,video})
876 @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
877
878 @item color_primaries @var{integer} (@emph{decoding/encoding,video})
879 Possible values:
880 @table @samp
881 @item bt709
882 BT.709
883 @item bt470m
884 BT.470 M
885 @item bt470bg
886 BT.470 BG
887 @item smpte170m
888 SMPTE 170 M
889 @item smpte240m
890 SMPTE 240 M
891 @item film
892 Film
893 @item bt2020
894 BT.2020
895 @item smpte428
896 @item smpte428_1
897 SMPTE ST 428-1
898 @item smpte431
899 SMPTE 431-2
900 @item smpte432
901 SMPTE 432-1
902 @item jedec-p22
903 JEDEC P22
904 @end table
905
906 @item color_trc @var{integer} (@emph{decoding/encoding,video})
907 Possible values:
908 @table @samp
909 @item bt709
910 BT.709
911 @item gamma22
912 BT.470 M
913 @item gamma28
914 BT.470 BG
915 @item smpte170m
916 SMPTE 170 M
917 @item smpte240m
918 SMPTE 240 M
919 @item linear
920 Linear
921 @item log
922 @item log100
923 Log
924 @item log_sqrt
925 @item log316
926 Log square root
927 @item iec61966_2_4
928 @item iec61966-2-4
929 IEC 61966-2-4
930 @item bt1361
931 @item bt1361e
932 BT.1361
933 @item iec61966_2_1
934 @item iec61966-2-1
935 IEC 61966-2-1
936 @item bt2020_10
937 @item bt2020_10bit
938 BT.2020 - 10 bit
939 @item bt2020_12
940 @item bt2020_12bit
941 BT.2020 - 12 bit
942 @item smpte2084
943 SMPTE ST 2084
944 @item smpte428
945 @item smpte428_1
946 SMPTE ST 428-1
947 @item arib-std-b67
948 ARIB STD-B67
949 @end table
950
951 @item colorspace @var{integer} (@emph{decoding/encoding,video})
952 Possible values:
953 @table @samp
954 @item rgb
955 RGB
956 @item bt709
957 BT.709
958 @item fcc
959 FCC
960 @item bt470bg
961 BT.470 BG
962 @item smpte170m
963 SMPTE 170 M
964 @item smpte240m
965 SMPTE 240 M
966 @item ycocg
967 YCOCG
968 @item bt2020nc
969 @item bt2020_ncl
970 BT.2020 NCL
971 @item bt2020c
972 @item bt2020_cl
973 BT.2020 CL
974 @item smpte2085
975 SMPTE 2085
976 @item chroma-derived-nc
977 Chroma-derived NCL
978 @item chroma-derived-c
979 Chroma-derived CL
980 @item ictcp
981 ICtCp
982 @end table
983
984 @item color_range @var{integer} (@emph{decoding/encoding,video})
985 If used as input parameter, it serves as a hint to the decoder, which
986 color_range the input has.
987 Possible values:
988 @table @samp
989 @item tv
990 @item mpeg
991 MPEG (219*2^(n-8))
992 @item pc
993 @item jpeg
994 JPEG (2^n-1)
995 @end table
996
997 @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
998 Possible values:
999 @table @samp
1000 @item left
1001
1002 @item center
1003
1004 @item topleft
1005
1006 @item top
1007
1008 @item bottomleft
1009
1010 @item bottom
1011
1012 @end table
1013
1014 @item log_level_offset @var{integer}
1015 Set the log level offset.
1016
1017 @item slices @var{integer} (@emph{encoding,video})
1018 Number of slices, used in parallelized encoding.
1019
1020 @item thread_type @var{flags} (@emph{decoding/encoding,video})
1021 Select which multithreading methods to use.
1022
1023 Use of @samp{frame} will increase decoding delay by one frame per
1024 thread, so clients which cannot provide future frames should not use
1025 it.
1026
1027 Possible values:
1028 @table @samp
1029 @item slice
1030 Decode more than one part of a single frame at once.
1031
1032 Multithreading using slices works only when the video was encoded with
1033 slices.
1034
1035 @item frame
1036 Decode more than one frame at once.
1037 @end table
1038
1039 Default value is @samp{slice+frame}.
1040
1041 @item audio_service_type @var{integer} (@emph{encoding,audio})
1042 Set audio service type.
1043
1044 Possible values:
1045 @table @samp
1046 @item ma
1047 Main Audio Service
1048 @item ef
1049 Effects
1050 @item vi
1051 Visually Impaired
1052 @item hi
1053 Hearing Impaired
1054 @item di
1055 Dialogue
1056 @item co
1057 Commentary
1058 @item em
1059 Emergency
1060 @item vo
1061 Voice Over
1062 @item ka
1063 Karaoke
1064 @end table
1065
1066 @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
1067 Set sample format audio decoders should prefer. Default value is
1068 @code{none}.
1069
1070 @item pkt_timebase @var{rational number}
1071
1072 @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
1073 Set the input subtitles character encoding.
1074
1075 @item field_order  @var{field_order} (@emph{video})
1076 Set/override the field order of the video.
1077 Possible values:
1078 @table @samp
1079 @item progressive
1080 Progressive video
1081 @item tt
1082 Interlaced video, top field coded and displayed first
1083 @item bb
1084 Interlaced video, bottom field coded and displayed first
1085 @item tb
1086 Interlaced video, top coded first, bottom displayed first
1087 @item bt
1088 Interlaced video, bottom coded first, top displayed first
1089 @end table
1090
1091 @item skip_alpha @var{bool} (@emph{decoding,video})
1092 Set to 1 to disable processing alpha (transparency). This works like the
1093 @samp{gray} flag in the @option{flags} option which skips chroma information
1094 instead of alpha. Default is 0.
1095
1096 @item codec_whitelist @var{list} (@emph{input})
1097 "," separated list of allowed decoders. By default all are allowed.
1098
1099 @item dump_separator @var{string} (@emph{input})
1100 Separator used to separate the fields printed on the command line about the
1101 Stream parameters.
1102 For example, to separate the fields with newlines and indentation:
1103 @example
1104 ffprobe -dump_separator "
1105                           "  -i ~/videos/matrixbench_mpeg2.mpg
1106 @end example
1107
1108 @item max_pixels @var{integer} (@emph{decoding/encoding,video})
1109 Maximum number of pixels per image. This value can be used to avoid out of
1110 memory failures due to large images.
1111
1112 @item apply_cropping @var{bool} (@emph{decoding,video})
1113 Enable cropping if cropping parameters are multiples of the required
1114 alignment for the left and top parameters. If the alignment is not met the
1115 cropping will be partially applied to maintain alignment.
1116 Default is 1 (enabled).
1117 Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
1118 CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
1119 decoders will not apply left/top Cropping.
1120
1121
1122 @end table
1123
1124 @c man end CODEC OPTIONS
1125
1126 @ifclear config-writeonly
1127 @include decoders.texi
1128 @end ifclear
1129 @ifclear config-readonly
1130 @include encoders.texi
1131 @end ifclear