System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及视频传输领域,特别涉及一种基于mpquic和预取的服务器端自适应svc abr方法。
技术介绍
1、http自适应式响应流(http adaptive streaming, has)是视频传输的主要技术之一。在has系统中,服务端将视频切分为等时长的段,再将这些段编码为多个质量等级。然后客户端根据自适应比特率(adaptive bitrate,abr)算法来基于现有条件请求相应的视频段,以在网络波动的情况下提供最佳的用户体验质量(quality of experience, qoe)。
2、在使用可扩展视频编码(scalable video coding, svc)的has系统中,每个视频分段都包含一个基础层和多个增强层。基础层为最低播放条件,而增强层则需依赖基础层和较低层的增强层进行解码,从而提升在客户端的视频播放质量。这种分层结构允许客户端在视频播放过程中,根据网络状态选择相应的质量层来提高已缓冲片段质量,从而减少了带宽的浪费,实现了播放码率的可伸缩性,使得视频服务提供商可以更好地满足用户对于不同质量的需求,同时也为实现更高的动态适应性提供了技术基础。
3、多路径传输技术通过聚合多个路径的带宽,也被广泛应用于视频传输优化领域。然而,现有的abr算法通常在客户端采用阻塞式的单请求方法,即只有在前一个请求完成后才会发起新的请求。如图1、图2所示,图1中,在传输层层面,因为路径调度的原因,文件传输的尾部大概率会因为无数据发送导致路径空闲。图2中,在应用层的层面,上一个请求结束与下一个请求到来之
4、由于直接进行预取是一种粗粒度的决策方式,本质上浪费了svc细粒度的可拓展性功能,这导致预取与svc可拓展性之间存在矛盾,因此现有传统svc的abr算法并没有考虑预取的情况,而是每下载一个视频层重新根据网络状况调整下载策略,故目前在svc场景下的abr算法还是存在未能有效利用多路径带宽资源,无法最大化用户qoe的技术问题。
技术实现思路
1、为了解决目前svc场景下的abr算法不能利用多路径带宽资源的技术问题,本专利技术提供一种能够有效利用多路径带宽进行视频传输,且能够实现细粒度调整以最大化用户qoe的基于mpquic和预取的服务器端自适应svc abr方法。
2、为了实现上述技术目的,本专利技术的技术方案是,一种基于mpquic和预取的服务器端自适应svc abr方法,包括以下步骤:
3、步骤1,服务器端接收以并发形式来同时发起的多个视频请求,所述的多个视频请求由具有视频播放需求的单个客户端发起,每个视频请求对应视频一个视频片段中的一个视频层,且视频请求中包括视频层的应用层信息;
4、步骤2,服务器端提取视频请求中的应用层信息,并根据当前的视频流传输情况,来计算客户端视频播放缓冲区中可播放的视频片段量bcur的大小,同时根据当前的拥塞窗口和往返时间来估算可用带宽;
5、步骤3,服务器端根据应用层信息、bcur的大小和可用带宽,选择相应的视频层传输策略并进行视频流的选择决策;其中视频层传输策略是根据bcur来决定:当bcur不足时,则优先传输视频层中的基础层数据;当bcur适中时,则平衡传输视频层中的基础层与增强层数据以维持视频质量;当bcur充足时,则优先传输视频层中的增强层数据;视频流的选择决策则通过以下步骤完成:首先检查bcur,如果bcur不足,则只将基础层添加到传输队列中以等待传输;否则根据应用层信息来依次遍历所有视频请求以进行筛选,然后计算通过筛选的视频请求所需的带宽,如果可用带宽满足所需带宽,则将视频请求对应的视频流添加到传输队列中以等待传输;
6、步骤4,服务器将传输队列中的视频流发送至客户端,当客户端的视频播放出现卡顿时, 则服务器通过接收来自客户端的自定义mpquic控制帧来获取卡顿情况,并根据具体卡顿时长来推迟后续视频片段的相应截止时间以实现动态调整,直至整个视频播放完毕。
7、所述的方法,所述的步骤1中,以并发形式来同时发起的多个视频请求,其中每个视频请求均是以从低到高的顺序来依次请求对应的视频片段的各个质量层级的视频层;视频层的应用层信息包括视频片段编号、请求的视频层编号和视频片段的截止时间。
8、所述的方法,所述的步骤2中,计算客户端视频播放缓冲区中可播放的视频片段量bcur的大小包括:
9、依次遍历所有的并发视频请求,当遇到第一个视频基础层尚未完全下载的视频片段时,则以这个视频片段的前一个视频片段编号减去当前正在播放的视频片段编号得到的差,作为bcur。
10、所述的方法,某一个视频层是否已完全下载是根据以下方式判断:
11、当满足如下条件中的至少一个时,则判断当前视频层已成功传输:
12、1)已收到同一视频片段下更高视频层请求;
13、2) 该视频层的所有数据均已发送,且携带了该视频层数据帧的包均已被确认。
14、所述的方法,其特征在于,所述的步骤2中,根据当前的拥塞窗口和往返时间来估算可用带宽,是通过以下公式实现:
15、;
16、其中, bwavail表示可用带宽,cwndpathi表示子路径i的拥塞窗口,srttpathi表示子路径i的平滑往返时间,n为子路径的数量。
17、所述的方法,所述的步骤3中,根据客户端视频播放缓冲区的中的视频片段量bcur来决定调度策略时,判断bcur是否充足,是基于以下过程得出:
18、设定一个最大阈值bmax;当bcur不大于bmax的三分之一时,则认为bcur不足;当bcur大于bmax的三分之二时,则认为bcur充足,其他情况则认为bcur适中。
19、所述的方法,在判断bcur是否充足的同时,还包括对当前允许传输的视频层最高层进行更新的步骤:
20、设定参数lallowed来作为当前允许传输的视频层最高层,其中lallowed的初始值为客户端缓冲区的平均播放码率所对应的层;
21、当bcur不足时,则将lallowed更新为0,当bcur适中时,则lallowed保持不变,当bcur充足时,则将lallowed增加1。
22、所述的方法,所述的步骤3中,在进行视频流的选择决策时,根据应用层信息来依次遍历所有视频请求以进行筛选,是从下一个要播放的视频片段到当前具有最大视频片段编号的请求的顺序,依次遍历请求队列中的片段,如果满足以下任一条件,该请求将被丢弃:
23、①请求为空;
24、②当前时间已超过截止时间;
25、③层编号超过lallowe所允许的视频层最高层;
26、接下来计算,即传输请求流s所需的带宽,当计算得到的bwneed大于可用带宽且s是增强层时,则放本文档来自技高网...
【技术保护点】
1.一种基于MPQUIC和预取的服务器端自适应SVC ABR方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述的步骤1中,以并发形式来同时发起的多个视频请求,其中每个视频请求均是以从低到高的顺序来依次请求对应的视频片段的各个质量层级的视频层;视频层的应用层信息包括视频片段编号、请求的视频层编号和视频片段的截止时间。
3.根据权利要求1所述的方法,其特征在于,所述的步骤2中,计算客户端视频播放缓冲区中可播放的视频片段量Bcur的大小包括:
4.根据权利要求3所述的方法,其特征在于,某一个视频层是否已完全下载是根据以下方式判断:
5.根据权利要求1所述的方法,其特征在于,所述的步骤2中,根据当前的拥塞窗口和往返时间来估算可用带宽,是通过以下公式实现:
6.根据权利要求1所述的方法,其特征在于,所述的步骤3中,根据客户端视频播放缓冲区的中的视频片段量Bcur来决定调度策略时,判断Bcur是否充足,是基于以下过程得出:
7.根据权利要求6所述的方法,其特征在于,在判断Bcur是否充足的同
8.根据权利要求7所述的方法,其特征在于,所述的步骤3中,在进行视频流的选择决策时,根据应用层信息来依次遍历所有视频请求以进行筛选,是从下一个要播放的视频片段到当前具有最大视频片段编号的请求的顺序,依次遍历请求队列中的片段,如果满足以下任一条件,该请求将被丢弃:
9.根据权利要求2所述的方法,其特征在于,所述的步骤4中,客户端自定义的MPQUIC控制帧中包括以下用于表示卡顿情况的信息:
...【技术特征摘要】
1.一种基于mpquic和预取的服务器端自适应svc abr方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述的步骤1中,以并发形式来同时发起的多个视频请求,其中每个视频请求均是以从低到高的顺序来依次请求对应的视频片段的各个质量层级的视频层;视频层的应用层信息包括视频片段编号、请求的视频层编号和视频片段的截止时间。
3.根据权利要求1所述的方法,其特征在于,所述的步骤2中,计算客户端视频播放缓冲区中可播放的视频片段量bcur的大小包括:
4.根据权利要求3所述的方法,其特征在于,某一个视频层是否已完全下载是根据以下方式判断:
5.根据权利要求1所述的方法,其特征在于,所述的步骤2中,根据当前的拥塞窗口和往返时间来估算可用带宽,是通过以下公式实现:...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。