智能网关中基于UPnP的数字媒体服务技术的研究与实现
2015-03-15王志军
周 铖,王志军
(1.武汉邮电科学研究院,湖北 武汉 430073; 2.烽火通信科技股份有限公司,湖北 武汉 430073)
智能网关中基于UPnP的数字媒体服务技术的研究与实现
周铖1,王志军2
(1.武汉邮电科学研究院,湖北 武汉 430073; 2.烽火通信科技股份有限公司,湖北 武汉 430073)
摘要:主要介绍了UPnP协议的组成单元,对UPnP协议的结构以及UPnP网络的工作原理做了详细分析,同时还对DLNA架构进行了介绍;最后,在Linux平台上,利用开源软件进行了数字媒体服务器的实现并给出了演示的结果。
关键词:即插即用;数字生活网络联盟;数字媒体服务
随着网络和各种智能消费电子设备的迅猛发展,ios移动设备和android智能终端已成为人们生活中的重要组成部分,尤其是在现在家庭网络中,媒体共享已成为人们迫切的需求。通过智能网关的媒体共享服务,可以实现家庭网络对于视频和图片等媒体的共享,满足人们的工作和生活需求。
UPnP(即插即用)技术是微软提出的一种用于 PC 机和智能设备的常见对等网络连接体系结构,其应用范围非常广,能实现家庭自动化、视频/音乐娱乐和图片处理等功能。使用支持UPnP的设备就意味这可即插即用,这对日常工作和生活来说都是极大的便利。在UPnP的架构中是没有设备驱动的,功能均是通过现有的普通协议实现,可以使用包括C、C++和JAVA在内的语言进行软件开发[1]。
1UPnP
1.1UPnP组成单元
UPnP由下述3个基本单元组成[2]。
1)设备(devices)。设备是UPnP中最基本的单元,其代表着一个物理设备或者代表着一个逻辑设备,可以看成一个包含服务并嵌套了常规设备的“容器”,其还具有服务的功能。
2)服务(services)。服务是UPnP网络中最小的控制单元,对外表现为具体的行为、模式,而行为或者模式可以用状态和变量值来描述。
3)控制点(control points)。在UPnP规范中,控制点是UPnP网络中的控制者,用户请求设备执行的控制是通过控制点来实现的。
1.2UPnP协议结构
对于实现网络中设备、服务和控制点之间的互通互联,UPnP提供了一套很完整的协议栈,下面对UPnP所使用到的协议做简单的介绍与分析。
UPnP体系结构使用的协议栈中,在最底部的是IP层,所有上层数据的收发均是通过IP协议进行的;在传输层,使用TCP/UDP协议进行传输。可以看出,TCP/IP协议是UPnP设备工作的基础。作为UPnP结构中的核心部分,HTTP协议以及HTTPMU、HTTPU协议被UPnP协议所使用,所有的UPnP上层消息均通过HTTP协议及其衍生协议来传输。HTTP协议及其衍生协议在格式上与HTTP协议是一样的,只是HTTPMU、HTTPU协议可以通过UDP发送消息,而HTTP协议只能通过TCP发送消息。
在UPnP中,不同类别的应用使用的上层控制协议是不同的,SSDP(simple service discovery protocol)提供了在局部网络中发现设备的机制;GENA(generic event notification architecture)定义了事件订阅者和事件发布者2个概念,提供了事件接收和发送的机制;SOAP(simple object access protocol)定义了使用XML和HTTP来进行远程过程调用的方法。
UPnP自己定义的标准处于UPnP协议结构的上层,在协议结构的最顶层,设备制造商定义了各自设备的信息。
1.3UPnP工作流程
UPnP的主要工作流程如图1所示。
图1 UPnP工作流程
1) 寻址。寻址即获取地址,TCP/IP协议族是UPnP网络的基础,这就决定了UPnP设备必须获得IP地址才能正常工作。
2)发现。当UPnP设备正确接入网络后,UPnP发现协议就会让设备在网络上将其服务通知给控制点;同样,当控制点正常接入网络后,UPnP发现协议就会让控制点在网络上搜寻自己感兴趣的设备。
3)描述。当控制点发现设备后,控制点需要从设备提供的发现消息中提供的URL中重新获取设备的描述信息,这些描述信息都是以XML的格式提供的。
4) 控制。当控制点获取到了一个设备的描述信息之后,控制点就可以向设备发送适当的控制消息。控制点和设备的交互过程是通过状态值进行标识的。
5) 展示。如果一个设备由一个URL用来展示,则控制点可以从这个URL获取1个页面,将页面载入浏览器中,用户可以通过页面来控制设备或者查看设备的状态。
6)事件。在服务进行的整个周期内,变量值的变化或者模式状态的变化均可认为是一个事件。数据格式为XML,被封装在GENA中,通过HTTP协议进行传输。
2数字生活网络联盟(DLNA)[3]
数字生活网络联盟(DLNA,全称Digital Living Network Alliance)是索尼、英特尔和微软等公司与2013年6月发起成立的,旨在实现个人PC、智能终端等通过无线网络和有线网络实现信息互联。与UPnP一样,DLNA使用的仍然是现有的网络技术,这样就可以兼容各种不同类型的设备。DLNA由网络连接、网络协议、媒体传输、设备的发现控制和媒体管理以及媒体格式组成。
1) 网络连接。网络连接规定了所接入网络的类型和协议,主要有802.11a/b/g/n、蓝牙、802.3i/u和MoCA等。
2)网络协议。IPv4是目前DLNA必须支持的,以后将扩展支持IPv6。
3)设备发现、控制和媒体管理。设备之间的相互发现是通过UPnP实现的,DMP(digital media player)通过UPnP机制来搜索网络上可以相互匹配的DMS(digital media server),成功连接之后即可以进行视频播放或者其他的传输工作。这些工作均是自动化的。
4)媒体传输。DLNA的媒体传输规定了所有的DLNA设备都必须支持使用HTTP协议进行媒体的传输。
5)媒体格式。规定了进行数字媒体和内容的共享以及使用时候的媒体格式必须支持JPEG、MPEG、LPCM,还有GIF、MP3、AVC等可选支持。
3数字媒体服务器(DMS)的实现与演示
本文采用基于Linux平台的开源软件Ushare来实现数字媒体服务器。Ushare可以运行在Linux内核的主机上,但是系统需要支持fuse机制(2.6.14版本以上的内核均支持fuse模块);Ushare的编译与运行还需要依赖ffmpeg、libupnp和libdlna 3个库来运行;Ushare需要运行在br0接口,所以需要确定桥代码中将239.255.255.250的广播报文广播到CPU口,以供程序监听。
编译Ushare之前,需要编译ffmpeg、libupnp和libdlna 3个库,其中ffmpeg库是用来进行用户媒体文件格式识别的,libupnp是实现UPnP所依赖的库和协议,libdlna是实现dlna所依赖的库和协议。导入ffmpeg、libupnp和libdlna库到相应的目录下,导入ffmpeg、libupnp和libdlna库所在的环境变量的位置以供Ushare运行时使用,在Ushare使用之前,还必须配置Ushare的命令参数,例如共享目录和页面使用端口等参数都是必须配置的。
本文在运行Linux系统的家庭网关(home gateway)上实现DMS,用1台PC(运行Win7系统)做数字媒体播放器和控制点,将电脑通过普通网线与网关的LAN侧相连。要在Win7中进行演示还需要打开Function Discovery Provider Host、Function Discovery Resource Publication、SSDP Discovery和UPnP Device Host 这4个服务。
网关启动之后,就可以通过页面进行访问这个DMS,并且可以修改共享目录,效果如图2所示。
图2 页面访问DMS截图
在网关LAN侧的Win7系统中,从网上邻居可以查看到媒体设备中出现了TestUShare设备,用WMP(windows media player)来播放此设备中的媒体文件,在整个试验过程中,WMP能正常播放TestUShare设备中的媒体文件。
4结语
本文主要介绍了UPnP的组成、协议结构和工作流程以及DLNA,使用开源库来进行了功能开发。从测试结果可以看出,顺利完成了DMS(数字媒体共享服务器)的设计,实现了多媒体内容的共享服务功能。
参考文献
[1] 杨志明. 基于UPnP技术的媒体服务器的设计和实现[J].计算机应用与软件,2005, 22( 6): 126-127.
[2] 石勇,袁璐鸣. UPnP开发技术及应用[J].计算机与数字工程,2008,222:158-160.
[3] 张容娟. DLNA数字媒体服务器的研究与实现[J]. 绵阳师范学院学报,2012,31(11):94-97.
责任编辑李思文
Research and Implementation of Digital Media Service Technology based on UPnP in Intelligent Gateway
ZHOU Cheng1,WANG Zhijun2
(1.Wuhan Research Institute of Posts and Telecommunications, Wuhan 430073,China;2.FiberHome Telecommunication Technologies Co., Ltd , Wuhan 430073, China)
Abstract:The paper mainly introduced the components of UPnP protocol, and then made a detailed analysis of the structure of UPnP protocol and the working principle of UPnP network. The paper also introduced the architecture of DLNA in detail. Finally, realized the digital media server based on open source software in the Linux platform and gave concrete realization of the digital media server and the presentation of the results.
Key words:UPnP, DLNA, digital media services
收稿日期:2014-12-03
作者简介:周铖(1989-),男,硕士研究生,主要从事通信与信息系统等方面的研究。
中图分类号:TN 919
文献标志码:A