大家好,
DM8168做解码,配置解码器创建参数时,需要配置码率,我将targetBitRate设置为4Mb/s,当前端摄像头传过来的码流码率偏低时(比如512kb/s),解码后会出现丢帧的情况,怎么能将解码码率设置成自适应?或者有没有命令可以动态的配置解码码率。
for (i = 0; i < chn; i++) {
decPrm.chCreateParams[i].format = IVIDEO_H264HP;
decPrm.chCreateParams[i].profile = IH264VDEC_PROFILE_ANY;
decPrm.chCreateParams[i].targetMaxWidth = chainsCtrl.chCfg[i].outWidth;
decPrm.chCreateParams[i].targetMaxHeight = chainsCtrl.chCfg[i].outHeight;
decPrm.chCreateParams[i].fieldMergeDecodeEnable = FALSE;
decPrm.chCreateParams[i].algCreateStatus = DEC_LINK_ALG_CREATE_STATUS_CREATE;
decPrm.chCreateParams[i].defaultDynamicParams.targetFrameRate = chainsCtrl.chCfg[i].encFrameRate;
decPrm.chCreateParams[i].defaultDynamicParams.targetBitRate = chainsCtrl.chCfg[i].bitRate;
decPrm.chCreateParams[i].numBufPerCh = 16;
decPrm.chCreateParams[i].displayDelay = 5; //decPrm.chCreateParams[i].tilerEnable = TRUE;
}
decPrm.inQueParams.prevLinkId = chainsCfg.ipcBitsInVideoId;
decPrm.inQueParams.prevLinkQueId = 0;
decPrm.outQueParams.nextLink = chainsCfg.ipcOutVideoId;
OYE:
回复 Ternence_Hsu:
你好,
我实际测试的时候改变它的值,对显示的效果是有实际的影响的。
像我前面说的,当前端视频源传进来的码流码率比较低的时候,将targetBitRate设为4M,图像就会卡顿,而且会有拖影,设为1M时就没有这种情况,但这个时候图像的清晰度会降低很多。在enc link里是有命令可以对码率和帧率进行动态配置的,但是在de clink里没看到相应的命令,是不是dec link不支持动态调整码率?
Chris Meng:
回复 OYE:
OYE,
我同意ternence的说法,解码里面是否设置码流应该是没有关系的。
你能否尝试在本地解码不同码率的码流,看看是否有类似的问题?
OYE:
回复 Chris Meng:
这个值是配置一个最大的码率, 跟当前的解码码率没有关系?
当前解码码率是根据送给解码器的视频流码率来决定的?