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.

DM8168 CBR设置问题 编码 图像跳帧

大家好:

   我使用DM8168 +  DVRRDK4.0    H264  hightProfile编码

   设置 码率控制算法为CBR后, VLC播放码流出现跳帧, 现象就是图像一闪一闪的, 下面附了一小段VLC录制的码流,

   设置为VBR时  , 图像正常 

运行时编码参数如下:

[m3video] --------- CH 0 : H264 ENC : Dynamic Params -------
 [m3video] 
 [m3video] videnc2DynamicParams -> inputHeight             : 1080
 [m3video] videnc2DynamicParams -> inputWidth              : 1920
 [m3video] videnc2DynamicParams -> refFrameRate            : 30000
 [m3video] videnc2DynamicParams -> targetFrameRate         : 30000
 [m3video] videnc2DynamicParams -> targetBitRate           : 4000000
 [m3video] videnc2DynamicParams -> intraFrameInterval      : 30
 [m3video] videnc2DynamicParams -> generateHeader          : 0
 [m3video] videnc2DynamicParams -> captureWidth            : 1920
 [m3video] videnc2DynamicParams -> forceFrame              : -1
 [m3video] videnc2DynamicParams -> interFrameInterval      : 1
 [m3video] videnc2DynamicParams -> mvAccuracy              : 2
 [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1
 [m3video] videnc2DynamicParams -> sampleAspectRatioWidth  : 1
 [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag    : 1
 [m3video] videnc2DynamicParams -> lateAcquireArg          : -1
 [m3video] 
 [m3video] rateControlParams -> rateControlParamsPreset        : 1
 [m3video] rateControlParams -> scalingMatrixPreset            : 0
 [m3video] rateControlParams -> rcAlgo                         : 1
 [m3video] rateControlParams -> qpI                            : -1
 [m3video] rateControlParams -> qpMaxI                         : 40
 [m3video] rateControlParams -> qpMinI                         : 10
 [m3video] rateControlParams -> qpP                            : -1
 [m3video] rateControlParams -> qpMaxP                         : 40
 [m3video] rateControlParams -> qpMinP                         : 10
 [m3video] rateControlParams -> qpOffsetB                      : 4
 [m3video] rateControlParams -> qpMaxB                         : 44
 [m3video] rateControlParams -> qpMinB                         : 10
 [m3video] rateControlParams -> allowFrameSkip                 : 0
 [m3video] rateControlParams -> removeExpensiveCoeff           : 0
 [m3video] rateControlParams -> chromaQPIndexOffset            : 0
 [m3video] rateControlParams -> IPQualityFactor                : 0
 [m3video] rateControlParams -> initialBufferLevel             : 2000000
 [m3video] rateControlParams -> HRDBufferSize                  : 2000000
 [m3video] rateControlParams -> minPicSizeRatioI               : 0
 [m3video] rateControlParams -> maxPicSizeRatioI               : 640
 [m3video] rateControlParams -> minPicSizeRatioP               : 0
 [m3video] rateControlParams -> maxPicSizeRatioP               : 0
 [m3video] rateControlParams -> minPicSizeRatioB               : 0
 [m3video] rateControlParams -> maxPicSizeRatioB               : 0
 [m3video] rateControlParams -> enablePRC                      : 1
 [m3video] rateControlParams -> enablePartialFrameSkip         : 0
 [m3video] rateControlParams -> discardSavedBits               : 1
 [m3video] rateControlParams -> VBRDuration                    : 8
 [m3video] rateControlParams -> VBRsensitivity                 : 0
 [m3video] rateControlParams -> skipDistributionWindowLength   : 5
 [m3video] rateControlParams -> numSkipInDistributionWindow    : 2
 [m3video] rateControlParams -> enableHRDComplianceMode        : 1
 [m3video] rateControlParams -> frameSkipThMulQ5               : 0
 [m3video] rateControlParams -> vbvUseLevelThQ5                : 0
 [m3video] 
 [m3video] interCodingParams -> interCodingPreset  : 0
 [m3video] interCodingParams -> searchRangeHorP    : 144
 [m3video] interCodingParams -> searchRangeVerP    : 32
 [m3video] interCodingParams -> searchRangeHorB    : 144
 [m3video] interCodingParams -> searchRangeVerB    : 16
 [m3video] interCodingParams -> interCodingBias    : 1
 [m3video] interCodingParams -> skipMVCodingBias   : 1
 [m3video] interCodingParams -> minBlockSizeP      : 0
 [m3video] interCodingParams -> minBlockSizeB      : 0
 [m3video] interCodingParams -> meAlgoMode         : 0
 [m3video] 
 [m3video] intraCodingParams -> intraCodingPreset          : 0
 [m3video] intraCodingParams -> lumaIntra4x4Enable         : 0
 [m3video] intraCodingParams -> lumaIntra8x8Enable         : 255
 [m3video] intraCodingParams -> lumaIntra16x16Enable       : 15
 [m3video] intraCodingParams -> chromaIntra8x8Enable       : 15
 [m3video] intraCodingParams -> chromaComponentEnable      : 1
 [m3video] intraCodingParams -> intraRefreshMethod         : 0
 [m3video] intraCodingParams -> intraRefreshRate           : 0
 [m3video] intraCodingParams -> gdrOverlapRowsBtwFrames    : 0
 [m3video] intraCodingParams -> constrainedIntraPredEnable : 0
 [m3video] intraCodingParams -> intraCodingBias            : 12
 [m3video] 
 [m3video] sliceCodingParams -> sliceCodingPreset  : 1
 [m3video] sliceCodingParams -> sliceMode          : 8608
 [m3video] sliceCodingParams -> sliceUnitSize      : 8672
 [m3video] sliceCodingParams -> sliceStartOffset   : [2 33 2]
 [m3video] sliceCodingParams -> streamFormat       : 0
 [m3video] 
 [m3video] sliceGroupChangeCycle           : 3072
 [m3video] searchCenter                    : 0
 [m3video] enableStaticMBCount             : 0
 [m3video] enableROI                       : 262400
 [m3video] 
 [m3video] 

  • 单帧看的话,感觉某两帧甚至某几帧,都是重复的帧。似乎有些帧的顺序也不对,但是不确认。

    输入是30fps,但是编码出来变成60fps啦。

    你是否可以用那种图像上带读秒的视频源来看一下,我们先确认下是否存在这个跳帧的问题。

  • Eason :

               感谢您的回答, 很抱歉今天才回复你!!!

               我编码输入是60帧 编码输出也是60帧, 下面是读秒的录像  和参数配置。

               我的264编码器的版本是02.00.04.00 和02.00.06.00 两个版本的编码器效果差不多, 02.00.06.00稍好一点

    [m3video] --------- CH 0 : H264 ENC : Dynamic Params -------
    [m3video]
    [m3video] videnc2DynamicParams -> inputHeight : 1080
    [m3video] videnc2DynamicParams -> inputWidth : 1920
    [m3video] videnc2DynamicParams -> refFrameRate : 30000
    [m3video] videnc2DynamicParams -> targetFrameRate : 30000
    [m3video] videnc2DynamicParams -> targetBitRate : 1000000
    [m3video] videnc2DynamicParams -> intraFrameInterval : 30
    [m3video] videnc2DynamicParams -> generateHeader : 0
    [m3video] videnc2DynamicParams -> captureWidth : 1920
    [m3video] videnc2DynamicParams -> forceFrame : -1
    [m3video] videnc2DynamicParams -> interFrameInterval : 1
    [m3video] videnc2DynamicParams -> mvAccuracy : 2
    [m3video] videnc2DynamicParams -> sampleAspectRatioHeight : 1
    [m3video] videnc2DynamicParams -> sampleAspectRatioWidth : 1
    [m3video] videnc2DynamicParams -> ignoreOutbufSizeFlag : 1
    [m3video] videnc2DynamicParams -> lateAcquireArg : -1
    [m3video]
    [m3video] rateControlParams -> rateControlParamsPreset : 1
    [m3video] rateControlParams -> scalingMatrixPreset : 1
    [m3video] rateControlParams -> rcAlgo : 1
    [m3video] rateControlParams -> qpI : -1
    [m3video] rateControlParams -> qpMaxI : 40
    [m3video] rateControlParams -> qpMinI : 10
    [m3video] rateControlParams -> qpP : -1
    [m3video] rateControlParams -> qpMaxP : 40
    [m3video] rateControlParams -> qpMinP : 10
    [m3video] rateControlParams -> qpOffsetB : 4
    [m3video] rateControlParams -> qpMaxB : 44
    [m3video] rateControlParams -> qpMinB : 10
    [m3video] rateControlParams -> allowFrameSkip : 0
    [m3video] rateControlParams -> removeExpensiveCoeff : 0
    [m3video] rateControlParams -> chromaQPIndexOffset : 0
    [m3video] rateControlParams -> IPQualityFactor : 0
    [m3video] rateControlParams -> initialBufferLevel : 2000000
    [m3video] rateControlParams -> HRDBufferSize : 2000000
    [m3video] rateControlParams -> minPicSizeRatioI : 0
    [m3video] rateControlParams -> maxPicSizeRatioI : 640
    [m3video] rateControlParams -> minPicSizeRatioP : 0
    [m3video] rateControlParams -> maxPicSizeRatioP : 0
    [m3video] rateControlParams -> minPicSizeRatioB : 0
    [m3video] rateControlParams -> maxPicSizeRatioB : 0
    [m3video] rateControlParams -> enablePRC : 0
    [m3video] rateControlParams -> enablePartialFrameSkip : 0
    [m3video] rateControlParams -> discardSavedBits : 1
    [m3video] rateControlParams -> VBRDuration : 8
    [m3video] rateControlParams -> VBRsensitivity : 0
    [m3video] rateControlParams -> skipDistributionWindowLength : 5
    [m3video] rateControlParams -> numSkipInDistributionWindow : 2
    [m3video] rateControlParams -> enableHRDComplianceMode : 1
    [m3video] rateControlParams -> frameSkipThMulQ5 : 0
    [m3video] rateControlParams -> vbvUseLevelThQ5 : 0
    [m3video]
    [m3video] interCodingParams -> interCodingPreset : 0
    [m3video] interCodingParams -> searchRangeHorP : 144
    [m3video] interCodingParams -> searchRangeVerP : 32
    [m3video] interCodingParams -> searchRangeHorB : 144
    [m3video] interCodingParams -> searchRangeVerB : 16
    [m3video] interCodingParams -> interCodingBias : 1
    [m3video] interCodingParams -> skipMVCodingBias : 1
    [m3video] interCodingParams -> minBlockSizeP : 0
    [m3video] interCodingParams -> minBlockSizeB : 0
    [m3video] interCodingParams -> meAlgoMode : 0
    [m3video]
    [m3video] intraCodingParams -> intraCodingPreset : 0
    [m3video] intraCodingParams -> lumaIntra4x4Enable : 0
    [m3video] intraCodingParams -> lumaIntra8x8Enable : 255
    [m3video] intraCodingParams -> lumaIntra16x16Enable : 15
    [m3video] intraCodingParams -> chromaIntra8x8Enable : 15
    [m3video] intraCodingParams -> chromaComponentEnable : 1
    [m3video] intraCodingParams -> intraRefreshMethod : 0
    [m3video] intraCodingParams -> intraRefreshRate : 0
    [m3video] intraCodingParams -> gdrOverlapRowsBtwFrames : 0
    [m3video] intraCodingParams -> constrainedIntraPredEnable : 0
    [m3video] intraCodingParams -> intraCodingBias : 0
    [m3video]
    [m3video] sliceCodingParams -> sliceCodingPreset : -96
    [m3video] sliceCodingParams -> sliceMode : 8672
    [m3video] sliceCodingParams -> sliceUnitSize : 139522
    [m3video] sliceCodingParams -> sliceStartOffset : [0 12 0]
    [m3video] sliceCodingParams -> streamFormat : 0
    [m3video]
    [m3video] sliceGroupChangeCycle : 0
    [m3video] searchCenter : 0
    [m3video] enableStaticMBCount : 0
    [m3video] enableROI : 262400
    [m3video]
    [m3video]

  • 单帧看的话,图像的顺序已经前后乱掉了。

    你看看我记得有个输入buffer的大小  num buff 什么的数字可以改大点看看

  • numbufperch 之前设置为6

    改成3或者10后  测试现象一样, 我怀疑跟这个没有关系, 因为设置VBR的时候没有问题,

    CBR时 码率设置越大 现象越不明显

  • 是不是使用了dei  对dei的输出分辨率设置一下 估计就好了