关于动态码率变化的问题

冰山之海 2014-05-20 11:35:33
我在做一个项目,根据网速调整码率,中间不re open 编码器(编码器用的是x264)

我用的方式是 ABR + 改变 i_bitrate /i_vbv_max_bitrate /i_vbv_buffer_size , h264是baseline的

在网络变化时,实时修改bitrate,再调用 x264_encoder_reconfig 接口, 测试下来发现, 高码率实时转低码率时没有问题,但低码率转高码率时有问题。

测试一段yuv420数据 , 如下(4种可能):
2048 kbps 生成文件 6M
512 kbps 生成文件 1M
2048 kbps ->(中途调整) 512kbps 4M //正确的
512kbps ->(中途调整) 2048 kbps 1M (编出来的文件还是 512kbps的)



代码如下:
[code=c
]else if(0 == strcmp(key,"bitrate"))
{
x264_param->param_.rc.i_bitrate = value;
x264_param->param_.rc.i_vbv_max_bitrate = value*1.2;
x264_param->param_.rc.i_vbv_buffer_size = value;
if(x264_param->param_.rc.i_bitrate)
x264_param->param_.rc.i_rc_method = X264_RC_ABR;
else
x264_param->param_.rc.i_rc_method = X264_RC_CRF;
}[/code]



...全文
761 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qijun1994 2014-08-26
  • 打赏
  • 举报
回复
楼主,您好! 我最近也在做这个方面的项目,需要动态调整码率 自己测试了一下 x264_encoder_reconfig函数,发现没有效果呀,无论是码率变高,还是降低 请问楼主这个问题解决没,求指点呐
CyberLogix 2014-05-20
  • 打赏
  • 举报
回复
高码率实时转低码率时没有问题,但低码率转高码率时有问题。 X264文档上面有没有说能从动态从低码率到高码率转化么,好像不能把?

2,543

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