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