基于FFmpeg的视频客户端的设计与实现

2015-07-27 02:11李官敏金俊秀解放军国防信息学院武汉430010
山东工业技术 2015年8期
关键词:缓冲区数据包解码

李官敏,金俊秀(解放军国防信息学院,武汉 430010)

基于FFmpeg的视频客户端的设计与实现

李官敏,金俊秀
(解放军国防信息学院,武汉 430010)

本文以Android手机操作系统为平台,设计和实现了基于FFmpeg的视频客户端软件。采用模块化的设计思想,将该客户端分为用户登录模块、视频接收模块、视频解码模块和视频显示模块。软件采用C/S架构模式,在完成基于RTP/RTCP协议的数据包接收后,借助FFmpeg进行视频转换。经测试,该视频客户端对视频的处理效果良好,具有广阔的应用前景。

Android;FFmpeg;C/S;RTP/RTCP;客户端

1 引言

随着网络技术和通信技术的不断发展,网络视频监控技术突破了地域的限制,广泛地应用于各个领域。但是传统视频监控系统采用将采集的实时视频传输到监控中心并由专业人员处理突发事件的方式,并不能满足用户多元化的需求。

本文旨在设计基于FFmpeg的视频客户端软件,即移动终端上的视频监控系统。该客户端可以让用户远程地使用手机接收视频了解监控情况并迅速做出处理,在降低了监控服务成本的同时满足了人们对监控便捷性的要求[1]。

2 系统设计方案

本文结合Android操作系统的特点和流媒体协议,设计并实现了基于FFmpeg的视频客户端软件。考虑到客户端处理问题的需求及安全性,整体系统采用C/S的架构模式,摆脱了Android对B/S架构中浏览器功能的局限性,可以采用多种视频编解码标准展示不同的视频格式。系统的总体架构图如图1所示。

3 客户端软件设计

本文视频客户端软件基于Android平台开发,运用Java语言编写代码设计并实现了用户登录、视频接收、视频解码和视频显示四个模块。

3.1 用户登录模块

为了视频的安全保密性,用户在登陆前需要通过身份信息的验证。若用户名密码均验证通过则进入摄像头选择界面,可选择摄像头编号并进行视频显示。

3.2 视频接收模块

视频接收模块主要负责与远程服务器连接,并接收远程服务端以数据包形式传输的视频,最后把数据包存入待解码缓冲区。目前,视频的传输采用流媒体技术,本客户端采用实时传输协议RTP完成端到端的传输,RTP通常运行于UDP协议之上,是一种基于网络的一对一或一对多的多媒体数据流的传输协议。与数据传输控制协议RTCP一同使用,RTCP负责在RTP会话期间向应用程序提供会话、广播性能质量的统计信息[2]。

由于在客户端接收过程中,较大的数据包会被分割,因此需要对不完整的视频帧进行重新组帧。在缓冲后解码前,从缓冲区内获取数据包,并根据其时间戳和序列号来判断是否接收到充足的数据,再根据帧算法完成帧的合成。帧处理算法流程图如图2所示。

3.3 视频解码模块

由于摄像头采集的视频数据量很大,而且依赖于无线网络完成传输,对于视频的存储和传输都相对困难。因此需要将视频进行压缩,在保持视频清晰度的同时减少视频的存储空间,提高视频的传输速度。

在解码之前,首先需要通过av_registerall( )注册FFmpeg的各种解码格式,然后通过avformat_find_stream_info( )获取数据已经解析的编码信息,并通过avcodec_find_decoder( )选择合适的解码器,在运用avcodec_alloc_frame( )为解码数据帧分配内存后,利用av_get_ frame( )获取待解码缓存区内的帧数据,并用avcodec_decode_video()进行解码,解码完成的帧需要通过av_set_frame( )放入待播放缓冲区。在此过程中,需要通过av_has_next_frame( )进行判断待解码缓冲区内是否还存在数据帧,若解码完成则调用avcodec_close( )释放内存。解码模块的流程图如图3所示。

3.4 视频显示模块

视频在解码后就可以进行播放,视频播放模块主要面向用户,考虑到用户体验本客户端软件界面设计简约美观。视频采用实时播放,一般情况下视频解码完成一帧后,视频播放模块读取该帧数据进行播放。但是这就会导致视频播放可能出现抖动,因此本客户端软件对视频播放模块进行了改进,采用帧延迟的方法缓存待播放的帧,从而提高视频的播放效果,帧延时算法如图4所示。视频的显示效果图如图5所示。

4 结语

本文设计并实现了基于FFmpeg的视频客户端的软件,完成了用户登录、视频接收、视频解码和视频显示功能。本客户端安装并运行于Android手机,结合视频监控系统硬件设备进行了功能测试。测试结果表明各项功能均达到要求,客户端具较好的通用性机及广阔的应用前景。

[1]詹青龙.网络视频技术及应用[M].西安:西安电子科技大学出版社,2004.

[2]史凯雒,江涛,张治中.基于RTP的H.264无线视频传输和Qos控制[J].微计算机信息,2009,25(02):162.

李官敏,硕士,解放军国防信息学院二系助教,研究方向:军事装备学。

猜你喜欢
缓冲区数据包解码
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
文化解码
解码eUCP2.0
文化 解码
文明 解码
C#串口高效可靠的接收方案设计
缓冲区溢出漏洞攻击及其对策探析
初涉缓冲区
本期导读