新版的x264可以支持动态调整码率了,不过具体哪个版本开始不清楚。
首先,在x264_encoder_open之前设置:
x264_param_t param;
param.rc.i_rc_method=X264_RC_ABR;
param.rc.i_vbv_max_bitrate = (要设置的最大码率);
param.rc.i_bitrate= (要设置的码率);
param.rc.i_vbv_buffer_size = (buf size 可以跟码率一样的值);
中间需要调整码率 则调用:x264_encoder_reconfig。
int AdjustBitrate(x264_t* p264, x264_param_t param,int maxBitrate,int bitrate,int bufsize)
{
param.rc.i_rc_method=X264_RC_ABR;
param.rc.i_vbv_max_bitrate = maxBitrate;
param.rc.i_bitrate= bitrate;
param.rc.i_vbv_buffer_size = bufsize;
int nRes = x264_encoder_reconfig(p264,¶m);
return nRes;
}