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