CN109982159A - 在线播放流媒体的方法和终端 - Google Patents
在线播放流媒体的方法和终端 Download PDFInfo
- Publication number
- CN109982159A CN109982159A CN201711449462.1A CN201711449462A CN109982159A CN 109982159 A CN109982159 A CN 109982159A CN 201711449462 A CN201711449462 A CN 201711449462A CN 109982159 A CN109982159 A CN 109982159A
- Authority
- CN
- China
- Prior art keywords
- data
- video
- terminal
- duration
- 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.)
- Granted
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/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26216—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
-
- 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/433—Content storage operation, e.g. storage operation in response to a pause request, caching operations
- H04N21/4331—Caching operations, e.g. of an advertisement for later insertion during playback
-
- 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/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate 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/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)
- Computer Networks & Wireless Communication (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供了一种在线播放流媒体的方法和终端,该方法包括:终端从流媒体服务器获取并缓存视频流数据,更新缓存数据播放时长;终端计算当前的下载带宽以及视频流的实际码率并获得最小缓存数据播放时长;确定当前缓存的数据是否满足最小缓存数据播放时长以及是否满足播放的条件;若同时满足上述条件,则开始播放视频。本发明实施例充分考虑不同网络状况,根据不同的网络质量,适用不同的开始播放条件,降低视频播放后的卡顿风险,最终实现在不同网络环境下流畅播放视频。
Description
技术领域
本发明涉及多媒体技术领域,特别涉及一种在线播放流媒体的方法和终端。
背景技术
随着社会生活的网络化水平的不断提高,流媒体已经成为人们日常生活、工作和娱乐中不可或缺的手段。利用流媒体技术,可以给用户提供持续不断的音视频流,满足用户在线观看动态影音的需求。
HTTP自适应视频流技术由于具有对流媒体服务器与终端要求低,以及可通过多码率保证在不同网络下播放的流畅性等优点,所以近年来在移动互联网视频业务的应用中占据主流位置。
HTTP自适应视频流技术中,一部视频源被编码器编码成多个不同视频码率的视频并存储在服务器上,同时,每个码率的视频被分割成不同的分片,每个分片代表一定时长的视频播放。终端播放器根据历史带宽数据预测未来带宽,然后选择不高于预测带宽对应的视频码率向服务器请求下一分片。开始播放时,为了减少网络抖动等影响,终端播放器会分配一块固定大小的缓存区,当缓存区存满数据后才能开始播放。但由于网络带宽预测无法达到百分之百的准确,采用HTTP自适应视频流技术固定缓存大小播放仍然会影响用户体验。随着网络带宽越来越大,固定缓存过长会造成播放时延较大,对于中高带宽用户,做不到快速开始播放,影响用户体验;缓存过小,对于低带宽用户,将会频繁发生播放卡顿。因此,终端播放器的播放缓存需要在播放时延和卡顿之间取得平衡。
现有技术中,通过监控网络带宽,以及比较媒体码率与网络带宽的大小动态调整缓存空间的大小,能够根据网络状况动态分配合适的缓存大小。现有技术虽然不会出现播放时延较大,但在出现网络抖动时,很容易造成缓存的数据过少而面临卡顿的风险;另外,媒体码率是视频流的平均码率,对于峰均比(码率峰值/均值)大的视频数据,实际下载的媒体流可能在某段时间运动图像占比非常大,其实际码率显著高于平均码率,此时同样会面临卡顿风险。
发明内容
本发明实施例提供了一种在线播放流媒体的方法,能够根据网络状况以及视频的实际码率动态调整开始播放的条件,兼顾播放时延的同时并降低起播后的卡顿风险,更大程度地提升用户体验。
为达到上述目的,本发明实施例提供如下技术方案,包括:终端从流媒体服务器端获取视频流数据的分片,缓存视频流数据并更新缓存的视频流数据的当前缓存数据播放时长;计算下载带宽和视频流数据的实际码率并获得相应的最小缓存数据播放时长;当视频流数据的缓存数据播放时长大于或等于最小缓存数据播放时长并且满足了播放条件时,则开始播放视频。
终端通过计算当前的下载带宽跟视频流数据的实际码率的比值,并查询第一映射表,得到相应的最小缓存数据播放时长。其中,第一映射表为下载带宽跟视频流数据的实际码率的比值与最小缓存数据播放时长的映射表。
其中,播放条件具体为:无卡顿风险播放时长内的预期下载数据量大于或等于无卡顿风险播放时长内未下载的视频流数据分片的总字节数,即无卡顿风险播放时长、下载带宽与未下载的视频流数据分片的总字节数满足下列公式:
其中,λ为带宽折扣因子,T为无卡顿风险播放时长,Bp为下载带宽,为无卡顿风险播放时长内未下载视频流数据分片的总字节数。无卡顿风险播放时长内的预期下载数据量为下载带宽与无卡顿风险播放时长的乘积,在某些情况下,需要考虑无卡顿风险时长内网络的抖动,可以为下载带宽设置一个带宽折扣因子来修正预期下载数据量。设置播放条件的目的在于限制终端开始播放视频的条件以减少卡顿现象,只有当缓存了足够的视频流数据,能够保证终端在播放期间能够将无卡顿风险播放时长T内剩余的视频流数据下载完毕时才开始播放视频。本发明实施例提出的播放条件能够平衡播放延时与播放卡顿现象,在尽量不增加播放延时的情况下,减少播放中可能出现的卡顿现象。
在本申请中可以有多种方式计算视频流数据的实际码率,例如可以计算无卡顿风险播放时长内未下载的视频流数据分片的总字节数与未下载的视频流数据分片的播放时长的比值,或计算无卡顿风险播放时长内视频流数据分片的总字节数与无卡顿风险播放时长的比值。
在一些情况下,终端在从所述流媒体服务器获取视频流数据之前,还可以从视频平台服务器获取视频播放配置数据,配置数据包括如下数据中的至少一种:1)下载带宽与视频流数据的实际码率的比值跟最小缓存数据播放时长的映射表;2)无卡顿风险播放时长T;3)当前缓存数据播放时长与带宽折扣因子的映射表。视频平台服务器能够了解整个网络的质量,可以根据终端在网络的不同位置而分配对应的配置数据,优化终端的播放条件。若终端并未从视频平台获取最新的配置数据,也可以采用旧的或默认的配置数据。
进一步地,终端可以在开始缓存视频流数据时开始计时,如果缓存视频流数据所用的时间达到一定阈值,则提示缓存超时并询问用户是否退出播放。这样可以在网络状况很差的情况下防止缓存花费的时间过长,造成用户等待过久而降低用户体验,因而设置缓存花费时间的阈值,使用户能够及时退出播放视频。
第二方面,本发明实施例提供一种在线播放流媒体的终端,该终端能够实现上述方法实施例中的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。终端包括:数据获取单元,用于从流媒体服务器获取视频流数据;缓存单元,用于缓存视频流数据并更新缓存的视频流数据的当前缓存数据播放时长;计算单元,用于获取最小缓存数据播放时长;播放单元,用于在当前缓存数据播放时长大于或等于最小缓存数据播放时长且终端满足播放条件时,开始播放视频。
第三方面,本发明实施例提供了一种计算机存储介质,用于储存为上述联网平台所用的计算机软件指令,其包含用于执行上述方面为终端所设计的程序。
第四方面,本发明实施例提供了一种计算机程序产品。该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述第一方面中任意一项的在线播放流媒体的方法中的流程。
本发明实施例通过上述方面,可以根据网络带宽与流媒体的实际码率的关系,灵活设置开始播放的条件,能够减少视频播放的卡顿风险,保证视频播放的流畅度,优化用户体验。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
图1为本发明实施例提供的一种可能的终端结构示意图;
图2为本发明实施例提供的另一种可能终端结构示意图;
图3为本发明实施例提供的在线播放流媒体的方法的流程示意图;
图4为本发明实施例提供的计算视频流数据实际码率的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。方法实施例中的具体操作方法也可以应用于装置实施例中。
如图1所示,为本发明实施例的一种可能的终端的结构示意图,该终端100包括依次串联的数据获取单元110、缓存单元120、计算单元130和判断单元140。
数据获取单元110,用于从网络侧的流媒体服务器获取用户所需要的视频流数据。数据获取单元110还可以用于从视频平台获取终端100的配置数据,配置数据包括以下至少一种:1)下载带宽与视频流数据的实际码率的比值跟最小缓存数据播放时长的映射表;2)无卡顿风险播放时长T;3)缓存的视频流数据的缓存数据播放时长与带宽折扣因子的映射表。
缓存单元120,用于缓存数据获取单元110从流媒体服务器获取的视频流数据,统计并更新缓存的视频流数据的当前缓存数据播放时长。
计算单元130,用于获取最小缓存数据播放时长,计算单元130通过计算当前的下载带宽和视频流数据的实际码率以及两者的比值,并查询第一映射表(即两者的比值与最小缓存数据播放时长的映射表),获得相应的最小缓存数据播放时长。
播放单元140,用于在当前缓存数据播放时长大于或等于最小缓存数据播放时长且终端满足播放条件时,开始播放视频。
在一种可能的实施方式中,终端100还包括计时单元150,用于在从开始缓存视频流数据时开始计时,如果缓存视频流数据所用的时间达到一定阈值,则提示缓存超时并询问用户是否退出播放。
上述实施例是对终端进行功能模块的划分,需要说明的是,上述实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。上述终端的相关功能既可以通过集成电路/IC等硬件的形式实现,也可以通过计算机软件执行相应的计算机程序来实现。
如图2所示,为本发明实施例的终端200的计算机硬件结构示意图。终端200包括至少一个处理器21,通信总线22,存储器23以及至少一个通信接口24。
处理器21可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。
通信总线22可包括一通路,在上述组件之间传送信息。所述通信接口24,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless Local Area Networks,WLAN)等。
存储器23可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器23用于存储执行本发明方案的应用程序代码,并由处理器21来控制执行。所述处理器21用于执行所述存储器23中存储的应用程序代码。
在具体实现中,作为一种实施例,处理器21可以包括一个或多个CPU,例如图2中的CPU0和CPU1。
在具体实现中,作为一种实施例,终端200可以包括多个处理器,例如图2中的处理器21和处理器28。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,终端200还可以包括输出设备25和输入设备26。输出设备25和处理器21通信,可以以多种方式来显示信息。例如,输出设备25可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备26和处理器21通信,可以以多种方式接受用户的输入。例如,输入设备26可以是鼠标、键盘、触摸屏设备或传感设备等。
上述的终端200可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,终端200可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal DigitalAssistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备或有图2中类似结构的设备。本发明实施例不限定终端200的类型。
如图3所示,本发明实施例提供了一种在线播放流媒体的方法,该方法首先计算当前的网络带宽以及视频流数据的实际码率,并根据当前网络带宽和实际码率设置相应的最小缓存数据播放时长和播放条件,当缓存的视频流数据满足播放条件时,开始播放视频。该方法能够根据网络质量动态选择开始播放条件,减少播放卡顿现象,提升用户体验。
需要说明的是,本发明实施例提供的方法中的播放视频的条件不仅仅适用于视频开始播放时,而且还适用于拖动视频进度条或视频卡顿后重新开始播放时。
下面结合实施例具体描述本发明技术方案。
S301、终端310接收用户播放视频的操作。
用户可以通过终端侧310的视频UI,选择想要播放的视频,终端310可以根据用户的选择操作,获得对应视频流数据的下载URL。
S302、终端310向视频平台服务器320发送获取视频播放配置参数的请求。
作为可选操作,终端310可以从视频平台服务器320获取最新的视频播放配置数据(仅首次播放,拖放和卡顿后的播放直接使用首次播放获取的),供后续步骤使用。如果终端310未从视频平台服务器320获取配置数据,则终端使用默认值。
S303、视频平台服务器320根据当前网络环境向终端310发送相应的视频播放配置数据。根据整个网络中各处网络质量的不同,视频平台服务器320可能会向不同的终端发送不同的视频播放配置参数。
视频播放的配置数据主要包括以下几项,视频平台服务器可以根据实际情况选择发送以下几项配置数据:
1).第一映射表,即倍数(下载带宽与视频流数据的实际码率的比值)和最小缓存数据播放时长的映射表。作为一种实施例,该映射表可以如下:10:1,8:1.5,5:2,Others:3,表示如果倍数>=10倍,则最小缓存数据播放时长为1秒;如果倍数介于[8,10),则最小缓存数据播放时长至少为1.5秒;以此类推,Others表示其他未单独列出的倍数对应的最小缓存数据播放时长至少为3秒。设置最小缓存数据播放时长的目的在于确保终端已经缓存了播放所需的最基本的视频流数据,为了防止网络抖动或峰均比(码率峰值/均值)突然增加带来的卡顿,即便下载带宽非常大,也需要确保已经缓存了最小缓存数据播放时长的视频流数据,只是下载带宽越大的网络,其更能保证及时获取视频流数据,出现卡顿的概率更小,因而不需要缓存过多视频流数据即可减少卡顿,仅需设置较小的最小缓存数据播放时长。
2).无卡顿风险播放时长T,例如:默认16秒。无卡顿风险播放时长意为终端在播放该时长的视频期间能够显著降低卡顿卡顿现象,理想情况是保证不会出现卡顿风险。无卡顿风险播放时长可以根据网络状况、视频流数据码率以及终端的缓存大小等因素具体设定,无卡顿风险播放时长越长,意味着终端可以流畅播放的视频越长,同时将会需要缓存更多的视频流数据以减少卡顿风险。
3).第二映射表,即当前缓存数据播放时长和带宽折扣因子λ的映射表,通过查询第二映射表即可获得视频流数据的当前缓存数据播放时长对应的带宽折扣因子。作为一种实施例,该映射表可以如下:5:0.7,10:0.8,15:0.9,20:1,表示若视频流数据的缓存数据播放时长小于5秒,则λ为0.7;若介于[5,10]秒,则λ为0.8,以此类推,20秒及以上,则λ为1。带宽折扣因子用于对计算得到的下载带宽做修正,在判断终端的缓存数据播放时长是否满足播放条件时,引入带宽折扣因子来修正下载带宽,使下载带宽具有一定的容错率,以防止网络抖动或峰均比突然增加而出现卡顿现象。在终端的缓存数据播放时长较少时,由于还有大量的视频流分片需要传输,需要较长的缓存时间,出现网络抖动或峰均比突然增加的概率较大,因而设置较小的带宽折扣因子来修正下载带宽,因此,当前视频流数据缓存数据播放时长越短,则设置越小的带宽折扣因子λ。在某些情况下不需要考虑修正预期下载数据量时,则可以将带宽折扣因子λ设置为1。
S304、终端310向网络侧存储有所需要的视频流数据的流媒体服务器330请求视频流数据。
S305、流媒体服务器330将视频流数据按照分片形式发送给终端310。
作为一种实施方式,流媒体服务器330在发送视频流数据时,首先发送该视频流数据对应的索引分片数据。对于HLS协议,流媒体服务器330发送一级和二级索引m3u8(对应URL)媒体描述数据,并根据索引数据的媒体分片信息,然后在发送媒体分片数据并保存下载的数据和下载所花的有效时长;对于DASH协议,流媒体服务器首先发送索引MPD(对应URL)媒体描述数据。
S306、终端310缓存接收到视频流数据之后,计算缓存的视频流数据分片对应的播放时间,并更新已下载的视频流数据的缓存数据播放时长,并在缓存中累加一定播放时长的数据后(例如累加超过200ms的视频流数据),执行之后的步骤。缓存数据播放时长指的是缓存的视频流数据分片对应的能够被播放的时间长度。
S307、终端310计算当前的下载带宽Bp以及视频流数据的实际码率。
作为一种计算当前的下载带宽Bp的方法,终端310根据默认的单位时长(例如:5秒),取当前时间点之前的最近5秒内有效下载时间的网络速率平均值,即接收到的字节数除以5秒内的有效下载时间,其中有效下载时间剔除了暂停下载的时间。现有技术中有多种计算当前的下载带宽的方法,上述实现方式仅为一具体示例,并不构成对本发明技术方案的限定。
视频流数据的实际码率也有多种计算方式,本发明技术方案列出了两种计算方式,下面结合图4具体阐述。第一种视频流数据的计算方式为,计算无卡顿风险播放时长T内未下载的视频流数据分片的字节数与未下载的视频流数据分片的时长的比值,该计算方式能够最准确地反映无卡顿风险播放时长T内未下载的视频流数据的实际码率。对于某些时候不需要非常准确的实际码率的场景下,也可以通过计算无卡顿风险播放时长内视频流数据分片的总字节数与无卡顿风险播放时长的比值,得到视频流数据的实际码率。需要说明的是,虽然图4中无卡顿风险播放时长可以分为缓存数据播放时长和未下载视频分片的视频流数据时长,但实际上由于各视频流数据分片大小和时长的不确定性,很可能缓存数据播放时长与未下载视频分片的时长的和并不能完全与无卡顿风险播放时长T相等,而是约等于无卡顿风险播放时长。各分片大小可以从视频流数据的描述文件中得到,比如:HLS可以用分片range字段,DASH可以从MP4里面的SIDX索引信息中获取分片字节大小。实际码率是视频流数据在一段时间内的码率,其考虑了视频流的峰均比(码率峰值/均值),相比于标定的码率,采用上述方法计算得到的实际码率更加真实地反映了在无卡顿风险播放时长T期间内视频流数据的真实码率,能够避免因峰均比突然增加导致视频流的实际码率显著高于标定的码率,进而出现视频播放卡顿的现象。
S308、判断缓存数据是否满足最低限度播放时长。
若缓存数据播放时长小于最小缓存数据播放时长,则此时缓存的数据不满足最低限度的播放时长,不足以保障无卡顿播放,而需要进一步缓存更多的视频流数据;若缓存数据播放时长大于或等于最小缓存数据播放时长,则此时缓存的数据满足最低限度的播放时长,可以进行下一步的判断。设置最小缓存数据播放时长的目的在于保证终端在开始播放视频时,缓存了最低限度的视频流数据,即使当前网络质量很好,下载带宽大于视频流数据的实际码率,也需要保证缓存了最低限度的视频流数据,此时的网络质量较好,对应可以设置相对较小的最小缓存数据播放时长。
最小缓存数据播放时长的值与下载带宽和实际码率相关联,在得到当前下载带宽和实际码率之后,终端通过查询第一映射表,得到最小缓存数据播放时长。上述映射表可以从视频平台服务器得到,也可以使用保存在终端的映射表。
S309、判断终端的当前缓存是否满足播放视频的条件。
当前缓存是否满足播放视频的条件,即播放条件为:在视频播放期间能够成功下载在开始播放时还未下载的视频流数据,具体为无卡顿风险播放时长T内的预期下载数据量大于或等于T时长内未下载的视频流数据分片的总字节数,即无卡顿风险播放时长、下载带宽跟未下载的视频分片的总字节大小满足公式(1)。
公式(1)中的λ为带宽折扣因子,Bp为下载带宽,为T时间段内未下载的各个视频流数据分片的总字节数。其中带宽折扣因子λ用于对无卡顿风险播放时长T时间内的预期下载数据量作修正,为T时长内下载的数据量引入一定容错空间,而避免在播放时满足播放条件,但在播放期间由于网络质量变差而无法完全下载T时长内的视频分片造成卡顿的现象。在某些情况下,也可以不考虑对无卡顿风险播放时长T时间内的预期下载数据量作修正,即此时不需要考虑带宽折扣因子,或可以将带宽折扣因子设为1。
公式(1)的意义在于保证在开始播放视频后,能够在无卡顿风险播放时长T的播放期间内将剩余的视频流数据分片下载完成,当未下载的视频流数据满足公式(1)时,才开始播放视频。在网络质量较好的情况下,由于下载带宽Bp较大,即使未下载的视频流数据较多,也能很快满足上述公式,能够很快开始播放,而不至于造成过大的播放延时。λ与T可以从视频平台服务器320获取,或者采用终端310的默认设置,前述步骤已计算得到Bp和未下载视频流数据分片的数据总和,可以根据以上参数判断是否满足公式(1)。该条件使终端310无须等到完全缓存T时长内的所有视频流数据才开始播放视频,而仅需要未缓存的视频流数据分片满足公式(1)时即可开始播放,减少了播放的延时。
设置上述两个开始播放视频的判断条件,能够确保终端310已经缓存了合适的视频流数据以减少视频播放卡顿的现象,只有同时满足上述两个条件,终端310才开始播放视频,如不能满足上述两个条件,则还未缓存足够的视频流数据,需要返回步骤S303继续下载视频流数据,直到缓存的视频流数据满足上述两个条件时开始播放视频。
可选地,作为一种实施例,终端310可以在开始缓存视频流数据时开始计时,如果缓存视频流数据所用的时间超过一定阈值,则终端310提示缓存超时并询问用户是否退出播放。本实施方式为下载视频数据设置了最长的时间,若超过最长的下载时间,则终端310提示缓存超时并询问用户是否退出播放,以避免因网络质量不佳导致缓存视频流数据花费的时间过长而浪费用户的时间,而且此时的网络质量也极有可能不适合观看视频。
上述方法实施例中,根据当前下载带宽和视频流数据实际码率的倍数关系,可以灵活设置最小缓存数据播放时长。对于高带宽,可以设置很小的缓存数据播放时长实现快速开始播放,不影响播放时延的同时通过设置最小的缓存数据播放时长,确保缓存了最低限度的视频流数据,降低开始播放后的卡顿风险。另外,本发明实施例通过设置无卡顿风险播放时长T的起播条件,确保T时长内起播后无卡顿风险,对于中高带宽用户不影响播放时延;对于低带宽用户,通过增加缓存时延来缓存更多的数据,而进一步降低开始播放后的卡顿风险,最终实现HTTP自适应视频流在不同网络环境下更流畅地播放。
上述方法实施例中,终端310在首次播放时可以从视频平台服务器320获取最新的配置参数,相关配置参数由视频平台服务器320针对不同网络环境通过大数据挖掘并灵活优化相关参数,能够最优化用户体验。
本发明实施例还提供了一种计算机存储介质,用于储存为上述终端310所用的计算机软件指令,其包含用于执行上述方面为终端310所设计的程序代码。通过执行存储的程序代码,可以实现根据网络状况调整开始播放的条件,在尽量不提高播放时延的同时确保终端缓存了足够的视频流数据,减少视频播放卡顿现象,提升用户体验。
本发明实施例还提供了计算机程序产品。该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现上述方法实施例中的方法。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本发明的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式,这里将它们都统称为“模块”或“系统”。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本发明是参照本发明实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种在线播放流媒体的方法,其特征在于,包括:
终端从流媒体服务器端获取视频流数据;
所述终端缓存所述视频流数据并更新当前缓存数据播放时长;
所述终端获取最小缓存数据播放时长;
当所述当前缓存数据播放时长大于或等于所述最小缓存数据播放时长且所述终端满足播放条件时,则开始播放视频。
2.根据权利要求1所述的方法,其特征在于,所述终端获取最小缓存数据播放时长具体为:
所述终端计算当前的下载带宽以及所述视频流数据的实际码率;
所述终端计算所述下载带宽跟所述视频流数据的实际码率的比值;
所述终端查询第一映射表,得到所述最小缓存数据播放时长;
其中,所述第一映射表为下载带宽与视频流数据的实际码率的比值跟最小缓存数据播放时长的映射表。
3.根据权利要求2所述的方法,其特征在于,计算所述视频流数据的实际码率具体为:
计算无卡顿风险播放时长内未下载的视频流数据分片的字节数与未下载的视频流数据分片的播放时长的比值;
或计算无卡顿风险播放时长内视频流数据分片的总字节数与所述无卡顿风险播放时长的比值。
4.根据权利要求2或3所述的方法,其特征在于,所述终端满足播放条件具体为,无卡顿风险播放时长内的预期下载数据量大于或等于所述无卡顿风险播放时长内未下载的视频流数据分片的总字节数。
5.根据权利要求4所述的方法,其特征在于,所述无卡顿风险播放时长内的预期下载数据量大于或等于所述无卡顿风险播放时长内未下载的视频流数据分片的总字节数,具体为所述无卡顿风险播放时长、所述下载带宽与所述未下载的视频流数据分片的总字节数满足下列公式:
其中,λ为带宽折扣因子,T为无卡顿风险播放时长,Bp为下载带宽,为无卡顿风险时长内未下载的视频流数据分片的总字节数。
6.根据权利要求1至5任意一项权利要求所述的方法,其特征在于,所述终端在从所述流媒体服务器获取视频流数据之前,还从视频平台服务器获取视频播放配置数据,所述配置数据包括如下数据中的至少一种:
下载带宽与视频流数据的实际码率的比值跟最小缓存数据播放时长的映射表;
无卡顿风险播放时长;
当前缓存数据播放时长与带宽折扣因子的映射表。
7.根据权利要求1至6任意一项权利要求所述的方法,其特征在于,所述终端从开始缓存视频流数据时开始计时,如果缓存视频流数据所用的时间达到一定阈值,则提示缓存超时并询问用户是否退出播放。
8.一种在线播放流媒体的终端,其特征在于,所述终端包括:
数据获取单元,用于从流媒体服务器获取视频流数据;
缓存单元,用于缓存视频流数据并更新当前缓存数据播放时长;
计算单元,用于获取最小缓存数据播放时长;
播放单元,用于当所述当前缓存数据播放时长大于或等于所述最小缓存数据播放时长且所述终端满足播放条件时,则开始播放视频。
9.根据权利要求8所述的终端,其特征在于,所述计算单元还用于:
计算当前的下载带宽以及所述视频流数据的实际码率;
计算所述下载带宽跟所述视频流数据的实际码率的比值;
查询第一映射表,得到所述最小缓存数据播放时长;
其中,所述第一映射表为下载带宽与视频流数据的实际码率的比值跟最小缓存数据播放时长的映射表。
10.根据权利要求9所述的终端,其特征在于,所述计算单元,具体用于:
计算无卡顿风险播放时长内未下载的视频流数据分片的字节数与未下载的视频流数据分片的播放时长的比值;
或计算无卡顿风险播放时长内视频流数据分片的总字节数与所述无卡顿风险播放时长的比值。
11.根据权利要求9或10所述的终端,其特征在于,所述播放条件具体为,无卡顿风险播放时长内的预期下载数据量大于或等于所述无卡顿风险播放时长内未下载的视频流数据分片的总字节数。
12.根据权利要求8至11任意一项权利要求所述的终端,其特征在于,所述数据获取单元还用于从视频平台服务器获取视频播放配置数据,所述配置数据包括如下数据中的至少一种:
下载带宽与视频流数据的实际码率的比值跟最小缓存数据播放时长的映射表;
无卡顿风险播放时长;
当前缓存数据播放时长与带宽折扣因子的映射表。
13.根据权利要求8至12任意一项权利要求所述的终端,其特征在于,所述终端还包括计时单元,用于从开始缓存视频流数据时开始计时,如果缓存视频流数据所用的时间达到一定阈值,则提示缓存超时并询问用户是否退出播放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711449462.1A CN109982159B (zh) | 2017-12-27 | 2017-12-27 | 在线播放流媒体的方法和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711449462.1A CN109982159B (zh) | 2017-12-27 | 2017-12-27 | 在线播放流媒体的方法和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109982159A true CN109982159A (zh) | 2019-07-05 |
CN109982159B CN109982159B (zh) | 2021-10-22 |
Family
ID=67071774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711449462.1A Active CN109982159B (zh) | 2017-12-27 | 2017-12-27 | 在线播放流媒体的方法和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109982159B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110662093A (zh) * | 2019-10-17 | 2020-01-07 | 北京达佳互联信息技术有限公司 | 一种初始码率确定方法、装置、电子设备及存储介质 |
CN112672186A (zh) * | 2020-12-09 | 2021-04-16 | 北京达佳互联信息技术有限公司 | 视频预加载的方法和装置 |
CN113726759A (zh) * | 2021-08-25 | 2021-11-30 | 烽火通信科技股份有限公司 | 一种码率自适应方法、装置、设备及可读存储介质 |
CN113766261A (zh) * | 2021-09-06 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种确定预拉取时长方法、装置、电子设备及存储介质 |
CN113784216A (zh) * | 2021-08-24 | 2021-12-10 | 咪咕音乐有限公司 | 视频卡顿识别方法、装置、终端设备以及存储介质 |
CN114679438A (zh) * | 2022-03-03 | 2022-06-28 | 上海艾策通讯科技股份有限公司 | 流媒体数据传输方法、装置、计算机设备和存储介质 |
CN114900732A (zh) * | 2022-04-25 | 2022-08-12 | 北京奇艺世纪科技有限公司 | 视频缓存方法、装置、电子设备及存储介质 |
CN114979799A (zh) * | 2022-05-20 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 一种全景视频处理方法、装置、设备和存储介质 |
CN114979768A (zh) * | 2022-05-23 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 视频缓存方法、装置、设备及存储介质 |
CN115190338A (zh) * | 2022-07-05 | 2022-10-14 | 上海哔哩哔哩科技有限公司 | 视频预加载的方法和系统 |
CN113784216B (zh) * | 2021-08-24 | 2024-05-31 | 咪咕音乐有限公司 | 视频卡顿识别方法、装置、终端设备以及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558665A (zh) * | 2004-01-20 | 2004-12-29 | 大唐微电子技术有限公司 | 一种网络多媒体信息快速播放方法及相应的机顶盒设备 |
CN101001362A (zh) * | 2006-01-11 | 2007-07-18 | 腾讯科技(深圳)有限公司 | 在线播放流媒体的方法及终端 |
CN102186119A (zh) * | 2011-04-18 | 2011-09-14 | 烽火通信科技股份有限公司 | 流媒体服务器保证音视频质量动态流量控制的方法 |
CN103731720A (zh) * | 2013-11-25 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 一种智能电视的多媒体数据缓存方法及装置 |
CN104244033A (zh) * | 2014-09-03 | 2014-12-24 | 乐视致新电子科技(天津)有限公司 | 视频播放方法和装置、智能终端 |
CN104301786A (zh) * | 2014-09-28 | 2015-01-21 | 四川长虹电器股份有限公司 | 网络视频播放方法 |
WO2015089772A1 (zh) * | 2013-12-18 | 2015-06-25 | 华为技术有限公司 | 视频加速方法、客户端及网元 |
CN105992043A (zh) * | 2015-10-15 | 2016-10-05 | 乐视致新电子科技(天津)有限公司 | 一种数据处理的方法及装置 |
CN106488325A (zh) * | 2016-11-08 | 2017-03-08 | 青岛海信电器股份有限公司 | 网络媒体文件播放方法、装置及设备 |
-
2017
- 2017-12-27 CN CN201711449462.1A patent/CN109982159B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1558665A (zh) * | 2004-01-20 | 2004-12-29 | 大唐微电子技术有限公司 | 一种网络多媒体信息快速播放方法及相应的机顶盒设备 |
CN101001362A (zh) * | 2006-01-11 | 2007-07-18 | 腾讯科技(深圳)有限公司 | 在线播放流媒体的方法及终端 |
CN102186119A (zh) * | 2011-04-18 | 2011-09-14 | 烽火通信科技股份有限公司 | 流媒体服务器保证音视频质量动态流量控制的方法 |
CN103731720A (zh) * | 2013-11-25 | 2014-04-16 | 乐视致新电子科技(天津)有限公司 | 一种智能电视的多媒体数据缓存方法及装置 |
WO2015089772A1 (zh) * | 2013-12-18 | 2015-06-25 | 华为技术有限公司 | 视频加速方法、客户端及网元 |
CN104244033A (zh) * | 2014-09-03 | 2014-12-24 | 乐视致新电子科技(天津)有限公司 | 视频播放方法和装置、智能终端 |
CN104301786A (zh) * | 2014-09-28 | 2015-01-21 | 四川长虹电器股份有限公司 | 网络视频播放方法 |
CN105992043A (zh) * | 2015-10-15 | 2016-10-05 | 乐视致新电子科技(天津)有限公司 | 一种数据处理的方法及装置 |
CN106488325A (zh) * | 2016-11-08 | 2017-03-08 | 青岛海信电器股份有限公司 | 网络媒体文件播放方法、装置及设备 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110662093A (zh) * | 2019-10-17 | 2020-01-07 | 北京达佳互联信息技术有限公司 | 一种初始码率确定方法、装置、电子设备及存储介质 |
CN112672186A (zh) * | 2020-12-09 | 2021-04-16 | 北京达佳互联信息技术有限公司 | 视频预加载的方法和装置 |
CN113784216A (zh) * | 2021-08-24 | 2021-12-10 | 咪咕音乐有限公司 | 视频卡顿识别方法、装置、终端设备以及存储介质 |
CN113784216B (zh) * | 2021-08-24 | 2024-05-31 | 咪咕音乐有限公司 | 视频卡顿识别方法、装置、终端设备以及存储介质 |
CN113726759A (zh) * | 2021-08-25 | 2021-11-30 | 烽火通信科技股份有限公司 | 一种码率自适应方法、装置、设备及可读存储介质 |
CN113766261A (zh) * | 2021-09-06 | 2021-12-07 | 百果园技术(新加坡)有限公司 | 一种确定预拉取时长方法、装置、电子设备及存储介质 |
CN114679438B (zh) * | 2022-03-03 | 2024-04-30 | 上海艾策通讯科技股份有限公司 | 流媒体数据传输方法、装置、计算机设备和存储介质 |
CN114679438A (zh) * | 2022-03-03 | 2022-06-28 | 上海艾策通讯科技股份有限公司 | 流媒体数据传输方法、装置、计算机设备和存储介质 |
CN114900732A (zh) * | 2022-04-25 | 2022-08-12 | 北京奇艺世纪科技有限公司 | 视频缓存方法、装置、电子设备及存储介质 |
CN114900732B (zh) * | 2022-04-25 | 2024-01-12 | 北京奇艺世纪科技有限公司 | 视频缓存方法、装置、电子设备及存储介质 |
CN114979799A (zh) * | 2022-05-20 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 一种全景视频处理方法、装置、设备和存储介质 |
WO2023226757A1 (zh) * | 2022-05-23 | 2023-11-30 | 北京字节跳动网络技术有限公司 | 视频缓存方法、装置、设备及存储介质 |
CN114979768A (zh) * | 2022-05-23 | 2022-08-30 | 北京字节跳动网络技术有限公司 | 视频缓存方法、装置、设备及存储介质 |
CN115190338A (zh) * | 2022-07-05 | 2022-10-14 | 上海哔哩哔哩科技有限公司 | 视频预加载的方法和系统 |
CN115190338B (zh) * | 2022-07-05 | 2024-04-26 | 上海哔哩哔哩科技有限公司 | 视频预加载的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109982159B (zh) | 2021-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109982159A (zh) | 在线播放流媒体的方法和终端 | |
EP3482553B1 (en) | Optimizing user interface data caching for future actions | |
US7856501B2 (en) | Network traffic prioritization | |
US7783773B2 (en) | Glitch-free media streaming | |
US9503491B2 (en) | Playback stall avoidance in adaptive media streaming | |
CN110636339B (zh) | 基于码率的调度方法、装置及电子设备 | |
US11916743B2 (en) | Profile generation for bandwidth management | |
JP6542866B2 (ja) | リアルタイムライブ環境でのバッファに基づく帯域幅測定および適応的データ送信のための方法およびシステム | |
CN105376176B (zh) | 保障移动互联网视频业务服务质量的方法、装置和系统 | |
CN108184152A (zh) | 一种dash传输系统两阶段客户端码率选择方法 | |
CN107920108A (zh) | 一种媒体资源的推送方法、客户端及服务器 | |
US9325761B1 (en) | Content provider selection system | |
US20180048691A1 (en) | Targeted Buffer Priority Management | |
US10284678B2 (en) | Bandwidth management based on profiles | |
CN112968959B (zh) | 一种资源请求方法及终端 | |
CN103826139A (zh) | Cdn系统、观看服务器以及流媒体数据传输方法 | |
CN113163002A (zh) | 一种服务器切换方法、装置及存储介质 | |
CN108023864A (zh) | 流媒体推送方法及装置 | |
CN109688421A (zh) | 请求消息处理方法、装置及系统、服务器、存储介质 | |
US20130297745A1 (en) | Method and device for receiving multimedia data | |
CN114567792A (zh) | 虚拟资源的展示方法、装置、设备、服务器及存储介质 | |
US10990318B2 (en) | Method and system for receiving a data file | |
US20120002565A1 (en) | Communication apparatus, communication system, communication method, and a computer-readable medium | |
US11785075B2 (en) | Method for requesting resources and terminal | |
KR102531647B1 (ko) | 환경인지 기반 abp 성능 개선을 위한 방법, 컴퓨터 시스템, 및 컴퓨터 프로그램 |
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 |