codecs.texi 29.6 KB
Newer Older
1
@anchor{codec-options}
2 3 4 5 6 7 8 9
@chapter Codec Options
@c man begin CODEC OPTIONS

libavcodec provides some generic global options, which can be set on
all the encoders and decoders. In addition each codec may support
so-called private options, which are specific for a given codec.

Sometimes, a global option may only affect a specific kind of codec,
Lou Logan's avatar
Lou Logan committed
10
and may be nonsensical or ignored by another, so you need to be aware
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
of the meaning of the specified options. Also some options are
meant only for decoding or encoding.

Options may be set by specifying -@var{option} @var{value} in the
FFmpeg tools, or by setting the value explicitly in the
@code{AVCodecContext} options or using the @file{libavutil/opt.h} API
for programmatic use.

The list of supported options follow:

@table @option
@item b @var{integer} (@emph{encoding,audio,video})
Set bitrate in bits/s. Default value is 200K.

@item ab @var{integer} (@emph{encoding,audio})
Set audio bitrate (in bits/s). Default value is 128K.

@item bt @var{integer} (@emph{encoding,video})
Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
tolerance specifies how far ratecontrol is willing to deviate from the
target average bitrate value. This is not related to min/max
bitrate. Lowering tolerance too much has an adverse effect on quality.

@item flags @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
Set generic flags.

Possible values:
@table @samp
@item mv4
Use four motion vector by macroblock (mpeg4).
@item qpel
Use 1/4 pel motion compensation.
@item loop
Use loop filter.
@item qscale
Use fixed qscale.
@item pass1
Use internal 2pass ratecontrol in first pass mode.
@item pass2
Use internal 2pass ratecontrol in second pass mode.
@item gray
Only decode/encode grayscale.
@item emu_edge
Do not draw edges.
@item psnr
Set error[?] variables during encoding.
@item truncated
58 59
@item drop_changed
Don't output frames whose parameters differ from first decoded frame in stream.
60
Error AVERROR_INPUT_CHANGED is returned when a frame is dropped.
61 62 63 64 65 66 67 68

@item ildct
Use interlaced DCT.
@item low_delay
Force low delay.
@item global_header
Place global headers in extradata instead of every keyframe.
@item bitexact
69
Only write platform-, build- and time-independent data. (except (I)DCT).
70
This ensures that file and data checksums are reproducible and match between
71
platforms. Its primary use is for regression testing.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
@item aic
Apply H263 advanced intra coding / mpeg4 ac prediction.
@item cbp
Deprecated, use mpegvideo private options instead.
@item qprd
Deprecated, use mpegvideo private options instead.
@item ilme
Apply interlaced motion estimation.
@item cgop
Use closed gop.
@end table

@item me_method @var{integer} (@emph{encoding,video})
Set motion estimation method.

Possible values:
@table @samp
@item zero
zero motion estimation (fastest)
@item full
full motion estimation (slowest)
@item epzs
EPZS motion estimation (default)
@item esa
esa motion estimation (alias for full)
@item tesa
tesa motion estimation
@item dia
dia motion estimation (alias for epzs)
@item log
log motion estimation
@item phods
phods motion estimation
@item x1
X1 motion estimation
@item hex
hex motion estimation
@item umh
umh motion estimation
@item iter
iter motion estimation
@end table

@item extradata_size @var{integer}
Set extradata size.

@item time_base @var{rational number}
Set codec time base.

It is the fundamental unit of time (in seconds) in terms of which
frame timestamps are represented. For fixed-fps content, timebase
should be @code{1 / frame_rate} and timestamp increments should be
identically 1.

@item g @var{integer} (@emph{encoding,video})
127
Set the group of picture (GOP) size. Default value is 12.
128 129 130 131 132 133 134 135

@item ar @var{integer} (@emph{decoding/encoding,audio})
Set audio sampling rate (in Hz).

@item ac @var{integer} (@emph{decoding/encoding,audio})
Set number of audio channels.

@item cutoff @var{integer} (@emph{encoding,audio})
136 137
Set cutoff bandwidth. (Supported only by selected encoders, see
their respective documentation sections.)
138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172

