Hi all,
测试TI8148(DVRRDK4.0)编码效率的时候发现,实际传输的码率最大值普遍超过设置的码率,
低码率下平均值也经常超过设置的码率参数。编码方式使用的H264 HP profile。
而且设置动态码率(VBR)和静态码率(CBR)参数也是同样的效果,好像这个参数不起作用。
下图是我们测试的部分结果,可以看出来特别是设置为低码率的时候,码率控制的很不好,有时会超出很多。
我们设置码率和控制方式的函数使用如下:
/* 设置码率 */ int Venc_setVideoBitRate(int chId,int BitRate) { VENC_CHN_DYNAMIC_PARAM_S params; memset(¶ms, 0, sizeof(params)); params.targetBitRate = BitRate * 1000; Venc_setDynamicParam(chId, 0, ¶ms, VENC_BITRATE); return 0; } /*设置码率控制(VBR、CBR) */ int Venc_setRateControlAlgo(int chId,int value) { VENC_CHN_DYNAMIC_PARAM_S params; memset(¶ms, 0, sizeof(params)); params.rcAlg = value; Venc_setDynamicParam(chId,0,¶ms,VENC_RCALG); return 0; }
我们希望当设置成CBR的时候,码率能始终控制在设置的范围之下。而不是经常超出设置的范围
希望能够提供一些帮助,多谢!