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