@item frame_size @var{integer} (@emph{encoding,audio})
Set audio frame size.

Each submitted frame except the last must contain exactly frame_size
samples per channel. May be 0 when the codec has
CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is not
restricted. It is set by some decoders to indicate constant frame
size.

@item frame_number @var{integer}
Set the frame number.

@item delay @var{integer}

@item qcomp @var{float} (@emph{encoding,video})
Set video quantizer scale compression (VBR). It is used as a constant
in the ratecontrol equation. Recommended range for default rc_eq:
0.0-1.0.

@item qblur @var{float} (@emph{encoding,video})
Set video quantizer scale blur (VBR).

@item qmin @var{integer} (@emph{encoding,video})
Set min video quantizer scale (VBR). Must be included between -1 and
69, default value is 2.

@item qmax @var{integer} (@emph{encoding,video})
Set max video quantizer scale (VBR). Must be included between -1 and
1024, default value is 31.

@item qdiff @var{integer} (@emph{encoding,video})
Set max difference between the quantizer scale (VBR).

@item bf @var{integer} (@emph{encoding,video})
173 174 175 176 177 178 179
Set max number of B frames between non-B-frames.

Must be an integer between -1 and 16. 0 means that B-frames are
disabled. If a value of -1 is used, it will choose an automatic value
depending on the encoder.

Default value is 0.
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255

@item b_qfactor @var{float} (@emph{encoding,video})
Set qp factor between P and B frames.

@item rc_strategy @var{integer} (@emph{encoding,video})
Set ratecontrol method.

@item b_strategy @var{integer} (@emph{encoding,video})
Set strategy to choose between I/P/B-frames.

@item ps @var{integer} (@emph{encoding,video})
Set RTP payload size in bytes.

@item mv_bits @var{integer}
@item header_bits @var{integer}
@item i_tex_bits @var{integer}
@item p_tex_bits @var{integer}
@item i_count @var{integer}
@item p_count @var{integer}
@item skip_count @var{integer}
@item misc_bits @var{integer}
@item frame_bits @var{integer}
@item codec_tag @var{integer}
@item bug @var{flags} (@emph{decoding,video})
Workaround not auto detected encoder bugs.

Possible values:
@table @samp
@item autodetect

@item old_msmpeg4
some old lavc generated msmpeg4v3 files (no autodetection)
@item xvid_ilace
Xvid interlacing bug (autodetected if fourcc==XVIX)
@item ump4
(autodetected if fourcc==UMP4)
@item no_padding
padding bug (autodetected)
@item amv

@item ac_vlc
illegal vlc bug (autodetected per fourcc)
@item qpel_chroma

@item std_qpel
old standard qpel (autodetected per fourcc/version)
@item qpel_chroma2

@item direct_blocksize
direct-qpel-blocksize bug (autodetected per fourcc/version)
@item edge
edge padding bug (autodetected per fourcc/version)
@item hpel_chroma

@item dc_clip

@item ms
Workaround various bugs in microsoft broken decoders.
@item trunc
trancated frames
@end table

@item lelim @var{integer} (@emph{encoding,video})
Set single coefficient elimination threshold for luminance (negative
values also consider DC coefficient).

@item celim @var{integer} (@emph{encoding,video})
Set single coefficient elimination threshold for chrominance (negative
values also consider dc coefficient)

@item strict @var{integer} (@emph{decoding/encoding,audio,video})
Specify how strictly to follow the standards.

Possible values:
@table @samp
@item very
Lou Logan's avatar
Lou Logan committed
256
strictly conform to an older more strict version of the spec or reference software
257 258 259 260 261 262 263
@item strict
strictly conform to all the things in the spec no matter what consequences
@item normal

@item unofficial
allow unofficial extensions
@item experimental
264 265 266 267
allow non standardized experimental things, experimental
(unfinished/work in progress/not well tested) decoders and encoders.
Note: experimental decoders can pose a security risk, do not use this for
decoding untrusted input.
268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285
@end table

@item b_qoffset @var{float} (@emph{encoding,video})
Set QP offset between P and B frames.

@item err_detect @var{flags} (@emph{decoding,audio,video})
Set error detection flags.

Possible values:
@table @samp
@item crccheck
verify embedded CRCs
@item bitstream
detect bitstream specification deviations
@item buffer
detect improper bitstream length
@item explode
abort decoding on minor error detection
286 287 288 289 290
@item ignore_err
ignore decoding errors, and continue decoding.
This is useful if you want to analyze the content of a video and thus want
everything to be decoded no matter what. This option will not result in a video
that is pleasing to watch in case of errors.
291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394
@item careful
consider things that violate the spec and have not been seen in the wild as errors
@item compliant
consider all spec non compliancies as errors
@item aggressive
consider things that a sane encoder should not do as an error
@end table

@item has_b_frames @var{integer}

@item block_align @var{integer}

@item mpeg_quant @var{integer} (@emph{encoding,video})
Use MPEG quantizers instead of H.263.

@item qsquish @var{float} (@emph{encoding,video})
How to keep quantizer between qmin and qmax (0 = clip, 1 = use
differentiable function).

@item rc_qmod_amp @var{float} (@emph{encoding,video})
Set experimental quantizer modulation.

@item rc_qmod_freq @var{integer} (@emph{encoding,video})
Set experimental quantizer modulation.

@item rc_override_count @var{integer}

@item rc_eq @var{string} (@emph{encoding,video})
Set rate control equation. When computing the expression, besides the
standard functions defined in the section 'Expression Evaluation', the
following functions are available: bits2qp(bits), qp2bits(qp). Also
the following constants are available: iTex pTex tex mv fCode iCount
mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex
avgTex.

@item maxrate @var{integer} (@emph{encoding,audio,video})
Set max bitrate tolerance (in bits/s). Requires bufsize to be set.

@item minrate @var{integer} (@emph{encoding,audio,video})
Set min bitrate tolerance (in bits/s). Most useful in setting up a CBR
encode. It is of little use elsewise.

@item bufsize @var{integer} (@emph{encoding,audio,video})
Set ratecontrol buffer size (in bits).

@item rc_buf_aggressivity @var{float} (@emph{encoding,video})
Currently useless.

@item i_qfactor @var{float} (@emph{encoding,video})
Set QP factor between P and I frames.

@item i_qoffset @var{float} (@emph{encoding,video})
Set QP offset between P and I frames.

@item rc_init_cplx @var{float} (@emph{encoding,video})
Set initial complexity for 1-pass encoding.

@item dct @var{integer} (@emph{encoding,video})
Set DCT algorithm.

Possible values:
@table @samp
@item auto
autoselect a good one (default)
@item fastint
fast integer
@item int
accurate integer
@item mmx

@item altivec

@item faan
floating point AAN DCT
@end table

@item lumi_mask @var{float} (@emph{encoding,video})
Compress bright areas stronger than medium ones.

@item tcplx_mask @var{float} (@emph{encoding,video})
Set temporal complexity masking.

@item scplx_mask @var{float} (@emph{encoding,video})
Set spatial complexity masking.

@item p_mask @var{float} (@emph{encoding,video})
Set inter masking.

@item dark_mask @var{float} (@emph{encoding,video})
Compress dark areas stronger than medium ones.

@item idct @var{integer} (@emph{decoding/encoding,video})
Select IDCT implementation.

Possible values:
@table @samp
@item auto

@item int

@item simple

@item simplemmx

395 396 397
@item simpleauto
Automatically pick a IDCT compatible with the simple one

398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432
@item arm

@item altivec

@item sh4

@item simplearm

@item simplearmv5te

@item simplearmv6

@item simpleneon

@item simplealpha

@item ipp

@item xvidmmx

@item faani
floating point AAN IDCT
@end table

@item slice_count @var{integer}

@item ec @var{flags} (@emph{decoding,video})
Set error concealment strategy.

Possible values:
@table @samp
@item guess_mvs
iterative motion vector (MV) search (slow)
@item deblock
use strong deblock filter for damaged MBs
433 434
@item favor_inter
favor predicting from the previous frame instead of the current
435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454
@end table

@item bits_per_coded_sample @var{integer}

@item pred @var{integer} (@emph{encoding,video})
Set prediction method.

Possible values:
@table @samp
@item left

@item plane

@item median

@end table

@item aspect @var{rational number} (@emph{encoding,video})
Set sample aspect ratio.

455 456 457
@item sar @var{rational number} (@emph{encoding,video})
Set sample aspect ratio. Alias to @var{aspect}.

458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474
@item debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles})
Print specific debug info.

Possible values:
@table @samp
@item pict
picture info
@item rc
rate control
@item bitstream

@item mb_type
macroblock (MB) type
@item qp
per-block quantization parameter (QP)
@item dct_coeff

475 476 477
@item green_metadata
display complexity metadata for the upcoming frame, GoP or for a given duration.

478 479 480 481 482 483 484 485 486 487 488 489 490 491
@item skip

@item startcode

@item er
error recognition
@item mmco
memory management control operations (H.264)
@item bugs

@item buffers
picture buffer allocations
@item thread_ops
threading operations
492 493
@item nomc
skip motion compensation
494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767
@end table

@item cmp @var{integer} (@emph{encoding,video})
Set full pel me compare function.

Possible values:
@table @samp
@item sad
sum of absolute differences, fast (default)
@item sse
sum of squared errors
@item satd
sum of absolute Hadamard transformed differences
@item dct
sum of absolute DCT transformed differences
@item psnr
sum of squared quantization errors (avoid, low quality)
@item bit
number of bits needed for the block
@item rd
rate distortion optimal, slow
@item zero
0
@item vsad
sum of absolute vertical differences
@item vsse
sum of squared vertical differences
@item nsse
noise preserving sum of squared differences
@item w53
5/3 wavelet, only used in snow
@item w97
9/7 wavelet, only used in snow
@item dctmax

@item chroma

@end table

@item subcmp @var{integer} (@emph{encoding,video})
Set sub pel me compare function.

Possible values:
@table @samp
@item sad
sum of absolute differences, fast (default)
@item sse
sum of squared errors
@item satd
sum of absolute Hadamard transformed differences
@item dct
sum of absolute DCT transformed differences
@item psnr
sum of squared quantization errors (avoid, low quality)
@item bit
number of bits needed for the block
@item rd
rate distortion optimal, slow
@item zero
0
@item vsad
sum of absolute vertical differences
@item vsse
sum of squared vertical differences
@item nsse
noise preserving sum of squared differences
@item w53
5/3 wavelet, only used in snow
@item w97
9/7 wavelet, only used in snow
@item dctmax

@item chroma

@end table

@item mbcmp @var{integer} (@emph{encoding,video})
Set macroblock compare function.

Possible values:
@table @samp
@item sad
sum of absolute differences, fast (default)
@item sse
sum of squared errors
@item satd
sum of absolute Hadamard transformed differences
@item dct
sum of absolute DCT transformed differences
@item psnr
sum of squared quantization errors (avoid, low quality)
@item bit
number of bits needed for the block
@item rd
rate distortion optimal, slow
@item zero
0
@item vsad
sum of absolute vertical differences
@item vsse
sum of squared vertical differences
@item nsse
noise preserving sum of squared differences
@item w53
5/3 wavelet, only used in snow
@item w97
9/7 wavelet, only used in snow
@item dctmax

@item chroma

@end table

@item ildctcmp @var{integer} (@emph{encoding,video})
Set interlaced dct compare function.

Possible values:
@table @samp
@item sad
sum of absolute differences, fast (default)
@item sse
sum of squared errors
@item satd
sum of absolute Hadamard transformed differences
@item dct
sum of absolute DCT transformed differences
@item psnr
sum of squared quantization errors (avoid, low quality)
@item bit
number of bits needed for the block
@item rd
rate distortion optimal, slow
@item zero
0
@item vsad
sum of absolute vertical differences
@item vsse
sum of squared vertical differences
@item nsse
noise preserving sum of squared differences
@item w53
5/3 wavelet, only used in snow
@item w97
9/7 wavelet, only used in snow
@item dctmax

@item chroma

@end table

@item dia_size @var{integer} (@emph{encoding,video})
Set diamond type & size for motion estimation.

@item last_pred @var{integer} (@emph{encoding,video})
Set amount of motion predictors from the previous frame.

@item preme @var{integer} (@emph{encoding,video})
Set pre motion estimation.

@item precmp @var{integer} (@emph{encoding,video})
Set pre motion estimation compare function.

Possible values:
@table @samp
@item sad
sum of absolute differences, fast (default)
@item sse
sum of squared errors
@item satd
sum of absolute Hadamard transformed differences
@item dct
sum of absolute DCT transformed differences
@item psnr
sum of squared quantization errors (avoid, low quality)
@item bit
number of bits needed for the block
@item rd
rate distortion optimal, slow
@item zero
0
@item vsad
sum of absolute vertical differences
@item vsse
sum of squared vertical differences
@item nsse
noise preserving sum of squared differences
@item w53
5/3 wavelet, only used in snow
@item w97
9/7 wavelet, only used in snow
@item dctmax

@item chroma

@end table

@item pre_dia_size @var{integer} (@emph{encoding,video})
Set diamond type & size for motion estimation pre-pass.

@item subq @var{integer} (@emph{encoding,video})
Set sub pel motion estimation quality.

@item dtg_active_format @var{integer}

@item me_range @var{integer} (@emph{encoding,video})
Set limit motion vectors range (1023 for DivX player).

@item ibias @var{integer} (@emph{encoding,video})
Set intra quant bias.

@item pbias @var{integer} (@emph{encoding,video})
Set inter quant bias.

@item color_table_id @var{integer}

@item global_quality @var{integer} (@emph{encoding,audio,video})

@item coder @var{integer} (@emph{encoding,video})

Possible values:
@table @samp
@item vlc
variable length coder / huffman coder
@item ac
arithmetic coder
@item raw
raw (no encoding)
@item rle
run-length coder
@item deflate
deflate-based coder
@end table

@item context @var{integer} (@emph{encoding,video})
Set context model.

@item slice_flags @var{integer}

@item mbd @var{integer} (@emph{encoding,video})
Set macroblock decision algorithm (high quality mode).

Possible values:
@table @samp
@item simple
use mbcmp (default)
@item bits
use fewest bits
@item rd
use best rate distortion
@end table

@item stream_codec_tag @var{integer}

@item sc_threshold @var{integer} (@emph{encoding,video})
Set scene change threshold.

@item lmin @var{integer} (@emph{encoding,video})
Set min lagrange factor (VBR).

@item lmax @var{integer} (@emph{encoding,video})
Set max lagrange factor (VBR).

@item nr @var{integer} (@emph{encoding,video})
Set noise reduction.

@item rc_init_occupancy @var{integer} (@emph{encoding,video})
Set number of bits which should be loaded into the rc buffer before
decoding starts.

@item flags2 @var{flags} (@emph{decoding/encoding,audio,video})

Possible values:
@table @samp
@item fast
768
Allow non spec compliant speedup tricks.
769
@item sgop
770
Deprecated, use mpegvideo private options instead.
771
@item noout
772
Skip bitstream encoding.
Timothy Gu's avatar
Timothy Gu committed
773 774
@item ignorecrop
Ignore cropping information from sps.
775
@item local_header
776
Place global headers at every keyframe instead of in extradata.
777
@item chunks
778
Frame data might be split into multiple chunks.
779
@item showall
780
Show all frames before the first keyframe.
781 782 783
@item export_mvs
Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS})
for codecs that support it. See also @file{doc/examples/export_mvs.c}.
784 785 786 787 788 789 790 791
@end table

@item error @var{integer} (@emph{encoding,video})

@item qns @var{integer} (@emph{encoding,video})
Deprecated, use mpegvideo private options instead.

@item threads @var{integer} (@emph{decoding/encoding,video})
792 793
Set the number of threads to be used, in case the selected codec
implementation supports multi-threading.
794 795 796

Possible values:
@table @samp
797 798
@item auto, 0
automatically select the number of threads to set
799 800
@end table

801 802
Default value is @samp{auto}.

803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842
@item me_threshold @var{integer} (@emph{encoding,video})
Set motion estimation threshold.

