视频的播放方法和装置与流程

文档序号:12730911阅读:194来源:国知局
视频的播放方法和装置与流程

本发明涉及视频播放技术,尤其涉及一种视频的播放方法和装置。



背景技术:

随着网络技术的发展,基于网络的视频轮播技术飞速发展,得到了广泛应用。

视频轮播系统通常包括一个服务器和至少两个播放终端。服务器根据超文本直播流(HTTP Live Streaming,简称HLS)协议,将待循环播放的节目切割得到多个视频片段的传送流(Transport Stream,简称TS)文件,并按照循环播放的顺序,定期将部分TS文件的索引写入M3U8文件,以实现直播效果。播放终端在开机时,实时获取最新的M3U8文件,播放当前M3U8文件中包含的TS文件。因此,即使多个播放终端先后在不同时刻开机,仍可实现在同一时刻播放同样的视频片段的直播效果,从而在播放终端实现了直播形式的视频轮播。视频轮播被广泛应用于电视节目、重要时事、重要提醒事项、直梯广告的播放中。

由于视频轮播系统的M3U8文件中仅包括待播放节目的少量视频片段,且定期更新,更新后的M3U8文件中删除了播放过的视频片段的信息,从而使得播放终端无法获取待播放节目的总时长,以及播放过的视频片段的相关信息,进而在用户想要重复播放曾经播放过的视频片段时,无法根据用户的时移指令确定用户想要重复播放的视频片段,同理也不支持快进或快退等时移功能,用户只能被动的观看所有的视频片段。因此,现有的视频轮播系统,只能实现所有播放终端的视频直播,无法在视频直播的同时,支持部分播放终端的视频时移功能。



技术实现要素:

本发明提供一种视频的播放方法和装置,用于解决现有视频轮播技术只能实现所有播放终端的视频直播,存在缺乏视频时移功能的问题。

第一方面,本发明提供一种视频的播放方法,应用于服务器端,该方法包括:

将待播放的视频文件根据HLS协议进行切割,得到对应的视频片段;

根据各所述视频片段,生成包括每个视频片段的时长信息、路径信息和播放顺序的M3U8文件,其中,所述M3U8文件中的视频片段的播放顺序定期滚动更新;

将所述M3U8文件发送至至少一个播放终端。

如上所述的视频的播放方法,所述将所述M3U8文件发送至至少一个播放终端,包括:

在每次更新所述M3U8文件中的视频片段的播放顺序后,将所述M3U8文件发送至各所述播放终端。

如上所述的视频的播放方法,所述将所述M3U8文件发送至至少一个播放终端,包括:

在接收到第一播放终端发送的M3U8文件更新请求时,将所述M3U8文件发送至所述第一播放终端。

如上所述的视频的播放方法,所述方法还包括:

在预设更新时刻,根据预设的视频片段更新数量,轮转所述M3U8文件中的视频片段的播放顺序。

如上所述的视频的播放方法,所述方法还包括:

接收第二播放终端发送的视频获取消息;所述视频获取消息包括第一视频片段的路径信息;

向所述第二播放终端发送所述第一视频片段。

第二方面,本发明提供一种视频的播放装置,所述装置包括:

切割单元,用于将待播放的视频文件根据HLS协议进行切割,得到对应的视频片段;

M3U8文件生成单元,用于根据各所述视频片段,生成包括每个视频片段的时长信息、路径信息和播放顺序的M3U8文件,并定期滚动更新所述M3U8文件中的视频片段的播放顺序;

发送单元,用于将所述M3U8文件发送至至少一个播放终端。

如上所述的视频的播放装置,所述发送单元还用于,在每次更新所述M3U8文件中的视频片段的播放顺序后,将所述M3U8文件发送至各所述播放终端。

如上所述的视频的播放装置,所述装置还包括:接收单元;

所述接收单元用于,接收到第一播放终端发送的M3U8文件更新请求;

所述发送单元还用于,在所述接收单元接收到所述M3U8文件更新请求时,将所述M3U8文件发送至所述第一播放终端。

如上所述的视频的播放装置,所述M3U8文件生成单元具体用于,

在预设更新时刻,根据预设的视频片段更新数量,轮转所述M3U8文件中的视频片段的播放顺序。

如上所述的视频的播放装置,所述装置还包括:接收单元;

所述接收单元用于,接收第二播放终端发送的视频获取消息;所述视频获取消息包括第一视频片段的路径信息;

所述发送单元还用于,在所述接收单元接收到所述视频获取消息时,向所述第二播放终端发送所述第一视频片段。

本发明提供的视频的播放方法,将待播放视频文件切割为对应的视频片段,根据所有视频片段生成M3U8文件,M3U8文件中包括所有视频片段的时长信息、路径信息和播放顺序,再将M3U8文件发送至多个播放终端,以使播放终端获取到整个待播放视频文件的总时长信息。当播放终端接收到用户输入的时移指令时,可根据时移指令和总时长信息,确定出跳转后的视频片段,进而播放跳转后的视频片段,实现了视频片段的时移播放。同时服务器定期更新M3U8文件,更改M3U8文件中各视频片段的播放顺序,使得多个播放终端尽管在不同时刻接入播放系统,但是均接收到实时更新的M3U8文件,播放相同的视频片段,从而保证了视频直播效果。本发明提供的视频的播放方法,通过在M3U8文件中存储所有视频片段的时长信息、路径信息和播放顺序,并定期更新M3U8文件,使得视频轮播系统可在确保视频直播效果的同时,支持播放终端根据用户输入的时移指令进行时移播放。

附图说明

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

图1是本发明提供的视频的播放方法的应用场景示意图;

图2是本发明提供的视频的播放方法实施例一的流程示意图;

图3是本发明提供的视频的播放方法实施例二的流程示意图;

图4是本发明提供的视频的播放装置实施例一的结构示意图;

图5是本发明提供的视频的播放装置实施例二的结构示意图。

具体实施方式

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

图1是本发明提供的视频的播放方法的应用场景示意图。如图1所示,视频轮播系统通常包括一台服务器101和至少一台播放终端102。服务器101用于根据HLS协议将待播放的视频文件进行切割得到多个TS文件,并根据TS文件以及播放计划生成M3U8文件并更新M3U8文件。播放终端102获取M3U8文件,并根据M3U8文件中的播放顺序播放视频文件。播放终端102具体可以为安装有播放器的电视、电脑等。

示例性的,若有三个待循环播放的节目:A视频文件、B视频文件和C视频文件,服务器101根据HLS协议以及各视频文件的大小,将A视频文件、B视频文件和C视频文件进行分割,得到视频文件A切割后产生的a1.ts、a2.ts、a3.ts、a4.ts四个视频片段,视频文件B切割后产生的b1.ts、b2.ts、b3.ts三个视频片段,视频文件C切割后产生的c1.ts、c2.ts、c3.ts三个视频片段,A、B、C三个视频文件共产生10个视频片段。

现有的视频轮播方法示例性的可以为:当预设的播放顺序为A、B、C三个视频文件循环播放时,服务器101通常只在M3U8文件中存放3个视频片段,并定期更新M3U8文件中的视频片段。假设M3U8文件中第一次更新时内容包含a1.ts、a2.ts、a3.ts三个视频片段,第二次更新后内容变为a2.ts、a3.ts、a4.ts,再下一次更新为a3.ts、a4.ts、b1.ts……以此类推,当第n次更新后,M3U8文件中内容为c1.ts、c2.ts、c3.ts,第n+1次更新后M3U8文件中内容为c2.ts、c3.ts、a1.ts,从而开始一个新的循环。通过循环更新M3U8文件,可使多个播放终端102,即使在不同的时刻接入视频轮播系统,其打开后播放的视频片段与其他播放终端102中的一致,从而实现了直播效果。

M3U8文件中内容更新循环方式如下表中所示。其中,n为大于1的正整数。

如上表中所示,现有的视频轮播方法中,M3U8文件中内容仅包括少量视频片段,缺乏待播放视频的总时长的相关信息,因此无法实现时移功能,同时,当用户想要重复播放曾经播放过的视频片段时,由于M3U8文件已经删除了该视频片段的索引信息,也影响了时移功能的实现,因此,现有的视频轮播方法中无法实现时移功能。

为解决上述问题,本发明一方面提供一种视频的播放方法,下面采用具体实施例对本发明提供的视频的播放方法进行详细说明。

图2是本发明提供的视频的播放方法实施例一的流程示意图,该方法的执行主体为图1中所示的服务器101,该装置可以通过软件或硬件实现,该装置可以集成在服务器中,也可以为服务器。本发明对此不做限定。如图2所示,该方法包括:

S201、将待播放的视频文件根据HLS协议进行切割,得到对应的视频片段;

S202、根据各视频片段,生成包括每个视频片段的时长信息、路径信息和播放顺序的M3U8文件,其中,M3U8文件中的视频片段的播放顺序定期滚动更新;

S203、将M3U8文件发送至至少一个播放终端。

具体的,在S201中,服务器将待播放的至少一个视频文件根据HLS协议进行切割,得到待播放的至少一个视频文件对应的视频片段。示例性的,待播放的视频文件可以为多个需要重复播放的广告视频文件。服务器根据HLS协议将待播放的所有视频文件进行切割,每个视频文件切割得到对应的视频片段。具体切割方法可以采用现有的基于HLS协议的切割方法,本发明对此不做限定。

当仅有一个待播放的视频文件,且该视频文件根据HLS协议无需切割时,则可直接根据该视频文件的索引生成一M3U8文件供各播放终端访问。

具体的,在S202中,服务器根据S201中切割得到的所有视频片段,生成M3U8文件。M3U8文件中包括每个视频片段的时长信息、路径信息和播放顺序。示例性的,M3U8文件中按播放顺序列出了每个视频片段的索引,该索引具体可以为该视频片段在服务器中的存储地址的路径信息,还可以为该视频片段在其他网络存储器中的网络路径信息。可选的,M3U8文件中各视频片段的播放顺序,具体可以为各视频片段的路径信息在M3U8文件中的排列顺序,当播放终端读取M3U8文件时,按约定从M3U8文件中的第一个视频片段开始播放,并自动按顺序逐个播放,即可实现所有播放终端同时显示同一广告内容的效果。

具体的,上述M3U8文件中的播放顺序定期滚动更新。示例性的,服务器在生成M3U8文件后,可根据M3U8文件中的各视频片段的大小和时长信息,定期更新M3U8文件。具体可以为当M3U8文件中的第一个视频片段开始播放之后,但视频片段播放结束之前,更新M3U8文件,以使原本的第二个视频片段成为第一个待播放的视频片段,原本的第一个视频片段成为最后一个待播放的视频片段。

示例性的,仍以A、B、C三个视频文件为例,本发明提供的视频的播放方法中,服务器端生成的M3U8文件,第一次更新时内容中就包含a1.ts、a2.ts、a3.ts、a4.ts、b1.ts、b2.ts、b3.ts、c1.ts、c2.ts、c3.ts,所有视频片段,第二次更新后内容变为a2.ts、a3.ts、a4.ts……c2.ts、c3.ts、a1.ts,再下一次更新为a3.ts、a4.ts……c2.ts、c3.ts、a1.ts、a2.ts,以此类推进行更新。M3U8文件的更新循环方式如下表中所示。

可选的,服务器更新M3U8文件的一种实现方式如下所示:

在预设更新时刻,根据预设的视频片段更新数量,轮转M3U8文件中的视频片段的播放顺序。

具体的,可设置预设的更新周期或多个预设更新时刻,服务器可根据更新周期,检测到更新时刻。在更新时刻,服务器采用如上表中所示的轮转方式,更新M3U8文件中的视频片段的播放顺序。

通过将所有的视频片段存储在M3U8文件中,使得播放终端在获取到M3U8文件后,可获取所有待播放视频文件的时间信息,从而方便了播放终端在接收到用户输入的时移指令时,利用现有的播放软件中的跳转指令即可实现时移。具体的时移实现方式本发明并不限定。

具体的,在S203中,服务器在生成M3U8文件后,将M3U8文件发送至至少一个播放终端。服务器可根据自身存储的播放终端的列表,向列表中的所有播放终端发送M3U8文件。由于M3U8文件中包括待播放的所有视频文件的信息,播放终端在接收到M3U8文件时,可进而获取所有待播放视频的时间信息,从而使得播放终端在收到M3U8文件可进行视频文件的播放,并根据接收到的时移指令实现视频片段的时移播放。

本发明提供的视频的播放方法,将待播放视频文件切割为多个视频片段,根据所有视频片段生成M3U8文件,M3U8文件中包括所有视频片段的时长信息、路径信息和播放顺序,再将M3U8文件发送至多个播放终端,以使播放终端获取到整个待播放视频文件的总时长信息。当播放终端接收到用户输入的时移指令时,可根据时移指令和总时长信息,确定出跳转后的视频片段,进而播放跳转后的视频片段,实现了视频片段的时移播放。同时服务器定期更新M3U8文件,更改M3U8文件中各视频片段的播放顺序,使得多个播放终端尽管在不同时刻接入播放系统,但是均接收到实时更新的M3U8文件,播放相同的视频片段,从而保证了视频直播效果。本发明提供的视频的播放方法,通过在M3U8文件中存储所有视频片段的时长信息、路径信息和播放顺序,并定期更新M3U8文件,使得视频轮播系统可在确保视频直播效果的同时,支持播放终端根据用户输入的时移指令进行时移播放。

结合图2所示实施例,下面对S203中的将M3U8文件发送至至少一个播放终端的方式进行详细说明。

一种可能的实现方式中:

在每次更新M3U8文件中的视频片段的播放顺序后,将M3U8文件发送至各播放终端。

具体的,服务器在每次更新了M3U8文件之后,均将更新后的M3U8文件发送给每一个播放终端。

另一种可能的实现方式中:

在接收到第一播放终端发送的M3U8文件更新请求时,将M3U8文件发送至所述第一播放终端。

具体的,服务器在每次更新了M3U8文件之后,并不主动将更新后的M3U8文件发送给每一个播放终端,而是当存在一个第一播放终端,主动向服务器发送M3U8文件更新请求时,将M3U8文件发送至第一播放终端。例如,第一播放终端为初次加入播放系统的播放终端。

具体的,播放终端在未接收到用户输入的时移指令时,可接收服务器定期发送的M3U8文件,也可定期向服务器索取更新的M3U8文件。

示例性的,若播放终端接收到用户输入的时移指令,则播放终端停止更新M3U8文件,并根据现有M3U8文件中的视频片段的顺序信息进行视频片段的循环播放。播放终端可在接收到用户输入的更新指令或重新启动时,重新开始主动向服务器索取更新的M3U8文件。

可选的,在图2所示实施例的基础上,在将M3U8文件发送给用户之后,该方法还包括:

接收第二播放终端发送的视频获取消息;视频获取消息包括第一视频片段的路径信息;

向第二播放终端发送第一视频片段。

具体的,第二播放终端为播放系统中的任意一个播放终端,第二播放终端在获取到M3U8文件之后,读取M3U8文件中的视频片段进行播放时,由于M3U8文件中仅包含视频片段的路径信息,因此播放终端需向服务器发送视频获取消息,视频获取信息中包含第二播放终端计划播放的第一视频片段的路径信息。服务器根据该视频获取消息中的路径信息,获取第一视频片段,并将该第一视频片段发送给第二播放终端。

本发明另一方面还提供一种视频的播放方法,与上面图2所示实施例中的方法相对应。图3是本发明提供的视频的播放方法实施例二的流程示意图,该方法的执行主体为图1中所示的播放终端102,该播放终端102可以通过软件或硬件实现,该装置可以集成在电视、电脑等具有现实功能的设备中,本发明对此不做限定。如图3所示,该方法包括:

S301、获取时移指令,时移指令指示视频中的待播放时刻;

S302、根据待播放时刻和预先获取的M3U8文件,确定待播放时刻对应的待播放帧,其中,M3U8文件包括至少两个视频片段的时长信息、路径信息和播放顺序;

S303、根据待播放帧所属的第一视频片段对应的路径信息,获取第一视频片段,从第一视频片段的待播放帧开始播放第一视频片段。

具体的,在S301中,播放终端接收用户输入的时移指令,时移指令用于指示视频中的待播放时刻。具体时移指令中包括时移时间,时移时间具体可以为指定的需时移至的时间点信息,还可以为需向前时移的时间段信息。播放终端还可进一步限定仅支持向前时移或向后时移。

具体的,在S302中,播放终端根据时移指令和预先获取的M3U8文件,获取待播放时刻对应的待播放帧。示例性的,播放终端可根据M3U8文件中的所有视频片段以及各视频片段的播放顺序进行整合,得到一待播放的视频文件,根据该视频文件即可获得M3U8文件中的所有视频片段的整体时间信息,从而根据时移指令,在该视频文件中进行时移。示例性的,播放终端根据M3U8文件中的各视频片段的时长信息和播放顺序,获取所有视频片段的总时长中各时间点与各视频片段中的每一帧图像的映射关系;根据待播放时刻和映射关系,确定待播放时刻对应的待播放帧。

当播放终端接收到用户输入的时移指令时,播放终端的播放器可采用自身具有的跳转功能,确定时移指令对应的待播放帧,该待播放帧即为用户要求播放的视频起点。M3U8文件与图2所示实施例中的M3U8文件相同,为播放终端在接收到时移指令前从服务器获取的最新的M3U8文件。

具体的,在S303中,播放终端根据待播放帧所属的第一视频片段对应的路径信息,获取第一视频片段,并从第一视频片段的待播放帧开始播放第一视频片段。示例性的,可以为播放终端向服务器发送视频获取消息,视频获取消息中包括第一视频片段的第一路径信息,以使服务器根据第一路径信息获取第一视频片段后,将第一视频片段发送给播放终端。

可选的,在图3所示实施例的基础上,在播放终端接收时移指令之前,还包括:

获取M3U8文件;

根据M3U8文件中的路径信息和播放顺序获取视频片段进行播放。

具体的,在播放终端接收用户输入的时移指令之前,播放终端获取M3U8文件,示例性的,可以为播放终端按一定周期向服务器请求更新M3U8文件,也可以为服务器定期向播放终端发送更新的M3U8文件。播放终端在接收到更新后的M3U8文件后,根据更新后的M3U8文件中的路径信息和播放顺序自动进行视频片段的获取和播放。

可选的,在播放终端接收到用户输入的时移指令之后,播放终端在接收到服务器主动发送的更新的M3U8文件,删除该更新的M3U8文件。

再一方面,本发明还提供一种视频的播放装置,用于执行上述图2所示实施例对应的视频的播放方法,图4是本发明提供的视频的播放装置实施例一的结构示意图,如图4所示,该播放装置包括:

切割单元401,用于将待播放的视频文件根据HLS协议进行切割,得到对应的视频片段;

M3U8文件生成单元402,用于根据各视频片段,生成包括每个视频片段的时长信息、路径信息和播放顺序的M3U8文件,并定期滚动更新所述M3U8文件中的视频片段的播放顺序;

发送单元403,用于将M3U8文件发送至至少一个播放终端。

可选的,在图4所示实施例的基础上,发送单元还403用于,在每次更新M3U8文件中的视频片段的播放顺序后,将M3U8文件发送至各播放终端。

可选的,在图4所示实施例的基础上,图5是本发明提供的视频的播放装置实施例二的结构示意图。如图5所示,视频的播放装置还包括:接收单元404;

接收单元404用于,接收到第一播放终端发送的M3U8文件更新请求;

发送单元403还用于,在接收单元接收到M3U8文件更新请求时,将M3U8文件发送至第一播放终端。

可选的,上述任一实施例的基础上,M3U8文件生成单元402具体用于,在预设更新时刻,根据预设的视频片段更新数量,轮转M3U8文件中的视频片段的播放顺序。

可选的,上述图5所示实施例的基础上,接收单元404还用于,接收第二播放终端发送的视频获取消息;视频获取消息包括第一视频片段的路径信息;

发送单元403还用于,在接收单元接收到视频获取消息时,向第二播放终端发送第一视频片段。

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

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

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