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