一种视频播放控制方法
【专利摘要】本发明提供了一种视频播放控制方法,该方法包括:在Chord环上的每个子网设置一个多播Agent,在Agent之间使用单播来互相通信;以服务器作为Agent的引导节点,转发多播视频封包到其他的子网,根据Agent的平均带宽时间乘积参数构建多播平衡树。本发明通过视频播放网络的扩展性、稳定度与负载分享,有效提升网络视频使用者的播放质量。
【专利说明】一种视频播放控制方法
【技术领域】
[0001] 本发明涉及视频传输,特别涉及一种网络视频播放控制方法。
【背景技术】
[0002] 随著宽带网络的发展,网络电视服务成为许多营运商抢攻的新市场,其不仅可依 照一般电视节目来播放影音,更可通过上传视频来进行互动式多媒体服务需求,提高使用 者与服务之间的互动性。目前大多数营运商是通过内容递送网络(CDN)方式,采用网络多 播将用户所需的节目传送到距离用户最近的服务器提供给用户观看。但建设成本将随用户 的增加而提高,同时分散各个区域的服务器也将加大设备维护的难度及成本。实际上在现 今大部分的网络皆无法使用网络多播来进行数据传送,因为网络多播包含以下原因,导致 因特网提供商不便使用此功能。
[0003] (1)扩展性不足。网络多播的群组的信息是由网络上的路由器来负责组织及维护。 (2)布建困难。需要网络上所有的路由器都启动多播的功能,如果某些路由器不提供这项 服务,就可能造成该地区的用户不能使用多播功能。(3)多播群组管理困难。由于网络上 的用户加入与离开非常频繁,有用户加入时需要重新使用多播路由协议。
[0004] 因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
【发明内容】
[0005] 为解决上述现有技术所存在的问题,本发明提出了一种视频播放控制方法,其特 征在于,包括:
[0006] 在Chord环上的每个子网设置一个多播Agent,在Agent之间使用单播来互相通 ?目;
[0007] 以服务器作为Agent的引导节点,转发多播视频封包到其他的子网;
[0008] 根据Agent的平均带宽时间乘积参数构建多播平衡树。
[0009] 优选地,所述Chord环上的各点表示存在的Agent ;指针列表是用来存储Chord 环上ID值与后继的关系,节点间利用自己的指针列表来查询和帮助其他Agent查找ID的 后继;指针列表之间会定时进彳丁?目息受换,以确保各节点在Chord环中,在网络视频基础 下架构Chord环,以服务器作为Agent的引导节点,所有的Agent都必须通过引导节点加 入Chord环中进行注册并且加入多播树中接收所需网络视频内容,Agent之间所构建出的 传输路径以及维持该架构的相关信息分散于每个Agent上。
[0010] 优选地,所述每个Agent都包含以下表:
[0011] (1)指针列表:记录Agent加入Chord环进行注册;
[0012] (2)多播树列表:记录多播树中的传输路径,当有节点失效时,根据多播树列表 中的数据与其他节点重新连接;
[0013] (3)叶节点列表:记录每个Agent剩余空间的子节点;
[0014] 所述子网中的节点自行构建网络、搜寻目标和所需的资源,运用分布式散列表的 方式,每一个节点保存有索引信息并通过分布式散列表来进行运作,进而通过Chord进行 信息交换。
[0015] 优选地,所述构建多播平衡树以平均带宽时间乘积值为标准,所述平均带宽时间 乘积是将各次测得的带宽大小取平均值后,再乘以成员留在多播平衡树中的时间,得到平 均带宽时间乘积,所述构建是将由平均带宽时间乘积参数所计算出数值较高的节点提升 到树的上层,包括成员注册、成员加入、成员离开和多播平衡树调整。
[0016] 优选地,所述成员注册进一步包括:
[0017] 当使用者希望观看视频时,先向引导节点进行注册Chord动作,用来加入Chord 结构。
[0018] 优选地,所述成员加入进一步包括:
[0019] 在成员要加入多播平衡树时,先从引导节点开始查询叶节点列表,当Agent收到 加入的请求时,先确定本身是否具有负载能力,在无法负载时,从叶节点列表中选择剩余 负载能力最大的子节点,让新成员加入;
[0020] 如果叶节点列表中没有可加入的节点,则通知新成员按照广度优先方式查找适 当的节点当作其父节点,而在节点加入多播平衡树中,查找节点的方式是通过Chord环中 指针列表来进行搜寻适当的节点位置。
[0021] 优选地,所述成员离开进一步包括:
[0022] 当成员离开多播平衡树时,成员通知子节点自己将要离开,对自己的祖父送出加 入的请求,接收回传的确认消息,等待子节点应答完成与新节点进行连接后进行离开,结 束视频播放动作。
[0023] 优选地,所述多播平衡树调整进一步包括:
[0024] 比较两个不同层的成员的平均带宽时间乘积大小,将两个成员中平均带宽时间 乘积较大的成员调整到多播平衡树的上层位置,在多播平衡树调整的动作中,设定服务器 也就是多播平衡树根节点的平均带宽时间乘积为无限大,当新成员加入多播平衡树时,新 成员的平均带宽时间乘积设置为〇,并位于树的底层位置,一旦其乘积值超越了自己现在 父节点的平均带宽时间乘积,则进行位置交换,发动多播平衡树调整的节点选择将其子节 点里平均带宽时间乘积最小的成员更换连接,成为自己父节点的子节点。
[0025] 本发明相比现有技术,利用应用层多播Agent的方式,构建多播平衡树,并通过 应用层多播Agent所形成的视频播放网络及该网络的扩展性、稳定度与负载分享有效提升 网络视频使用者的播放质量。
【专利附图】
【附图说明】
[0026] 图1是根据本发明实施例的视频播放控制方法的流程图。
【具体实施方式】
[0027] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描 述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权 利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细 节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节 中的一些或者所有细节也可以根据权利要求书实现本发明。
[0028] 本发明采用类似Ad-Hoc的网络拓扑形态,让每一个节点完全地拥有自主权,达 成相互传送数据的目的。节点基本的功能包含了自行构建网络、搜寻目标和所需的资源, 主要在于运用分布式散列表的方式,让每一个节点持有少量的索引信息,再通过分布式散 列表来进行运作。通过Chord进行信息交换,用以减少服务器的负载,提高服务器运作效 率及服务质量。
[0029] 本发明的一方面提供了一种视频播放控制方法。图1是根据本发明实施例的视频 播放控制方法流程图。
[0030] 为了能够在用户较多的情况下,有效减轻系统与网络带宽的负荷,在架构中为每 一个子网多播设置一个多播代理(MulticastAgent)服务器来代为转发多播视频封包到其 他的子网上,Agent之间使用单播来互相通信。
[0031] Chord环上的各点表示存在的Agent,每一个Agent的指针列表指针列表中最多负 责O(logN)笔数据,查询时只需O(logN)次即可找到所要的数据,在Agent加入和离开时 也只需花费0(l〇gN)的消息量。指针列表是用来存储Chord环上ID值与后继的关系,节 点间利用自己的指针列表来查询和帮助其他Agent查找ID的后继。而指针列表之间会定 时进行信息交换,以确保各节点仍正常在Chord环中。在网络视频基础下架构Chord环, 以服务器作为Agent的引导节点,所有的Agent都必须通过引导节点加入Chord环中进行 注册并且加入多播树中接收所需网络视频内容,Agent之间所构建出的传输路径以及维持 该架构的相关信息会分散于每个Agent上,每个Agent都包含了 3个表来记录这些消息:
[0032] (1)指针列表:Agent加入Chord环进行注册。
[0033] (2)多播树列表:记录多播树中的传输路径,当有节点失效时可以根据多播树列 表中的数据与其他节点重新连接。
[0034] (3)叶节点列表:记录每个Agent剩余空间的子节点。
[0035] 已有技术结合带宽与成员在线的时间两项参数,将两个参数相乘之后作为多播 平衡树调整的标准。但是其带宽值仅依照单次带宽测试的结果来决定,这可能会因为短时 间带宽的波动影响,造成不必要的多播平衡树调整,而平均带宽时间乘积是将各次测得的 带宽大小平均之后,再乘上成员所留在多播平衡树中的时间,得到平均带宽时间乘积,避 免了测试频宽的过程中因为其他程序暂时消耗额外带宽所造成的影响。本发明多播平衡树 构建方法将以平均带宽时间乘积值为调整标准,用以解决当有大量使用者观看节目时,月艮 务器无法负载大量带宽需求,造成传输质量下降及负荷过大的问题。
[0036] 方法的基本概念是让各应用层多播平衡树成员Agent互相交换在多播平衡树上 的位置,将由平均带宽时间乘积参数所计算出数值较高者,提升到树的上层,以达到优化 状态。此方法架构分为:
[0037] (1)成员注册:当使用者希望观看节目时,先向引导节点进行注册Chord动作, 用来加入Chord结构,提高之后查找节点地址效率。
[0038] (2)成员加入:成员要加入多播平衡树时先从引导节点开始查询叶节点列表。当 Agent收到加入的请求时先确定本身是否具有负载能力,无法负载时,便从叶节点列表中 选择剩余负载能力最大的子节点,让新成员加入。
[0039] 如果叶节点列表中没有可加入的节点,则通知新成员按照广度优先方式查找适 当的节点当作其父节点。而在节点加入多播平衡树中,查找节点的方式是通过Chord环中 指针列表来进行搜寻适当的节点位置。
[0040] 新成员加入的过程如下:
[0041] ①新加入的Agent,命名为节点N,向引导节点B,提出加入的请求;
[0042] ②如果B已经到达负载上限,到达的分支的极限,贝U B选择还具有负载能力的成 员M2通知N ;
[0043] ③N转向成员M2要求加入多播平衡树;
[0044] ④因为M2还具有能力负载,所以送出回复0K给新的成员,表示同意;
[0045] ⑤N送出应答来回答M2的接受,之后M2便开始负责转发内容给新加入的成员N。
[0046] (3)成员离开:成员离开多播平衡树时,为避免离开成员子节点收看节目中断, 成员应该要按照正确方式离开,等待子节点回报完成与新节点进行连接后才可离开。
[0047] 举例而言,成员Ml想要离开此多播平衡树,采用以下过程:
[0048] ①通知子节点M3,自己即将要离开;
[0049] ②M3对自己的祖父M0送出加入的请求,信息里会特别标示为Agent rebuilding,避免因为M0没有额外的空间容纳,而拒绝了底下成员的加入;
[0050] ③M0传回确认接收消息给M3 ;
[0051] ④M3会送出应答给M0,并通知Ml自己已经与M0连接完成;
[0052] ⑤Ml收到M3与M0连接成功的信息后,便通知M0自己要离开;
[0053] ⑥M0回传确认信息;
[0054] ⑦此时Ml可离开,结束收看节目动作。
[0055] (4)多播平衡树调整:为了让多播平衡树能够适应不停变化的网络状况,需要将 性能好的成员往上提升来达到网络视频传输优化。比较两个不同层的成员的平均带宽时间 乘积大小,比较后使其互相交换位置,在系统运行一段时间之后,平均带宽时间乘积最大 的成员将会占据多播平衡树的上层位置。在多播平衡树调整的动作中,会设定服务器也就 是多播平衡树根节点的平均带宽时间乘积为无限大,因而无法被取代。当新成员加入多播 平衡树时,因其在线时间为〇,所以它的平均带宽时间乘积会被设置为〇。依照加入的程 序,这个新的成员会被置放在树的底层位置。随着在系统中的时间增长,其平均带宽时间 乘积值会逐渐地成长,一旦乘积值超越了自己现在父节点的平均带宽时间乘积时,便会进 行位置交换。为了减少多播平衡树调整时受到影响的节点,发动多播平衡树调整的节点选 择将其子节点里平均带宽时间乘积最小的成员更换连接,成为自己父节点的子节点,其他 成员则一并提升位置。
[0056] 对于流调度算法来说,不但要保证用户播放的连续性,还必须具有高效性并能够 满足特定的需求。因此为了支持用户零等待,兼具更高性能目标,本发明另一方面进一步 提出了可变比特率分段调度方法,其消除了用户等待延迟,具有高性能,而且采用等带宽 的下载策略。
[0057] 本发明采用字节对齐方法进行视频分段。设视频分第一个视频段为\,使用带宽 为b兆字节/秒(MBps)的多播流来传输后续视频段,分段过程如下:
[0058] 为了保证视频的连续性播放以便提高带宽的使用率,采用从后向前对视频进行 分段,每个视频段的长度满足公式:
[0059]
【权利要求】
1. 一种视频播放控制方法,其特征在于,包括: 在Chord环上的每个子网设置一个多播Agent,在Agent之间使用单播来互相通信; 以服务器作为Agent的引导节点,转发多播视频封包到其他的子网; 根据Agent的平均带宽时间乘积参数构建多播平衡树。
2. 根据权利要求1所述的方法,其特征在于,所述Chord环上的各点表示存在的 Agent ;指针列表是用来存储Chord环上ID值与后继的关系,节点间利用自己的指针列表 来查询和帮助其他Agent查找ID的后继;指针列表之间会定时进行信息交换,以确保各节 点在Chord环中,在网络视频基础下架构Chord环,以服务器作为Agent的引导节点,所 有的Agent都必须通过引导节点加入Chord环中进行注册并且加入多播树中接收所需网络 视频内容,Agent之间所构建出的传输路径以及维持该架构的相关信息分散于每个Agent 上。
3. 根据权利要求2所述的方法,其特征在于,所述每个Agent都包含以下表: (1) 指针列表:记录Agent加入Chord环进行注册; (2) 多播树列表:记录多播树中的传输路径,当有节点失效时,根据多播树列表中的 数据与其他节点重新连接; (3) 叶节点列表:记录每个Agent剩余空间的子节点; 所述子网中的节点自行构建网络、搜寻目标和所需的资源,运用分布式散列表的方 式,每一个节点保存有索引信息并通过分布式散列表来进行运作,进而通过Chord进行信 息交换。
4. 根据权利要求3所述的方法,其特征在于,所述构建多播平衡树以平均带宽时间乘 积值为标准,所述平均带宽时间乘积是将各次测得的带宽大小取平均值后,再乘以成员留 在多播平衡树中的时间,得到平均带宽时间乘积,所述构建是将由平均带宽时间乘积参数 所计算出数值较高的节点提升到树的上层,包括成员注册、成员加入、成员离开和多播平 衡树调整。
5. 根据权利要求4所述的方法,其特征在于,所述成员注册进一步包括: 当使用者希望观看视频时,先向引导节点进行注册Chord动作,用来加入Chord结构。
6. 根据权利要求4所述的方法,其特征在于,所述成员加入进一步包括: 在成员要加入多播平衡树时,先从引导节点开始查询叶节点列表,当Agent收到加入 的请求时,先确定本身是否具有负载能力,在无法负载时,从叶节点列表中选择剩余负载 能力最大的子节点,让新成员加入; 如果叶节点列表中没有可加入的节点,则通知新成员按照广度优先方式查找适当的 节点当作其父节点,而在节点加入多播平衡树中,查找节点的方式是通过Chord环中指针 列表来进行搜寻适当的节点位置。
7. 根据权利要求4所述的方法,其特征在于,所述成员离开进一步包括: 当成员离开多播平衡树时,成员通知子节点自己将要离开,对自己的祖父送出加入的 请求,接收回传的确认消息,等待子节点应答完成与新节点进行连接后进行离开,结束视 频播放动作。
8. 根据权利要求4所述的方法,其特征在于,所述多播平衡树调整进一步包括: 比较两个不同层的成员的平均带宽时间乘积大小,将两个成员中平均带宽时间乘积 较大的成员调整到多播平衡树的上层位置,在多播平衡树调整的动作中,设定服务器也就 是多播平衡树根节点的平均带宽时间乘积为无限大,当新成员加入多播平衡树时,新成员 的平均带宽时间乘积设置为0,并位于树的底层位置,一旦其乘积值超越了自己现在父节 点的平均带宽时间乘积,则进行位置交换,发动多播平衡树调整的节点选择将其子节点中 平均带宽时间乘积最小的成员作为自身父节点的子节点。
【文档编号】H04N21/6405GK104105008SQ201410381584
【公开日】2014年10月15日 申请日期:2014年8月5日 优先权日:2014年8月5日
【发明者】高冬 申请人:成都瑞博慧窗信息技术有限公司