基于p2p流媒体的二次编码播放方法及系统的制作方法

文档序号:7757267阅读:151来源:国知局
专利名称:基于p2p流媒体的二次编码播放方法及系统的制作方法
技术领域
本发明涉及网络流媒体传输技术领域,特别涉及一种基于P2P流媒体的二次编码 播放方法及系统。
背景技术
对等网络(Peer to peer network)是近几年新兴的网络技术,相对于传统的C/S 模式,P2P模式一个非常显著的特点就是节点无需依赖集中式服务器资源,各节点可以直接 进行通信。每个节点具有相同的地位,既可以请求服务,也可以提供服务,同时扮演着C/S 模式中服务器和客户端的双重角色,甚至还可以具有路由器和高速缓存的功能。在P2P模 式下,由于每个节点都具有客户端和服务器的功能,这样,每个节点在从别的节点接收数据 流的同时还向其他节点发送数据流。由于这个特点,P2P网络技术目前被广泛应用于互联 网上大规模网络流媒体播放系统。异构网络特点目前网络的发展呈现规模性、异构性、动态性的特点。随着网络技 术迅猛发展,网络的异构性会越来越突出。就有线网络和无线网络自身而言,也存在异构。 尤其是近年来3G、WLAN、WiMAX, UffB等各种无线技术纷纷涌现,未来网络的异构性更加突 出。不仅在无线接入方面具有这样的趋势,在终端技术、网络技术和业务平台技术等方面 异构化、多样化的趋势也愈加明显。针对互联网上不同类型客户端的接入,如ADSL用户、 Modem用户、无线网络用户等,其网络环境各不相同,其各个节点在P2P流媒体网络中的带 宽能力也各不相同,有些节点带宽能力较强,称为强节点(强客户端),有些较差,称为弱节 点(弱客户端),弱节点一般在P2P网络中处于叶子节点。传统的P2P流媒体直播系统中传播算法对节点间存在的异构性均考虑不足,即无 论节点的网络访问带宽如何,传输的节目源带宽不会因为接收节点的带宽能力受限而降 低。传统的P2P流媒体直播数据来源于父节点,数据传输策略上主要考虑不同节点之间的 数据传输网络服务质量(Quality of Service, Qos)保障,例如防止网络抖动、丢包重传机 制、低延时效果等方法,但这些策略并未考虑低带宽弱客户端的收看能力,对于弱客户端, 其收看能力会因为下行带宽的限制而存在大量的丢包_重传_再丢包的现象,最终导致弱 节点客户端无法正常收看。

发明内容
(一)要解决的技术问题本发明要解决的技术问题是在P2P流媒体直播过程中,在节点接收带宽受限的 情况下,如何避免丢包_重传_再丢包导致无法正常播放的问题。( 二 )技术方案一种基于P2P流媒体的二次编码播放方法,包括以下步骤Sl 当前节点向邻居节点发出播放连接请求,并播放邻居节点发来的媒体流;S2 播放过程中,所述当前节点实时估算自己的接收带宽;
S3:若所述接收带宽低于预定值,则当前节点请求其邻居节点对播放的媒体流进 行二次编码;S4:所述邻居节点对播放的媒体流进行二次编码后,将二次编码后的媒体流传输 给当前节点。其中,所述步骤Sl之前还包括当前节点估算各个邻居节点的传输带宽的步骤所述当前节点定期的向全部邻居节点发送数据请求;所述当前节点接收所述邻居节点在两次请求的间隔t内发来的数据包,将该数据 包数量作为该邻居节点传输带宽;在规定的时间T内,T > t,统计发送数据包数量大于或等于请求的数据包总数的 邻居节点。其中,当邻居节点在一次请求后发来的数据包数量等于请求的数据包的数量时, 所述当前节点在下次请求时增加请求数据包的数量。其中,所述步骤S3中请求所述统计的邻居节点中传输带宽最大的邻居节点进行 二次编码,并通过所述请求将自己的接收带宽通知给所述传输带宽最大的邻居节点。其中,所述步骤S2中当前节点通过实时统计媒体流数据接收缓冲区中的丢包率 估算自己的接收带宽。其中,所述步骤S4中对播放的媒体流二次编码的步骤包括
对播放的媒体流进行下采样;按所述当前节点可接收带宽对下采样后的媒体流进行重新编码。其中,所述预定值为媒体流发布源的发送带宽。其中,若进行二次编码的邻居节点退出P2P流媒体直播网络,则所述当前节点重 复步骤S3和S4。一种基于P2P流媒体的二次编码播放系统,包括播放请求模块,用于当前节点向邻居节点发出播放连接请求,并播放邻居节点发 来的媒体流;接收带宽估算模块,用于在播放过程中,所述当前节点实时估算自己的接收带 宽;二次编码请求模块,用于在所述接收带宽低于预定值时,当前节点请求其邻居节 点对播放的媒体流进行二次编码;二次编码模块,用于所述邻居节点对播放的媒体流进行二次编码后,将二次编码 后的媒体流传输给当前节点。其中,还包括邻居节点传输带宽估算模块,具体包括定期请求模块,用于所述当前节点定期的向邻居节点发送数据请求;数据包接收模块,用于所述当前节点接收所述邻居节点在两次请求的间隔t内发 来的数据包,将该数据包数量作为该邻居节点传输带宽;数据包数量判断模块,用于在规定的时间T内,T >t,统计发送数据包数量大于或 等于请求的数据包总数的邻居节点。(三)有益效果本发明通过请求传输带宽较强的节点对媒体流进行二次编码,在将二次编码后的媒体流传送给接收带宽较弱的节点,避免了在接收带宽较弱的节点处出现丢包-重传-再 丢包的现象,使得在剧烈变化的网络环境下,仍能确保客户端享受到连续的、平稳的、高质 量的流媒体服务。


图1是本发明实施例的基于P2P流媒体的二次编码播放方法流程图;图2是图1中强节点对弱节点进行二次编码时的示意图。
具体实施例方式下面结合附图和实施例,对本发明的具体实施方式
作进一步详细描述。以下实施 例用于说明本发明,但不用来限制本发明的范围。本发明实施例中,判断节点的带宽强弱,通过接收带宽小的节点(简称弱节点,一 般指接收带宽小于媒体流发布源的发送带宽的节点)请求传输带宽大的节点(简称强节 点)对流媒体进行二次编码,然后强节点将二次编码后的媒体流传输给弱节点,从而避免 丢包_重传_再丢包的现象,达到流畅观看视频的目的。具体方法流程如图1所示。步骤S101,加入P2P媒体流直播网络的当前节点估算其邻居节点的传输带宽,其 中,传输带宽包括邻居节点的数据处理能力以及邻居的处理负载等因素。具体估算方法如 下在P2P视频直播过程中,当前节点定期的向邻居节点发送数据请求。邻居节点在 当前节点两次请求的间隔内返回给当前节点的数据包的最大数量作为邻居节点的网络传 输带宽。当前节点在每次执行调度算法之前都需要计算每个邻居节点的传输带宽。邻居节 点传输带宽的计算公式如下
门,· [^rec if {N <= Nrec)^ = (θ IRNreq > NrJ其中Cfl^nd表示第i个邻居节点的传输带宽,Nrai表示当前节点请求的邻居节点的 发包个数,Nre。表示实际接收的数据包个数,如果在指定的时间T (如5秒)内,接收的数据 包个数大于或等于请求的数据包个数,即Nra ^ Nrai,则表示当前邻居节点具有的传输带宽 为Nra,如果接收的数据包个数小于请求的数据包个数,即Nre。< Ν_,则表示当前邻居节点 的带宽上行发送能力不够,需要减小Nrai重新测试,一直到Nra彡Nreq为止,。则Nra表示当 前邻居节点的上行带宽能力。当前节点通过比较接收到的数据包数量和请求的数据包数量 来动态更改邻居的传输带宽,如果指定的时间内接收的数据包数量不能够达到请求数据包 的数量,那么邻居的节点的带宽较低,上行传输带宽不能满足要求,邻居的传输能力降低。 如果接收到的数据包数量大于或等于请求的包的数量,这时要判断请求的数据包的数量是 否等于邻居节点的发送数据包的数量,如果等于,则说明邻居现在可能有原始码流以上的 能力,那么就要对邻居的带宽动态增长。对邻居节点最大带宽的限制,可以减轻对某一节点 的依赖程度,减少该邻居节点出现异常对当前节点的影响。步骤S102,当前节点向各邻居节点发出播放连接请求,建立连接后,播放邻居节点 发来的媒体流。步骤S103,在播放过程中,当前节点实时地估算自己的接收带宽,确定自己的带宽大小,以确定自己是否为弱节点。估算方式如下为保证播放的顺利,本系统采用接收缓冲区和播放缓冲区双缓冲机制,用来控制 数据包的接收和播放调度。接收缓冲区中接收多个上层节点传过来的流媒体数据,并按序 列号进行数据重新排序,如果在一定时间内数据未完全到达,则请求上层节点进行数据包 重传,找回网络丢失的数据包。另外,接收缓冲区还能根据接收数据的速度和数量来统计本 节点的数据包丢包率,用来表示本节点网络可用带宽状态,如果统计丢包率很低或者为0, 则表示本节点的带宽能力较强,可正常观看节目;如果一段时间统计丢包率很高,则表示本 节点的带宽能力较差,需要请求更低带宽的编码码流,根据统计的状态来动态调整连接策 略。步骤S104,根据S103中带宽的大小判断当前节点是否为弱节点,即接收带宽是否 低于预定值,该预定值一般为媒体流发布源的发送带宽,若是,则执行步骤S105,否则执行 步骤S106。判断过程如下步骤S105,若该当前节点不为弱节点,则按媒体流发布源的发送带宽播放媒体流。步骤S106,当前节点若为弱节点,其统计的带宽能力远远小于目前传过来的媒体 流带宽,该弱节点向邻居节点中的强节点提出二次编码请求,优选请求最近最强带宽的节 点进行二次编码,并通过所述请求将自己的接收带宽通知给所述强节点。步骤S107,强节点按若弱点的带宽进行二次编码后的数据传递到弱节点播放。如 图2所示,为对音频进行二次编码的数据调度过程示意图。选用原始发送带宽为512kbits/ s,此传输带宽对于目前互联网上大多数用户(如ADSL用户)基本可以满足其正常观看要 求,但对于很多弱节点客户端(如电话Modem上网用户、无线用户),其可用带宽低至几十 k,原始的512kbits/s多媒体数据大大超过其接收能力,此时在弱节点的请求下,强节点对 音频媒体流进行下采样,然后按弱节点可接收带宽56kbits/s对下采样后的媒体流进行重 新编码,并将编码后的媒体流发送给弱节点。步骤S108,弱节点接收到强节点发来的二次编码后的媒体流,并播放。步骤S109,在播放过程中,若进行二次编码的强节点退出该P2P媒体流直播网络, 则弱节点从邻居节点中重新请求强节点进行媒体流二次编码,即返回步骤S106执行,否则 一直执行步骤S108直到播放完成。本发明还公开了一种基于P2P流媒体的二次编码播放系统系统,包括播放请求 模块,用于当前节点向邻居节点发出播放连接请求,并播放媒体流;接收带宽估算模块,用 于在播放过程中,所述当前节点实时估算自己的接收带宽;二次编码请求模块,用于在所述 接收带宽低于预定值时,当前节点请求其邻居节点对播放的媒体流进行二次编码;二次编 码模块,用于所述邻居节点对播放的媒体流进行二次编码后,将二次编码后的媒体流传输 给当前节点。其中,还包括邻居节点传输带宽估算模块,具体包括定期请求模块,用于所述当 前节点定期的向邻居节点发送数据请求;数据包接收模块,用于所述当前节点接收所述邻 居节点在两次请求的间隔之间发来的数据包;数据报数量判断模块,用于在规定的时间内 比较若邻居节点发来的数据包数量是否大于等于请求的数据包的数量,若是,则将该邻居 节点发来的数据包数量作为其传输带宽。以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有 等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
权利要求
一种基于P2P流媒体的二次编码播放方法,其特征在于,包括以下步骤S1当前节点向邻居节点发出播放连接请求,并播放邻居节点发来的媒体流;S2播放过程中,所述当前节点实时估算自己的接收带宽;S3若所述接收带宽低于预定值,则当前节点请求其邻居节点对播放的媒体流进行二次编码;S4所述邻居节点对播放的媒体流进行二次编码后,将二次编码后的媒体流传输给当前节点。
2.如权利要求1所述的基于P2P流媒体的二次编码播放方法,其特征在于,所述步骤 Sl之前还包括当前节点估算各个邻居节点的传输带宽的步骤所述当前节点定期的向全部邻居节点发送数据请求;所述当前节点接收所述邻居节点在两次请求的间隔t内发来的数据包,将该数据包数 量作为该邻居节点传输带宽;在规定的时间T内,T > t,统计发送数据包数量大于或等于请求的数据包总数的邻居 节点。
3.如权利要求2所述的基于P2P流媒体的二次编码播放方法,其特征在于,当邻居节点 在一次请求后发来的数据包数量等于请求的数据包的数量时,所述当前节点在下次请求时 增加请求数据包的数量。
4.如权利要求2所述的基于P2P流媒体的二次编码播放方法,其特征在于,所述步骤 S3中请求所述统计的邻居节点中传输带宽最大的邻居节点进行二次编码,并通过所述请求 将自己的接收带宽通知给所述传输带宽最大的邻居节点。
5.如权利要求1所述的基于P2P流媒体的二次编码播放方法,其特征在于,所述步骤 S2中当前节点通过实时统计媒体流数据接收缓冲区中的丢包率估算自己的接收带宽。
6.如权利要求1所述的基于P2P流媒体的二次编码播放方法,其特征在于,所述步骤 S4中对播放的媒体流二次编码的步骤包括对播放的媒体流进行下采样;按所述当前节点可接收带宽对下采样后的媒体流进行重新编码。
7.如权利要求1所述的基于P2P流媒体的二次编码播放方法,其特征在于,所述预定值 为媒体流发布源的发送带宽。
8.如权利要求1 7中任一项所述的基于P2P流媒体的二次编码播放方法,其特征在 于,若进行二次编码的邻居节点退出P2P流媒体直播网络,则所述当前节点重复步骤S3和 S4。
9.一种基于P2P流媒体的二次编码播放系统,其特征在于,包括播放请求模块,用于当前节点向邻居节点发出播放连接请求,并播放邻居节点发来的 媒体流;接收带宽估算模块,用于在播放过程中,所述当前节点实时估算自己的接收带宽;二次编码请求模块,用于在所述接收带宽低于预定值时,当前节点请求其邻居节点对 播放的媒体流进行二次编码;二次编码模块,用于所述邻居节点对播放的媒体流进行二次编码后,将二次编码后的 媒体流传输给当前节点。
10.如权利要求9所述的基于P2P流媒体的二次编码播放系统,其特征在于,还包括邻 居节点传输带宽估算模块,具体包括定期请求模块,用于所述当前节点定期的向邻居节点发送数据请求; 数据包接收模块,用于所述当前节点接收所述邻居节点在两次请求的间隔t内发来的 数据包,将该数据包数量作为该邻居节点传输带宽;数据包数量判断模块,用于在规定的时间T内,T > t,统计发送数据包数量大于或等于 请求的数据包总数的邻居节点。
全文摘要
本发明公开了一种基于P2P流媒体的二次编码播放方法,包括当前节点向邻居节点发出播放连接请求,并播放媒体流;播放过程中,所述当前节点实时估算自己的接收带宽;所述接收带宽低于预定值,则当前节点请求其邻居节点对播放的媒体流进行二次编码;所述邻居节点对播放的媒体流进行二次编码后,将二次编码后的媒体流传输给当前节点。还公开了一种基于P2P流媒体的二次编码播放系统,包括播放请求模块、接收带宽估算模块、二次编码请求模块、二次编码模块和邻居节点传输带宽估算模块。本发明避免了由于客户端受接收带宽限制的情况下产生丢包-重传-再丢包的问题,从而使客户端享受到连续、平稳、高质量的流媒体服务。
文档编号H04L29/08GK101924793SQ20101025631
公开日2010年12月22日 申请日期2010年8月17日 优先权日2010年8月17日
发明者华仁红 申请人:北京易视腾科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1