发明名称 一种基于HLS的多场景流媒体自适应直播方法
摘要 本发明为一种基于HLS的多场景流媒体自适应直播方法,其基于HTTP Live Streaming协议,实现了屏幕媒体流和视频媒体流的同步自适应直播;在直播过程中,服务器实时将屏幕数据和音频数据编码并封装成多种不同质量级别的屏幕媒体流,将视频数据和音频数据编码并封装成一种质量级别的视频媒体流,并对屏幕媒体流和视频媒体流进行切片,客户端采用一种平滑的带宽预测方法,根据单位HTTP/TCP吞吐量来进行网络实时可用带宽的预测,并综合考虑网络实时可用带宽、缓存大小与屏幕媒体流、视频媒体流的重要程度,请求与网络实时可用带宽相适应的媒体码流进行传输,实现了一种屏幕媒体流优先的多场景流媒体自适应直播方法。
申请公布号 CN103354618B 申请公布日期 2015.04.15
申请号 CN201310253436.7 申请日期 2013.06.24
申请人 西安交通大学 发明人 郑庆华;李斌;陈小云;赵辉;张未展
分类号 H04N21/238(2011.01)I;H04N21/233(2011.01)I;H04N21/234(2011.01)I;H04N21/431(2011.01)I 主分类号 H04N21/238(2011.01)I
代理机构 西安智大知识产权代理事务所 61215 代理人 段俊涛
主权项 一种基于HLS的多场景流媒体自适应直播方法,其特征在于,直播过程中,服务器实时将屏幕数据和音频数据编码并封装成多种不同质量级别的屏幕媒体流,将视频数据和音频数据编码并封装成一种质量级别的视频媒体流,并对屏幕媒体流和视频媒体流进行切片,客户端采用平滑的带宽预测方法,根据单位HTTP/TCP吞吐量来进行网络实时可用带宽的预测,请求与网络实时可用带宽相适应的媒体码流进行传输,在网络实时带宽不足以同时传输最低质量级别屏幕媒体流和视频媒体流的情况下,暂停视频媒体流的传输,从而实现了屏幕媒体流优先的多场景流媒体自适应直播,其中:所述平滑的带宽预测方法,是根据单位HTTP/TCP吞吐量来预测带宽,预测过程中考虑历史带宽与当前带宽对未来带宽预测影响程度不同,采用指数平滑法来有效预测带宽;其中单位HTTP/TCP吞吐量的计算公式为:TP=DSP/LP其中TP为单位HTTP/TCP吞吐量,DSP为单位时间下载数据量,LP为单位时间长度;根据分片i的单位HTTP/TCP吞吐量来进行分片i+1传输时的带宽方法描述如下,首先计算单位平均吞吐量,公式为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>TP</mi><mi>av</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>&lambda;TP</mi><mi>av</mi></msub><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mn>1</mn><mo>-</mo><mi>&lambda;</mi></mrow><mo>)</mo><mi>TP</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>></mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>></mo><mn>1</mn></mtd></mtr><mtr><mtd><mi>TP</mi><mrow><mo>(</mo><mi>i</mi><mo>,</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>=</mo><mn>1</mn><mo>,</mo><mi>j</mi><mo>=</mo><mn>1</mn></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000625846470000011.GIF" wi="1062" he="161" /></maths>其中TP(i,j)是分片i的第j个单位吞吐量,单位时间设置为1秒,TP<sub>av</sub>(i,j)是在分片i的第j个单位平均吞吐量,λ表示权重,假设分片i的最后一个单位吞吐量为TP(i,k),则分片i+1传输时的带宽预测为TP<sub>av</sub>(i,k);客户端在请求与网络实时可用带宽相适应的媒体码流进行传输时,综合考虑网络实时可用带宽、缓存大小与屏幕媒体流、视频媒体流的重要程度,具体步骤为:首先给出方法步骤中用到的概念和定义,屏幕媒体流有四种质量级别的码流l<sub>1</sub>,l<sub>2</sub>,l<sub>3</sub>,l<sub>4</sub>,分别对应码率R<sub>s1</sub>,R<sub>s2</sub>,R<sub>s3</sub>,R<sub>s4</sub>,视频媒体流只有一种码流,其码率为Rv,屏幕媒体流分片i的传输码流级别为l<sub>i</sub>,在进行第i+1个分片传输码流选择时客户端缓存大小为buffer<sub>i</sub>,分片i的最终平均吞吐量,即网络实时可用带宽为TP<sub>av</sub>(i,k),客户端缓存大小的下限阈值为θ<sub>1</sub>,上限阈值为θ<sub>2</sub>;Step1:客户端获取直播时的屏幕媒体流和视频媒体流的m3u8索引文件,初始化缓存大小buffer<sub>1</sub>=0,可用带宽置为0;Step2:先请求最低质量级别的屏幕媒体流,然后请求视频媒体流,当缓存大小达到阈值θ<sub>1</sub>,客户端开始进行解码回放;Step3:通过比较客户端缓存大小buffer<sub>i</sub>与上下限阈值来进行屏幕媒体流码流质量级别选择,分以下几种情况:当buffer<sub>i</sub>&lt;θ<sub>1</sub>时,选择最低质量级别的屏幕媒体码流,并且当R<sub>s1</sub>+R<sub>v</sub>&gt;TP<sub>av</sub>(i,k)时,暂停视频媒体流的传输,确定传输码流质量级别后立刻进行数据传输请求;当θ<sub>1</sub>&lt;buffer<sub>i</sub>&lt;θ<sub>2</sub>时,若<img file="FDA0000625846470000021.GIF" wi="432" he="83" />屏幕媒体流下调一个质量级别;若<img file="FDA0000625846470000022.GIF" wi="481" he="81" />屏幕媒体流上调一个质量级别,否则保持原质量级别,确定传输码流质量级别后立刻进行数据传输请求;当buffer<sub>i</sub>&gt;θ<sub>2</sub>时,若<img file="FDA0000625846470000023.GIF" wi="503" he="86" />屏幕媒体流上调一个质量级别,否则保持原质量级别,等待buffer<sub>i</sub>‑θ<sub>2</sub>时间再进行数据传输请求;Step4:直播结束前或客户端结束观看前,重复Step3,周期性地更新索引文件。
地址 710049 陕西省西安市咸宁路28号