码流传输方法、装置及网络摄像头与流程

文档序号:23625994发布日期:2021-01-12 10:38阅读:261来源:国知局
码流传输方法、装置及网络摄像头与流程

本发明涉及视频监控技术领域,特别涉及一种码流传输方法、装置及网络摄像头(英文:ipcamera;简称:ipc)。



背景技术:

视频监控系统是安保系统中重要组成部分,能够实现对多个区域的实时监控。视频监控系统中通常包含多台ipc以及通过互联网协议(英文:internetprotocol;简称:ip)网络与ipc相连的监控平台。

ipc负责采集视频数据,并对采集到的视频数据进行编码得到视频流数据包,最终通过ip网络将视频流数据包传输至监控平台。监控平台对接收到的视频流数据包进行解码得到视频数据,并进一步对视频数据进行解析播放,从而实现监控平台侧的实时监控。同时,监控平台还负责管理ipc,并对视频流解码得到的视频数据进行存储,方便后续调取查看。

当ip网络出现网络波动或带宽不足时,视频流在传输过程中会出现丢包,导致监控平台侧播放的画面出现花屏或马赛克现象,影响视频监控的质量。



技术实现要素:

为了解决当ip网络出现网络波动或带宽不足时,视频流在传输过程中会出现丢包,导致监控平台侧播放的画面出现花屏或马赛克现象,影响视频监控的质量的问题,本发明实施例提供了一种码流传输方法、装置及网络摄像头。所述技术方案如下:

第一方面,提供了一种码流传输方法,该方法包括:

向监控平台传输实时传输协议(英文:real-timetransportprotocol;简称:rtp)码流;

接收所述监控平台发送的第一实时传输控制协议(英文:real-timetransportcontrolprotocol;简称:rtcp)反馈,所述rtcp反馈用于指示所述rtp码流的传输质量;

根据所述第一rtcp反馈调整所述rtp码流的冗余率和视频码率,所述冗余率用于指示所述rtp码流中冗余数据包所占的比例,所述冗余数据包根据所述rtp码流中的视频流数据包生成,所述视频码率用于指示单位时间内传输的所述视频流数据包的数据量。

视频监控系统中的ipc在向监控平台传输rtp码流的同时,根据监控平台反馈的rtp码流的传输质量,实时调整后续rtp码流中的视频流数据包和冗余数据包,使得在ip网络出现网络波动时,监控平台能够根据rtp码流中的冗余数据包恢复丢失的视频流数据包,避免因传输丢包出现视频花屏或马赛克现象,保证了视频监控系统的视频监控质量。

结合第一方面,在第一方面的第一种可能的实施方式中,所述根据所述rtcp反馈调整所述rtp码流的冗余率和视频码率,包括:

若所述第一rtcp反馈指示存在通过所述冗余数据包恢复的视频流数据包,则提高所述冗余率并降低所述视频码率;或者,

若所述第一rtcp反馈指示不存在通过所述冗余数据包恢复的视频流数据包,则降低所述冗余率并提高所述视频码率。

当rtcp反馈指示监控平台中存在根据冗余数据包恢复的视频数据包时,表明在当前ip网络状况下存在丢包,为了保证视频监控的效果,ipc即增加rtp码流中包含的冗余数据包并减少rtp码流中包含的视频流数据包,从而增强rtp码流的抗丢包能力;相似的,当rtcp反馈指示监控平台中不存在根据冗余数据包恢复的视频数据包时,表明在当前ip网络状况下不存在丢包,ipc即提高rtp码流的视频码率,从而提高视频监控的效果。

结合第一方面或第一方面的第一种可能的实施方式,在第一方面的第二种可能的实施方式中,所述ipc预设有至少两级抗丢包等级,所述抗丢包等级与所述rtp码流的抗丢包能力呈正比,且所述抗丢包等级与所述冗余率呈正比。

ipc中预先设置多级抗丢包等级,ipc只需要调节rtp码流中冗余数据包的抗丢包等级即可实现对rtp码流的冗余率的调节,提高了ipc调节rtp码流的效率。

结合第一方面的第二种可能的实施方式,在第一方面的第三种可能的实施方式中,所述若所述第一rtcp反馈指示存在通过所述冗余数据包恢复的视频流数据包,则提高所述冗余率并降低所述视频码率,包括:

若所述第一rtcp反馈指示存在通过所述冗余数据包恢复的视频流数据包且当前抗丢包等级不是最高等级,则将所述抗丢包等级提高预定等级并降低所述视频码率;

若所述第一rtcp反馈指示存在通过所述冗余数据包恢复视频流数据包且当前抗丢包等级是最高等级,则保持当前抗丢包等级和当前视频码率。

在当前抗丢包等级不是最高等级时,ipc进一步提高后续rtp码流的冗余率并降低其视频码率,使得监控平台能够根据rtp码流中冗余数据包进行视频流数据包的恢复,保证了在ip网络波动的情况下视频监控的效果;在当前抗丢包等级达到最高等级时,ipc保持rtp码流的最高抗丢包等级,避免因丢包引起的画面花屏现象。

结合第一方面的第二种可能的实施方式,在第一方面的第四种可能的实施方式中,所述若所述第一rtcp反馈指示不存在通过所述冗余数据包恢复的视频流数据包,则降低所述冗余率并提高所述视频码率,包括:

若所述第一rtcp反馈指示不存在通过所述冗余数据包恢复的视频流数据包且所述rtp码流中包含所述冗余数据包,则将所述抗丢包等级降低预定等级并提高所述视频码率;

若所述第一rtcp反馈指示不存在通过所述冗余数据包恢复的视频流数据包且所述rtp码流中不包含所述冗余数据包,则保持当前视频码率。

当rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包,且当前抗丢包等级不是最高级时,ipc降低后续rtp码流的抗丢高等级,从而提高rtp码流的视频码率,进一步提高ip网络稳定状态下监控视频的质量。

结合第一方面的第二种可能的实施方式、第一方面的第三种可能的实施方式或第一方面的第四种可能的实施,在第一方面的第五种可能的实施方式中,所述根据所述rtcp反馈调整所述rtp码流的冗余率和视频码率之后,所述方法还包括:

若在预定时长内,所述rtp码流的所述视频码率小于预定码率阈值且所述rtp码流中不包含所述冗余数据包,则将所述rtp码流的带宽上调预设带宽数值;

在上调带宽后的rtp码流中加入最高抗丢包等级的所述冗余数据包,并降低所述视频码率。

当rtp码流中仅包含视频流数据包,且rtp码流的视频码率长时间低于预定码率时,表明ip网络带宽未得到充分利用。为了进一步提升视频监控的效果,ipc提高rtp码流的带宽,并向增加带宽后的rtp码流中加入最高抗丢包等级的冗余数据包,在提高ip网络带宽使用率的同时,保证了rtp码流的抗丢包能力。

结合第一方面的第二种可能的实施方式、第一方面的第三种可能的实施方式或第一方面的第四种可能的实施,在第一方面的第六种可能的实施方式中,所述rtp码流中仅包含所述视频流数据包,且所述rtcp反馈指示传输过程中发生丢包,

所述接收所述监控平台发送的实时传输控制协议第一rtcp反馈之后,所述方法还包括:

将所述rtp码流的带宽下调预定比例;

向所述监控平台传输下调带宽后的rtp码流并接收所述监控平台后续发送的第二rtcp反馈。

当ipc传输的rtp码流中仅包含视频流数据包且rtcp反馈指示rtp码流在传输过程中发生丢包时,由于监控平台无法进行视频流数据包的恢复,因此ipc降低后续rtp码流的带宽,避免rtp码流在传输过程中发生丢包。

结合第一方面的第六种可能的实施方式,在第一方面的第七种可能的实施方式中,所述向所述监控平台传输下调带宽后的rtp码流并接收所述监控平台后续发送的第二rtcp反馈之后,所述方法还包括:

若所述第二rtcp反馈指示传输过程中未发生丢包,则在所述rtp码流中加入最高抗丢包等级的所述冗余数据包;

接收所述监控平台后续发送的第三rtcp反馈;

若所述第三rtcp反馈指示传输时延未增加,则执行根据所述第三rtcp反馈调整所述rtp码流的冗余率和视频码率的步骤。

当rtp码流中包含冗余数据包时,ipc根据监控平台反馈的传输时延确定rtp码流的带宽是否适当,当传输时延未增加时,确定rtp码流的带宽适当,并对rtp码流的冗余率和视频码率进行调节;当传输时延增加时,表明网络中出现拥塞,ipc即降低rtp码流的带宽,避免网络拥塞对rtp码流传输所造成的影响。

结合第一方面、第一方面的第一种可能的实施方式、第一方面的第二种可能的实施方式、第一方面的第三种可能的实施方式、第一方面的第四种可能的实施方式、第一方面的第五种可能的实施方式、第一方面的第六种可能的实施方式或第一方面的第七种可能的实施方式,在第一方面的第八种可能的实施方式中,所述冗余数据包使用保留协议类型进行标识,所述保留协议类型指h.264协议和h.265协议未使用的协议类型。

由于ipc传输的rtp码流中可能包含冗余数据包,当监控平台未配置冗余数据包识别和恢复能力时,会导致视频解码异常。为了提高ipc与不同监控平台之间的兼容性,ipc使用保留协议类型对rtp码流中的冗余数据包进行标识,当未配置冗余数据包识别和恢复能力的监控平台接收到包含冗余数据包的rtp码流时,即根据h.264协议或h.265协议直接对冗余数据包进行丢弃,保证后续正常视频解码。

第二方面,提供了一种码流传输装置,所述装置包括至少一个单元,该至少一个单元用于实现上述第一方面或第一方面的可能的实施方式中所提供的码流传输方法。

第三方面,提供了一种ipc,所述ipc包括:处理器、分别与所述处理器相连的存储器和网络接口,其中,所述存储器用于存储一个或者一个以上的指令,所述指令被配置成由所述处理器执行;所述处理器通过执行所述存储器中的指令来实现第一方面或第一方面的可能的实施方式中所提供的码流传输方法。

