| 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 unsensical 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 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 a 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 debug @var{flags} (@emph{decoding/encoding,audio,video,subtitles}) |
| 460 | Print specific debug info. |
| 461 | |
| 462 | Possible values: |
| 463 | @table @samp |
| 464 | @item pict |
| 465 | picture info |
| 466 | @item rc |
| 467 | rate control |
| 468 | @item bitstream |
| 469 | |
| 470 | @item mb_type |
| 471 | macroblock (MB) type |
| 472 | @item qp |
| 473 | per-block quantization parameter (QP) |
| 474 | @item mv |
| 475 | motion vector |
| 476 | @item dct_coeff |
| 477 | |
| 478 | @item skip |
| 479 | |
| 480 | @item startcode |
| 481 | |
| 482 | @item pts |
| 483 | |
| 484 | @item er |
| 485 | error recognition |
| 486 | @item mmco |
| 487 | memory management control operations (H.264) |
| 488 | @item bugs |
| 489 | |
| 490 | @item vis_qp |
| 491 | visualize quantization parameter (QP), lower QP are tinted greener |
| 492 | @item vis_mb_type |
| 493 | visualize block types |
| 494 | @item buffers |
| 495 | picture buffer allocations |
| 496 | @item thread_ops |
| 497 | threading operations |
| 498 | @end table |
| 499 | |
| 500 | @item vismv @var{integer} (@emph{decoding,video}) |
| 501 | Visualize motion vectors (MVs). |
| 502 | |
| 503 | This option is deprecated, see the codecview filter instead. |
| 504 | |
| 505 | Possible values: |
| 506 | @table @samp |
| 507 | @item pf |
| 508 | forward predicted MVs of P-frames |
| 509 | @item bf |
| 510 | forward predicted MVs of B-frames |
| 511 | @item bb |
| 512 | backward predicted MVs of B-frames |
| 513 | @end table |
| 514 | |
| 515 | @item cmp @var{integer} (@emph{encoding,video}) |
| 516 | Set full pel me compare function. |
| 517 | |
| 518 | Possible values: |
| 519 | @table @samp |
| 520 | @item sad |
| 521 | sum of absolute differences, fast (default) |
| 522 | @item sse |
| 523 | sum of squared errors |
| 524 | @item satd |
| 525 | sum of absolute Hadamard transformed differences |
| 526 | @item dct |
| 527 | sum of absolute DCT transformed differences |
| 528 | @item psnr |
| 529 | sum of squared quantization errors (avoid, low quality) |
| 530 | @item bit |
| 531 | number of bits needed for the block |
| 532 | @item rd |
| 533 | rate distortion optimal, slow |
| 534 | @item zero |
| 535 | 0 |
| 536 | @item vsad |
| 537 | sum of absolute vertical differences |
| 538 | @item vsse |
| 539 | sum of squared vertical differences |
| 540 | @item nsse |
| 541 | noise preserving sum of squared differences |
| 542 | @item w53 |
| 543 | 5/3 wavelet, only used in snow |
| 544 | @item w97 |
| 545 | 9/7 wavelet, only used in snow |
| 546 | @item dctmax |
| 547 | |
| 548 | @item chroma |
| 549 | |
| 550 | @end table |
| 551 | |
| 552 | @item subcmp @var{integer} (@emph{encoding,video}) |
| 553 | Set sub pel me compare function. |
| 554 | |
| 555 | Possible values: |
| 556 | @table @samp |
| 557 | @item sad |
| 558 | sum of absolute differences, fast (default) |
| 559 | @item sse |
| 560 | sum of squared errors |
| 561 | @item satd |
| 562 | sum of absolute Hadamard transformed differences |
| 563 | @item dct |
| 564 | sum of absolute DCT transformed differences |
| 565 | @item psnr |
| 566 | sum of squared quantization errors (avoid, low quality) |
| 567 | @item bit |
| 568 | number of bits needed for the block |
| 569 | @item rd |
| 570 | rate distortion optimal, slow |
| 571 | @item zero |
| 572 | 0 |
| 573 | @item vsad |
| 574 | sum of absolute vertical differences |
| 575 | @item vsse |
| 576 | sum of squared vertical differences |
| 577 | @item nsse |
| 578 | noise preserving sum of squared differences |
| 579 | @item w53 |
| 580 | 5/3 wavelet, only used in snow |
| 581 | @item w97 |
| 582 | 9/7 wavelet, only used in snow |
| 583 | @item dctmax |
| 584 | |
| 585 | @item chroma |
| 586 | |
| 587 | @end table |
| 588 | |
| 589 | @item mbcmp @var{integer} (@emph{encoding,video}) |
| 590 | Set macroblock compare function. |
| 591 | |
| 592 | Possible values: |
| 593 | @table @samp |
| 594 | @item sad |
| 595 | sum of absolute differences, fast (default) |
| 596 | @item sse |
| 597 | sum of squared errors |
| 598 | @item satd |
| 599 | sum of absolute Hadamard transformed differences |
| 600 | @item dct |
| 601 | sum of absolute DCT transformed differences |
| 602 | @item psnr |
| 603 | sum of squared quantization errors (avoid, low quality) |
| 604 | @item bit |
| 605 | number of bits needed for the block |
| 606 | @item rd |
| 607 | rate distortion optimal, slow |
| 608 | @item zero |
| 609 | 0 |
| 610 | @item vsad |
| 611 | sum of absolute vertical differences |
| 612 | @item vsse |
| 613 | sum of squared vertical differences |
| 614 | @item nsse |
| 615 | noise preserving sum of squared differences |
| 616 | @item w53 |
| 617 | 5/3 wavelet, only used in snow |
| 618 | @item w97 |
| 619 | 9/7 wavelet, only used in snow |
| 620 | @item dctmax |
| 621 | |
| 622 | @item chroma |
| 623 | |
| 624 | @end table |
| 625 | |
| 626 | @item ildctcmp @var{integer} (@emph{encoding,video}) |
| 627 | Set interlaced dct compare function. |
| 628 | |
| 629 | Possible values: |
| 630 | @table @samp |
| 631 | @item sad |
| 632 | sum of absolute differences, fast (default) |
| 633 | @item sse |
| 634 | sum of squared errors |
| 635 | @item satd |
| 636 | sum of absolute Hadamard transformed differences |
| 637 | @item dct |
| 638 | sum of absolute DCT transformed differences |
| 639 | @item psnr |
| 640 | sum of squared quantization errors (avoid, low quality) |
| 641 | @item bit |
| 642 | number of bits needed for the block |
| 643 | @item rd |
| 644 | rate distortion optimal, slow |
| 645 | @item zero |
| 646 | 0 |
| 647 | @item vsad |
| 648 | sum of absolute vertical differences |
| 649 | @item vsse |
| 650 | sum of squared vertical differences |
| 651 | @item nsse |
| 652 | noise preserving sum of squared differences |
| 653 | @item w53 |
| 654 | 5/3 wavelet, only used in snow |
| 655 | @item w97 |
| 656 | 9/7 wavelet, only used in snow |
| 657 | @item dctmax |
| 658 | |
| 659 | @item chroma |
| 660 | |
| 661 | @end table |
| 662 | |
| 663 | @item dia_size @var{integer} (@emph{encoding,video}) |
| 664 | Set diamond type & size for motion estimation. |
| 665 | |
| 666 | @item last_pred @var{integer} (@emph{encoding,video}) |
| 667 | Set amount of motion predictors from the previous frame. |
| 668 | |
| 669 | @item preme @var{integer} (@emph{encoding,video}) |
| 670 | Set pre motion estimation. |
| 671 | |
| 672 | @item precmp @var{integer} (@emph{encoding,video}) |
| 673 | Set pre motion estimation compare function. |
| 674 | |
| 675 | Possible values: |
| 676 | @table @samp |
| 677 | @item sad |
| 678 | sum of absolute differences, fast (default) |
| 679 | @item sse |
| 680 | sum of squared errors |
| 681 | @item satd |
| 682 | sum of absolute Hadamard transformed differences |
| 683 | @item dct |
| 684 | sum of absolute DCT transformed differences |
| 685 | @item psnr |
| 686 | sum of squared quantization errors (avoid, low quality) |
| 687 | @item bit |
| 688 | number of bits needed for the block |
| 689 | @item rd |
| 690 | rate distortion optimal, slow |
| 691 | @item zero |
| 692 | 0 |
| 693 | @item vsad |
| 694 | sum of absolute vertical differences |
| 695 | @item vsse |
| 696 | sum of squared vertical differences |
| 697 | @item nsse |
| 698 | noise preserving sum of squared differences |
| 699 | @item w53 |
| 700 | 5/3 wavelet, only used in snow |
| 701 | @item w97 |
| 702 | 9/7 wavelet, only used in snow |
| 703 | @item dctmax |
| 704 | |
| 705 | @item chroma |
| 706 | |
| 707 | @end table |
| 708 | |
| 709 | @item pre_dia_size @var{integer} (@emph{encoding,video}) |
| 710 | Set diamond type & size for motion estimation pre-pass. |
| 711 | |
| 712 | @item subq @var{integer} (@emph{encoding,video}) |
| 713 | Set sub pel motion estimation quality. |
| 714 | |
| 715 | @item dtg_active_format @var{integer} |
| 716 | |
| 717 | @item me_range @var{integer} (@emph{encoding,video}) |
| 718 | Set limit motion vectors range (1023 for DivX player). |
| 719 | |
| 720 | @item ibias @var{integer} (@emph{encoding,video}) |
| 721 | Set intra quant bias. |
| 722 | |
| 723 | @item pbias @var{integer} (@emph{encoding,video}) |
| 724 | Set inter quant bias. |
| 725 | |
| 726 | @item color_table_id @var{integer} |
| 727 | |
| 728 | @item global_quality @var{integer} (@emph{encoding,audio,video}) |
| 729 | |
| 730 | @item coder @var{integer} (@emph{encoding,video}) |
| 731 | |
| 732 | Possible values: |
| 733 | @table @samp |
| 734 | @item vlc |
| 735 | variable length coder / huffman coder |
| 736 | @item ac |
| 737 | arithmetic coder |
| 738 | @item raw |
| 739 | raw (no encoding) |
| 740 | @item rle |
| 741 | run-length coder |
| 742 | @item deflate |
| 743 | deflate-based coder |
| 744 | @end table |
| 745 | |
| 746 | @item context @var{integer} (@emph{encoding,video}) |
| 747 | Set context model. |
| 748 | |
| 749 | @item slice_flags @var{integer} |
| 750 | |
| 751 | @item xvmc_acceleration @var{integer} |
| 752 | |
| 753 | @item mbd @var{integer} (@emph{encoding,video}) |
| 754 | Set macroblock decision algorithm (high quality mode). |
| 755 | |
| 756 | Possible values: |
| 757 | @table @samp |
| 758 | @item simple |
| 759 | use mbcmp (default) |
| 760 | @item bits |
| 761 | use fewest bits |
| 762 | @item rd |
| 763 | use best rate distortion |
| 764 | @end table |
| 765 | |
| 766 | @item stream_codec_tag @var{integer} |
| 767 | |
| 768 | @item sc_threshold @var{integer} (@emph{encoding,video}) |
| 769 | Set scene change threshold. |
| 770 | |
| 771 | @item lmin @var{integer} (@emph{encoding,video}) |
| 772 | Set min lagrange factor (VBR). |
| 773 | |
| 774 | @item lmax @var{integer} (@emph{encoding,video}) |
| 775 | Set max lagrange factor (VBR). |
| 776 | |
| 777 | @item nr @var{integer} (@emph{encoding,video}) |
| 778 | Set noise reduction. |
| 779 | |
| 780 | @item rc_init_occupancy @var{integer} (@emph{encoding,video}) |
| 781 | Set number of bits which should be loaded into the rc buffer before |
| 782 | decoding starts. |
| 783 | |
| 784 | @item flags2 @var{flags} (@emph{decoding/encoding,audio,video}) |
| 785 | |
| 786 | Possible values: |
| 787 | @table @samp |
| 788 | @item fast |
| 789 | Allow non spec compliant speedup tricks. |
| 790 | @item sgop |
| 791 | Deprecated, use mpegvideo private options instead. |
| 792 | @item noout |
| 793 | Skip bitstream encoding. |
| 794 | @item ignorecrop |
| 795 | Ignore cropping information from sps. |
| 796 | @item local_header |
| 797 | Place global headers at every keyframe instead of in extradata. |
| 798 | @item chunks |
| 799 | Frame data might be split into multiple chunks. |
| 800 | @item showall |
| 801 | Show all frames before the first keyframe. |
| 802 | @item skiprd |
| 803 | Deprecated, use mpegvideo private options instead. |
| 804 | @item export_mvs |
| 805 | Export motion vectors into frame side-data (see @code{AV_FRAME_DATA_MOTION_VECTORS}) |
| 806 | for codecs that support it. See also @file{doc/examples/export_mvs.c}. |
| 807 | @end table |
| 808 | |
| 809 | @item error @var{integer} (@emph{encoding,video}) |
| 810 | |
| 811 | @item qns @var{integer} (@emph{encoding,video}) |
| 812 | Deprecated, use mpegvideo private options instead. |
| 813 | |
| 814 | @item threads @var{integer} (@emph{decoding/encoding,video}) |
| 815 | |
| 816 | Possible values: |
| 817 | @table @samp |
| 818 | @item auto |
| 819 | detect a good number of threads |
| 820 | @end table |
| 821 | |
| 822 | @item me_threshold @var{integer} (@emph{encoding,video}) |
| 823 | Set motion estimation threshold. |
| 824 | |
| 825 | @item mb_threshold @var{integer} (@emph{encoding,video}) |
| 826 | Set macroblock threshold. |
| 827 | |
| 828 | @item dc @var{integer} (@emph{encoding,video}) |
| 829 | Set intra_dc_precision. |
| 830 | |
| 831 | @item nssew @var{integer} (@emph{encoding,video}) |
| 832 | Set nsse weight. |
| 833 | |
| 834 | @item skip_top @var{integer} (@emph{decoding,video}) |
| 835 | Set number of macroblock rows at the top which are skipped. |
| 836 | |
| 837 | @item skip_bottom @var{integer} (@emph{decoding,video}) |
| 838 | Set number of macroblock rows at the bottom which are skipped. |
| 839 | |
| 840 | @item profile @var{integer} (@emph{encoding,audio,video}) |
| 841 | |
| 842 | Possible values: |
| 843 | @table @samp |
| 844 | @item unknown |
| 845 | |
| 846 | @item aac_main |
| 847 | |
| 848 | @item aac_low |
| 849 | |
| 850 | @item aac_ssr |
| 851 | |
| 852 | @item aac_ltp |
| 853 | |
| 854 | @item aac_he |
| 855 | |
| 856 | @item aac_he_v2 |
| 857 | |
| 858 | @item aac_ld |
| 859 | |
| 860 | @item aac_eld |
| 861 | |
| 862 | @item mpeg2_aac_low |
| 863 | |
| 864 | @item mpeg2_aac_he |
| 865 | |
| 866 | @item dts |
| 867 | |
| 868 | @item dts_es |
| 869 | |
| 870 | @item dts_96_24 |
| 871 | |
| 872 | @item dts_hd_hra |
| 873 | |
| 874 | @item dts_hd_ma |
| 875 | |
| 876 | @end table |
| 877 | |
| 878 | @item level @var{integer} (@emph{encoding,audio,video}) |
| 879 | |
| 880 | Possible values: |
| 881 | @table @samp |
| 882 | @item unknown |
| 883 | |
| 884 | @end table |
| 885 | |
| 886 | @item lowres @var{integer} (@emph{decoding,audio,video}) |
| 887 | Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions. |
| 888 | |
| 889 | @item skip_threshold @var{integer} (@emph{encoding,video}) |
| 890 | Set frame skip threshold. |
| 891 | |
| 892 | @item skip_factor @var{integer} (@emph{encoding,video}) |
| 893 | Set frame skip factor. |
| 894 | |
| 895 | @item skip_exp @var{integer} (@emph{encoding,video}) |
| 896 | Set frame skip exponent. |
| 897 | Negative values behave identical to the corresponding positive ones, except |
| 898 | that the score is normalized. |
| 899 | Positive values exist primarily for compatibility reasons and are not so useful. |
| 900 | |
| 901 | @item skipcmp @var{integer} (@emph{encoding,video}) |
| 902 | Set frame skip compare function. |
| 903 | |
| 904 | Possible values: |
| 905 | @table @samp |
| 906 | @item sad |
| 907 | sum of absolute differences, fast (default) |
| 908 | @item sse |
| 909 | sum of squared errors |
| 910 | @item satd |
| 911 | sum of absolute Hadamard transformed differences |
| 912 | @item dct |
| 913 | sum of absolute DCT transformed differences |
| 914 | @item psnr |
| 915 | sum of squared quantization errors (avoid, low quality) |
| 916 | @item bit |
| 917 | number of bits needed for the block |
| 918 | @item rd |
| 919 | rate distortion optimal, slow |
| 920 | @item zero |
| 921 | 0 |
| 922 | @item vsad |
| 923 | sum of absolute vertical differences |
| 924 | @item vsse |
| 925 | sum of squared vertical differences |
| 926 | @item nsse |
| 927 | noise preserving sum of squared differences |
| 928 | @item w53 |
| 929 | 5/3 wavelet, only used in snow |
| 930 | @item w97 |
| 931 | 9/7 wavelet, only used in snow |
| 932 | @item dctmax |
| 933 | |
| 934 | @item chroma |
| 935 | |
| 936 | @end table |
| 937 | |
| 938 | @item border_mask @var{float} (@emph{encoding,video}) |
| 939 | Increase the quantizer for macroblocks close to borders. |
| 940 | |
| 941 | @item mblmin @var{integer} (@emph{encoding,video}) |
| 942 | Set min macroblock lagrange factor (VBR). |
| 943 | |
| 944 | @item mblmax @var{integer} (@emph{encoding,video}) |
| 945 | Set max macroblock lagrange factor (VBR). |
| 946 | |
| 947 | @item mepc @var{integer} (@emph{encoding,video}) |
| 948 | Set motion estimation bitrate penalty compensation (1.0 = 256). |
| 949 | |
| 950 | @item skip_loop_filter @var{integer} (@emph{decoding,video}) |
| 951 | @item skip_idct @var{integer} (@emph{decoding,video}) |
| 952 | @item skip_frame @var{integer} (@emph{decoding,video}) |
| 953 | |
| 954 | Make decoder discard processing depending on the frame type selected |
| 955 | by the option value. |
| 956 | |
| 957 | @option{skip_loop_filter} skips frame loop filtering, @option{skip_idct} |
| 958 | skips frame IDCT/dequantization, @option{skip_frame} skips decoding. |
| 959 | |
| 960 | Possible values: |
| 961 | @table @samp |
| 962 | @item none |
| 963 | Discard no frame. |
| 964 | |
| 965 | @item default |
| 966 | Discard useless frames like 0-sized frames. |
| 967 | |
| 968 | @item noref |
| 969 | Discard all non-reference frames. |
| 970 | |
| 971 | @item bidir |
| 972 | Discard all bidirectional frames. |
| 973 | |
| 974 | @item nokey |
| 975 | Discard all frames excepts keyframes. |
| 976 | |
| 977 | @item all |
| 978 | Discard all frames. |
| 979 | @end table |
| 980 | |
| 981 | Default value is @samp{default}. |
| 982 | |
| 983 | @item bidir_refine @var{integer} (@emph{encoding,video}) |
| 984 | Refine the two motion vectors used in bidirectional macroblocks. |
| 985 | |
| 986 | @item brd_scale @var{integer} (@emph{encoding,video}) |
| 987 | Downscale frames for dynamic B-frame decision. |
| 988 | |
| 989 | @item keyint_min @var{integer} (@emph{encoding,video}) |
| 990 | Set minimum interval between IDR-frames. |
| 991 | |
| 992 | @item refs @var{integer} (@emph{encoding,video}) |
| 993 | Set reference frames to consider for motion compensation. |
| 994 | |
| 995 | @item chromaoffset @var{integer} (@emph{encoding,video}) |
| 996 | Set chroma qp offset from luma. |
| 997 | |
| 998 | @item trellis @var{integer} (@emph{encoding,audio,video}) |
| 999 | Set rate-distortion optimal quantization. |
| 1000 | |
| 1001 | @item sc_factor @var{integer} (@emph{encoding,video}) |
| 1002 | Set value multiplied by qscale for each frame and added to |
| 1003 | scene_change_score. |
| 1004 | |
| 1005 | @item mv0_threshold @var{integer} (@emph{encoding,video}) |
| 1006 | @item b_sensitivity @var{integer} (@emph{encoding,video}) |
| 1007 | Adjust sensitivity of b_frame_strategy 1. |
| 1008 | |
| 1009 | @item compression_level @var{integer} (@emph{encoding,audio,video}) |
| 1010 | @item min_prediction_order @var{integer} (@emph{encoding,audio}) |
| 1011 | @item max_prediction_order @var{integer} (@emph{encoding,audio}) |
| 1012 | @item timecode_frame_start @var{integer} (@emph{encoding,video}) |
| 1013 | Set GOP timecode frame start number, in non drop frame format. |
| 1014 | |
| 1015 | @item request_channels @var{integer} (@emph{decoding,audio}) |
| 1016 | Set desired number of audio channels. |
| 1017 | |
| 1018 | @item bits_per_raw_sample @var{integer} |
| 1019 | @item channel_layout @var{integer} (@emph{decoding/encoding,audio}) |
| 1020 | |
| 1021 | Possible values: |
| 1022 | @table @samp |
| 1023 | @end table |
| 1024 | @item request_channel_layout @var{integer} (@emph{decoding,audio}) |
| 1025 | |
| 1026 | Possible values: |
| 1027 | @table @samp |
| 1028 | @end table |
| 1029 | @item rc_max_vbv_use @var{float} (@emph{encoding,video}) |
| 1030 | @item rc_min_vbv_use @var{float} (@emph{encoding,video}) |
| 1031 | @item ticks_per_frame @var{integer} (@emph{decoding/encoding,audio,video}) |
| 1032 | @item color_primaries @var{integer} (@emph{decoding/encoding,video}) |
| 1033 | @item color_trc @var{integer} (@emph{decoding/encoding,video}) |
| 1034 | @item colorspace @var{integer} (@emph{decoding/encoding,video}) |
| 1035 | @item color_range @var{integer} (@emph{decoding/encoding,video}) |
| 1036 | @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video}) |
| 1037 | |
| 1038 | @item log_level_offset @var{integer} |
| 1039 | Set the log level offset. |
| 1040 | |
| 1041 | @item slices @var{integer} (@emph{encoding,video}) |
| 1042 | Number of slices, used in parallelized encoding. |
| 1043 | |
| 1044 | @item thread_type @var{flags} (@emph{decoding/encoding,video}) |
| 1045 | Select which multithreading methods to use. |
| 1046 | |
| 1047 | Use of @samp{frame} will increase decoding delay by one frame per |
| 1048 | thread, so clients which cannot provide future frames should not use |
| 1049 | it. |
| 1050 | |
| 1051 | Possible values: |
| 1052 | @table @samp |
| 1053 | @item slice |
| 1054 | Decode more than one part of a single frame at once. |
| 1055 | |
| 1056 | Multithreading using slices works only when the video was encoded with |
| 1057 | slices. |
| 1058 | |
| 1059 | @item frame |
| 1060 | Decode more than one frame at once. |
| 1061 | @end table |
| 1062 | |
| 1063 | Default value is @samp{slice+frame}. |
| 1064 | |
| 1065 | @item audio_service_type @var{integer} (@emph{encoding,audio}) |
| 1066 | Set audio service type. |
| 1067 | |
| 1068 | Possible values: |
| 1069 | @table @samp |
| 1070 | @item ma |
| 1071 | Main Audio Service |
| 1072 | @item ef |
| 1073 | Effects |
| 1074 | @item vi |
| 1075 | Visually Impaired |
| 1076 | @item hi |
| 1077 | Hearing Impaired |
| 1078 | @item di |
| 1079 | Dialogue |
| 1080 | @item co |
| 1081 | Commentary |
| 1082 | @item em |
| 1083 | Emergency |
| 1084 | @item vo |
| 1085 | Voice Over |
| 1086 | @item ka |
| 1087 | Karaoke |
| 1088 | @end table |
| 1089 | |
| 1090 | @item request_sample_fmt @var{sample_fmt} (@emph{decoding,audio}) |
| 1091 | Set sample format audio decoders should prefer. Default value is |
| 1092 | @code{none}. |
| 1093 | |
| 1094 | @item pkt_timebase @var{rational number} |
| 1095 | |
| 1096 | @item sub_charenc @var{encoding} (@emph{decoding,subtitles}) |
| 1097 | Set the input subtitles character encoding. |
| 1098 | |
| 1099 | @item field_order @var{field_order} (@emph{video}) |
| 1100 | Set/override the field order of the video. |
| 1101 | Possible values: |
| 1102 | @table @samp |
| 1103 | @item progressive |
| 1104 | Progressive video |
| 1105 | @item tt |
| 1106 | Interlaced video, top field coded and displayed first |
| 1107 | @item bb |
| 1108 | Interlaced video, bottom field coded and displayed first |
| 1109 | @item tb |
| 1110 | Interlaced video, top coded first, bottom displayed first |
| 1111 | @item bt |
| 1112 | Interlaced video, bottom coded first, top displayed first |
| 1113 | @end table |
| 1114 | |
| 1115 | @item skip_alpha @var{integer} (@emph{decoding,video}) |
| 1116 | Set to 1 to disable processing alpha (transparency). This works like the |
| 1117 | @samp{gray} flag in the @option{flags} option which skips chroma information |
| 1118 | instead of alpha. Default is 0. |
| 1119 | |
| 1120 | @item codec_whitelist @var{list} (@emph{input}) |
| 1121 | "," separated List of allowed decoders. By default all are allowed. |
| 1122 | |
| 1123 | @item dump_separator @var{string} (@emph{input}) |
| 1124 | Separator used to separate the fields printed on the command line about the |
| 1125 | Stream parameters. |
| 1126 | For example to separate the fields with newlines and indention: |
| 1127 | @example |
| 1128 | ffprobe -dump_separator " |
| 1129 | " -i ~/videos/matrixbench_mpeg2.mpg |
| 1130 | @end example |
| 1131 | |
| 1132 | @end table |
| 1133 | |
| 1134 | @c man end CODEC OPTIONS |
| 1135 | |
| 1136 | @ifclear config-writeonly |
| 1137 | @include decoders.texi |
| 1138 | @end ifclear |
| 1139 | @ifclear config-readonly |
| 1140 | @include encoders.texi |
| 1141 | @end ifclear |