使用Cisco提供的预编译OpenH264二进制文件时帧丢失

时间:2015-03-23 22:56:50

标签: video-encoding openh264

在使用Cisco提供的预编译OpenH264二进制文件时,我遇到了丢帧的问题。但是,如果我自己编译库而不修改源代码,我就没有这个问题。

我需要使用思科的预编译二进制文件,因为我将它用于商业应用程序,不能使用开源BSD许可证。我正在使用ISVCEncoder的InitializeExt()调用,参数bEnableFrameSkip设置为False。

//My full configuration is as follows:
    encoder_->GetDefaultParams (&param);
    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;

有没有其他人遇到过类似的问题?有谁知道为什么会发生这种情况?

提前致谢

2 个答案:

答案 0 :(得分:2)

我们必须设置标志bEnableFrameSkip = false。

答案 1 :(得分:1)

只需设置param.bEnableFrameSkip = false;即可解决跳帧问题。如果您要使用RC_BITRATE_MODE,则必须设置param.bEnableFrameSkip = true;,因为OpenH264在跳帧禁用模式下不支持RC_BITRATE_MODE