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