信息技术 2o14年第33期l科技创新与应用 基于FFmpeg的嵌入式网络视频监控系统 谭石坚 (广州大学华软软件学院,广东从化510990) 摘要:视频监控正朝着嵌入式、网络化、无线化的方向发展。嵌入式视频监控系统已成当今数字视频研究的热点之一,如何加强 视频监控实时性和准确性是视频监控技术中的主要重点。本系统采用FFmpeg作为编码工具,以ARM平台为基础,结合嵌入式 技术、视频压缩编码技术、网络传输技术,设计一个低成本、高性能、易普及的嵌入视频监控系统。 关键词:视频监控;FFmpeg;H.264 addr.sin family=AFA[NET; 1系统总体框架 视频监控以视频编解码技术、计算机网络技术、数字信号处理 addr.sin port=htons(PORT); addr.sinad&.saddr-ineta 技术和嵌入式系统为主要核心技术。本系统把从摄像机采集的模拟 __av_register ̄l0 _视频信号通过视频编码器直接转换成视频流,并通过计算机网络传 输。具备视频编码处理、网络通信、系统控制等强大功能,直接支持 网络视频传输和网络管理,使得监控范围达到前所未有的广度。 本系统采用“采集端一服务端一接收端“的C/S架构,硬件平台采 用ARM嵌入式处理器和摄像头,操作系统基于嵌入式Linuxt”。整个 系统分成分为三个部分,分别为采集端、服务端、接收端。采集端将 采集得到的视频数据经过处理,转换成H.264格式。通过网络在服 务端进行转发,在接收端将视频显示出来,系统总体框架如图1。 采集端 服务端 }接收端 (采集摄像头数据 — (进行数据转发) —— (请求视频数据并 并进行编码) J播放) 图1视频监控系统框架图 采集端负责采集摄像头数据并使用FFmpeg进行H.264的视频 编码目。通过网络向服务器发送视频数据。服务器端负责接收来自采 集端的视频数据,然后接收客户端的视频请求,向客户端发送视频 数据。接收端为用户客户端,负责接收服务器视频数据并且播放或 者保存文件。 采集端是一个基于ARM的嵌入式系统,操作系统使用Linux 操作系统,视频编码使用FFmpeg和H264提供的程序库。采集端系 统架构如图2。 视频采集应用程序 视频采集j◆ 视频编码 网络传输 一_— Vi&jo 41inux 2 j FFmpeg ’ l◆ 厂 I 摄像头驱动 网卡驱动 个 摄像头 网卡 图2采集端系统框架图 本系统的视频采集使用linux的videodhnux2编程接口[31,而视 频编码由FFmpeg+H264共同完成。在使用FFmpeg编码之前,首先 需要对FFmpeg库进行初始化,注册所有的编解码器以及文件格式, 设置编码器码率、帧速率、编码像素格式等参数,然后寻找编码器并 打开,打开编码器之后才可以进行编码 。使用FFmpeg编码流程如 图3。 本系统中的网络传输功能是一大重点。采集端将原始摄像头视 频数据进过编码后,以网络方式传输到服务器上。在使用网络传输 前需要对本机的网络进行初始化。以下是部分初始化网络程序日。 int sockfd=0: struct sockaddr_in addr; bzero(&addr,sizeof(addr)); 设置sockaddr_in结构体中的相关参数 / ddr(SERVERIP); /¥创建socket*/ sockfd=socket(AF_IN]ET, avSOCKSTREAM,0); _open_inpuLfileO / 调用connect函数主动发 、 起对服务器的连接 / if(connect(sockfd,(struct sockaddr ̄ )&addr.sizeof(addr)1== avcodec_openO -1){ perror(”connect”); exit(i); } 网络连接的初始化完成,一 刹je -i|am 旦connect函数连接服务器成 功,就可以随时与服务器进行数 据收发。 至此,采集端已经完成了一 avcodec_encode_video0 帧视频数据的采集、压缩、网络 传输这三个主要的过程。而视频 监控的整个过程就是以上步骤 的重复进行。正是由采集端传输 avcodec_closeO 的一帧一帧视频数据,最终传送 到客户端,不断显示图像,达到 图3 FFmpeg使用总体流程 视频监控效果。 2结束语 本系统采用ARM嵌入式系统实现了视频监控中的视频采集、 编码和传输三个重要功能。与众多的视频传输设计相比,本设计采 用了现今业内最常用的H.264视频编解码技术。具有一定的前沿性 和比较高的市场价值。 参考文献 [1】嵌入式Hnux应用开发标准教程(第二版)[M】.北京:人民邮电出 版社.2009. J-2]FFMPEG[Z].http://www.ffmpeg.com/[2012/9/28]. [3]Video4“nux2[z】.http://en.wikipedi ̄.org/wiki/Video4Linux[2008/3/1]. I4]X264[Z].http://www.videolan.org/developers/x264.html[2005/12/12]. 115]UNIX网络编程卷1:套接字联网API(第三版)『M].北京:人民邮 电出版社,2010. 作者简介:谭石坚(1981,5一),男,籍贯:广东,硕士,主要研究方 向是嵌入式系统设计,视频编解码,网络安全等。 —.97——