视频播放方法、装置、计算设备及存储介质与流程

文档序号:14993741发布日期:2018-07-20 23:06阅读:140来源:国知局

本申请涉及视频播放领域,尤其涉及视频播放方法、装置、计算设备及存储介质。



背景技术:

随着多媒体技术的发展,用户可以使用各种计算设备播放视频内容。视频内容可以被转码为多种码流,以供用户选择。在切换码流时,现有方案通常选择并播放目标视频流中一个新的文件分片或者i帧。然而,现有方案在切换码流时存在画面跳跃等问题。



技术实现要素:

本申请提出了一种视频播放方案,以提高码流切换时画面的连续性。

根据本申请一个方面,提出了一种视频播放方法,包括:响应于从当前播放的第一视频流切换至第二视频流的指示,获取第一图像帧序列和第二图像帧序列,所述第一图像帧序列来自所述第一视频流,所述第二图像帧序列来自所述第二视频流;确定所述第一图像帧序列中作为切换点的第一图像帧和所述第二图像帧序列中与所述第一图像帧相匹配的第二图像帧;播放所述第一视频流至所述第一图像帧,再以所述第二图像帧为切入点开始播放所述第二视频流。

在一些实施例中,所述确定所述第一图像帧序列中作为切换点的第一图像帧和所述第二图像帧序列中与所述第一图像帧相匹配的第二图像帧,包括:当接收到所述指示时,获取所述第一视频流中当前所播放图像帧的基准显示时间戳;根据所述基准显示时间戳,确定第一窗口和第二窗口,其中,所述第一窗口属于所述第一图像帧序列,所述第二窗口属于所述第二图像帧序列;将所述第一窗口中各图像帧分别与所述第二窗口中各图像帧进行图像匹配操作,以确定匹配度最高的两个图像帧;将所述两个图像帧中属于第一窗口的一个图像帧作为所述第一图像帧,并将属于第二窗口的一个图像帧作为所述第二图像帧。

在一些实施例中,所述根据所述基准显示时间戳,确定第一窗口和第二窗口,包括:确定所述第一图像帧序列中与所述基准显示时间戳间隔切换阈值的图像帧,并将该图像帧作为第一基准图像帧,并确定以该第一基准图像帧为中心的所述第一窗口;确定所述第二图像帧序列中显示时间戳与所述第一基准图像帧最接近的一个图像帧,并将该图像帧作为第二基准图像帧;确定所述第二图像帧中以所述第二基准图像帧为中心的所述第二窗口。

在一些实施例中,上述视频播放方法还包括:当所述第一图像帧与所述第二图像帧的匹配度低于匹配度阈值时,滑动所述第一窗口和所述第二窗口,以使得所述第一图像帧处于滑动后第一窗口的中间位置,以及所述第二图像帧处于滑动后第二窗口的中间位置;确定滑动后所述第二窗口中与所述第一窗口中各图像帧匹配度最高的一个图像帧,并将所述第二图像帧更新为所确定的图像帧。

在一些实施例中,所述确定所述第一图像帧序列中作为切换点的第一图像帧和所述第二图像帧序列中与所述第一图像帧相匹配的第二图像帧,包括:当接收到所述指示时,获取所述第一视频流中当前所播放图像帧的基准显示时间戳;根据所述基准显示时间戳,确定所述第一图像帧,并确定属于所述第二图像帧序列的窗口;将所述窗口中各图像帧分别与所述第一图像帧进行图像匹配操作,以确定所述窗口中与所述第一图像帧匹配度最高的一个图像帧,并将其作为所述第二图像帧。

在一些实施例中,所述根据所述基准显示时间戳,确定所述第一图像帧,包括:确定所述第一图像帧序列中与所述基准显示时间戳间隔切换阈值的图像帧,并将该图像帧作为所述第一图像帧。

在一些实施例中,所述根据所述基准显示时间戳,确定所述第一图像帧,并确定属于所述第二图像帧序列的窗口,包括:确定所述第二图像帧序列中显示时间戳与所述第一图像帧最接近的一个图像帧,并将该图像帧作为第二基准图像帧;确定所述第二图像帧序列中以所述第二基准图像帧为中心的所述窗口。

在一些实施例中,上述视频播放方法还包括:当所述第一图像帧与所述第二图像帧的匹配度低于匹配度阈值时,根据所述窗口中各图像帧所对应的匹配度变化趋势,滑动所述窗口;确定滑动后所述窗口中与所述第一图像帧匹配度最高的一个图像帧,并将所述第二图像帧更新为所确定的图像帧。

在一些实施例中,所述根据所述窗口中各图像帧对应的匹配度变化趋势,滑动所述窗口,包括:当所述各图像帧对应的匹配度递增时,向前滑动所述窗口;当所述各图像帧对应的匹配度递减时,向后滑动所述窗口。

在一些实施例中,所述根据所述窗口中各图像帧对应的匹配度变化趋势,滑动所述窗口,包括:根据所述第一图像帧与所述第二图像帧的匹配度距离所述匹配度阈值的差值,确定所述窗口的滑动步长;基于所述匹配度变化趋势,按照所述滑动步长调节所述窗口的图像帧范围。

在一些实施例中,上述视频播放方法还包括:当所述第一图像帧与所述第二图像帧的匹配度低于匹配度阈值时,滑动所述窗口,以使得所述第二图像帧处于滑动后所述窗口的中间位置;确定滑动后所述窗口中与所述第一图像帧匹配度最高的一个图像帧,并将所述第二图像帧更新为所确定的图像帧。

根据本申请另一个方面,提供一种视频播放装置,包括:图像获取单元,用于响应于从当前播放的第一视频流切换至第二视频流的指示,获取第一图像帧序列和第二图像帧序列,所述第一图像帧序列来自所述第一视频流,所述第二图像帧序列来自所述第二视频流;切换控制单元,用于确定所述第一图像帧序列中作为切换点的第一图像帧和所述第二图像帧序列中与所述第一图像帧相匹配的第二图像帧;视频播放单元,用于播放所述第一视频流至所述第一图像帧,再以所述第二图像帧为切入点开始播放所述第二视频流。

在一些实施例中,所述切换控制单元进一步包括:窗口确定模块,用于当接收到所述指示时,获取所述第一视频流中当前所播放图像帧的基准显示时间戳,根据所述基准显示时间戳,确定第一窗口和第二窗口,其中,所述第一窗口属于所述第一图像帧序列,所述第二窗口属于所述第二图像帧序列;图像匹配模块,用于将所述第一窗口中各图像帧分别与所述第二窗口中各图像帧进行图像匹配操作,以确定匹配度最高的两个图像帧,将所述两个图像帧中属于第一窗口的一个图像帧作为所述第一图像帧,并将属于第二窗口的一个图像帧作为所述第二图像帧。

在一些实施例中,所述窗口确定模块根据下述方式确定第一窗口和第二窗口:确定所述第一图像帧序列中与所述基准显示时间戳间隔切换阈值的图像帧,并将该图像帧作为第一基准图像帧,并确定以该第一基准图像帧为中心的所述第一窗口;确定所述第二图像帧序列中显示时间戳与所述第一基准图像帧最接近的一个图像帧,并将该图像帧作为第二基准图像帧;确定所述第二图像帧中以所述第二基准图像帧为中心的所述第二窗口。

在一些实施例中,所述窗口确定模块还用于,当所述第一图像帧与所述第二图像帧的匹配度低于匹配度阈值时,滑动所述第一窗口和所述第二窗口,以使得所述第一图像帧处于滑动后第一窗口的中间位置,以及所述第二图像帧处于滑动后第二窗口的中间位置;所述图像匹配模块还用于确定滑动后所述第二窗口中与所述第一窗口中各图像帧匹配度最高的一个图像帧,并将所述第二图像帧更新为所确定的图像帧。

在一些实施例中,所述切换控制单元进一步包括:窗口确定模块,用于当接收到所述指示时,获取所述第一视频流中当前所播放图像帧的基准显示时间戳,根据所述基准显示时间戳,确定所述第一图像帧,并确定属于所述第二图像帧序列的窗口;图像匹配模块,用于将所述窗口中各图像帧分别与所述第一图像帧进行图像匹配操作,以确定所述窗口中与所述第一图像帧匹配度最高的一个图像帧,并将其作为所述第二图像帧。

在一些实施例中,所述窗口确定模块根据下述方式确定所述第一图像帧:确定所述第一图像帧序列中与所述基准显示时间戳间隔切换阈值的图像帧,并将该图像帧作为所述第一图像帧。

在一些实施例中,所述窗口确定模块根据下述方式确定属于所述第二图像帧序列的窗口:确定所述第二图像帧序列中显示时间戳与所述第一图像帧最接近的一个图像帧,并将该图像帧作为第二基准图像帧;确定所述第二图像帧序列中以所述第二基准图像帧为中心的所述窗口。

在一些实施例中,所述窗口确定模块还用于,当所述第一图像帧与所述第二图像帧的匹配度低于匹配度阈值时,根据所述窗口中各图像帧所对应的匹配度变化趋势,滑动所述窗口;所述图像匹配模块还用于,确定滑动后所述窗口中与所述第一图像帧匹配度最高的一个图像帧,并将所述第二图像帧更新为所确定的图像帧。

在一些实施例中,所述窗口确定模块根据下述方式以根据所述窗口中各图像帧对应的匹配度变化趋势,滑动所述窗口:当所述各图像帧对应的匹配度递增时,向前滑动所述窗口;当所述各图像帧对应的匹配度递减时,向后滑动所述窗口。

在一些实施例中,所述窗口确定模块根据下述方式以根据所述窗口中各图像帧对应的匹配度变化趋势,滑动所述窗口:根据所述第一图像帧与所述第二图像帧的匹配度距离所述匹配度阈值的差值,确定所述窗口的滑动步长;基于所述匹配度变化趋势,按照所述滑动步长调节所述窗口的图像帧范围。

在一些实施例中,所述窗口确定模块还用于,当所述第一图像帧与所述第二图像帧的匹配度低于匹配度阈值时,滑动所述窗口,以使得所述第二图像帧处于滑动后所述窗口的中间位置;所述图像匹配模块还用于,确定滑动后所述窗口中与所述第一图像帧匹配度最高的一个图像帧,并将所述第二图像帧更新为所确定的图像帧。

根据本申请另一个方面,提供一种计算设备,包括:一个或多个处理器、存储器以及一个或多个程序。程序存储在该存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行本申请的视频播放方法的指令。

根据本申请另一个方面,提供一种存储介质,存储有一个或多个程序。所述一个或多个程序包括指令。所述指令当由计算设备执行时,使得所述计算设备执行本申请的视频播放方法。

综上,本申请的视频播放方案可以确定第一视频流的切换点(即第一图像帧)和第二视频流的切入点(即第二图像帧)。由于第一图像帧和第二图像帧相匹配,视频播放方案可以避免画面切换时重复播放画面或者画面跳跃的问题,从而可以对视频流画面进行平滑切换,进而提高画面连续性。

附图说明

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

图1示出了根据本申请一些实施例的应用场景100的示意图;

图2示出了根据本申请一些实施例的媒体服务系统120的示意图;

图3a示出了根据本申请一些实施例的视频播放方法300的流程图;

图3b示出了根据本申请一个实施例的视频播放界面;

图3c示出了根据本申请一个实施例的媒体服务系统120的示意图。

图4示出了根据本申请一些实施例的执行步骤s302的方法400的流程图;

图5示出了根据本申请一些实施例的第一窗口和第二窗口的示意图;

图6a示出了根据本申请一些实施例的执行步骤s302的方法600的流程图;

图6b示出了图5中第一窗口和第二窗口在滑动后的示意图;

图7a示出了根据本申请一些实施例的执行步骤s302的方法700的流程图;

图7b示出了根据本申请一个实施例的所确定的窗口的示意图;

图8a示出了根据本申请一些实施例的执行步骤s302的方法800的流程图;

图8b示出了根据本申请一个实施例的变化趋势曲线图;

图8c示出了图7b中窗口经过进行滑动操作后的示意图;

图9示出了根据本申请一些实施例的执行步骤s302的方法900的流程图;

图10a示出了根据本申请一些实施例的视频播放装置1000的示意图;

图10b示出了根据本申请一些实施例的切换控制单元的结构图;

图10c示出了根据本申请一些实施例的切换控制单元的结构图;以及

图11示出了一个计算设备的组成结构图。

具体实施方式

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

图1示出了根据本申请一些实施例的应用场景100的示意图。如图1所示,应用场景100可以包括终端设备110和媒体服务系统120。终端设备110可以是移动电话、台式计算机、笔记本电脑或者平板电脑等各种计算设备。终端设备110可以包括视频播放应用111。这里,视频播放应用111例如可以是视频客户端(例如腾讯视频客户端、优酷视频客户端等)、能够播放视频的社交应用或者浏览器等等,本申请对此不做限制。媒体服务系统120可以包括一个或多个服务器,并通过网络130向终端设备110提供视频内容。这里,视频内容可以是待点播视频或者实时直播视频。媒体服务系统120可以将一项视频内容生成为不同数据格式的视频数据。换言之,一项视频内容可以对应多种视频数据。数据格式例如可以按照帧率、码率和分辨率等参数中一个或多个进行划分。例如,从分辨率角度而言,数据格式的范围可以包括标清、高清和超清等。另外说明的是,媒体服务系统120可以向终端设备110流式传输视频数据。一种视频数据在被流式传输时可以被称为一种视频流。对于一项视频内容,终端设备110可以向媒体服务系统120请求该项视频内容的一种或多种视频流。

图2示出了根据本申请一些实施例的媒体服务系统120的示意图。如图2所示,媒体服务系统120可以包括转码服务器210和内容服务器220。转码服务器210可以包括编码单元211和分片单元212。编码单元211可以将每种媒体内容进行编码处理,以生成该种媒体内容对应的多种格式的视频数据。这里,编码单元211例如可以基于第二运动图像专家组标准(thesecondofseveralstandardsdevelopedbythemovingpicturesexpertgroup,简称mpeg-2)进行编码,但不限于此。分片单元212可以将各视频数据进行切片处理,以获取相应的切片文件和索引文件。索引文件例如为m3u8格式。切片文件例如为传输流(transportstream,简称ts)切片格式。内容服务器220可以包括各视频数据的切片文件和索引文件。内容服务器220可以向终端设备110提供索引文件,以便终端设备110根据索引文件向内容服务器220请求相应的切片文件。在一个实施例中,对于一项视频内容,内容服务器220可以向终端设备110提供两种视频流,分别为第一视频流221和第二视频流222。其中,第一视频流221可以包括第一索引文件m1和第一切片文件ts1。第二视频流222可以包括第二索引文件m2和第二切片文件ts2。内容服务器220还包括索引服务单元223。索引服务单元223可以根据终端设备110对视频流的请求,向终端设备110发送该种视频流对应的索引文件。例如,索引服务单元223可以向终端设备110发送第一索引文件m1。这样,终端设备110可以根据第一索引文件m1向内容服务器220请求第一切换文件ts1。在一个实施例中,内容服务器220可以包括索引服务器和视频流服务器。终端设备110可以向索引服务器发送对视频流的访问请求,以便索引服务器返回与视频流对应的视频地址(即索引文件)。终端设备110可以接收视频地址,并根据视频地址从视频流服务器获取图像帧序列。

图3a示出了根据本申请一些实施例的视频播放方法300的流程图。视频播放方法300例如可以在视频播放应用111中执行。

如图3a所示,视频播放方法300包括步骤s301,响应于从当前播放的第一视频流切换至第二视频流的指示,获取第一图像帧序列和第二图像帧序列。其中,第一图像帧序列来自第一视频流,第二图像帧序列来自第二视频流。这里,第一图像帧序列是视频播放应用111未播放的多个图像帧。

在一个实施例中,第一图像帧序列中各图像帧的显示时间戳(presentationtimestamp,pts)的范围可以被认为是第一时间区间。类似地,第二图像帧序列中各图像帧的显示时间戳的范围可以被认为是第二时间区间。第二图像帧序列可以与第一图像帧序列的播放时间对应。这里,播放时间对应是指第一时间区间和第二时间区间有重叠区域。

在一个实施例中,第一视频流的码流大于第二视频流。视频播放应用111可以自适应地确定是否切换视频流。当检测到对视频流的传输带宽小于阈值时,视频播放应用111可以生成将第一视频流切换至第二视频流的指示。

根据一个实施例,在如图3b所示的视频播放界面中,在用户点击按钮301时,视频播放界面可以显示复选框302。复选框302例如可以包括标清选项a、高清选项b和超清选项c三种分辨率选项。每种分辨率选项对应一种视频流。例如,标清对应于第一视频流、超清对应第二视频流。在当前播放的视频流为标清格式,并且用户点击复选框中超清选项c时,视频播放应用111可以生成将第一视频流切换至第二视频流的指示。

根据一个实施例,在步骤s301中,向内容服务器220请求第二视频流的视频地址,例如第二索引文件m2。在接收到视频地址时,在步骤s301中根据该视频地址向内容服务器220请求相应的第二图像帧序列。类似地,步骤s301可以从内容服务器220获取第一图像帧序列,这里不再赘述。

如图3c所示,在一个实施例中,媒体服务器120可以包括索引服务器121和视频流服务器122。索引服务器121可以存储各种视频流的视频地址。视频流服务器122可以存储各种视频流的图像帧序列。在步骤s301中,向索引服务器121发送对第二视频流的访问请求,以便索引服务器121返回与第二视频流对应的视频地址。在此基础上,步骤s301可以接收与第二视频流对应的视频地址,并根据该视频地址从视频流服务器122获取第二图像帧序列。类似地,步骤s301可以从视频流服务器122获取第一图像帧序列,这里不再赘述。

在步骤s302中,确定第一图像帧序列中作为切换点的第一图像帧和第二图像帧序列中与第一图像帧相匹配的第二图像帧。这里,第一图像帧和第二图像帧相匹配是指这两个图像帧在图像特征方面相匹配。在一些实施例中,第一图像帧和第二图像帧之间匹配度越高,这两个图像帧的采集时间点也越接近。采集时间点是图像帧中画面对应的采样时间。在步骤s303中,播放第一视频流至第一图像帧,再以第二图像帧为切入点开始播放第二视频流。这里,步骤s302可以基于各种适合的图像匹配算法,确定与第一图像帧相匹配的第二图像帧。在一个实施例中,步骤s303可以从第二图像帧开始播放第二视频流。在一个实施例中,步骤s303可以从第二图像帧之后且与第二图像帧相邻的图像帧开始播放第二视频流。

需要说明的是,在视频流切换的应用场景中,不同视频流的帧频可以是不同的。因此,不同视频流的图像帧的显示时间戳通常无法精确对应。换言之,视频播放应用111通常无法直接根据显示时间戳将两种视频流进行平滑切换。方法300通过步骤s302,可以确定相匹配的第一视频流的切换点(即第一图像帧)和第二视频流的切入点(即第二图像帧)。由于第一图像帧和第二图像帧相匹配,方法300可以在步骤s303中避免画面切换时重复播放画面或者画面跳跃的问题,而可以对视频流画面进行平滑切换,进而提高画面连续性。下面举例说明第一图像帧和第二图像帧的确定过程。

在一些实施例中,步骤s302可以执行方法400。如图4所示,当接收到切换至第二视频流的指示时,步骤s401可以获取第一视频流中当前所播放图像帧的显示时间戳,并将该显示时间戳作为基准显示时间戳。

在步骤s402中,根据基准显示时间戳,确定第一窗口和第二窗口。其中,第一窗口属于第一图像帧序列。第二窗口属于第二图像帧序列。根据一些实施例,在步骤s402中,确定第一图像帧序列中与基准显示时间戳间隔切换阈值的图像帧,并将该图像帧作为第一基准图像帧,并确定以该第一基准图像帧为中心的第一窗口。这里,在第一窗口为两个图像帧时,第一窗口可以包括第一基准图像帧以及之前(或之后)的一个相邻图像帧。另外,第一窗口也可以包括两个以上的图像帧。在一个实施例中,切换阈值可以是一个默认配置值。在一个实施例中,切换阈值可以从媒体服务系统120获取。这里,媒体服务系统120可以存储关于将第一视频流切换到第二视频流的切换操作记录。切换操作记录是指各终端设备从与切换到第二视频流的指示对应的播放位置(即在接收到指示时当前播放图像帧的显示时间戳)到第一视频流中切换点的时间长度或者帧数。例如,视频播放应用111可以在执行步骤s301时,从媒体服务系统120获取切换操作记录中切换阈值。这样,步骤s402可以根据切换操作记录中切换阈值,确定一个参考切换点(即第一基准图像帧)。基于所确定的第一基准图像,步骤s402还可以确定第二图像帧序列中显示时间戳与第一基准图像帧最接近的一个图像帧,并将该图像帧作为第二基准图像帧。这样,步骤s402可以确定第二图像帧中以第二基准图像帧为中心的第二窗口。这里,第二窗口可以包括一个或多个图像帧,本申请对此不做限制。

图5示出了根据本申请一些实施例的确定第一窗口和第二窗口的过程。如图5所示,第一图像帧序列s1当前显示的图像帧为p11。步骤s401可以p11的显示时间戳pts0,即基准显示时间戳。步骤s402可以确定与p11间隔切换阈值h0的图像帧p13,并将p13作为第一基准图像帧。p13处于第一窗口w1的中心位置。第一窗口w1例如可以包括p12、p13和p14。

对于第二图像帧序列s2,步骤s402可以确定第二基准图像帧p23。根据第二窗口的尺寸h1,步骤s402可以第二窗口w2。这里,第二窗口w2包括第二图像帧序列中连续的多个图像帧,例如包括p21、p22、p23、p24和p25。第二窗口的尺寸例如可以是图像帧数量阈值,也可以是时长阈值,本申请对此不做限制。

基于步骤s402所确定的第一窗口和第二窗口,方法400可以执行步骤s403。在步骤s403中,将第一窗口中各图像帧分别与第二窗口中各图像帧进行图像匹配操作,以确定匹配度最高的两个图像帧。在一个实施例中,步骤s403可以将第一窗口和第二窗口中图像帧进行解码(例如解码为yuv等格式),然后根据方向梯度直方图算法(histogramoforientedgradient,简称hog)进行图像匹配操作。这里,步骤s403也可以采用其他合适的图像匹配算法进行图像匹配操作,本申请对此不做限制。另外说明的是,步骤s403在解码第一图像帧和第二图像帧时,可以按照各图像帧与其他图像帧的依赖关系来进行解码操作。例如,待解码的图像帧为一个前向预测编码帧(predictiveframe,简称p帧),步骤s403可以基于该p帧所依赖的帧内编码帧(intraframe,简称i帧)对其进行解码,这里不再赘述。

在步骤s404中,将上述两个图像帧中属于第一窗口的一个图像帧作为第一图像帧,并将属于第二窗口的一个图像帧作为第二图像帧。

综上,方法400可以在第一图像帧序列和第二图像帧序列中确定两个相对应的图像帧组(即第一窗口和第二窗口)。在此基础上,方法400可以灵活地确定两个相匹配图像帧(即第一图像帧和第二图像帧)作为切换点和切入点,从而提高切换前画面和切换后画面的连续性。

图6a示出了根据本申请一些实施例的执行步骤s302的方法600的流程图。如图6a所示,方法600可以包括步骤s601-604。这里,步骤s601至s604的实施方式与步骤s401-s404一致,这里不再赘述。

另外,方法600还可以包括步骤s605,当第一图像帧与第二图像帧的匹配度低于匹配度阈值时,滑动第二窗口,以使得第二图像帧处于滑动后窗口的中间位置。在步骤s606中,确定滑动后第二窗口中与第一窗口中各图像帧匹配度最高的一个图像帧,并将第二图像帧更新为所确定的图像帧。

以图5为例,步骤s604确定的第一图像帧为p14,第二图像帧为p25。图6b示出了图5中第一窗口和第二窗口滑动后的示意图。如图6b所示,在步骤s605对第一和第二窗口进行滑动操作后,第一窗口w1可以包括图像帧p13、p14和p15。第二窗口w2包括图像帧p23、p24、p25、p26和p27。针对滑动后第一窗口和第二窗口,方法600可以执行步骤s606,更新第一和第二图像帧。

综上,方法600可以通过步骤s605和s606提高第一图像帧和第二图像帧的匹配度,从而提高步骤s303中切换画面时的画面连续性。

图7a示出了根据本申请一些实施例的执行步骤s302的方法700的流程图。如图7a所示,方法700包括步骤s701。步骤s701的实施方式与步骤s401一致,这里不再赘述。

在步骤s702中,根据基准显示时间戳确定第一图像帧,并确定属于第二图像帧序列的窗口。在一个实施例中,步骤s702可以确定第一图像帧序列中与基准显示时间戳间隔切换阈值的图像帧,并将该图像帧作为第一图像帧。在一个实施例中,步骤s702可以确定第二图像帧序列中显示时间戳与第一图像帧最接近的一个图像帧,并将该图像帧作为第二基准图像帧。这样,步骤s702可以确定第二图像帧序列中以第二基准图像帧为中心的窗口。

在步骤s703中,将窗口中各图像帧分别与第一图像帧进行图像匹配操作,以确定窗口中与第一图像帧匹配度最高的一个图像帧,并将其作为第二图像帧。

为了更形象地解释,下面以图7b为例说明确定窗口的过程。如图7b所示,第一图像帧序列s1当前显示的图像帧为p11。步骤s701可以获取p11的显示时间戳pts0,即基准显示时间戳。步骤s702可以确定与pts0间隔切换阈值h0的图像帧p13,并将p13作为第一图像帧。对于第二图像帧序列s2,步骤s702可以确定第二基准图像帧p23。根据窗口的尺寸h1,步骤s702可以确定窗口w0,例如可以包括p21、p22、p23、p24和p25。

综上,方法700可以根据切换阈值快速确定第一图像帧,并且可以从第二图像帧序列中与第一图像帧显示时间戳接近的一个范围(即步骤s702确定的窗口)内,选定第二图像帧。这样,方法700通过将第一图像帧与一个范围内图像帧进行匹配操作,可以提高切换点和切入点的图像匹配度,从而提高切换画面的流畅性。

图8a示出了根据本申请一些实施例的执行步骤s302的方法800的流程图。如图8a所示,方法800可以包括步骤s801-s803。这里,步骤s801至s803的实施方式与步骤s701-s703一致,这里不再赘述。另外,方法800还可以包括步骤s804和s805。

在步骤s804中,当第一图像帧与第二图像帧的匹配度低于匹配度阈值时,根据窗口中各图像帧所对应的匹配度变化趋势,滑动窗口。在步骤s805中,确定滑动后窗口中与第一图像帧匹配度最高的一个图像帧,并将第二图像帧更新为所确定的图像帧。

在一些实施例中,当窗口中各图像帧对应的匹配度递增时,步骤s804向前滑动窗口,即滑动方向与递增方向一致。当窗口中各图像帧对应的匹配度递减时,步骤s804向后滑动窗口。在一个实施例中,步骤s804可以根据第一图像帧与第二图像帧的匹配度距离匹配度阈值的差值,确定窗口的滑动步长。这里,差值越大,滑动步长越大。这样,步骤s804可以基于匹配度变化趋势,按照滑动步长调节窗口的图像帧范围。为了更形象解释,下面以图8b和8c为例对窗口滑动过程进行说明。

图8b示出了窗口中各图像帧对应匹配度的变化趋势曲线图。如图8b所示,x轴表示各图像帧的编号,y轴表示匹配度。这里,匹配度的取值范围例如为[0,1]。图8c示出了对图7b中窗口进行滑动操作后的示意图。由于图8b中各图像帧对应的匹配度递增,图7b中窗口的第二图像帧为p25。步骤s805可以向前(即图8c中向右方向)滑动窗口。如图8c所示,滑动后窗口可以包括图像帧p26至p30。

综上,方法800可以根据第二图像帧中各图像帧对应的匹配度的变化趋势确定滑动方向,从而可以准确更新第二图像帧,进而提高第二图像帧与第一图像帧的匹配度。另外,方法800通过动态调节滑动步长,可以提高确定第二图像帧的速度,即提高确定切入点的效率。

图9示出了根据本申请一些实施例的执行步骤s302的方法900的流程图。如图9所示,方法900可以包括步骤s901-s903。这里,步骤s901至s903的实施方式与步骤s701-s703一致,这里不再赘述。方法900还可以执行步骤s904和步骤s905。

在步骤s904中,当第一图像帧与第二图像帧的匹配度低于匹配度阈值时,滑动窗口,以使得第二图像帧处于滑动后窗口的中间位置。

在步骤s905中,确定滑动后窗口中与第一图像帧匹配度最高的一个图像帧,并将第二图像帧更新为所确定的图像帧。综上,方法900通过将第二图像帧保持在滑动后窗口的中心,可以快速调整窗口范围并更新第二图像帧,从而提高切换点和切入点的匹配度。

图10a示出了根据本申请一些实施例的视频播放装置1000的示意图。这里,视频播放装置1000例如可以驻留在终端设备110中,但不限于此。如图10所示,视频播放装置1000可以包括图像获取单元1010、切换控制单元1020和视频播放单元1030。

图像获取单元1010用于响应于从当前播放的第一视频流切换至第二视频流的指示,获取第一图像帧序列和第二图像帧序列。其中,第一图像帧序列来自所述第一视频流,第二图像帧序列来自第二视频流。

切换控制单元1020用于确定第一图像帧序列中作为切换点的第一图像帧和第二图像帧序列中与第一图像帧相匹配的第二图像帧。

视频播放单元1030用于播放第一视频流至第一图像帧,再以第二图像帧为切入点开始播放第二视频流。

如图10b所示,在一些实施例中,切换控制单元1020进一步包括窗口确定模块1021和图像匹配单元1022。窗口确定模块1021用于当接收到所述指示时,获取第一视频流中当前所播放图像帧的基准显示时间戳。这样,根据基准显示时间戳,窗口确定模块1021可以确定第一窗口和第二窗口。其中,第一窗口属于第一图像帧序列。第二窗口属于第二图像帧序列。

在一个实施例中,窗口确定模块1021可以确定第一图像帧序列中与基准显示时间戳间隔切换阈值的图像帧,并将该图像帧作为第一基准图像帧,并确定以该第一基准图像帧为中心的第一窗口。另外,窗口确定模块1021可以确定第二图像帧序列中显示时间戳与第一基准图像帧最接近的一个图像帧,并将该图像帧作为第二基准图像帧。在此基础上,窗口确定模块1021可以确定第二图像帧中以第二基准图像帧为中心的第二窗口。

图像匹配模块1022用于将第一窗口中各图像帧分别与第二窗口中各图像帧进行图像匹配操作,以确定匹配度最高的两个图像帧。图像匹配模块1022可以将上述两个图像帧中属于第一窗口的一个图像帧作为第一图像帧,并将属于第二窗口的一个图像帧作为第二图像帧。

在一个实施例中,窗口确定模块1021还用于当第一图像帧与第二图像帧的匹配度低于匹配度阈值时,滑动第一窗口和第二窗口,以使得第一图像帧处于滑动后第一窗口的中间位置,以及第二图像帧处于滑动后第二窗口的中间位置。图像匹配模块1022还用于确定滑动后第二窗口中与第一窗口中各图像帧匹配度最高的一个图像帧,并将第二图像帧更新为所确定的图像帧。

如图10c所示,在一些实施例中,切换控制单元1020进一步包括窗口确定模块1023和图像匹配单元1024。

窗口确定模块1023用于当接收到所述指示时,获取所述第一视频流中当前所播放图像帧的基准显示时间戳。根据基准显示时间戳,窗口确定模块1023可以确定第一图像帧,并确定属于第二图像帧序列的窗口。在一个实施例中,窗口确定模块1023可以确定第一图像帧序列中与基准显示时间戳间隔切换阈值的图像帧,并将该图像帧作为所述第一图像帧。在一个实施例中,窗口确定模块1023可以确定第二图像帧序列中显示时间戳与第一图像帧最接近的一个图像帧,并将该图像帧作为第二基准图像帧。这样,窗口确定模块1023可以确定第二图像帧序列中以第二基准图像帧为中心的窗口。

图像匹配模块1024用于将窗口中各图像帧分别与第一图像帧进行图像匹配操作,以确定窗口中与第一图像帧匹配度最高的一个图像帧,并将其作为第二图像帧。

在一些实施例中,窗口确定模块1023还用于当第一图像帧与第二图像帧的匹配度低于匹配度阈值时,根据窗口中各图像帧所对应的匹配度变化趋势,滑动窗口。在一个实施例中,当各图像帧对应的匹配度递增时,窗口确定模块1023向前滑动窗口。当各图像帧对应的匹配度递减时,窗口确定模块1023向后滑动窗口。在一个实施例中,窗口确定模块1023可以根据第一图像帧与第二图像帧的匹配度距离匹配度阈值的差值,确定窗口的滑动步长。基于匹配度变化趋势,窗口确定模块1023可以按照滑动步长调节窗口的图像帧范围。图像匹配模块1024还用于确定滑动后窗口中与第一图像帧匹配度最高的一个图像帧,并将第二图像帧更新为所确定的图像帧。

在一些实施例中,所述窗口确定模块1023还用于当第一图像帧与所述第二图像帧的匹配度低于匹配度阈值时,滑动窗口,以使得第二图像帧处于滑动后窗口的中间位置。图像匹配模块还用于确定滑动后窗口中与第一图像帧匹配度最高的一个图像帧,并将第二图像帧更新为所确定的图像帧。视频播放装置1000更具体的实施方式与视频播放方法300一致,这里不再赘述。

综上,视频播放装置1000可以确定相匹配的第一视频流的切换点(即第一图像帧)和第二视频流的切入点(即第二图像帧)。由于第一图像帧和第二图像帧相匹配,视频播放装置1000可以避免画面切换时重复播放画面或者画面跳跃的问题,从而可以对视频流画面进行平滑切换,进而提高画面连续性。

图11示出了一个计算设备的组成结构图。如图11所示,该计算设备包括一个或者多个处理器(cpu或gpu)1102、通信模块1104、存储器1106、用户接口1110,以及用于互联这些组件的通信总线1108。

处理器1102可通过通信模块1104接收和发送数据以实现网络通信和/或本地通信。

用户接口1110包括一个或多个输出设备1112,其包括一个或多个扬声器和/或一个或多个可视化显示器。用户接口1110也包括一个或多个输入设备1114,其包括诸如,键盘,鼠标,声音命令输入单元或扩音器,触屏显示器,触敏输入板,姿势捕获摄像机或其他输入按钮或控件等。

存储器1106可以是高速随机存取存储器,诸如dram、sram、ddrram、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。

存储器1106存储处理器1102可执行的指令集,包括:

操作系统1116,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;

应用1118,包括用于实现上述视频播放方法的各种程序,这种程序能够实现上述各实例中的处理流程,比如可以包括根据本申请的视频播放装置。视频播放装置可以包括图10所示的视频播放装置1000。

另外,本申请的每一个实例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本申请。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如cd-rom等)、磁光存储介质(如mo等)等。

因此本申请还公开了一种非易失性存储介质,其中存储有数据处理程序,该数据处理程序用于执行本申请上述视频播放方法的任何一种实例。

另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。

以上所述仅为本申请的较佳实例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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