[FFmpeg-devel] [PATCH] libvpx: add 2 pass setting mapping
James Zern
jzern
Tue Jun 8 20:09:24 CEST 2010
The attached adds a mapping for libvpx/rc_2pass* based on comments
from earlier thread "[PATCH] add encode options to libvpxenc"
regarding use of qcompress.
Descriptions of the libvpx settings:
* Bias, expressed on a scale of 0 to 100, for determining target size
* for the current frame. The value 0 indicates the optimal CBR mode
* value should be used. The value 100 indicates the optimal VBR mode
* value should be used. Values in between indicate which way the
* encoder should "lean."
rc_2pass_vbr_bias_pct
* This value, expressed as a percentage of the target
bitrate, indicates
* the minimum bitrate to be used for a single GOP (aka "section")
rc_2pass_vbr_minsection_pct
* This value, expressed as a percentage of the target
bitrate, indicates
* the maximum bitrate to be used for a single GOP (aka "section")
rc_2pass_vbr_maxsection_pct
-------------- next part --------------
Index: libavcodec/libvpxenc.c
===================================================================
--- libavcodec/libvpxenc.c (revision 23536)
+++ libavcodec/libvpxenc.c (working copy)
@@ -242,6 +242,14 @@ static av_cold int vp8_init(AVCodecConte
enccfg.rc_max_quantizer = ((avctx->qmax * 5 + 1) >> 2) - 1;
enccfg.rc_dropframe_thresh = avctx->frame_skip_threshold;
+ //0-100 (0 => CBR, 100 => VBR)
+ enccfg.rc_2pass_vbr_bias_pct = round(avctx->qcompress * 100);
+ enccfg.rc_2pass_vbr_minsection_pct =
+ avctx->rc_min_rate * 100 / avctx->bit_rate;
+ if (avctx->rc_max_rate)
+ enccfg.rc_2pass_vbr_maxsection_pct =
+ avctx->rc_max_rate * 100 / avctx->bit_rate;
+
//_enc_init() will balk if kf_min_dist differs from max w/VPX_KF_AUTO
if (avctx->keyint_min == avctx->gop_size)
enccfg.kf_min_dist = avctx->keyint_min;
More information about the ffmpeg-devel
mailing list