一种视频帧传输方法、系统及服务器与流程

文档序号:18824986发布日期:2019-10-09 01:25阅读:316来源:国知局
一种视频帧传输方法、系统及服务器与流程

本发明涉及互联网技术领域,特别涉及一种视频帧传输方法、系统及服务器。



背景技术:

随着互联网的高速发展,视频会议、云视频游戏、机器人和车辆遥控等实时视频技术也在不断改进。

目前的实时视频传输系统中,发送端可以利用传输协议预估网络路径中的平均数据传输速率,并将该预估值提供给编解码器,编解码器根据该预估值确定编码参数,例如,码率等,并根据确定的编码参数生成压缩视频流,使得生成的压缩视频流的平均比特率与预估的网络容量相近,并将生产的压缩视频流利用传输协议发送给接收端。

然而,由于用于传输压缩视频流的网络情况每时每刻都在波动,而压缩视频流是根据之前反馈的网络预先生成,预估的网络容量具有滞后性,在网络情况较差或者段位重连时,难以实时进行视频质量的调整,可能导致实时视频过程中发生画面卡顿、丢失等情况。因此,目前亟需一种提高视频流畅性和稳定性的视频传输方法。



技术实现要素:

本申请的目的在于提供一种视频帧传输方法、系统及服务器,能够提高视频流畅性和稳定性。

为实现上述目的,本申请一方面提供一种视频帧传输方法,包括:

获取原始视频数据及接收端反馈的参考网络信息;

根据所述参考网络信息确定第一码率和第二码率;

分别根据所述第一码率和所述第二码率对所述原始视频数据中的待传输视频帧进行编码,得到与第一码率对应的第一视频帧和与第二码率对应的第二视频帧;

获取当前网络信息,将所述第一视频帧、所述第二视频帧与所述当前网络信息进行匹配,得到匹配结果;

根据所述匹配结果向接收端发送所述第一视频帧或发送所述第二视频帧或不发送视频帧。

为实现上述目的,本申请另一方面提供一种视频帧传输系统,包括:发送端和接收端;其中,

所述发送端,用于获取原始视频数据及所述接收端反馈的参考网络信息;根据所述参考网络信息确定第一码率和第二码率,分别根据所述第一码率和所述第二码率对所述原始视频数据中的待传输视频帧进行编码,得到与第一码率对应的第一视频帧和与第二码率对应的第二视频帧;获取当前网络信息,将所述第一视频帧、所述第二视频帧与所述当前网络信息进行匹配,得到匹配结果;根据匹配结果向所述接收端发送所述第一视频帧或发送所述第二视频帧或不发送视频帧;

所述接收端,用于接收所述发送端发来的视频帧,并反馈参考网络信息至所述发送端。

为实现上述目的,本申请另一方面还提供一种服务器,所述服务器为发送端服务器,包括:信息获取单元、码率确定单元、编码单元、视频帧匹配单元和视频帧操作单元;其中,

所述信息获取单元,用于获取原始视频数据及接收端反馈的参考网络信息;

所述码率确定单元,用于根据所述参考网络信息确定第一码率和第二码率;

所述编码单元,用于分别根据所述第一码率和所述第二码率对所述原始视频数据中的待传输视频帧进行编码,得到与第一码率对应的第一视频帧和与第二码率对应的第二视频帧;

所述视频帧匹配单元,用于获取当前网络信息,将所述第一视频帧、所述第二视频帧与所述当前网络信息进行匹配,得到匹配结果;

所述视频帧操作单元,用于根据匹配结果向所述接收端发送所述第一视频帧或发送所述第二视频帧或不发送视频帧。

为实现上述目的,本申请另一方面还提供一种服务器,所述服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述发送端服务器执行的方法。

由上可见,本申请提供的技术方案,接收端对原始视频数据逐帧地进行处理,发送端可以根据接收端利用传输协议反馈的上一视频帧传输时的网络信息确定当前视频帧的两种码率,可以提高用于视频数据处理的码率符合当前网络情况的可能性,根据所述的两种码率对原始视频数据进行处理得到两种码率下的视频帧,再根据当前网络情况选取两种码率中,具有更适合的码率的视频帧进行传输,可以在保证传输的视频帧流畅播放的基础上选择质量较高的视频帧进行传输,既保证了实时视频的流畅度也保证了实时视频的画面质量。同时,两种码率的视频帧具有相同的帧头部信息,可以保证发送端能够选择两种码率的视频帧中的任意一个进行传输,而不影响接收端对接收到的视频帧的信息进行识别,保证了实时视频的稳定性。

附图说明

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

图1是本发明实施例中一种视频帧传输方法的流程图;

图2是本发明实施例中视频帧传输系统的结构示意图;

图3是本发明实施例中视频传输服务器的一种模块示意图;

图4是本发明实施例中视频帧匹配单元的一种模块示意图;

图5是本发明实施例中推流服务器的结构示意图;

图6是本发明实施例中计算机终端的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本说明书实施例提供一种视频帧传输方法,该方法可以应用于实时视频传输服务中。

图1是本说明书实施例中一种视频帧传输方法的流程图。所述视频帧传输方法可以由视频帧发送端执行。请参阅图1,本说明书实施例提供的视频帧传输方法可以包括以下步骤。

s11:获取原始视频数据及接收端反馈的参考网络信息。

视频帧发送端可以从传感器获取原始视频数据。所述原始视频数据可以是实时视频数据。

所述发送端获取接收端反馈的参考网络信息可以通过传输协议来获取。

在一个实施方式中,所述参考网络信息具体可以包括:第一网络传输速度、上一视频帧的码率、数据包的平均到达时间间隔。

所述第一网络传输速度可以是反馈所述参考网络信息时的网络速度。

在一个实施方式中,所述数据包的平均到达时间间隔可以包括:最近预设时间间隔内所述接收端接收到的多个数据包的到达时间间隔的平均值。所述预设时间间隔可以根据实际情况进行设置,例如可以是200毫秒、300毫秒等。所述数据包的平均到达时间间隔可以反映接收端接收到的数据量。

s12:根据所述参考网络信息确定第一码率和第二码率。

所述发送端可以根据所述参考网络信息确定第一码率和第二码率。

在一个实施方式中,所述根据所述参考网络信息确定第一码率和第二码率,具体可以包括:比较所述上一视频帧的码率对应的网络传输速度与所述第一网络传输速度;若所述上一视频帧的网络传输速度与所述第一网络传输速度的差值小于第一预设值,将所述上一视频帧的码率作为第一码率;或者,若所述上一视频帧的网络传输速度与所述第一网络传输速度的差值大于或等于第一预设值,根据所述第一网络传输速度、数据包的平均到达时间间隔确定第一码率;将第一码率减去预设码率差值,得到第二码率。

所述第一预设值可以根据实际需要进行设置。例如,可以设置为20千比特/秒,30千比特/秒等。

当所述上一视频帧的网络传输速度与所述第一网络传输速度的差值小于第一预设值时,可以认为传输成功的上一视频帧的码率与第一网络传输速度相适应,可以将上一视频帧的码率作为第一码率。当所述上一视频帧的网络传输速度与所述第一网络传输速度的差值大于或等于第一预设值时,可以认为传输成功的上一视频帧的码率与第一网络传输速度不适应,则可以根据所述第一网络传输速度以及所述数据包的平均到达时间间隔来确定第一码率。

所述根据所述第一网络传输速度和数据包的平均到达时间间隔确定第一码率,可以包括:可根据所述数据包的平均到达时间间隔,计算第二网络传输速度;选取所述第一网络传输速度和所述第二网络传输速度中较小的作为参考网络速度;确定适应所述参考网络速度的第一码率;所述第一码率对应的网络传输速度小于所述参考网络速度,且所述第一码率对应的网络传输速度与所述参考网络速度的差值小于第二预设值。所述第二预设值可以根据实际需要进行设定。例如可以设置为10千比特/秒、20千比特/秒等。设定的第一码率对应的网络传输速度比所述参考网络速度稍低一些,可以保证视频帧的传输成功率。

通过设定第一码率和第二码率,可以使得原始数据的一个帧处理后有两种码率对应的视频帧,发送端发送视频帧时可选择性更高。

s13:分别根据所述第一码率和所述第二码率对所述原始视频数据中的待传输视频帧进行编码,得到与第一码率对应的第一视频帧和与第二码率对应的第二视频帧。

确定所述第一码率和第二码率后,可以分别根据所述第一码率和所述第二码率对所述原始视频数据中的一视频帧进行编码,得到与第一码率对应的第一视频帧和与第二码率对应的第二视频帧。

在一个实施方式中,可以通过编码器对原始视频数据的视频帧进行处理,得到所述第一视频帧和第二视频帧。

所述第一视频帧对应的帧头部信息与所述第二视频帧对应的帧头部信息可以相同。所述帧头部信息可以用于表示视频帧的发送接收信息。例如,可以用于表示接收端接收该视频帧后接收端的状态信息等。所述帧头部信息还可以用于表示视频帧的排序信息,例如视频帧的序列号等。

在一个实施方式中,所述视频帧对应的帧头部信息可以包括:帧序列号、源状态值和目标状态值。所述目标状态值信息可以用于标识成功接收该视频帧的接收端的状态。所述源状态值可以与上一视频帧的目标状态值相关联。例如,所述原装通知可以与上一发送的视频帧的目标状态值相同。根据所述视频帧的原状态值和接收端的状态,可以判断所述视频帧是否与接收端最近接收的视频帧为相邻发送的视频帧。

例如,一个视频帧对应的帧头部信息为“帧序号001,源状态01,目标状态02”,则接收端成功接收该视频帧后,接收端的状态可以用“02”进行标识。对原始视频数据中的同一视频帧,根据不同码率进行编码后,帧头部信息相同,这样,可以保证发送端可以选择两种码率的视频帧中任意一个进行传输,而不影响接收端对接收到的视频帧的信息进行识别。

s14:获取当前网络信息,将所述第一视频帧、所述第二视频帧与所述当前网络信息进行匹配,得到匹配结果。

所述发送端可以获取当前网络信息,并将所述第一视频帧、所述第二视频帧与所述当前网络信息进行匹配。

在一个实施方式中,所述获取当前网络信息可以包括:发送端探测当前网络的网络速度。

在一个实施方式中,所述将所述第一视频帧、所述第二视频帧与所述当前网络信息进行匹配,得到匹配结果,具体可以包括:比较所述第一视频帧的码率对应的网络速度与所述当前网络的网络速度;若所述第一视频帧的码率对应的网络速度小于或等于所述当前网络的网络速度,则匹配结果为第一视频帧匹配成功;或者,若所述第一视频帧的码率对应的网络速度大于所述当前网络的网络速度,则比较所述第二视频帧的码率对应的网络速度与所述当前网络的网络速度。若所述第二视频帧的码率对应的网络速度小于或等于所述当前网络的网络速度,匹配结果为第二视频帧匹配成功;否则,匹配结果为匹配不成功。

通过优先匹配码率较高的视频帧,可以保证匹配成功的视频帧传输成功后播放时画面质量更高。

s15:根据所述匹配结果向所述接收端发送所述第一视频帧或发送所述第二视频帧或不发送视频帧。

所述发送端可以根据所述匹配结果确定向所述接收端发送所述第一视频帧或发送所述第二视频帧或不发送视频帧。

当所述匹配结果为第一视频帧匹配成功时,所述发送端可以向所述接收端发送所述第一视频帧。

当所述匹配结果为第二视频帧匹配成功时,所述发送端可以向所述接收端发送所述第二视频帧。

当所述匹配结果为匹配不成功时,所述发送端可以统计当前连续匹配不成功的次数,若所述连续匹配不成功的次数小于预设次数,则不发送视频帧。若所述连续匹配不成功的次数等于或大于预设次数,则向所述接收端发送所述第二视频帧。

所述预设次数可以根据实际需要进行设置。例如可以设置为4、5等。

当匹配结果为第一视频帧匹配成功或第二视频帧匹配成功时,说明所述第一视频帧或所述第二视频帧适应当前网速。当匹配结果为匹配不成功时,说明当前网络速度非常差,发送视频帧可能会导致网络堵塞,那么进一步判断是否已经连续有若干视频帧未发送,若连续未发送的帧数大于或等于预设次数,那么为保证接收端播放视频帧时画面的流畅,向接收端发送码率较低的视频帧。

例如,预设次数可以设定为5,当帧序列号为“006”的两种码率的视频帧均匹配不成功时,可以统计当前连续匹配不成功的次数,假设当前连续匹配不成功的次数为4,小于预设次数5,则不发送视频帧。当帧序列号为“007”的两种码率的视频帧均匹配不成功时,统计的连续匹配不成功的次数为5,达到预设次数,则为保证接收端播放时不发生画面卡顿,发送帧序列号为“007”的两种码率的视频帧中码率较低的视频帧至接收端。

本说明书实施例还提供一种视频帧传输系统。请参阅图2,所述视频帧传输系统包括发送端和接收端。

所述发送端,可以用于获取原始视频数据及接收端反馈的参考网络信息。所述参考网络信息可以包括:第一网络传输速度、上一视频帧的码率以及数据包的平均到达时间间隔。

所述发送端还可以用于根据所述参考网络信息确定第一码率和第二码率,分别根据所述第一码率和所述第二码率对所述原始视频数据中的待传输视频帧进行编码,得到与第一码率对应的第一视频帧和与第二码率对应的第二视频帧;获取当前网络信息,将所述第一视频帧、所述第二视频帧与所述当前网络信息进行匹配,得到匹配结果;根据匹配结果向接收端发送所述第一视频帧或发送所述第二视频帧或不发送视频帧。其中,所述第一视频帧对应的帧头部信息和第二视频帧对应的帧头部信息可以相同。所述视频帧对应的帧头部信息可以包括:帧序列号、源状态值和目标状态值。

所述接收端,可以用于接收所述发送端发来的视频帧,并反馈所述参考网络信息至所述发送端。

本说明书实施例还提供一种视频帧传输服务器,所述视频帧传输服务器可以为发送端服务器。请参阅图3,所述视频帧传输服务器可以包括:信息获取单元、码率确定单元、编码单元、视频帧匹配单元和视频帧操作单元。其中,

所述信息获取单元,可以用于获取原始视频数据及接收端反馈的参考网络信息。所述参考网络信息可以包括:第一网络传输速度、上一视频帧的码率以及数据包的平均到达时间间隔。

所述码率确定单元,可以用于根据所述信息获取单元获取的参考网络信息确定第一码率和第二码率。

所述编码单元,可以用于分别根据所述第一码率和所述第二码率对所述原始视频数据中的待传输视频帧进行编码,得到与第一码率对应的第一视频帧和与第二码率对应的第二视频帧。所述第一视频帧对应的帧头部信息与所述第二视频帧对应的帧头部信息可以相同。所述视频帧的帧头部信息可以包括:帧序列号、源状态值和目标状态值。

所述视频帧匹配单元,用于获取当前网络信息,将所述第一视频帧、所述第二视频帧与所述当前网络信息进行匹配,得到匹配结果。所述当前网络信息可以包括当前网络速度。

所述视频帧操作单元,用于根据匹配结果向所述接收端发送所述第一视频帧或发送所述第二视频帧或不发送视频帧。

参阅图4,在一个实施方式中,所述视频帧匹配单元可以包括:当前网络信息获取子单元和匹配子单元;其中,

所述当前网络信息获取子单元,用于获取当前网络信息。所述当前网络信息可以包括:当前网络的网络速度。

所述匹配子单元,用于将所述编码单元得到的所述第一视频帧、所述第二视频帧与所述当前网络信息获取子单元获取的当前网络信息进行匹配,得到匹配结果。

参阅图5,本说明书还提供一种服务器,所述服务器包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,可以实现上述方法实施例中发送端执行的视频帧传输方法。

请参阅图6,在本说明书中,上述实施例中的技术方案可以应用于如图6所示的计算机终端10上。计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输模块106。本领域普通技术人员可以理解,图6所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

具体地,在本说明书中,上述的服务器的部署方法可以作为计算机程序存储于上述的存储器104中,所述存储器104可以与处理器102耦合,那么当处理器102执行所述存储器104中的计算机程序时,便可以实现上述的服务器的部署方法中的各个步骤。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

由上可见,本说明书提供的技术方案,接收端对原始视频数据逐帧进行处理,发送端可以根据接收端利用传输协议反馈的上一视频帧传输时的网络信息确定当前视频帧的两种码率,可以提高用于视频数据处理的码率符合当前网络情况的可能性,根据所述的两种码率对原始视频数据进行处理得到两种码率下的视频帧,再根据当前网络情况选取两种码率中,具有更适合的码率的视频帧进行传输,可以在保证传输的视频帧流畅播放的基础上选择质量较高的视频帧进行传输,既保证了实时视频的流畅度也保证了实时视频的画面质量。同时,两种码率的视频帧具有相同的帧头部信息,可以保证发送端可以选择两种码率的视频帧中任意一个进行传输,而不影响接收端对接收到的视频帧的信息进行识别,保证了实时视频的稳定性。

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

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

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