首页 / 专利库 / 广播 / 帧内预测 / 面向互联网视频直播的播放时刻控制方法及装置

面向互联网视频直播的播放时刻控制方法及装置

阅读:0发布:2021-05-29

专利汇可以提供面向互联网视频直播的播放时刻控制方法及装置专利检索,专利查询,专利分析的服务。并且本 发明 涉及互联网技术领域,尤其涉及面向互联网视频直播的播放时刻控制方法及装置。面向互联网视频直播的播放时刻控制方法,包括:获取视频直播内容的播放时刻调节策略S及所述视频直播内容的传输链路的传输状态ST,其中所述视频直播内容中包含一个或多个音视频码流;依据所述S及所述ST,选择并 修改 传输的所述音视频码流。本发明提供的面向互联网视频直播的播放时刻控制方法及装置,能够基于互联网视频直播需求对视频直播内容进行时刻控制。,下面是面向互联网视频直播的播放时刻控制方法及装置专利的具体信息内容。

1.面向互联网视频直播的播放时刻控制方法,其特征在于,包括: 获取视频直播内容的播放时刻调节策略S及所述视频直播内容的传输链路的传输状态ST,其中所述视频直播内容中包含一个或多个音视频码流; 依据所述S及所述ST,选择并修改传输的所述音视频码流。
2.根据权利要求1所述的方法,其特征在于,依据所述S及所述ST,选择并修改传输的所述音视频码流,包括如下一种或两种操作的组合: 音视频流选择操作,其中,随播放请求的播放时间推移,从所述视频直播内容中选择相同或不同码率的音视频码流; 音视频流修改操作,其中,对所述音视频码流,采用以下一种或多种数据修改方法进行修改: 增大数据的时间戳的数据修改方法fsa ; 减小数据的时间戳的数据修改方法fsd ; 删除数据的数据修改方法fd ; 复制数据的数据修改方法fc ; 增加数据对应播放时间的重新转码的数据修改方法fea ; 减少数据对应播放时间的重新转码的数据修改方法fed ; 调整数据排序的数据修改方法fs。
3.根据权利要求2所述的方法,其特征在于,对所述音视频码流进行修改时,所述修改在一个传输节点上实现,或在多个传输节点上分别实现所述修改的一部分。
4.根据权利要求2所述的方法,其特征在于,当用户播放端采用分片传输协议播放一个视频直播内容,且该用户播放端对该视频直播内容的分片数据获取请求所请求的分片数据,采用了所述音视频流修改操作时,该方法中还包括:记录当前所述分片数据获取请求所请求的分片数据的时间戳的修正幅度,并利用该修正幅度去修正所述同一用户播放端对同一个视频直播内容的后续分片数据获取请求所请求的分片数据的时间戳。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:当接收到多个分片数据获取请求时,采用cookie或URL中包含的特定标记或HTTP协议中包含的特定标记或所述多个分片数据获取请求是否在一个HTTP Keep-Alive的长连接中来判断多个所述分片数据获取请求是否来自同一个用户播放端对同一个视频直播内容的分片数据获取请求。
6.根据权利要求2所述的方法,其特征在于,当用户播放端采用分片传输协议时,针对不同用户,采用与播放时刻调节策略S、传输状态ST相适应的分片策略,其中所述分片策略包括切片的起止位置及切片索引文件的构成。
7.根据权利要求2所述的方法,其特征在于,所述S中包含所述视频直播内容的延迟模式,其中所述延迟模式为低延迟模式LD或同步延迟模式FD。
8.根据权利要求7所述的方法,其特征在于,所述延迟模式为LD时,所述S中包含延迟参量DL和/或CB,其中,所述DL为最低延迟,所述CB为用户播放端初始缓冲区大小。
9.根据权利要求8所述的方法,其特征在于,所述延迟模式为FD时,所述S中包含延迟参量DF,其中,所述DF为直播延迟所趋近的目标值。
10.根据权利要求8所述的方法,其特征在于,该方法还包括:当所述直播需求为低延迟播放需求时,预测用户播放端的播放发生停顿的可能性;依据所述可能性的预测结果,对S中的延迟参量进行修改。
11.根据权利要求10所述的方法,其特征在于,所述依据所述可能性的预测结果,对S中的延迟参量进行修改,包括如下一种或多种方法的组合: 判断所述可能性是否满足第一预设条件,其中所述第一预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件,如果是,则增加DL ; 判断所述可能性是否满足第二预设条件,其中所述第二预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件,如果是,则降低DL ; 判断所述可能性是否满足第三预设条件,其中所述第三预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件,如果是,则增加CB ; 判断所述可能性的是否满足第四预设条件,其中所述第四预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件,如果是,则降低所述CB。
12.根据权利要求9所述的方法,其特征在于,所述依据所述S及所述ST,选择并修改传输的所述音视频码流,包括: 依据所述ST确定当前传输的总延迟DN ; 依据所述S及所述DN,选择所述音视频码流; 依据所述S及所述DN,修改所述音视频码流。
13.根据权利要求12所述的方法,其特征在于,依据所述S及所述DN,修改所述音视频码流,包括: 当所述S中的延迟模式为LD,且所述DN>DL时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ; 当所述S中的延迟模式为FD,且DN>DF时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ; 当所述S中的延迟模式为FD,且DN〈DF时,采用以下修改方法中的一种或多种:fsa、fc、fs、fea0
14.根据权利要求12所述的方法,其特征在于,依据所述S及所述DN,选择所述音视频码流,包括:当用户播放端改变播放码率时,依据该用户播放端的直播需求、当前总的传输延迟DN、当前选择的所述音视频码流的码率及用户播放端欲更改的码率,改变当前所选择的所述音视频码流。
15.根据权利要求14所述的方法,其特征在于,改变当前所选择的所述音视频码流,包括: 当S中的延迟模式为LD且S包含最低延迟DL时,若DN〈 = DL,且在目标监测时间段内用户播放端停顿可能性小于预设的第一停顿阈值,且存在比Ox码率更高的O i,则令Ox =Oi; 当S中的延迟模式为FD时,若DN〈 = DF,且在目标监测时间段内用户播放端的停顿可能性小于预设的第二停顿阈值,且存在比当前Ox码率更高的O i,则令Ox= O i; 当S中的延迟模式为LD时,若在目标监测时间段内用户播放端的停顿可能性大于或等于预设的第三停顿阈值,且存在比当前Ox码率更低的O i,则令Ox= O i; 当S中的延迟模式为FD时,若在目标监测时间段内用户播放端的停顿可能性大于或等于预设的第四停顿阈值,且存在比当前Ox码率更低的O i,则令Ox= O i; 其中,OxS当前所选择的码流,ο i为所述直播内容中的一个除ο ,码流外的码流。
16.根据权利要求2所述的方法,其特征在于,选择的所述音视频码流为不同码流,且采用了所述音视频流修改操作时,该方法还包括:记录当前音视频码流的时间戳修正幅度,并利用当前所述音视频码流的所述时间戳修正幅度去修正要选择的目标音视频码流的时间戳。
17.根据权利要求2所述的方法,其特征在于,fd包含如下一种或多种方法的组合: 设置可连续删除的最大删除数据标记; 设置两次连续删除数据之间的最小删除间隔标记; 设置可开始删除数据的删除起始标记; 设置可结束删除数据的删除结束标记; 设置是否可删除视频数据的第一删除标记; 设置是否可删除音频数据的第二删除标记; 设置是否可删除音频数据、视频数据之外的其它数据的第三删除标记。
18.根据权利要求2所述的方法,其特征在于,fc包含如下一种或多种方法的组合: 设置可连续复制的最大复制数据标记; 设置两次连续复制数据之间的最小复制间隔标记; 设置可开始复制数据的复制起始标记; 设置可结束复制数据的复制结束标记; 设置是否可复制视频数据的第一复制标记; 设置是否可复制音频数据的第二复制标记; 设置是否可复制音频数据、视频数据之外的其它数据的第三复制标记。
19.根据权利要求2所述的方法,其特征在于,fea方法包含如下一种或多种方法的组合: 对所述音视频码流中的音频数据进行转码,包括:对所述音频数据进行解码得到未压缩的音频数据;对未压缩的所述音频数据进行补零、复制、插值或利用N个音频采样数据构造N+Ma个音频采样数据的处理;对所述处理后的未压缩音频数据进行编码; 对所述音视频码流中的视频数据进行转码,包括:对所述视频数据进行解码得到未压缩的视频数据;对未压缩的所述视频数据进行复制、线性或非线性插值构造插入帧、插入纯色帧或静态帧、插入循环帧序列、利用N帧视频数据来构造N+Mv帧视频数据的处理;对所述处理后的未压缩视频数据进行编码; fed方法包含如下一种或多种方法的组合: 对所述音视频码流中的音频数据进行转码,包括:对所述音频数据进行解码得到未压缩的音频数据;对未压缩的所述音频数据进行删减或利用N个音频采样数据来构造N-Ma’个音频采样数据的处理;对所述处理后的未压缩音频数据进行编码; 对所述音视频码流中的视频数据进行转码包括:对所述视频数据进行解码得到未压缩的视频数据;对未压缩的视频数据进行删减或利用N帧视频数据来构造N-Mv’帧视频数据的处理;对所述处理后的未压缩视频数据进行编码。
20.面向互联网视频直播的播放时刻控制装置,其特征在于,包括: 获取模,用于获取视频直播内容的播放时刻调节策略S及所述视频直播内容的传输链路的传输状态ST,其中所述视频直播内容中包含一个或多个音视频码流; 选择修改模块,用于依据所述S及所述ST,选择并修改传输的所述音视频码流。
21.根据权利要求20所述的装置,其特征在于,所述选择修改模块,包括: 选择模块,用于音视频流选择操作,其中,随播放请求的播放时间推移,从所述视频直播内容中选择相同或不同码率的音视频码流; 码流修改模块,用于音视频流修改操作,其中,对所述音视频码流,采用以下一种或多种数据修改方法进行修改: 增大数据的时间戳的数据修改方法fsa ; 减小数据的时间戳的数据修改方法fsd ; 删除数据的数据修改方法fd ; 复制数据的数据修改方法fc ; 增加数据对应播放时间的重新转码的数据修改方法fea ; 减少数据对应播放时间的重新转码的数据修改方法fed ; 数据排序的数据修改方法fs。
22.根据权利要求21所述的装置,其特征在于,所述码流修改模块,包括:第一修正模块,用于当用户播放端采用分片传输协议播放一个视频直播内容,且该用户播放端对该视频直播内容的分片数据获取请求所请求的分片数据,采用了所述音视频流修改操作时,记录当前所述分片数据获取请求所请求的分片数据的时间戳的修正幅度,并利用该修正幅度去修正所述同一用户播放端对同一个视频直播内容的后续分片数据获取请求所请求的分片数据的时间戳。
23.根据权利要求22所述的装置,其特征在于,所述码流修改模块还包括:第一判断模块,用于当接收到多个分片数据获取请求时,采用cookie或URL中包含的特定标记或HTTP协议中包含的特定标记或所述多个分片数据获取请求是否在一个HTTP Keep-Alive的长连接中来判断多个所述分片数据获取请求是否来自同一个用户播放端对同一个视频直播内容的分片数据获取请求。
24.根据权利要求21所述的装置,其特征在于,所述选择模块,还用于当用户播放端采用分片传输协议时,针对不同用户,选择与播放时刻调节策略S、传输状态ST相适应的分片策略,其中所述分片策略包括切片的起止位置及切片索引文件的构成。
25.根据权利要求21所述的装置,其特征在于,所述获取模块,包括:延迟模式子模块,用于获取所述S中包含的所述视频直播内容的延迟模式,其中所述延迟模式为低延迟模式LD或同步延迟模式FD。
26.根据权利要求25所述的装置,其特征在于,所述延迟模式子模块,还用于所述延迟模式为LD时,获取所述S中包括的延迟参量:最低延迟DL和/或用户播放端初始缓冲区大小CB0
27.根据权利要求26所述的装置,其特征在于,所述延迟模式子模块,还用于所述延迟模式为FD时,获取所述S中包括的延迟参量:直播延迟所趋近的目标值DF。
28.根据权利要求26所述的装置,其特征在于,所述选择修改模块还包括:延迟参量修改模块,用于当所述直播需求为低延迟播放需求时,预测用户播放端的播放发生停顿的可能性;依据所述可能性的预测结果,对S中的延迟参量进行修改。
29.根据权利要求28所述的装置,其特征在于,所述延迟参量修改模块,包括: 第二判断模块,用于判断所述可能性是否满足第一预设条件,其中所述第一预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件;延迟参量修改子模块,用于当所述可能性满足所述第一预设条件时,增加DL ; 所述第二判断模块,还用于判断所述可能性是否满足第二预设条件,其中所述第二预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件;所述延迟参量修改子模块,还用于,当所述可能性满足第二预设条件时,降低DL ; 所述第二判断模块,还用于判断所述可能性是否满足第三预设条件,其中所述第三预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件;所述延迟参量修改子模块,还用于当所述可能性满足第三预设条件时,增加CB ; 所述第二判断模块,还用于判断所述可能性是否满足第四预设条件,其中所述第四预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件;所述延迟参量修改子模块,还用于当所述可能性满足第四预设条件时,降低所述CB。
30.根据权利要求27所述的装置,其特征在于, 所述选择修改模块,还包括:总延迟确定模块,用于依据所述ST确定当前传输的总延迟DN ; 所述选择模块,包括:选择子模块,用于依据所述S及所述DN,选择所述音视频码流; 所述码流修改模块,包括:修改子模块,用于依据所述S及所述DN,修改所述音视频码流。
31.根据权利要求30所述的装置,其特征在于,所述修改子模块,包括: 第一修改单元,用于当所述S中的延迟模式为LD,且所述DN>DL时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ; 第二修改单元,用于当所述S中的延迟模式为FD,且DN>DF时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ; 第三修改单元,用于当所述S中的延迟模式为FD,且DN〈DF时,采用以下修改方法中的一种或多种:fsa、fc、fs、fea。
32.根据权利要求30所述的装置,其特征在于,所述选择子模块,包括:选择单元,用于当用户播放端改变播放码率时,依据该用户播放端的直播需求、当前总的传输延迟DN、当前选择的所述音视频码流的码率及用户播放端欲更改的码率,改变当前选择的所述音视频码流。

