一种视频监控平台码流并行转码的系统和方法与流程

文档序号:11523952阅读:629来源:国知局
一种视频监控平台码流并行转码的系统和方法与流程

本发明涉及城市视频监控领域,更具体的是一种视频监控平台码流并行转码的系统和方法。



背景技术:

为了更好的指导全国公安机关开展视频监控系统联网建设及视频图像信息整合与共享工作,推广和实施以gb/t28181等标准作为公安行业视频监控系统互联的标准,并对省市平台建设主要任务、联网架构、标准强制项、标准符合性测试、联网平台功能性能进行了规范。gb/t28181标准对于视频监控平台互联、视频监控平台与设备互联提供统一的信令接口、视音频编解码接口,所有系统之间通过标准互访,简化了不同厂家间的互联对接工作,缩短系统互联的项目周期,节省了信息共享应用的社会整体资源成本,有利于增强接口、系统的稳定度和成熟度。

然而,在符合国标的系统推进的过程中,出现最大的问题是编码的适应性问题。简单地说,对目前已经存在的大量监控前端,尚没有很好的办法可以接入到新的国标系统中来,这是因为目前大量的编码设备,不可能通过更换、升级等手段,变成符合国标编解码标准的设备。如果要兼顾这些设备的实时视频,必须要通过转码网关进行转换,转换成符合国标的码流。转码网关是一种将私有码流通过厂家提供的软件开发工具包(softwaredevelopmentkit,sdk)解码成原始视频格式yuv(是被欧洲电视系统所采用的一种颜色编码方法),然后再编码成h264、mpeg4或ps等符合国标的格式后进行转发的服务器程序。在转码网关实施过程中,存在两个亟待解决的问题。第一:由于设备厂家众多,编码方式各不相同,解码sdk相互不兼容或不稳定,从而影响整个转码程序稳定性和可维护性。部分设备厂家只提供32位接口,32位单进程的应用程序最多只能申请不到2g内存,会导致硬件资源的严重浪费;在部分厂家sdk不太稳定的情况下需要经常维护升级或接口变更,导致整个网关需要重新开发、部署和测试,浪费人力成本,还可能影响到用户体验。第二:视频监控系统中对码流的实时性、清晰度、并发度的要求较高,当上联平台用户量增多,频繁浏览实时视频和录像时,这时转码网关的并发性能受到挑战,cpu、内存、网络都是会成为瓶颈,丢包、卡顿、花屏等问题也随之而来。

现有技术提供一种基于多进程的转码方法,其做法由主进程创建多个子进程。各子进程之间的处理过程相互独立,保证了转码主程序运行的稳定性,且各子进程均有独立的2gb地址空间和独立的资源。同时主进程通过子进程的负载程度分配任务,也保证子进程不因为负载过高导致崩溃,提高转码的稳定性。另外通过心跳保活,解码进程崩溃后也能够重新启动。

上述技术解决了单进程2g内存限制,但仅仅降低了解码sdk不稳定崩溃带来的影响。假设如果某用户针对某一设备(sdk不稳定)操作频繁,使用路数较多。这样大部分解码子进程就会不断的进入崩溃重启的循环状态,其他用户查看其他设备也受到影响。此时整个转码网关也基本无法使用了,所以并没有很好的解决它的稳定性。而且也没有带来程序的可维护性和并发性能的提升。



技术实现要素:

本发明实施例的目的在于提供一种视频监控平台码流并行转码的系统和方法,旨在解决视频监控平台的互联过程中,转码服务器的负载严重的问题。

根据本发明实施例的一方面,提供了一种视频监控平台码流并行转码的系统,包括:网管服务器、调度服务器和转码服务器集群;其中,

所述网管服务器,用于管理所述调度服务器和所述转码服务器集群;

所述调度服务器,用于分析所述转码服务器集群中各转码服务器的负载状态,确定得到负载状态符合预设第一要求的转码服务器,并将接收到的码流转码请求发送至所述确定得到的转码服务器;

所述转码服务器集群中的转码服务器,包括:管理进程和至少一个转码进程;其中,所述管理进程,用于将接收到的码流转码请求发送至所述至少一个转码进程;所述转码进程,用于对获取到的视频码流进行转码。

根据本发明实施例的另一方面,还提供了一种视频监控平台码流并行转码的方法,所述视频监控平台包括:网管服务器、调度服务器和转码服务器集群,所述转码服务器集群中的转码服务器,包括:管理进程和至少一个转码进程;

所述方法包括:

采用所述网管服务器管理所述调度服务器和所述转码服务器集群;

采用所述调度服务器分析所述转码服务器集群中各转码服务器的负载状态,确定得到负载状态符合预设第一要求的转码服务器,并将接收到的码流转码请求发送至所述确定得到的转码服务器;

采用所述管理进程将接收到的码流转码请求发送至所述至少一个转码进程;

采用所述转码进程对获取到的视频码流进行转码。

与现有技术相比,本发明实施例的有益效果在于:

本发明实施例提供的一种视频监控平台码流并行转码的系统和方法,该系统包括:网管服务器、调度服务器和转码服务器集群;其中,所述网管服务器,用于管理所述调度服务器和所述转码服务器集群;所述调度服务器,用于分析所述转码服务器集群中各转码服务器的负载状态,确定得到负载状态符合预设第一要求的转码服务器,并将接收到的码流转码请求发送至所述确定得到的转码服务器;所述转码服务器集群中的转码服务器,包括:管理进程和至少一个转码进程;其中,所述管理进程,用于将接收到的码流转码请求发送至所述至少一个转码进程;所述转码进程,用于对获取到的视频码流进行转码。本发明实施例在程序和架构方面提供了综合的解决方案,通过设置包含多台转码服务器的转码服务器集群对获取到的目标视频码流进行转码,具体可以从转码服务器集群中的多台转码服务器中选择负载较低的转码服务器对获取到的目标视频码流进行转码,在实际应用中,可以将负载状态符合预设第一要求的转码服务器确定为负载较低的转码服务器。本发明实施例设置包含多台转码服务器的转码服务器集群,并利用其中负载较低的转码服务器进行转码,与现有技术中仅利用一台转码服务器的多个转码进程进行转码相比,节省了由于转码进程崩溃而导致的转码进程频繁重启所浪费的时间,提高了转码的效率和可靠性。

而且,每台转码服务器均包括管理进程和至少一个转码进程,通过管理进程将转码服务器接收到的码流转码请求发送给至少一个转码进程,通过转码进程对获取到的目标视频码流进行转码。转码服务器中的管理进程可以协调至少一个转码进程的转码任务,提升至少一个转码进程的利用率,降低了转码进程崩溃、重启的几率,加快了转码的速度。

附图说明

图1是本发明实施例提供的一种视频监控平台码流并行转码的系统的网络拓扑图;

图2是本实施例提供的一种视频监控平台码流并行转码的系统结构框图;

图3是本发明实施例提供的一种视频监控平台码流并行转码的方法中调度服务器的运行流程图;

图4是本发明实施例提供的一种视频监控平台码流并行转码的方法中转码服务器的运行流程图;

图5是本发明实施例提供的一种视频监控平台码流并行转码的方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

实施例一

参照图1,是本发明实施例提供的一种视频监控平台码流并行转码的系统的网络拓扑图。

所述系统包括:网管服务器、调度服务器和转码服务器集群。其中,转码服务器集群包括多台转码服务器,图1中以转码服务器集群包括三台转码服务器为例进行说明,所述系统通过网关与国标平台相连。

网管服务器用于管理调度服务器和转码服务器集群。具体可以为每个服务器(包括调度服务器和转码服务器)分配唯一的id,远程配置或重启调度服务器或转码服务器;还可以查看各服务器的运行状况,包括在线状态、转码路数等还包括gpu、内存、网络等的硬件资源的使用情况,还可以用于更新、卸载或加载转码服务器的解码器。

调度服务器可以从非国标平台获取目标视频码流,管理接收转码服务器集群注册、心跳及负载状况等信息,接收网管服务器的重启、配置消息并向网管服务器发送硬件资源状况,接收来自上联平台的视频请求,选择合适的低负载的转码服务器,其中视频请求包括实时视频点播和停止、录像点播和停止、录像暂停和继续、录像的定位,快放,慢放等操作等。本实施例中,调度服务器用于分析转码服务器集群中各转码服务器的负载状态,确定得到负载状态符合预设第一要求的转码服务器,并将接收到的码流转码请求发送至确定得到的转码服务器。

转码服务器集群中的转码服务器向调度服务器发送注册、心跳及负载状况等信息,接收网管服务器的重启、配置消息及解码器更新、卸载或加载等消息并向网管服务器发送硬件资源状况和当前转码路数等信息。每台转码服务器均包括:管理进程和至少一个转码进程;其中,管理进程用于分析至少一个转码进程的负载状态,确定得到负载状态符合预设第二要求的转码进程,并将转码服务器接收到的码流转码请求发送给至少一个转码进程;转码进程用于对从调度服务器获取到的目标视频码流进行转码。转码进程包括解码模块,解码模块用于分析转码服务器中配置的解码器,并根据分析结果重启、卸载解码器。转码进程还包括分析模块,分析模块用于判断获取到的目标视频码流是否为标准码流格式,若为标准码流格式,则过滤获取到的目标视频码流的私有填充数据。转码进程还包括gpu编码模块,gpu编码模块用于判断转码服务器是否支持gpu编码模式,若支持gpu编码模式,则按照gpu编码模式将获取到的目标视频码流编码为标准码流格式。

一种可行的实施方式中,如图2所示,本实施例提供的视频监控平台码流并行转码的系统包括:网管服务器201、调度服务器202和转码服务器203,其中,转码服务器203包括管理进程204和转码进程205。转码进程205包括:码流分析模块206、厂家解码模块207、ps复用模块208、gpu编码模块209。各进程或模块功能将在实施例三转码服务器流程中作具体说明。

实施例二

参照图3,是本发明实施例提供的一种视频监控平台码流并行转码的方法中调度服务器的运行流程图。

调度服务器的运行步骤包括:

步骤301,从上联国标平台接收视频请求。

视频请求包括实时视频点播和停止、录像点播和停止、录像暂停和继续、录像的定位、快放、慢放等操作。

步骤302,判断是否存在负载较低的转码服务器,若存在,则执行步骤303;若不存在,则执行步骤304。

步骤303,通知负载较低的转码服务器进行转码任务。

步骤304,提示负载已满,转码任务结束。

通过集群式转码,用户可以根据使用规模,来部署转码服务器。此方式提高了视频监控平台的可以拓展性和并发性能。

实施例三

参照图4,是本发明实施例提供的一种视频监控平台码流并行转码的方法中转码服务器的运行流程图。

转码服务器的运行步骤包括:

步骤401,从管理服务器接收视频请求。

步骤402,判断是否存在负载较低的转码进程,如不存在,则提示无空闲转码进程,转码任务结束;如存在,则进入步骤403。

视频请求包括实时视频点播和停止、录像点播和停止、录像暂停和继续、录像的定位、快放、慢放等操作。

步骤403,转码进程获取视频请求后,向非标平台发送视频请求,同时接收目标视频码流。

步骤404,通过码流分析模块判断目标视频码流是否为标准码流。

因为部分厂家的码流采用标准码流加私有码流填充而成,具体可以通过识别不同编码格式的十六进制字节,比如h264的0x0000000167、0x0000000168、0x0000000165、0x0000000161等,mpeg4的0x000001b0、0x000001b6等。因此,如果目标视频码流是非标转码流,则执行步骤405;如果目标视频码流是标准码流,则可以跳过解码、编码的步骤,执行步骤406。

步骤405,判断是否存在对应的解码器,如果不存在,则提示解码器不存在,转码任务结束;如果存在,则执行步骤407。

步骤406,过滤掉私有码流填充部分,执行ps复用和转发码流,转码结束。

步骤407,通过解码器将目标视频码流解码成yuv帧序列。

步骤408,判断是否支持gpu编码,如果支持,则执行步骤409,然后执行步骤406;如果不支持,执行步骤410。

步骤409,将yuv帧序列进行gpu编码成标准的h264或mpeg4格式。

步骤410,对目标视频码流进行软件编码。

能够充分的利用硬件资源,增加编码效率。目前能兼容市面上常用的显卡(intel、nvidia,amd)进行加速编码。

另外,在步骤407的执行过程中,判断是否出现异常崩溃的情况,若出现,则重启崩溃进程,通过分析堆栈日志,卸载对应的解码器,避免重复的错误发生,网管服务器也可以通过上传更新消息来重新加载该解码器。若未出现,则执行步骤408。

实施例四

参照图5,是本发明实施例提供的一种视频监控平台码流并行转码的方法的流程图。

所述视频监控平台包括:网管服务器、调度服务器和转码服务器集群,所述转码服务器集群中的转码服务器,包括:管理进程和至少一个转码进程。

步骤501,采用所述网管服务器管理所述调度服务器和所述转码服务器集群。

步骤502,采用所述调度服务器分析所述转码服务器集群中各转码服务器的负载状态,确定得到负载状态符合预设第一要求的转码服务器,并将接收到的码流转码请求发送至所述确定得到的转码服务器。

步骤503,采用所述管理进程将接收到的码流转码请求发送至所述至少一个转码进程。

可选地,采用所述管理进程分析所述至少一个转码进程的负载状态,确定得到负载状态符合预设第二要求的转码进程,并将接收到的码流转码请求发送至所述确定得到的转码进程。

步骤504,采用所述转码进程对获取到的目标视频码流进行转码。

可选地,所述转码进程包括解码模块,本发明实施例一种视频监控平台码流并行转码的方法还包括:采用所述解码模块分析所述转码服务器中配置的解码器,并根据分析结果重启、卸载解码器。

可选地,所述转码进程包括分析模块,本发明实施例一种视频监控平台码流并行转码的方法还包括:采用所述分析模块判断所述获取到的目标视频码流是否为标准码流格式,若为标准码流格式,则过滤所述获取到的目标视频码流的私有填充数据。

可选地,所述转码进程包括gpu编码模块,本发明实施例一种视频监控平台码流并行转码的方法还包括:采用所述gpu编码模块判断所述转码服务器是否支持gpu编码模式,若支持gpu编码模式,则按照所述gpu编码模式将所述获取到的目标视频码流编码为标准码流格式。

本发明实施例中,网管服务器用于添加或重启调度服务器或转码服务器。上传、卸载或加载解码器,监视各服务器运行状况。

调度服务器收到上联平台的转码任务,通过分析转码服务器集群的负载情况,向负载低的转码服务器分配转码任务;收到上联平台的转码结束请求,向转码服务器发送转码结果请求;收到网管服务器重启请求,执行重新启动。

转码服务器的管理进程接收来自调度服务器的转码任务后,通过分析各个转码进程的负载情况,向负载低的转码进程发送转码请求;收到调度服务器转码结束请求后,向转码进程发送转码结束请求;收到网管服务器重启请求,重新启动;或收到网管服务器卸载/加载解码器请求,卸载、加载对应的解码器;收到网管服务器上传、更新解码器请求,上传、更新解码器。

转码进程收到管理进程的转码任务,向下联平台申请目标视频码流;收到管理进程的转码结束请求后,向下联平台发送目标视频码流停止申请,同时也停止转码任务;根据管理进程的通知消息卸载、加载解码器。

本发明实施例采用多进程分散转码,突破单进程2g内存限制。同时降低由于解码sdk不兼容或不稳定带来的风险。实现gpu加速编码功能,自动识别是否含有gpu加速模块,如果有,采用gpu加速编码,大大提高编码效率和节省cpu资源。通过对码流的动态分析,剥离私有码流,无须解码和编码就可以实现码流的标准化。动态管理解码器,随时加载或卸载,分析异常日志,自动卸载异常解码器,也可以更新解码器后重新加载,提高程序稳定性,且易于维护更新。动态调整编码码率,在转码服务器负荷较高的情况下,可适当降低编码码率,从而降低负荷,避免出现比较严重的卡顿、花屏现象。转码服务器集群方式部署,实现负载均衡,优点在于可以根据平台的规模、用户量来部署转码服务器数量,满足不同的使用需求。

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