/*encode进video*/ pIpcInVideoPrm = &(IpcInVideoPrm); pIpcInVideoPrm->inQueParams.prevLinkId = ipcOutVpssId; pIpcInVideoPrm->inQueParams.prevLinkQueId = 0; pIpcInVideoPrm->numOutQue = 1; pIpcInVideoPrm->outQueParams[0].nextLink = encId; pIpcInVideoPrm->notifyNextLink = TRUE; pIpcInVideoPrm->notifyPrevLink = TRUE; pIpcInVideoPrm->noNotifyMode = FALSE; pEncPrm = &(EncPrm); { for(i=0;i<ENCODER_H264_CHAN_NUMS;i++){ pEncPrm->chCreateParams[i].format = IVIDEO_H264HP; pEncPrm->chCreateParams[i].profile = IH264_HIGH_PROFILE; pEncPrm->chCreateParams[i].dataLayout = IVIDEO_FIELD_SEPARATED; pEncPrm->chCreateParams[i].fieldMergeEncodeEnable = FALSE; pEncPrm->chCreateParams[i].enableAnalyticinfo = 0; pEncPrm->chCreateParams[i].enableWaterMarking = 0;/////////////////////////////////// pEncPrm->chCreateParams[i].maxBitRate = -1;//////////////////////////////////////////加的 pEncPrm->chCreateParams[i].encodingPreset = XDM_DEFAULT; pEncPrm->chCreateParams[i].rateControlPreset = IVIDEO_STORAGE; pEncPrm->chCreateParams[i].enableSVCExtensionFlag = 0;/////////////////////////////// pEncPrm->chCreateParams[i].numTemporalLayer = 0;////////////////////////////////////
pEncPrm->chCreateParams[i].defaultDynamicParams.intraFrameInterval = 150; pEncPrm->chCreateParams[i].defaultDynamicParams.inputFrameRate = 60;//video_param.nFrameRate; if(i==0){ // pEncPrm->chCreateParams[i].defaultDynamicParams.inputFrameRate = vPort0FrameRate; pEncPrm->chCreateParams[i].defaultDynamicParams.targetBitRate = vPort0BitRate;//2000 * 1000; //video_param.sBitrate*1000;//////////////////////////////////////////////////////////////////// } else if(i==1){ // pEncPrm->chCreateParams[i].defaultDynamicParams.inputFrameRate = vPort1FrameRate; pEncPrm->chCreateParams[i].defaultDynamicParams.targetBitRate = vPort1BitRate;//20000 * 1000; //video_param.sBitrate*1000; } pEncPrm->chCreateParams[i].defaultDynamicParams.interFrameInterval = 1; pEncPrm->chCreateParams[i].defaultDynamicParams.mvAccuracy = IVIDENC2_MOTIONVECTOR_QUARTERPEL; pEncPrm->chCreateParams[i].defaultDynamicParams.rcAlg = 1;///////////////////// pEncPrm->chCreateParams[i].defaultDynamicParams.qpMin = 10;/////////////////////// pEncPrm->chCreateParams[i].defaultDynamicParams.qpMax = 40;/////////////////// pEncPrm->chCreateParams[i].defaultDynamicParams.qpInit = -1;////////////////////// pEncPrm->chCreateParams[i].defaultDynamicParams.vbrDuration = 8;//////////////////// pEncPrm->chCreateParams[i].defaultDynamicParams.vbrSensitivity = 0;////////////////////// }
for(i=ENCODER_H264_CHAN_NUMS;i<ENCODER_H264_CHAN_NUMS+ENCODER_MJPG_CHAN_NUMS;i++){ pEncPrm->chCreateParams[i].format = IVIDEO_MJPEG; pEncPrm->chCreateParams[i].profile = 0; pEncPrm->chCreateParams[i].dataLayout = IVIDEO_FIELD_SEPARATED; pEncPrm->chCreateParams[i].fieldMergeEncodeEnable = FALSE; pEncPrm->chCreateParams[i].enableAnalyticinfo = 0; pEncPrm->chCreateParams[i].enableWaterMarking = 0; pEncPrm->chCreateParams[i].maxBitRate = 0; pEncPrm->chCreateParams[i].encodingPreset = 0; pEncPrm->chCreateParams[i].rateControlPreset = 0; pEncPrm->chCreateParams[i].enableSVCExtensionFlag = 0; pEncPrm->chCreateParams[i].numTemporalLayer = 0; pEncPrm->chCreateParams[i].defaultDynamicParams.intraFrameInterval = 0; pEncPrm->chCreateParams[i].defaultDynamicParams.targetBitRate = 100*1000;/////////////////////// pEncPrm->chCreateParams[i].defaultDynamicParams.interFrameInterval = 0; pEncPrm->chCreateParams[i].defaultDynamicParams.mvAccuracy = 0; pEncPrm->chCreateParams[i].defaultDynamicParams.inputFrameRate = 1;//pDynPrm->inputFrameRate; pEncPrm->chCreateParams[i].defaultDynamicParams.qpMin = 0; pEncPrm->chCreateParams[i].defaultDynamicParams.qpMax = 0; pEncPrm->chCreateParams[i].defaultDynamicParams.qpInit = -1; pEncPrm->chCreateParams[i].defaultDynamicParams.vbrDuration = 0; pEncPrm->chCreateParams[i].defaultDynamicParams.vbrSensitivity = 0; } }
pEncPrm->inQueParams.prevLinkId = ipcInVideoId; pEncPrm->inQueParams.prevLinkQueId = 0; pEncPrm->outQueParams.nextLink = ipcBitsOutVideoId;
这是我encodelink的设置,大神帮忙看看,谢谢
Eason Wang:
1. 你用什么去解码看效果的?
2. 码率是多少,我看你input frame是60? 增加码率可以改善吗
3. 编码设置的是High profile, 有些解码器未必很好的支持。你换成别的试试