iPhone 4手机视频监控系统的设计

2012-06-25 03:31高西萍
电视技术 2012年3期
关键词:云台服务器端解码

高西萍,曾 浩,程 瑶

(重庆邮电大学通信学院,重庆 400065)

1 系统介绍

手机视频监控近几年发展非常迅速,手机终端的发展也是非常迅猛,特别是随着iPhone手机的推出,手机进入了一个新的时代,用iPhone手机已经成为一种时尚。在这种趋势下,基于iPhone的软件开发具有很好的市场前景。

手机视频监控系统可以分为4个层次:前端采集设备、服务器、移动通信网络、手机终端(iPhone 4)。本文给出的基于iPhone 4的手机视频监控系统采用C/S(客户端/服务器)模型,整体的框架图如图1所示。

图1 系统框架图

服务器端和客户端之间采用TCP方式传输数据[1]。服务器端采用集群式服务器系统的设计架构,根据3G网络的状况加入子码流传输和管理。iPhone手机客户端主要有用户登录、权限管理和云台控制等功能。客户端基于iOS4.3及以上的操作系统,主要完成信令处理、解码上屏等功能,其中在解码方面客户端会对所有H.264格式的视频编码流进行统一的解码处理。

2 服务端的设计

移动视频监控系统的特点是并发量大,会出现很多用户同时通过移动网络访问某个交通要道的监控点的情况。因此移动视频监控系统主要存在两个问题:服务器性能不足和网络拥塞[2]。鉴于此,本设计服务器端采用多台服务器组成的集群共同提供流媒体服务,其服务器端的架构图如图2所示。

图2 集群式服务器端的架构图

服务器端由3G入口网关服务器、认证服务器、3G流媒体服务器、通信服务器、云台控制服务器等模块组成。

1)3G入口网关服务器。系统对外公布的入口地址是该服务器的IP地址。该服务器的主要功能是接收用户的连接请求,调用认证服务器的认证功能对用户进行身份验证,同时取得当前负载最低的流媒体服务器,并利用重定向功能将流媒体服务器的IP地址和端口号返回给用户。引入入口网关服务器可以对外屏蔽认证服务器和流媒体服务器,使得这两个服务器与外界完全隔绝,保证了系统的安全。主要负责用户认证转发、权限转发信息以及压力分配的处理。

2)认证服务器。功能包括维护当前在线用户列表、用户权限认证等用户管理。认证服务器对外提供各种用户权限认证的功能,比如用户登录认证、流媒体访问权限认证、云台控制权限认证。

3)3G流媒体服务器。流媒体服务器是这个系统的核心,主要功能是为用户提供流媒体的服务。由于一台服务器无法支持大量用户并发所需的计算能力和网络带宽,系统中设置了多台媒体服务器为用户提供服务。每台流媒体服务器之间相互独立,流媒体服务器与用户之间形成一对多的关系,用户在一次流媒体会话中不能在不同流媒体之间进行切换。

4)通信服务器。因为网络摄像机不能满足高并发,无法实现实时的视音频数据的传输。因此通信服务器的功能是接收网络摄像机的音视频数据,然后发给3G流媒体服务器。

5)云台控制服务器。云台控制服务器的本质是网络摄像机云台控制服务的代理服务器。云台控制服务器收到客户端发送的云台控制后,转换成标准的云台控制指令,然后发动到前端采集设备。

3 客户端的设计

从2007年发布至今,苹果手机已经从最早的iPhone一代升级到了iPhone 4。iPhone OS是由苹果公司为iPhone开发的操作系统,iPhone 4采用苹果最新的iPhone OS 4.0系统。

本系统中手机客户端主要完成解码和上屏、云台控制的功能[2],由此设计出客户端流媒体播放器的结构如图3所示。

图3 流媒体播放器系统结构图

本系统视频编码采用的是目前最流行的H.264编码格式,它与现有的MPEG-2,MPEG-4及H.263相比,具有明显的优越性,特别是编码效率上的提高,使之能用于许多新的领域[3],该系统中的客户端会对所有H.264格式的视频编码流进行统一的解码处理。

