异常码流过滤方法、系统、电子设备和存储介质

未命名 10-28 阅读:204 评论:0


1.本发明涉及计算机技术领域,具体涉及一种异常码流过滤方法、系统、电子设备和存储介质。


背景技术:

2.随着家庭安防业务的不断增长,已有两千万的摄像机随之接入流媒体系统,这些接入的摄像机由于生产厂家不一、芯片方案不一、或由于视频码流格式不健全、网络传输丢包等原因,导致部分码流在处理过程中出现异常。此类异常码流,在流媒体集群转封装、转码的过程造成了极大的错误隐患,甚至可能引起服务不可用或崩溃等常情况发生。目前常用的码流过滤方法主要有三种,一种是在传输层基于数据丢包率检测,第二种是对于码流封装层字段进行检查,如序列号连续性、pts错误等,第三种是基于编码层的序列参数集属性字段进行检查。上述的过滤方式只能基于现有已知的异常码流的判断规则来进行检测,对于一些未知规则的异常码流数据则无法进行过滤,导致系统出现风险,导致系统的可靠性低和稳定性低。同时,随着一些未知规则的异常码流数据的增加,系统的容错性会逐步变得越来越低。


技术实现要素:

3.本发明实施例提供一种异常码流过滤方法、系统、电子设备和存储介质,提高流媒体集群系统的可靠性、稳定性和容错性。
4.第一方面,本发明实施例提供一种异常码流过滤方法,包括:接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据;若确定进程异常退出,且所述进程异常退出为所述目标流数据导致的,则生成core文件;对所述core文件进行解析,得到堆栈跟踪信息;根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,并基于所述异常码流设备黑名单对码流进行过滤。
5.在一个实施例中,所述基于所述异常码流设备黑名单对码流进行过滤,包括:接收到第二推流设备端发起第二设备码流的推流请求时,根据所述推流请求获取所述第二推流设备端的第二推流设备信息;若确定在所述异常码流设备黑名单中存在所述第二推流设备信息,则拒绝接收所述第二设备码流。
6.在一个实施例中,所述根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,包括:若确定所述堆栈跟踪信息中存在第一推流设备信息,则获取所述第一推流设备信息的出现频率;
若确定所述出现频率大于预设频率,则根据所述第一推流设备信息生成所述异常码流设备黑名单。
7.在一个实施例中,所述对所述第一设备码流进行第一次异常码流过滤,得到目标流数据,包括:获取所述第一设备码流中任一帧第一码流数据;确定任一帧所述第一码流数据的丢包率;若确定所述丢包率大于第一预设阈值,则过滤所述任一帧所述第一码流数据,得到第一待处理流数据;获取所述第一待处理流数据中任一帧第二码流数据的封装层参数,并根据所述封装层参数,得到所述目标流数据。
8.在一个实施例中,所述根据所述封装层参数,得到所述目标流数据,包括:对任一帧所述第二码流数据的序列号连续性和时间码进行检查,得到任一帧所述第二码流数据的错误值,并确定任一帧所述第二码流数据的错误值是否大于第二预设阈值;若确定任一帧所述第二码流数据的错误值大于所述第二预设阈值,则过滤所述第一待处理流数据中的任一帧所述第二码流数据,得到第二待处理流数据;获取所述第二待处理流数据中任一帧第三码流数据的参数属性集,并根据任一帧所述第三码流数据的参数属性集,得到所述目标流数据。
9.在一个实施例中,所述根据任一帧所述第三码流数据的参数属性集,得到所述目标流数据,包括:对任一帧所述第三码流数据的分辨率属性、编码格式属性、码率属性、音频格式属性、色彩空间属性和比特深度音属性进行检查,确定任一帧所述第三码流数据的参数属性集中是否存在异常属性;若确定任一帧所述第三码流数据的参数属性集中存在异常属性,则过滤所述第二待处理流数据中的任一帧所述第三码流数据,得到第三待处理流数据;根据所述第三待处理流数据中任一帧第四码流数据的解码情况,得到所述目标流数据。
10.在一个实施例中,所述根据所述第三待处理流数据中任一帧第四码流数据的解码情况,得到所述目标流数据,包括:若确定任一帧所述第四码流数据的数据业务类型为转码业务类型,则检查任一帧所述第四码流数据在解码过程中是否存在错误;若确定任一帧所述第四码流数据在解码过程中存在错误,则过滤所述第三待处理流数据中的任一帧所述第四码流数据,得到所述目标流数据;或/和,若确定任一帧所述第四码流数据的数据业务类型为非转码业务类型,则通过预设抽样频率对任一帧所述第四码流数据进行抽样解码检查,确定任一帧所述第四码流数据在解码过程中是否存在错误;若确定任一帧所述第四码流数据在解码过程中存在错误,则过滤所述第三待处理流数据中的任一帧所述第四码流数据,得到所述目标流数据。
11.第二方面,本发明实施例提供一种异常码流过滤系统,包括:
第一异常码流过滤模块,用于接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据;进程检测模块,用于判断出进程异常退出,且确定所述进程异常退出为所述目标流数据导致的,则生成core文件;解析模块,用于对所述core文件进行解析,得到堆栈跟踪信息;第二异常码流过滤模块,用于根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,并基于所述异常码流设备黑名单对码流进行过滤。
12.第三方面,本发明实施例提供一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现第一方面所述的异常码流过滤方法。
13.第四方面,本发明实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的异常码流过滤方法。
14.本发明实施例提供的异常码流过滤方法、系统、电子设备和存储介质,接收第一推流设备端推送的第一设备码流,对第一设备码流进行第一次异常码流过滤,得到目标流数据;若确定进程异常退出,且进程异常退出为目标流数据导致的,则生成core文件;对core文件进行解析,得到堆栈跟踪信息;根据堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,基于异常码流设备黑名单对码流进行过滤。在异常码流过滤的过程中,对设备码流进行第一次异常码流过滤,使异常码流的防护更加全面及有效,同时,根据进程异常退出时的堆栈跟踪信息,反向识别异常码流设备并加入设备黑名单,有效阻挡异常码流在集群中的传播路径,提高了流媒体集群系统的可靠性、稳定性和容错性。
附图说明
15.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1是本发明实施例提供的异常码流过滤方法的流程示意图;图2是本发明实施例提供的异常码流过滤系统的整体架构图;图3是本发明实施例提供的异常码流过滤方法的整体方案流程图之一;图4是本发明实施例提供的异常码流过滤方法的整体方案流程图之二;图5是本发明实施例提供的异常码流黑名单拦截的流程示意图;图6是本发明实施例提供的异常码流过滤系统的结构示意图;图7是本发明实施例提供的电子设备的结构示意图。
具体实施方式
17.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创
造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.参照图1,图1是本发明实施例提供的异常码流过滤方法的流程示意图。本发明实施例提供一种异常码流过滤方法,包括:步骤101,接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据;步骤102,若确定进程异常退出且进程异常退出为所述目标流数据导致的,则生成core文件;步骤103,对所述core文件进行解析,得到堆栈跟踪信息;步骤104,根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,并基于所述异常码流设备黑名单对码流进行过滤。
19.需要说明的是,本发明实施例提供的异常码流过滤方法应用于流媒体集群,用于提供流媒体服务,流媒体集群包括流媒体管理节点、流媒体服务节点和daemon守护进程节点。流媒体管理节点负责对所有的流媒体服务节点进行管理,包括但不限制于提供黑名单机制和生成推拉流地址;流媒体服务节点负责具体业务功能,包括但不限制于视频的转发、转码和转存;daemon守护进程节点负责在流媒体服务节点发生异常崩溃时将其重新拉起。
20.进一步需要说明的是,本发明实施例提供的应用于流媒体集群的异常码流过滤系统,包括推流设备端、流媒体集群、拉流客户端和推拉流服务器负载均衡器(server load balancer,slb)。推流设备端负责将采集的视频数据进行编码、打包、封装后通过网络推送至流媒体集群;拉流客户端负责从流媒体集群拉取视频码流数据,并在进行解封装、解码后显示,供用户观看视频画面信息;slb根据负载均衡算法,负责将码流随机地接入至流媒体集群中可用的流媒体节点上。
21.因此可以理解为,在视频码流数据流入异常码流过滤系统的过程中,推流设备端将采集的视频码流数据进行编码、打包和封装,推流slb将封装处理后的视频码流数据推送至流媒体集群,并接入至流媒体集群中可用的流媒体节点上,在流媒体集群中流媒体管理节点、流媒体服务节点和daemon守护进程节点共同提供流媒体服务,进一步地,拉流slb将视频码流数据从流媒体集群拉取至拉流客户端,拉流客户端将视频码流数据进行解封装、解码后显示,供用户观看视频画面信息。参照图2,图2是本发明实施例提供的异常码流过滤系统的整体架构图。
22.具体地,推流设备向流媒体集群推送第一设备码流,推流slb将第一设备码流接入至流媒体集群,流媒体服务节点接收第一推流设备端推送的第一设备码流,对第一设备码流进行第一次异常码流检查,即通过传输层检查、封装层检查、编码层参数集检查和编码层帧数据解码检查,确定出第一设备码流中的异常码流,并过滤第一设备码流中的异常码流,得到目标流数据。
23.进一步地,流媒体服务节点在处理目标流数据的业务过程中,若确定进程异常退出,且确定进程异常退出为目标流数据导致的,流媒体服务节点则生成core文件,其中,core文件是在节点崩溃或异常终止时生成的一种文件,core文件中包含了节点崩溃时的内存状态、寄存器状态和堆栈信息的调试信息,以快速定位和解决节点崩溃的问题。此时守护进程daemon会立刻侦测进程异常退出情况。
24.进一步地,daemon守护进程节点获取流媒体服务节点生成的core文件,并对core
文件进行解析,也就是从core文件的堆栈信息中提取出推流设备的信息,得到堆栈跟踪信息。进一步地,daemon守护进程节点根据堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单。
25.需要说明的是,在流媒体管理节点生成异常码流设备黑名单后,流媒体服务节点从流媒体管理节点订阅异常码流设备黑名单,因此,流媒体服务节点接收到第二推流设备端发起的第二设备码流,通过异常码流设备黑名单对第二设备码流进行过滤。
26.进一步需要说明的是,每个推流设备都有一个序列号,用于标识唯一性,因此,通过在core文件的堆栈信息中提取出推流设备的信息,可以提取出推流设备的序列号,通过反向识别异常码流设备并加入异常码流设备黑名单,有效阻挡异常码流在流媒体集群中的传播路径。
27.本发明实施例提供的异常码流过滤方法,接收第一推流设备端推送的第一设备码流,对第一设备码流进行第一次异常码流过滤,得到目标流数据;若确定进程异常退出,且进程异常退出为目标流数据导致的,则生成core文件;对core文件进行解析,得到堆栈跟踪信息;根据堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,基于异常码流设备黑名单对码流进行过滤。在异常码流过滤的过程中,对设备码流进行第一次异常码流过滤,使异常码流的防护更加全面及有效,同时,根据进程异常退出时的堆栈跟踪信息,反向识别异常码流设备并加入设备黑名单,有效阻挡异常码流在集群中的传播路径,提高了流媒体集群系统的可靠性、稳定性和容错性。
28.参照图3,图3是本发明实施例提供的异常码流过滤方法的整体方案流程图之一,对第一设备码流进行第一次异常码流过滤的具体分析如下:进一步地,基于步骤101记载的基于接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据,包括:获取所述第一设备码流中任一帧第一码流数据;确定任一帧所述第一码流数据的丢包率;若确定所述丢包率大于第一预设阈值,则过滤所述任一帧所述第一码流数据,得到第一待处理流数据;获取所述第一待处理流数据中任一帧第二码流数据的封装层参数,并根据所述封装层参数,得到所述目标流数据。
29.具体地,在推流slb将第一设备码流接入至流媒体集群后,流媒体服务节点获取第一设备码流中任一帧第一码流数据。进一步地,流媒体服务节点在传输层对任一帧第一码流数据进行检测,确定任一帧第一码流数据的丢包率。进一步地,流媒体服务节点将任一帧第一码流数据的丢包率与第一预设阈值进行数值大小比较,确定任一帧第一码流数据的丢包率是否大于第一预设阈值,其中,第一预设阈值根据实际情况设定。
30.进一步地,若确定任一帧第一码流数据的丢包率大于第一预设阈值,流媒体服务节点则过滤第一设备码流中的任一帧第一码流数据,得到第一待处理流数据。若确定任一帧第一码流数据的丢包率小于或等于第一预设阈值,流媒体服务节点则将第一设备码流确定为第一待处理流数据。
31.进一步地,流媒体服务节点获取第一待处理流数据中任一帧第二码流数据的封装层参数,并根据任一帧第二码流数据的封装层参数,得到目标流数据,其中,封装层参数包
括但不限制于序列号和时间码(presentation time stamp,pts)。
32.需要说明的是,pts是用于同步音视频流的重要参数,pts错误是指音视频流中的时间戳出现错误或不一致的情况,如果pts出现错误,会导致音视频不同步或播放出现异常,常见的pts错误包括pts漂移、pts乱序、pts跳变等,这些错误可能由于编码器、解码器、传输过程中的丢包的原因引起。
33.本发明实施例通过传输层对码流数据进行多维度的检测,进而屏蔽过滤了大部分异常码流数据,实现更加全面及有效的异常码流防护,对系统具有更高的鲁棒性和可靠性,保护流媒体服务整体的稳定性。
34.进一步地,所述根据所述封装层参数,得到所述目标流数据,包括:对任一帧所述第二码流数据的序列号连续性和时间码进行检查,得到任一帧所述第二码流数据的错误值,并确定任一帧所述第二码流数据的错误值是否大于第二预设阈值;若确定任一帧所述第二码流数据的错误值大于所述第二预设阈值,则过滤所述第一待处理流数据中的任一帧所述第二码流数据,得到第二待处理流数据;获取所述第二待处理流数据中任一帧第三码流数据的参数属性集,并根据任一帧所述第三码流数据的参数属性集,得到所述目标流数据。
35.具体地,流媒体服务节点在封装层根据获取到的任一帧第二码流数据的封装层参数,对任一帧第二码流数据的序列号和时间码进行检查,得到任一帧第二码流数据的错误值。进一步地,流媒体服务节点将任一帧第二码流数据的错误值与第二预设阈值进行数值大小比较,确定任一帧第二码流数据的错误值是否大于第二预设阈值,其中,第二预设阈值根据实际情况设定。
36.进一步地,若确定任一帧第二码流数据的错误值大于第二预设阈值,流媒体服务节点则过滤第一待处理流数据中的任一帧第二码流数据,得到第二待处理流数据。若确定任一帧第二码流数据的错误值小于或等于第二预设阈值,流媒体服务节点则将第一待处理流数据确定为第二待处理流数据。
37.进一步地,流媒体服务节点获取第二待处理流数据中任一帧第三码流数据的参数属性集,并根据任一帧第三码流数据的参数属性集,得到目标流数据。其中,参数属性集包括但不限制于序列参数集(sequence parameter set,sps)和图像参数集(picture parameter set,pps)。
38.需要说明的是,序列参数集是一种视频编码标准中的参数集,用于描述视频序列的基本特征和编码参数。图像参数集是一组用于描述和控制数字图像的参数,可以影响图像的亮度、对比度、噪声等方面。
39.本发明实施例通过封装层对码流数据进行多维度的检测,进而屏蔽过滤了大部分异常码流数据,实现更加全面及有效的异常码流防护,对系统具有更高的鲁棒性和可靠性,保护流媒体服务整体的稳定性。
40.进一步地,所述根据任一帧所述第三码流数据的参数属性集,得到所述目标流数据,包括:对任一帧所述第三码流数据的分辨率属性、编码格式属性、码率属性、音频格式属性、色彩空间属性和比特深度音属性进行检查,确定任一帧所述第三码流数据的参数属性
集中是否存在异常属性;若确定任一帧所述第三码流数据的参数属性集中存在异常属性,则过滤所述第二待处理流数据中的任一帧所述第三码流数据,得到第三待处理流数据;根据所述第三待处理流数据中任一帧第四码流数据的解码情况,得到所述目标流数据。
41.具体地,流媒体服务节点在编码层根据获取到的任一帧第三码流数据的参数属性集,对任一帧第三码流数据的序列参数集和图像参数集的参数集属性进行检查,也就是对第三码流数据的分辨率属性、编码格式属性、码率属性、音频格式属性、色彩空间属性和比特深度音属性进行检查,确定任一帧第三码流数据的参数属性集中是否存在异常属性。
42.进一步地,若确定任一帧第三码流数据的sps或pps的参数属性集中存在异常属性,流媒体服务节点则过滤第二待处理流数据中的任一帧第三码流数据,得到第三待处理流数据。若确定任一帧第三码流数据的sps或pps的参数属性集中不存在异常属性,流媒体服务节点则将第二待处理流数据确定为第三待处理流数据。
43.进一步地,流媒体服务节点根据第三待处理流数据中任一帧第四码流数据的解码情况,得到目标流数据,其中,解码情况根据数据业务类型确定,数据业务类型包括转码业务类型和非转码业务类型。
44.本发明实施例通过编码层对码流数据进行多维度的检测,进而屏蔽过滤了大部分异常码流数据,实现更加全面及有效的异常码流防护,对系统具有更高的鲁棒性和可靠性,保护流媒体服务整体的稳定性。
45.进一步地,所述根据所述第三待处理流数据中任一帧第四码流数据的解码情况,得到所述目标流数据,包括:若确定任一帧所述第四码流数据的数据业务类型为转码业务类型,则检查任一帧所述第四码流数据在解码过程中是否存在错误;若确定任一帧所述第四码流数据在解码过程中存在错误,则过滤所述第三待处理流数据中的任一帧所述第四码流数据,得到所述目标流数据;或/和,若确定任一帧所述第四码流数据的数据业务类型为非转码业务类型,则通过预设抽样频率对任一帧所述第四码流数据进行抽样解码检查,确定任一帧所述第四码流数据在解码过程中是否存在错误;若确定任一帧所述第四码流数据在解码过程中存在错误,则过滤所述第三待处理流数据中的任一帧所述第四码流数据,得到所述目标流数据。
46.需要说明的是,在编码层进行帧数据解码的过程中,根据流媒体服务器的性能,基于两种业务方式进行不同的解码策略,这两种业务方式包括转码业务和非转码业务,其中,转码业务是指将一个视频文件格式转换为另一个格式或将视频编码标准进行转换的过程,非转码业务是指直接将已经符合要求的视频文件传输给终端用户,而无需进行额外的转码操作。因此,对于转码业务,可以在视频帧实际解码的过程中进行解码检测;对于非转码业务,可以根据预设抽样频率对视频关键帧进行抽样解码检查,其中,预设抽样频率根据实际情况设定。
47.具体地,在编码层帧数据解码的过程中,流媒体服务节点确定第三待处理流数据中任一帧第四码流数据的数据业务类型。进一步地,若确定任一帧第四码流数据的数据业
务类型为转码业务类型,流媒体服务节点则检查任一帧第四码流数据在解码过程中是否存在错误。
48.进一步地,若确定任一帧第四码流数据在解码过程中存在错误,流媒体服务节点则过滤第三待处理流数据中的任一帧第四码流数据,得到目标流数据。若确定任一帧第四码流数据在解码过程中不存在错误,流媒体服务节点则将第三待处理流数据确定为目标流数据。
49.进一步地,若确定任一帧第四码流数据的数据业务类型为非转码业务类型,流媒体服务节点则通过预设抽样频率对任一帧第四码流数据进行抽样解码检查,确定任一帧第四码流数据在解码过程中是否存在错误。
50.进一步地,若确定任一帧第四码流数据在解码过程中存在错误,流媒体服务节点则过滤第三待处理流数据中的任一帧第四码流数据,得到目标流数据。若确定任一帧第四码流数据在解码过程中不存在错误,流媒体服务节点则将第三待处理流数据确定为目标流数据。需要说明的是,在确定任一帧第四码流数据在解码过程中存在错误后,若错误频率逐渐增加,流媒体服务节点则增加预设抽样频率;若错误频率逐渐降低,流媒体服务节点则降低预设抽样频率。
51.本发明实施例通过码流数据进行多层次多维度的检测,分别从传输层、封装层和编码层进行由表及里的检测,并屏蔽过滤了大部分异常码流数据,实现更加全面及有效的异常码流防护,对系统具有更高的鲁棒性和可靠性,保护流媒体服务整体的稳定性。
52.进一步地,步骤104基于根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,包括:若确定所述堆栈跟踪信息中存在第一推流设备信息,则获取所述第一推流设备信息的出现频率;若确定所述出现频率大于预设频率,则根据所述第一推流设备信息生成所述异常码流设备黑名单。
53.参照图4,图4是本发明实施例提供的异常码流过滤方法的整体方案流程图之二,对第一设备码流进行第二次异常码流过滤的具体分析如下:具体地,daemon守护进程节点对core文件进行解析,提取出core文件的堆栈跟踪信息,确定堆栈跟踪信息中是否存在第一推流设备信息。若确定堆栈跟踪信息中存在第一推流设备信息,daemon守护进程节点则将第一推流设备信息记录至疑似异常码流黑名单,将疑似异常码流黑名单发送至流媒体管理节点,并重新将流媒体服务节点进程拉起。进一步地,流媒体管理节点接收到疑似异常码流黑名单,并将疑似异常码流黑名单进行保存。
54.进一步地,流媒体管理节点获取第一推流设备信息的出现频率,并确定出现频率是否大于预设频率,其中,出现频率即预设时间内出现的次数,预设时间和预设频率根据实际情况设定。
55.进一步地,若确定出现频率大于预设频率,流媒体管理节点则根据第一推流设备信息生成异常码流设备黑名单。若确定出现频率小于或等于预设频率,流媒体管理节点则确定第一推流设备信息为正常码流设备。
56.本发明实施例基于实际业务中发生崩溃时的堆栈信息,反向识别异常码流设备,并将异常码流设备加入黑名单中,从而有效地阻挡异常码流在流媒体集群中的传播路径,
提高了流媒体集群系统的可靠性、稳定性和容错性。
57.进一步地,基于步骤104记载的基于所述异常码流设备黑名单对码流进行过滤,包括:接收到第二推流设备端发起第二设备码流的推流请求时,根据所述推流请求获取所述第二推流设备端的第二推流设备信息;若确定在所述异常码流设备黑名单中存在所述第二推流设备信息,则拒绝接收所述第二设备码流。
58.需要说明的是,在流媒体管理节点生成异常码流设备黑名单后,流媒体服务节点从流媒体管理节点订阅异常码流设备黑名单。
59.具体地,第二推流设备端向流媒体集群推送第二设备码流,流媒体服务节点接收到第二推流设备端发起的第二设备码流的推流请求时,根据推流请求获取第二推流设备端的第二推流设备信息,也就是根据推流请求获取第二推流设备端的序列号。
60.进一步地,流媒体服务节点将异常码流设备黑名单与第二推流设备信息进行推流设备信息比对,确定异常码流设备黑名单中是否存在第二推流设备信息。
61.进一步地,若确定异常码流设备黑名单中存在第二推流设备信息,流媒体服务节点则拒绝接收第二设备码流。若确定异常码流设备黑名单中不存在第二推流设备信息,流媒体服务节点则接收第二设备码流,并对第二设备码流进行正常业务处理。参照图5,图5是本发明实施例提供的异常码流黑名单拦截的流程示意图。
62.本发明实施例基于异常码流设备黑名单拒绝异常码流数据,既能有效阻挡已知规则的异常码流数据在集群中的传播路径,也能有效阻挡未知规则的异常码流数据在集群中的传播路径,提高了流媒体集群系统的可靠性、稳定性和容错性,同时,减少了由于异常码流数据导致的服务故障,减少了维护成本,以便接入更多的摄像头。
63.下面对本发明实施例提供的异常码流过滤系统进行描述,下文描述的异常码流过滤系统与上文描述的异常码流过滤方法可相互对应参照。参考图6,图6是本发明实施例提供的异常码流过滤系统的结构示意图,本发明实施例提供的异常码流过滤系统包括第一异常码流过滤模块601、进程检测模块602、解析模块603和第二异常码流过滤模块604。
64.第一异常码流过滤模块601,用于接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据;进程检测模块602,用于若确定进程异常退出且进程异常退出为所述目标流数据导致的,则生成core文件;解析模块603,用于对所述core文件进行解析,得到堆栈跟踪信息;第二异常码流过滤模块604,用于根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,并基于所述异常码流设备黑名单对码流进行过滤。
65.本发明实施例提供的异常码流过滤系统,接收第一推流设备端推送的第一设备码流,对第一设备码流进行第一次异常码流过滤,得到目标流数据;若确定进程异常退出,且进程异常退出为目标流数据导致的,则生成core文件;对core文件进行解析,得到堆栈跟踪信息;根据堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,基于异常码流设备黑名单对码流进行过滤。在异常码流过滤的过程中,对设备码流进行第一次异常码流过滤,使异常码流的防护更加全面及有效,同时,根据进程异常退出时的堆栈跟踪信息,
反向识别异常码流设备并加入设备黑名单,有效阻挡异常码流在集群中的传播路径,提高了流媒体集群系统的可靠性、稳定性和容错性。
66.在一个实施例中,第一异常码流过滤模块601还用于:获取所述第一设备码流中任一帧第一码流数据;确定任一帧所述第一码流数据的丢包率;若确定所述丢包率大于第一预设阈值,则过滤所述任一帧所述第一码流数据,得到第一待处理流数据;获取所述第一待处理流数据中任一帧第二码流数据的封装层参数,并根据所述封装层参数,得到所述目标流数据。
67.在一个实施例中,第一异常码流过滤模块601还用于:对任一帧所述第二码流数据的序列号连续性和时间码进行检查,得到任一帧所述第二码流数据的错误值,并确定任一帧所述第二码流数据的错误值是否大于第二预设阈值;若确定任一帧所述第二码流数据的错误值大于所述第二预设阈值,则过滤所述第一待处理流数据中的任一帧所述第二码流数据,得到第二待处理流数据;获取所述第二待处理流数据中任一帧第三码流数据的参数属性集,并根据任一帧所述第三码流数据的参数属性集,得到所述目标流数据。
68.在一个实施例中,第一异常码流过滤模块601还用于:对任一帧所述第三码流数据的分辨率属性、编码格式属性、码率属性、音频格式属性、色彩空间属性和比特深度音属性进行检查,确定任一帧所述第三码流数据的参数属性集中是否存在异常属性;若确定任一帧所述第三码流数据的参数属性集中存在异常属性,则过滤所述第二待处理流数据中的任一帧所述第三码流数据,得到第三待处理流数据;根据所述第三待处理流数据中任一帧第四码流数据的解码情况,得到所述目标流数据。
69.在一个实施例中,第一异常码流过滤模块601还用于:若确定任一帧所述第四码流数据的数据业务类型为转码业务类型,则检查任一帧所述第四码流数据在解码过程中是否存在错误;若确定任一帧所述第四码流数据在解码过程中存在错误,则过滤所述第三待处理流数据中的任一帧所述第四码流数据,得到所述目标流数据;或/和,若确定任一帧所述第四码流数据的数据业务类型为非转码业务类型,则通过预设抽样频率对任一帧所述第四码流数据进行抽样解码检查,确定任一帧所述第四码流数据在解码过程中是否存在错误;若确定任一帧所述第四码流数据在解码过程中存在错误,则过滤所述第三待处理流数据中的任一帧所述第四码流数据,得到所述目标流数据。
70.在一个实施例中,第二异常码流过滤模块604还用于:若确定所述堆栈跟踪信息中存在第一推流设备信息,则获取所述第一推流设备信息的出现频率;若确定所述出现频率大于预设频率,则根据所述第一推流设备信息生成所述异常
码流设备黑名单。
71.在一个实施例中,异常码流过滤系统还用于:接收到第二推流设备端发起第二设备码流的推流请求时,根据所述推流请求获取所述第二推流设备端的第二推流设备信息;若确定在所述异常码流设备黑名单中存在所述第二推流设备信息,则拒绝接收所述第二设备码流。
72.本发明提供的异常码流过滤系统的具体实施例与异常码流过滤方法各实施例基本相同,在此不作赘述。
73.图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)710、通信接口(communication interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的计算机程序,以执行异常码流过滤方法的步骤,例如包括:接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据;若确定进程异常退出,且所述进程异常退出为所述目标流数据导致的,则生成core文件;对所述core文件进行解析,得到堆栈跟踪信息;根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,并基于所述异常码流设备黑名单对码流进行过滤。
74.此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
75.另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括计算机程序,所述计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各实施例所提供的异常码流过滤方法的步骤,例如包括:接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据;若确定进程异常退出,且所述进程异常退出为所述目标流数据导致的,则生成core文件;对所述core文件进行解析,得到堆栈跟踪信息;根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,并基于所述异常码流设备黑名单对码流进行过滤。
76.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
77.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
78.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

技术特征:
1.一种异常码流过滤方法,其特征在于,包括:接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据;若确定进程异常退出,且所述进程异常退出为所述目标流数据导致的,则生成core文件;对所述core文件进行解析,得到堆栈跟踪信息;根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,并基于所述异常码流设备黑名单对码流进行过滤。2.根据权利要求1所述的异常码流过滤方法,其特征在于,所述基于所述异常码流设备黑名单对码流进行过滤,包括:接收到第二推流设备端发起第二设备码流的推流请求时,根据所述推流请求获取所述第二推流设备端的第二推流设备信息;若确定在所述异常码流设备黑名单中存在所述第二推流设备信息,则拒绝接收所述第二设备码流。3.根据权利要求1所述的异常码流过滤方法,其特征在于,所述根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,包括:若确定所述堆栈跟踪信息中存在第一推流设备信息,则获取所述第一推流设备信息的出现频率;若确定所述出现频率大于预设频率,则根据所述第一推流设备信息生成所述异常码流设备黑名单。4.根据权利要求1至3任一项所述的异常码流过滤方法,其特征在于,所述对所述第一设备码流进行第一次异常码流过滤,得到目标流数据,包括:获取所述第一设备码流中任一帧第一码流数据;确定任一帧所述第一码流数据的丢包率;若确定所述丢包率大于第一预设阈值,则过滤所述任一帧所述第一码流数据,得到第一待处理流数据;获取所述第一待处理流数据中任一帧第二码流数据的封装层参数,并根据所述封装层参数,得到所述目标流数据。5.根据权利要求4所述的异常码流过滤方法,其特征在于,所述根据所述封装层参数,得到所述目标流数据,包括:对任一帧所述第二码流数据的序列号连续性和时间码进行检查,得到任一帧所述第二码流数据的错误值,并确定任一帧所述第二码流数据的错误值是否大于第二预设阈值;若确定任一帧所述第二码流数据的错误值大于所述第二预设阈值,则过滤所述第一待处理流数据中的任一帧所述第二码流数据,得到第二待处理流数据;获取所述第二待处理流数据中任一帧第三码流数据的参数属性集,并根据任一帧所述第三码流数据的参数属性集,得到所述目标流数据。6.根据权利要求5所述的异常码流过滤方法,其特征在于,所述根据任一帧所述第三码流数据的参数属性集,得到所述目标流数据,包括:对任一帧所述第三码流数据的分辨率属性、编码格式属性、码率属性、音频格式属性、
色彩空间属性和比特深度音属性进行检查,确定任一帧所述第三码流数据的参数属性集中是否存在异常属性;若确定任一帧所述第三码流数据的参数属性集中存在异常属性,则过滤所述第二待处理流数据中的任一帧所述第三码流数据,得到第三待处理流数据;根据所述第三待处理流数据中任一帧第四码流数据的解码情况,得到所述目标流数据。7.根据权利要求6所述的异常码流过滤方法,其特征在于,所述根据所述第三待处理流数据中任一帧第四码流数据的解码情况,得到所述目标流数据,包括:若确定任一帧所述第四码流数据的数据业务类型为转码业务类型,则检查任一帧所述第四码流数据在解码过程中是否存在错误;若确定任一帧所述第四码流数据在解码过程中存在错误,则过滤所述第三待处理流数据中的任一帧所述第四码流数据,得到所述目标流数据;或/和,若确定任一帧所述第四码流数据的数据业务类型为非转码业务类型,则通过预设抽样频率对任一帧所述第四码流数据进行抽样解码检查,确定任一帧所述第四码流数据在解码过程中是否存在错误;若确定任一帧所述第四码流数据在解码过程中存在错误,则过滤所述第三待处理流数据中的任一帧所述第四码流数据,得到所述目标流数据。8.一种异常码流过滤系统,其特征在于,包括:第一异常码流过滤模块,用于接收第一推流设备端推送的第一设备码流,并对所述第一设备码流进行第一次异常码流过滤,得到目标流数据;进程检测模块,用于判断出进程异常退出,且确定所述进程异常退出为所述目标流数据导致的,则生成core文件;解析模块,用于对所述core文件进行解析,得到堆栈跟踪信息;第二异常码流过滤模块,用于根据所述堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,并基于所述异常码流设备黑名单对码流进行过滤。9.一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的异常码流过滤方法。10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的异常码流过滤方法。

技术总结
本发明涉及计算机技术领域,提供一种异常码流过滤方法、系统、电子设备和存储介质,该方法包括:对接收到的第一设备码流进行第一次异常码流过滤,得到目标流数据;若确定进程异常退出,且进程异常退出为目标流数据导致,则生成core文件;对core文件进行解析,得到堆栈跟踪信息;根据堆栈跟踪信息进行第二次异常码流过滤,得到异常码流设备黑名单,基于异常码流设备黑名单对码流进行过滤。本发明对设备码流进行第一次异常码流过滤,使异常码流的防护更加全面及有效,同时,根据进程异常退出时的堆栈跟踪信息,反向识别异常码流设备并加入设备黑名单,有效阻挡异常码流在集群中的传播路径,提高了流媒体集群系统的可靠性、稳定性和容错性。容错性。容错性。


技术研发人员:范佳伟 程宝平 汪胜 陶晓明
受保护的技术使用者:清华大学
技术研发日:2023.09.06
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