]> git.sesse.net Git - ffmpeg/blob - doc/codecs.texi
Merge commit '156ea66c91b1986a87916f187216978d686725f6'
[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 export_mvs
779 Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
780 for codecs that support it. See also @file{doc/examples/export_mvs.c}.
781 @end table
782
783 @item error @var{integer} (@emph{encoding,video})
784
785 @item qns @var{integer} (@emph{encoding,video})
786 Deprecated, use mpegvideo private options instead.
787
788 @item threads @var{integer} (@emph{decoding/encoding,video})
789 Set the number of threads to be used, in case the selected codec
790 implementation supports multi-threading.
791
792 Possible values:
793 @table @samp
794 @item auto, 0
795 automatically select the number of threads to set
796 @end table
797
798 Default value is @samp{auto}.
799
800 @item me_threshold @var{integer} (@emph{encoding,video})
801 Set motion estimation threshold.
802
803 @item mb_threshold @var{integer} (@emph{encoding,video})
804 Set macroblock threshold.
805
806 @item dc @var{integer} (@emph{encoding,video})
807 Set intra_dc_precision.
808
809 @item nssew @var{integer} (@emph{encoding,video})
810 Set nsse weight.
811
812 @item skip_top @var{integer} (@emph{decoding,video})
813 Set number of macroblock rows at the top which are skipped.
814
815 @item skip_bottom @var{integer} (@emph{decoding,video})
816 Set number of macroblock rows at the bottom which are skipped.
817
818 @item profile @var{integer} (@emph{encoding,audio,video})
819
820 Possible values:
821 @table @samp
822 @item unknown
823
824 @item aac_main
825
826 @item aac_low
827
828 @item aac_ssr
829
830 @item aac_ltp
831
832 @item aac_he
833
834 @item aac_he_v2
835
836 @item aac_ld
837
838 @item aac_eld
839
840 @item mpeg2_aac_low
841
842 @item mpeg2_aac_he
843
844 @item mpeg4_sp
845
846 @item mpeg4_core
847
848 @item mpeg4_main
849
850 @item mpeg4_asp
851
852 @item dts
853
854 @item dts_es
855
856 @item dts_96_24
857
858 @item dts_hd_hra
859
860 @item dts_hd_ma
861
862 @end table
863
864 @item level @var{integer} (@emph{encoding,audio,video})
865
866 Possible values:
867 @table @samp
868 @item unknown
869
870 @end table
871
872 @item lowres @var{integer} (@emph{decoding,audio,video})
873 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
874
875 @item skip_threshold @var{integer} (@emph{encoding,video})
876 Set frame skip threshold.
877
878 @item skip_factor @var{integer} (@emph{encoding,video})
879 Set frame skip factor.
880
881 @item skip_exp @var{integer} (@emph{encoding,video})
882 Set frame skip exponent.
883 Negative values behave identical to the corresponding positive ones, except
884 that the score is normalized.
885 Positive values exist primarily for compatibility reasons and are not so useful.
886
887 @item skipcmp @var{integer} (@emph{encoding,video})
888 Set frame skip compare function.
889
890 Possible values:
891 @table @samp
892 @item sad
893 sum of absolute differences, fast (default)
894 @item sse
895 sum of squared errors
896 @item satd
897 sum of absolute Hadamard transformed differences
898 @item dct
899 sum of absolute DCT transformed differences
900 @item psnr
901 sum of squared quantization errors (avoid, low quality)
902 @item bit
903 number of bits needed for the block
904 @item rd
905 rate distortion optimal, slow
906 @item zero
907 0
908 @item vsad
909 sum of absolute vertical differences
910 @item vsse
911 sum of squared vertical differences
912 @item nsse
913 noise preserving sum of squared differences
914 @item w53
915 5/3 wavelet, only used in snow
916 @item w97
917 9/7 wavelet, only used in snow
918 @item dctmax
919
920 @item chroma
921
922 @end table
923
924 @item border_mask @var{float} (@emph{encoding,video})
925 Increase the quantizer for macroblocks close to borders.
926
927 @item mblmin @var{integer} (@emph{encoding,video})
928 Set min macroblock lagrange factor (VBR).
929
930 @item mblmax @var{integer} (@emph{encoding,video})
931 Set max macroblock lagrange factor (VBR).
932
933 @item mepc @var{integer} (@emph{encoding,video})
934 Set motion estimation bitrate penalty compensation (1.0 = 256).
935
936 @item skip_loop_filter @var{integer} (@emph{decoding,video})
937 @item skip_idct        @var{integer} (@emph{decoding,video})
938 @item skip_frame       @var{integer} (@emph{decoding,video})
939
940 Make decoder discard processing depending on the frame type selected
941 by the option value.
942
943 @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
944 skips frame IDCT/dequantization, @option{skip_frame} skips decoding.
945
946 Possible values:
947 @table @samp
948 @item none
949 Discard no frame.
950
951 @item default
952 Discard useless frames like 0-sized frames.
953
954 @item noref
955 Discard all non-reference frames.
956
957 @item bidir
958 Discard all bidirectional frames.
959
960 @item nokey
961 Discard all frames excepts keyframes.
962
963 @item all
964 Discard all frames.
965 @end table
966
967 Default value is @samp{default}.
968
969 @item bidir_refine @var{integer} (@emph{encoding,video})
970 Refine the two motion vectors used in bidirectional macroblocks.
971
972 @item brd_scale @var{integer} (@emph{encoding,video})
973 Downscale frames for dynamic B-frame decision.
974
975 @item keyint_min @var{integer} (@emph{encoding,video})
976 Set minimum interval between IDR-frames.
977
978 @item refs @var{integer} (@emph{encoding,video})
979 Set reference frames to consider for motion compensation.
980
981 @item chromaoffset @var{integer} (@emph{encoding,video})
982 Set chroma qp offset from luma.
983
984 @item trellis @var{integer} (@emph{encoding,audio,video})
985 Set rate-distortion optimal quantization.
986
987 @item mv0_threshold @var{integer} (@emph{encoding,video})
988 @item b_sensitivity @var{integer} (@emph{encoding,video})
989 Adjust sensitivity of b_frame_strategy 1.
990
991 @item compression_level @var{integer} (@emph{encoding,audio,video})
992 @item min_prediction_order @var{integer} (@emph{encoding,audio})
993 @item max_prediction_order @var{integer} (@emph{encoding,audio})
994 @item timecode_frame_start @var{integer} (@emph{encoding,video})
995 Set GOP timecode frame start number, in non drop frame format.
996
997 @item request_channels @var{integer} (@emph{decoding,audio})
998 Set desired number of audio channels.
999
1000 @item bits_per_raw_sample @var{integer}
1001 @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
1002
1003 Possible values:
1004 @table @samp
1005 @end table
1006 @item request_channel_layout @var{integer} (@emph{decoding,audio})
1007
1008 Possible values:
1009 @table @samp
1010 @end table
1011 @item rc_max_vbv_use @var{float} (@emph{encoding,video})
1012 @item rc_min_vbv_use @var{float} (@emph{encoding,video})
1013 @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
1014
1015 @item color_primaries @var{integer} (@emph{decoding/encoding,video})
1016 Possible values:
1017 @table @samp
1018 @item bt709
1019 BT.709
1020 @item bt470m
1021 BT.470 M
1022 @item bt470bg
1023 BT.470 BG
1024 @item smpte170m
1025 SMPTE 170 M
1026 @item smpte240m
1027 SMPTE 240 M
1028 @item film
1029 Film
1030 @item bt2020
1031 BT.2020
1032 @item smpte428
1033 @item smpte428_1
1034 SMPTE ST 428-1
1035 @item smpte431
1036 SMPTE 431-2
1037 @item smpte432
1038 SMPTE 432-1
1039 @item jedec-p22
1040 JEDEC P22
1041 @end table
1042
1043 @item color_trc @var{integer} (@emph{decoding/encoding,video})
1044 Possible values:
1045 @table @samp
1046 @item bt709
1047 BT.709
1048 @item gamma22
1049 BT.470 M
1050 @item gamma28
1051 BT.470 BG
1052 @item smpte170m
1053 SMPTE 170 M
1054 @item smpte240m
1055 SMPTE 240 M
1056 @item linear
1057 Linear
1058 @item log
1059 @item log100
1060 Log
1061 @item log_sqrt
1062 @item log316
1063 Log square root
1064 @item iec61966_2_4
1065 @item iec61966-2-4
1066 IEC 61966-2-4
1067 @item bt1361
1068 @item bt1361e
1069 BT.1361
1070 @item iec61966_2_1
1071 @item iec61966-2-1
1072 IEC 61966-2-1
1073 @item bt2020_10
1074 @item bt2020_10bit
1075 BT.2020 - 10 bit
1076 @item bt2020_12
1077 @item bt2020_12bit
1078 BT.2020 - 12 bit
1079 @item smpte2084
1080 SMPTE ST 2084
1081 @item smpte428
1082 @item smpte428_1
1083 SMPTE ST 428-1
1084 @item arib-std-b67
1085 ARIB STD-B67
1086 @end table
1087
1088 @item colorspace @var{integer} (@emph{decoding/encoding,video})
1089 Possible values:
1090 @table @samp
1091 @item rgb
1092 RGB
1093 @item bt709
1094 BT.709
1095 @item fcc
1096 FCC
1097 @item bt470bg
1098 BT.470 BG
1099 @item smpte170m
1100 SMPTE 170 M
1101 @item smpte240m
1102 SMPTE 240 M
1103 @item ycocg
1104 YCOCG
1105 @item bt2020nc
1106 @item bt2020_ncl
1107 BT.2020 NCL
1108 @item bt2020c
1109 @item bt2020_cl
1110 BT.2020 CL
1111 @item smpte2085
1112 SMPTE 2085
1113 @end table
1114
1115 @item color_range @var{integer} (@emph{decoding/encoding,video})
1116 If used as input parameter, it serves as a hint to the decoder, which
1117 color_range the input has.
1118 Possible values:
1119 @table @samp
1120 @item tv
1121 @item mpeg
1122 MPEG (219*2^(n-8))
1123 @item pc
1124 @item jpeg
1125 JPEG (2^n-1)
1126 @end table
1127
1128 @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
1129 Possible values:
1130 @table @samp
1131 @item left
1132
1133 @item center
1134
1135 @item topleft
1136
1137 @item top
1138
1139 @item bottomleft
1140
1141 @item bottom
1142
1143 @end table
1144
1145 @item log_level_offset @var{integer}
1146 Set the log level offset.
1147
1148 @item slices @var{integer} (@emph{encoding,video})
1149 Number of slices, used in parallelized encoding.
1150
1151 @item thread_type @var{flags} (@emph{decoding/encoding,video})
1152 Select which multithreading methods to use.
1153
1154 Use of @samp{frame} will increase decoding delay by one frame per
1155 thread, so clients which cannot provide future frames should not use
1156 it.
1157
1158 Possible values:
1159 @table @samp
1160 @item slice
1161 Decode more than one part of a single frame at once.
1162
1163 Multithreading using slices works only when the video was encoded with
1164 slices.
1165
1166 @item frame
1167 Decode more than one frame at once.
1168 @end table
1169
1170 Default value is @samp{slice+frame}.
1171
1172 @item audio_service_type @var{integer} (@emph{encoding,audio})
1173 Set audio service type.
1174
1175 Possible values:
1176 @table @samp
1177 @item ma
1178 Main Audio Service
1179 @item ef
1180 Effects
1181 @item vi
1182 Visually Impaired
1183 @item hi
1184 Hearing Impaired
1185 @item di
1186 Dialogue
1187 @item co
1188 Commentary
1189 @item em
1190 Emergency
1191 @item vo
1192 Voice Over
1193 @item ka
1194 Karaoke
1195 @end table
1196
1197 @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
1198 Set sample format audio decoders should prefer. Default value is
1199 @code{none}.
1200
1201 @item pkt_timebase @var{rational number}
1202
1203 @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
1204 Set the input subtitles character encoding.
1205
1206 @item field_order  @var{field_order} (@emph{video})
1207 Set/override the field order of the video.
1208 Possible values:
1209 @table @samp
1210 @item progressive
1211 Progressive video
1212 @item tt
1213 Interlaced video, top field coded and displayed first
1214 @item bb
1215 Interlaced video, bottom field coded and displayed first
1216 @item tb
1217 Interlaced video, top coded first, bottom displayed first
1218 @item bt
1219 Interlaced video, bottom coded first, top displayed first
1220 @end table
1221
1222 @item skip_alpha @var{bool} (@emph{decoding,video})
1223 Set to 1 to disable processing alpha (transparency). This works like the
1224 @samp{gray} flag in the @option{flags} option which skips chroma information
1225 instead of alpha. Default is 0.
1226
1227 @item codec_whitelist @var{list} (@emph{input})
1228 "," separated list of allowed decoders. By default all are allowed.
1229
1230 @item dump_separator @var{string} (@emph{input})
1231 Separator used to separate the fields printed on the command line about the
1232 Stream parameters.
1233 For example, to separate the fields with newlines and indentation:
1234 @example
1235 ffprobe -dump_separator "
1236                           "  -i ~/videos/matrixbench_mpeg2.mpg
1237 @end example
1238
1239 @item max_pixels @var{integer} (@emph{decoding/encoding,video})
1240 Maximum number of pixels per image. This value can be used to avoid out of
1241 memory failures due to large images.
1242
1243 @item apply_cropping @var{bool} (@emph{decoding,video})
1244 Enable cropping if cropping parameters are multiples of the required
1245 alignment for the left and top parameters. If the alignment is not met the
1246 cropping will be partially applied to maintain alignment.
1247 Default is 1 (enabled).
1248 Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
1249 CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
1250 decoders will not apply left/top Cropping.
1251
1252
1253 @end table
1254
1255 @c man end CODEC OPTIONS
1256
1257 @ifclear config-writeonly
1258 @include decoders.texi
1259 @end ifclear
1260 @ifclear config-readonly
1261 @include encoders.texi
1262 @end ifclear