]> git.sesse.net Git - ffmpeg/blob - doc/codecs.texi
avcodec: add AV_CODEC_FLAG_DROPCHANGED to flags
[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 @item drop_changed
59 Don't output frames whose parameters differ from first decoded frame in stream.
60
61 @item ildct
62 Use interlaced DCT.
63 @item low_delay
64 Force low delay.
65 @item global_header
66 Place global headers in extradata instead of every keyframe.
67 @item bitexact
68 Only write platform-, build- and time-independent data. (except (I)DCT).
69 This ensures that file and data checksums are reproducible and match between
70 platforms. Its primary use is for regression testing.
71 @item aic
72 Apply H263 advanced intra coding / mpeg4 ac prediction.
73 @item cbp
74 Deprecated, use mpegvideo private options instead.
75 @item qprd
76 Deprecated, use mpegvideo private options instead.
77 @item ilme
78 Apply interlaced motion estimation.
79 @item cgop
80 Use closed gop.
81 @end table
82
83 @item me_method @var{integer} (@emph{encoding,video})
84 Set motion estimation method.
85
86 Possible values:
87 @table @samp
88 @item zero
89 zero motion estimation (fastest)
90 @item full
91 full motion estimation (slowest)
92 @item epzs
93 EPZS motion estimation (default)
94 @item esa
95 esa motion estimation (alias for full)
96 @item tesa
97 tesa motion estimation
98 @item dia
99 dia motion estimation (alias for epzs)
100 @item log
101 log motion estimation
102 @item phods
103 phods motion estimation
104 @item x1
105 X1 motion estimation
106 @item hex
107 hex motion estimation
108 @item umh
109 umh motion estimation
110 @item iter
111 iter motion estimation
112 @end table
113
114 @item extradata_size @var{integer}
115 Set extradata size.
116
117 @item time_base @var{rational number}
118 Set codec time base.
119
120 It is the fundamental unit of time (in seconds) in terms of which
121 frame timestamps are represented. For fixed-fps content, timebase
122 should be @code{1 / frame_rate} and timestamp increments should be
123 identically 1.
124
125 @item g @var{integer} (@emph{encoding,video})
126 Set the group of picture (GOP) size. Default value is 12.
127
128 @item ar @var{integer} (@emph{decoding/encoding,audio})
129 Set audio sampling rate (in Hz).
130
131 @item ac @var{integer} (@emph{decoding/encoding,audio})
132 Set number of audio channels.
133
134 @item cutoff @var{integer} (@emph{encoding,audio})
135 Set cutoff bandwidth. (Supported only by selected encoders, see
136 their respective documentation sections.)
137
138 @item frame_size @var{integer} (@emph{encoding,audio})
139 Set audio frame size.
140
141 Each submitted frame except the last must contain exactly frame_size
142 samples per channel. May be 0 when the codec has
143 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
144 restricted. It is set by some decoders to indicate constant frame
145 size.
146
147 @item frame_number @var{integer}
148 Set the frame number.
149
150 @item delay @var{integer}
151
152 @item qcomp @var{float} (@emph{encoding,video})
153 Set video quantizer scale compression (VBR). It is used as a constant
154 in the ratecontrol equation. Recommended range for default rc_eq:
155 0.0-1.0.
156
157 @item qblur @var{float} (@emph{encoding,video})
158 Set video quantizer scale blur (VBR).
159
160 @item qmin @var{integer} (@emph{encoding,video})
161 Set min video quantizer scale (VBR). Must be included between -1 and
162 69, default value is 2.
163
164 @item qmax @var{integer} (@emph{encoding,video})
165 Set max video quantizer scale (VBR). Must be included between -1 and
166 1024, default value is 31.
167
168 @item qdiff @var{integer} (@emph{encoding,video})
169 Set max difference between the quantizer scale (VBR).
170
171 @item bf @var{integer} (@emph{encoding,video})
172 Set max number of B frames between non-B-frames.
173
174 Must be an integer between -1 and 16. 0 means that B-frames are
175 disabled. If a value of -1 is used, it will choose an automatic value
176 depending on the encoder.
177
178 Default value is 0.
179
180 @item b_qfactor @var{float} (@emph{encoding,video})
181 Set qp factor between P and B frames.
182
183 @item rc_strategy @var{integer} (@emph{encoding,video})
184 Set ratecontrol method.
185
186 @item b_strategy @var{integer} (@emph{encoding,video})
187 Set strategy to choose between I/P/B-frames.
188
189 @item ps @var{integer} (@emph{encoding,video})
190 Set RTP payload size in bytes.
191
192 @item mv_bits @var{integer}
193 @item header_bits @var{integer}
194 @item i_tex_bits @var{integer}
195 @item p_tex_bits @var{integer}
196 @item i_count @var{integer}
197 @item p_count @var{integer}
198 @item skip_count @var{integer}
199 @item misc_bits @var{integer}
200 @item frame_bits @var{integer}
201 @item codec_tag @var{integer}
202 @item bug @var{flags} (@emph{decoding,video})
203 Workaround not auto detected encoder bugs.
204
205 Possible values:
206 @table @samp
207 @item autodetect
208
209 @item old_msmpeg4
210 some old lavc generated msmpeg4v3 files (no autodetection)
211 @item xvid_ilace
212 Xvid interlacing bug (autodetected if fourcc==XVIX)
213 @item ump4
214 (autodetected if fourcc==UMP4)
215 @item no_padding
216 padding bug (autodetected)
217 @item amv
218
219 @item ac_vlc
220 illegal vlc bug (autodetected per fourcc)
221 @item qpel_chroma
222
223 @item std_qpel
224 old standard qpel (autodetected per fourcc/version)
225 @item qpel_chroma2
226
227 @item direct_blocksize
228 direct-qpel-blocksize bug (autodetected per fourcc/version)
229 @item edge
230 edge padding bug (autodetected per fourcc/version)
231 @item hpel_chroma
232
233 @item dc_clip
234
235 @item ms
236 Workaround various bugs in microsoft broken decoders.
237 @item trunc
238 trancated frames
239 @end table
240
241 @item lelim @var{integer} (@emph{encoding,video})
242 Set single coefficient elimination threshold for luminance (negative
243 values also consider DC coefficient).
244
245 @item celim @var{integer} (@emph{encoding,video})
246 Set single coefficient elimination threshold for chrominance (negative
247 values also consider dc coefficient)
248
249 @item strict @var{integer} (@emph{decoding/encoding,audio,video})
250 Specify how strictly to follow the standards.
251
252 Possible values:
253 @table @samp
254 @item very
255 strictly conform to an older more strict version of the spec or reference software
256 @item strict
257 strictly conform to all the things in the spec no matter what consequences
258 @item normal
259
260 @item unofficial
261 allow unofficial extensions
262 @item experimental
263 allow non standardized experimental things, experimental
264 (unfinished/work in progress/not well tested) decoders and encoders.
265 Note: experimental decoders can pose a security risk, do not use this for
266 decoding untrusted input.
267 @end table
268
269 @item b_qoffset @var{float} (@emph{encoding,video})
270 Set QP offset between P and B frames.
271
272 @item err_detect @var{flags} (@emph{decoding,audio,video})
273 Set error detection flags.
274
275 Possible values:
276 @table @samp
277 @item crccheck
278 verify embedded CRCs
279 @item bitstream
280 detect bitstream specification deviations
281 @item buffer
282 detect improper bitstream length
283 @item explode
284 abort decoding on minor error detection
285 @item ignore_err
286 ignore decoding errors, and continue decoding.
287 This is useful if you want to analyze the content of a video and thus want
288 everything to be decoded no matter what. This option will not result in a video
289 that is pleasing to watch in case of errors.
290 @item careful
291 consider things that violate the spec and have not been seen in the wild as errors
292 @item compliant
293 consider all spec non compliancies as errors
294 @item aggressive
295 consider things that a sane encoder should not do as an error
296 @end table
297
298 @item has_b_frames @var{integer}
299
300 @item block_align @var{integer}
301
302 @item mpeg_quant @var{integer} (@emph{encoding,video})
303 Use MPEG quantizers instead of H.263.
304
305 @item qsquish @var{float} (@emph{encoding,video})
306 How to keep quantizer between qmin and qmax (0 = clip, 1 = use
307 differentiable function).
308
309 @item rc_qmod_amp @var{float} (@emph{encoding,video})
310 Set experimental quantizer modulation.
311
312 @item rc_qmod_freq @var{integer} (@emph{encoding,video})
313 Set experimental quantizer modulation.
314
315 @item rc_override_count @var{integer}
316
317 @item rc_eq @var{string} (@emph{encoding,video})
318 Set rate control equation. When computing the expression, besides the
319 standard functions defined in the section 'Expression Evaluation', the
320 following functions are available: bits2qp(bits), qp2bits(qp). Also
321 the following constants are available: iTex pTex tex mv fCode iCount
322 mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex
323 avgTex.
324
325 @item maxrate @var{integer} (@emph{encoding,audio,video})
326 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
327
328 @item minrate @var{integer} (@emph{encoding,audio,video})
329 Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR
330 encode. It is of little use elsewise.
331
332 @item bufsize @var{integer} (@emph{encoding,audio,video})
333 Set ratecontrol buffer size (in bits).
334
335 @item rc_buf_aggressivity @var{float} (@emph{encoding,video})
336 Currently useless.
337
338 @item i_qfactor @var{float} (@emph{encoding,video})
339 Set QP factor between P and I frames.
340
341 @item i_qoffset @var{float} (@emph{encoding,video})
342 Set QP offset between P and I frames.
343
344 @item rc_init_cplx @var{float} (@emph{encoding,video})
345 Set initial complexity for 1-pass encoding.
346
347 @item dct @var{integer} (@emph{encoding,video})
348 Set DCT algorithm.
349
350 Possible values:
351 @table @samp
352 @item auto
353 autoselect a good one (default)
354 @item fastint
355 fast integer
356 @item int
357 accurate integer
358 @item mmx
359
360 @item altivec
361
362 @item faan
363 floating point AAN DCT
364 @end table
365
366 @item lumi_mask @var{float} (@emph{encoding,video})
367 Compress bright areas stronger than medium ones.
368
369 @item tcplx_mask @var{float} (@emph{encoding,video})
370 Set temporal complexity masking.
371
372 @item scplx_mask @var{float} (@emph{encoding,video})
373 Set spatial complexity masking.
374
375 @item p_mask @var{float} (@emph{encoding,video})
376 Set inter masking.
377
378 @item dark_mask @var{float} (@emph{encoding,video})
379 Compress dark areas stronger than medium ones.
380
381 @item idct @var{integer} (@emph{decoding/encoding,video})
382 Select IDCT implementation.
383
384 Possible values:
385 @table @samp
386 @item auto
387
388 @item int
389
390 @item simple
391
392 @item simplemmx
393
394 @item simpleauto
395 Automatically pick a IDCT compatible with the simple one
396
397 @item arm
398
399 @item altivec
400
401 @item sh4
402
403 @item simplearm
404
405 @item simplearmv5te
406
407 @item simplearmv6
408
409 @item simpleneon
410
411 @item simplealpha
412
413 @item ipp
414
415 @item xvidmmx
416
417 @item faani
418 floating point AAN IDCT
419 @end table
420
421 @item slice_count @var{integer}
422
423 @item ec @var{flags} (@emph{decoding,video})
424 Set error concealment strategy.
425
426 Possible values:
427 @table @samp
428 @item guess_mvs
429 iterative motion vector (MV) search (slow)
430 @item deblock
431 use strong deblock filter for damaged MBs
432 @item favor_inter
433 favor predicting from the previous frame instead of the current
434 @end table
435
436 @item bits_per_coded_sample @var{integer}
437
438 @item pred @var{integer} (@emph{encoding,video})
439 Set prediction method.
440
441 Possible values:
442 @table @samp
443 @item left
444
445 @item plane
446
447 @item median
448
449 @end table
450
451 @item aspect @var{rational number} (@emph{encoding,video})
452 Set sample aspect ratio.
453
454 @item sar @var{rational number} (@emph{encoding,video})
455 Set sample aspect ratio. Alias to @var{aspect}.
456
457 @item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
458 Print specific debug info.
459
460 Possible values:
461 @table @samp
462 @item pict
463 picture info
464 @item rc
465 rate control
466 @item bitstream
467
468 @item mb_type
469 macroblock (MB) type
470 @item qp
471 per-block quantization parameter (QP)
472 @item dct_coeff
473
474 @item green_metadata
475 display complexity metadata for the upcoming frame, GoP or for a given duration.
476
477 @item skip
478
479 @item startcode
480
481 @item er
482 error recognition
483 @item mmco
484 memory management control operations (H.264)
485 @item bugs
486
487 @item buffers
488 picture buffer allocations
489 @item thread_ops
490 threading operations
491 @item nomc
492 skip motion compensation
493 @end table
494
495 @item cmp @var{integer} (@emph{encoding,video})
496 Set full pel me compare function.
497
498 Possible values:
499 @table @samp
500 @item sad
501 sum of absolute differences, fast (default)
502 @item sse
503 sum of squared errors
504 @item satd
505 sum of absolute Hadamard transformed differences
506 @item dct
507 sum of absolute DCT transformed differences
508 @item psnr
509 sum of squared quantization errors (avoid, low quality)
510 @item bit
511 number of bits needed for the block
512 @item rd
513 rate distortion optimal, slow
514 @item zero
515 0
516 @item vsad
517 sum of absolute vertical differences
518 @item vsse
519 sum of squared vertical differences
520 @item nsse
521 noise preserving sum of squared differences
522 @item w53
523 5/3 wavelet, only used in snow
524 @item w97
525 9/7 wavelet, only used in snow
526 @item dctmax
527
528 @item chroma
529
530 @end table
531
532 @item subcmp @var{integer} (@emph{encoding,video})
533 Set sub pel me compare function.
534
535 Possible values:
536 @table @samp
537 @item sad
538 sum of absolute differences, fast (default)
539 @item sse
540 sum of squared errors
541 @item satd
542 sum of absolute Hadamard transformed differences
543 @item dct
544 sum of absolute DCT transformed differences
545 @item psnr
546 sum of squared quantization errors (avoid, low quality)
547 @item bit
548 number of bits needed for the block
549 @item rd
550 rate distortion optimal, slow
551 @item zero
552 0
553 @item vsad
554 sum of absolute vertical differences
555 @item vsse
556 sum of squared vertical differences
557 @item nsse
558 noise preserving sum of squared differences
559 @item w53
560 5/3 wavelet, only used in snow
561 @item w97
562 9/7 wavelet, only used in snow
563 @item dctmax
564
565 @item chroma
566
567 @end table
568
569 @item mbcmp @var{integer} (@emph{encoding,video})
570 Set macroblock compare function.
571
572 Possible values:
573 @table @samp
574 @item sad
575 sum of absolute differences, fast (default)
576 @item sse
577 sum of squared errors
578 @item satd
579 sum of absolute Hadamard transformed differences
580 @item dct
581 sum of absolute DCT transformed differences
582 @item psnr
583 sum of squared quantization errors (avoid, low quality)
584 @item bit
585 number of bits needed for the block
586 @item rd
587 rate distortion optimal, slow
588 @item zero
589 0
590 @item vsad
591 sum of absolute vertical differences
592 @item vsse
593 sum of squared vertical differences
594 @item nsse
595 noise preserving sum of squared differences
596 @item w53
597 5/3 wavelet, only used in snow
598 @item w97
599 9/7 wavelet, only used in snow
600 @item dctmax
601
602 @item chroma
603
604 @end table
605
606 @item ildctcmp @var{integer} (@emph{encoding,video})
607 Set interlaced dct compare function.
608
609 Possible values:
610 @table @samp
611 @item sad
612 sum of absolute differences, fast (default)
613 @item sse
614 sum of squared errors
615 @item satd
616 sum of absolute Hadamard transformed differences
617 @item dct
618 sum of absolute DCT transformed differences
619 @item psnr
620 sum of squared quantization errors (avoid, low quality)
621 @item bit
622 number of bits needed for the block
623 @item rd
624 rate distortion optimal, slow
625 @item zero
626 0
627 @item vsad
628 sum of absolute vertical differences
629 @item vsse
630 sum of squared vertical differences
631 @item nsse
632 noise preserving sum of squared differences
633 @item w53
634 5/3 wavelet, only used in snow
635 @item w97
636 9/7 wavelet, only used in snow
637 @item dctmax
638
639 @item chroma
640
641 @end table
642
643 @item dia_size @var{integer} (@emph{encoding,video})
644 Set diamond type & size for motion estimation.
645
646 @item last_pred @var{integer} (@emph{encoding,video})
647 Set amount of motion predictors from the previous frame.
648
649 @item preme @var{integer} (@emph{encoding,video})
650 Set pre motion estimation.
651
652 @item precmp @var{integer} (@emph{encoding,video})
653 Set pre motion estimation compare function.
654
655 Possible values:
656 @table @samp
657 @item sad
658 sum of absolute differences, fast (default)
659 @item sse
660 sum of squared errors
661 @item satd
662 sum of absolute Hadamard transformed differences
663 @item dct
664 sum of absolute DCT transformed differences
665 @item psnr
666 sum of squared quantization errors (avoid, low quality)
667 @item bit
668 number of bits needed for the block
669 @item rd
670 rate distortion optimal, slow
671 @item zero
672 0
673 @item vsad
674 sum of absolute vertical differences
675 @item vsse
676 sum of squared vertical differences
677 @item nsse
678 noise preserving sum of squared differences
679 @item w53
680 5/3 wavelet, only used in snow
681 @item w97
682 9/7 wavelet, only used in snow
683 @item dctmax
684
685 @item chroma
686
687 @end table
688
689 @item pre_dia_size @var{integer} (@emph{encoding,video})
690 Set diamond type & size for motion estimation pre-pass.
691
692 @item subq @var{integer} (@emph{encoding,video})
693 Set sub pel motion estimation quality.
694
695 @item dtg_active_format @var{integer}
696
697 @item me_range @var{integer} (@emph{encoding,video})
698 Set limit motion vectors range (1023 for DivX player).
699
700 @item ibias @var{integer} (@emph{encoding,video})
701 Set intra quant bias.
702
703 @item pbias @var{integer} (@emph{encoding,video})
704 Set inter quant bias.
705
706 @item color_table_id @var{integer}
707
708 @item global_quality @var{integer} (@emph{encoding,audio,video})
709
710 @item coder @var{integer} (@emph{encoding,video})
711
712 Possible values:
713 @table @samp
714 @item vlc
715 variable length coder / huffman coder
716 @item ac
717 arithmetic coder
718 @item raw
719 raw (no encoding)
720 @item rle
721 run-length coder
722 @item deflate
723 deflate-based coder
724 @end table
725
726 @item context @var{integer} (@emph{encoding,video})
727 Set context model.
728
729 @item slice_flags @var{integer}
730
731 @item mbd @var{integer} (@emph{encoding,video})
732 Set macroblock decision algorithm (high quality mode).
733
734 Possible values:
735 @table @samp
736 @item simple
737 use mbcmp (default)
738 @item bits
739 use fewest bits
740 @item rd
741 use best rate distortion
742 @end table
743
744 @item stream_codec_tag @var{integer}
745
746 @item sc_threshold @var{integer} (@emph{encoding,video})
747 Set scene change threshold.
748
749 @item lmin @var{integer} (@emph{encoding,video})
750 Set min lagrange factor (VBR).
751
752 @item lmax @var{integer} (@emph{encoding,video})
753 Set max lagrange factor (VBR).
754
755 @item nr @var{integer} (@emph{encoding,video})
756 Set noise reduction.
757
758 @item rc_init_occupancy @var{integer} (@emph{encoding,video})
759 Set number of bits which should be loaded into the rc buffer before
760 decoding starts.
761
762 @item flags2 @var{flags} (@emph{decoding/encoding,audio,video})
763
764 Possible values:
765 @table @samp
766 @item fast
767 Allow non spec compliant speedup tricks.
768 @item sgop
769 Deprecated, use mpegvideo private options instead.
770 @item noout
771 Skip bitstream encoding.
772 @item ignorecrop
773 Ignore cropping information from sps.
774 @item local_header
775 Place global headers at every keyframe instead of in extradata.
776 @item chunks
777 Frame data might be split into multiple chunks.
778 @item showall
779 Show all frames before the first keyframe.
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 indentation:
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