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