一种减少媒体播放延时的方法和装置的制作方法

文档序号:7975478阅读:293来源:国知局
专利名称:一种减少媒体播放延时的方法和装置的制作方法
技术领域
本发明涉及流媒体领域,特别涉及一种减少媒体播放延时的方法和装置。
背景技术
流媒体技术是一种在IP网络上发布多媒体数据流的技术。传统播放技术是客户端从服务器下载完整的文件后进行播放,而流媒体技术是采用了流式传输方式,将整个多媒体文件压缩解析成多个压缩包,向客户端实时地顺序传送,用户可以一边解压播放前面传送过来的压缩包,一边下载后续的压缩包,从而节省了时间。随着计算机技术的发展,流媒体技术越来越广泛地应用于VOD(Video on-demand)视频点播。视频点播是将录制好的视频节目通过捕捉、压缩等一系列过程转成可通过计算机直接播放的数字视频文件,并存储在网站的服务器上供访问者点播,用户通过终端设备收看视频服务商提供的视频和音频节目,并且可以在观看节目中进行前进、倒退、暂停等操作。视频点播具有快速、方便、交互性好等优点,随着网络带宽的不断加大,视频点播业务将具有更广泛的发展前景,而IPTV(Internet ProtocolTelevision-网络电视)的发展,使流媒体技术的应用达到了空前的热度。
随着IPTV的VOD的发展,传统的流媒体系统暴露出很多问题,用户点播对服务器的冲击过大,容易引入单点故障,于是就引入了CDN(Content Delivery Network-内容分发网)技术,CDN技术的核心思想是将内容从中心推到边缘靠近用户的地方,这样不但有效地提高了用户访问内容的服务质量,而且还能减轻中心设备和骨干网络的压力。通过CDN技术,可以将内容服务从原来的单一中心服务结构变为分布式服务结构,用户在点击节目的时候,从靠近用户的边缘服务器上就可以获取所需要的媒体内容,用户在快进,快退和拖拉等播放操作的时候,还是在同一个服务器上获取资源。
近年来,随着P2P(Peer-to-Peer-对等网络)技术的迅速发展,P2P在流媒体方面的应用也越来越多,例如PPLive,PPStream等基于P2P的流媒体软件。利用P2P的对等特点,让用户节点作为服务器来提供内容,来分担服务器的负担,同时增加了系统的可扩展性,使媒体数据的分布性增强。目前基于P2P技术的流媒体系统中,由于每个节点在接收内容的同时,也将接收到的内容发向其它节点,所以每个节点向其它节点提供的内容是随着节点观看的内容变化而变化的,这样在用户进行媒体的快进、快退或者拖拉等描放操作的时候,需要重新搜索对应的片源,然后才能建立TCP连接。图1给出了PPLive流媒体软件的实现原理图,当用户对播放进度执行拖拉操作的时候,用户首先要到中心服务器上去查询用户列表,然后根据当前的播放情况,和相关节点建立相应的TCP连接实现播放,这样做势必会加大媒体播放的延时,而且也没有考虑到各个节点间的亲近关系,与此同时中心服务器还要负责不停地更新各个节点所提供的内容,增加了其自身的负担。另外,由于每个用户节点仅仅保存一小部分媒体内容,在这种情况下,如果一个用户想要访问一个完整的节目,就需要访问多个用户节点才能获取全部的资源,当用户进行快进、快退或拖拉操作的时候,用户可能要跨越不同的提供节目内容的节点,进行重新搜索,并建立TCP连接,这样也势必会加大媒体播放的延时。在基于CDN技术的网络下,用户执行拖拉播放操作后,由于还是从原来的服务器上获取资源,并不需要重新搜索服务器和建立TCP连接,所以播放延时大概在2-3秒左右,而在基于P2P技术的网络下,用户执行拖拉播放操作后,需要重新搜索服务器和建立TCP连接,再加上播放缓存时间,播放延时将达到5秒以上,这个延时对用户是无法接受的。

发明内容
为了解决基于P2P技术的流媒体播放过程中,用户执行播放进度的拖拉操作时,由于节点间切换造成播放延时的问题,本发明实施例提出了一种减少媒体播放延时的方法,该方法在用户节点上划分出两个缓冲区,并执行以下步骤步骤A用户节点获取含有点播节目内容的节点列表;步骤B所述用户节点从所述节点列表中选择出各个时间点具有相同节目内容的最优节点和次优节点,并将所有时间点的最优节点和次优节点保存到本地节点列表中;步骤C所述用户节点分别与所述本地节点列表中的最优节点建立TCP连接;步骤D所述用户节点通过所述缓冲区接收媒体流数据,并播放该媒体流数据。
所述两个缓冲区中的一个缓冲区保存其它节点的节目内容,向其它节点提供媒体服务,另一个缓冲区接收媒体流数据。
所述步骤A具体为所述用户节点通过分布式哈希表网络或者中心服务器获取含有点播节目内容的节点列表。
所述步骤B具体为所述用户节点通过往返时间测量分别测量出与各个时间点具有相同节目内容的节点之间的距离,根据测量结果找到各个时间点与所述用户节点距离最近和次最近且具有相同节目内容的两个节点,并将这两个节点分别作为提供相同节目内容的主用节点和备用节点,保存到本地节点列表中。
所述步骤B具体为所述用户节点通过路由跳数分别计算出与各个时间点具有相同节目内容的节点之间的路由跳数,根据路由跳数找到各个时间点与所述用户节点路由跳数最少和次最少且具有相同节目内容的两个节点,并将这两个节点分别作为提供相同节目内容的主用节点和备用节点,保存到本地节点列表中。
所述步骤C具体为所述用户节点分别与所述本地节点列表中的主用节点建立TCP连接。
所述方法还包括当所述用户节点与所述本地节点列表中的主用节点无法建立TCP连接时,所述用户节点与所述本地节点列表中与该主用节点对应的备用节点建立TCP连接。
本发明实施例还提供了一种减少媒体播放延时的装置,所述装置包括第一缓存模块、第二缓存模块、节点列表获取模块、选择保存模块、TCP建立模块和播放模块;所述第一缓存模块用于保存其它节点的节目内容,向其它节点提供媒体服务;所述第二缓存模块用于接收媒体流数据;所述节点列表获取模块用于获取含有点播节目内容的节点列表;所述选择保存模块用于从所述节点列表获取模块获取的节点列表中选择出各个时间点具有相同节目内容的最优节点和次优节点,并将选择出的最优节点和次优节点保存到本地节点列表中;所述TCP建立模块用于在用户节点和所述选择保存模块保存的最优节点之间建立TCP连接;所述播放模块用于播放所述第二缓存模块接收到的媒体流数据。
所述节点列表获取模块通过分布式哈希表网络或者中心服务器获取含有点播节目内容的节点列表。
所述装置还包括重建模块,所述重建模块用于当用户节点与本地节点列表中的主用节点无法建立TCP连接时,在用户节点与本地节点列表中与该主用节点对应的备用节点间重新建立TCP连接。
有益效果1.由于本发明实施例选择最优节点作为提供节目内容的节点,所以大大地增加了用户视频点播的服务质量。
2.由于本发明实施例用户节点预先分别与本地节点列表中的最优节点建立TCP连接,所以大大地减少了流媒体播放进度拖拉操作的延时。


图1是现有技术中PPLive流媒体软件的实现原理图;图2是本发明实施例减少媒体播放延时的方法流程图;图3是本发明实施例用户执行拖拉播放操作的示意图;图4是本发明实施例减少媒体播放延时的装置的结构图。
具体实施例方式
下面结合附图和具体实施例对本发明作进一步说明,但不作为对本发明的限定。
根据P2P技术的特点,用户一边接收内容,一边向其他人提供内容,在用户节点上划分两个缓冲区,一个可以定义为接收缓冲区,用于接收媒体流数据并缓存,以便播放;另一个可以定义为共享缓冲区,用于向其它节点提供媒体服务,此外共享缓冲区中还存储一部分节点的节目内容,而该节目内容在相当长时间内保持不变。将用户节点的共享缓冲区中存储的节目内容注册到P2P网络中,这样用户在执行播放进度的拖拉操作时,不必进行搜索,不必花费额外的时间去跟踪节点动态缓冲区的变化情况。
用户在点击一个节目的时候,在开始阶段就可以获取到能够含有点播节目内容的节点列表,然后从中选择最优的节点。当有多个用户节点同时提供一份相同的节目内容的时候,要通过比较各个用户节点的性能,并通过RTT(Round Trip Time-往返时间)测量来寻找到距离用户节点最近的节点作为提供节目内容的节点,将各个提供节目内容的节点保存到用户节点的本地节点列表中,同时和各个提供节目内容的节点预先建立TCP连接,一方面是为了保持和其它用户节点的通讯状态,另一方面为了在用户执行拖拉播放操作的时候能够节省时间。
下面针对用户点播某个节目的情况,详细阐述本发明实施例减少媒体播放延时的方法,其具体包括以下步骤,参见图2步骤101将点播的节目内容分发到用户节点的共享缓冲区中。
节目内容的分发可以由超级节点来进行。分发的原则为分发到在线时间长,比较稳定的用户节点。
步骤102用户节点通过DHT(Distributed Hash Table-分布式哈希表)网络或者中心服务器来获取含有点播节目内容的节点列表。
步骤103用户节点通过RTT分别测量出与节点列表中各个含有点播节目内容的节点的距离,并将此距离作为节点之间亲近关系的衡量数据保存到用户节点的本地节点列表中。
RTT的测量可以采用ping包的命令形式或者应用层的测量消息来实现。
步骤104用户节点根据本地节点列表中的距离参数,选择出各个时间点具有相同节目内容的最优节点和次优节点,并将所有最优节点和次优节点作为提供相同节目内容的主用节点和备用节点,也保存到用户节点的本地节点列表中。
各个时间点具有相同节目内容的最优节点和次优节点的选择标准为与用户节点距离最近的节点为最优节点,与用户节点距离次最近的节点为次优节点。
步骤105用户节点分别与其本地节点列表中的主用节点建立TCP连接。
通过建立TCP连接,一方面是为了保持本节点与其它节点的连接,当其它节点下线的时候,可以通过其它节点的备用节点或者重新搜索一个新的节点来建立TCP连接;另一方面是为了减少用户执行拖拉播放操作时,节点之间切换所造成的延时。
步骤106用户节点通过接收缓冲区接收媒体流数据,并播放该媒体流数据。
为了更加清楚地描述本实施例的技术方案,下面以具体的例子来进一步说明如图3所示为用户执行拖拉播放操作的示意图。图中节点A、B、C、D、E五个节点连续的组成一个点播节目的所有媒体数据。节点G和F分别与节点A和C具有相同的节目内容,它们和当前用户节点的距离大于A和C与当前用户节点的距离,作为A和C节点的备用节点。表1为当前用户节点保存的本地节点列表,其中度量值是通过RTT测量值得出的,或者直接用RTT的测量时间来表示。

