您的位置:首页 > 游戏 > 手游 > crm和scrm有什么区别_大连公共资源交易平台_搜索引擎营销的流程_怎么搭建属于自己的网站

crm和scrm有什么区别_大连公共资源交易平台_搜索引擎营销的流程_怎么搭建属于自己的网站

2025/3/11 0:26:51 来源:https://blog.csdn.net/weixin_49529507/article/details/146023064  浏览:    关键词:crm和scrm有什么区别_大连公共资源交易平台_搜索引擎营销的流程_怎么搭建属于自己的网站
crm和scrm有什么区别_大连公共资源交易平台_搜索引擎营销的流程_怎么搭建属于自己的网站

        这节分享一下通过rkmedia的api获取RV1126的VI视频流,但是具体的已经在第一个推流项目已经说了。这里更多是回顾一下这部分的api。

采集vi数据实现

        VI_CHN_ATTR_S,视频采集的VI模块。

int main()
{int ret;VI_CHN_ATTR_S vi;vi.pcVideoNode = CAMERA_PAHT; //video nodevi.u32Width = 1920; //宽度vi.u32Height = 1080;//高度vi.enPixFmt = IMAGE_TYPE_NA12; //图像格式vi.BufCnt = 3; //一般默认3 vi.enWorkMode = VI_WORK_MODE_NORMAL;vi.enBufType = VI_CHN_BUF_TYPE_MMAP//把配置好的参数传进去ret = RK_MPI_VI_SetChnAttr(VI_PIPE_ID, VI_CHN_ID, &vi);if(ret){printf("RK_MPI_VI_SetChnAttr 失败\n");return -1;}else {printf("RK_MPI_VI_SetChnAttr 成功\n");}//使能vi模块ret = RK_MPI_VI_EnableChnAttr(VI_PIPE_ID,VI_CHN_ID);if(ret){printf("RK_MPI_VI_EnableChnAttr 失败\n");}else{printf("RK_MPI_VI_EnableChnAttr 成功\n");}
}

        启动VI模块进行摄像头数据的采集

        下面代码是启动VI模块进行摄像头采集,这里使用的API是RK_MPI_VI_StartStream。

    //启动视频输入流ret = RK_MPI_VI_StartStream(PIPE_ID, CHN_ID);if (ret){printf("RK_MPI_VI_StartStream Failed...\n");return -1;}else{printf("RK_MPI_VI_StartStream Success...\n");}

        视频采集到了就开始创建多线程获取VI码流数据并传输到RGA模块 

//创建多线程工作
pthread_t pid;
pthread_create(&pid, nullptr, get_camera_vi_thred, nullptr);
//获取VI码流数据并传输到RGA模块, 起始主要功能就是做一个转发
void* get_camera_vi_thred(void* args)
{//起始就是一个指针类型MEDIA_BUFFER mb;while(1){// 获取VI数据mb = RK_MPI_SYS_GetMediaBuffer(RK_ID_VI,VI_CHN_ID, -1);if(!mb){printf("获取vi数据失败\n");break; //不要在一直获取了}// 传输到RGA模块RK_MPI_SYS_SendMediaBuffer(RK_ID_RGA, 0, mb);// 释放mb数据RK_MPI_MB_ReleaseBuffer();}
}

        初始化VI模块后,则需要创建get_camera_vi_thread线程去获取VI码流数据并发送到RGA模块。这个线程需要使用RK_MPI_SYS_GetMediaBuffer死循环获取VI码流的数据,这里的模块号是RK_ID_VI,通道号是CHN_ID:0,第三个参数:-1阻塞获取。

        获取了每一帧的VI数据后,则调用RK_MPI_SYS_SendMediaBuffer的API把每一帧VI数据发送到RGA模块,第一个参数:模块号ID(RK_ID_RGA)、第二个参数:通道号ID(这里填0,因为RGA模块创建的通道号是0)、第三个参数:VI码流的缓冲数据。发送完每一帧VI码流数据之后,则释放资源RK_MPI_MB_ReleaseBuffer。

        总结一下,起始就是做了一下数据转发,获取到vi数据,然后转发到rga模块。

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com