一种视频清晰度的切换方法、装置、电子设备以及存储介质与流程

文档序号:26186318发布日期:2021-08-06 18:37阅读:48来源:国知局
一种视频清晰度的切换方法、装置、电子设备以及存储介质与流程

本申请涉及计算机技术领域,具体涉及一种视频清晰度的切换方法、装置、电子设备以及存储介质。



背景技术:

随着网络技术的发展,用户可以使用终端上网观看视频。网上一个视频源所提供的视频一般会有分有多种码率,不同码率的视频有着不同的清晰度。当用户在观看视频时,可以根据观看需求手动选择所观看视频的码率。

目前,视频清晰度的切换方案主要基于实时流媒体协议(httplivestreaming,hls),即首先将视频文件进行分片,在切换清晰度时,以分片为基础重新加载,然而,目前的切换方案会存在跳帧播放的问题,进而耗费很多流量。



技术实现要素:

本发明实施例提供一种视频清晰度的切换方法、装置、电子设备以及存储介质,可以解决跳帧播放的问题,进而减少流量消耗。

本发明实施例提供了一种视频清晰度的切换方法,包括:

获取当前播放的视频,得到当前播放视频;

当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,所述当前播放视频的码率与待切换视频的码率不同;

加载所述待切换视频对应的索引数据;

提取当前播放视频当前的关键帧,得到当前关键帧;

根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧;

基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为所述待切换视频。

相应的,本发明实施例还提供了一种视频清晰度的切换装置,包括:

第一获取模块,用于获取当前播放的视频,得到当前播放视频;

第二获取模块,用于当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,所述当前播放视频的码率与待切换视频的码率不同;

加载模块,用于加载所述待切换视频对应的索引数据;

提取模块,用于提取当前播放视频当前的关键帧,得到当前关键帧;

确定模块,用于根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧;

切换模块,用于基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为所述待切换视频。

可选的,在本发明的一些实施例中,所述确定模块包括:

获取子模块,用于从所述当前播放视频获取所述当前关键帧所在的视频数据,得到第一视频数据;

确定子模块,用于根据第一视频数据、当前关键帧以及索引数据在所述待切换视频中选择满足预设条件的关键帧,得到切换关键帧。

可选的,在本发明的一些实施例中,所述确定子模块包括:

获取单元,用于获取当前关键帧在所述第一视频数据中的位置,得到当前关键帧对应的位置信息;

选择单元,用于根据所述索引数据在待切换视频中选择满足预设条件的关键帧,得到切换关键帧。

可选的,在本发明的一些实施例中,所述选择单元包括:

加载子单元,用于基于所述索引数据加载所述待切换视频对应的视频数据,得到第二视频数据;

选择子单元,用于在所述第二视频数据中选择与所述位置信息匹配的关键帧,得到切换关键帧。

可选的,在本发明的一些实施例中,所述获取子单元具体用于:

提取当前关键帧对应的时间戳,得到第一时间戳,以及

提取所述第二视频数据中各关键帧对应的时间戳,得到多个第二时间戳;

将第二时间戳与第一时间戳一致的关键帧确定为与所述当前关键帧对应的关键帧,得到切换关键帧。

可选的,在本发明的一些实施例中,所述切换模块具体用于:

根据当前关键帧确定所述当前播放视频已播放的视频数据;

通过当前关键帧、已播放的视频数据以及索引数据计算所述待切换视频需要加载的视频数据;

通过需要加载的视频数据对预设视频数据缓冲区进行更新,得到更新后缓冲区;

以所述切换关键帧为起始点,基于需要加载的视频数据以及更新后缓冲区,将当前播放视频切换为所述待切换视频。

可选的,在本发明的一些实施例中,还包括删除模块,所述删除模块具体用于:删除更新后缓冲区中当前播放视频对应的视频数据。

可选的,在本发明的一些实施例中,还包括构建模块,所述构建模块具体用于:

构建视频数据缓冲区;

在所述视频数据缓冲区中加载当前播放视频对应的视频数据。

本发明实施例在获取当前播放的视频,得到当前播放视频后,当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,所述当前播放视频的码率与待切换视频的码率不同,然后,加载所述待切换视频对应的索引数据,接着,提取当前播放视频当前的关键帧,得到当前关键帧,再然后,根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,最后,基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为所述待切换视频。因此,该方案可以解决跳帧播放的问题,进而减少流量消耗。

附图说明

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

图1a是本发明实施例提供的视频清晰度的切换方法的场景示意图;

图1b为本发明实施例提供的视频清晰度的切换方法的流程示意图;

图2a是本发明实施例提供的视频清晰度的切换方法的另一流程示意图;

图2b是本发明实施例提供的视频清晰度的切换方法中显示当前播放视频对应的显示页面的示意图;

图2c是本发明实施例提供的视频清晰度的切换方法中一帧视频帧的示意图;

图2d是本发明实施例提供的视频清晰度的切换方法中切换播放待切换视频的示意图;

图3a是本发明实施例提供的视频清晰度的切换装置的第一种实施方式的结构示意图;

图3b是本发明实施例提供的视频清晰度的切换装置的第二种实施方式的另一结构示意图;

图3c是本发明实施例提供的视频清晰度的切换装置的第三种实施方式的结构示意图;

图4是本发明实施例提供的电子设备的结构示意图。

具体实施方式

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

本发明实施例提供一种视频清晰度的切换方法、装置、电子设备和存储介质。

其中,该视频清晰度的切换装置具体可以集成在终端中,终端可以包括手机、平板电脑或个人计算机(pc,personalcomputer)。

请参阅图1a,本发明实施例提供一种视频清晰度的切换系统(以下简称切换系统),该切换系统可以包括终端、服务器以及用户,以该视频清晰度的切换装置集成在个人计算机为例,该个人计算机可以安装有客户端,该客户端可以是任一能够提供视频播放服务的客户端,例如基于浏览器的网页客户端,该视频播放服务可以支持用户通过浏览器观看视频,在观看视频的过程中,用户还可以针对同一视频进行视频清晰度的切换,比如,当用户需要对当前播放的视频进行视频清晰度的切换时,获取与当前播放视频的内容一致的待切换视频,该待切换视频的码率与当前播放视频的码率不同,然后,加载待切换视频对应的索引数据,接着,提取当前播放视频当前的关键帧,得到当前关键帧,再然后,根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,最后,基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频。

由于该方案是根据当前关键帧以及索引数据在待切换视频中确定与当前关键帧对应的关键帧(即切换关键帧),然后,再基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频,也就是说,在本方案中,是基于关键帧进行视频清晰度切换的,因此,可以解决现有的方案中存在的跳帧播放的问题,进而减少流量消耗。

以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。

一种视频清晰度的切换方法,包括:获取当前播放的视频,得到当前播放视频,当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,加载待切换视频对应的索引数据,提取当前播放视频当前的关键帧,得到当前关键帧,根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频。

请参阅图1b,图1b为本发明实施例提供的视频清晰度的切换方法的流程示意图。该视频清晰度的切换方法的具体流程可以如下:

101、获取当前播放的视频,得到当前播放视频。

其中,获取当前播放的视频的途径可以有多种,比如,可以从互联网和/或指定数据库中进行获取,具体可以根据实际应用的需求而定,当前播放视频可以包括电视剧、电影以及用户录制的视频等等。

需要说明的是,在视频切换之前,可以构建一个视频数据缓冲区,该视频数据缓冲区可以用于存放以及管理视频源数据片段,即,可选的,步骤“获取当前播放的视频,得到当前播放视频”之前,具体还可以包括:

(11)构建视频数据缓冲区;

(12)在视频数据缓冲区中加载当前播放的视频对应的视频数据。

比如,在视频切换之前,当前播放的视频为视频a,那么视频数据缓冲区中则可以加载视频a对应的视频数据。

102、当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频。

其中,当前播放视频的码率与待切换视频的码率不同,码率就是数据传输时单位时间传输的数据位数,单位为kbps(千比特每秒),也就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,码率越高越清晰,反之则画面粗糙。

比如,当接收到用户触发的视频清晰度的切换请求时,该切换请求指示将视频a切换为视频b,即,视频a为当前播放视频,视频b为待切换视频,其中,视频a的内容与视频b的内容一致,视频a的码率与视频b的码率不同。

103、加载待切换视频对应的索引数据。

在本发明实施例中,视频播放过程中终端与服务器之间遵循视频传输协议,该传输协议可包括:实时消息传输协议(realtimemessagingprotocol,rtmp)以及hls(httplivestreaming)协议等等。除特别说明外,本发明后续实施例均以hls协议为例,hls协议是一种流媒体解决方案,其包括视频索引以及视频分片,视频索引里面包含了该视频流的很多基础信息,用户通过终端播放视频时,并不是直接播放视频索引,而是对视频索引进行解析,获取各视频分片的索引,并根据索引找到相应的视频分片的url进行播放,其中,每个视频分片为待播放视频的一段视频内容,其包括了关键帧的时间戳以及该时间戳对应的视频内容等数据,比如,当前播放视频和待切换视频的格式均为第四代动态图像专家组(movingpictureexpertsgroup4,mp4)格式,对于一个mp4文件而言,其最重要的就是索引数据,索引数据(又称头文件)记录了后续所有音频帧和视频帧的解码信息、时间戳以及位置等数据,当然,基于其他流媒体协议切换当前播放视频的清晰度也是如此,在此不再赘述。

104、提取当前播放视频当前的关键帧,得到当前关键帧。

其中,视频帧可以包括关键帧(i帧)、向前预测帧(p帧)以及双向预测帧(b帧),i帧是内部编码帧,是每个图像的第一个帧,是一个完整的画面;p帧是前向预测帧,记录的是相对于i帧或相邻前一个p帧的变化;b帧是双向内插帧,与p帧的区别在于,它既可以参考i帧或相邻前一个帧,也可以参考相邻后一个帧,即p帧记录的是相对于相邻前后帧的变化,也就是说要播放一小段画面,必须找到i帧,然后才能顺利解码相应的b帧和p帧,需要说明的是,对步骤103和步骤104的先后顺序不作限定。

105、根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧。

由于当前播放视频的内容与待切换视频是一致的,即,这两个视频所记录的图像张数是相同的,因此,这两个视频对应的关键帧的数量也是一致的,也就是说,待切换视频中的每一个关键帧,在当前播放视频中都有与其对应的关键帧,在本发明实施例中,可以根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,其区别在于两个视频帧的状态不同,比如,当接收到用户针对视频a触发的视频清晰度的切换请求时,该切换请求指示切换视频b,此时,视频a的关键帧i1正在播放,则确定该视频帧i1为当前关键帧,根据视频帧i1以及索引数据确定视频b中与视频帧i1对应的关键帧为关键帧i2,那么则确定关键帧i2为切换关键帧。

比如,可以从当前播放视频中获取当前关键帧所在的视频数据,基于该视频数据、当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,即,可选的,在一些实施例中,步骤“根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧”,具体可以包括:

(21)从当前播放视频中获取当前关键帧所在的视频数据,得到第一视频数据;

(22)根据第一视频数据、当前关键帧以及索引数据在待切换视频中选择满足预设条件的关键帧,得到切换关键帧。

比如,可以根据第一视频数据、当前关键帧以及索引数据,在待切换视频中选择与当前关键帧的图像内容一致的关键帧,得到切换关键帧,具体可以采用神经网络模型对当前关键帧的图像内容、以及对待切换视频中各关键帧对应的图像内容进行识别。

又比如,可以获取当前关键帧在第一视频数据中的位置,再根据该位置以及索引数据确定待切换视频中与当前关键帧对应的关键帧,,然后,再根据该位置以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,即,可选的,步骤“根据第一视频数据、当前关键帧以及索引数据在待切换视频中选择满足预设条件的关键帧,得到切换关键帧”,具体可以包括:

(31)获取当前关键帧在第一视频数据中的位置,得到当前关键帧对应的位置信息;

(32)根据索引数据在待切换视频中选择位置信息满足预设条件的关键帧,得到切换关键帧。

比如,具体的,获取到当前关键帧在第一视频数据中的位置,该位置指示当前关键帧处于第一视频数据中第8帧的位置,然后,再基于索引数据加载待切换视频对应的视频数据,并在待切换视频对应的视频数据中选择第8帧关键帧,得到切换关键帧,即,可选的,在一些实施例中,步骤“根据位置信息以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧”,具体可以包括:

(41)基于索引数据加载待切换视频对应的视频数据,得到第二视频数据;

(42)在第二视频数据中选择与所述位置信息匹配的关键帧,得到切换关键帧。

比如,具体的,对索引数据进行解析,基于解析结果加载待切换视频对应的视频数据,得到第二视频数据,然后,再从第二视频数据中获取与当前关键帧对应的关键帧,得到切换关键帧,其中,从第二视频数据中获取与当前关键帧对应的关键帧,得到切换关键帧可以有两种方式:

第一种方式:可以根据当前关键帧的位置信息,从第二视频数据中获取与当前关键帧对应的关键帧,得到切换关键帧,比如,当前关键帧为第8帧的数据,那么可以将第二视频数据中的第8帧确定为与当前关键帧对应的关键帧,得到切换关键帧。

第二种方式:可以根据当前关键帧对应的时间戳以及第二视频数据中各关键帧对应的时间戳,在第二视频数据中选择与当前关键帧对应的关键帧,即,可选的,在一些实施例中,步骤“在第二视频数据中获取与当前关键帧对应的关键帧,得到切换关键帧”,具体可以包括:

(51)提取当前关键帧对应的时间戳,得到第一时间戳,以及提取第二视频数据中各关键帧对应的时间戳,得到多个第二时间戳;

(52)将多个第二时间戳与第一时间戳一致的关键帧确定为与当前关键帧对应的关键帧,得到切换关键帧。

比如,当前播放视频和待切换视频均为100秒的视频,当前关键帧的时间戳指示当前关键帧为第10秒的关键帧,那么,可以将第二视频数据中第10秒的关键帧确定为与当前关键帧对应的关键帧,得到切换关键帧,在得到切换关键帧后,可以执行步骤106。

106、基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换播放待切换视频。

比如,具体的,可以根据当前关键帧、切换关键帧以及索引数据,计算待切换视频需要加载的视频数据,然后,再基于切换关键真以及需要加载的视频数据,将当前播放视频切换播放待切换视频,即,可选的,在一些实施例中,步骤“基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换播放待切换视频”,具体可以包括:

(61)根据当前关键帧确定当前播放视频已播放的视频数据;

(62)通过当前关键帧、已播放的视频数据以及索引数据计算待切换视频需要加载的视频数据;

(63)通过需要加载的视频数据对预设视频数据缓冲区进行更新,得到更新后缓冲区;

(64)以切换关键帧为起始点,基于切换关键帧以及更新后缓冲区,将当前播放视频切换播放待切换视频。

比如,具体的,若当前关键帧为第3帧关键帧时,可以根据该当前关键帧确定当前播放视频已播放的视频数据包括:第1帧的视频数据、第2帧的视频数据以及第3帧的视频数据,然后,可以基于索引数据获取待切换视频的视频数据,并通过当前关键帧以及已播放的视频数据计算待切换视频需要加载的视频数据,紧接着,通过当前播放视频已播放的视频数据和需要加载的视频数据反向计算需要加载的视频数据缓冲区的大小,即,可以通过当前播放视频已播放的视频数据和需要加载的视频数据对预设视频数据缓冲区进行更新,最后基于切换关键帧以及需要加载的视频数据,将当前播放视频切换为待切换视频。

为了避免了不必要的流量浪费,将当前播放视频切换为待切换视频之后,还可以将更新后缓冲区中前一个视频的视频数据,比如,将视频a切换为视频b后,可以删除更新后缓冲区中视频a的视频数据,也即,在一些实施中,步骤“以切换关键帧为起始点,基于需要加载的视频数据以及更新后缓冲区,将当前播放视频切换为待切换视频之后”,还可以包括:删除更新后缓冲区中当前播放视频对应的视频数据。

本发明实施例首先获取当前播放的视频,得到当前播放视频,当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,然后,加载待切换视频对应的索引数据,接着,提取当前播放视频当前的关键帧,得到当前关键帧,再然后,根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,最后,基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频。相较于现有的视频清晰度的切换方案而言,本发明的视频清晰度的切换方法可以根据当前关键帧以及索引数据在待切换视频中确定与当前关键帧对应的关键帧,得到切换关键帧,然后,再基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换播放待切换视频,也就是说,在本方案中,是基于关键帧进行视频清晰度切换的,因此,可以解决现有的方案中存在的跳帧播放的问题,进而减少流量消耗。

根据实施例所述的方法,以下将举例进一步详细说明。

在本实施例中将以该视频清晰度的切换装置具体集成在终端中为例进行说明。

请参阅图2a,一种视频清晰度的切换方法,具体流程可以如下:

201、终端获取当前播放的视频,得到当前播放视频。

其中,终端可以获取当前播放的视频的途径可以有多种,比如,可以从互联网和/或指定数据库中进行获取,具体可以根据实际应用的需求而定,当前播放视频可以包括电视剧、电影以及用户录制的视频等等。

需要说明的是,在视频切换之前,终端可以构建一个视频数据缓冲区,该视频数据缓冲区可以用于存放以及管理视频源数据片段,即,可选的,在一些实施例中,终端具体可以构建视频数据缓冲区,然后,终端在视频数据缓冲区中加载当前播放的视频对应的视频数据。

202、终端当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频。

其中,当前播放视频的码率与待切换视频的码率不同,例如,具体的,请参阅图2b,终端可以安装有客户端,该客户端可以是任一能够提供视频播放服务的客户端,终端的显示屏上可以显示有与该当前播放视频对应的显示页面,该显示页面可以包括切换控件a、切换控件b以及切换控件c,终端当接收到用户触发的视频清晰度的切换请求时,如终端检测到用户针对切换控件c的选择操作时,获取与当前播放视频的内容一致,且清晰度与切换控件c对应的待切换视频。

203、终端加载待切换视频对应的索引数据。

对于一个mp4文件而言,其最重要的就是索引数据,索引数据记录了后续所有音频帧和视频帧的解码信息、时间戳以及位置等数据,当然,基于其他流媒体协议切换当前播放视频的清晰度也是如此,在此不再赘述。

204、终端提取当前播放视频当前的关键帧,得到当前关键帧。

其中,视频帧可以包括关键帧(i帧)、向前预测帧(p帧)以及双向预测帧(b帧),i帧是内部编码帧,是每个图像的第一个帧,是一个完整的画面;p帧是前向预测帧,记录的是相对于i帧或相邻前一个p帧的变化;b帧是双向内插帧,与p帧的区别在于,它既可以参考i帧或相邻前一个帧,也可以参考相邻后一个帧,即p帧记录的是相对于相邻前后帧的变化,如图2c所示,视频播放可以理解成是由连续的画面帧依次渲染而完成的,但是视频要想传输,必须进行编码压缩,每一小段视频都由一个i帧与多个b帧,p帧组成,其中b帧和p帧依赖i帧进行压缩编码,每一段视频片段中i帧始终是第一帧,也就是说想要播放这一小段画面,一定要先找到i帧,然后才能顺利解码相应的b帧和p帧,需要说明的是,对步骤203和步骤204的先后顺序不作限定。

205、终端根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧。

由于当前播放视频的内容与待切换视频是一致的,即,这两个视频所记录的图像张数是相同的,因此,这两个视频对应的关键帧的数量也是一致的,也就是说,待切换视频中的每一个关键帧,在当前播放视频中都有与其对应的关键帧,比如,终端获取当前播放视频的视频数据,得到第一视频数据,然后,终端根据第一视频数据、当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,进一步的,比如,具体的,终端获取到当前关键帧在第一视频数据中的位置,该位置指示当前关键帧处于第一视频数据中第8帧的位置,然后,终端再基于索引数据加载待切换视频对应的视频数据,终端并根据该位置信息在待切换视频对应的视频数据获取与当前关键帧对应的关键帧,得到切换关键帧。

206、终端基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频。

具体的,终端可以根据当前关键帧、切换关键帧以及索引数据,计算待切换视频需要加载的视频数据,然后,终端再基于切换关键真以及需要加载的视频数据,将当前播放视频切换播放待切换视频。

比如,请参阅图2d,若当前关键帧为第3帧关键帧时,终端可以根据该当前关键帧确定当前播放视频已播放的视频数据包括:第1帧的视频数据、第2帧的视频数据以及第3帧的视频数据,然后,终端可以基于索引数据获取待切换视频的视频数据,终端通过当前关键帧以及已播放的视频数据计算待切换视频需要加载的视频数据,最后,终端基于切换关键帧以及需要加载的视频数据,将当前播放视频切换播放待切换视频,比如,如图所示,可以在第三帧i帧处进行视频切换,又比如,为了提高视频播放的流畅性,可以在切换关键帧的下一帧切换视频,即,可以在第四帧i帧处切换,具体根据实际情况进行设置。

可选的,在一些实施例中,终端在切换播放待切换视频之后,可以删除视频数据缓冲区中当前播放视频对应的视屏数据

由上可知,本发明的终端首先获取当前播放的视频,得到当前播放视频,当接收到用户触发的视频清晰度的切换请求时,终端获取与当前播放视频的内容一致的待切换视频,然后,终端加载待切换视频对应的索引数据,接着,终端提取当前播放视频当前的关键帧,得到当前关键帧,再然后,终端根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,最后,终端基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换播放待切换视频。相较于现有的视频清晰度的切换方案而言,本发明的终端可以根据当前关键帧以及索引数据在待切换视频中确定与当前关键帧对应的关键帧,得到切换关键帧,然后,终端再基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换播放所述待切换视频,也就是说,在本方案中,终端是基于关键帧进行视频清晰度切换的,因此,可以解决现有的方案中存在的跳帧播放的问题,进而减少流量消耗。

为便于更好的实施本发明实施例的视频清晰度的切换方法,本发明实施例还提供一种基于上述视频清晰度的切换装置(简称切换装置)。其中名词的含义与上述视频清晰度的切换方法中相同,具体实现细节可以参考方法实施例中的说明。

请参阅图3a,图3a为本发明实施例提供的视频清晰度的切换装置的第一种实施方式的结构示意图,其中该切换装置可以包括第一获取模块301、第二获取模块302、加载模块303、提取模块304、确定模块305以及切换模块306,具体可以如下:

第一获取模块301,用于获取当前播放的视频,得到当前播放视频。

其中,第一获取模块301可以获取当前播放的视频的途径可以有多种,比如,可以从互联网和/或指定数据库中进行获取,具体可以根据实际应用的需求而定,当前播放视频可以包括电视剧、电影以及用户录制的视频等等。

第二获取模块302,用于当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频。

其中,当前播放视频的码率与待切换视频的码率不同,码率就是数据传输时单位时间传输的数据位数,单位为kbps(千比特每秒),也就是取样率,单位时间内取样率越大,精度就越高,处理出来的文件就越接近原始文件,码率越高越清晰,反之则画面粗糙。

加载模块303,用于加载待切换视频对应的索引数据。

在本发明实施例中,视频播放过程中终端与服务器之间遵循视频传输协议,该传输协议可包括:实时消息传输协议(realtimemessagingprotocol,rtmp)以及hls(httplivestreaming)协议等等。除特别说明外,本发明后续实施例均以hls协议为例,hls协议是一种流媒体解决方案,其包括视频索引以及视频分片,视频索引记录了各视频分片的索引,用户通过终端播放视频时,并不是直接播放视频索引,而是对视频索引进行解析,获取各视频分片的索引,并根据索引找到相应的视频分片的url进行播放,其中,每个视频分片为待播放视频的一段视频内容,其包括了时间戳以及该时间戳对应的视频内容等数据,比如,当前播放视频和待切换视频的格式均为第四代动态图像专家组(movingpictureexpertsgroup4,mp4)格式,对于一个mp4文件而言,其最重要的就是索引数据,索引数据记录了后续所有音频帧和视频帧的解码信息、时间戳以及位置等数据,当然,基于其他流媒体协议切换当前播放视频的清晰度也是如此,在此不再赘述。

提取模块304,用于提取当前播放视频当前的关键帧,得到当前关键帧。

确定模块305,用于根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧。

由于当前播放视频的内容与待切换视频是一致的,即,这两个视频所记录的图像张数是相同的,因此,这两个视频对应的关键帧的数量也是一致的,也就是说,待切换视频中的每一个关键帧,在当前播放视频中都有与其对应的关键帧,在本发明实施例中,确定模块305可以根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧。

可选的,在一些实施例中,确定模块305具体可以包括:

获取子模块,用于从当前播放视频获取当前关键帧所在的视频数据,得到第一视频数据;

确定子模块,用于根据第一视频数据、当前关键帧以及索引数据在待切换视频中选择满足预设条件的关键帧,得到切换关键帧。

可选的,在一些实施例中,确定子模块具体可以包括:

获取单元,用于获取当前关键帧在第一视频数据中的位置,得到当前关键帧对应的位置信息;

选择单元,用于根据索引数据选择在待切换视频中选择满足预设条件的关键帧,得到切换关键帧。

可选的,在一些实施例中,选择单元具体可以包括:

加载子单元,用于基于索引数据加载待切换视频对应的视频数据,得到第二视频数据;

选择子单元,用于在第二视频数据中选择与当前关键帧位置信息匹配的关键帧,得到切换关键帧。

可选的,在一些实施例中,获取子单元具体可以用于:提取当前关键帧对应的时间戳,得到第一时间戳,以及提取第二视频数据中各关键帧对应的时间戳,得到多个第二时间戳,将第二时间戳与第一时间戳一致的关键帧确定为与当前关键帧对应的关键帧,得到切换关键帧。

切换模块306,用于基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频。

比如,具体的,可以根据当前关键帧、切换关键帧以及索引数据,计算待切换视频需要加载的视频数据,然后,再基于切换关键真以及需要加载的视频数据,将当前播放视频切换播放待切换视频。

可选的,在一些实施例中,切换模块306具体可以用于:根据当前关键帧确定当前播放视频已播放的视频数据,通过当前关键帧、已播放的视频数据以及索引数据计算待切换视频需要加载的视频数据,通过需要加载的视频数据对预设视频数据缓冲区进行更新,得到更新后缓冲区,以切换关键帧为起始点,基于需要加载的视频数据以及更新后缓冲区,将当前播放视频切换播放所述待切换视频。

可选的,在一些实施例中,请参阅图3b,还包括删除模块307,删除模块307具体用于删除更新后缓冲区中当前播放视频对应的视频数据。

可选的,在一些实施例中,请参阅图3c,还包括构建模块308,构建模块308具体可以用于:构建视频数据缓冲区,在视频数据缓冲区中加载当前播放的视频对应的视频数据。

可见,本发明实施例的视频清晰度的切换装置中的第一获取模块301获取当前播放的视频,得到当前播放视频后,第二获取模块302当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,然后,加载模块303加载待切换视频对应的索引数据,接着,提取模块304提取当前播放视频当前的关键帧,得到当前关键帧,再然后,确定模块305根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,最后,切换模块306基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换播放待切换视频。相较于现有的视频清晰度的切换方案而言,本发明的确定模块305可以根据当前关键帧以及索引数据在待切换视频中确定与当前关键帧对应的关键帧,得到切换关键帧,然后,切换模块306再基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频,也就是说,在本方案中,是基于关键帧进行视频清晰度切换的,因此,可以解决现有的方案中存在的跳帧播放的问题,进而减少流量消耗。

此外,本发明实施例还提供一种电子设备,如图4所示,其示出了本发明实施例所涉及的电子设备的结构示意图,具体来讲:

该电子设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器401是该电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。

存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。

电子设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

该电子设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:

获取当前播放的视频,得到当前播放视频,当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,加载待切换视频对应的索引数据,提取当前播放视频当前的关键帧,得到当前关键帧,根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

本发明实施例首先获取当前播放的视频,得到当前播放视频,当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,然后,加载待切换视频对应的索引数据,接着,提取当前播放视频当前的关键帧,得到当前关键帧,再然后,根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,最后,基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换播放待切换视频。相较于现有的视频清晰度的切换方案而言,本发明的视频清晰度的切换方法可以根据当前关键帧以及索引数据在待切换视频中确定与当前关键帧对应的关键帧,得到切换关键帧,然后,再基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换播放待切换视频,也就是说,在本方案中,是基于关键帧进行视频清晰度切换的,因此,可以解决现有的方案中存在的跳帧播放的问题,进而减少流量消耗。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种视频清晰度的切换方法中的步骤。例如,该指令可以执行如下步骤:

获取当前播放的视频,得到当前播放视频,当接收到用户触发的视频清晰度的切换请求时,获取与当前播放视频的内容一致的待切换视频,加载待切换视频对应的索引数据,提取当前播放视频当前的关键帧,得到当前关键帧,根据当前关键帧以及索引数据确定待切换视频中与当前关键帧对应的关键帧,得到切换关键帧,基于当前关键帧、切换关键帧以及索引数据,将当前播放视频切换为待切换视频。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取记忆体(ram,randomaccessmemory)、磁盘或光盘等。

由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种视频清晰度的切换方法中的步骤,因此,可以实现本发明实施例所提供的任一种视频清晰度的切换方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

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

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