CN102694869A - 一种信号源的接入方法和系统 - Google Patents
一种信号源的接入方法和系统 Download PDFInfo
- Publication number
- CN102694869A CN102694869A CN2012101857677A CN201210185767A CN102694869A CN 102694869 A CN102694869 A CN 102694869A CN 2012101857677 A CN2012101857677 A CN 2012101857677A CN 201210185767 A CN201210185767 A CN 201210185767A CN 102694869 A CN102694869 A CN 102694869A
- Authority
- CN
- China
- Prior art keywords
- plug
- signal source
- preview
- unit
- services
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例公开了一种信号源的接入方法和系统,其中方法包括:预览管理服务程序为解码插件服务程序的解码插件注册,并为连接插件服务程序的连接插件注册;接收到客户端发送的启动信号预览的指令后,将连接插件参数发送给解码插件服务程序;接收解码插件服务程序依据所述连接插件参数返回的接收目标数据的地址和端口号;根据连接插件类型,选择连接插件;将信号源参数发送给连接插件服务程序,使连接插件服务程序依据所述信号源参数连接信号源,并接收信号源返回的源数据。通过使用插件,有效地隔离了系统的稳定和不稳定部分,从而实现了稳定地接入第三方信号源。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种信号源的接入方法和系统。
背景技术
在互联网协议(Internet Protocol,IP)信号源种类很多,它是为网络其它设备提供信号的装置,例如:IP摄像头,网络视频服务器(Digital Video Server,DVS)、硬盘录像机(Digital Video Recorder,DVR)、各种监控平台、编解码器等。
信号源的接入一般都包含以下几个阶段:连接信号源,获取信号源的数据(例如:视频数据),对视频数据进行解码,然后显示。
要接入IP信号源,目前面临着信号源生产厂家众多、生产厂家所提供的二次开发包质量良莠不齐等问题。二次开发包是指商业软件为了便于用户的二次开发,而提供的开发包,一般为库程序,例如:软件开发工具包(SoftwareDevelopment Kit Windows,SDK)。这些问题会进一步造成信号源接入的不稳定导致信号接收设备不稳定甚至崩溃。怎样提供一个稳定可靠的快速接入第三方信号源的方案成为一个迫切需要解决的问题。
发明内容
本发明实施例提供了一种信号源的接入方法和系统,用于实现稳定地接入第三方信号源。
一种信号源的接入方法,包括:
预览管理服务程序为解码插件服务程序的解码插件注册,并为连接插件服务程序的连接插件注册;
预览管理服务程序接收到客户端发送的启动信号预览的指令后,将连接插件参数发送给解码插件服务程序;
预览管理服务程序接收解码插件服务程序依据所述连接插件参数返回的接收目标数据的地址和端口号;
预览管理服务程序根据连接插件类型,选择连接插件;
预览管理服务程序将信号源参数发送给连接插件服务程序,使连接插件服务程序依据所述信号源参数连接信号源,并接收信号源返回的源数据。
可选地,所述方法,还包括:
连接插件服务程序向解码插件服务程序中与所述源数据的类型对应的解码插件发送所述源数据;
解码插件服务程序调用与所述源数据的类型对应的解码插件对源数据解码,并将解码后的目标数据发送给预览客户端。
优选地,
所述预览管理服务程序为解码插件服务程序的解码插件注册包括:预览管理服务程序接收并存储解码插件服务程序发送的解码插件的类型、互联网协议IP地址以及端口号;
预览管理服务程序为连接插件服务程序的连接插件注册包括:预览管理服务程序接收并存储连接插件服务程序发送的连接插件的类型、IP地址以及端口号;
所述启动信号预览的指令携带有信号源的连接插件类型、解码插件类型,IP地址以及端口号;
所述将连接插件参数发送给解码插件服务程序包括:将连接插件的类型、IP地址以及端口号发送给解码插件服务程序;
所述预览管理服务程序将信号源参数发送给连接插件服务程序包括:
预览管理服务程序将信号源的IP地址以及端口号发送给连接插件服务程序。
可选地,所述信号源参数包括:信号源的软件开发工具包SDK、协议类型、硬件板卡类型中的任意一项;
所述连接插件服务程序依据所述信号源参数连接信号源包括:
所述连接插件服务程序调用所述SDK连接信号源,或者,所述连接插件服务程序依据所述协议类型连接信号源,或者,所述连接插件服务程序调用所述硬件板卡类型对应的SDK连接信号源。
可选地,所述将解码后的目标数据发送给预览客户端包括:
通过内存映射将解码后的目标数据发送给预览客户端;或者通过套接字Socket将解码后的目标数据发送给预览客户端。
可选地,所述预览管理服务程序根据连接插件类型,选择连接插件包括:预览管理服务程序选择负载最轻的连接插件,并将所选择的连接插件负载增加设定值。
一种信号源的接入系统,包括:
预览管理服务单元,用于为解码插件服务单元的解码插件注册,并为连接插件服务单元的连接插件注册;接收到客户端发送的启动信号预览的指令后,将连接插件参数发送给解码插件服务单元;接收解码插件服务单元依据所述连接插件参数返回的接收目标数据的地址和端口号;根据连接插件类型,选择连接插件;将信号源参数发送给连接插件服务单元,使连接插件服务单元依据所述信号源参数连接信号源,并接收信号源返回的源数据;
解码插件服务单元,用于接收预览管理服务单元发送的连接插件参数;依据接收到的连接插件参数向预览管理服务单元返回的接收目标数据的地址和端口号;
接插件服务单元,用于接收预览管理服务单元发送的信号源参数,并依据所述信号源参数连接信号源,并接收信号源返回的源数据。
可选地,所述连接插件服务单元,还用于向解码插件服务单元中与所述源数据的类型对应的解码插件发送所述源数据;
所述解码插件服务单元,还用于调用与所述源数据的类型对应的解码插件对源数据解码,并将解码后的目标数据发送给预览客户端。
可选地,所述信号源参数包括:信号源的SDK、协议类型、硬件板卡类型中的任意一项;
所述接插件服务单元,具体用于依据所述信号源参数连接信号源包括:调用所述SDK连接信号源,或者,依据所述协议类型连接信号源,或者,调用所述硬件板卡类型对应的SDK连接信号源。
可选地,所述解码插件服务单元,具体用于将解码后的目标数据发送给预览客户端包括:用于通过内存映射将解码后的目标数据发送给预览客户端;或者通过套接字Socket将解码后的目标数据发送给预览客户端。
从以上技术方案可以看出,本发明实施例具有以下优点:通过使用插件,有效地隔离了系统的稳定和不稳定部分,使得第三方厂家提供的不稳定的SDK,其影响只是导致该厂家的摄像头无法接入,而不会影响其他任何已经稳定接入的厂家的信号源的接入。各个模块的逻辑简单,效率高,系统稳定;能够快速接入任意一种第三方摄像头,无论是提供SDK还是不提供二次开发SDK。从而实现了稳定地接入第三方信号源。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例方法流程示意图;
图2为本发明实施例系统结构示意图;
图3为本发明实施例系统组成结构示意图;
图4为本发明实施例另一系统组成结构示意图;
图5为本发明实施例另一方法流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在实现本发明实施例的过程中,发明人综合分析了当前信号源的类型并进行归纳如下:
接入信号源具有通用的过程,可以进行固化,该过程即:连接信号源,获取视频数据,对视频数据进行解码,然后显示。
接入信号源的另一部分会经常变化,对于经常变化的部分有:连接信号源所需提供的参数、连接信号源的软件开发工具包(Software Development KitWindows,SDK)、协议以及硬件板卡、所获取的视频数据的编码格式等。
基于上述分析归纳结果,本发明实施例提出了采用插件化设计,对于规定不变的处理流程,在插件宿主程序中实现,而在插件中实现经常变化的部分。为了能保证系统的稳定可靠,则必须将不稳定因素限定在最小的范围内:即哪个厂家的SDK不稳定,则只能影响该厂家的信号源接入,而不能让其他的厂家的信号源工作不正常。
基于以上思想,本发明实施例提供了一种信号源的接入方法,如图1所示,包括:
101:预览管理服务程序为解码插件服务程序的解码插件注册,并为连接插件服务程序的连接插件注册;
可选地,上述预览管理服务程序为解码插件服务程序的解码插件注册包括:预览管理服务程序接收并存储解码插件服务程序发送的解码插件的类型、互联网协议IP地址以及端口号;
可选地,预览管理服务程序为连接插件服务程序的连接插件注册包括:预览管理服务程序接收并存储连接插件服务程序发送的连接插件的类型、IP地址以及端口号;
需要说明的是上述IP地址以及端口号以外还可以有其他参数,本发明实施例对此不予限定。关于注册如何实现以及在程序中的功能结构划分,在后续实施例中将会给出进一步的说明。
102:预览管理服务程序接收到客户端发送的启动信号预览的指令后,将连接插件参数发送给解码插件服务程序;
上述启动信号预览的指令携带有信号源的连接插件类型、解码插件类型,IP地址以及端口号;上述将连接插件参数发送给解码插件服务程序包括:将连接插件的类型、IP地址以及端口号发送给解码插件服务程序;
103:预览管理服务程序接收解码插件服务程序依据上述连接插件参数返回的接收目标数据的地址和端口号;
104:预览管理服务程序根据连接插件类型,选择连接插件;
可选地,上述预览管理服务程序根据连接插件类型,选择连接插件包括:预览管理服务程序选择负载最轻的连接插件,并将所选择的连接插件负载增加设定值。需要说明的是,连接插件的选择规则可以有很多种,具体采用何种规则并不影响本发明实施例的实现,以上关于依据负载轻重来选择的举例不应理解为对本发明实施例的唯一限定。
105:预览管理服务程序将信号源参数发送给连接插件服务程序,使连接插件服务程序依据上述信号源参数连接信号源,并接收信号源返回的源数据。
采用以上实施例,采用插件化设计,对于规定不变的处理流程,在插件宿主程序中实现,而在插件中实现经常变化的部分。为了能保证系统的稳定可靠,则必须将不稳定因素限定在最小的范围内:即哪个厂家的SDK不稳定,则只能影响该厂家的信号源接入,而不能让其他的厂家的信号源工作不正常。通过使用插件,有效地隔离了系统的稳定和不稳定部分,使得第三方厂家提供的不稳定的SDK,其影响只是导致该厂家的摄像头无法接入,而不会影响其他任何已经稳定接入的厂家的信号源的接入。各个模块的逻辑简单,效率高,系统稳定;能够快速接入任意一种第三方摄像头,无论是提供SDK还是不提供二次开发SDK。从而实现了稳定地接入第三方信号源。
可选地,上述预览管理服务程序将信号源参数发送给连接插件服务程序包括:预览管理服务程序将信号源的IP地址以及端口号发送给连接插件服务程序。
可选地,上述信号源参数包括:信号源的SDK、协议类型、硬件板卡类型中的任意一项;上述连接插件服务程序依据上述信号源参数连接信号源包括:上述连接插件服务程序调用上述SDK连接信号源,或者,上述连接插件服务程序依据上述协议类型连接信号源,或者,上述连接插件服务程序调用上述硬件板卡类型对应的SDK连接信号源。需要说明的是,信号源的类型可能有很多种,因此对应地信号源参数也可能有很多种,以上举例不应理解为对本发明实施例的限定。
以上方法已经实现了信号源的接入过程,本发明实施例还进一步提供了解码方法的方案,上述方法还包括:连接插件服务程序向解码插件服务程序中与上述源数据的类型对应的解码插件发送上述源数据;解码插件服务程序调用与上述源数据的类型对应的解码插件对源数据解码,并将解码后的目标数据发送给预览客户端。
由于各程序所在的设备可能并不相同也可能位于同一设备上,基于此,本发明实施例提供了发送目标数据的方案如下:上述将解码后的目标数据发送给预览客户端包括:通过内存映射将解码后的目标数据发送给预览客户端;或者通过套接字Socket将解码后的目标数据发送给预览客户端。
基于以上方法实施例的思想本发明实施例还提供了一种信号源的接入系统,需要说明的是本系统中提供的各单元可以通过软件程序来实现,各软件程序或者各单元可以在同一实体设备也可以设置于不同的实体设备中,本发明实施例对此不予限定,如图2所示,包括:
预览管理服务单元201,用于为解码插件服务单元202的解码插件注册,并为连接插件服务单元203的连接插件注册;接收到客户端发送的启动信号预览的指令后,将连接插件参数发送给解码插件服务单元202;接收解码插件服务单元202依据上述连接插件参数返回的接收目标数据的地址和端口号;根据连接插件类型,选择连接插件;将信号源参数发送给连接插件服务单元203,使连接插件服务单元203依据上述信号源参数连接信号源,并接收信号源返回的源数据;
解码插件服务单元202,用于接收预览管理服务单元201发送的连接插件参数;依据接收到的连接插件参数向预览管理服务单元201返回的接收目标数据的地址和端口号;
接插件服务单元203,用于接收预览管理服务单元201发送的信号源参数,并依据上述信号源参数连接信号源,并接收信号源返回的源数据。
该系统实施例,采用插件化设计,对于规定不变的处理流程,在插件宿主程序中实现,而在插件中实现经常变化的部分。为了能保证系统的稳定可靠,则必须将不稳定因素限定在最小的范围内:即哪个厂家的SDK不稳定,则只能影响该厂家的信号源接入,而不能让其他的厂家的信号源工作不正常。通过使用插件,有效地隔离了系统的稳定和不稳定部分,使得第三方厂家提供的不稳定的SDK,其影响只是导致该厂家的摄像头无法接入,而不会影响其他任何已经稳定接入的厂家的信号源的接入。各个模块的逻辑简单,效率高,系统稳定;能够快速接入任意一种第三方摄像头,无论是提供SDK还是不提供二次开发SDK。从而实现了稳定地接入第三方信号源。
进一步地,上述连接插件服务单元203,还用于向解码插件服务单元202中与上述源数据的类型对应的解码插件发送上述源数据;
上述解码插件服务单元202,还用于调用与上述源数据的类型对应的解码插件对源数据解码,并将解码后的目标数据发送给预览客户端。
可选地,上述信号源参数包括:信号源的SDK、协议类型、硬件板卡类型中的任意一项;
上连接插件服务单元203,具体用于依据上述信号源参数连接信号源包括:调用上述SDK连接信号源,或者,依据上述协议类型连接信号源,或者,调用上述硬件板卡类型对应的SDK连接信号源。
可选地,上述解码插件服务单元202,具体用于将解码后的目标数据发送给预览客户端包括:用于通过内存映射将解码后的目标数据发送给预览客户端;或者通过套接字Socket将解码后的目标数据发送给预览客户端。
以下实施例将就以上实施例中各服务程序中的内部结构以及数据处理流程进行更详细的说明,其中内部结构请参阅图3和图4;其中图4中的信号源可以是一个也可以是一个以上,本是实施例不予限定;数据传递流程请参阅图5;特别说明,服务程序在图3、图4中分为三个:连接插件解码插件服务器、预览管解码插件服务器、解码插件解码插件服务器,可以为三种不同功能的服务程序也可以是三个实体设备,三个服务程序或者实体设备可以根据信号源的规模灵活地选择是否三者合一或者任意二者合一部署。在这里为了描述方便而把他们单独分开,后面的模块介绍中,会一一描述他们的功能及其部署的灵活性。
信号源:图3,图4中所指的信号源可以是:摄像头、DVS(网络视频服务程序)、DVR(硬盘录象机)、第三方监控平台等能够提供二次开发接口的IP信号源,还可以是:可提供二次开发接口的硬件板卡+硬件连接线+摄像头/RGB信号源等;或者,能够提供协议接口的网络摄像机或者第三方监控平台等。信号源的个数以及具体是什么信号源本发明实施例不予限定,在本实施例中以视频数据信号数据为例进行说明,其中在图3,图4中标注了Video数据通道为视频数据的传输通道,TCP(Transmission Control Protocol,传输控制协议)命令通道则是控制信令的传送通道。
以下就各服务器的组成及功能进行详细说明如下:
连接插件服务器:连接插件服务程序,根据连接信号类型的不同而有所不同。如果是纯粹连接IP信号源的服务器,那么需要部署连接插件服务程序、连接插件、以及IP信号源二次开发接口,如图4所示。如果是采用安装硬件板卡然后再通过硬件链路连接到信号源,则还需要部署硬件板卡、硬件板卡的驱动程序以及硬件板卡二次开发包以及针对二次板卡的连接插件,如图3所示。
连接插件服务程序:根据命令行参数(预览管理服务程序的IP地址和端口号、加载的连接插件的文件名称)加载连接插件,并且注册到预览管理服务程序上去,建立TCP命令通道。然后等待信号预览管理服务程序的启动预览和停止预览的命令,并执行相应的动作。这里的启动预览是指:预览管理服务程序如果接收到了启动预览的命令,则将信号源的参数传递给连接插件,由连接插件调用信号源的二次开发接口中的连接接口去连接信号源,或者使用信号源所提供的协议,通知信号源启动预览。
连接插件:其形态是可以一个DLL(Data Link Layer,数据链路层)或者SO(Source,源)文件等类似文件,自身不能运行,由连接插件服务程序加载后,才能运行。连接插件对于连接插件服务程序来说,不管哪一种形态的连接插件,它的接口都是统一的,接口有提供连接插件类型、启动预览、停止预览、视频数据回调函数等。
IP连接插件:专门用来连接IP信号源的连接插件。它仅需依赖第三方厂家提供的SDK。
板卡信号源插件:专门用来处理编解码卡的连接插件。它还需要依赖板卡SDK,板卡驱动,以及硬件板卡插入到服务程序上。
协议接入连接插件:专门用来处理公开协议的连接插件。它需要依赖对本系统公开的通信协议,例如:监控系统平台、某些IP摄像头、DVS和DVR等等。
预览管理服务程序:部署了预览管理服务程序的服务程序称之为预览管理服务程序。可以任意与其他服务程序或者客户端部署在一台服务程序/电脑上。
预览管理服务程序:预览管理服务程序的功能是等待各个连接插件服务程序的注册(将预览管理服务程序的IP地址、端口号以及所能支持的信号源类型等参数发送给预览管理服务程序),每当预览客户端有新的IP信号源接入的请求发送至预览管理服务程序,预览管理服务程序都从注册的连接插件服务程序中,选择一个型号相同且负载最轻的,然后将启动预览的请求转发给连接插件服务程序,由它真正地去连接信号源并且取回视频数据。
上述注册分为两个方面:连接插件服务程序和解码插件服务程序注册到预览管理服务程序。具体就是由预览管理服务程序在指定的端口侦听,然后解码插件服务程序和连接插件服务程序连接该端口,并且把自身的IP地址、端口号以及支持的信号源类型,解码类型上告给预览管理服务器的过程。在后续实施例中将给出更详细的说明。
解码插件服务器:部署了解码插件服务程序的服务器称之为解码插件服务器。可以任意与其他服务程序或者客户端部署在一台服务器或者电脑上。
解码插件服务程序:根据命令行参数(解码插件服务程序启动的时候,根据配置文件中的配置生成命令行参数,包括:预览管理服务程序的IP地址和端口号、加载的解码插件的文件名称)加载解码插件,并且注册到预览管理服务程序,建立TCP命令通道。然后等待预览服务程序的启动预览和停止预览的命令,并执行相应的动作。这里的启动预览:解码插件服务程序接收到启动预览的命令后,将解码类型参数以及所选择的解码插件服务器的参数传递给解码插件,解码插件在接收到连接插件服务程序转发的视频数据后,调用信号源的二次开发接口中的解码接口进行解码,此时,如果客户端与解码插件服务程序部署在一台电脑上,则通过内存映射交换数据;如果客户端与解码插件服务程序不在同一台电脑上,则采用UDP(User Datagram Protocol,用户数据报文协议)通道来交换视频数据。一般建议客户端与解码插件服务程序部署在同一台电脑上。
解码插件:其形态是一个DLL或者SO文件等类似文件,自身不能运行,必须由解码插件服务程序加载后,才能运行。解码插件对于解码插件服务程序来说,不管哪一种形态的连接插件,它的接口都是统一的,接口有提供连接插件类型、启动预览、停止预览、视频数据回调函数等。解码插件可以有很多种,例如:通用标准编码格式解码插件:支持标准的H264、MJPEG2、H263、TS流等标准编码格式的解码。第三方插件专有的解码插件:专门用来对某些厂家的某些型号的自定义码流格式的解码插件,例如:海康的私有编码格式。
预览客户端:预览客户端是指部署了预览接口的客户端程序,它负责接收用户的启动预览、停止预览、浏览错误信息,设置信号源参数以及系统参数等操作,然后将参数转换成XML(Extensible Markup Language,可扩展标记语言)文档,提交给预览管理服务程序。此处的启动预览是指:接收到了启动预览的命令,则将信号源的参数以及所选择的连接插件服务程序的参数传递给解码插件,解码插件在接收到连接插件服务程序转发的视频数据后,调用信号源的二次开发接口中的解码接口进行解码,此时,如果客户端与解码插件服务程序部署在一台电脑上,则通过内存映射交换数据;如果客户端与解码插件服务程序不在同一台电脑上,则采用UDP通道来交换视频数据。一般建议客户端与解码插件服务程序部署在同一台电脑上。
插件注册工具:将所有的插件按照指定的参数格式自动注册,并每次开机即启动。由于每个插件都需要配置一系列的参数,该工具可以实现自动配置和注册等操作。
插件看护程序:只要在插件列表中的插件服务程序的退出码为-1(即注册失败设置成-1),则自动重新启动该插件服务程序。例如:插件服务程序要注册到预览管理服务程序,如果没有注册成功,则置退出码为-1,并且退出程序。此时看护程序监控到该程序的退出码为-1,则立即重新启动该程序,直到预览管理服务程序启动成功(连接到了服务程序,并且注册成功,那么该程序就保持运行状态),然后连接插件服务程序注册成功后,整个系统才正常工作。这个插件看护程序,保证了需要按时序启动的一些进程,在实际应用过程中不必按照时序启动进程。例如:在没有插件看护程序时:必须先启动信号预览服务程序,后启动连接插件服务程序才能注册到信号预览服务程序。在有了插件看护程序后,如果先启动信号预览服务程序,后启动连接插件服务程序,那么插件服务程序一定能注册到信号预览服务程序。如果先启动连接插件服务程序而后启动信号预览服务程序,这时候连接插件服务程序就会连接失败,最终退出程序,并且返回退出码-1,插件看护程序检测到她的退出码是-1后,立即重新启动连接插件服务程序,直到信号预览服务程序启动后,插件注册成功为止。这样就可以不必按时序启动程序,尽管程序的启动是要求有序的。
以上实现方式,采用插件化设计,对于规定不变的处理流程,在插件宿主程序中实现,而在插件中实现经常变化的部分。为了能保证系统的稳定可靠,则必须将不稳定因素限定在最小的范围内:即哪个厂家的SDK不稳定,则只能影响该厂家的信号源接入,而不能让其他的厂家的信号源工作不正常。通过使用插件,有效地隔离了系统的稳定和不稳定部分,使得第三方厂家提供的不稳定的SDK,其影响只是导致该厂家的摄像头无法接入,而不会影响其他任何已经稳定接入的厂家的信号源的接入。各个模块的逻辑简单,效率高,系统稳定;能够快速接入任意一种第三方摄像头,无论是提供SDK还是不提供二次开发SDK。从而实现了稳定地接入第三方信号源。
视频预览处理流程,参见图5所示流程如下:
501:解码插件服务程序注册到预览管理服务程序,提供如下参数:解码插件类型,解码插件IP地址以及端口号;然后进入502;
需要说明的为解码插件注册是将解码插件在预览管理服务程序进行注册,可以将其地址、类型等信息传送给预览管理服务程序,这些信息可以有很多种类,以上举例不应理解为对本发明实施例的限定。
502:连接插件服务程序注册预览管理服务程序,提供如下参数:连接插件类型,连接插件IP地址以及端口号;进入503;
需要说明的为连接插件注册是将连接插件在预览管理服务程序进行注册,可以将其地址、类型等信息传送给预览管理服务程序,这些信息可以有很多种类,以上举例不应理解为对本发明实施例的限定。
以上步骤501和步骤502的执行顺序并没有逻辑现有顺序,可以并行处理也可以任意变换次序。
以上步骤501和步骤502的可以有插件注册工具来协助完成,也可以分别由连接插件服务程序以及解码插件服务程序来完成,其中采用插件注册工具的实现方式可以更好地理清逻辑,使逻辑关系更加清晰简洁,为优选实现方式。
503:预览客户端启动信号预览,将如下参数:连接插件类型,解码插件类型,IP,端口号以及其他参数,传递给预览管理服务程序,进入504;
504:预览管理服务程序将参数发送给解码插件服务程序,参数如下:连接插件类型,连接插件IP地址和端口号以及其他参数,进入505;
505:解码插件在收到上述参数后,在服务程序上分配准备接收视频数据的端口号,然后将该端口号发送给预览管理服务程序,进入506;
506:预览管理服务程序根据连接插件类型,选择一个负载最轻的连接插件,并且将该连接插件负载加1,进入507;(如果停止预览,其负载减1);
本步骤中对连接插件的负载进行数值的加减可以在依据负载选择连接插件的过程中使用,负载值越小则表示负载越轻。
507:预览管理服务程序将信号源的参数【信号源IP地址,端口号、所选择的连接插件服务程序的IP地址、端口号,解码插件服务程序的IP地址以及预备接收视频数据的端口号以及其他参数】发送给连接插件;
接下来,选择(opt)信号源类型(SDK,协议,硬件板卡),根据需要使用的解码插件的类型进入508、509、510中所对应的下一个步骤;
508:如果是第三方厂家SDK类型的,则调用厂家SDK,连接信号源,进入步骤511;
509:如果是根据开放通信协议的,则通过通信协议连接信号源,进入步骤511;
510:如果是硬件板卡类型的,则调用硬件板卡SDK,获取信号源视频,进入511;
511:信号源则返回视频数据到连接插件服务程序,进入512;
512:连接插件服务程序根据解码插件的IP地址和准备接收视频数据的端口号,将视频数据发送到到对应的的解码插件服务程序,进入513;
513:解码插件服务程序调用解码库解码,进入514;
本步骤具体是解码插件服务程序调用解码库中与视频数据对应的解码插件对上述视频数据进行解码。
以下两个步骤514和515,根据解码插件与预览客户端是否部署在同一台电脑选择一个进入。
514:如果部署在同一台电脑,则通过内存映射将解码后的视频数据发给客户端,进入516;
515:如果未部署在同一台电脑上,则通过Socket将解码后的视频数据发送给客户端,进入516;
以上两个步骤是择一执行的,依据解码插件与预览客户端是否部署在同一台电脑或者任意实体设备来确定的,需要说明的是,以上两种实现方式也仅是解码插件与预览客户端间进行数据传递的应用举例,解码插件与预览客户端间进行数据传递的方式还可以有很多,并不影响本发明实施例的实现,以上两个优选实现方式不应理解为对本发明实施例的限定。
516:根据用户需求显示视频数据,预览视频完毕。
采用以上实施例,采用插件化设计,对于规定不变的处理流程,在插件宿主程序中实现,而在插件中实现经常变化的部分。为了能保证系统的稳定可靠,则必须将不稳定因素限定在最小的范围内:即哪个厂家的SDK不稳定,则只能影响该厂家的信号源接入,而不能让其他的厂家的信号源工作不正常。通过使用插件有效地隔离了系统的稳定和不稳定部分,使得第三方厂家提供的不稳定的SDK,其影响只是导致该厂家的摄像头无法接入,而不会影响其他任何已经稳定接入的厂家的信号源的接入。各个模块的逻辑简单,效率高,系统稳定;能够快速接入任意一种第三方摄像头,无论是提供SDK还是不提供二次开发SDK。从而实现了稳定地接入第三方信号源。
以下将给出以上实施例的几个具体应用的场景说明,四个常用应用实例,进一步说明了本发明的可扩展性很强。
实例一:拼接墙上拼接显示
在拼接墙的显示屏后面都有一台主机,共9台,所有主机预览同一个信号源,系统在显示的时候,根据需要,显示整张图片的一部分,然后在拼接墙上,拼出一幅完整的画面。这是一个典型的拼接墙预览信号源的应用场景。
实例二:单个客户端上预览大量信号源
在画面作为某一电脑屏幕的9个部分,每个部分都显示一个信号源,当信号源数量继续增加时,可以增加连接插件服务程序和解码插件服务程序来扩展系统的功能。系统在显示的时候,根据需要,在一个窗口内的不同部分显示各个信号源的内容。这是一个典型的单台主机预览信号源的应用场景。
实例三:系统新增支持一种新的信号源
每新增一种信号源,只需要根据如下表格判断是否需要两个插件都开发,或者某个插件需要开发,插件的类型是什么等等,参见如下表1所示:
表1
本例是一个典型的接入一个新的IP信号源的应用场景。
实例四:与第三方系统(如视频会议系统)的对接
如果视频会议系统需要接入本系统中的预览视频,则只需要在视频会议系统中的MCU上调用本发明中预览客户端所调用的预览接口,即可达到对接的目的。
以上实施例,采用插件化设计,对于规定不变的处理流程,在插件宿主程序中实现,而在插件中实现经常变化的部分。为了能保证系统的稳定可靠,则必须将不稳定因素限定在最小的范围内:即哪个厂家的SDK不稳定,则只能影响该厂家的信号源接入,而不能让其他的厂家的信号源工作不正常。通过使用插件,有效地隔离了系统的稳定和不稳定部分,使得第三方厂家提供的不稳定的SDK,其影响只是导致该厂家的摄像头无法接入,而不会影响其他任何已经稳定接入的厂家的信号源的接入。各个模块的逻辑简单,效率高,系统稳定;能够快速接入任意一种第三方摄像头,无论是提供SDK还是不提供二次开发SDK。从而实现了稳定地接入第三方信号源。
值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各方法实施例中的全部或部分步骤是可以通过程序来指令相关的硬件完成,相应的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种信号源的接入方法,其特征在于,包括:
预览管理服务程序为解码插件服务程序的解码插件注册,并为连接插件服务程序的连接插件注册;
预览管理服务程序接收到客户端发送的启动信号预览的指令后,将连接插件参数发送给解码插件服务程序;
预览管理服务程序接收解码插件服务程序依据所述连接插件参数返回的接收目标数据的地址和端口号;
预览管理服务程序根据连接插件类型,选择连接插件;
预览管理服务程序将信号源参数发送给连接插件服务程序,使连接插件服务程序依据所述信号源参数连接信号源,并接收信号源返回的源数据。
2.根据权利要求1所述方法,其特在于,还包括:
连接插件服务程序向解码插件服务程序中与所述源数据的类型对应的解码插件发送所述源数据;
解码插件服务程序调用与所述源数据的类型对应的解码插件对源数据解码,并将解码后的目标数据发送给预览客户端。
3.根据权利要求1所述方法,其特征在于,
所述预览管理服务程序为解码插件服务程序的解码插件注册包括:预览管理服务程序接收并存储解码插件服务程序发送的解码插件的类型、互联网协议IP地址以及端口号;
预览管理服务程序为连接插件服务程序的连接插件注册包括:预览管理服务程序接收并存储连接插件服务程序发送的连接插件的类型、IP地址以及端口号;
所述启动信号预览的指令携带有信号源的连接插件类型、解码插件类型,IP地址以及端口号;
所述将连接插件参数发送给解码插件服务程序包括:将连接插件的类型、IP地址以及端口号发送给解码插件服务程序;
所述预览管理服务程序将信号源参数发送给连接插件服务程序包括:
预览管理服务程序将信号源的IP地址以及端口号发送给连接插件服务程序。
4.根据权利要求1至3任意一项所述方法,其特征在于,所述信号源参数包括:信号源的软件开发工具包SDK、协议类型、硬件板卡类型中的任意一项;
所述连接插件服务程序依据所述信号源参数连接信号源包括:
所述连接插件服务程序调用所述SDK连接信号源,或者,所述连接插件服务程序依据所述协议类型连接信号源,或者,所述连接插件服务程序调用所述硬件板卡类型对应的SDK连接信号源。
5.根据权利要求1至3任意一项所述方法,其特征在于,所述将解码后的目标数据发送给预览客户端包括:
通过内存映射将解码后的目标数据发送给预览客户端;或者通过套接字Socket将解码后的目标数据发送给预览客户端。
6.根据权利要求2或3所述方法,其特征在于,所述预览管理服务程序根据连接插件类型,选择连接插件包括:预览管理服务程序选择负载最轻的连接插件,并将所选择的连接插件负载增加设定值。
7.一种信号源的接入系统,其特征在于,包括:
预览管理服务单元,用于为解码插件服务单元的解码插件注册,并为连接插件服务单元的连接插件注册;接收到客户端发送的启动信号预览的指令后,将连接插件参数发送给解码插件服务单元;接收解码插件服务单元依据所述连接插件参数返回的接收目标数据的地址和端口号;根据连接插件类型,选择连接插件;将信号源参数发送给连接插件服务单元,使连接插件服务单元依据所述信号源参数连接信号源,并接收信号源返回的源数据;
解码插件服务单元,用于接收预览管理服务单元发送的连接插件参数;依据接收到的连接插件参数向预览管理服务单元返回的接收目标数据的地址和端口号;
接插件服务单元,用于接收预览管理服务单元发送的信号源参数,并依据所述信号源参数连接信号源,并接收信号源返回的源数据。
8.根据权利要求7所述系统,其特征在于,
所述连接插件服务单元,还用于向解码插件服务单元中与所述源数据的类型对应的解码插件发送所述源数据;
所述解码插件服务单元,还用于调用与所述源数据的类型对应的解码插件对源数据解码,并将解码后的目标数据发送给预览客户端。
9.根据权利要求7或8所述系统,其特征在于,所述信号源参数包括:信号源的SDK、协议类型、硬件板卡类型中的任意一项;
所述接插件服务单元,具体用于依据所述信号源参数连接信号源包括:调用所述SDK连接信号源,或者,依据所述协议类型连接信号源,或者,调用所述硬件板卡类型对应的SDK连接信号源。
10.根据权利要求8所述系统,其特征在于,
所述解码插件服务单元,具体用于将解码后的目标数据发送给预览客户端包括:用于通过内存映射将解码后的目标数据发送给预览客户端;或者通过套接字Socket将解码后的目标数据发送给预览客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210185767.7A CN102694869B (zh) | 2012-06-06 | 2012-06-06 | 一种信号源的接入方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210185767.7A CN102694869B (zh) | 2012-06-06 | 2012-06-06 | 一种信号源的接入方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102694869A true CN102694869A (zh) | 2012-09-26 |
CN102694869B CN102694869B (zh) | 2015-04-08 |
Family
ID=46860151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210185767.7A Active CN102694869B (zh) | 2012-06-06 | 2012-06-06 | 一种信号源的接入方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102694869B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104184944A (zh) * | 2014-08-15 | 2014-12-03 | 小米科技有限责任公司 | 获取多媒体数据流的方法及装置 |
CN107566788A (zh) * | 2017-08-15 | 2018-01-09 | 深圳市天视通电子科技有限公司 | 基于交换机的端口与网络录像机通道的映射方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1427361A (zh) * | 2001-12-17 | 2003-07-02 | 北京中视联联合软件有限公司 | 基于客户/服务器结构的底层设备驱动的方法 |
US20100250977A1 (en) * | 2009-03-27 | 2010-09-30 | Asustek Computer Inc. | Computer system |
CN101895531A (zh) * | 2010-06-13 | 2010-11-24 | 北京北大众志微系统科技有限责任公司 | 一种客户端设备、多媒体数据卸载系统及卸载方法 |
-
2012
- 2012-06-06 CN CN201210185767.7A patent/CN102694869B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1427361A (zh) * | 2001-12-17 | 2003-07-02 | 北京中视联联合软件有限公司 | 基于客户/服务器结构的底层设备驱动的方法 |
US20100250977A1 (en) * | 2009-03-27 | 2010-09-30 | Asustek Computer Inc. | Computer system |
CN101895531A (zh) * | 2010-06-13 | 2010-11-24 | 北京北大众志微系统科技有限责任公司 | 一种客户端设备、多媒体数据卸载系统及卸载方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104184944A (zh) * | 2014-08-15 | 2014-12-03 | 小米科技有限责任公司 | 获取多媒体数据流的方法及装置 |
CN104184944B (zh) * | 2014-08-15 | 2016-03-16 | 小米科技有限责任公司 | 获取多媒体数据流的方法及装置 |
RU2612389C2 (ru) * | 2014-08-15 | 2017-03-09 | Сяоми Инк. | Способ и устройство получения потока мультимедийных данных |
CN107566788A (zh) * | 2017-08-15 | 2018-01-09 | 深圳市天视通电子科技有限公司 | 基于交换机的端口与网络录像机通道的映射方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102694869B (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103177095B (zh) | 一种嵌入式浏览器及其实现方法 | |
CN105579995B (zh) | 在无线通信系统中执行应用的方法和装置 | |
EP2854342A1 (en) | Multi-screen interaction method, apparatus, and terminal device | |
CN104539682A (zh) | 移动网页的调试方法、装置、移动终端、服务器以及系统 | |
CN102739981A (zh) | 视频切换控制方法及系统 | |
WO2018014794A1 (zh) | 一种智能电视系统 | |
WO2000073902A1 (en) | Single logical clipboard for multiple computers | |
CN109412979A (zh) | 一种多媒体信号的传输方法、传输系统及相关装置 | |
CN103365061A (zh) | 云投影系统 | |
CN100446458C (zh) | 基于闪联协议的电视机无线上网的实现方法 | |
CN107801064B (zh) | 一种多屏互动系统的自修复的方法及装置 | |
CN113296747B (zh) | 一种智慧灯杆系统中软件高效对接各类挂载设备的方法 | |
CN102694869A (zh) | 一种信号源的接入方法和系统 | |
CN107396033A (zh) | 视频会议系统和方法 | |
CN105933429A (zh) | 一种服务器负载控制方法和装置 | |
CN114025140A (zh) | 用于b/s架构监控系统的一体化客户端 | |
CN113259757A (zh) | 一种便捷兼容多应用进行视频投屏的方法 | |
CN102316298A (zh) | 一种实现音视频录制的方法 | |
CN106710333A (zh) | 基于零终端的教学屏幕云广播系统及方法 | |
CN106301915A (zh) | 一种基于snmp的投影仪通用监控方法 | |
CN103365062A (zh) | 云投影方法 | |
CN103645896A (zh) | 基于html5实现应用功能的方法与装置 | |
CN113691742A (zh) | 一种视频处理设备、视频数据处理方法及一种拼控系统 | |
KR101727143B1 (ko) | 단말 능력정보 기반의 비호환적인 미디어 콘텐츠 변환 방법 및 장치 | |
CN110730368B (zh) | 一种码流自动切换方法、智能电视及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Kezhu road high tech Industrial Development Zone, Guangzhou city of Guangdong Province, No. 233 510670 Patentee after: Wei Chong group Limited by Share Ltd Address before: 510663 Guangzhou province high tech Industrial Development Zone, Guangdong, Cai road, No. 6, No. Patentee before: Guangdong Weichuangshixun Science and Technology Co., Ltd. |
|
CP03 | Change of name, title or address |