Merge remote-tracking branch 'qatar/master'
authorMichael Niedermayer <michaelni@gmx.at>
Wed, 9 Apr 2014 02:54:26 +0000 (04:54 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Wed, 9 Apr 2014 02:54:26 +0000 (04:54 +0200)
* qatar/master:
  doc: Completely document the x264 options

Conflicts:
doc/encoders.texi

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
doc/encoders.texi

@@@ -631,1425 -465,297 +631,1438 @@@ For more information see the fdk-aac pr
  
  @subsection Options
  
 +The following options are mapped on the shared FFmpeg codec options.
 +
  @table @option
 +@item b
 +Set bit rate in bits/s. If the bitrate is not explicitly specified, it
 +is automatically set to a suitable value depending on the selected
 +profile.
  
 -@item -lossless @var{boolean}
 -Enables/Disables use of lossless mode. Default is 0.
 +In case VBR mode is enabled the option is ignored.
  
 -@item -compression_level @var{integer}
 -For lossy, this is a quality/speed tradeoff. Higher values give better quality
 -for a given size at the cost of increased encoding time. For lossless, this is
 -a size/speed tradeoff. Higher values give smaller size at the cost of increased
 -encoding time. More specifically, it controls the number of extra algorithms
 -and compression tools used, and varies the combination of these tools. This
 -maps to the @var{method} option in libwebp. The valid range is 0 to 6.
 -Default is 4.
 +@item ar
 +Set audio sampling rate (in Hz).
  
 -@item -qscale @var{float}
 -For lossy encoding, this controls image quality, 0 to 100. For lossless
 -encoding, this controls the effort and time spent at compressing more. The
 -default value is 75. Note that for usage via libavcodec, this option is called
 -@var{global_quality} and must be multiplied by @var{FF_QP2LAMBDA}.
 +@item channels
 +Set the number of audio channels.
 +
 +@item flags +qscale
 +Enable fixed quality, VBR (Variable Bit Rate) mode.
 +Note that VBR is implicitly enabled when the @option{vbr} value is
 +positive.
 +
 +@item cutoff
 +Set cutoff frequency. If not specified (or explicitly set to 0) it
 +will use a value automatically computed by the library. Default value
 +is 0.
 +
 +@item profile
 +Set audio profile.
 +
 +The following profiles are recognized:
 +@table @samp
 +@item aac_low
 +Low Complexity AAC (LC)
 +
 +@item aac_he
 +High Efficiency AAC (HE-AAC)
 +
 +@item aac_he_v2
 +High Efficiency AAC version 2 (HE-AACv2)
 +
 +@item aac_ld
 +Low Delay AAC (LD)
 +
 +@item aac_eld
 +Enhanced Low Delay AAC (ELD)
 +@end table
 +
 +If not specified it is set to @samp{aac_low}.
 +@end table
 +
 +The following are private options of the libfdk_aac encoder.
  
 -@item -preset @var{type}
 -Configuration preset. This does some automatic settings based on the general
 -type of the image.
  @table @option
 -@item none
 -Do not use a preset.
 +@item afterburner
 +Enable afterburner feature if set to 1, disabled if set to 0. This
 +improves the quality but also the required processing power.
 +
 +Default value is 1.
 +
 +@item eld_sbr
 +Enable SBR (Spectral Band Replication) for ELD if set to 1, disabled
 +if set to 0.
 +
 +Default value is 0.
 +
 +@item signaling
 +Set SBR/PS signaling style.
 +
 +It can assume one of the following values:
 +@table @samp
  @item default
 -Use the encoder default.
 -@item picture
 -Digital picture, like portrait, inner shot
 -@item photo
 -Outdoor photograph, with natural lighting
 -@item drawing
 -Hand or line drawing, with high-contrast details
 -@item icon
 -Small-sized colorful images
 -@item text
 -Text-like
 +choose signaling implicitly (explicit hierarchical by default,
 +implicit if global header is disabled)
 +
 +@item implicit
 +implicit backwards compatible signaling
 +
 +@item explicit_sbr
 +explicit SBR, implicit PS signaling
 +
 +@item explicit_hierarchical
 +explicit hierarchical signaling
  @end table
  
 -@item lumi_aq
 -Enable lumi masking adaptive quantization when set to 1. Default is 0
 -(disabled).
 +Default value is @samp{default}.
  
 -@item variance_aq
 -Enable variance adaptive quantization when set to 1. Default is 0
 -(disabled).
 +@item latm
 +Output LATM/LOAS encapsulated data if set to 1, disabled if set to 0.
  
 -When combined with @option{lumi_aq}, the resulting quality will not
 -be better than any of the two specified individually. In other
 -words, the resulting quality will be the worse one of the two
 -effects.
 +Default value is 0.
  
 -@item ssim
 -Set structural similarity (SSIM) displaying method. Possible values:
 +@item header_period
 +Set StreamMuxConfig and PCE repetition period (in frames) for sending
 +in-band configuration buffers within LATM/LOAS transport layer.
 +
 +Must be a 16-bits non-negative integer.
 +
 +Default value is 0.
 +
 +@item vbr
 +Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty
 +good) and 5 is highest quality. A value of 0 will disable VBR, and CBR
 +(Constant Bit Rate) is enabled.
 +
 +Currently only the @samp{aac_low} profile supports VBR encoding.
 +
 +VBR modes 1-5 correspond to roughly the following average bit rates:
  
  @table @samp
 -@item off
 -Disable displaying of SSIM information.
 +@item 1
 +32 kbps/channel
 +@item 2
 +40 kbps/channel
 +@item 3
 +48-56 kbps/channel
 +@item 4
 +64 kbps/channel
 +@item 5
 +about 80-96 kbps/channel
 +@end table
  
 -@item avg
 -Output average SSIM at the end of encoding to stdout. The format of
 -showing the average SSIM is:
 +Default value is 0.
 +@end table
 +
 +@subsection Examples
  
 +@itemize
 +@item
 +Use @command{ffmpeg} to convert an audio file to VBR AAC in an M4A (MP4)
 +container:
  @example
 -Average SSIM: %f
 +ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
  @end example
  
 -For users who are not familiar with C, %f means a float number, or
 -a decimal (e.g. 0.939232).
 -
 -@item frame
 -Output both per-frame SSIM data during encoding and average SSIM at
 -the end of encoding to stdout. The format of per-frame information
 -is:
 -
 +@item
 +Use @command{ffmpeg} to convert an audio file to CBR 64k kbps AAC, using the
 +High-Efficiency AAC profile:
  @example
 -       SSIM: avg: %1.3f min: %1.3f max: %1.3f
 +ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
  @end example
 +@end itemize
  
 -For users who are not familiar with C, %1.3f means a float number
 -rounded to 3 digits after the dot (e.g. 0.932).
 +@anchor{libmp3lame}
 +@section libmp3lame
  
 -@end table
 +LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper.
  
 -@item ssim_acc
 -Set SSIM accuracy. Valid options are integers within the range of
 -0-4, while 0 gives the most accurate result and 4 computes the
 -fastest.
 +Requires the presence of the libmp3lame headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libmp3lame}.
  
 -@end table
 +See @ref{libshine} for a fixed-point MP3 encoder, although with a
 +lower quality.
  
 -@section libx264
 +@subsection Options
  
 -x264 H.264/MPEG-4 AVC encoder wrapper
 +The following options are supported by the libmp3lame wrapper. The
 +@command{lame}-equivalent of the options are listed in parentheses.
  
 -x264 supports an impressive number of features, including 8x8 and 4x4 adaptive
 -spatial transform, adaptive B-frame placement, CAVLC/CABAC entropy coding,
 -interlacing (MBAFF), lossless mode, psy optimizations for detail retention
 -(adaptive quantization, psy-RD, psy-trellis).
 +@table @option
 +@item b (@emph{-b})
 +Set bitrate expressed in bits/s for CBR or ABR. LAME @code{bitrate} is
 +expressed in kilobits/s.
 +
 +@item q (@emph{-V})
 +Set constant quality setting for VBR. This option is valid only
 +using the @command{ffmpeg} command-line tool. For library interface
 +users, use @option{global_quality}.
 +
 +@item compression_level (@emph{-q})
 +Set algorithm quality. Valid arguments are integers in the 0-9 range,
 +with 0 meaning highest quality but slowest, and 9 meaning fastest
 +while producing the worst quality.
 +
 +@item reservoir
 +Enable use of bit reservoir when set to 1. Default value is 1. LAME
 +has this enabled by default, but can be overridden by use
 +@option{--nores} option.
 +
 +@item joint_stereo (@emph{-m j})
 +Enable the encoder to use (on a frame by frame basis) either L/R
 +stereo or mid/side stereo. Default value is 1.
 +
 +@item abr (@emph{--abr})
 +Enable the encoder to use ABR when set to 1. The @command{lame}
 +@option{--abr} sets the target bitrate, while this options only
 +tells FFmpeg to use ABR still relies on @option{b} to set bitrate.
  
 -The Libav wrapper provides a mapping for most of them using global options
 -that match those of the encoders and provides private options for the unique
 -encoder options. Additionally an expert override is provided to directly pass
 -a list of key=value tuples as accepted by x264_param_parse.
 +@end table
  
 -@subsection Option Mapping
 +@section libopencore-amrnb
  
 -The following options are supported by the x264 wrapper, the x264-equivalent
 -options follow the Libav ones.
 -
 -@multitable {                  } {              } {                           }
 -@item b                 @tab bitrate
 -@tab Libav @code{b} option is expressed in bits/s, x264 @code{bitrate} in kilobits/s.
 -@item bf                @tab bframes
 -@tab Maximum number of B-frames.
 -@item g                 @tab keyint
 -@tab Maximum GOP size.
 -@item qmin              @tab qpmin
 -@tab Minimum quantizer scale.
 -@item qmax              @tab qpmax
 -@tab Maximum quantizer scale.
 -@item qdiff             @tab qpstep
 -@tab Maximum difference between quantizer scales.
 -@item qblur             @tab qblur
 -@tab Quantizer curve blur
 -@item qcomp             @tab qcomp
 -@tab Quantizer curve compression factor
 -@item refs              @tab ref
 -@tab Number of reference frames each P-frame can use. The range is from @var{0-16}.
 -@item sc_threshold      @tab scenecut
 -@tab Sets the threshold for the scene change detection.
 -@item trellis           @tab trellis
 -@tab Performs Trellis quantization to increase efficiency. Enabled by default.
 -@item nr                @tab nr
 -@tab Noise reduction.
 -@item me_range          @tab merange
 -@tab Maximum range of the motion search in pixels.
 -@item me_method         @tab me
 -@tab Full-pixel motion estimation method.
 -@item subq              @tab subme
 -@tab Sub-pixel motion estimation method.
 -@item b_strategy        @tab b-adapt
 -@tab Adaptive B-frame placement decision algorithm. Use only on first-pass.
 -@item keyint_min        @tab min-keyint
 -@tab Minimum GOP size.
 -@item coder             @tab cabac
 -@tab Set coder to @code{ac} to use CABAC.
 -@item cmp               @tab chroma-me
 -@tab Set to @code{chroma} to use chroma motion estimation.
 -@item threads           @tab threads
 -@tab Number of encoding threads.
 -@item thread_type       @tab sliced_threads
 -@tab Set to @code{slice} to use sliced threading instead of frame threading.
 -@item flags -cgop       @tab open-gop
 -@tab Set @code{-cgop} to use recovery points to close GOPs.
 -@item rc_init_occupancy @tab vbv-init
 -@tab Initial buffer occupancy.
 -@end multitable
 -
 -@subsection Private Options
 -@table @option
 -@item -preset @var{string}
 -Set the encoding preset (cf. x264 --fullhelp).
 -@item -tune @var{string}
 -Tune the encoding params (cf. x264 --fullhelp).
 -@item -profile @var{string}
 -Set profile restrictions (cf. x264 --fullhelp).
 -@item -fastfirstpass @var{integer}
 -Use fast settings when encoding first pass.
 -@item -crf @var{float}
 -Select the quality for constant quality mode.
 -@item -crf_max @var{float}
 -In CRF mode, prevents VBV from lowering quality beyond this point.
 -@item -qp @var{integer}
 -Constant quantization parameter rate control method.
 -@item -aq-mode @var{integer}
 -AQ method
 +OpenCORE Adaptive Multi-Rate Narrowband encoder.
  
 -Possible values:
 -@table @samp
 -@item none
 +Requires the presence of the libopencore-amrnb headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libopencore-amrnb --enable-version3}.
  
 -@item variance
 -Variance AQ (complexity mask).
 -@item autovariance
 -Auto-variance AQ (experimental).
 -@end table
 -@item -aq-strength @var{float}
 -AQ strength, reduces blocking and blurring in flat and textured areas.
 -@item -psy @var{integer}
 -Use psychovisual optimizations.
 -@item -psy-rd @var{string}
 -Strength of psychovisual optimization, in <psy-rd>:<psy-trellis> format.
 -@item -rc-lookahead @var{integer}
 -Number of frames to look ahead for frametype and ratecontrol.
 -@item -weightb @var{integer}
 -Weighted prediction for B-frames.
 -@item -weightp @var{integer}
 -Weighted prediction analysis method.
 +This is a mono-only encoder. Officially it only supports 8000Hz sample rate,
 +but you can override it by setting @option{strict} to @samp{unofficial} or
 +lower.
  
 -Possible values:
 -@table @samp
 -@item none
 +@subsection Options
  
 -@item simple
 +@table @option
  
 -@item smart
 +@item b
 +Set bitrate in bits per second. Only the following bitrates are supported,
 +otherwise libavcodec will round to the nearest valid bitrate.
  
 +@table @option
 +@item 4750
 +@item 5150
 +@item 5900
 +@item 6700
 +@item 7400
 +@item 7950
 +@item 10200
 +@item 12200
  @end table
 -@item -ssim @var{integer}
 -Calculate and print SSIM stats.
 -@item -intra-refresh @var{integer}
 -Use Periodic Intra Refresh instead of IDR frames.
 -@item -bluray-compat @var{integer}
 -Configure the encoder to be compatible with the bluray standard.
 -It is a shorthand for setting "bluray-compat=1 force-cfr=1".
 -@item -b-bias @var{integer}
 -Influences how often B-frames are used.
 -@item -b-pyramid @var{integer}
 -Keep some B-frames as references.
  
 -Possible values:
 -@table @samp
 -@item none
 +@item dtx
 +Allow discontinuous transmission (generate comfort noise) when set to 1. The
 +default value is 0 (disabled).
  
 -@item strict
 -Strictly hierarchical pyramid.
 -@item normal
 -Non-strict (not Blu-ray compatible).
  @end table
 -@item -mixed-refs @var{integer}
 -One reference per partition, as opposed to one reference per macroblock.
 -@item -8x8dct @var{integer}
 -High profile 8x8 transform.
 -@item -fast-pskip @var{integer}
 -@item -aud @var{integer}
 -Use access unit delimiters.
 -@item -mbtree @var{integer}
 -Use macroblock tree ratecontrol.
 -@item -deblock @var{string}
 -Loop filter parameters, in <alpha:beta> form.
 -@item -cplxblur @var{float}
 -Reduce fluctuations in QP (before curve compression).
 -@item -partitions @var{string}
 -A comma-separated list of partitions to consider, possible values: p8x8, p4x4, b8x8, i8x8, i4x4, none, all.
 -@item -direct-pred @var{integer}
 -Direct MV prediction mode
  
 -Possible values:
 -@table @samp
 -@item none
 +@anchor{libshine}
 +@section libshine
  
 -@item spatial
 +Shine Fixed-Point MP3 encoder wrapper.
  
 -@item temporal
 +Shine is a fixed-point MP3 encoder. It has a far better performance on
 +platforms without an FPU, e.g. armel CPUs, and some phones and tablets.
 +However, as it is more targeted on performance than quality, it is not on par
 +with LAME and other production-grade encoders quality-wise. Also, according to
 +the project's homepage, this encoder may not be free of bugs as the code was
 +written a long time ago and the project was dead for at least 5 years.
  
 -@item auto
 +This encoder only supports stereo and mono input. This is also CBR-only.
 +
 +The original project (last updated in early 2007) is at
 +@url{http://sourceforge.net/projects/libshine-fxp/}. We only support the
 +updated fork by the Savonet/Liquidsoap project at @url{https://github.com/savonet/shine}.
 +
 +Requires the presence of the libshine headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libshine}.
 +
 +See also @ref{libmp3lame}.
 +
 +@subsection Options
 +
 +The following options are supported by the libshine wrapper. The
 +@command{shineenc}-equivalent of the options are listed in parentheses.
 +
 +@table @option
 +@item b (@emph{-b})
 +Set bitrate expressed in bits/s for CBR. @command{shineenc} @option{-b} option
 +is expressed in kilobits/s.
  
  @end table
 -@item -slice-max-size @var{integer}
 -Limit the size of each slice in bytes.
 -@item -stats @var{string}
 -Filename for 2 pass stats.
 -@item -nal-hrd @var{integer}
 -Signal HRD information (requires vbv-bufsize; cbr not allowed in .mp4).
  
 -Possible values:
 -@table @samp
 -@item none
 +@section libtwolame
  
 -@item vbr
 +TwoLAME MP2 encoder wrapper.
 +
 +Requires the presence of the libtwolame headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libtwolame}.
 +
 +@subsection Options
  
 -@item cbr
 +The following options are supported by the libtwolame wrapper. The
 +@command{twolame}-equivalent options follow the FFmpeg ones and are in
 +parentheses.
  
 +@table @option
 +@item b (@emph{-b})
 +Set bitrate expressed in bits/s for CBR. @command{twolame} @option{b}
 +option is expressed in kilobits/s. Default value is 128k.
 +
 +@item q (@emph{-V})
 +Set quality for experimental VBR support. Maximum value range is
 +from -50 to 50, useful range is from -10 to 10. The higher the
 +value, the better the quality. This option is valid only using the
 +@command{ffmpeg} command-line tool. For library interface users,
 +use @option{global_quality}.
 +
 +@item mode (@emph{--mode})
 +Set the mode of the resulting audio. Possible values:
 +
 +@table @samp
 +@item auto
 +Choose mode automatically based on the input. This is the default.
 +@item stereo
 +Stereo
 +@item joint_stereo
 +Joint stereo
 +@item dual_channel
 +Dual channel
 +@item mono
 +Mono
  @end table
 -@item -x264-params @var{string}
 -Override the x264 configuration using a :-separated list of key=value parameters.
 -@example
 --x264-params level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:subq=6:8x8dct=0:trellis=0
 -@end example
 +
 +@item psymodel (@emph{--psyc-mode})
 +Set psychoacoustic model to use in encoding. The argument must be
 +an integer between -1 and 4, inclusive. The higher the value, the
 +better the quality. The default value is 3.
 +
 +@item energy_levels (@emph{--energy})
 +Enable energy levels extensions when set to 1. The default value is
 +0 (disabled).
 +
 +@item error_protection (@emph{--protect})
 +Enable CRC error protection when set to 1. The default value is 0
 +(disabled).
 +
 +@item copyright (@emph{--copyright})
 +Set MPEG audio copyright flag when set to 1. The default value is 0
 +(disabled).
 +
 +@item original (@emph{--original})
 +Set MPEG audio original flag when set to 1. The default value is 0
 +(disabled).
 +
  @end table
  
 -Encoding avpresets for common usages are provided so they can be used with the
 -general presets system (e.g. passing the @code{-pre} option).
 +@anchor{libvo-aacenc}
 +@section libvo-aacenc
  
 -@section ProRes
 +VisualOn AAC encoder.
  
 -Apple ProRes encoder.
 +Requires the presence of the libvo-aacenc headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libvo-aacenc --enable-version3}.
 +
 +This encoder is considered to be worse than the
 +@ref{aacenc,,native experimental FFmpeg AAC encoder}, according to
 +multiple sources.
 +
 +@subsection Options
 +
 +The VisualOn AAC encoder only support encoding AAC-LC and up to 2
 +channels. It is also CBR-only.
 +
 +@table @option
 +
 +@item b
 +Set bit rate in bits/s.
 +
 +@end table
 +
 +@section libvo-amrwbenc
 +
 +VisualOn Adaptive Multi-Rate Wideband encoder.
 +
 +Requires the presence of the libvo-amrwbenc headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libvo-amrwbenc --enable-version3}.
 +
 +This is a mono-only encoder. Officially it only supports 16000Hz sample
 +rate, but you can override it by setting @option{strict} to
 +@samp{unofficial} or lower.
 +
 +@subsection Options
 +
 +@table @option
 +
 +@item b
 +Set bitrate in bits/s. Only the following bitrates are supported, otherwise
 +libavcodec will round to the nearest valid bitrate.
 +
 +@table @samp
 +@item 6600
 +@item 8850
 +@item 12650
 +@item 14250
 +@item 15850
 +@item 18250
 +@item 19850
 +@item 23050
 +@item 23850
 +@end table
 +
 +@item dtx
 +Allow discontinuous transmission (generate comfort noise) when set to 1. The
 +default value is 0 (disabled).
 +
 +@end table
 +
 +@section libopus
 +
 +libopus Opus Interactive Audio Codec encoder wrapper.
 +
 +Requires the presence of the libopus headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libopus}.
 +
 +@subsection Option Mapping
 +
 +Most libopus options are modeled after the @command{opusenc} utility from
 +opus-tools. The following is an option mapping chart describing options
 +supported by the libopus wrapper, and their @command{opusenc}-equivalent
 +in parentheses.
 +
 +@table @option
 +
 +@item b (@emph{bitrate})
 +Set the bit rate in bits/s.  FFmpeg's @option{b} option is
 +expressed in bits/s, while @command{opusenc}'s @option{bitrate} in
 +kilobits/s.
 +
 +@item vbr (@emph{vbr}, @emph{hard-cbr}, and @emph{cvbr})
 +Set VBR mode. The FFmpeg @option{vbr} option has the following
 +valid arguments, with the their @command{opusenc} equivalent options
 +in parentheses:
 +
 +@table @samp
 +@item off (@emph{hard-cbr})
 +Use constant bit rate encoding.
 +
 +@item on (@emph{vbr})
 +Use variable bit rate encoding (the default).
 +
 +@item constrained (@emph{cvbr})
 +Use constrained variable bit rate encoding.
 +@end table
 +
 +@item compression_level (@emph{comp})
 +Set encoding algorithm complexity. Valid options are integers in
 +the 0-10 range. 0 gives the fastest encodes but lower quality, while 10
 +gives the highest quality but slowest encoding. The default is 10.
 +
 +@item frame_duration (@emph{framesize})
 +Set maximum frame size, or duration of a frame in milliseconds. The
 +argument must be exactly the following: 2.5, 5, 10, 20, 40, 60. Smaller
 +frame sizes achieve lower latency but less quality at a given bitrate.
 +Sizes greater than 20ms are only interesting at fairly low bitrates.
 +The default is 20ms.
 +
 +@item packet_loss (@emph{expect-loss})
 +Set expected packet loss percentage. The default is 0.
 +
 +@item application (N.A.)
 +Set intended application type. Valid options are listed below:
 +
 +@table @samp
 +@item voip
 +Favor improved speech intelligibility.
 +@item audio
 +Favor faithfulness to the input (the default).
 +@item lowdelay
 +Restrict to only the lowest delay modes.
 +@end table
 +
 +@item cutoff (N.A.)
 +Set cutoff bandwidth in Hz. The argument must be exactly one of the
 +following: 4000, 6000, 8000, 12000, or 20000, corresponding to
 +narrowband, mediumband, wideband, super wideband, and fullband
 +respectively. The default is 0 (cutoff disabled).
 +
 +@end table
 +
 +@section libvorbis
 +
 +libvorbis encoder wrapper.
 +
 +Requires the presence of the libvorbisenc headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libvorbis}.
 +
 +@subsection Options
 +
 +The following options are supported by the libvorbis wrapper. The
 +@command{oggenc}-equivalent of the options are listed in parentheses.
 +
 +To get a more accurate and extensive documentation of the libvorbis
 +options, consult the libvorbisenc's and @command{oggenc}'s documentations.
 +See @url{http://xiph.org/vorbis/},
 +@url{http://wiki.xiph.org/Vorbis-tools}, and oggenc(1).
 +
 +@table @option
 +@item b (@emph{-b})
 +Set bitrate expressed in bits/s for ABR. @command{oggenc} @option{-b} is
 +expressed in kilobits/s.
 +
 +@item q (@emph{-q})
 +Set constant quality setting for VBR. The value should be a float
 +number in the range of -1.0 to 10.0. The higher the value, the better
 +the quality. The default value is @samp{3.0}.
 +
 +This option is valid only using the @command{ffmpeg} command-line tool.
 +For library interface users, use @option{global_quality}.
 +
 +@item cutoff (@emph{--advanced-encode-option lowpass_frequency=N})
 +Set cutoff bandwidth in Hz, a value of 0 disables cutoff. @command{oggenc}'s
 +related option is expressed in kHz. The default value is @samp{0} (cutoff
 +disabled).
 +
 +@item minrate (@emph{-m})
 +Set minimum bitrate expressed in bits/s. @command{oggenc} @option{-m} is
 +expressed in kilobits/s.
 +
 +@item maxrate (@emph{-M})
 +Set maximum bitrate expressed in bits/s. @command{oggenc} @option{-M} is
 +expressed in kilobits/s. This only has effect on ABR mode.
 +
 +@item iblock (@emph{--advanced-encode-option impulse_noisetune=N})
 +Set noise floor bias for impulse blocks. The value is a float number from
 +-15.0 to 0.0. A negative bias instructs the encoder to pay special attention
 +to the crispness of transients in the encoded audio. The tradeoff for better
 +transient response is a higher bitrate.
 +
 +@end table
 +
 +@anchor{libwavpack}
 +@section libwavpack
 +
 +A wrapper providing WavPack encoding through libwavpack.
 +
 +Only lossless mode using 32-bit integer samples is supported currently.
 +
 +Requires the presence of the libwavpack headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libwavpack}.
 +
 +Note that a libavcodec-native encoder for the WavPack codec exists so users can
 +encode audios with this codec without using this encoder. See @ref{wavpackenc}.
 +
 +@subsection Options
 +
 +@command{wavpack} command line utility's corresponding options are listed in
 +parentheses, if any.
 +
 +@table @option
 +@item frame_size (@emph{--blocksize})
 +Default is 32768.
 +
 +@item compression_level
 +Set speed vs. compression tradeoff. Acceptable arguments are listed below:
 +
 +@table @samp
 +@item 0 (@emph{-f})
 +Fast mode.
 +
 +@item 1
 +Normal (default) settings.
 +
 +@item 2 (@emph{-h})
 +High quality.
 +
 +@item 3 (@emph{-hh})
 +Very high quality.
 +
 +@item 4-8 (@emph{-hh -x}@var{EXTRAPROC})
 +Same as @samp{3}, but with extra processing enabled.
 +
 +@samp{4} is the same as @option{-x2} and @samp{8} is the same as @option{-x6}.
 +
 +@end table
 +@end table
 +
 +@anchor{wavpackenc}
 +@section wavpack
 +
 +WavPack lossless audio encoder.
 +
 +This is a libavcodec-native WavPack encoder. There is also an encoder based on
 +libwavpack, but there is virtually no reason to use that encoder.
 +
 +See also @ref{libwavpack}.
 +
 +@subsection Options
 +
 +The equivalent options for @command{wavpack} command line utility are listed in
 +parentheses.
 +
 +@subsubsection Shared options
 +
 +The following shared options are effective for this encoder. Only special notes
 +about this particular encoder will be documented here. For the general meaning
 +of the options, see @ref{codec-options,,the Codec Options chapter}.
 +
 +@table @option
 +@item frame_size (@emph{--blocksize})
 +For this encoder, the range for this option is between 128 and 131072. Default
 +is automatically decided based on sample rate and number of channel.
 +
 +For the complete formula of calculating default, see
 +@file{libavcodec/wavpackenc.c}.
 +
 +@item compression_level (@emph{-f}, @emph{-h}, @emph{-hh}, and @emph{-x})
 +This option's syntax is consistent with @ref{libwavpack}'s.
 +@end table
 +
 +@subsubsection Private options
 +
 +@table @option
 +@item joint_stereo (@emph{-j})
 +Set whether to enable joint stereo. Valid values are:
 +
 +@table @samp
 +@item on (@emph{1})
 +Force mid/side audio encoding.
 +@item off (@emph{0})
 +Force left/right audio encoding.
 +@item auto
 +Let the encoder decide automatically.
 +@end table
 +
 +@item optimize_mono
 +Set whether to enable optimization for mono. This option is only effective for
 +non-mono streams. Available values:
 +
 +@table @samp
 +@item on
 +enabled
 +@item off
 +disabled
 +@end table
 +
 +@end table
 +
 +@c man end AUDIO ENCODERS
 +
 +@chapter Video Encoders
 +@c man begin VIDEO ENCODERS
 +
 +A description of some of the currently available video encoders
 +follows.
 +
 +@section libtheora
 +
 +libtheora Theora encoder wrapper.
 +
 +Requires the presence of the libtheora headers and library during
 +configuration. You need to explicitly configure the build with
 +@code{--enable-libtheora}.
 +
 +For more information about the libtheora project see
 +@url{http://www.theora.org/}.
 +
 +@subsection Options
 +
 +The following global options are mapped to internal libtheora options
 +which affect the quality and the bitrate of the encoded stream.
 +
 +@table @option
 +@item b
 +Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode.  In
 +case VBR (Variable Bit Rate) mode is enabled this option is ignored.
 +
 +@item flags
 +Used to enable constant quality mode (VBR) encoding through the
 +@option{qscale} flag, and to enable the @code{pass1} and @code{pass2}
 +modes.
 +
 +@item g
 +Set the GOP size.
 +
 +@item global_quality
 +Set the global quality as an integer in lambda units.
 +
 +Only relevant when VBR mode is enabled with @code{flags +qscale}. The
 +value is converted to QP units by dividing it by @code{FF_QP2LAMBDA},
 +clipped in the [0 - 10] range, and then multiplied by 6.3 to get a
 +value in the native libtheora range [0-63]. A higher value corresponds
 +to a higher quality.
 +
 +@item q
 +Enable VBR mode when set to a non-negative value, and set constant
 +quality value as a double floating point value in QP units.
 +
 +The value is clipped in the [0-10] range, and then multiplied by 6.3
 +to get a value in the native libtheora range [0-63].
 +
 +This option is valid only using the @command{ffmpeg} command-line
 +tool. For library interface users, use @option{global_quality}.
 +@end table
 +
 +@subsection Examples
 +
 +@itemize
 +@item
 +Set maximum constant quality (VBR) encoding with @command{ffmpeg}:
 +@example
 +ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
 +@end example
 +
 +@item
 +Use @command{ffmpeg} to convert a CBR 1000 kbps Theora video stream:
 +@example
 +ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
 +@end example
 +@end itemize
 +
 +@section libvpx
 +
 +VP8 format supported through libvpx.
 +
 +Requires the presence of the libvpx headers and library during configuration.
 +You need to explicitly configure the build with @code{--enable-libvpx}.
 +
 +@subsection Options
 +
 +Mapping from FFmpeg to libvpx options with conversion notes in parentheses.
 +
 +@table @option
 +
 +@item threads
 +g_threads
 +
 +@item profile
 +g_profile
 +
 +@item vb
 +rc_target_bitrate
 +
 +@item g
 +kf_max_dist
 +
 +@item keyint_min
 +kf_min_dist
 +
 +@item qmin
 +rc_min_quantizer
 +
 +@item qmax
 +rc_max_quantizer
 +
 +@item bufsize, vb
 +rc_buf_sz
 +@code{(bufsize * 1000 / vb)}
 +
 +rc_buf_optimal_sz
 +@code{(bufsize * 1000 / vb * 5 / 6)}
 +
 +@item rc_init_occupancy, vb
 +rc_buf_initial_sz
 +@code{(rc_init_occupancy * 1000 / vb)}
 +
 +@item rc_buffer_aggressivity
 +rc_undershoot_pct
 +
 +@item skip_threshold
 +rc_dropframe_thresh
 +
 +@item qcomp
 +rc_2pass_vbr_bias_pct
 +
 +@item maxrate, vb
 +rc_2pass_vbr_maxsection_pct
 +@code{(maxrate * 100 / vb)}
 +
 +@item minrate, vb
 +rc_2pass_vbr_minsection_pct
 +@code{(minrate * 100 / vb)}
 +
 +@item minrate, maxrate, vb
 +@code{VPX_CBR}
 +@code{(minrate == maxrate == vb)}
 +
 +@item crf
 +@code{VPX_CQ}, @code{VP8E_SET_CQ_LEVEL}
 +
 +@item quality
 +@table @option
 +@item @var{best}
 +@code{VPX_DL_BEST_QUALITY}
 +@item @var{good}
 +@code{VPX_DL_GOOD_QUALITY}
 +@item @var{realtime}
 +@code{VPX_DL_REALTIME}
 +@end table
 +
 +@item speed
 +@code{VP8E_SET_CPUUSED}
 +
 +@item nr
 +@code{VP8E_SET_NOISE_SENSITIVITY}
 +
 +@item mb_threshold
 +@code{VP8E_SET_STATIC_THRESHOLD}
 +
 +@item slices
 +@code{VP8E_SET_TOKEN_PARTITIONS}
 +
 +@item max-intra-rate
 +@code{VP8E_SET_MAX_INTRA_BITRATE_PCT}
 +
 +@item force_key_frames
 +@code{VPX_EFLAG_FORCE_KF}
 +
 +@item Alternate reference frame related
 +@table @option
 +@item vp8flags altref
 +@code{VP8E_SET_ENABLEAUTOALTREF}
 +@item @var{arnr_max_frames}
 +@code{VP8E_SET_ARNR_MAXFRAMES}
 +@item @var{arnr_type}
 +@code{VP8E_SET_ARNR_TYPE}
 +@item @var{arnr_strength}
 +@code{VP8E_SET_ARNR_STRENGTH}
 +@item @var{rc_lookahead}
 +g_lag_in_frames
 +@end table
 +
 +@item vp8flags error_resilient
 +g_error_resilient
 +
 +@end table
 +
 +For more information about libvpx see:
 +@url{http://www.webmproject.org/}
 +
 +
 +@section libwebp
 +
 +libwebp WebP Image encoder wrapper
 +
 +libwebp is Google's official encoder for WebP images. It can encode in either
 +lossy or lossless mode. Lossy images are essentially a wrapper around a VP8
 +frame. Lossless images are a separate codec developed by Google.
 +
 +@subsection Pixel Format
 +
 +Currently, libwebp only supports YUV420 for lossy and RGB for lossless due
 +to limitations of the format and libwebp. Alpha is supported for either mode.
 +Because of API limitations, if RGB is passed in when encoding lossy or YUV is
 +passed in for encoding lossless, the pixel format will automatically be
 +converted using functions from libwebp. This is not ideal and is done only for
 +convenience.
 +
 +@subsection Options
 +
 +@table @option
 +
 +@item -lossless @var{boolean}
 +Enables/Disables use of lossless mode. Default is 0.
 +
 +@item -compression_level @var{integer}
 +For lossy, this is a quality/speed tradeoff. Higher values give better quality
 +for a given size at the cost of increased encoding time. For lossless, this is
 +a size/speed tradeoff. Higher values give smaller size at the cost of increased
 +encoding time. More specifically, it controls the number of extra algorithms
 +and compression tools used, and varies the combination of these tools. This
 +maps to the @var{method} option in libwebp. The valid range is 0 to 6.
 +Default is 4.
 +
 +@item -qscale @var{float}
 +For lossy encoding, this controls image quality, 0 to 100. For lossless
 +encoding, this controls the effort and time spent at compressing more. The
 +default value is 75. Note that for usage via libavcodec, this option is called
 +@var{global_quality} and must be multiplied by @var{FF_QP2LAMBDA}.
 +
 +@item -preset @var{type}
 +Configuration preset. This does some automatic settings based on the general
 +type of the image.
 +@table @option
 +@item none
 +Do not use a preset.
 +@item default
 +Use the encoder default.
 +@item picture
 +Digital picture, like portrait, inner shot
 +@item photo
 +Outdoor photograph, with natural lighting
 +@item drawing
 +Hand or line drawing, with high-contrast details
 +@item icon
 +Small-sized colorful images
 +@item text
 +Text-like
 +@end table
 +
 +@end table
 +
 +@section libx264, libx264rgb
 +
 +x264 H.264/MPEG-4 AVC encoder wrapper.
 +
 +This encoder requires the presence of the libx264 headers and library
 +during configuration. You need to explicitly configure the build with
 +@code{--enable-libx264}.
 +
 +libx264 supports an impressive number of features, including 8x8 and
 +4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC
 +entropy coding, interlacing (MBAFF), lossless mode, psy optimizations
 +for detail retention (adaptive quantization, psy-RD, psy-trellis).
 +
 +Many libx264 encoder options are mapped to FFmpeg global codec
 +options, while unique encoder options are provided through private
 +options. Additionally the @option{x264opts} and @option{x264-params}
 +private options allows one to pass a list of key=value tuples as accepted
 +by the libx264 @code{x264_param_parse} function.
 +
 +The x264 project website is at
 +@url{http://www.videolan.org/developers/x264.html}.
 +
 +The libx264rgb encoder is the same as libx264, except it accepts packed RGB
 +pixel formats as input instead of YUV.
 +
 +@subsection Supported Pixel Formats
 +
 +x264 supports 8- to 10-bit color spaces. The exact bit depth is controlled at
 +x264's configure time. FFmpeg only supports one bit depth in one particular
 +build. In other words, it is not possible to build one FFmpeg with multiple
 +versions of x264 with different bit depths.
 +
 +@subsection Options
 +
 +The following options are supported by the libx264 wrapper. The
 +@command{x264}-equivalent options or values are listed in parentheses
 +for easy migration.
 +
 +To reduce the duplication of documentation, only the private options
 +and some others requiring special attention are documented here. For
 +the documentation of the undocumented generic options, see
 +@ref{codec-options,,the Codec Options chapter}.
 +
 +To get a more accurate and extensive documentation of the libx264
 +options, invoke the command @command{x264 --full-help} or consult
 +the libx264 documentation.
 +
 +@table @option
 +@item b (@emph{bitrate})
 +Set bitrate in bits/s. Note that FFmpeg's @option{b} option is
 +expressed in bits/s, while @command{x264}'s @option{bitrate} is in
 +kilobits/s.
 +
 +@item bf (@emph{bframes})
 +
 +@item g (@emph{keyint})
 +
- @item qmax (@emph{qpmax})
 +@item qmin (@emph{qpmin})
++Minimum quantizer scale.
++
++@item qmax (@emph{qpmax})
++Maximum quantizer scale.
 +
 +@item qdiff (@emph{qpstep})
++Maximum difference between quantizer scales.
 +
 +@item qblur (@emph{qblur})
++Quantizer curve blur
 +
 +@item qcomp (@emph{qcomp})
++Quantizer curve compression factor
 +
 +@item refs (@emph{ref})
++Number of reference frames each P-frame can use. The range is from @var{0-16}.
 +
 +@item sc_threshold (@emph{scenecut})
++Sets the threshold for the scene change detection.
 +
 +@item trellis (@emph{trellis})
++Performs Trellis quantization to increase efficiency. Enabled by default.
 +
 +@item nr  (@emph{nr})
 +
 +@item me_range (@emph{merange})
++Maximum range of the motion search in pixels.
 +
 +@item me_method (@emph{me})
 +Set motion estimation method. Possible values in the decreasing order
 +of speed:
 +
 +@table @samp
 +@item dia (@emph{dia})
 +@item epzs (@emph{dia})
 +Diamond search with radius 1 (fastest). @samp{epzs} is an alias for
 +@samp{dia}.
 +@item hex (@emph{hex})
 +Hexagonal search with radius 2.
 +@item umh (@emph{umh})
 +Uneven multi-hexagon search.
 +@item esa (@emph{esa})
 +Exhaustive search.
 +@item tesa (@emph{tesa})
 +Hadamard exhaustive search (slowest).
 +@end table
 +
 +@item subq (@emph{subme})
++Sub-pixel motion estimation method.
 +
 +@item b_strategy (@emph{b-adapt})
++Adaptive B-frame placement decision algorithm. Use only on first-pass.
 +
 +@item keyint_min (@emph{min-keyint})
++Minimum GOP size.
 +
 +@item coder
 +Set entropy encoder. Possible values:
 +
 +@table @samp
 +@item ac
 +Enable CABAC.
 +
 +@item vlc
 +Enable CAVLC and disable CABAC. It generates the same effect as
 +@command{x264}'s @option{--no-cabac} option.
 +@end table
 +
 +@item cmp
 +Set full pixel motion estimation comparation algorithm. Possible values:
 +
 +@table @samp
 +@item chroma
 +Enable chroma in motion estimation.
 +
 +@item sad
 +Ignore chroma in motion estimation. It generates the same effect as
 +@command{x264}'s @option{--no-chroma-me} option.
 +@end table
 +
 +@item threads (@emph{threads})
++Number of encoding threads.
 +
 +@item thread_type
 +Set multithreading technique. Possible values:
 +
 +@table @samp
 +@item slice
 +Slice-based multithreading. It generates the same effect as
 +@command{x264}'s @option{--sliced-threads} option.
 +@item frame
 +Frame-based multithreading.
 +@end table
 +
 +@item flags
 +Set encoding flags. It can be used to disable closed GOP and enable
 +open GOP by setting it to @code{-cgop}. The result is similar to
 +the behavior of @command{x264}'s @option{--open-gop} option.
 +
 +@item rc_init_occupancy (@emph{vbv-init})
 +
 +@item preset (@emph{preset})
 +Set the encoding preset.
 +
 +@item tune (@emph{tune})
 +Set tuning of the encoding params.
 +
 +@item profile (@emph{profile})
 +Set profile restrictions.
 +
 +@item fastfirstpass
 +Enable fast settings when encoding first pass, when set to 1. When set
 +to 0, it has the same effect of @command{x264}'s
 +@option{--slow-firstpass} option.
 +
 +@item crf (@emph{crf})
 +Set the quality for constant quality mode.
 +
 +@item crf_max (@emph{crf-max})
 +In CRF mode, prevents VBV from lowering quality beyond this point.
 +
 +@item qp (@emph{qp})
 +Set constant quantization rate control method parameter.
 +
 +@item aq-mode (@emph{aq-mode})
 +Set AQ method. Possible values:
 +
 +@table @samp
 +@item none (@emph{0})
 +Disabled.
 +
 +@item variance (@emph{1})
 +Variance AQ (complexity mask).
 +
 +@item autovariance (@emph{2})
 +Auto-variance AQ (experimental).
 +@end table
 +
 +@item aq-strength (@emph{aq-strength})
 +Set AQ strength, reduce blocking and blurring in flat and textured areas.
 +
 +@item psy
 +Use psychovisual optimizations when set to 1. When set to 0, it has the
 +same effect as @command{x264}'s @option{--no-psy} option.
 +
 +@item psy-rd  (@emph{psy-rd})
 +Set strength of psychovisual optimization, in
 +@var{psy-rd}:@var{psy-trellis} format.
 +
 +@item rc-lookahead (@emph{rc-lookahead})
 +Set number of frames to look ahead for frametype and ratecontrol.
 +
 +@item weightb
 +Enable weighted prediction for B-frames when set to 1. When set to 0,
 +it has the same effect as @command{x264}'s @option{--no-weightb} option.
 +
 +@item weightp (@emph{weightp})
 +Set weighted prediction method for P-frames. Possible values:
 +
 +@table @samp
 +@item none (@emph{0})
 +Disabled
 +@item simple (@emph{1})
 +Enable only weighted refs
 +@item smart (@emph{2})
 +Enable both weighted refs and duplicates
 +@end table
 +
 +@item ssim (@emph{ssim})
 +Enable calculation and printing SSIM stats after the encoding.
 +
 +@item intra-refresh (@emph{intra-refresh})
 +Enable the use of Periodic Intra Refresh instead of IDR frames when set
 +to 1.
 +
 +@item bluray-compat (@emph{bluray-compat})
 +Configure the encoder to be compatible with the bluray standard.
 +It is a shorthand for setting "bluray-compat=1 force-cfr=1".
 +
 +@item b-bias (@emph{b-bias})
 +Set the influence on how often B-frames are used.
 +
 +@item b-pyramid (@emph{b-pyramid})
 +Set method for keeping of some B-frames as references. Possible values:
 +
 +@table @samp
 +@item none (@emph{none})
 +Disabled.
 +@item strict (@emph{strict})
 +Strictly hierarchical pyramid.
 +@item normal (@emph{normal})
 +Non-strict (not Blu-ray compatible).
 +@end table
 +
 +@item mixed-refs
 +Enable the use of one reference per partition, as opposed to one
 +reference per macroblock when set to 1. When set to 0, it has the
 +same effect as @command{x264}'s @option{--no-mixed-refs} option.
 +
 +@item 8x8dct
 +Enable adaptive spatial transform (high profile 8x8 transform)
 +when set to 1. When set to 0, it has the same effect as
 +@command{x264}'s @option{--no-8x8dct} option.
 +
 +@item fast-pskip
 +Enable early SKIP detection on P-frames when set to 1. When set
 +to 0, it has the same effect as @command{x264}'s
 +@option{--no-fast-pskip} option.
 +
 +@item aud (@emph{aud})
 +Enable use of access unit delimiters when set to 1.
 +
 +@item mbtree
 +Enable use macroblock tree ratecontrol when set to 1. When set
 +to 0, it has the same effect as @command{x264}'s
 +@option{--no-mbtree} option.
 +
 +@item deblock (@emph{deblock})
 +Set loop filter parameters, in @var{alpha}:@var{beta} form.
 +
 +@item cplxblur (@emph{cplxblur})
 +Set fluctuations reduction in QP (before curve compression).
 +
 +@item partitions (@emph{partitions})
 +Set partitions to consider as a comma-separated list of. Possible
 +values in the list:
 +
 +@table @samp
 +@item p8x8
 +8x8 P-frame partition.
 +@item p4x4
 +4x4 P-frame partition.
 +@item b8x8
 +4x4 B-frame partition.
 +@item i8x8
 +8x8 I-frame partition.
 +@item i4x4
 +4x4 I-frame partition.
 +(Enabling @samp{p4x4} requires @samp{p8x8} to be enabled. Enabling
 +@samp{i8x8} requires adaptive spatial transform (@option{8x8dct}
 +option) to be enabled.)
 +@item none (@emph{none})
 +Do not consider any partitions.
 +@item all (@emph{all})
 +Consider every partition.
 +@end table
 +
 +@item direct-pred (@emph{direct})
 +Set direct MV prediction mode. Possible values:
 +
 +@table @samp
 +@item none (@emph{none})
 +Disable MV prediction.
 +@item spatial (@emph{spatial})
 +Enable spatial predicting.
 +@item temporal (@emph{temporal})
 +Enable temporal predicting.
 +@item auto (@emph{auto})
 +Automatically decided.
 +@end table
 +
 +@item slice-max-size (@emph{slice-max-size})
 +Set the limit of the size of each slice in bytes. If not specified
 +but RTP payload size (@option{ps}) is specified, that is used.
 +
 +@item stats (@emph{stats})
 +Set the file name for multi-pass stats.
 +
 +@item nal-hrd (@emph{nal-hrd})
 +Set signal HRD information (requires @option{vbv-bufsize} to be set).
 +Possible values:
 +
 +@table @samp
 +@item none (@emph{none})
 +Disable HRD information signaling.
 +@item vbr (@emph{vbr})
 +Variable bit rate.
 +@item cbr (@emph{cbr})
 +Constant bit rate (not allowed in MP4 container).
 +@end table
 +
 +@item x264opts (N.A.)
 +Set any x264 option, see @command{x264 --fullhelp} for a list.
 +
 +Argument is a list of @var{key}=@var{value} couples separated by
 +":". In @var{filter} and @var{psy-rd} options that use ":" as a separator
 +themselves, use "," instead. They accept it as well since long ago but this
 +is kept undocumented for some reason.
 +
 +For example to specify libx264 encoding options with @command{ffmpeg}:
 +@example
 +ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
 +@end example
 +
 +@item x264-params (N.A.)
 +Override the x264 configuration using a :-separated list of key=value
 +parameters.
 +
 +This option is functionally the same as the @option{x264opts}, but is
 +duplicated for compatibility with the Libav fork.
 +
 +For example to specify libx264 encoding options with @command{ffmpeg}:
 +@example
 +ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\
 +cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\
 +no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
 +@end example
 +@end table
 +
 +Encoding ffpresets for common usages are provided so they can be used with the
 +general presets system (e.g. passing the @option{pre} option).
 +
 +@section libxvid
 +
 +Xvid MPEG-4 Part 2 encoder wrapper.
 +
 +This encoder requires the presence of the libxvidcore headers and library
 +during configuration. You need to explicitly configure the build with
 +@code{--enable-libxvid --enable-gpl}.
 +
 +The native @code{mpeg4} encoder supports the MPEG-4 Part 2 format, so
 +users can encode to this format without this library.
 +
 +@subsection Options
 +
 +The following options are supported by the libxvid wrapper. Some of
 +the following options are listed but are not documented, and
 +correspond to shared codec options. See @ref{codec-options,,the Codec
 +Options chapter} for their documentation. The other shared options
 +which are not listed have no effect for the libxvid encoder.
 +
 +@table @option
 +@item b
 +
 +@item g
 +
 +@item qmin
 +
 +@item qmax
 +
 +@item mpeg_quant
 +
 +@item threads
 +
 +@item bf
 +
 +@item b_qfactor
 +
 +@item b_qoffset
 +
 +@item flags
 +Set specific encoding flags. Possible values:
 +
 +@table @samp
 +
 +@item mv4
 +Use four motion vector by macroblock.
 +
 +@item aic
 +Enable high quality AC prediction.
 +
 +@item gray
 +Only encode grayscale.
 +
 +@item gmc
 +Enable the use of global motion compensation (GMC).
 +
 +@item qpel
 +Enable quarter-pixel motion compensation.
 +
 +@item cgop
 +Enable closed GOP.
 +
 +@item global_header
 +Place global headers in extradata instead of every keyframe.
 +
 +@end table
 +
 +@item trellis
 +
 +@item me_method
 +Set motion estimation method. Possible values in decreasing order of
 +speed and increasing order of quality:
 +
 +@table @samp
 +@item zero
 +Use no motion estimation (default).
 +
 +@item phods
 +@item x1
 +@item log
 +Enable advanced diamond zonal search for 16x16 blocks and half-pixel
 +refinement for 16x16 blocks. @samp{x1} and @samp{log} are aliases for
 +@samp{phods}.
 +
 +@item epzs
 +Enable all of the things described above, plus advanced diamond zonal
 +search for 8x8 blocks, half-pixel refinement for 8x8 blocks, and motion
 +estimation on chroma planes.
 +
 +@item full
 +Enable all of the things described above, plus extended 16x16 and 8x8
 +blocks search.
 +@end table
 +
 +@item mbd
 +Set macroblock decision algorithm. Possible values in the increasing
 +order of quality:
 +
 +@table @samp
 +@item simple
 +Use macroblock comparing function algorithm (default).
 +
 +@item bits
 +Enable rate distortion-based half pixel and quarter pixel refinement for
 +16x16 blocks.
 +
 +@item rd
 +Enable all of the things described above, plus rate distortion-based
 +half pixel and quarter pixel refinement for 8x8 blocks, and rate
 +distortion-based search using square pattern.
 +@end table
 +
 +@item lumi_aq
 +Enable lumi masking adaptive quantization when set to 1. Default is 0
 +(disabled).
 +
 +@item variance_aq
 +Enable variance adaptive quantization when set to 1. Default is 0
 +(disabled).
 +
 +When combined with @option{lumi_aq}, the resulting quality will not
 +be better than any of the two specified individually. In other
 +words, the resulting quality will be the worse one of the two
 +effects.
 +
 +@item ssim
 +Set structural similarity (SSIM) displaying method. Possible values:
 +
 +@table @samp
 +@item off
 +Disable displaying of SSIM information.
 +
 +@item avg
 +Output average SSIM at the end of encoding to stdout. The format of
 +showing the average SSIM is:
 +
 +@example
 +Average SSIM: %f
 +@end example
 +
 +For users who are not familiar with C, %f means a float number, or
 +a decimal (e.g. 0.939232).
 +
 +@item frame
 +Output both per-frame SSIM data during encoding and average SSIM at
 +the end of encoding to stdout. The format of per-frame information
 +is:
 +
 +@example
 +       SSIM: avg: %1.3f min: %1.3f max: %1.3f
 +@end example
 +
 +For users who are not familiar with C, %1.3f means a float number
 +rounded to 3 digits after the dot (e.g. 0.932).
 +
 +@end table
 +
 +@item ssim_acc
 +Set SSIM accuracy. Valid options are integers within the range of
 +0-4, while 0 gives the most accurate result and 4 computes the
 +fastest.
 +
 +@end table
 +
 +@section png
 +
 +PNG image encoder.
 +
 +@subsection Private options
 +
 +@table @option
 +@item dpi @var{integer}
 +Set physical density of pixels, in dots per inch, unset by default
 +@item dpm @var{integer}
 +Set physical density of pixels, in dots per meter, unset by default
 +@end table
 +
 +@section ProRes
 +
 +Apple ProRes encoder.
 +
 +FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder.
 +The used encoder can be chosen with the @code{-vcodec} option.
  
 -@subsection Private Options
 +@subsection Private Options for prores-ks
  
  @table @option
  @item profile @var{integer}