CN117201464A - 一种通信数据的传输方法、系统、摄像机及存储介质 - Google Patents
一种通信数据的传输方法、系统、摄像机及存储介质 Download PDFInfo
- Publication number
- CN117201464A CN117201464A CN202311146315.2A CN202311146315A CN117201464A CN 117201464 A CN117201464 A CN 117201464A CN 202311146315 A CN202311146315 A CN 202311146315A CN 117201464 A CN117201464 A CN 117201464A
- Authority
- CN
- China
- Prior art keywords
- relay
- communication data
- camera
- tuple
- channel number
- 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.)
- Pending
Links
- 230000006854 communication Effects 0.000 title claims abstract description 124
- 238000004891 communication Methods 0.000 title claims abstract description 123
- 230000005540 biological transmission Effects 0.000 title claims abstract description 58
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000013507 mapping Methods 0.000 claims abstract description 89
- 238000005516 engineering process Methods 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims description 24
- 230000011664 signaling Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 8
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 101000906927 Homo sapiens N-chimaerin Proteins 0.000 description 7
- 102100023648 N-chimaerin Human genes 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 208000033365 congenital hypomelinating neuropathy Diseases 0.000 description 3
- 208000035196 congenital hypomyelinating 2 neuropathy Diseases 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Landscapes
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请公开了一种通信数据的传输方法、系统、摄像机及存储介质,所属的技术领域为网络通讯技术。所述通信数据的传输方法应用于实现了WebRTC技术的摄像机,包括:接收多个前端发送的请求信息和第一中继二元组;为每一前端分配对应的摄像机通道号,建立包含摄像机通道号与第一中继二元组对应关系的第一映射表,并将第一映射表同步至中继服务器;从所有摄像机通道号中选取主通道号,并利用主通道号将通信数据发送至中继服务器,以使中继服务器将通信数据发送至第一映射表中所有第一中继二元组对应的前端。本申请能够实现摄像机对多个前端的数据传输,扩展WebRTC技术的应用场景。
Description
技术领域
本申请涉及网络通讯技术领域,特别涉及一种通信数据的传输方法、系统、摄像机及存储介质。
背景技术
WebRTC(Web Real-Time Communication)是一项实时通讯技术,WebRTC技术提供了一套标准API(Application Programming Interface,应用程序编程接口),使Web应用可以直接提供实时音视频通信功能,不再需要借助任何插件。WebRTC技术的原生通信过程采用P2P(peer-to-peer,端对端)协议,数据直接在浏览器之间交互。由于WebRTC协议的底层连接是P2P模式,不支持一对多的数据传输。
因此,如何实现摄像机对多个前端的数据传输,扩展WebRTC技术的应用场景是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种通信数据的传输方法、系统、摄像机及存储介质,能够实现摄像机对多个前端的数据传输,扩展WebRTC技术的应用场景。
为解决上述技术问题,本申请提供一种通信数据的传输方法,应用于实现了WebRTC技术的摄像机,包括:
接收多个前端发送的请求信息和第一中继二元组;其中,所述第一中继二元组包括中继服务器为所述前端分配的中继地址和端口;
为每一所述前端分配对应的摄像机通道号,建立包含所述摄像机通道号与所述第一中继二元组对应关系的第一映射表,并将所述第一映射表同步至所述中继服务器;
从所有所述摄像机通道号中选取主通道号,并利用所述主通道号将通信数据发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。
可选的,在接收多个前端发送的请求信息和第一中继二元组之后,还包括:
生成所述请求信息对应的应答信息;
获取第二中继二元组;其中,所述第二中继二元组包括所述中继服务器为所述摄像机分配的中继地址和端口;
缓存所述应答信息和所述第二中继二元组;
将所述应答信息和所述第二中继二元组发送至每一所述前端,以便所述前端将所述第二中继二元组中的中继地址和前端通道号发送至所述中继服务器生成第二映射表;其中,所述前端用于利用所述前端通道号向所述中继服务器发送所述通信数据对应的控制数据,所述中继服务器用于将所述控制数据发送至所述第二映射表中所述第二中继二元组对应的摄像机。
可选的,在利用所述主通道号将通信数据发送至所述中继服务器之后,还包括:
缓存所述通信数据,并将所述通信数据与分配给所述前端的所有所述摄像机通道号进行关联;
根据接收到的所述控制数据判断所述通信数据是否成功发送至所述前端;若是,则取消所述前端对应的摄像机通道号与所述通信数据的关联;
判断所述通信数据与所有所述摄像机通道号之间的关联是否均取消;若是,则删除所述通信数据。
可选的,还包括:
根据接收到的所述控制数据判断所述通信数据是否成功发送至所述前端;
若否,则将需要重新发送所述通信数据的前端设置为目标前端;
根据所述目标前端的第一中继二元组和所述通信数据生成Indication消息,并将所述Indication消息发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述目标前端。
可选的,将所述应答信息和所述第二中继二元组发送至每一所述前端,包括:
将所述应答信息和所述第二中继二元组发送至信令服务器,以使所述信令服务器将所述应答信息和所述第二中继二元组转发至每一所述前端。
可选的,接收多个前端发送的请求信息和第一中继二元组,包括:
通过所述信令服务器接收多个所述前端发送的所述请求信息和所述第一中继二元组。
可选的,在利用所述主通道号将通信数据发送至所述中继服务器之前,还包括:
将所述摄像机采集的视频数据和/或音频数据进行编码得到所述通信数据。
本申请还提供了一种通信数据的传输系统,应用于实现了WebRTC技术的摄像机,包括:
信息接收模块,用于接收多个前端发送的请求信息和第一中继二元组;其中,所述第一中继二元组包括中继服务器为所述前端分配的中继地址和端口;
映射建立模块,用于为每一所述前端分配对应的摄像机通道号,建立包含所述摄像机通道号与所述第一中继二元组对应关系的第一映射表,并将所述第一映射表同步至所述中继服务器;
传输模块,用于从所有所述摄像机通道号中选取主通道号,并利用所述主通道号将通信数据发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述通信数据的传输方法执行的步骤。
本申请还提供了一种摄像机,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述通信数据的传输方法执行的步骤。
本申请提供了一种通信数据的传输方法,应用于实现了WebRTC技术的摄像机,包括:接收多个前端发送的请求信息和第一中继二元组;其中,所述第一中继二元组包括中继服务器为所述前端分配的中继地址和端口;为每一所述前端分配对应的摄像机通道号,建立包含所述摄像机通道号与所述第一中继二元组对应关系的第一映射表,并将所述第一映射表同步至所述中继服务器;从所有所述摄像机通道号中选取主通道号,并利用所述主通道号将通信数据发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。
本申请接收多个前端发送的请求信息和第一中继二元组,摄像机为每一发送请求信息的前端分配对应的摄像机通道号,进而建立包含摄像机通道号与第一中继二元组对应关系的第一映射表,并将该第一映射表同步至中继服务器。摄像机从所有摄像机通道号中选取主通道号,进而利用主通道号将通信数据发送至中继服务器。由于第一中继二元组中包含中继服务器为前端分配的中继地址和端口,各个前端的中继二元组不同,中继服务器可以记录第一映射表中的多个映射关系;在收到摄像机发送的通信数据后,中继服务器可以将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。本申请能够实现摄像机对多个前端的数据传输,扩展WebRTC技术的应用场景。本申请同时还提供了一种通信数据的传输系统、一种存储介质和一种摄像机,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种通信数据的传输方法的流程图;
图2为本申请实施例所提供的一种第一映射表的示意图;
图3为本申请实施例所提供的一种第二映射表的示意图;
图4为本申请实施例所提供的一种摄像机与前端的通信数据传输流程图;
图5为本申请实施例所提供的一种通信数据的传输系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种通信数据的传输方法的流程图。
具体步骤可以包括:
S101:接收多个前端发送的请求信息和第一中继二元组;
其中,本实施例可以应用于实现了WebRTC技术的摄像机,前端(又称客户端)通过WebRTC技术连接摄像机,摄像机可以接收多个前端发送的请求信息Offer和第一中继二元组。各个前端可以与中继服务器Turnserver进行交互,中继服务器为每一前端分配包括中继地址和端口的第一中继二元组;中继服务器为各个前端分配的第一中继二元组的中继地址相同、端口不同。Turnserver为一种协助WEBRTC进行ICE(互动式连接建立,InteractiveConnectivity Establishment)的服务。中继地址为中继服务器Turnserver为前端和摄像机创建的一个对外的访问地址。
S102:为每一所述前端分配对应的摄像机通道号,建立包含所述摄像机通道号与所述第一中继二元组对应关系的第一映射表,并将所述第一映射表同步至所述中继服务器;
其中,摄像机在接收到各个前端发送的请求信息和第一中继二元组之后,可以为每一前端分配对应的摄像机通道号Channel Number。摄像机为每一前端分配的摄像机通道号均不相同,进而基于摄像机通道号与所述第一中继二元组对应关系建立第一映射表,并将上述第一映射表同步至中继服务器。由于第一中继二元组中包含中继地址和端口,各个前端的中继二元组不同,因此中继服务器可以记录第一映射表中的多个映射关系。在上述第一映射表中,第一中继二元组为键名Key,通道号为键值Value。
S103:从所有所述摄像机通道号中选取主通道号,并利用所述主通道号将通信数据发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。
其中,摄像机可以从所有的摄像机通道号中选取主通道号,进而通过该主通道号将通信数据发送至中继服务器。中继服务器可以将第一映射表中的所有摄像机通道号进行关联,摄像机利用主通道号将通信数据发送至中继服务器后,中继服务器可以基于上述摄像机通道号的关联关系将通信数据发送至中继服务器,以使中继服务器将通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端,实现单个摄像机对多个中继服务器的数据传输。
作为一种可行的实施方式,在利用所述主通道号将通信数据发送至所述中继服务器之前,还可以将所述摄像机采集的视频数据和/或音频数据进行编码得到所述通信数据。
本实施例中的前端可以包括浏览器和用户APP(如,即时通信软件、小程序)等,以实现多个终端同时访问摄像机的媒体流。本实施例能够为中继服务器Turnserver增加一对多中继传输功能,还能够为摄像机增加WebRTC的一对多连接功能。
本实施例接收多个前端发送的请求信息和第一中继二元组,摄像机为每一发送请求信息的前端分配对应的摄像机通道号,进而建立包含摄像机通道号与第一中继二元组对应关系的第一映射表,并将该第一映射表同步至中继服务器。摄像机从所有摄像机通道号中选取主通道号,进而利用主通道号将通信数据发送至中继服务器。由于第一中继二元组中包含中继服务器为前端分配的中继地址和端口,各个前端的中继二元组不同,中继服务器可以记录第一映射表中的多个映射关系;在收到摄像机发送的通信数据后,中继服务器可以将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。本实施例能够实现摄像机对多个前端的数据传输,扩展WebRTC技术的应用场景。
作为对于图1对应实施例的进一步介绍,在接收多个前端发送的请求信息和第一中继二元组之后,摄像机还可以将自身的第二中继二元组发送至,以使前端利用第二中继二元组生成第二映射表,以使中继服务器基于第二映射表进行控制数据的发送。
上述过程包括:生成所述请求信息对应的应答信息;获取第二中继二元组;其中,所述第二中继二元组包括所述中继服务器为所述摄像机分配的中继地址和端口;缓存所述应答信息和所述第二中继二元组;将所述应答信息和所述第二中继二元组发送至每一所述前端,以便所述前端将所述第二中继二元组中的中继地址和前端通道号发送至所述中继服务器生成第二映射表;
其中,所述前端用于利用所述前端通道号向所述中继服务器发送所述通信数据对应的控制数据,所述中继服务器用于将所述控制数据发送至所述第二映射表中所述第二中继二元组对应的摄像机。
上述控制数据用于反馈通信数据已成功接收,或控制摄像机重新发送通信数据。例如,通信数据为RTP(Realtime Transport Protocol,实时传输协议)数据,控制数据为RTCP(Real-time Transport Control Protocol,实时传输控制协议)数据。
作为一种可行的实施方式,在利用所述主通道号将通信数据发送至所述中继服务器之后,还可以缓存所述通信数据,并将所述通信数据与分配给所述前端的所有所述摄像机通道号进行关联。摄像机可以根据接收到的所述控制数据判断所述通信数据是否成功发送至所述前端;若是,则取消所述前端对应的摄像机通道号与所述通信数据的关联;若否,则将需要重新发送所述通信数据的前端设置为目标前端;根据所述目标前端的第一中继二元组和所述通信数据生成Indication消息,并将所述Indication消息发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述目标前端。Indication消息为一对一传输的信息。
上述摄像机还可以判断通信数据与所有所述摄像机通道号之间的关联是否均取消;若是,则删除所述通信数据;若否,则等待前端发送控制数据。
作为一种可行的实施方式,前端和摄像机可以通过信令服务器交互请求信息Offer和应答信息Answer。具体的,前端可以通过所述信令服务器接收多个所述前端发送的所述请求信息和所述第一中继二元组,前端还可以将所述应答信息和所述第二中继二元组发送至信令服务器,以使所述信令服务器将所述应答信息和所述第二中继二元组转发至每一所述前端。
下面通过在实际应用中的实施例说明上述实施例描述的流程。
WebRTC技术借助中继服务器Turnserver,对于中继服务器Turnserver来说,所有支持WebRTC的前端和摄像机被定义为Peer。Peer连接到Turnserver,Turnserver分配一个公开的代理地址(即中继地址)和端口,该中继地址和端口为中继二元组,Turnserver将中继二元组返回给Peer,Peer完成收集;客户端和摄像机收集中继二元组是相同的流程。Peer为进行WEBRTC连接的两个端点,本实施例中Peer指前端及摄像机端。
相关技术中,前端与摄像机进行通信数据传输的过程如下:
步骤A1:WebRTC借助Turnserver建立P2P连接。
上述P2P连接为前端与摄像机基于WebRTC协议的连接。
步骤A2:WebRTC基于P2P传输通道,实现RTP/RTCP协议。
步骤A3:前端创建Offer,通过信令服务器转发至摄像机端。
步骤A4:摄像机端创建Answer,通过信令服务器转发至前端。
步骤A5:前端连接Turnserver,收集中继二元组,通过信令服务器转发中继二元组至摄像机端。
步骤A6:摄像机端连接Turnserver,收集中继二元组,通过信令服务器转发中继二元组至前端。
对于中继服务器Turnserver来说,摄像机端和客户端被定义为Peer;二元组为中继服务器Turnserver为Peer分配的中继地址和端口,作为Peer的公开代理地址信息。收集中继二元组是WEBRTC的标准协议,Peer端向中继服务器Turnserver发送Allocate类型的消息,Turnserver分配中继地址和端口。
上述步骤A5中收集和转发的中继二元组指:中继服务器Turnserver为摄像机分配的中继地址和端口;上述步骤A6中收集和转发的中继二元组指:中继服务器Turnserver为前端分配的中继地址和端口。
步骤A7:摄像机端接收前端的中继二元组,创建一个Channel Number(即,摄像机通道号),将Channel Number和前端的中继二元组发送至Turnserver进行绑定,完成连接。
步骤A8:前端接收摄像机的中继二元组,创建一个Channel Number(即,前端通道号),将Channel Number和摄像机的中继二元组发送至Turnserver进行绑定,完成连接。
步骤A9:Turnserver中继传输包括以下2种模式:
a)Channel模式:
i.Turnserver接收Peer端的绑定请求,将Peer端创建的Channel Number与中继地址添加到映射表进行绑定;
ii.Turnserver绑定前,检查映射表中是否存在Channel Number或中继地址,若存在则添加失败,否则添加成功,允许Peer进行中继;
iii.Peer将发送的数据创建为Channel消息,数据前添加4字节消息头,前2个字节是Channel Number,后2个字节是数据长度;发送Channel消息至Turnserver;
iv.Turnserver接收Peer的Channel消息,解析出Channel Number和数据长度,根据映射表找到中继二元组,将数据转发至中继二元组。由于Channel Number与对方Peer的中继二元组绑定的,数据转发至中继二元组,意味着数据转发至对方Peer(前端或摄像机)。
b)Indication消息模式:
i.Indication消息是Turnserver的标准消息,Peer创建Indication消息,Peer中继二元组、数据均以TLV属性的形式添加至Indication消息体中,发送至Turnserver;
ii.Turnserver接收Indication消息,解析出Peer中继二元组和数据,将数据转发至中继二元组。Indication消息中包括了对方Peer的中继二元组,Turnserver从消息中解析出中继二元组和数据,将数据直接转发至中继二元组,意味着数据转发至对方Peer(前端或摄像机)。
Indication模式是Turnserver标准中继消息,Peer发送的数据作为消息属性,并将转发的目标地址添加到该消息的属性中。Channel模式是Turnserver的另一种标准中继消息,为节约带宽,仅添加4字节存储通道号及数据长度。
步骤A10:摄像机端利用WebRTC技术将音视频帧打包成RTP,以Channel模式发送到Turnserver;
步骤A11:Turnserver通过映射表,找出Channel Number对应的前端中继二元进行转发;
步骤A12:前端接收数据,WebRTC解析出音视频帧;
步骤A13:摄像机端和前端,创建RTCP包,通过Channel模式发送至Turnserver;前端接收摄像机端的RTCP包,实时控制RTP包的发送状态。
上述实现方式中,WebRTC协议的底层连接是P2P模式,不支持一对多传输;中继服务器Turnserver为Peer分配的中继二元组,仅端口不同。映射表的映射关系仅以中继地址和Channel Number绑定,仅支持一对一的中继传输。
为了解决上述相关技术存在的问题,本申请提供一种Turnserver一对多中继传输方案。本方案对摄像机的改进为:缓存Answer及中继二元组,实现WebRTC一对多传输RTP,通过Indication消息机制实现一对一传输RTCP。本方案对中继服务器Turnserver的改进为:实现一对多中继续传输,修改映射关系:中继二元组对应Channel Number,添加多条映射关系;转发数据时,通过遍历映射表转发实现一对多中继传输。
本实施例主要包含以下几个模块:Turnserver一对多中继传输;摄像机端WEBRTC一对多RTP/RTCP传输;
摄像机端实现如下步骤:
步骤B1:前端1发起连接,创建Offer,连接Turnserver收集中继二元组,通过信令服务器,将Offer和中继二元组转发至摄像机端。
步骤B2:摄像机端接收Offer,创建Answer,连接Turnserver收集中继二元组,通过信令服务器,将Answer和中继二元组转发至前端1。
步骤B3:摄像机端缓存Answer和中继二元组。
其中,本步骤中缓存的中继二元组为Turnserver为摄像机分配的中继二元组。
步骤B4:摄像机端创建通道号CHN1与前端1的中继二元组绑定,添加到本地列表,提交到Turnserver,Turnserver建立映射关系,返回连接成功状态,设置通道号CHN1为主通道号,摄像机端仅从主通道号进行推流。
本实施例可以将通道号与前端的中继二元组添加至本地列表(即第一映射表),并提交到Turnserver进行绑定,建立映射关系。
步骤B5:前端2发起连接,创建Offer,连接Turnserver收集中继二元组,通过信令服务器,将缓存的Offer及中继二元组转发至摄像机端。
步骤B6:摄像机端接收前端2的Offer,将缓存的Answer及中继二元组,通过信令服务器转发至前端2。
步骤B7:摄像机端创建通道号CHN2与前端2的中继二元组绑定,添加到本地列表,同时提交到Turnserver,Turnserver建立映射关系,返回连接成功状态。
步骤B8:多个前端连接重复步骤B5到B7。
步骤B9:摄像机端连接成功,开始采集视频并编码为H264/VP9/VP8等SDP协商成功的视频帧,构造RTP包,通过CHN1进行传输;采集音频流编码为Opus/G711等SDP中协商成功的音频帧,构造RTP包,通过CHN1进行传输。SDP为媒体描述协议,包括Offer和Answer。Offer为WEBRTC协议中的SDP,即:发连接的Peer创建的媒体描述。Answer为WEBRTC协议中的SDP,即:被连接的Peer创建的媒体描述。
步骤B10:前端遵循标准WEBRTC连接协议,通道号与中继地址一一对应;前端通过Turnserver的Channel模式传输RTP/RTCP包。
步骤B11:摄像机端通过Channel模式传输RTP包,通过Indication模式传输RTCP包,RTCP包是控制消息,要求一对一传输;摄像机端缓存RTP包,关联所有的通道号,通过RTCP包来控制传输状态,摄像机端在Channel模式下接收两种RTCP包。上述两种RTCP包分别为反馈RTP包传输成功的RTCP包,以及需要重传RTP包的RTCP包。
a)RTP传输完成:根据通道号,来标识该通道对应的前端RTP包正确传输,直到所有通道号都被标识传输正确,释放该RTP包,按此流程处理所有的RTP包;
b)重传RTP:需要重新发送RTP包,根据通道号,获取对应的的前端中继地址,通过TurnServer协议的Indication模式,单独发送给前端,通知前端RTP包重传。
摄像机和中继服务器TurnServer都创建同一份相同的第一映射表,该第一映射表内中继二元组与摄像机通道号相对应,请参见图2,图2为本申请实施例所提供的一种第一映射表的示意图,图中示出了修改后的通道号与中继二元组映射表,通道号1与前端1的中继二元组绑定,通道号2与前端2的中继二元组绑定,通道号n与前端n的中继二元组绑定。相关技术中的映射表是通道号仅与中继地址对应,由于地址相同,因此不支持一对多功能;修改后的映射表,通道号与中继二元组对应,虽然中继地址相同,但端口不同,因此可实现一对多功能。
前端遵循标准WebRTC,仅在Turnserver与前端的会话中,创建一个第二映射表,中继地址(不包含端口)与通道号对应。请参见图3,图3为本申请实施例所提供的一种第二映射表的示意图,图3中示出了通道号1与中继地址(该中继地址与前端1和端口对应)的绑定关系。
中继服务器Turnserver一对多中继传输实现过程如下:中继服务器Turnserver中继传输有Channel模式和Indication模式,修改Channel模式实现一对多中继传输。Turnserver通道号与中继地址的映射关系是以中继地址作为Key,通道号作为Value,由于中继地址相同,因此原生Turnserver仅支持一对一对中继传输,现修改为以中继二元组为Key,由于端口不同,映射表可记录多条中继对应关系。中继服务器Turnserver与摄像机端创建的会话中,从任一通道号接收消息,遍历映射表,将消息转发至映射表中所有中继二元组,完成一对多中继功能。Turnserver的Indication消息模式不做修改,为实现RTCP一对一的控制消息传输。
请参见图4,图4为本申请实施例所提供的一种摄像机与前端的通信数据传输流程图,具体过程如下:摄像机进行视频采集和视频编码得到RTP包,摄像机还可以进行音频采集和音频编码得到RTP包。中继服务器Turnserver中存储摄像机通道号(CHN1、CHN2、CHNn)与前端的中继二元组的对应关系,如摄像机的CHN1与前端的中继二元组1绑定,摄像机的CHN2与前端的中继二元组2绑定,摄像机的CHNn与前端的中继二元组n绑定,摄像机可以选定CHN1作为主通道号。中继服务器Turnserver收到RTP包后,将RTP包一对多发送至中继二元组1、中继二元组2~中继二元组n对应的前端1、前端2~前端n。摄像机与前端n可以通过CHNn交互RTCP包。
本实施例实现Turnserver一对多中继传输功能;摄像机端支持Answer缓存,及传输通道和中继二元组的映射表;摄像机端使用Channel模式传输RTP包,使用Indication模式传输RTCP包。本实施例中Turnserver一对多中继传输功能,仅使用原生的WEBRTC,在浏览器等前端实现摄像机直播功能;摄像机端结合Turnserver的通道消息和Indication消息这两种中继模式,实现RTP/RTCP的完整协议,无缝对接前端。
由于浏览器、应用程序等原生支持WEBRTC,因此无需复杂的开发;摄像机端与前端直接传输视频帧和音频帧,无需通过RTSP进行转换,极大的降低时延;本实施例省去RTSP服务的配置,降低部署复杂度。摄像机端无需对音、视频帧进行封包和推流,可降低设备的成本;对已有的WEBRTC前端,通过Turnserver一对多中继传输功能,可无缝对接设备,无需修改。
请参见图5,图5为本申请实施例所提供的一种通信数据的传输系统的结构示意图,该系统可以应用于实现了WebRTC技术的摄像机,包括:
信息接收模块501,用于接收多个前端发送的请求信息和第一中继二元组;其中,所述第一中继二元组包括中继服务器为所述前端分配的中继地址和端口;
映射建立模块502,用于为每一所述前端分配对应的摄像机通道号,建立包含所述摄像机通道号与所述第一中继二元组对应关系的第一映射表,并将所述第一映射表同步至所述中继服务器;
传输模块503,用于从所有所述摄像机通道号中选取主通道号,并利用所述主通道号将通信数据发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。
本实施例接收多个前端发送的请求信息和第一中继二元组,摄像机为每一发送请求信息的前端分配对应的摄像机通道号,进而建立包含摄像机通道号与第一中继二元组对应关系的第一映射表,并将该第一映射表同步至中继服务器。摄像机从所有摄像机通道号中选取主通道号,进而利用主通道号将通信数据发送至中继服务器。由于第一中继二元组中包含中继服务器为前端分配的中继地址和端口,各个前端的中继二元组不同,中继服务器可以记录第一映射表中的多个映射关系;在收到摄像机发送的通信数据后,中继服务器可以将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。本实施例能够实现摄像机对多个前端的数据传输,扩展WebRTC技术的应用场景。
进一步的,还包括:
应答模块,用于在接收多个前端发送的请求信息和第一中继二元组之后,生成所述请求信息对应的应答信息;
第二映射生成模块,用于获取第二中继二元组;其中,所述第二中继二元组包括所述中继服务器为所述摄像机分配的中继地址和端口;还用于缓存所述应答信息和所述第二中继二元组;还用于将所述应答信息和所述第二中继二元组发送至每一所述前端,以便所述前端将所述第二中继二元组中的中继地址和前端通道号发送至所述中继服务器生成第二映射表;其中,所述前端用于利用所述前端通道号向所述中继服务器发送所述通信数据对应的控制数据,所述中继服务器用于将所述控制数据发送至所述第二映射表中所述第二中继二元组对应的摄像机。
进一步的,还包括:
缓存模块,用于在利用所述主通道号将通信数据发送至所述中继服务器之后,缓存所述通信数据,并将所述通信数据与分配给所述前端的所有所述摄像机通道号进行关联;
缓存管理模块,用于根据接收到的所述控制数据判断所述通信数据是否成功发送至所述前端;若是,则取消所述前端对应的摄像机通道号与所述通信数据的关联;还用于判断所述通信数据与所有所述摄像机通道号之间的关联是否均取消;若是,则删除所述通信数据。
进一步的,还包括:
缓存管理模块,用于根据接收到的所述控制数据判断所述通信数据是否成功发送至所述前端;还用于若通信数据未成功发送至所述前端,则将需要重新发送所述通信数据的前端设置为目标前端;
重发模块,用于根据所述目标前端的第一中继二元组和所述通信数据生成Indication消息,并将所述Indication消息发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述目标前端。
进一步的,第二映射生成模块将所述应答信息和所述第二中继二元组发送至每一所述前端的过程包括:将所述应答信息和所述第二中继二元组发送至信令服务器,以使所述信令服务器将所述应答信息和所述第二中继二元组转发至每一所述前端。
进一步的,信息接收模块501接收多个前端发送的请求信息和第一中继二元组的过程包括:通过所述信令服务器接收多个所述前端发送的所述请求信息和所述第一中继二元组。
进一步的,还包括:
编码模块,用于在利用所述主通道号将通信数据发送至所述中继服务器之前,将所述摄像机采集的视频数据和/或音频数据进行编码得到所述通信数据。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种摄像机,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述摄像机还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种通信数据的传输方法,其特征在于,应用于实现了WebRTC技术的摄像机,包括:
接收多个前端发送的请求信息和第一中继二元组;其中,所述第一中继二元组包括中继服务器为所述前端分配的中继地址和端口;
为每一所述前端分配对应的摄像机通道号,建立包含所述摄像机通道号与所述第一中继二元组对应关系的第一映射表,并将所述第一映射表同步至所述中继服务器;
从所有所述摄像机通道号中选取主通道号,并利用所述主通道号将通信数据发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。
2.根据权利要求1所述通信数据的传输方法,其特征在于,在接收多个前端发送的请求信息和第一中继二元组之后,还包括:
生成所述请求信息对应的应答信息;
获取第二中继二元组;其中,所述第二中继二元组包括所述中继服务器为所述摄像机分配的中继地址和端口;
缓存所述应答信息和所述第二中继二元组;
将所述应答信息和所述第二中继二元组发送至每一所述前端,以便所述前端将所述第二中继二元组中的中继地址和前端通道号发送至所述中继服务器生成第二映射表;其中,所述前端用于利用所述前端通道号向所述中继服务器发送所述通信数据对应的控制数据,所述中继服务器用于将所述控制数据发送至所述第二映射表中所述第二中继二元组对应的摄像机。
3.根据权利要求2所述通信数据的传输方法,其特征在于,在利用所述主通道号将通信数据发送至所述中继服务器之后,还包括:
缓存所述通信数据,并将所述通信数据与分配给所述前端的所有所述摄像机通道号进行关联;
根据接收到的所述控制数据判断所述通信数据是否成功发送至所述前端;若是,则取消所述前端对应的摄像机通道号与所述通信数据的关联;
判断所述通信数据与所有所述摄像机通道号之间的关联是否均取消;若是,则删除所述通信数据。
4.根据权利要求2所述通信数据的传输方法,其特征在于,还包括:
根据接收到的所述控制数据判断所述通信数据是否成功发送至所述前端;
若否,则将需要重新发送所述通信数据的前端设置为目标前端;
根据所述目标前端的第一中继二元组和所述通信数据生成Indication消息,并将所述Indication消息发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述目标前端。
5.根据权利要求2所述通信数据的传输方法,其特征在于,将所述应答信息和所述第二中继二元组发送至每一所述前端,包括:
将所述应答信息和所述第二中继二元组发送至信令服务器,以使所述信令服务器将所述应答信息和所述第二中继二元组转发至每一所述前端。
6.根据权利要求5所述通信数据的传输方法,其特征在于,接收多个前端发送的请求信息和第一中继二元组,包括:
通过所述信令服务器接收多个所述前端发送的所述请求信息和所述第一中继二元组。
7.根据权利要求1至6任一项所述通信数据的传输方法,其特征在于,在利用所述主通道号将通信数据发送至所述中继服务器之前,还包括:
将所述摄像机采集的视频数据和/或音频数据进行编码得到所述通信数据。
8.一种通信数据的传输系统,其特征在于,应用于实现了WebRTC技术的摄像机,包括:
信息接收模块,用于接收多个前端发送的请求信息和第一中继二元组;其中,所述第一中继二元组包括中继服务器为所述前端分配的中继地址和端口;
映射建立模块,用于为每一所述前端分配对应的摄像机通道号,建立包含所述摄像机通道号与所述第一中继二元组对应关系的第一映射表,并将所述第一映射表同步至所述中继服务器;
传输模块,用于从所有所述摄像机通道号中选取主通道号,并利用所述主通道号将通信数据发送至所述中继服务器,以使所述中继服务器将所述通信数据发送至所述第一映射表中所有所述第一中继二元组对应的前端。
9.一种摄像机,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1至7任一项所述通信数据的传输方法的步骤。
10.一种存储介质,其特征在于,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至7任一项所述通信数据的传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311146315.2A CN117201464A (zh) | 2023-09-06 | 2023-09-06 | 一种通信数据的传输方法、系统、摄像机及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311146315.2A CN117201464A (zh) | 2023-09-06 | 2023-09-06 | 一种通信数据的传输方法、系统、摄像机及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117201464A true CN117201464A (zh) | 2023-12-08 |
Family
ID=89002862
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311146315.2A Pending CN117201464A (zh) | 2023-09-06 | 2023-09-06 | 一种通信数据的传输方法、系统、摄像机及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117201464A (zh) |
-
2023
- 2023-09-06 CN CN202311146315.2A patent/CN117201464A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9906573B2 (en) | Streaming media | |
US20150215661A1 (en) | System And Method For Distributing Live Broadcast Content | |
US8140927B2 (en) | Method and system for reliable multicast data transmission | |
JP5519183B2 (ja) | Ccn経由音声通話実現方法 | |
JP2004529410A5 (zh) | ||
US20020143959A1 (en) | Method and apparatus for interactive direct peer-to-peer multimedia streaming | |
JPWO2005099188A1 (ja) | 通信品質管理方法および装置 | |
JP6523260B2 (ja) | マルチキャストクライアントからのストリームに加入する方法 | |
EP2109285A1 (en) | Conference system and method | |
KR101600060B1 (ko) | 다중캐스트 네트워크에서 sctp를 위한 프로토콜 부스터 | |
EP2282460B1 (en) | Document transmission realizing method, apparatus and user device for message business | |
US20140059118A1 (en) | Method and Devices for Enhanced File Transfer | |
WO2011022994A1 (zh) | 组播实时传输协议会话快速接入的方法、装置及系统 | |
CN101073237B (zh) | 用于传送多媒体文件的方法 | |
CN101237337B (zh) | 在会议系统中向终端发送多媒体消息的方法、系统和设备 | |
WO2019100912A1 (zh) | 数据分发方法以及分发服务器 | |
EP2445162B1 (en) | Method For Adaptive Streaming | |
WO2010028601A1 (zh) | 以文件方式传输媒体内容的方法、系统及设备 | |
EP1940110A1 (en) | Stream recording method, apparatus and system | |
CN117201464A (zh) | 一种通信数据的传输方法、系统、摄像机及存储介质 | |
JP2011515980A (ja) | 通信システムにおけるピアツーピアマルチメディア接続の状態を問い合わせるシステムおよび方法 | |
CN116032998A (zh) | 数据传输方法、装置、计算机可读存储介质及电子设备 | |
CN112788348A (zh) | 一种点播方法、装置、设备、系统及存储介质 | |
JP3478259B2 (ja) | ストリーム中継制御装置、ストリーム中継制御システム、ストリーム中継制御方法,ならびに該方法を記録した記録媒体 | |
CN105744309A (zh) | 一种直播视频的生成及播放方法、装置、终端及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |