Merge remote-tracking branch 'TimothyGu/release/2.0' into release/2.0
* TimothyGu/release/2.0: doc/encoders: add doc for AAC encoder doc/formats: Add documentation for 3 parameters that have been missing doc/encoders: improve libvo-aacenc doc doc/encoders: reformat and add some clarification in libtwolame doc doc/encoders: reformat libmp3lame doc doc/encoders: add libxvid doc doc/encoders: partially rewrite and reformat libx264 docs Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -25,6 +25,95 @@ enabled encoders.
|
|||||||
A description of some of the currently available audio encoders
|
A description of some of the currently available audio encoders
|
||||||
follows.
|
follows.
|
||||||
|
|
||||||
|
@anchor{aacenc}
|
||||||
|
@section aac
|
||||||
|
|
||||||
|
Advanced Audio Coding (AAC) encoder.
|
||||||
|
|
||||||
|
This encoder is an experimental FFmpeg-native AAC encoder. Currently only the
|
||||||
|
low complexity (AAC-LC) profile is supported. To use this encoder, you must set
|
||||||
|
@option{strict} option to @samp{experimental} or lower.
|
||||||
|
|
||||||
|
As this encoder is experimental, unexpected behavior may exist from time to
|
||||||
|
time. For a more stable AAC encoder, see @ref{libvo-aacenc}. However, be warned
|
||||||
|
that it has a worse quality reported by some users.
|
||||||
|
|
||||||
|
@c Comment this out until somebody writes the respective documentation.
|
||||||
|
@c See also @ref{libfaac}, @ref{libaacplus}, and @ref{libfdk-aac-enc}.
|
||||||
|
|
||||||
|
@subsection Options
|
||||||
|
|
||||||
|
@table @option
|
||||||
|
@item b
|
||||||
|
Set bit rate in bits/s. Setting this automatically activates constant bit rate
|
||||||
|
(CBR) mode.
|
||||||
|
|
||||||
|
@item q
|
||||||
|
Set quality for variable bit rate (VBR) mode. This option is valid only using
|
||||||
|
the @command{ffmpeg} command-line tool. For library interface users, use
|
||||||
|
@option{global_quality}.
|
||||||
|
|
||||||
|
@item stereo_mode
|
||||||
|
Set stereo encoding mode. Possible values:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item auto
|
||||||
|
Automatically selected by the encoder.
|
||||||
|
|
||||||
|
@item ms_off
|
||||||
|
Disable middle/side encoding. This is the default.
|
||||||
|
|
||||||
|
@item ms_force
|
||||||
|
Force middle/side encoding.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@item aac_coder
|
||||||
|
Set AAC encoder coding method. Possible values:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item 0
|
||||||
|
FAAC-inspired method.
|
||||||
|
|
||||||
|
This method is a simplified reimplementation of the method used in FAAC, which
|
||||||
|
sets thresholds proportional to the band energies, and then decreases all the
|
||||||
|
thresholds with quantizer steps to find the appropriate quantization with
|
||||||
|
distortion below threshold band by band.
|
||||||
|
|
||||||
|
The quality of this method is comparable to the two loop searching method
|
||||||
|
descibed below, but somewhat a little better and slower.
|
||||||
|
|
||||||
|
@item 1
|
||||||
|
Average noise to mask ratio (ANMR) trellis-based solution.
|
||||||
|
|
||||||
|
This has a theoretic best quality out of all the coding methods, but at the
|
||||||
|
cost of the slowest speed.
|
||||||
|
|
||||||
|
@item 2
|
||||||
|
Two loop searching (TLS) method.
|
||||||
|
|
||||||
|
This method first sets quantizers depending on band thresholds and then tries
|
||||||
|
to find an optimal combination by adding or subtracting a specific value from
|
||||||
|
all quantizers and adjusting some individual quantizer a little.
|
||||||
|
|
||||||
|
This method produces similar quality with the FAAC method and is the default.
|
||||||
|
|
||||||
|
@item 3
|
||||||
|
Constant quantizer method.
|
||||||
|
|
||||||
|
This method sets a constant quantizer for all bands. This is the fastest of all
|
||||||
|
the methods, yet produces the worst quality.
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
|
@subsection Tips and Tricks
|
||||||
|
|
||||||
|
According to some reports
|
||||||
|
(e.g. @url{http://d.hatena.ne.jp/kamedo2/20120729/1343545890}), setting the
|
||||||
|
@option{cutoff} option to 15000 Hz greatly improves the quality of the output
|
||||||
|
quality. As a result, we encourage you to do the same.
|
||||||
|
|
||||||
@section ac3 and ac3_fixed
|
@section ac3 and ac3_fixed
|
||||||
|
|
||||||
AC-3 audio encoders.
|
AC-3 audio encoders.
|
||||||
@@ -420,26 +509,36 @@ Requires the presence of the libmp3lame headers and library during
|
|||||||
configuration. You need to explicitly configure the build with
|
configuration. You need to explicitly configure the build with
|
||||||
@code{--enable-libmp3lame}.
|
@code{--enable-libmp3lame}.
|
||||||
|
|
||||||
@subsection Option Mapping
|
@subsection Options
|
||||||
|
|
||||||
The following options are supported by the libmp3lame wrapper,
|
The following options are supported by the libmp3lame wrapper. The
|
||||||
the LAME-equivalent options follow the FFmpeg ones.
|
@command{lame}-equivalent of the options are listed in parentheses.
|
||||||
|
|
||||||
@multitable @columnfractions .2 .2
|
@table @option
|
||||||
@item FFmpeg @tab LAME
|
@item b (@emph{-b})
|
||||||
@item b @tab b
|
Set bitrate expressed in bits/s for CBR. LAME @code{bitrate} is
|
||||||
Set bitrate expressed in bits/s, LAME @code{bitrate} is expressed in
|
expressed in kilobits/s.
|
||||||
kilobits/s.
|
|
||||||
@item q @tab V
|
@item q (@emph{-V})
|
||||||
Set quality setting for VBR.
|
Set constant quality setting for VBR. This option is valid only
|
||||||
@item compression_level @tab q
|
using the @command{ffmpeg} command-line tool. For library interface
|
||||||
Set algorithm quality. Valid arguments are integers in the 0-9 range.
|
users, use @option{global_quality}.
|
||||||
@item reservoir @tab N.A.
|
|
||||||
Enable use of bit reservoir. LAME has this enabled by default.
|
@item compression_level (@emph{-q})
|
||||||
@item joint_stereo @tab -m j
|
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 overriden 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
|
Enable the encoder to use (on a frame by frame basis) either L/R
|
||||||
stereo or mid/side stereo.
|
stereo or mid/side stereo. Default value is 1.
|
||||||
@end multitable
|
|
||||||
|
@end table
|
||||||
|
|
||||||
@section libopencore-amrnb
|
@section libopencore-amrnb
|
||||||
|
|
||||||
@@ -486,24 +585,26 @@ Requires the presence of the libtwolame headers and library during
|
|||||||
configuration. You need to explicitly configure the build with
|
configuration. You need to explicitly configure the build with
|
||||||
@code{--enable-libtwolame}.
|
@code{--enable-libtwolame}.
|
||||||
|
|
||||||
@subsection Options Mapping
|
@subsection Options
|
||||||
|
|
||||||
The following options are supported by the libtwolame wrapper. The
|
The following options are supported by the libtwolame wrapper. The
|
||||||
TwoLAME-equivalent options follow the FFmpeg ones and are in
|
@command{twolame}-equivalent options follow the FFmpeg ones and are in
|
||||||
parentheses.
|
parentheses.
|
||||||
|
|
||||||
@table @option
|
@table @option
|
||||||
@item b
|
@item b (@emph{-b})
|
||||||
(b) Set bitrate in bits/s. Note that FFmpeg @code{b} option is
|
Set bitrate expressed in bits/s for CBR. @command{twolame} @option{b}
|
||||||
expressed in bits/s, twolame @code{b} in kilobits/s. The default
|
option is expressed in kilobits/s. Default value is 128k.
|
||||||
value is 128k.
|
|
||||||
|
|
||||||
@item q
|
@item q (@emph{-V})
|
||||||
(V) Set quality for experimental VBR support. Maximum value range is
|
Set quality for experimental VBR support. Maximum value range is
|
||||||
from -50 to 50, useful range is from -10 to 10.
|
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
|
@item mode (@emph{--mode})
|
||||||
(mode) Set MPEG mode. Possible values:
|
Set the mode of the resulting audio. Possible values:
|
||||||
|
|
||||||
@table @samp
|
@table @samp
|
||||||
@item auto
|
@item auto
|
||||||
@@ -518,29 +619,30 @@ Dual channel
|
|||||||
Mono
|
Mono
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@item psymodel
|
@item psymodel (@emph{--psyc-mode})
|
||||||
(psyc-mode) Set psychoacoustic model to use in encoding. The argument
|
Set psychoacoustic model to use in encoding. The argument must be
|
||||||
must be an integer between -1 and 4, inclusive. The higher the value,
|
an integer between -1 and 4, inclusive. The higher the value, the
|
||||||
the better the quality. The default value is 3.
|
better the quality. The default value is 3.
|
||||||
|
|
||||||
@item energy_levels
|
@item energy_levels (@emph{--energy})
|
||||||
(energy) Enable energy levels extensions when set to 1. The default
|
Enable energy levels extensions when set to 1. The default value is
|
||||||
value is 0 (disabled).
|
0 (disabled).
|
||||||
|
|
||||||
@item error_protection
|
@item error_protection (@emph{--protect})
|
||||||
(protect) Enable CRC error protection when set to 1. The default value
|
Enable CRC error protection when set to 1. The default value is 0
|
||||||
is 0 (disabled).
|
(disabled).
|
||||||
|
|
||||||
@item copyright
|
@item copyright (@emph{--copyright})
|
||||||
(copyright) Set MPEG audio copyright flag when set to 1. The default
|
Set MPEG audio copyright flag when set to 1. The default value is 0
|
||||||
value is 0 (disabled).
|
(disabled).
|
||||||
|
|
||||||
@item original
|
@item original (@emph{--original})
|
||||||
(original) Set MPEG audio original flag when set to 1. The default
|
Set MPEG audio original flag when set to 1. The default value is 0
|
||||||
value is 0 (disabled).
|
(disabled).
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@anchor{libvo-aacenc}
|
||||||
@section libvo-aacenc
|
@section libvo-aacenc
|
||||||
|
|
||||||
VisualOn AAC encoder.
|
VisualOn AAC encoder.
|
||||||
@@ -549,16 +651,19 @@ Requires the presence of the libvo-aacenc headers and library during
|
|||||||
configuration. You need to explicitly configure the build with
|
configuration. You need to explicitly configure the build with
|
||||||
@code{--enable-libvo-aacenc --enable-version3}.
|
@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
|
@subsection Options
|
||||||
|
|
||||||
The VisualOn AAC encoder only support encoding AAC-LC and up to 2
|
The VisualOn AAC encoder only support encoding AAC-LC and up to 2
|
||||||
channels. It is also CBR-only. It is considered to be worse than the
|
channels. It is also CBR-only.
|
||||||
native experimental FFmpeg AAC encoder.
|
|
||||||
|
|
||||||
@table @option
|
@table @option
|
||||||
|
|
||||||
@item b
|
@item b
|
||||||
Bitrate.
|
Set bit rate in bits/s.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@@ -873,178 +978,318 @@ For more information about libvpx see:
|
|||||||
|
|
||||||
x264 H.264/MPEG-4 AVC encoder wrapper.
|
x264 H.264/MPEG-4 AVC encoder wrapper.
|
||||||
|
|
||||||
Requires the presence of the libx264 headers and library during
|
This encoder requires the presence of the libx264 headers and library
|
||||||
configuration. You need to explicitly configure the build with
|
during configuration. You need to explicitly configure the build with
|
||||||
@code{--enable-libx264}.
|
@code{--enable-libx264}.
|
||||||
|
|
||||||
x264 supports an impressive number of features, including 8x8 and 4x4 adaptive
|
libx264 supports an impressive number of features, including 8x8 and
|
||||||
spatial transform, adaptive B-frame placement, CAVLC/CABAC entropy coding,
|
4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC
|
||||||
interlacing (MBAFF), lossless mode, psy optimizations for detail retention
|
entropy coding, interlacing (MBAFF), lossless mode, psy optimizations
|
||||||
(adaptive quantization, psy-RD, psy-trellis).
|
for detail retention (adaptive quantization, psy-RD, psy-trellis).
|
||||||
|
|
||||||
The FFmpeg wrapper provides a mapping for most of them using global options
|
Many libx264 encoder options are mapped to FFmpeg global codec
|
||||||
that match those of the encoders and provides private options for the unique
|
options, while unique encoder options are provided through private
|
||||||
encoder options. Additionally an expert override is provided to directly pass
|
options. Additionally the @option{x264opts} and @option{x264-params}
|
||||||
a list of key=value tuples as accepted by x264_param_parse.
|
private options allows to pass a list of key=value tuples as accepted
|
||||||
|
by the libx264 @code{x264_param_parse} function.
|
||||||
|
|
||||||
@subsection Option Mapping
|
The x264 project website is at
|
||||||
|
@url{http://www.videolan.org/developers/x264.html}.
|
||||||
|
|
||||||
The following options are supported by the x264 wrapper, the x264-equivalent
|
@subsection Options
|
||||||
options follow the FFmpeg ones.
|
|
||||||
|
|
||||||
@multitable @columnfractions .2 .2
|
The following options are supported by the libx264 wrapper. The
|
||||||
@item b @tab bitrate
|
@command{x264}-equivalent options or values are listed in parentheses
|
||||||
FFmpeg @code{b} option is expressed in bits/s, x264 @code{bitrate} in kilobits/s.
|
for easy migration.
|
||||||
@item bf @tab bframes
|
|
||||||
Maximum number of B-frames.
|
To reduce the duplication of documentation, only the private options
|
||||||
@item g @tab keyint
|
and some others requiring special attention are documented here. For
|
||||||
Maximum GOP size.
|
the documentation of the undocumented generic options, see
|
||||||
@item qmin @tab qpmin
|
@ref{codec-options}.
|
||||||
@item qmax @tab qpmax
|
|
||||||
@item qdiff @tab qpstep
|
To get a more accurate and extensive documentation of the libx264
|
||||||
@item qblur @tab qblur
|
options, invoke the command @command{x264 --full-help} or consult
|
||||||
@item qcomp @tab qcomp
|
the libx264 documentation.
|
||||||
@item refs @tab ref
|
|
||||||
@item sc_threshold @tab scenecut
|
|
||||||
@item trellis @tab trellis
|
|
||||||
@item nr @tab nr
|
|
||||||
Noise reduction.
|
|
||||||
@item me_range @tab merange
|
|
||||||
@item me_method @tab me
|
|
||||||
@item subq @tab subme
|
|
||||||
@item b_strategy @tab b-adapt
|
|
||||||
@item keyint_min @tab keyint-min
|
|
||||||
@item coder @tab cabac
|
|
||||||
Set coder to @code{ac} to use CABAC.
|
|
||||||
@item cmp @tab chroma-me
|
|
||||||
Set to @code{chroma} to use chroma motion estimation.
|
|
||||||
@item threads @tab threads
|
|
||||||
@item thread_type @tab sliced_threads
|
|
||||||
Set to @code{slice} to use sliced threading instead of frame threading.
|
|
||||||
@item flags -cgop @tab open-gop
|
|
||||||
Set @code{-cgop} to use recovery points to close GOPs.
|
|
||||||
@item rc_init_occupancy @tab vbv-init
|
|
||||||
Initial buffer occupancy.
|
|
||||||
@end multitable
|
|
||||||
|
|
||||||
@subsection Private Options
|
|
||||||
@table @option
|
@table @option
|
||||||
@item -preset @var{string}
|
@item b (@emph{bitrate})
|
||||||
Set the encoding preset (cf. x264 --fullhelp).
|
Set bitrate in bits/s. Note that FFmpeg's @option{b} option is
|
||||||
@item -tune @var{string}
|
expressed in bits/s, while @command{x264}'s @option{bitrate} is in
|
||||||
Tune the encoding params (cf. x264 --fullhelp).
|
kilobits/s.
|
||||||
@item -profile @var{string}
|
|
||||||
Set profile restrictions (cf. x264 --fullhelp).
|
@item bf (@emph{bframes})
|
||||||
@item -fastfirstpass @var{integer}
|
|
||||||
Use fast settings when encoding first pass.
|
@item g (@emph{keyint})
|
||||||
@item -crf @var{float}
|
|
||||||
Select the quality for constant quality mode.
|
@item qmax (@emph{qpmax})
|
||||||
@item -crf_max @var{float}
|
|
||||||
In CRF mode, prevents VBV from lowering quality beyond this point.
|
@item qmin (@emph{qpmin})
|
||||||
@item -qp @var{integer}
|
|
||||||
Constant quantization parameter rate control method.
|
@item qdiff (@emph{qpstep})
|
||||||
@item -aq-mode @var{integer}
|
|
||||||
AQ method
|
@item qblur (@emph{qblur})
|
||||||
|
|
||||||
|
@item qcomp (@emph{qcomp})
|
||||||
|
|
||||||
|
@item refs (@emph{ref})
|
||||||
|
|
||||||
|
@item sc_threshold (@emph{scenecut})
|
||||||
|
|
||||||
|
@item trellis (@emph{trellis})
|
||||||
|
|
||||||
|
@item nr (@emph{nr})
|
||||||
|
|
||||||
|
@item me_range (@emph{merange})
|
||||||
|
|
||||||
|
@item me_method (@emph{me})
|
||||||
|
Set motion estimation method. Possible values in the decreasing order
|
||||||
|
of speed:
|
||||||
|
|
||||||
Possible values:
|
|
||||||
@table @samp
|
@table @samp
|
||||||
@item none
|
@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 variance
|
@item subq (@emph{subme})
|
||||||
|
|
||||||
|
@item b_strategy (@emph{b-adapt})
|
||||||
|
|
||||||
|
@item keyint_min (@emph{min-keyint})
|
||||||
|
|
||||||
|
@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})
|
||||||
|
|
||||||
|
@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).
|
Variance AQ (complexity mask).
|
||||||
@item autovariance
|
|
||||||
|
@item autovariance (@emph{2})
|
||||||
Auto-variance AQ (experimental).
|
Auto-variance AQ (experimental).
|
||||||
@end table
|
@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.
|
|
||||||
|
|
||||||
Possible values:
|
@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
|
@table @samp
|
||||||
@item none
|
@item none (@emph{0})
|
||||||
|
Disabled
|
||||||
@item simple
|
@item simple (@emph{1})
|
||||||
|
Enable only weighted refs
|
||||||
@item smart
|
@item smart (@emph{2})
|
||||||
|
Enable both weighted refs and duplicates
|
||||||
@end table
|
@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 -b-bias @var{integer}
|
|
||||||
Influences how often B-frames are used.
|
|
||||||
@item -b-pyramid @var{integer}
|
|
||||||
Keep some B-frames as references.
|
|
||||||
|
|
||||||
Possible values:
|
@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 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
|
@table @samp
|
||||||
@item none
|
@item none (@emph{none})
|
||||||
|
Disabled.
|
||||||
@item strict
|
@item strict (@emph{strict})
|
||||||
Strictly hierarchical pyramid.
|
Strictly hierarchical pyramid.
|
||||||
@item normal
|
@item normal (@emph{normal})
|
||||||
Non-strict (not Blu-ray compatible).
|
Non-strict (not Blu-ray compatible).
|
||||||
@end table
|
@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:
|
@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
|
@table @samp
|
||||||
@item none
|
@item p8x8
|
||||||
|
8x8 P-frame partition.
|
||||||
@item spatial
|
@item p4x4
|
||||||
|
4x4 P-frame partition.
|
||||||
@item temporal
|
@item b8x8
|
||||||
|
4x4 B-frame partition.
|
||||||
@item auto
|
@item i8x8
|
||||||
|
8x8 I-frame partition.
|
||||||
@end table
|
@item i4x4
|
||||||
@item -slice-max-size @var{integer}
|
4x4 I-frame partition.
|
||||||
Limit the size of each slice in bytes.
|
(Enabling @samp{p4x4} requires @samp{p8x8} to be enabled. Enabling
|
||||||
@item -stats @var{string}
|
@samp{i8x8} requires adaptive spatial transform (@option{8x8dct}
|
||||||
Filename for 2 pass stats.
|
option) to be enabled.)
|
||||||
@item -nal-hrd @var{integer}
|
@item none (@emph{none})
|
||||||
Signal HRD information (requires vbv-bufsize; cbr not allowed in .mp4).
|
Do not consider any partitions.
|
||||||
|
@item all (@emph{all})
|
||||||
Possible values:
|
Consider every partition.
|
||||||
@table @samp
|
|
||||||
@item none
|
|
||||||
|
|
||||||
@item vbr
|
|
||||||
|
|
||||||
@item cbr
|
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@item x264opts @var{options}
|
@item direct-pred (@emph{direct})
|
||||||
Allow to set any x264 option, see @code{x264 --fullhelp} for a list.
|
Set direct MV prediction mode. Possible values:
|
||||||
|
|
||||||
@var{options} is a list of @var{key}=@var{value} couples separated by
|
@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
|
":". 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
|
themselves, use "," instead. They accept it as well since long ago but this
|
||||||
is kept undocumented for some reason.
|
is kept undocumented for some reason.
|
||||||
@@ -1054,18 +1299,136 @@ For example to specify libx264 encoding options with @command{ffmpeg}:
|
|||||||
ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
|
ffmpeg -i foo.mpg -vcodec libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
For more information about libx264 and the supported options see:
|
@item x264-params (N.A.)
|
||||||
@url{http://www.videolan.org/developers/x264.html}
|
Override the x264 configuration using a :-separated list of key=value
|
||||||
|
parameters.
|
||||||
|
|
||||||
@item -x264-params @var{string}
|
This option is functionally the same as the @option{x264opts}, but is
|
||||||
Override the x264 configuration using a :-separated list of key=value parameters.
|
duplicated for compability with the Libav fork.
|
||||||
|
|
||||||
|
For example to specify libx264 encoding options with @command{ffmpeg}:
|
||||||
@example
|
@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
|
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 example
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
Encoding avpresets for common usages are provided so they can be used with the
|
Encoding ffpresets for common usages are provided so they can be used with the
|
||||||
general presets system (e.g. passing the @code{-pre} option).
|
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
|
||||||
|
|
||||||
|
@end table
|
||||||
|
|
||||||
@section png
|
@section png
|
||||||
|
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ Enable RTP MP4A-LATM payload.
|
|||||||
Reduce the latency introduced by optional buffering
|
Reduce the latency introduced by optional buffering
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
|
@item seek2any @var{integer} (@emph{input})
|
||||||
|
Forces seeking to enable seek to any mode if set to 1. Default is 0.
|
||||||
|
|
||||||
@item analyzeduration @var{integer} (@emph{input})
|
@item analyzeduration @var{integer} (@emph{input})
|
||||||
Specify how many microseconds are analyzed to probe the input. A
|
Specify how many microseconds are analyzed to probe the input. A
|
||||||
higher value will allow to detect more accurate information, but will
|
higher value will allow to detect more accurate information, but will
|
||||||
@@ -133,6 +136,12 @@ been without shifting.
|
|||||||
Also note that this affects only leading negative timestamps, and not
|
Also note that this affects only leading negative timestamps, and not
|
||||||
non-monotonic negative timestamps.
|
non-monotonic negative timestamps.
|
||||||
|
|
||||||
|
@item skip_initial_bytes @var{integer} (@emph{input})
|
||||||
|
Set number initial bytes to skip. Default is 0.
|
||||||
|
|
||||||
|
@item correct_ts_overflow @var{integer} (@emph{input})
|
||||||
|
Correct single timestamp overflows if set to 1. Default is 1.
|
||||||
|
|
||||||
@item flush_packets @var{integer} (@emph{output})
|
@item flush_packets @var{integer} (@emph{output})
|
||||||
Flush the underlying I/O stream after each packet. Default 1 enables it, and
|
Flush the underlying I/O stream after each packet. Default 1 enables it, and
|
||||||
has the effect of reducing the latency; 0 disables it and may slightly
|
has the effect of reducing the latency; 0 disables it and may slightly
|
||||||
|
|||||||
Reference in New Issue
Block a user