目前PC平台的H.264解码器比较完善,其中开源的解码器主要包括 JM decoder,T264 decoder,x264 decoder,FFmpeg libavcodec,Intel IPP simple player等。但是在iPhone OS平台还没有可用的解码器,所以必须对现有PC平台上的解码器进行修改,使之能够在iPhone OS平台上正确运行,即将解码器由PC平台移植至iPhone OS平台[4]。

FFmpeg是一个集录制、转换、音视频编码解码功能为一体的完整的开源解决方案。FFmpeg的解码流程总的可以概括为[5]:打开一个文件后,读取里面的视频流,找到对应的解码器并打开,从流中读取帧数据并解码。具体的视频解码流程如图4所示。

图4 FFmpeg视频解码流程图

1)初始化libavformat/libavcodec,实现代码为:

这一步注册库中含有的所有可用的文件格式和编码器,这样当打开一个文件时,它们才能够自动选择相应的文件格式和编码器。

2)打开文件,实现代码为:

3)从AVFormatContext获取Stream的信息。实现代码为:

流中关于编解码器的信息就是“codec context”(编解码器上下文)。这里面包含了流中所使用的关于编解码器的所有信息,现在有了一个指向它的指针,下面要找到真正的编解码器并且打开它。

4)寻找视频流的解码器并打开它,实现代码为:

5)为解码帧分配内存,实现代码为:

6)不停地从码流中提取出帧数据,判断帧的类型,对于视频帧调用avcodec_decode_video()解码,实现代码为:

7)转换图像格式,实现代码为:

因为准备输出保存24位RGB格式的JPEG文件,且iPhone只支持RGB格式,因此必须把解码后的图像格式从原来的YUV420转换为RGB格式。

8)解码完后,释放解码器,实现代码为:

9)关闭输入文件,实现代码为:

4 测试

本文给出的基于iPhone 4的手机视频监控系统的服务器端和客户端的详细设计,服务器端主要完成的是流媒体编码和转发,客户端主要完成的是流媒体的解码和上屏,还能对带有云台的摄像头进行控制,如调焦距、上、下、左、右的控制。在MAC OS的模拟iPhone平台上,测试中显示的监控画面如图5所示。

图5 测试中显示的监控画面

该视频图像的技术参数是:分辨力为CIF 352×288,帧率为25 f/s,码率为128 kbit/s。前端网络摄像机的供应商是大华,通过对前端设备的设置在监控画面上可以显示视频遮挡、时间、通道号等信息,能满足用户视频查看、云台控制的基本要求。

5 小结

本文给出了一套基于iPhone 4的手机视频监控系统实现方案,并对系统服务器端和客户端的模块进行了设计说明。本文设计的基于iPhone 4的手机视频监控系统的方案,能满足手机用户的视频查看、云台控制的基本需求,接下来的工作是对手机客户端的功能做进一步的扩展,增加手动录像、图像抓帧、短信报警等功能。

[1]张万芳,苏鸿根.基于RTP/UDP/IP协议实时传输H.264流媒体文件[J].计算机工程与设计,2009,17(7):31-35.

[2]王超.移动视频监控系统的研究与实现[D].杭州:浙江大学,2010.

[3]马杰,田金文,柳键.流媒体技术及其文件格式[J].计算机工程与应用,2003,9(13):49-52.

[4]杜传赢.Symbian平台移动流媒体播放器的实现与优化[D].厦门:厦门大学,2008.

[5]尹超超,龙昭华,谢显中.H.264实时视频通信终端的研究与实现[J]. 电视技术,2011,35(3):53-56.

猜你喜欢
云台服务器端解码
云上之家——万科·郡西云台
龙门山·卧云台
《解码万吨站》
帮我买云台
Linux环境下基于Socket的数据传输软件设计
解码eUCP2.0
基于STM32的无线FPV云台设计
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
浅析异步通信层的架构在ASP.NET 程序中的应用