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