一种避免网络阻塞及丢帧的视频流转发方法和系统的制作方法

文档序号:9671320阅读:856来源:国知局
一种避免网络阻塞及丢帧的视频流转发方法和系统的制作方法
【技术领域】
[0001]本发明涉及一种视频数据的发送控制方法,特别是涉及一种适用于不同码流格式的避免网络阻塞及丢帧的视频流转发方法和系统。
【背景技术】
[0002]随着经济的发展,科学技术的进步,智能化的安防技术也已进入一个全新的领域。智能化视频监控不仅仅对道路、卡口进行视频监控,现在还对商场、学校、小区、企业进行视频监控,这些技术在日常生活中随处可见。
[0003]如今,随着安防行业的兴起,视频的格式逐步多元化:各个厂商,由于其对视频的处理方式不同,视频的格式也就不同。由此,在进行视频对接时,就会引发很多问题。譬如说,当视频对接,将多元化格式的视频进行转发时,由于网络不同,视频厂商的差异,视频数据打包方式与发送速率也不尽相同。若直接将视频转发出去,就会使网络流量波动加大,导致网络阻塞,视频数据丢失,出现马赛克现象,更严重的甚至导致网络瘫痪。
[0004]目前,对于多元化格式的视频的对接问题,比较常见的解决方法是,将各厂商的视频进行标准化处理,形成统一格式,从而更加快捷方便地实现对接。但是,厂商层出不穷,视频处理方法也越来越多,将各厂商的视频格式统一化并不是一个容易完成的事情。因此如何进行多元化格式的视频有效转发也越来越被人们所重视。

【发明内容】

[0005]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种避免网络阻塞及丢帧的视频流转发方法和系统,用于解决现有技术中视频进行转发时,由于不同码流格式的视频数据打包方式和发送速率不同,易引发网络阻塞和视频数据丢失的问题。
[0006]为实现上述目的及其他相关目的,本发明提供一种避免网络阻塞及丢帧的视频流转发方法,所述视频流转发方法包括:步骤S10,根据视频获取信令启动收流线程,获取视频流,并记录所述视频流的播放句柄;步骤S20,判断所述视频流的码流类型;步骤S30,根据所述码流类型将所述视频流转化为RTP包;并根据播放句柄将对应的RTP包及其相关信息填充至缓冲队列;步骤S40,定时在所述缓冲队列中扫描查找播放句柄:如果有播放句柄,则获取播放句柄对应的RTP包及其相关信息,并进行RTP包的转发;如果没有播放句柄,则等待下一轮播放句柄的扫描查找。
[0007]于本发明的一实施例中,所述视频流转发方法在所述步骤S10前,还包括读取配置文件,进行初始化设置;其中,所述初始化设置包括初始化发包数量、视频流类型、数据库连接和网络连接。
[0008]于本发明的一实施例中,所述步骤S10中,所述视频获取信令包括视频操作指令和视频流转发的SOCKET信息,其中,SOCKET信息包括目标地址和端口。
[0009]于本发明的一实施例中,所述码流类型包括:H264码流、MPEG4码流和PS码流。
[0010]于本发明的一实施例中,所述步骤S30的根据所述码流类型将所述视频流转化为RTP包,包括:如果所述码流类型为H264码流和MPEG4码流时,则将所述视频流封装为PS码流,再将封装为PS码流的所述视频流转化为RTP包;如果所述码流类型为PS码流,则直接将PS码流的所述视频流直接转化为RTP包。
[0011]于本发明的一实施例中,所述相关信息包括SOCKET信息、RTP包的数量和填充至缓冲队列的时间。
[0012]于本发明的一实施例中,在所述步骤S30的将RTP包及其相关信息填充至缓冲队列时,如果超过了所述缓冲队列的最大值时,则记录日志,并丢弃填充的所述视频流。
[0013]于本发明的一实施例中,所述步骤S40中,RTP包的转发是依据于初始化的发包数量及其相关信息中的目的地址的。
[0014]本发明还公开了一种避免网络阻塞及丢帧的视频流转发系统,包括初始化模块、视频流获取模块、判断模块、转化填充模块、定时查找模块和转发模块;所述初始化模块用于进行初始化设置所述视频流的转发系统;所述视频流获取模块用于根据视频获取信令启动收流线程,获取视频流,并获取所述视频流的播放句柄;所述判断模块用于判断所述视频流的码流类型;其中,所述码流类型包括H264码流、MPEG4码流和PS码流;所述转化填充模块用于根据码流类型将所述视频流转化为RTP包,并根据播放句柄将对应的RTP包及其相关信息填充至缓冲队列;所述定时查找模块用于在所述缓冲队列中定时扫描查找播放句柄;所述转发模块用于根据所述定时查找模块的查找结果进行相应的RTP包的转发。
[0015]于本发明的一实施例中,所述转化填充模块是按照如下进行RTP包的转化的:如果所述码流类型为H264码流和MPEG4码流时,则将所述视频流封装为PS码流,再转化为RTP包;如果所述码流类型为PS码流,则直接转化为RTP包。
[0016]如上所述,本发明的一种避免网络阻塞及丢帧的视频流转发方法和系统,,在网络之间进行视频数据共享时,有效的控制了视频流的转发速率,使得网络传输趋于平稳,降低了网络流量波动大,解决了现有的网络阻塞现象以及引起视频数据丢失的问题,控制了发包速率,使网络传输趋于平稳,保证视频流畅。
【附图说明】
[0017]图1显示为本发明实施例公开的一种避免网络阻塞及丢帧的视频流转发方法的流程示意图。
[0018]图2显示为本发明实施例公开的一种避免网络阻塞及丢帧的视频流转发方法中封装RTP包的流程示意图。
[0019]图3显示为本发明实施例公开的一种避免网络阻塞及丢帧的视频流转发方法中填充缓冲队列的流程示意图。
[0020]图4显示为本发明实施例公开的一种避免网络阻塞及丢帧的视频流转发方法中缓冲队列的数据结构的示意图。
[0021]图5显示为本发明实施例公开的一种避免网络阻塞及丢帧的视频流转发方法中步骤S40的流程示意图。
[0022]图6显示为本发明实施例公开的一种避免网络阻塞及丢帧的视频流转发系统的结构示意图。
[0023]元件标号说明
[0024]S10 ?S40步骤
[0025]S41 ?S45步骤
[0026]610初始化模块
[0027]620视频流获取模块
[0028]630判断模块
[0029]640转化填充模块
[0030]650定时查找模块
[0031]660转发模块
【具体实施方式】
[0032]以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的【具体实施方式】加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0033]请参阅附图,需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
[0034]实施例1
[0035]本实施例公开了一种避免网络阻塞及丢帧的视频流转发方法,采用本实施例的转发方法是为了有效控制视频流的转发速率,保持网络中视频流的平稳传输,避免网络拥塞和丢包。
[0036]在执行本实施例的视频流转发方法之前,需读取配置文件,进行初始化设置,创建并启动命令处理线程:
[0037]读取配置文件,进行初始化设置包括但不限于:初始化发包数量、视频流类型、数据库连接和网络连接等。其中,发包数量也可以在程序运行时根据当前网络环境再次初始化。数据库连接信息包括但不限于数据库服务器的IP地址、端口、登录用户名和密码。网络连接信息包括但不限于监听IP地址和端口等等。
[0038]创建并启动命令处理线程:该线程启动后,监听指定端口,接收控制信令。其中,控制信令包括但不限于打开实时视频、关闭实时视频、打开历史视频和关闭历史视频等操作。
[0039]如图1所示,本实施例的视频流转发方法包括:
[0040]步骤S10,根据视频获取信令启动收流线程,获取视频流,并记录所述视频流的播放句柄:
[0041]解析视频获取信令,其中,所述视频获取信令中包括但不限与以下信息:视频操作指令和SOCKET信息。其中,SOCKET信息包括视频流需转发的目的地址和端口。
[0042]到视频获取信令后,记录视频流需要转发的目标地址和端口,即SOCKET信息;创建并启动收流线程,通过调用厂商提供的回调函数或下级平台接口获取视频流;记录获取的视频流的播放句柄。其中,所述播放句柄是用于标识视频流的。打开视频后,会产生一个播放句柄,之后的信令停止或其他操作执行时会用到。
[0043]步骤S20,判断所述视频流的码流类型:
[0044]在本实施例中,获取的视频流的码流类型包括但不限于:H264码流、MPEG4码流和PS码流。
[0045]步骤S30,根据所述码流类型将所述视频流转化为RTP (Real-time TransportProtocol,实时传输协议)包;并根据播放句柄将对应的RTP包及其相关信息填充至缓冲队列:
[0046]其中,由视频流转化的RPT包的数量为一个或多个。
[0047]如图2所示,RTP包是视频流根据其码流类型进行转化的:
[0048]当步骤S20判断出所述视频流的码流类型为PS码流时,则直接设置RTP包头,并将码流类型为PS码流的视频流转化为RTP包;
[0049]当步骤S20判断出所述视频流的码流类型为H264码流和MPEG4码流时,则对码流类型为H264码流和MPEG4码流的视频流进行封装,将其封装为PS码流,再设置RTP包头,并将码流类型为PS码流的视频流转化为RTP包。
[0050]根据播放句柄将RTP包及其相关信息填充至缓冲队列,如图3所示,包括:
[0051]查找播放句柄:
[0052]如果未找到播放句柄,则结束该视频流的获取;
[0053]如果找到播放句柄,则将RTP包及其相关信息填充至缓冲队列。
[0054]其中,相关信息包括但不限于SOCKET信息、RTP包的数量和填充至缓冲
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1