本发明涉及视频播放领域,尤其涉及一种视频断点续播方法及显示设备。
背景技术:
在网络视频播放功能上,起播速度一直是一个非常重要的体验指标。而影响网络视频起播速度的因素较多,比如网络带宽、服务器性能、播放器客服端的平台性能、播放器客户端本身的应用架构等都会对起播速度产生影响。
基于此问题,在用户带宽与视频提供商的服务器性能不可控制的条件下,已有技术中基本都是从客户端角度出发,优化客户端进行加速。而针对客户端的优化,基本将目标锁定在平台底层播放器上,比如在平台上缓冲较少的数据即开始起播等。
针对平台上做的各种优化,虽然对网络视频的加速起播有一定的优化作用,但是,性能优化可以是多方向的。在网络视频断点续播的起播方面却没有进行优化的方法,尤其是基于HLS协议网络视频断点续播的起播方面。
技术实现要素:
本发明实施例的目的是提供一种视频断点续播方法及显示设备,在基于HLS协议实现基础上,可以提高网络视频断点续播的起播速度,提高用户体验。
本发明实施例的目的是通过以下技术方案实现的:
本发明实施例提出了一种视频断点续播方法,包括以下步骤:
获取待续播视频的下载路径和续播时间点参数;
根据所述下载路径和所述续播时间点参数,下载所述续播时间点参数对应的续播视频片段;
解析所述续播视频片段,确定解码方式;
根据所述解码方式,播放所述续播视频片段。
另一方面,本发明实施例还提出了一种显示设备,包括:
获取模块,用于获取待续播视频的下载路径和续播时间点参数;
第一下载模块,用于根据所述下载路径和所述续播时间点参数,下载所述续播时间点参数对应的续播视频片段;
第一解析模块,用于对所述续播视频片段进行解析,确定解码方式;
播放模块,用于根据所述解码方式,播放所述续播视频片段。
本发明实施例的有益效果如下: 本发明实施例提供的视频断点续播方法及显示设备,通过在获取待续播视频的下载路径时一并获取续播时间点参数,根据下载路径和续播时间点参数,直接下载续播时间点参数对应的续播视频片段,对续播视频片段进行解析确定解码方式,并且对续播视频片段用该解码方式进行解码并播发,不需要像现有技术那样,先下载待续播视频的第一个视频片段,对第一个视频片段进行解析,确定解码方式,而后再去获取续播时间点参数,下载续播时间点参数对应的续播视频片段,从该续播视频片段开始播放。这样直接下载续播时间点参数对应的续播视频数据,对它来进行解析确定解码方式,省去了一次下载第一段视频片段的步骤,从而节省了一次下载时间,提高了起播速度,并增加了用户体验的满意度。
附图说明
图1为现有技术提供的一种视频断点续播方法流程图;
图2为本发明实施例提供的视频断点续播方法流程图;
图3为本发明实施例提供的另一种视频断点续播方法流程图;
图4为本发明实施例提供的又一种视频断点续播方法流程图;
图5为本发明实施例提供的一种显示设备的装置示意图;
图6为本发明实施例提供的另一种显示设备的装置示意图;
图7为本发明实施例提供的又一种显示设备的装置示意图。
具体实施方式
下面结合附图和实施例对现有技术中提供的一种视频断点续播的方法进行详细地说明。
HLS(HTTP Live Streaming),Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。通常包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。
现有的Android系统的多媒体框架给上层应用提供了一整套规范化的开发流程,在该框架中,Android将播放器的调用时序进行了规定,播放器类应用只有按照指定的时序执行才能完成一次网络视频断点续播。
如图1所示,是目前的Android多媒体框架下一次HLS协议的网络视频的断点续播的起播流程,其具体实现方式如下:
首先创建播放器,而后设置播放源,即设置下载路径(URL),再次,进行播放前的准备工作,在准备工作完成后,播放续播片段。而在“播放器的准备工作”中,又分为以下几步:“下载、解析播放列表”、“下载列表中第一个播放片段”、“解析第一个播放片段并设置解码器”、“seek定位”、“下载seek续播片段”。其中,seek操作指的是从上一次记录的播放位置开始播放,seek定位指的是获得上一次记录的播放断点对应的续播时间点参数。下载seek续播片段指的是下载该续播时间点参数对应的续播片段。这些环节都是需要一定的执行时间的,甚至是一些联网的耗时操作,因此导致视频断点续播的起播时间较长。
本发明实施例中的方法,通过对视频断点续播的起播流程的优化,旨在解决上述视频断点续播的起播时间较长的问题。
本发明实施例中涉及到的显示设备包括但不限于电视、手机、IPAD、笔记本电脑等显示设备。
图2为本发明视频断点续播方法一实施例的流程示意图。如图2所示,本实施例的方法,包括:
步骤201、获取待续播视频的下载路径和续播时间点参数;
步骤202:根据下载路径和续播时间点参数,下载续播时间点参数对应的续播视频片段;
步骤203、解析续播视频片段,确定解码方式;
这里,具体地,可以为解析续播视频片段,确定其对应的编码方式,根据该编码方式确定解码方式。
其中,编码方式可以为MPEG-4、H264等等。解码方式为与编码方式对应的解码方式。
步骤204、根据解码方式,播放续播视频片段。
本发明实施例提供的视频断点续播方法,通过在获取待续播视频的下载路径时一并获取续播时间点参数,根据下载路径和续播时间点参数,直接下载续播时间点参数对应的续播视频片段,对续播视频片段进行解析确定解码方式,并且对续播视频片段用该解码方式进行解码并播发,不需要像现有技术那样,先下载待续播视频的第一个视频片段,对第一个视频片段进行解析,确定解码方式,而后再去获取续播时间点参数,下载续播时间点参数对应的续播视频片段,从该续播视频片段开始播放。这样直接下载续播时间点参数对应的续播视频数据,对它来进行解析确定解码方式,省去了一次下载第一段视频片段的步骤,从而节省了一次下载时间,提高了起播速度,并增加了用户体验的满意度。
在上述实施例的基础上,本实施例中,为了实现下载续播时间点参数对应的续播视频片段,则在步骤201之前还可以进行如下操作:
下载待续播视频对应的播放列表文件;
相应的,步骤201中的下载续播时间点参数对应的续播视频片段,具体可以通过如下方式实现:
对播放列表文件进行解析,获取续播时间点参数对应的续播视频片段的下载路径;
根据续播视频片段的下载路径,下载续播视频片段。
具体地,本实施例中,基于HLS协议实现时,续播视频片段即为ts片段,为了实现下载续播视频片段,则在下载之前,需要先下载待续播视频对应的播放列表文件,该播放列表文件中包含各个视频片段的下载路径,即URL,找到续播时间点参数对应的续播视频片段的下载路径,按照此下载路径下载续播视频片段。
可选地,待续播视频的其余视频片段也是根据解析播放列表文件得到的下载路径,进行下载并播放的。
例如,通过网络下载播放列表文件时,访问的地址是:http://v.com/playlist.m3u8,各个视频片段的文件地址(下载路径)大致如下:http://v.com/00001.ts,http://v.com/00002.ts,依次类推。
与图2所示的实施例相比,本实施例的目的在于对视频断点续播方法做进一步补充说明,并具体说明如何断点续播待续播视频。
在上述实施例的基础上,本实施例中,可选地,作为一种可实施的方式,步骤203具体可以通过如下方式实现:
解析续播视频片段,确定编码方式,根据编码方式确定对应的解码方式。
可选地,步骤204具体可以通过如下方式实现:
根据编码方式对应的解码方式对续播视频片段进行解码,并从续播视频片段开始播放。
具体地,在续播视频片段的播放过程中,可以边播放边下载其余的待续播视频的视频片段,然后进行解码并播放。
可选地,作为另一种可实施的方式,步骤201之前还可以进行如下操作:
应用分别获取待续播视频的下载路径和续播时间点参数,应用将待续播视频的下载路径和续播时间点参数发送给播放器。
此处的应用可以为聚好看、聚好学等应用,也可以为其他支持播放器进行音视频播放的应用,本发明实施例对此并不做具体限定。
具体地,在实际应用中,可以对用户之前播放的视频的内容进行记录,例如记录视频的播放位置,如13分50秒处的播放位置,用户在下次对该视频进行播放时,获取该视频的播放位置,即续播时间点参数。
具体地,应用接收到用户对待续播视频的播放请求,应用向服务器发送待续播视频的播放请求,服务器在接收到该播放请求后,返回给应用待续播视频的下载路径,即URL。应用在接收到下载路径后,并获取续播时间点参数,对该下载路径和该续播时间点参数进行设置,然后将下载路径和续播时间点参数一起发送给播放器。
图3为本发明视频断点续播方法另一实施例的流程图,图4为本发明实施例的起播流程的示意图。如图3所示,本实施例的方法,可以包括如下步骤:
步骤301、创建待续播视频对应的播放器实例;
步骤302、通过调用播放器实例的接口函数设置播放列表文件的下载路径和续播时间点参数;
步骤303、根据播放列表文件的下载路径,下载播放列表文件;
步骤304、对播放列表文件进行解析,获取续播时间点参数对应的续播视频片段的下载路径;
步骤305、根据续播视频片段的下载路径,下载续播视频片段;
步骤306、解析下载的续播视频片段,确定解码方式;
步骤307、根据解码方式播放续播视频片段。
具体的,本实施例的方法可以基于HLS协议实现,首先创建待续播视频对应的播放器实例;通过调用该播放器实例的接口函数设置播放列表文件的下载路径和续播时间点参数。
例如,创建播放器实例:
MediaPlayer mp=new MediaPlayer();
设置播放列表文件的下载路径和续播时间点参数:
mp.setDataSource(“aa”,“615”);其中,“aa”例如可以是本地下载路径或网络下载路径,续播时间点参数通常以秒为单位,在设置续播时间点参数的时候,直接以秒的数值进行设置,此处的615表示615秒,即视频断点时间为615秒,也即10分15秒的位置。
然后,根据上述播放列表文件的下载路径下载播放列表文件;该播放列表文件中包含各个视频片段的下载路径。
在下载续播视频片段时,先解析得到续播时间点参数对应的续播视频片段的下载路径,根据得到的续播视频片段的下载路径,进行下载续播视频片段。
然后,根据下载的续播视频片段解析得到待续播视频的解码方式;
最后,根据解码方式播放待续播视频。
具体地,播放待续播视频指的是对续播视频片段进行解码并开始播放。
可选地,获取续播时间点参数对应的续播视频片段的下载路径具体为:
确定播放列表文件中每段视频片段的播放时长;
根据每段视频片段的播放时长,确定续播时间点参数对应的续播视频片段。
此处对于如何获取到续播时间点参数对应的续播视频片段进行详细举例说明。
假设,下载到的待续播视频的播放列表文件,即m3u8文件,对其进行解析,得到的内容如下:
第1个视频片段是1.ts,播放时长是10s,
第2个视频片段是2.ts,播放时长是11s,
第3个视频片段是3.ts,播放时长是9s,
第4个视频片段是4.ts,播放时长是11s,
……
获取到的续播时间点参数为30s,因为,第1个视频片段播放时长加上第2个视频片段播放时长加上第3个视频片段的播放时长后的总时长为:10s+11s+9s=30s,正好等于续播时间点参数对应的时长,续播时间点参数对应的续播视频片段为第4个视频片段,即找到第4个视频片段的下载路径,下载第4个视频片段,并进行解码和播放。
再比如:
下载到的待续播视频的播放列表文件,即m3u8文件,对其进行解析,得到的内容如下:
#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:10,
1.ts
#EXTINF:11,
2.ts
#EXTINF:9,
3.ts
#EXTINF:11,
4.ts
#EXTINF:11,
5.ts
#EXT-X-ENDLIST
获取到的续播时间点参数为25s,因为,第1个视频片段播放时长加上第2个视频片段播放时长的播放时长后的总时长为:10s+11s=21s,第3个视频片段的播放时长为9s,前三个视频片段的总播放时长为:10s+11s+9s=30s,续播时间点参数对应的播放时长介于21s到30s之间,则续播时间点参数对应的续播视频片段为第3个视频片段,即找到第3个视频片段的下载路径,下载第3个视频片段,并进行解码和播放。
如图4所示,创建播放器实例,即创建待播放的视频对应的播放器实例;设置播放源,即通过调用该播放器实例的接口函数设置播放列表文件的下载路径和续播时间点参数;并进行播放前准备工作,在准备工作中,在下载播放列表文件并对播放列表文件进行解析后,直接根据解析的结果寻找到续播时间点参数对应的续播视频片段,而不是下载第一个续播视频片段,而后对该续播视频片段进行解析,确定解码方式,并用该解码方式进行解码并播放。
以基于HLS协议实现为例,视频的ts片段的属性通常是一致的,这里的属性指的是编码方式、解码方式。这样,我们下载视频的第一个视频片段与下载续播时间点参数对应的续播视频片段的编码方式、解码方式也通常是一致的。基于此机理,我们直接下载续播时间点参数对应的续播视频片段,对它进行解析确定解码方式就可以确定待续播视频的解码方式,从而省去了再一次下载第一个视频片段的时间,这样就提高了续播视频的起播速度,减少了起播时间。
本实施例的方法,与图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图5为本发明显示设备一实施例的结构示意图。如图5所示,本实施例的显示设备,包括:
获取模块501、第一下载模块502、第一解析模块503、播放模块504;
其中,获取模块501,用于获取待续播视频的下载路径和续播时间点参数;
第一下载模块502,用于根据该待续播视频的下载路径,下载续播时间点参数对应的续播视频片段;
第一解析模块503,用于对该续播视频片段进行解析,确定解码方式;
播放模块504,用于根据该解码方式,播放续播视频片段。
图6为本发明显示设备另一实施例的结构示意图。如图6所示,在图5所示的结构基础上,本实施例中,可选地,作为一种可实施的方式,还包括:
第二下载模块505,用于根据待续播视频的下载路径,下载待续播视频对应的播放列表文件;
第二解析模块506,用于对播放列表文件进行解析,获取续播时间点参数对应的续播视频片段的下载路径;
相应的,第一下载模块502,用于根据续播时间点参数对应的续播视频片段的下载路径,下载续播视频片段。
可选地,作为一种可实施的方式,所述播放模块504,具体用于:
根据续播视频片段的解码方式对该续播视频片段进行解码,并播放。
可选地,作为一种可实施的方式,本实施例中,还可以包括:
创建模块507,用于创建待续播视频对应的播放器实例;
设置模块508,通过调用所该播放器实例的接口函数设置播放列表文件的下载路径和续播时间点参数;
相应的,第二下载模块505,具体用于:
根据播放列表文件的下载路径,下载播放列表文件。
可选地,还包括发送模块509,用于在应用分别获取待续播视频的下载路径和续播时间点参数后,将待续播视频的下载路径和续播时间点参数发送给播放器。
对应的,获取模块501,用于接收应用发送的待续播视频的下载路径和续播时间点参数。
具体地,应用通过调用播放器实例的接口函数设置待续播视频的下载路径和续播时间点参数,而后发送给播放器。
可选地,第二解析模块506中,所述获取续播时间点参数对应的续播视频片段具体为:确定所述播放列表文件中每段视频片段的播放时长;
根据每段视频片段的播放时长,确定续播时间点参数对应的续播视频片段。
本实施例的显示设备,可以用于执行如图2所示方法实施例的技术方案。
本发明实施例提供的显示设备,通过在获取待续播视频的下载路径时一并获取续播时间点参数,根据下载路径和续播时间点参数,直接下载续播时间点参数对应的续播视频片段,对续播视频片段进行解析确定解码方式,并且对续播视频片段用该解码方式进行解码并播发,不需要像现有技术那样,先下载待续播视频的第一个视频片段,对第一个视频片段进行解析,确定解码方式,而后再去获取续播时间点参数,下载续播时间点参数对应的续播视频片段,从该续播视频片段开始播放。这样直接下载续播时间点参数对应的续播视频数据,对它来进行解析确定解码方式,省去了一次下载第一段视频片段的步骤,从而节省了一次下载时间,提高了起播速度,并增加了用户体验的满意度。
图7为本发明显示设备另一实施例的硬件结构示意图。如图7所示,本实施例的显示设备可以包括:存储器701、处理器702和显示屏703;其中,存储器701,用于存储程序;具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器701可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
处理器702,用于执行存储器701存储的程序,用于执行本发明法实施例所提供的技术方案,其实现原理和技术效果类似,可参考图2所示的方法实施例,此处不再赘述。
显示屏703,用于显示待续播视频;
上述装置中第一解析模块、第二解析模块、第一下载模块、第二下载模块、获取模块、设置模块、发送模块和播放模块的功能可以通过处理器702实现。
需要说明的是,对于终端实施例而言,由于其基本相应于方法实施例,所以相关之处参见方法实施例的部分说明即可。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。