基于ROKU机顶盒的IPTV接入应用开发

2017-01-20 10:00翟关贸荣伟董志豪杨三青
软件 2016年4期
关键词:机顶盒频道客户端

翟关贸 荣伟 董志豪 杨三青

摘要:本文基于Roku流媒体播放器,设计开发了IPTV接入应用。分析了IPTV的体系架构,和业务流程;详细介绍了基于Roku的IPTV应用系统的接入应用开发:包括Roku与web服务器的数据通信,数据解析,Roku开发平台及编程语言BrightScript的介绍,Roku程序界面的设计,测试了Roku程序的可操作性,业务能力的可操作性,基本直播点播功能的可操作性,给出了该系统的运行结果,结果显示:Roku能够实现IPTV系统在客户端设计应满足的功能,Roku程序界面友好,满足系统所需功能,符合预期。

关键词:通信与信息工程;Roku;IPTV;BrightScript;XML数据解析

中图分类号:TP311 文献标识码:A DOI:10.3969/j.issn.1003-6970.2016.04.023

0 引言

近年来,随着网络通信、普适计算和多媒体技术的不断发展,视频交互式多媒体业务进入到人们生活的诸多方面,带来巨大的市场商机和产业价值,并将成为未来通信业务新的增长点。IPTV作为典型的交互式多媒体业务,将广电业、电信业和计算机业3个领域技术结合在一起,以配置机顶盒的家用电视机或一体机或计算机为收视终端,向家庭用户提供包括电视节目在内的多种交互式数字媒体服务。

IPTV是一种包含运营支撑层、业务应用层、承载层和用户终端在内的集多个层面为一体的综合系统,提供包括视频点播、个人视频录制、电子节目指南,电子邮件及Internet访问、电视商务、即时信息等服务内容,是对传统电视内容服务的重大突破。这些内容服务的实现又与视音频编解码技术、内容分发网络技术、内容分发技网络技术、服务质量技术、流媒体技术、数字版权保护技术等几项技术密不可分。

我们选定国外广泛使用的Roku流媒体播放器开发用户终端程序,使用Linux操作系统提供流媒体服务,本论文的目的就是设计出基于Roku的IPTV实验平台,着重陈述IPTV系统用户终端Roku和流媒体服务的开发工作。

1 IPTV系统分析

1.1 系统架构

该IPTV系统包括视频源系统、视频服务器、宽带接入网、用户端设备和业务管理系统等,主要功能包括视频采集、流媒体服务、宽带传输、客户端应用呈现以及用户管理与鉴权、缴费、内容管理等,其系统框图如图1所示。

首先,视频源系统通过电视卡、录像机等源采集视频内容,经过视频服务器分发到各用户,各注册且生效的用户从WEB服务器获取电子节目单,从而获取该用户所有的内容。而用户信息通过业务管理系统进行管理,为用户调配不同的权限。

1.2 直播以及点播业务流程的实现

直播业务的流程为:首先,用户通过Roku机顶盒请求直播,点播频道服务,EPG向业务管理系统发出请求信息(用户SN,频道ID等);业务管理系统收到请求后,判断该用户是否订购了该频道,并且判断此频道是否受限,并且将相关信息反回给Roku机顶盒,机顶盒通过XML技术解析之后看是否已经订购该频道;如果用户可以收看该频道,EPG向CDN发出频道URL重定向请求,CDN根据全局负载均衡情况重定向频道的URL,并且根据事先约定的加密算法生成授权码,并向机顶盒返回可以定向的URL,如果用户没有订购该频道,则提醒用户转入订购流程;EPG接收到频道的URL后,然后返回给Roku机顶盒,Roku机顶盒根据URL请求之后,加入组播频道;组播控制点收到直播请求后,检验URL的授权码,如果为非法请求,则拒绝服务,如果请求合法,则组播控制点向EPG发出相应的状态信息,EPG系统向业务管理系统发出启动使用信息;业务管理系统开始记录用户的信息,并且将结果返回给EPG;EPG向组播控制点发出使用通知信息,组播控制点向Roku机顶盒提供直播流,Roku机顶隔接收直播流并解码,播放;当用户提出主动退出时,Roku机顶盒向组播控制点发出退出请求,组播控制点接收请求后,返回结束通知,EPG收到此通知后,将此请求转发给业务管理系统,业务管理系统根据请求中的相关信息写入日志,并将结果返回给EPG;EPG将结果发给组播控制点,直播,点播业务结束。直播及点播的流程图如图2所示。

