CN109348233B - 一种层间回填自适应svc-dash播放方法 - Google Patents
一种层间回填自适应svc-dash播放方法 Download PDFInfo
- Publication number
- CN109348233B CN109348233B CN201810808794.2A CN201810808794A CN109348233B CN 109348233 B CN109348233 B CN 109348233B CN 201810808794 A CN201810808794 A CN 201810808794A CN 109348233 B CN109348233 B CN 109348233B
- Authority
- CN
- China
- Prior art keywords
- segment
- video
- module
- layer
- playing
- 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
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output 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/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/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234327—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by decomposing into layers, e.g. base layer and one or more enhancement layers
-
- 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/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
一种层间回填自适应SVC‑DASH播放方法,首先构造SVC编码数据集,然后搭建HTTP文件服务器,阐述SVC‑DASH播放方法的客户端模块协作方法和步骤,对层间回填自适应算法从回填片段序号查找、回填质量确定进行详细描述。
Description
技术领域
本发明涉及一种动态自适应流媒体方法
背景技术
近年来,在线流媒体视频服务得到广泛的应用。在线视频业务在整个因特网的数据流量正占据着越来越大的比重。基于HTTP的自适应流技术克服了基于RTP/RTSP的流媒体传输部署难、不兼容防火墙等问题和HTTP渐进式下载无法动态调整视频质量的问题,被广泛用于提供商用高质量的视频服务。市场上有多种流媒体技术,MPEG-DASH(DASH:DynamicAdaptive Streaming over HTTP)协议可以兼容市场上主流自适应流媒体技术,受到业界和研究界的关注。
传统的自适应流媒体技术通过在服务端存储大量高级视频编码(Advanced VideoCoding,AVC)以提供视频服务,但AVC编码冗余非常大。可扩展视频编码(Scalable VideoCoding,SVC)以其一次编码可多次按需适配的高可扩展性成为视频编码领域的研究热点。相比于AVC编码,SVC编码的方法能够大大减少视频提供商在视频服务端的存储容量。
发明内容
本发明要解决现有技术的上述缺点,提供一种层间回填自适应SVC-DASH播放方法。
本发明基于DASH框架,设计面向SVC编码的流媒体客户端自适应播放方法。现有的基于SVC编码的自适应决策方法主要根据客户端吞吐量或者缓存预测下一视频片段的质量等级,然后根据视频质量等级串行下载片段的基础层和增强层。基于吞吐量预测方法在带宽变化时会带来片段质量频繁切换的问题。基于缓存的预测方法则为了维持高缓存而一直下载较低质量等级的视频片段,引起观看视频的整体用户体验QOE偏低。上述方法在网络带宽剧烈变化时,存在视频卡顿、不能及时响应网络带宽、用户体验不友好的情况。
一种层间回填自适应SVC-DASH播放方法,包括以下步骤:
1创建SVC编码数据集;
1.1视频格式转换;
选择YUV、AVI等任意格式视频源,将其转化为MPEG-DASH协议需要的H.264视频格式。采用FFMPEG,MediaCoder开源工具实施视频编码转换。
1.2视频分割;
SVC编码将每个视频片段分割为一层基础层和多层增强层,且基础层和多个增强层可以通过不同的组合方式解码出不同视频质量的媒体流。将步骤1.1生成的H.264格式视频分割成固定时长τ秒,一般为2~10秒的多个视频片段,每个视频片段由一层基础层和多个增强层构成。根据生成的视频片段序号、片段时长、视频片段帧率、片段层下载链接、片段层文件大小等信息构造一个MPD文件,MPD文件是DASH视频描述文件。视频片段分割采用JSVM、SVC_Demux_Mux开源工具。
2搭建基于SVC编码的HTTP视频文件服务器;
利用现有的服务端技术Apache,nginx,tomcat搭建SVC编码的文件服务器,并将MPD文件中的<BaseURL>项修改为服务器的存储视频数据集的网络地址。
3层间回填自适应播放方法的SVC-DASH客户端模块及交互;
SVC-DASH客户端包括:用户交互模块、下载模块、缓存管理模块、自适应决策模块、片段合成模块以及播放控制模块共六个模块。用户交互模块是用户和客户端之间进行交互的接口,用户选择SVC编码的DASH视频源,下载并解析DASH视频源的MPD文件;自适应决策模块采用层间回填自适应方法决策出可以从视频文件服务器端下载的视频片段层。下载模块将决策出的视频片段层文件下载交由缓存管理模块;缓存管理模块负责将下载的片段层存储到缓存区。片段合成模块负责从缓存区内取出片段基础层和多层增强层进行合成,并交给播放控制模块。播放控制模块将片段合成模块合成的H.264片段加载至Mplayer播放器播放的主文件中,通过Mplayer播放器进行播放。播放控制模块需要保证当缓存区为空时,主动暂停Mplayer播放器播放视频,等待缓存区填充入新的片段后再通知Mplayer播放器继续播放视频。各个模块之间协作步骤如下:
3.1用户交互模块获取视频源MPD并解析处理;
首先用户通过用户交互模块添加可播放的视频源的MPD下载地址,检查MPD下载地址是否有效,如果无效,则重新进行添加MPD下载地址。如果有效则根据MPD下载地址从服务端下载MPD文件。当客户端下载好MPD文件后,将MPD文件通过XML技术进行解析,获取MPD文件包含的信息,并发送给自适应决策模块、下载模块和播放模块。
3.2层间回填自适应决策;
首先自适应决策模块采用层间回填自适应方法确定需要下载的片段层,然后下载模块根据自适应决策的片段层从服务端进行下载。
层间回填自适应方法是在SVC-DASH的框架下,根据缓存填充状态预测下一次下载的片段层,并返回给下载模块进行下载。当缓存区处于未填满状态时,通过下载新片段的基础层进行填充缓存;当缓存区填满时,通过回填算法确定下载的片段层。相关定义如下:
定义片段层为(i,j),i为视频片段序号,j为质量等级,其中j∈[0,M],当j=0时,视频片段仅含基础层;当j>0时,视频片段含有1个基础层和j个增强层,M为片段i所含增强层总数。
定义last_chunk,last_chunk是一个长度为2的一维数组,其中last_chunk[0]记录最新下载的片段序号,last_chunk[1]记录上次回填的片段序号。
3.2.1缓存区处于未填满状态时,添加新片段基础层;
last_chunk[0]=last_chunk[0]+1,i=last_chunk[0],j=0;返回片段层(i,j)。否则,转3.2.2。
3.2.2当缓存区填满时,质量回填;
当缓存区已满时,对已下载的视频片段进行回填。在回填的过程中,需要在每次下载基础层或增强层后,及时根据当前带宽调整回填质量。步骤包含回填片段序号查找和层间回填质量确定。
1)回填片段序号查找算法;
在选择回填片段序号时,需要保证回填片段尚未回填且尚未播放。因此选择回填片段序号时,选择last_chunk[1]和play_chunk+2中片段序号较大的。
i=max(last_chunk[1],play_chunk+2)
j=len(buffer(i))
其中play_chunk表示了当前播放器正在播放的视频片段的序号,play_chunk+2表示正在播放的视频片段的序号+2,这样能够有效防止回填过程中下载已经播放过的视频片段的片段层。
2)层间回填质量确定算法;
基于实时带宽预测片段质量。当前带宽和上次网络带宽接近,则预测质量等级和上次选择的质量等级相同。否则,找到和当前带宽最匹配的质量等级。
定义上一次片段层下载的网络带宽为pre_speed,当前实时带宽为cur_speed;pre_select表示pre_speed带宽下选择的质量等级,select表示当前片段i的预测质量等级;level为一维数组,存储不同质量等级所需的带宽。level[select]表示了质量等级为select时所需的带宽。具体如下:
a)如果0.9*pre_speed<cur_speed<1.1*pre_speed,
则select=pre_select
否则,转步骤b);
b)找到和当前带宽最匹配的质量等级,方法如下:
select从0开始,直到select符合
0.9*cur_speed≤level[select]<1.1*cur_speed,选择select值作为当前
选择的质量等级。
如果当前带宽小于level数组中的最小质量等级所需带宽时,
选择最低的质量等级select=0;
如果当前带宽大于level数组中的最大质量等级所需带宽时,
选择最大质量等级,select=M。
3)确定自适应下载层;
如果j<select,则返回(i,j)。如果j>=select时,则i=i+1,
last_chunk[1]=i,j=len(buffer(i)),返回(i,j)。
3.3视频下载处理
下载模块在获得自适应决策出的需要下载的片段层信息后,从获取的MPD文件信息中查找决策出的需要下载的片段层的下载链接,并将其下载。
3.4视频缓存管理;
在片段层下载后,将片段层存储到缓存区中。缓存区内存放的视频片段以哈希表结构组织,其中哈希表的键值是视频片段序号。哈希表的键值是一个列表,列表存储了片段序号为哈希表键对应的片段层存储地址。例如存储片段序号为7且其质量等级为2时,哈希表的键是7,其值为由7-BL,7-EL1和7-EL2的地址构成的列表。
3.5视频片段合成;
片段合成模块从缓存区中取出视频片段的基础层和多个增强层,由片段合成模块合成可播放的H.264片段,并由播放控制模块加载入播放文件中,由Mplayer播放器播放。合成模块工具可以参考JSVM,SVC_Demux_Mux等开源工具。
3.6控制播放模块读取主文件并播放。
Mplayer播放器启动时需要从播放主文件中开始读取并播放,控制播放模块不断的从片段合成模块获取新的H.264片段,并加载入播放主文件中,Mplayer播放器读入视频片段,并交给解码模块,解码模块将视频片段解码成帧,并存人Mplayer的播放帧缓存中。Mplayer从帧缓存中取出帧进行播放。视频还没有播放到最后一个片段时,如果帧缓存中已经没有可播放帧,控制播放模块会控制Mplayer暂停播放,等待新片段的载入,否则继续播放直到播放到最后一个片段结束。
本发明的优点是:
1、采用SVC编码的视频流,可以大大减少服务端的存储成本。
2、基于SVC编码层的层间回填自适应机制可以在保证视频流流畅播放的基础上根据网络带宽状况确定是否回填视频质量,实现流畅播放基础上的及时响应网络带宽变化,提升用户体验。
附图说明
图1是本发明方法的架构图。
图2是本发明的自定义缓存存储结构。
图3是本发明的层间回填算法总体流程图。
图4是本发明的回填片段序号查找算法流程图
图5是本发明的回填质量确定算法流程图。
具体实施方式
参照附图,进一步说明本发明:
一种层间回填自适应SVC-DASH播放方法,包括以下步骤:
1创建SVC编码数据集;
1.1视频格式转换;
选择YUV、AVI等任意格式视频源,将其转化为MPEG-DASH协议需要的H.264视频格式。采用FFMPEG,MediaCoder开源工具实施视频编码转换。
1.2视频分割;
SVC编码将每个视频片段分割为一层基础层和多层增强层,且基础层和多个增强层可以通过不同的组合方式解码出不同视频质量的媒体流。将步骤1.1生成的H.264格式视频分割成固定时长τ秒,一般为2~10秒的多个视频片段,每个视频片段由一层基础层和多个增强层构成。根据生成的视频片段序号、片段时长、视频片段帧率、片段层下载链接、片段层文件大小等信息构造一个MPD文件,MPD文件是DASH视频描述文件。视频片段分割采用JSVM、SVC_Demux_Mux开源工具。
2搭建基于SVC编码的HTTP视频文件服务器;
利用现有的服务端技术Apache,nginx,tomcat搭建SVC编码的文件服务器,并将MPD文件中的<BaseURL>项修改为服务器的存储视频数据集的网络地址。
3层间回填自适应播放方法的SVC-DASH客户端模块及交互;
SVC-DASH客户端包括:用户交互模块、下载模块、缓存管理模块、自适应决策模块、片段合成模块以及播放控制模块共六个模块。用户交互模块是用户和客户端之间进行交互的接口,用户选择SVC编码的DASH视频源,下载并解析DASH视频源的MPD文件;自适应决策模块采用层间回填自适应方法决策出可以从视频文件服务器端下载的视频片段层。下载模块将决策出的视频片段层文件下载交由缓存管理模块;缓存管理模块负责将下载的片段层存储到缓存区。片段合成模块负责从缓存区内取出片段基础层和多层增强层进行合成,并交给播放控制模块。播放控制模块将片段合成模块合成的H.264片段加载至Mplayer播放器播放的主文件中,通过Mplayer播放器进行播放。播放控制模块需要保证当缓存区为空时,主动暂停Mplayer播放器播放视频,等待缓存区填充入新的片段后再通知Mplayer播放器继续播放视频。各个模块之间协作步骤如下:
3.1用户交互模块获取视频源MPD并解析处理;
首先用户通过用户交互模块添加可播放的视频源的MPD下载地址,检查MPD下载地址是否有效,如果无效,则重新进行添加MPD下载地址。如果有效则根据MPD下载地址从服务端下载MPD文件。当客户端下载好MPD文件后,将MPD文件通过XML技术进行解析,获取MPD文件包含的信息,并发送给自适应决策模块、下载模块和播放模块。
3.2层间回填自适应决策;
首先自适应决策模块采用层间回填自适应方法确定需要下载的片段层,然后下载模块根据自适应决策的片段层从服务端进行下载。
层间回填自适应方法是在SVC-DASH的框架下,根据缓存填充状态预测下一次下载的片段层,并返回给下载模块进行下载。当缓存区处于未填满状态时,通过下载新片段的基础层进行填充缓存;当缓存区填满时,通过回填算法确定下载的片段层。相关定义如下:
定义片段层为(i,j),i为视频片段序号,j为质量等级,其中j∈[0,M],当j=0时,视频片段仅含基础层;当j>0时,视频片段含有1个基础层和j个增强层,M为片段i所含增强层总数。
定义last_chunk,last_chunk是一个长度为2的一维数组,其中last_chunk[0]记录最新下载的片段序号,last_chunk[1]记录上次回填的片段序号。
3.2.1缓存区处于未填满状态时,添加新片段基础层;
last_chunk[0]=last_chunk[0]+1,i=last_chunk[0],j=0;返回片段层(i,j)。否则,转3.2.2。
3.2.2当缓存区填满时,质量回填;
当缓存区已满时,对已下载的视频片段进行回填。在回填的过程中,需要在每次下载基础层或增强层后,及时根据当前带宽调整回填质量。步骤包含回填片段序号查找和层间回填质量确定。
1)回填片段序号查找算法;
在选择回填片段序号时,需要保证回填片段尚未回填且尚未播放。因此选择回填片段序号时,选择last_chunk[1]和play_chunk+2中片段序号较大的。
i=max(last_chunk[1],play_chunk+2)
j=len(buffer(i))
其中play_chunk表示了当前播放器正在播放的视频片段的序号,play_chunk+2表示正在播放的视频片段的序号+2,这样能够有效防止回填过程中下载已经播放过的视频片段的片段层。
2)层间回填质量确定算法;
基于实时带宽预测片段质量。当前带宽和上次网络带宽接近,则预测质量等级和上次选择的质量等级相同。否则,找到和当前带宽最匹配的质量等级。
定义上一次片段层下载的网络带宽为pre_speed,当前实时带宽为cur_speed;pre_select表示pre_speed带宽下选择的质量等级,select表示当前片段i的预测质量等级;level为一维数组,存储不同质量等级所需的带宽。level[select]表示了质量等级为select时所需的带宽。具体如下:
a)如果0.9*pre_speed<cur_speed<1.1*pre_speed,
则select=pre_select
否则,转步骤b)
b)找到和当前带宽最匹配的质量等级,方法如下:
select从0开始,直到select符合
0.9*cur_speed≤level[select]<1.1*cur_speed,选择select值作为当前
选择的质量等级。
如果当前带宽小于level数组中的最小质量等级所需带宽时,
选择最低的质量等级select=0;
如果当前带宽大于level数组中的最大质量等级所需带宽时,
选择最大质量等级,select=M。
3)确定自适应下载层;
如果j<select,则返回(i,j)。如果j>=select时,则i=i+1,
last_chunk[1]=i,j=len(buffer(i)),返回(i,j)。
3.3视频下载处理;
下载模块在获得自适应决策出的需要下载的片段层信息后,从获取的MPD文件信息中查找决策出的需要下载的片段层的下载链接,并将其下载。
3.4视频缓存管理;
在片段层下载后,将片段层存储到缓存区中。缓存区内存放的视频片段以哈希表结构组织,其中哈希表的键值是视频片段序号。哈希表的键值是一个列表,列表存储了片段序号为哈希表键对应的片段层存储地址。例如存储片段序号为7且其质量等级为2时,哈希表的键是7,其值为由7-BL,7-EL1和7-EL2的地址构成的列表。
3.5视频片段合成;
片段合成模块从缓存区中取出视频片段的基础层和多个增强层,由片段合成模块合成可播放的H.264片段,并由播放控制模块加载入播放文件中,由Mplayer播放器播放。合成模块工具可以参考JSVM,SVC_Demux_Mux等开源工具。
3.6控制播放模块读取主文件并播放;
Mplayer播放器启动时需要从播放主文件中开始读取并播放,控制播放模块不断的从片段合成模块获取新的H.264片段,并加载入播放主文件中,Mplayer播放器读入视频片段,并交给解码模块,解码模块将视频片段解码成帧,并存人Mplayer的播放帧缓存中。Mplayer从帧缓存中取出帧进行播放。视频还没有播放到最后一个片段时,如果帧缓存中已经没有可播放帧,控制播放模块会控制Mplayer暂停播放,等待新片段的载入,否则继续播放直到播放到最后一个片段结束。
本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。
Claims (1)
1.一种层间回填自适应SVC-DASH播放方法,包括以下步骤:
步骤1,创建SVC编码数据集;
1.1视频格式转换;
选择YUV、AVI等任意格式视频源,将其转化为MPEG-DASH协议需要的H.264视频格式;采用FFMPEG,MediaCoder开源工具实施视频编码转换;
1.2视频分割;
SVC编码将每个视频片段分割为一层基础层和多层增强层,且基础层和多个增强层可以通过不同的组合方式解码出不同视频质量的媒体流;将步骤1.1生成的H.264格式视频分割成固定时长秒的多个视频片段,每个视频片段由一层基础层和多个增强层构成;根据生成的视频片段序号、片段时长、视频片段帧率、片段层下载链接、片段层文件大小等信息构造一个MPD文件,MPD文件是DASH视频描述文件;视频片段分割采用JSVM、SVC_Demux_Mux开源工具;
步骤2,搭建基于SVC编码的HTTP视频文件服务器;
利用现有的服务端技术Apache,nginx,tomcat搭建SVC编码的文件服务器,并将MPD文件中的<BaseURL>项修改为服务器的存储视频数据集的网络地址;
步骤3,层间回填自适应播放方法的SVC-DASH客户端模块及交互;
SVC-DASH客户端包括:用户交互模块、下载模块、缓存管理模块、自适应决策模块、片段合成模块以及播放控制模块共六个模块;用户交互模块是用户和客户端之间进行交互的接口,用户选择SVC编码的DASH视频源,下载并解析DASH视频源的MPD文件;自适应决策模块采用层间回填自适应方法决策出可以从视频文件服务器端下载的视频片段层;下载模块将决策出的视频片段层文件下载交由缓存管理模块;缓存管理模块负责将下载的片段层存储到缓存区;片段合成模块负责从缓存区内取出片段基础层和多层增强层进行合成,并交给播放控制模块;播放控制模块将片段合成模块合成的H.264片段加载至Mplayer播放器播放的主文件中,通过Mplayer播放器进行播放;播放控制模块需要保证当缓存区为空时,主动暂停Mplayer播放器播放视频,等待缓存区填充入新的片段后再通知Mplayer播放器继续播放视频;各个模块之间协作步骤如下:
3.1用户交互模块获取视频源MPD并解析处理;
首先用户通过用户交互模块添加可播放的视频源的MPD下载地址,检查MPD下载地址是否有效,如果无效,则重新进行添加MPD下载地址;如果有效则根据MPD下载地址从服务端下载MPD文件;当客户端下载好MPD文件后,将MPD文件通过XML技术进行解析,获取MPD文件包含的信息,并发送给自适应决策模块、下载模块和播放模块;
3.2层间回填自适应决策;
首先自适应决策模块采用层间回填自适应方法确定需要下载的片段层,然后下载模块根据自适应决策的片段层从服务端进行下载;
层间回填自适应方法是在SVC-DASH的框架下,根据缓存填充状态预测下一次下载的片段层,并返回给下载模块进行下载;当缓存区处于未填满状态时,通过下载新片段的基础层进行填充缓存;当缓存区填满时,通过回填算法确定下载的片段层;相关定义如下:
3.2.1缓存区处于未填满状态时,添加新片段基础层;
3.2.2当缓存区填满时,质量回填;
当缓存区已满时,对已下载的视频片段进行回填;在回填的过程中,需要在每次下载基础层或增强层后,及时根据当前带宽调整回填质量;步骤包含回填片段序号查找和层间回填质量确定;
1)回填片段序号查找算法;
2)层间回填质量确定算法;
基于实时带宽预测片段质量;当前带宽和上次网络带宽接近,则预测质量等级和上次选择的质量等级相同;否则,找到和当前带宽最匹配的质量等级;
否则,转步骤b)
b) 找到和当前带宽最匹配的质量等级,方法如下:
3)确定自适应下载层;
3.3视频下载处理;
下载模块在获得自适应决策出的需要下载的片段层信息后,从获取的MPD文件信息中查找决策出的需要下载的片段层的下载链接,并将其下载;
3.4视频缓存管理;
在片段层下载后,将片段层存储到缓存区中;缓存区内存放的视频片段以哈希表结构组织,其中哈希表的键值是视频片段序号;哈希表的键值是一个列表,列表存储了片段序号为哈希表键对应的片段层存储地址;
3.5视频片段合成;
片段合成模块从缓存区中取出视频片段的基础层和多个增强层,由片段合成模块合成可播放的H.264片段,并由播放控制模块加载入播放文件中,由Mplayer播放器播放;合成模块工具可以参考JSVM, SVC_Demux_Mux等开源工具;
3.6控制播放模块读取主文件并播放;
Mplayer播放器启动时需要从播放主文件中开始读取并播放,控制播放模块不断的从片段合成模块获取新的H.264片段,并加载入播放主文件中,Mplayer播放器读入视频片段,并交给解码模块,解码模块将视频片段解码成帧,并存人Mplayer的播放帧缓存中;Mplayer从帧缓存中取出帧进行播放;视频还没有播放到最后一个片段时,如果帧缓存中已经没有可播放帧,控制播放模块会控制Mplayer暂停播放,等待新片段的载入,否则继续播放直到播放到最后一个片段结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810808794.2A CN109348233B (zh) | 2018-07-23 | 2018-07-23 | 一种层间回填自适应svc-dash播放方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810808794.2A CN109348233B (zh) | 2018-07-23 | 2018-07-23 | 一种层间回填自适应svc-dash播放方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109348233A CN109348233A (zh) | 2019-02-15 |
CN109348233B true CN109348233B (zh) | 2020-11-13 |
Family
ID=65296730
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810808794.2A Active CN109348233B (zh) | 2018-07-23 | 2018-07-23 | 一种层间回填自适应svc-dash播放方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109348233B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111586414B (zh) * | 2020-04-07 | 2022-04-15 | 南京师范大学 | 一种基于svc和dash的360°视频流调度方法 |
CN112153322B (zh) * | 2020-09-23 | 2023-03-24 | 北京字跳网络技术有限公司 | 数据分发方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101744743B1 (ko) * | 2010-12-23 | 2017-06-12 | 한국전자통신연구원 | 스케일러블 콘텐츠 배포를 위한 보안 레이블 생성 방법 및 장치 |
CN103905820A (zh) * | 2012-12-28 | 2014-07-02 | 中国科学院声学研究所 | 一种基于svc的客户端视频质量自适应方法及系统 |
US9537779B2 (en) * | 2013-10-11 | 2017-01-03 | Huawei Technologies Co., Ltd. | System and method for real-time traffic delivery |
CN104270646A (zh) * | 2014-09-22 | 2015-01-07 | 何震宇 | 一种基于移动流媒体的自适应传输方法和系统 |
CN106028085B (zh) * | 2016-06-14 | 2019-01-08 | 浙江工业大学 | 基于dash的多客户端码率自适应及震荡补偿方法 |
-
2018
- 2018-07-23 CN CN201810808794.2A patent/CN109348233B/zh active Active
Non-Patent Citations (1)
Title |
---|
Weighted Multi-playback Buffer Management for Scalable Video Streaming;Atinat Palawan;《IEEE》;20141120;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109348233A (zh) | 2019-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11076187B2 (en) | Systems and methods for performing quality based streaming | |
US10298985B2 (en) | Systems and methods for performing quality based streaming | |
JP6016778B2 (ja) | チャンクの形態でストリーミングされたコンテンツを回復する方法 | |
US10958867B2 (en) | Method and arrangement for supporting playout of content | |
US9042449B2 (en) | Systems and methods for dynamic transcoding of indexed media file formats | |
KR102072839B1 (ko) | 하이퍼텍스트 전송 프로토콜을 사용한 마트로스카 컨테이너 파일들에 저장된 미디어의 적응적 비트레이트 스트리밍 | |
EP2360923A1 (en) | Method for selectively requesting adaptive streaming content and a device implementing the method | |
KR20150042191A (ko) | 적응적 비트레이트 스트리밍에서 대역폭 할당을 위한 방법들 및 디바이스들 | |
US10735744B2 (en) | Adaptive bitrate streaming techniques | |
US10827181B1 (en) | Differential adaptive bitrate streaming based on scene complexity | |
WO2001020910A1 (en) | Method and apparatus for streaming data | |
CN109348233B (zh) | 一种层间回填自适应svc-dash播放方法 | |
Kofler et al. | Implications of the ISO base media file format on adaptive HTTP streaming of H. 264/SVC | |
KR101438737B1 (ko) | 멀티플 캐시 네트워크에서의 적응적 비디오 스트리밍 시스템 및 방법 | |
KR102129115B1 (ko) | 컨텐츠 인지 신경망을 이용하여 실시간으로 적응형 비디오를 전송하는 방법 및 장치 | |
CN108900874B (zh) | 一种基于svc-dash框架的流媒体自适应请求方法及其装置 | |
US11277649B2 (en) | Chunk-based filtering to optimize video streaming quality and data usage | |
CN108989838B (zh) | 一种基于视频内容复杂度感知的dash码率自适应方法 | |
CN116828269A (zh) | 一种视频传输的长期码率规划方法 |
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 |