专利名称:一种低带宽的视频数据传输方法和硬盘录像机的制作方法
技术领域:
本发明涉及数据传输领域,特别是涉及一种低带宽的视频数据传输方法和硬盘录 像机。
背景技术:
现有的安防监控系统,一般包括DVR(Digital Video Recorder,数字硬盘录像机) 和监控客户端。其中,DVR是一套能够进行图像数据、声音数据存储处理的计算机系统,具 有长时间录像、录音的功能;监控客户端能够远程控制DVR,并通过DVR实现远程监视。在DVR实时监控并将监控得到的视频数据传回给监控客户端进行预览时,通常 采用RTP(Real-time Transport Protocol,实时传输协议)对视频数据进行封装,然后 使用 TCP (Transmission Control Protocol,传输控制协议)或者 UDP (User Datagram Protocol,用户数据报协议)进行传输,所述视频数据包括图像数据和/或声音数据等。使用TCP传输能够保证视频数据传输的可靠性,但是TCP的拥塞控制机制不能有 效利用可用带宽,在网络带宽较低的时候就不适合。虽然使用UDP传输减少了网络开销,能够适应低带宽,但由于UDP传输本身的不可 靠性,使得监控客户端获得视频数据无法得到保障,影响预览效果。
发明内容
本发明的目的是提供一种低带宽的视频数据传输方法和硬盘录像机,以提高在低 带宽网络中视频数据传输的可靠性。本发明提供了一种低带宽的视频数据传输方法,所述方法包括通过UDP向监控客户端发送实时传输协议RTP包,并缓存所述RTP包及所述RTP 包的标识,所述RTP包中封装有视频数据;若在所述RTP包发送后,超过预设时间没有收到监控客户端返回的携带有所述 RTP包标识的实时传输控制协议RTCP包,则重发缓存的所述RTP包。本发明还提供了一种低带宽的硬盘录像机,包括缓存模块,用于缓存发送的实时传输协议RTP包和所述RTP包的标识,所述RTP包 中封装有视频数据;发送模块,用于通过UDP向监控客户端发送所述RTP包,以及在所述RTP包发送 后超过预设时间没有收到监控客户端返回的携带有所述RTP包标识的实时传输控制协议 RTCP包时,重发缓存模块缓存的所述RTP包。本发明的低带宽的视频数据传输方法和硬盘录像机,在采用UDP传输视频数据的 基础上,通过应用层能否收到携带有RTP包标识的RTCP包对监控客户端接收所述RTP包是 否成功进行确认,若超时未接到确认信息则对所述RTP包进行重发,提高了在低带宽网络 中视频数据传输的可靠性。
图1是本发明的低带宽的视频数据传输方法的第一实施例的流程示意图;图2是本发明的低带宽的视频数据传输方法的第二实施例的流程示意图;图3是本发明的低带宽的视频数据传输方法的第三实施例的流程示意图;图4是步骤S304的流程示意图;图5是本发明的硬盘录像机的结构示意图。
具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明实施例作进一步详细的说明。实施例一本实施例提供了一种低带宽的视频数据传输方法,如图1所示,包括如下步骤SlOl,通过UDP向监控客户端发送RTP包,并缓存所述RTP包及所述RTP包的标识, 所述RTP包中封装有视频数据。所述视频数据包括图像数据和/或声音数据等。DVR向监控客户端发送RTP包, DVR的服务器也会缓存所述RTP包及所述RTP包的标识,RTP包及所述RTP包标识在服务器 中可以以链表的形式缓存。DVR发送RTP包和服务器缓存所述RTP包及所述RTP包的标识 可以同时进行,也可以先后进行。服务器以RTP包发送的时间点作为起点对缓存的所述RTP 包及所述RTP包标识记录进行计时。RTP包标识携带在RTP包中,服务器可以将RTP包以及RTP包解包后的内容(其 中包括RTP包标识)缓存在链表的一个条目中,根据RTP包标识可以唯一确定RTP包。RTP 包标识可以为包括数字、字母和/或符号等的序列。RTP包标识优选为包序,包序以16位二 进制数(0 65535)进行标识,可以循环使用,对于实时传输,不会出现服务器的缓存空间 中包序重复的情况。所述服务器可以与DVR集成一体,也可以与DVR外置连接,本发明对此 不做限定。S102,若在所述RTP包发送后,超过预设时间没有收到监控客户端返回的携带有 所述RTP包标识的RTCP (RTP Control Protocol,实时传输控制协议)包,则重发缓存的所 述RTP包。监控客户端在接收到RTP包后,会向服务器返回一个携带有所述RTP包的标识的 RTCP包,用于告知DVR已经成功接收所述RTP包。若DVR在某一 RTP包发送后超过预设时 间没有收到携带有所述RTP包标识的RTCP包,则认为该RTP包超时,对缓存的RTP包进行重发。当缓存空间足够大,可以对所有RTP包和RTP包标识进行缓存,并对在预设时间内 接收到RTP包标识的缓存RTP包的记录做一个标记,以与尚未收到RTP包标识的记录进行 区分。通常,考虑到视频数据传输的实时性特点和网络带宽的实际情况,服务器上分配的缓 存空间有限,因此优选的,还包括若在所述RTP包发送后的预设时间内,收到监控客户端 返回的携带有所述RTP包标识的RTCP包,则删除缓存的所述RTP包标识及其对应的RTP包。当确认缓存的某个RTP包已被监控客户端成功接收后,就可以删除该缓存的RTP 包及所述RTP包的标识,释放所述RTP包占用的缓存空间。
则如图2所示,所述低带宽的视频数据传输方法包括如下步骤S201,通过UDP向监控客户端发送RTP包,并缓存所述RTP包及所述RTP包的标识, 所述RTP包中封装有视频数据;S202,判断是否收到监控客户端返回的携带有所述RTP包标识的RTCP包;若在所述RTP包发送后超过预设时间没有收到所述RTCP包,则执行S203 重发缓 存的所述RTP包;若在所述RTP包发送后预设时间内收到所述RTCP包,则执行步骤S204 删除缓存的所述RTP包标识及其对应的RTP包。优选的,携带有RTP 包标识的 RTCP 包为 APP (Application Specific Functions, 特殊应用功能)包。APP包原先是应用程序自定义使用的,本发明中将其作为确认接收RTP 成功的交互消息使用。当然,也可以在监控客户端返回DVR的RTCP包中新定义一种交互消息,其可以携 带监控客户端接收到的RTP包的标识,但是需要对传输协议做一些调整。由于TCP的拥塞控制机制不能有效利用可用带宽,对于低带宽传输视频数据并不 适用。而本实施例充分利用了 UDP网络开销小的特点,通过应用层能否收到携带RTP包标 识的RTCP包对监控客户端接收所述RTP包是否成功进行确认,RTCP包大小约几十个字节, 对低带宽网络的开销很小,因此,在低带宽网络中可以保证视频数据传输的可靠性,并有效 利用可用带宽。本实施例的低带宽的视频数据传输方法,在采用UDP传输视频数据的基础上,通 过应用层能否收到携带有RTP包标识的RTCP包对监控客户端接收所述RTP包是否成功进 行确认,若超时未接到确认信息则对所述RTP包进行重发,提高了在低带宽网络中视频数 据传输的可靠性。而且,携带RTP包包序的RTCP包大小约几十个字节,相比于TCP繁琐的 确认交互消息,对低带宽网络的开销很小。实施例二本实施例提供了一种低带宽的视频数据传输方法,如图3所示,包括如下步骤S301,通过UDP向监控客户端发送RTP包,并缓存所述RTP包及所述RTP包的标识, 所述RTP包中封装有视频数据;S302,若在所述RTP包发送后,超过预设时间没有收到监控客户端返回的携带有 所述RTP包标识的实时传输控制协议RTCP包,则重发缓存的所述RTP包;S303,若在所述RTP包发送后的预设时间内,收到监控客户端返回的携带有所述 RTP包标识的RTCP包,则删除缓存的所述RTP包标识及其对应的RTP包。S304,根据网络带宽调整视频数据的传输码率。由于网络带宽是通过丢包、网络延时等现象反映出来,因此,如图4所示,步骤 S304可以包括S3041 当出现丢包时,则进入S3043 降低传输码率。所谓丢包,指的是服务器上缓存的RTP包达到满负荷,当后续发送的RTP包也要被 缓存到服务器中时,即使前面的RTP包还未接收到确认的RTCP包而删除,但由于缓存空间 已满,服务器会将排在前面的RTP包丢掉,将后面的RTP包放入缓存空间。出现丢包,则意味着网络带宽不适应当前DVR的传输码率,需要降低传输码率,减 小网络负担。
6
当未出现丢包时,S3042,统计所述预设个数的RTP包的网络延时的整体变化趋 势,并获取网络延时平均值;所述预设个数可以为100、200或其他数目,用户可以自行设定。若所述预设个数的RTP包的网络延时发生波动且整体趋势为增大、或网络延时平 均值大于预设上限值,则S3043 降低传输码率;若所述预设个数的RTP包的网络延时发生波动且整体趋势为减小、或网络延时平 均值小于预设下限值,则S3044 提高传输码率。其中,降低传输码率的策略可以有两种一是降到尽可能低,即降到能满足视频预 览的最小值;二是根据延时加权,确定传输码率的降低幅度。提高传输码率,可以是根据延 时加权,确定传输码率的提升幅度,按照提升幅度逐渐增加,遵循快降慢升的原则,保障网 络的畅通。上述统计预设个数的RTP包的网络延时的整体变化趋势,以预设个数的RTP包中 的某个RTP包A为例,具体操作过程可以如下获取RTP包A之前的连续100个RTP包的平均延时ave_delay_A,有超时重发的 RTP包不参与统计,因此平均延时ave_delay_A是小于等于100个RTP包的平均延时。RTP 包A之前的连续100个RTP包的延时可以采用包含100个数据项的delay数组来记录。将平均延时aVe_delay_A分别与第一权重因子Fl和第二权重因子F2相乘得到 两个乘积 Prol_A = FlXave_delay_A 和 Pro2_A = F2 X ave_delay_A,其中,第一权重因子 Fl大于第二权重因子F2,由此,Prol_A和Pro2_A将判断数值区间分为三段(0,Pro2_A)、 [Pro2_A,Prol_A]和(Prol_A,+①)。之后,判断RTP包A的网络延时cur_delay_A属于上 述三个区间的哪个区间段。对于预设个数RTP包中的其他RTP包,可以参照上面的流程进行类推处理,最终统 计出预设个数的RTP包的网络延时的整体变化趋势。a、若其中RTP包的cur_delay大于Prol的次数超过设定阈值,则判定预设个数的 RTP包的网络延时发生波动且整体趋势为增大;b、若RTP包的cur_delay小于Pro2的次数超过所述设定阈值,则判定预设个数的 RTP包的网络延时发生波动且整体趋势为减小;C、其他情况,判定预设个数的RTP包的网络延时比较平稳。对于C,进一步包括如下步骤Cl,更新delay数据并计算网络延时平均值;更新delay数据,即将步骤S3042中的所述RTP包加入存有其前面100个RTP包 的delay数组,将最前面的延时数据移出delay数组。所述网络延时平均值是根据更新后 的delay数据计算得出。c2,若网络延时平均值大于预设上限值;则降低传输码率;c3,若网络延时平均值小于预设下限值,则提高传输码率;c4,若网络延时平均值小于等于预设上限值且大于等于预设下限值,不调整码率。通过DVR实时检测网络带宽,调整传输码率,能够合理的利用网络带宽,保证监控 客户端预览视频的图像声音质量。本实施例的低带宽的视频数据传输方法,在采用UDP传输视频数据的基础上,通过应用层能否收到携带有RTP包标识的RTCP包对监控客户端接收所述RTP包是否成功进 行确认,若超时未接到确认信息则对所述RTP包进行重发,提高了在低带宽网络中视频数 据传输的可靠性。而且,携带RTP包标识的RTCP包对低带宽网络的开销很小。通过实时检 测网络带宽,调整传输码率,能够合理的利用网络带宽,保证监控客户端预览视频的图像声
音质量。实施例三本实施例提供了一种低带宽的硬盘录像机,如图5所示,所述硬盘录像机包括缓 存模块10和发送模块20。缓存模块10用于缓存发送的RTP包和所述RTP包的标识,所述RTP包中封装有视 频数据;发送模块20用于通过UDP向监控客户端发送所述RTP包,以及在所述RTP包发送 后超过预设时间没有收到监控客户端返回的携带有所述RTP包标识的RTCP包时,重发缓存 模块缓存的所述RTP包。所述硬盘录像机还可以包括删除模块30,用于当所述RTP包发送后的预设时间 内,收到监控客户端返回的携带有所述RTP包标识的RTCP包时,删除缓存的所述RTP包标 识及其对应的RTP包。优选的,所述硬盘录像机还包括码率调整模块40,用于根据网络带宽调整视频数 据的传输码率。所述码率调整模块40具体包括调整单元,用于当出现丢包时,降低传输码率。进一步的,所述硬盘录像机还可以包括统计模块50,用于当未出现丢包时,统计预设个数的RTP包的网络延时的整体变 化趋势;获取模块60,用于获取网络延时平均值;则所述调整单元还可以用于当所述预设个数的RTP包的网络延时发生波动且整体趋势为增大、或网络延时平 均值大于预设上限值时,降低传输码率;当所述预设个数的RTP包的网络延时发生波动且整体趋势为减小、或网络延时平 均值小于预设下限值时,提高传输码率。本实施例的硬盘录像机,在采用UDP传输视频数据的基础上,通过应用层能否收 到携带有RTP包标识的RTCP包对监控客户端接收所述RTP包是否成功进行确认,若超时未 接到确认信息则对所述RTP包进行重发,提高了在低带宽网络中视频数据传输的可靠性。 而且,携带RTP包标识的RTCP包对低带宽网络的开销很小。通过实时检测网络带宽,调整 传输码率,能够合理的利用网络带宽,保证监控客户端预览视频的图像声音质量。由于硬盘录像机的实施例与方法实施例的相似内容较多,因此描述的比较简略, 相关之处请参见方法实施例部分。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存 在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备
所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在 本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围 内。
权利要求
一种低带宽的视频数据传输方法,其特征在于,所述方法包括通过UDP向监控客户端发送实时传输协议RTP包,并缓存所述RTP包及所述RTP包的标识,所述RTP包中封装有视频数据;若在所述RTP包发送后,超过预设时间没有收到监控客户端返回的携带有所述RTP包标识的实时传输控制协议RTCP包,则重发缓存的所述RTP包。
2.如权利要求1所述的方法,其特征在于,还包括若在所述RTP包发送后的预设时间内,收到监控客户端返回的携带有所述RTP包标识 的RTCP包,则删除缓存的所述RTP包标识及其对应的RTP包。
3.如权利要求1或2所述的方法,其特征在于,还包括根据网络带宽调整视频数据的 传输码率。
4.如权利要求3所述的方法,其特征在于,所述根据网络带宽调整视频数据的传输码 率包括当出现丢包时,降低传输码率。
5.如权利要求4所述的方法,其特征在于,所述根据网络带宽调整视频数据的传输码 率还包括当未出现丢包时,统计预设个数的RTP包的网络延时的整体变化趋势,并获取网络延 时平均值;若所述预设个数的RTP包的网络延时发生波动且整体趋势为增大、或网络延时平均值 大于预设上限值,则降低传输码率;若所述预设个数的RTP包的网络延时发生波动且整体趋势为减小、或网络延时平均值 小于预设下限值,则提高传输码率。
6.如权利要求1或2所述的方法,其特征在于,所述RTCP包为特殊应用功能APP包。
7.一种低带宽的硬盘录像机,其特征在于,包括缓存模块,用于缓存发送的实时传输协议RTP包和所述RTP包的标识,所述RTP包中封 装有视频数据;发送模块,用于通过UDP向监控客户端发送所述RTP包,以及在所述RTP包发送后超过 预设时间没有收到监控客户端返回的携带有所述RTP包标识的实时传输控制协议RTCP包 时,重发缓存模块缓存的所述RTP包。
8.如权利要求7所述的硬盘录像机,其特征在于,还包括删除模块,用于当所述RTP包 发送后的预设时间内,收到监控客户端返回的携带有所述RTP包标识的RTCP包时,删除缓 存的所述RTP包标识及其对应的RTP包。
9.如权利要求7或8所述的硬盘录像机,其特征在于,还包括码率调整模块,用于根据 网络带宽调整视频数据的传输码率。
10.如权利要求9所述的硬盘录像机,其特征在于,所述码率调整模块包括调整单元, 用于当出现丢包时,降低传输码率。
11.如权利要求10所述的硬盘录像机,其特征在于,所述硬盘录像机还包括统计模块,用于当未出现丢包时,统计预设个数的RTP包的网络延时的整体变化趋势;获取模块,用于获取网络延时平均值;则所述调整单元还用于当所述预设个数的RTP包的网络延时发生波动且整体趋势为增大、或网络延时平均值大于预设上限值时,降低传输码率; 当所述预设个数的RTP包的网络延时发生波动且整体趋势为减小、或网络延时平均值 小于预设下限值时,提高传输码率。
全文摘要
本发明公开了一种低带宽的视频数据传输方法和硬盘录像机,其中,所述方法包括通过UDP向监控客户端发送实时传输协议RTP包,并缓存所述RTP包及所述RTP包的标识,所述RTP包中封装有视频数据;若在所述RTP包发送后,超过预设时间没有收到监控客户端返回的携带有所述RTP包标识的实时传输控制协议RTCP包,则重发缓存的所述RTP包。在采用UDP传输视频数据的基础上,通过应用层能否收到携带有RTP包标识的RTCP包对监控客户端接收所述RTP包是否成功进行确认,若超时未接到确认信息则对所述RTP包进行重发,提高了在低带宽网络中视频数据传输的可靠性。
文档编号H04N7/24GK101888544SQ20101021603
公开日2010年11月17日 申请日期2010年6月30日 优先权日2010年6月30日
发明者孙承华, 孟忠伟, 胡扬忠, 邬伟琪, 陈军科 申请人:杭州海康威视数字技术股份有限公司