首页 / 视频流传输方法、装置、电子设备及存储介质

视频流传输方法、装置、电子设备及存储介质实质审查 发明

技术领域

[0001] 本申请涉及视频处理技术领域,尤其涉及一种视频流传输方法、装置、电子设备及存储介质。

相关背景技术

[0002] 在视频监控的业务场景中,视频监控平台控制摄像机推流给流媒体服务器,客户端从流媒体服务器处获取视频流播放,实现查看摄像机监控的实时视频的效果。
[0003] 在一些场景下,在客户端出现的本应是A摄像机的画面,看到的却是B摄像机的画面,这种现象称为摄像机“串流”,摄像机“串流”现象中存在用户敏感数据、重要视频信息泄露的风险,导致整个视频监控平台的稳定性和安全性也较低。因此,如何检测摄像机是否“串流”并及时处理对于视频监控业务具有重要的意义。

具体实施方式

[0016] 本申请实施例的目的是提供一种视频流传输方法、装置、电子设备及存储介质,能够有效检测摄像机是否串流并及时进行处理,提高了视频监控平台的稳定性和安全性。
[0017] 为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0018] 示例性的,如图1所示,本申请实施例提供一种视频流传输方法,该方法的执行主体可以为流媒体服务器,该视频流传输方法具体可以包括以下步骤:
[0019] 在步骤S101中,接收目标摄像机传输的视频流,从视频流中提取第一网络地址。
[0020] 具体来讲,目标摄像机指的是对监控区域进行监控的摄像机,为各个目标摄像机规划监控网络,并为每个目标摄像机分配互联网协议地址(Internet Protocol Address,IP)和掩码,监控平台会将目标摄像机的IP地址以及掩码进行记录。
[0021] 进一步的,规划流媒体服务器的可用端口并进行分段,可用端口总数为T,设置分段数S,利用端口总数T除以分段数S进行取余处理得到编号N,使得固定编号在流媒体服务器的每一段可用接口中都有一个固定的端口可用。目标摄像机随机分配可用端口N进行绑定,独占端口N进行视频流推送。
[0022] 在步骤S103中,获取目标摄像机的第二网络地址和掩码。
[0023] 具体来讲,目标摄像机经过链路传递映射后可能IP地址发生变化,导致监控平台接续收到目标摄像机IP地址和流媒体服务器接收推流收到的目标摄像机的IP地址不一致的情况,此外,目标摄像机可能通过路由器接入监控平台,路由重启等动作也有可能导致目标摄像机的IP地址发生变化。因此,可以采用IP地址+掩码的校验方式,因为默认监控平台和流媒体服务器接收到的目标服务器的IP地址是在同一网段的,所以设定一个变化范围内的掩码可以对视频流中的网络地址以及目标摄像机的网络地址进行校验。
[0024] 在步骤S105中,根据掩码确定目标摄像机的网络地址范围。
[0025] 具体来讲,该掩码可以映射出一个变化范围内的网络地址,如果持续进行视频流传输的摄像机一直为同一个摄像机,监控平台和流媒体服务器接收到的摄像机的IP地址则都是在同一个网段的,因此,通过设置一个变化范围内的掩码可以对目标摄像机的视频流中的网络地址和为目标摄像机分配的网络地址进行校验。
[0026] 在步骤S107中,在第一网络地址和第二网络地址都处于网络地址范围内的情况下,允许目标摄像机继续传输视频流,在第一网络地址和/或第二网络地址不处于网络地址范围内的情况下,中止目标摄像机传输视频流。
[0027] 具体来讲,目标摄像机传输视频流时,流媒体服务器从视频流中提取出传输视频流的摄像机的第一网络地址,再从监控平台中获取为目标摄像机分配的第二网络地址和掩码,流媒体服务器从视频流中提取出的第一网络地址通过掩码匹配并判断与第一网络地址是否同处于掩码对应的网络地址范围,即是否处于同一网段。如果第一网络地址和第二网络地址都处于网络地址范围内,说明摄像机不存在串流现象,则允许摄像机继续传输视频流;如果第一网络地址和第二网络地址中的至少一者不属于网络地址范围,说明摄像机存在串流现象,则中止摄像机传输视频流。
[0028] 通过本申请实施例公开的技术方案,通过接收目标摄像机传输的视频流,从视频流中提取第一网络地址,获取目标摄像机的第二网络地址和掩码,根据掩码确定目标摄像机的网络地址范围,在第一网络地址和第二网络地址都处于网络地址范围内的情况下,允许目标摄像机继续传输视频流,在第一网络地址和/或第二网络地址不处于网络地址范围内的情况下,中止目标摄像机传输视频流;如此,通过对比目标摄像机传输的视频流中的第一网络地址和目标摄像机的第二网络地址,确定第一网络地址和第二网络地址与掩码对应的网络地址范围之间的对应关系,来对目标摄像机是否出现串流现象进行检测,在出现串流现象时及时中止视频流的传输,提高了视频监控平台的稳定性和安全性。
[0029] 为了进一步提高摄像机串流的检测准确性,在一种可能的实现方式中,在第一网络地址和第二网络地址都处于网络地址范围内的情况下,允许目标摄像机继续传输视频流之后,该方法还包括:从视频流中提取目标摄像机的编码,根据编码确定目标摄像机的第一流媒体端口,获取为目标摄像机预先分配的第二流媒体端口,编码和第二流媒体端口相映射,在第一流媒体端口与第二流媒体端口不一致的情况下,中止目标摄像机传输视频流。
[0030] 具体来讲,目标摄像机的编码指的是为摄像机分配的编号,第二流媒体端口为预先为目标摄像机分配的流媒体端口,第一流媒体端口指的是通过当前传输视频流的摄像机的编码确定出的端口号。如果为目标摄像机预先分配的流媒体端口和第一流媒体端口一致,说明为同一个摄像机,如果不一致,说明不是同一个摄像机,存在串流风险,终止目标摄像机传输视频流。
[0031] 进一步,在摄像机存在串流风险时,可以为摄像机重新分配新的端口并记录,原摄像机使用新的端口传输视频流。
[0032] 在一种可能的实现方式中,在获取为目标摄像机预先分配的第二流媒体端口之前,方法还包括:获取流媒体可用端口号和流媒体处理的限制数量;根据限制数量和流媒体可用端口号进行端口分段,得到分段数;基于编码和限制数量进行取余处理,得到余数;根据余数、分段数和限制数量确定目标摄像机的第二流媒体端口。
[0033] 具体来讲,流媒体可用端口号指的是流媒体服务器可用于接收视频流的端口号,流媒体处理的限制数量指的是流媒体服务器对视频流进行处理的最大允许数量,编码指的是目标摄像机的编号。基于编码和限制数量进行取余处理可以是采用编码的后四位数和限制数量进行取余处理,得到余数,最后,采用余数、分段数和限制数量确定目标摄像机的第二流媒体端口。
[0034] 举个例子,假设流媒体服务器处理流媒体的限制数量为500个,视频流可用端口号为1~6000,流媒体服务器可以将视频流可用端口分为12段(6000/500)。流媒体服务器分配视频流的可用端口号的规则如下:若摄像机A编码为:32000000001328000001,对应的流媒体的可用端口号则为1,501,1001…5001,5501(编码后4位值:1%500+500*n)。摄像机A(32000000001328000001)接续,流媒体可分配给摄像机的推流端口为501,摄像机B(32000000001328000002)接续,流媒体可分配给摄像机的推流端口为502,以此规则分配。
[0035] 在流媒体服务器接收摄像机传输的视频流时,如流媒体端口501收到摄像机的视频流,从视频流中提取出摄像机C的编码。
[0036] (1)如果摄像机C编码为32000000001328001501,按照流媒体服务器分配端口的规则,1501%500=1,可分配端口包括了501端口,所以认为收到码流为正确的摄像机推送的。
[0037] (2)如果摄像机C编码为32000000001328001502,按照流媒体分配端口规则,1502%500=2,可分配端口不包括501端口,所以认为收到码流为异常的摄像机推送的,即关闭该端口,防止串流。
[0038] 此外,另外流媒体服务器周期性检查正在接收视频流的端口的编码是否符合流媒体分配端口规则,如不符合,则认为是异常码流,即关闭该端口,终止串流。
[0039] 对关闭的端口,流媒体服务器定时检查是否还有视频流推送,若摄像机停止了对该端口的推流,则可开放该端口用于接续时分配给摄像机用。
[0040] 在一种可能的实现方式中,在第一流媒体端口与第二流媒体端口不一致的情况下,中止目标摄像机传输视频流之后,方法还包括:
[0041] 获取第二流媒体端口的保活时间;在目标摄像机传输视频流的中止时间超出保活时间的情况下,释放第二流媒体端口。
[0042] 具体来讲,在摄像机持续传输视频流时,会对第二流媒体端口持续独占,并设置保活时间,在保活时间内,如果摄像机不再传输视频流,该第二流媒体端口也不会释放。在摄像机推送流媒体服务断流超过保活时间后,则判定摄像机离线,将第二流媒体端口释放并回收,避免长时间无效占用流媒体端口,提高了流媒体端口的有效使用率。
[0043] 在一种可能的实现方式中,在第一流媒体端口与第二流媒体端口不一致的情况下,中止目标摄像机传输视频流之后,方法还包括:
[0044] 释放第二流媒体端口。
[0045] 具体来讲,在中止目标摄像机传输视频流之后,可以将该第二流媒体端口及时释放,避免长时间无效占用流媒体端口,提高了流媒体端口的有效使用率。
[0046] 对应上述实施例提供的视频流传输方法,基于相同的技术构思,本申请实施例还提供了一种视频流传输装置,图2本申请实施例提供的视频流传输装置的模块组成示意图,该视频流传输装置用于执行图1描述的视频流传输方法,如图2所示,该视频流传输装置200包括:提取模块201,用于接收目标摄像机传输的视频流,从视频流中提取第一网络地址;获取模块202,用于获取目标摄像机的第二网络地址和掩码;确定模块203,用于根据掩码确定目标摄像机的网络地址范围;传输模块204,用于在第一网络地址和第二网络地址都处于网络地址范围内的情况下,允许目标摄像机继续传输视频流;中止模块205,用于在第一网络地址和/或第二网络地址不处于网络地址范围内的情况下,中止目标摄像机传输视频流。
[0047] 由以上本申请实施例提供的技术方案可见,通过接收目标摄像机传输的视频流,从视频流中提取第一网络地址,获取目标摄像机的第二网络地址和掩码,根据掩码确定目标摄像机的网络地址范围,在第一网络地址和第二网络地址都处于网络地址范围内的情况下,允许目标摄像机继续传输视频流,在第一网络地址和/或第二网络地址不处于网络地址范围内的情况下,中止目标摄像机传输视频流;如此,通过对比目标摄像机传输的视频流中的第一网络地址和目标摄像机的第二网络地址,确定第一网络地址和第二网络地址与掩码对应的网络地址范围之间的对应关系,来对目标摄像机是否出现串流现象进行检测,在出现串流现象时及时中止视频流的传输,提高了视频监控平台的稳定性和安全性。
[0048] 在一种可能的实现方式中,提取模块201,还用于从视频流中提取目标摄像机的编码;确定模块203,还用于根据编码确定目标摄像机的第一流媒体端口;获取模块202,还用于获取为目标摄像机预先分配的第二流媒体端口,编码和第二流媒体端口相映射;中止模块205,还用于在第一流媒体端口与第二流媒体端口不一致的情况下,中止目标摄像机传输视频流。
[0049] 在一种可能的实现方式中,获取模块202,还用于获取流媒体可用端口号和流媒体处理的限制数量;根据限制数量和流媒体可用端口号进行端口分段,得到分段数;基于编码和限制数量进行取余处理,得到余数;根据余数、分段数和限制数量确定目标摄像机的第二流媒体端口。
[0050] 在一种可能的实现方式中,获取模块202,还用于获取第二流媒体端口的保活时间;在目标摄像机传输视频流的中止时间超出保活时间的情况下,释放第二流媒体端口。
[0051] 在一种可能的实现方式中,还包括:释放模块,用于释放第二流媒体端口。
[0052] 本申请实施例提供的视频流传输装置能够实现上述视频流传输方法对应的实施例中的各个过程,且具有相同或类似的有益效果,为避免重复,这里不再赘述。
[0053] 需要说明的是,本申请实施例提供的视频流传输装置与本申请实施例提供的视频流传输方法基于同一申请构思,因此该实施例的具体实施可以参见前述视频流传输方法的实施,且具有相同或类似的有益效果,重复之处不再赘述。
[0054] 对应上述实施例提供的视频流传输方法,基于相同的技术构思,本申请实施例还提供了一种电子设备,该电子设备用于执行上述的视频流传输方法,图3为实现本申请各个实施例的一种电子设备的结构示意图,如图3所示。电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器301和存储器302,存储器302中可以存储有一个或一个以上存储应用程序或数据。其中,存储器302可以是短暂存储或持久存储。存储在存储器302的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对电子设备中的一系列计算机可执行指令。
[0055] 更进一步地,处理器301可以设置为与存储器302通信,在电子设备上执行存储器302中的一系列计算机可执行指令。电子设备还可以包括一个或一个以上电源303,一个或一个以上有线或无线网络接口304,一个或一个以上输入输出接口305,一个或一个以上键盘306。
[0056] 具体在本实施例中,电子设备包括有处理器、通信接口、存储器和通信总线;其中,处理器、通信接口以及存储器通过总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序,实现以上图1中方法实施例中的各个步骤,且具有以上方法实施例所具有的有益效果,为避免重复,本申请实施例在此不再赘述。
[0057] 本实施例中还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现以上图1方法实施例中的各个步骤,且具有以上方法实施例所具有的有益效果,为避免重复,本申请实施例在此不再赘述。
[0058] 本实施例中还提供了一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述实施例所提到的视频流传输方法的步骤,且具有以上方法实施例所具有的有益效果,为避免重复,本申请实施例在此不再赘述。
[0059] 本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0060] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0061] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0062] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0063] 在一个典型的配置中,电子设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0064] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
[0065] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD‑ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
[0066] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0067] 本领域技术人员应明白,本申请的实施例可提供为方法、装置或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0068] 以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页 第1页 第2页 第3页
相关技术
存储介质相关技术
方法装置相关技术
葛尧发明人的其他相关专利技术