今天我们继续说一个开源的DEMO,这次的开源DEMO是利用RV1126作为开发板,用他的API进行编码码流的采集并保存到文件里面。下面我们先来看看这个程序的总体框图:
从这个框图我们对这个项目有个大概的了解,其实这个项目还是很简洁的。就是main函数作为入口,然后进行VI设备的初始化、VENC初始化、把VI和VENC进行绑定操作、最后开启采集线程进行码流的保存。
下面我们通过简单的案例来加深理解:
首先,我们来看看模块初始化的代码(看上图):这里的初始化包括:isp模块初始化、VI模块初始化、VENC模块初始化:
经过上面一系列模块的初始化操作之后,我们还需要把VI模块和VENC模块进行绑定操作,整个编码器才能够真正工作起来。绑定操作如下图:
利用RK_MPI_SYS_Bind把VI模块和VENC模块进行绑定:
这个代码就是在h264_venc_thread线程里面,创建一个死循环。并利用RK_MPI_SYS_GetMediaBuffer的API进行每一帧H264码流的采集、并利用fwrtite保存到H264文件里面。
下面是运行的效果: