一种视频的恢复播放方法、视频播放终端及服务器与流程

文档序号:18298561发布日期:2019-07-31 09:45阅读:412来源:国知局
一种视频的恢复播放方法、视频播放终端及服务器与流程

本发明涉及音频播放技术,尤其涉及一种视频恢复播放方法、视频播放终端、服务器及计算机可读存储介质。



背景技术:

随着多媒体技术的发展和家庭交互式网络电视(iptv)业务的普及,一些未被重视的细节逐渐成为影响用户体验的关键因素。

对于iptv业务系统,不管是点播还是直播时移节目,快进快退都是其必备功能,比较主流的实现方式是通过实时流传输协议(rtsp,realtimestreamingprotocol)对播放流程进行控制,终端在收到快进快退命令时向内容分发网络(cdn,contentdeliverynetwork)服务器发送播放操作消息,里面指明快进快退倍速,cdn在收到消息后进行响应,并开始按指定倍速给终端发i帧流;在需要恢复正常播放时,终端再向cdn发送1倍速play消息,收到消息后cdn停止发关键帧(i帧)流,转而发送正常媒体流。

不少文献对cdn如何高效提取i帧提出了自己的优化方案,却忽视了快进快退转恢复画面精准性问题。由于发送视频流由cdn控制,终端在收到用户的恢复播放命令时,cdn仍然在发送i帧流,直到收到终端的1倍速play消息,才会改为发正常流,给用户的感受就是按了恢复键后,画面仍然在不停地跳变,正常播放的起始画面已不是按恢复键时看到的画面,这种现象在高倍速场景下尤为严重,极其影响用户体验。



技术实现要素:

有鉴于此,本发明实施例期望提供一种视频恢复播放方法、视频播放终端、服务器及计算机可读存储介质,通过将cdn在快进/快退的发包间隔设置为大于2倍终端处理的耗时,避免了恢复命令处理过程中画面进行了跳帧,同时,cdn与终端均采用显示时间戳(pts,presentationtimestamp)计算视频播放时间,有效防止了因两者时间计算标准不同导致计算出的实际恢复时刻出现误差;终端在恢复播放时丢弃掉无用帧,这些丢弃掉的冗余数据不再会造成额外的画面跳变。

为达到上述目的,本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种视频的恢复播放方法,所述方法包括:

接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;

当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;

基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;

当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;

基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放。

其中,所述基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,包括:

根据公式t4=t1+(t3-t2)确定出恢复播放的起始播放时间,其中,

t1表示视频播放的起始时间,t2表示视频起始帧的播放时间,t3表示当前视频显示画面的pts时间,t4表示恢复播放的起始播放时间。

其中,所述基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放,包括:

将已接收到的视频数据包中关键帧序号小于所获取关键帧序号的视频数据包丢弃,将大于等于所述获取的关键帧序号的视频数据包载入编码器进行解码,输出所述获取的关键帧序号之后的视频数据包所显示的视频画面。

其中,所述接收服务器传输的视频数据包之前,所述方法还包括:

计算从接收到播放操作指令到将视频解码器缓存清空后的处理时间,将所述处理时间向服务器发送。

本发明实施例提供了一种视频的恢复播放方法,所述方法包括:

基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记,生成基于所述预设的时间标准发送的视频数据包的时间列表;

当接收到视频播放终端发送的恢复播放视频请求后,对所述恢复播放请求进行解析,确定出的恢复播放视频的起始播放时刻;

将所述恢复播放视频的起始播放时刻在所述时间列表中进行查询,确定出所述恢复播放视频的起始播放时刻所对应的视频数据包;

对所述起始播放时刻所对应的视频数据包进行关键帧解析,确定出所述起始播放时刻所对应的视频数据包内的关键帧序号;

响应于所述恢复播放视频请求,将所述恢复播放视频的起始时刻所对应的关键帧序号向所述视频播放终端发送。

其中,所述服务器基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记之前,所述方法还包括:

当接收到视频播放终端发送的处理时间后,以两倍于所述处理时间的时间间隔,向所述视频播放终端传输视频数据包。

其中,所述当接收到视频播放终端发送的恢复播放视频请求之前,所述方法还包括:

所述服务器接收到视频播放终端发送的视频快进和/或视频快退指令后,基于所述视频快进和/或视频快退指令,向所述视频播放终端传输快进和/或视频所对应的视频数据包。

其中,所述服务器基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记,包括:

当所述服务器向视频播放终端传输点播业务的视频数据包时,所述服务器基于传输视频的pts时间,对向视频播放终端传输视频数据包的时间进行标记;

当所述服务器向视频播放终端传输直播业务的视频数据包时,所述服务器基于服务器当前的系统时间,对向视频播放终端传输视频数据包的时间进行标记。

本发明实施例提供了一种视频播放终端,所述视频播放终端包括:第一记录模块,第二记录模块,计算模块,确定模块,恢复播放模块;其中,

第一记录模块,用于接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;

第二记录模块,当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;

第一计算模块,基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;

确定模块,当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;

恢复播放模块,基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放。

其中,所述第一计算模块,用于根据公式t4=t1+(t3-t2)确定出恢复播放的起始播放时间,其中,

t1表示视频播放的起始时间,t2表示视频起始帧的播放时间,t3表示当前视频显示画面的pts时间,t4表示恢复播放的起始播放时间。

其中,所述恢复播放模块,用于将已接收到的视频数据包中关键帧序号小于所获取关键帧序号的视频数据包丢弃,将大于等于所述获取的关键帧序号的视频数据包载入编码器进行解码,输出所述获取的关键帧序号之后的视频数据包所显示的视频画面。

其中,所述终端还包括:

第二计算模块,用于计算从接收到播放操作指令到将视频解码器缓存清空后的处理时间,将所述处理时间向服务器发送。

本发明实施例提供了一种服务器,所述服务器包括:时间标记模块,第一解析模块,查询模块,第二解析模块,发送模块;其中,

时间标记模块,用于基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记,生成基于所述预设的时间标准发送的视频数据包的时间列表;

第一解析模块,用于当接收到视频播放终端发送的恢复播放视频请求后,对所述恢复播放请求进行解析,确定出的恢复播放视频的起始播放时刻;

查询模块,用于将所述恢复播放视频的起始播放时刻在所述时间列表中进行查询,确定出所述恢复播放视频的起始播放时刻所对应的视频数据包;

第二解析模块,用于对所述起始播放时刻所对应的视频数据包进行关键帧解析,确定出所述起始播放时刻所对应的视频数据包内的关键帧序号;

发送模块,用于响应于所述恢复播放视频请求,将所述恢复播放视频的起始时刻所对应的关键帧序号向所述视频播放终端发送。

其中,所述服务器还包括:传输模块,用于当接收到视频播放终端发送的处理时间后,以两倍于所述处理时间的时间间隔,向所述视频播放终端传输视频数据包。

其中,所述传输模块还用于:所述服务器接收到视频播放终端发送的视频快进和/或视频快退指令后,基于所述视频快进和/或视频快退指令,向所述视频播放终端传输快进和/或视频所对应的视频数据包。

其中,所述标记模块用于:

当所述服务器向视频播放终端传输点播业务的视频数据包时,所述服务器基于传输视频的pts时间,对向视频播放终端传输视频数据包的时间进行标记;

当所述服务器向视频播放终端传输直播业务的视频数据包时,所述服务器基于服务器当前的系统时间,对向视频播放终端传输视频数据包的时间进行标记。

本发明实施例提供了一种电子设备,所述电子设备包括:包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,

其中,所述处理器用于运行所述计算机程序时,执行:

接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;

当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;

基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;

当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;

基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放;或,

基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记,生成基于所述预设的时间标准发送的视频数据包的时间列表;

当接收到视频播放终端发送的恢复播放视频请求后,对所述恢复播放请求进行解析,确定出的恢复播放视频的起始播放时刻;

将所述恢复播放视频的起始播放时刻在所述时间列表中进行查询,确定出所述恢复播放视频的起始播放时刻所对应的视频数据包;

对所述起始播放时刻所对应的视频数据包进行关键帧解析,确定出所述起始播放时刻所对应的视频数据包内的关键帧序号;

响应于所述恢复播放视频请求,将所述恢复播放视频的起始时刻所对应的关键帧序号向所述视频播放终端发送。

本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现。

接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;

当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;

基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;

当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;

基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放;或,

基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记,生成基于所述预设的时间标准发送的视频数据包的时间列表;

当接收到视频播放终端发送的恢复播放视频请求后,对所述恢复播放请求进行解析,确定出的恢复播放视频的起始播放时刻;

将所述恢复播放视频的起始播放时刻在所述时间列表中进行查询,确定出所述恢复播放视频的起始播放时刻所对应的视频数据包;

对所述起始播放时刻所对应的视频数据包进行关键帧解析,确定出所述起始播放时刻所对应的视频数据包内的关键帧序号;

响应于所述恢复播放视频请求,将所述恢复播放视频的起始时刻所对应的关键帧序号向所述视频播放终端发送。

本发明实施例所提供的视频恢复播放方法、视频播放终端、服务器及计算机可读存储介质,接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放。如此,通过将cdn发包间隔设置为大于2倍终端处理的耗时,避免了恢复命令处理过程中画面进行了跳帧,同时,cdn与终端均采用pts计算视频播放时间,有效防止了因两者时间计算标准不同导致计算出的实际恢复时刻出现误差;终端在恢复播放时丢弃掉无用帧,这些丢弃掉的冗余数据不再会造成额外的画面跳变,这样,实现了在视频进行快进或快退操作后精确恢复视频播放的方法,保证视频播放的连续性,提升用户的使用体验。

附图说明

图1a为本发明第一实施例视频播放终端侧视频恢复播放方法的实现流程示意图;

图1b为本发明第一实施例服务器侧视频恢复播放方法的实现流程示意图;

图2为本发明第二实施例视频播放终端的组成结构示意图;

图3为本发明第三实施例服务器的组成结构示意图;

图4为本发明第四实施例视频恢复播放系统的结构示意图;

图5为本发明第五实施例点播视频的精确恢复播放的实现流程;

图6为本发明第六实施例直播视频的精确恢复播放的实现流程。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面对本发明实施例的实现进行详细阐述。

实施例一

图1a为本发明第一实施例视频播放终端侧视频恢复播放方法的实现流程示意图,如图1a所示,本发明实施例视频播放终端侧视频恢复播放方法包括:

步骤101a:接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;

其中,所述接收服务器传输的视频数据包之前,所述视频播放终端计算从接收到用户的播放操作指令到将视频解码器缓存清空后的处理时间,将所述处理时间向服务器发送,其中,用户的播放操作指令至少包括:1倍速播放、多倍速快进播放、多倍速快退播放等操作指令等;

在实际应用中,视频播放终端接收到服务器传输的快进/快退视频数据包的间隔为两倍于所述处理时间,可以避免在处理用户播放操作指令时产生视频跳帧等问题;

其中,当时视频播放终端接收到服务器传输的视频数据包后,对接收到的视频数据包进行识别,确定出接收到的视频数据包中服务器对该数据包标记的时间信息,并记录所述视频的起始播放时间信息,即视频播放顺序中第一个数据包的时间,并基于视频的pts信息对该数据包进行解析,确定出该数据包中的起始帧的时间。

步骤102a:当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;

其中,视频播放终端接收到用户的恢复播放操作后,即1倍速播放指令,将视频解码器中的数据包清空,即停止当前视频播放,在实际应用中,当前视频播放的画面可以视为快进或快退的画面;视频播放终端基于pts时间记录当前停止画面的pts时间。

步骤103a:基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;

其中,基于步骤101a中已记录的视频的起始播放时间信息和起始帧的时间,以及步骤102a中确定出的恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,该计算方法是为了将用户发送回复播放的pts时间转换为服务器的时间,使服务器可以基于该时间准确的向用户传输用户想恢复播放的视频数据包,具体地,

可以通过公式t4=t1+(t3-t2)确定出恢复播放的起始播放时间,其中,

t1表示视频播放的起始时间,t2表示视频起始帧的播放时间,t3表示当前视频显示画面的pts时间,t4表示恢复播放的起始播放时间。

步骤104a:当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;

其中,当视频终端将恢复播放的起始播放时间发送至服务器后,服务器可以根据所述起始播放时间确定出所述起始播放时间所对应关键帧的序号,响应于视频播放终端发送的恢复播放请求,将该关键帧的序号发送至视频播放终端;

视频播放终端接收到服务器发送的响应信息后,从该信息中提取出关键帧序号。

步骤105a:基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放。

其中,将已接收到的视频数据包中关键帧序号小于所获取关键帧序号的视频数据包丢弃,将大于等于所述获取的关键帧序号的视频数据包载入编码器进行解码,输出所述获取的关键帧序号之后的视频数据包所显示的视频画面

在实际应用中,视频播放终端根据该关键帧序号,在自身缓存中已接收到的数据包中查询出该关键帧所在的视频数据包,并将该视频数据包序号之前的视频数据包丢弃,将该视频数据包序号之后的视频数据包载入视频解码器,解码器对接收到的数据包进行解码,输出视频画面。

图1b为本发明第一实施例服务器侧视频恢复播放方法的实现流程示意图,如图1b所示,本发明实施例还提供了一种服务器侧视频恢复播放方法包括:

步骤101b:服务器基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记,生成基于所述预设的时间标准发送的视频数据包的时间列表;

其中,服务器在向视频播放终端传输视频数据包之前,需要确认视频播放终端在接收到用户指令到清空视频解码器时所需要的处理时间,当确认视频播放终端的处理时间后,以两倍于所述处理时间的时间间隔向视频播放终端传输快进/快退视频数据包;

当服务器向视频播放终端传输视频数据包时,可以基于预设的时间标准对传输的视频数据包进行标记,例如:当传输点播视频时,可以基于点播视频的pts时间,对传输的视频数据包进行标记;当传输直播视频时,可以基于服务器的当前系统时间,对传输的视频数据包进行标记,同时,服务器记录对视频数据包进行时间标记的记录,生成时间列表。

步骤102b:当接收到视频播放终端发送的恢复播放视频请求后,对所述恢复播放请求进行解析,确定出的恢复播放视频的起始播放时刻;

其中,服务器接收到视频播放终端发送的恢复播放指令后,从所述恢复播放指令中提取出恢复播放视频的起始播放时刻;

在实际应用中,服务器侧并不会获知视频的pts时间,如果视频播放终端将恢复播放时所对应的pts时间发送给服务器,服务器侧在接收到视频恢复播放请求后,并不能基于pts时间确定出恢复播放的时间,也就是说,无法基于pts时间向视频播放终端传输视频数据包,因此,在该步骤中,所述解析出的起始播放时刻是视频播放终端经过计算后确定出的恢复播放时刻,该恢复播放时刻是服务器可识别的,即该恢复播放时刻是服务器对传输的视频数据包进行时间标记的时间标准。

步骤103b:将所述恢复播放视频的起始播放时刻在所述时间列表中进行查询,确定出所述恢复播放视频的起始播放时刻所对应的视频数据包;

其中,当服务器确定出恢复播放视频的起始播放时刻,可以直接将该起始播放时刻在所述步骤101b中所记录时间列表,确定出所述起始播放时刻所对应的向视频播放终端传输的视频数据包。

步骤104b:对所述起始播放时刻所对应的视频数据包进行关键帧解析,确定出所述起始播放时刻所对应的视频数据包内的关键帧序号;

其中,服务器可以对该视频数据包进行解析,确定出该数据包内所包含的视频关键帧,并将视频关键帧的播放时刻与所述恢复播放视频的起始播放时刻进行对比,将与所述恢复播放视频的起始播放时刻最接近的视频关键帧确定为恢复播放视频的起始播放帧。

步骤105b:响应于所述恢复播放视频请求,将所述恢复播放视频的起始时刻所对应的关键帧序号向所述视频播放终端发送。

其中,将确定出的恢复播放视频的起始播放帧的关键帧序号向视频播放终端发送,使视频播放终端可以基于所述关键帧序号对视频数据包进行解析,准确的向用户输出用户所期望的恢复播放时刻的视频画面。

本发明实施例所提出的视频的恢复播方法,可以实现将cdn发包间隔设置为大于2倍终端处理的耗时,避免了恢复命令处理过程中画面的跳帧,同时,cdn与终端均采用pts计算视频播放时间,有效防止了因两者时间计算标准不同导致计算出的实际恢复时刻出现误差;终端在恢复播放时丢弃掉无用帧,这些丢弃掉的冗余数据不再会造成额外的画面跳变。

实施例二

为实现上述方法,本发明实施例提供了一种视频播放终端,如图2所示,该终端包括:第一记录模块201,第二记录模块202,第一计算模块203,确定模块204,恢复播放模块205;其中,

第一记录模块201,用于接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;

第二记录模块202,当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;

第一计算模块203,基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;

确定模块204,当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;

恢复播放模块205,基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放。

其中,所述第一计算模块203,用于根据公式t4=t1+(t3-t2)确定出恢复播放的起始播放时间,其中,

t1表示视频播放的起始时间,t2表示视频起始帧的播放时间,t3表示当前视频显示画面的pts时间,t4表示恢复播放的起始播放时间。

其中,所述恢复播放模块205,用于将已接收到的视频数据包中关键帧序号小于所获取关键帧序号的视频数据包丢弃,将大于等于所述获取的关键帧序号的视频数据包载入编码器进行解码,输出所述获取的关键帧序号之后的视频数据包所显示的视频画面。

其中,所述终端还包括:

第二计算模块206,用于计算从接收到播放操作指令到将视频解码器缓存清空后的处理时间,将所述处理时间向服务器发送。

实施例三

为实现上述方法,本发明实施例提供了一种服务器,如图3所示,该服务器包括:时间标记模块301,第一解析模块302,查询模块303,第二解析模块304,发送模块305;其中,

时间标记模块301,用于基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记,生成基于所述预设的时间标准发送的视频数据包的时间列表;

第一解析模块302,用于当接收到视频播放终端发送的恢复播放视频请求后,对所述恢复播放请求进行解析,确定出的恢复播放视频的起始播放时刻;

查询模块303,用于将所述恢复播放视频的起始播放时刻在所述时间列表中进行查询,确定出所述恢复播放视频的起始播放时刻所对应的视频数据包;

第二解析模块304,用于对所述起始播放时刻所对应的视频数据包进行关键帧解析,确定出所述起始播放时刻所对应的视频数据包内的关键帧序号;

发送模块305,用于响应于所述恢复播放视频请求,将所述恢复播放视频的起始时刻所对应的关键帧序号向所述视频播放终端发送。

其中,所述服务器还包括:传输模块306,用于当接收到视频播放终端发送的处理时间后,以两倍于所述处理时间的时间间隔,向所述视频播放终端传输快进/快退视频数据包。

其中,所述传输模块306还用于:所述服务器接收到视频播放终端发送的视频快进和/或视频快退指令后,基于所述视频快进和/或视频快退指令,向所述视频播放终端传输快进和/或视频所对应的视频数据包。

其中,所述时间标记模块301用于:

当所述服务器向视频播放终端传输点播业务的视频数据包时,所述服务器基于传输视频的pts时间,对向视频播放终端传输视频数据包的时间进行标记;

当所述服务器向视频播放终端传输直播业务的视频数据包时,所述服务器基于服务器当前的系统时间,对向视频播放终端传输视频数据包的时间进行标记。

需要说明的是,上述视频播放终端以及服务器中各功能模块的实现可具体参考本发明实施例一中视频的恢复播放方法的相关描述,本发明实施例中不再赘述。

上述视频播放终端以及服务器中各功能模块可以由任何类型的易失性或非易失性存储设备、或者它们的组合来实现。其中,非易失性存储器可以是只读存储器(rom,readonlymemory)、可编程只读存储器(prom,programmableread-onlymemory)、可擦除可编程只读存储器(eprom,erasableprogrammableread-onlymemory)、电可擦除可编程只读存储器(eeprom,electricallyerasableprogrammableread-onlymemory)、磁性随机存取存储器(fram,ferromagneticrandomaccessmemory)、快闪存储器(flashmemory)、磁表面存储器、光盘、或只读光盘(cd-rom,compactdiscread-onlymemory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,randomaccessmemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,staticrandomaccessmemory)、同步静态随机存取存储器(ssram,synchronousstaticrandomaccessmemory)、动态随机存取存储器(dram,dynamicrandomaccessmemory)、同步动态随机存取存储器(sdram,synchronousdynamicrandomaccessmemory)、双倍数据速率同步动态随机存取存储器(ddrsdram,doubledataratesynchronousdynamicrandomaccessmemory)、增强型同步动态随机存取存储器(esdram,enhancedsynchronousdynamicrandomaccessmemory)、同步连接动态随机存取存储器(sldram,synclinkdynamicrandomaccessmemory)、直接内存总线随机存取存储器(drram,directrambusrandomaccessmemory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。

在实际应用中,上述视频播放终端以及服务器中各功能模块可由位于基站中的中央处理器(cpu,centralprocessingunit)、微处理器(mpu,microprocessorunit)、数字信号处理器(dsp,digitalsignalprocessor)、或现场可编程门阵列(fpga,fieldprogrammablegatearray)等实现。

实施例四

为实现上述方法,本发明实施例提供了一种视频恢复播放系统,如图4所示,该系统包括:视频播放终端401,服务器402;其中,

视频播放终端401,用于接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放;

服务器402,用于基于预设的时间标准,对向视频播放终端传输视频数据包的时间进行标记,生成基于所述预设的时间标准发送的视频数据包的时间列表;当接收到视频播放终端发送的恢复播放视频请求后,对所述恢复播放请求进行解析,确定出的恢复播放视频的起始播放时刻;将所述恢复播放视频的起始播放时刻在所述时间列表中进行查询,确定出所述恢复播放视频的起始播放时刻所对应的视频数据包;对所述起始播放时刻所对应的视频数据包进行关键帧解析,确定出所述起始播放时刻所对应的视频数据包内的关键帧序号;响应于所述恢复播放视频请求,将所述恢复播放视频的起始时刻所对应的关键帧序号向所述视频播放终端发送。

需要说明的是,本发明实施例中所提出的视频恢复播放系统中视频播放终端401以及服务器402中的各模块功能实现方法具体可参考实施例一、实施例二以及实施例三中所述的步骤,这里不再赘述。

下面以视频点播业务对本发明实施例所提出的视频恢复播放方法进行详细描述。

实施例五

图5为本发明第五实施例对于点播视频的精确恢复播放的实现流程,如图5所示,本发明实施例对于点播视频的精确恢复播放实现流程包括:

步骤501:视频播放终端对自身从接收到恢复播放指令后到将清空编码器缓存的处理时间,并将该处理时间向服务器发送;

步骤502:服务器接收到视频播放终端的处理时间后,以两倍于所述的处理时间向视频播放终端传输快进/快退视频流;

步骤503:服务器根据pts时间对向视频播放终端传输的视频流标记时间戳,并存储该视频流的时间戳列表;

步骤504:视频播放终端记录视频流标记时间戳中的起始时间,并同时记录视频流中起始关键帧的时刻;

步骤505:当视频播放终端接收到恢复播放指令后,停止对视频的编码,并获取当前视频画面的pts时间;

步骤506:视频播放终端向服务器发送恢复播放指令,在所述恢复播放指令中指明恢复播放的起始时刻;

步骤507:服务器基于恢复播放的起始时刻确定出恢复播放的起始帧,并将该关键帧的序号告知视频播放终端;

其中,服务器从恢复播放指令中获取恢复播放的起始时刻后,从所述时间戳列表中查询所述恢复播放的起始时刻所对应的视频数据包,并确定出与该视频数据包最接近的关键帧,将该关键帧确定为恢复播放的起始帧,将该关键帧的序号告知视频播放终端;

步骤508:视频播放终端基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放。

其中,视频播放终端获取到恢复播放的起始帧的序号后,将缓存中接收到序号小于所述恢复播放的起始帧的序号的视频数据包丢弃,对收到的大于等于所述恢复播放的起始帧的序号的数据包进行解码。

下面以视频直播业务对本发明实施例所提出的视频恢复播放方法进行详细描述。

实施例六

图6为本发明实施例对于直播视频的精确恢复播放的实现流程,如图6所示,本发明实施例对于直播视频的精确恢复播放实现流程包括:

步骤601:视频播放终端对自身从接收到恢复播放指令后到将清空编码器缓存的处理时间,并将该处理时间向服务器发送;

步骤602:服务器接收到视频播放终端的处理时间后,以两倍于所述的处理时间向视频播放终端传输快进/快退视频流;

步骤603:服务器基于自身的系统时间对向视频播放终端传输的视频流标记时间戳,并存储该视频流的时间戳列表;

其中,当直播进时移时,服务器将时移的起始帧的系统时间告知视频播放终端;

步骤604:视频播放终端记录接收到的时移的起始帧的系统时间以及起始关键帧的pts时间;

步骤605:当视频播放终端接收到恢复播放指令后,停止对视频的编码,并获取当前视频画面的pts时间;

步骤606:视频播放终端向服务器发送恢复播放指令,在所述恢复播放指令中指明恢复播放的起始时刻;

其中,所述恢复播放的起始时刻需转换为服务器的系统时间;

步骤607::服务器基于恢复播放的起始时刻确定出恢复播放的起始帧,并将该关键帧的序号告知视频播放终端;

步骤608:视频播放终端基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放;

步骤609:当从时移重新进入直播时,视频播放终端需要重置时移的起始帧的系统时间以及起始关键帧的pts时间,当再次进入时移,则返回执行步骤603。

在本发明实施例中,所述视频播放终端可以包括但不限于手机、平板、掌上电脑等移动设备。

本发明实施例所提供的视频恢复播放方法、视频播放终端、服务器及计算机可读存储介质,接收服务器传输的视频数据包,记录视频播放的起始时间,并根据视频的pts信息确定出所述视频起始帧的播放时间;当接收到恢复播放操作后,清空视频解码器缓存,记录接收到恢复播放操作时刻所显示视频画面的pts时间;基于所述视频播放的起始时间、所述视频起始帧的播放时间以及所述恢复播放操作时刻所显示视频画面的pts时间,计算出恢复播放的起始播放时间,生成恢复播放请求,并向服务器发送;当接收到服务器响应于所述恢复播放请求的响应消息后,从所述响应消息中获取所述恢复播放的起始播放时间所对应的视频关键帧序号;基于所述视频关键帧序号之后的视频数据包,对视频进行恢复播放。如此,通过将cdn发送快进/快退视频数据包间隔设置为大于2倍终端处理的耗时,避免了恢复命令处理过程中画面进行了跳帧,同时,cdn与终端均采用pts计算视频播放时间,有效防止了因两者时间计算标准不同导致计算出的实际恢复时刻出现误差;终端在恢复播放时丢弃掉无用帧,这些丢弃掉的冗余数据不再会造成额外的画面跳变,这样,实现了在视频进行快进或快退操作后精确恢复视频播放的方法,保证视频播放的连续性,提升用户的使用体验。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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