一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频传输方法、服务器及存储介质与流程

2021-11-02 11:33:00 来源:中国专利 TAG:
视频传输方法、服务器及存储介质与流程

本发明涉及通信技术领域,尤其涉及视频传输方法、服务器及计算机可读存储介质。

背景技术

随着科技的发展,移动终端的功能变得越来越强大。目前,许多移动终端均具备云游戏功能。在云游戏实现方案中,云端需要将音频和视频传输到移动终端,以控制移动终端的显示内容。

在相关技术中,为了降低视频传输开销,一般会先根据视频帧之间的相似度确定待传输的视频中的关键帧,然后将关键帧之外的其它非关键视频帧丢弃,而只向终端传输关键帧及被丢弃的帧的数量。当在进行静态动画传输时,可能连续很长时间内的视频对应的视频帧的相似度均较高,这就会导致长时间段的视频帧均被丢弃,从而导致视频出现卡顿。

上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。



技术实现要素:

本发明的主要目的在于提供一种视频传输方法、服务器及计算机可读存储介质,旨在达成避免客户端出现画面卡顿现象的效果。

为实现上述目的,本发明提供一种视频传输方法,所述视频传输方法包括以下步骤:

根据待传输视频的各个视频帧之间的相似度,确定原始关键帧;

当满足预设条件时,根据相邻的原始关键帧生成平滑关键帧;

根据所述原始关键帧及所述平滑关键帧生成目标输帧序列,并依次发送所述目标帧序列中的视频帧。

可选地,所述根据相邻的原始关键帧生成平滑关键帧的步骤包括:

确定原始关键帧对应的帧背景;

基于所述帧背景确定第一原始关键帧对应的第一前景图,以及第二原始关键帧对应的第二前景图,其中,所述第一原始关键帧与所述第二原始关键帧相邻;

根据所述第一前景图和所述第二前景图确定平滑前景图;

根据所述帧背景和所述平滑前景图生成所述平滑关键帧。

可选地,所述预设条件包括以下至少一个:

相邻的原始关键帧之间的帧间隔时长大于预设时长;

接收到提升帧率的控制指令。

可选地,所述根据待传输视频的各个视频帧之间的相似度,确定所述待传输视频对应的原始关键帧的步骤之后,还包括:

在不满足所述预设条件时,确定每一原始关键帧对应的帧标签;

基于所述帧标签向客户端发送所述待传输视频,其中,在发送所述待传输视频时,所述原始关键帧对应的码流包括所述帧标签和帧数据,非原始关键帧对应的码流包括所述帧标签和无帧数据标识。

可选地,所述视频传输方法还包括:

缓存所述待传输视频对应的传输帧序列;

在再次接收到所述待传输视频对应的传输请求时,反馈所述传输帧序列。

此外,本发明还提供另一种视频传输方法,所述视频传输方法包括以下步骤:

接收服务器的视频传输码流;

基于所述传输码流确定当前帧对应的帧标签,以及确定所述码流是否包括帧数据;

在所述码流不包括所述帧数据时,基于所述帧标签在预存数据中确定当前对应的帧数据。

可选地,所述基于所述传输码流确定当前帧对应的帧标签,以及确定所述码流是否包括帧数据的步骤之后,还包括:

在所述码流包括所述帧数据时,将所述帧标签及是所述帧数据关联保存。

此外,为实现上述目的,本发明还提供一种服务器,所述服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的视频传输程序,所述视频传输程序被所述处理器执行时实现如上所述的视频传输方法的步骤。

此外,为实现上述目的,本发明还提供一种服务器,所述服务器包括:

确定模块,根据待传输视频的各个视频帧之间的相似度,确定原始关键帧;

生成模块,用于当满足预设条件时,根据相邻的原始关键帧生成平滑关键帧;

发送模块,用于根据所述原始关键帧及所述平滑关键帧生成目标输帧序列,并依次发送所述目标帧序列中的视频帧。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有视频传输程序,所述视频传输程序被处理器执行时实现如上所述的视频传输方法的步骤。

本发明实施例提出的一种视频传输方法、服务器及计算机可读存储介质,根据待传输视频的各个视频帧之间的相似度,确定原始关键帧,当满足预设条件时,根据相邻的原始关键帧生成平滑关键帧,根据所述原始关键帧及所述平滑关键帧生成目标输帧序列,并依次向客户端发送所述目标帧序列中的视频帧。由于可以在初始传输帧序列的对应为上,插入所述平滑关键帧,以生成目标输帧序列。然后依次向客户端发送所述目标帧序列中的视频帧。使得客户端在接收到所述平滑关键帧后,可以基于所述平滑关键帧渲染原始关键帧之间的过度画面。从而使得客户端的显示输出更加流畅。这样达成了避免客户端视频播放过程出现卡顿现象,提高了客户端视频显示的流畅度。

附图说明

图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;

图2为本发明视频传输方法的一实施例的流程示意图;

图3为本发明视频传输方法的一实施例中,一可选方案的流程示意图;

图4为本发明视频传输方法的另一实施例的流程示意图;

图5为本发明实施例涉及的服务器的模块化示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。

本发明实施例终端可以是服务器或者计算机等。

如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1003,存储器1004,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。网络接口1003可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1004可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1004可选的还可以是独立于前述处理器1001的存储装置。

本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图1所示,作为一种计算机存储介质的存储器1004中可以包括操作系统、网络通信模块以及视频传输程序。

在图1所示的终端中,处理器1001可以用于调用存储器1004中存储的视频传输程序,并执行以下操作:

根据待传输视频的各个视频帧之间的相似度,确定原始关键帧;

当满足预设条件时,根据相邻的原始关键帧生成平滑关键帧;

根据所述原始关键帧及所述平滑关键帧生成目标输帧序列,并依次发送所述目标帧序列中的视频帧。

进一步地,处理器1001可以调用存储器1005中存储的视频传输程序,还执行以下操作:

确定原始关键帧对应的帧背景;

基于所述帧背景确定第一原始关键帧对应的第一前景图,以及第二原始关键帧对应的第二前景图,其中,所述第一原始关键帧与所述第二原始关键帧相邻;

根据所述第一前景图和所述第二前景图确定平滑前景图;

根据所述帧背景和所述平滑前景图生成所述平滑关键帧。

进一步地,处理器1001可以调用存储器1005中存储的视频传输程序,还执行以下操作:

相邻的原始关键帧之间的帧间隔时长大于预设时长;

接收到提升帧率的控制指令。

进一步地,处理器1001可以调用存储器1005中存储的视频传输程序,还执行以下操作:

在不满足所述预设条件时,确定每一原始关键帧对应的帧标签;

基于所述帧标签向客户端发送所述待传输视频,其中,在发送所述待传输视频时,所述原始关键帧对应的码流包括所述帧标签和帧数据,非原始关键帧对应的码流包括所述帧标签和无帧数据标识。

进一步地,处理器1001可以调用存储器1005中存储的视频传输程序,还执行以下操作:

缓存所述待传输视频对应的传输帧序列;

在再次接收到所述待传输视频对应的传输请求时,反馈所述传输帧序列。

此外,处理器1001可以用于调用存储器1004中存储的视频传输程序,并执行以下操作:

接收服务器的视频传输码流;

基于所述传输码流确定当前帧对应的帧标签,以及确定所述码流是否包括帧数据;

在所述码流不包括所述帧数据时,基于所述帧标签在预存数据中确定当前对应的帧数据。

进一步地,处理器1001可以调用存储器1005中存储的视频传输程序,还执行以下操作:

在所述码流包括所述帧数据时,将所述帧标签及是所述帧数据关联保存。

随着科技的发展,移动终端的功能变得越来越强大。目前,许多移动终端均具备云游戏功能。在云游戏实现方案中,云端需要将音频和视频传输到移动终端,以控制移动终端的显示内容。

在相关技术中,为了降低视频传输开销,一般会先根据视频帧之间的相似度确定待传输的视频中的关键帧,然后将关键帧之外的其它非关键视频帧之间丢弃,而只向终端传输关键帧及被丢弃的帧的数量。当在进行静态动画传输时,可能连续很长时间内的视频对应的视频帧的相似度均较高,这就会导致长时间段的视频帧均被丢弃,从而导致视频出现卡顿。

为解决相关技术存在的上述缺陷,本发明实施例提出一种视频传输方法旨在通过基于相邻的关键帧生成两个关键帧中间的平滑关键帧,从而使得客户端接收到的帧序列在播放过程中,更加流程。从而达成避免视频出现卡顿的现象发生。

参照图2,在本发明视频传输方法的一实施例中,所述视频传输方法包括以下步骤:

步骤S10、根据待传输视频的各个视频帧之间的相似度,确定所述待传输视频对应的原始关键帧;

步骤S20、当满足预设条件时,根据相邻的所述原始关键帧生成平滑关键帧;

步骤S30、根据所述原始关键帧及所述平滑关键帧生成目标输帧序列,并依次向客户端发送所述目标帧序列中的视频帧。

在本实施例中,服务器确定待传视频后,可以根据待传输视频的各个视频帧之间的相似度,确定所述待传输视频对应的原始关键帧。其中待传输视频是指服务器准备发生至客户端的视频数据。其中,所述视频数据可以由多个视频画面帧(即所述视频帧)组成。所述原始关键帧是指所述待传输视频中,相似度交小的一个或者多个视频帧。

示例性地,当确定待传输视频后,若所述待传输视频由依次排序的视频帧1、视频帧2,视频帧3、视频帧4、……视频帧n组成。则可以先获取视频帧1和视频帧2之间的相似度。当视频帧1和视频帧2之间的相似度大于预设相似度时,将视频帧1作为所述原始关键帧。将视频帧2作为非原始关键帧。进而,确定视频帧1和视频帧3之间的相似度。若所述相似度大于预设相似度,则将视频帧3作为非原始关键帧。并继续获取视频帧1和视频帧4之间的相似度,以根据所述相似度确定视频帧4是否为原始关键帧。若所述相似度小于或者等于所述预设相似度,则将视频帧3也确定为原始关键帧,并获取视频帧3与视频帧4之间的相识度。依次类推,直至处理完视频帧n。即处理完待传输视频对应全部视频帧。可以确定待传输视频对应的至少一个原始关键帧。其中,所述预设相似度为自定义的数值,例如,可以设置为90%-95%之间的任意数值,优选地,所述预设相似度设置为92%。

可选地,在一实施方式中,在根据待传输视频的各个视频帧之间的相似度,确定所述待传输视频对应的原始关键帧之后,还可以在向客户端发送所述待传输视频时,若待发送的视频帧为原始关键帧,则发送视频帧对应的帧标签和帧数据。若待发送的视频帧为非原始视频帧时,则发送帧标签和无帧数据的标识。

示例性地,若所述待传输视频对应的待发送帧序列为视频帧1、视频帧2,视频帧3、视频帧4、……视频帧n。其中,视频帧1为原始关键帧,视频帧2和3为非原始关键帧,视频帧4为原始关键帧……视频帧n为原始关键帧。则在发送过程中,在发送视频帧1时,发送视频帧1对应的帧标签1以及视频帧1对应的具体帧数据。在传输视频帧2和3时,则发送视频帧2和3对应的帧标签,和无帧数据标识。其中,视频帧2和视频帧3对应的帧标签与视频帧1相同。同理,可以根据相同的方式发送其它原始关键帧和非原始关键帧。客户端在接收到服务器发送的码流时,可以解析码流,以确定当前帧对于应的帧标签和待显示内容。在当前帧为原始关键帧时,可以根据进一步解析帧数据,并将所述帧数据对应的内容作为待显示内容。在当前帧为非原始关键帧时,则可以根据所述帧标签,获取与所述非原始关键帧的帧标签相同的原始关键帧对应的帧数据,作为当前帧对应的显示内容。由于在传输过程中,非原始关键帧占用的传输开销极小,因此,本实施方案提供的传输方式,达成了降低视频数据的传输开销的效果。可以理解的是,由于在本方案中,每一视频帧都具有传输数据,从而使得本方案可以很好的适应于需要不间断传输视频帧的场景。例如,在云游戏场景中,由于传输游戏画面需要不间断发送视频帧,因此相关的通过丢弃非关键帧的方案,无法适用于游戏传输场景中。

进一步地,当服务器确定原始关键帧后,可以基于所述原始关键帧生成初始传输帧序列。在所述初始传输帧序列中,原始关键帧包具体的帧数据和帧标签,而非原始关键帧则不包括具体帧数据,包括帧标签。使得可以通过非原始关键帧的帧标签,选定对应的原始关键帧的帧数据,作为该非原始关键帧对应的显示数据。使得在需要在此向客户端发送所述待传输视频时,可以直接根据所述初始传输帧序列进行视频帧传输,而无需进行重复的相似度对比,以确定原始关键帧。

可选地,作为一种可选实施方案,当客户端具备缓存功能时,客户端也可以在接收到服务器发送的所述初始传输帧序列时,缓存所述初始传输帧序列。当客户端第二次请求所述待传输视频时,则服务器可以只像客户端发送相应的帧标签,客户端则基于上述帧标签在缓存数据中查询相应的帧数据,以渲染显示画面。

需要说明的是,上述传输方式和服务器及客户端缓存初始传输帧序列的方式的最佳应用场景是云游戏的静态动画传输场景。例如,对于云游戏的登录界面动画而言,其画面重复率交高,且客户端每次登录游戏时均需要向服务器请求该登录画面对应的静态动画。并且,在云游戏中,因为游戏的同步机制的需求,需要服务器不间断地向客户端发送每一时刻对应的用户渲染游戏界面画面帧信息。因此,使用上述方法可以很好地节省该场景下的传输开销。

在上述云游戏视频传输场景中,服务器可以预先设定上述传输方式的启动条件和退出条件。例如,当服务器检测到当前进入静态动画传输场景时启用上述传输方式。当有触控发生时,退出该模式,恢复成正常音视频传输。或者,服务器端经更复杂的图像识别后,判断为非静态动画模式时,恢复正常模式。循环播放过程中,定时监测,每隔几秒,将采集的帧和静态动画序列进行相似度比较,找不到相似度高的帧,即判定退出该模式。

进一步地,当根据待传输视频的各个视频帧之间的相似度,确定所述待传输视频对应的原始关键帧后,还可以判断是否满足预设条件。其中,所述预设条件可以包括一下至少一个:

相邻的所述原始关键帧之间的帧间隔时长大于预设时长;

接收到提升帧率的控制指令。

需要说明是,所述帧间隔时长是指两个相邻的原始关键帧之间的间隔时长T。其中,所述预设时长可以根据客户端播放所述视频数据的刷新率(即每秒传输帧数,FPS,Frames Per Second)确定。例如,可以设置为2*(1000/Fps)。及当原始关键帧之间的间隔时长T>2*(1000/Fps)时,判定满足所述预设条件。

为了适应不同场景下的帧率要求,当原始采集帧序列是低帧率的,需生成高帧率的帧序列,如原始帧率30帧,生成高帧率60帧的传输流。则可以触发所述提升帧率的控制指令。当检测到提升帧率的控制指令时,可以判定满足所述预设条件。

进一步地,当满足所述预设条件时,可以根据相邻的所述原始关键帧生成平滑关键帧。

可选地,参照图3,所述当满足所述预设条件时,可以根据相邻的原始关键帧生成平滑关键帧,其中,在根据相邻的原始关键帧生成平滑关键帧时,可以包括以下步骤:

步骤S21、确定原始关键帧对应的帧背景;

步骤S22基于所述帧背景确定第一原始关键帧对应的第一前景图,以及第二原始关键帧对应的第二前景图,其中,所述第一原始关键帧与所述第二原始关键帧相邻;

步骤S23、根据所述第一前景图和所述第二前景图确定平滑前景图;

步骤S24、根据所述帧背景和所述平滑前景图生成所述平滑关键帧。

示例性地,可以根据原始帧序列的灰度值进行区间统计从而得到一个具有统计意义的背景Fb,即得到所述帧背景Fb。将第一原始关键帧Fx和帧背景Fb做差,求得第一背景差图。将第二原始关键帧Fx 1和帧背景Fb做差,求得第二背景差图。然后第一背景差图和第二背景差图进行二值化,获得运动前景区域。即实现图像分割,得到第一原始关键帧Fx对应地第一前景图Ffx,同上处理得到第二原始关键帧Fx 1的第二前景图Ffx 1。

根据第一前景图Ffx、第二前景图Ffx 1、以及第一原始关键帧Fx和第二原始关键帧Fx 1的帧间隔之间的帧间隔时长Tx,计算平滑关键帧Fx’的平滑前景图Ffx’。根据所述帧背景和所述平滑前景图生成所述平滑关键帧。

当得到所述平滑关键帧后,根据所述原始关键帧及所述平滑关键帧生成目标输帧序列,并依次向客户端发送所述目标帧序列中的视频帧。

可选地,在不满足所述预设条件时,可以确定每一所述原始关键帧对应的帧标签,然后基于所述帧标签向客户端发送所述待传输视频,其中,在发送所述待传输视频时,所述原始关键帧对应的码流包括所述帧标签和帧数据,非原始关键帧对应的码流包括所述帧标签和无帧数据标识。

可选地,还可以缓存所述待传输视频对应的传输帧序列,在再次接收到所述待传输视频对应的传输请求时,基于所述传输帧序列向所述传输请求的发起端发送所述传输帧序列。

示例性地,可以在初始传输帧序列的对应为上,插入所述平滑关键帧,以生成目标输帧序列。然后依次向客户端发送所述目标帧序列中的视频帧。使得客户端在接收到所述平滑关键帧后,可以基于所述平滑关键帧渲染原始关键帧之间的过度画面。从而使得客户端的显示输出更加流畅。这样达成了避免客户端视频播放过程出现卡顿现象,提高了客户端视频显示的流畅度。

参照图4、在本发明视频传输方法的另一实施例中,所述视频传输方法包括以下步骤:

步骤S1、接收服务器的视频传输码流;

步骤S2、基于所述传输码流确定当前帧对应的帧标签,以及确定所述码流是否包括帧数据;

步骤S3、在所述码流不包括所述帧数据时,基于所述帧标签在预存数据中确定当前对应的帧数据。

在本实施例中,所述视频传输方法可以用于客户端。其中,客户端可以根据主动向服务器请求视频数据。例如,当客户端处于云游戏的运行界面时,可以请求也游戏界面对应的视频数据。即所述游戏界面的渲染参数。可以理解的是,所述服务器和所述客户端之间可以基于实时传输协议(RTP,Real-time Transport Protocol)进行数据传输。在传输过程中,服务器可以在每一视频帧对应的码流的头部,添加所述视频帧对应的帧标签。客户端可以接收服务器的视频传输码流。当接收到所述码流后,可以解析出所述码流中携带的视频帧的帧标签,以及确定码流中时否包含当前视频帧对应的帧数据。

需要说明的是,服务器在发送所述生成所述码流时,包括一下情况:

情况一、初次发送时,若发送关键帧对应的码流时,在码流中添加该关键帧对应的帧标签和帧数据;

情况二、初次发送时,若在发送非关键帧时,在码流中添加该非关键帧对应的帧标签,以及无帧数据标识。其中,非关键帧对应的帧标签,与所述非关键帧所在位置的前一关键帧对应的帧标签相同。

情况三、在再次发送过程中,仅发送当前帧对应的帧标签。

进一步地,当确定当前帧对应的帧标签后,若码流中包括当前帧对应的帧数据,则基于所述帧数据渲染当前帧对应的显示画面。不包含当前帧对应的帧数据,则或者当前时刻之前接收的,与当前帧的帧标签相同的具备帧数据的画面的帧帧数据。并基于获取到的帧数据渲染当前帧的显示画面。

可选地,在所述码流包括所述帧数据时,将所述帧标签及是所述帧数据关联保存。

当接收到的码流仅包括帧标签时,从缓存数据中,获取与所述帧标签相匹配的帧数据,并基于获取都是数据渲染当前画面。

在本实施例公开的技术方案中,接收服务器的视频传输码流,然后基于所述传输码流确定当前帧对应的帧标签,以及确定所述码流是否包括帧数据在所述码流不包括所述帧数据时,基于所述帧标签在预存数据中确定当前对应的帧数据。由于传输过程中仅传输关键帧的帧数据,从而达成了节约传输开销的效果。

此外,本发明实施例还提出一种服务器,所述服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的视频传输程序,所述视频传输程序被所述处理器执行时实现如上各个实施例所述的视频传输方法的步骤。

参照图5,本发明实施例还提出一种服务器100,所述服务器包括:

确定模块101,根据待传输视频的各个视频帧之间的相似度,确定原始关键帧;

生成模块102,用于当满足预设条件时,根据相邻的原始关键帧生成平滑关键帧;

发送模块103,用于根据所述原始关键帧及所述平滑关键帧生成目标输帧序列,并依次发送所述目标帧序列中的视频帧。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有视频传输程序,所述视频传输程序被处理器执行时实现如上各个实施例所述的视频传输方法的步骤。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台服务器执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