流媒体在线播放方法和装置与流程

文档序号:12378943阅读:429来源:国知局
流媒体在线播放方法和装置与流程

本发明涉及流媒体播放领域,特别是涉及一种流媒体在线播放方法和装置。



背景技术:

流媒体是指采用流式传输的方式在因特网播放的媒体格式。它是指服务提供者将数据包发送到网络上,用户通过解压设备对这些数据包解压后数据就会显示出来。

传统的流媒体在线播放,客户端从网络读取流媒体数据,通过控制流媒体数据读取线程的运行状态,来控制从网络获取数据的速度,因TCP协议存在接收缓存区,当读取了一部分接收缓存区数据后,即使暂停了对内核层中网络流的读取,客户端仍然会从网络中再拉取数据将接收缓存区中已被读取数据所腾出的空间进行填充,直到填满接收缓存区,因此,客户端无法准确控制下载的数据量,导致网络资源的浪费。



技术实现要素:

基于此,有必要针对传统的流媒体在线播放中无法准确控制下载的数据量而导致网络资源浪费的问题,提供一种流媒体在线播放方法和装置,能准确控制下载的数据量,节省网络资源。

一种流媒体在线播放方法,包括:

在开始播放流媒体时,获取并解析分片配置参数,所述分片配置参数包括分片时间点序列和预下载时间;

检测是否满足开启分片缓冲策略的条件;

若满足开启分片缓冲策略的条件,则获取首次缓冲时需要下载流媒体的最小长度,获取所述分片时间点序列中不小于所述最小长度的第一个时间点作为所述首次缓冲的长度,配置当前下载数据的区间范围为0至第一个时间点;

实时检测是否满足开启分片缓冲策略的条件;

若满足开启分片缓冲策略的条件,则判断所述分片时间点序列中是否存在比当前播放时间加上所述预下载时间之和大的最小的时间点,若存在所述最小的时间点,则配置当前下载数据的区间范围的下限为所述最小的时间点相邻的上一个时间点,上限为所述最小的时间点;

若满足开启分片缓冲策略的条件,判断所述分片时间点序列中是否存在与当前播放时间加上所述预下载时间之和相等的时间点,若存在所述相等的时间点,则配置当前下载数据的区别范围的下限为所述相等的时间点,上限为所述相等的时间点相邻的下一个时间点。

一种流媒体在线播放装置,包括:

解析模块,用于在开始播放流媒体时,获取并解析分片配置参数,所述分片配置参数包括分片时间点序列和预下载时间;

第一检测模块,用于检测是否满足开启分片缓冲策略的条件;

获取模块,用于若满足开启分片缓冲策略的条件,则获取首次缓冲时需要下载流媒体的最小长度,获取所述分片时间点序列中不小于所述最小长度的第一个时间点作为所述首次缓冲的长度,配置当前下载数据的区间范围;

所述第一检测模块还用于按照预设间隔时间检测是否满足开启分片缓冲策略的条件;

判断模块,用于若满足开启分片缓冲策略的条件,则判断所述分片时间点序列中是否存在比当前播放时间加上所述预下载时间之和大的最小的时间点;

配置模块,用于若存在所述最小的时间点,配置当前下载数据的区间范围。

上述流媒体在线播放方法和装置,通过获取分片配置参数,检测到满足开启分片缓冲策略的条件时,获取分片时间点序列中不小于最小长度的第一个时间点作为首次缓冲的长度,在开始缓冲之后,检测到满足开启分片缓冲策略的条件,且判断在分片时间点序列中存在比当前播放时间加上预下载时间之和大的最小的时间点,则配置当前下载数据的区间范围的下限为所述最小的时间点相邻的上一个时间点,上限为所述最小的时间点;以及判断所述分片时间点序列中是否存在与当前播放时间加上所述预下载时间之和相等的时间点,若存在所述相等的时间点,则配置当前下载数据的区别范围的下限为所述相等的时间点,上限为所述相等的时间点相邻的下一个时间点,开始下载下一个分片数据,如此流媒体在线播放时实现了分片缓冲,且配置了下载数据的区间范围,能准确控制下载的数据量,节省网络资源,可以避免不必要的流量浪费,节省网络流量。

一种流媒体在线播放方法,包括:

获取分片配置参数,所述分片配置参数包括分片时间点序列;

检测是否满足开启分片缓冲策略的条件;

若满足开启分片缓冲策略的条件,则接收服务器返回的第一分片数据;

检测是否到达所述分片时间点序列中的下一分片所对应的时间点;

若到达下一分片所对应的时间点,则向所述服务器发送下载消息;

接收所述服务器根据所述下载消息发送的下一分片所对应的时间点的数据。

一种流媒体在线播放装置,包括:

参数获取模块,用于获取分片配置参数,所述分片配置参数包括分片时间点序列;

第一检查模块,检测是否满足开启分片缓冲策略的条件;

接收模块,用于若满足开启分片缓冲策略的条件,则接收服务器返回的第一分片数据;

检查模块,用于检测是否到达分片时间点序列中的下一分片所对应的时间点;

发送模块,用于若到达下一分片所对应的时间点,则向所述服务器发送下载消息;

所述接收模块还用于接收所述服务器根据所述下载消息发送的下一分片所对应的时间点的数据。

上述流媒体在线播放方法和装置,通过获取分片配置参数,检测到满足开启分片缓冲策略的条件时,获取第一分片数据,当到达下一分片所对应的时间点时,从服务器下载下一分片所对应的时间点的数据,如此流媒体在线播放时实现了分片缓冲,每次下载下一分片对应的时间点的数据,能准确控制下载的数据量,节省网络资源,可以避免不必要的流量浪费,节省网络流量。

附图说明

图1为一个实施例中流媒体在线播放方法的应用环境示意图;

图2A为一个实施例中终端的内部结构示意图;

图2B为一个实施例中服务器的内部结构示意图;

图3为一个实施例中流媒体在线播放方法的流程图;

图4为另一个实施例中流媒体在线播放方法的流程图;

图5为一个实施例中流媒体在线播放装置的结构框图;

图6为另一个实施例中流媒体在线播放装置的结构框图;

图7为另一个实施例中流媒体在线播放装置的结构框图;

图8为另一个实施例中流媒体在线播放装置的结构框图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为一个实施例中流媒体在线播放方法的应用环境示意图。如图1所示,该应用环境包括终端110和服务器120。终端110和服务器120通过网络进行通信。终端110向服务器120发起播放流媒体请求,服务器120下发分片配置参数到终端110。终端110解析分片配置参数,分片配置参数包括分片时间点序列和预下载时间,在开始播放时,检测到满足开启分片缓冲策略的条件时,获取首次缓冲时需要下载流媒体的最小长度,获取所述分片时间点序列中不小于所述最小长度的第一个时间点作为所述首次缓冲的长度,在开始缓冲之后,实时检测到满足开启分片缓冲策略的条件,判断该分片时间点序列中是否存在比当前播放时间加上预下载时间之和大的最小的时间点,若存在该最小的时间点,则配置当前下载数据的区间范围的下限为所述最小的时间点相邻的上一个时间点,上限为所述最小的时间点;若满足开启分片缓冲策略的条件,判断所述分片时间点序列中是否存在与当前播放时间加上所述预下载时间之和相等的时间点,若存在所述相等的时间点,则配置当前下载数据的区别范围的下限为所述相等的时间点,上限为所述相等的时间点相邻的下一个时间点。

图2A为一个实施例中终端的内部结构示意图。如图2A所示,该终端包括通过系统总线连接的处理器、非易失性存储介质、内存储器、网络接口。其中,终端的非易失性存储介质存储有操作系统,还包括一种流媒体在线播放装置,该流媒体在线播放装置用于实现一种流媒体在线播放方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存储器为非易失性存储介质中的流媒体在线播放装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种流媒体在线播放方法。网络接口用于与服务器进行网络通信,如发送流媒体在线播放请求至服务器,接收服务器返回的流媒体的分片数据等。终端的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是手机、平板电脑或者个人数字助理或穿戴式设备等。本领域技术人员可以理解,图2A中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图2B为一个实施例中服务器(或云端等)的内部结构示意图。如图2B所示,该服务器包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。其中,该服务器的非易失性存储介质存储有操作系统、数据库和流媒体在线播放装置,数据库中存储有流媒体数据,该流媒体在线播放装置用于实现适用于服务器的一种流媒体在线播放方法。该服务器的处理器用于提供计算和控制能力,支撑整个服务器的运行。该服务器的内存储器为非易失性存储介质中的流媒体在线播放装置的运行提供环境,该内存储器中可储存有计算机可读指令,该计算机可读指令被所述处理器执行时,可使得所述处理器执行一种流媒体在线播放方法。该服务器的网络接口用于据以与外部的终端通过网络连接通信,比如接收终端发送的播放请求以及向终端返回流媒体分片数据等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。本领域技术人员可以理解,图2B中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

图3为一个实施例中流媒体在线播放方法的流程图。如图3所示,一种流媒体在线播放方法,运行于终端上,包括:

步骤302,在开始播放流媒体时,获取并解析分片配置参数,该分片配置参数包括分片时间点序列和预下载时间。

本实施例中,终端向服务器发起流媒体播放请求,接收服务器下发的分片配置参数,解析该分片配置参数。服务器将流媒体数据划分为多个分片,并设置分片配置参数,分片配置参数包括分片时间点序列和预下载时间。分片时间点序列是指由分片的时间点按时间顺序排成的序列。分片时间点序列中包括一系列的时间点。每个时间点通常与分片时间序列中上一个时间点之间的数据一起组成一段分片。例如分片时间点序列为[10,20,40,80,160,320,……]等,服务器将流媒体数据的0至10秒划分为第一段分片,10秒至20秒划分为第二段分片,20秒至40秒划分为第三段分片,依次类推。预下载时间是指下载下一分片的提前时间量。例如预下载时间为5秒,以分片时间点序列为20,40,80,160和320为例,当流媒体播放至15秒时,当前播放时间加上预下载时间5秒等于20秒,到达分片时间点序列中的20秒,将下载20至40秒内的数据。

步骤304,检测是否满足开启分片缓冲策略的条件,若是,执行步骤306,若否,执行步骤308。

本实施例中,开启分片缓冲策略的条件可根据需要设定。例如,开启分片缓冲策略的条件可为在预设的开启时段开启,或者在当前网络为预设的网络条件,如在2G、3G或4G网络条件下开启,或者在流媒体的比特率在预设的比特率范围内开启,或者,两种以上条件组合满足时开启。

分片缓冲策略是指将流媒体数据划分为多个分片,以分片形式进行下载缓冲。

步骤306,若满足开启分片缓冲策略的条件,则获取首次缓冲时需要下载流媒体的最小长度,获取该分片时间点序列中不小于该最小长度的第一个时间点作为该首次缓冲的长度,配置当前下载数据的区间范围为0至第一个时间点。

本实施例中,获取首次缓冲时需要下载流媒体的最小长度是指能够播放的最小长度。流媒体可为视频或音频数据。最小长度可根据需要设定或经验计算得到。刚开始缓冲时,在分片时间点序列中查找不小于该最小长度的第一个时间点作为首次缓冲的长度,再配置当前下载数据的区间范围。例如分片时间点序列为[10,20,40],首次缓冲是需要下载流媒体的最小长度为15秒,则该分片时间点序列[10,20,40]中不小于该最小长度15秒的第一个时间点为20秒,因此,首次缓冲的长度为20秒,此时,将当前下载数据的区间范围配置为0-20秒,即下载0至20秒的数据。

当前下载数据区间范围可采用HTTP请求头中的Range字段配置。Range字段是用来控制下载数据的起始和结束位置。例如range字段为0-1023指的是让服务器返回0-1023编号对应的数据。Range字段设置的是数据编号,将配置的当前下载数据的时间点范围计算对应的数据编号范围,例如20秒至40秒范围的数据量,计算20秒和40秒分别对应的数据编号为多少,然后设置range字段为20秒对应的数据编号至40秒对应的数据编号范围。

本实施例中,还设置下载状态标志位,获取下载状态标志位的位置,当配置的当前下载数据的区间范围的上限值大于当前下载的位置时,从当前下载的位置继续下载。下载状态标志位用于表示下载的状态。下载状态标志位的位置表示暂停下载或当前正在下载的数据的位置。

步骤308,实时检测是否满足开启分片缓冲策略的条件,若是,执行步骤310,若否,执行步骤314。

本实施例中,实时是指检测间隔的时间很小,例如可为10毫秒、20毫秒等,不限于此。

若检测不满足开启分片缓冲策略的条件,则清除下载数据的区间范围限制,即清除掉终端之前设置的当前下载数据的区间范围限制。清除下载数据的区间范围限制后,终端若向服务器请求数据时,将不再限制下载数据的区间范围。

步骤310,若满足开启分片缓冲策略的条件,则判断该分片时间点序列中是否存在比当前播放时间加上该预下载时间之和大的最小的时间点,若存在,执行步骤312,若不存在,执行步骤314。

本实施例中,当前播放时间是指当前正在播放的流媒体的时间,例如流媒体在播放到30秒时暂停了,则当前播放时间为第30秒。

终端查找在分片时间点序列中是否存在比当前播放时间加上预下载时间之和大的时间点,若存在比当前播放时间加上预下载时间之和大的时间点,再从中获取最小的时间点,配置当前下载数据的区间范围的下限为所述最小的时间点相邻的上一个时间点,上限为该最小的时间点。例如当前播放时间为14秒,预下载时间为5秒,14秒加上5秒为19秒,分片时间点序列为[10,20,40,80],单位为秒,分片时间点序列中比19秒大的时间点为[20,40,80],选取最小的时间点即20秒,则配置当前下载数据的区别范围为[10,20]。

步骤312,配置当前下载数据的区间范围的下限为所述最小的时间点相邻的上一个时间点,上限为该最小的时间点。

举例说明,分片时间点序列为[10,20,40,80,160,320],预下载时间为5秒,当前播放时间为14秒时,查找当前播放时间加上预下载时间为19秒,在分片时间点序列中存在大于19秒的值为[20,40,80,160,320],取其中最小的20秒对应的数据长度作为当前下载数据的终点,配置当前下载数据的区别范围为[10,20]。终端获取下载状态标志位的位置,将该下载状态标志位的位置与配置的当前下载数据的区间范围比较,若下载状态标志位的位置小于该当前下载数据的区间范围的上限值,则从下载状态标志位的位置起继续下载。

步骤314,清除下载数据的区间范围限制。

本实施例中,当不满足开启分片缓冲策略的条件时不需要对下载数据的区间范围进行限制,清除该下载数据的区间范围限制,保证数据下载。若该分片时间点序列中不存在比当前播放时间加上该预下载时间之和大的最小的时间点时,表明当前播放时间加上预下载时间已经超过了配置的分片数据,此时不需要再进行分片限制,直接下载状态标志位的位置起下载至文件末尾。例如分片时间点序列为[10,20,40,80,160],当前播放时间为156秒,加上预下载时间5秒,得到的和为161秒,超过了分片时间点序列中的最大时间点160,此时不需要再限制分片数据,直接下载后续未下完的全部数据。

步骤316,若满足开启分片缓冲策略的条件,判断该分片时间点序列中是否存在与当前播放时间加上该预下载时间之和相等的时间点,若存在,执行步骤318。

步骤318,配置当前下载数据的区别范围的下限为该相等的时间点,上限为该相等的时间点相邻的下一个时间点。

分片时间点序列为[10,20,40,80,160,320],预下载时间为5秒,当前播放时间为15秒时,查找当前播放时间加上预下载时间为20秒,在分片时间点序列中存在等于20秒的值,取其中20秒相邻的下一个时间点40秒对应的数据作为当前下载数据的终点,配置当前下载数据的区别范围为[20,40]。

获取下载状态标志位的位置,将该下载状态标志位的位置与配置的当前下载数据的区间范围比较,若下载状态标志位的位置小于该当前下载数据的区间范围的上限值,则从下载状态标志位的位置起继续下载。

上述流媒体在线播放方法,通过获取分片配置参数,检测到满足开启分片缓冲策略的条件时,获取分片时间点序列中不小于最小长度的第一个时间点作为首次缓冲的长度,在开始缓冲之后,检测到满足开启分片缓冲策略的条件,且判断在分片时间点序列中存在比当前播放时间加上预下载时间之和大的最小的时间点,则配置当前下载数据的区间范围的下限为所述最小的时间点相邻的上一个时间点,上限为所述最小的时间点,若满足开启分片缓冲策略的条件,判断该分片时间点序列中是否存在与当前播放时间加上该预下载时间之和相等的时间点,若存在该相等的时间点,则配置当前下载数据的区别范围的下限为所述相等的时间点,上限为该相等的时间点相邻的下一个时间点,开始下载下一个分片数据,如此流媒体在线播放时实现了分片缓冲,且配置了下载数据的区间范围,能准确控制下载的数据量,节省网络资源,可以避免不必要的流量浪费,节省网络流量。通过分片缓冲数据,可以节省终端和服务器的接口操作,能够节省能源。

在一个实施例中,该分片配置参数还包括网络条件、码率系数和开启时段。

网络条件是指用于控制客户端在哪些网络连接条件下需要开启分片缓冲策略。例如在2G、3G、4G、wifi网络或其他运营商网络下开启分片缓冲策略等。

码率系数是用来计算时长对应文件长度的系数。因为对于可变码率,某段时间范围的平均码率会高于整体的平均码率,对与这段时间,用平均码率计算出来的时间对应文件长度将小于实际满足解码要求的文件长度,导致二次缓冲发生,通过该码率系数可以避免二次缓冲发生。

开启时段是用于控制客户端在每天的何时将开启分片缓冲策略,如在22时00分至23时30分开启。

该检测是否满足开启分片缓冲策略的条件,包括(1)~(4):

(1)获取当前时间,判断该当前时间是否处于该开启时段内。

当前时间是指终端所在地的时间。

(2)获取当前网络,判断该当前网络是否满足该网络条件。

当前网络是指终端当前所使用的网络类型。

(3)获取流媒体的比特率,判断该比特率是否满足开启分片缓冲策略的比特率条件。

开启分片缓冲策略的比特率条件可为低于预定比特率,则开启分片缓冲策略。比特率是指每秒传送的比特数。

(4)若该当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件中至少一条满足,则满足开启分片缓冲策略的条件。

当前时间处于开启时段内、当前网络满足网络条件、流媒体的比特率满足开启分片缓冲策略的比特率条件等中一条满足,则满足开启分片缓冲策略的条件。

在一个实施例中,同时满足当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件时,为满足开启分片缓冲策略的条件。

在一个实施例中,同时满足当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件中的任意两条时,为满足开启分片缓冲策略的条件。

在一个实施例中,上述流媒体在线播放方法还包括:检测在播放过程中是否发生了二次缓冲或网络错误;若发生了二次缓冲或网络错误,则停止该分片缓冲策略,进入分片关闭状态。

本实施例中,二次缓冲是指播放流媒体数据时,由于数据不足导致解码等待,需要等待缓冲更多数据的情况。分片关闭状态是指停止分片缓冲策略的状态。

检测在播放过程中是否发生二次缓冲的步骤包括:检测在播放过程中是否接收到约定的第一错误码且网络连接未断开,若是,则认为发生了二次缓冲。第一错误码是用于表示发生了二次缓冲的。

网络错误是指网络连接异常断开时发生了网络错误。检测在播放过程中是否发生了网络错误的步骤包括:检测在播放过程中是否接收到约定的第二错误码,若是,则认为发生了网络错误。第二错误码是用于表示发生了网络错误。

在发生了二次缓冲或网络错误之后,关闭分片缓冲策略,可以保证用户不会因为慢速网络而被多次限速。

在一个实施例中,上述流媒体在线播放方法还包括:从进入分片关闭状态开始倒计时,当该倒计时的时长为零时,重新开启该分片缓冲策略,进入分片开启状态。

本实施例中,预先设定倒计时的时长。分片开启状态是指分片缓冲策略开启的状态。

在一个实施例中,上述流媒体在线播放方法还包括:检测在该分片关闭状态期间是否发生了二次缓冲或网络错误;若发生了二次缓冲或网络错误,则增加重新开启该分片缓冲策略的倒计时时长;若发生了二次缓冲或网络错误的次数小于次数阈值,则该倒计时的时长与该次数正相关;若发生了二次缓冲或网络错误的次数不小于次数阈值,则该倒计时的时长与该次数阈值相关。

本实施例中,二次缓冲是指播放流媒体数据时,由于数据不足导致解码等待,需要等待缓冲更多数据的情况。次数阈值是指允许进行增加倒计时的时长的最大次数。

检测在播放过程中是否发生二次缓冲的步骤包括:检测在播放过程中是否接收到约定的第一错误码且网络连接未断开,若是,则认为发生了二次缓冲。第一错误码是用于表示发生了二次缓冲的。

网络错误是指网络连接异常断开时发生了网络错误。检测在播放过程中是否发生了网络错误的步骤包括:检测在播放过程中是否接收到约定的第二错误码,若是,则认为发生了网络错误。第二错误码是用于表示发生了网络错误。

分片配置参数还可包括重新开启分片的时间基数和系数,用于在发生二次缓冲或网络错误时,计算重新开启分片缓冲策略的倒计时的时长。

在分片关闭状态期间,再次发生了二次缓冲或网络错误,将会增加重新开启分片缓冲策略的倒计时的时长,倒计时的时长计算公式(1)可为:

公式(1)中,t为重新开启分片缓冲策略的倒计时的时长;n为分片关闭状态中,发生二次缓冲或网络错误的次数;max为n的最大值,即次数阈值;a为重新开启分片的时间基数;b为重新开启分片的时间系数。

此外,在分片关闭状态期间切换流媒体源,甚至是重新启动应用,并不会影响重新开启分片缓冲策略的倒计时的时长,这样可以保证网络状态差的用户不会重复开启分片缓冲策略。

图4为另一个实施例中流媒体在线播放方法的流程图。如图4所示,一种流媒体在线播放方法,包括:

步骤402,获取分片配置参数,该分片配置参数包括分片时间点序列。

本实施例中,终端向服务器发起流媒体播放请求,接收服务器下发的分片配置参数,解析该分片配置参数。服务器将流媒体数据划分为多个分片,并设置分片配置参数。分片时间点序列是指由分片时间点按时间顺序排成的序列。分片时间点序列中包括一系列的时间点。每个时间点通常与分片数组中上一个分片一起组成一段分片。例如分片时间点序列为[10,20,40,80,160,320,……]等。该分片时间点序列可为将HTTP请求头中的Range字段的区间范围进行分片。

步骤404,检测是否满足开启分片缓冲策略的条件。

本实施例中,开启分片缓冲策略的条件可根据需要设定。例如,开启分片缓冲策略的条件可为在预设的开启时段开启,或者在当前网络为预设的网络条件,如在2G、3G或4G网络条件下开启,或者在流媒体的比特率在预设的比特率范围内开启,或者,两种以上条件组合满足时开启。

分片缓冲策略是指将流媒体数据划分为多个分片,以分片形式进行下载缓冲。

步骤406,若满足开启分片缓冲策略的条件,则接收服务器返回的第一分片数据。

本实施例中,终端向服务器发起连接请求,服务器接收到连接请求后,返回第一分片数据给终端。第一分片数据是指分片配置参数中第一个时间点所对应的分片数据。

步骤408,检测是否到达该分片时间点序列中的下一分片所对应的时间点。

本实施例中,检测当前播放时间是否到达分片时间点序列中的下一分片所对应的时间点。当前播放时间是指当前正在播放的流媒体的时间,例如流媒体在播放到30秒时暂停了,则当前播放时间为第30秒。

分片时间点序列为[10,20,40,80,160,320],当前播放时间为20秒时,到达了下一分片所对应的时间点20,则下载下一分片20至40秒的数据。

步骤410,若到达下一分片所对应的时间点,则向服务器发送下载消息。

本实施例中,到达下一分片所对应的时间点时,根据自定义协议发送给服务器一个下载消息。

步骤412,接收该服务器根据该下载消息发送的下一分片所对应的时间点的数据。

上述流媒体在线播放方法,通过获取分片配置参数,检测到满足开启分片缓冲策略的条件时,获取第一分片数据,当到达下一分片所对应的时间点时,从服务器下载下一分片所对应的时间点的数据,如此流媒体在线播放时实现了分片缓冲,每次下载下一分片对应的时间点的数据,能准确控制下载的数据量,节省网络资源,可以避免不必要的流量浪费,节省网络流量。通过分片缓冲数据,可以节省终端和服务器的接口操作,能够节省能源。

上述流媒体在线播放方法可适用于流媒体的试播或试听场景中,例如一首歌只试听前几秒,或一个视频只播放头几分钟,可以避免不必要的流量浪费。

再者,图3和图4中的流媒体在线播放方法可灵活控制下载的数据量,在一个分片的时间点所对应的数据下载过程中,不会控制下载速度,避免了低速连接导致连接被服务器主动断开。

在一个实施例中,该分片配置参数还包括网络条件、码率系数和开启时段。

网络条件是指用于控制客户端在哪些网络连接条件下需要开启分片缓冲策略。例如在2G、3G、4G、wifi网络或其他运营商网络下开启分片缓冲策略等。

码率系数是用来计算时长对应文件长度的系数。因为对于可变码率,某段时间范围的平均码率会高于整体的平均码率,对与这段时间,用平均码率计算出来的时间对应文件长度将小于实际满足解码要求的文件长度,导致二次缓冲发生,通过该码率系数可以避免二次缓冲发生。

开启时段是用于控制客户端在每天的何时将开启分片缓冲策略,如在22时00分至23时30分开启。

该检测是否满足开启分片缓冲策略的条件,包括(1)~(4):

(1)获取当前时间,判断该当前时间是否处于该开启时段内。

当前时间是指终端所在地的时间。

(2)获取当前网络,判断该当前网络是否满足该网络条件。

当前网络是指终端当前所使用的网络类型。

(3)获取流媒体的比特率,判断该比特率是否满足开启分片缓冲策略的比特率条件。

开启分片缓冲策略的比特率条件可为低于预定比特率,则开启分片缓冲策略。比特率是指每秒传送的比特数。

(4)若该当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件中至少一条满足,则满足开启分片缓冲策略的条件。

当前时间处于开启时段内、当前网络满足网络条件、流媒体的比特率满足开启分片缓冲策略的比特率条件等中一条满足,则满足开启分片缓冲策略的条件。

在一个实施例中,同时满足当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件时,为满足开启分片缓冲策略的条件。

在一个实施例中,同时满足当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件中的任意两条时,为满足开启分片缓冲策略的条件。

在一个实施例中,上述流媒体在线播放方法还包括:检测在播放过程中是否发生了二次缓冲或网络错误;若发生了二次缓冲或网络错误,则停止该分片缓冲策略,进入分片关闭状态。

本实施例中,二次缓冲是指播放流媒体数据时,由于数据不足导致解码等待,需要等待缓冲更多数据的情况。分片关闭状态是指停止分片缓冲策略的状态。

检测在播放过程中是否发生二次缓冲的步骤包括:检测在播放过程中是否接收到约定的第一错误码且网络连接未断开,若是,则认为发生了二次缓冲。第一错误码是用于表示发生了二次缓冲的。

网络错误是指网络连接异常断开时发生了网络错误。检测在播放过程中是否发生了网络错误的步骤包括:检测在播放过程中是否接收到约定的第二错误码,若是,则认为发生了网络错误。第二错误码是用于表示发生了网络错误。

在发生了二次缓冲或网络错误之后,关闭分片缓冲策略,可以保证用户不会因为慢速网络而被多次限速。

在一个实施例中,上述流媒体在线播放方法还包括:从进入分片关闭状态开始倒计时,当该倒计时的时长为零时,重新开启该分片缓冲策略,进入分片开启状态。

本实施例中,预先设定倒计时的时长。分片开启状态是指分片缓冲策略开启的状态。

在一个实施例中,上述流媒体在线播放方法还包括:检测在该分片关闭状态期间是否发生了二次缓冲或网络错误;若发生了二次缓冲或网络错误,则增加重新开启该分片缓冲策略的倒计时时长;若发生了二次缓冲或网络错误的次数小于次数阈值,则该倒计时的时长与该次数正相关;若发生了二次缓冲或网络错误的次数不小于次数阈值,则该倒计时的时长与该次数阈值相关。

本实施例中,二次缓冲是指播放流媒体数据时,由于数据不足导致解码等待,需要等待缓冲更多数据的情况。次数阈值是指允许进行增加倒计时的时长的最大次数。

检测在播放过程中是否发生二次缓冲的步骤包括:检测在播放过程中是否接收到约定的第一错误码且网络连接未断开,若是,则认为发生了二次缓冲。第一错误码是用于表示发生了二次缓冲的。

网络错误是指网络连接异常断开时发生了网络错误。检测在播放过程中是否发生了网络错误的步骤包括:检测在播放过程中是否接收到约定的第二错误码,若是,则认为发生了网络错误。第二错误码是用于表示发生了网络错误。

分片配置参数还可包括重新开启分片的时间基数和系数,用于在发生二次缓冲或网络错误时,计算重新开启分片缓冲策略的倒计时的时长。

在分片关闭状态期间,再次发生了二次缓冲或网络错误,将会增加重新开启分片缓冲策略的倒计时的时长,倒计时的时长计算公式(1)可为:

公式(1)中,t为重新开启分片缓冲策略的倒计时的时长;n为分片关闭状态中,发生二次缓冲或网络错误的次数;max为n的最大值,即次数阈值;a为重新开启分片的时间基数;b为重新开启分片的时间系数。

此外,在分片关闭状态期间切换流媒体源,甚至是重新启动应用,并不会影响重新开启分片缓冲策略的倒计时的时长,这样可以保证网络状态差的用户不会重复开启分片缓冲策略。

上述流媒体在线播放方法可适用于流媒体的试播或试听场景中,例如一首歌只试听前几秒,或一个视频只播放头几分钟,可以避免不必要的流量浪费。

图5为一个实施例中流媒体在线播放装置的结构框图。如图5所示,一种流媒体在线播放装置,运行于终端上,为实现图3中的流媒体在线播放方法所构建的装置,包括解析模块502、第一检测模块504、获取模块506、判断模块508和配置模块510。其中:

解析模块502用于在开始播放流媒体时,获取并解析分片配置参数,所述分片配置参数包括分片时间点序列和预下载时间。

第一检测模块504用于检测是否满足开启分片缓冲策略的条件。

获取模块506用于若满足开启分片缓冲策略的条件,则获取首次缓冲时需要下载流媒体的最小长度,获取所述分片时间点序列中不小于所述最小长度的第一个时间点作为所述首次缓冲的长度。

第一检测模块504还用于在开始缓冲之后,实时检测是否满足开启分片缓冲策略的条件。

判断模块508用于若满足开启分片缓冲策略的条件,判断该分片时间点序列中是否存在比当前播放时间加上所述预下载时间之和大的最小的时间点,以及判断所述分片时间点序列中是否存在与当前播放时间加上所述预下载时间之和相等的时间点。

配置模块510用于若存在所述最小的时间点,配置当前下载数据的区间范围的下限为所述最小的时间点相邻的上一个时间点,上限为所述最小的时间点;以及若存在所述相等的时间点,则配置当前下载数据的区别范围的下限为所述相等的时间点,上限为所述相等的时间点相邻的下一个时间点。

上述流媒体在线播放装置,通过获取分片配置参数,检测到满足开启分片缓冲策略的条件时,获取分片时间点序列中不小于最小长度的第一个时间点作为首次缓冲的长度,在开始缓冲之后,检测到满足开启分片缓冲策略的条件,且判断在分片时间点序列中存在比当前播放时间加上预下载时间之和大的最小的时间点,则配置当前下载数据的区间范围,如此流媒体在线播放时实现了分片缓冲,且配置了下载数据的区间范围,能准确控制下载的数据量,节省网络资源,可以避免不必要的流量浪费,节省网络流量。通过分片缓冲数据,可以节省终端和服务器的接口操作,能够节省能源。

在一个实施例中,该分片配置参数还包括网络条件、码率系数和开启时段。

该第一检测模块504还用于获取当前时间,判断该当前时间是否处于该开启时段内;获取当前网络,判断该当前网络是否满足该网络条件;以及获取流媒体的比特率,判断该比特率是否满足开启分片缓冲策略的比特率条件。

若该当前时间处于该开启时段内、该当前网络满足该网络条件且该流媒体的比特率满足开启分片缓冲策略的比特率条件中至少一个条件满足,则满足开启分片缓冲策略的条件。

在一个实施例中,同时满足当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件时,为满足开启分片缓冲策略的条件。

