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