LuckFox Pico pro RV1106G2 ,在使用ROCKIT MPI的VENC进行H265编码的时候,码率和编码模式无论怎么设置,都不起作用
Posted: 2025-04-18 3:37
在使用ROCKIT MPI的VENC进行H265编码1080p的时候,码率和编码模式无论怎么设置,无论是VBR还是CBR,码率无论设置1M还是10M,得到的视频均为动态码率,静止画面400kbps左右,动态画面2Mbps左右。且在绑定VI和VENC之后使用在使用RK_MPI_VENC_GetChnAttr捕获设置的值,均已设置成功且值是对的。
以下是我设置CBR的参数:
rkmedia_venc_config->stAttr.stRcAttr.enRcMode = VENC_RC_MODE_H265CBR;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32StatTime=2;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32BitRate = 5000; //平均码率
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32Gop = 60; //gop间隔
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32SrcFrameRateDen=1;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32SrcFrameRateNum=30;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.fr32DstFrameRateDen=1;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.fr32DstFrameRateNum=30;
rkmedia_venc_config->stAttr.stGopAttr.enGopMode=VENC_GOPMODE_NORMALP;
//编码参数设置
rkmedia_venc_config->stAttr.stVencAttr.u32MaxPicWidth = 1920;
rkmedia_venc_config->stAttr.stVencAttr.u32MaxPicHeight = 1080;
rkmedia_venc_config->stAttr.stVencAttr.u32PicWidth = 1920;
rkmedia_venc_config->stAttr.stVencAttr.u32PicHeight = 1080;
rkmedia_venc_config->stAttr.stVencAttr.u32VirWidth = 1920;
rkmedia_venc_config->stAttr.stVencAttr.u32VirHeight = 1080;
rkmedia_venc_config->stAttr.stVencAttr.u32StreamBufCnt = 8; //编码输出最大缓存个数
rkmedia_venc_config->stAttr.stVencAttr.u32BufSize = rkmedia_venc_config->stAttr.stVencAttr.u32PicWidth * rkmedia_venc_config->stAttr.stVencAttr.u32MaxPicHeight*1.5 / 2; //码流Buffer大小
rkmedia_venc_config->stAttr.stVencAttr.u32Profile=0;//profile等级,h265为 main :0
rkmedia_venc_config->stAttr.stGopAttr.u32MaxLtrCount = 1;
以下是我设置CBR的参数:
rkmedia_venc_config->stAttr.stRcAttr.enRcMode = VENC_RC_MODE_H265CBR;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32StatTime=2;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32BitRate = 5000; //平均码率
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32Gop = 60; //gop间隔
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32SrcFrameRateDen=1;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.u32SrcFrameRateNum=30;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.fr32DstFrameRateDen=1;
rkmedia_venc_config->stAttr.stRcAttr.stH265Cbr.fr32DstFrameRateNum=30;
rkmedia_venc_config->stAttr.stGopAttr.enGopMode=VENC_GOPMODE_NORMALP;
//编码参数设置
rkmedia_venc_config->stAttr.stVencAttr.u32MaxPicWidth = 1920;
rkmedia_venc_config->stAttr.stVencAttr.u32MaxPicHeight = 1080;
rkmedia_venc_config->stAttr.stVencAttr.u32PicWidth = 1920;
rkmedia_venc_config->stAttr.stVencAttr.u32PicHeight = 1080;
rkmedia_venc_config->stAttr.stVencAttr.u32VirWidth = 1920;
rkmedia_venc_config->stAttr.stVencAttr.u32VirHeight = 1080;
rkmedia_venc_config->stAttr.stVencAttr.u32StreamBufCnt = 8; //编码输出最大缓存个数
rkmedia_venc_config->stAttr.stVencAttr.u32BufSize = rkmedia_venc_config->stAttr.stVencAttr.u32PicWidth * rkmedia_venc_config->stAttr.stVencAttr.u32MaxPicHeight*1.5 / 2; //码流Buffer大小
rkmedia_venc_config->stAttr.stVencAttr.u32Profile=0;//profile等级,h265为 main :0
rkmedia_venc_config->stAttr.stGopAttr.u32MaxLtrCount = 1;