一种视频播放方法及装置与流程

文档序号:13516607阅读:258来源:国知局
一种视频播放方法及装置与流程

本发明涉及视频处理技术领域,特别涉及一种视频播放方法及装置。



背景技术:

目前的监控设备,例如:dvr(digitalvideorecorder,硬盘录像机)、nvr(networkvideorecorder,网络硬盘录像机)等,一般都支持录像快速回放方式,客户端获取监控设备的录像流数据并进行本地解码播放,可以对播放的速度进行控制,一般支持2×,4×,8×,16×(×表示倍速)快速录像回放,这样用户很好的快速播放视频,从而解决“一般用户快放”的应用需求。

现有技术的不足在于:只能以设备提供的低于16×的倍速进行回放。



技术实现要素:

本发明提供了一种视频播放方法及装置,用以提高视频回放速度。

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

确定需要播放的视频;

确定需要播放的速度;

根据需要播放的速度抽取视频中的pb帧和/或i帧;

播放抽取pb帧和/或i帧后的视频。

较佳地,进一步包括:

根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧。

较佳地,所述预设速度阈值是根据以下因素之一或者其组合确定的:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

较佳地,根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧,包括:

需要播放的速度小于第一预设速度阈值时,不抽取视频中的pb帧和/或i帧;

需要播放的速度大于第一预设速度阈值小于第二预设速度阈值时,抽取视频中的pb帧;

需要播放的速度大于第二预设速度阈值时,抽取视频中的i帧。

较佳地,第一预设速度阈值为不抽帧时的最大播放速度;

第二预设速度阈值为抽取视频中所有的pb帧时的最大播放速度。

较佳地,抽取视频中的pb帧和/或i帧是由播放设备和/或视频录制设备抽取的。

较佳地,根据以下因素之一或者其组合确定由播放设备和/或视频录制设备抽取视频中的pb帧和/或i帧:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

本发明实施例提供了一种视频播放装置,包括:

视频确定模块,用于确定需要播放的视频;

速度确定模块,用于确定需要播放的速度;

抽帧模块,用于根据需要播放的速度抽取视频中的pb帧和/或i帧;

播放模块,用于播放抽取pb帧和/或i帧后的视频。

较佳地,抽帧模块进一步用于根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧。

较佳地,所述预设速度阈值是根据以下因素之一或者其组合确定的:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

较佳地,抽帧模块进一步用于在根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧时,包括:

需要播放的速度小于第一预设速度阈值时,不抽取视频中的pb帧和/或i帧;

需要播放的速度大于第一预设速度阈值小于第二预设速度阈值时,抽取视频中的pb帧;

需要播放的速度大于第二预设速度阈值时,抽取视频中的i帧。

较佳地,第一预设速度阈值为不抽帧时的最大播放速度;

第二预设速度阈值为抽取视频中所有的pb帧时的最大播放速度。

较佳地,抽帧模块进一步用于在播放设备和/或视频录制设备上抽取视频中的pb帧和/或i帧。

较佳地,抽帧模块进一步用于根据以下因素之一或者其组合确定由播放设备和/或视频录制设备抽取视频中的pb帧和/或i帧:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述视频播放方法。

本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述视频播放方法。

本发明有益效果如下:

在本发明实施例提供的技术方案中,由于播放的视频是经过pb帧和/或i帧抽取后的视频,因此,能够在同等硬软件、网络条件下,实现更高的录像回放速度。进一步的,理论上,达到的上限的倍数是不限定的。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例中视频播放方法实施流程示意图;

图2为本发明实施例中抽帧播放实施流程示意图;

图3为本发明实施例中视频播放装置结构示意图。

具体实施方式

发明人在发明过程中注意到:

有时候用户需要看到更高倍率的录像回放速度或者超高倍率的录像回放速度。比如:用户想要超高倍率回放一下设备的所有录像数据,确保录像数据完整性。但是,当前对于主流的视频1080p,由于解码性能和网络传输能力的限制,导致通过传输录像码流进行高倍数录像回放,一般只支持2×,4×,8×,16×的播放,有时候8×和16×都不一定能达到。

录像回放其实就是回放码流数据,一般客户端从设备端获取的码流数据格式为:

i1,p1,p2………….pmi2,p1,p2…………pmi3p1,p2…………pmi4p1,p2…………………….pmin,p1,p2…………pm

i帧序号是:1,2,3,4,5................n.

完整的gop(groupofpictures,画面组)序号:1,2,3,4,5................n.

如果对于超过8×,16×或者更高的快放速度时,对于一台8g内存,处理器3.70ghz的64位电脑上一般也达不到这样的录像回放速度。因此就需要更好的技术方案来达到更好的效果。

基于此,本发明实施例中将提供在视频监控设备(例如:dvr、nvr等)上提高录像回放快放速度的方案,用以达到了更高倍率的录像回放速度,即使是在原来录像回放速度一般最大支持的快放速度为16×倍的同等硬件和软件条件下,也能支持更高的倍数。

下面结合附图对本发明的具体实施方式进行说明。在说明过程中将主要以现有的监控设备(例如:dvr、nvr、大华的evs(网络视频存储服务器)等)和客户端解码播放为例,说明共同实现超高倍数快速录像回放的实施。

图1为视频播放方法实施流程示意图,如图所示,可以包括:

步骤101、确定需要播放的视频;

步骤102、确定需要播放的速度;

步骤103、根据需要播放的速度抽取视频中的pb帧和/或i帧;

步骤104、播放抽取pb帧和/或i帧后的视频。

先对实施例中将会涉及的概念进行简要说明。

在h264协议里定义了三种帧,完整编码的帧叫i帧,参考之前的i帧生成的只包含差异部分编码的帧叫p帧,还有一种参考前后的帧编码的帧叫b帧。

h264采用的核心算法是帧内压缩和帧间压缩,帧内压缩是生成i帧的算法,帧间压缩是生成b帧和p帧的算法。

由此,本领域技术人员也容易通过p帧与b帧之间的关系,在明了其中一种帧的实施方式后知晓另一种帧的实施,下面的具体实施也将主要以p帧为例进行说明。当然,由于抽取p帧的实施与抽取p帧或b帧,以及抽取p帧和b帧的方式是一样,所以实施中将其表述为“pb帧”,表示p帧和/或b帧的含义。

gop是画面组,一个gop是一组连续的画面。gop结构一般两个数字,如m=3,n=12。m指定i帧和p帧之间的距离,n指定两个i帧之间的距离。上面的m=3,n=12,gop结构为:ibbpbbpbbpbbi。在一个gop内iframe解码不依赖任何的其它帧,pframe解码则依赖前面的iframe或pframe,bframe解码依赖前最近的一个iframe或pframe及其后最近的一个pframe。

对于步骤103中根据需要播放的速度抽取视频中的pb帧和/或i帧,具体实施中,抽取视频中的pb帧和/或i帧可以是由播放设备和/或视频录制设备抽取的。也即,采取的策略可以有两种:

1、通过播放设备(例如:本地播放器)进行抽帧解码。

2、通过网络通信协议,控制视频录制设备(例如:设备端)发送录像码流时,进行抽帧发送数据。

下面对抽取视频中的pb帧和/或i帧的具体实施进行说明。

抽帧方式可以分为3种方式:

方式1:不抽帧。

该方式下,也即全速播放。

方式2:抽部分pb帧方式播放,保留所有i帧。

该方式下,抽部分p帧,根据解码能力和显示能力可以对p帧进行多种方式的抽帧,在需要的情况下,把所有的p帧数据都抽取也是可以的。同理,可以抽取p帧和/或b帧,也即,这里抽取p帧,也代表了抽取gop内的b帧数据,只保留一个gop中的i帧,使用抽取pb帧来表示。

方式3:抽部分i帧方式播放。

该方式下,抽部分i帧,根据要达到的超高倍率回放的倍数,进行选择想要的抽帧方式。可以按照倍数确定抽帧方式,也可以按照定义的线性关系确定抽帧方式。线性关系也即抽取的i帧数量与需要的播放倍数之间的关系。

下面以实例进行示范如下:

1、按方式1的不抽帧。

该方式是容易理解的,不再赘述。

2、按方式2抽部分p帧方式播放。

该方式下,用户可以根据自己的实际环境,选择不同的抽p帧方式,如下举例只是展示抽帧方式的一部分,并不包含全部。

范例1:

i1,p1,p2………….pmi2,p1,p2…………pmi3i4p1,p2…………pmi5i6p1,p2…………………….pmix,p1,p2…………pm

i帧序号是:1,2,3,4,5................n.

完整的gop信息序号:1,2,4,6,8................x.

范例2:

i1,p1,p2………….pmi2i3i4,p1,p2…………pmi5i6i7i8p1,p2…………pmi12p1,p2…………………….pmix,p1,p2…………pm

i帧序号是:1,2,3,4,5................n.

完整的gop信息序号:1,4,8,12................x.

范例3:

i1i2i3i4i5i6………………….ix…………….in

i帧序号是:1,2,3,4,5................n.

完整的gop信息序号:空

3、按方式3抽部分i帧方式播放。

该方式下,用户可以根据自己的实际环境,选择不同的抽i帧方式,如下举例只是展示抽帧方式的一部分,并不包含全部。

范例4:

抽所有p帧数据,2倍数抽帧i帧。

i1i2i4i6i8………………….ix…………….in

i帧序号是:1,2,,4,6,8................n.

完整的gop信息序号:空

范例5:

抽所有p帧数据,4倍数抽帧i帧。

i1i4i8i12………………….ix…………….in

i帧序号是:1,4,8,12,................n.

完整的gop信息序号:空

范例6:

抽所有p帧数据,8倍数抽帧i帧。

i1i8i16i24i32………………….ix…………….in

i帧序号是:1,8,16,24,32................n.

完整的gop信息序号:空

范例7:

抽所有p帧数据,16倍数抽帧i帧。

i1i16i32………………….ix…………….in

i帧序号是:1,16,32................n.

完整的gop信息序号:空

下面再对具体的抽取方式进行说明。

1、根据需要播放的速度抽取视频中的pb帧和/或i帧。

这是容易理解的,仅需要根据需要播放的速度,结合上述范例即可实施。

2、进一步的,还可以根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧。

实施中,预设速度阈值是根据以下因素之一或者其组合确定的:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

也即,具体实施中,在确定抽帧的策略时,选择的决定因数如下:

在不抽帧情况下的环境评估:

播放设备的硬件、网络数据传输能力:播放设备的硬件决定了本地解码的最高倍数,网络带宽情况决定了网络能够传输最大录像码流数据,最大可以达到多少倍快速速度的码流。

播放设备的软件,视频录制设备:播放设备的软件决定了本地录像码流最大的接收速度,视频录制设备决定了录像回放发送的录像码流数据的最大发送速度。

默认情况下,一般正常的录像回放速度为1倍数,该要素取决于用户的默认设置。不影响本策略的选择,同时实施中还可以包含其中各种变化的选择。选定用户的正常录像回放速度的值为1倍数播放。

那么,不抽帧情况下,全速播放的倍数计算方式可以为:

k1=(硬件,网络,软件,监控设备)决定的环境在不抽帧情况下,达到的最大快放速度倍数。

而在抽帧策略下,有两种方式:

k2=(硬件,网络,软件,监控设备)决定的环境下,抽所有的pb帧,或者,只解码i帧的情况下,达到的最大快放速度倍数。

