P2p协议下实现多媒体即时播放的方法及装置的制作方法

文档序号:7943679阅读:285来源:国知局
专利名称:P2p协议下实现多媒体即时播放的方法及装置的制作方法
技术领域
本发明涉及一种多媒体文件的播放技术,特别是通过网络传输的多媒体文件的播 放技术。
背景技术
基于P2P (Peer to Peer)协议的技术解决了客户端-服务器模式下载文件存在的很 容易因耗尽服务器硬件资源而降低下载效率的问题,使得大文件在网络上的传输变得 更为便利。这也直接促进了多媒体文件在网络上的传输。基于P2P技术的多媒体文件 下载需要将该文件下载到本地存储设备中,这一过程根据文件的大小需要消耗一定的 时间。使用者在下载到完整的多媒体文件后,可以利用多媒体播放器播放该文件。
现有的基于P2P协议的下载多媒体文件的方式存在以下问题使用者由于某种原 因对下载得到的多媒体文件不满意的话,需要重新下载包含有需要内容的多媒体文件, 而下载第一个多媒体文件已经耗费了一定的时间和网络资源,并且重新下载的多媒体 文件也可能令人不满意,这就意味着需要再次耗费时间与网络资源,造成较大的浪费。

发明内容
为了解决现有基于P2P协议的下载多媒体文件方式存在的浪费时间与资源的问 题,本发明提供了一种P2P协议下实现多媒体即时播放的方法及实现该方法的装置。 即时播放刚刚下载到的部分多媒体文件可以判断该文件是否令人满意,不必在耗费了 大量时间与网络资源后才可以做判断,从而避免了浪费的问题。
本发明的技术方案如下
P2P协议下实现多媒体即时播放的方法包括如下步骤
A、 启动多媒体播放器播放得到的多媒体文件分块单位;
B、 根据多媒体播放进度将还未得到的多媒体文件分块单位按需求紧迫程度分类;
C、 根据从网络节点得到多媒体文件分块单位的速度将网络节点分类;
D、 向步骤C得到的特定的网络节点类别请求获得步骤B得到的匹配类别的多媒 体文件分块单位,步骤C类别与步骤B类别匹配的原则是速度快的网络节点请求获 得需求紧迫程度高的多媒体文件分块单位。
所述P2P协议下实现多媒体即时播放的方法还包括如下歩骤为网络节点设定超 时时间,如果从该网络节点获得多媒体文件分块单位的时间超过所述超时时间,则取 消向该网络节点获取该多媒体文件分块单位的过程。所述P2P协议下实现多媒体即时播放的方法还包括如下步骤获得下载的文件中 多媒体文件的起始位置与结束位置。
所述P2P协议下实现多媒体即时播放的方法还包括如下步骤如果所述播放器播 放位置后续一定播放时间所需的多媒体文件分块单位少于设定的数量,则放慢播放多 媒体文件分块单位的速度。
如果进行了快进或倒退等定位操作,或者播放器播放位置移动到缓冲数据尚未完 成的位置,则先将播放器暂停,并从此位置开始请求数据,待数据量足以播放的时候 再继续播放。
P2P协议为Bittorrent协议,在网络节点之间传递的Bittorent握手包中设置标识, 表明需要优先向发出握手包的网络节点提供文件分块单位。
所述标识设置于Bittorent握手包中标志字段最后一个字节的最高位。
P2P协议下实现多媒体即时播放的装置,设置在下载文件的终端上,包括多媒体 播放器和多媒体播放控制模块,多媒体播放器和多媒体播放控制模块连接,多媒体播 放器用于播放多媒体文件分块单位,多媒体播放控制模块执行如下歩骤
获取得到的文件分块单位的类型并启动多媒体播放器;
根据发出请求到获得多媒体文件分块单位的获取周期长短将网络节点由高到低分 若干级;
根据对多媒体文件分块单位需求的紧急程度将未获得的多媒体文件分块单位分 级,向获取周期短的网络节点请求获得需求紧急程度高的多媒体文件分块单位。 多媒体播放控制模块还执行如下步骤
如果从网络节点获得多媒体文件分块单位的时间超过预设的超时时间,则取消向 该网络节点获取该多媒体文件分块单位的过程。
多媒体播放控制模块还执行如下步骤
获得下载的文件中多媒体文件的起始位置与结束位置。
多媒体播放控制模块还执行如下步骤
如果所述播放器播放位置后续一定播放时间所需的多媒体文件分块单位少于设定 的数量,则放慢多媒体播放器的播放速度。 本发明的技术效果
由于本发明可以实现基于P2P协议的多媒体文件边下载边播放,这就可以在仅下 载了部分多媒体文件分块单位的情况下进行播放,根据播放可以判断出这个文件是否 是需要的,从而避免了耗费大量时间和网络资源下载不需要的多媒体文件的问题。


图1为P2P协议下实现多媒体即时播放的方法的流程图。
图2为当多媒体文件分块单位具有次级分块情况下下载文件的流程。
具体实施方式
本部分结合附图对本发明的技术方案进行详细说明。
图1说明了本发明实现多媒体即时播放的方法的主要步骤。
首先,丌始在P2P协议下的下载文件的过程。根据得到的文件地址或种子文件等 信息可以得到多媒体文件的类型,这可以通过文件的扩展名得到,具体的需要先请求 靠近多媒体文件开始位置的一个分块,得到第一个分块之后,可以根据文件扩展名推 知文件格式,由于在文件头保存了多媒体文件的结构等信息,从而可以对多媒体文件 结构进行分析,得到影片码率、索引起始位置等信息。根据得到的索引起始位置,从 靠近索引的位置开始请求数据,得到完整的多媒体文件索引。从播放位置开始请求数 据,缓冲足够长度的数据以保证播放的流畅性。从播放位置开始,后续要播放的一定 量的多媒体文件分块单位(如可播放2分钟的分块量)构成播放缓冲区。在获得文件 头、索引,并且缓冲了部分文件分块单位之后,对于普通的多媒体文件类型如wmv、 avi、 rmvb、 rm等,启动Directshow或Mediaplayer播放模块,对于flash格式,则启动 flash播放器。
如果进行了快进或倒退等定位操作,或者播放器播放位置移动到缓冲数据尚未完 成的位置,则先将播放器暂停,并从此位置开始请求数据,待数据量足以播放的时候 再继续播放。在缓冲了足够长个字节的数据之后,则可以随机的请求数据,但每次请 求时都检测一次播放器播放位置的缓冲区数据是否足够,并优先请求靠近播放位置的 多媒体文件分块单位。
在使用种子文件的情况下,下载的文件可能不止一个,因此,在得到种子文件后 可以计算出该多媒体文件在若干文件中的起始位置与结束位置。
在实施本发明方法的终端上设置可以播放若干种类型多媒体文件的播放器(可以 是一种或多种播放器),根据得到的多媒体文件类型启动适用的播放器。
根据需要的紧迫程度将还未获得的多媒体文件分块单位分类,在此依次分为高优 先级队列、普通优先级队列和低优先级队列。本发明在下载多媒体文件过程中,由于 需要播放已经得到的多媒体文件分块单位,根据播放的进度,对还未获得的多媒体文 件分块单位的需求紧迫程度是不同的,如相比于IO分钟后播放的文件分块单位,2分
钟后就需要播放的文件分块单位的需求紧迫程度更高。
根据获得多媒体文件分块单位时间(DRTT)的长短将提供多媒体文件分块单位的 网络节点分级。DRTT是指针对某一网络节点,从发出下载一个文件分块单位请求到从 该网络节点得到该文件分块单位的时间(分块的大小应该适当,以避免DRTT过长), 根据这一时间的长短将连接上的网络节点分为若干等级(类)。同时为网络节点设定超 时时间,如果从该网络节点获得多媒体文件分块单位的时间超过所述超时时间,则取 消向该网络节点获取该多媒体文件分块单位的过程。
将上述完成分类的网络节点与多媒体文件分块单位进行匹配,匹配规则可以有多 种,原则就是更紧迫需要的文件分块单位倾向于向DRTT短的网络节点请求下载。这 样就尽可能地保证了播放过程不会由于文件分块单位还未下载而出现中断。根据确定 的匹配规则,向匹配的网络节点请求需要的多媒体文件分块单位。多媒体播放器可以在播放多媒体文件分块单位的同时下载其他文件分块单位,由 于有可能会出现多媒体播放器当前播放位置后续一定播放时间所需要的文件分块单位 不足的情况,从而使得播放中断。为了缓解这一情况所,本发明设定一个具体的上述 一定的播放时间,如果当前播放位置后该一定播放时间内所需要的多媒体文件分块单 位缺乏时,将播放速度降低,相当于延迟出时间等待获得足够的多媒体文件分块单位, 这在一定程度上降低了发生中断的几率,而播放速度的降低不会对播放效果产生太大 的影响。当然,上述放缓播放速度的设置可以分为多级设置,就是说当缺乏的多媒体 文件分块单位小于a时,降低播放速度到b,当缺乏的多媒体文件分块单位小于C时, 降低播放速度到d, a小于c, b大于d,依此类推逐级设置,直到最后停止播放。
由于本发明需要尽快下载到多媒体文件分块单位,因此可以在P2P协议的网络中 设置标识表明需要优先下载文件分块单位,具体设置标识可以采用类似以下例子所示 的方法(以Bittorrent协议为例在网络节点之间传递的Bittorent握手包中设置标识, 表明需要优先向发出握手包的网络节点提供文件分块单位;所述标识设置于Bittorent 握手包中标志字段最后一个字节的最高位,将该最高位设置为1,由于此位目前没有被 使用,因此可以用来作为标识。
P2P协议中还有对文件分块单位进一歩划分为次级分块的情况,如Bittorrent协议 中文件分块默认单位大小为256K,每个文件分块单位可以进一步划分为多个次级分块 ——64个分片,每个分片的大小为4K。下载过程中可以以分片为单位,这样可以在网 络带宽有限的情况下比较容易成功下载分片(如果只能下载256K的文件分块单位容易 出现由于发生错误而导致下载失败,下载效率降低)。而本发明中播放还是以256K这 样的文件分块单位进行,不以次级分块进行,这样便于减少对要播放的分块(文件分 块单位或次级分块)的验证次数。次级分块的存在使得与网络节点的匹配变得复杂, 图2举例揭示了存在次级分块情况下的下载过程。
在揭示图2所示的流程前需要说明如下情况,为了说明方便,以下部分将文件分 块单位简称为分块,将次级分块简称为分片。
将需要进行播放的终端连接的网络节点根据DRTT的长短分成高优先级和普通优 先级,高优先级网络节点的DRTT较普通优先级网络节点的DRTT短。根据对分片需 求的紧迫程度(如离播放位置的远近、前后等位置关系表明的紧迫程度)将未下载的 分片分类为高优先级队列、普通优先级队列和低优先级队列。分片分级的原则如下 高优先级队列中的分片为播放位置后缓冲区中的数据,播放器很快就会需要使用它, 因此要尽快获得;普通优先级队列的分片为播放位置之后缓冲区之后的数据,这些分 片以后也会被播放,但并不会立即被播放,所以优先级次之;低优先级队列的分片可 能是播放位置之前的分片,也可能是与播放无关的数据,因此其优先级最低。
首先判断连接的网络节点是否为高优先级。为了避免等待某一个分片的时间过长 而导致播放中断,因此为网络节点都设定一个超时时间,高优先级的超时时间设定的 较短,普通优先级的超时时间设定的较长。定期检测获取每个分片的DRTT是否超过 该网络节点设定的超时时间,如果超时,则取消从该网络节点获取此分片的过程,根据多媒体播放器当前的播放位置,计算此分片的优先程度,放入对应的优先队列中, 并重新计算该网络节点的优先级别。如果刚与一个网络节点建立连接,则需设其超时 时间为某一数值(如为高优先级用户的超时时间)。规定某一时间长度(如1秒)作为对用 户级别的界限,如果平均DRTT时间小于此值,则判定此网络节点为高优先级,否则 为低优先级。对于已取消的获得分片的过程,记录这些信息到一个列表,当一个分片 下载下来时,检测它是否已经被请求过,如果请求过此分片,不论是否被取消,都将 该分片写入磁盘或缓冲区。如果没有请求过此分片,认为此分片是错误的,丢弃此分 片。
根据从每个网络节点的获得分片的速率,进而可以得到本地(发出下载文件分块 单位请求的网络节点)的总下载速率,记录历史上的总下载速率,同时可也得到过去 一段时间内的总下载速率峰值。如果当前需要下载的高优先级队列的数量较多并且当 前的总下载速度接近总速率峰值,则应减少对普通优先级队列和低优先级队列中分片 的请求,以加快高优先级分片的下载。
在多媒体播放器播放的过程中,定时检测播放位置后缓冲区的状态,如果缓冲区 分块数量不够,则可适当减慢播放器的播放速度,以获得更长的时间等待数据,如果 只是一小块数据尚未到达,该数据的缺乏不影响播放效果,则在播放到此位置时,可 直接跳过此小块数据,如果是一大块数据,则减慢播放速度直到静止,直到数据缓冲 完成再启动播放。
对图2中所示的流程说明如下。
如果网络节点为高优先级,则先检测播放缓冲区中是否有紧急分块需要下载,如 果有紧急分块需要请求,则与高优先级队列或普通优先级队列的分块进行比较,选择 出更紧急的。然后依次检测高优先级、普通优先级、低优先级队列中是否有此分块的 分片,如果在某个优先级队列中有此分块的分片,则说明之前己经发出过部分请求, 只是未能全部请求下来,所以将剩余的分片依次逐个请求出去。如果这三个队列中均 没有此分块的分片,说明请求的是一个新的紧急分块,请求此分块的一个分片之后, 将其余分片放入高优先级队列中。
如果缓冲区里没有紧急分块需要请求,即缓冲区里所以分块都已下载或都已经归 类到各优先队列中,则依次检测高优先级、普通优先级、低优先级队列中是否有分片 可以请求,如果有,则请求此分片,如果没有,则检查网络节点是否有本地需要的分 块可以请求,如果仍没有,则随机发出分块请求。
如果连接的网络节点为普通优先级,则直接从低优先级队列开始请求。如果低优 先级队列中没有可以请求的分片,则依次检测是否可以请求该网络节点具有的本地需 要的分块,或者随机发出分块请求。
本发明还提供了实现上述方法的多媒体即时播放装置,具体说明如下。
本发明的P2P协议下实现多媒体即时播放的装置设置在下载文件的终端上,包括 多媒体播放器和多媒体播放控制模块,多媒体播放器和多媒体播放控制模块连接,多 媒体播放器用于播放多媒体文件分块单位,多媒体播放控制模块执行如下步骤-获取得到的文件分块单位的类型并启动多媒体播放器;
根据发出请求到获得多媒体文件分块单位的获取周期长短将网络节点由高到低分 若干级;
根据对多媒体文件分块单位需求的紧急程度将未获得的多媒体文件分块单位分 级,向获取周期短的网络节点请求获得需求紧急程度高的多媒体文件分块单位。
即多媒体播放控制模块执行图1和图2所示的歩骤,具体描述见对图1和图2的 说明,在需要的时候调用多媒体播放器播放多媒体文件分块单位。
权利要求
1、P2P协议下实现多媒体即时播放的方法,其特征在于包括如下步骤A、启动多媒体播放器播放得到的多媒体文件分块单位;B、根据多媒体播放进度将还未得到的多媒体文件分块单位按需求紧迫程度分类;C、根据从网络节点得到多媒体文件分块单位的速度将网络节点分类;D、向步骤C得到的特定的网络节点类别请求获得步骤B得到的匹配类别的多媒体文件分块单位,步骤C类别与步骤B类别匹配的原则是速度快的网络节点请求获得需求紧迫程度高的多媒体文件分块单位。
2、 根据权利要求1所述P2P协议下实现多媒体即时播放的方法,其特征在于还包括如下步骤为网络节点设定超时时间,如果从该网络节点获得多媒体文件分块单位 的时间超过所述超时时间,则取消向该网络节点获取该多媒体文件分块单位的过程。
3、 根据权利要求1或2所述P2P协议下实现多媒体即时播放的方法,其特征在于 还包括如下步骤获得下载的文件中多媒体文件的起始位置与结束位置。
4、 根据权利要求1或2所述P2P协议下实现多媒体即时播放的方法,其特征在于还包括如下歩骤如果所述播放器播放位置后续一定播放时间所需的多媒体文件分块单位少于设定的数量,则放慢播放多媒体文件分块单位的速度。
5、 根据权利要求1或2所述P2P协议下实现多媒体即时播放的方法,其特征在于 P2P协议为Bi加rrent协议,在网络节点之间传递的Bi加rent握手包中设置标识,表明 需要优先向发出握手包的网络节点提供文件分块单位。
6、 根据权利要求5所述P2P协议下实现多媒体即时播放的方法,其特征在于所述 标识设置于Bittorent握手包中标志字段最后一个字节的最高位。
7、 P2P协议下实现多媒体即时播放的装置,其特征在于设置在下载文件的终端上, 包括多媒体播放器和多媒体播放控制模块,多媒体播放器和多媒体播放控制模块连接, 多媒体播放器用于播放多媒体文件分块单位,多媒体播放控制模块执行如下步骤获取得到的文件分块单位的类型并启动多媒体播放器;根据发出请求到获得多媒体文件分块单位的获取周期长短将网络节点由高到低分 若干级;根据对多媒体文件分块单位需求的紧急程度将未获得的多媒体文件分块单位分 级,向获取周期短的网络节点请求获得需求紧急程度高的多媒体文件分块单位。
8、 根据权利要求7所述的即时播放装置,其特征在于多媒体播放控制模块还执行 如下步骤如果从网络节点获得多媒体文件分块单位的时间超过预设的超时时间,则取消向 该网络节点获取该多媒体文件分块单位的过程。
9、 根据权利要求7或8所述的即时播放装置,其特征在于多媒体播放控制模块还 执行如下步骤获得下载的文件中多媒体文件的起始位置与结束位置。
10、根据权利要求7或8所述的即时播放装置,其特征在于多媒体播放控制模块 还执行如下步骤如果所述播放器播放位置后续的多媒体文件分块单位少于设定的数量,则放慢多 媒体播放器的播放速度。如果进行了快进或倒退等定位操作,或者播放器播放位置移动到缓冲数据尚未完 成的位置,则先将播放器暂停,并从此位置开始请求数据,待数据量足以播放的时候 再继续播放。
全文摘要
为了解决现有基于P2P协议的下载多媒体文件方式存在的浪费时间与资源的问题,本发明提供了一种P2P协议下实现多媒体即时播放的方法,包括如下步骤启动多媒体播放器播放得到的多媒体文件分块单位;根据多媒体播放进度将还未得到的多媒体文件分块单位按需求紧迫程度分类;根据从网络节点得到多媒体文件分块单位的速度将网络节点分类;向特定的网络节点类别请求获得上述匹配类别的多媒体文件分块单位,速度快的网络节点请求获得需求紧迫程度高的多媒体文件分块单位。本发明可以尽快判断出正在下载的多媒体文件是否符合需求,以免浪费网络资源。
文档编号H04L12/18GK101626304SQ20091000024
公开日2010年1月13日 申请日期2009年1月14日 优先权日2008年7月11日
发明者耀 黄 申请人:宝利微电子系统控股公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1