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