Производительность OpenH264 в зависимости от размера закодированных данных (SEncParamExt)

Я пытаюсь получить около 24 кадров в секунду для видео 960×540 с использованием библиотеки OpenH264 C ++. Я пробовал разные параметры для SEncParamExt, и я не могу получить лучшую производительность кодека вместо кодированных данных меньшего размера. Я получаю около 16-20 кадров в секунду на моем компьютере.

Вот мой текущий конфиг.

SEncParamExt param;
m_pEncoder->GetDefaultParams(&param);

param.fMaxFrameRate = 30;

param.bEnableFrameSkip = false;
param.iMinQp = 20;
param.iMaxQp = 30;
param.iPicWidth = m_frameFormat.GetWidth();
param.iPicHeight = m_frameFormat.GetHeight();
param.iTargetBitrate = 5000000;
param.bEnableDenoise = false;
param.iSpatialLayerNum = 1;
param.iTemporalLayerNum = 1;
param.bIsLosslessLink = false;
param.bEnableLongTermReference = true;
param.iEntropyCodingModeFlag = 0;
param.iMultipleThreadIdc = 2;
param.bUseLoadBalancing = true;

for (int i = 0; i < param.iSpatialLayerNum; i++)
{
param.sSpatialLayers[i].iVideoWidth = m_frameFormat.GetWidth()  >> (param.iSpatialLayerNum - 1 - i);
param.sSpatialLayers[i].iVideoHeight = m_frameFormat.GetHeight() >> (param.iSpatialLayerNum - 1 - i);
param.sSpatialLayers[i].fFrameRate = 30;
param.sSpatialLayers[i].iSpatialBitrate = param.iTargetBitrate;
param.sSpatialLayers[i].sSliceArgument.uiSliceMode = SM_FIXEDSLCNUM_SLICE;
param.sSpatialLayers[i].sSliceArgument.uiSliceNum = 2;
}

param.iTargetBitrate *= param.iSpatialLayerNum;

Я пробовал разные значения для param.iComplexityMode а также param.iRCMode и я получаю необходимую частоту кадров, но очень плохое качество изображения. Также я играл с уровнями квантования, и это не помогло.

Также я использую Кодек VP8. Он легко производит 24 кадра в секунду для одного и того же видео. Размер закодированных данных больше (около 500 Кб / с против 200 Кб / с в случае OpenH264), но для меня это очень удобно.

Что я делаю неправильно? Что я должен сделать, чтобы увеличить производительность OpenH264?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]