欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 国标视频码流转RTP流的平顺方法、装置、设备及介质独创技术23596字

国标视频码流转RTP流的平顺方法、装置、设备及介质

2021-02-27 20:14:46

国标视频码流转RTP流的平顺方法、装置、设备及介质

  技术领域

  本发明涉及视频处理领域,尤其涉及一种国标视频码流转RTP流的平顺方法、装置、设备及介质。

  背景技术

  在网络技术不断发展的背景下,网络速率也在不断提高,使得人们获取信息的方式从最初的文字、图片慢慢升级到小视频、直播等方式。视频的广泛使用给服务器端造成的压力日益增加。同时传统视频的传输是采用整帧发送的方式,当同时打开的视频较多时,会降低视频传输的效率,从而出现视频卡顿、掉帧的情况出现,影响视频观看效果。

  对国标视频码流而言,传统的整帧传输方式在多路高清视频的情况下也并不适合,会在多路传输的过程中,出现发包不均匀和视频卡顿问题。

  发明内容

  为了克服现有技术的不足,本发明的目的之一在于提供一种国标视频码流转RTP流的平顺方法,解决国标视频码流传输时出现的发包不均匀以及卡顿问题。

  本发明的目的之一采用以下技术方案实现:

  一种国标视频码流转RTP流的平顺方法,包括以下步骤:

  接收包含国标视频数据的数据包;

  将所述国标视频数据转换为RTP视频数据;

  统计预设时间段内所述RTP视频数据的数据帧数量,并计算所述各数据帧之间的时间间隔,保存所述RTP视频数据的数据帧至缓存队列,其中不同RTP视频数据的数据帧保存至不同的缓存队列;

  当所述缓存队列缓存的数据帧达到预设数量时,平滑发送所述缓存队列缓存的RTP视频数据,包括:

  从所述缓存队列里获取数据帧作为当前数据帧,并获取所述当前数据帧的时间戳;

  若当前数据帧的时间戳与上一个获取的数据帧的时间戳相同,则按照所述当前数据帧与所述上一个获取的数据帧之间的时间间隔发送所述当前数据帧;

  否则,从所述缓存队列中读取所述当前数据帧,记录所述当前数据帧的时间点,并计算和所述上一个获取的数据帧之间的时间间隔;

  从所述缓存队列中获取所有数据帧的平均时间间隔以及所述缓存队列中的数据帧数量;

  若所述缓存队列缓存的数据帧数量小于预设的第一阈值,停止发送,等待所述平均时间间隔的1.5倍时间,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第一阈值且小于预设的第二阈值,停止发送,等待0.5倍所述平均时间间隔,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第二阈值,则直接发送所述当前数据帧。

  进一步地,将所述国标视频数据转换为RTP视频数据之前,包括以下步骤:

  判断所述国标视频数据是否为完整视频帧;

  若是,则将所述国标视频数据转换为RTP视频数据。

  进一步地,将所述国标视频数据转换为RTP流,包括以下步骤:

  将所述国标视频数据转换为H264数据流;

  将所述H264数据流封装为RTP视频数据。

  进一步地,保存所述RTP视频数据的数据帧至缓存队列,包括以下步骤:

  获取所述RTP视频数据的时间戳,若所述时间戳与上一个获取的时间戳不同,则增加所述缓存队列的数据帧数量,并把所述RTP视频数据的数据帧保存至所述缓存队列。

  进一步地,保存所述RTP视频数据的数据帧至缓存队列,还包括以下步骤:

  实时统计所述缓存队列缓存的数据帧数量;

  实时统计所述缓存队列缓存的数据帧之间的时间间隔;

  实时更新所述时间间隔的累积时长。

  进一步地,发送所述当前数据帧,包括:

  调用RTP数据分发接口,发送所述当前数据帧。

  本发明的目的之二在于提供一种国标视频码流转RTP流的平顺装置,其能解决国标视频码流在多路传输时的出现的发包不均匀以及卡顿问题。

  本发明的目的之二采用以下技术方案实现:

  一种国标视频码流转RTP流的平顺装置,包括:

  数据接收模块,用于接收包含国标视频数据的数据包;

  格式转换模块,用于将所述国标视频数据转换为RTP视频数据;

  统计模块,用于统计预设时间段内所述RTP视频数据的数据帧数量,并计算所述各数据帧之间的时间间隔,保存所述RTP视频数据的数据帧至缓存队列,其中不同RTP视频数据的数据帧保存至不同的缓存队列;

  平滑发送模块,用于当所述缓存队列缓存的数据帧达到预设数量时,平滑发送所述缓存队列缓存的RTP视频数据,包括:

  从所述缓存队列里获取数据帧作为当前数据帧,获取所述当前数据帧的时间戳;

  若当前数据帧的时间戳与上一个获取的数据帧的时间戳相同,则按照所述当前数据帧与所述上一个获取的数据帧之间的时间间隔发送所述当前数据帧;

  否则,从所述缓存队列中读取所述当前数据帧,记录所述当前数据帧的时间点,并计算和所述上一个获取的数据帧之间的时间间隔;

  从所述缓存队列中获取所有数据帧的平均时间间隔以及所述缓存队列中的数据帧数量;

  若所述缓存队列缓存的数据帧数量小于预设的第一阈值,停止发送,等待所述平均时间间隔的1.5倍时间,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第一阈值且小于预设的第二阈值,停止发送,等待0.5倍所述平均时间间隔,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第二阈值,则直接发送所述当前数据帧。

  本发明的目的之三在于提供执行发明目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时实现上述的国标视频码流转RTP流的平顺方法。

  本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的国标视频码流转RTP流的平顺方法。

  相比现有技术,本发明的有益效果在于:

  本发明通过对国标视频流转码后进行平滑处理,并采用缓存队列,降低发包时的占用带宽的峰值,起到减缓带宽压力的作用,同时减少了网络不稳定导致的视频卡顿感,保证视频流接收和发送的动态平衡,使得视频画面更加流畅。

  附图说明

  图1是本发明国标视频码流转RTP流的平顺方法的流程图;

  图2是实施例2的国标视频码流转RTP流的平顺装置的结构框图;

  图3是实施例3的电子设备的结构框图。

  具体实施方式

  以下将结合附图,对本发明进行更为详细的描述,需要说明的是,以下参照附图对本发明进行的描述仅是示意性的,而非限制性的。各个不同实施例之间可以进行相互组合,以构成未在以下描述中示出的其他实施例。

  实施例1

  本实施例提供了一种国标视频码流转RTP流的平顺方法,旨在采用平滑策略和缓存机制,解决国标视频码流传输时的发包不均匀以及播放卡顿的问题。

  根据上述原理,对国标视频码流转RTP流的平顺方法进行介绍,如图1所示,国标视频码流转RTP流的平顺方法,具体包括以下步骤:

  接收包含国标视频数据的数据包;

  将所述国标视频数据转换为RTP视频数据;

  统计预设时间段内所述RTP视频数据的数据帧数量,并计算计算各数据帧之间的时间间隔,保存所述RTP视频数据的数据帧至缓存队列,其中不同RTP视频数据的数据帧保存至不同的缓存队列;

  当所述缓存队列缓存的数据帧达到预设数量时,平滑发送所述缓存队列缓存的RTP视频数据,包括:

  从所述缓存队列里获取数据帧作为当前数据帧,并获取所述当前数据帧的时间戳;

  若当前数据帧的时间戳与上一个获取的数据帧的时间戳相同,则按照所述当前数据帧与所述上一个获取的数据帧之间的时间间隔发送所述当前数据帧;

  否则,从所述缓存队列中读取所述当前数据帧,记录所述当前数据帧的时间点,并计算和所述上一个获取的数据帧之间的时间间隔;

  从所述缓存队列中获取所有数据帧的平均时间间隔以及所述缓存队列中的数据帧数量;

  若所述缓存队列缓存的数据帧数量小于预设的第一阈值,停止发送,等待所述平均时间间隔的1.5倍时间,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第一阈值且小于预设的第二阈值,停止发送,等待0.5倍所述平均时间间隔,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第二阈值,则直接发送所述当前数据帧。

  本实施例的国标视频码流转RTP流的平顺方法应用在服务器端,通过在服务器上编写软件系统,执行上述国标视频码流转RTP流的平顺方法,完成视频收发包处理。

  上述软件系统可包括国标数据流接收模块、国标数据流转RTP流模块、RTP数据统计计算模块、RTP视频平滑模块和数据发送模块,分别用于执行上述各步骤。

  上述接收到的包含国标视频数据的数据包以数据报文的方式发送,接收到包含国标视频数据的数据包后,将该国标视频数据保存到内存。然后采用视频流格式转换技术将国标视频数据转换为RTP视频数据。

  视频数据一般由图像帧组成,图像帧中的特征点是图像中有具有代表性的内容,具有可重复性,因此可以在不同的图像帧中找到相同的特征点。同时特征点又具有区别性,即同一个特征点在不同的图像区域由不同的表达内容,在同一个图像帧中,特征点的数量要远小于图像相似,特征点具仅与一小片图像区域有关。将国标视频数据转换为RTP(实时传输协议)视频流,可实现实时特征的端对端传送服务,在本实施例中可针对图像帧的特征点实现实时端对端的有序传送。当数据包到达时,获取每个数据包到达时间,精确度到微秒,并循环统计每个数据包的时间点。

  上述的预设时间段在本实施例中为4秒,即统计4秒内所述RTP视频数据的总共包含多少帧数据帧,并计算相邻数据帧之间的时间间隔,并将数据帧加入缓存队列。针对国标视频码流的多路传输时,每一路RTP视频数据保存至一个缓存队列,使得每一路视频与缓存队列一一对应。

  为实现RTP视频数据的平滑发送,在RTP视频数据平滑发送之前,需要缓存一定数量的RTP数据帧,以防止在网络等外界条件下,导致一段时间内缓存队列里有没有数据,而导致视频数据发送不平顺。具体做法是,先向缓存队列输入一定数量的数据帧,当缓存数据中的数据帧达到一定数量以后开始平滑发送数据帧。并设置一个缓存数据帧数量的阈值范围,当缓存队列中的缓存数据帧的数量不在阈值范围时,通过增加或减少发送速率,以保证缓存的数量在一个合理范围内。

  在本实施例中,预设数量为400,为2K分辨率、4M码率视频流的一秒内的包数量。在本发明的其他实施例中,根据视频码率和分辨率的不同,可确定不同的预设数量的取值,即预设数量的具体取值由视频码率和分辨率确定。

  当所述当前数据帧与上一个数据帧的时间戳不同时,说明当前数据帧和上一个数据帧不是同一视频数据,需要进行数据帧之间的缓存处理。如果当前缓存列表中缓存的数据帧数量小于预设的第一阈值(阈值范围下限),则等待缓存队列中所有数据帧的平均时间间隔的1.5倍时间再发送,目的是降低发包速率,使得发包速率小于收包速率,保证缓存队列中的数据帧数量可以恢复到阈值范围(第一阈值-第二阈值)内,保证发包均匀和平顺。当前缓存列表中缓存的数据帧数量在阈值范围(第一阈值-第二阈值)内,则停止等待0.5倍所述平均时间间隔,目的也是为了保证发包均匀和平顺。当前缓存列表中缓存的数据帧数量大于预设的第二阈值(阈值范围上限),则不会对发包节奏造成影响,即能保证发包均匀和平顺,可直接发送当前数据帧。

  需要注意的是,上述第一阈值、第二阈值,分别为200和400,其中第一阈值为上述预设数量(预设缓存数据量)的一半,第二阈值的取值为上述预设数量(预设缓存数据量),因此在本发明的其他实施例中,根据预设数量的取值不同,第一阈值和第二阈值的取值也不同。

  优选地,将所述国标视频数据转换为RTP视频数据之前,包括以下步骤:

  判断所述国标视频数据是否为完整视频帧;

  若是,则将所述国标视频数据转换为RTP视频数据。

  在本实施例中,视频流格式转换的具体操作是,将国标视频数据的头部去掉,取出真实的视频数据保存至缓存里,实现视频流格式转换,根据视频数据的时间戳,判断缓存中的视频数据是否为完整的视频帧,若是,则将视频数据转换为RTP视频数据,并将该视频数据从缓存中清楚。

  上述真实的视频数据为H264视频流,判断出H264视频流为完整视频帧,则将H264视频流封装为RTP格式视频流。

  因此,将所述国标视频数据转换为RTP流,包括以下步骤:

  将所述国标视频数据转换为H264数据流;

  将所述H264数据流封装为RTP视频数据。

  需要注意的是,视频流格式的转换采用不同的转换器完成。

  优选地,保存所述RTP视频数据的数据帧至缓存队列,包括以下步骤:

  获取所述RTP视频数据的时间戳,若所述时间戳与上一个获取的时间戳不同,则增加所述缓存队列的数据帧数量,并把所述RTP视频数据的数据帧保存至所述缓存队列。

  当有新的RTP视频数据加入缓存队里时,实时增加缓存队列中数据帧的数量,并把新的TRP视频数据的数据帧加入到缓存队列中。

  进一步地,保存所述RTP视频数据的数据帧至缓存队列,还包括以下步骤:

  实时统计所述缓存队列缓存的数据帧数量;

  实时统计所述缓存队列缓存的数据帧之间的时间间隔;

  实时更新所述时间间隔的累积时长。

  当有新的RTP视频数据加入缓存队里时,实时增加缓存队列中数据帧的数量,统计数据帧之间的时间间隔以及更新所有时间间隔的总累积时长,以供或许平滑处理时使用,若计算平均时间间隔,将数据帧数量除以时间间隔的总累积时长可得到平均时间间隔。

  进一步地,发送所述当前数据帧,包括:

  调用RTP数据分发接口,发送所述当前数据帧。

  实施例2

  实施例2公开了一种对应实施例1的国标视频码流转RTP流的平顺方法对应的装置,如图2所示,包括:

  数据接收模块210,用于接收包含国标视频数据的数据包;

  格式转换模块220,用于将所述国标视频数据转换为RTP视频数据;

  统计模块230,用于统计预设时间段内所述RTP视频数据的数据帧数量,并计算各数据帧之间的时间间隔,保存所述RTP视频数据的数据帧至缓存队列,其中不同RTP视频数据的数据帧保存至不同的缓存队列;

  平滑发送模块240,用于当所述缓存队列缓存的数据帧达到预设数量时,平滑发送所述缓存队列缓存的RTP视频数据,包括:

  从所述缓存队列里获取数据帧作为当前数据帧,并获取所述当前数据帧的时间戳;

  若当前数据帧的时间戳与上一个获取的数据帧的时间戳相同,则按照所述当前数据帧与所述上一个获取的数据帧之间的时间间隔发送所述当前数据帧;

  否则,从所述缓存队列中读取所述当前数据帧,记录所述当前数据帧的时间点,并计算和所述上一个获取的数据帧之间的时间间隔;

  从所述缓存队列中获取所有数据帧的平均时间间隔以及所述缓存队列中的数据帧数量;

  若所述缓存队列缓存的数据帧数量小于预设的第一阈值,停止发送,等待所述平均时间间隔的1.5倍时间,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第一阈值且小于预设的第二阈值,停止发送,等待0.5倍所述平均时间间隔,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第二阈值,则直接发送所述当前数据帧。

  在本发明的其他实施例中,上述平滑发送模块240可包括平滑处理模块和发包模块,分别执行平滑策略和数据帧发送。

  实施例3

  图3为本发明实施例3提供的一种电子设备的结构示意图,如图3所示,该电子设备包括处理器310、存储器320、输入装置330和输出装置340;计算机设备中处理器310的数量可以是一个或多个,图3中以一个处理器310为例;电子设备中的处理器310、存储器320、输入装置330和输出装置340可以通过总线或其他方式连接,图3中以通过总线连接为例。

  存储器320作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的国标视频码流转RTP流的平顺方法对应的程序指令/模块(例如,国标视频码流转RTP流的平顺装置中的数据接收模块210、格式转换模块220、统计模块230、平滑发送模块240)。处理器310通过运行存储在存储器320中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现实施例1的国标视频码流转RTP流的平顺方法。

  存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器320可进一步包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

  输入装置330可用于接收输入数据等。输出装置340用于输出数据,可包括显示屏等。

  实施例4

  本发明实施例4还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于实现国标视频码流转RTP流的平顺方法,该方法包括:

  接收包含国标视频数据的数据包;

  将所述国标视频数据转换为RTP视频数据;

  统计预设时间段内所述RTP视频数据的数据帧数量,并计算所述各数据帧之间的时间间隔,保存所述RTP视频数据的数据帧至缓存队列,其中不同RTP视频数据的数据帧保存至不同的缓存队列;

  当所述缓存队列缓存的数据帧达到预设数量时,平滑发送所述缓存队列缓存的RTP视频数据,包括:

  从所述缓存队列里获取数据帧作为当前数据帧,并获取所述当前数据帧的时间戳;

  若当前数据帧的时间戳与上一个获取的数据帧的时间戳相同,则按照所述当前数据帧与所述上一个获取的数据帧之间的时间间隔发送所述当前数据帧;

  否则,从所述缓存队列中读取所述当前数据帧,记录所述当前数据帧的时间点,并计算和所述上一个获取的数据帧之间的时间间隔;

  从所述缓存队列中获取所有数据帧的平均时间间隔以及所述缓存队列中的数据帧数量;

  若所述缓存队列缓存的数据帧数量小于预设的第一阈值,停止发送,等待所述平均时间间隔的1.5倍时间,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第一阈值且小于预设的第二阈值,停止发送,等待0.5倍所述平均时间间隔,再继续发送所述当前数据帧;

  若所述缓存队列缓存的数据帧数量大于所述第二阈值,则直接发送所述当前数据帧。

  当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的国标视频码流转RTP流的平顺方法中的相关操作。

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

  值得注意的是,上述国标视频码流转RTP流的平顺方法或装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

  对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

《国标视频码流转RTP流的平顺方法、装置、设备及介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)