说明书全文

面向互联网视频直播的播放时刻控制方法及装置

技术领域

[0001] 本发明涉及互联网技术领域,具体而言,涉及面向互联网视频直播的播放时刻控制方法及装置。

背景技术

[0002] 视频直播,因其实时性,越来越成为互联网视频的重要形式,互联网视频直播可用于体育、新闻、教育、娱乐等多种业务。
[0003] 利用互联网进行视频直播,传输缓冲成为一个较为严重的制约因素,目前常见的互联网直播服务,其画面与传统的有线电视相比,通常会慢几秒乃至几分钟。
[0004]目前的视频直播优化工作较多关注于编码器端的低延迟编码、分发端实现尽快的数据转发,播放端的高性能、低延迟解码,但较少关注于传输缓冲出现后如何减少。
[0005] 在不少应用场景下,播放的延迟不是越低越好,而是需要不同用户终端在同一时刻看到的视频内容基本一致,即存在同步播放的需求。若无法实现同步播放,则在基于直播内容的用户竞猜时,每个用户看到的画面内容不同,将无法保证竞猜的公平性。
[0006] 而互联网的开放、分布式特定,决定了不同网络节点的接入带宽、传输拓扑都是不同的,自然其视频传输延迟也难于一致。目前尚未有公开的资料说明如何实现互联网视频直播的同步播放。
[0007] 同步播放这就意味着有时需要有延迟某个用户终端播放时刻的需要。采用暂停播放一段时间在继续播放的方法,可以实现延迟的增加,但用户体验较差。在保持音视频连续流畅播放的前提下,如何增大延迟,也是个新的课题。
[0008] 以上分析说明针对互联网的视频直播进行灵活的播放时刻控制,是一个有意义且新颖的课题。
[0009] 在互联网视频直播中进行播放时刻控制,也是一个具挑战性的课题:
[0010] 1、如果单纯的基于某一个分发端服务节点来进行传输环节的控制,无法解决因播放端解码能等因素导致的播放缓冲区增加。
[0011] 2、如果单纯基于播放端进行控制,则:通用的播放器,如flash player、1s内嵌播放器,所能支持和使用的调整手段有限,如果需要在客户端下载专的视频接收和处理插件,将降低用户接受度;同时这种方法也无法应对因网络带宽有限而导致的卡顿和时延增大等现象。
[0012] 3、互联网的开放性决定了其网络环境是动态的、难于预测的。有时为了低延迟,可以采用降低播放端缓冲区初始值的方法,但这样网络带宽不稳定时,则会导致视频播放频繁缓冲,反之为了保证流畅播放,加大缓冲区初始值,则网络较好时,缓冲区数据较为浪费,且会导致延迟较大。
[0013] 4、不同的终端类型、不同的传输协议,难于用同一种方法实现播放时刻控制,更难于实现终端之间的同步播放时刻控制。
[0014] 5、互联网直播目前较多采用分布式的⑶N架构,视频传输由编码器、源站、各级节点、用户播放端等多个环节构成,这更增加了对最终用户播放端的播放时刻控制的复杂度。
[0015] 6、播放时刻控制的调整应以保证用户体验为前提,应尽量避免或减少因调整而出现视频赛克、停顿、跳跃等现象。
[0016] 7、传统的调整手段较为单一,基本都是通过改变播放时间戳来进行的,这样做的问题在于:调整时间戳并未改变实际传输和播放的数据量,如果因为播放端解码能力有限或网络带宽受限,则无法达到播放时刻控制的目的。
[0017] 8、播放时刻控制还应适应目前在互联网上逐渐流行的多码率自适应协议,采用此类协议时,用户播放端可动态选择视频码率,同时视频数据通常采用分片下载而不是始终保持传输连接,这都为播放时刻控制带来了新的挑战。
[0018] 因此,现在急需一种面向互联网的、适应多种传输协议与播放终端的、分布式的视频直播的播放时刻控制方法。

发明内容

[0019] 本发明提供的面向互联网视频直播的播放时刻控制方法及装置,能够基于互联网视频直播需求对视频直播内容进行时刻控制。
[0020] 本发明实施例提供了一种面向互联网视频直播的播放时刻控制方法,主要处理步骤包括:
[0021] 步骤S1:获取视频直播内容的播放时刻调节策略S及视频直播内容的传输链路的传输状态ST,其中视频直播内容中包含一个或多个音视频码流;
[0022] 上述视频直播内容,包含一个或多个不同码率的音视频码流,其中音视频码流可以是一个音视频码流或是一个纯视频流或是一个纯音频流
[0023] 上述视频直播内容的传输链路的传输状态ST包含一个或多个传输节点内部数据缓冲,还包含一个或多个相邻传输节点之间的传输数据缓冲。其中,传输节点可以包含视频流媒体系统、分发系统、视频编码系统、用户播放系统等多种类型。一个视频直播内容,存在着多个不同的传输链路。
[0024] 步骤S2:依据S及ST,选择并修改传输的音视频码流。
[0025] 在S2执行中,依据服务端与用户播放端之间采用的视频传输协议,将数据进行封装处理并输出。更进一步:若数据已有某种封装格式,且与该传输协议不匹配,则将数据进行封装转换处理。
[0026] 本发明中,根据视频直播内容的播放时刻调节策略S及传输状态ST,从视频直播内容中选择音视频码流并进行修改,使用户播放端的视频直播内容的播放时刻延迟或提前,从而实现对用户播放端视频直播内容的直播时刻的控制。
[0027] 步骤S2中,选择并修改传输的音视频码流,包括:
[0028] 音视频流选择操作,其中,随播放请求的播放时间推移,从视频直播内容中选择相同或不同码率的音视频码流;
[0029] 本发明中,通过在播放过程中从视频直播内容中选择相同或不同的音视频码流,可在进行播放时刻控制的同时,提升用户的播放体验。例如:在某次播放过程中的某个时刻的网络传输带宽较低,引起客户端播放停顿和延迟增大,导致播放时刻不可控,则可选择一路比当前码流码率低的码流继续播放,从而可更快进行视频传输,使播放停顿的可能性降低,使播放时刻变得可控;
[0030] 音视频流修改操作,其中,对所述音视频码流,可以采用以下一种或多种数据修改方法进行修改:
[0031] 增大数据的时间戳的数据修改方法fsa ;
[0032] 减小数据的时间戳的数据修改方法fsd ;
[0033] 删除数据的数据修改方法fd ;
[0034] 复制数据的数据修改方法fc ;
[0035] 增加数据对应播放时间的重新转码的数据修改方法fea ;
[0036] 减少数据对应播放时间的重新转码的数据修改方法fed ;
[0037] 调整数据排序的数据修改方法fs。
[0038] 通过上述方法,可调整音视频码流的播放时刻,其中:
[0039] 使用fsa方法以增大数据的时间戳,从而增大该数据的播放时刻;
[0040] 使用fsd方法以减小数据的时间戳,从而减小该数据的播放时刻;
[0041] 使用fd方法删除数据,使可播放的数据减少,从而减小后续数据的播放时刻;
[0042] 使用fc方法复制数据,使可播放的数据增加,从而增大后续数据的播放时刻;
[0043] 使用fea方法重新转码并增加数据对应播放时间,从而增加后续数据的播放时刻;
[0044] 使用fed方法重新转码并减少数据对应播放时间,从而减小后续数据的播放时刻;
[0045] 使用fs方法对数据进行重新排序,以保持数据时间戳递增。
[0046] 对音视频码流进行修改时,所采用的修改方法在一个传输节点上实现,或在多个传输节点上分别实现修改的一部分。
[0047] 当用户播放端采用分片传输协议播放一个视频直播内容,且该用户播放端对该视频直播内容的分片数据获取请求所请求的分片数据,采用了所述音视频流修改操作时,该方法中还包括:记录当前分片数据获取请求所请求的分片数据的时间戳的修正幅度,并利用该修正幅度去修正同一用户播放端对同一个视频直播内容的后续分片数据获取请求所请求的分片数据的时间戳。
[0048] 用户播放端所采用的分片传输协议可以包括HLS、HDS及MPEG-DASH等传输协议。
[0049] 对于同一个用户播放端对同一个视频直播内容的分片数据获取请求,保证顺序的分片数据之间的时间戳是连续的。
[0050] 本发明实施例的时刻控制方法中,当接收到多个分片数据获取请求时,采用cookie或URL中包含的特定标记或HTTP协议中包含的特定标记或所述多个分片数据获取请求是否在一个HTTP Keep-Alive的长连接中来判断多个分片数据获取请求是否来自同一个用户播放端对同一个视频直播内容的分片数据获取请求。
[0051] 当用户播放端采用分片传输协议时,针对不同用户,采用与播放时刻调节策略S、传输状态ST相适应的分片策略,其中分片策略包括切片的起止位置及切片索引文件的构成。
[0052] 不同用户,为其设置不同的第一个切片的开始时间、切片时长,且后续的切片时长还依据S、ST动态调整。S要求的延迟较大时,切片时长可较大,S要求的延迟较小时,切片时长可较小。ST中用户端的数据缓冲较小时,可增加当前切片的时长。不同用户由此具有不同的切片索引文件。
[0053] 对于同一个视频直播内容,不同的用户播放端采用相同或不同的播放时刻调节策略S。
[0054] 在时刻调节策略S中包含视频直播内容的延迟模式,其中延迟模式为低延迟模式LD或同步延迟模式FD。
[0055] 延迟模式为LD时,在时刻调节策略S中包含延迟参量DL和/或CB,其中,所述DL为最低延迟,所述CB为用户播放端初始缓冲区大小。
[0056] 延迟模式为FD时,在时刻调节策略S中包含延迟参量DF,其中,所述DF为直播延迟所趋近的目标值。
[0057] 当直播需求为低延迟播放需求时,预测用户播放端的播放发生停顿的可能性;依据可能性的预测结果,对S中的延迟参量进行修改。
[0058] 本发明中,依据可能性的预测结果,对S中的延迟参量进行修改,可采用如下一种或多种方法的组合:
[0059] 判断可能性是否满足第一预设条件,其中第一预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件,如果是,则增加DL ;
[0060] 判断可能性是否满足第二预设条件,其中第二预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件,如果是,则降低DL ;
[0061] 判断可能性是否满足第三预设条件,其中第三预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件,如果是,则增加CB ;
[0062] 判断可能性是否满足第四预设条件,其中第四预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件,如果是,则降低CB。
[0063] 本发明中,判断用户播放端发生停顿的可能性是否满足第一预设条件,可以采用如下一种或几种方法的组合:
[0064] 判断在监测时间段内用户播放端的播放发生停顿的次数是否大于设定的第一数值;
[0065] 判断在监测时间段内用户播放端的播放发生停顿的次数的加权统计是否大于设定的第二数值,当前时刻与停顿时刻的差值越小,则权重越大;
[0066] 判断在监测时间段内用户播放端的缓冲区低于第一设定阈值的次数是否大于设定的第三数值;
[0067] 判断在监测时间段内用户播放端的缓冲区低于第二设定阈值的次数的加权统计是否大于设定的第四数值,当前时刻与用户播放端的缓冲区低于第二设定阈值的时刻的差值越小,则权重越大;
[0068] 判断在监测时间段内用户播放端的缓冲区平均数值是否低于设定的第五数值。
[0069] 本发明中,判断用户播放端发生停顿的可能性是否满足第二预设条件,可以采用如下一种或几种方法的组合:
[0070] 判断在监测时间段内用户播放端的播放发生停顿的次数是否小于设定的第六数值;
[0071] 判断在监测时间段内用户播放端的播放发生停顿的次数的加权统计是否小于设定的第七数值,当前时刻与停顿时刻的差值越小,则权重越大;
[0072] 判断在监测时间段内用户播放端的缓冲区低于第三设定阈值的次数是否小于设定的第八数值;
[0073] 判断在监测时间段内用户播放端的缓冲区低于第四设定阈值的次数的加权统计是否小于设定的第九数值,当前时刻与用户播放端的缓冲区低于第四设定阈值的时刻的差值越小,则权重越大;
[0074] 判断在监测时间段内用户播放端的缓冲区平均数值是否大于设定的第十数值。
[0075] 本发明中,判断用户播放端发生停顿的可能性是否满足第三预设条件,可以采用如下一种或几种方法的组合:
[0076] 判断在监测时间段内用户播放端的播放发生停顿的次数是否大于设定的第十一数值;
[0077] 判断在监测时间段内用户播放端的播放发生停顿的次数的加权统计是否大于设定的第十二数值,当前时刻与停顿时刻的差值越小,则权重越大;
[0078] 判断在监测时间段内用户播放端的缓冲区低于第五设定阈值的次数是否大于设定的第十三数值;
[0079] 判断在监测时间段内用户播放端的缓冲区低于第六设定阈值的次数的加权统计是否大于设定的第十四数值,当前时刻与用户播放端的缓冲区低于第六设定阈值的时刻的差值越小,则权重越大;
[0080] 判断在监测时间段内用户播放端的缓冲区平均数值是否低于设定的第十五数值。
[0081] 本发明中,判断用户播放端发生停顿的可能性是否满足第四预设条件,可以采用如下一种或几种方法的组合:
[0082] 判断在监测时间段内用户播放端的播放发生停顿的次数是否小于设定的第十六数值;
[0083] 判断在监测时间段内用户播放端的播放发生停顿的次数的加权统计是否小于设定的第十七数值,当前时刻与停顿时刻的差值越小,则权重越大;
[0084] 判断在监测时间段内用户播放端的缓冲区低于第七设定阈值的次数是否小于设定的第十八数值;
[0085] 判断在监测时间段内用户播放端的缓冲区低于第八设定阈值的次数的加权统计是否小于设定的第十九数值,当前时刻与用户播放端的缓冲区低于第八设定阈值的时刻的差值越小,则权重越大;
[0086] 判断在监测时间段内用户播放端的缓冲区平均数值是否大于设定的第二十数值。
[0087] 本发明中,依据S及ST,选择并修改传输的所述音视频码流,包括:
[0088] 依据所述ST确定当前传输的总延迟DN ;
[0089] 依据所述S及所述DN,选择所述音视频码流;
[0090] 依据所述S及所述DN,修改所述音视频码流。[0091 ] 其中,依据S及DN,修改音视频码流,包括:
[0092] 当S中的延迟模式为LD,且DN>DL时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ;
[0093] 当S中的延迟模式为FD,且DN>DF时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ;
[0094] 当S中的延迟模式为FD,且DN〈DF时,采用以下修改方法中的一种或多种:fsa、fc、fs、fea0
[0095] 依据S及DN,选择所述音视频码流,包括:当用户播放端改变播放码率时,依据该用户播放端的直播需求、当前总的传输延迟DN、当前选择的音视频码流的码率及用户播放端欲更改的码率,改变当前所选择的音视频码流。
[0096] 改变当前所选择的音视频码流,包括:当S中的延迟模式为LD且S包含最低延迟DL时,若DN〈 = DL,且在目标监测时间段内用户播放端停顿可能性小于预设的第一停顿阈值,且存在比Ox码率更高的O i,则令Ox= O i;当S中的延迟模式为FD时,若DN〈 = DF,且在目标监测时间段内用户播放端的停顿可能性小于预设的第二停顿阈值,且存在比当前(^码率更高的Oi,则令Ox= 01;当S中的延迟模式为LD时,若在目标监测时间段内用户播放端的停顿可能性大于或等于预设的第三停顿阈值,且存在比当前Ox码率更低的O i,则令Ox =01;当S中的延迟模式为FD时,若在目标监测时间段内用户播放端的停顿可能性大于或等于预设的第四停顿阈值,且存在比当前Ox码率更低的O i,则令Ox= O i;其中,O x为当前所选择的码流,OiS直播内容中的一个除O ,码流外的码流。
[0097] 播放端选择改变播放码率时:若播放端选择比当前播放码流的码率低的码流,则从视频直播内容中选择一个比当前音视频流Ox码率低的音视频流;若播放端选择比当前播放码流的码率高的码流,则从视频直播内容中选择一个比当前音视频流(^码率高的音视频流;若播放端给出所希望码率,则从视频直播内容中选择一个与的希望码率一致或接近的音视频流。
[0098] 上述步骤中,依据ST得到当前传输的延迟DN,可采用如下一种或多种方法的组合:
[0099] 通过缓存在传输节点内数据的时间戳差值获取传输节点内的数据传输延迟;
[0100] 将相邻节点间的传输通道内传输的数据量除以当前传输数据的平均带宽以获取相邻节点间的传输通道内的数据传输延迟。
[0101] 在步骤S2中,选择的音视频码流为不同码流,且采用了所述音视频流修改操作时,该方法还包括:记录当前音视频码流的时间戳修正幅度,并利用当前音视频码流的时间戳修正幅度去修正要选择的目标音视频码流的时间戳,由此使得音视频流选择操作前后的数据的时间戳是连续的。
[0102] 本发明采用fd修改方法对所述音视频码流进行修改时,fd修改方法可以包含如下一种或多种方法的组合:
[0103] 设置可连续删除的最大删除数据标记;
[0104] 设置两次连续删除数据之间的最小删除间隔标记;
[0105] 设置可开始删除数据的删除起始标记;
[0106] 设置可结束删除数据的删除结束标记;
[0107] 设置是否可删除视频数据的第一删除标记;
[0108] 设置是否可删除音频数据的第二删除标记;
[0109] 设置是否可删除音频数据、视频数据之外的其它数据的第三删除标记。
[0110] 其中,最大删除数据标记可包括下述一种或多种方式的组合,包括可连续删除数据的最大数据时间长度及可连续删除数据的最大数据量。
[0111] 最小删除间隔标记可包括下述一种或多种方式的组合:两次连续删除数据之间的最小数据时间长度以及两次连续删除数据之间的最小数据量。
[0112] 删除起始标记可包括下述一种或多种条件的组合:可开始删除数据的时间、可开始删除数据的数据类型。
[0113] 删除结束标记可包括下述一种或多种条件的组合:可结束删除数据的时间、可结束删除数据的数据类型。
[0114] 依据上述标记执行fd方法。
[0115] 本发明采用fc修改方法对所述音视频码流进行修改时,fc修改方法可以包含如下一种或多种方法的组合:
[0116] 设置可连续复制的最大复制数据标记;
[0117] 设置两次连续复制数据之间的最小复制间隔标记;
[0118] 设置可开始复制数据的复制起始标记;
[0119] 设置可结束复制数据的复制结束标记;
[0120] 设置是否可复制视频数据的第一复制标记;
[0121] 设置是否可复制音频数据的第二复制标记;
[0122] 设置是否可复制音频数据、视频数据之外的其它数据的第三复制标记。
[0123] 其中,最大复制数据标记可包括下述一种或多种方式的组合:可连续复制数据的最大数据时间长度及可连续复制数据的最大数据量。
[0124] 最小复制间隔标记可包括下述一种或多种方式的组合:两次连续复制数据之间的最小数据时间长度及两次连续复制数据之间的最小数据量。
[0125] 复制起始标记可包括下述一种或多种条件的组合:可开始复制数据的时间及可开始复制数据的数据类型。
[0126] 复制结束标记可包括下述一种或多种条件的组合:可结束复制数据的时间及可结束复制数据的数据类型。
[0127] 依据上述标记执行fc方法。
[0128] 本发明采用fea修改方法对所述音视频码流进行修改时,fea方法可以包含如下一种或多种方法的组合:
[0129] 对音视频码流中的音频数据进行转码,包括:对音频数据进行解码得到未压缩的音频数据;对未压缩的音频数据进行补零、复制、插值或利用N个音频采样数据构造N+Ma个音频采样数据的处理;对处理后的未压缩音频数据进行编码;
[0130] 对音视频码流中的视频数据进行转码,包括:对视频数据进行解码得到未压缩的视频数据;对未压缩的视频数据进行复制、线性或非线性插值构造插入帧、插入纯色帧或静态帧、插入循环帧序列、利用N帧视频数据来构造N+Mv帧视频数据的处理;对处理后的未压缩视频数据进行编码;[0131 ] 本发明中,采用fed修改方法对所述音视频码流进行修改时,fed修改方法可以包含如下一种或多种方法的组合:
[0132] 对音视频码流中的音频数据进行转码,包括:对音频数据进行解码得到未压缩的音频数据;对未压缩的音频数据进行删减或利用N个音频采样数据来构造N-Ma’个音频采样数据的处理;对处理后的未压缩音频数据进行编码;
[0133] 对音视频码流中的视频数据进行转码包括:对视频数据进行解码得到未压缩的视频数据;对未压缩的视频数据进行删减或利用N帧视频数据来构造N-Mv’帧视频数据的处理;对处理后的未压缩视频数据进行编码。
[0134] 本发明实施例中还提供了一种面向互联网视频直播的播放时刻控制装置,该装置包括:
[0135] 获取模,用于获取视频直播内容的播放时刻调节策略S及视频直播内容的传输链路的传输状态ST,其中视频直播内容中包含一个或多个音视频码流;
[0136] 选择修改模块,用于依据S及ST,选择并修改传输的音视频码流。
[0137] 选择修改模块,包括:选择模块,用于音视频流选择操作,其中,随播放请求的播放时间推移,从视频直播内容中选择相同或不同码率的音视频码流。
[0138] 选择修改模块,包括:码流修改模块,用于音视频流修改操作,其中,对音视频码流,采用以下一种或多种数据修改方法进行修改:
[0139] 增大数据的时间戳的数据修改方法fsa ;
[0140] 减小数据的时间戳的数据修改方法fsd ;[0141 ] 删除数据的数据修改方法fd ;
[0142] 复制数据的数据修改方法fc ;
[0143] 增加数据对应播放时间的重新转码的数据修改方法fea ;
[0144] 减少数据对应播放时间的重新转码的数据修改方法fed ;
[0145] 数据排序的数据修改方法fs。
[0146] 码流修改模块,包括:第一修正模块,用于当用户播放端采用分片传输协议播放一个视频直播内容,且该用户播放端对该视频直播内容的分片数据获取请求所请求的分片数据,采用了所述音视频流修改操作时,记录当前分片数据获取请求所请求的分片数据的时间戳的修正幅度,并利用该修正幅度去修正同一用户播放端对同一个视频直播内容的后续分片数据获取请求所请求的分片数据的时间戳。
[0147] 码流修改模块还包括:第一判断模块,用于当接收到多个分片数据获取请求时,采用cookie或URL中包含的特定标记或HTTP协议中包含的特定标记或所述多个分片数据获取请求是否在一个HTTP Keep-Alive的长连接中来判断多个分片数据获取请求是否来自同一个用户播放端对同一个视频直播内容的分片数据获取请求。
[0148] 选择模块,还用于当用户播放端采用分片传输协议时,针对不同用户,选择与播放时刻调节策略S、传输状态ST相适应的分片策略,其中分片策略包括切片的起止位置及切片索引文件的构成。
[0149] 获取模块,包括:延迟模式子模块,用于获取S中包含的视频直播内容的延迟模式,其中延迟模式为低延迟模式LD或同步延迟模式FD。
[0150] 延迟模式子模块,还用于延迟模式为LD时,获取S中包括的延迟参量:最低延迟DL和/或用户播放端初始缓冲区大小CB。[0151 ] 延迟模式子模块,还用于延迟模式为FD时,获取S中包含的延迟参量:直播延迟所趋近的目标值DF。
[0152] 选择修改模块还包括:延迟参量修改模块,用于当直播需求为低延迟播放需求时,预测用户播放端的播放发生停顿的可能性;依据可能性的预测结果,对S中的延迟参量进行修改。
[0153] 延迟参量修改模块,包括:
[0154] 第二判断模块,用于判断可能性是否满足第一预设条件,其中第一预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件;延迟参量修改子模块,用于当可能性满足第一预设条件时,增加DL ;
[0155] 第二判断模块,还用于判断可能性是否满足第二预设条件,其中第二预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件;延迟参量修改子模块,还用于,当可能性满足第二预设条件时,降低DL ;
[0156] 第二判断模块,还用于判断可能性是否满足第三预设条件,其中第三预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件;延迟参量修改子模块,还用于当可能性满足第三预设条件时,增加CB ;
[0157] 第二判断模块,还用于判断可能性是否满足第四预设条件,其中第四预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件;延迟参量修改子模块,还用于当可能性满足第四预设条件时,降低CB。
[0158] 选择修改模块,还包括:总延迟确定模块,用于依据ST确定当前传输的总延迟DN ;
[0159] 选择模块21,还包括:选择子模块,用于依据S及DN,选择所述音视频码流;
[0160] 码流修改模块22,还包括:修改子模块,用于依据S及DN,修改所述音视频码流。
[0161] 修改子模块,包括:第一修改单元、第二修改单元及第三修改单元,其中,第一修改单元,用于当S中的延迟模式为LD,且DN>DL时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ;
[0162] 第二修改单元,用于当S中的延迟模式为FD,且DN>DF时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ;
[0163] 第三修改单元,用于当S中的延迟模式为FD,且DN〈DF时,采用以下修改方法中的一种或多种:fsa、fc、fs、fea。
[0164] 选择子模块,包括:选择单元,用于当用户播放端改变播放码率时,依据该用户播放端的直播需求、当前总的传输延迟DN、当前选择的音视频码流的码率及用户播放端欲更改的码率,改变当前选择的音视频码流。
[0165] 本发明实施例提供的面向互联网视频直播的播放时刻控制方法及装置,依据视频直播内容的播放时刻调节策略S及传输链路的传输状态ST,从视频直播内容中选择音视频码流并进行修改,从而实现对视频直播内容播放时刻的控制。
[0166] 本发明实施例的该种播放时刻控制方法是一种面向互联网直播的动态全链路播放时刻控制方法,该方法采用动态和自适应的播放时刻控制机制,能够实现视频直播内容的低延迟和同步延迟等多种延迟控制;并且该方法支持互联网直播的多种主流协议,包括面向长连接的流传输协议和OTT业务中广泛采用的分片协议,并可和多码率技术相结合,在进行延迟控制的同时保证用户的收看体验。
[0167] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

[0168] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0169] 图1示出了本发明实施例中面向互联网视频直播的播放时刻控制方法的流程图
[0170] 图2示出了本发明实施例中面向互联网视频直播的播放时刻控制装置的一种结构示意图;
[0171] 图3示出了本发明实施例中面向互联网视频直播的播放时刻控制装置的另一种结构示意图。

具体实施方式

[0172] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0173] 本发明实施例提供了一种面向互联网视频直播的播放时刻控制方法,如图1所示,主要处理步骤包括:
[0174] 步骤SI:获取视频直播内容的播放时刻调节策略S及视频直播内容的传输链路的传输状态ST,其中视频直播内容中包含一个或多个音视频码流;
[0175] 上述视频直播内容,包含一个或多个不同码率的音视频码流,其中音视频码流可以是一个音视频码流或是一个纯视频流或是一个纯音频流。
[0176] 上述音视频码流可以根据实际需要进行配置。本发明中还进一步提供了音视频码流的一种具体编码参数配置方式,包括:音视频码流可采用H.264编码器,对一个输入源,配置为H.264的多码率编码输出模式,带宽分别为600Kbps、400Kbps和250Kbps,输出分辨率均设置为480*360。编码时,设置对同一内容的不同码流的视频帧类型与时间戳一致,关键帧最大间隔为2000msο
[0177] 上述视频直播内容的传输链路的传输状态ST包含一个或多个传输节点内部数据缓冲,还包含一个或多个相邻传输节点之间的传输数据缓冲。其中,传输节点可以包含视频流媒体系统、分发系统、视频编码系统、用户播放系统等多种类型。一个视频直播内容,存在着多个不同的传输链路。
[0178] 例如:用户播放终端为iphone5s或PC上的flash player,当用户访问一个⑶N系统获取视频直播内容的传输链路为:CDN包含两级传输节点:1个I级节点,多个2级节点。编码器向CDN的I级节点推送直播流,即视频码流首先进入I级节点,2级节点以“拉”模式从I级节点获取视频流。
[0179] 获取播放时刻调节策略S的方法,可采用预先设置的方式,或从播放端的访问请求中进行提取,如:播放端可在访问视频直播内容的URL中携带表示播放时刻调节策略的参数。
[0180] 步骤S2:依据S及ST,选择并修改传输的音视频码流。
[0181] 在S2执行中,依据服务端与用户播放端之间采用的视频传输协议,将数据进行封装处理并输出。更进一步:若数据已有某种封装格式,且与该传输协议不匹配,则将数据进行封装转换处理。
[0182] 本发明中,根据视频直播内容的播放时刻调节策略S及传输状态ST,从视频直播内容中选择音视频码流并进行修改,使用户播放端的视频直播内容的播放时刻延迟或提前,从而实现对用户播放端视频直播内容的直播时刻的控制。
[0183] 步骤S2中,选择并修改传输的音视频码流,包括:音视频流选择操作和音视频流修改操作。
[0184] 其中,音视频流选择操作包括随播放请求的播放时间推移,从视频直播内容中选择相同或不同码率的音视频码流;
[0185] 本发明中,通过在播放过程中从视频直播内容中选择相同或不同的音视频码流,可在进行播放时刻控制的同时,提升用户的播放体验。例如:在某次播放过程中的某个时刻的网络传输带宽较低,引起客户端播放停顿和延迟增大,导致播放时刻不可控,则可选择一路比当前码流码率低的码流继续播放,从而可更快进行视频传输,使播放停顿的可能性降低,使播放时刻变得可控;
[0186] 音视频流修改操作包括对所述音视频码流,可以采用以下一种或多种数据修改方法进行修改:
[0187] 增大数据的时间戳的数据修改方法fsa ;
[0188] 减小数据的时间戳的数据修改方法fsd ;
[0189] 删除数据的数据修改方法fd ;
[0190] 复制数据的数据修改方法fc ;
[0191] 增加数据对应播放时间的重新转码的数据修改方法fea ;
[0192] 减少数据对应播放时间的重新转码的数据修改方法fed ;
[0193] 调整数据排序的数据修改方法fs。
[0194] 通过上述方法,可调整音视频码流的播放时刻,其中:
[0195] 使用fsa方法以增大数据的时间戳,从而增大该数据的播放时刻;
[0196] 使用fsd方法以减小数据的时间戳,从而减小该数据的播放时刻;
[0197] 使用fd方法删除数据,使可播放的数据减少,从而减小后续数据的播放时刻;
[0198] 使用fc方法复制数据,使可播放的数据增加,从而增大后续数据的播放时刻;
[0199] 使用fea方法重新转码并增加数据对应播放时间,从而增加后续数据的播放时刻;
[0200] 使用fed方法重新转码并减少数据对应播放时间,从而减小后续数据的播放时刻;
[0201] 使用fs方法对数据进行重新排序,以保持数据时间戳递增。
[0202] 对所述音视频码流进行修改时,所采用的修改方法在一个传输节点上实现,或在多个传输节点上分别实现修改的一部分。
[0203] 当用户播放端采用分片传输协议播放一个视频直播内容,且该用户播放端对该视频直播内容的分片数据获取请求所请求的分片数据,采用了所述音视频流修改操作时,该方法中还包括:记录当前分片数据获取请求所请求的分片数据的时间戳的修正幅度,并利用该修正幅度去修正同一用户播放端对同一个视频直播内容的后续分片数据获取请求所请求的分片数据的时间戳。
[0204] 用户播放端所采用的分片传输协议可以包括HLS、HDS及MPEG-DASH等传输协议。
[0205] 对于同一个用户播放端对同一个视频直播内容的分片数据获取请求,保证顺序的分片数据之间的时间戳是连续的。
[0206] 本发明实施例的时刻控制方法中,当接收到多个分片数据获取请求时,采用cookie或URL中包含的特定标记或HTTP协议中包含的特定标记或所述多个分片数据获取请求是否在一个HTTP Keep-Alive的长连接中来判断多个分片数据获取请求是否来自同一个用户播放端对同一个视频直播内容的分片数据获取请求。
[0207] 用户利用iphone5s终端通过Safari浏览器,访问直播页面,直播页面采用HTML5video播放控件,包含I个指向⑶N2级节点的与该直播内容对应的m3u8地址,且该m3u8 地址包含 “ ? userid = testusera” 后缀,testusera 标识该终端。
[0208] M3u8所包含的TS切片的URL也将包含“ ? userid = testusera”后缀。
[0209] 接收后续m3u8和TS切片请求时,通过userid的value,可知道是哪一个终端发送的请求,进而得知用户的历史信息。
[0210] 当用户播放端采用分片传输协议时,针对不同用户,采用与播放时刻调节策略S、传输状态ST相适应的分片策略,其中分片策略包括切片的起止位置及切片索引文件的构成。
[0211] 不同用户,为其设置不同的第一个切片的开始时间、切片时长,且后续的切片时长还依据S、ST动态调整。S要求的延迟较大时,切片时长可较大,S要求的延迟较小时,切片时长可较小。ST中用户端的数据缓冲较小时,可增加当前切片的时长。不同用户由此具有不同的切片索引文件。
[0212] 对于同一个视频直播内容,不同的用户播放端采用相同或不同的播放时刻调节策略S。
[0213] 在时刻调节策略S中包含视频直播内容的延迟模式,其中延迟模式为低延迟模式LD或同步延迟模式FD。
[0214] 延迟模式为LD时,在时刻调节策略S中包含延迟参量DL和/或CB,其中,所述DL为最低延迟,所述CB为用户播放端初始缓冲区大小。
[0215] 延迟模式为FD时,在时刻调节策略S中包含延迟参量DF,其中,所述DF为直播延迟所趋近的目标值。
[0216] 当直播需求为低延迟播放需求时,预测用户播放端的播放发生停顿的可能性;依据可能性的预测结果,对S中的延迟参量进行修改。
[0217] 采用flash player作为用户播放端时,可通过设置NetStream类的bufferTime属性,实现对用户播放端的CB进行设置。
[0218] 本发明中,依据可能性的预测结果,对S中的延迟参量进行修改,可采用如下一种或多种方法的组合:
[0219] 判断可能性是否满足第一预设条件,其中第一预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件,如果是,则增加DL ;
[0220] 判断可能性是否满足第二预设条件,其中第二预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件,如果是,则降低DL ;
[0221] 判断可能性是否满足第三预设条件,其中第三预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件,如果是,则增加CB ;
[0222] 判断可能性是否满足第四预设条件,其中第四预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件,如果是,则降低CB。
[0223] 本发明中,判断用户播放端发生停顿的可能性是否满足第一预设条件,可以采用如下一种或几种方法的组合:
[0224] 判断在监测时间段内用户播放端的播放发生停顿的次数是否大于设定的第一数值;
[0225] 判断在监测时间段内用户播放端的播放发生停顿的次数的加权统计是否大于设定的第二数值,当前时刻与停顿时刻的差值越小,则权重越大;
[0226] 判断在监测时间段内用户播放端的缓冲区低于第一设定阈值的次数是否大于设定的第三数值;
[0227] 判断在监测时间段内用户播放端的缓冲区低于第二设定阈值的次数的加权统计是否大于设定的第四数值,当前时刻与用户播放端的缓冲区低于第二设定阈值的时刻的差值越小,则权重越大;
[0228] 判断在监测时间段内用户播放端的缓冲区平均数值是否低于设定的第五数值。
[0229] 本发明中,判断用户播放端发生停顿的可能性是否满足第二预设条件,可以采用如下一种或几种方法的组合:
[0230] 判断在监测时间段内用户播放端的播放发生停顿的次数是否小于设定的第六数值;
[0231] 判断在监测时间段内用户播放端的播放发生停顿的次数的加权统计是否小于设定的第七数值,当前时刻与停顿时刻的差值越小,则权重越大;
[0232] 判断在监测时间段内用户播放端的缓冲区低于第三设定阈值的次数是否小于设定的第八数值;
[0233] 判断在监测时间段内用户播放端的缓冲区低于第四设定阈值的次数的加权统计是否小于设定的第九数值,当前时刻与用户播放端的缓冲区低于第四设定阈值的时刻的差值越小,则权重越大;
[0234] 判断在监测时间段内用户播放端的缓冲区平均数值是否大于设定的第十数值。
[0235] 本发明中,判断用户播放端发生停顿的可能性是否满足第三预设条件,可以采用如下一种或几种方法的组合:
[0236] 判断在监测时间段内用户播放端的播放发生停顿的次数是否大于设定的第十一数值;
[0237] 判断在监测时间段内用户播放端的播放发生停顿的次数的加权统计是否大于设定的第十二数值,当前时刻与停顿时刻的差值越小,则权重越大;
[0238] 判断在监测时间段内用户播放端的缓冲区低于第五设定阈值的次数是否大于设定的第十三数值;
[0239] 判断在监测时间段内用户播放端的缓冲区低于第六设定阈值的次数的加权统计是否大于设定的第十四数值,当前时刻与用户播放端的缓冲区低于第六设定阈值的时刻的差值越小,则权重越大;
[0240] 判断在监测时间段内用户播放端的缓冲区平均数值是否低于设定的第十五数值。
[0241] 本发明中,判断用户播放端发生停顿的可能性是否满足第四预设条件,可以采用如下一种或几种方法的组合:
[0242] 判断在监测时间段内用户播放端的播放发生停顿的次数是否小于设定的第十六数值;
[0243] 判断在监测时间段内用户播放端的播放发生停顿的次数的加权统计是否小于设定的第十七数值,当前时刻与停顿时刻的差值越小,则权重越大;
[0244] 判断在监测时间段内用户播放端的缓冲区低于第七设定阈值的次数是否小于设定的第十八数值;
[0245] 判断在监测时间段内用户播放端的缓冲区低于第八设定阈值的次数的加权统计是否小于设定的第十九数值,当前时刻与用户播放端的缓冲区低于第八设定阈值的时刻的差值越小,则权重越大;
[0246] 判断在监测时间段内用户播放端的缓冲区平均数值是否大于设定的第二十数值。
[0247] 本发明中,依据S及ST,选择并修改传输的所述音视频码流,包括:
[0248] 依据所述ST确定当前传输的总延迟DN ;
[0249] 依据所述S及所述DN,选择所述音视频码流;
[0250] 依据所述S及所述DN,修改所述音视频码流。[0251 ] 其中,依据S及DN,修改音视频码流,包括:
[0252] 当S中的延迟模式为LD,且DN>DL时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ;
[0253] 当S中的延迟模式为FD,且DN>DF时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ;
[0254] 当S中的延迟模式为FD,且DN〈DF时,采用以下修改方法中的一种或多种:fsa、fc、fs、fea0
[0255] 依据S及DN,选择所述音视频码流,包括:当用户播放端改变播放码率时,依据该用户播放端的直播需求、当前总的传输延迟DN、当前选择的音视频码流的码率及用户播放端欲更改的码率,改变当前所选择的音视频码流。
[0256] 改变当前所选择的音视频码流,包括:当S中的延迟模式为LD且S包含最低延迟DL时,若DN〈 = DL,且在目标监测时间段内用户播放端停顿可能性小于预设的第一停顿阈值,且存在比Ox码率更高的O i,则令Ox= O i;当S中的延迟模式为FD时,若DN〈 = DF,且在目标监测时间段内用户播放端的停顿可能性小于预设的第二停顿阈值,且存在比当前(^码率更高的Oi,则令Ox= 01;当S中的延迟模式为LD时,若在目标监测时间段内用户播放端的停顿可能性大于或等于预设的第三停顿阈值,且存在比当前Ox码率更低的O i,则令Ox =01;当S中的延迟模式为FD时,若在目标监测时间段内用户播放端的停顿可能性大于或等于预设的第四停顿阈值,且存在比当前Ox码率更低的O i,则令Ox= O i;其中,O x为当前所选择的码流,OiS直播内容中的一个除ο ,码流外的码流。
[0257] 播放端选择改变播放码率时:若播放端选择比当前播放码流的码率低的码流,则从视频直播内容中选择一个比当前音视频流Ox码率低的音视频流;若播放端选择比当前播放码流的码率高的码流,则从视频直播内容中选择一个比当前音视频流(^码率高的音视频流;若播放端给出所希望码率,则从视频直播内容中选择一个与的希望码率一致或接近的音视频流。
[0258] 上述步骤中,依据ST得到当前传输的延迟DN,可采用如下一种或多种方法的组合:
[0259] 通过缓存在传输节点内数据的时间戳差值获取传输节点内的数据传输延迟;
[0260] 将相邻节点间的传输通道内传输的数据量除以当前传输数据的平均带宽以获取相邻节点间的传输通道内的数据传输延迟。
[0261] 在步骤S2中,选择的音视频码流为不同码流,且采用了所述音视频流修改操作时,该方法还包括:记录当前音视频码流的时间戳修正幅度,并利用当前音视频码流的时间戳修正幅度去修正要选择的目标音视频码流的时间戳,由此使得音视频流选择操作前后的数据的时间戳是连续的。
[0262] 本发明采用fd修改方法对所述音视频码流进行修改时,fd修改方法可以包含如下一种或多种方法的组合:
[0263] 设置可连续删除的最大删除数据标记;
[0264] 设置两次连续删除数据之间的最小删除间隔标记;
[0265] 设置可开始删除数据的删除起始标记;
[0266] 设置可结束删除数据的删除结束标记;
[0267] 设置是否可删除视频数据的第一删除标记;
[0268] 设置是否可删除音频数据的第二删除标记;
[0269] 设置是否可删除音频数据、视频数据之外的其它数据的第三删除标记。
[0270] 其中,最大删除数据标记可包括下述一种或多种方式的组合,包括可连续删除数据的最大数据时间长度及可连续删除数据的最大数据量。
[0271] 最小删除间隔标记可包括下述一种或多种方式的组合:两次连续删除数据之间的最小数据时间长度以及两次连续删除数据之间的最小数据量。
[0272] 删除起始标记可包括下述一种或多种条件的组合:
[0273] 可开始删除数据的时间,例如可从任意完整视频帧或音频数据包的开始删除数据;
[0274] 可开始删除数据的数据类型,例如可从视频关键帧的结束处开始删除数据。
[0275] 删除结束标记可包括下述一种或多种条件的组合:可结束删除数据的时间、可结束删除数据的数据类型。
[0276] 依据上述标记执行fd方法。
[0277] 本发明采用fc修改方法对所述音视频码流进行修改时,fc修改方法可以包含如下一种或多种方法的组合:
[0278] 设置可连续复制的最大复制数据标记;
[0279] 设置两次连续复制数据之间的最小复制间隔标记;
[0280] 设置可开始复制数据的复制起始标记;
[0281] 设置可结束复制数据的复制结束标记;
[0282] 设置是否可复制视频数据的第一复制标记;
[0283] 设置是否可复制音频数据的第二复制标记;
[0284] 设置是否可复制音频数据、视频数据之外的其它数据的第三复制标记。
[0285] 其中,最大复制数据标记可包括下述一种或多种方式的组合:可连续复制数据的最大数据时间长度及可连续复制数据的最大数据量。
[0286] 最小复制间隔标记可包括下述一种或多种方式的组合:两次连续复制数据之间的最小数据时间长度及两次连续复制数据之间的最小数据量。
[0287] 复制起始标记可包括下述一种或多种条件的组合:可开始复制数据的时间及可开始复制数据的数据类型。
[0288] 复制结束标记可包括下述一种或多种条件的组合:可结束复制数据的时间及可结束复制数据的数据类型。
[0289] 依据上述标记执行fc方法。
[0290] 本发明采用fea修改方法对所述音视频码流进行修改时,fea方法可以包含如下一种或多种方法的组合:
[0291] 对音视频码流中的音频数据进行转码,包括:对音频数据进行解码得到未压缩的音频数据;对未压缩的音频数据进行补零、复制、插值或利用N个音频采样数据构造N+Ma个音频采样数据的处理;对处理后的未压缩音频数据进行编码;
[0292] 对音视频码流中的视频数据进行转码,包括:对视频数据进行解码得到未压缩的视频数据;对未压缩的视频数据进行复制帧、线性或非线性插值构造插入帧、插入纯色帧或静态帧、插入循环帧序列、利用N帧视频数据来构造N+Mv帧视频数据的处理;对处理后的未压缩视频数据进行编码;
[0293] 本发明中,采用fed修改方法对所述音视频码流进行修改时,fed修改方法可以包含如下一种或多种方法的组合:
[0294] 对音视频码流中的音频数据进行转码,包括:对音频数据进行解码得到未压缩的音频数据;对未压缩的音频数据进行删减或利用N个音频采样数据来构造N-Ma’个音频采样数据的处理;对处理后的未压缩音频数据进行编码;
[0295] 对音视频码流中的视频数据进行转码,包括:对视频数据进行解码得到未压缩的视频数据;对未压缩的视频数据进行删减或利用N帧视频数据来构造N-Mv’帧视频数据的处理;对处理后的未压缩视频数据进行编码。
[0296] 在一实施例中,如果采用LD模式,用户终端为flash player,采用RTMP协议时,需要降低延迟时,可采用数据修改方法:fsd、fd, fs。
[0297] 在执行fsd时,可进一步采用如下方法:
[0298] 对一帧音频或视频数据,设置降低时间戳所导致的该帧数据对应的播放时长的最大降幅为dl,dl可为1ms ;
[0299] 在降低音频或视频数据时间戳时,设置降低后相邻的视频数据与音频数据之间的差值与原差值的最大偏差为d2,d2可为40ms。
[0300] 对于fd,可采用如下具体参数:
[0301] 设置可连续删除的最大数据标记时,可设置可连续删除的最大数据时间长度为1000ms,或设置可连续删除的最大数据量为10帧;
[0302] 设置两次连续删除数据之间的最小删除间隔标记时,可设置两次连续删除数据之间的最小数据时间长度为4000ms,或设置两次连续删除数据之间的最小数据量为40帧;
[0303] 设置可开始删除数据的删除起始标记时,可设置从任意完整视频帧或音频数据包的开始删除数据,或设置可从视频关键帧结束开始删除数据;
[0304] 设置可结束删除数据的删除结束标记时,可设置从任意完整视频帧或音频数据包的结束位置结束删除数据,或设置可从下一个视频关键帧之前结束删除数据;
[0305] 第一删除标记可设置为可删除视频数据;
[0306] 第二删除标记可设置为可删除音频数据;
[0307] 第三删除标记可设置不可删除音、视频之外的其他数据。
[0308] 对于f s,可采用如下具体方法:
[0309] 对音视频码流中的音频数据进行排序,以消除音频数据的时间戳非递增的情况;
[0310] 对音视频码流中的视频数据进行排序,以消除视频数据的时间戳非递增的情况。
[0311] 在一实施例中,如果采用LD模式,用户终端为iphone,采用HLS协议时,需要降低延迟时,可采用数据修改方法:fsd、fd、fs。
[0312] 在执行fsd时,可进一步采用如下方法:
[0313] 对一帧音频或视频数据,设置降低时间戳所导致的该帧数据对应的播放时长的最大降幅为d3,d3可为5ms ;
[0314] 在降低音频或视频数据时间戳时,设置降低后相邻的视频数据与音频数据之间的差值与原差值的最大偏差为d4,d4可为20ms。
[0315] 对于fd,可采用如下具体参数:
[0316] 设置可连续删除的最大数据标记时,可设置可连续删除的最大数据时间长度为100ms,或设置可连续删除的最大数据量为2帧;
[0317] 设置两次连续删除数据之间的最小删除间隔标记时,可设置两次连续删除数据之间的最小数据时间长度为4000ms,或设置两次连续删除数据之间的最小数据量为40帧;
[0318] 设置可开始删除数据的删除起始标记时,可设置从任意完整视频帧或音频数据包的开始删除数据,或设置可从视频关键帧结束开始删除数据;
[0319] 设置可结束删除数据的删除结束标记时,可设置从任意完整视频帧或音频数据包的结束位置结束删除数据,或设置可从下一个视频关键帧之前结束删除数据;
[0320] 第一删除标记可设置为可删除视频数据;
[0321] 第二删除标记可设置为可删除音频数据;
[0322] 第三删除标记可设置不可删除音、视频之外的其他数据。
[0323] 对于fs,具体方法为:
[0324] 对音视频码流中的音频及视频数据进行排序,解决音频与视频数据之间的交织情况;
[0325] 对音视频码流中的音频数据进行排序,以消除音频数据的时间戳非递增的情况;
[0326] 对音视频码流中的视频数据进行排序,以消除视频数据的时间戳非递增的情况。
[0327] 在一实施例中,如果采用FD模式,用户终端为flash player,采用RTMP协议时,需要增加延迟时,可采用数据修改方法:fsa及fs。
[0328] 在执行fsa时,可进一步采用如下方法:对一帧音频或视频数据,设置增加时间戳所导致的该帧数据对应的播放时长的最大增幅为al,al可为1ms ;在增加音频或视频数据时间戳时,设置增加后相邻的视频数据与音频数据之间的差值与原差值的最大偏差为a2,a2 可为 40ms ο
[0329] 对于fs,具体方法为:对音视频码流中的音频数据按时间戳排序,以消除音频数据的时间戳非递增的情况;对音视频码流中的视频数据按时间戳排序,以消除视频数据的时间戳非递增的情况。
[0330] 本发明实施例中还提供了一种面向互联网视频直播的播放时刻控制装置,如图2所示,该装置包括:
[0331] 获取模块1,用于获取视频直播内容的播放时刻调节策略S及视频直播内容的传输链路的传输状态ST,其中视频直播内容中包含一个或多个音视频码流;
[0332] 选择修改模块2,用于依据S及ST,选择并修改传输的音视频码流。
[0333] 选择修改模块2,包括:选择模块21,用于音视频流选择操作,其中,随播放请求的播放时间推移,从视频直播内容中选择相同或不同码率的音视频码流。
[0334] 选择修改模块2,包括:码流修改模块22,用于音视频流修改操作,其中,对音视频码流,采用以下一种或多种数据修改方法进行修改:
[0335] 增大数据的时间戳的数据修改方法fsa ;
[0336] 减小数据的时间戳的数据修改方法fsd ;
[0337] 删除数据的数据修改方法fd ;
[0338] 复制数据的数据修改方法fc ;
[0339] 增加数据对应播放时间的重新转码的数据修改方法fea ;
[0340] 减少数据对应播放时间的重新转码的数据修改方法fed ;
[0341] 数据排序的数据修改方法fs。
[0342] 码流修改模块22,包括:第一修正模块,用于当用户播放端采用分片传输协议播放一个视频直播内容,且该用户播放端对该视频直播内容的分片数据获取请求所请求的分片数据,采用了所述音视频流修改操作时,记录当前分片数据获取请求所请求的分片数据的时间戳的修正幅度,并利用该修正幅度去修正同一用户播放端对同一个视频直播内容的后续分片数据获取请求所请求的分片数据的时间戳。
[0343] 码流修改模块22还包括:第一判断模块,用于当接收到多个分片数据获取请求时,采用cookie或URL中包含的特定标记或HTTP协议中包含的特定标记或所述多个分片数据获取请求是否在一个HTTP Keep-Alive的长连接中来判断多个分片数据获取请求是否来自同一个用户播放端对同一个视频直播内容的分片数据获取请求。
[0344] 选择模块21,还用于当用户播放端采用分片传输协议时,针对不同用户,选择与播放时刻调节策略S、传输状态ST相适应的分片策略,其中分片策略包括切片的起止位置及切片索引文件的构成。
[0345] 获取模块1,包括:延迟模式子模块,用于获取S中包含的视频直播内容的延迟模式,其中延迟模式为低延迟模式LD或同步延迟模式FD。
[0346] 延迟模式子模块,还用于延迟模式为LD时,获取S中包括的延迟参量:最低延迟DL和/或用户播放端初始缓冲区大小CB。
[0347] 延迟模式子模块,还用于延迟模式为FD时,获取S中包含的延迟参量:直播延迟所趋近的目标值DF。
[0348] 选择修改模块2还包括:延迟参量修改模块23,用于当直播需求为低延迟播放需求时,预测用户播放端的播放发生停顿的可能性;依据可能性的预测结果,对S中的延迟参量进行修改。
[0349] 延迟参量修改模块23,包括:
[0350] 第二判断模块,用于判断可能性是否满足第一预设条件,其中第一预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件;延迟参量修改子模块,用于当可能性满足第一预设条件时,增加DL ;
[0351] 第二判断模块,还用于判断可能性是否满足第二预设条件,其中第二预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件;延迟参量修改子模块,还用于,当可能性满足第二预设条件时,降低DL ;
[0352] 第二判断模块,还用于判断可能性是否满足第三预设条件,其中第三预设条件为判断用户播放端发生停顿的可能性是否为大可能性的判断条件;延迟参量修改子模块,还用于当可能性满足第三预设条件时,增加CB ;
[0353] 第二判断模块,还用于判断可能性是否满足第四预设条件,其中第四预设条件为判断用户播放端发生停顿的可能性是否为小可能性的判断条件;延迟参量修改子模块,还用于当可能性满足第四预设条件时,降低CB。
[0354] 选择修改模块2,还包括:总延迟确定模块24,用于依据ST确定当前传输的总延迟DN ;
[0355] 选择模块21,还包括:选择子模块,用于依据S及DN,选择所述音视频码流;
[0356] 码流修改模块22,还包括:修改子模块,用于依据S及DN,修改所述音视频码流。
[0357] 修改子模块中包括:第一修改单元、第二修改单元及第三修改单元,其中,第一修改单元,用于当S中的延迟模式为LD,且DN>DL时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ;
[0358] 第二修改单元,用于当S中的延迟模式为FD,且DN>DF时,采用以下修改方法中的一种或多种:fsd、fd、fs、fed ;
[0359] 第三修改单元,用于当S中的延迟模式为FD,且DN〈DF时,采用以下修改方法中的一种或多种:fsa、fc、fs、fea。
[0360] 选择子模块中包括:选择单元,用于当用户播放端改变播放码率时,依据该用户播放端的直播需求、当前总的传输延迟DN、当前选择的音视频码流的码率及用户播放端欲更改的码率,改变当前选择的音视频码流。
[0361] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