法律状态公告日
法律状态信息
法律状态
2019-06-11
授权
授权
2016-12-14
实质审查的生效 IPC(主分类):H04N21/433 申请日:20160519
实质审查的生效
2016-11-16
公开
公开
技术领域
本发明涉及播放器的视频缓冲播放技术,具体涉及一种基于实时视频的平滑追赶播放方法和一种基于实时视频的播放方法。
背景技术
随着实时监控系统在各个领域的广泛应用,用户对播放器的要求也越来越高。现在的播放器,可以很好地实现实时视频预览及录像回放等功能,但对实时视频的暂停恢复功能还存在着缺陷,具体表现为实时视频在暂停后恢复,视频画面会突然跳跃到当前视频流时间点进行播放,导致暂停时间段的视频内容丢失,这严重影响了对实时视频信息的获取,视频画面的跳跃也导致用户体验度低。
发明内容
为了解决上述问题,本发明提供了一种基于实时视频的平滑追赶播放方法和一种基于实时视频的播放方法。该方法能以平滑的播放速度播放因为暂停而未实时播放的那段视频内容,不会造成视频内容的丢失,用户体验度高。
为实现上述发明目的,本发明提供了一种基于实时视频的平滑追赶播放方法,用于视频播放器,所述方法包括以下步骤:
播放器从播放中被暂停时继续接收发过来的视频流并存储这些视频流;
播放器从暂停被恢复播放后,从暂停时的视频流开始播放,播放器的播放速度从正常播放速度线性增加到最大播放速度,然后再从最大播放速度线性递减,当播放当前时间点的视频流时,播放速度递减为正常播放速度,播放器开始实时播放视频流;
其中,正常播放速度是指实时视频正常播放时的速度,最大播放速 度由用户预先设定。
进一步的,当所述播放器从播放中被暂停时,记录此时刻T0,当所述播放器从暂停被恢复播放时,记录此时刻T1,当播放器从加速播放状态开始播放当前时间点的视频流即开始实时播放视频流时,记录此时刻T3,所述最大播放速度所处的时刻T2为从时刻T1到时刻T3这段时间段的中间时刻。
进一步的,所述正常播放速度记为V0,所述最大播放速度记为V1,那么在[T1,T2]区间,播放器的播放速度V12用如下公式表示:
V12=(V1-V0)T/(T2-T1)+(V0T2-V1T1)/(T2-T1),
其中T2=V0T/(V0-T);
在[T2,T3]区间,播放器的播放速度V23用如下公式表示:
V23=(V0-V1)T/(T3-T2)+(V1T3-V0T2)/(T3-T2),
其中T2=V0T/(V0-T),T3=(V1T1-V0T1+2V0T0)/(V0-V1)。
优选的,所述视频流存储采用多线程的方法来执行。
优选的,所述视频流以队列的方式进行存储。
相应的,本发明还提供了一种基于实时视频的播放方法,用于视频播放器,所述播放方法包括以下步骤:
获取实时视频流并在播放器上显示当前的视频流;
当播放器从播放中被暂停时继续接收发过来的视频流并存储这些视频流;
当播放器从暂停被恢复播放后,从暂停时的视频流开始播放,播放器的播放速度从正常播放速度线性增加到最大播放速度,然后再从最大播放速度线性递减,当播放当前时间点的视频流时,播放速度递减为正常播放速度,播放器开始实时播放视频流;
其中,正常播放速度是指实时视频正常播放时的速度,最大播放速度由用户预先设定。
进一步的,当所述播放器从播放中被暂停时,记录此时刻T0,当所>1,当播放器从加速播放状态开始播放当前时间点的视频流即开始实时播放视频流时,记录此时刻T3,所述最大播放速度所处的时刻T2为从时刻T1到时刻T3这段时间段的中间时刻。
进一步的,所述正常播放速度记为V0,所述最大播放速度记为V1,那么在[T1,T2]区间,播放器的播放速度V12用如下公式表示:
V12=(V1-V0)T/(T2-T1)+(V0T2-V1T1)/(T2-T1),
其中T2=V0T/(V0-T);
在[T2,T3]区间,播放器的播放速度V23用如下公式表示:
V23=(V0-V1)T/(T3-T2)+(V1T3-V0T2)/(T3-T2),
其中T2=V0T/(V0-T),T3=(V1T1-V0T1+2V0T0)/(V0-V1)。
进一步的,所述存储视频流是指将视频流读入缓存,所述播放器从暂停被恢复播放后,所述播放器进入追赶播放模式,通过判断视频缓存数据是、否为空来决定是否进入以正常播放速度播放的实时播放状态,具体包括以下步骤:
步骤A:获取实时视频流;
步骤B:无需缓存直接在播放器上显示当前的视频流;
步骤C:判断播放器是否被暂停播放,如果暂停播放,则执行步骤D,否则,执行步骤B;
步骤D:继续接收发过来的视频流并将视频流读入缓存中;
步骤E:判断播放器是否从暂停状态被恢复播放,如果被恢复播放,则执行步骤F,否则,执行步骤D;
步骤F:播放器进入追赶播放模式,从暂停时的视频流开始加速播放;
步骤G:继续接收发送过来的视频流,并将其读入缓存;
步骤H:判断视频缓存数据是否为空,如果缓存数据为空,则执行步骤B,否则,执行步骤D。
优选的,所述视频流存储采用多线程的方法来执行,所述视频流以队列的方式进行存储。
通过上述技术方案可知,本发明对暂停阶段发生的实时视频流进行存储,防止了实时视频信息的丢失。为了能把暂停阶段的视频如实呈现给用户并尽快进入实时播放,本发明采用线性加速播放的方法,线性加速不会造成画面的跳跃,能实现播放器的平滑播放,用户体验度高。本发明具有如下优点:
(1)对暂停阶段发生的实时视频流进行存储,防止了实时视频信息的丢失;(2)播放速度呈线性增加或减少能实现平滑的播放,用户体验感好;(3)利用多线程方式对视频流数据进行存储,程序执行效率较高。
附图说明
图1是本发明基于实时视频的播放方法的一个实施例的流程图。
图2是本发明平滑追赶播放方法和本发明基于实时视频的播放方法的优选实施例的播放速度与时间关系示意图。
图3是本发明平滑追赶播放方法和本发明基于实时视频的播放方法的优选实施例中播放速度控制流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于实时视频的平滑追赶播放方法,用于视频播放器,所述方法包括以下步骤:
播放器从播放中被暂停时继续接收发过来的视频流并存储这些视频流;
播放器从暂停被恢复播放后,从暂停时的视频流开始播放,播放器的播放速度从正常播放速度线性增加到最大播放速度,然后再从最大播放速度线性递减,当播放当前时间点的视频流时,播放速度递减为正常播放速度,播放器开始实时播放视频流;
其中,正常播放速度是指实时视频正常播放时的速度,最大播放速度由用户预先设定。
本发明的平滑追赶播放方法对暂停阶段发生的实时视频流进行存储,防止了实时视频信息的丢失。当播放器再次被播放时,为了能把暂停阶段的视频如实呈现给用户并尽快进入实时播放,必须采用比正常播放时快的速度才能追赶上当前视频播放的时间点。本发明采用线性加速播放的方法,播放的速度开始呈线性递增状态,到达用户选定的最高速度后,播放速度呈线性递减状态,当追赶到当前视频播放时间点时,速度也正好递减为正常的速度进行实时播放。这样线性加速不会造成画面的跳跃,能实现播放器的平滑播放,用户体验度高。
需要说明的是,最大播放速度由用户预先设定,优选的,该速度可以是正常播放速度的2倍,4倍,6倍或8倍。
进一步的,在本发明平滑追赶播放方法的其他优选实施例中,当所述播放器从播放中被暂停时,记录此时刻T0,当所述播放器从暂停被恢复播放时,记录此时刻T1,当播放器从加速播放状态开始播放当前时间点的视频流即开始实时播放视频流时,记录此时刻T3,所述最大播放速度所处的时刻T2为从时刻T1到时刻T3这段时间段的中间时刻。
当实时视频的暂停动作被触发后,记录视频暂停的时间T0,当播放动作再次被触发后,记录视频恢复的时间T1,为了更平滑的追赶播放视频流,所述最大播放速度被设置为追赶时间段中间时刻的播放速度,即T2=(T1+T3)/2。
进一步的,在本发明平滑追赶播放方法的其他优选实施例中,所述正常播放速度记为V0,所述最大播放速度记为V1,那么在[T1,T2]区间,播放器的播放速度V12用如下公式表示:
V12=(V1-V0)T/(T2-T1)+(V0T2-V1T1)/(T2-T1)(1),
其中T2=V0T/(V0-T);
在[T2,T3]区间,播放器的播放速度V23用如下公式表示:
V23=(V0-V1)T/(T3-T2)+(V1T3-V0T2)/(T3-T2)(2),
其中T2=V0T/(V0-T),T3=(V1T1-V0T1+2V0T0)/(V0-V1)。
请参考图1,V1为用户选定的最大播放速度,V0为实时播放时的正常播放速度,T0为视频开始暂停的时间点,T1为开始追赶播放的时间点,这四个参数是已知的数据。首先求出与实时视频实现同步的时间T3,按照实时视频的正常播放速度,在T0到T3时间段内视频流总量为V0*(T3-T0),按追赶播放速度,由于最高速度是V1,最小速度是V0,则平均速度是即(V1+V0)/2,则视频流总量为(V1+V0)*(T3-T1)/2所以我们可以求出T3:
V0*(T3-T0)=(V1+V0)*(T3-T1)/2,
T3=(V1T1-V0T1+2V0T0)/(V0-V1)。
因为T2=(T1+T3)/2,那么T2=V0T/(V0-T)。
在[T1,T2]区间,速度递增直线方程的斜率为(V1-V0)/(T2-T1),又因为在T1时刻速度为V0,所以公式为:
V12=(V1-V0)T/(T2-T1)+(V0T2-V1T1)/(T2-T1)
在[T2,T3]区间,速度递减直线方程的斜率为(V0-V1)/(T3-T2),又因为在T3时刻速度降到V0,所以公式为:
V23=(V0-V1)T/(T3-T2)+(V1T3-V0T2)/(T3-T2)
其中T、V12和V23是变量。
优选的,在本发明平滑追赶播放方法的其他优选实施例中,所述视频流存储采用多线程的方法来执行。采用多线程的方法程序执行效率较 高。
优选的,在本发明平滑追赶播放方法的其他优选实施例中,所述视频流以队列的方式进行存储。
相应的,本发明还提供了一种基于实时视频的播放方法,用于视频播放器,所述播放方法包括以下步骤:
获取实时视频流并在播放器上显示当前的视频流;
当播放器从播放中被暂停时继续接收发过来的视频流并存储这些视频流;
当播放器从暂停被恢复播放后,从暂停时的视频流开始播放,播放器的播放速度从正常播放速度线性增加到最大播放速度,然后再从最大播放速度线性递减,当播放当前时间点的视频流时,播放速度递减为正常播放速度,播放器开始实时播放视频流;
其中,正常播放速度是指实时视频正常播放时的速度,最大播放速度由用户预先设定。
即播放器正常播放时,实时获取视频流无需缓存直接在播放器上显示当前的视频流;当播放器被暂停后则按照上述所述的平滑追赶播放方法将暂停阶段发生的视频流进行存储,并于其后播放器被恢复播放后追赶播放暂停阶段的视频流直至追赶上当前视频播放的时间点,然后再次进入正常播放状态,实时播放视频流。
本发明的基于实时视频的播放方法对暂停阶段发生的实时视频流进行存储,防止了实时视频信息的丢失。当播放器再次被播放时,为了能把暂停阶段的视频如实呈现给用户并尽快进入实时播放,必须采用比正常播放时快的速度才能追赶上当前视频播放的时间点。本发明采用线性加速播放的方法,播放的速度开始呈线性递增状态,到达用户选定的最高速度后,播放速度呈线性递减状态,当追赶到当前视频播放时间点时,速度也正好递减为正常的速度进行实时播放。这样线性加速不会造成画面的跳跃,能实现播放器的平滑播放,用户体验度高。
需要说明的是,最大播放速度由用户预先设定,优选的,该速度可以是正常播放速度的2倍,4倍,6倍或8倍。
进一步的,在本发明基于实时视频的播放方法的其他优选实施例中,当所述播放器从播放中被暂停时,记录此时刻T0,当所述播放器从暂停被恢复播放时,记录此时刻T1,当播放器从加速播放状态开始播放当前时间点的视频流即开始实时播放视频流时,记录此时刻T3,所述最大播放速度所处的时刻T2为从时刻T1到时刻T3这段时间段的中间时刻。
当实时视频的暂停动作被触发后,记录视频暂停的时间T0,当播放动作再次被触发后,记录视频恢复的时间T1,为了更平滑的追赶播放视频流,所述最大播放速度被设置为追赶时间段中间时刻的播放速度,即T2=(T1+T3)/2。
进一步的,在本发明基于实时视频的播放方法的其他优选实施例中,所述正常播放速度记为V0,所述最大播放速度记为V1,那么在[T1,T2]区间,播放器的播放速度V12用如下公式表示:
V12=(V1-V0)T/(T2-T1)+(V0T2-V1T1)/(T2-T1)(3),
其中T2=V0T/(V0-T);
在[T2,T3]区间,播放器的播放速度V23用如下公式表示:
V23=(V0-V1)T/(T3-T2)+(V1T3-V0T2)/(T3-T2)(4),
其中T2=V0T/(V0-T),T3=(V1T1-V0T1+2V0T0)/(V0-V1)。
该公式的推导方法与所述平滑追赶播放方法的播放器播放速度公式(即公式(1)和公式(2))的推导方法一致,在此不再赘述。
进一步的,在本发明基于实时视频的播放方法的其他优选实施例中,所述存储视频流是指将视频流读入缓存,所述播放器从暂停被恢复播放后,所述播放器进入追赶播放模式,通过判断视频缓存数据是、否为空来决定是否进入以正常播放速度播放的实时播放状态,具体包括以下步骤:
步骤A:获取实时视频流;
步骤B:无需缓存直接在播放器上显示当前的视频流;
步骤C:判断播放器是否被暂停播放,如果暂停播放,则执行步骤D,否则,执行步骤B;
步骤D:继续接收发过来的视频流并将视频流读入缓存中;
步骤E:判断播放器是否从暂停状态被恢复播放,如果被恢复播放,则执行步骤F,否则,执行步骤D;
步骤F:播放器进入追赶播放模式,从暂停时的视频流开始加速播放;
步骤G:继续接收发送过来的视频流,并将其读入缓存;
步骤H:判断视频缓存数据是否为空,如果缓存数据为空,则执行步骤B,否则,执行步骤D。
下面详细说明本发明基于实时视频的播放方法的优选实施例,请参照图2,该实施例包括以下步骤:
步骤100:获取实时视频流;
步骤200:无需缓存直接在播放器上显示当前的视频流;
步骤300:判断播放器是否被暂停播放,如果暂停播放,则执行步骤400,否则,执行步骤200;
步骤400:继续接收发过来的视频流并将视频流读入缓存中;
步骤500:判断播放器是否从暂停状态被恢复播放,如果被恢复播放,则执行步骤600,否则,执行步骤400;
步骤600:播放器进入追赶模式,从暂停时的视频流开始播放,播放器的播放速度根据公式(3)和公式(4)计算;
步骤700:继续接收发送过来的视频流,并将其读入缓存;
步骤800:判断视频缓存数据是否为空,如果缓存数据为空,则执行步骤200,否则,执行步骤400。
优选的,在本发明基于实时视频的播放方法的其他优选实施例中,所述视频流存储采用多线程的方法来执行,采用多线程的方法程序执行 效率高。
优选的,在本发明基于实时视频的播放方法的其他优选实施例中,所述视频流以队列的方式进行存储。
需要说明的是,本发明的平滑追赶播放方法和基于实时视频的播放方法可应用于能够提供暂停实时视频功能的任何播放器。具体应用中,视频流可以以视频帧为单位进行存储和播放。
具体的,本发明平滑追赶播放方法和基于实时视频的播放方法的优选实施例中可以采用下述方法对播放速度进行控制,如下:
步骤601:视频解码播放。
步骤602:判断播放器是、否处于追赶播放中,如果处于追赶播放中,则顺序执行步骤604和步骤605,否则,执行步骤603。
步骤603:以正常播放速度实时播放视频流。
步骤604:获取播放器的播放速度,在具体应用中可以通过解码时间控制器来获取播放速度,具体包括以下步骤:
步骤6041:判断当前播放速度是否达到用户设定的最大播放速度,如果没有达到用户设定的最大播放速度,则执行步骤6042,如果达到用户设定的最大播放速度,则执行步骤6043;
步骤6042:利用速度增加公式即公式(3)计算播放速度;
步骤6043:利用速度减小公式即公式(4)计算播放速度。
步骤605:将接收的视频流存入缓存并利用步骤604获得的播放速度加速播放视频流。
机译: 在基于视频终端的自适应云播放器中播放实时视频的方法和系统
机译: 基于对象的音频内容生成/播放设备,能够基于声音场合成播放模式和至少多通道环绕声播放模式中的一种来播放基于对象的音频内容
机译: 使用线性实时视频播放器进行非线性视频播放的系统和方法