]> git.sesse.net Git - ffmpeg/blob - doc/codecs.texi
Merge commit 'e16b20782a597e36a9c7488487c3179375a25b97'
[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 nonsensical or ignored by another, so you need to be aware
11 of the meaning of the specified options. Also some options are
12 meant only for decoding or encoding.
13
14 Options may be set by specifying -@var{option} @var{value} in the
15 FFmpeg tools, or by setting the value explicitly in the
16 @code{AVCodecContext} options or using the @file{libavutil/opt.h} API
17 for programmatic use.
18
19 The list of supported options follow:
20
21 @table @option
22 @item b @var{integer} (@emph{encoding,audio,video})
23 Set bitrate in bits/s. Default value is 200K.
24
25 @item ab @var{integer} (@emph{encoding,audio})
26 Set audio bitrate (in bits/s). Default value is 128K.
27
28 @item bt @var{integer} (@emph{encoding,video})
29 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
30 tolerance specifies how far ratecontrol is willing to deviate from the
31 target average bitrate value. This is not related to min/max
32 bitrate. Lowering tolerance too much has an adverse effect on quality.
33
34 @item flags @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
35 Set generic flags.
36
37 Possible values:
38 @table @samp
39 @item mv4
40 Use four motion vector by macroblock (mpeg4).
41 @item qpel
42 Use 1/4 pel motion compensation.
43 @item loop
44 Use loop filter.
45 @item qscale
46 Use fixed qscale.
47 @item pass1
48 Use internal 2pass ratecontrol in first pass mode.
49 @item pass2
50 Use internal 2pass ratecontrol in second pass mode.
51 @item gray
52 Only decode/encode grayscale.
53 @item emu_edge
54 Do not draw edges.
55 @item psnr
56 Set error[?] variables during encoding.
57 @item truncated
58
59 @item ildct
60 Use interlaced DCT.
61 @item low_delay
62 Force low delay.
63 @item global_header
64 Place global headers in extradata instead of every keyframe.
65 @item bitexact
66 Only write platform-, build- and time-independent data. (except (I)DCT).
67 This ensures that file and data checksums are reproducible and match between
68 platforms. Its primary use is for regression testing.
69 @item aic
70 Apply H263 advanced intra coding / mpeg4 ac prediction.
71 @item cbp
72 Deprecated, use mpegvideo private options instead.
73 @item qprd
74 Deprecated, use mpegvideo private options instead.
75 @item ilme
76 Apply interlaced motion estimation.
77 @item cgop
78 Use closed gop.
79 @end table
80
81 @item me_method @var{integer} (@emph{encoding,video})
82 Set motion estimation method.
83
84 Possible values:
85 @table @samp
86 @item zero
87 zero motion estimation (fastest)
88 @item full
89 full motion estimation (slowest)
90 @item epzs
91 EPZS motion estimation (default)
92 @item esa
93 esa motion estimation (alias for full)
94 @item tesa
95 tesa motion estimation
96 @item dia
97 dia motion estimation (alias for epzs)
98 @item log
99 log motion estimation
100 @item phods
101 phods motion estimation
102 @item x1
103 X1 motion estimation
104 @item hex
105 hex motion estimation
106 @item umh
107 umh motion estimation
108 @item iter
109 iter motion estimation
110 @end table
111
112 @item extradata_size @var{integer}
113 Set extradata size.
114
115 @item time_base @var{rational number}
116 Set codec time base.
117
118 It is the fundamental unit of time (in seconds) in terms of which
119 frame timestamps are represented. For fixed-fps content, timebase
120 should be @code{1 / frame_rate} and timestamp increments should be
121 identically 1.
122
123 @item g @var{integer} (@emph{encoding,video})
124 Set the group of picture (GOP) size. Default value is 12.
125
126 @item ar @var{integer} (@emph{decoding/encoding,audio})
127 Set audio sampling rate (in Hz).
128
129 @item ac @var{integer} (@emph{decoding/encoding,audio})
130 Set number of audio channels.
131
132 @item cutoff @var{integer} (@emph{encoding,audio})
133 Set cutoff bandwidth. (Supported only by selected encoders, see
134 their respective documentation sections.)
135
136 @item frame_size @var{integer} (@emph{encoding,audio})
137 Set audio frame size.
138
139 Each submitted frame except the last must contain exactly frame_size
140 samples per channel. May be 0 when the codec has
141 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
142 restricted. It is set by some decoders to indicate constant frame
143 size.
144
145 @item frame_number @var{integer}
146 Set the frame number.
147
148 @item delay @var{integer}
149
150 @item qcomp @var{float} (@emph{encoding,video})
151 Set video quantizer scale compression (VBR). It is used as a constant
152 in the ratecontrol equation. Recommended range for default rc_eq:
153 0.0-1.0.
154
155 @item qblur @var{float} (@emph{encoding,video})
156 Set video quantizer scale blur (VBR).
157
158 @item qmin @var{integer} (@emph{encoding,video})
159 Set min video quantizer scale (VBR). Must be included between -1 and
160 69, default value is 2.
161
162 @item qmax @var{integer} (@emph{encoding,video})
163 Set max video quantizer scale (VBR). Must be included between -1 and
164 1024, default value is 31.
165
166 @item qdiff @var{integer} (@emph{encoding,video})
167 Set max difference between the quantizer scale (VBR).
168
169 @item bf @var{integer} (@emph{encoding,video})
170 Set max number of B frames between non-B-frames.
171
172 Must be an integer between -1 and 16. 0 means that B-frames are
173 disabled. If a value of -1 is used, it will choose an automatic value
174 depending on the encoder.
175
176 Default value is 0.
177
178 @item b_qfactor @var{float} (@emph{encoding,video})
179 Set qp factor between P and B frames.
180
181 @item rc_strategy @var{integer} (@emph{encoding,video})
182 Set ratecontrol method.
183
184 @item b_strategy @var{integer} (@emph{encoding,video})
185 Set strategy to choose between I/P/B-frames.
186
187 @item ps @var{integer} (@emph{encoding,video})
188 Set RTP payload size in bytes.
189
190 @item mv_bits @var{integer}
191 @item header_bits @var{integer}
192 @item i_tex_bits @var{integer}
193 @item p_tex_bits @var{integer}
194 @item i_count @var{integer}
195 @item p_count @var{integer}
196 @item skip_count @var{integer}
197 @item misc_bits @var{integer}
198 @item frame_bits @var{integer}
199 @item codec_tag @var{integer}
200 @item bug @var{flags} (@emph{decoding,video})
201 Workaround not auto detected encoder bugs.
202
203 Possible values:
204 @table @samp
205 @item autodetect
206
207 @item old_msmpeg4
208 some old lavc generated msmpeg4v3 files (no autodetection)
209 @item xvid_ilace
210 Xvid interlacing bug (autodetected if fourcc==XVIX)
211 @item ump4
212 (autodetected if fourcc==UMP4)
213 @item no_padding
214 padding bug (autodetected)
215 @item amv
216
217 @item ac_vlc
218 illegal vlc bug (autodetected per fourcc)
219 @item qpel_chroma
220
221 @item std_qpel
222 old standard qpel (autodetected per fourcc/version)
223 @item qpel_chroma2
224
225 @item direct_blocksize
226 direct-qpel-blocksize bug (autodetected per fourcc/version)
227 @item edge
228 edge padding bug (autodetected per fourcc/version)
229 @item hpel_chroma
230
231 @item dc_clip
232
233 @item ms
234 Workaround various bugs in microsoft broken decoders.
235 @item trunc
236 trancated frames
237 @end table
238
239 @item lelim @var{integer} (@emph{encoding,video})
240 Set single coefficient elimination threshold for luminance (negative
241 values also consider DC coefficient).
242
243 @item celim @var{integer} (@emph{encoding,video})
244 Set single coefficient elimination threshold for chrominance (negative
245 values also consider dc coefficient)
246
247 @item strict @var{integer} (@emph{decoding/encoding,audio,video})
248 Specify how strictly to follow the standards.
249
250 Possible values:
251 @table @samp
252 @item very
253 strictly conform to an older more strict version of the spec or reference software
254 @item strict
255 strictly conform to all the things in the spec no matter what consequences
256 @item normal
257
258 @item unofficial
259 allow unofficial extensions
260 @item experimental
261 allow non standardized experimental things, experimental
262 (unfinished/work in progress/not well tested) decoders and encoders.
263 Note: experimental decoders can pose a security risk, do not use this for
264 decoding untrusted input.
265 @end table
266
267 @item b_qoffset @var{float} (@emph{encoding,video})
268 Set QP offset between P and B frames.
269
270 @item err_detect @var{flags} (@emph{decoding,audio,video})
271 Set error detection flags.
272
273 Possible values:
274 @table @samp
275 @item crccheck
276 verify embedded CRCs
277 @item bitstream
278 detect bitstream specification deviations
279 @item buffer
280 detect improper bitstream length
281 @item explode
282 abort decoding on minor error detection
283 @item ignore_err
284 ignore decoding errors, and continue decoding.
285 This is useful if you want to analyze the content of a video and thus want
286 everything to be decoded no matter what. This option will not result in a video
287 that is pleasing to watch in case of errors.
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 simpleauto
393 Automatically pick a IDCT compatible with the simple one
394
395 @item arm
396
397 @item altivec
398
399 @item sh4
400
401 @item simplearm
402
403 @item simplearmv5te
404
405 @item simplearmv6
406
407 @item simpleneon
408
409 @item simplealpha
410
411 @item ipp
412
413 @item xvidmmx
414
415 @item faani
416 floating point AAN IDCT
417 @end table
418
419 @item slice_count @var{integer}
420
421 @item ec @var{flags} (@emph{decoding,video})
422 Set error concealment strategy.
423
424 Possible values:
425 @table @samp
426 @item guess_mvs
427 iterative motion vector (MV) search (slow)
428 @item deblock
429 use strong deblock filter for damaged MBs
430 @item favor_inter
431 favor predicting from the previous frame instead of the current
432 @end table
433
434 @item bits_per_coded_sample @var{integer}
435
436 @item pred @var{integer} (@emph{encoding,video})
437 Set prediction method.
438
439 Possible values:
440 @table @samp
441 @item left
442
443 @item plane
444
445 @item median
446
447 @end table
448
449 @item aspect @var{rational number} (@emph{encoding,video})
450 Set sample aspect ratio.
451
452 @item sar @var{rational number} (@emph{encoding,video})
453 Set sample aspect ratio. Alias to @var{aspect}.
454
455 @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
456 Print specific debug info.
457
458 Possible values:
459 @table @samp
460 @item pict
461 picture info
462 @item rc
463 rate control
464 @item bitstream
465
466 @item mb_type
467 macroblock (MB) type
468 @item qp
469 per-block quantization parameter (QP)
470 @item dct_coeff
471
472 @item green_metadata
473 display complexity metadata for the upcoming frame, GoP or for a given duration.
474
475 @item skip
476
477 @item startcode
478
479 @item er
480 error recognition
481 @item mmco
482 memory management control operations (H.264)
483 @item bugs
484
485 @item buffers
486 picture buffer allocations
487 @item thread_ops
488 threading operations
489 @item nomc
490 skip motion compensation
491 @end table
492
493 @item cmp @var{integer} (@emph{encoding,video})
494 Set full pel me compare function.
495
496 Possible values:
497 @table @samp
498 @item sad
499 sum of absolute differences, fast (default)
500 @item sse
501 sum of squared errors
502 @item satd
503 sum of absolute Hadamard transformed differences
504 @item dct
505 sum of absolute DCT transformed differences
506 @item psnr
507 sum of squared quantization errors (avoid, low quality)
508 @item bit
509 number of bits needed for the block
510 @item rd
511 rate distortion optimal, slow
512 @item zero
513 0
514 @item vsad
515 sum of absolute vertical differences
516 @item vsse
517 sum of squared vertical differences
518 @item nsse
519 noise preserving sum of squared differences
520 @item w53
521 5/3 wavelet, only used in snow
522 @item w97
523 9/7 wavelet, only used in snow
524 @item dctmax
525
526 @item chroma
527
528 @end table
529
530 @item subcmp @var{integer} (@emph{encoding,video})
531 Set sub pel me compare function.
532
533 Possible values:
534 @table @samp
535 @item sad
536 sum of absolute differences, fast (default)
537 @item sse
538 sum of squared errors
539 @item satd
540 sum of absolute Hadamard transformed differences
541 @item dct
542 sum of absolute DCT transformed differences
543 @item psnr
544 sum of squared quantization errors (avoid, low quality)
545 @item bit
546 number of bits needed for the block
547 @item rd
548 rate distortion optimal, slow
549 @item zero
550 0
551 @item vsad
552 sum of absolute vertical differences
553 @item vsse
554 sum of squared vertical differences
555 @item nsse
556 noise preserving sum of squared differences
557 @item w53
558 5/3 wavelet, only used in snow
559 @item w97
560 9/7 wavelet, only used in snow
561 @item dctmax
562
563 @item chroma
564
565 @end table
566
567 @item mbcmp @var{integer} (@emph{encoding,video})
568 Set macroblock compare function.
569
570 Possible values:
571 @table @samp
572 @item sad
573 sum of absolute differences, fast (default)
574 @item sse
575 sum of squared errors
576 @item satd
577 sum of absolute Hadamard transformed differences
578 @item dct
579 sum of absolute DCT transformed differences
580 @item psnr
581 sum of squared quantization errors (avoid, low quality)
582 @item bit
583 number of bits needed for the block
584 @item rd
585 rate distortion optimal, slow
586 @item zero
587 0
588 @item vsad
589 sum of absolute vertical differences
590 @item vsse
591 sum of squared vertical differences
592 @item nsse
593 noise preserving sum of squared differences
594 @item w53
595 5/3 wavelet, only used in snow
596 @item w97
597 9/7 wavelet, only used in snow
598 @item dctmax
599
600 @item chroma
601
602 @end table
603
604 @item ildctcmp @var{integer} (@emph{encoding,video})
605 Set interlaced dct compare function.
606
607 Possible values:
608 @table @samp
609 @item sad
610 sum of absolute differences, fast (default)
611 @item sse
612 sum of squared errors
613 @item satd
614 sum of absolute Hadamard transformed differences
615 @item dct
616 sum of absolute DCT transformed differences
617 @item psnr
618 sum of squared quantization errors (avoid, low quality)
619 @item bit
620 number of bits needed for the block
621 @item rd
622 rate distortion optimal, slow
623 @item zero
624 0
625 @item vsad
626 sum of absolute vertical differences
627 @item vsse
628 sum of squared vertical differences
629 @item nsse
630 noise preserving sum of squared differences
631 @item w53
632 5/3 wavelet, only used in snow
633 @item w97
634 9/7 wavelet, only used in snow
635 @item dctmax
636
637 @item chroma
638
639 @end table
640
641 @item dia_size @var{integer} (@emph{encoding,video})
642 Set diamond type & size for motion estimation.
643
644 @item last_pred @var{integer} (@emph{encoding,video})
645 Set amount of motion predictors from the previous frame.
646
647 @item preme @var{integer} (@emph{encoding,video})
648 Set pre motion estimation.
649
650 @item precmp @var{integer} (@emph{encoding,video})
651 Set pre motion estimation compare function.
652
653 Possible values:
654 @table @samp
655 @item sad
656 sum of absolute differences, fast (default)
657 @item sse
658 sum of squared errors
659 @item satd
660 sum of absolute Hadamard transformed differences
661 @item dct
662 sum of absolute DCT transformed differences
663 @item psnr
664 sum of squared quantization errors (avoid, low quality)
665 @item bit
666 number of bits needed for the block
667 @item rd
668 rate distortion optimal, slow
669 @item zero
670 0
671 @item vsad
672 sum of absolute vertical differences
673 @item vsse
674 sum of squared vertical differences
675 @item nsse
676 noise preserving sum of squared differences
677 @item w53
678 5/3 wavelet, only used in snow
679 @item w97
680 9/7 wavelet, only used in snow
681 @item dctmax
682
683 @item chroma
684
685 @end table
686
687 @item pre_dia_size @var{integer} (@emph{encoding,video})
688 Set diamond type & size for motion estimation pre-pass.
689
690 @item subq @var{integer} (@emph{encoding,video})
691 Set sub pel motion estimation quality.
692
693 @item dtg_active_format @var{integer}
694
695 @item me_range @var{integer} (@emph{encoding,video})
696 Set limit motion vectors range (1023 for DivX player).
697
698 @item ibias @var{integer} (@emph{encoding,video})
699 Set intra quant bias.
700
701 @item pbias @var{integer} (@emph{encoding,video})
702 Set inter quant bias.
703
704 @item color_table_id @var{integer}
705
706 @item global_quality @var{integer} (@emph{encoding,audio,video})
707
708 @item coder @var{integer} (@emph{encoding,video})
709
710 Possible values:
711 @table @samp
712 @item vlc
713 variable length coder / huffman coder
714 @item ac
715 arithmetic coder
716 @item raw
717 raw (no encoding)
718 @item rle
719 run-length coder
720 @item deflate
721 deflate-based coder
722 @end table
723
724 @item context @var{integer} (@emph{encoding,video})
725 Set context model.
726
727 @item slice_flags @var{integer}
728
729 @item mbd @var{integer} (@emph{encoding,video})
730 Set macroblock decision algorithm (high quality mode).
731
732 Possible values:
733 @table @samp
734 @item simple
735 use mbcmp (default)
736 @item bits
737 use fewest bits
738 @item rd
739 use best rate distortion
740 @end table
741
742 @item stream_codec_tag @var{integer}
743
744 @item sc_threshold @var{integer} (@emph{encoding,video})
745 Set scene change threshold.
746
747 @item lmin @var{integer} (@emph{encoding,video})
748 Set min lagrange factor (VBR).
749
750 @item lmax @var{integer} (@emph{encoding,video})
751 Set max lagrange factor (VBR).
752
753 @item nr @var{integer} (@emph{encoding,video})
754 Set noise reduction.
755
756 @item rc_init_occupancy @var{integer} (@emph{encoding,video})
757 Set number of bits which should be loaded into the rc buffer before
758 decoding starts.
759
760 @item flags2 @var{flags} (@emph{decoding/encoding,audio,video})
761
762 Possible values:
763 @table @samp
764 @item fast
765 Allow non spec compliant speedup tricks.
766 @item sgop
767 Deprecated, use mpegvideo private options instead.
768 @item noout
769 Skip bitstream encoding.
770 @item ignorecrop
771 Ignore cropping information from sps.
772 @item local_header
773 Place global headers at every keyframe instead of in extradata.
774 @item chunks
775 Frame data might be split into multiple chunks.
776 @item showall
777 Show all frames before the first keyframe.
778 @item skiprd
779 Deprecated, use mpegvideo private options instead.
780 @item export_mvs
781 Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
782 for codecs that support it. See also @file{doc/examples/export_mvs.c}.
783 @end table
784
785 @item error @var{integer} (@emph{encoding,video})
786
787 @item qns @var{integer} (@emph{encoding,video})
788 Deprecated, use mpegvideo private options instead.
789
790 @item threads @var{integer} (@emph{decoding/encoding,video})
791 Set the number of threads to be used, in case the selected codec
792 implementation supports multi-threading.
793
794 Possible values:
795 @table @samp
796 @item auto, 0
797 automatically select the number of threads to set
798 @end table
799
800 Default value is @samp{auto}.
801
802 @item me_threshold @var{integer} (@emph{encoding,video})
803 Set motion estimation threshold.
804
805 @item mb_threshold @var{integer} (@emph{encoding,video})
806 Set macroblock threshold.
807
808 @item dc @var{integer} (@emph{encoding,video})
809 Set intra_dc_precision.
810
811 @item nssew @var{integer} (@emph{encoding,video})
812 Set nsse weight.
813
814 @item skip_top @var{integer} (@emph{decoding,video})
815 Set number of macroblock rows at the top which are skipped.
816
817 @item skip_bottom @var{integer} (@emph{decoding,video})
818 Set number of macroblock rows at the bottom which are skipped.
819
820 @item profile @var{integer} (@emph{encoding,audio,video})
821
822 Possible values:
823 @table @samp
824 @item unknown
825
826 @item aac_main
827
828 @item aac_low
829
830 @item aac_ssr
831
832 @item aac_ltp
833
834 @item aac_he
835
836 @item aac_he_v2
837
838 @item aac_ld
839
840 @item aac_eld
841
842 @item mpeg2_aac_low
843
844 @item mpeg2_aac_he
845
846 @item mpeg4_sp
847
848 @item mpeg4_core
849
850 @item mpeg4_main
851
852 @item mpeg4_asp
853
854 @item dts
855
856 @item dts_es
857
858 @item dts_96_24
859
860 @item dts_hd_hra
861
862 @item dts_hd_ma
863
864 @end table
865
866 @item level @var{integer} (@emph{encoding,audio,video})
867
868 Possible values:
869 @table @samp
870 @item unknown
871
872 @end table
873
874 @item lowres @var{integer} (@emph{decoding,audio,video})
875 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
876
877 @item skip_threshold @var{integer} (@emph{encoding,video})
878 Set frame skip threshold.
879
880 @item skip_factor @var{integer} (@emph{encoding,video})
881 Set frame skip factor.
882
883 @item skip_exp @var{integer} (@emph{encoding,video})
884 Set frame skip exponent.
885 Negative values behave identical to the corresponding positive ones, except
886 that the score is normalized.
887 Positive values exist primarily for compatibility reasons and are not so useful.
888
889 @item skipcmp @var{integer} (@emph{encoding,video})
890 Set frame skip compare function.
891
892 Possible values:
893 @table @samp
894 @item sad
895 sum of absolute differences, fast (default)
896 @item sse
897 sum of squared errors
898 @item satd
899 sum of absolute Hadamard transformed differences
900 @item dct
901 sum of absolute DCT transformed differences
902 @item psnr
903 sum of squared quantization errors (avoid, low quality)
904 @item bit
905 number of bits needed for the block
906 @item rd
907 rate distortion optimal, slow
908 @item zero
909 0
910 @item vsad
911 sum of absolute vertical differences
912 @item vsse
913 sum of squared vertical differences
914 @item nsse
915 noise preserving sum of squared differences
916 @item w53
917 5/3 wavelet, only used in snow
918 @item w97
919 9/7 wavelet, only used in snow
920 @item dctmax
921
922 @item chroma
923
924 @end table
925
926 @item border_mask @var{float} (@emph{encoding,video})
927 Increase the quantizer for macroblocks close to borders.
928
929 @item mblmin @var{integer} (@emph{encoding,video})
930 Set min macroblock lagrange factor (VBR).
931
932 @item mblmax @var{integer} (@emph{encoding,video})
933 Set max macroblock lagrange factor (VBR).
934
935 @item mepc @var{integer} (@emph{encoding,video})
936 Set motion estimation bitrate penalty compensation (1.0 = 256).
937
938 @item skip_loop_filter @var{integer} (@emph{decoding,video})
939 @item skip_idct        @var{integer} (@emph{decoding,video})
940 @item skip_frame       @var{integer} (@emph{decoding,video})
941
942 Make decoder discard processing depending on the frame type selected
943 by the option value.
944
945 @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
946 skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
947
948 Possible values:
949 @table @samp
950 @item none
951 Discard no frame.
952
953 @item default
954 Discard useless frames like 0-sized frames.
955
956 @item noref
957 Discard all non-reference frames.
958
959 @item bidir
960 Discard all bidirectional frames.
961
962 @item nokey
963 Discard all frames excepts keyframes.
964
965 @item all
966 Discard all frames.
967 @end table
968
969 Default value is @samp{default}.
970
971 @item bidir_refine @var{integer} (@emph{encoding,video})
972 Refine the two motion vectors used in bidirectional macroblocks.
973
974 @item brd_scale @var{integer} (@emph{encoding,video})
975 Downscale frames for dynamic B-frame decision.
976
977 @item keyint_min @var{integer} (@emph{encoding,video})
978 Set minimum interval between IDR-frames.
979
980 @item refs @var{integer} (@emph{encoding,video})
981 Set reference frames to consider for motion compensation.
982
983 @item chromaoffset @var{integer} (@emph{encoding,video})
984 Set chroma qp offset from luma.
985
986 @item trellis @var{integer} (@emph{encoding,audio,video})
987 Set rate-distortion optimal quantization.
988
989 @item mv0_threshold @var{integer} (@emph{encoding,video})
990 @item b_sensitivity @var{integer} (@emph{encoding,video})
991 Adjust sensitivity of b_frame_strategy 1.
992
993 @item compression_level @var{integer} (@emph{encoding,audio,video})
994 @item min_prediction_order @var{integer} (@emph{encoding,audio})
995 @item max_prediction_order @var{integer} (@emph{encoding,audio})
996 @item timecode_frame_start @var{integer} (@emph{encoding,video})
997 Set GOP timecode frame start number, in non drop frame format.
998
999 @item request_channels @var{integer} (@emph{decoding,audio})
1000 Set desired number of audio channels.
1001
1002 @item bits_per_raw_sample @var{integer}
1003 @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
1004
1005 Possible values:
1006 @table @samp
1007 @end table
1008 @item request_channel_layout @var{integer} (@emph{decoding,audio})
1009
1010 Possible values:
1011 @table @samp
1012 @end table
1013 @item rc_max_vbv_use @var{float} (@emph{encoding,video})
1014 @item rc_min_vbv_use @var{float} (@emph{encoding,video})
1015 @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
1016
1017 @item color_primaries @var{integer} (@emph{decoding/encoding,video})
1018 Possible values:
1019 @table @samp
1020 @item bt709
1021 BT.709
1022 @item bt470m
1023 BT.470 M
1024 @item bt470bg
1025 BT.470 BG
1026 @item smpte170m
1027 SMPTE 170 M
1028 @item smpte240m
1029 SMPTE 240 M
1030 @item film
1031 Film
1032 @item bt2020
1033 BT.2020
1034 @item smpte428
1035 @item smpte428_1
1036 SMPTE ST 428-1
1037 @item smpte431
1038 SMPTE 431-2
1039 @item smpte432
1040 SMPTE 432-1
1041 @item jedec-p22
1042 JEDEC P22
1043 @end table
1044
1045 @item color_trc @var{integer} (@emph{decoding/encoding,video})
1046 Possible values:
1047 @table @samp
1048 @item bt709
1049 BT.709
1050 @item gamma22
1051 BT.470 M
1052 @item gamma28
1053 BT.470 BG
1054 @item smpte170m
1055 SMPTE 170 M
1056 @item smpte240m
1057 SMPTE 240 M
1058 @item linear
1059 Linear
1060 @item log
1061 @item log100
1062 Log
1063 @item log_sqrt
1064 @item log316
1065 Log square root
1066 @item iec61966_2_4
1067 @item iec61966-2-4
1068 IEC 61966-2-4
1069 @item bt1361
1070 @item bt1361e
1071 BT.1361
1072 @item iec61966_2_1
1073 @item iec61966-2-1
1074 IEC 61966-2-1
1075 @item bt2020_10
1076 @item bt2020_10bit
1077 BT.2020 - 10 bit
1078 @item bt2020_12
1079 @item bt2020_12bit
1080 BT.2020 - 12 bit
1081 @item smpte2084
1082 SMPTE ST 2084
1083 @item smpte428
1084 @item smpte428_1
1085 SMPTE ST 428-1
1086 @item arib-std-b67
1087 ARIB STD-B67
1088 @end table
1089
1090 @item colorspace @var{integer} (@emph{decoding/encoding,video})
1091 Possible values:
1092 @table @samp
1093 @item rgb
1094 RGB
1095 @item bt709
1096 BT.709
1097 @item fcc
1098 FCC
1099 @item bt470bg
1100 BT.470 BG
1101 @item smpte170m
1102 SMPTE 170 M
1103 @item smpte240m
1104 SMPTE 240 M
1105 @item ycocg
1106 YCOCG
1107 @item bt2020nc
1108 @item bt2020_ncl
1109 BT.2020 NCL
1110 @item bt2020c
1111 @item bt2020_cl
1112 BT.2020 CL
1113 @item smpte2085
1114 SMPTE 2085
1115 @end table
1116
1117 @item color_range @var{integer} (@emph{decoding/encoding,video})
1118 If used as input parameter, it serves as a hint to the decoder, which
1119 color_range the input has.
1120 Possible values:
1121 @table @samp
1122 @item tv
1123 @item mpeg
1124 MPEG (219*2^(n-8))
1125 @item pc
1126 @item jpeg
1127 JPEG (2^n-1)
1128 @end table
1129
1130 @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
1131 Possible values:
1132 @table @samp
1133 @item left
1134
1135 @item center
1136
1137 @item topleft
1138
1139 @item top
1140
1141 @item bottomleft
1142
1143 @item bottom
1144
1145 @end table
1146
1147 @item log_level_offset @var{integer}
1148 Set the log level offset.
1149
1150 @item slices @var{integer} (@emph{encoding,video})
1151 Number of slices, used in parallelized encoding.
1152
1153 @item thread_type @var{flags} (@emph{decoding/encoding,video})
1154 Select which multithreading methods to use.
1155
1156 Use of @samp{frame} will increase decoding delay by one frame per
1157 thread, so clients which cannot provide future frames should not use
1158 it.
1159
1160 Possible values:
1161 @table @samp
1162 @item slice
1163 Decode more than one part of a single frame at once.
1164
1165 Multithreading using slices works only when the video was encoded with
1166 slices.
1167
1168 @item frame
1169 Decode more than one frame at once.
1170 @end table
1171
1172 Default value is @samp{slice+frame}.
1173
1174 @item audio_service_type @var{integer} (@emph{encoding,audio})
1175 Set audio service type.
1176
1177 Possible values:
1178 @table @samp
1179 @item ma
1180 Main Audio Service
1181 @item ef
1182 Effects
1183 @item vi
1184 Visually Impaired
1185 @item hi
1186 Hearing Impaired
1187 @item di
1188 Dialogue
1189 @item co
1190 Commentary
1191 @item em
1192 Emergency
1193 @item vo
1194 Voice Over
1195 @item ka
1196 Karaoke
1197 @end table
1198
1199 @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
1200 Set sample format audio decoders should prefer. Default value is
1201 @code{none}.
1202
1203 @item pkt_timebase @var{rational number}
1204
1205 @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
1206 Set the input subtitles character encoding.
1207
1208 @item field_order  @var{field_order} (@emph{video})
1209 Set/override the field order of the video.
1210 Possible values:
1211 @table @samp
1212 @item progressive
1213 Progressive video
1214 @item tt
1215 Interlaced video, top field coded and displayed first
1216 @item bb
1217 Interlaced video, bottom field coded and displayed first
1218 @item tb
1219 Interlaced video, top coded first, bottom displayed first
1220 @item bt
1221 Interlaced video, bottom coded first, top displayed first
1222 @end table
1223
1224 @item skip_alpha @var{bool} (@emph{decoding,video})
1225 Set to 1 to disable processing alpha (transparency). This works like the
1226 @samp{gray} flag in the @option{flags} option which skips chroma information
1227 instead of alpha. Default is 0.
1228
1229 @item codec_whitelist @var{list} (@emph{input})
1230 "," separated list of allowed decoders. By default all are allowed.
1231
1232 @item dump_separator @var{string} (@emph{input})
1233 Separator used to separate the fields printed on the command line about the
1234 Stream parameters.
1235 For example to separate the fields with newlines and indention:
1236 @example
1237 ffprobe -dump_separator "
1238                           "  -i ~/videos/matrixbench_mpeg2.mpg
1239 @end example
1240
1241 @item max_pixels @var{integer} (@emph{decoding/encoding,video})
1242 Maximum number of pixels per image. This value can be used to avoid out of
1243 memory failures due to large images.
1244
1245 @item apply_cropping @var{bool} (@emph{decoding,video})
1246 Enable cropping if cropping parameters are multiples of the required
1247 alignment for the left and top parameters. If the alignment is not met the
1248 cropping will be partially applied to maintain alignment.
1249 Default is 1 (enabled).
1250 Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
1251 CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
1252 decoders will not apply left/top Cropping.
1253
1254
1255 @end table
1256
1257 @c man end CODEC OPTIONS
1258
1259 @ifclear config-writeonly
1260 @include decoders.texi
1261 @end ifclear
1262 @ifclear config-readonly
1263 @include encoders.texi
1264 @end ifclear