基于Android平台的气象流媒体客户端设计与实现

2014-02-13 09:58陈文琴
电视技术 2014年9期
关键词:会商录播服务器端

陈文琴,黄 珣

(国家气象信息中心,北京100081)

责任编辑:任健男

天气预报电视会商系统是中国气象局重要的实时业务平台,该系统承载着全国气象部门远程天气会商、会议等任务[1]。天气预报电视会商录播系统(以下简称会商录播系统)是在天气预报电视会商系统中对电视会商会议提供实时录制、直播、点播等服务的重要平台[2],其录制的文件为双路视频文件,包括视频图像及计算机图像。在实际应用中,两路文件通过时间轴自动关联,同时播放。观看者通过Web页面登录会商录播系统界面,即可对电视会商节目进行直播、点播收看。

随着手机、平板PC等移动终端的普及以及3G网络的不断完善,基于移动终端操作系统平台的应用软件开发成为目前电信新的技术发展趋势。2012年11月数据显示,Android占据全球智能手机操作系统市场76%的份额,中国市场占有率为90%[3],具有巨大的市场和发展潜力,有望在未来几年成为移动电子设备上占有量最大的操作系统。

本文设计一款基于Android操作系统的气象会商流媒体客户端应用软件(以下简称Android客户端),采用Android操作系统的移动终端(手机、平板PC等),可借助该应用,访问中国气象局气象会商录播平台,点播浏览音视频节目。

基于Android平台软件应用使用户可在具备网络条件的各种环境下便捷地使用Android系统手机、平板PC等移动终端收看预报会商,使用环境由传统的个人PC向移动终端拓展,有效地提高了会商录播系统的使用率,扩大其使用范围。

1 Android操作系统简介

Android是由Google公司推出的一种开源的移动操作系统,以精简的Linux操作系统为内核,由操作系统、中间件、用户界面和应用软件组成。Android采用软件堆层的架构,主要分为3个部分[4]:底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发;最上层是各种应用软件,由各公司自行开发,以Java作为编写程序的一部分[5]。如今越来越多的移动设备都在使用Android作为其操作系统,Android不仅具备开源的优势,而且拥有灵活便捷的应用程序控制,以及其他移动平台所具备的所有功能。

2 系统总体架构

本应用依托天气预报电视会商录播系统设计。会商录播系统由电视会商系统主控中心音视频、计算机分配切换子系统采集信号,通过硬件编码器将音视频信号压缩编码成IP流,推送至中国气象局局域网录播服务器以及部署于Internet DMZ区的外网录播服务器,通过服务器提供局域网、Internet用户的在线直播、点播服务。会商录播系统采集的主视频流分辨率为1080p高清信号[6],计算机信号分辨率为1 280×1 024,系统结构示意图如图1所示。

图1 天气预报会商录播系统结构示意图

考虑到Android平台终端移动接入的特点,网络带宽受限,设计将会商录播系统采集的视频信号利用H.264编码技术[7],进一步压缩转存为低码率、低画面分辨率的流媒体数据,适于Android平台流媒体客户端访问。目前主流的视频网站提供商针对Android移动终端提供的定制流媒体发布视频分辨率一般在QCIF(176×144)和CIF(352×288)之间[8]。本系统主视频分辨率为CIF,计算机信号分辨率为QCIF。在客户端软件上提供两种不同网络状况下的应用模式,若接入网络为WCDMA 3G[9]移动网络,用户可选择3G模式收看天气预报会商主视频,帧率为15帧/秒(f/s)左右;若通过WiFi宽带接入Internet公网,用户可选择WiFi模式下收看会商计算机双流视频,帧率为15 f/s左右。通过可变帧率以及差值视频编码的技术路线解决气象系统对高分辨率流媒体显示的需求。

流媒体数据传输协议选择RTSP实时流协议[10],其定义了一对多应用程序高效通过IP网络传送多媒体数据的方法。RTSP在体系结构上位于RTP和RTCP之上。它使用TCP或RTP完成数据传输。使用RTSP时,客户端和服务器都可以发出请求。在Android平台客户端软件通过设置循环缓冲区以及音频高优先级传输的方式,保证音频数据清晰、流畅呈现。

Android客户端应用由服务器端软件、流媒体服务器软件、数据库服务器软件和基于Android终端的客户端软件组成。

其中,服务器端软件主要的功能是给Android客户端软件提供与视频点播系统相关的数据服务,同时提供对数据和系统配置信息的维护功能。流媒体服务器主要提供对客户端视频的实时点播的功能,支持多用户并发访问。数据库服务器软件主要提供整个系统用户和分组的相关数据的存储的功能。基于Android的客户端软件主要支持用户登录、视频点播、视频搜索等功能。