在一个实施例中,同时满足当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件中的任意两条时,为满足开启分片缓冲策略的条件。

图6为另一个实施例中流媒体在线播放装置的结构框图。如图6所示,一种流媒体在线播放装置,运行于终端上,为实现图3中的流媒体在线播放方法所构建的装置,除了包括解析模块502、第一检测模块504、获取模块506、判断模块508和配置模块510,还包括第二检测模块512、第一关闭模块514、第一计时模块516、第一开启模块518和第一增加模块520。其中:

第二检测模块512用于检测在播放过程中是否发生了二次缓冲或网络错误。

第一关闭模块514用于若发生了二次缓冲或网络错误,则停止该分片缓冲策略,进入分片关闭状态。

第一计时模块516用于从关闭该分片缓冲策略开始倒计时。

第一开启模块518用于当该倒计时时长为零时,重新开启该分片缓冲策略,进入分片开启状态。

该第二检测模块512还用于检测在该分片关闭状态期间是否发生了二次缓冲或网络错误。

第一增加模块520用于若发生了二次缓冲或网络错误,则增加重新开启该分片缓冲策略的倒计时时长。若发生了二次缓冲或网络错误的次数小于次数阈值,则该倒计时时长与该次数正相关;若发生了二次缓冲或网络错误的次数不小于次数阈值,则该倒计时时长与该次数阈值相关。

在其他实施例中,上述流媒体在线播放装置可包括解析模块502、第一检测模块504、获取模块506、判断模块508、配置模块510、第二检测模块512、第一关闭模块514、第一计时模块516、第一开启模块518和第一增加模块520任意可能的组合。

图7为另一个实施例中流媒体在线播放装置的结构框图。如图7所示,一种流媒体在线播放装置,运行于终端上,为实现图4中的流媒体在线播放方法所构建的装置,包括参数获取模块702、第一检查模块704、接收模块706和发送模块708。其中:

参数获取模块702用于获取分片配置参数,该分片配置参数包括分片时间点序列。

第一检查模块704检测是否满足开启分片缓冲策略的条件。

接收模块706用于若满足开启分片缓冲策略的条件,则接收服务器返回的第一分片数据。

第一检查模块704用于检测是否到达分片时间点序列中的下一分片时间点。

发送模块708用于若到达下一分片时间点,则向该服务器发送下载消息。

接收模块706还用于接收该服务器根据该下载消息发送的下一分片时间点的数据。

在一个实施例中,该分片配置参数还包括网络条件、码率系数和开启时段。

该第一检查模块704还用于获取当前时间,判断该当前时间是否处于该开启时段内;获取当前网络,判断该当前网络是否满足该网络条件;以及获取流媒体的比特率,判断该比特率是否满足开启分片缓冲策略的比特率条件。

若该当前时间处于该开启时段内、该当前网络满足该网络条件且该流媒体的比特率满足开启分片缓冲策略的比特率条件中至少一个条件满足,则满足开启分片缓冲策略的条件。

在一个实施例中,同时满足当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件时,为满足开启分片缓冲策略的条件。

在一个实施例中,同时满足当前时间处于该开启时段内、该当前网络满足该网络条件和该流媒体的比特率满足开启分片缓冲策略的比特率条件中的任意两条时,为满足开启分片缓冲策略的条件。

图8为另一个实施例中流媒体在线播放装置的结构框图。如图8所示,一种流媒体在线播放装置,运行于终端上,为实现图4中的流媒体在线播放方法所构建的装置,除了包括参数获取模块702、第一检查模块704、接收模块706和发送模块708,还包括第二检查模块710、第二关闭模块712、第二计时模块714、第二开启模块716和第二增加模块718。其中:

第二检查模块710用于检测在播放过程中是否发生了二次缓冲或网络错误。

第二关闭模块712用于若发生了二次缓冲或网络错误,则停止该分片缓冲策略,进入分片关闭状态。

第二计时模块714用于从关闭该分片缓冲策略开始倒计时。

第二开启模块716用于当该倒计时时长为零时,重新开启该分片缓冲策略,进入分片开启状态。

该第二检查模块710还用于检测在该分片关闭状态期间是否发生了二次缓冲或网络错误。

第二增加模块718用于若发生了二次缓冲或网络错误,则增加重新开启该分片缓冲策略的倒计时时长。若发生了二次缓冲或网络错误的次数小于次数阈值,则该倒计时时长与该次数正相关;若发生了二次缓冲或网络错误的次数不小于次数阈值,则该倒计时时长与该次数阈值相关。

在其他实施例中,上述流媒体在线播放装置可包括参数获取模块702、第一检查模块704、接收模块706、发送模块708、第二检查模块710、第二关闭模块712、第二计时模块714、第二开启模块716和第二增加模块718任意可能的组合。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1