减少编码片段重复的P2P直播系统及方法与流程

文档序号:11524189阅读:128来源:国知局
减少编码片段重复的P2P直播系统及方法与流程

本发明涉及直播技术领域,特别涉及一种减少编码片段重复的p2p(对等网络)直播系统及方法。



背景技术:

视频直播过程中,边缘服务器将视频数据切分成同样大小的数据块(chunk),再将每个chunk切分成k个同样大小的原始片段(pieces),并通过[n,k]纠删码生成n-k个冗余的编码片段,边缘服务器将编码片段分发给供源节点,播放节点从供源节点获取编码片段。当每个播放节点收集满k个pieces就尝试解码恢复原始chunk。但由于网络延时或丢包等原因,播放节点收集满k个pieces的过程比较缓慢,如果某chunk迟迟不能被恢复,在流媒体播放中就会发生卡顿现象,影响用户体验。另外,现有技术中,边缘服务器发送编码片段为无规则发送,播放节点常常会收到重复编码片段,不仅会导致传输浪费,还会加剧卡顿问题。



技术实现要素:

本发明要解决的技术问题是为了缓解现有技术中的直播方法常出现卡顿现象的缺陷,提供一种减少编码片段重复的p2p直播系统及方法。

本发明是通过下述技术方案来解决上述技术问题:

一种减少编码片段重复的p2p直播系统,其特点在于,所述p2p直播系统包括:边缘服务器、供源节点和播放节点,所述供源节点分别与所述边缘服务器和所述播放节点通信连接;

所述边缘服务器用于将视频数据切分成若干数据块,并将每个数据块切分、编码成若干个编码片段,且将所述若干编码片段划分为分发编码片段和补充编码片段;

所述边缘服务器还用于将分发编码片段分发至所述供源节点;

所述播放节点用于从所述供源节点获取分发编码片段,并在预设时间段内获取的分发编码片段的数量未达到纠删码阈值时,发送补充片段请求至所述边缘服务器;

所述边缘服务器还用于在接收到所述补充片段请求时,将补充编码片段发送至所述播放节点以进行纠删码补偿。

较佳地,每个分发编码片段具有不同的编码id;

所述边缘服务器还用于为每个供源节点分配一个固定的编码id,且将与编码id对应的分发编码片段发送至相应的供源节点。

较佳地,当所述播放节点从不同的供源节点获得了具有相同编码id的分发编码片段时,所述播放节点从所述不同的供源节点中选择一个供源节点获取分发编码片段,并断开与其他供源节点的通信连接。

较佳地,所述播放节点还用于在判断获取的分发编码片段有重复时,删除重复的分发编码片段。

较佳地,所述补充片段请求包括片段补充个数;所述片段补充个数通过m表征,所述m的计算公式为:

m=纠删码阈值-预设时间段内获取的分发编码片段的数量;

所述边缘服务器在接收到所述补充片段请求时,将m个补充编码片段发送至所述播放节点。

较佳地,每个播放节点向唯一对应的边缘服务器发送补充片段请求。

较佳地,从所述若干编码片段中划分的补充编码片段的数量不小于所述纠删码阈值。

本发明还提供一种减少编码片段重复的p2p直播方法,其特点在于,所述p2p直播方法包括:

s1、边缘服务器将视频数据切分成若干数据块,并将每个数据块切分、编码成若干个编码片段,且将所述若干编码片段划分为分发编码片段和补充编码片段;

s2、所述边缘服务器将分发编码片段分发至供源节点;

s3、播放节点从供源节点获取分发编码片段,并在预设时间段内获取的分发编码片段的数量未达到纠删码阈值时,发送补充片段请求至所述边缘服务器;

s4、所述边缘服务器在接收到所述补充片段请求时,将补充编码片段发送至所述播放节点以进行纠删码补偿。

较佳地,步骤s1中还包括:

所述边缘服务器为每个分发编码片段设置不同的编码id;

步骤s2,具体包括:

所述边缘服务器为每个供源节点分配一个固定的编码id,且将与编码id对应的分发编码片段发送至相应的供源节点。

较佳地,在步骤s3中,播放节点从所述供源节点获取分发编码片段的步骤,具体包括:

当所述播放节点从不同的供源节点获得了具有相同编码id的分发编码片段时,所述播放节点从所述不同的供源节点中选择其中一个供源节点获取分发编码片段,并断开与其他供源节点的通信连接。

较佳地,在步骤s3中,在获取分发编码片段的步骤之后,还包括:

所述播放节点在判断获取的分发编码片段有重复时,删除重复的分发编码片段。

较佳地,所述补充片段请求包括片段补充个数;所述片段补充个数通过m表征,所述m的计算公式为:

m=纠删码阈值-预设时间段内获取的分发编码片段的数量;

步骤s4中,将补充编码片段发送至所述播放节点以进行纠删码补偿的步骤,具体包括:

将m个补充编码片段发送至所述播放节点。

较佳地,步骤s3中,每个播放节点向唯一对应的边缘服务器发送补充片段请求。

较佳地,从所述若干编码片段中划分的补充编码片段的数量不小于所述纠删码阈值。

本发明的积极进步效果在于:本发明的边缘服务器将编码片段分成不同的两部分,一部分通过供源节点分发至播放节点,一部分用于当播放节点在预设时间段内获取的分发编码片段的数量未达到纠删码阈值时,发送给播放节点以进行纠删码补偿。从而,本发明大大减小了因网络延时或丢包等原因造成的播放节点获取编码片段缓慢,致使数据块不能恢复而导致流媒体播放过程中的卡顿现象。另外,由于补充的编码片段与分发的编码片段是不同的,从而减小了播放节点接收重复编码片段的概率,进而减小了播放节点因接收到重复的编码片段导致的卡顿风险,保证了视频的流畅播放。

附图说明

图1为本发明实施例1的减少编码片段重复的p2p直播系统的结构示意图。

图2为本发明实施例3的减少编码片段重复的p2p直播方法的流程图。

图3为本发明实施例4的减少编码片段重复的p2p直播方法的流程图。

图4为本发明实施例5的减少编码片段重复的p2p直播方法的流程图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

实施例1

如图1所示,本实施例的p2p直播系统包括:边缘服务器1、供源节点2和播放节点,每个边缘服务器1分别与多个供源节点2通信连接,每个供源节点2又与多个播放节点3通信连接,每个播放节点也与多个供源节点2通信连接。视频直播过程中,边缘服务器将获取的视频数据切分成若干数据块,并将每个数据块切分、编码成若干个编码片段。具体的,边缘服务器将每个数据块切分成k个同样大小的原始片段,再通过纠删码对k个原始片段进行编码生成n-k个冗余的编码片段,且将n个编码片段划分为分发编码片段和补充编码片段。边缘服务器将分发编码片段分发至供源节点,播放节点则可从供源节点获取分发编码片段,并在获取分发编码片段的过程中判断预设时间段(可根据网络状态、播放节点性能等自行设置)内获取的分发编码片段的数量是否达到纠删码阈值(也即k),若未达到纠删码阈值,则播放节点发送补充片段请求至边缘服务器;若在预设时间段内获取的分发编码片段的数量达到k个,则播放节点尝试解码恢复数据块。边缘服务器在接收到补充片段请求时,将补充编码片段发送至播放节点以进行纠删码补偿。

从而,本发明大大减小了因网络延时或丢包等原因造成的播放节点获取编码片段缓慢,致使数据块不能恢复而导致流媒体播放过程中的卡顿现象。另外,由于补充编码片段与分发编码片段是不同的,从而减小了播放节点接收重复编码片段的概率,进而减小了播放节点因获取重复的编码片段导致的卡顿风险。

本实施例中,补充片段请求包括片段补充个数,片段补充个数通过m表征,计算公式为:m=k-l,其中k为纠删码阈值,l为预设时间段内播放节点获取的分发编码片段的数量。则边缘服务器在接收到补充片段请求时,将m个补充编码片段发送至播放节点,避免传输浪费。

本实施例中也可设置每个播放节点向唯一对应的边缘服务器发送补充片段请求,也即每个播放节点只从一个边缘服务器获取补充编码片段,以避免获取重复的补充编码片段,进一步减小了播放节点获取重复编码片段的概率,减小了卡顿风险。

需要说明的是,直播系统中的节点可同时作为播放节点和供源节点,播放节点的数据可以包括从边缘服务器获得的补充编码片段和从供源节点获得的分发编码片段,供源节点的数据仅为从边缘服务器获得的分发编码片段,本实施例中,播放节点在获得编码片段后,不会将所得用于播放的数据发送给任何节点,即该播放节点不会将从边缘服务器获得的补充编码片段和从供源节点获得的分发编码片段上传给其他节点,从而避免系统中其他播放节点获得相同的补充编码片段,进而减小了其他播放节点的视频卡顿风险。

由于每个供源节点可以从多个边缘服务器获取分发编码片段(也即每个供源节点获得的分发编码片段可能有重复),每个播放节点也可以从不同的供源节点获取分发编码片段,因此,播放节点还是有可能获取到重复的分发编码片段。为了避免播放节点因获得重复的分发编码片段而引起的视频播放卡顿现象,本实施例的播放节点在接收到分发编码片段时还可判断获取的分发编码片段是否有重复,并在判断为是时,删除重复的分发编码片段,之后再进行数量判断。从而,可避免因接收到重复的编码片段导致的视频卡顿问题。此时,片段补充个数还需要在m的基础上加上删除重复的分发编码片段的个数。

