首页 > 范文大全 > 正文

基于MINA框架的RTSP移动流媒体服务器设计与实现

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于MINA框架的RTSP移动流媒体服务器设计与实现范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:该文设计了一个基于RTSP(Real Time Streaming Protocol)协议的移动流媒体服务器。基于该设计,作者在Apache mina 2.0网络程序框架下实现了该服务器。该服务器可用于校园、酒店等公共热点环境,为具有WiFi功能的智能手机提供音视频接入服务。

关键词:移动流媒体;实时流媒体协议;MINA;服务器

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)10-2380-02

Design and Implementation of rtsp Mobile Streaming Proxy Based on MINA Framework

HAN Dong-dong

(Southwest Jiaotong University Institution of Mobile Communication, Chengdu 610031, China)

Abstract: In this paper, a RTSP (Real Time Streaming Protocol) mobile streaming proxy server is designed and implemented based on Apache MINA (Multipurpose Infrastructure for Network Applications) framework. The proxy server may find applications in campus, hotel, and similar hot spots, to allow multimedia access with smart phones having WiFi functionality.

Key words: Mobile streaming; real-time streaming protocol; MINA; proxy server

伴随着国内第三代移动通信的建设热潮和移动互联网的普及,越来越多的人们开始在手机等移动便携终端上使用上网业务。网页浏览、邮件接收等单纯的文本数据服务已无法满足手机用户的需求。与此同时,手机用户对网络音视频需求正不断增加。目前国内一些主要的手机门户网站也提供视频服务,但是高昂的流量费用、有限的音视频资源、有限的手机处理能力以及现有“先下载再播放”的模式都阻碍了移动音视频服务的发展。相对于“先下载再播放”的模式,广泛应用于传统互联网的流媒体(Streaming Media)技术把连续的音频和视频数据流式的从服务器端发送到客户端,用户可以边下载边观看,而不必等待整个文件下载完毕。

鉴于上述情况,本文研究了RTSP实时流媒体协议,设计实现了一种基于Apache MINA的移动流媒体服务器,将流媒体技术应用于移动领域,并借助大部分手机都具有的WIFI模块向用户提供音视频服务,使手机用户接入互联网的音视频服务。该服务器将主要应用于公共热点等无线局域网环境。

1 移动流媒体协议RTSP

RTSP流媒体协议是目前业界最为流行和广为采用的移动实时流媒体协议。国内主流的在线视频网站优酷等均采用了这种协议。它实际上由一组在IETF中标准化的协议所组成,包括RTSP(实时流媒体会话协议)[1],SDP(会话描述协议)[2],RTP(实时传输协议)[3],以及针对不同编解码标准的RTP负载格式等,共同协作来构成一个流媒体协议栈,如图1所示。基于该协议栈的扩展已被ISMA(互联网流媒体联盟)和3GPP(第三代合作伙伴计划)等组织采纳成为互联网和3G移动互联网的流媒体标准[4-5]。

RTSP协议是用来建立和控制一个或多个时间同步的连续音视频媒体流的会话协议。通过在客户机和服务器之间传递RTSP会话命令,可以完成诸如请求播放、开始、暂停、查找、快进和快退等VCR控制操作。SDP协议用来描述多媒体会话。SDP协议的主要作用在于公告一个多媒体会话中所有媒体流的相关描述信息,以使得接收者能够感知这些描述信息并根据这些描述参与到这个会话中来。SDP会话描述信息通常是通过RTSP命令交互来进行传递。RTP又称为实时传输协议,用于实际承载媒体数据并为具有实时特性的媒体数据交互提供端到端的传输服务,例如净载类型识别、序列号、时间戳和传输监控等[6]。

2 移动流媒体服务器

移动流媒体服务器一般位于两个不同的网络之间,起到网关的作用。服务器和移动终端之间为无线通信方式(WIFI或者3G),服务器到流媒体服务器之间一般为有线的、高速的互联网。

两种运行环境:1)无线局域网,在这种环境下,手机通过自身的WIFI通信模块连接到无线AP从而接入互联网,服务器可部署在AP和互联网之间;2)3G或者GPRS网络中,手机通过移动通信系统接入互联网,服务器可以部署在移动分组域的GGSN和互联网之间。

两种适用的方式:1)透明,该模式中用户不需要知道服务器的存在,不需设置,支持所有的手机客户端,但需要所在网络的支持,即所在网络的网关会识别移动流媒体的流量并将其转发到服务器处理;2)手动,该模式可以基于现有的用户所在网络,用户需要知道服务器的IP地址和端口,然后手动设置移动流媒体连接的。

考虑到实施的方便性,本项目的实验环境选为无线局域网,并使用手动的方式。如图2所示的实验环境。其中移动终端和服务器位于两个不同的网络中,移动终端不能直接访问服务器,但可以连接到服务器。

3 MINA框架

