一种代理转发实时流协议流媒体数据的方法及设备与流程

文档序号:17845133发布日期:2019-06-11 21:38阅读:519来源:国知局
一种代理转发实时流协议流媒体数据的方法及设备与流程

本发明属于计算机技术领域,尤其涉及一种代理转发实时流协议流媒体数据的方法及设备。



背景技术:

实时流协议(realtimestreamingprotocol,rtsp)是一种基于文本的多媒体播放控制协议,属于应用层协议,以客户端/服务器的方式工作,常用于控制实时多媒体的点播服务,但其本身并不用于传送流媒体数据,必须依赖实时传输协议(realtimetransportprotocol,rtp)以及实时传输控制协议(realtimetransportcontrolprotocol,rtcp)所提供的服务来完成流媒体数据的传送。rtsp负责定义具体的控制信息、操作方法、状态码,以及描述与rtp之间的交互操作。

实时流协议代理(rtspproxy)是介于rtsp的客户端(rtspclient)与rtsp的服务器(rtspserver)之间的网络设备,rtspproxy具有转发rtsp信令和转发rtp流媒体数据到rtspserver和rtspclient的功能。

现有的实时流协议代理转发数据的方法,rtspclient必须知道rtspserver具体的统一资源定位符(uniformresourcelocator,url)才可以进行转发数据,导致数据转发效率低,增加了工作量,不利于客户端的维护。



技术实现要素:

有鉴于此,本发明实施例提供了一种代理转发实时流协议流媒体数据的方法及设备,以解决现有技术中实时流协议客户端必须知道服务器的rtspurl才可以进行转发数据,导致数据转发效率低,工作量大,本端设备与实时流协议客户端之间维护不便的问题。

本发明实施例的第一方面提供了一种代理转发实时流协议流媒体数据的方法,包括:

接收实时流协议客户端发送的实时流协议rtsp请求信息;其中,所述rtsp请求信息中携带提供流媒体服务的目标服务器对应的目标身份标识;所述实时流协议客户端具有客户端标识;所述目标身份标识由本端预先为所述目标服务器分配并存储;

当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;其中,所述数据库中存储有用于提供流媒体服务的所有服务器在接收到所述本端发送的rtsp请求信息后所发送的rtsp响应消息以及rtp数据流连接;

基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

本发明实施例的第二方面提供了一种代理转发实时流协议流媒体数据的设备,该设备包括:

接收单元,用于接收实时流协议客户端发送的实时流协议rtsp请求信息;其中,所述rtsp请求信息中携带提供流媒体服务的目标服务器对应的目标身份标识;所述实时流协议客户端具有客户端标识;所述目标身份标识由本端预先为所述目标服务器分配并存储;

获取单元,用于当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;其中,所述数据库中存储有用于提供流媒体服务的所有服务器在接收到所述本端发送的rtsp请求信息后所发送的rtsp响应消息以及rtp数据流连接;

发送单元,基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

本发明实施例的第三方面提供了另一种代理转发实时流协议流媒体数据的设备,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储支持实时流协议客户端执行上述方法的计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行以下步骤:

接收实时流协议客户端发送的实时流协议rtsp请求信息;其中,所述rtsp请求信息中携带提供流媒体服务的目标服务器对应的目标身份标识;所述实时流协议客户端具有客户端标识;所述目标身份标识由本端预先为所述目标服务器分配并存储;

当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;其中,所述数据库中存储有用于提供流媒体服务的所有服务器在接收到所述本端发送的rtsp请求信息后所发送的rtsp响应消息以及rtp数据流连接;

基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

本发明实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

接收实时流协议客户端发送的实时流协议rtsp请求信息;其中,所述rtsp请求信息中携带提供流媒体服务的目标服务器对应的目标身份标识;所述实时流协议客户端具有客户端标识;所述目标身份标识由本端预先为所述目标服务器分配并存储;

当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;其中,所述数据库中存储有用于提供流媒体服务的所有服务器在接收到所述本端发送的rtsp请求信息后所发送的rtsp响应消息以及rtp数据流连接;

基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

本发明实施例提供的一种代理转发实时流协议流媒体数据的方法及设备具有以下有益效果:

本发明实施例,通过接收实时流协议客户端发送的实时流协议rtsp请求信息;当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。上述方案,代理服务器预先为提供流媒体服务的所有服务器分配身份标识,并向该服务器发送rtsp请求信息以获取服务器反馈的rtsp响应消息以及rtp数据,再获取实时流协议客户端发送的rtsp请求信息中的身份标识以及客户端标识,基于客户端标识将获取到的服务器反馈的rtsp响应消息以及rtp数据发送至实时流协议客户端,这种转发数据的方式,实时流协议客户端不需要知道提供流媒体服务的服务器的rtspurl就可以获取到服务器中的rtp数据,提升了rtp数据转发效率,减少了工作量,更利于本端设备与实时流协议客户端之间的维护。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例提供的一种代理转发实时流协议流媒体数据的方法的实现流程图;

图2是本发明另一实施例提供的一种代理转发实时流协议流媒体数据的方法的实现流程图;

图3是本发明再一实施例提供的一种代理转发实时流协议流媒体数据的方法的实现流程图;

图4是本发明一实施例提供的一种代理转发实时流协议流媒体数据的设备的示意图;

图5是本发明另一实施例提供的一种代理转发实时流协议流媒体数据的设备的示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参见图1,图1是本发明实施例提供的一种代理转发实时流协议流媒体数据的方法的示意流程图。本实施例中代理转发实时流协议流媒体数据的执行主体为代理转发实时流协议流媒体数据的设备,包括但不限于代理服务器。如图1所示的代理转发实时流协议流媒体数据的方法可包括:

s101:接收实时流协议客户端发送的实时流协议rtsp请求信息;其中,所述rtsp请求信息中携带提供流媒体服务的目标服务器对应的目标身份标识;所述实时流协议客户端具有客户端标识;所述目标身份标识由本端预先为所述目标服务器分配并存储。

代理服务器是介于实时流协议(realtimestreamingprotocol,rtsp)的客户端与rtsp的服务器之间的网络设备。代理服务器既可以用于接收实时流协议客户端发送的实时流协议rtsp请求信息,也可用于向每个用于提供流媒体服务的服务器发送rtsp请求信息。需要注意的是,本实施例中代理服务器仅为示例性说明,对此不做限定。

实时流协议客户端向代理服务器发送实时流协议rtsp请求信息,代理服务器接收实时流协议客户端发送的rtsp请求信息。其中,rtsp请求信息中携带提供流媒体服务的目标服务器对应的目标身份标识,实时流协议客户端具有客户端标识。具体地,实时流协议客户端的客户端标识可以为ip地址+端口号,也可以为用户自行设定的能够标识实时流协议客户端唯一性的其他标志,用户可根据实际情况进行设置,对此不作限定。

目标身份标识由代理服务器预先为目标服务器分配并存储。具体地,代理服务器向每个用于提供流媒体服务的服务器发送rtsp请求信息,同时为每个服务器分配该服务器对应的唯一身份标识,并且基于该服务器对应的唯一身份标识生成该服务器的rtspurl。身份标识用于标识提供流媒体服务的服务器,可以设置为通道号,如通道号1、通道号2、通道号3等,也可以设置为a、b、c等,还可以设置为数字、字符等等,用户可根据实际情况进行设置,对此不作限定。

实时流协议客户端发送的rtsp请求信息用于请求获取实时流协议rtsp响应消息以及实时传输协议rtp数据。rtsp请求信息中的rtspurl的形式可以由用户根据预设规则进行设置,对此不作限定。例如,可以将rtspurl的形式设置为rtsp://ip:端口号/目标服务器身份标识。值得说明的是,基于服务器的唯一身份标识生成的服务器的rtspurl形式与实时流协议客户端向代理服务器发送的rtsp请求信息中的rtspurl的形式一致。即当基于服务器的唯一身份标识生成的服务器的rtspurl形式为rtsp://ip:端口号/目标服务器身份标识时,实时流协议客户端向代理服务器发送的rtsp请求信息的形式也为rtsp://ip:端口号/目标服务器身份标识。

为了使代理转发实时流协议流媒体数据更加安全可靠,可以验证使用rtsp客户端的用户身份的合法性。实时流协议客户端向代理服务器发送rtsp请求信息时,可通过发送验证信息验证使用rtsp客户端的用户身份的合法性。具体地,实时流协议客户端向代理服务器发送rtsp请求信息时,先发送不带鉴权信息(验证信息)的rtsp请求信息,若收到代理服务器回复的错误反馈消息,如401消息,则证明此时需要验证使用rtsp客户端的用户身份的合法性,实时流协议客户端向代理服务器重新发送携带鉴权信息的rtsp请求信息,代理服务器验证携带鉴权信息的rtsp请求信息,若验证通过则返回响应成功,若验证不通过则返回响应失败。

其中,鉴权信息相当于验证信息,用于验证使用rtsp客户端的用户身份是否合法。鉴权信息为用户提前在代理服务器中配置的所有rtsp客户端的鉴权信息,可以对其进行增加、删除、修改等操作,具体可以为用户名、密码、登录账号等信息,此处不做限定。

s102:当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;其中,所述数据库中存储有用于提供流媒体服务的所有服务器在接收到本端发送的rtsp请求信息后所发送的rtsp响应消息以及rtp数据流连接。

代理服务器从数据库中查找目标身份标识,当从数据库中查找到目标身份标识时,获取该目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接。

数据库中存储有用于提供流媒体服务的所有服务器在接收到本端设备发送的rtsp请求信息后所发送的rtsp响应消息以及rtp数据流连接。

具体地,代理服务器向提供流媒体服务的服务器发送rtsp请求信息,服务器收到rtsp请求信息后,向代理服务器发送与rtsp请求信息对应的rtsp响应消息,以及服务器中经过编码的rtp数据。代理服务器将收到的rtsp响应消息以及根据rtp数据建立的rtp数据连接存储至数据库。

s103:基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

由于客户端标识的唯一性,可根据实时流协议客户端的客户端标识,确认发送rtsp请求信息的实时流协议客户端,将从数据库中获取到的目标rtsp响应消息以及通过目标rtp数据流连接接收到的目标rtp数据发送至发送rtsp请求信息的实时流协议客户端。

本发明实施例,通过接收实时流协议客户端发送的实时流协议rtsp请求信息;当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。上述方案,代理服务器预先为提供流媒体服务的所有服务器分配身份标识,并向该服务器发送rtsp请求信息以获取服务器反馈的rtsp响应消息以及rtp数据,再获取实时流协议客户端发送的rtsp请求信息中的身份标识以及客户端标识,基于客户端标识将获取到的服务器反馈的rtsp响应消息以及rtp数据发送至实时流协议客户端,这种转发数据的方式,实时流协议客户端不需要知道提供流媒体服务的服务器的rtspurl就可以获取到服务器中的rtp数据,提升了rtp数据转发效率,减少了工作量,更利于本端设备与实时流协议客户端之间的维护。

请参见图2,图2是本发明另一实施例提供的一种代理转发实时流协议流媒体数据的方法的示意流程图。本实施例中代理转发实时流协议流媒体数据的执行主体为代理转发实时流协议流媒体数据的设备,包括但不限于代理服务器。如图2所示的代理转发实时流协议流媒体数据的方法可包括:

s201:向每个用于提供流媒体服务的服务器发送实时流协议rtsp请求信息,并为每个所述服务器分配唯一身份标识,基于每个所述服务器的唯一身份标识生成每个所述服务器的rtspurl。

代理服务器向每个用于提供流媒体服务的服务器发送rtsp请求信息,同时为每个服务器分配唯一身份标识,并基于唯一身份标识生成每个服务器的rtspurl。

其中,rtsp请求信息包括但不限于,用于请求得到服务器提供的可用方法的请求信息(options)、获取会话描述信息的请求信息(describe)、建立会话请求信息(setup)、播放请求信息(piay)、播放暂停请求信息(pause)、关闭请求信息(teardown)、获取参数请求信息(get_parameter)等。

具体地,代理服务器向每个用于提供流媒体服务的服务器发送rtsp请求信息,根据向每个服务器发送rtsp请求信息的发送顺序,为每个服务器分配各自对应的唯一身份标识。身份标识用于标识提供流媒体服务的服务器,可以设置为通道号,如通道号1、通道号2、通道号3等,也可以设置为a、b、c等,还可以设置为数字、字符等等,用户可根据实际情况进行设置,对此不作限定。然后在唯一身份标识的基础上生成每个服务器的rtspurl,rtspurl中包含唯一身份标识。rtsp请求信息中的rtspurl的形式可以由用户根据预设规则进行设置,对此不作限定。例如,可以将rtsp请求信息中的rtspurl的形式设置为rtsp://ip:端口号/目标服务器身份标识。值得说明的是,基于服务器的唯一身份标识生成的服务器的rtspurl形式与实时流协议客户端向代理服务器发送的rtsp请求信息中的rtspurl的形式一致。

为了验证使用代理服务器用户身份的合法性,代理服务器向每个用于提供流媒体服务的服务器发送rtsp请求信息时,可通过发送验证信息验证代理服务器的合法性。具体地,代理服务器向提供流媒体服务的服务器发送rtsp请求信息时,先发送不带鉴权信息(验证信息)的rtsp请求信息,若收到服务器回复的错误反馈消息,如401消息,则证明此时需要验证使用代理服务器用户身份的合法性,代理服务器向提供流媒体服务的服务器重新发送携带鉴权信息的rtsp请求信息,提供流媒体服务的服务器验证携带鉴权信息的rtsp请求信息,若验证通过,会向发送携带鉴权信息的rtsp请求信息的代理服务器发送rtsp响应消息。

其中,鉴权信息相当于验证信息,用于验证使用代理服务器用户身份的合法性。鉴权信息为用户在使用时根据实际情况进行配置的,可以对其进行增加、删除、修改等操作,具体可以为用户名、密码、登录账号等信息,此处不做限定。

s202:接收每个所述服务器基于所述rtsp请求信息发送的rtsp响应消息以及rtp数据。

提供流媒体服务的服务器收到rtsp请求信息后,向代理服务器发送与rtsp请求信息对应的rtsp响应消息,以及服务器中经过编码的rtp数据,代理服务器接收提供流媒体服务的服务器发送的rtsp响应消息以及rtp数据。

其中,rtsp响应信息包括但不限于用于响应请求得到服务器提供的可用方法的响应信息(optionsresp)、建立会话响应信息(setupresp)、会话描述信息的响应信息(describeresp)、播放响应信息(piayresp)、播放暂停响应信息(pauseresp)、关闭响应信息(teardownresp)等。

进一步地,在s202之后,可以包括s203:建立每个所述服务器对应的唯一身份标识、每个所述服务器的rtspurl、每个所述服务器发送的rtsp响应消息以及rtp数据流连接之间的关联关系,并将所述关联关系存储至所述数据库。

建立每个服务器对应的唯一身份标识、每个服务器的rtspurl、每个服务器发送的rtsp响应消息以及rtp数据流连接之间的关联关系,并将该关联关系存储至数据库。

具体地,每个服务器对应的唯一身份标识、每个服务器的rtspurl、每个服务器发送的rtsp响应消息以及用于接收rtp数据的rtp数据流连接都一一对应并且关联。例如,当代理服务器向第一个提供流媒体服务的服务器发送rtsp请求信息时,为该服务器分配了唯一身份标识,如通道号1(chn1),基于唯一身份标识生成该服务器的rtspurl,如rtsp://ip1/chn1,该服务器发送的rtsp响应消息,如rtspoption响应信息,以及用于接收rtp数据的rtp数据流连接。该条记录可以表示为:

唯一身份标识:chn1

rtspurl:rtsp://ip1/chn1

rtsp响应消息:rtspoption响应信息

当代理服务器向第二个提供流媒体服务的服务器发送rtsp请求信息时,为该服务器分配了唯一身份标识,如通道号2(chn2),基于唯一身份标识生成该服务器的rtspurl,如rtsp://ip2/chn2,该服务器发送的rtsp响应消息,如rtspdescribe响应信息,以及用于接收rtp数据的rtp数据流连接。

该条记录可以表示为:

唯一身份标识:chn2

rtspurl:rtsp://ip2/chn2

rtsp响应消息:rtspdescribe响应信息

同上述方式,生成相应的关联关系,可以将这些关联关系以表格或者txt文本格式等形式存储至数据库,用户可根据实际情况设置相应的存储形式,对此不作限定。

s204:接收实时流协议客户端发送的实时流协议rtsp请求信息;其中,所述rtsp请求信息中携带提供流媒体服务的目标服务器对应的目标身份标识;所述实时流协议客户端具有客户端标识;所述目标身份标识由本端预先为所述目标服务器分配并存储。

本实施例中s204与上一实施例中的s101完全相同,具体请参阅上一实施例中s101的相关描述,此处不赘述。

s205:当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;其中,所述数据库中存储有用于提供流媒体服务的所有服务器在接收到所述本端发送的rtsp请求信息后所发送的rtsp响应消息以及rtp数据流连接信息。

本实施例中s205与上一实施例中的s102完全相同,具体请参阅上一实施例中s102的相关描述,此处不赘述。

进一步地,当预先建立每个所述服务器对应的唯一身份标识、每个所述服务器的rtspurl、每个所述服务器各自发送的rtsp响应消息以及rtp数据流连接之间的关联关系时,s205可以包括:当从数据库中查找到所述目标身份标识时,基于所述关联关系,查找所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接。

当代理服务器收到实时流协议客户端发送的rtsp请求信息时,解析该rtsp请求信息中的目标身份标识,根据获取的目标身份标识,在关联关系中查找目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接。

例如,当解析到rtsp请求信息中的身份标识为chn1时,获取包含chn1的关联关系,从该关联关系中获取身份标识为chn1时,对应的rtsp响应消息以及rtp数据流连接。若关联关系以表格的形式存储,也可获取整个表格,从表格中再查询目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接。

s206:基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

本实施例中s206与上一实施例中的s103完全相同,具体请参阅上一实施例中s103的相关描述,此处不赘述。

进一步地,为了使得提升实时流协议客户端读取数据速度,提高转发数据的效率,s206可以包括s2061~s2062,具体如下:

s2061:在所述rtp数据之前添加预设标识;其中,所述预设标识至少包括数据标识和服务器身份标识,所述数据标识用于表示当前的数据为rtp数据。

代理服务器在rtp数据之前添加预设标识。预设标识至少包括数据标识,用于表示当前的数据为rtp数据,还包括标识目标身份标识的数据,也可以包括标识rtp数据包长度的数据等。

用户可根据实际情况设置预设标识,标识形式可以为数字、字母、字符等,长度可以为9字节、12字节、15字节等,对此不做限定。例如,可以用12字节的字符表示预设标识。具体地,用第0-3字节的字符作为数据标识,如aabb,用第4-7字节的字符标识目标身份标识,如chn1,用第8-11字节的字符标识rtp数据包的长度。

s2062:基于所述客户端标识,将所述目标rtsp响应消息以及添加所述预设标识后的rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

代理服务器可根据实时流协议客户端的客户端标识,确认发送rtsp请求信息的实时流协议客户端,将目标rtsp响应消息以及添加预设标识后的rtp数据发送至发送rtsp请求信息的实时流协议客户端。

代理服务器将添加预设标识后的rtp数据发送至发送rtsp请求信息的实时流协议客户端后,实时流协议客户端对添加预设标识后的rtp数据进行解析。例如,实时流协议客户端依次读取接收到的rtp数据中的字节,读取第0-3字节的字符是否为aabb,如果不是aabb,则证明该数据不是rtp数据,实时流协议客户端不再读取后续字节;如果是aabb,则证明该数据为rtp数据,实时流协议客户端继续读取第4-7字节的字符,通过解析第4-7字节的字符获取目标身份标识,如获取到通道号为chn1,再继续读取第8-11字节的字符,通过解析第8-11字节的字符获取rtp数据包的长度,基于获取到的rtp数据包的长度再读取该长度字节的数据,就可得到目标身份标识对应的rtp数据。例如,获取rtp数据的长度为256字节,则继续读取256字节的数据即可获得chn1对应的rtp数据。

本发明实施例,通过接收实时流协议客户端发送的实时流协议rtsp请求信息;当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。上述方案,代理服务器预先为提供流媒体服务的所有服务器分配身份标识,并向该服务器发送rtsp请求信息以获取服务器反馈的rtsp响应消息以及rtp数据,再获取实时流协议客户端发送的rtsp请求信息中的身份标识以及客户端标识,基于客户端标识将获取到的服务器反馈的rtsp响应消息以及rtp数据发送至实时流协议客户端,这种转发数据的方式,实时流协议客户端不需要知道提供流媒体服务的服务器的rtspurl就可以获取到服务器中的rtp数据,提升了rtp数据转发效率,减少了工作量,更利于本端设备与实时流协议客户端之间的维护。

请参见图3,图3是本发明再一实施例提供的一种代理转发实时流协议流媒体数据的方法的示意流程图。本实施例中代理转发实时流协议流媒体数据的执行主体为代理转发实时流协议流媒体数据的设备,包括但不限于代理服务器。

本实施例与图1对应的实施例的区别在于s303、s305、s306,本实施例中s301、s302、s304与图1对应的实施例中的s101、s102、s103完全相同,具体请参阅图1对应的实施例中s101、s102、s103的相关描述,此处不赘述。

为了提高数据传输效率,s304之前还可以包括s303:

s303:接收所述实时流协议客户端设备发送的rtp连接请求,并建立所述本端与所述实时流协议客户端设备之间rtp数据传输链路;其中,所述rtp数据传输链路用于向所述实时流协议客户端设备传输所述目标rtp数据。

实时流协议客户端设备向代理服务器发送rtp连接请求,代理服务器接收实时流协议客户端设备发送的rtp连接请求,建立代理服务器与实时流协议客户端设备之间的rtp数据传输链路。其中,rtp数据传输链路用于向实时流协议客户端设备传输目标rtp数据。

具体地,代理服务器接收实时流协议客户端设备发送的rtp连接请求,建立代理服务器与实时流协议客户端设备之间的rtp数据传输链路,并为实时流协议客户端设备分配设备号,建立并存储设备号、rtp数据传输链路标识以及设备的ip地址的关联关系。其中,设备号用于标识实时流协议客户端设备,可以设置为dev1、dev2等;rtp数据传输链路标识用于标识不同的rtp数据传输链路,可以设置为数字、字符等,如fd1、fd2等,对此不做限定。需要注意的是,同一个实时流协议客户端设备与代理服务器只建立一条rtp数据传输链路。

当第一个实时流协议客户端设备向代理服务器发送rtp连接请求时,为实时流协议客户端设备分配设备号,如dev1,获取该实时流协议客户端设备的ip地址,如ip1,建立该实时流协议客户端设备与代理服务器之间的rtp数据传输链路,如fd1。该条记录可以表示为:

设备号:dev1

rtp数据传输链路:fd1

实时流协议客户端设备ip地址:ip1

当第二个实时流协议客户端设备向代理服务器发送rtp连接请求时,为该实时流协议客户端设备分配设备号,如dev2,获取该实时流协议客户端设备的ip地址,如ip2,建立该实时流协议客户端设备与代理服务器之间的rtp数据传输链路,如fd2。该条记录可以表示为:

设备号:dev2

rtp数据传输链路:fd2

实时流协议客户端设备ip地址:ip2

以同样的方式,生成相应的关联关系,可以将这些关联关系以表格或者txt文本格式等形式存储至数据库,用户可根据实际情况设置相应的存储形式,对此不作限定。

进一步地,为了提高数据传输速率,减少资源占用,在建立了与实时流协议客户端设备之间rtp数据传输链路,且实时流协议客户端发送的rtsp请求信息的数量为两个及以上时,s303还可以包括:通过所述实时流协议客户端设备对应的rtp数据传输链路,将每个所述rtsp请求信息携带的唯一身份标识所对应的待传输的rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

通过设备号查找与之对应的rtp数据传输链路,获取每个rtsp请求信息携带的唯一身份标识所对应的待传输的rtp数据,将待传输的rtp数据通过rtp数据传输链路传输至发送rtsp请求信息的实时流协议客户端。

具体地,通过设备号查找与之对应的rtp数据传输链路,当代理服务器接收到实时流协议客户端发送的两条及以上rtsp请求信息中携带的唯一身份标识不同时,获取rtsp请求信息携带的唯一身份标识各自对应的待传输的rtp数据,为获取到的至少两份rtp数据添加预设标识,将添加预设标识后的rtp数据进行合并,之后将合并后的rtp数据通过rtp数据传输链路传输至发送rtsp请求信息的实时流协议客户端设备。实时流协议客户端设备收到传输的rtp数据后,根据rtsp客户端请求的目标服务器的身份标识与rtp数据预设标识中的服务器标识是否一致,将rtp数据分发给每个rtsp客户端。

通过设备号查找与之对应的rtp数据传输链路,当代理服务器接收到实时流协议客户端发送的两条及以上rtsp请求信息中携带的唯一身份标识相同时,获取任意一个rtsp请求信息携带的唯一身份标识所对应的待传输的rtp数据。由于唯一身份标识相同,则证明rtsp请求信息请求获取的待传输的rtp数据是相同的,所以只需获取任意一个rtsp请求信息携带的唯一身份标识所对应的待传输的rtp数据即可。将获取的待传输的rtp数据通过rtp数据传输链路传输至发送rtsp请求信息的实时流协议客户端设备。由于实时流协议客户端发送的rtsp请求信息中携带的唯一身份标识相同,此时,实时流协议客户端设备收到传输的rtp数据后,根据rtp数据的预设标识中服务器对应的身份标识以及rtsp客户端发送的rtsp请求信息中服务器身份标识,将rtp数据分发给每个rtsp客户端。

当代理服务器接收到实时流协议客户端发送的两条及以上rtsp请求信息中携带的唯一身份标识相同时,也可以获取每个rtsp请求信息携带的唯一身份标识各自对应的待传输的rtp数据。在通过rtp数据传输链路传输rtp数据时,只传输一份rtp数据。

同一个实时流协议客户端设备与代理服务器只建立一条rtp数据传输链路,基于该rtp数据传输链路进行数据传输,当实时流协议客户端发送的rtsp请求信息的数量为两个及以上,rtsp请求信息携带的唯一身份标识相同时,将待传输的rtp数据通过rtp数据传输链路只发送一次;当rtsp请求信息携带的唯一身份标识不同时,将待传输的rtp数据进行合并之后通过rtp数据传输链路发送。这样的传输方式,提高了数据传输速率,减少了资源占用。

需要说明的是,对实时流协议客户端发送的所述rtsp请求信息的数量不做限定。实际实时流协议客户端发送的所述rtsp请求信息的数量可以为一个,也可以为多个。当实时流协议客户端发送的所述rtsp请求信息的数量为多个时,将待传输的rtp数据通过rtp数据传输链路只发送一次,或者将合并后的添加了预设标识的rtp数据通过rtp数据传输链路传输。

