mirror of
				https://github.com/nyanmisaka/ffmpeg-rockchip.git
				synced 2025-10-31 12:36:41 +08:00 
			
		
		
		
	 3c346298f9
			
		
	
	3c346298f9
	
	
	
		
			
			Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
		
			
				
	
	
		
			1263 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			1263 lines
		
	
	
		
			30 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| @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
 | |
| @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
 |