基于流式P2P直播技术的RealPlayer播放器系统及播放方法

文档序号:7595855阅读:244来源:国知局
专利名称:基于流式P2P直播技术的RealPlayer播放器系统及播放方法
技术领域
本发明涉及ー种RealPlayer播放器系统,特别涉及流式P2P直播技术下的播放器系统。
背景技术
视频直播通常又称在线直播,指在事件发生的现场同步采集、制作、发布视频(通常包括音频)信息的方式。传统的视频直播多为电视台在重大事件中向电视观众发布,通常使用专业摄像机作为视频源,通过卫星作为视频传输方式。随着互联网技术的发展,出现了面向互联网发布、使用互联网作为视频传输方式的网络视频直播。P2P (Peer-to-Peer)是ー种分布式网络模型,可以简单地定义为通过直接交換共享计算机资源和服务,对等计算机兼有客户机和服务器的功能。由于P2P技术能够对资源充分发掘和利用,具备用户越多播放越流畅越稳定的特性,目前在许多领域蓬勃发展,如协同工作、即时通讯、文件传递、电子商务、网络教学等。随着P2P技术的日臻完善,P2P技术从文件共享也逐步应用到流媒体直播中,同传统的C/S、B/S集中式模式相比较,采用分布式网络模式的P2P流媒体直播技术能够更好地在网络带宽瓶颈、延时和可靠性之间做出平衡,节省了带宽。RM格式是Real公司对多媒体世界的一大贡献,也是对于在线影视推广的贡献。它的诞生,也使得流文件为更多人所知。这类文件可以实现即时播放,即先从服务器上下载ー部分视频文件,形成视频流缓冲区后实时播放,同时继续下载,为接下来的播放做好准备。这种“边传边播”的方法避免了用户必须等待整个文件从Internet上全部下载完毕才能观看的缺点,因而特别适合在线观看影视。RM格式的视频文件大量存在。采取P2P技术进行RM格式的文件进行视频直播的需求客观存在,在数据播放这ー块直接采用Real公司的编解码SDK重新写一个播放器难度较大,最简单的方法就是通过ActiveX控件使用Real公司的RealPlayer播放器。RealPlayer播放器播放文件有两种使用方法第一种就是播放本地的视频文件;第二种是播放网络是的流式文件。由于是直播并且为了保护硬盘考虑,不适宜采取播放本地文件的方法。RealPlayer播放器支持的最简单的流式协议是Http协议。但RealPlayer的Http协议本身是私有的而且P2P下载数据可能是不完整的,这两方面导致RealPlayer播放器使用存在难度,成为本领域技术人员亟待解决的技术课题。

发明内容
本发明的目的在于提供一种基于流式P2P直播技术的RealPlayer播放器系统及播放方法用于有效屏蔽RealPlayer播放器内部复杂的协议交互,降低P2P丢包对RealPlayer播放器的影响。 为达上述目的及其他目的,本发明采用如下技术方案
—种基于流式P2P直播技术的RealPlayer播放器系统,其特征在于包括
该系统包括设有RealPlayer ActiveX控件的ActiveX容器; 用于接受RealPlayerActiveX控件请求的Http服务器;用于解析并响应ActiveX容器发送的请求并发送流媒体数据至ActiveX容器的RMProtocol 模组;用于修改上述流媒体数据的时间戳的ChagneRMTime模组以及用于存储本地收到的流媒体数据的缓冲区Buf f erManager。—种基于流式P2P直播技术的RealPlayer播放方法,该方法包括以下步骤I)P2P下载者发现本地缓冲已经足够多的时候,通过消息发送给RealPlayer播放器;2) RealPlayer播放器发起到Http服务器的连接请求;3) Http服务器创建ー个新的对象RMProtocol来处理RealPlayer播放器的请求;4) RMProtocol收取到RealPlayer播放器的GET请求后发送200的响应给RealPlayer 播放器;5) RMProtocol通过GET请求中的URL标识符获取到该请求对应的BufferManager,并从BufferManager中获取到RM文件头发送给RealPlayer播放器;6)在RMProtocol从BufferManager获取流媒体数据发送给RealPlayer播放器之前,调用ChangeRMTime模组。本发明的播放器系统具有使用简单,有效屏蔽了 RealPlayer播放器内部复杂的协议交互,解决了 P2P丢包对RealPlayer播放器的影响,支持多个文件无缝切换的优点。


