On date Wednesday 2015-06-10 20:58:33 -0700, James Zern encoded: > modeled after the libx264 section. > --- > doc/encoders.texi | 163 > ++++++++++++++++++++++++++++++------------------------ > 1 file changed, 92 insertions(+), 71 deletions(-) > > diff --git a/doc/encoders.texi b/doc/encoders.texi > index 753e683..e0ad13e 100644 > --- a/doc/encoders.texi > +++ b/doc/encoders.texi > @@ -1416,113 +1416,134 @@ You need to explicitly configure the build with > @code{--enable-libvpx}. > > @subsection Options > > -Mapping from FFmpeg to libvpx options with conversion notes in parentheses. > +The following options are supported by the libvpx wrapper. The > +@command{vpxenc}-equivalent options or values are listed in parentheses > +for easy migration. > > -@table @option > +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}. > > -@item threads > -g_threads
> +To get more documentation of the libvpx options, invoke the command > +@command{ffmpeg -h encoder=libvpx}, @command{ffmpeg -h encoder=libvpx-vp9} or > +@command{vpxenc --help}. Further information is available in the libvpx API > +documentation. > > -@item profile > -g_profile > +@table @option > > -@item vb > -rc_target_bitrate > +@item b (@emph{target-bitrate}) > +Set bitrate in bits/s. Note that FFmpeg's @option{b} option is > +expressed in bits/s, while @command{vpxenc}'s @option{target-bitrate} is in > +kilobits/s. > > -@item g > -kf_max_dist > +@item g (@emph{kf-max-dist}) > > -@item keyint_min > -kf_min_dist > +@item keyint_min (@emph{kf-min-dist}) > > -@item qmin > -rc_min_quantizer > +@item qmin (@emph{min-q}) > > -@item qmax > -rc_max_quantizer > +@item qmax (@emph{max-q}) > > -@item bufsize, vb > -rc_buf_sz > -@code{(bufsize * 1000 / vb)} > +@item bufsize (@emph{buf-sz}, @emph{buf-optimal-sz}) > +Set ratecontrol buffer size (in bits). Note @command{vpxenc}'s options are > +specified in milliseconds, the libvpx wrapper converts this value as follows: > +@code{buf-sz = bufsize * 1000 / bitrate}, > +@code{buf-optimal-sz = bufsize * 1000 / bitrate * 5 / 6}. > > -rc_buf_optimal_sz > -@code{(bufsize * 1000 / vb * 5 / 6)} > +@item rc_init_occupancy (@emph{buf-initial-sz}) > +Set number of bits which should be loaded into the rc buffer before decoding > +starts. Note @command{vpxenc}'s option is specified in milliseconds, the > libvpx > +wrapper converts this value as follows: > +@code{rc_init_occupancy * 1000 / bitrate}. > > -@item rc_init_occupancy, vb > -rc_buf_initial_sz > -@code{(rc_init_occupancy * 1000 / vb)} > +@item undershoot-pct > +Datarate undershoot (min) percentage of the target bitrate. > > -@item rc_buffer_aggressivity > -rc_undershoot_pct > +@item overshoot-pct > +Datarate overshoot (max) percentage of the target bitrate. > > -@item skip_threshold > -rc_dropframe_thresh > +@item skip_threshold (@emph{drop-frame}) > > -@item qcomp > -rc_2pass_vbr_bias_pct > +@item qcomp (@emph{bias-pct}) > > -@item maxrate, vb > -rc_2pass_vbr_maxsection_pct > -@code{(maxrate * 100 / vb)} > +@item maxrate (@emph{maxsection-pct}) > +GOP max bitrate in bits/s. Note @command{vpxenc}'s option is specified as a > +percentage of the target bitrate, the libvpx wrapper converts this value as > +follows: @code{(maxrate * 100 / bitrate)}. > > -@item minrate, vb > -rc_2pass_vbr_minsection_pct > -@code{(minrate * 100 / vb)} > +@item minrate (@emph{minsection-pct}) > +GOP min bitrate in bits/s. Note @command{vpxenc}'s option is specified as a > +percentage of the target bitrate, the libvpx wrapper converts this value as > +follows: @code{(minrate * 100 / bitrate)}. > > -@item minrate, maxrate, vb > -@code{VPX_CBR} > -@code{(minrate == maxrate == vb)} > +@item minrate, maxrate, b @emph{end-usage=cbr} > +@code{(minrate == maxrate == bitrate)}. > > -@item crf > -@code{VPX_CQ}, @code{VP8E_SET_CQ_LEVEL} > +@item crf (@emph{end-usage=cq}, @emph{cq-level}) > > -@item quality > +@item quality, deadline (@emph{deadline}) > @table @option > @item @var{best} > -@code{VPX_DL_BEST_QUALITY} > +Use best quality deadline. Poorly named and quite slow, this option should be > +avoided as it may give worse quality output than good. > @item @var{good} > -@code{VPX_DL_GOOD_QUALITY} > +Use good quality deadline. This is a good trade-off between speed and quality > +when used with the @option{cpu-used} option. > @item @var{realtime} > -@code{VPX_DL_REALTIME} > +Use realtime quality deadline. > @end table > > -@item speed > -@code{VP8E_SET_CPUUSED} > +@item speed, cpu-used (@emph{cpu-used}) > +Quality/Speed ratio modifier. Nit: Set quality/speed ... In general, a verbal form is favored ("Set number of foos in the bar.", rather than "number of foos in the bar"). > > -@item nr > -@code{VP8E_SET_NOISE_SENSITIVITY} > +@item nr (@emph{noise-sensitivity}) > > -@item mb_threshold > -@code{VP8E_SET_STATIC_THRESHOLD} > +@item static-thresh > +A change threshold on blocks below which they will be skipped by the encoder. Nit: Set a change threshold ... > -@item slices > -@code{VP8E_SET_TOKEN_PARTITIONS} > +@item slices (@emph{token-parts}) > +Note that FFmpeg's @option{slices} option gives the total number of > partitions, > +while @command{vpxenc}'s @option{token-parts} is given as > +@code{log2(partitions)}. > > @item max-intra-rate > -@code{VP8E_SET_MAX_INTRA_BITRATE_PCT} > +Maximum I-frame bitrate (pct) 0=unlimited. Set maximum ... Also Maximum I-frame bitrate (pct) 0=unlimited. is not a meaningful English sentence, add something like: A value of 0 means unlimited. (I don't know what "pct" is). > > @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 > - > -@item aq_mode > -@code{VP9E_SET_AQ_MODE} > +@item auto-alt-ref > +Enable use of alternate reference frames (2-pass only). > +@item arnr-max-frames > +altref noise reduction max frame count. Set altref ... > +@item arnr-type > +altref noise reduction filter type: backward, forward, centered. Set altref ... > +@item arnr-strength > +altref noise reduction filter strength. Set altref ... > +@item rc-lookahead, lag-in-frames (@emph{lag-in-frames}) > +Set number of frames to look ahead for frametype and ratecontrol. > +@end table > + > +@item error-resilient > +Enable error resiliency features. > + > +@item VP9-specific options > +@table @option > +@item lossless > +Lossless mode. Set lossless mode? > +@item tile-columns > +Number of tile columns to use, log2. Set number of tile columns to use. What "log2" means in this context? > +@item tile-rows > +Number of tile rows to use, log2. Ditto > +@item frame-parallel > +Enable frame parallel decodability features. > +@item aq-mode > +Adaptive quantization mode (0: off (default), 1: variance 2: complexity, 3: > +cyclic refresh). Set adaptive ... LGTM otherwise, thanks. -- FFmpeg = Friendly and Forgiving Multimedia Pitiless Easy Gymnast _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel