X264代码走读二(动态修改码率)

一、函数关系树

X264编码参数动态修改函数调用关系如下图所示:

X264代码走读二(动态修改码率)_第1张图片

二、动态码率修改

1、X264只仅支持CBR模式下的码率修改。其他模式不支持。

X264代码走读二(动态修改码率)_第2张图片

2、CBR是恒定码率,是ABR的一个特殊应用场景。当x264_param_t->rc->i_bitrate等于x264_param_t->rc->i_vbv_max_bitrate。即目标码率和峰值码率相等时,编码输出的就是恒定码率。

3、所以若想动态修改X264的码率,需要配置参数如下:

  1. init时:x264_param_t->rc->i_rc_method = X264_RC_ABR
  2. init和编码时:x264_param_t->rc->i_bitrate = x264_param_t->rc->i_vbv_max_bitrate = target_kbps
  3. x264_param_t->rc->i_vbv_buffer_size可以根据实际场景配置,配置成3倍的target_kbps效果比较好。

备注:电影电视剧场景,i_vbv_buffer_size要配置3倍i_vbv_max_bitrate。视频会议场景,i_vbv_buffer_size配置成i_vbv_max_bitrate码率恒定,但是视频质量不佳。

 

 

你可能感兴趣的:(X264,X264代码走读,X264参数汇总)