3 系统软件设计

本部分主要描述Android会商点播软件各模块的软件设计。考虑到系统服务器端软件的稳定性,服务器端软件基于Windows Server 2003内部的IIS组件,服务器端的软件主要基于ASP.Net技术实现。

Android客户端与服务器端的通信基于HTTP[11]协议,数据传输以XML格式和二进制格式(主要是视频缩略图等,由会商录播系统提供共享)。视频播放界面以网页的形式嵌入到Android应用程序内(以Android Web View和Web Kit支持)。

系统总体结构及各个模块之间的通信与依赖关系如图2所示。

3.1 服务器端软件设计

服务器端主要以网站的形式发布,为客户端提供数据服务和后台维护功能。服务端是在原有会商录播系统的硬件基础上开发的,基于会商录播系统的视频编码器和录播系统开发。Android客户端与服务器端的通信基于HTTP协议,传输的数据格式基于XML[12]。

图2 系统各模块之间通信关系图

服务器端软件逻辑设计如下:

1)BO:业务逻辑层,包括系统登录、权限认证和相关信息的维护的业务逻辑相关操作组件。

2)DAO:数据访问层,主要提供数据访问和存储的功能,包括对数据库的操作和对本地配置文件的操作。

3)Entity:实体,对应数据库层的表,便于以面向对象的方式对数据和配置文件的存储访问,提高系统可重复利用和扩展性。

4)UI:用户界面层,主要是面向后台管理和Android客户端提供服务的模块。Aspx包主要是面向后台管理系统的界面,http handlers模块主要是面向Android客户端以HTTP方式的提供视频信息的查询与读取功能,通信数据格式主要以XML为主。

服务器端软件模块调用关系图如图3所示。

图3 服务器端软件模块调用关系图

3.2 客户端软件设计

客户端主要是解析从服务器端请求的数据进行解析,然后在页面上显示出来。主要分为3层:通信层,数据解析层,界面层。

1)通信层

通信层使用的通信协议是HTTP协议,通信的方式是客户端请求一个指定的URL地址(同时附带若干个参数,如会商视频的类型),服务器端根据客户请求的地址和参数,以XML格式向客户端发送相应的请求结果数据。

客户端每次都以异步的方式发送一个请求,然后等待服务器响应,服务器响应并返回数据以后通知数据解析层解析数据,数据解析层解析完数据以后通知界面层更新界面。

2)数据解析层

数据解析层的主要作用是解析服务器端返回的XML格式的数据。

3)界面层

界面层的主要功能是与用户交互,如接受用户输入和点击等,根据用户在界面上的操作向服务器端发送不同的请求。例如在页面的视频类型列表中点击视频类型(如早间会商等)列表中的某一条,即向服务器端发送一个请求,要求返回对应视频类型的视频信息相关数据,返回的结果由数据解析层处理。

界面层作为与用户交互的接口,所有向服务器发送的请求都是由用户在界面层上的某个操作触发的。

啥都有:2011年的农历新年伊始,赶集网的一部视频广告开始陆续出现在银屏公交、楼宇电视等媒介上。广告依靠影星姚晨人气和一头驴子的幽默表演吸引了许多人的关注。“xxx,啥都有”的广告词由于朗朗上口,迅速被网友进行恶搞,赶集网广告海报中的驴子被换成了机器猫、愤怒的小鸟和变形金刚等形象,广告语也配合不同的形象进行了改变。

综上所述,客户端软件模块调用关系图如图4所示。客户端软件执行流程为:界面层触发请求,服务器响应请求并返回数据,解析层解析数据并通知界面更新,显示数据或切换界面。

图4 客户端软件模块调用关系图

客户端软件逻辑设计如下:

1)Net包:主要负责网路通信的模块。

2)Entities:实体,对应数据库层的表,便于以面向对象的方式对数据和配置文件的存储访问,提高系统可重复利用和扩展性。

3)DAO:数据存储与访问,主要负责解析XML数据等功能。

4)Services:运行于Android后台的服务进程,主要负责综合服务信息的检测和与服务器端的通信,以防止界面操作不流畅等现象出现。

5)Util:所有的辅助性类。

3.3 客户端播放软件设计

电视会商流媒体文件与普通视频网站传输的流媒体文件区别在于电视会商同时传输两路信号——视频信号和计算机信号。在设计Android流媒体点播软件时,需要专门设计能够同时解析2路流媒体文件的播放器。在本系统设计中,双视频文件进行同步播放是通过Flash客户端与流媒体服务器(Flash Media Server)同时建立2个TCP连接,通过TCP传输视频数据,在客户端解码进行播放。当其中一路视频在缓冲的时候,另一路视频暂停播放,等到缓冲完毕后再同时播放,以此实现视频和计算机信号的同步播放。