@item mb_threshold @var{integer} (@emph{encoding,video})
Set macroblock threshold.

@item dc @var{integer} (@emph{encoding,video})
Set intra_dc_precision.

@item nssew @var{integer} (@emph{encoding,video})
Set nsse weight.

@item skip_top @var{integer} (@emph{decoding,video})
Set number of macroblock rows at the top which are skipped.

@item skip_bottom @var{integer} (@emph{decoding,video})
Set number of macroblock rows at the bottom which are skipped.

@item profile @var{integer} (@emph{encoding,audio,video})

Possible values:
@table @samp
@item unknown

@item aac_main

@item aac_low

@item aac_ssr

@item aac_ltp

@item aac_he

@item aac_he_v2

@item aac_ld

@item aac_eld

843 844 845 846
@item mpeg2_aac_low

@item mpeg2_aac_he

847 848 849 850 851 852 853 854
@item mpeg4_sp

@item mpeg4_core

@item mpeg4_main

@item mpeg4_asp

855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885
@item dts

@item dts_es

@item dts_96_24

@item dts_hd_hra

@item dts_hd_ma

@end table

@item level @var{integer} (@emph{encoding,audio,video})

Possible values:
@table @samp
@item unknown

@end table

@item lowres @var{integer} (@emph{decoding,audio,video})
Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.

@item skip_threshold @var{integer} (@emph{encoding,video})
Set frame skip threshold.

@item skip_factor @var{integer} (@emph{encoding,video})
Set frame skip factor.

@item skip_exp @var{integer} (@emph{encoding,video})
Set frame skip exponent.
886 887
Negative values behave identical to the corresponding positive ones, except
that the score is normalized.
Lou Logan's avatar
Lou Logan committed
888
Positive values exist primarily for compatibility reasons and are not so useful.
889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965

@item skipcmp @var{integer} (@emph{encoding,video})
Set frame skip compare function.

Possible values:
@table @samp
@item sad
sum of absolute differences, fast (default)
@item sse
sum of squared errors
@item satd
sum of absolute Hadamard transformed differences
@item dct
sum of absolute DCT transformed differences
@item psnr
sum of squared quantization errors (avoid, low quality)
@item bit
number of bits needed for the block
@item rd
rate distortion optimal, slow
@item zero
0
@item vsad
sum of absolute vertical differences
@item vsse
sum of squared vertical differences
@item nsse
noise preserving sum of squared differences
@item w53
5/3 wavelet, only used in snow
@item w97
9/7 wavelet, only used in snow
@item dctmax

@item chroma

@end table

@item border_mask @var{float} (@emph{encoding,video})
Increase the quantizer for macroblocks close to borders.

@item mblmin @var{integer} (@emph{encoding,video})
Set min macroblock lagrange factor (VBR).

@item mblmax @var{integer} (@emph{encoding,video})
Set max macroblock lagrange factor (VBR).

@item mepc @var{integer} (@emph{encoding,video})
Set motion estimation bitrate penalty compensation (1.0 = 256).

@item skip_loop_filter @var{integer} (@emph{decoding,video})
@item skip_idct        @var{integer} (@emph{decoding,video})
@item skip_frame       @var{integer} (@emph{decoding,video})

Make decoder discard processing depending on the frame type selected
by the option value.

@option{skip_loop_filter} skips frame loop filtering, @option{skip_idct}
skips frame IDCT/dequantization, @option{skip_frame} skips decoding.

Possible values:
@table @samp
@item none
Discard no frame.

@item default
Discard useless frames like 0-sized frames.

@item noref
Discard all non-reference frames.

@item bidir
Discard all bidirectional frames.

@item nokey
Discard all frames excepts keyframes.

966 967 968
@item nointra
Discard all frames except I frames.

969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019
@item all
Discard all frames.
@end table

Default value is @samp{default}.

@item bidir_refine @var{integer} (@emph{encoding,video})
Refine the two motion vectors used in bidirectional macroblocks.

@item brd_scale @var{integer} (@emph{encoding,video})
Downscale frames for dynamic B-frame decision.