表1在T1时刻用户观看节目,在T2时刻时,用户正在观看A节点提供的资源(图3中实线箭头表示),同时用户节点和B、C、D、E四个节点分别建立TCP预连接(图3中虚线箭头表示TCP预连接),称为保活连接。当用户从T2时刻直接跳至T3时刻时,即实现拖拉操作播放时,由节点C来提供内容,由于用户节点已经与节点C建立好了TCP连接,这样就直接从节点C获取资源,减少了查找和建立TCP连接的时间,同时将与A节点的连接变成保活连接。当一个节点失效的时候,可以和具有相同节目内容的备用节点建立TCP连接,如果没有备用节点,可以通过DHT网络或者服务器进行搜索,重新寻找主备用节点。如果用户在开始点击的时候,从P2P网络获取到的节点列表中的节点不能提供完整的点播内容,例如在图3中只获取到了A、B、D、E四个节点,C节点由于某些原因,比如突然掉线等因素,这样在用户点播的过程中,可以间断性得向P2P网络查询,如果查询到有新的提供节目内容的节点,则进一步查询到其中最优的节点,并将该节点添加到本地节点列表中,同时建立TCP连接。
除了采用RTT测量方法寻找到最优节点和次优节点以外,还可以采用计算路由的跳数寻找到最优节点和次优节点,其原理是用户节点分别计算出与各个时间点具有相同节目内容的节点之间的路由跳数,根据路由跳数找到与用户节点路由跳数最少和次最少的各个时间点具有相同节目内容的两个节点,即最优节点和次最优节点。采用计算路由跳数实现减少媒体播放延时的方法与上述实施例完全一样,这里不再叙述。
参见图4,本发明实施例还提供了一种减少媒体播放延时的装置,装置包括第一缓存模块、第二缓存模块、节点列表获取模块、选择保存模块、TCP建立模块和播放模块;第一缓存模块用于保存其它节点的节目内容,向其它节点提供媒体服务;第二缓存模块用于接收媒体流数据;节点列表获取模块用于获取含有点播节目内容的节点列表;选择保存模块用于从节点列表获取模块获取的节点列表中选择出各个时间点具有相同节目内容的最优节点和次优节点,并将选择出的最优节点和次优节点保存到本地节点列表中;TCP建立模块用于在用户节点和选择保存模块保存的最优节点之间建立TCP连接;播放模块用于播放第二缓存模块接收到的媒体流数据。
节点列表获取模块通过分布式哈希表网络或者中心服务器获取含有点播节目内容的节点列表。
装置还包括重建模块,重建模块用于当用户节点与本地节点列表中的主用节点无法建立TCP连接时,在用户节点与本地节点列表中与该主用节点对应的备用节点间重新建立TCP连接。
以上所述的实施例只是本发明较优选的具体实施方式
,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
权利要求
1.一种减少媒体播放延时的方法,其特征在于,在用户节点上划分出两个缓冲区,并执行以下步骤步骤A用户节点获取含有点播节目内容的节点列表;步骤B所述用户节点从所述节点列表中选择出各个时间点具有相同节目内容的最优节点和次优节点,并将所有时间点的最优节点和次优节点保存到本地节点列表中;步骤C所述用户节点分别与所述本地节点列表中的最优节点建立TCP连接;步骤D所述用户节点通过所述缓冲区接收媒体流数据,并播放该媒体流数据。
2.如权利要求1所述的减少媒体播放延时的方法,其特征在于,所述两个缓冲区中的一个缓冲区保存其它节点的节目内容,向其它节点提供媒体服务,另一个缓冲区接收媒体流数据。
3.如权利要求1所述的减少媒体播放延时的方法,其特征在于,所述步骤A具体为所述用户节点通过分布式哈希表网络或者中心服务器获取含有点播节目内容的节点列表。
4.如权利要求1所述的减少媒体播放延时的方法,其特征在于,所述步骤B具体为所述用户节点通过往返时间测量分别测量出与各个时间点具有相同节目内容的节点之间的距离,根据测量结果找到各个时间点与所述用户节点距离最近和次最近且具有相同节目内容的两个节点,并将这两个节点分别作为提供相同节目内容的主用节点和备用节点,保存到本地节点列表中。
5.如权利要求1所述的减少媒体播放延时的方法,其特征在于,所述步骤B具体为所述用户节点通过路由跳数分别计算出与各个时间点具有相同节目内容的节点之间的路由跳数,根据路由跳数找到各个时间点与所述用户节点路由跳数最少和次最少且具有相同节目内容的两个节点,并将这两个节点分别作为提供相同节目内容的主用节点和备用节点,保存到本地节点列表中。
6.如权利要求4或5所述的减少媒体播放延时的方法,其特征在于,所述步骤C具体为所述用户节点分别与所述本地节点列表中的主用节点建立TCP连接。
7.如权利要求4或5所述的减少媒体播放延时的方法,其特征在于,所述方法还包括当所述用户节点与所述本地节点列表中的主用节点无法建立TCP连接时,所述用户节点与所述本地节点列表中与该主用节点对应的备用节点建立TCP连接。
8.一种减少媒体播放延时的装置,其特征在于,所述装置包括第一缓存模块、第二缓存模块、节点列表获取模块、选择保存模块、TCP建立模块和播放模块;所述第一缓存模块用于保存其它节点的节目内容,向其它节点提供媒体服务;所述第二缓存模块用于接收媒体流数据;所述节点列表获取模块用于获取含有点播节目内容的节点列表;所述选择保存模块用于从所述节点列表获取模块获取的节点列表中选择出各个时间点具有相同节目内容的最优节点和次优节点,并将选择出的最优节点和次优节点保存到本地节点列表中;所述TCP建立模块用于在用户节点和所述选择保存模块保存的最优节点之间建立TCP连接;所述播放模块用于播放所述第二缓存模块接收到的媒体流数据。
9.如权利要求8所述的减少媒体播放延时的装置,其特征在于,所述节点列表获取模块通过分布式哈希表网络或者中心服务器获取含有点播节目内容的节点列表。
10.如权利要求8所述的减少媒体播放延时的装置,其特征在于,所述装置还包括重建模块,所述重建模块用于当用户节点与本地节点列表中的主用节点无法建立TCP连接时,在用户节点与本地节点列表中与该主用节点对应的备用节点间重新建立TCP连接。
全文摘要
本发明公开了一种减少媒体播放延时的方法和装置,属于流媒体领域。为了解决基于P2P技术的流媒体播放过程中,用户执行播放进度的拖拉操作时,节点间切换造成播放延时的问题,本发明提出了减少媒体播放延时的方法用户节点获取含有点播节目内容的节点列表;用户节点从节点列表中选择出各个时间点具有相同节目内容的最优节点和次优节点,并将所有时间点的最优节点和次优节点保存到本地节点列表中;用户节点分别与本地节点列表中的最优节点建立TCP连接;用户节点通过缓冲区接收媒体流数据,并播放该媒体流数据。本发明还提供了减少媒体播放延时的装置,包括第一、第二缓存模块、节点列表获取模块、选择保存模块、TCP建立模块和播放模块。
文档编号H04L29/06GK101005606SQ20061017159
公开日2007年7月25日 申请日期2006年12月31日 优先权日2006年12月31日
发明者管红光 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1