视频点播模块主要用到的类有Flash Action Script里的NetConnection类、NetStream类、Video类。NetConnection类主要用于与Flash Media Server建立TCP连接,然后在Flash客户端和Flash Media Server之间传输数据。通过NetConnection类与Flash Media Server建立连接以后可以通过该连接建立一个流(类似操作本地文件流),这个流对象就是NetStream类的一个实例对象。在代码中用下列语句实现:

vgaStream=new NetStream(vgaConnection);

在与服务器端建立连接时需要注册一个事件,即连接成功后通知客户端执行其他操作。以下是初始化Net-Connection对象和注册事件以及请求连接的代码:

videoConnection=new NetConnection();

videoConnection.addEventListener(NetStatusEvent.NET_STATUS,videonetStatusHandler);

videoConnection.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler);

videoConnection.connect(videoUrl);

4 UI设计

4.1 用户登录界面

Android客户端将用户名和密码以HTTP方式提交给服务器端软件验证,只有在验证之后才能切换到系统主界面,如图5所示。在地址栏输入服务器地址,即可登录电视会商点播平台服务器,如图6所示。

4.2 会商点播界面

用户点击“会商视频服务”选单,可进入二级页面,如图7所示。用户根据需求选择视频所属类别。

图5 登录界面(截图)

图6 服务器地址界面(截图)

图7 选单界面(截图)

本软件提供视频搜索功能,输入关键字,点击“搜索”,可对所需观看视频进行检索,如图8所示。

图8 搜索功能界面(截图)

用户进入会商视频服务功能后,进入到视频列表页面。每页按时间先后顺序显示10条列表,并具备翻页按钮,如图9所示。

图9 视频列表界面(截图)

用户点击要观看的视频文件名,即可进入视频播放界面。在播放时,可选择播放、暂停、停止,并可拖动进度条选择播放进度。

点击“退出”键可直接退出播放界面。

本软件已成功在Android系统的手机上进行测试,授权用户可登陆到点播平台,选择需要观看的会商文件进行点播。实际播放界面如图10所示。

5 结论

图10 手机收看会商节目界面

本文实现了基于Android操作系统的电视会商流媒体点播平台,分析了该平台的总体架构,服务器端、客户端的软件设计,以及UI设计。该设计具有一定的通用性和开放性,对视频会议、流媒体数据的Android开发有借鉴意义。Android会商点播软件与中国气象局天气会商录播平台相衔接,将传统的基于PC的会商录播平台移植到Android客户端,并成功在Android3.0以上版本的手机平台上稳定运行,为移动办公提供了有力支撑,具有极大的业务前景。

[1]姚鸿,李春来,邓鑫,等.视频会议在气象业务中的应用前景分析[J].电视技术,2011,35(17):108-113.

[2]吴广智.VOD视频点播核心技术研究[J].中山大学学报论丛,2006(2):126-128.

[3]贡知洲,路昭亮.Android发展的分析和研究[J].价值工程,2013(2):185-186.

[4]王宁国,吴翠先,刘畅棂,等.基于Android的无线视频监控终端的设计及实现[J].数字技术与应用,2012(2):124-125.

[5]孙宏明.Android手机程序设计入门、应用到精通[M].北京:中国水利水电出版社,2012.

[6]李栋,李媛敏,张秋华,等.1080p高清视频会议系统设计应用案例[J].电视技术,2010,34(10):108-111.

[7]李彦东,许生旺.AVS-P2和H.264标准的比较[J].无线电工程,2006(8):48-50.

[8]蒋维,孟利民.3G网络H.264视频监控系统的设计和实现[J].杭州电子科技大学学报,2011,31(5):71-74.

[9]李严冰,张媛.WCDMA 3G无线网络建设、优化技术探讨[J].法制与经济,2009(1):116-119.

[10]霍龙社,甘震.移动流媒体协议综述[J].信息通信技术,2010(4):6-10.

[11]叶强.超文本传输协议——HTTP/1.0[J].科技情报开发与经济,2004(8):226-271.

[12]彭新宇,姚振强.XML技术在嵌入式系统中的应用[J].计算机应用研究,2003(8):133-135.

猜你喜欢
会商录播服务器端
四川省气象云视频会商系统的设计与构建
GB/T 34611—2017《硬质聚氨酯喷涂聚乙烯缠绕预制直埋保温管》录播宣贯
墒情会商,助力备耕春播
Linux环境下基于Socket的数据传输软件设计
民航空管气象视频会商系统应用研究
基于分布云和Logistic方法的微格录播系统
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
改善录播的教室环境,提高录制的声画质量
纳加软件推出高清便携录播机NLB-500P