CN108184152B - 一种dash传输系统两阶段客户端码率选择方法 - Google Patents
一种dash传输系统两阶段客户端码率选择方法 Download PDFInfo
- Publication number
- CN108184152B CN108184152B CN201810005728.1A CN201810005728A CN108184152B CN 108184152 B CN108184152 B CN 108184152B CN 201810005728 A CN201810005728 A CN 201810005728A CN 108184152 B CN108184152 B CN 108184152B
- Authority
- CN
- China
- Prior art keywords
- video segment
- code rate
- client
- video
- stage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/266—Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
- H04N21/2662—Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/24—Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
- H04N21/2402—Monitoring of the downstream path of the transmission network, e.g. bandwidth available
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/435—Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44209—Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/4424—Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/637—Control signals issued by the client directed to the server or network components
- H04N21/6373—Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/643—Communication protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/84—Generation or processing of descriptive data, e.g. content descriptors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/85—Assembly of content; Generation of multimedia applications
- H04N21/858—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N21/8586—Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot by using a URL
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于音视频传输技术领域,公开了一种DASH传输系统两阶段客户端码率选择方法,在基于HTTP动态自适应媒体传输协议的系统框架下,客户端根据估计的网络端到端吞吐量和缓冲区状态信息,动态的调整播放视频码率。本发明方法在播放启动阶段,利用类TCP慢启动的码率选择方法,在保证启动时延低、播放流畅的同时,提升了网络带宽的利用率;在播放的稳定阶段,基于Kaufman的自适应移动平均算法计算网络端到端的吞吐量,降低了网络带宽瞬时变化对码率造成的影响;同时,引入随机因子的码率切换时间选择方法,降低了视频播放过程中码率频繁变化造成的视频质量抖动问题,提升了用户的体验质量。
Description
技术领域
本发明涉及音视频传输技术领域,尤其涉及一种DASH传输系统两阶段客户端码率选择方法。
背景技术
随着互联网和移动通信技术的飞速发展,音视频传输业务已经成为互联网上的主流业务,人们通过个人电脑以及移动智能终端可以随时随地获取视频资源。据Cisco公司2017年3月发布的《思科视觉网络指数:全球移动数据流量预测更新(2016-2021白皮书)》指出,到2021年,全球超过四分之三(78%)的移动数据流量将是视频流量。基于HTTP的动态自适应流媒体传输技术(HAS)由于具有良好的防火墙穿透能力和NAT转换能力,能够适应网络的动态性、终端的异质性,解决不同接入速度、不同终端设备的用户享受不同服务质量的问题,成为当今主流的商业视频服务提供商采用的主要技术。
基于HTTP的动态自适应流媒体技术(Dynamic Adaptive Streaming over HTTP,以下简称DASH)是一种流化和HTTP渐进式下载(Progressive Downloaded)的混合分发方法,其基本原理是:同一视频/音频源文件被编码为不同质量级别的媒体副本,每个视频副本又被切分成小的片段。这些片段的描述信息存储在媒体表示描述文件(MPD)中。视频分段及MPD文件存储在web服务器中。当客户端观看音视频时,向服务器发送HTTP Get请求,web服务器将此视频相应的MPD文件反馈给客户端。客户端解析MPD文件,获取不同视频段的描述信息,并根据播放设备能力和网络带宽的变化情况,由服务器或客户端动态选择合适码率的视频分段进行播放。这种方式,由于可以根据网络带宽变化,动态选择并调整与服务器之间数据传输速率,极大地降低了播放过程中出现重缓冲的次数,提升了播放的流畅性,实现多媒体内容的无缝传送和播放。因此码率自适应选择方法是DASH系统的核心。
当前,码率自适应选择方法主要基于客户端的决策,由客户端通过评估与服务器的可用网络带宽或自身播放缓冲变化情况来确定需要下载的视频分段并播放。然而,基于不准确带宽估计的速率选择算法会导致客户端选择的速率出现“螺旋式下降”现象。瞬时带宽的变化会导致播放出现重缓冲的频率提高。同时,频繁的播放速率的变化,严重影响了视频播放过程中用户体验质量。而基于缓冲状态的码率选择方法,由于缓冲状态变化对于端到端吞吐量变化反应的迟缓,导致网络带宽不能有效利用。因此,如何在降低播放过程重缓冲率的同时,提升网络带宽的利用率,进而提升用户观看视频的体验质量,成为当前DASH系统亟待解决的关键问题。
发明内容
本申请实施例通过提供一种DASH传输系统两阶段客户端码率选择方法,解决了现有技术中视频播放出现重缓冲的频率较高、频繁的视频播放码率变化影响用户体验质量、网络宽带的利用率较低的问题。
本申请实施例提供一种DASH传输系统两阶段客户端码率选择方法,将客户端的播放过程定义为两阶段:播放启动阶段、播放稳定阶段;
预设初始缓冲区阈值Binit、目标缓冲区阈值Bref、最大缓冲区阈值Bmax;若当前缓冲区大小Bcurr小于等于初始缓冲区阈值Binit,则客户端处于播放启动阶段;若当前缓冲区大小Bcurr大于初始缓冲区阈值Binit,则客户端处于播放稳定阶段;
在播放启动阶段采用类TCP慢启动的码率选择方法;在播放稳定阶段采用带宽估计与缓冲区大小反馈的码率选择方法,并引入随机因子的码率切换时间选择方法。
优选的,所述DASH传输系统两阶段客户端码率选择方法包括以下步骤:
步骤S1、客户端和服务器端建立连接,并解析MPD文件;
步骤S2、MPD文件解析后,客户端进入播放启动阶段,采用类TCP慢启动方式,包括以下子步骤:
步骤S2-1、客户端根据解析的MPD文件获得视频分段的URL所对应的目标视频码率,并以最小码率V1下载第一个视频分段;其中,目标视频码率包括V1、V2、…、Vk、Vk+1、…、Vn,且V1<V2<…<Vk<Vk+1<…<Vn;
步骤S2-2、计算下载完第一个视频分段的网络吞吐量T1;
步骤S2-3、启动下载视频分段计数器Count,设置其初值为0;
步骤S2-4、将当前缓冲区大小Bcurr与预设的初始缓冲区阈值Binit进行比较,若Bcurr≤Binit,则执行步骤S2-5;否则,执行步骤S3;
步骤S2-5、比较Ti与vi的大小,如果Ti≥4×vi,则计数器Count加1,否则,Count等于0;其中,Ti为下载完第i个视频分段的网络吞吐量,vi为下载第i个视频分段的速率;
步骤S2-6、若Count≥4,vi=Vk,则第i+1个视频分段的下载速率为vi+1=Vk+1,Count重置为0;否则,第i+1个视频分段的下载速率采用第i个视频分段的下载速率,即vi+1=vi=Vk;
步骤S2-7、客户端向服务器发送请求,请求码率为vi+1的第i+1个视频分段;
步骤S2-8、完成第i+1个视频分段的下载,并计算下载完第i+1个视频分段的网络吞吐量Ti+1;
步骤S2-9、迭代执行S2-4,直到Bcurr>Binit,执行步骤S3;
步骤S3、当缓冲区长度Bcurr>Binit时,进入播放稳定阶段,确定第i+1个视频分段的码率包括以下子步骤:
步骤S3-1、根据Kaufman的自适应移动平均算法KAMA来评估下载完第i个视频分段后端到端的网络带宽 其中,Ci是下载完第i个视频分段后测量的网络带宽权值,为下载完第i-1个视频分段后端到端的网络带宽;
步骤S3-2、根据当前缓冲区状态,确定调节因子A(i),A(i)=As(i)×At(i);其中,As(i)是下载第i个视频分段开始时刻当前缓冲区大小Bcurr与目标缓冲区阈值Breg的距离因子,At(i)是开始下载第i个视频分段时缓冲区大小的变化趋势因子;
步骤S3-4、播放稳定阶段的码率选择包含以下子步骤:
步骤S3-4-1、将客户端当前缓冲区大小Bcurr与目标缓冲区阈值Breg进行比较,若Binit<Bcurr≤Breg,则执行以下操作:
步骤S3-4-1-1、如果Breg/2>Bcurr>Binit,则第i+1个视频分段的码率vi+1=Q(Ti),Q(Ti)表示小于或等于Ti的最大目标视频码率;
步骤S3-4-1-2、如果Breg/2≤Bcurr,则执行以下操作:
设置平滑计数器s_count,初值为0;
若则vi+1=vi,s_count=0;
步骤S3-5、根据码率切换时机选择方法,客户端向服务器发送视频分段下载请求的时机,请求码率为vi+1的第i+1个视频分段;码率切换时机选择包括以下子步骤:
步骤S3-5-1、若Breg/2≤Bcurr≤Breg,则在下载完第i个视频分段,并确定第i+1个视频分段的下载速率vi+1后,立即向服务器发送下载第i+1个视频分段的请求,即ti+1 (s)=ti (e);其中,ti+1 (s)为第i+1个视频分段下载开始的时间,ti (e)是第i个视频分段下载完成的时间;
步骤S3-5-2、若Breg<Bcurr≤Bmax,则采用随机时机调度方法,从区间(Breg-δ,Breg+δ]中均匀随机选择一个数值,赋值给随机缓冲区大小randbufi;下载第i+1个视频分段的时刻ti+1 (s)=ti (e)+Bcurr-randbufi,δ为随机因子。
优选的,步骤S1包括以下子步骤:
S1-1、客户端与服务器之间通过TCP“三次握手过程”建立HTTP连接;
S1-2、客户端向web服务器发送HTTP Get请求,请求获得待播放的视频文件的MPD文件;
S1-3、客户端接收到web服务器发送的MPD文件后,存储并进行解析。
优选的,所述下载完第i个视频分段的网络吞吐量Ti是根据视频分段长度与视频分段实际下载时长的比值进行计算,计算公式为Ti=(Vi×Δ)/(ti (e)–ti (s));
其中,Vi是下载第i个视频分段采用的目标视频码率;Δ是视频分段的时长,一般用秒为单位;ti (s)是第i个视频分段下载开始的时间;ti (e)是第i个视频分段下载完成的时间。
其中,Ci=SSCi 2,SSCi是平滑因子,SSCi=ER(i)×(Fastsc-Slowsc)+Slowsc,ER(i)为效率系数,ER(i)=|Direction(i)/Volatility(i)|,Direction(i)和Volatility(i)分别是下载完第i个视频分段后的价格方向和抖动性,Direction(i)=Ti-Ti-n,Ti为下载完第i个视频分段的网络吞吐量;Ti-n为在第i个视频分段之前的第n个视频分段下载完成后计算的网络吞吐量;Fastsc是码率快速变化平均值,Slowsc是码率缓慢变化平均值,Fastsc=[1/(1+l)]l=2=0.667,Slowsc=[1/(1+l)]l=30=0.0645。
优选的,所述步骤S3-2中的调节因子A(i)=As(i)×At(i);
优选的,所述步骤S3-4-1-2中的抖动平滑参数m是根据第i个视频分段下载前后客户端缓冲区的变化大小来确定的,使用分段函数计算:
优选的,所述步骤S3-5-2中δ随机因子是通过公式δ=β×(Bcurr-Breg)计算,β是(0,1)之间的一个随机数。
本申请实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
在本申请实施例中,充分考虑了播放启动阶段要求启动时延低、播放流畅的需求特点,在播放初始缓冲区为空,协助进行视频码率选择的有用信息不足的条件下,提出类TCP慢启动的码率选择方法,该方法即有效地降低了播放过程重缓冲的次数,同时又有效地提升了启动阶段网络带宽的利用率。本发明采用带宽估计与缓冲区大小反馈的稳定阶段码率选择方法,在播放平滑性和缓冲区大小变化平滑性之间找到了平衡,缓解了频繁的视频播放码率变化导致用户体验质量下降的问题;同时,引入随机因子的码率切换时机选择方法,有效地缓解了固定周期调度策略中多个视频流共享带宽造成的带宽分配不公平的问题,提升了网络的带宽分配的公平性和客户端播放过程的平均视频速率。
附图说明
为了更清楚地说明本实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种DASH传输系统两阶段客户端码率选择方法中客户端播放缓冲区区间划分的示意图;
图2为本发明实施例提供的一种DASH传输系统两阶段客户端码率选择方法中播放启动阶段码率选择的流程图;
图3为本发明实施例提供的一种DASH传输系统两阶段客户端码率选择方法中播放稳定阶段码率选择的流程图;
图4为本发明实施例提供的一种DASH传输系统两阶段客户端码率选择方法中播放稳定阶段码率切换时机选择的流程图;
图5为本发明实施例提供的一种DASH传输系统两阶段客户端码率选择方法的示意图。
具体实施方式
本申请实施例通过提供一种DASH传输系统两阶段客户端码率选择方法,解决了现有技术中视频播放出现重缓冲的频率较高、频繁的视频播放码率变化影响用户体验质量、网络宽带的利用率较低的问题。
本申请实施例的技术方案为解决上述技术问题,总体思路如下:
一种DASH传输系统两阶段客户端码率选择方法,将客户端的播放过程定义为两阶段:播放启动阶段、播放稳定阶段;
预设初始缓冲区阈值Binit、目标缓冲区阈值Bref、最大缓冲区阈值Bmax;若当前缓冲区大小Bcurr小于等于初始缓冲区阈值Binit,则客户端处于播放启动阶段;若当前缓冲区大小Bcurr大于初始缓冲区阈值Binit,则客户端处于播放稳定阶段;
在播放启动阶段采用类TCP慢启动的码率选择方法;在播放稳定阶段采用带宽估计与缓冲区大小反馈的码率选择方法,并引入随机因子的码率切换时间选择方法。
本发明充分考虑了播放启动阶段要求启动时延低、播放流畅的需求特点,在播放初始缓冲区为空,协助进行视频码率选择的有用信息不足的条件下,提出类TCP慢启动的码率选择方法,该方法即有效地降低了播放过程重缓冲的次数,同时又有效地提升了启动阶段网络带宽的利用率。本发明采用带宽估计与缓冲区大小反馈的稳定阶段码率选择方法,在播放平滑性和缓冲区大小变化平滑性之间找到了平衡,缓解了频繁的视频播放码率变化导致用户体验质量下降的问题;同时,引入随机因子的码率切换时机选择方法,有效地缓解了固定周期调度策略中多个视频流共享带宽造成的带宽分配不公平的问题,提升了网络的带宽分配的公平性和客户端播放过程的平均视频速率。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
DASH即基于HTTP动态自适应流媒体,一个典型的HTTP动态自适应流媒体传输系统包括视频源端、Web服务器和客户端三个基本组成部分。视频源将视频编码成不同码率的副本并且切割成长度相等的分段,这些分段信息的描述信息存储在MPD文件中。MPD文件和分段视频文件存储在Web服务器上。
设同一视频编码为L个具有不同码率的副本(目标视频码率),其副本码率分别为V1、V2、…、Vk、Vk+1、…、Vn,其中V1<V2<…<V k<Vk+1<…<Vn。每个副本被分割成多个分段,每个分段时长△为2秒。
在整个媒体播放的过程中,客户端的缓冲区划分为三个部分(如图1所示),设定三个阈值,分别为初始期缓冲区阈值Binit,设置其为40秒,目标缓冲区阈值Breg,设置其为150秒,最大缓冲区阈值Bmax,设置其为180秒。客户端与服务器的交互,经历了请求MPD文件、确定视频码率并请求相应目标码率视频分段的过程,依照本发明方法的一个具体实施例的过程如下:
S1、客户端和服务器端建立连接并解析MPD文件,该步骤进一步包括以下子步骤:
S1-1、客户端与服务器之间通过TCP“三次握手过程”建立HTTP连接;
当用户点击视频播放按钮时,客户端首先与Web服务器建立TCP连接。
S1-2、客户端向web服务器发送HTTP Get请求(如图5(1)所示),请求获得待播放的视频文件的媒体描述表示MPD文件;
S1-3、客户端接收到web服务器发送的MPD文件后,存储并进行解析;
服务器接收到客户端请求,将MPD文件副本以HTTP响应方式发送给客户端(如图5(2)所示)。客户端收到MPD文件副本,保存在本地并进行解析。其中,解析后得到目标视频码率为:V={200,300,500,700,900,1100,1300,1600,1900,2300,2800,3400,4500},码率的单位为Kbit/s。整个视频时长598秒(近似10分钟)。
播放开始,进入启动阶段,客户端速率选择实现过程具体如下:
S2、MPD文件解析后,客户端进入播放启动阶段(如图2所示),采用类TCP慢启动方式,其子步骤如下:
S2-1、为了降低播放的启动时延,客户端根据解析MPD文件所得的视频分段的URL所对应的目标视频码率,先以最小码率v1=V1=200Kbit/s下载第一个视频分段;并记录下载开始的时间,记为t1 (s)。
S2-2、下载完第一个视频分段的时刻记为t1 (e),使用公式T1=(V1×Δ)/(t1 (e)-t1 (s))估计当前的网络吞吐量T1;
由于当前缓冲区大小Bcurr=△=2秒,则第二块分段的目标码率等于第一块分段的目标码率,即v2=v1=V1=200Kbit/s。客户端向服务器发送Http Get请求,请求下载速率为200Kbit/s的第二个视频分段。
Http Get请求包括:Period_id,Adaptationset_id,Representation_id,Segment_AbsoluteURI等的信息。
同时,客户端开始播放第一个已经下载完成的视频分段的内容。
S2-3、接收到后续视频分段,播放端的下载视频分段计数器Count设置初值为0;
S2-4、从第二块分段开始下载,只要Bcurr≤Binit条件满足,则反复迭代执行以下步骤:
假设当前已完成下载的数据分段的序号为i,待下载的下一个视频分段的序号为i+1。视频分段i下载后,测量当前缓冲区的大小Bcurr,将当前缓冲区大小Bcurr与预设的初始缓冲区大小值Binit进行比较。如果Bcurr<Binit,则执行步骤S2-5;否则,执行步骤S3。
S2-5、比较Ti与vi的大小。使用公式Ti=(Vi×Δ)/(ti (e)–ti (s))计算数据分块i下载后网络端到端的吞吐量Ti。如果Ti≥4×vi,则计数器Count加1,否则,Count等于0;
这里,使用一个元素个数为11的一维数组Array_T来存储最近下载的11个数据分段其下载后计算的网络端到端的吞吐量。
S2-6、如果Count≥4,表示根据连续的四个视频分段下载后计算的网络端到端吞吐量都大于这四个视频分段的码率,则下一个视频分段i+1的码率为vi+1=Vk+1,其中刚下载完成的视频分段i的码率vi=Vk。例如,vi=300Kbit/s,则vi+1=500Kbit/s。同时,Count重置为0;
如果Count<4,下一个视频分段i+1的速率为前一视频分段i的速率,即vi+1=vi=Vk,例如vi=300Kbit/s,则vi+1=300Kbit/s;
S2-7、客户端向服务器发送请求,请求码率为vi+1的下一个视频分段(即第i+1个视频分段);
S2-8、计算下载完第i+1个视频分段的网络吞吐量Ti+1;
S2-9、迭代执行S2-4,直到Bcurr>Binit,执行步骤S3;
S3、当缓冲区长度Bcurr>Binit时,即下载完成序号为i的视频分段后,播放进入稳定阶段(如图3所示)。其确定i+1视频分段码率的步骤如下:
其中,Ci表示下载完第i个视频分段后测量的网络带宽权值;Ci=SSCi 2,SSCi表示平滑因子,使用公式SSCi=ER(i)×(Fastsc-Slowsc)+Slowsc来计算,其中效率系数ER(i)=|Direction(i)/Volatility(i)|,Direction(i)和Volatility(i)分别表示下载完第i个视频分段后的价格方向和抖动性,Direction(i)=Ti-Ti-n,这里Ti表示第i个视频分段下载完成后,测量得到的网络吞吐量大小;Ti-n表示在第i个视频分段之前的第n个视频分段下载完成后计算的网络吞吐量;n为视频分段吞吐量测量的采样周期,这里选取n为10;Fastsc表示码率快速变化平均值,Slowsc表示码率缓慢变化平均值,其中,Fastsc=[1/(1+l)]l=2=0.667,Slowsc=[1/(1+l)]l=30=0.0645;
S3-2、根据当前缓冲区状态,确定调节因子A(i)=As(i)×At(i)。
其中,As(i)表示下载第i个数据分段开始时刻缓冲区大小与目标缓冲区大小的距离因子,At(i)表示开始下载第i个数据分段时缓冲区大小的变化趋势因子;其中B(ti (s))表示第i个数据分段开始下载时刻的缓冲区大小,Bref表示预先设定的目标缓冲区的大小值,p表示调节参数,设为0.1,B(ti-1 (s))表示第i-1个数据分段开始下载时刻的缓冲区大小;
S3-4、播放稳定阶段的码率选择包含以下步骤:
S3-4-1、将播放客户端当前缓冲区大小与目标缓冲区大小进行比较,如果Binit<Bcurr≤Breg则执行以下操作:
S3-4-1-1、如果Breg/2>Bcurr>Binit,说明当前的视频码率高于TCP的吞吐量,存在缓冲区下溢、播放中断的危险。因此,下一数据分段的码率vi+1=Q(Ti),Q(Ti)表示小于或等于Ti的最大目标视频码率;
如果Ti计算后得到的网络端到端吞吐量是1450Kbit/s,则量化后得到的最大目标视频码率为1300Kbit/s,即对应着视频码率集中的单个元素。
S3-4-1-2、如果Breg/2≤Bcurr,则执行以下操作:设置平滑计数器s_count,初值为0;如果则vi+1=vi,s_count=0;如果则s_count自增1;并将s_count与预设的抖动平滑参数m进行比较;如果s_count<m,则vi+1=vi;否则s_count=0,其中表示小于或等于的最大目标视频码率;
这里,抖动平滑参数m,是根据数据分段i下载前后客户端缓冲区变化大小来确定的,使用分段函数计算,
如果数据分段i下载前后客户端缓冲区变化大小为0.8秒,Δ为2秒,则m选取1。
S3-5、稳定状态下下一视频分段请求时间,即码率切换时机选择方法(又叫视频分段调度方法),是通过以下步骤确定的(如图4所示):
S3-5-1、如果Breg/2≤Bcurr≤Breg,则在下载完第i个视频分段,确定vi+1后,立即向服务器发送下载码率为vi+1的下一个视频分段的请求,即ti+1 (s)=ti (e);
S3-5-2、如果Breg<Bcurr≤Bmax,则采用随机时机调度方法。从区间(Breg-δ,Breg+δ]中均匀随机选择一个数值,赋值给随机缓冲区大小randbufi;下载下一个视频分段的时刻ti+1 (s)=ti (e)+Bcurr-randbufi这里δ是个随机因子;
这里,随机因子δ可使用公式δ=β×(Bcurr-Breg)计算,是(0,1)之间的一个随机数。
本发明实施例提供的一种DASH传输系统两阶段客户端码率选择方法至少包括如下技术效果:
在本申请实施例中,充分考虑了播放启动阶段要求启动时延低、播放流畅的需求特点,在播放初始缓冲区为空,协助进行视频码率选择的有用信息不足的条件下,提出类TCP慢启动的码率选择方法,该方法即有效地降低了播放过程重缓冲的次数,同时又有效地提升了启动阶段网络带宽的利用率。本发明采用带宽估计与缓冲区大小反馈的稳定阶段码率选择方法,在播放平滑性和缓冲区大小变化平滑性之间找到了平衡,缓解了频繁的视频播放码率变化导致用户体验质量下降的问题;同时,引入随机因子的码率切换时机选择方法,有效地缓解了固定周期调度策略中多个视频流共享带宽造成的带宽分配不公平的问题,提升了网络的带宽分配的公平性和客户端播放过程的平均视频速率。
最后所应说明的是,以上具体实施方式仅用以说明本发明的技术方案而非限制,尽管参照实例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (7)
1.一种DASH传输系统两阶段客户端码率选择方法,其特征在于,将客户端的播放过程定义为两阶段:播放启动阶段、播放稳定阶段;
预设初始缓冲区阈值Binit、目标缓冲区阈值Breg、最大缓冲区阈值Bmax;若当前缓冲区大小Bcurr小于等于初始缓冲区阈值Binit,则客户端处于播放启动阶段;若当前缓冲区大小Bcurr大于初始缓冲区阈值Binit,则客户端处于播放稳定阶段;
在播放启动阶段采用类TCP慢启动的码率选择方法;在播放稳定阶段采用带宽估计与缓冲区大小反馈的码率选择方法,并引入随机因子的码率切换时间选择方法;
包括以下步骤:
步骤S1、客户端和服务器端建立连接,并解析MPD文件;
步骤S2、MPD文件解析后,客户端进入播放启动阶段,采用类TCP慢启动方式,包括以下子步骤:
步骤S2-1、客户端根据解析的MPD文件获得视频分段的URL所对应的目标视频码率,并以最小码率V1下载第一个视频分段;其中,目标视频码率包括V1、V2、…、Vk、Vk+1、…、Vn,且V1<V2<…<Vk<Vk+1<…<Vn;
步骤S2-2、计算下载完第一个视频分段的网络吞吐量T1;
步骤S2-3、启动下载视频分段计数器Count,设置其初值为0;
步骤S2-4、将当前缓冲区大小Bcurr与预设的初始缓冲区阈值Binit进行比较,若Bcurr≤Binit,则执行步骤S2-5;否则,执行步骤S3;
步骤S2-5、比较Ti与vi的大小,如果Ti≥4×vi,则计数器Count加1,否则,Count等于0;其中,Ti为下载完第i个视频分段的网络吞吐量,vi为下载第i个视频分段的速率;
步骤S2-6、若Count≥4,vi=Vk,则第i+1个视频分段的下载速率为vi+1=Vk+1,Count重置为0;否则,第i+1个视频分段的下载速率采用第i个视频分段的下载速率,即vi+1=vi=Vk;
步骤S2-7、客户端向服务器发送请求,请求码率为vi+1的第i+1个视频分段;
步骤S2-8、完成第i+1个视频分段的下载,并计算下载完第i+1个视频分段的网络吞吐量Ti+1;
步骤S2-9、迭代执行S2-4,直到Bcurr>Binit,执行步骤S3;
步骤S3、当缓冲区长度Bcurr>Binit时,进入播放稳定阶段,确定第i+1个视频分段的码率包括以下子步骤:
步骤S3-1、根据Kaufman的自适应移动平均算法KAMA来评估下载完第i个视频分段后端到端的网络带宽 其中,Ci是下载完第i个视频分段后测量的网络带宽权值,为下载完第i-1个视频分段后端到端的网络带宽;
步骤S3-2、根据当前缓冲区状态,确定调节因子A(i),A(i)=As(i)×At(i);其中,As(i)是下载第i个视频分段开始时刻当前缓冲区大小Bcurr与目标缓冲区阈值Breg的距离因子,At(i)是开始下载第i个视频分段时缓冲区大小的变化趋势因子;
步骤S3-4、播放稳定阶段的码率选择包含以下子步骤:
步骤S3-4-1、将客户端当前缓冲区大小Bcurr与目标缓冲区阈值Breg进行比较,若Binit<Bcurr≤Breg,则执行以下操作:
步骤S3-4-1-1、如果Breg/2>Bcurr>Binit,则第i+1个视频分段的码率vi+1=Q(Ti),Q(Ti)表示小于或等于Ti的最大目标视频码率;
步骤S3-4-1-2、如果Breg/2≤Bcurr,则执行以下操作:
设置平滑计数器s_count,初值为0;
步骤S3-5、根据码率切换时机选择方法,客户端向服务器发送视频分段下载请求的时机,请求码率为vi+1的第i+1个视频分段;码率切换时机选择包括以下子步骤:
步骤S3-5-1、若Breg/2≤Bcurr≤Breg,则在下载完第i个视频分段,并确定第i+1个视频分段的下载速率vi+1后,立即向服务器发送下载第i+1个视频分段的请求,即ti+1 (s)=ti (e);其中,ti+1 (s)为第i+1个视频分段下载开始的时间,ti (e)是第i个视频分段下载完成的时间;
步骤S3-5-2、若Breg<Bcurr≤Bmax,则采用随机时机调度方法,从区间(Breg-δ,Breg+δ]中均匀随机选择一个数值,赋值给随机缓冲区大小randbufi;下载第i+1个视频分段的时刻ti+1 (s)=ti (e)+Bcurr-randbufi,δ为随机因子。
2.根据权利要求1所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,步骤S1包括以下子步骤:
S1-1、客户端与服务器之间通过TCP“三次握手过程”建立HTTP连接;
S1-2、客户端向web服务器发送HTTP Get请求,请求获得待播放的视频文件的MPD文件;
S1-3、客户端接收到web服务器发送的MPD文件后,存储并进行解析。
3.根据权利要求1所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,所述下载完第i个视频分段的网络吞吐量Ti是根据视频分段长度与视频分段实际下载时长的比值进行计算,计算公式为Ti=(Vi×Δ)/(ti (e)–ti (s));
其中,Vi是下载第i个视频分段采用的目标视频码率;Δ是视频分段的时长,用秒为单位;ti (s)是第i个视频分段下载开始的时间;ti (e)是第i个视频分段下载完成的时间。
其中,Ci=SSCi 2,SSCi是平滑因子,SSCi=ER(i)×(Fastsc-Slowsc)+Slowsc,ER(i)为效率系数,ER(i)=|Direction(i)/Volatility(i)|,Direction(i)和Volatility(i)分别是下载完第i个视频分段后的价格方向和抖动性,Direction(i)=Ti-Ti-n,Ti为下载完第i个视频分段的网络吞吐量;Ti-n为在第i个视频分段之前的第n个视频分段下载完成后计算的网络吞吐量;Fastsc是码率快速变化平均值,Slowsc是码率缓慢变化平均值,Fastsc=[1/(1+l)]l=2=0.667,Slowsc=[1/(1+l)]l=30=0.0645。
7.根据权利要求1所述的DASH传输系统两阶段客户端码率选择方法,其特征在于,所述步骤S3-5-2中δ随机因子是通过公式δ=β×(Bcurr-Breg)计算,β是(0,1)之间的一个随机数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810005728.1A CN108184152B (zh) | 2018-01-03 | 2018-01-03 | 一种dash传输系统两阶段客户端码率选择方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810005728.1A CN108184152B (zh) | 2018-01-03 | 2018-01-03 | 一种dash传输系统两阶段客户端码率选择方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108184152A CN108184152A (zh) | 2018-06-19 |
CN108184152B true CN108184152B (zh) | 2020-01-24 |
Family
ID=62549655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810005728.1A Active CN108184152B (zh) | 2018-01-03 | 2018-01-03 | 一种dash传输系统两阶段客户端码率选择方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108184152B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108989880B (zh) * | 2018-06-21 | 2020-04-14 | 北京邮电大学 | 一种码率自适应切换方法及系统 |
CN108833996B (zh) * | 2018-07-03 | 2020-07-10 | 湖北大学 | 分布式dash系统中服务节点选择、更新和码率自适应方法 |
CN109040855B (zh) * | 2018-09-03 | 2021-01-29 | 重庆邮电大学 | 一种无线dash流媒体码率平滑自适应传输方法 |
CN111083094B (zh) * | 2018-10-22 | 2022-06-07 | 中国移动通信有限公司研究院 | 一种流媒体的码流切换方法及装置、计算机存储介质 |
CN109525887B (zh) * | 2018-12-27 | 2021-06-18 | 长沙理工大学 | 一种在线视频的自调节播放方法、系统及装置 |
CN109819312B (zh) * | 2019-03-19 | 2020-06-30 | 四川长虹电器股份有限公司 | 基于动态缓冲区的播放器系统及其控制方法 |
CN110198495B (zh) * | 2019-06-28 | 2022-03-22 | 广州市百果园信息技术有限公司 | 一种视频下载和播放的方法、装置、设备和存储介质 |
CN110708578A (zh) * | 2019-10-22 | 2020-01-17 | 北方工业大学 | 一种视频码率自适应调整方法 |
CN113141514B (zh) * | 2020-01-17 | 2022-07-22 | 北京达佳互联信息技术有限公司 | 媒体流传输方法、系统、装置、设备及存储介质 |
CN111586414B (zh) * | 2020-04-07 | 2022-04-15 | 南京师范大学 | 一种基于svc和dash的360°视频流调度方法 |
CN112929700A (zh) * | 2021-02-01 | 2021-06-08 | 福建多多云科技有限公司 | 一种基于云手机的视频流动态切换方法 |
CN113645228B (zh) * | 2021-08-09 | 2023-06-16 | 北京凌壹世纪科技有限公司 | 一种码率自适应的视频分发方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103945245A (zh) * | 2014-04-16 | 2014-07-23 | 上海交通大学 | 一种dash码率切换方法以及快速视频启动的方法 |
CN105263037A (zh) * | 2014-07-18 | 2016-01-20 | 中国科学院声学研究所 | 一种基于客户端缓存的自适应流化方法 |
CN105744299A (zh) * | 2014-12-08 | 2016-07-06 | 深圳Tcl数字技术有限公司 | 动态码率切换方法、服务器及系统 |
CN106453270A (zh) * | 2016-09-20 | 2017-02-22 | 天津大学 | 基于pi控制流媒体的自适应传输算法 |
-
2018
- 2018-01-03 CN CN201810005728.1A patent/CN108184152B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103945245A (zh) * | 2014-04-16 | 2014-07-23 | 上海交通大学 | 一种dash码率切换方法以及快速视频启动的方法 |
CN105263037A (zh) * | 2014-07-18 | 2016-01-20 | 中国科学院声学研究所 | 一种基于客户端缓存的自适应流化方法 |
CN105744299A (zh) * | 2014-12-08 | 2016-07-06 | 深圳Tcl数字技术有限公司 | 动态码率切换方法、服务器及系统 |
CN106453270A (zh) * | 2016-09-20 | 2017-02-22 | 天津大学 | 基于pi控制流媒体的自适应传输算法 |
Non-Patent Citations (2)
Title |
---|
A RATE ADAPTIVE ALGORITHM FOR HTTP STREAMING;Yanan Zhao;《Proceedings of IEEE CCIS2012》;20121231;第4节 * |
Adaptation Algorithm for Adaptive Streaming over HTTP;Konstantin Miller;《Proceedings of 2012 IEEE 19th International Packet Video Workshop》;20120511;第III节 * |
Also Published As
Publication number | Publication date |
---|---|
CN108184152A (zh) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108184152B (zh) | 一种dash传输系统两阶段客户端码率选择方法 | |
US10110650B2 (en) | Client side stream switching | |
CN108833996B (zh) | 分布式dash系统中服务节点选择、更新和码率自适应方法 | |
US10320869B2 (en) | Network-capacity optimized adaptive HTTP streaming | |
EP3200423B1 (en) | Media host transmitting media stream with adapted bit rate | |
US9167007B2 (en) | Stream complexity mapping | |
EP2612495B1 (en) | Adaptive streaming of video at different quality levels | |
JP6308718B2 (ja) | マルチパス環境におけるアダプティブストリーミングのためのシステムと方法 | |
JP2006115477A (ja) | メディアストリームから得られるメディアの提示を行う方法およびシステム | |
KR101982290B1 (ko) | 적응적 스트리밍 서비스의 체감 품질 향상을 위한 콘텐츠 특성 기반 스트리밍 시스템 및 방법 | |
WO2007130695A9 (en) | Method and apparatus for streaming media to a plurality of adaptive client devices | |
EP2589223A1 (en) | Video streaming | |
Karn et al. | Measuring bandwidth and buffer occupancy to improve the QoE of HTTP adaptive streaming | |
US20240137585A1 (en) | Multiple protocol prediction and in-session adaptation in video streaming | |
WO2014110670A1 (en) | Media server | |
KR20210042051A (ko) | 적응적 스트리밍 서비스를 위한 다중 경로 기반 블록 전송 시스템 및 스트리밍 방법 | |
Le et al. | Seamless mobile video streaming over HTTP/2 with gradual quality transitions | |
Togou et al. | An elastic dash-based bitrate adaptation scheme for smooth on-demand video streaming | |
Jabbar et al. | A proposed adaptive bitrate scheme based on bandwidth prediction algorithm for smoothly video streaming | |
Younus et al. | A model for a practical evaluation of a DASH-based rate adaptive algorithm over HTTP | |
Wisniewski et al. | On optimizing adaptive algorithms based on rebuffering probability | |
Khan et al. | Bandwidth Estimation Techniques for Relative'Fair'Sharing in DASH | |
Alqhtani et al. | An adaptive quality switch-aware framework for optimal bitrate video streaming delivery | |
Nabi et al. | SHANZ algorithm for QoE enhancement of HTTP based adaptive video streaming | |
US20230328334A1 (en) | Adaptive bit rate streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |