一种流数据的封装协议的转换方法和装置与流程

文档序号:12493754阅读:244来源:国知局
一种流数据的封装协议的转换方法和装置与流程

本发明涉及流数据转协议技术领域,具体涉及一种流数据的封装协议的转换方法以及一种流数据的封装协议的转换装置。



背景技术:

流数据为可以采用流式传输的方式在网络上传输的数据,对于流数据服务来说,常见公开的流数据传输协议比较多,例如RTMP(Real Time Messaging Protocol,实时消息传输协议)、HLS(HTTP Live Streaming,基于HTTP的流媒体网络传输协议)、RTP(Real-time Transport Protocol,用于Internet上针对多媒体数据流的一种传输层协议)等。

在视频直播或远程摄像头等需要进行流数据传输的应用中,由于客户端、浏览器或平台支持的协议各不相同,而且各协议的优缺点也各不相同,需要提供协议转换的服务来使得流数据传输可以支持不同的客户端、浏览器或平台。

现有技术中,接入多种协议的流,然后输出多种协议的流,过程很复杂。需要在服务器上支持每一种协议转换其他各种协议的转换任务,协议种类很多时,转换协议的种类变得非常多。新添加一种协议时,需要对应的加入对应多种的转换服务,拓展新协议的成本也很高。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种流数据的封装协议的转换方法和相应的装置。

依据本发明的一个方面,提供了一种流数据的封装协议的转换方法,包括:

确定协议转换任务对应的原始封装协议和多个目标封装协议;

查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据;

查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据。

可选地,在所述确定协议转换任务对应的原始封装协议和多个目标封装协议之前,所述方法还包括:

接收针对第一流数据的协议转换任务。

可选地,所述确定协议转换任务对应的原始封装协议和多个目标封装协议包括:

根据所述第一流数据的数据协议头识别所采用的原始封装协议,并提取所述协议转换任务携带的多个目标封装协议。

可选地,所述接收针对第一流数据的协议转换任务包括:

接收传输集群的目标传输节点发送的针对第一流数据的协议转换任务;

所述方法还包括:

将转换得到的第三流数据反馈至所述传输集群的目标传输节点。

可选地,在所述采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据之前,所述方法还包括:

从处理节点集群选取负载状态满足设定条件的第一处理节点,调用所述第一处理节点的第一处理进程,用于将第一流数据转换为第二流数据。

可选地,在所述采用所述第二协议转换逻辑,分别将基于中转封装协议的第二流数据转换至基于目标封装协议的多个第三流数据之前,所述方法还包括:

针对各种目标封装协议分别创建对应的协议转换子任务;

将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点;

调用各目标处理节点运行至少一个处理进程处理所述多个协议转换子任务,其中,一个所调用的处理进程处理一个或多个协议转换子任务。

可选地,在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,所述方法还包括:

接收针对所述协议转换任务的变更操作;

按照变更后的协议转换任务对处理进程进行停止或启动操作。

可选地,所述按照变更后的协议转换任务对处理进程进行停止或启动操作包括:

确定新增的目标封装协议和或/删除的目标封装协议;

针对删除的目标封装协议,通知对应处理进程停止执行对应的协议转换子任务;

针对新增的目标封装协议,启动新的处理进程执行对应该新增的目标封装协议的协议转换子任务。

可选地,在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,所述方法还包括:

确定各个目标封装协议所需的目标帧率和/或流数据格式;

将所述第二流数据按照确定目标帧率进行帧率转换,和/或按照确定的流数据格式进行格式转换。

可选地,所述将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点包括:

从管理节点获取各个处理节点的负载状态;

选取负载状态满足设定条件的至少一个目标处理节点,并向各选取的目标处理节点下发至少一个协议转换子任务。

可选地,各处理节点对应一个任务队列,在所述向各选取的目标处理节点下发至少一个协议转换子任务之前,所述方法还包括:

获取各目标处理节点的任务队列;

设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值。

可选地,所述设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值包括:

根据各目标处理节点的任务队列中已有的协议转换子任务,预测各个待下发的协议转换子任务的处理时间;

确定处理时间最晚的目标协议转换子任务;

按照目标协议转换子任务的处理时间安排各个待下发的协议转换子任务的处理时间。

可选地,所述方法还包括:

接收各个处理进程针对协议转换子任务反馈的处理结果,汇集得到所述协议转换任务的处理结果。

根据本发明的另一方面,提供了一种流数据的封装协议的转换装置,包括:

协议确定模块,用于确定协议转换任务对应的原始封装协议和多个目标封装协议;

第二流数据转换模块,用于查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据;

第三流数据转换模块,用于查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据。

可选地,所述装置还包括:

转换任务接收模块,用于在所述确定协议转换任务对应的原始封装协议和多个目标封装协议之前,接收针对第一流数据的协议转换任务。

可选地,所述协议确定模块具体用于根据所述第一流数据的数据协议头识别所采用的原始封装协议,并提取所述协议转换任务携带的多个目标封装协议。

可选地,所述转换任务接收模块包括:

转换任务接收子模块,用于接收传输集群的目标传输节点发送的针对第一流数据的协议转换任务;

所述装置还包括:

传输节点反馈模块,用于将转换得到的第三流数据反馈至所述传输集群的目标传输节点。

可选地,所述装置还包括:

处理节点选取模块,用于在所述采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据之前,从处理节点集群选取负载状态满足设定条件的第一处理节点,调用所述第一处理节点的第一处理进程,用于将第一流数据转换为第二流数据。

可选地,所述装置还包括:

子任务创建模块,用于在所述采用所述第二协议转换逻辑,分别将基于中转封装协议的第二流数据转换至基于目标封装协议的多个第三流数据之前,针对各种目标封装协议分别创建对应的协议转换子任务;

子任务分配模块,用于将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点;

进程调用模块,用于调用各目标处理节点运行至少一个处理进程处理所述多个协议转换子任务,其中,一个所调用的处理进程处理一个或多个协议转换子任务。

可选地,所述装置还包括:

变更操作接收模块,用于在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,接收针对所述协议转换任务的变更操作;

进程操作模块,用于按照变更后的协议转换任务对处理进程进行停止或启动操作。

可选地,所述进程操作模块包括:

协议确定子模块,用于确定新增的目标封装协议和或/删除的目标封装协议;

进程停止子模块,用于针对删除的目标封装协议,通知对应处理进程停止执行对应的协议转换子任务;

进程启动子模块,用于针对新增的目标封装协议,启动新的处理进程执行对应该新增的目标封装协议的协议转换子任务。

可选地,所述装置还包括:

帧率格式确定模块,用于在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,确定各个目标封装协议所需的目标帧率和/或流数据格式;

转换模块,用于将所述第二流数据按照确定目标帧率进行帧率转换,和/或按照确定的流数据格式进行格式转换。

可选地,所述子任务分配模块包括:

负载状态获取子模块,用于从管理节点获取各个处理节点的负载状态;

处理节点选取子模块,用于选取负载状态满足设定条件的至少一个目标处理节点,并向各选取的目标处理节点下发至少一个协议转换子任务。

可选地,各处理节点对应一个任务队列,所述装置还包括:

任务队列获取模块,用于在所述向各选取的目标处理节点下发至少一个协议转换子任务之前,获取各目标处理节点的任务队列;

排序设置模块,用于设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值。

可选地,所述排序设置模块包括:

处理时间预测子模块,用于根据各目标处理节点的任务队列中已有的协议转换子任务,预测各个待下发的协议转换子任务的处理时间;

子任务确定子模块,用于确定处理时间最晚的目标协议转换子任务;

处理时间安排子模块,用于按照目标协议转换子任务的处理时间安排各个待下发的协议转换子任务的处理时间。

可选地,所述装置还包括:

处理结果接收模块,用于接收各个处理进程针对协议转换子任务反馈的处理结果,汇集得到所述协议转换任务的处理结果。

根据本发明的一种流数据的封装协议的转换方法和装置,通过确定协议转换任务对应的原始封装协议和多个目标封装协议,查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据,查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据,使得对于多种封装协议,只需存储由各种封装协议转换为中转封装协议的协议转换逻辑,以及由中转封装协议转换为各种封装协议的协议转换逻辑,再分两步进行协议转换就可以完成多种封装协议之间的相互转换,减少了需要存储的协议转换逻辑,降低了协议转换服务的复杂程度。当有新添加的封装协议时,只需增加新添加的封装协议和中转封装协议相互转换的两种逻辑即可,极大的降低了拓展新封装协议的成本。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例一的一种流数据的封装协议的转换方法的步骤流程示意图;

图2示出了根据本发明实施例二的一种流数据的封装协议的转换方法的步骤流程示意图;

图3示出了根据本发明实施例三的一种流数据的封装协议的转换装置的结构框图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

参照图1,示出了根据本发明实施例一的一种流数据的封装协议的转换方法的步骤流程示意图,具体可以包括如下步骤:

步骤101,确定协议转换任务对应的原始封装协议和多个目标封装协议。

封装协议为流数据传输协议,具体是指封装流数据的数据包的协议,例如,RTMP(Real Time Messaging Protocol,实时消息传输协议)、HLS(HTTP Live Streaming,基于HTTP的流媒体网络传输协议)、RTP(Real-time Transport Protocol,用于Internet上针对多媒体数据流的一种传输层协议)等。

在本发明实施例中,原始封装协议是相对目标封装协议的概念,原始封装协议是指流数据原来的封装协议,也就是待转换协议的封装协议,目标封装协议是指流数据转换后的封装协议。协议转换任务是指由原始封装协议转换为目标封装协议的转换协议的任务,具体可以是流数据由一个封装协议转换为多个目标封装协议的任务。

在本发明实施例中,协议转换任务可以是预设的或者接收到的,协议转换服务器可以确定协议转换任务指示的原始封装协议和多个目标封装协议。其中,协议转换是指从一种协议的数据中提取数据包,然后封装为另一种封装协议的数据包。例如,从RTP协议的输入源中提取AAC编码的音频和H.264编码视频数据,并生成RTMP数据包,然后封装为RTMP协议的数据包。

本发明实施例可以应用在可以用于转换封装协议的服务器上,例如,在视频直播应用中,主播客户端上传的流数据是基于RTMP协议封装的,观众客户端下载的流数据有的是基于HLS协议封装的,有的是基于RTP协议封装的,需要提供可以执行协议转换任务的服务器将主播客户端上传的流数据的封装协议转换为其他观众客户端支持的封装协议。

步骤102,查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据。

在本发明实施例中,中转封装协议是相对原始封装协议和目标封装协议的概念,中转封装协议是指将原始封装协议转换为目标封装协议时的一种过渡的转换协议。具体而言,可以先将原始封装协议转换为中转封装协议,再由中转封装协议转换为其他所需的目标封装协议。

第一协议转换逻辑是指由原始封装协议转换为中转封装协议的协议转换的具体转换方式。每种原始封装协议转换为中转封装协议的协议转换逻辑都各不相同,协议转换服务需要保存各种协议转换逻辑。

在本发明实施例中,由协议转换任务确定的原始封装协议,查找原始封装协议对应中转封装协议的第一协议转换逻辑,根据第一协议转换逻辑,将第一流数据的基于原始封装协议封装的数据包,转换为基于中转封装协议封装的数据包,然后组成第二流数据。例如,原始封装协议为RTMP协议,中转封装协议为RTP协议,则第一协议转换逻辑为由RTMP协议转换为RTP协议的转换逻辑,具体包括从RTMP协议的输入源中提取AAC编码的音频和H.264编码视频数据,并生成RTP数据包,然后封装为RTP协议的数据包。

步骤103,查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据。

在本发明实施例中,第二协议转换逻辑是指由中转封装协议转换为目标封装协议的协议转换的具体转换方式。中转封装协议转换为各种目标封装协议的协议转换逻辑都各不相同,协议转换服务需要保存各种协议转换逻辑。

在本发明实施例中,由协议转换任务确定的各目标封装协议,查找中转封装协议对应各目标封装协议的第二协议转换逻辑,根据第二协议转换逻辑,将第二流数据的基于中转封装协议封装的数据包,转换为基于目标封装协议封装的数据包,然后组成第三流数据。例如,中转封装协议为RTP协议,目标封装协议包括HLS协议和RTMP协议,则各目标封装协议的第二协议转换逻辑包括由RTP协议转换为HLS协议的转换逻辑和由RTP协议转换为RTMP协议的转换逻辑,具体包括从RTP协议的输入源中提取AAC编码的音频和H.264编码视频数据,并生成HLS数据包,然后封装为HLS协议的数据包。具体还包括从RTP协议的输入源中提取AAC编码的音频和H.264编码视频数据,并生成RTMP数据包,然后封装为RTMP协议的数据包。

