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