视频显示方法及装置、电子设备、计算机可读存储介质与流程

文档序号:24540275发布日期:2021-04-02 10:23阅读:58来源:国知局
视频显示方法及装置、电子设备、计算机可读存储介质与流程

本申请涉及多媒体技术领域,具体涉及一种视频显示方法及装置、电子设备、计算机可读存储介质。



背景技术:

在视频播放的过程中,用户通常会将视频从一个时间点拖动到另一个时间点,以将视频画面跳转到自己中意的内容。

在实践中发现,视频被从一个时间点拖到另一个时间点的过程中,可能产生几十次甚至上百次的跳转请求,而传统的视频显示装置无法在短时间内处理大量的跳转请求,从而导致视频画面在跳转的过程中出现卡顿的情况。



技术实现要素:

本申请实施例公开了一种视频显示方法及装置、电子设备、计算机可读存储介质,能够减少视频画面在跳转的过程中出现的卡顿,提高视频的显示效果。

本申请实施例第一方面公开一种视频显示方法,包括:

在接收到针对视频进度的多个跳转请求时,获取当前的跳转请求指向的第一时间戳,并计算所述第一时间戳与第二时间戳之间的间隔时长,所述第二时间戳为相对所述第一时间戳的上一个被渲染的第一视频帧对应的时间戳;

若所述间隔时长大于所述第一视频帧的渲染时长,则对所述第一时间戳对应的第二视频帧进行渲染显示。

本申请实施例第二方面公开一种视频显示装置,包括:

计算单元,用于在接收到针对视频进度的多个跳转请求时,获取当前的跳转请求指向的第一时间戳,并计算所述第一时间戳与第二时间戳之间的间隔时长,所述第二时间戳为相对所述第一时间戳的上一个渲染的第一视频帧对应的时间戳;

显示单元,用于在所述间隔时长大于所述第一视频帧的渲染时长时,对所述第一时间戳对应的第二视频帧进行渲染显示。

本申请实施例第三方面公开一种电子设备,包括:

存储有可执行程序代码的存储器;

与所述存储器耦合的处理器;

所述处理器调用所述存储器中存储的所述可执行程序代码,执行本申请实施例第一方面公开的一种视频显示方法。

本申请实施例第四方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本申请实施例第一方面公开的一种视频显示方法。

本申请实施例第五方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本申请实施例第一方面的任意一种方法的部分或全部步骤。

与现有技术相比,本申请实施例具有以下有益效果:

在上层应用连续滑动视频进度条,进而产生多个视频进度跳转请求时,本申请实施例可以获取每一个视频进度跳转请求指向的第一时间戳,并计算第一时间戳与上一个被渲染显示的视频帧对应的第二时间戳之间的间隔时长,而若两个时间戳之间的间隔时长大于上一个视频帧进行渲染显示所需要的时长,则说明该个视频进度跳转请求不会与上一个视频帧的渲染显示产生冲突,所以可以对第一时间戳对应的视频帧进行渲染显示。可见,本申请实施例可以在上层应用连续滑动视频进度条的过程中,筛选出更多的可以被实现,不会产生冲突的视频进度跳转请求,从而可以尽可能多的渲染显示出更多的视频帧,使得视频画面在进度条被滑动的过程中更加的流畅。

附图说明

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

图1是本申请实施例公开的一种视频显示方法的流程示意图;

图2a是本申请实施例公开的一种说明第一时间戳对应的第二视频帧是否可以被渲染显示的示意图;

图2b是本申请实施例公开的另一种说明第一时间戳对应的第二视频帧是否可以被渲染显示的示意图;

图3是本申请实施例公开的另一种视频显示方法的流程示意图;

图4是本申请实施例公开的一种说明如何从第一个解封装视频数据中确定出第二视频帧的示意图;

图5是本申请实施例公开的又一种视频显示方法的流程示意图;

图6是本申请实施例公开的一种视频显示装置的结构示意图;

图7是本申请实施例公开的另一种视频显示装置的结构示意图;

图8是本申请实施例公开的一种电子设备的结构示意图。

具体实施方式

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

需要说明的是,本申请的说明书和权利要求书中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同的对象,而不是用于描述特定顺序。本申请实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请实施例公开了一种视频显示方法及装置、电子设备、计算机可读存储介质,能够减少视频画面在跳转的过程中出现的卡顿,提高用户的观看体验。

下面将结合具体实施例对本申请技术方案进行详细说明。

为了更清楚的说明本申请实施例公开的视频显示方法,首先介绍一种适用该视频显示方法的应用场景。该视频显示方法可以应用在电子设备内置的视频播放器、视频编辑应用程序或者录像应用程序等视频应用程序播放视频画面的过程中。具体的,可以应用在用户拖动视频进度条的过程中,以对视频画面进行精准地跳转。因为在实践中发现,在视频播放的过程中,用户通常会调整视频的进度,以将视频画面跳转到自己中意的内容。可以理解的是,视频画面通常由多个视频帧按照一定的顺序连续显示得到的,所以调整视频的进度其实就是对视频画面当前显示的视频帧进行调整,而如何调整则是由电子设备根据上层应用接收到视频进度调整操作(例如:拖动视频进度、点击视频进度等)生成的跳转请求(即seek请求)指向的时间戳来确定的,这是因为视频文件的每一帧视频帧在视频的进度中都对应一个时间戳,从而根据跳转请求确定出需要跳转的时间戳,则可以确定出该时间戳对应的视频帧然后进行渲染显示,从而实现视频进度的跳转。

而在实际应用中,用户可能在短时间内对视频进度进行多次的调整,从而电子设备可能在短时间内产生几十甚至上百次的跳转请求,但由于视频帧渲染显示成视频画面需要一定的时长,所以跳转请求之间可能产生冲突而导致视频卡顿。为了解决上述的技术缺陷,相关技术通常是只对短时间内产生的多次跳转请求中的最后一次跳转请求进行处理,以避免多次跳转请求之间产生冲突。但是由于视频画面显示的流畅程度与显示的视频帧的数量相关(通常显示的视频帧的数量越多,则视频画面越流畅,反之越卡顿),所以相关技术只对短时间内的多次跳转请求中的最后一个跳转请求进行处理将导致视频画面在跳转过程产生卡顿,从而影响用户的观看体验。对此,本申请实施例公开的视频显示方法可以对电子设备在短时间内产生的多个跳转请求进行筛选,以在多个跳转请求中尽可能地确定出更多的互相之间不冲突的跳转请求进行处理,以使得视频进度跳转过程中有更多的视频帧被渲染显示,从而提高了视频画面跳转的流畅程度。

请参阅图1,图1是本申请实施例公开的一种视频显示方法的流程示意图,该视频显示方法可以应用于手机、平板电脑、台式电脑以及可穿戴设备等电子设备,该视频显示方法可以包括以下步骤:

102、在接收到针对视频进度的多个跳转请求时,获取当前的跳转请求指向的第一时间戳,并计算第一时间戳与第二时间戳之间的间隔时长,该第二时间戳为相对第一时间戳的上一个被渲染的第一视频帧对应的时间戳。

本申请实施例中,电子设备在运行视频应用程序(例如视频播放器、视频编辑应用程序)进行视频播放的过程中,若检测到针对视频进度的跳转操作(例如:拖动视频进度、点击视频进度等),则电子设备可以对应跳转操作在此期间产生多个针对视频进度的跳转请求,可以理解的是,这多个跳转请求是按照一定的先后顺序产生,且对应的每一个跳转请求可以对应一个时间戳,用于表征该跳转请求想要跳转至的视频帧对应的时间戳,例如:当前的跳转请求指向的第一时间戳为16分08秒,则表示当前跳转请求想要跳转至时间戳为16分08秒的视频帧。

可选地,跳转请求所请求跳转的视频帧可以是关键视频帧(i帧),也可以是非关键视频帧(p帧或者b帧),其中,关键视频帧指的是包括一个完整画面的视频帧,其通常处于一个画面组的第一帧;非关键视频帧是记录相对于关键视频帧的变化信息的视频帧;非关键视频帧通常排列在其依赖的关键视频帧后面。

在一种实施例中,电子设备可以在多个跳转请求中获取当前的跳转请求(即电子设备在当前时间点处理的跳转请求),进而确定出该当前的跳转请求指向的第一时间戳,该第一时间戳为当前的跳转请求想要跳转显示的视频帧在视频进度中对应的时间戳。而为了判断当前的跳转请求是否会与上一个被渲染显示的视频产生冲突,则电子设备可以获取相对于第一时间戳的上一个被渲染显示的第一视频帧对应第二时间戳,并计算出第一时间戳和第二时间戳之间的间隔时长。其中,在第一时间戳的上一个被渲染显示的第一视频帧指的是在第一时间戳之前进行渲染且距离第一时间戳最近的视频帧。

可以理解的是,如果第一时间戳和第二时间戳之间的间隔时长大于上一个被渲染显示的视频帧的渲染时长,则说明电子设备可以在处理完上一个视频帧的渲染显示后,再对第一时间戳对应的第二视频帧进行渲染显示,所以上述两个视频帧的渲染显示不会发生冲突。相反地,由于电子设备在同一时间段只能渲染显示一个视频帧,所以若第一时间戳和第二时间戳之间的间隔时长小于或等于上一个视频帧渲染显示所需要的时长,则上述两个视频帧的渲染显示将产生冲突,所以当前的跳转请求不能够实现。

所以可选的,电子设备在计算第一时间戳与第二时间戳之间的间隔时长之后,若第一时间戳与第二时间戳之间的间隔时长不大于第一视频帧的渲染时长,则电子设备可以忽略当前的跳转请求;进一步地,若当前的跳转请求不是最后一个跳转请求,则电子设备可以将下一个跳转请求作为当前的跳转请求,并继续执行获取当前的跳转请求指向的第一时间戳的步骤;相反地,若第一时间戳与第二时间戳之间的间隔时长大于第一视频帧的渲染时长,则电子设备可以执行步骤104。

实施上述方法,电子设备可以将会与上一个被渲染显示的视频帧产生冲突的跳转请求忽略掉,以避免视频帧之间产生显示冲突而导致画面卡顿。

需要进一步说明的是,若电子设备获取的当前的跳转请求为针对视频进度的多个跳转请求中的第一个跳转请求,则在当前的跳转请求之前并没有视频帧需要进行渲染显示,所以电子设备可以直接处理当前的跳转请求。即可选的,电子设备可以判断当前的跳转请求是否为接收到的多个跳转请求中的第一个跳转请求,若当前的跳转请求为接收到的多个跳转请求中的第一个跳转请求,则对当前的跳转请求指向的第一时间戳对应的第二视频帧进行渲染显示。

104、若第一时间戳和第二时间戳之间的间隔时长大于第一视频帧的渲染时长,则对第一时间戳对应的第二视频帧进行渲染显示。

本申请实施例中,每一个视频帧的渲染显示的时长可以是相同的,也可以是不相同,所以第一视频帧的渲染时长可以是由开发人员根据大量的开发经验设定的,在此不作限定。

而在实践中发现,视频帧的渲染显示时长可以与视频帧的参数(例如:分辨率、格式等)、视频帧包括的元素(例如:滤镜、转场特效等)数量以及电子设备的渲染显示效率有关。通常视频帧的分辨率越高,视频帧的渲染显示时长就越长,反之越短;视频帧包括的元素越多,视频帧的渲染显示时长也就越长,反之越短。而由于电子设备的渲染显示效率通常与电子设备的处理器的处理效率相关,所以电子设备的处理器的处理效率越高,则电子设备的渲染显示效率也就越高,电子设备渲染显示一帧视频帧的时长也就越短,反之则越长。

对此,可选的,电子设备在判断第一时间戳和第二时间戳之间的间隔时长是否大于第一视频帧的渲染时长之前,可以获取第一视频帧的参数信息,并根据第一视频帧的参数信息确定出第一视频帧的渲染时长。可选的,第一视频帧的参数信息可以包括第一视频帧的分辨率或者第一视频帧的格式。

在另一种实施例中,电子设备可以在判断出第一时间戳和第二时间戳之间的间隔时长是否大于第一视频帧的渲染时长之前,获取第一视频帧包括的元素的数量信息,并根据数量信息确定出第一视频帧的渲染时长。可选的,第一视频帧的渲染时长可以与第一视频帧包括的元素的数量信息呈正相关关系,即第一视频帧包括的元素越多,则第一视频帧的渲染时长越长,反之越短。

在又一种实施例中,电子设备可以在判断第一时间戳和第二时间戳之间的间隔时长是否大于第一视频帧的渲染时长之前,获取电子设备的渲染显示效率,并根据电子设备的渲染显示效率确定出第一视频帧的渲染时长。可选的,电子设备的渲染显示效率可以与电子设备的处理器的处理效率呈正相关关系,第一视频帧的渲染时长可以与电子设备的渲染显示效率呈正相关关系。

实施上述各实施例公开的方法,电子设备根据上一个被渲染显示的视频帧的信息以及电子设备的处理效率确定出更加准确的视频帧渲染时长,从而可以避免当前的跳转请求与上一帧视频帧产生冲突。

在一些实施例中,针对视频进度的跳转请求可以包括向视频进度的终点方向跳转的向前跳转请求,以及向视频进度的起点方向跳转的向后跳转请求。可选的,针对不同的跳转请求,电子设备在获取到当前的跳转请求指向的第一时间戳之后,若判断出当前的跳转请求是向前跳转请求,则电子设备可以计算相对第一时间戳的上一个被渲染的第一视频帧对应的第二时间戳与第一视频帧的渲染时长的和;并判断第一时间戳是否大于上一个被渲染的第一视频帧对应的第二时间戳与第一视频帧的渲染时长的和,若大于,则对第一时间戳对应的第二视频帧进行渲染显示。

可选的,若第一时间戳不大于上一个被渲染的第一视频帧对应的第二时间戳与第一视频帧的渲染时长的和,则忽略当前的跳转请求;以及,若当前的跳转请求不是最后一个跳转请求,则电子设备可以将下一跳转请求作为当前的跳转请求,并继续执行获取当前的跳转请求指向的第一时间戳的步骤。

结合图2a举例来说,假设上一个被渲染的第一视频帧对应的第二时间戳处于视频进度的a1点,第一视频帧的渲染时长为t,则第一视频帧的显示时间戳等于第一视频帧对应的第二时间戳与第一视频帧的渲染时长的和,即a1+t=a2。此时,若当前的跳转请求是向前跳转,则若第一时间戳b1大于a2,由图2a可知,第一时间戳b1已经超过a1至a2这段第一视频帧渲染的时间段,所以电子设备可以在a2处显示完上一帧视频帧后处理b1处的视频帧,从而电子设备可以对第一时间戳对应的第二视频帧进行渲染显示,相反的,若第一时间戳b2不大于a2,则说明第一时间戳对应的视频帧的渲染显示将会与上一帧的视频帧产生冲突,所以电子设备可以忽略当前的跳转请求。

在另一种实施例中,电子设备在获取当前的跳转请求指向的第一时间戳之后,若当前的跳转请求是向后跳转请求,则电子设备可以计算相对第一时间戳的上一个被渲染的第一视频帧对应的第二时间戳,与第一视频帧的渲染时长的差;并判断第一时间戳是否小于上一个被渲染的第一视频帧对应的第二时间戳,与第一视频帧的渲染时长的差,若小于,则对第一时间戳对应的第二视频帧进行渲染显示。

可选的,若第一时间戳不小于上一个被渲染的第一视频帧对应的第二时间戳,与第一视频帧的渲染时长的差,则忽略当前的跳转请求;若当前的跳转请求不是最后一个跳转请求,则将下一跳转请求作为当前的跳转请求,并继续执行获取当前的跳转请求指向的第一时间戳的步骤。

结合图2b举例来说,同样假设上一个被渲染的第一视频帧对应的第二时间戳处于视频进度的a1点,第一视频帧的渲染时长为t,而当的跳转请求是向后跳转时,视频帧时向后按顺序倒放的,所以同理地,第一视频帧的显示时间戳可以等于第一视频帧对应的第二时间戳与第一视频帧的渲染时长的差,即a1-t=a2。与向前跳转不同,当当前的跳转请求为向后跳转时,若第一时间戳b1小于a2,由图2b可知,第一时间戳b1已经超过a1至a2这段第一视频帧渲染的时间段,所以电子设备可以在a2处显示完上一帧视频帧后处理b1处的视频帧,从而电子设备可以对第一时间戳对应的第二视频帧进行渲染显示,相反的,若第一时间戳b2不小于a2,则说明第一时间戳对应的视频帧的渲染显示将会与上一帧的视频帧产生冲突,所以电子设备可以忽略当前的跳转请求。

实施上述各实施例公开的方法,电子设备可以获取每一个视频进度跳转请求指向的第一时间戳,并计算第一时间戳与上一个被渲染显示的视频帧对应的第二时间戳之间的间隔时长,而若两个时间戳之间的间隔时长大于上一个视频帧进行渲染显示所需要的时长,则说明该个视频进度跳转请求不会与上一个视频帧的渲染显示产生冲突,所以可以对第一时间戳对应的目标视频帧进行渲染显示。区别于相关技术在面对多个视频进度跳转请求时,通常只处理最后一个视频进度跳转请求相比较,本申请实施例可以在上层应用连续滑动视频进度条的过程中,筛选出更多的可以被实现,不会产生冲突的视频进度跳转请求,从而可以尽可能多的渲染显示出更多的视频帧,使得视频画面在进度条被滑动的过程中更加的流畅,提高了用户的观看体验。

请参阅图3,图3是本申请实施例公开的另一种视频显示方法的流程示意图,该视频显示方法可以应用于手机、平板电脑、台式电脑以及可穿戴设备等电子设备,该视频显示方法可以包括以下步骤:

302、在接收到针对视频进度的多个跳转请求时,获取当前的跳转请求指向的第一时间戳,并计算第一时间戳与第二时间戳之间的间隔时长,该第二时间戳为相对第一时间戳的上一个被渲染的第一视频帧对应的时间戳。

304、若第一时间戳和第二时间戳之间的间隔时长大于第一视频帧的渲染时长,则获取存储的第一解封装视频数据对应的时间戳范围,该时间戳范围为从第一解封装视频数据中的第一帧解封装视频数据对应的第三时间戳,到第一解封装视频数据中的最后一帧解封装视频数据对应的第四时间戳的时间范围。

本申请实施例中,电子设备所存储的视频文件通常为封装视频文件,封装视频文件通常为mkv格式,其由avi或者mp4等格式的视频文件封装得到的。因为封装视频文件可以将原视频文件压缩,占用的存储空间更小,所以可以节省电子设备的存储空间,也方便电子设备对视频文件进行传输。而封装视频文件无法被电子设备直接解码显示,所以电子设备在播放视频时,通常需要对封装视频文件进行解封装操作以得到解封装视频数据,即avpacket,其是一种封装视频文件在解封装之后得到的数据,其仍然是压缩的数据,包括视频帧以及一些附加信息,例如显示时间戳、解码时间戳、数据时长,所在媒体流的索引等,进而电子设备可以对解封装视频数据进行解码显示操作。

在实际应用中,电子设备并不会一次性将全部的封装视频文件进行解封装,因为这样会占用电子设备太多的存储空间,所以电子设备通常只解封装部分封装视频文件并存储至暂存列表中以供调用,例如电子设备通常只从封装的视频文件中解封装一个画面组(gop,groupofpicture)对应的解封装视频数据并存储起来。画面组是一组连续的画面,其通常由一个关键视频帧(即i帧,其是一个完整的画面,通常处于一个画面组的第一帧)和若干非关键视频帧(例如p帧和b帧,p帧和b帧记录的是相对于i帧的变化,其依赖于画面组中的i帧)组成。由于一个画面组能够单独表示出一组连续的画面而不需要参考其他图像,所以电子设备通常只从封装的视频文件中解封装一个画面组对应的解封装视频数据并存储起来方便电子设备调用。

而在实践中发现,不同的视频文件所包括的一个画面组对应的时长其实是不同的(其中,一个画面组对应的时长为画面组中包括的第一个关键视频帧到下一个关键视频帧之间的时间戳差值,例如画面组包括的第一个关键视频帧的时间戳为16秒,而下一个关键视频帧的时间戳为20秒,则该画面组对应的时长就是20秒-16秒=4秒),而由于不同的视频文件所包括的一个画面组对应的时长是不同的,那么若视频文件所包括的一个画面组对应的时长太短,则电子设备每次只解封装一个画面组对应的视频数据的数据量也就越少,从而导致电子设备想要显示的视频帧处于解封装数据中的概率也就越小,进而需要电子设备频繁地进行解封装操作,不利于提高视频显示的效率。

所以可选的,电子设备在获取存储的第一解封装视频数据对应的时间戳范围之前,可以判断视频文件包括的画面组对应的时长是否大于第一时长(其中,画面组对应的时长为相邻两帧关键视频帧之间的时间戳差值;第一时长可以是由开发人员根据大量的开发经验设定的,典型值可以是15秒、16秒等,在此不作限定);若画面组对应的时长大于或等于第一时长,则从视频文件解封装一个画面组对应时长的视频数据,以得到第一解封装数据并存储;若画面组对应的时长小于第一时长,则从视频文件解封装所述第一时长对应的视频数据,以得到第一解封装数据并存储。

举例来说,假设第一时长设定为15秒,若视频文件包括的一个画面组的时长为6秒小于15秒,则电子设备可以从视频文件中解封装15秒的视频数据,以增大电子设备存储的解封装数据的数据量;而若视频文件包括的一个画面组的时长为16秒大于15秒,则电子设备可以直接从视频文件中解封装16秒的视频数据。

实施上述方法,电子设备可以从视频文件中解封装出更加合适数量的视频数据,从而避免电子设备频繁地进行解封装操作,进而提高了视频显示的效率。

需要进一步说明的是,由于存储的多个解封装视频数据对应的时间戳是按照一定的先后顺序依次排列的,例如:存储的多个解封装视频数据对应的时间戳是16秒、17秒…20秒,则只要确定出解封装视频帧数据对应的时间戳范围,那么如果第一时间戳处于解封装视频帧数据对应的的时间戳范围内,则说明第一时间戳对应的视频帧就处于存储的解封装视频数据中。对此,电子设备在判断出第一时间戳和第二时间戳之间的间隔时长大于第一视频帧的渲染时长之后,可以获取存储的第一解封装视频数据对应的时间戳范围,其中该时间戳范围为从第一解封装视频数据中的第一帧解封装视频数据对应的第三时间戳,到第一解封装视频数据中的最后一帧解封装视频数据对应的第四时间戳的时间范围。例如:第一解封装视频数据中的第一帧解封装视频数据对应的第三时间戳为16秒,而第一解封装视频数据中的最后一帧解封装视频数据对应的第四时间戳为20秒,则第一解封装视频数据对应的时间戳范围就为16秒~20秒。

306、若第一时间戳处于上述时间戳范围内,则在第一解封装视频数据中确定出第一时间戳对应的第二视频帧,并对第二视频帧进行渲染显示。

本申请实施例中,当电子设备确定出第一时间戳处于存储的第一解封装视频数据对应的时间戳范围内之后,由于第一解封装视频数据还是压缩数据,不能够直接被电子设备渲染显示,所以电子设备需要对第一解封装视频数据进行解码以确定出第一时间戳对应的第二视频帧,而视频帧可以被电子设备直接渲染显示,所以当确定出第二视频帧之后,电子设备就可以直接对第二视频帧进行渲染显示。

需要说明的是,存储的第一解封装视频数据可以有多个(包括两个及两个以上),但是电子设备并不会一次性把所有的第一解封装视频数据都解码成视频帧,而是按照第一解封装视频数据的排列顺序依次只解码一个解封装视频数据以得到视频帧,并判断解码得到的视频帧是否需要渲染显示,若需要则对该视频帧进行渲染显示,若不需要,则会丢掉该视频帧并接着解码下一个解封装视频数据。所以可选的,电子设备可以从第一解封装视频数据中确定出目标解封装视频数据,并对目标解封装视频数据进行解码以得到目标视频帧;进而计算目标视频帧对应的时间戳与目标视频帧的渲染时长之和,以得到所述目标视频帧的显示时刻;若目标视频帧的显示时刻大于第一时间戳,则说明目标视频帧需要进行渲染显示,所以电子设备可以将目标视频帧确定为第二视频帧;相反的,若目标视频帧的显示时刻不大于第一时间戳,且目标解封装视频数据不是第一解封装视频数据中的最后一帧解封装视频数据,则电子设备可以将目标解封装视频数据的下一帧解封装数据作为新的目标解封装视频数据,并执行对目标解封装视频数据进行解码,得到目标视频帧的步骤,直至确定出第二视频帧。

结合图4举例来说,假设电子设备从第一个解封装视频数据进行解码并确定出第一个视频帧的显示时间戳为a1,而由于a1小于第一时间戳a3,所以第一个视频帧将被丢掉;进而电子设备可以对第二个解封装视频数据进行解码并确定出第二个视频帧的显示时间戳为a2,同理的由于a2小于第一时间戳a3,所以第二个视频帧也将别丢掉;电子设备继续对第三个解封装视频帧进行解码并确定出第三个视频帧的显示时间戳为a3,而由于a3大于第一时间戳a3,所以电子设备可以从第三个视频帧开始对后续的视频帧进行渲染显示。

实施上述方法,电子设备可以通过判断解码得到的目标视频帧的显示时间戳是否大于第一时间戳,来确定电子设备从哪一个第一解封装视频数据开始进行解码显示;此外,还可以将显示时间戳不大于第一时间戳的视频帧丢弃以避免视频画面显示用户不需要显示的画面。

而在实际应用中发现,针对视频进度的跳转请求可以分为向前跳转和向后跳转两种,且考虑到视频在播放时,第一解封装视频数据是一直在按顺序向前解码的,所以当跳转请求是向前跳转的,则电子设备可以直接从上一帧第一解封装视频数据接着解码显示,从而避免电子设备需要重新从第一个解封装视频数据开始进行解码,提高了视频的显示效率。

对此可选的,若当前的跳转请求为向前跳转,则电子设备可以将第一解封装视频数据中相对第二时间戳(即相对于第一时间戳的上一个被渲染的第一视频帧对应的时间戳)的下一帧解封装视频数据确定为目标解封装视频数据。而在另一种实施例中,由于视频在播放时,第一解封装视频数据是一直在按顺序向前解码的,所以若当前的跳转请求为向后跳转,跳转的方向与解码的方向产生冲突,所以电子设备还是需要将第一解封装视频数据中的第一帧解封装视频数据,确定为目标解封装视频数据再执行后续的解码显示过程。

进一步结合图4举例来说,假设上一个被渲染显示的视频帧为a2,且当前的跳转请求为向前跳转,则电子设备可以直接从a2开始接着解码a3、a4…;而若当前的跳转请求为向后跳转,则电子设备需要从第一帧解封装视频数据a1进行解码。

在另一中实施例中,若当前的跳转请求为多个跳转请求中的第一个跳转请求,则由于之前没有解封装视频数据被解码,所以电子设备只能从第一解封装视频数据开始解码。即若当前的跳转请求为多个跳转请求中的第一个跳转请求,则电子设备可以将第一解封装视频数据中的第一帧解封装视频数据确定为目标解封装视频数据。

实施上述方法,可以避免电子设备重复从第一个解封装视频数据开始进行解码,以提高视频的显示效率。

显然,上述对第一时间戳对应的第二视频帧进行渲染显示的方法都是基于第一时间戳对应的第二视频帧存在于存储的第一解封装视频数据中的情况。而由于第一解封装视频数据仅包括视频文件中部分视频数据,所以第一时间戳对应的第二视频帧也可能不存在于存储的第一解封装视频数据中。所以可选的,电子设备在获取存储的第一解封装视频数据对应的时间戳范围之后,若判断出第一时间戳不处于第一解封装视频数据对应的时间戳范围内,则说明第一时间戳对应的第二视频帧也可能不存在于存储的第一解封装视频数据中。对此,电子设备需要继续解封装视频文件,以获取到包括第二视频帧的解封装数据,而如上所述,电子设备通常只解封装一个画面组的视频数据,且画面组通常通过其包括的关键视频帧来区分。所以可选的,电子设备可以从视频文件包括的多个关键视频帧中确定出目标关键视频帧,该目标关键视频帧为时间戳处于第一时间戳之前,且时间戳距离第一时间戳最近的关键视频帧;进而电子设备可以在视频文件中解封装出目标关键视频帧对应的第二解封装视频数据,并可以采用上述从第一解封装数据中确定出第一时间戳对应的第二视频帧的方式,从第二解封装数据中确定出第一时间戳对应的第二视频帧,并对第二视频帧进行渲染显示。

而由上述可知,确定第一时间戳是否处于第一解封装视频数据对应的时间戳范围内,将影响电子设备后续所执行的步骤,所以判断第一时间戳是否处于第一解封装视频数据对应的时间戳范围内尤为重要。作为一种可选的实施方式,电子设备在获取存储的第一解封装视频数据对应的时间戳范围之后,若判断出当前的跳转请求为向前跳转,且若第一时间戳大于第四时间戳,则电子设备可以确定第一时间戳不处于时间戳范围内,而若第一时间戳不大于第四时间戳,则确定第一时间戳处于所述时间戳范围内。

在另一种实施例中,若当前的跳转请求为向后跳转时,且第一时间戳小于第三时间戳,则电子设备可以确定第一时间戳不处于时间戳范围内,而若第一时间戳不小于第三时间戳,则电子设备确定第一时间戳处于时间戳范围内。

实施上述方法,电子设备可以准确地确定出第一时间戳是否处于第一解封装视频数据对应的时间戳范围内,从而能够更加准确地执行后续的视频帧解码显示步骤,提高了视频显示的效率。

实施上述各实施例公开的方法,可以在上层应用连续滑动视频进度条的过程中,筛选出更多的可以被实现,不会产生冲突的视频进度跳转请求,从而可以尽可能多的渲染显示出更多的视频帧,使得视频画面在进度条被滑动的过程中更加的流畅,提高了用户的观看体验;以及,可以从视频文件中解封装出更加合适数量的视频数据,从而避免电子设备频繁地进行解封装操作,进而提高了视频显示的效率;以及,可以通过判断解码得到的目标视频帧的显示时间戳是否大于第一时间戳,来确定电子设备从哪一个第一解封装视频数据开始进行解码显示;此外,还可以将显示时间戳不大于第一时间戳的视频帧丢弃以避免视频画面显示用户不需要显示的画面;可以避免电子设备重复从第一个解封装视频数据开始进行解码,以提高视频的显示效率;以及,可以准确地确定出第一时间戳是否处于第一解封装视频数据对应的时间戳范围内,从而能够更加准确地执行后续的视频帧解码显示步骤,提高了视频显示的效率。

请参阅图5,图5是本申请实施例公开的又一种视频显示方法的流程示意图,该视频显示方法可以应用于手机、平板电脑、台式电脑以及可穿戴设备等电子设备,该视频显示方法可以包括以下步骤:

502、在接收到针对视频进度的多个跳转请求时,获取当前的跳转请求指向的第一时间戳,并计算第一时间戳与第二时间戳之间的间隔时长,该第二时间戳为相对第一时间戳的上一个被渲染的第一视频帧对应的时间戳。

504、若第一时间戳与第二时间戳之间的间隔时长大于视频帧进行渲染显示的时长,则将第一时间戳存储至时间戳队列。

本申请实施例中,由于电子设备接收到的多个跳转请求可能是在短时间内产生的,所以导致电子设备在短时间内确定出的第一时间戳可能也有多个,而由于视频帧的显示通常是一帧一帧的渲染显示,所以当有多个第一时间戳对应的视频帧需要在短时间内渲染显示时,电子设备可以将这多个第一时间戳先存储只时间戳队列中,然后再按照一定的规则从时间戳队列中取出第一时间戳并执行后续的视频帧渲染显示步骤。

506、从时间戳集合中获取最近存储的第一时间戳,并对最近存储的第一时间戳对应的第二视频帧进行渲染显示。

本申请实施例中,第一时间戳被存储至时间戳队列中的排列顺序通常是按照先产生先存储的存储方式,所以最近存储的第一时间戳即为最近产生的跳转请求指向的时间戳,从而为了保证被渲染显示的视频帧的实效性,电子设备可以从时间戳集合中获取最近存储的第一时间戳,并对最近存储的第一时间戳对应的第二视频帧进行渲染显示。从而保证视频画面为最具实效性的画面。

而当电子设备从时间戳队列中获取最近存储的第一时间戳进行处理之后,时间戳队列中存储的其他第一时间戳就已经失去了实效性,所以电子设备没有必要再去处理这些第一时间戳,所以可选的,电子设备在从时间戳列表中获取最近存储的第一时间戳之后,电子设备可以清空时间戳队列中存储的多个第一时间戳。在另一种实施例中,电子设备在清空时间戳队列中存储的多个第一时间戳之后,可以继续获取当前的跳转请求指向的第一时间戳,并在确定出第一时间戳和上一个被渲染的第一视频帧对应的时间戳之间的间隔时长大于视频帧进行渲染显示的时长时,将新的第一时间戳存储至时间戳队列,以保证时间戳队列中存储的第一时间戳的实效性。

实施上述各实施例公开的方法,可以在上层应用连续滑动视频进度条的过程中,筛选出更多的可以被实现,不会产生冲突的视频进度跳转请求,从而可以尽可能多的渲染显示出更多的视频帧,使得视频画面在进度条被滑动的过程中更加的流畅,提高了用户的观看体验;以及,可以从时间戳集合中获取最近存储的第一时间戳,并对最近存储的第一时间戳对应的第二视频帧进行渲染显示。从而保证视频画面为最具实效性的画面;以及,可以在从时间戳列表中获取最近存储的第一时间戳之后,电子设备可以清空时间戳队列中存储的多个第一时间戳,以保证时间戳队列中存储的第一时间戳的实效性。

请参阅图6,图6是本申请实施例公开的一种视频显示装置的结构示意图,该视频显示装置可以应用于上述的电子设备,该视频显示装置可以包括:计算单元601和显示单元602,其中:

计算单元601,用于在接收到针对视频进度的多个跳转请求时,获取当前的跳转请求指向的第一时间戳,并计算第一时间戳与第二时间戳之间的间隔时长,第二时间戳为相对第一时间戳的上一个渲染的第一视频帧对应的时间戳;

显示单元602,用于在第一时间戳与第二时间戳之间的间隔时长大于第一视频帧的渲染时长时,对第一时间戳对应的第二视频帧进行渲染显示。

实施上述视频显示装置,可以获取每一个视频进度跳转请求指向的第一时间戳,并计算第一时间戳与上一个被渲染显示的视频帧对应的第二时间戳之间的间隔时长,而若两个时间戳之间的间隔时长大于上一个视频帧进行渲染显示所需要的时长,则说明该个视频进度跳转请求不会与上一个视频帧的渲染显示产生冲突,所以可以对第一时间戳对应的目标视频帧进行渲染显示。区别于相关技术在面对多个视频进度跳转请求时,通常只处理最后一个视频进度跳转请求相比较,本申请实施例可以在上层应用连续滑动视频进度条的过程中,筛选出更多的可以被实现,不会产生冲突的视频进度跳转请求,从而可以尽可能多的渲染显示出更多的视频帧,使得视频画面在进度条被滑动的过程中更加的流畅,提高了用户的观看体验。

请参阅图7,图7是本申请实施例公开的另一种视频显示装置的结构示意图,该视频显示装置可以应用于上述的电子设备,图7所示的视频显示装置可以是由图6所示的视频显示装置优化得到,与图6所示的视频显示装置相比较,图7所示的视频显示装置还可以包括:忽略单元603和第一确定单元604,其中:

忽略单元603,用于在计算单元601接收到针对视频进度的多个跳转请求时,获取当前的跳转请求指向的第一时间戳,并计算第一时间戳与第二时间戳之间的间隔时长,第二时间戳为相对第一时间戳的上一个渲染的第一视频帧对应的时间戳之后,若间隔时长不大于渲染时长,则忽略所述当前的跳转请求;

第一确定单元604,用于在当前的跳转请求不是最后一个跳转请求时,将下一跳转请求作为当前的跳转请求,并继续执行获取当前的跳转请求指向的第一时间戳的步骤。

实施上述视频显示装置,可以将会与上一个被渲染显示的视频帧产生的跳转请求忽略掉,以避免视频帧之间产生显示冲突而导致画面卡顿。

作为一种可选的实施方式,显示单元602用于对第一时间戳对应的第二视频帧进行渲染显示的方式具体可以为:

显示单元602,用于获取存储的第一解封装视频数据对应的时间戳范围,该时间戳范围为从第一解封装视频数据中的第一帧解封装视频数据对应的第三时间戳,到第一解封装视频数据中的最后一帧解封装视频数据对应的第四时间戳的时间范围;以及,若第一时间戳处于时间戳范围内,则在第一解封装视频数据中确定出第一时间戳对应的第二视频帧,并对第二视频帧进行渲染显示。

实施上述视频显示装置,可以从存储的第一解封装视频数据准确地确定出第一时间戳对应的视频帧进行渲染显示,从而提高视频显示的效率。

作为一种可选的实施方式,显示单元602用于在第一解封装视频数据中确定出第一时间戳对应的第二视频帧的方式具体可以为:

显示单元602,用于从第一解封装视频数据中确定目标解封装视频数据;以及,对目标解封装视频数据进行解码,得到目标视频帧;以及,计算目标视频帧对应的时间戳与目标视频帧的渲染时长之和,得到目标视频帧的显示时刻;以及,若显示时刻大于第一时间戳,则将目标视频帧确定为第二视频帧;以及,若显示时刻不大于时间戳,且目标解封装视频数据不是第一解封装视频数据中的最后一帧解封装视频数据,则将目标解封装视频数据的下一帧解封装数据作为新的目标解封装视频数据,并执行对目标解封装视频数据进行解码,得到目标视频帧的步骤,直至确定出第二视频帧。

实施上述视频显示装置,可以通过判断解码得到的目标视频帧的显示时间戳是否大于第一时间戳,来确定电子设备从哪一个第一解封装视频数据开始进行解码显示;此外,还可以将显示时间戳不大于第一时间戳的视频帧丢弃以避免视频画面显示用户不需要显示的画面。

作为一种可选的实施方式,显示单元602用于从第一解封装视频数据中确定目标解封装视频数据对的方式具体可以为:

显示单元602,用于在当前的跳转请求为向前跳转时,将第一解封装视频数据中相对第二时间戳的下一帧解封装视频数据确定为目标解封装视频数据。

实施上述视频显示装置,可以避免电子设备重复从第一个解封装视频数据开始进行解码,以提高视频的显示效率。

作为一种可选的实施方式,显示单元602用于从第一解封装视频数据中确定目标解封装视频数据对的方式具体可以为:

显示单元602,用于在当前的跳转请求为向后跳转时,将第一解封装视频数据中的第一帧解封装数据确定为目标解封装视频数据。

实施上述视频显示装置,可以避免电子设备重复从第一个解封装视频数据开始进行解码,以提高视频的显示效率。

作为一种可选的实施方式,图7所示的视频显示装置还可以包括:第二确定单元605、第三确定单元606和渲染单元607,其中:

第二确定单元605,用于在显示单元602获取存储的第一解封装视频数据对应的时间戳范围之后,若第一时间戳不处于时间戳范围内,则从视频文件包括的多个关键视频帧中确定出目标关键视频帧,该目标关键视频帧为时间戳处于第一时间戳之前,且时间戳距离第一时间戳最近的关键视频帧;

第三确定单元606,用于在视频文件中解封装出目标关键视频帧对应的第二解封装视频数据,并在第二解封装数据中确定出第一时间戳对应的第二视频帧;

渲染单元607,用于对第二视频帧进行渲染显示。

实施上述视频显示装置,可以在第一时间戳不处于第一解封装视频数据对应的时间戳范围内,从视频文件中解封装出包括第二视频帧的解封装数据并执行后续的解码显示步骤。

作为一种可选的实施方式,图7所示的视频显示装置还可以包括:第四确定单元608和第五确定单元609,其中:

第四确定单元608,用于在显示单元602获取存储的第一解封装视频数据对应的时间戳范围之后,若当前的跳转请求为向前跳转,且第一时间戳大于第四时间戳,则确定第一时间戳不处于时间戳范围内,若第一时间戳不大于第四时间戳,则确定第一时间戳处于时间戳范围内;

第五确定单元609,用于在显示单元602获取存储的第一解封装视频数据对应的时间戳范围之后,若当前的跳转请求为向后跳转,且第一时间戳小于第三时间戳,则确定第一时间戳不处于时间戳范围内,若第一时间戳不小于第三时间戳,则确定第一时间戳处于时间戳范围内。

实施上述视频显示装置,可以准确地确定出第一时间戳是否处于第一解封装视频数据对应的时间戳范围内,从而能够更加准确地执行后续的视频帧解码显示步骤,提高了视频显示的效率。

作为一种可选的实施方式,图7所示的视频显示装置还可以包括:判断单元610、第一解封装单元611和第二解封装单元612,其中:

判断单元610,用于在显示单元602获取存储的第一解封装视频数据对应的时间戳范围之前,判断视频文件包括的画面组对应的时长是否大于第一时长,画面组对应的时长为相邻两帧关键视频帧的时间戳差值;

第一解封装单元611,用于若画面组对应的时长大于或等于第一时长,则从视频文件解封装一个画面组对应时长的视频数据,得到第一解封装数据并存储;

第二解封装单元612,用于若画面组对应的时长小于第一时长,则从视频文件解封装第一时长对应的视频数据,得到第一解封装数据并存储。

实施上述视频显示装置,可以从视频文件中解封装出更加合适数量的视频数据,从而避免电子设备频繁地进行解封装操作,进而提高了视频显示的效率。

作为一种可选的实施方式,显示单元602用于在第一时间戳与第二时间戳之间的间隔时长大于第一视频帧的渲染时长时,对第一时间戳对应的第二视频帧进行渲染显示的方式具体可以为:

显示单元602,用于在第一时间戳与第二时间戳之间的间隔时长大于视频帧进行渲染显示的时长,则将第一时间戳存储至时间戳队列;以及,从时间戳集合中获取最近存储的第一时间戳,并对最近存储的第一时间戳对应的第二视频帧进行渲染显示。

实施上述视频显示装置,可以从时间戳集合中获取最近存储的第一时间戳,并对最近存储的第一时间戳对应的第二视频帧进行渲染显示。从而保证视频画面为最具实效性的画面。

作为一种可选的实施方式,图7所示的视频显示装置还可以包括:清空单元613,其中:

清空单元613,用于在显示单元602从时间戳集合中获取最近存储的第一时间戳之后,清空时间戳队列存储的多个第一时间戳。

实施上述视频显示装置,可以保证时间戳队列中存储的第一时间戳的实效性。

请参阅图8,图8是本申请实施例公开的一种电子设备的结构示意图。如图8所示,该电子设备可以包括:存储有可执行程序代码的存储器801;与存储器801耦合的处理器802;其中,处理器802调用存储器801中存储的可执行程序代码,执行上述各实施例公开的视频显示方法。

本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行上述各实施例公开的视频显示方法。

本申请实施例还公开一种应用发布平台,其中,应用发布平台用于发布计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行如以上各方法实施例中的方法的部分或全部步骤。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请的各个实施例上述方法的部分或全部步骤。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、可编程只读存储器(programmableread-onlymemory,prom)、可擦除可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、一次可编程只读存储器(one-timeprogrammableread-onlymemory,otprom)、电子抹除式可复写只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)、只读光盘(compactdiscread-onlymemory,cd-rom)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

以上对本申请实施例公开的一种视频显示方法及装置、电子设备、计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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