最近刚开始搞8168,对dvrrdk包还比较陌生。关于码流控制这方面不知道该怎么下手,请做过这方面的朋友给个建议。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
最近刚开始搞8168,对dvrrdk包还比较陌生。关于码流控制这方面不知道该怎么下手,请做过这方面的朋友给个建议。
感谢您的回复。
码率控制是不是创建link时,算法已经被默认搞好了。我们只需要在代码中赋值,就像下列代码中,我只需要把targetBitRate 赋值成2M或是其他值就行了。
for(i=0;i<ENCODER_H264_CHAN_NUMS;i++){
pEncPrm->chCreateParams[i].format = IVIDEO_H264HP;
pEncPrm->chCreateParams[i].profile = IH264_HIGH_PROFILE;
pEncPrm->chCreateParams[i].dataLayout = IVIDEO_FIELD_SEPARATED;
pEncPrm->chCreateParams[i].fieldMergeEncodeEnable = FALSE;
pEncPrm->chCreateParams[i].defaultDynamicParams.intraFrameInterval = 150;
pEncPrm->chCreateParams[i].encodingPreset = XDM_DEFAULT;
pEncPrm->chCreateParams[i].enableAnalyticinfo = 0;
pEncPrm->chCreateParams[i].rateControlPreset = IVIDEO_STORAGE;
pEncPrm->chCreateParams[i].defaultDynamicParams.inputFrameRate = 60;
if(i==0){
pEncPrm->chCreateParams[i].defaultDynamicParams.targetBitRate = 20000 * 1000; //video_param.sBitrate*1000;
}
else if(i==1){
pEncPrm->chCreateParams[i].defaultDynamicParams.targetBitRate = 20000 * 1000; //video_param.sBitrate*1000;
}
pEncPrm->chCreateParams[i].defaultDynamicParams.interFrameInterval = 1;
pEncPrm->chCreateParams[i].defaultDynamicParams.mvAccuracy = IVIDENC2_MOTIONVECTOR_QUARTERPEL;
}
PS:目前我们想对产品清晰度调整一些,所以我想找找关于码率的demo。
你好,
可以这么说。但是最好您能了解一下h264算法 。h264码率控制算法有固定码率,可变码率等。h264编码的码率控制是在创建的时候pEncPrm->chCreateParams[i].rateControlPreset来设定的。