也即:

实施中,可以根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧,包括:

需要播放的速度小于第一预设速度阈值(上述k1)时,不抽取视频中的pb帧和/或i帧;

需要播放的速度大于第一预设速度阈值(上述k1)小于第二预设速度阈值(上述k2)时,抽取视频中的pb帧;

需要播放的速度大于第二预设速度阈值(上述k2)时,抽取视频中的i帧。

具体实施中,第一预设速度阈值(上述k1)为不抽帧时的最大播放速度;

第二预设速度阈值(上述k2)为抽取视频中所有的pb帧时的最大播放速度。

具体抽帧的策略可以为:

回放时回放的倍数小于k1时,当前网传能力、解码能力、显示能力等支持的情况,不需要采用抽帧的策略。这时候录像是完整的。

对于回放的倍数大于k1时,同时小于等于k2时,采用抽部分pb帧的方式。

对于超高倍率的录像回放,即回放倍数大于k2时,就需要采用抽i帧的方式实现,在急速快放的过程中,该方式下,其实人的肉眼是看不出问题的。这种方式也是可行的。

另外,如果网络带宽不够,或者用户要求节省流量的考虑,或者减少本地解码的性能压力,可以优先采用网络抽帧策略。

即优先级:z(网络抽帧解码抽帧)>y(本地抽帧解码抽帧),这样的话,可以让设备来做抽帧处理。

这样,实施中,在由播放设备和/或视频录制设备抽取时,则可以根据以下因素之一或者其组合确定由播放设备和/或视频录制设备抽取视频中的pb帧和/或i帧:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

则,选择策略公式可以表达为:

result=x*y*z;

y:(本地抽帧解码策略方法),根据实际情况选择3中方式中的一种。

z:(网络抽帧解码策略方法),根据实际情况选择3中方式中的一种。

优先级:x>y>z

优先级分析:当前网传能力、解码能力、显示能力等支持的情况,可以优先全速播放,不考虑抽帧的策略,如果当前硬件,网络,软件,监控设备等决定的环境下,无法支持所需要的高倍率回放时,采用抽帧策略,优先采用本地解码抽帧方式,优先保证录像的完整性。通过本地解码器可以实现抽帧播放。因为本地硬件可以通过升级达到更高的性能,

下面再以上述策略结合优先级进行实施的实例进行说明。

图2为抽帧播放实施流程示意图,如图所示,可以包括:

步骤201、开始录像回放;

步骤202、选择录像回放倍数;

步骤203、判断是否大于k1,是则转入步骤205,否则转入步骤204;

步骤204、确定进行全速播放后转入步骤209;

步骤205、判断是否大于k2,是则转入步骤207,否则转入步骤206;

步骤206、确定抽取部分p帧后进行播放后转入步骤209;

步骤207、确定抽取部分i帧后进行播放后转入步骤208;

步骤208、进行优先级考虑;

步骤209、根据策略计算需要录像回放的方式;

步骤210、实现回放。

基于同一发明构思,本发明实施例中还提供了一种视频播放装置、一种计算机设备、一种计算机可读存储介质,由于该装置解决问题的原理与一种视频播放方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。

图3为视频播放装置结构示意图,如图所示,可以包括:

视频确定模块301,用于确定需要播放的视频;

速度确定模块302,用于确定需要播放的速度;

抽帧模块303,用于根据需要播放的速度抽取视频中的pb帧和/或i帧;

播放模块304,用于播放抽取pb帧和/或i帧后的视频。

实施中,抽帧模块进一步用于根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧。

实施中,所述预设速度阈值是根据以下因素之一或者其组合确定的:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

实施中,抽帧模块进一步用于在根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧时,包括:

需要播放的速度小于第一预设速度阈值时,不抽取视频中的pb帧和/或i帧;

需要播放的速度大于第一预设速度阈值小于第二预设速度阈值时,抽取视频中的pb帧;

需要播放的速度大于第二预设速度阈值时,抽取视频中的i帧。

实施中,第一预设速度阈值为不抽帧时的最大播放速度;

第二预设速度阈值为抽取视频中所有的pb帧时的最大播放速度。

实施中,抽帧模块进一步用于在播放设备和/或视频录制设备上抽取视频中的pb帧和/或i帧。

实施中,抽帧模块进一步用于根据以下因素之一或者其组合确定由播放设备和/或视频录制设备抽取视频中的pb帧和/或i帧:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

为了描述的方便,以上所述装置的各部分以功能分为各种模块或单元分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。

本发明实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现下述方法:

确定需要播放的视频;

确定需要播放的速度;

根据需要播放的速度抽取视频中的pb帧和/或i帧;

播放抽取pb帧和/或i帧后的视频。

实施中,进一步包括:

根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧。

实施中,所述预设速度阈值是根据以下因素之一或者其组合确定的:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

实施中,根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧,包括:

需要播放的速度小于第一预设速度阈值时,不抽取视频中的pb帧和/或i帧;

需要播放的速度大于第一预设速度阈值小于第二预设速度阈值时,抽取视频中的pb帧;

需要播放的速度大于第二预设速度阈值时,抽取视频中的i帧。

实施中,第一预设速度阈值为不抽帧时的最大播放速度;

第二预设速度阈值为抽取视频中所有的pb帧时的最大播放速度。

实施中,抽取视频中的pb帧和/或i帧是由播放设备和/或视频录制设备抽取的。

实施中,根据以下因素之一或者其组合确定由播放设备和/或视频录制设备抽取视频中的pb帧和/或i帧:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有执行下述方法的计算机程序:

确定需要播放的视频;

确定需要播放的速度;

根据需要播放的速度抽取视频中的pb帧和/或i帧;

播放抽取pb帧和/或i帧后的视频。

实施中,进一步包括:

根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧。

实施中,所述预设速度阈值是根据以下因素之一或者其组合确定的:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

实施中,根据需要播放的速度与预设速度阈值决定抽取视频中的pb帧和/或i帧,包括:

需要播放的速度小于第一预设速度阈值时,不抽取视频中的pb帧和/或i帧;

需要播放的速度大于第一预设速度阈值小于第二预设速度阈值时,抽取视频中的pb帧;

需要播放的速度大于第二预设速度阈值时,抽取视频中的i帧。

实施中,第一预设速度阈值为不抽帧时的最大播放速度;

第二预设速度阈值为抽取视频中所有的pb帧时的最大播放速度。

实施中,抽取视频中的pb帧和/或i帧是由播放设备和/或视频录制设备抽取的。

实施中,根据以下因素之一或者其组合确定由播放设备和/或视频录制设备抽取视频中的pb帧和/或i帧:

播放设备的硬件视频处理能力、播放设备的软件视频处理能力、网络数据传输能力、视频录制设备的硬件视频处理能力、视频录制设备的软件视频处理能力。

综上所述,本发明实施例提供的技术方案中,根据本地解码抽帧和网络控制设备发送数据抽帧两种方式,制定特定的策略,同等条件下,包含软件环境,硬件环境,网络环境下,录像回放速度可以比原来达到更高的倍数。理论上,达到的上限的倍数是不限定的。

具体的,在当前网传能力、解码能力、显示能力等支持的情况下,计算出阈值:k1和k2的值,然后用户根据自己想要的倍数,选择回放策略。

并具体提供了录像回放中,超高倍率快速回放策略选择阈值的计算方式;

超高倍率回放时,采用的抽帧策略和计算用户回放倍数的公式。

采用该方案,提高了视频监控设备录像回放快放方面的速度,达到了更高倍率的录像回放速度,原来录像回放速度一般最大支持的快放速度为16×倍,同等硬件和软件条件下,本方案支持更高的倍数。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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