CN104967884B - 一种码流切换方法和装置 - Google Patents
一种码流切换方法和装置 Download PDFInfo
- Publication number
- CN104967884B CN104967884B CN201510185473.8A CN201510185473A CN104967884B CN 104967884 B CN104967884 B CN 104967884B CN 201510185473 A CN201510185473 A CN 201510185473A CN 104967884 B CN104967884 B CN 104967884B
- Authority
- CN
- China
- Prior art keywords
- code stream
- time
- threshold value
- decision
- actual optimum
- 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
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/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/23805—Controlling the feeding rate to the network, e.g. by controlling the video pump
-
- 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/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47217—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for controlling playback functions for recorded or on-demand content, e.g. using progress bars, mode or play-point indicators or bookmarks
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本发明实施例提供了一种码流切换方法和装置,其中所述方法包括:当上一视频播放完毕,连播目标视频时,或者,第一次启动播放器开始播放目标视频时,获取关键参数;基于所述关键参数决策出实际最优码流;当所述实际最优码流与当前播放码流不相同时,计算切换时机;在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流。本发明可以保证两码流无缝流畅切换,提高用户观看体验。
Description
技术领域
本发明涉及视频播放技术领域,特别是涉及一种码流切换方法和一种码流切换装置。
背景技术
流媒体(Streaming media)技术是指将一连串的多媒体数据压缩后,以流的形式进行多媒体数据的实时连续传输以供观赏的一种技术与过程。与传统的多媒体文件下载播放方式相比,流媒体最大的优势是用户只需将开始部分的数据下载到本地缓冲区就可以播放,边播边下载,从而实现连续播放。这种流式传输方式不仅使节目播放的启动时延大幅度缩短,而且也大大降低了对用户本地缓存空间的需求。
但由于互联网提供的是尽力而为的服务,无法提供QoS(Quality of Service,服务质量)保证,在流媒体播放过程中常会出现播放卡顿,视频质量剧烈抖动等不良情况,用户无法获得较好的观看体验。为了克服网络状况不确定所造成的影响,流媒体***需要自适应地调整传输策略,使流媒体数据传输过程与变化的网络环境相适应,从而使用户在当前网络条件下获得最佳的流媒体体验。
当前主流的自适应流媒体传输技术分为服务器端实现和客户端实现两种类型。其中,在服务器端实现的自适应流媒体传输中,使用最广泛的***大多基于RTP(real timetransport protocol,实时传输协议)和RTSP(real time streaming protocol,实时流传输协议),***首先通过HTTP获取流媒体信息及相关参数,然后运行RTSP建立客户端与流媒体服务器之间的通信,最后通过RTP传输多媒体数据。此类流媒体***以美国RealNetworks公司的Real System和微软公司的Windows Media最为典型。但服务器端实现自适应传输需要的信息较多,***的实现大多基于复杂的私有协议,这在一定程度上制约了该类流媒体技术的发展。
客户端实现自适应流媒体传输中,服务器存放有多种内容相同但码率不同的流媒体分片,播放时,客户端首先向服务器请求一个播放列表,播放列表中包含切片的基本信息,如切片持续时间,开始时间戳以及先后顺序等,客户端将根据播放列表按顺序下载流媒体切片,在每次向服务器请求下载分片之前,客户端都会进行网络状况检测,并根据当前网络状况和缓存情况适时地向服务器请求最合适的流媒体切片,每个分片的下载通过H TT P请求—响应来完成。在这种实现方式下,客户端和服务器之间的交互信息较少,***实现简单,不需要架设专门的流媒体服务器,此外,与RTP/RTSP相比,HTTP容易实现和维护,在穿越防火墙/NAT方面更具优势。
目前,基于HTTP的自适应流媒体技术已成为流媒体技术的发展趋势,HTTP自适应流媒体***众多,其中主流的***有Apple的HTTP Live Streaming、微软的SilverLightsmooth Streaming以及Adobe的HTTP Dynamic Streaming。一些国际标准组织也开展了基于HTTP的自适应流媒体技术的标准化工作,有影响力的标准有OIPF的HAS,MPEG的DASH,IETF的HTTP Live Streaming草案等。随着DASH等技术标准化工作的逐步实现,近年来学术界对该技术的相关研究也较多,相对于标准化组织关注技术过程中涉及的格式定义,更为关注技术应用的实际性能和优化方法。Christopher Muller等人分析了在真实网络场景下IIS Smooth Streaming,Live HTTP streaming和Dynamic Streaming客户端的表现,其通过观察不同客户端的请求媒体分片比特率和缓存状态发现Dynamic Streaming的自适应策略最为激进,媒体分片比特率变化最剧烈,缓存下溢次数最多,卡顿比高,IIS SmoothStreaming次之,Live HTTP streaming表现较为平稳。但这些技术方案都应用在特定平台,如Live HTTP streaming主要用在苹果ios***,且主要基于网络波动状况和播放缓冲区两个方面进行计算,决策最优码流的条件比较单一,并不能完全反映实际播放器的播放行为。
发明内容
本发明实施例所要解决的技术问题是提供一种码流切换方法,用以保证两码流无缝流畅切换,提高用户观看体验。
相应的,本发明实施例还提供了一种码流切换装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明公开了一种码流切换方法,所述方法包括:
当上一视频播放完毕,连播目标视频时,或者,第一次启动播放器开始播放目标视频时,获取关键参数;
基于所述关键参数决策出实际最优码流;
当所述实际最优码流与当前播放码流不相同时,计算切换时机;
在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流。
优选地,所述基于所述关键参数决策出实际最优码流的步骤包括:
从所述关键参数中选取多个关键参数,作为多个决策因子;
基于所述决策因子决策出实际最优码流。
优选地,所述关键参数至少包括:
(1)所述目标视频所支持的码流类型列表,所述码流类型列表包括多种类型的码流;
(2)当前播放器渲染区域大小;
(3)理论最优码流;
(4)当前播放缓冲区中已下载的视频数据的剩余播放时间;
(5)最近的第一预设时间段内,对每个单位时间对应的播放缓冲区中已下载的视频数据的剩余播放时间,进行曲线拟合,得到的拟合曲线;
(6)按照预设的码流判定标准,判断当前播放码流为高质量码流或低质量码流的判断结果;
(7)截止预设时间,当前播放码流判定为可切换的次数;
(8)预设的最高码流及最低码流限制范围;
(9)目标视频播放的卡顿次数;
(10)用户对目标视频拖到进度条至某个位置的拖动seek记录;
(11)当前目标视频的总切换次数;
(12)目标视频影片已使用的码流记录。
优选地,所述多种类型的码流包括码流等级,所述基于所述决策因子决策出实际最优码流的步骤包括:
基于所述决策因子设定N个决策条件,其中N为正整数;
若所述决策条件均满足对应的阈值标准,则将所述理论最优码流作为所述实际最优码流;
若任一决策条件不满足对应的阈值标准,则将所述理论最优码流对应的下一等级的码流作为所述实际最优码流,或者,将当前播放码流作为所述实际最优码流。
优选地,所述决策条件包括如下条件的部分或全部:
1)判断所述当前播放缓冲区中已下载的视频数据的剩余播放时间是否大于第一阈值,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
2)判断所述拟合曲线呈上升趋势还是下降趋势;若为上升趋势,则判定该决策条件满足阈值标准,若为下降趋势,则判定该决策条件不满足阈值标准;
3)根据所述当前播放码流为高质量码流或低质量码流的判断结果,调整各个决策条件的阈值标准;
4)判断所述当前播放码流判定为可切换的次数是否大于第二阈值,若是,则判定该决策条件满足阈值标准,若否,则继续累加所述可切换的次数,或者,将当前累加的可切换的次数归零;
5)判断所述理论最优码流是否在所述预设的最高码流及最低码流限制范围内,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
6)选取与当前播放器渲染区域大小适合的码流;
7)若所述卡顿次数大于第三阈值,则调整各个决策条件的阈值标准;
8)若所述拖动seek记录大于第四阈值,则调整各个决策条件的阈值标准;
9)判断所述目标视频的总切换次数是否大于第五阈值,若是,则判定该决策条件不满足阈值标准,若否,则判定该决策条件满足阈值标准;
10)根据已使用的码流记录,若某个码流存在时间低于第六阈值,则不选取所述码流作为实际最优码流。
优选地,所述理论最优码流按照如下方式获得:
分别计算所述多种类型的码流的质量值;
将所述质量值最大的码流作为理论最优码流。
优选地,采用如下公式分别计算所述多种类型的码流的质量值:
G[i]=Q[i]-p0[i]*cost[i]-costs*(i-current_bitstream_index);
其中,i表示码流的类型标识,G[i]表示码流的质量值,Q[i]表示各种类型的码流对应的预设初始质量值,cost[i]表示各种码流在播放时卡顿引起的预设第一质量损失值;costs表示两个码流切换引起的预设第二质量损失值;current_bitstream_index表示当前播放码流的预设索引值;p0[i]表示播放器缓冲区为空的概率。
优选地,所述目标视频包括多个逻辑分片;所述p0[i]采用如下方式获得:
基于当前的网络下载速度,分别估算所述各种类型的码流下载一个逻辑分片所需的下载时间,并定义下载w个逻辑分配所需的下载时间为t;
分别计算所述下载时间t对应的期望E(t);
采用如下公式计算p0[i]:
p0[i]=1-1/E(t)[i]*μ;
其中,E(t)[i]表示码流i的期望;μ表示解码器解码一个逻辑分片所需的解码时间的预设的期望。
优选地,所述当所述实际最优码流与当前播放码流不相同时,计算切换时机的步骤包括:
设定各种码流对应的预加载最小缓冲时间;
当所述实际最优码流与当前播放码流不相同时,则采用如下公式计算切换时机time:
time=(bs_rate_[result]*5000)/average_download_speed_+bs_min_buffer_time_[result]);
其中,bs_rate_[result]表示所述实际最优码流的码率,average_download_speed_为当前的平均网络下载速度,bs_min_buffer_time_[result]表示所述实际最优码流的预加载最小缓冲时间。
优选地,所述在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流的步骤包括:
计算所述切换时机的预设范围内的最优关键帧位置;
将所述最优关键帧位置减去所述实际最优码流的预加载最小缓冲时间,获得预加载位置;
当所述目标视频播放到所述预加载位置时,停止加载当前播放码流,开始加载所述实际最优码流;
当所述目标视频播放到所述最优关键帧位置时,将所述实际最优码流中与所述最优关键帧位置相同的关键帧发送至解码器。
本发明还公开了一种码流切换装置,所述装置包括:
关键参数获取模块,用于在上一视频播放完毕,连播目标视频时,或者,第一次启动播放器开始播放目标视频时,获取关键参数;
决策模块,用于基于所述关键参数决策出实际最优码流;
切换时机计算模块,用于当所述实际最优码流与当前播放码流不相同时,计算切换时机;
切换模块,用于在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流。
优选地,所述决策模块包括:
参数选取子模块,用于从所述关键参数中选取多个关键参数,作为多个决策因子;
决策子模块,用于基于所述决策因子决策出实际最优码流。
优选地,所述关键参数至少包括:
(1)所述目标视频所支持的码流类型列表,所述码流类型列表包括多种类型的码流;
(2)当前播放器渲染区域大小;
(3)理论最优码流;
(4)当前播放缓冲区中已下载的视频数据的剩余播放时间;
(5)最近的第一预设时间段内,对每个单位时间对应的播放缓冲区中已下载的视频数据的剩余播放时间,进行曲线拟合,得到的拟合曲线;
(6)按照预设的码流判定标准,判断当前播放码流为高质量码流或低质量码流的判断结果;
(7)截止预设时间,当前播放码流判定为可切换的次数;
(8)预设的最高码流及最低码流限制范围;
(9)目标视频播放的卡顿次数;
(10)用户对目标视频拖到进度条至某个位置的拖动seek记录;
(11)当前目标视频的总切换次数;
(12)目标视频影片已使用的码流记录。
优选地,所述多种类型的码流包括码流等级,所述决策子模块还用于:
基于所述决策因子设定N个决策条件,其中N为正整数;
若所述决策条件均满足对应的阈值标准,则将所述理论最优码流作为所述实际最优码流;
若任一决策条件不满足对应的阈值标准,则将所述理论最优码流对应的下一等级的码流作为所述实际最优码流,或者,将当前播放码流作为所述实际最优码流。
优选地,所述决策条件包括如下条件的部分或全部:
1)判断所述当前播放缓冲区中已下载的视频数据的剩余播放时间是否大于第一阈值,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
2)判断所述拟合曲线呈上升趋势还是下降趋势;若为上升趋势,则判定该决策条件满足阈值标准,若为下降趋势,则判定该决策条件不满足阈值标准;
3)根据所述当前播放码流为高质量码流或低质量码流的判断结果,调整各个决策条件的阈值标准;
4)判断所述当前播放码流判定为可切换的次数是否大于第二阈值,若是,则判定该决策条件满足阈值标准,若否,则继续累加所述可切换的次数,或者,将当前累加的可切换的次数归零;
5)判断所述理论最优码流是否在所述预设的最高码流及最低码流限制范围内,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
6)选取与当前播放器渲染区域大小适合的码流;
7)若所述卡顿次数大于第三阈值,则调整各个决策条件的阈值标准;
8)若所述拖动seek记录大于第四阈值,则调整各个决策条件的阈值标准;
9)判断所述目标视频的总切换次数是否大于第五阈值,若是,则判定该决策条件不满足阈值标准,若否,则判定该决策条件满足阈值标准;
10)根据已使用的码流记录,若某个码流存在时间低于第六阈值,则不选取所述码流作为实际最优码流。
16、根据权利要求13或14或15所述的装置,其特征在于,所述关键参数获取模块还用于:
分别计算所述多种类型的码流的质量值;
将所述质量值最大的码流作为理论最优码流。
优选地,采用如下公式分别计算所述多种类型的码流的质量值:
G[i]=Q[i]-p0[i]*cost[i]-costs*(i-current_bitstream_index);
其中,i表示码流的类型标识,G[i]表示码流的质量值,Q[i]表示各种类型的码流对应的预设初始质量值,cost[i]表示各种码流在播放时卡顿引起的预设第一质量损失值;costs表示两个码流切换引起的预设第二质量损失值;current_bitstream_index表示当前播放码流的预设索引值;p0[i]表示播放器缓冲区为空的概率。
优选地,所述目标视频包括多个逻辑分片;所述p0[i]采用如下方式获得:
基于当前的网络下载速度,分别估算所述各种类型的码流下载一个逻辑分片所需的下载时间,并定义下载w个逻辑分配所需的下载时间为t;
分别计算所述下载时间t对应的期望E(t);
采用如下公式计算p0[i]:
p0[i]=1-1/E(t)[i]*μ;
其中,E(t)[i]表示码流i的期望;μ表示解码器解码一个逻辑分片所需的解码时间的预设的期望。
优选地,所述切换时机计算模块包括:
缓冲时间设定子模块,用于设定各种码流对应的预加载最小缓冲时间;
计算子模块,用于在所述实际最优码流与当前播放码流不相同时,采用如下公式计算切换时机time:
time=(bs_rate_[result]*5000)/average_download_speed_+bs_min_buffer_time_[result]);
其中,bs_rate_[result]表示所述实际最优码流的码率,average_download_speed_为当前的平均网络下载速度,bs_min_buffer_time_[result]表示所述实际最优码流的预加载最小缓冲时间。
优选地,所述切换模块包括:
位置计算子模块,用于计算所述切换时机的预设范围内的最优关键帧位置;
预加载位置计算子模块,用于将所述最优关键帧位置减去所述实际最优码流的预加载最小缓冲时间,获得预加载位置;
预加载子模块,用于在所述目标视频播放到所述预加载位置时,停止加载当前播放码流,开始加载所述实际最优码流;
切换子模块,用于在所述目标视频播放到所述最优关键帧位置时,将所述实际最优码流中与所述最优关键帧位置相同的关键帧发送至解码器。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例根据关键参数决策出实际最优码流,并计算出合理的切换时机,在到达切换时机时进行码流切换,丰富了码流决策的条件,提高码流决策的准确性;
另外,本发明实施例计算切换实际,可以保证两码流无缝流畅切换,提高用户观看体验;
另外,本发明没有依赖HTTP自适应流媒体***的特定平台;
此外,本发明综合考虑多种关键参数以及多种决策条件,决策出实际最优码流,使得本发明能够兼顾视频清晰度并显著降低播放器卡顿比。
附图说明
图1是本发明的一种码流切换方法实施例的步骤流程图;
图2是本发明的一种码流切换方法实施例中的Ek/M/1排队***位相流图;
图3是本发明的一种码流切换方法实施例中的不同码流在相同网络情况时下载速度剧烈变化示意图;
图4是本发明的一种码流切换方法实施例中的各卡顿在各码流下分布结果图;
图5是本发明的一种码流切换方法实施例中的卡顿比影响示意图;
图6是本发明一种码流切换装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种码流切换方法实施例的步骤流程图,具体可以包括如下步骤:
步骤101,当上一视频播放完毕,连播目标视频时,或者,第一次启动播放器开始播放目标视频时,获取关键参数;
本发明实施例以目标视频的播放触发操作来启动,目标视频的播放触发操作可以包括:在上一视频播放完毕后,连播目标视频的触发操作,或者,用户第一次启动播放器时,播放目标视频的触发操作。该触发操作可以是用户点击目标视频以发出的对目标视频的http请求的操作。
本发明实施例的播放器周期性的检测对目标视频的播放触发操作,其中,周期性可以为间隔10秒检测一次、间隔20秒检测一次,等等。
需要说明的是,本发明实施例的视频可以包括电影影片。
当目标视频被播放触发操作触发后,播放器开始加载目标视频对应的默认码流,并开始解码默认码流,以及播放该默认码流。在这个过程中,播放器可以获取该目标视频的关键参数,根据关键参数自适应动态调整码流,其中,关键参数可以为播放器(客户端)能够获取的与目标视频相关的参数。
作为一种示例,关键参数至少可以包括如下参数:
(1)所述目标视频所支持的码流类型列表,所述码流类型列表包括多种类型的码流;
(2)当前播放器渲染区域大小;
(3)理论最优码流;
(4)当前播放缓冲区中已下载的视频数据的剩余播放时间;
(5)最近的第一预设时间段内,对每个单位时间对应的播放缓冲区中已下载的视频数据的剩余播放时间,进行曲线拟合,得到的拟合曲线;
(6)按照预设的码流判定标准,判断当前播放码流为高质量码流或低质量码流的判断结果;
(7)截止预设时间,当前播放码流判定为可切换的次数;
(8)预设的最高码流及最低码流限制范围;
(9)目标视频播放的卡顿次数;
(10)用户对目标视频拖到进度条至某个位置的拖动seek记录;
(11)当前目标视频的总切换次数;
(12)目标视频影片已使用的码流记录。
以下对各关键参数加以说明。
对于上述关键参数(1),在一种实施方式中,码流列表的获取过程可以为:播放器向视频服务器发出码流获取请求,以从视频服务器中获取目标视频能够支持的码流列表。具体来说,同一个视频在视频服务器中可以存在多种分辨率版本,比如同一部影片,在视频服务器上存储有BS_150(极速,分辨率为可达到320x640),BS_Standerd(标清,分辨率为720×576(PAL制式)或720×486(NTSC制式)),BS_High(高清,分辨率为1280×720以及1920×1080),BS_720p(分辨率为达到1280x720),BS_1080p(分辨率可达到1920x1080),BS_4K(超高清,分辨率可达4096x2160)等各种分辨率的版本。当视频服务器接收到播放器的请求以后,将存储的该目标视频的码流列表返回播放器。其中,码流是指视频文件在单位时间内使用的数据流量,是视频编码中画面质量控制中最重要的部分,同样分辨率下,视频文件的码流越大,压缩比就越小,画面质量就越好。
在视频服务器中,同一视频的分辨率等级越高画面质量越高,在网络状况允许条件下,目标视频所支持的码流的等级越高越好,保证流畅的情况下提高视频清晰度。
各种分辨率有对应的码流,播放器接收到码流列表后,得到目标视频所支持的各分辨率的实际码流,不存在的码流使用对应分辨率的参考码流。码流(Data Rate)是指视频文件在单位时间内使用的数据流量,也叫码率,一般用的单位是kbps即千位每秒。本发明实施例可以使用BS_150(极速),BS_Standerd(标清),BS_High(高清),BS_720p,BS_1080p,BS_4K等符号来表示各分辨率对应的码流。
对于上述关键参数(2),播放器还可以获取对目标视频的渲染窗口尺寸,并在播放窗口被改变时,自动更新相应的渲染窗口尺寸,以及,记录最大渲染窗口尺寸。例如,用播放器播放影片时,可以全屏播放,对应的渲染窗口尺寸可以为1920*1080,然后又将渲染尺寸缩小到800*600,过了一会儿又拉大到1024*768,等等,这些对播放窗口的操作都被播放器记录,同时记录用户自打开播放器以来的1920*1080为最大渲染窗口尺寸。
对于上述关键参数(3),理论最优码流为理想情况下的最优码流,该理论最优码流从多种类型的码流中选定。
理论最优码流的获取过程依赖Ek/M/1排队模型。以下对Ek/M/1排队模型加以说明。应用于本发明实施例,对播放器从服务器下载编码数据到播放缓冲区,以及解码器对缓冲区中数据进行解码提供给渲染器进行渲染显示的这一过程,可以采用Ek/M/1排队模型进行数学建模,根据Ek/M/1排队模型的稳态方程组计算此排队模型的目标参量,进一步求得理想状态下的理论最优码流。以下先对Ek/M/1排队模型的建立过程进行说明。
Ek/M/1排队模型的建立需要应用到多种数学理论知识,例如排队论、事件流、泊松(Poisson)流、负指数分布、爱尔兰分布,等等。首先对各种数学理论知识加以说明:
排队论(queuing theory):或称随机服务***理论,是通过对服务对象到来及服务时间的统计研究,得出这些数量指标(等待时间、排队长度、忙期长短等)的统计规律,然后根据这些规律来改进服务***的结构或重新组织被服务对象,使得服务***既能满足服务对象的需要,又能使机构的费用最经济或某些指标最优。排队论可以应用的场景如商场购物、图书馆借阅、汽车到加油站加油、船舶停靠码头、医院挂号看病、带修机器维修、视音频信号传送、有关数据存储到计算机、电话局电话呼叫转移等等。
事件流:将同类事件一个(批)个(批)随机地来到服务窗口要求服务的序列称作事件流,如电话局的呼叫流、计算机故障流、进站汽车等;这些事件均为随机变量,且顾客到达***的间隔时间与服务时间均为非负的,故它们还是非负的随机变量。
泊松(Poisson)流:最简单的事件流,它有如下特点:A、平稳性。在任何一段长度为t的时间区间内,出现任意数量事件的概率只与t有关,而与t所处的位置无关;B、无后效性(又称无记忆性或马尔可夫性),在无不相交的两个时间区间T1、T2内所出现的事件数是相互独立的;C、普通性。在同一瞬间,多于一个事件出现的概率可忽略不计。
负指数分布:当顾客流为泊松流时,用T表示两个相继顾客到达***的时间间隔,则T服从负指数分布。
爱尔兰分布:考察最简单事件流,记各事件到达***的时间间隔序列为T1,T2,…,且它们是同负指数分布的随机变量,则此事件流为爱尔兰随机流,记则T服从k阶爱尔兰分布。
Ek/M/1排队模型:又称Ek/M/1/∞/∞模型,表示顾客相继到达***的间隔时间服从负指数分布,服务时间也服从负指数分布,***内设有1个服务窗,***容量为无限(充分大即可)的等待制排队模型。
以下介绍Ek/M/1排队模型的建立过程:
本发明实施例的目标视频包括多个逻辑分片,其中,逻辑分片为逻辑上的分片,并非实际存在的分片,是对当前目标视频以每单位时间数据进行的逻辑分片。例如,一部100MB的影片,播放总时长为1000秒,如果以1秒为单位进行逻辑分片,那么每个逻辑分片的大小是100MB/1000=0.1MB。
每个逻辑分片即为排队***的顾客;播放器不断下载目标视频的视频数据到缓冲区,即为排队***的中顾客达到事件流;解码器根据视频数据码率解码,即为排队***中的服务台;一个播放器只有一个解码器一帧一帧的进行解码,即为排队***中的服务事件流;缓冲区存储从网上下载来的待解码视频数据,即为排队***中排队等候服务的顾客队列。
在通常的网络条件下,一个逻辑分片的传输时间可以以某个均值为中心随机波动,视频数据传输有一定相关性,无记忆性不显著,爱尔兰分布能更好地对现实数据进行拟合,更适用于多个串行过程或无记忆性不显著的情况下,故这里采用爱尔兰分布(Ek)模拟逻辑分片的下载时间流。目标视频中视频场景变化频繁与缓慢、物体运动剧烈强弱等决定视频压缩编码数据在解码时每一秒的码率随机变动,基本是个泊松流,同样大小的编码数据的解码时间可采用负指数分布(M)进行模拟,一个播放器只有一个解码器,即只有一个服务台,正常情况下,用户完整观看目标视频,加载的数据不会丢掉,即顾客不会离开,是个无限等待制,同时视频服务器的片源可认为是无限大,即有无限个顾客,即有个无限客户源。
将爱尔兰分布的顾客到达时间看作是k个相互独立的负指数分布的时间段之和,则每个负指数分布的时间段视作一个“位相”,由爱尔兰分布的定义可知,下一个顾客通过一个相位所需的时间是负指数分布,具有无记忆性。
若***内已有n位顾客,而第n+1位顾客在未进入***前的可能位相是t1,t2,…,tk;所以,***中顾客数的平稳分布为:
对应的Ek/M/1排队***位相流图如图2所示。由图2的位相流图可在平衡条件下写出Kolmogorv-Chapman(K-C)方程:
其中,
令ρ=λ/μ,结合K-C方程可有:
由代数知识可证,当ρ<1时,P(s)的分母有一根为s1=0,另一个为s0,满足|s0|>1,其余k-1个根必在单位圆内。当|s|<=1时,P(s)是收敛的,故P(s)的分子分母在单位圆内内核单位圆上同根。在单位圆上只有一个根s=1,从而有:
从而有:
因P(1)=1,令s↑1,就有代入上式,得到:
又因s0是P(s)分母式的一个根,即:
于是:
可得相位的平稳分布:
从而可得***内顾客数的平稳分布:
由此可求出相应的目标参量:
a、***的平均队长:
b、顾客在***中的逗留时间
基于以上建立的Ek/M/1排队模型,在本发明实施例的一种优选实施例中,理论最优码流可以按照如下方式获得:
子步骤S11,分别计算所述多种类型的码流的质量值;
具体而言,码流的质量值可以为码流最终观感质量。在一种实施方式中,可以采用如下公式分别计算多种类型的码流的质量值:
G[i]=Q[i]-p0[i]*cost[i]-costs*(i-current_bitstream_index);
其中,i表示码流的类型标识,Q[i]、cost[i]、costs及current_bitstream_index均为预设值,并且为经验值;G[i]表示码流的质量值,Q[i]表示各种类型的码流对应的预设初始质量值,即初始用户观感度;cost[i]表示各种码流在播放时卡顿引起的预设第一质量损失值,即卡顿引起的用户观感度损失值;costs表示两个码流切换引起的预设第二质量损失值,即两个码流切换引起的用户观感度损失值,且两个码流跨度越大,损失越大;current_bitstream_index表示当前播放码流的预设索引值,是编码时设定的索引值,例如BS_150对应的索引值为1、BS_Standerd对应的索引值为2、BS_High对应的索引值为3、BS_Super对应的索引值为4、BS_720p对应的索引值为5、BS_1080p对应的索引值为6、BS_4K对应的索引值为7,等等。
p0[i]表示播放器缓冲区为空的概率,或称下溢概率,在一种实施方式中,p0[i]可以采用如下方式获得:
1)基于当前的网络下载速度,分别估算所述各种类型的码流下载一个逻辑分片所需的下载时间,并定义下载w个逻辑分配所需的下载时间为t;
为保证统计的下载速度准确性,本发明实施例中的网络下载速度已过滤掉异常下载速度,异常下载速度可以如某次下载速度与前后下载速度差距极大的情况,过滤掉网速速度的短时间内的剧烈变化,可以防止短时间的频繁码流切换。
在具体实现中,可以基于当前的下载速度,估算下载一个逻辑分配所需的下载时间,并基于该一个逻辑分配的下载时间,计算W个逻辑分片的下载时间t。
2)分别计算所述下载时间t对应的期望E(t);
得到各码流对于每个逻辑分片的下载时间t以后,可以进一步计算下载时间t的期望E(t)。
需要说明的是,在下载时间t的期望E(t)的同时,还可以计算下载时间t的方差D(t)。
3)采用如下公式计算p0[i]:
p0[i]=1-1/E(t)[i]*μ;
其中,E(t)[i]表示码流i的期望;μ表示解码器解码一个逻辑分片所需的解码时间的预设的期望。
具体而言,根据k阶爱尔兰分布的期望和方差公式:
结合上述得到的期望和方差,求得:
根据建立的Ek/M/1排队模型的平稳分布,目标参量的求解公式可知,关键是求方程的唯一单位圆外的解S0,对求实系数n次多项式方程的全部根,采用QR方法,将求方程全部根的问题转变成求矩阵的全部特征值的问题,且此矩阵是上H矩阵(赫什伯格矩阵),然后从全部特征值中选取大于1的这个解,即为S0,又ρ=λ/μ,且μ是排队模型中播放器解码逻辑分片事件流即负指数分布的期望,这里将逻辑分片设置为单位时间(1秒)的未解码数据,也就是对应码流的码率,可知解码器的服务率μ=1,再由平均队长公式求出Ls;由Ek/M/1排队模型的平稳分布公式,可知播放器缓冲区为空的概率p0=1-ρ。结合上述公式,综合可得到公式p0[i]=1-1/E(t)[i]*μ。
子步骤S12,将所述质量值最大的码流作为理论最优码流。
上述求得的各个码流的G[i]后,将最大的G[i],即最终观感质量最大者作为理想情况下的理论最优码流。
在具体实现中,因一个用户的网络速度一般变化不是很大,本发明还可以自动更新默认码流为计算出的理想情况下的理论最优码流,用于视频连播时预加载下一视频时用的默认码流。播放器被关闭时,计算所得的理论最优码流被保存在本地,播放器下次启动时,作为视频默认加载的码流。
采用理论最优码流而不是实际最优码流(实际最优码流将在下文中介绍)是因为当前影片的码流并不一定存在BS_150~BS_4K的所***流,理想情况下的理论最优码流是根据网速计算所得的最优码流,做默认的初始码流最为合适,并且采用上次观看视频时计算出的理论最优码流可有效减少播放器启动一段时间的卡顿。
对于上述关键参数(4),当前播放缓冲区中已下载的视频数据的剩余播放时间为,播放缓冲区中,已加载的当前播放码流(即开始视频数据加载时的默认码流)的剩余播放时间,即播放缓冲区中还有多少已下载码流未播。例如,该剩余播放时间可以为10秒,20秒等。
对于上述关键参数(5),为表征播放缓冲区中的数据变化,可以对最近的第一预设时间段(第一预设时间段可以用缓冲窗口buffer_time_window_表示,例如,最近的第一预设时间段为前30秒,则buffer_time_window_的值为30)内,播放缓冲区中每个单位时间(例如1秒)的已下载的视频数据的剩余播放时间进行记录,即记录最近buffer_time_window_内的播放缓冲区中剩余播放时间,并对记录的剩余播放时间进行曲线拟合(curvefitting),得到的拟合曲线。
曲线拟合是指选择适当的曲线类型来拟合观测数据,并用拟合的曲线方程分析两变量间的关系,在具体实现中,可以采用最小二乘法进行曲线拟合。其中,按偏差平方和最小的原则选取拟合曲线,并且采取二项式方程为拟合曲线的方法,称为最小二乘法。
需要说明的是,buffer_time_window_值越小越敏感,但拟合曲线误差越大;buffer_time_window_值越大越迟钝,但线性拟合曲线越能正确反映缓冲区数据的变化方向。
由于用户seek操作(用户拖动进度条到目标视频的某个时间点的操作)会打断当前播放器的视频数据下载,或者,播放器停止下载数据时,对播放缓冲区的剩余播放时间造成极大的影响,进而影响曲线拟合的准确性,因此,用户seek操作时或者播放器停止下载数据时,本发明实施例可以清空buffer_time_window_,重新开始记录。
对于上述关键参数(6),本发明实施例可以从多种码流中选择一种码流作为码流判定标准,例如选取BS_High码流作为码流判定标准,以BS_High为界,将BS_High高的码流作为高质量码流,将BS_High低的码流作为高质量码流。
对于上述关键参数(7),在具体实现中,判断是否需要进行码流切换,并不只是一次判段的结果,而是多次判断结果的累加,例如,第一次判定当前码流可切换时,可切换的次数记为1,下一次判定当前码流可切换时,可切换的次数记为2,等等,以此类推,直到可切换的次数达到第二阈值,才进行一次切换。
对于上述关键参数(8),视频服务器和/或播放器可以设定可切换的码流的范围,即设定最高码流及最低码流的限制范围。
对于上述关键参数(9),卡顿次数为当前码流播放目标视频的截至目前的卡顿次数,卡顿一次,卡顿次数增加1。
对于上述关键参数(10),seek操作是用户拖动进度条到影片的某个时间点的操作,检测用户对目标视频的seek操作,统计截止目前的seek操作次数。
对于上述关键参数(11),目标视频的总切换次数可以目前为止,目标视频切换的次数累加。
在具体实现中,可设置码流切换频率,即最小切换(包括上切换及下切换,上切换为切换至比当前播放码流高一级的码流,下切换为切换至比当前播放码流低一级的码流)间隔时间,以此控制视频切换的次数。例如,结合当前播放影片的总时长,将下切换的最短时间间隔控制在60秒~300秒,将上切换的最短时间间隔控制在300秒~600秒,从而控制一部影片的总切换次数。
对于上述关键参数(12),目标视频在播放过程中可以使用多种类型的码流,播放器可以对已使用的码流进行记录。
步骤102,基于所述关键参数决策出实际最优码流;
播放器获取目标视频的关键参数以后,可以根据关键参数决策出实际最优码流,实际最优码流与上述理论最优码流并不一定相同,理由如下:基于Ek/M/1排队模型计算的理想情况下的理论最优码流计算只考虑到网络下载速度(即网速),且对网速的准确度要求很高时结果才可信,同时排队模型中理想情况中没有像用户seek操作等对整个排队模型的平稳过程的破坏,故理论最优码流只是理想情况下的最优码流,单一靠Ek/M/1排队模型得到的结果并不十分可靠。在具体实现中,需要综合考虑多种决策条件来决策出实际最优码流。
在本发明实施例的一种优选实施例中,步骤102可以包括如下子步骤:
子步骤S21,从所述关键参数中选取多个关键参数,作为多个决策因子;
在具体实现中,可以将上述的关键参数都作为决策因子,或者从上述关键参数中选取部分关键参数作为决策因子。
子步骤S22,基于所述决策因子决策出实际最优码流。选取多个决策因子以后,可以根据决策因子决策出实际最优码流。在本发明实施例的一种优选实施例中,子步骤S22进一步可以包括如下子步骤:
子步骤S221,基于所述决策因子设定N个决策条件,其中N为正整数;
决策条件为确定实际最优码流需要满足的条件。作为一种示例,决策条件可以包括如下条件的部分或全部:
1)判断所述当前播放缓冲区中已下载的视频数据的剩余播放时间是否大于第一阈值,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
其中,第一阈值是理论最优码流对应的剩余播放时间阈值,例如,当前播放高清影片,网络速度比较好,经过Ek/M/1排队模型计算得出理论最优码流是720p,即当前的网速可以满足720p码流的正常播放,但如果此时播放缓冲区已下载的视频数据的剩余播放时间很少,如只有10秒(小于720p预先设定的20秒),此时切换720p的码流造成卡顿的几率会很大,因此最终可以判定该决策条件不满足阈值标准。如果此时播放缓冲区已下载的视频数据的剩余播放时间足够多(大于720p预先设定的20秒),则判定该决策条件满足阈值标准。
2)判断所述拟合曲线呈上升趋势还是下降趋势;若为上升趋势,则判定该决策条件满足阈值标准,若为下降趋势,则判定该决策条件不满足阈值标准;
拟合的曲线为上升趋势或下降趋势可以通过该曲线的斜率来判定,如果斜率<0,说明缓冲区中的数据有减少趋势,否则,说明缓冲区中的数据有增长趋势。
斜率的计算可以采用公式y=ax+b,其中,x为单位时间,y为该单位时间内播放缓冲区中已下载的视频数据的剩余播放时间,a为斜率,b为修正值。可以根据x、y的值,求得a的值以及b的值。当a<0,说明缓冲区中的数据有减少趋势,否则,说明缓冲区中的数据有增长趋势。
3)根据所述当前播放码流为高质量码流或低质量码流的判断结果,调整各个决策条件的阈值标准;
当判定当前码流为高质量码流或低质量码流后,可根据判断结果,自适应调整各个决策条件的阈值标准,其中,各个决策条件的阈值标准为增加或减少关键参数的阈值。例如,若当前码流为高质量码流,如BS_720P,判定要向上切换到BS_1080p时用的关键参数将会比正常值要严格;若当前码流为低质量码流,如BS_150,则上切换到更高的码流时用的关键参数比正常值要宽松。因为当前播放的码流是高质量码流时,用户观感已经很好,除非网速条件非常好,才会向上切换到更高质量的码流上,如果当前播放的是低质量的码流,网速情况有好转时就可以切换到高级别的码流上。
在本发明实施例中,关键参数的选取和其阈值的设置需要结合播放器迭代进行实际测试,选取适合的关键参数和最优阈值。
4)判断所述当前播放码流判定为可切换的次数是否大于第二阈值,若是,则判定该决策条件满足阈值标准,若否,则继续累加所述可切换的次数,或者,将当前累加的可切换的次数归零继续累加所述可切换的次数,或者,将当前累加的可切换的次数归零;
当前播放码流判定为可切换即理论最优码流为可切换码流。当可切换的次数达到第二阈值时,例如,当前播放码流是BS_High,第二阈值设定为10次,连续10次计算的理论最优码流都是BS_720p,则决策条件4)满足阈值标准,否则,不满足本条件,决策结果就是无需切换。比如目前8次计算的理论最优码流是BS_720p,第9次计算的最优码流是BS_Hig,则判定BS_720p为可切换码流的统计次数归零,从新开始累加。
5)判断所述理论最优码流是否在所述预设的最高码流及最低码流限制范围内,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
6)选取与当前播放器渲染区域大小适合的码流;
例如,若最优码流为高质量码流,但当前播放器渲染窗口很小,无需很高的码流即可清晰观看,即使下载速度很快,也不必切换到高质量码流,以此节省用户的流量。
7)若所述卡顿次数大于第三阈值,则调整各个决策条件的阈值标准;
例如,如果卡顿次数很多,说明自适应码流计算过程中上调码流的关键参数阈值不合理,可适当扩大这些阈值,将上切换的标准提高。
8)若所述拖动seek记录大于第四阈值,则调整各个决策条件的阈值标准;
用户的seek操作会对影片预加载产生影响,比如用户seek到没有预加载的位置,播放器需要重新从该时间点加载数据,以前缓冲的数据会作废,若seek操作次数很多,自适应码流计算过程中用的关键参数阈值将不在完全适合,可适当扩大这些阈值,将计算最优码流的标准提高。
9)判断所述目标视频的总切换次数是否大于第五阈值,若是,则判定该决策条件不满足阈值标准,若否,则判定该决策条件满足阈值标准;
若记录的目标视频的总切换次数是否大于第五阈值,说明目标视频已经频繁切换码流,此时该决策条件不满足阈值标准。否则,决策条件满足阈值标准。
10)根据已使用的码流记录,若某个码流存在时间低于第六阈值,则不选取所述码流作为实际最优码流。
决策因子(10)可以应用于特殊情况,如图3所示,在测试期间发现的情况,码流在BS_150和BS_720被频繁切换,原因是同一影片在相同的网络状况下,采用BS_150码流时下载速度很快,切换到BS_720后下载速度急剧下降,且一直持续,被切换到BS_150后,网速变正常,又被切换到BS_720下载速度急剧下降,…..反复多次。这种情况并不多见,但也会存在,因此本发明实施例加入对影片使用的码流和码流存在时间的记录,决策时,若发现以前使用的某个码流存在时间很短,说明并不适合切换到这种码流。
子步骤S222,若所述决策条件均满足对应的阈值标准,则将所述理论最优码流作为所述实际最优码流;
子步骤S223,若任一决策条件不满足对应的阈值标准,则将所述理论最优码流对应的下一等级的码流作为所述实际最优码流,或者,将当前播放码流作为所述实际最优码流。例如当前播放的码流是BS_Standard,用户网速逐渐变好,自适应码流模块计算出的理论最优码流为BS_720p,但根据该影片播放过的码流存在列表发现,该影片在BS_720p码流存在时间过短,不适宜再次播放BS_720p的码流,这时可以下调一个等级,即BS_High,作为决策出的实际最优码流,如果该影片的BS_High片源不存在,则当前播放的码流就是实际最优码流。还有一种情况就是当前播放的码流就是BS_High,计算出来的理论最优码流是BS_720p,出现上述类似情况时,下调一个等级正好就是当前播放的码流。
当设定决策条件后,当决策条件都满足要求时,才将理论最优码流作为实际最优码流,若并不是所有决策条件都满足要求,则可以综合参考其他决策条件将实际最优码流调低到理论最优码流的下一级码流,或者,将当前播放码流作为实际最优码流。
例如,当前播放高清影片,网络速度比较好,经过Ek/M/1排队模型计算得出理论最优播放码流是720p,即当前的网速可以满足720p码流的正常播放。设定的决策条件有上述(1)、(2)及(9),如果此时播放缓冲区剩余的缓冲数据很少,如只有10秒(小于预设的20秒),此时切换720p的码流造成卡顿的几率会很大,不满足决策条件(1),最终决策的实际最优码流为当前播放码流;如果缓冲区的数据足够多(大于预设的20秒),即满足决策条件(1)时,而若根据播放缓冲区的剩余播放时间进行线性拟合后得到的拟合曲线有减少趋势,不满足决策条件(2),最终决策的实际最优码流也为当前播放码流;如果缓冲区数据足够多(满足决策因子(1)),且拟合曲线有逐渐增加趋势(满足决策因子(2)),若判断本部影片的切换次数是否超过了第五阈值,如果超过(不满足决策因子(4)),则最终决策的实际最优码流也为当前播放码流;如果没有超过(满足决策因子(4)),则最终决策的实际最优码流也为理论最优码流。
步骤103,当所述实际最优码流与当前播放码流不相同时,计算切换时机;
实际最优码流与当前播放码流不相同,说明需要对当前播放码流进行切换,切换为实际最优码流,此时,本发明实施例可以计算切换时机,以保证两个码流的无缝切换。在本发明实施例的一种优选实施例中,步骤103可以包括如下子步骤:
子步骤S31,设定各种码流对应的预加载最小缓冲时间;
切换时机的计算直接影响码流切换的流畅性,要使两码流无缝切换,提高用户观看体验,不但需要服务器上两个码流关键帧对齐,音频音轨对齐,还需要客户端切换码流时保证要切换到的码流(最优码流)数据被预先加载。因此,本发明实施例设定各种码流对应的预加载最小缓冲时间,该预加载最小缓冲时间的选取,可以根据不同码流选取不同的时间。
子步骤S32,当所述实际最优码流与当前播放码流不相同时,采用如下公式计算切换时机time:
time=(bs_rate_[result]*5000)/average_download_speed_+bs_min_buffer_time_[result]);
其中,bs_rate_[result]表示所述最优码流的码率,average_download_speed_为当前的平均网络下载速度,bs_min_buffer_time_[result]表示预设的最小缓冲时间。码流质量越高,Time的值越大。
步骤104,在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流。
在本发明实施例的一种优选实施例中,步骤104可以包括如下子步骤:
子步骤S41,计算所述切换时机的预设范围内的最优关键帧位置;
本发明实施例根据最优关键帧位置来校正计算得到的切换时机,其中,最优关键帧位置即为离切换时机最近的一个关键帧的位置。例如,计算得到的切换时机是影片的320s处切换,但320s处并不一定有关键帧,而是在317.120s处有一个关键帧,在321.300s处有一个关键帧,那么最优关键帧就是321.300s,即最终切换时机为影片的321.300s处。
子步骤S42,将所述最优关键帧位置减去所述实际最优码流的预加载最小缓冲时间,获得预加载位置;
子步骤S43,当所述目标视频播放到所述预加载位置时,停止加载当前播放码流,开始加载所述实际最优码流;
为保证无缝切换,本发明实施例可以在离最优关键帧位置的最小缓冲时间处预加载实际最优码流。具体来说,本发明实施例将最优关键帧位置减去所述预加载最小缓冲时间,获得预加载位置;并在预加载位置进行加载切换,即停止加载当前码流,开始加载实际最优码流。例如,当前影片播放的码流是高清,播放过程中,网络慢慢变好,决策出实际最优码流为720p,计算得出切换时机为320s,当前播放时间是300s,即20s后可以切换到720p,与320s对应的最优关键帧位置是320.766s,该实际最优码流的最小缓冲时间是20s,则在300s处,可以停止高清码流数据的加载,开始预加载720p的数据。
子步骤S44,当所述目标视频播放到所述最优关键帧位置时,将所述实际最优码流中与所述最优关键帧位置相同的关键帧发送至解码器。
应用于本发明实施例,等到当前码流播放到最优关键帧位置时,可以切换到预加载的最优码流相同的关键帧处,完成无缝切换。例如,在上例中,当当前码流播放到320.766s时,切换到720p的相同码流处,并将该720p的相同码流传送给解码器,完成无缝切换。
在本发明实施例中,当播放器检测到上一视频播放完毕,连播目标视频时,或者,第一次启动播放器开始播放目标视频时,播放器获取该关键参数,并根据关键参数决策出实际最优码流,当当实际最优码流与当前播放码流不相同时,计算出合理的切换时机,在到达切换时机时进行码流切换,保证两码流无缝流畅切换,提高用户观看体验。
另外,本发明没有依赖HTTP自适应流媒体***的特定平台。
此外,本发明综合考虑多种关键参数以及多种决策条件,决策出实际最优码流,使得本发明能够兼顾视频清晰度并显著降低播放器卡顿比,从图4可以看出,约55%的卡顿是在码流为BS_150时出现的,说明本发明切实有效,因为BS_150码流是视频服务器提供的最低码流,在播放此码流时出现卡顿,说明用户网络非常差,由于网速差无法避免卡顿。此码流下的卡顿次数占总卡顿次数的比例高于其他码流下卡顿占比的总和,说明本发明实施例对码流的控制精确。从图5可以看出,使用本发明后,播放器卡顿比的影响效果明显,不使用本发明时平均卡顿比为6.1%,使用本发明后平均卡顿比为3.8%,降低了37.7%的卡顿。
然而,上述BS_150码流下的卡顿次数占总卡顿次数的比例也不是越高越好,因为本发明不但要降低卡顿比,还要兼顾视频清晰度,两者合理折中,才是最优的自适应动态码流方案。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图6,示出了本发明一种码流切换装置实施例的结构框图,具体可以包括如下模块:
关键参数获取模块601,用于在上一视频播放完毕,连播目标视频时,或者,第一次启动播放器开始播放目标视频时,获取关键参数;
决策模块602,用于基于所述关键参数决策出实际最优码流;
切换时机计算模块603,用于当所述实际最优码流与当前播放码流不相同时,计算切换时机;
切换模块604,用于在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流。
在本发明实施例的一种优选实施例中,所述决策模块602包括:
参数选取子模块,用于从所述关键参数中选取多个关键参数,作为多个决策因子;
决策子模块,用于基于所述决策因子决策出实际最优码流。
作为本发明实施例的一种优选示例,所述关键参数至少包括:
(1)所述目标视频所支持的码流类型列表,所述码流类型列表包括多种类型的码流;
(2)当前播放器渲染区域大小;
(3)理论最优码流;
(4)当前播放缓冲区中已下载的视频数据的剩余播放时间;
(5)最近的第一预设时间段内,对每个单位时间对应的播放缓冲区中已下载的视频数据的剩余播放时间,进行曲线拟合,得到的拟合曲线;
(6)按照预设的码流判定标准,判断当前播放码流为高质量码流或低质量码流的判断结果;
(7)截止预设时间,当前播放码流判定为可切换的次数;
(8)预设的最高码流及最低码流限制范围;
(9)目标视频播放的卡顿次数;
(10)用户对目标视频拖到进度条至某个位置的拖动seek记录;
(11)当前目标视频的总切换次数;
(12)目标视频影片已使用的码流记录。
在本发明实施例的一种优选实施例中,所述多种类型的码流包括码流等级,所述决策子模块还用于:
基于所述决策因子设定N个决策条件,其中N为正整数;
若所述决策条件均满足对应的阈值标准,则将所述理论最优码流作为所述实际最优码流;
若任一决策条件不满足对应的阈值标准,则将所述理论最优码流对应的下一等级的码流作为所述实际最优码流,或者,将当前播放码流作为所述实际最优码流。
作为本发明实施例的一种优选示例,所述决策条件包括如下条件的部分或全部:
1)判断所述当前播放缓冲区中已下载的视频数据的剩余播放时间是否大于第一阈值,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
2)判断所述拟合曲线呈上升趋势还是下降趋势;若为上升趋势,则判定该决策条件满足阈值标准,若为下降趋势,则判定该决策条件不满足阈值标准;
3)根据所述当前播放码流为高质量码流或低质量码流的判断结果,调整各个决策条件的阈值标准;
4)判断所述当前播放码流判定为可切换的次数是否大于第二阈值,若是,则判定该决策条件满足阈值标准,若否,则继续累加所述可切换的次数,或者,将当前累加的可切换的次数归零;
5)判断所述理论最优码流是否在所述预设的最高码流及最低码流限制范围内,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
6)选取与当前播放器渲染区域大小适合的码流;
7)若所述卡顿次数大于第三阈值,则调整各个决策条件的阈值标准;
8)若所述拖动seek记录大于第四阈值,则调整各个决策条件的阈值标准;
9)判断所述目标视频的总切换次数是否大于第五阈值,若是,则判定该决策条件不满足阈值标准,若否,则判定该决策条件满足阈值标准;
10)根据已使用的码流记录,若某个码流存在时间低于第六阈值,则不选取所述码流作为实际最优码流。
在本发明实施例的一种优选实施例中,所述关键参数获取模块601还用于:
分别计算所述多种类型的码流的质量值;
将所述质量值最大的码流作为理论最优码流。
在本发明实施例的一种优选实施例中,采用如下公式分别计算所述多种类型的码流的质量值:
G[i]=Q[i]-p0[i]*cost[i]-costs*(i-current_bitstream_index);
其中,i表示码流的类型标识,G[i]表示码流的质量值,Q[i]表示各种类型的码流对应的预设初始质量值,cost[i]表示各种码流在播放时卡顿引起的预设第一质量损失值;costs表示两个码流切换引起的预设第二质量损失值;current_bitstream_index表示当前播放码流的预设索引值;p0[i]表示播放器缓冲区为空的概率。
在本发明实施例的一种优选实施例中,所述目标视频包括多个逻辑分片;所述p0[i]采用如下方式获得:
基于当前的网络下载速度,分别估算所述各种类型的码流下载一个逻辑分片所需的下载时间,并定义下载w个逻辑分配所需的下载时间为t;
分别计算所述下载时间t对应的期望E(t);
采用如下公式计算p0[i]:
p0[i]=1-1/E(t)[i]*μ;
其中,E(t)[i]表示码流i的期望;μ表示解码器解码一个逻辑分片所需的解码时间的预设的期望。
在本发明实施例的一种优选实施例中,所述切换时机计算模块603包括:
缓冲时间设定子模块,用于设定各种码流对应的预加载最小缓冲时间;
计算子模块,用于在所述实际最优码流与当前播放码流不相同时,采用如下公式计算切换时机time:
time=(bs_rate_[result]*5000)/average_download_speed_+bs_min_buffer_time_[result]);
其中,bs_rate_[result]表示所述实际最优码流的码率,average_download_speed_为当前的平均网络下载速度,bs_min_buffer_time_[result]表示所述实际最优码流的预加载最小缓冲时间。
在本发明实施例的一种优选实施例中,所述切换模块604包括:
位置计算子模块,用于计算所述切换时机的预设范围内的最优关键帧位置;
预加载位置计算子模块,用于将所述最优关键帧位置减去所述实际最优码流的预加载最小缓冲时间,获得预加载位置;
预加载子模块,用于在所述目标视频播放到所述预加载位置时,停止加载当前播放码流,开始加载所述实际最优码流;
切换子模块,用于在所述目标视频播放到所述最优关键帧位置时,将所述实际最优码流中与所述最优关键帧位置相同的关键帧发送至解码器。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种码流切换方法和一种码流切换装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (16)
1.一种码流切换方法,其特征在于,所述方法包括:
当上一视频播放完毕,连播目标视频时,或者,第一次启动播放器开始播放目标视频时,获取关键参数;
基于所述关键参数决策出实际最优码流;
当所述实际最优码流与当前播放码流不相同时,计算切换时机;
在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流;
其中,所述当所述实际最优码流与当前播放码流不相同时,计算切换时机的步骤包括:
设定各种码流对应的预加载最小缓冲时间;
当所述实际最优码流与当前播放码流不相同时,则采用如下公式计算切换时机time:
time=(bs_rate_[result]*5000)/average_download_speed_+bs_min_buffer_time_[result]);
其中,bs_rate_[result]表示所述实际最优码流的码率,average_download_speed_为当前的平均网络下载速度,bs_min_buffer_time_[result]表示所述实际最优码流的预加载最小缓冲时间。
2.根据权利要求1所述的方法,其特征在于,所述基于所述关键参数决策出实际最优码流的步骤包括:
从所述关键参数中选取多个关键参数,作为多个决策因子;
基于所述决策因子决策出实际最优码流。
3.根据权利要求2所述的方法,其特征在于,所述关键参数至少包括:
(1)所述目标视频所支持的码流类型列表,所述码流类型列表包括多种类型的码流;
(2)当前播放器渲染区域大小;
(3)理论最优码流;
(4)当前播放缓冲区中已下载的视频数据的剩余播放时间;
(5)最近的第一预设时间段内,对每个单位时间对应的播放缓冲区中已下载的视频数据的剩余播放时间,进行曲线拟合,得到的拟合曲线;
(6)按照预设的码流判定标准,判断当前播放码流为高质量码流或低质量码流的判断结果;
(7)截止预设时间,当前播放码流判定为可切换的次数;
(8)预设的最高码流及最低码流限制范围;
(9)目标视频播放的卡顿次数;
(10)用户对目标视频拖到进度条至某个位置的拖动seek记录;
(11)当前目标视频的总切换次数;
(12)目标视频影片已使用的码流记录。
4.根据权利要求3所述的方法,其特征在于,所述多种类型的码流包括码流等级,所述基于所述决策因子决策出实际最优码流的步骤包括:
基于所述决策因子设定N个决策条件,其中N为正整数;
若所述决策条件均满足对应的阈值标准,则将所述理论最优码流作为所述实际最优码流;
若任一决策条件不满足对应的阈值标准,则将所述理论最优码流对应的下一等级的码流作为所述实际最优码流,或者,将当前播放码流作为所述实际最优码流。
5.根据权利要求4所述的方法,其特征在于,所述决策条件包括如下条件的部分或全部:
1)判断所述当前播放缓冲区中已下载的视频数据的剩余播放时间是否大于第一阈值,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
2)判断所述拟合曲线呈上升趋势还是下降趋势;若为上升趋势,则判定该决策条件满足阈值标准,若为下降趋势,则判定该决策条件不满足阈值标准;
3)根据所述当前播放码流为高质量码流或低质量码流的判断结果,调 整各个决策条件的阈值标准;
4)判断所述当前播放码流判定为可切换的次数是否大于第二阈值,若是,则判定该决策条件满足阈值标准,若否,则继续累加所述可切换的次数,或者,将当前累加的可切换的次数归零;
5)判断所述理论最优码流是否在所述预设的最高码流及最低码流限制范围内,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
6)选取与当前播放器渲染区域大小适合的码流;
7)若所述卡顿次数大于第三阈值,则调整各个决策条件的阈值标准;
8)若所述拖动seek记录大于第四阈值,则调整各个决策条件的阈值标准;
9)判断所述目标视频的总切换次数是否大于第五阈值,若是,则判定该决策条件不满足阈值标准,若否,则判定该决策条件满足阈值标准;
10)根据已使用的码流记录,若某个码流存在时间低于第六阈值,则不选取所述码流作为实际最优码流。
6.根据权利要求3或4或5所述的方法,其特征在于,所述理论最优码流按照如下方式获得:
分别计算所述多种类型的码流的质量值;
将所述质量值最大的码流作为理论最优码流;
其中,采用如下公式分别计算所述多种类型的码流的质量值:
G[i]=Q[i]-p0[i]*cost[i]-costs*(i-current_bitstream_index);
其中,i表示码流的类型标识,G[i]表示码流的质量值,Q[i]表示各种类型的码流对应的预设初始质量值,cost[i]表示各种码流在播放时卡顿引起的预设第一质量损失值;costs表示两个码流切换引起的预设第二质量损失值;current_bitstream_index表示当前播放码流的预设索引值;p0[i]表示播放器缓冲区为空的概率。
7.根据权利要求6所述的方法,其特征在于,所述目标视频包括多个逻辑分片;所述p0[i]采用如下方式获得:
基于当前的网络下载速度,分别估算所述各种类型的码流下载一个逻辑分片所需的下载时间,并定义下载w个逻辑分配所需的下载时间为t;
分别计算所述下载时间t对应的期望E(t);
采用如下公式计算p0[i]:
p0[i]=1-1/E(t)[i]*μ;
其中,E(t)[i]表示码流i的期望;μ表示解码器解码一个逻辑分片所需的解码时间的预设的期望。
8.根据权利要求1所述的方法,其特征在于,所述在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流的步骤包括:
计算所述切换时机的预设范围内的最优关键帧位置;
将所述最优关键帧位置减去所述实际最优码流的预加载最小缓冲时间,获得预加载位置;
当所述目标视频播放到所述预加载位置时,停止加载当前播放码流,开始加载所述实际最优码流;
当所述目标视频播放到所述最优关键帧位置时,将所述实际最优码流中与所述最优关键帧位置相同的关键帧发送至解码器。
9.一种码流切换装置,其特征在于,所述装置包括:
关键参数获取模块,用于在上一视频播放完毕,连播目标视频时,或者,第一次启动播放器开始播放目标视频时,获取关键参数;
决策模块,用于基于所述关键参数决策出实际最优码流;
切换时机计算模块,用于当所述实际最优码流与当前播放码流不相同时,计算切换时机;
切换模块,用于在所述切换时机到达时,将所述目标视频的当前播放码流切换为所述实际最优码流;
其中,所述切换时机计算模块包括:缓冲时间设定子模块,用于设定 各种码流对应的预加载最小缓冲时间;计算子模块,用于在所述实际最优码流与当前播放码流不相同时,采用如下公式计算切换时机time:time=(bs_rate_[result]*5000)/average_download_speed_+bs_min_buffer_time_[result]);其中,bs_rate_[result]表示所述实际最优码流的码率,average_download_speed_为当前的平均网络下载速度,bs_min_buffer_time_[result]表示所述实际最优码流的预加载最小缓冲时间。
10.根据权利要求9所述的装置,其特征在于,所述决策模块包括:
参数选取子模块,用于从所述关键参数中选取多个关键参数,作为多个决策因子;
决策子模块,用于基于所述决策因子决策出实际最优码流。
11.根据权利要求10所述的装置,其特征在于,所述关键参数至少包括:
(1)所述目标视频所支持的码流类型列表,所述码流类型列表包括多种类型的码流;
(2)当前播放器渲染区域大小;
(3)理论最优码流;
(4)当前播放缓冲区中已下载的视频数据的剩余播放时间;
(5)最近的第一预设时间段内,对每个单位时间对应的播放缓冲区中已下载的视频数据的剩余播放时间,进行曲线拟合,得到的拟合曲线;
(6)按照预设的码流判定标准,判断当前播放码流为高质量码流或低质量码流的判断结果;
(7)截止预设时间,当前播放码流判定为可切换的次数;
(8)预设的最高码流及最低码流限制范围;
(9)目标视频播放的卡顿次数;
(10)用户对目标视频拖到进度条至某个位置的拖动seek记录;
(11)当前目标视频的总切换次数;
(12)目标视频影片已使用的码流记录。
12.根据权利要求11所述的装置,其特征在于,所述多种类型的码流 包括码流等级,所述决策子模块还用于:
基于所述决策因子设定N个决策条件,其中N为正整数;
若所述决策条件均满足对应的阈值标准,则将所述理论最优码流作为所述实际最优码流;
若任一决策条件不满足对应的阈值标准,则将所述理论最优码流对应的下一等级的码流作为所述实际最优码流,或者,将当前播放码流作为所述实际最优码流。
13.根据权利要求12所述的装置,其特征在于,所述决策条件包括如下条件的部分或全部:
1)判断所述当前播放缓冲区中已下载的视频数据的剩余播放时间是否大于第一阈值,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
2)判断所述拟合曲线呈上升趋势还是下降趋势;若为上升趋势,则判定该决策条件满足阈值标准,若为下降趋势,则判定该决策条件不满足阈值标准;
3)根据所述当前播放码流为高质量码流或低质量码流的判断结果,调整各个决策条件的阈值标准;
4)判断所述当前播放码流判定为可切换的次数是否大于第二阈值,若是,则判定该决策条件满足阈值标准,若否,则继续累加所述可切换的次数,或者,将当前累加的可切换的次数归零;
5)判断所述理论最优码流是否在所述预设的最高码流及最低码流限制范围内,若是,则判定该决策条件满足阈值标准,若否,则判定该决策条件不满足阈值标准;
6)选取与当前播放器渲染区域大小适合的码流;
7)若所述卡顿次数大于第三阈值,则调整各个决策条件的阈值标准;
8)若所述拖动seek记录大于第四阈值,则调整各个决策条件的阈值标准;
9)判断所述目标视频的总切换次数是否大于第五阈值,若是,则判定 该决策条件不满足阈值标准,若否,则判定该决策条件满足阈值标准;
10)根据已使用的码流记录,若某个码流存在时间低于第六阈值,则不选取所述码流作为实际最优码流。
14.根据权利要求11或12或13所述的装置,其特征在于,所述关键参数获取模块还用于:
分别计算所述多种类型的码流的质量值;
将所述质量值最大的码流作为理论最优码流;
其中,采用如下公式分别计算所述多种类型的码流的质量值:
G[i]=Q[i]-p0[i]*cost[i]-costs*(i-current_bitstream_index);
其中,i表示码流的类型标识,G[i]表示码流的质量值,Q[i]表示各种类型的码流对应的预设初始质量值,cost[i]表示各种码流在播放时卡顿引起的预设第一质量损失值;costs表示两个码流切换引起的预设第二质量损失值;current_bitstream_index表示当前播放码流的预设索引值;p0[i]表示播放器缓冲区为空的概率。
15.根据权利要求14所述的装置,其特征在于,所述目标视频包括多个逻辑分片;所述p0[i]采用如下方式获得:
基于当前的网络下载速度,分别估算所述各种类型的码流下载一个逻辑分片所需的下载时间,并定义下载w个逻辑分配所需的下载时间为t;
分别计算所述下载时间t对应的期望E(t);
采用如下公式计算p0[i]:
p0[i]=1-1/E(t)[i]*μ;
其中,E(t)[i]表示码流i的期望;μ表示解码器解码一个逻辑分片所需的解码时间的预设的期望。
16.根据权利要求9所述的装置,其特征在于,所述切换模块包括:
位置计算子模块,用于计算所述切换时机的预设范围内的最优关键帧位置;
预加载位置计算子模块,用于将所述最优关键帧位置减去所述实际最优码流的预加载最小缓冲时间,获得预加载位置;
预加载子模块,用于在所述目标视频播放到所述预加载位置时,停止 加载当前播放码流,开始加载所述实际最优码流;
切换子模块,用于在所述目标视频播放到所述最优关键帧位置时,将所述实际最优码流中与所述最优关键帧位置相同的关键帧发送至解码器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510185473.8A CN104967884B (zh) | 2015-04-17 | 2015-04-17 | 一种码流切换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510185473.8A CN104967884B (zh) | 2015-04-17 | 2015-04-17 | 一种码流切换方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104967884A CN104967884A (zh) | 2015-10-07 |
CN104967884B true CN104967884B (zh) | 2018-01-26 |
Family
ID=54221807
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510185473.8A Active CN104967884B (zh) | 2015-04-17 | 2015-04-17 | 一种码流切换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104967884B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106921870A (zh) * | 2015-12-24 | 2017-07-04 | 北京奇虎科技有限公司 | 一种视频播放方法和装置 |
CN106878828A (zh) * | 2017-02-21 | 2017-06-20 | 微鲸科技有限公司 | 自动切换多媒体码率的方法及装置 |
CN106937141A (zh) * | 2017-03-24 | 2017-07-07 | 北京奇艺世纪科技有限公司 | 一种码流切换方法及装置 |
CN107071529B (zh) * | 2017-03-29 | 2018-10-26 | 咪咕视讯科技有限公司 | 一种hls视频播放方法、终端及服务器 |
CN107666593B (zh) * | 2017-08-28 | 2020-04-21 | 中国电子科技集团公司第二十八研究所 | 一种波动网络环境下的视频实时传输方法 |
CN109803167A (zh) * | 2017-11-17 | 2019-05-24 | 中国电信股份有限公司 | 流媒体文件传输方法、流媒体客户端和计算机可读存储介质 |
CN108307248B (zh) * | 2018-02-01 | 2019-10-29 | 腾讯科技(深圳)有限公司 | 视频播放方法、装置、计算设备及存储介质 |
CN109361756A (zh) * | 2018-11-08 | 2019-02-19 | 重庆急视飞救科技发展有限公司 | 基于120网络报警的跨平台数据传输方法 |
CN111479171B (zh) * | 2019-01-23 | 2022-05-20 | 上海哔哩哔哩科技有限公司 | Web播放不同视频源间的伪无缝切换方法、装置及介质 |
CN110087110B (zh) * | 2019-06-12 | 2021-03-30 | 深圳市大数据研究院 | 应用深度搜索动态调控视频播放的方法及装置 |
CN111866433B (zh) * | 2020-07-31 | 2021-06-29 | 腾讯科技(深圳)有限公司 | 视频源切换方法、播放方法、装置、设备和存储介质 |
CN113721908B (zh) * | 2021-08-30 | 2024-03-22 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种无限级联组件渲染方法和装置 |
CN114025211A (zh) * | 2021-10-27 | 2022-02-08 | 福建野小兽健康科技有限公司 | 一种适配用户设备的视频下发方法及*** |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291599A (zh) * | 2011-05-07 | 2011-12-21 | 董友球 | 网络视频播放方法及网络视频播放装置 |
CN103428107A (zh) * | 2012-05-14 | 2013-12-04 | 中国科学院声学研究所 | 一种基于缓存下溢概率估计的自适应码流切换方法及*** |
CN103428105A (zh) * | 2012-05-14 | 2013-12-04 | 中国科学院声学研究所 | 一种基于带宽估计的自适应http流化码流切换方法及*** |
CN103686167A (zh) * | 2013-12-24 | 2014-03-26 | 广东威创视讯科技股份有限公司 | 多码流播出方法及装置 |
CA2804741A1 (en) * | 2013-01-21 | 2014-07-21 | Disternet Technology, Inc. | Media server |
CN103997680A (zh) * | 2014-06-06 | 2014-08-20 | 北京奇艺世纪科技有限公司 | 一种视频码流的切换方法及装置 |
CN104219579A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种视频切换方法和装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100166056A1 (en) * | 2002-12-10 | 2010-07-01 | Steve Perlman | System and method for encoding video using a selected tile and tile rotation pattern |
JP5753341B2 (ja) * | 2006-03-03 | 2015-07-22 | ヴィドヨ,インコーポレーテッド | スケーラブルビデオ通信でエラー耐性、ランダムアクセス、およびレート制御を提供するシステムおよび方法 |
US9191284B2 (en) * | 2010-10-28 | 2015-11-17 | Avvasi Inc. | Methods and apparatus for providing a media stream quality signal |
US9386058B2 (en) * | 2012-02-27 | 2016-07-05 | Qualcomm Incorporated | DASH client and receiver with playback rate selection |
CN103248953B (zh) * | 2013-04-24 | 2017-04-19 | Tcl集团股份有限公司 | 一种电视广告时间的处理方法、***及电视节目播放终端 |
CN103297847A (zh) * | 2013-04-28 | 2013-09-11 | 四川长虹电器股份有限公司 | 一种实现信号源智能导航、切换的方法 |
-
2015
- 2015-04-17 CN CN201510185473.8A patent/CN104967884B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102291599A (zh) * | 2011-05-07 | 2011-12-21 | 董友球 | 网络视频播放方法及网络视频播放装置 |
CN103428107A (zh) * | 2012-05-14 | 2013-12-04 | 中国科学院声学研究所 | 一种基于缓存下溢概率估计的自适应码流切换方法及*** |
CN103428105A (zh) * | 2012-05-14 | 2013-12-04 | 中国科学院声学研究所 | 一种基于带宽估计的自适应http流化码流切换方法及*** |
CA2804741A1 (en) * | 2013-01-21 | 2014-07-21 | Disternet Technology, Inc. | Media server |
CN103686167A (zh) * | 2013-12-24 | 2014-03-26 | 广东威创视讯科技股份有限公司 | 多码流播出方法及装置 |
CN103997680A (zh) * | 2014-06-06 | 2014-08-20 | 北京奇艺世纪科技有限公司 | 一种视频码流的切换方法及装置 |
CN104219579A (zh) * | 2014-08-20 | 2014-12-17 | 北京奇艺世纪科技有限公司 | 一种视频切换方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104967884A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104967884B (zh) | 一种码流切换方法和装置 | |
Spiteri et al. | From theory to practice: Improving bitrate adaptation in the DASH reference player | |
US10110650B2 (en) | Client side stream switching | |
US9167007B2 (en) | Stream complexity mapping | |
EP2300928B1 (en) | Client side stream switching | |
US8930559B2 (en) | Adaptive hypertext transfer protocol (“HTTP”) media streaming systems and methods | |
CA2825019C (en) | Variable bit video streams for adaptive streaming | |
CN110636346B (zh) | 一种码率自适应切换方法、装置、电子设备及存储介质 | |
CN105814900B (zh) | 用于在自适应流播环境中管理相邻频道的***和方法 | |
CN104205769B (zh) | 利用播放速率选择的改善的dash客户端和接收机 | |
EP2649792B1 (en) | Pre-buffering audio/video stream pairs | |
US10091269B2 (en) | Buffering in HTTP streaming client | |
CN106993237A (zh) | 基于mpeg‑dash协议的动态自适应码率选择方法 | |
AU2012207151A1 (en) | Variable bit video streams for adaptive streaming | |
CN109257631A (zh) | 视频轮播播放方法、装置、计算机设备及存储介质 | |
JP5140952B2 (ja) | コンテンツ配信システム、コンテンツ配信サーバ、コンテンツ再生端末、プログラム、コンテンツ配信方法 | |
Liang et al. | Balancing interruption frequency and buffering penalties in VBR video streaming | |
US10368110B1 (en) | Smooth media data switching for media players | |
WO2017071428A1 (zh) | 快进快退的处理方法及终端 | |
CN104581340A (zh) | 客户端、流媒体数据接收方法和流媒体数据传输*** | |
CN115460458B (zh) | 视频丢帧方法和设备 | |
CN109218809B (zh) | 一种流媒体的播放方法和装置 | |
Ma et al. | Buffer control in VR video transmission over MMT system | |
Shen et al. | QoE-optimal rate adaptation for HTTP adaptive streaming | |
EP4038892B1 (en) | Methods, systems, and media for streaming video content using adaptive buffers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |