@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 unsensical 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 gmc
Use gmc.
@item mv0
Always try a mb with mv=<0,0>.
@item input_preserved

@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

@item naq
Normalize adaptive quantization.
@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
Use only bitexact stuff (except (I)DCT).
@item aic
Apply H263 advanced intra coding / mpeg4 ac prediction.
@item cbp
Deprecated, use mpegvideo private options instead.
@item qprd
Deprecated, use mpegvideo private options instead.
@item ilme
Apply interlaced motion estimation.
@item cgop
Use closed gop.
@end table

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

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

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

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

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

@item g @var{integer} (@emph{encoding,video})
Set the group of picture 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.

@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 a 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 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 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
@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 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 mv
motion vector
@item dct_coeff

@item skip

@item startcode

@item pts

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

@item vis_qp
visualize quantization parameter (QP), lower QP are tinted greener
@item vis_mb_type
visualize block types
@item buffers
picture buffer allocations
@item thread_ops
threading operations
@end table

@item vismv @var{integer} (@emph{decoding,video})
Visualize motion vectors (MVs).

Possible values:
@table @samp
@item pf
forward predicted MVs of P-frames
@item bf
forward predicted MVs of B-frames
@item bb
backward predicted MVs of B-frames
@end table

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

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

@item chroma

@end table

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

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

@item chroma

@end table

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

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

@item chroma

@end table

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

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

@item chroma

@end table

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

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

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

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

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

@item chroma

@end table

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

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

@item dtg_active_format @var{integer}

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

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

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

@item color_table_id @var{integer}

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

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

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

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

@item slice_flags @var{integer}

@item xvmc_acceleration @var{integer}

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

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

@item stream_codec_tag @var{integer}

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

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

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

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

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

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

Possible values:
@table @samp
@item fast
Allow non spec compliant speedup tricks.
@item sgop
Deprecated, use mpegvideo private options instead.
@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 skiprd
Deprecated, use mpegvideo private options instead.
@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})

Possible values:
@table @samp
@item auto
detect a good number of threads
@end table

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

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

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

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

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

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

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

Possible values:
@table @samp
@item unknown

@item aac_main

@item aac_low

@item aac_ssr

@item aac_ltp

@item aac_he

@item aac_he_v2

@item aac_ld

@item aac_eld

@item mpeg2_aac_low

@item mpeg2_aac_he

@item dts

@item dts_es

@item dts_96_24

@item dts_hd_hra

@item dts_hd_ma

@end table

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

Possible values:
@table @samp
@item unknown

@end table

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

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

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

@item skip_exp @var{integer} (@emph{encoding,video})
Set frame skip exponent.
Negative values behave identical to the corresponding positive ones, except
that the score is normalized.
Positive values exist primarly 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 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 sc_factor @var{integer} (@emph{encoding,video})
Set value multiplied by qscale for each frame and added to
scene_change_score.

@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})
@item color_trc @var{integer} (@emph{decoding/encoding,video})
@item colorspace @var{integer} (@emph{decoding/encoding,video})
@item color_range @var{integer} (@emph{decoding/encoding,video})
@item chroma_sample_location @var{integer} (@emph{decoding/encoding,video})

@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 multithreading type.

Possible values:
@table @samp
@item slice

@item frame

@end table
@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{integer} (@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.
@end table

@c man end CODEC OPTIONS

@ifclear config-writeonly
@include decoders.texi
@end ifclear
@ifclear config-readonly
@include encoders.texi
@end ifclear
