]> git.sesse.net Git - ffmpeg/blob - doc/codecs.texi
Merge commit '13ca5d34ba5c473211daaae0a101123bcaada3e6'
[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 sc_factor @var{integer} (@emph{encoding,video})
990 Set value multiplied by qscale for each frame and added to
991 scene_change_score.
992
993 @item mv0_threshold @var{integer} (@emph{encoding,video})
994 @item b_sensitivity @var{integer} (@emph{encoding,video})
995 Adjust sensitivity of b_frame_strategy 1.
996
997 @item compression_level @var{integer} (@emph{encoding,audio,video})
998 @item min_prediction_order @var{integer} (@emph{encoding,audio})
999 @item max_prediction_order @var{integer} (@emph{encoding,audio})
1000 @item timecode_frame_start @var{integer} (@emph{encoding,video})
1001 Set GOP timecode frame start number, in non drop frame format.
1002
1003 @item request_channels @var{integer} (@emph{decoding,audio})
1004 Set desired number of audio channels.
1005
1006 @item bits_per_raw_sample @var{integer}
1007 @item channel_layout @var{integer} (@emph{decoding/encoding,audio})
1008
1009 Possible values:
1010 @table @samp
1011 @end table
1012 @item request_channel_layout @var{integer} (@emph{decoding,audio})
1013
1014 Possible values:
1015 @table @samp
1016 @end table
1017 @item rc_max_vbv_use @var{float} (@emph{encoding,video})
1018 @item rc_min_vbv_use @var{float} (@emph{encoding,video})
1019 @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
1020
1021 @item color_primaries @var{integer} (@emph{decoding/encoding,video})
1022 Possible values:
1023 @table @samp
1024 @item bt709
1025 BT.709
1026 @item bt470m
1027 BT.470 M
1028 @item bt470bg
1029 BT.470 BG
1030 @item smpte170m
1031 SMPTE 170 M
1032 @item smpte240m
1033 SMPTE 240 M
1034 @item film
1035 Film
1036 @item bt2020
1037 BT.2020
1038 @item smpte428
1039 @item smpte428_1
1040 SMPTE ST 428-1
1041 @item smpte431
1042 SMPTE 431-2
1043 @item smpte432
1044 SMPTE 432-1
1045 @item jedec-p22
1046 JEDEC P22
1047 @end table
1048
1049 @item color_trc @var{integer} (@emph{decoding/encoding,video})
1050 Possible values:
1051 @table @samp
1052 @item bt709
1053 BT.709
1054 @item gamma22
1055 BT.470 M
1056 @item gamma28
1057 BT.470 BG
1058 @item smpte170m
1059 SMPTE 170 M
1060 @item smpte240m
1061 SMPTE 240 M
1062 @item linear
1063 Linear
1064 @item log
1065 @item log100
1066 Log
1067 @item log_sqrt
1068 @item log316
1069 Log square root
1070 @item iec61966_2_4
1071 @item iec61966-2-4
1072 IEC 61966-2-4
1073 @item bt1361
1074 @item bt1361e
1075 BT.1361
1076 @item iec61966_2_1
1077 @item iec61966-2-1
1078 IEC 61966-2-1
1079 @item bt2020_10
1080 @item bt2020_10bit
1081 BT.2020 - 10 bit
1082 @item bt2020_12
1083 @item bt2020_12bit
1084 BT.2020 - 12 bit
1085 @item smpte2084
1086 SMPTE ST 2084
1087 @item smpte428
1088 @item smpte428_1
1089 SMPTE ST 428-1
1090 @item arib-std-b67
1091 ARIB STD-B67
1092 @end table
1093
1094 @item colorspace @var{integer} (@emph{decoding/encoding,video})
1095 Possible values:
1096 @table @samp
1097 @item rgb
1098 RGB
1099 @item bt709
1100 BT.709
1101 @item fcc
1102 FCC
1103 @item bt470bg
1104 BT.470 BG
1105 @item smpte170m
1106 SMPTE 170 M
1107 @item smpte240m
1108 SMPTE 240 M
1109 @item ycocg
1110 YCOCG
1111 @item bt2020nc
1112 @item bt2020_ncl
1113 BT.2020 NCL
1114 @item bt2020c
1115 @item bt2020_cl
1116 BT.2020 CL
1117 @item smpte2085
1118 SMPTE 2085
1119 @end table
1120
1121 @item color_range @var{integer} (@emph{decoding/encoding,video})
1122 If used as input parameter, it serves as a hint to the decoder, which
1123 color_range the input has.
1124 Possible values:
1125 @table @samp
1126 @item tv
1127 @item mpeg
1128 MPEG (219*2^(n-8))
1129 @item pc
1130 @item jpeg
1131 JPEG (2^n-1)
1132 @end table
1133
1134 @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
1135 Possible values:
1136 @table @samp
1137 @item left
1138
1139 @item center
1140
1141 @item topleft
1142
1143 @item top
1144
1145 @item bottomleft
1146
1147 @item bottom
1148
1149 @end table
1150
1151 @item log_level_offset @var{integer}
1152 Set the log level offset.
1153
1154 @item slices @var{integer} (@emph{encoding,video})
1155 Number of slices, used in parallelized encoding.
1156
1157 @item thread_type @var{flags} (@emph{decoding/encoding,video})
1158 Select which multithreading methods to use.
1159
1160 Use of @samp{frame} will increase decoding delay by one frame per
1161 thread, so clients which cannot provide future frames should not use
1162 it.
1163
1164 Possible values:
1165 @table @samp
1166 @item slice
1167 Decode more than one part of a single frame at once.
1168
1169 Multithreading using slices works only when the video was encoded with
1170 slices.
1171
1172 @item frame
1173 Decode more than one frame at once.
1174 @end table
1175
1176 Default value is @samp{slice+frame}.
1177
1178 @item audio_service_type @var{integer} (@emph{encoding,audio})
1179 Set audio service type.
1180
1181 Possible values:
1182 @table @samp
1183 @item ma
1184 Main Audio Service
1185 @item ef
1186 Effects
1187 @item vi
1188 Visually Impaired
1189 @item hi
1190 Hearing Impaired
1191 @item di
1192 Dialogue
1193 @item co
1194 Commentary
1195 @item em
1196 Emergency
1197 @item vo
1198 Voice Over
1199 @item ka
1200 Karaoke
1201 @end table
1202
1203 @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
1204 Set sample format audio decoders should prefer. Default value is
1205 @code{none}.
1206
1207 @item pkt_timebase @var{rational number}
1208
1209 @item sub_charenc @var{encoding} (@emph{decoding,subtitles})
1210 Set the input subtitles character encoding.
1211
1212 @item field_order  @var{field_order} (@emph{video})
1213 Set/override the field order of the video.
1214 Possible values:
1215 @table @samp
1216 @item progressive
1217 Progressive video
1218 @item tt
1219 Interlaced video, top field coded and displayed first
1220 @item bb
1221 Interlaced video, bottom field coded and displayed first
1222 @item tb
1223 Interlaced video, top coded first, bottom displayed first
1224 @item bt
1225 Interlaced video, bottom coded first, top displayed first
1226 @end table
1227
1228 @item skip_alpha @var{bool} (@emph{decoding,video})
1229 Set to 1 to disable processing alpha (transparency). This works like the
1230 @samp{gray} flag in the @option{flags} option which skips chroma information
1231 instead of alpha. Default is 0.
1232
1233 @item codec_whitelist @var{list} (@emph{input})
1234 "," separated list of allowed decoders. By default all are allowed.
1235
1236 @item dump_separator @var{string} (@emph{input})
1237 Separator used to separate the fields printed on the command line about the
1238 Stream parameters.
1239 For example to separate the fields with newlines and indention:
1240 @example
1241 ffprobe -dump_separator "
1242                           "  -i ~/videos/matrixbench_mpeg2.mpg
1243 @end example
1244
1245 @item max_pixels @var{integer} (@emph{decoding/encoding,video})
1246 Maximum number of pixels per image. This value can be used to avoid out of
1247 memory failures due to large images.
1248
1249 @item apply_cropping @var{bool} (@emph{decoding,video})
1250 Enable cropping if cropping parameters are multiples of the required
1251 alignment for the left and top parameters. If the alignment is not met the
1252 cropping will be partially applied to maintain alignment.
1253 Default is 1 (enabled).
1254 Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
1255 CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
1256 decoders will not apply left/top Cropping.
1257
1258
1259 @end table
1260
1261 @c man end CODEC OPTIONS
1262
1263 @ifclear config-writeonly
1264 @include decoders.texi
1265 @end ifclear
1266 @ifclear config-readonly
1267 @include encoders.texi
1268 @end ifclear