s304:基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

本实施例中s304与上一实施例中的s103完全相同,具体请参阅上一实施例中s103的相关描述,此处不赘述。

进一步地,s304之后还可包括s305-s306,具体如下:

s305:建立所述目标身份标识以及所述实时流协议客户端的客户端标识之间的对应关系。

代理服务器建立目标身份标识以及实时流协议客户端的客户端标识之间的对应关系。

具体地,代理服务器根据客户端标识将目标rtsp响应消息以及通过目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端后,建立该实时流协议客户端的客户端标识以及rtsp请求信息中携带的目标身份标识之间的对应关系。

建立对应关系可以是,单独建立目标身份标识以及实时流协议客户端的客户端标识之间的对应关系。假设目标身份标识为chn1,实时流协议客户端的客户端标识为a,建立的对应关系如下:

唯一身份标识:chn1

实时流协议客户端的客户端标识:a

假设目标身份标识为chn2,实时流协议客户端的客户端标识为b,建立的对应关系如下:

唯一身份标识:chn2

实时流协议客户端的客户端标识:b

建立对应关系也可以根据唯一身份标识将实时流协议客户端的客户端标识添加至之前建立的关联关系中,即根据唯一身份标识将实时流协议客户端的客户端标识添加至,每个服务器对应的唯一身份标识、每个服务器的rtspurl、每个服务器各自发送的rtsp响应消息以及rtp数据连接的关联关系中。

假设目标身份标识为chn1,实时流协议客户端的客户端标识为a,则将实时流协议客户端的客户端标识a添加至上述关联关系中。添加后的关联关系如下:

唯一身份标识:chn1

rtspurl:rtsp://ip1/chn1

rtsp响应消息:rtspoption响应信息

实时流协议客户端的客户端标识:a

s306:当基于所述目标rtp数据流连接接收到任意所述服务器发送的rtp数据时,基于所述唯一身份标识与客户端标识的预设对应关系,将所述接收到的rtp数据发送至所述服务器的唯一身份标识对应的客户端标识对应的实时流协议客户端。

当基于所述目标rtp数据流连接接收到任意服务器发送的rtp数据时,代理服务器通过比较rtp数据连接信息获取该服务器的唯一身份标识,根据唯一身份标识与客户端标识的预设对应关系查找该服务器的唯一身份标识对应的客户端标识对应的实时流协议客户端,将接收到的rtp数据发送至该实时流协议客户端。

例如,当通过目标rtp数据流连接再次接收到服务器发送的rtp数据时,代理服务器获取该服务器的唯一身份标识为chn1,在上述建立的对应关系中查找chn1对应的客户端标识对应的实时流协议客户端。可以在单独建立目标身份标识以及实时流协议客户端的客户端标识之间的对应关系中查找,即在如下信息中查找:

唯一身份标识:chn1

实时流协议客户端的客户端标识:a

当服务器的唯一身份标识为chn1时,实时流协议客户端的客户端标识为a,即chn1对应的客户端标识对应的实时流协议客户端为实时流协议客户端a,将接收到的rtp数据发送至该实时流协议客户端。

也可以在经过添加后的关联关系中查找,即在如下信息中查找:

唯一身份标识:chn1

rtspurl:rtsp://ip1/chn1

rtsp响应消息:rtspoption响应信息

实时流协议客户端的客户端标识:a

当服务器的唯一身份标识为chn1时,实时流协议客户端的客户端标识为a,即chn1对应的客户端标识所属的实时流协议客户端为实时流协议客户端a,将接收到的rtp数据发送至该实时流协议客户端。

本发明实施例,通过接收实时流协议客户端发送的实时流协议rtsp请求信息;当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。上述方案,代理服务器预先为提供流媒体服务的所有服务器分配身份标识,并向该服务器发送rtsp请求信息以获取服务器反馈的rtsp响应消息以及rtp数据,再获取实时流协议客户端发送的rtsp请求信息中的身份标识以及客户端标识,基于客户端标识将获取到的服务器反馈的rtsp响应消息以及rtp数据发送至实时流协议客户端,这种转发数据的方式,实时流协议客户端不需要知道提供流媒体服务的服务器的rtspurl就可以获取到服务器中的rtp数据,提升了rtp数据转发效率,减少了工作量,更利于本端设备与实时流协议客户端之间的维护。

请参见图4,图4是本发明一实施例提供的一种代理转发实时流协议流媒体数据的设备的示意图。该设备包括的各单元用于执行图1、图2、图3对应的实施例中的各步骤。具体请参阅图1图2、图3各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图4,代理转发实时流协议流媒体数据的设备4包括:

接收单元410,用于接收实时流协议客户端发送的实时流协议rtsp请求信息;其中,所述rtsp请求信息中携带提供流媒体服务的目标服务器对应的目标身份标识;所述实时流协议客户端具有客户端标识;所述目标身份标识由本端预先为所述目标服务器分配并存储;

获取单元420,用于当从数据库中查找到所述目标身份标识时,获取所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接;其中,所述数据库中存储有用于提供流媒体服务的所有服务器在接收到本端发送的rtsp请求信息后所发送的rtsp响应消息以及rtp数据流连接;

发送单元430,基于所述客户端标识,将所述目标rtsp响应消息以及通过所述目标rtp数据流连接接收到的目标rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

进一步地,代理转发实时流协议流媒体数据的设备还包括:

分配单元,用于向每个用于提供流媒体服务的服务器发送实时流协议rtsp请求信息,并为每个所述服务器分配唯一身份标识,基于每个所述服务器的唯一身份标识生成每个所述服务器的rtspurl;

接收单元,用于接收每个所述服务器基于所述rtsp请求信息发送的rtsp响应消息以及rtp数据。

进一步地,代理转发实时流协议流媒体数据的设备还包括:

建立关联关系单元,用于建立每个所述服务器对应的唯一身份标识、每个所述服务器的rtspurl、每个所述服务器发送的rtsp响应消息以及rtp数据流连接信息之间的关联关系,并将所述关联关系存储至所述数据库。

进一步地,获取单元420具体用于:基于所述关联关系,查找所述目标身份标识对应的目标rtsp响应消息以及目标rtp数据流连接。

进一步地,发送单元430具体用于:

在所述rtp数据之前添加预设标识;其中,所述预设标识至少包括数据标识和服务器身份标识,所述数据标识用于表示当前的数据为rtp数据;

基于所述客户端标识,将所述目标rtsp响应消息以及添加所述预设标识后的rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

进一步地,代理转发实时流协议流媒体数据的设备还包括:

建立传输链路单元,用于接收所述实时流协议客户端设备发送的rtp连接请求,并建立所述本端与所述实时流协议客户端设备之间rtp数据传输链路;其中,所述rtp数据传输链路用于向所述实时流协议客户端设备传输所述目标rtp数据。

进一步地,代理转发实时流协议流媒体数据的设备还包括:

建立单元,用于建立所述目标身份标识以及所述实时流协议客户端的客户端标识之间的对应关系;

数据发送单元,用于当基于所述目标rtp数据流连接接收到任意所述服务器发送的rtp数据时,基于所述唯一身份标识与客户端标识的对应关系,将所述接收到的rtp数据发送至所述服务器的唯一身份标识对应的客户端标识对应的实时流协议客户端。

进一步地,发送单元430具体用于:通过所述实时流协议客户端设备对应的rtp数据传输链路,将每个所述rtsp请求信息携带的唯一身份标识所对应的待传输的rtp数据发送至发送所述rtsp请求信息的实时流协议客户端。

请参见图5,图5是本发明另一实施例提供的一种代理转发实时流协议流媒体数据的设备的示意图。如图5所示,该实施例的代理转发实时流协议流媒体数据的设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52。所述处理器50执行所述计算机程序52时实现上述各个设备的实时流协议代理转发数据的方法实施例中的步骤,例如图1所示的s101至s103。或者,所述处理器50执行所述计算机程序52时实现上述各装置实施例中各单元的功能,例如图4所示单元410至430功能。

示例性的,所述计算机程序52可以被分割成一个或多个单元,所述一个或者多个单元被存储在所述存储器51中,并由所述处理器50执行,以完成本发明。所述一个或多个单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述代理转发实时流协议流媒体数据的设备5中的执行过程。例如,所述计算机程序52可以被分割成接收单元、获取单元以及发送单元,各单元具体功能如上所述。

所述设备可包括,但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是代理转发实时流协议流媒体数据的设备5的示例,并不构成对代理转发实时流协议流媒体数据的设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件。

所称处理器50可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

所述存储器51可以是所述代理转发实时流协议流媒体数据的设备5的内部存储单元,例如代理转发实时流协议流媒体数据的设备5的硬盘或内存。所述存储器51也可以是所述代理转发实时流协议流媒体数据的设备5的外部存储实时流协议客户端,例如所述代理转发实时流协议流媒体数据的设备5上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器51还可以既包括所述代理转发实时流协议流媒体数据的设备5的内部存储单元也包括外部存储实时流协议客户端。所述存储器51用于存储所述计算机程序以及所述实时流协议客户端所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

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