]> git.sesse.net Git - ffmpeg/blob - doc/codecs.texi
Merge commit '7cc4c9f32f446feaec5447e3d097e8147e35f156'
[ffmpeg] / doc / codecs.texi
1 @anchor{codec-options}
2 @chapter Codec Options
3 @c man begin CODEC OPTIONS
4
5 libavcodec provides some generic global options, which can be set on
6 all the encoders and decoders. In addition each codec may support
7 so-called private options, which are specific for a given codec.
8
9 Sometimes, a global option may only affect a specific kind of codec,
10 and may be 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 arm
398
399 @item altivec
400
401 @item sh4
402
403 @item simplearm
404
405 @item simplearmv5te
406
407 @item simplearmv6
408
409 @item simpleneon
410
411 @item simplealpha
412
413 @item ipp
414
415 @item xvidmmx
416
417 @item faani
418 floating point AAN IDCT
419 @end table
420
421 @item slice_count @var{integer}
422
423 @item ec @var{flags} (@emph{decoding,video})
424 Set error concealment strategy.
425
426 Possible values:
427 @table @samp
428 @item guess_mvs
429 iterative motion vector (MV) search (slow)
430 @item deblock
431 use strong deblock filter for damaged MBs
432 @item favor_inter
433 favor predicting from the previous frame instead of the current
434 @end table
435
436 @item bits_per_coded_sample @var{integer}
437
438 @item pred @var{integer} (@emph{encoding,video})
439 Set prediction method.
440
441 Possible values:
442 @table @samp
443 @item left
444
445 @item plane
446
447 @item median
448
449 @end table
450
451 @item aspect @var{rational number} (@emph{encoding,video})
452 Set sample aspect ratio.
453
454 @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
455 Print specific debug info.
456
457 Possible values:
458 @table @samp
459 @item pict
460 picture info
461 @item rc
462 rate control
463 @item bitstream
464
465 @item mb_type
466 macroblock (MB) type
467 @item qp
468 per-block quantization parameter (QP)
469 @item mv
470 motion vector
471 @item dct_coeff
472
473 @item skip
474
475 @item startcode
476
477 @item pts
478
479 @item er
480 error recognition
481 @item mmco
482 memory management control operations (H.264)
483 @item bugs
484
485 @item vis_qp
486 visualize quantization parameter (QP), lower QP are tinted greener
487 @item vis_mb_type
488 visualize block types
489 @item buffers
490 picture buffer allocations
491 @item thread_ops
492 threading operations
493 @end table
494
495 @item vismv @var{integer} (@emph{decoding,video})
496 Visualize motion vectors (MVs).
497
498 Possible values:
499 @table @samp
500 @item pf
501 forward predicted MVs of P-frames
502 @item bf
503 forward predicted MVs of B-frames
504 @item bb
505 backward predicted MVs of B-frames
506 @end table
507
508 @item cmp @var{integer} (@emph{encoding,video})
509 Set full pel me compare function.
510
511 Possible values:
512 @table @samp
513 @item sad
514 sum of absolute differences, fast (default)
515 @item sse
516 sum of squared errors
517 @item satd
518 sum of absolute Hadamard transformed differences
519 @item dct
520 sum of absolute DCT transformed differences
521 @item psnr
522 sum of squared quantization errors (avoid, low quality)
523 @item bit
524 number of bits needed for the block
525 @item rd
526 rate distortion optimal, slow
527 @item zero
528 0
529 @item vsad
530 sum of absolute vertical differences
531 @item vsse
532 sum of squared vertical differences
533 @item nsse
534 noise preserving sum of squared differences
535 @item w53
536 5/3 wavelet, only used in snow
537 @item w97
538 9/7 wavelet, only used in snow
539 @item dctmax
540
541 @item chroma
542
543 @end table
544
545 @item subcmp @var{integer} (@emph{encoding,video})
546 Set sub pel me compare function.
547
548 Possible values:
549 @table @samp
550 @item sad
551 sum of absolute differences, fast (default)
552 @item sse
553 sum of squared errors
554 @item satd
555 sum of absolute Hadamard transformed differences
556 @item dct
557 sum of absolute DCT transformed differences
558 @item psnr
559 sum of squared quantization errors (avoid, low quality)
560 @item bit
561 number of bits needed for the block
562 @item rd
563 rate distortion optimal, slow
564 @item zero
565 0
566 @item vsad
567 sum of absolute vertical differences
568 @item vsse
569 sum of squared vertical differences
570 @item nsse
571 noise preserving sum of squared differences
572 @item w53
573 5/3 wavelet, only used in snow
574 @item w97
575 9/7 wavelet, only used in snow
576 @item dctmax
577
578 @item chroma
579
580 @end table
581
582 @item mbcmp @var{integer} (@emph{encoding,video})
583 Set macroblock compare function.
584
585 Possible values:
586 @table @samp
587 @item sad
588 sum of absolute differences, fast (default)
589 @item sse
590 sum of squared errors
591 @item satd
592 sum of absolute Hadamard transformed differences
593 @item dct
594 sum of absolute DCT transformed differences
595 @item psnr
596 sum of squared quantization errors (avoid, low quality)
597 @item bit
598 number of bits needed for the block
599 @item rd
600 rate distortion optimal, slow
601 @item zero
602 0
603 @item vsad
604 sum of absolute vertical differences
605 @item vsse
606 sum of squared vertical differences
607 @item nsse
608 noise preserving sum of squared differences
609 @item w53
610 5/3 wavelet, only used in snow
611 @item w97
612 9/7 wavelet, only used in snow
613 @item dctmax
614
615 @item chroma
616
617 @end table
618
619 @item ildctcmp @var{integer} (@emph{encoding,video})
620 Set interlaced dct compare function.
621
622 Possible values:
623 @table @samp
624 @item sad
625 sum of absolute differences, fast (default)
626 @item sse
627 sum of squared errors
628 @item satd
629 sum of absolute Hadamard transformed differences
630 @item dct
631 sum of absolute DCT transformed differences
632 @item psnr
633 sum of squared quantization errors (avoid, low quality)
634 @item bit
635 number of bits needed for the block
636 @item rd
637 rate distortion optimal, slow
638 @item zero
639 0
640 @item vsad
641 sum of absolute vertical differences
642 @item vsse
643 sum of squared vertical differences
644 @item nsse
645 noise preserving sum of squared differences
646 @item w53
647 5/3 wavelet, only used in snow
648 @item w97
649 9/7 wavelet, only used in snow
650 @item dctmax
651
652 @item chroma
653
654 @end table
655
656 @item dia_size @var{integer} (@emph{encoding,video})
657 Set diamond type & size for motion estimation.
658
659 @item last_pred @var{integer} (@emph{encoding,video})
660 Set amount of motion predictors from the previous frame.
661
662 @item preme @var{integer} (@emph{encoding,video})
663 Set pre motion estimation.
664
665 @item precmp @var{integer} (@emph{encoding,video})
666 Set pre motion estimation compare function.
667
668 Possible values:
669 @table @samp
670 @item sad
671 sum of absolute differences, fast (default)
672 @item sse
673 sum of squared errors
674 @item satd
675 sum of absolute Hadamard transformed differences
676 @item dct
677 sum of absolute DCT transformed differences
678 @item psnr
679 sum of squared quantization errors (avoid, low quality)
680 @item bit
681 number of bits needed for the block
682 @item rd
683 rate distortion optimal, slow
684 @item zero
685 0
686 @item vsad
687 sum of absolute vertical differences
688 @item vsse
689 sum of squared vertical differences
690 @item nsse
691 noise preserving sum of squared differences
692 @item w53
693 5/3 wavelet, only used in snow
694 @item w97
695 9/7 wavelet, only used in snow
696 @item dctmax
697
698 @item chroma
699
700 @end table
701
702 @item pre_dia_size @var{integer} (@emph{encoding,video})
703 Set diamond type & size for motion estimation pre-pass.
704
705 @item subq @var{integer} (@emph{encoding,video})
706 Set sub pel motion estimation quality.
707
708 @item dtg_active_format @var{integer}
709
710 @item me_range @var{integer} (@emph{encoding,video})
711 Set limit motion vectors range (1023 for DivX player).
712
713 @item ibias @var{integer} (@emph{encoding,video})
714 Set intra quant bias.
715
716 @item pbias @var{integer} (@emph{encoding,video})
717 Set inter quant bias.
718
719 @item color_table_id @var{integer}
720
721 @item global_quality @var{integer} (@emph{encoding,audio,video})
722
723 @item coder @var{integer} (@emph{encoding,video})
724
725 Possible values:
726 @table @samp
727 @item vlc
728 variable length coder / huffman coder
729 @item ac
730 arithmetic coder
731 @item raw
732 raw (no encoding)
733 @item rle
734 run-length coder
735 @item deflate
736 deflate-based coder
737 @end table
738
739 @item context @var{integer} (@emph{encoding,video})
740 Set context model.
741
742 @item slice_flags @var{integer}
743
744 @item xvmc_acceleration @var{integer}
745
746 @item mbd @var{integer} (@emph{encoding,video})
747 Set macroblock decision algorithm (high quality mode).
748
749 Possible values:
750 @table @samp
751 @item simple
752 use mbcmp (default)
753 @item bits
754 use fewest bits
755 @item rd
756 use best rate distortion
757 @end table
758
759 @item stream_codec_tag @var{integer}
760
761 @item sc_threshold @var{integer} (@emph{encoding,video})
762 Set scene change threshold.
763
764 @item lmin @var{integer} (@emph{encoding,video})
765 Set min lagrange factor (VBR).
766
767 @item lmax @var{integer} (@emph{encoding,video})
768 Set max lagrange factor (VBR).
769
770 @item nr @var{integer} (@emph{encoding,video})
771 Set noise reduction.
772
773 @item rc_init_occupancy @var{integer} (@emph{encoding,video})
774 Set number of bits which should be loaded into the rc buffer before
775 decoding starts.
776
777 @item flags2 @var{flags} (@emph{decoding/encoding,audio,video})
778
779 Possible values:
780 @table @samp
781 @item fast
782 Allow non spec compliant speedup tricks.
783 @item sgop
784 Deprecated, use mpegvideo private options instead.
785 @item noout
786 Skip bitstream encoding.
787 @item ignorecrop
788 Ignore cropping information from sps.
789 @item local_header
790 Place global headers at every keyframe instead of in extradata.
791 @item chunks
792 Frame data might be split into multiple chunks.
793 @item showall
794 Show all frames before the first keyframe.
795 @item skiprd
796 Deprecated, use mpegvideo private options instead.
797 @end table
798
799 @item error @var{integer} (@emph{encoding,video})
800
801 @item qns @var{integer} (@emph{encoding,video})
802 Deprecated, use mpegvideo private options instead.
803
804 @item threads @var{integer} (@emph{decoding/encoding,video})
805
806 Possible values:
807 @table @samp
808 @item auto
809 detect a good number of threads
810 @end table
811
812 @item me_threshold @var{integer} (@emph{encoding,video})
813 Set motion estimation threshold.
814
815 @item mb_threshold @var{integer} (@emph{encoding,video})
816 Set macroblock threshold.
817
818 @item dc @var{integer} (@emph{encoding,video})
819 Set intra_dc_precision.
820
821 @item nssew @var{integer} (@emph{encoding,video})
822 Set nsse weight.
823
824 @item skip_top @var{integer} (@emph{decoding,video})
825 Set number of macroblock rows at the top which are skipped.
826
827 @item skip_bottom @var{integer} (@emph{decoding,video})
828 Set number of macroblock rows at the bottom which are skipped.
829
830 @item profile @var{integer} (@emph{encoding,audio,video})
831
832 Possible values:
833 @table @samp
834 @item unknown
835
836 @item aac_main
837
838 @item aac_low
839
840 @item aac_ssr
841
842 @item aac_ltp
843
844 @item aac_he
845
846 @item aac_he_v2
847
848 @item aac_ld
849
850 @item aac_eld
851
852 @item mpeg2_aac_low
853
854 @item mpeg2_aac_he
855
856 @item dts
857
858 @item dts_es
859
860 @item dts_96_24
861
862 @item dts_hd_hra
863
864 @item dts_hd_ma
865
866 @end table
867
868 @item level @var{integer} (@emph{encoding,audio,video})
869
870 Possible values:
871 @table @samp
872 @item unknown
873
874 @end table
875
876 @item lowres @var{integer} (@emph{decoding,audio,video})
877 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
878
879 @item skip_threshold @var{integer} (@emph{encoding,video})
880 Set frame skip threshold.
881
882 @item skip_factor @var{integer} (@emph{encoding,video})
883 Set frame skip factor.
884
885 @item skip_exp @var{integer} (@emph{encoding,video})
886 Set frame skip exponent.
887 Negative values behave identical to the corresponding positive ones, except
888 that the score is normalized.
889 Positive values exist primarly for compatibility reasons and are not so useful.
890
891 @item skipcmp @var{integer} (@emph{encoding,video})
892 Set frame skip compare function.
893
894 Possible values:
895 @table @samp
896 @item sad
897 sum of absolute differences, fast (default)
898 @item sse
899 sum of squared errors
900 @item satd
901 sum of absolute Hadamard transformed differences
902 @item dct
903 sum of absolute DCT transformed differences
904 @item psnr
905 sum of squared quantization errors (avoid, low quality)
906 @item bit
907 number of bits needed for the block
908 @item rd
909 rate distortion optimal, slow
910 @item zero
911 0
912 @item vsad
913 sum of absolute vertical differences
914 @item vsse
915 sum of squared vertical differences
916 @item nsse
917 noise preserving sum of squared differences
918 @item w53
919 5/3 wavelet, only used in snow
920 @item w97
921 9/7 wavelet, only used in snow
922 @item dctmax
923
924 @item chroma
925
926 @end table
927
928 @item border_mask @var{float} (@emph{encoding,video})
929 Increase the quantizer for macroblocks close to borders.
930
931 @item mblmin @var{integer} (@emph{encoding,video})
932 Set min macroblock lagrange factor (VBR).
933
934 @item mblmax @var{integer} (@emph{encoding,video})
935 Set max macroblock lagrange factor (VBR).
936
937 @item mepc @var{integer} (@emph{encoding,video})
938 Set motion estimation bitrate penalty compensation (1.0 = 256).
939
940 @item skip_loop_filter @var{integer} (@emph{decoding,video})
941 @item skip_idct        @var{integer} (@emph{decoding,video})
942 @item skip_frame       @var{integer} (@emph{decoding,video})
943
944 Make decoder discard processing depending on the frame type selected
945 by the option value.
946
947 @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
948 skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
949
950 Possible values:
951 @table @samp
952 @item none
953 Discard no frame.
954
955 @item default
956 Discard useless frames like 0-sized frames.
957
958 @item noref
959 Discard all non-reference frames.
960
961 @item bidir
962 Discard all bidirectional frames.
963
964 @item nokey
965 Discard all frames excepts keyframes.
966
967 @item all
968 Discard all frames.
969 @end table
970
971 Default value is @samp{default}.
972
973 @item bidir_refine @var{integer} (@emph{encoding,video})
974 Refine the two motion vectors used in bidirectional macroblocks.
975
976 @item brd_scale @var{integer} (@emph{encoding,video})
977 Downscale frames for dynamic B-frame decision.
978
979 @item keyint_min @var{integer} (@emph{encoding,video})
980 Set minimum interval between IDR-frames.
981
982 @item refs @var{integer} (@emph{encoding,video})
983 Set reference frames to consider for motion compensation.
984
985 @item chromaoffset @var{integer} (@emph{encoding,video})
986 Set chroma qp offset from luma.
987
988 @item trellis @var{integer} (@emph{encoding,audio,video})
989 Set rate-distortion optimal quantization.
990
991 @item sc_factor @var{integer} (@emph{encoding,video})
992 Set value multiplied by qscale for each frame and added to
993 scene_change_score.
994
995 @item mv0_threshold @var{integer} (@emph{encoding,video})
996 @item b_sensitivity @var{integer} (@emph{encoding,video})
997 Adjust sensitivity of b_frame_strategy 1.
998
999 @item compression_level @var{integer} (@emph{encoding,audio,video})
1000 @item min_prediction_order @var{integer} (@emph{encoding,audio})
1001 @item max_prediction_order @var{integer} (@emph{encoding,audio})
1002 @item timecode_frame_start @var{integer} (@emph{encoding,video})
1003 Set GOP timecode frame start number, in non drop frame format.
1004
1005 @item request_channels @var{integer} (@emph{decoding,audio})
1006 Set desired number of audio channels.
1007
1008 @item bits_per_raw_sample @var{integer}
1009 @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
1010
1011 Possible values:
1012 @table @samp
1013 @end table
1014 @item request_channel_layout @var{integer} (@emph{decoding,audio})
1015
1016 Possible values:
1017 @table @samp
1018 @end table
1019 @item rc_max_vbv_use @var{float} (@emph{encoding,video})
1020 @item rc_min_vbv_use @var{float} (@emph{encoding,video})
1021 @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
1022 @item color_primaries @var{integer} (@emph{decoding/encoding,video})
1023 @item color_trc @var{integer} (@emph{decoding/encoding,video})
1024 @item colorspace @var{integer} (@emph{decoding/encoding,video})
1025 @item color_range @var{integer} (@emph{decoding/encoding,video})
1026 @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
1027
1028 @item log_level_offset @var{integer}
1029 Set the log level offset.
1030
1031 @item slices @var{integer} (@emph{encoding,video})
1032 Number of slices, used in parallelized encoding.
1033
1034 @item thread_type @var{flags} (@emph{decoding/encoding,video})
1035 Select multithreading type.
1036
1037 Possible values:
1038 @table @samp
1039 @item slice
1040
1041 @item frame
1042
1043 @end table
1044 @item audio_service_type @var{integer} (@emph{encoding,audio})
1045 Set audio service type.
1046
1047 Possible values:
1048 @table @samp
1049 @item ma
1050 Main Audio Service
1051 @item ef
1052 Effects
1053 @item vi
1054 Visually Impaired
1055 @item hi
1056 Hearing Impaired
1057 @item di
1058 Dialogue
1059 @item co
1060 Commentary
1061 @item em
1062 Emergency
1063 @item vo
1064 Voice Over
1065 @item ka
1066 Karaoke
1067 @end table
1068
1069 @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
1070 Set sample format audio decoders should prefer. Default value is
1071 @code{none}.
1072
1073 @item pkt_timebase @var{rational number}
1074
1075 @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
1076 Set the input subtitles character encoding.
1077
1078 @item field_order  @var{field_order} (@emph{video})
1079 Set/override the field order of the video.
1080 Possible values:
1081 @table @samp
1082 @item progressive
1083 Progressive video
1084 @item tt
1085 Interlaced video, top field coded and displayed first
1086 @item bb
1087 Interlaced video, bottom field coded and displayed first
1088 @item tb
1089 Interlaced video, top coded first, bottom displayed first
1090 @item bt
1091 Interlaced video, bottom coded first, top displayed first
1092 @end table
1093
1094 @item skip_alpha @var{integer} (@emph{decoding,video})
1095 Set to 1 to disable processing alpha (transparency). This works like the
1096 @samp{gray} flag in the @option{flags} option which skips chroma information
1097 instead of alpha. Default is 0.
1098 @end table
1099
1100 @c man end CODEC OPTIONS
1101
1102 @ifclear config-writeonly
1103 @include decoders.texi
1104 @end ifclear
1105 @ifclear config-readonly
1106 @include encoders.texi
1107 @end ifclear