一种视频播放方法及终端与流程

文档序号:11657814阅读:169来源:国知局
一种视频播放方法及终端与流程

本发明涉及通信技术,尤其涉及一种视频播放方法及终端。



背景技术:

随着普通电视用户家庭中网络带宽不断提高,越来越多的用户可以选择通过网络来直播电视信号,或者通过电视观看直播视频等。这些直播视频业务大多采用基于http的实时流传输(httplivestreaming,简称hls)协议。hls协议中,可以将一个视频分割成多个视频片段,即多个传输流(transportstream,简称ts)文件。服务器端保存视频的索引文件,即m3u8文件。m3u8文件中记录视频对应的多个ts文件的播放时长、文件地址等索引信息,这些索引信息通过标签来表示。客户端可以从服务器获取播放列表,并根据播放列表中的ts文件索引信息找到ts文件的地址并进行播放。

现有技术中,服务器定期更新m3u8文件,终端定期从服务器下载m3u8文件,并根据m3u8文件中的ts文件索引来播放视频。其中,服务器可以按照滚动替换的方式更新m3u8文件,例如,当前m3u8文件中的ts索引为1、2、3,则下次更新后变为2、3、4,即用4替换掉1。在此过程中,可能出现更新后的m3u8文件中第一个ts索引前的特殊标签丢失的问题。相应地,当终端从服务器下载更新后的m3u8文件之后,可能会因为标签丢失而导致视频播放异常。



技术实现要素:

本发明提供一种视频播放方法及终端,用于解决现有技术中由于标签丢失所导致的视频播放异常问题。

本发明第一方面提供一种视频文件处理方法,包括:

判断从服务器下载的传输流ts文件索引列表中是否包含用于指示所述ts文件播放格式的标签,若是,则根据所述标签对应的播放索引播放视频;若否,则查询标签列表,判断所述标签列表中是否存在所述标签,若是,则根据所述标签列表中所述标签对应的播放索引播放视频;若否,则根据所述ts文件索引列表的播放索引播放视频;

其中,所述标签列表用于保存包含所述标签的ts文件索引,所述播放索引为待播放ts文件对应的ts文件索引。

进一步地,所述判断从服务器下载的ts文件索引列表中是否包含用于指示所述ts文件播放格式的标签之前,还包括:

从服务器下载ts文件索引列表;

判断所下载的ts文件索引列表中是否存在包含所述标签的ts文件索引,若是,则将所述包含所述标签的ts文件索引增加到所述标签列表中。

进一步地,还包括:

判断所述标签列表中的第一ts文件索引对应的ts文件是否已经播放,若是,则从所述标签列表中删除所述第一ts文件索引;

其中,所述第一ts文件索引是所述标签列表中的任意一个ts文件索引。

进一步地,还包括:

接收所述服务器发送的服务器播放列表更新异常指示;

停止播放ts文件;

向用户提示服务器播放列表更新异常。

进一步地,还包括:

获取所述终端的网速;

根据终端的网速调整终端从所述服务器下载ts文件索引列表的间隔时间。

本发明第二方面提供一种终端,包括:

处理模块,用于判断从服务器下载的传输流ts文件索引列表中是否包含用于指示所述ts文件播放格式的标签,若是,则根据所述标签对应的播放索引播放视频;若否,则查询标签列表,判断所述标签列表中是否存在所述标签,若是,则根据所述标签列表中所述标签对应的播放索引播放视频;若否,则根据所述ts文件索引列表的播放索引播放视频;

其中,所述标签列表用于保存包含所述标签的ts文件索引,所述播放索引为待播放ts文件对应的ts文件索引。

进一步地,还包括:

下载模块,用于从服务器下载ts文件索引列表;

增加模块,用于在所下载的ts文件索引列表中存在包含所述标签的ts文件索引时,将所述包含所述标签的ts文件索引增加到所述标签列表中。

进一步地,还包括:

删除模块,用于在所述标签列表中的第一ts文件索引对应的ts文件已经播放时,从所述标签列表中删除所述第一ts文件索引;

其中,所述第一ts文件索引是所述标签列表中的任意一个ts文件索引。

进一步地,还包括:

接收模块,用于接收所述服务器发送的服务器播放列表更新异常指示;

停止模块,用于停止播放ts文件;

提示模块,用于向用户提示服务器播放列表更新异常。

进一步地,还包括:

获取模块,用于获取所述终端的网速;

调整模块,用于根据终端的网速调整终端从所述服务器下载ts文件索引列表的间隔时间。

本发明所提供的视频播放方法及终端,终端在播放传输流ts文件前,判断从服务器下载的ts文件索引列表中是否有用于指示该ts文件播放格式的标签,如果没有,则可以从预先备份的标签列表中查询是否存在该标签,并根据查询到的该标签对应的播放索引来进行视频播放,即,通过预先将含有上述标签的ts文件索引列表进行备份,使得即使终端在服务器丢掉上述标签时也可以通过备份的ts文件索引列表中获取该标签,从而避免视频的播放异常。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的视频文件处理方法的系统架构图;

图2为本发明提供的视频文件处理方法实施例一的流程示意图;

图3为本发明提供的视频文件处理方法实施例二的流程示意图;

图4为本发明提供的视频文件处理方法实施例三的流程示意图;

图5为本发明提供的视频文件处理方法实施例三的流程示意图;

图6为本发明提供的视频文件处理方法实施例四的流程示意图;

图7为本发明提供的终端实施例一的模块结构图;

图8为本发明提供的终端实施例二的模块结构图;

图9为本发明提供的终端实施例三的模块结构图;

图10为本发明提供的终端实施例四的模块结构图;

图11为本发明提供的终端实施例五的模块结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1为本发明提供的视频文件处理方法的系统架构图,如图1所示,在基于hls协议的视频传输播放过程中,主要涉及服务器及客户端。其中,服务器主要用于将完整视频分割成多个片段,每个片段为一个ts文件,以及生成m3u8文件,在m3u8文件中记录每个ts文件索引,包括每个ts文件的播放时长、播放地址等。服务器定期更新m3u8文件,客户端定期从服务器下载m3u8文件,并根据所下载的m3u8文件中的ts文件索引下载并播放对应的视频。

其中,上述客户端可以是任何进行hls视频播放的终端,例如电视、手机、平板电脑等。本发明以下都以终端来进行说明。

在现有技术中,服务器在更新m3u8文件时,可能出现更新后的m3u8文件中第一个ts索引前的特殊标签丢失的问题,这些特殊标签是用于指示ts文件播放格式的标签。相应地,当终端从服务器下载更新后的m3u8文件之后,如果接下来要播放的ts文件正好是所下载的m3u8文件中的第一个ts文件索引对应的ts文件,则可能会因为缺少标签而导致视频播放出现异常。

例如,假设服务器的m3u8文件更新前的内容为下述行1至行4,而在更新之后,行1的内容被替换掉,行3对应的ts文件索引变为第一个ts文件索引,而行2对应的特殊标签可能被丢失,即更新后的m3u8文件从行3开始。原来行2的特殊标签#ext-x-discontinuity具有特殊含义,当遇到该标签时,说明视频的封装格式,音视频编码格式,以及时间戳可能会发生改变,而由于服务器丢失了该标签,当终端下载更新后的m3u8文件之后,就不能解析该标签,即不能改变视频的封装格式等,从而可能导致视频播放出现异常。

行1:#extinf:9,http://dd.bb.aa.com/video2

行2:#ext-x-discontinuity

行3:#extinf:9.3,http://dd.bb.aa.com/video3

行4:#extinf:8,http://dd.bb.aa.com/video4

本发明基于上述问题,提出一种视频文件播放方法,只要接收到的m3u8文件中包括特殊标签,就将特殊标签及其对应的ts文件索引保存到标签列表,当需要播放一个ts文件时,即使m3u8文件中丢失了特殊标签,也可以通过查询标签列表来读取完整的标签信息,从而保证视频正常播放。

图2为本发明提供的视频文件处理方法实施例一的流程示意图,如图2所示,该方法包括:

s201、判断从服务器下载的ts文件索引列表中是否包含用于指示所述ts文件播放格式的标签,若是,则执行步骤s202,否则,执行步骤s203。

s202、根据上述标签对应的播放索引播放视频。

s203、查询标签列表,判断标签列表中是否存在上述标签,若是,则执行s204,若否,则执行s205。

s204、根据标签列表中上述标签对应的播放索引播放视频。

s205、根据ts文件索引列表的播放索引播放视频。

其中,上述标签列表用于保存包含上述标签的ts文件索引,上述播放索引为待播放ts文件对应的ts文件索引。

上述标签具体指用于指示ts文件播放格式的特殊标签,例如#ext-x-discontinuity等,当遇到这类标签时,说明后续视频播放的封装格式、编码格式等播放参数会发生变化。为区别说明,本申请实施例中,用于指示ts文件播放格式的标签均以特殊标签来表示,本领域的技术人员应对该“特殊标签”有确定且相同的理解。

具体地,上述从服务器下载的ts文件索引列表具体指m3u8文件,即终端从服务器下载的是m3u8文件,该文件中的内容可以看作是ts文件索引所构成的列表。

当终端需要播放一个ts文件时,例如,当前播放的是ts文件1,并且该ts文件1即将播放完成,则终端需要在m3u8文件中查找ts文件1之后的ts文件,假设为ts文件2,则该ts文件2就是待播放ts文件。终端判断该ts文件2的索引前是否存在特殊标签,如果存在,则说明服务器并没有丢失该ts文件索引前的标签,则可以按照原有流程播放该ts文件即可。如果该ts文件2的索引前不存在特殊标签,则根据标签列表进行视频播放。具体地可以分为以下两种情况:如果标签列表中不存在该ts文件2的索引,则说明该ts文件2的索引前的确不存在特殊标签,则继续按照原有流程播放该ts文件即可,即还是根据下载的ts文件索引列表中的ts文件索引进行视频播放;如果标签列表中存在该ts文件2的索引,并且索引前存在特殊标签,则对该标签进行解析处理,之后再根据索引中的其他标签进行ts文件2的播放。

由于服务器在更新m3u8文件时只可能造成第一个ts文件索引前的特殊标签丢失,而m3u8文件中其他ts文件索引前的特殊标签不会存在丢失,而m3u8文件是滚动替换的,因此,终端可以在ts文件索引滚动为第一个ts文件索引前就对其备份,这样就能保证所有的特殊标签都被备份,进而保证根据这些备份来正常播放视频。

本实施例中,终端在播放传输流ts文件前,判断从服务器下载的ts文件索引列表中是否有用于指示该ts文件播放格式的标签,如果没有,则可以从预先备份的标签列表中查询是否存在该标签,并根据查询到的该标签对应的播放索引来播放视频,即通过预先将含有该标签的ts文件索引列表进行备份,使得终端在服务器丢掉该标签时也可以通过备份的ts文件索引列表中获取该标签,从而避免视频的播放异常。

图3为本发明提供的视频文件处理方法实施例二的流程示意图,如图3所示,在上述步骤s201之前,还包括:

s301、从服务器下载ts文件索引列表。

s302、判断所下载的ts文件索引列表中是否存在包含上述标签的ts文件索引,若是,则执行s303。

s303、将包含上述标签的ts文件索引增加到上述标签列表中。

终端按照一定周期从服务器下载ts文件索引列表,即m3u8文件,下载的周期一般可以与服务器更新m3u8文件的周期保持一致,从而保证服务器更新的ts文件索引都可以被终端获取到。本实施例中,只要终端从服务器下载到m3u8文件,就判断该文件中的ts文件索引前是否存在特殊标签,只要存在就保存该特殊标签及包含该特殊标签的ts文件索引。由于m3u8文件是滚动替换的,因此,即使某个特殊标签会丢失,终端也会在其丢失前下载的m3u8文件中读取到该特殊标签并对其进行备份,从而保证从备份的标签列表中获取到该特殊标签,进而避免视频的播放异常。

在上述实施例的基础上,本实施例涉及终端删除标签列表中ts文件索引的方法,即,图4为本发明提供的视频文件处理方法实施例三的流程示意图,如图4所示,该方法还包括:

s401、判断标签列表中的第一ts文件索引对应的ts文件是否已经播放,若是,则执行s402。

s402、从标签列表中删除第一ts文件索引。

其中,上述第一ts文件索引是所述标签列表中的任意一个ts文件索引。

具体地,终端可以按照一定周期执行上述步骤s401-s402,或者,也可以在每个ts文件播放完成后执行上述步骤s401-s402。例如,终端已经播放完ts文件1,则终端在标签列表中查询ts文件1及其之前的ts文件对应的索引,如果存在,则将这些ts文件索引删除。

本实施例中,通过及时将已播放的ts文件对应的ts文件索引从标签列表中删除,可以保证标签列表中不存在无用的数据,提升根据标签列表获取特殊标签时的效率。

在上述实施例的基础上,本实施例涉及服务器索引文件播放列表更新异常时的处理过程。即,图5为本发明提供的视频文件处理方法实施例三的流程示意图,如图5所示,还包括:

s501、接收服务器发送的服务器播放列表更新异常指示。

具体地,本步骤中,如果服务器的播放列表异常,则服务器向终端发送服务器播放列表更新异常指示。

s502、停止播放ts文件。

s503、向用户提示服务器播放列表更新异常。

当终端接收到服务器播放列表更新异常指示之后,终端确定服务器无法再正常向服务器提供新的播放列表,则终端会停止播放ts文件,并且,向用户提示服务器播放列表更新异常,以使得用户及时得知是服务器出现问题,从而提升用户体验。

在上述实施例的基础上,本实施例涉及终端调整下载时间的具体方法,即,图6为本发明提供的视频文件处理方法实施例四的流程示意图,如图6所示,该方法还包括:

s601、获取终端的网速。

具体地,终端可以通过下载数据量和时间计算出终端的网速,即终端的网络下载速度,终端的网速等于单位时间下载数据量与单位时间的比值。

s602、根据终端的网速调整终端从服务器下载ts文件索引列表的间隔时间。

如果终端的网速降低,则终端可以将从服务器下载ts文件索引列表的间隔时间延长,反之,终端可以将从服务器下载ts文件索引列表的间隔时间缩短,从而使得终端从服务器下载ts文件索引列表的周期与终端的处理速度更加匹配。

图7为本发明提供的终端实施例一的模块结构图,如图7所示,该终端包括:

处理模块701,用于判断从服务器下载的ts文件索引列表中是否包含用于指示该ts文件播放格式的标签,若是,则根据该标签对应的播放索引播放视频;若否,则查询标签列表,判断标签列表中是否存在该标签,若是,则根据标签列表中该标签对应的播放索引播放视频;若否,则根据ts文件索引列表的播放索引播放视频。

其中,上述标签列表用于保存包含上述标签的ts文件索引,上述播放索引为待播放ts文件对应的ts文件索引。

该终端用于实现前述方法实施例,其实现原理和技术效果类似,此处不再赘述。

图8为本发明提供的终端实施例二的模块结构图,如图8所示,该终端还包括:

下载模块702,用于从服务器下载ts文件索引列表。

增加模块703,用于在所下载的ts文件索引列表中存在包含上述标签的ts文件索引时,将包含上述标签的ts文件索引增加到上述标签列表中。

图9为本发明提供的终端实施例三的模块结构图,如图9所示,该终端还包括:

删除模块704,用于在标签列表中的第一ts文件索引对应的ts文件已经播放时,从标签列表中删除第一ts文件索引。

其中,第一ts文件索引是标签列表中的任意一个ts文件索引。

图10为本发明提供的终端实施例四的模块结构图,如图10所示,该终端还包括:

接收模块705,用于接收所述服务器发送的服务器播放列表更新异常指示。

停止模块706,用于停止播放ts文件。

提示模块707,用于向用户提示服务器播放列表更新异常。

图11为本发明提供的终端实施例五的模块结构图,如图11所示,该终端还包括:

获取模块708,用于获取终端的网速;

调整模块709,用于根据终端的网速调整终端从服务器下载ts文件索引列表的间隔时间。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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