本实施例中,划分编码片段时,最好使得补充编码片段的数量m不小于纠删码阈值k。这是因为,若某个播放节点没能获取任何分发编码片段时,则全部的编码片段需要从边缘服务器补充,因此必须保证k<m<n。另外,划分编码片段时,最好使得分发编码片段的数量远大于补充编码片段的数量,以在p2p交换时减小发生重复的概率。

实施例2

实施例2与实施例1基本相同,不同之处在于,本实施例提供了另一种避免播放节点获得重复的分发编码片段的方式。具体的,本实施例中,一个数据块中的所有分发编码片段具有不同的编码id(补充编码片段也具有不同的编码id,与分发编码片段各自独立),但每个数据块中的编码id是相同的,例如数据块1中的编码id为:分发编码片段1、分发编码片段2,……,分发编码片段n;数据块2中的编码id同样为:分发编码片段1、分发编码片段2,……,分发编码片段n。边缘服务器为每个供源节点分配一个固定的编码id,且将与编码id对应的分发编码片段发送至相应的供源节点,也即供源节点只接收对应编码id的分发编码片段,从而避免了供源节点接收到重复的分发编码片段,进而避免了播放节点从不同的供源节点获取重复的分发编码片段。

本实施例中,若系统出现故障,播放节点可能从不同的供源节点获得具有相同编码id的分发编码片段,此时播放节点可从上述不同的供源节点中选择一个供源节点获取分发编码片段,并断开与其他供源节点的通信连接,以避免获取重复的分发编码片段。进一步的,播放节点也可判断分发编码片段是否有重复,并在判断为是时,删除重复的分发编码片段。

实施例3

如图2所示,本实施例的p2p直播方法包括以下步骤:

步骤110、边缘服务器将视频数据切分成若干数据块,并将每个数据块切分、编码成若干个编码片段,且将若干编码片段划分为分发编码片段和补充编码片段。

其中,划分编码片段时,最好使得补充编码片段的数量m不小于纠删码阈值k。这是因为,若某个播放节点没能获取任何分发编码片段时,则全部的编码片段需要从边缘服务器补充,因此必须保证k<m<n。另外,划分编码片段时,最好使得分发编码片段的数量远大于补充编码片段的数量,以在p2p交换时减小发生重复的概率。

步骤120、边缘服务器将分发编码片段分发至供源节点。

步骤130、播放节点从供源节点获取分发编码片段。

步骤140、判断预设时间段内获取的分发编码片段的数量是否达到纠删码阈值。若否,则执行步骤150;若是,则执行步骤150’。

步骤150、发送补充片段请求至边缘服务器。

步骤160、边缘服务器在接收到补充片段请求时,将补充编码片段发送至播放节点以进行纠删码补偿。

步骤150’、尝试解码恢复数据块。

本实施例中,补充片段请求包括片段补充个数;片段补充个数通过m表征,其中计算公式为:m==k-l,其中k为纠删码阈值,l为预设时间段内播放节点获取的分发编码片段的数量。则步骤160中,边缘服务器将m个补充编码片段发送至播放节点。

需要说明的是,直播系统中的节点可同时作为播放节点和供源节点,本实施例中,播放节点在获得编码片段后,不会将所得用于播放的数据发送给任何节点,即该播放节点不会将从边缘服务器获得的补充编码片段和从供源节点获得的分发编码片段上传给其他节点,以避免系统中其他的播放节点获得重复的编码片段导致视频播放卡顿。

本实施例中,每个播放节点向唯一对应的边缘服务器发送补充片段请求,从而避免了接收到重复的补充编码片段。

实施例4

实施例4与实施例3基本相同,如图3所示,不同之处在于,本实施例中,在步骤130之后,还包括:

步骤131、判断接收到的分发编码片段是否有重复。若是,则执行步骤132;若否,则执行步骤140;

步骤132、删除重复的分发编码片段。

从而,本实施例避免了播放节点获得重复的编码片段,进而避免了因编码片段重复导致的视频播放卡顿现象,保证了视频的流畅播放。

实施例5

实施例5与实施例3基本相同,如图4所示,不同之处在于,本实施例中,步骤110用步骤110’代替,步骤120用步骤120’代替。

步骤110’、边缘服务器将视频数据切分成若干数据块,并将每个数据块切分、编码成若干个编码片段,且将若干编码片段划分为分发编码片段和补充编码片段边缘,服务器为每个分发编码片段设置不同的编码id。

步骤120’、边缘服务器为每个供源节点分配一个固定的编码id,且将与编码id对应的分发编码片段发送至相应的供源节点。

进一步的,步骤130用步骤130’代替。

步骤130’、当播放节点从不同的供源节点获得了具有相同编码id的分发编码片段时,播放节点从不同的供源节点中选择其中一个供源节点获取分发编码片段,并断开与其他供源节点的通信连接。

本实施例,也可避免播放节点获得重复的编码片段,进而避免了因编码片段重复导致的视频播放卡顿现象,保证了视频的流畅播放。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1