一种层间回填自适应SVC-DASH播放方法技术

技术编号:20370320 阅读:42 留言:0更新日期:2019-02-16 20:27
一种层间回填自适应SVC‑DASH播放方法,首先构造SVC编码数据集,然后搭建HTTP文件服务器,阐述SVC‑DASH播放方法的客户端模块协作方法和步骤,对层间回填自适应算法从回填片段序号查找、回填质量确定进行详细描述。

An Interlayer Backfill Adaptive SVC-DASH Playback Method

An adaptive SVC DASH playback method for interlayer backfilling is proposed. Firstly, SVC encoding data set is constructed, then HTTP file server is built. The client module cooperation method and steps of SVC DASH playback method are described. The adaptive algorithm for interlayer backfilling is described in detail from the sequence number search of backfilling fragments and the quality determination of backfilling.

【技术实现步骤摘要】
一种层间回填自适应SVC-DASH播放方法
本专利技术涉及一种动态自适应流媒体方法
技术介绍
近年来,在线流媒体视频服务得到广泛的应用。在线视频业务在整个因特网的数据流量正占据着越来越大的比重。基于HTTP的自适应流技术克服了基于RTP/RTSP的流媒体传输部署难、不兼容防火墙等问题和HTTP渐进式下载无法动态调整视频质量的问题,被广泛用于提供商用高质量的视频服务。市场上有多种流媒体技术,MPEG-DASH(DASH:DynamicAdaptiveStreamingoverHTTP)协议可以兼容市场上主流自适应流媒体技术,受到业界和研究界的关注。传统的自适应流媒体技术通过在服务端存储大量高级视频编码(AdvancedVideoCoding,AVC)以提供视频服务,但AVC编码冗余非常大。可扩展视频编码(ScalableVideoCoding,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≤le本文档来自技高网...

【技术保护点】
1.一种层间回填自适应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文件中的

【技术特征摘要】
1.一种层间回填自适应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...

【专利技术属性】
技术研发人员:熊丽荣尤日晶沈树茂
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1