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

来源 :软件 | 被引量 : 0次 | 上传用户:sxdinfo958
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文基于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体系架构等知识,通过对该项目的实践,学习者可以学到许多知识。
其他文献
摘 要: 随着信息技术的飞速发展,AI技术在各个领域都得到了广泛研究并应用,更在一些领域打破了当下困惑,突破了瓶颈。将AI技术与医学影像处理结合是一项非常具有前景的项目。基于AI技术在医学影像领域的应用具备很多种可能。当下社会,癌症逐渐成为中共公民的致命杀手。最常见的诊断模式就是放射科医生根据CT影像诊断。但是以目前的条件,并不能保证患者在早期发现癌症,故而错失了最佳治疗时机。我们需要一种能够发现
期刊
摘要:针对高动态环境下频率和频率变化率的估计问题,本文分析了常用的载波同步的帧结构及方法,并在此基础上为满足估计频率变化率的要求提出了一种间插式帧结构及算法,仿真表明此算法有很好的估计精度和性能。  关键词:高动态;频率变化率;间插式帧结构  中图分类号:TP29 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.05.027  0 引言  物体相对运动速度的变化
期刊
摘要:探讨互联网+时代背景下,高职专业核心课程教学改革的模式,结合学生职业素养训练的需求,设计一种嵌入职业素养训练的专业核心课程微平台的框架,并以防火墙技术课程为例,给出具体的设计方案,为高职网络安全类专业核心课程基于微信平台的教学改革提供一种切实可行的方法,提高人才培养质量。  关键词:职业素养;专业核心课程;微平台;防火墙技术  引言  信息时代背景下,互联网+的兴起,使得学校的教育改革模式也
期刊
摘要:传统的MVC模式在Android的应用开发中存在诸多不足,主要表现在Android应用开发的关键类Activity会充当Controller和View的合体,既要负责业务逻辑,又要负责显示,造成Activity的职责过多,耦合度高。MVP模式是MVC模式演进而来,引入了Presenter彻底分离Model和View层,在解决Activity臃肿的问题同时,还有助于后期的测试与维护。本文分析M
期刊
摘要:通过对三维模型原始三角面片的规格化,对原模型内的三角面片进行基于体素的划分和表示。将规格化后的三角面片进行基于连接边的分类,并对每一连接边类型对应的三角面片的位置进行编码。通过找寻规格化后的三角面片之间的表示特点,探索具有规律性的存储方法。实验结果表明,该方法能够有效的降低三维模型的存储空间,提高存储效率。  关键词:体素;规格化;连接边;三角面片  中图分类号:000000 文献标识码:A
期刊
摘要:指纹支付是支付方式的一个新的方向。指纹识别技术是依靠指纹的唯一性,通过对指纹的采样、特征值提取来实现身份识别的技术。和传统的帐号加密码或是Ic卡扫描识别等身份识别方式相比,指纹支付具有更高的安全性、不会遗忘、丢失、不变性、唯一性、防伪性能好和使用方便等优点。本文设计并实现了一个通过指纹识别方式,完成支付等功能的系统,同时设计了无线功能,可以完成主机和客户端的无线数据通讯、同步功能。该系统可以
期刊
摘要:文章分析了贺州学院计算机专业转型发展过程中面临的挑战,从职业生涯规划、课程体系、“双师型”师资队伍和校企合作四个方面与国外应用技术大学进行了对比研究,提出了以校企合作为基础,校企双方功能需求和资源相互嵌入的“嵌入式”创新思路,并对“嵌入式”人才培养模式进行了理论研究,为全面向应用技术大学转型莫定了良好基础。  关键词:计算机专业;嵌入式;人才培养模式;转型发展  中图分类号:G642 文献标
期刊
摘要:遥感图像已经是人类生活离不开的一类图像,由于其强大的应用性导致了对其质量要求非常高,所以本文对遥感图像去噪融合算法进行了研究,将ICA应用于遥感图像的去噪和融合中,并与传统图像去噪和融合算法进行了比较。实验结果证明,该算法适用于高斯白噪声背景下遥感图像的去噪,也能兼顾分辨率及光谱信息实现遥感图像的像素级融合。  关键词:遥感图像;ICA;图像去噪;图像融合  中图分类号:TP391.41  
期刊
摘要:应急通信体系在城市运转遭到突发灾害或事故时,承担着及时、准确、畅通地传递第一手信息的“急先锋”角色,是决策者正确指挥抢险救灾的中枢神经。目前,我国已经认识到应急通信系统的重要性,因此我国各个部门已经配置了不少应急通信系统和设备,并且积累了相当的使用经验。但是,对于应急通信的功能需求和系统建设目前仍存在不少值得讨论的问题。本文重点探讨了一种改进的应急通信系统的原型设计和构想,为后续应急通信网络
期刊
摘要:航空发动机维修是一个具有高动态性和高复杂度的商业领域。本文采用多Agent方法对航空发动机维修进行调度仿真。本系统可对等待维修的飞机数量、周转时间和维修生产线利用率等关键指标进行分析,从而为航空发动机维修提供可靠的决策支持。同时,本系统以动态脚本的方式支持多种发动机可靠度估计算法,增加系统的可扩展度。最后,通过多个案例验证本系统的有效性。  关键词:计算机软件与理论;航空发动机维修调度;仿真
期刊