综上所述,依据本发明实施例,通过确定协议转换任务对应的原始封装协议和多个目标封装协议,查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据,查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据,使得对于多种封装协议,只需存储由各种封装协议转换为中转封装协议的协议转换逻辑,以及由中转封装协议转换为各种封装协议的协议转换逻辑,再分两步进行协议转换就可以完成多种封装协议之间的相互转换,减少了需要存储的协议转换逻辑,降低了协议转换服务的复杂程度。当有新添加的封装协议时,只需增加新添加的封装协议和中转封装协议相互转换的两种逻辑即可,极大的降低了拓展新封装协议的成本。

参照图2,示出了根据本发明实施例二的一种流数据的封装协议的转换方法的步骤流程示意图,具体可以包括如下步骤:

步骤201,接收针对第一流数据的协议转换任务。

在本实施例中,协议转换任务可以根据各客户端进行流数据传输的请求确定,具体解析各客户端的流数据传输请求,根据请求的流数据的封装协议。例如,主播客户端请求上传的流数据的封装协议,观众客户端请求下载的流数据的封装协议。服务器在接收到各客户端的流数据传输请求后,根据各请求确定协议转换任务,将协议转换任务发送给协议转换服务。具体确定流数据转换任务的服务器可以和协议转换服务所在的服务器为同一个,也可以不是同一个。

在本发明实施例中,优选地,所述接收针对第一流数据的协议转换任务的一种实现方式为:接收传输集群的目标传输节点发送的针对第一流数据的协议转换任务;还可以包括步骤:将转换得到的第三流数据反馈至所述传输集群的目标传输节点。

传输集群是指一种通过互联网互相连接的电脑网络系统,利用最靠近每位用户的服务器,更快、更可靠地将音乐、图片、视频、应用程序及其他文件发送给用户,来提供高性能、可扩展性及低成本的网络内容传递给用户。例如内容分发网络(Content Delivery Network,CDN)。

传输集群可以用于流数据的传输,其中,流数据为可以采用流式传输的方式在网络上传输的数据,流数据可以从一个节点传输到至少一个传输节点上。一个传输节点上可以同时存在多个流数据传输,传输集群由多个传输节点组成。其中传输节点为可以用于接收、存储、分发流数据的服务器。

目标传输节点为发送协议转换任务的传输节点,协议转换服务所在的服务器接收目标传输节点发送的针对第一流数据的协议转换任务。在根据针对第一流数据的协议转换任务,将第一流数据转换为第三流数据后,将第三流数据反馈至传输集群的目标传输节点。

步骤202,根据所述第一流数据的数据协议头识别所采用的原始封装协议,并提取所述协议转换任务携带的多个目标封装协议。

在本发明实施例中,数据协议头为流数据的数据包中记录的有关流数据的协议的信息,根据第一流数据的数据协议头可以识别出采用的原始封装协议。协议转换任务携带多个目标封装协议,从协议转换任务中提取出多个目标封装协议。

步骤203,查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据。

在本发明实施例中,具体方式与其他实施例描述一致,不做赘述。

在本发明实施例中,优选地,在采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据之前,还可以包括步骤:从处理节点集群选取负载状态满足设定条件的第一处理节点,调用所述第一处理节点的第一处理进程,用于将第一流数据转换为第二流数据。

处理节点为可以用于协议转换服务的服务器,处理节点集群为用于协议转换服务的服务器集群。从处理节点集群中选取负载状态满足设定条件的第一处理节点,其中负载状态满足设定条件可以包括各个节点中负载最轻,或者负载低于平均水平,或者负载低于设定阈值,具体可以是任意适用的设定条件,本实施例对此不作限制。

调用第一处理节点的第一处理进程,具体可以是将第一流数据转换为第二流数据的转换任务发送给第一处理节点,第一处理节点分配第一处理进程来将第一流数据转换为第三流数据,具体转换方式与其他实施例描述一致,不做赘述。

步骤204,查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据。

在本发明实施例中,具体方式与其他实施例描述一致,不做赘述。

在本发明实施例中,优选地,在采用所述第二协议转换逻辑,分别将基于中转封装协议的第二流数据转换至基于目标封装协议的多个第三流数据之前,还可以包括步骤:针对各种目标封装协议分别创建对应的协议转换子任务;将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点;调用各目标处理节点运行至少一个处理进程处理所述多个协议转换子任务,其中,一个所调用的处理进程处理一个或多个协议转换子任务。

协议转换子任务是指将中转封装协议转换为目标封装协议的协议转换任务,针对各目标封装协议分别创建对应的协议转换子任务。将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点,各目标处理节点运行至少一个处理进程处理多个协议转换子任务,其中,一个所调用的处理进程处理一个或多个协议转换子任务。

在本发明实施例中,优选地,所述将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点的一种实现方式为:从管理节点获取各个处理节点的负载状态;选取负载状态满足设定条件的至少一个目标处理节点,并向各选取的目标处理节点下发至少一个协议转换子任务。

管理节点为管理处理节点集群的服务器,具体管理处理节点集群的任务分配等。从管理节点获取各个处理节点的负载状态,选取负载状态满足设定条件的至少一个目标处理节点,将至少一个协议转换子任务下发至选取的目标处理节点。

在本发明实施例中,优选地,在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,还可以包括步骤:接收针对所述协议转换任务的变更操作;按照变更后的协议转换任务对处理进程进行停止或启动操作。

接收协议转换任务的变更操作,具体可以包括删除了目标封装协议,添加了目标封装协议,更改了目标封装协议等,根据变更后的协议转换任务对处理进程进行停止或启动操作。具体而言,对删除了的目标封装协议,对对应的处理进程停止协议转换任务或者启动协议转换任务。

在本发明实施例中,优选地,所述按照变更后的协议转换任务对处理进程进行停止或启动操作的一种实现方式为:确定新增的目标封装协议和或/删除的目标封装协议;针对删除的目标封装协议,通知对应处理进程停止执行对应的协议转换子任务;针对新增的目标封装协议,启动新的处理进程执行对应该新增的目标封装协议的协议转换子任务。

确定新增的目标封装协议和/或删除的目标封装协议,对于删除的目标封装协议,通知对应处理进程停止协议转换子任务,对于新增的目标封装协议,启动新的处理进程执行对应的协议转换子任务。

在本发明实施例中,优选地,在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,还可以包括步骤:确定各个目标封装协议所需的目标帧率和/或流数据格式;将所述第二流数据按照确定目标帧率进行帧率转换,和/或按照确定的流数据格式进行格式转换。

帧率是用于测量显示帧数的量度。所谓的测量单位为每秒显示帧数(Frames per Second,简称:FPS)或“赫兹”(Hz)。目标帧率为目标封装协议所需的帧率。流数据格式为流数据的格式。目标封装协议所需的目标帧率和/或流数据格式是指客户端或传输节点需要的目标封装协议的第三流数据的目标帧率和/或流数据格式。将第二流数据按照确定目标帧率进行帧率转换,和/或按照确定的流数据格式进行格式转换。

在本发明实施例中,优选地,各处理节点对应一个任务队列,在所述向各选取的目标处理节点下发至少一个协议转换子任务之前,还可以包括步骤:获取各目标处理节点的任务队列;设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值。

具体地,在确定处理时间最晚的协议转换子任务后,将分配至其他处理节点的协议转换子任务的排序向后调整,如果目标处理节点中其他协议转换子任务均处理结束且未到安排的处理时间,则等待一定时间间隔后再对协议转换子任务进行处理。

在本发明实施例中,优选地,所述设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值的一种实现方式为:根据各目标处理节点的任务队列中已有的协议转换子任务,预测各个待下发的协议转换子任务的处理时间;确定处理时间最晚的目标协议转换子任务;按照目标协议转换子任务的处理时间安排各个待下发的协议转换子任务的处理时间。

各目标处理节点的任务队列中已有的协议转换子任务的处理时间可以被确定,根据确定的处理时间,预测各个待下发的协议转换子任务的处理时间,确定处理时间最晚的目标协议转换子任务。

在本发明实施例中,优选地,还可以包括步骤:接收各个处理进程针对协议转换子任务反馈的处理结果,汇集得到所述协议转换任务的处理结果。

各处理进程反馈处理结果,汇集协议转换任务对应的各协议转换子任务的处理结果。

综上所述,依据本发明实施例,通过接收针对第一流数据的协议转换任务,根据所述第一流数据的数据协议头识别所采用的原始封装协议,并提取所述协议转换任务携带的多个目标封装协议,查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据,查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据,使得对于多种封装协议,只需存储由各种封装协议转换为中转封装协议的协议转换逻辑,以及由中转封装协议转换为各种封装协议的协议转换逻辑,再分两步进行协议转换就可以完成多种封装协议之间的相互转换,减少了需要存储的协议转换逻辑,降低了协议转换服务的复杂程度。当有新添加的封装协议时,只需增加新添加的封装协议和中转封装协议相互转换的两种逻辑即可,极大的降低了拓展新封装协议的成本。

参照图3,示出了根据本发明实施例三的一种流数据的封装协议的转换装置的结构框图,具体可以包括如下模块:

协议确定模块301,用于确定协议转换任务对应的原始封装协议和多个目标封装协议;

第二流数据转换模块302,用于查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据;

第三流数据转换模块303,用于查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据。

优选地,所述装置还包括:

转换任务接收模块,用于在所述确定协议转换任务对应的原始封装协议和多个目标封装协议之前,接收针对第一流数据的协议转换任务。

优选地,所述协议确定模块,具体用于根据所述第一流数据的数据协议头识别所采用的原始封装协议,并提取所述协议转换任务携带的多个目标封装协议。

优选地,所述转换任务接收模块包括:

转换任务接收子模块,用于接收传输集群的目标传输节点发送的针对第一流数据的协议转换任务;

所述装置还包括:

传输节点反馈模块,用于将转换得到的第三流数据反馈至所述传输集群的目标传输节点。

优选地,所述装置还包括:

处理节点选取模块,用于在所述采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据之前,从处理节点集群选取负载状态满足设定条件的第一处理节点,调用所述第一处理节点的第一处理进程,用于将第一流数据转换为第二流数据。

优选地,所述装置还包括:

子任务创建模块,用于在所述采用所述第二协议转换逻辑,分别将基于中转封装协议的第二流数据转换至基于目标封装协议的多个第三流数据之前,针对各种目标封装协议分别创建对应的协议转换子任务;

子任务分配模块,用于将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点;

进程调用模块,用于调用各目标处理节点运行至少一个处理进程处理所述多个协议转换子任务,其中,一个所调用的处理进程处理一个或多个协议转换子任务。

优选地,所述装置还包括:

变更操作接收模块,用于在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,接收针对所述协议转换任务的变更操作;

进程操作模块,用于按照变更后的协议转换任务对处理进程进行停止或启动操作。

优选地,所述进程操作模块包括:

协议确定子模块,用于确定新增的目标封装协议和或/删除的目标封装协议;

进程停止子模块,用于针对删除的目标封装协议,通知对应处理进程停止执行对应的协议转换子任务;

进程启动子模块,用于针对新增的目标封装协议,启动新的处理进程执行对应该新增的目标封装协议的协议转换子任务。

优选地,所述装置还包括:

帧率格式确定模块,用于在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,确定各个目标封装协议所需的目标帧率和/或流数据格式;

转换模块,用于将所述第二流数据按照确定目标帧率进行帧率转换,和/或按照确定的流数据格式进行格式转换。

优选地,所述子任务分配模块包括:

负载状态获取子模块,用于从管理节点获取各个处理节点的负载状态;

处理节点选取子模块,用于选取负载状态满足设定条件的至少一个目标处理节点,并向各选取的目标处理节点下发至少一个协议转换子任务。

优选地,各处理节点对应一个任务队列,所述装置还包括:

任务队列获取模块,用于在所述向各选取的目标处理节点下发至少一个协议转换子任务之前,获取各目标处理节点的任务队列;

排序设置模块,用于设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值。

优选地,所述排序设置模块包括:

处理时间预测子模块,用于根据各目标处理节点的任务队列中已有的协议转换子任务,预测各个待下发的协议转换子任务的处理时间;

子任务确定子模块,用于确定处理时间最晚的目标协议转换子任务;

处理时间安排子模块,用于按照目标协议转换子任务的处理时间安排各个待下发的协议转换子任务的处理时间。

优选地,所述装置还包括:

处理结果接收模块,用于接收各个处理进程针对协议转换子任务反馈的处理结果,汇集得到所述协议转换任务的处理结果。

综上所述,依据本发明实施例,通过确定协议转换任务对应的原始封装协议和多个目标封装协议,查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据,查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据,使得对于多种封装协议,只需存储由各种封装协议转换为中转封装协议的协议转换逻辑,以及由中转封装协议转换为各种封装协议的协议转换逻辑,再分两步进行协议转换就可以完成多种封装协议之间的相互转换,减少了需要存储的协议转换逻辑,降低了协议转换服务的复杂程度。当有新添加的封装协议时,只需增加新添加的封装协议和中转封装协议相互转换的两种逻辑即可,极大的降低了拓展新封装协议的成本。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一种流数据的封装协议的转换方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明还公开了A1、一种流数据的封装协议的转换方法,包括:

确定协议转换任务对应的原始封装协议和多个目标封装协议;

查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据;

查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据。

A2、根据A1所述的方法,其中,在所述确定协议转换任务对应的原始封装协议和多个目标封装协议之前,所述方法还包括:

接收针对第一流数据的协议转换任务。

A3、根据A2所述的方法,其中,所述确定协议转换任务对应的原始封装协议和多个目标封装协议包括:

根据所述第一流数据的数据协议头识别所采用的原始封装协议,并提取所述协议转换任务携带的多个目标封装协议。

A4、根据A2所述的方法,其中,所述接收针对第一流数据的协议转换任务包括:

接收传输集群的目标传输节点发送的针对第一流数据的协议转换任务;

所述方法还包括:

将转换得到的第三流数据反馈至所述传输集群的目标传输节点。

A5、根据A1所述的方法,其中,在所述采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据之前,所述方法还包括:

从处理节点集群选取负载状态满足设定条件的第一处理节点,调用所述第一处理节点的第一处理进程,用于将第一流数据转换为第二流数据。

A6、根据A1所述的方法,其中,在所述采用所述第二协议转换逻辑,分别将基于中转封装协议的第二流数据转换至基于目标封装协议的多个第三流数据之前,所述方法还包括:

针对各种目标封装协议分别创建对应的协议转换子任务;

将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点;

调用各目标处理节点运行至少一个处理进程处理所述多个协议转换子任务,其中,一个所调用的处理进程处理一个或多个协议转换子任务。

A7、根据A6所述的方法,其中,在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,所述方法还包括:

接收针对所述协议转换任务的变更操作;

按照变更后的协议转换任务对处理进程进行停止或启动操作。

A8、根据A7所述的方法,其中,所述按照变更后的协议转换任务对处理进程进行停止或启动操作包括:

确定新增的目标封装协议和或/删除的目标封装协议;

针对删除的目标封装协议,通知对应处理进程停止执行对应的协议转换子任务;

针对新增的目标封装协议,启动新的处理进程执行对应该新增的目标封装协议的协议转换子任务。

A9、根据A1所述的方法,其中,在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,所述方法还包括:

确定各个目标封装协议所需的目标帧率和/或流数据格式;

将所述第二流数据按照确定目标帧率进行帧率转换,和/或按照确定的流数据格式进行格式转换。

A10、根据A6所述的方法,其中,所述将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点包括:

从管理节点获取各个处理节点的负载状态;

选取负载状态满足设定条件的至少一个目标处理节点,并向各选取的目标处理节点下发至少一个协议转换子任务。

A11、根据A6所述的方法,其中,各处理节点对应一个任务队列,在所述向各选取的目标处理节点下发至少一个协议转换子任务之前,所述方法还包括:

获取各目标处理节点的任务队列;

设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值。

A12、根据A11所述的方法,其中,所述设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值包括:

根据各目标处理节点的任务队列中已有的协议转换子任务,预测各个待下发的协议转换子任务的处理时间;

确定处理时间最晚的目标协议转换子任务;

按照目标协议转换子任务的处理时间安排各个待下发的协议转换子任务的处理时间。

A13、根据A6所述的方法,其中,所述方法还包括:

接收各个处理进程针对协议转换子任务反馈的处理结果,汇集得到所述协议转换任务的处理结果。

本发明还公开了B14、一种流数据的封装协议的转换装置,包括:

协议确定模块,用于确定协议转换任务对应的原始封装协议和多个目标封装协议;

第二流数据转换模块,用于查找所述原始封装协议对应中转封装协议的第一协议转换逻辑,并采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据;

第三流数据转换模块,用于查找所述中转封装协议分别对应各目标封装协议的第二协议转换逻辑,并采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据。

B15、根据B14所述的装置,其中,所述装置还包括:

转换任务接收模块,用于在所述确定协议转换任务对应的原始封装协议和多个目标封装协议之前,接收针对第一流数据的协议转换任务。

B16、根据B15所述的装置,其中,所述协议确定模块具体用于根据所述第一流数据的数据协议头识别所采用的原始封装协议,并提取所述协议转换任务携带的多个目标封装协议。

B17、根据B15所述的装置,其中,所述转换任务接收模块包括:

转换任务接收子模块,用于接收传输集群的目标传输节点发送的针对第一流数据的协议转换任务;

所述装置还包括:

传输节点反馈模块,用于将转换得到的第三流数据反馈至所述传输集群的目标传输节点。

B18、根据B14所述的装置,其中,所述装置还包括:

处理节点选取模块,用于在所述采用所述第一协议转换逻辑,将基于原始封装协议的第一流数据转换为基于中转封装协议的第二流数据之前,从处理节点集群选取负载状态满足设定条件的第一处理节点,调用所述第一处理节点的第一处理进程,用于将第一流数据转换为第二流数据。

B19、根据B14所述的装置,其中,所述装置还包括:

子任务创建模块,用于在所述采用所述第二协议转换逻辑,分别将基于中转封装协议的第二流数据转换至基于目标封装协议的多个第三流数据之前,针对各种目标封装协议分别创建对应的协议转换子任务;

子任务分配模块,用于将多个协议转换子任务分配至处理节点集群的至少一个目标处理节点;

进程调用模块,用于调用各目标处理节点运行至少一个处理进程处理所述多个协议转换子任务,其中,一个所调用的处理进程处理一个或多个协议转换子任务。

B20、根据B19所述的装置,其中,所述装置还包括:

变更操作接收模块,用于在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,接收针对所述协议转换任务的变更操作;

进程操作模块,用于按照变更后的协议转换任务对处理进程进行停止或启动操作。

B21、根据B20所述的装置,其中,所述进程操作模块包括:

协议确定子模块,用于确定新增的目标封装协议和或/删除的目标封装协议;

进程停止子模块,用于针对删除的目标封装协议,通知对应处理进程停止执行对应的协议转换子任务;

进程启动子模块,用于针对新增的目标封装协议,启动新的处理进程执行对应该新增的目标封装协议的协议转换子任务。

B22、根据B14所述的装置,其中,所述装置还包括:

帧率格式确定模块,用于在所述采用所述第二协议转换逻辑,将基于中转封装协议的第二流数据转换为基于各种目标封装协议的多个第三流数据之前,确定各个目标封装协议所需的目标帧率和/或流数据格式;

转换模块,用于将所述第二流数据按照确定目标帧率进行帧率转换,和/或按照确定的流数据格式进行格式转换。

B23、根据B19所述的装置,其中,所述子任务分配模块包括:

负载状态获取子模块,用于从管理节点获取各个处理节点的负载状态;

处理节点选取子模块,用于选取负载状态满足设定条件的至少一个目标处理节点,并向各选取的目标处理节点下发至少一个协议转换子任务。

B24、根据B19所述的装置,其中,各处理节点对应一个任务队列,所述装置还包括:

任务队列获取模块,用于在所述向各选取的目标处理节点下发至少一个协议转换子任务之前,获取各目标处理节点的任务队列;

排序设置模块,用于设置待下发的协议转换子任务在各任务队列中的排序,使各个协议转换子任务的处理时间的差值小于设定阈值。

B25、根据B24所述的装置,其中,所述排序设置模块包括:

处理时间预测子模块,用于根据各目标处理节点的任务队列中已有的协议转换子任务,预测各个待下发的协议转换子任务的处理时间;

子任务确定子模块,用于确定处理时间最晚的目标协议转换子任务;

处理时间安排子模块,用于按照目标协议转换子任务的处理时间安排各个待下发的协议转换子任务的处理时间。

B26、根据B19所述的装置,其中,所述装置还包括:

处理结果接收模块,用于接收各个处理进程针对协议转换子任务反馈的处理结果,汇集得到所述协议转换任务的处理结果。

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