在使用Cisco提供的预编译OpenH264二进制文件时,我遇到了丢帧的问题。但是,如果我自己编译库而不修改源代码,我就没有这个问题。
我需要使用思科的预编译二进制文件,因为我将它用于商业应用程序,不能使用开源BSD许可证。我正在使用ISVCEncoder的InitializeExt()调用,参数bEnableFrameSkip设置为False。
//My full configuration is as follows:
encoder_->GetDefaultParams (¶m);
param.iUsageType = SCREEN_CONTENT_REAL_TIME;
param.iRCMode = RC_BITRATE_MODE;
param.fMaxFrameRate = framerate;
param.iPicWidth = width;
param.iPicHeight = height;
param.iTargetBitrate = bitrate;
param.bEnableDenoise = 0;
param.bEnableFrameSkip = 0;
param.iSpatialLayerNum = 1;
SliceModeEnum sliceMode = SM_SINGLE_SLICE;
有没有其他人遇到过类似的问题?有谁知道为什么会发生这种情况?
提前致谢
答案 0 :(得分:2)
我们必须设置标志bEnableFrameSkip = false。
答案 1 :(得分:1)
只需设置param.bEnableFrameSkip = false;
即可解决跳帧问题。如果您要使用RC_BITRATE_MODE
,则必须设置param.bEnableFrameSkip = true;
,因为OpenH264
在跳帧禁用模式下不支持RC_BITRATE_MODE
。