前面两篇博客说明了如何用HI3518生成视频H264数据及分析H264数据格式,但常规是将H264数据通过网络发送出去,能让客户端也能远程观看HI3518拍摄到的视频。下面介绍一种比较简单的应用,将HI3518当作服务器,用RTSP打包H264数据可以在局域网内采用rtsp观看。
将代码放在虚拟机hi3518目录下,直接make编译,编译完后生成可执行程序rtsp,将rtsp通过TFTP传到开发板,并改权限让其可执行,然后输入./rtsp运行程序,在电脑上打开VLC软件,按下图设然后点击播放就可在播放器上显示拍摄到的图面。
VCL播放界面,注意VLC左上角是RTSP网址,不是H264文件:
废话不多说,看代码:
int main(void)
{
int s32MainFd,temp;
struct timespec ts = { 2, 0 };
pthread_t id;
//分配环形缓冲区,总共32个,每个大小为size
ringmalloc(720*576);
printf("RTSP server START\n");
//设置服务器信息全局变量,设置内容保存在stPrefs结构体
PrefsInit();/未引用头文件
printf("listen for client connecting...\n");
signal(SIGINT, IntHandl);
//创建、设置、绑定、监听套接字,并将套接字设为非阻塞模式
s3