@item keyint_min @var{integer} (@emph{encoding,video})
Set minimum interval between IDR-frames.

@item refs @var{integer} (@emph{encoding,video})
Set reference frames to consider for motion compensation.

@item chromaoffset @var{integer} (@emph{encoding,video})
Set chroma qp offset from luma.

@item trellis @var{integer} (@emph{encoding,audio,video})
Set rate-distortion optimal quantization.

@item mv0_threshold @var{integer} (@emph{encoding,video})
@item b_sensitivity @var{integer} (@emph{encoding,video})
Adjust sensitivity of b_frame_strategy 1.

@item compression_level @var{integer} (@emph{encoding,audio,video})
@item min_prediction_order @var{integer} (@emph{encoding,audio})
@item max_prediction_order @var{integer} (@emph{encoding,audio})
@item timecode_frame_start @var{integer} (@emph{encoding,video})
Set GOP timecode frame start number, in non drop frame format.

@item request_channels @var{integer} (@emph{decoding,audio})
Set desired number of audio channels.

@item bits_per_raw_sample @var{integer}
@item channel_layout @var{integer} (@emph{decoding/encoding,audio})

Possible values:
@table @samp
@end table
@item request_channel_layout @var{integer} (@emph{decoding,audio})

Possible values:
@table @samp
@end table
@item rc_max_vbv_use @var{float} (@emph{encoding,video})
@item rc_min_vbv_use @var{float} (@emph{encoding,video})
@item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video})
1020

1021
@item color_primaries @var{integer} (@emph{decoding/encoding,video})
1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037
Possible values:
@table @samp
@item bt709
BT.709
@item bt470m
BT.470 M
@item bt470bg
BT.470 BG
@item smpte170m
SMPTE 170 M
@item smpte240m
SMPTE 240 M
@item film
Film
@item bt2020
BT.2020
1038
@item smpte428
1039 1040 1041 1042 1043 1044
@item smpte428_1
SMPTE ST 428-1
@item smpte431
SMPTE 431-2
@item smpte432
SMPTE 432-1
1045 1046
@item jedec-p22
JEDEC P22
1047
@end table
1048

1049
@item color_trc @var{integer} (@emph{decoding/encoding,video})
1050 1051 1052 1053 1054 1055 1056 1057
Possible values:
@table @samp
@item bt709
BT.709
@item gamma22
BT.470 M
@item gamma28
BT.470 BG
1058
@item smpte170m
1059
SMPTE 170 M
1060
@item smpte240m
1061
SMPTE 240 M
1062
@item linear
1063
Linear
1064
@item log
1065
@item log100
1066
Log
1067
@item log_sqrt
1068
@item log316
1069
Log square root
1070
@item iec61966_2_4
1071
@item iec61966-2-4
1072
IEC 61966-2-4
1073
@item bt1361
1074
@item bt1361e
1075
BT.1361
1076
@item iec61966_2_1
1077
@item iec61966-2-1
1078
IEC 61966-2-1
1079
@item bt2020_10
1080
@item bt2020_10bit
1081
BT.2020 - 10 bit
1082
@item bt2020_12
1083
@item bt2020_12bit
1084
BT.2020 - 12 bit
1085 1086
@item smpte2084
SMPTE ST 2084
1087
@item smpte428
1088 1089 1090 1091
@item smpte428_1
SMPTE ST 428-1
@item arib-std-b67
ARIB STD-B67
1092 1093
@end table

1094
@item colorspace @var{integer} (@emph{decoding/encoding,video})
1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110
Possible values:
@table @samp
@item rgb
RGB
@item bt709
BT.709
@item fcc
FCC
@item bt470bg
BT.470 BG
@item smpte170m
SMPTE 170 M
@item smpte240m
SMPTE 240 M
@item ycocg
YCOCG
1111
@item bt2020nc
1112 1113
@item bt2020_ncl
BT.2020 NCL
1114
@item bt2020c
1115 1116 1117 1118 1119
@item bt2020_cl
BT.2020 CL
@item smpte2085
SMPTE 2085
@end table
1120

1121
@item color_range @var{integer} (@emph{decoding/encoding,video})
1122 1123
If used as input parameter, it serves as a hint to the decoder, which
color_range the input has.
1124 1125 1126 1127 1128 1129 1130 1131 1132
Possible values:
@table @samp
@item tv
@item mpeg
MPEG (219*2^(n-8))
@item pc
@item jpeg
JPEG (2^n-1)
@end table
1133

1134
@item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})
1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149
Possible values:
@table @samp
@item left

@item center

@item topleft

@item top

@item bottomleft

@item bottom

@end table
1150 1151 1152 1153 1154 1155 1156 1157

@item log_level_offset @var{integer}
Set the log level offset.

@item slices @var{integer} (@emph{encoding,video})
Number of slices, used in parallelized encoding.

@item thread_type @var{flags} (@emph{decoding/encoding,video})
1158 1159 1160 1161 1162
Select which multithreading methods to use.

Use of @samp{frame} will increase decoding delay by one frame per
thread, so clients which cannot provide future frames should not use
it.
1163 1164 1165 1166

Possible values:
@table @samp
@item slice
1167
Decode more than one part of a single frame at once.
1168

1169 1170
Multithreading using slices works only when the video was encoded with
slices.
1171

1172 1173
@item frame
Decode more than one frame at once.
1174
@end table
1175 1176 1177

Default value is @samp{slice+frame}.

1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210
@item audio_service_type @var{integer} (@emph{encoding,audio})
Set audio service type.

Possible values:
@table @samp
@item ma
Main Audio Service
@item ef
Effects
@item vi
Visually Impaired
@item hi
Hearing Impaired
@item di
Dialogue
@item co
Commentary
@item em
Emergency
@item vo
Voice Over
@item ka
Karaoke
@end table

@item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio})
Set sample format audio decoders should prefer. Default value is
@code{none}.

@item pkt_timebase @var{rational number}

@item sub_charenc @var{encoding} (@emph{decoding,subtitles})
Set the input subtitles character encoding.
1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226

@item field_order  @var{field_order} (@emph{video})
Set/override the field order of the video.
Possible values:
@table @samp
@item progressive
Progressive video
@item tt
Interlaced video, top field coded and displayed first
@item bb
Interlaced video, bottom field coded and displayed first
@item tb
Interlaced video, top coded first, bottom displayed first
@item bt
Interlaced video, bottom coded first, top displayed first
@end table
1227

1228
@item skip_alpha @var{bool} (@emph{decoding,video})
1229 1230 1231
Set to 1 to disable processing alpha (transparency). This works like the
@samp{gray} flag in the @option{flags} option which skips chroma information
instead of alpha. Default is 0.
1232 1233

@item codec_whitelist @var{list} (@emph{input})
1234
"," separated list of allowed decoders. By default all are allowed.
1235

1236 1237 1238
@item dump_separator @var{string} (@emph{input})
Separator used to separate the fields printed on the command line about the
Stream parameters.
1239
For example, to separate the fields with newlines and indentation:
1240 1241 1242 1243 1244
@example
ffprobe -dump_separator "
                          "  -i ~/videos/matrixbench_mpeg2.mpg
@end example

1245 1246 1247 1248
@item max_pixels @var{integer} (@emph{decoding/encoding,video})
Maximum number of pixels per image. This value can be used to avoid out of
memory failures due to large images.

1249 1250 1251 1252 1253 1254 1255 1256 1257 1258
@item apply_cropping @var{bool} (@emph{decoding,video})
Enable cropping if cropping parameters are multiples of the required
alignment for the left and top parameters. If the alignment is not met the
cropping will be partially applied to maintain alignment.
Default is 1 (enabled).
Note: The required alignment depends on if @code{AV_CODEC_FLAG_UNALIGNED} is set and the
CPU. @code{AV_CODEC_FLAG_UNALIGNED} cannot be changed from the command line. Also hardware
decoders will not apply left/top Cropping.


1259 1260 1261 1262
@end table

@c man end CODEC OPTIONS

1263
@ifclear config-writeonly
1264
@include decoders.texi
1265 1266
@end ifclear
@ifclear config-readonly
1267
@include encoders.texi
1268
@end ifclear