移动流媒体服务器基于MINA网络应用程序框架。MINA(Multipurpose Infrastructure for Network Applications)是用于开发高性能和高可用性的网络应用程序的基础框架。通过使用MINA框架可以省下处理底层I/O和线程并发等复杂工作,开发人员能够把更多的精力投入到业务设计和开发当中。MINA结构如图3所示[7]。

MINA的主要接口如下[7]:

1) IoService:这个接口在一个线程上负责套接字的建立,拥有自己的Selector,监听是否有连接被建立。

2) IoProcessor:这个接口在另一个线程上负责检查是否有数据在通道上读写,也就是说它也拥有自己的Selector,这是与我们使用JAVA NIO 编码时的一个不同之处,通常在JAVA NIO 编码中,我们都是使用一个Selector,也就是不区分IoService与IoProcessor 两个功能接口。另外,IoProcessor 负责调用注册在IoService 上的过滤器,并在过滤器链之后调用IoHandler。

3) IoFilter:这个接口定义一组拦截器,这些拦截器可以包括日志输出、黑名单过滤、数据的编码(write 方向)与解码(read 方向)等功能,其中数据的encode 与decode是最为重要的、也是你在使用Mina 时最主要关注的地方。

4) IoHandler:这个接口负责编写业务逻辑,也就是接收、发送数据的地方。

4 服务器系统结构

服务器需要连接客户端和服务器,因此结构上自然分为服务器端(Server Side)和客户端(Client Side)对称的两部分,如图4所示。

其中,Server Side用于与Streaming Media Server的交互,向服务器请求连接和数据。Client Side用于与Mobile Streaming Client的交互,负责响应客户端的请求。这两部分都是基于上述的MINA框架,MINA分别提供了IoAcceptor和IoConnector两个接口。其中Client Side需要实现IoAcceptor接口,Server Side需要实现IoConnector接口。图5为Client Side的接收手机连接请求的数据流。

5 系统功能

服务器系统的5个系统用例如图6所示。

本服务器实现的主要功能为实现RTSP协议信令,并根据需要修改部分参数,然后作为RTP和RTCP包的中继,进行数据转发,即上图中的RTSP协议流量。

视频转码作为一种可选的加强功能,系统调用第三方的插件如FFMPEG等对RTP数据包中的视频负载格式进行转化,如码率压缩等,将互联网上的视频转化为手机能够识别的通用的格式。

另外,本系统功能还包括用户接入认证,系统日志,系统配置等附加功能,可提高系统的安全性和健壮性。还可以考虑在视频播放前后或缓冲时插入广告视频等扩展功能。目前,可供配置的系统参数主要为Client Side和Server Side分别绑定的IP地址和端口,以及日志系统的相关配置参数。

在系统实验中,使用诺基亚Symbian S60手机模拟器(IP地址为192.168.11.3)播放流媒体服务器上的视频,该服务器为Darwin Streaming Server,IP地址为192.168.2.3。手机模拟器不能直接访问该服务器,只能连通服务器。

服务器具有两个以上的网卡,服务器的Client Side绑定IP为 192.168.11.4的网卡,Server Side绑定IP为 192.168.2.1的网卡,服务器在192.168.11.4地址上监听9554端口。

首先,打开诺基亚手机自带的RealPlayer,点击“选项”,然后选中“”进入设置,点击“使用”以激活服务,并将服务器IP和端口填入,到此手机配置完成。输入测试URL:rtsp://192.168.2.3:554/test.3gp点击播放。通过软件抓包分析和服务器系统日志,在服务器运行的情况下,可验证手机通过服务器顺利播放了在线视频。 而关闭服务器则无法连接。手机设置和播放截屏如图7所示。

6 结论

在研究RTSP移动流媒体协议的基础上,本文探讨了移动流媒体服务器相关实现技术。并基于MINA网络应用程序框架,设计并成功实现了一个适用于无线局域网的移动流媒体服务器。

本服务器可以部署在公共的热点,比如校园、酒店、飞机场、咖啡店等场所。移动终端可以在设置服务器后播放互联网上的视频,服务器会将处理后的视频数据传送的用户终端,并可以在在播放前后插入广告视频。

参考文献:

[1] Schulzrinne H,Rao A,Lanphier R.Real time streaming protocol(RTSP) [S],RFC 2326, 1998.

[2] Handley M ,Jacobson V.SDP:Session description protocol[S].RFC 2327,1998.

[3] Schulzrinne H, Casner S, Frederick R,etal.RTP:A transport protocol for real-time[S].

[4] ISMA 2.0:Internet Streaming Media Alliance Implementation Specification[S],2005.

[5] 3GPP TS 26.234 V6.1.0:Transparent end-to-end Packet-switched Streaming Service (PSS);Protocols and codes(Release 6)[S],Sep.2006.

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

[7] Apache MINA[DB/OL].[S].