RK1126视频输入
2023-02-16 17:40:09 14 举报
AI智能生成
RK1126视频输入大致流程
作者其他创作
大纲/内容
RK_MPI_SYS_Init()
1、初始化系统
pcVideoNode 设备节点
u32BufCnt VI捕获视频缓冲区计数
u32Width 视频宽度
u32Height 视频高度
enPixFmt video格式
enBufType VI捕获视频缓冲区类型
enWorkMode VI通道工作模式
VI_CHN_ATTR_S
RK_MPI_VI_SetChnAttr 设置VI通道属性
RK_MPI_VI_EnableChn 启用VI通道
2、VI(视频输入) 初始化
enType 编码协议类型
imageType 定义图像格式
u32PicHeight 编码图像高度
u32PicWidth 编码图像宽度
u32Profile 编码的等级
stVencAttr 编码器属性
enRcMode 编码通道码率控制器模式
u32Gop 帧率
u32BitRate 码率
u32SrcFrameRateNum 数据源帧率分子
u32SrcFrameRateDen 数据源帧率分母
fr32DstFrameRateNum 目标帧率分子
fr32DstFrameRateDen 目标帧率分母
stH264Cbr 码率控制器属性
stRcAttr 码率控制器属性
VENC_CHN_ATTR_S
RK_MPI_VENC_CreateChn 创建编码通道
3、VENC(编码) 初始化
enModId 模块号
s32DevId 设备号
s32ChnId 通道号
MPP_CHN_S
RK_MPI_SYS_RegisterOutCb 注册数据输出回调
RK_MPI_MB_GetFlag(mb) 标记该Buffer的特殊属性,比如帧类型:I帧、P帧等
RK_MPI_MB_GetPtr(mb) 获取数据
RK_MPI_MB_GetSize(mb) 获取数据大小
RK_MPI_MB_TsNodeDump(mb); 节点转储
RK_MPI_MB_ReleaseBuffer(mb) 释放缓冲区
void video_packet_cb(MEDIA_BUFFER mb) 设备回调函数
4、设置数据回调
MPP_CHN_S stSrcChn; stSrcChn.enModId = RK_ID_VI; stSrcChn.s32DevId = 0; stSrcChn.s32ChnId = 0;
MPP_CHN_S stDestChn; stDestChn.enModId = RK_ID_VENC; stDestChn.s32DevId = 0; stDestChn.s32ChnId = 0;
RK_MPI_SYS_Bind 数据源到数据接收者绑定接口
5、数据绑定
while (!quit) //程序死循环 { usleep(500000); }
6、添加程序死循环以及退出信号
fclose 关闭文件
RK_MPI_SYS_UnBind 解除数据绑定 VI -----> VENC
RK_MPI_VENC_DestroyChn 销毁 VENC , 在销毁VI之前
RK_MPI_VI_DisableChn 销毁 vi
7、释放相关变量
RK1126视频输入编写流程
收藏
收藏
0 条评论
回复 删除
下一页