| @anchor{codec-options} |
| @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, |
| and may be nonsensical or ignored by another, so you need to be aware |
| 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 |
| Input bitstream might be randomly truncated. |
| @item drop_changed |
| Don't output frames whose parameters differ from first decoded frame in stream. |
| Error AVERROR_INPUT_CHANGED is returned when a frame is dropped. |
| |
| @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 |
| Only write platform-, build- and time-independent data. (except (I)DCT). |
| This ensures that file and data checksums are reproducible and match between |
| platforms. Its primary use is for regression testing. |
| @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. |
| @item output_corrupt |
| Output even potentially corrupted frames. |
| @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}) |
| Set the group of picture (GOP) size. Default value is 12. |
| |
| @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}) |
| Set cutoff bandwidth. (Supported only by selected encoders, see |
| their respective documentation sections.) |
| |
| @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}) |
| 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. |
| |
| @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 |
| strictly conform to an older more strict version of the spec or reference software |
| @item strict |
| strictly conform to all the things in the spec no matter what consequences |
| @item normal |
| |
| @item unofficial |
| allow unofficial extensions |
| @item experimental |
| 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. |
| @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 |
| @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. |
| @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 |
| |
| @item simpleauto |
| Automatically pick a IDCT compatible with the simple one |
| |
| @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 |
| @item favor_inter |
| favor predicting from the previous frame instead of the current |
| @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. |
| |
| @item sar @var{rational number} (@emph{encoding,video}) |
| Set sample aspect ratio. Alias to @var{aspect}. |
| |
| @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 |
| |
| @item green_metadata |
| display complexity metadata for the upcoming frame, GoP or for a given duration. |
| |
| @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 |
| @item nomc |
| skip motion compensation |
| @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. |
| @table @samp |
| @item (1024, INT_MAX) |
| full motion estimation(slowest) |
| @item (768, 1024] |
| umh motion estimation |
| @item (512, 768] |
| hex motion estimation |
| @item (256, 512] |
| l2s diamond motion estimation |
| @item [2,256] |
| var diamond motion estimation |
| @item (-1, 2) |
| small diamond motion estimation |
| @item -1 |
| funny diamond motion estimation |
| @item (INT_MIN, -1) |
| sab diamond motion estimation |
| @end table |
| |
| @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,subtitles}) |
| |
| Possible values: |
| @table @samp |
| @item fast |
| Allow non spec compliant speedup tricks. |
| @item noout |
| Skip bitstream encoding. |
| @item ignorecrop |
| Ignore cropping information from sps. |
| @item local_header |
| Place global headers at every keyframe instead of in extradata. |
| @item chunks |
| Frame data might be split into multiple chunks. |
| @item showall |
| Show all frames before the first keyframe. |
| @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}. |
| @item skip_manual |
| Do not skip samples and export skip information as frame side data. |
| @item ass_ro_flush_noop |
| Do not reset ASS ReadOrder field on flush. |
| @end table |
| |
| @item export_side_data @var{flags} (@emph{decoding/encoding,audio,video,subtitles}) |
| |
| Possible values: |
| @table @samp |
| @item 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}. |
| @item prft |
| Export encoder Producer Reference Time into packet side-data (see @code{AV_PKT_DATA_PRFT}) |
| for codecs that support it. |
| @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}) |
| Set the number of threads to be used, in case the selected codec |
| implementation supports multi-threading. |
| |
| Possible values: |
| @table @samp |
| @item auto, 0 |
| automatically select the number of threads to set |
| @end table |
| |
| Default value is @samp{auto}. |
| |
| @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}) |
| |
| Set encoder codec profile. Default value is @samp{unknown}. Encoder specific |
| profiles are documented in the relevant encoder documentation. |
| |
| @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. |
| Negative values behave identical to the corresponding positive ones, except |
| that the score is normalized. |
| Positive values exist primarily for compatibility reasons and are not so useful. |
| |
| @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. |
| |
| @item nointra |
| Discard all frames except I frames. |
| |
| @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}) |
| |
| @item color_primaries @var{integer} (@emph{decoding/encoding,video}) |
| 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 |
| @item smpte428 |
| @item smpte428_1 |
| SMPTE ST 428-1 |
| @item smpte431 |
| SMPTE 431-2 |
| @item smpte432 |
| SMPTE 432-1 |
| @item jedec-p22 |
| JEDEC P22 |
| @end table |
| |
| @item color_trc @var{integer} (@emph{decoding/encoding,video}) |
| Possible values: |
| @table @samp |
| @item bt709 |
| BT.709 |
| @item gamma22 |
| BT.470 M |
| @item gamma28 |
| BT.470 BG |
| @item smpte170m |
| SMPTE 170 M |
| @item smpte240m |
| SMPTE 240 M |
| @item linear |
| Linear |
| @item log |
| @item log100 |
| Log |
| @item log_sqrt |
| @item log316 |
| Log square root |
| @item iec61966_2_4 |
| @item iec61966-2-4 |
| IEC 61966-2-4 |
| @item bt1361 |
| @item bt1361e |
| BT.1361 |
| @item iec61966_2_1 |
| @item iec61966-2-1 |
| IEC 61966-2-1 |
| @item bt2020_10 |
| @item bt2020_10bit |
| BT.2020 - 10 bit |
| @item bt2020_12 |
| @item bt2020_12bit |
| BT.2020 - 12 bit |
| @item smpte2084 |
| SMPTE ST 2084 |
| @item smpte428 |
| @item smpte428_1 |
| SMPTE ST 428-1 |
| @item arib-std-b67 |
| ARIB STD-B67 |
| @end table |
| |
| @item colorspace @var{integer} (@emph{decoding/encoding,video}) |
| 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 |
| @item bt2020nc |
| @item bt2020_ncl |
| BT.2020 NCL |
| @item bt2020c |
| @item bt2020_cl |
| BT.2020 CL |
| @item smpte2085 |
| SMPTE 2085 |
| @item chroma-derived-nc |
| Chroma-derived NCL |
| @item chroma-derived-c |
| Chroma-derived CL |
| @item ictcp |
| ICtCp |
| @end table |
| |
| @item color_range @var{integer} (@emph{decoding/encoding,video}) |
| If used as input parameter, it serves as a hint to the decoder, which |
| color_range the input has. |
| Possible values: |
| @table @samp |
| @item tv |
| @item mpeg |
| MPEG (219*2^(n-8)) |
| @item pc |
| @item jpeg |
| JPEG (2^n-1) |
| @end table |
| |
| @item chroma_sample_location @var{integer} (@emph{decoding/encoding,video}) |
| Possible values: |
| @table @samp |
| @item left |
| |
| @item center |
| |
| @item topleft |
| |
| @item top |
| |
| @item bottomleft |
| |
| @item bottom |
| |
| @end table |
| |
| @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}) |
| 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. |
| |
| Possible values: |
| @table @samp |
| @item slice |
| Decode more than one part of a single frame at once. |
| |
| Multithreading using slices works only when the video was encoded with |
| slices. |
| |
| @item frame |
| Decode more than one frame at once. |
| @end table |
| |
| Default value is @samp{slice+frame}. |
| |
| @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. |
| |
| @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 |
| |
| @item skip_alpha @var{bool} (@emph{decoding,video}) |
| 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. |
| |
| @item codec_whitelist @var{list} (@emph{input}) |
| "," separated list of allowed decoders. By default all are allowed. |
| |
| @item dump_separator @var{string} (@emph{input}) |
| Separator used to separate the fields printed on the command line about the |
| Stream parameters. |
| For example, to separate the fields with newlines and indentation: |
| @example |
| ffprobe -dump_separator " |
| " -i ~/videos/matrixbench_mpeg2.mpg |
| @end example |
| |
| @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. |
| |
| @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. |
| |
| |
| @end table |
| |
| @c man end CODEC OPTIONS |
| |
| @ifclear config-writeonly |
| @include decoders.texi |
| @end ifclear |
| @ifclear config-readonly |
| @include encoders.texi |
| @end ifclear |