大家好:
我使用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]
Eason Wang:
单帧看的话,感觉某两帧甚至某几帧,都是重复的帧。似乎有些帧的顺序也不对,但是不确认。
输入是30fps,但是编码出来变成60fps啦。
你是否可以用那种图像上带读秒的视频源来看一下,我们先确认下是否存在这个跳帧的问题。
he yang:
回复 Eason Wang:
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]
Eason Wang:
回复 he yang:
单帧看的话,图像的顺序已经前后乱掉了。
你看看我记得有个输入buffer的大小 num buff 什么的数字可以改大点看看
he yang:
回复 Eason Wang:
numbufperch 之前设置为6
改成3或者10后 测试现象一样, 我怀疑跟这个没有关系, 因为设置VBR的时候没有问题,
CBR时 码率设置越大 现象越不明显
zhipeng zhu:
是不是使用了dei 对dei的输出分辨率设置一下 估计就好了
TI中文支持网