图I为本发明的播放器系统的基本结构示意图。图2为本发明的播放器系统的BufferManager数据结构图。
具体实施例方式—种基于流式P2P直播技术的RealPlayer播放器系统,其特征在于包括该系统包括设有RealPlayer ActiveX控件的ActiveX容器;用于接受RealPlayerActiveX控件请求的Http服务器;用于解析并响应ActiveX容器发送的请求并发送流媒体数据至ActiveX容器的RMProtocol 模组;用于修改上述流媒体数据的时间戳的ChagneRMTime模组以及用于存储本地收到的流媒体数据的缓冲区BufferManager。修改上述流媒体数据的时间戳的目的在于为了流畅播放。本播放器系统外的接ロ简单,共分三个接ロ I)设置文件头,參数为fileld,文件头内容。2)写数据,參数为fileld,pieceld,实际内容。3)播放数据段,參数为开始pieceld,结束pieceld。本播放器系统的播放受调用者控制。
BufferManager模块用来存放缓冲出来的数据块和每个RM文件的文件头,存放数据是ー个变长的链表,如图2所示,链表的表项用来存储每个Piece的数据、Piece的编号、这个Piece所属的文件的Id。存放文件头的是ー个Map,文件头比较重要,数据可以丢失,但文件头不能没有。RMProtocol用来处理与RealPlayer播放器的协议交互和发送数据给RealPlayer播放器,RMProtocol与RealPlayer之间采用Http协议,Http请求的格式如下GET/42113473819066140192129236203137_1. rm HTTP/1. IAccept :氺/氺Accept-Encoding gzip, deflateUser-Agent Moz i I la/4. 0 (compatible ;MSIE 7. 0 ;ffindows NT 5. I ; Trident/4. 0 ;InfoPath. I ;. NET CLR 2. 0. 50727)Host 127. 0. 0. I :3237Connection Keep-AliveRMProtocol发送给RealPlayer播放器的响应为HTTP/1. I 200 OKContent-type application/vnd. rn-realmediaContent-Length :11607560有RMProtocol发送完200响应后,接着可以发送RM文件的头和数据。ChangeRMTime用来修改RM数据包的时间戳,以达到在P2P出现丢包的情况下,观众仍然能跳过丢失的内容继续观看。如果不做这种修改,RealPlayer播放器会在丢包的地方停顿相应的丢失的秒数,影响观众观看情緒。ChangeRMTime修改时间戳的方法是一旦发现某个数据包前面的数据包丢失了,则把该数据包的时间戳改成最后一个收到的数据包的时间戳+1。综上所述,一次完整的播放过程的主要步骤是I)P2P下载者发现本地缓冲已经足够多的时候,通过消息发送给RealPlayer播放器。2) RealPlayer播放器发起到Http服务器的连接请求。3) Http服务器创建一个新的对象RMProtocol来处理RealPlayer的请求。4) RMProtocol收取到RealPlayer的GET请求(Get请求是以实体的方式得到由请求URI所指定资源的信息,如果请求URI只是ー个数据产生过程,那么最終要在响应实体中返回的是处理过程的结果所指向的资源,而不是处理过程的描述)后发送200的响应给RealPlayer。5) RMProtocol通过请求中的URL标识符获取到该请求对应的BufferManager,并从BufferManager中获取到RM文件头发送给RealPlayer。6)在从BufferManager获取流媒体数据发送给RealPlayer之前,调用ChangeRMTime0上述实施例仅列示性说明本发明的原理及功效,而非用于限制本发明。任何熟悉此项技术的人员均可在不违背本发明的精神及范围下,对上述实施例进行修改。因此,本发明的权利保护范围,应如权利要求书所列。
权利要求
1.一种基于流式P2P直播技术的RealPlayer播放器系统,其特征在于包括 该系统包括设有RealPlayer ActiveX控件的ActiveX容器; 用于接受RealPlayerActiveX控件请求的Http服务器; 用于解析并响应ActiveX容器发送的请求并发送流媒体数据至ActiveX容器的RMProtocol 模组; 用于修改上述流媒体数据的时间戳的ChagneRMTime模组以及用于存储本地收到的流媒体数据的缓冲区BufferManager。
2.如权利要求I所述的ー种基于流式P2P直播技术的RealPlayer播放器系统,其特征在于包括所述存储本地收到的流媒体数据分属多个RM文件。
3.—种基于流式P2P直播技术的RealPlayer播放方法,该方法包括以下步骤 1)P2P下载者发现本地缓冲已经足够多的时候,通过消息发送给RealPlayer播放器; 2)RealPlayer播放器发起到Http服务器的连接请求;3)Http服务器创建ー个新的对象RMProtocol来处理RealPlayer播放器的请求; 4)RMProtocol收取到RealPlayer播放器的GET请求后发送200的响应给RealPlayer播放器; 5)RMProtocol通过GET请求中的URL标识符获取到该请求对应的BufferManager,并从BufTerManager中获取到RM文件头发送给RealPlayer播放器; 6)在RMProtocol从BufferManager获取流媒体数据发送给RealPlayer播放器之前,调用 ChangeRMTime 模组。
全文摘要
本发明的一种基于流式P2P直播技术的RealPlayer播放器系统及播放方法,包括RealPlayerActiveX控件;RealPlayerActiveX控件的容器;用于接受RealPaleryerHTTP连接请求的Http服务器;用于解析RealPlayer播放器发送的请求并响应和发送流式数据的RMProtocol;用于为了流畅播放而修改数据包时间戳的ChagneRMTime;用于存储本地收到的分属多个RM文件的流媒体数据的缓冲区BufferManager;该播放器系统屏蔽了与RealPlayer控件交互的复杂协议、适应P2P直播情况下可能丢失数据包的情况、支持多个流媒体文件的无缝平滑播放、对外接口简单易用,非常适合作为流式P2P直播时的播放器系统。
文档编号H04L29/08GK102651756SQ20111004831
公开日2012年8月29日 申请日期2011年2月28日 优先权日2011年2月28日
发明者储泰山 申请人:上海未来宽带技术及应用工程研究中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1