哪位做过dvrrdk4多slice编码,除了修改outputdatamode、slicemode、sliceuintsize之外还需要修改哪些项呢?谢谢!
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.
哪位做过dvrrdk4多slice编码,除了修改outputdatamode、slicemode、sliceuintsize之外还需要修改哪些项呢?谢谢!
你好;
需要在mcfw中enclink_h264.c 中添加:
dynamicParams->sliceCodingParams.sliceCodingPreset = IH264_SLICECODING_USERDEFINED;
dynamicParams->sliceCodingParams.sliceMode = IH264_SLICEMODE_BYTES;
dynamicParams->sliceCodingParams.streamFormat = IH264_BYTE_STREAM;
dynamicParams->sliceCodingParams.sliceUnitSize = 1200;
注:按字节划分slice只支持baseline模式;
我在enclink_h264_set_static_params和enclink_h264_set_dynamic_params中修改了sliceCodingParams,熵编码是CAVLC编码,但是编出来的还是单slice的码流,还有其他的参数要修改吗?谢谢!
修改后的代码
static Int enclink_h264_set_static_params(IH264ENC_Params * staticParams,
EncLink_AlgCreateParams *
algCreateParams)
{
/* Initialize default values for static params */
*staticParams = H264ENC_TI_PARAMS;
/* Both width & height needs to be align with 2 bytes */
staticParams->videnc2Params.maxHeight =
VpsUtils_align(algCreateParams->maxHeight, 2);
staticParams->videnc2Params.maxWidth =
VpsUtils_align(algCreateParams->maxWidth, 16);
staticParams->videnc2Params.maxInterFrameInterval =
algCreateParams->maxInterFrameInterval;
staticParams->videnc2Params.inputContentType =
algCreateParams->inputContentType;
staticParams->videnc2Params.inputChromaFormat =
algCreateParams->inputChromaFormat;
staticParams->videnc2Params.profile = algCreateParams->profile;
staticParams->videnc2Params.level = algCreateParams->level;
staticParams->videnc2Params.encodingPreset = algCreateParams->encodingPreset;
if ((staticParams->videnc2Params.encodingPreset == XDM_USER_DEFINED) &&
(algCreateParams->enableHighSpeed == TRUE))
{
staticParams->interCodingParams.interCodingPreset =
IH264_INTERCODING_HIGH_SPEED;
staticParams->intraCodingParams.intraCodingPreset =
IH264_INTRACODING_HIGH_SPEED;
staticParams->transformBlockSize = IH264_TRANSFORM_8x8;
}
/* In case of interlaced encode, below would be used. In case of progressive
this will be ignored. */
//staticParams->interlaceCodingType = IH264_INTERLACE_FIELDONLY_SPF;
staticParams->enableAnalyticinfo = algCreateParams->enableAnalyticinfo;
staticParams->enableWatermark = algCreateParams->enableWaterMarking;
staticParams->videnc2Params.rateControlPreset = IVIDEO_USER_DEFINED;
staticParams->rateControlParams.rateControlParamsPreset = IH264_RATECONTROLPARAMS_USERDEFINED;
staticParams->rateControlParams.scalingMatrixPreset =
(IH264_HIGH_PROFILE == algCreateParams->profile)
? IH264_SCALINGMATRIX_NORMAL: IH264_SCALINGMATRIX_NONE;
staticParams->rateControlParams.rcAlgo = algCreateParams->rateControlPreset;
staticParams->videnc2Params.maxBitRate = algCreateParams->maxBitRate;
staticParams->videnc2Params.inputDataMode = IVIDEO_ENTIREFRAME;
staticParams->videnc2Params.outputDataMode = IVIDEO_ENTIREFRAME;
/* Temporal restrictions with H.264 encoder */
/* Number of temporal layeers set to 1. This is the default value */
/* in the codec*/
if (0 == algCreateParams->numTemporalLayer)
{
staticParams->numTemporalLayer = IH264_TEMPORAL_LAYERS_1;
}
else
{
staticParams->numTemporalLayer = algCreateParams->numTemporalLayer;
}
/*Note: Enabling this flag adds svc enxtension header to the stream, not all decoders
are generally able to play back such a stream. */
/* Needs to be enabled to IH264_SVC_EXTENSION_FLAG_ENABLE for the
svc extension headers to be present in the stream*/
/*!!! Note: This flag needs to be enabled for the temporalId to be parsed
out from the stream.*/
staticParams->svcCodingParams.svcExtensionFlag =
algCreateParams->enableSVCExtensionFlag;
/*Slice Coding Parameters*/
staticParams->sliceCodingParams.sliceCodingPreset = IH264_SLICECODING_DEFAULT;
staticParams->sliceCodingParams.sliceMode = IH264_SLICEMODE_NONE;
staticParams->sliceCodingParams.streamFormat = IH264_STREAM_FORMAT_DEFAULT;
/* To set IDR frame periodically instead of I Frame */
staticParams->IDRFrameInterval = 1;
/*To trigger workaround inside codec, where SAME_CODEC is overridden as same
codec type*/
staticParams->reservedParams[1] = 0x5A3EC0DE;
/* Enabling debug logging inside the codec. Details in appendix E in H.264
* encoder user guide.
*/
#ifdef ENCLINK_H264_PERFORMANCE_LOGGING
staticParams->debugTraceLevel = 1;
staticParams->lastNFramesToLog = ENCLINK_H264_PROFILER_NUM_FRAMES;
#endif
/* We want SPS and PPS to be set for every intra frame. Hence configure the
* the NALU control params to force encoder to insert SPS/PPS on every
* I frame
*/
staticParams->nalUnitControlParams.naluControlPreset =
IH264_NALU_CONTROL_USERDEFINED;
ENCLINK_H264_SETNALU_MASK_SPS(staticParams->nalUnitControlParams.
naluPresentMaskIntraPicture);
ENCLINK_H264_SETNALU_MASK_PPS(staticParams->nalUnitControlParams.
naluPresentMaskIntraPicture);
ENCLINK_H264_SETNALU_MASK_SPS(staticParams->nalUnitControlParams.
naluPresentMaskIDRPicture);
ENCLINK_H264_SETNALU_MASK_PPS(staticParams->nalUnitControlParams.
naluPresentMaskIDRPicture);
ENCLINK_H264_SETNALU_MASK_SEI(staticParams->nalUnitControlParams.
naluPresentMaskIDRPicture);
ENCLINK_H264_SETNALU_MASK_SPS(staticParams->nalUnitControlParams.
naluPresentMaskStartOfSequence);
ENCLINK_H264_SETNALU_MASK_PPS(staticParams->nalUnitControlParams.
naluPresentMaskStartOfSequence);
ENCLINK_H264_SETNALU_MASK_PPS(staticParams->nalUnitControlParams.
naluPresentMaskStartOfSequence);
staticParams->entropyCodingMode = IH264_ENTROPYCODING_CABAC;
if (algCreateParams->profile != IH264_HIGH_PROFILE)
{
memset (&staticParams->intraCodingParams, 0,
sizeof(IH264ENC_IntraCodingParams));
staticParams->transformBlockSize = IH264_TRANSFORM_4x4;
if (algCreateParams->profile == IH264_BASELINE_PROFILE)
{
staticParams->entropyCodingMode = IH264_ENTROPYCODING_CAVLC;
}
}
#if 1
staticParams->vuiCodingParams.vuiCodingPreset = IH264_VUICODING_USERDEFINED;
staticParams->vuiCodingParams.hrdParamsPresentFlag = 1;
staticParams->vuiCodingParams.timingInfoPresentFlag = 1;
#endif
//modify
#define SET_MEMB(memb, val) Vps_printf("%20s %d %d\n", #memb, memb, val); memb = val;
#if 1
Vps_printf("staticParams->entropyCodingMode %d\n", staticParams->entropyCodingMode);
SET_MEMB(staticParams->videnc2Params.outputDataMode, IVIDEO_SLICEMODE);
SET_MEMB(staticParams->videnc2Params.numOutputDataUnits, 1);
SET_MEMB(staticParams->sliceCodingParams.sliceCodingPreset, IH264_SLICECODING_USERDEFINED);
SET_MEMB(staticParams->sliceCodingParams.sliceMode, IH264_SLICEMODE_BYTES);
SET_MEMB(staticParams->sliceCodingParams.sliceUnitSize, 1200);
SET_MEMB(staticParams->sliceCodingParams.streamFormat, IH264_BYTE_STREAM);
#endif
//modify
return 0;
}
static Int enclink_h264_set_dynamic_params(
EncLink_AlgCreateParams *algCreateParams,
IH264ENC_DynamicParams *dynamicParams,
EncLink_AlgDynamicParams *algDynamicParams)
{
*dynamicParams = H264ENC_TI_DYNAMICPARAMS;
dynamicParams->videnc2DynamicParams.inputWidth =
algDynamicParams->inputWidth;
dynamicParams->videnc2DynamicParams.inputHeight =
algDynamicParams->inputHeight;
dynamicParams->videnc2DynamicParams.captureWidth =
algDynamicParams->inputPitch;
dynamicParams->videnc2DynamicParams.targetBitRate =
algDynamicParams->targetBitRate;
dynamicParams->videnc2DynamicParams.targetFrameRate =
algDynamicParams->targetFrameRate;
dynamicParams->videnc2DynamicParams.interFrameInterval =
algDynamicParams->interFrameInterval;
dynamicParams->videnc2DynamicParams.intraFrameInterval =
algDynamicParams->intraFrameInterval;
dynamicParams->videnc2DynamicParams.mvAccuracy =
algDynamicParams->mvAccuracy;
dynamicParams->rateControlParams.VBRDuration =
algDynamicParams->vbrDuration;
dynamicParams->rateControlParams.VBRsensitivity =
algDynamicParams->vbrSensitivity;
dynamicParams->videnc2DynamicParams.refFrameRate =
algDynamicParams->refFrameRate;
dynamicParams->videnc2DynamicParams.ignoreOutbufSizeFlag = XDAS_TRUE;
dynamicParams->videnc2DynamicParams.getBufferFxn =
enclink_h264_dummy_get_buffer_fxn;
dynamicParams->rateControlParams.rateControlParamsPreset
= IH264_RATECONTROLPARAMS_USERDEFINED;
dynamicParams->rateControlParams.scalingMatrixPreset =
(IH264_HIGH_PROFILE == algCreateParams->profile)
? IH264_SCALINGMATRIX_NORMAL: IH264_SCALINGMATRIX_NONE;
dynamicParams->rateControlParams.qpMinI = algDynamicParams->qpMinI;
dynamicParams->rateControlParams.qpMaxI = algDynamicParams->qpMaxI;
dynamicParams->rateControlParams.qpI = algDynamicParams->qpInitI;
dynamicParams->rateControlParams.qpMinP = algDynamicParams->qpMinP;
dynamicParams->rateControlParams.qpMaxP = algDynamicParams->qpMaxP;
dynamicParams->rateControlParams.qpP = algDynamicParams->qpInitP;
dynamicParams->rateControlParams.rcAlgo = algDynamicParams->rcAlg;
dynamicParams->rateControlParams.discardSavedBits = 1;
if(dynamicParams->rateControlParams.rcAlgo == IH264_RATECONTROL_PRC)
{
dynamicParams->rateControlParams.HRDBufferSize
= 2 * algDynamicParams->targetBitRate;
}
else
{
dynamicParams->rateControlParams.HRDBufferSize
= algDynamicParams->targetBitRate;
}
dynamicParams->rateControlParams.enablePRC = FALSE; // PRC is turned off for video security
dynamicParams->rateControlParams.initialBufferLevel
= dynamicParams->rateControlParams.HRDBufferSize;
dynamicParams->rateControlParams.frameSkipThMulQ5 = 0;
dynamicParams->rateControlParams.vbvUseLevelThQ5 = 0;
dynamicParams->rateControlParams.maxPicSizeRatioI = 640;
dynamicParams->rateControlParams.skipDistributionWindowLength = 5;
dynamicParams->rateControlParams.numSkipInDistributionWindow = 2;
//modify
SET_MEMB(dynamicParams->sliceCodingParams.sliceCodingPreset, IH264_SLICECODING_USERDEFINED);
SET_MEMB(dynamicParams->sliceCodingParams.sliceMode, IH264_SLICEMODE_BYTES);
SET_MEMB(dynamicParams->sliceCodingParams.sliceUnitSize, 1200);
SET_MEMB(dynamicParams->sliceCodingParams. streamFormat, IH264_BYTE_STREAM);
dynamicParams->videnc2DynamicParams.putDataFxn = cbDataSyncPutFxn;
dynamicParams->videnc2DynamicParams.putDataHandle = dynamicParams;
//modify
return 0;
}
你好;
你只需要在
static Int enclink_h264_set_dynamic_params(IH264ENC_DynamicParams *
dynamicParams,
EncLink_AlgDynamicParams *
algDynamicParams)
这个函数的最后加上我上面的4行代码就可以了, 用baseline编码,其他什么都不需要修改
只修改enclink_h264_set_dynamic_params也是不行的,我在调用enclink_h264_set_dynamic_params之后调用enclink_h264_print_dynamic_params看到参数是对的,请问有什么调试方法验证吗?怎么确认参数已经正确的设置到编码器的内部?谢谢!
[m3video]
[m3vpss ] 8265130: SWMS0 : Loading Horizontal Co-effs (UPSCALE)
[m3video] --------- CH 0 : H264 ENC : Dynamic Params -------
[m3vpss ] 8265130: SWMS : Co-effs Loading ... DONE !!!
[m3video]
[m3video] videnc2DynamicParams -> inputHeight : 576
[m3video] videnc2DynamicParams -> inputWidth : 704
[m3video] videnc2DynamicParams -> refFrameRate : 30000
[m3video] videnc2DynamicParams -> targetFrameRate : 30000
[m3video] videnc2DynamicParams -> targetBitRate : 1600000
[m3video] videnc2DynamicParams -> intraFrameInterval : 1800
[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 : 50
[m3video] rateControlParams -> qpMinI : 10
[m3video] rateControlParams -> qpP : -1
[m3video] rateControlParams -> qpMaxP : 50
[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 : 160
[m3video] rateControlParams -> HRDBufferSize : 160
[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
host] [ 0] 33ms, 7930 -> 16130 129Kbps 0Min
[m3video] intraCodingParams -> intraCodingBias : 0
[m3video]
[m3video] sliceCodingParams -> sliceCodingPreset : 1
[m3video] sliceCodingParams -> sliceMode : 2
[m3video] sliceCodingParams -> sliceUnitSize : 1200
[m3video] sliceCodingParams -> sliceStartOffset : [0 0 0]
[m3video] sliceCodingParams -> streamFormat : 0
[m3video]
[m3video] sliceGroupChangeCycle : 0
[m3video] searchCenter : 32767
[m3video] enableStaticMBCount : 0
[m3video] enableROI : 0
[m3video]
[m3video]
host] [ 1] 23ms, 10238 -> 6980 184Kbps 0Min
host] [ 2] 24ms, 9587 -> 443 188Kbps 0Min
[host] 948: IPC_BITS_IN : Stop Done !!!
[m3video] 8265407: DECODE: Stop in progress !!!
[m3vpss ] 8265408: SWMS: Stop in Progress !!!
[m3video] 8265407: DECODE: Stop Done !!!
你好;
从你打印
[m3video] sliceCodingParams -> sliceCodingPreset : 1 [m3video] sliceCodingParams -> sliceMode : 2 [m3video] sliceCodingParams -> sliceUnitSize : 1200
可以看出,配置是没有问题的;
当时刚才看你的码流,确实还是单个slice
你好;
这个是我修改过的代码,你对比一下;

会不会你还有其他地方的改动导致的呢 ?
我们的版本不一样,我的是DVRRDK04.01.00.02,编码器是H264ENC_TI DEV.500.V.H264AVC.E.IVAHD.02.00.06.00,附件是代码,是这个编码器不支持吗?还是参数设置的问题?谢谢!

你好;
确实h264编码器的版本升级了2个版本;
刚才看了一下版本更新注释H264_Encoder_HDVICP2_ReleaseNotes.pdf;
里面的对多slice编码的功能并没有影响的;
请问你使用的是什么版本?调用enc link的代码能给我看一下吗?谢谢!
你好;
我现在调试的版本是DVRRDK 4.00的版本;
static Void multich_hd_vs_set_encode_prm()
{
EncLink_CreateParams *encPrm = &gHdVsUsecaseContext.encPrm;
int i;
EncLink_ChCreateParams *pLinkChPrm;
EncLink_ChDynamicParams *pLinkDynPrm;
VENC_CHN_DYNAMIC_PARAM_S *pDynPrm;
VENC_CHN_PARAMS_S *pChPrm;
encPrm->numBufPerCh[ENC_LINK_PRIMARY_STREAM_POOL_ID] = NUM_BUFS_PER_CH_ENC_PRI;
for (i=0; i < gVencModuleContext.vencConfig.numPrimaryChn; i++)
{
pLinkChPrm = &encPrm->chCreateParams[i];
pLinkDynPrm = &pLinkChPrm->defaultDynamicParams;
pChPrm = &gVencModuleContext.vencConfig.encChannelParams[i];
pDynPrm = &pChPrm->dynamicParam;
pLinkChPrm->format = IVIDEO_H264BP;
pLinkChPrm->profile = VENC_CHN_BASELINE_PROFILE;
pLinkChPrm->dataLayout = VCODEC_FIELD_SEPARATED;
pLinkChPrm->fieldMergeEncodeEnable = FALSE;
pLinkChPrm->enableAnalyticinfo = FALSE;
pLinkChPrm->maxBitRate = pChPrm->maxBitRate;
pLinkChPrm->encodingPreset = pChPrm->encodingPreset;
pLinkChPrm->rateControlPreset = pChPrm->rcType;
pLinkChPrm->enableHighSpeed = FALSE;
pLinkChPrm->numTemporalLayer = VENC_TEMPORAL_LAYERS_1;
pLinkChPrm->enableSVCExtensionFlag = pChPrm->enableSVCExtensionFlag;
pLinkDynPrm->intraFrameInterval = pDynPrm->intraFrameInterval;
pLinkDynPrm->targetBitRate = pDynPrm->targetBitRate;
pLinkDynPrm->interFrameInterval = 1;
pLinkDynPrm->mvAccuracy = IVIDENC2_MOTIONVECTOR_QUARTERPEL;
pLinkDynPrm->inputFrameRate = pDynPrm->inputFrameRate;
pLinkDynPrm->rcAlg = pDynPrm->rcAlg;
pLinkDynPrm->qpMin = pDynPrm->qpMin;
pLinkDynPrm->qpMax = pDynPrm->qpMax;
pLinkDynPrm->qpInit = pDynPrm->qpInit;
pLinkDynPrm->vbrDuration = pDynPrm->vbrDuration;
pLinkDynPrm->vbrSensitivity = pDynPrm->vbrSensitivity;
}
gHdVsUsecaseContext.encPrm.inQueParams.prevLinkId = gHdVsUsecaseContext.ipcInVideoId;
gHdVsUsecaseContext.encPrm.inQueParams.prevLinkQueId = 0;
gHdVsUsecaseContext.encPrm.outQueParams.nextLink = gVencModuleContext.ipcBitsOutRTOSId;
MULTICH_HD_VS_CREATE_LINK(
gVencModuleContext.encId,
gHdVsUsecaseContext.encPrm
);
}
你能在enclink_h264_set_dynamic_params之后,调用enclink_h264_print_dynamic_params,抓一下打印,给我看一下吗?能给我你的开发环境的安装包吗?谢谢!
你好;
下面是调试的log信息,多slice编码的
[m3video] [m3video] [m3video] ENCLINK_H264:HEAPID:0 USED:11912 [m3video] ENCLINK_H264:HEAPID:3 USED:7176192 [m3video] 7383: ENCODE: Creating CH2 of 1920 x 1080, pitch = (1920, 1920) [PROGRESSIVE] [NON-TILED ], bitrate = 2500 Kbps ... [m3video] [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 : 2500000 [m3video] videnc2DynamicParams -> intraFrameInterval : 20 [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 : 51 [m3video] rateControlParams -> qpMinI : 1 [m3video] rateControlParams -> qpP : -1 [m3video] rateControlParams -> qpMaxP : 51 [m3video] rateControlParams -> qpMinP : 1 [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 : 2500000 [m3video] rateControlParams -> HRDBufferSize : 2500000 [m3video] rateControlParams -> minPicSizeRatioI : 0 [m3video] rateControlParams -> maxPicSizeRatioI : 0 [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 : 0 [m3video] [m3video] sliceCodingParams -> sliceCodingPreset : 1 [m3video] sliceCodingParams -> sliceMode : 2 [m3video] sliceCodingParams -> sliceUnitSize : 1024 [m3video] sliceCodingParams -> sliceStartOffset : [0 0 0] [m3video] sliceCodingParams -> streamFormat : 0 [m3video] [m3video] sliceGroupChangeCycle : 0 [m3video] searchCenter : 32767 [m3video] enableStaticMBCount : 0 [m3video] enableROI : 0 [m3video]
你好;
这个是刚才上面参数打印时候编码多slice的码率,附件下载

你好;
关于RDK的源码包,最好是通过TI的技术支持获取,需要签NDA协议
非常感谢你的帮助。问题总算解决了,要把encodepreset设置userdefine。谢谢!