2 Roku接入应用设计及分析

2.1 开发环境及编程语言

2.1.1 Roku机顶盒系统架构

本IPTV系统所选用的机顶盒设备为Roku 2 XS,该播放器采用ARM处理器,256Mb的RAM和Flash,提供丰富的接口。基于Linux2.6内核,Roku使用自己的平台RokuDVP softwarePlatform和自己的开发语言。图3所示为Roku机顶盒系统架构。

2.1.2 编程语言语言

在Roku平台上进行开发的语言为BrightScript,Roku BrightScipt是一种功能强大的脚本语言,因此在嵌入式设备上能够很快和很便捷的进行媒体和网络应用开发,BrightScipt语言集成支持BrightScipt组件和这些组件的轻量级的库。这种平台的API开发都是通过调用BrightScipt的组件来运行的。

BrightScipt脚本语言有以下特点:

1.BrightScipt通过一个编译器将代码编译为字节码,每次当脚本加载和运行的时候就会进行编译,它不需要事先进行单独的编译,而且编译结果会保存在一个二进制文件中,这种方式类似于JavaScript。

2.BrightScipt语句语法不像C结构形式的,而是类似于Basic,Python或者像Ruby和Lua。BrightScipt对象和赋值的数据结构体是通过关联数组(AssociativeArrays)实现的,这种方式类似于JavaScfipt或者是Luau,BrightScipt支持动态类型(类似于JavaScfipt),或声明类型(类似于c或者Java),JavaScfipt使用“interfaces”和“Components'作为它的API,这又类似于“.Net”或“Java”。

3.BrightScript对于嵌入式设备来说是一个功能强大的优化字节码解释脚本语言,在这种意义上,它是独一无二的。例如BrightScript和BrightScriptComponent体系结构100%都是通过C完成的,具有快速、高效和可移植性的特点。BrightScript广泛使用“整数”类型的(因为很多嵌入式处理器没有浮点单位)。这是不同于JavaScript语言的因为其数字总是—个浮点数。BrightScript数字只有在必要的时候才是浮点型的。

BrightScript作为“glue”连接底层组件为网络连接,多媒体播放,UI Screen设计进行的优化,实现了以最小的程序员工作量达到用户友好体验的应用程序设计效果。

2.1.3 开发环境

Roku应用程序的开发环境可集成在eelipse上,用户只需下载并安装DTLK(dynamic language toolkit)插件和brightscript插件,即可开始创建工程了。

2.2 客户端架构设计

对于Roku应用,在功能上主要需要实现:(1)用户验证与列表获取;(2)列表呈现;(3)视频播放。Roku程序的信息流程如图4。

由于每个Roku设备都有对应的唯一SN,因此,对于用户验证只需要向web服务器通过Get请求提交自己的身份信息,web服务器在接收到Roku的请求和身份信息后将从数据库中查找验证其身份是否合法,对于合法的用户,web服务器将返回节目单。Roku接收到节目单后呈现节目列表,如果用户选择了某一个节目,Roku将通过这个节目的流媒体链接向流媒体服务器获取并播放视频。

2.3 Roku客户端与Web服务器通信实现

2.3.1 基于XML-RPC的web通信

为了解决异构系统之间的通信难题,在不同的系统中采用XML格式文本来交换数据,文本基于HTTP协议传输,这样不同的操作系统,不同的平台自己解析文本文件。文献分析XML/Web Services技术在电子商务应用中的优势,这里同样适用于IPTV系统的数据传输。

XML被设计用来进行结构化数据、存储以及传输数据信息,Web service可以被当作是一个应用程序,该程序向外界暴露出一个能够通过Web方式进行调用的API接口。Web Service通信有两种常见的协议标准XML-RPC和SOAP,其中XML-RPC相对而言比较简单,而SOAP比前者复杂很多,一般在要求系统稳定、健壮、安全,并且交互过程复杂时才使用。XML-RPC是XMLRemote Procedure Calling的缩写,它是Web Service的一种实现并且比WebServices简单,是面向Internet环境的分布式处理标准。它通过利用HTTP协议传输XML数据来实现通信。它是一种远程调用机制,用于调用可能驻留在其他机器之上以及可能用其他语言编写的过程。

RPC通信的流程是首先需要构造一个RPC服务器端,用它来接收从RPC客户端传递过来的使用XML封装的请求,服务端接收请求并把处理结果通过XML的形式返回给RPC客户端,客户端分析XML,获取客户端需要的数据。

远程过程调用的流程:在客户端请求方法,该方法和方法携带的参数以XML格式描述,包装请求methodCall,其中有方法名(medthodName)、方法的参数(Params)该请求通过XML包装以HTTP请求发送到WEB服务端,WEB服务执行对应的方法,以XML返回方法执行的结果,通过HTTP传回客户端。方法响应(methodResponse)、返回参数Params,返回值在String中。此处请求为rpc_server,参数为get;方法执行返回结果为response data。

在客户端解析出返回的xml格式的响应,然后,可以根据服务端与客户端事先定义好的协议通信标准,对返回的数据做相应的处理与解析,这个解析过程通常为客户端完成,解析完数据,客户端便获得了对应请求的数据信息。

2.3.2 Roku平台的XML解析

BrightScript中的roXMLElement支持解析、生成,包含XML。并且将解析出来的元素放在roxmllist对象中。Roku的XML文件解析过程类似于DOM解析,解析过程如图5所示:

2.4 程序流程图与界面实现

2.4.1 流程图

Roku客户端软程序的核心功能之一是联网。客户端与WEB服务器交互数据的基本流程是:检测网络是否可用,进入用户验证、获取应用电视节目分类列表、获取具体分类下的应用节目列表、应用节目详细介绍等功能。Roku应用程序的播放程序流程图见图6。

2.4.2 Roku界面的实现

Roku程序实际实现是运用BrightScript语言调用Roku的接口(即为对应的component)产生屏幕界面和实现各种功能,具体怎么实现可以参考附录,这里不再详述。编程中需要的component有:

roPosterScreen:呈现功能列表;

roGridScreen:呈现视频列表;

roDevicelnfo:获取设备信息;

roUrlTransfer:在web server间传输节目单;

roXMLElement:解析节目单;

roVideoPlayer:播放视频;

roTimeSpan:记录时间。

实现的界面如图7,8,9所示

3 结束语

本文首先对IPTV系统的架构和业务流程做了分析,然后详细介绍了基于Roku机顶盒的IPTV系统客户端播放器的程序的开发。通过实验,我们看到Roku应用程序界面简洁友好,操作直观,视频播放流畅,开发工具齐全,开发过程简单,非常适合作为IPTV系统的接入应用。

但由于Roku的主要市场在海外,国内并没有很多中文资料,这给国内开发者提出了一些难度。并且,如果该系统要投入运营,作为客户端,还需要进一步考虑界面的美观性和用户体验。

此项目涉及知识广泛,包括BrightScript脚本语言的学习,xml数据解析,IPTV体系架构等知识,通过对该项目的实践,学习者可以学到许多知识。

猜你喜欢
机顶盒频道客户端
安全使用机顶盒注意五点
4K频道开播,你准备好了吗
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
基于Vanconnect的智能家居瘦客户端的设计与实现
数字电视机顶盒软件自动测试系统的开发及应用
寒假快乐频道
频道
有线电视高清数字电视机顶盒测试系统的构建
客户端空间数据缓存策略