附图说明

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

图1示出了本发明实施例提供的实施环境的示意图;

图2示出了本发明一个示例性实施例提供的码流传输方法的方法流程图;

图3a示出了本发明另一个示例性实施例提供的码流传输方法的方法流程图;

图3b示出了本发明再一个示例性实施例提供的码流传输方法的方法流程图;

图4示出了本发明一个示例性实施例提供的码流传输装置的框图;

图5示出了本发明另一个示例性实施例提供的码流传输装置的框图;

图6示出了本发明实施例提供的ipc600的结构示意图。

具体实施方式

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

请参考图1,其示出了本发明实施例提供的实施环境的示意图。该实施环境中包括至少一个ipc110以及监控平台120。

ipc110是具有摄像以及网络传输功能的电子设备。ipc110通过摄像组件采集视频数据,并将采集到的视频数据进行编码后发送至监控平台120。通常情况下,ipc110对视频数据进行编码后,还需要对编码后的视频数据进行rtp分片和打包,并最终以数据包的形式向监控平台120传输视频数据。本发明各个实施例提供的码流传输方法即应用于ipc110中。

ipc110与监控平台通过有线或无线网络与监控平台120相连。

监控平台120可以是一台服务器或由多台服务器组成的服务器集群。监控平台120通过与各个ipc110之间的网络接收ipc110传输的数据包,并对接收到的数据包进行rtp组包和视频解码,从而得到相应的视频数据。为了方便进行实时监控,监控平台120中还可以包含监控设备(比如显示器),经过视频解码的视频数据即通过监控设备进行显示。

由于网络波动等原因,ipc110向监控平台120传输视频数据包时会出现带宽不足的现象,导致视频数据包在传输过程中出现丢包的现象,最终表现为监控平台120处显示的画面出现花屏或马赛克,严重影响视频监控的效果。

请参考图2,其示出了本发明一个示例性实施例提供的码流传输方法的方法流程图。本实施例以该码流传输方法应用在图1中的ipc110为例进行说明,该方法包括:

步骤201,向监控平台传输rtp码流。

该视频流数据包根据ipc采集的视频数据生成。并且,为了提高rtp码流的抗丢包能力,在包含视频流数据包的同时,该rtp码流中还可以包含根据视频流数据包生成的冗余数据包。

步骤202,接收监控平台发送的第一rtcp反馈,第一rtcp反馈用于指示rtp码流的传输质量。

其中,该第一rtcp反馈可以指示rtp码流在传输中是否发生丢包,也可以指示rtp码流的传输时延是否增加,还可以指示监控平台是否根据rtp码流中的冗余数据包恢复视频流数据包。

比如,当向监控平台传输的rtp码流中仅包含视频流数据包时,该第一rtcp反馈可以指示rtp码流(即视频流数据包)在传输中是否发生丢包;当向监控平台传输的rtp码流中既包含视频流数据包,又包含根据视频流数据包生成的冗余数据包时,该第一rtcp反馈可以指示rtp码流的传输时延是否增加,还可以指示监控平台是否根据rtp码流中的冗余数据包恢复视频流数据包。

步骤203,根据第一rtcp反馈调整rtp码流的冗余率和视频码率,冗余率用于指示冗余数据包在rtp码流中所占的比例,冗余数据包根据视频流数据包生成并用于恢复传输过程中丢失的视频流数据包,视频码率用于指示单位时间内传输的视频流数据包的数据量。

需要说明的是,下述各个实施例中,调整rtp码流的冗余率和视频码率均可以在保持rtp码流占用带宽不变的前提下进行。

当第一rtcp反馈指示rtp码流的传输质量较差时,表示当前的网络带宽无法满足rtp码流的正常传输,为了保证视频监控的质量,在保持rtp码流占用带宽不变的前提下,ipc可以调整rtp码流中的冗余数据包所占用的带宽以及视频流数据包所占用的带宽。当rtp码流中的视频流数据包在传输过程中发生丢包时,监控平台可以根据冗余数据包对丢失的视频流数据包进行恢复,避免因视频流数据包丢失导致监控画面出现花屏等现象。

其中,ipc中预设有至少两级抗丢包等级,该抗丢包等级与rtp码流的抗丢包能力呈正比,且抗丢包等级与冗余率呈正比,即rtp码流对应的抗丢包等级越高,表明该rtp码流的冗余率越高,且该rtp码流的抗丢包能力越强。相应的,ipc可以根据接收到的第一rtcp反馈,通过上调或下调rtp码流的抗丢包等级的方式,调整rtp码流的冗余率。

综上所述,本实施例提供的码流传输方法,ipc通过在向监控平台传输rtp码流的同时,根据监控平台反馈的rtp码流的传输质量,实时调整后续rtp码流中的视频流数据包和冗余数据包,使得在ip网络出现网络波动时,监控平台能够根据rtp码流中的冗余数据包恢复丢失的视频流数据包,避免因传输丢包导致监控画面出现花屏或马赛克现象,保证了视频监控系统的视频监控质量。

请参考图3a,其示出了本发明另一个示例性实施例提供的码流传输方法的方法流程图。本实施例以该码流传输方法应用在图1中的ipc110为例进行说明,该方法包括:

步骤301,向监控平台传输rtp码流。

在初始阶段,ipc根据预设带宽向监控平台传输仅包含视频流数据包rtp码流。比如,用户预设的视频码率为1024kbps(对应带宽即为1m),ipc即以1m带宽向监控平台传输仅包含视频流数据包的rtp码流。

步骤302,接收监控平台发送的第一rtcp反馈。

监控平台接收到ipc传输的rtp码流后,对该rtp码流中的视频流数据包进行rtp组包和视频解码,并根据rtp码流的传输质量周期性的向ipc发送第一rtcp反馈。其中,该第一rtcp反馈可用于指示rtp码流在传输过程中是否发生丢包。

步骤303,检测该第一rtcp反馈是否指示传输过程中发生丢包。

当网络出现波动时,ipc按照预设视频码率向监控平台传输rtp码流时会发生丢包,同时,由于该第一rtp码流中仅包含视频流数据包,监控平台无法对丢失的视频流数据包进行恢复,导致监控平台侧出现视频画面花屏等现象。

为了避免因网络波动导致的视频监控质量下降,ipc检测第一rtcp反馈是否指示rtp码流在传输过程中发生丢包,若rtp码流在传输过程中发生丢包,ipc则下调rtp码流的带宽,直至rtcp反馈指示传输过程中不再发生丢包。

步骤304,若第一rtcp反馈指示传输过程中发生丢包,则将该rtp码流的带宽下调预定比例。

当第一rtcp反馈指示rtp码流在传输过程中发生丢包时,ipc即按照预定比例下调视频码率,由于该rtp码流中仅包含视频流数据包,因此下调视频码率即下调rtp码流的带宽。比如,ipc以1m带宽向监控平台传输rtp码流时,监控平台指示传输过程中出现丢包,ipc即将rtp码流的带宽下调为1*0.9=0.9m。需要说明的是,本实施例并不对带宽下调的比例进行限定。

步骤305,向监控平台传输下调带宽后的rtp码流并接收监控平台后续发送的第二rtcp反馈。

ipc根据下调后的带宽,向监控平台传输rtp码流,并接收监控平台周期性返回的rtcp反馈。通过上述步骤301至步骤305,ipc根据监控平台发送的rtcp反馈对rtp码流的带宽进行粗粒度调节,直至rtcp反馈指示传输过程中不再发生丢包,使得rtp码流的带宽符合当前的网络状况,避免因传输丢包导致的视频花屏,优先保障视频监控的流畅度和稳定性。

步骤306,若第二rtcp反馈指示传输过程中未发生丢包,则在rtp码流中加入最高抗丢包等级的冗余数据包。

ipc预先设置有多级抗丢包等级,该抗丢包等级与rtp码流的抗丢包能力呈正比,且抗丢包等级与冗余率(rtp码流中冗余数据包所占用带宽占rtp码流所占用带宽的比例)呈正比。即rtp码流对应的抗丢包等级越高,表明该rtp码流的冗余率越高,相应的该rtp码流的抗丢包能力越强。其中,抗丢包等级、抗丢包能力以及冗余率之间的对应关系可以示意性如表一所示。

表一

其中,抗丢包率越高表示抗丢包能力越强,冗余率越高表示rtp码流中冗余数据包占用带宽的比例越高。

当网络状况发生波动时,为了实现对网络状况的主动探测并进一步提高rtp码流的抗丢包能力,当第二rtcp反馈指示传输过程中未发生丢包时,在rtp码流占用带宽保持不变的情况下,ipc降低视频流数据包所占用的带宽,并在rtp码流中加入根据视频流数据包生成的冗余数据包,使得监控平台能够根据冗余数据包恢复丢失的视频流数据包。

作为一种可能的实施方式,当第二rtcp反馈指示传输过程中未发生丢包时,ipc即下调rtp码流中视频流数据包占用的带宽,并利用节省下的带宽在rtp码流中加入最高抗丢包等级的冗余数据包(即将rtp码流的冗余率调整至最高抗丢包等级对应的冗余率)。其中,该冗余数据包根据rtp码流中的视频流数据包生成,比如,冗余数据包可以由两个视频流数据包按位异或后得到,当某个视频流数据包丢失时,监控平台即可通过该冗余数据包和另一视频流数据包反向异或回复丢失的视频流数据包。本实施例并不对冗余数据包生成的方式进行限定。

比如,当ipc以0.9m带宽向监控平台传输rtp码流时未发生丢包,且最高抗丢包等级对应的冗余率为50%,ipc即将rtp码流中视频流数据包占用的带宽下调为0.9*(1-50%)=0.45m,并利用节省下的0.45m带宽加入抗丢包等级为5的冗余数据包(冗余率为50%)。

步骤307,接收监控平台后续发送的第三rtcp反馈。

ipc向监控平台发送添加冗余数据包后的rtp码流,并接收监控平台后续发送的第三rtcp反馈。

步骤308,检测第三rtcp反馈是否指示传输时延增加。

由于rtp码流中包含冗余数据包,监控平台接收到rtp码流后,可以获取冗余数据包的冗余包头信息,并根据该冗余包头信息中携带的发送时间以及接收到rtp码流的接收时间计算传输rtp码流的传输时延。若检测到传输时延增加,则表明网络出现拥塞,当前rtp码流占用的带宽不合适,为了避免传输出现丢包,ipc需要进一步下调rtp码流占用的带宽;若检测到传输时延未增加,则表明网络状况良好,当前rtp码流占用的带宽合适,ipc可以进一步根据rtcp反馈调节rtp码流的冗余率和视频码率,从而达到rtp码流的细粒度调节。

步骤309,若第三rtcp反馈指示传输时延增加,则将该rtp码流的带宽下调预定比例。

当第三rtcp反馈指示传输时延增加时,与上述步骤304相似的,ipc将rtp码流占用的带宽下调预定比例,避免因占用带宽过大导致的传输丢包。需要说明的是,ipc在下调rtp码流所占带宽时,该rtp码流的冗余率保持不变,并且,由于rtp码流占用的带宽下调,该rtp码流的视频码率也相应降低。

比如,当前rtp码流所占的带宽为2m,且rtp码流的冗余率为50%,视频码率为1024kbps,当第二rtcp反馈指示传输时延增加时,ipc将rtp码流占用的带宽下调10%,此时,rtp码流所占的带宽为2m*0.9=1.8m,冗余率保持50%,而rtp码流的视频码率降低至1024kbps*0.9=922kbps。

步骤310,若第三rtcp反馈指示传输时延未增加,则根据第三rtcp反馈调整rtp码流的冗余率和视频码率。

由于rtp码流中不仅包含视频流数据包,还包含冗余数据包,因此,当rtp码流在传输过程中丢失部分视频流数据包时,监控平台可以根据接收到的视频流数据包以及冗余数据包对丢失的视频流数据包进行恢复,并向ipc发送携带有视频流数据包恢复情况的第三rtcp反馈。

ipc接收到第三rtcp反馈后,即根据第三rtcp反馈所指示的视频流数据包恢复情况对后续rtp码流的冗余率和视频码率进行细粒度调节。

作为一种可能的实施方式,若第三rtcp反馈指示存在通过冗余数据包恢复的视频流数据包,则表明网络中存在丢包,为了保证视频监控的稳定性,ipc进一步提高rtp码流的冗余率并降低视频码率;若第三rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包,则表明网络中不存在丢包,为了提高视频监控的显示效果,ipc则降低rtp码流的冗余率并提高视频码率。

比如,ipc向rtp码流中添加了抗丢包等级为5级的冗余数据包,且监控平台反馈不存在通过冗余数据包恢复的视频流数据包,ipc则将后续rtp码流的抗丢包等级下调为4级,并提高视频码率。如此循环,当网络状况稳定时,rtp码流中的冗余数据包将被去除,rtp码流的视频码率即为rtp码流所占带宽。

经过上述步骤310,ipc通过在rtp码流中的添加冗余数据包来探测网络状况,保证了rtp码流传输的稳定性;同时,ipc根据探测到的网络状况对rtp码流的冗余率和视频码率进行调节,并最终在网络状况稳定时去除rtp码流中的冗余数据包,提高了视频监控的监控效果。

步骤311,若在预定时长内,rtp码流的视频码率小于预定码率阈值且rtp码流中不包含冗余数据包,则将rtp码流的带宽上调预设带宽数值。

由于在上述步骤304中,rtp码流所占的带宽被下调,小于用户预设带宽(视频码率降低),视频监控虽然稳定但是视频显示效果却低于预期。为了提高视频监控的显示效果,当rtp码流中不包含冗余数据包,且rtp码流的视频码率低于预定码率时,ipc在当前rtp码流所占带宽的基础上,上调预设带宽。需要说明的是,上调后rtp码流所占的带宽应不大于预定码率阈值。

需要说明的是,ipc将rtp码流的带宽上调预设带宽数值可以指在当前rtp码流所占带宽的基础上增加预定带宽值,比如,ipc在0.8m带宽的基础上增加0.1m带宽,即将rtp码流所占带宽提升至0.9m;ipc将rtp码流的带宽上调预设带宽数值也可以指指在当前rtp码流所占带宽的基础上上调预定比例,比如,ipc在0.8m带宽的基础上上调10%的带宽,即将rtp码流所占带宽提升至0.88m,本发明实施例并不对上调rtp码流所占带宽的方式进行限定。

步骤312,在上调带宽后的rtp码流中加入最高抗丢包等级的冗余数据包。

为了保证在上调带宽的同时,rtp码流具有较好的抗丢包能力,ipc降低rtp码流中视频流数据包所占带宽,并利用节省的带宽加入最高抗丢包等级的冗余数据包,即在上调带宽后的rtp码流中加入最高冗余率的冗余数据包。

在rtp码流中加入冗余数据包后,ipc重复执行上述步骤307至步骤310,根据rtcp反馈调节rtp码流的冗余率和视频码率,最终在网络状况稳定时,去除rtp码流中的冗余数据包,使得rtp码流的视频码率达到预设码率阈值,达到较好的视频显示效果。

综上所述,本实施例提供的码流传输方法,ipc通过在向监控平台传输rtp码流的同时,根据监控平台反馈的rtp码流的传输质量,实时调整后续rtp码流中的视频流数据包和冗余数据包,使得在ip网络出现网络波动时,监控平台能够根据rtp码流中的冗余数据包恢复丢失的视频流数据包,避免因传输丢包导致监控画面出现花屏或马赛克现象,保证了视频监控系统的视频监控质量。

本实施例中,ipc中预先设置多级抗丢包等级,ipc只需要调节rtp码流中冗余数据包的抗丢包等级即可实现对rtp码流的冗余率的调节,提高了ipc调节rtp码流的效率。

本实施例中,当rtp码流中仅包含视频流数据包,且rtp码流的视频码率长时间低于预定码率时,表明ip网络带宽未得到充分利用。为了进一步提升视频监控的效果,ipc提高rtp码流的带宽,并向增加带宽后的rtp码流中加入最高抗丢包等级的冗余数据包,在提高ip网络带宽使用率的同时,保证了rtp码流的抗丢包能力。

本实施例中,当ipc传输的rtp码流中仅包含视频流数据包且rtcp反馈指示rtp码流在传输过程中发生丢包时,由于监控平台无法进行视频流数据包的恢复,因此ipc降低后续rtp码流的带宽,避免rtp码流在传输过程中发生丢包,实现对rtp码流的粗粒度调节。

本实施例中,当rtp码流中包含冗余数据包时,ipc根据监控平台反馈的传输时延确定rtp码流的带宽是否适当,当传输时延未增加时,确定rtp码流的带宽适当,并对rtp码流的冗余率和视频码率进行调节;当传输时延增加时,表明网络中出现拥塞,ipc即降低rtp码流的带宽,避免网络拥塞对rtp码流传输所造成的影响。

在图3a所示码流传输方法的基础上,如图3b所示,ipc根据rtcp反馈对rtp码流的冗余率和视频码率进行细粒度调节时,上述步骤310可以进一步包括如下步骤。

步骤310a,若第三rtcp反馈指示存在通过冗余数据包恢复的视频流数据包,则提高冗余率并降低视频码率。

当rtp码流在传输过程中丢失部分视频流数据包时,监控平台可以根据接收到的视频流数据包以及冗余数据包对丢失的视频流数据包进行恢复,并向ipc发送携带有视频流数据包恢复情况的第三rtcp反馈。当ipc接收到的第三rtcp反馈指示存在通过冗余数据包恢复的视频流数据包时,表明当前网络中存在丢包。为了优先保证视频监控的稳定性,ipc提高后续rtp码流的冗余率,并相应降低rtp码流的视频码率,从而提高rtp码流的抗丢包能力。具体的,本步骤还可以包括如下步骤。

步骤310aa,若第三rtcp反馈指示存在通过冗余数据包恢复的视频流数据包且当前抗丢包等级不是最高等级,则将抗丢包等级提高预定等级并降低视频码率。

由于ipc预先设置了多级抗丢包等级,因此,当第三rtcp反馈指示存在通过冗余数据包恢复的视频流数据包时,ipc获取当前rtp码流的抗丢包等级,并在当前抗丢包等级不是最高级时,提高rtp码流的抗丢包等级,由于rtp码流所占带宽未变化,因此在提高rtp码流的冗余率的同时,需要相应降低rtp码流的视频码流。

比如,rtp码流所占带宽为0.9m,且抗丢包等级为3级(冗余率为40%,视频码率为553kbps),当第三rtcp反馈指示存在通过冗余数据包恢复的视频流数据包时,ipc即将rtp码流的抗丢包等级上调为4级(冗余率为45%),并将视频码率下调为507kbps。

步骤310ab,若第三rtcp反馈指示存在通过冗余数据包恢复视频流数据包且当前抗丢包等级是最高等级,则保持当前抗丢包等级和当前视频码率。

若rtp码流当前的抗丢包等级已经为最高级时,ipc保持当前抗丢包等级和当前视频码率,继续向监控平台传输rtp码流。

步骤310b,若第三rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包,则降低冗余率并提高视频码率。

当第三rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包时,表明网络中存在丢包,ipc可以降低rtp码流的冗余率,并提高其视频码率,从而达到更好的视频显示效果。具体的,本步骤还可以包括如下步骤。

步骤310ba,若第三rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包且rtp码流中包含冗余数据包,则将抗丢包等级降低预定等级并提高视频码率。

由于ipc预先设置了多级抗丢包等级,因此,当第三rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包时,ipc获取当前rtp码流的抗丢包等级,并下调该抗丢包等级,由于rtp码流所占带宽未变化,因此在降低rtp码流的冗余率的同时,需要相应提高rtp码流的视频码流。

比如,rtp码流所占带宽为0.9m,且抗丢包等级为5级(冗余率为50%,视频码率为461kbps),当第三rtcp反馈指示存在通过冗余数据包恢复的视频流数据包时,ipc即将rtp码流的抗丢包等级下调为4级(冗余率为45%),并将视频码率上调为507kbps。

步骤310bb,若第三rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包且rtp码流中不包含冗余数据包,则保持当前视频码率。

若当前rtp码流中已不包含冗余包,ipc即保持当前视频码率向监控平台传输rtp码流(此时该rtp码流中仅包含视频流数据包)。

需要说明的是,由于ipc与监控平台可能出自不同厂商,当监控平台未配置冗余数据包识别和恢复能力时,会导致视频解码异常。为了提高ipc与不同监控平台之间的兼容性,ipc使用保留协议类型对rtp码流中的冗余数据包进行标识,当未配置冗余数据包识别和恢复能力的监控平台接收到包含冗余数据包的rtp码流时,即根据h.264协议或h.265协议直接对冗余数据包进行丢弃,保证后续正常视频解码。比如,对于h.264协议来说,协议类型0-21被占用,协议类型22-255未被使用,ipc即可使用22-255协议类型对冗余数据包进行标识;又比如,对于h.265协议来说,协议类型3、4、5、17、22、132被占用,ipc即可使用剩余的协议类型对冗余数据包进行标识。

请参考图4,其示出了本发明一个示例性实施例提供的码流传输装置的框图。该码流传输装置可以通过软件、硬件或者两者的结合实现成为图1所示ipc110的全部或者一部分。该码流传输装置可以包括:传输单元410、接收单元420和调整单元430。

传输单元410,用于向监控平台传输rtp码流;

接收单元420,用于接收监控平台发送的第一rtcp反馈,第一rtcp反馈用于指示rtp码流的传输质量;

调整单元430,用于根据第一rtcp反馈调整rtp码流的冗余率和视频码率,冗余率用于指示rtp码流中冗余数据包所占的比例,冗余数据包根据rtp码流中的视频流数据包生成,视频码率用于指示单位时间内传输的视频流数据包的数据量。

综上所述,本实施例提供的码流传输装置,ipc通过在向监控平台传输rtp码流的同时,根据监控平台反馈的rtp码流的传输质量,实时调整后续rtp码流中的视频流数据包和冗余数据包,使得在ip网络出现网络波动时,监控平台能够根据rtp码流中的冗余数据包恢复丢失的视频流数据包,避免因传输丢包导致监控画面出现花屏或马赛克现象,保证了视频监控系统的视频监控质量。

在基于图4所示的码流传输装置的基础上,请参考图5,其示出了本发明另一个示例性实施例提供的码流传输装置的框图。该码流传输装置可以通过软件、硬件或者两者的结合实现成为图1所示ipc110的全部或者一部分。该码流传输装置可以包括:传输单元510、接收单元520和调整单元530。

传输单元510,用于向监控平台传输rtp码流;

接收单元520,用于接收监控平台发送的第一rtcp反馈,第一rtcp反馈用于指示rtp码流的传输质量;

调整单元530,用于根据第一rtcp反馈调整rtp码流的冗余率和视频码率,冗余率用于指示rtp码流中冗余数据包所占的比例,冗余数据包根据rtp码流中的视频流数据包生成,视频码率用于指示单位时间内传输的视频流数据包的数据量。

在一种可能的实施方式中,调整单元530,用于在第一rtcp反馈指示存在通过冗余数据包恢复的视频流数据包时,提高冗余率并降低视频码率;或者,

调整单元530,用于在第一rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包时,降低冗余率并提高视频码率。

在一种可能的实施方式中,ipc预设有至少两级抗丢包等级,抗丢包等级与rtp码流的抗丢包能力呈正比,且抗丢包等级与冗余率呈正比。

在一种可能的实施方式中,调整单元530,用于:

若第一rtcp反馈指示存在通过冗余数据包恢复的视频流数据包且当前抗丢包等级不是最高等级,则将抗丢包等级提高预定等级并降低视频码率;

若第一rtcp反馈指示存在通过冗余数据包恢复视频流数据包且当前抗丢包等级是最高等级,则保持当前抗丢包等级和当前视频码率。

在一种可能的实施方式中,调整单元530,用于:若第一rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包且rtp码流中包含冗余数据包,则将抗丢包等级降低预定等级并提高视频码率;

若第一rtcp反馈指示不存在通过冗余数据包恢复的视频流数据包且rtp码流中不包含冗余数据包,则保持当前视频码率。

在一种可能的实施方式中,该装置还包括:

第一带宽调节单元540,用于若在预定时长内,rtp码流的视频码率小于预定码率阈值且rtp码流中不包含冗余数据包,则将rtp码流的带宽上调预设带宽数值;

第一带宽调节单元540,还用于在上调带宽后的rtp码流中加入最高抗丢包等级的冗余数据包,并降低视频码率。

在一种可能的实施方式中,rtp码流中仅包含视频流数据包,且第一rtcp反馈指示传输过程中发生丢包,

该装置还包括:

第二带宽调节单元550,用于将rtp码流的带宽下调预定比例;

第二带宽调节单元550,还用于向监控平台传输下调带宽后的rtp码流并接收监控平台后续发送的第二rtcp反馈。

在一种可能的实施方式中,该装置还包括:

添加单元560,用于在第二rtcp反馈指示传输过程中未发生丢包时,在rtp码流中加入最高抗丢包等级的冗余数据包;

接收单元520,用于接收所述监控平台后续发送的第三rtcp反馈;

调整单元530还用于,在第三rtcp反馈指示传输时延未增加时,根据第三rtcp反馈调整rtp码流的冗余率和视频码率。

在一种可能的实施方式中,冗余数据包使用保留协议类型进行标识,保留协议类型指h.264协议和h.265协议未使用的协议类型。

综上所述,本实施例提供的码流传输装置,ipc通过在向监控平台传输rtp码流的同时,根据监控平台反馈的rtp码流的传输质量,实时调整后续rtp码流中的视频流数据包和冗余数据包,使得在ip网络出现网络波动时,监控平台能够根据rtp码流中的冗余数据包恢复丢失的视频流数据包,避免因传输丢包导致监控画面出现花屏或马赛克现象,保证了视频监控系统的视频监控质量。

本实施例中,ipc中预先设置多级抗丢包等级,ipc只需要调节rtp码流中冗余数据包的抗丢包等级即可实现对rtp码流的冗余率的调节,提高了ipc调节rtp码流的效率。

本实施例中,当rtp码流中仅包含视频流数据包,且rtp码流的视频码率长时间低于预定码率时,表明ip网络带宽未得到充分利用。为了进一步提升视频监控的效果,ipc提高rtp码流的带宽,并向增加带宽后的rtp码流中加入最高抗丢包等级的冗余数据包,在提高ip网络带宽使用率的同时,保证了rtp码流的抗丢包能力。

本实施例中,当ipc传输的rtp码流中仅包含视频流数据包且rtcp反馈指示rtp码流在传输过程中发生丢包时,由于监控平台无法进行视频流数据包的恢复,因此ipc降低后续rtp码流的带宽,避免rtp码流在传输过程中发生丢包,实现对rtp码流的粗粒度调节。

本实施例中,当rtp码流中包含冗余数据包时,ipc根据监控平台反馈的传输时延确定rtp码流的带宽是否适当,当传输时延未增加时,确定rtp码流的带宽适当,并对rtp码流的冗余率和视频码率进行调节;当传输时延增加时,表明网络中出现拥塞,ipc即降低rtp码流的带宽,避免网络拥塞对rtp码流传输所造成的影响。

请参考图6,其示出了本发明实施例提供的ipc600的结构示意图。

ipc600可以包括:处理器610、摄像组件620、存储器630和网络接口640等部件。本领域技术人员可以理解,图6中示出的ipc600的结构并不构成对ipc的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:

处理器610是ipc600的控制中心,利用各种接口和线路连接整个ipc的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行ipc600的各种功能和处理数据,从而对ipc600进行整体控制。可选的,处理器610可包括一个或多个处理核心;可选的,处理器610可集成调制解调处理器以及图形处理器,其中,调制解调处理器主要处理无线通信,图形处理器用于处理采集到的视频数据。可以理解的是,上述调制解调处理器和图形处理器也可以不集成到处理器610中,而以独立的处理器存在。

摄像组件620是具有摄像功能的组件。具体的,该摄像模块包括摄像头。摄像组件620将采集到的视频数据传输至处理器610,由处理器610对视频数据进行视频编码,并进一步对编码后的视频数据进行rtp分片和打包,使其符合rtp传输协议。

存储器630可用于存储软件程序以及模块。处理器610通过运行存储在存储器630的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器630可主要包括存储程序区和存储数据区,其中,存储程序区可存储传输单元631、接收单元632和调整单元631。此外,存储器630可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(英文:staticrandomaccessmemory,简称:sram),电可擦除可编程只读存储器(英文:electricallyerasableprogrammableread-onlymemory,简称:eeprom),可擦除可编程只读存储器(英文:erasableprogrammablereadonlymemory,简称:eprom),可编程只读存储器(英文:programmableread-onlymemory,简称:prom),只读存储器(英文:readonlymemory,简称:rom),磁存储器,快闪存储器,磁盘或光盘。相应地,存储器630还可以包括存储器控制器,以提供处理器610对存储器630的访问。

网络接口640可以为一个或多个,用于通过ip网络与监控平台进行通信。

ipc600还包括给各个部件供电的电源(图中未示出),优选的,电源可以通过电源管理系统与处理器610逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管未示出,ipc600还可以包括麦克风、蓝牙模块等,在此不再赘述。

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

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

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

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