CN117834991A - 基于WebRTC的P2P和SFU混合传输架构 - Google Patents
基于WebRTC的P2P和SFU混合传输架构 Download PDFInfo
- Publication number
- CN117834991A CN117834991A CN202311561206.7A CN202311561206A CN117834991A CN 117834991 A CN117834991 A CN 117834991A CN 202311561206 A CN202311561206 A CN 202311561206A CN 117834991 A CN117834991 A CN 117834991A
- Authority
- CN
- China
- Prior art keywords
- sfu
- communication
- client
- participant
- webrtc
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 52
- 238000004891 communication Methods 0.000 claims abstract description 87
- 230000011664 signaling Effects 0.000 claims abstract description 48
- 230000007812 deficiency Effects 0.000 claims 2
- 239000002699 waste material Substances 0.000 abstract description 6
- 230000002457 bidirectional effect Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于WebRTC的P2P和SFU混合传输架构,客户端各个设备在建立连接前,各个设备间通过WebSocket建立与信令服务器的连接,信令服务器接收各个设备间的信令之后,检查信令中的参与者的数量,若参与者数量只有两人,则采用P2P通信模式,并进行P2P通讯;若检查到的参与者数量大于2,即就是多对多通信,则采用SFU通信模式,并进行SFU通信。本发明的基于WebRTC的P2P和SFU混合传输架构,将P2P和SFU进行结合,根据参与者数量选择通讯模式,能节省流量并避免带宽浪费。
Description
技术领域
本发明属于实时视频流通信方法技术领域,涉及一种基于WebRTC的P2P和SFU混合传输架构。
背景技术
WebRTC是一种用于在Web浏览器之间进行实时音视频和数据传输的开放标准,它使用了一系列的协议和技术,如实时传输协议(RTP)、会话描述协议(SDP)和候选者协议(ICE)等。
现有的实时视频流通信方案中,WebRTC在构建浏览器视频通信时,提出的网络架构方案可分为Mesh(P2P)服务器架构,Multi-point Control Unit(MCU)服务器架构和Selective Forwarding Unit(SFU)服务器架构。
Mesh服务器架构其实就是标准P2P通讯模式的混用,每一个P2P连接有独立的传输策略控制,在Mesh架构中,每个参与者都可以同时与其他所有参与者进行直接通信,实现实时视频流的传输。但在采用Mesh服务器架构进行P2P通讯时,由于需要分配更多的端口和消耗更多的系统资源,因此在网络状况较差或人数较多的情况下,可能会出现传输延迟和带宽消耗较大的问题。
MCU传输方案中,参与者通过与MCU建立连接来实现实时视频流的传输。MCU充当中间节点,负责接收来自发送方的数据流,并根据需要选择性地转发给接收方。MCU可以进行混音、混频和转码等处理,以适应不同的网络环境和设备能力。在采用MCU传输方案时,虽然可以提供更好的可扩展性和灵活性,但存在单点故障和传输延迟的问题,同时需要耗费较多的处理资源和带宽。
SFU传输方案是一种折中的方案,结合了P2P和MCU的优势。在SFU传输中,每个参与者与SFU建立连接,SFU接收来自发送方的数据流,并根据网络条件和接收方的设备能力选择性地将数据流转发给合适的接收方,这使得SFU可以以最低的开销来转发各路媒体流。虽然可以以最低的开销来转发各路媒体流,并且可以根据需要进行转码和处理,以适应不同的网络环境和设备能力。
发明内容
本发明的目的是提供一种基于WebRTC的P2P和SFU混合传输架构,将P2P和SFU进行结合,根据参与者数量选择通讯模式,能节省流量并避免带宽浪费。
本发明所采用的技术方案是,基于WebRTC的P2P和SFU混合传输架构,客户端各个设备在建立连接前,各个设备间通过WebSocket建立与信令服务器的连接,信令服务器接收各个设备间的信令之后,检查信令中的参与者的数量,若参与者数量只有两人,则采用P2P通信模式,并进行P2P通讯;若检查到的参与者数量大于2,即就是多对多通信,则采用SFU通信模式,并进行SFU通信。
本发明的特征还在于,
各个设备间通过WebSocket建立与信令服务器的连接用于设备与信令服务器之间双向传输信令消息。
在P2P通信模式中,客户端设备通过STUN服务器来发现公共IP地址和端口,从而直接建立通信通道,实现直接的设备间音视频通信。
采用P2P通信模式进行P2P通讯具体按照如下步骤实施:
步骤1.1,客户端设备首先向STUN服务器发送请求,以获取其在Internet上可见的公共IP地址和端口号;
步骤1.2,STUN服务器收到客户端设备的请求后,会向客户端设备返回响应,响应包括该客户端设备在Internet上的公共IP地址和端口号;
步骤1.3,客户端设备收到来自STUN服务器的响应后,将获得的公共IP地址和端口号作为ICE候选地址;
步骤1.4,客户端各个设备之间通过信令服务器交换各自的ICE候选地址,并根据各自的候选地址选择合适的通信路径;
步骤1.5,根据选择的通信路径客户端各个设备之间直接通过公共IP地址和端口建立通信通道,实现直接的P2P音视频传输。
在SFU通信模式中,通过SFU节点来提供中继功能,在SFU节点上进行音视频流量的转发,当设备中的发送方与SFU节点建立连接后,数据流会首先传输到SFU节点,然后SFU节点会根据网络条件和设备中接收方的设备能力,选择性地将数据流转发给合适的接收方。
采用SFU通信模式进行SFU通信具体按照如下步骤实施:
步骤2.1,客户端各个设备作为参与者均通过信令服务器加入通信会话,并通知其他参与者自己的存在;
步骤2.2,每个参与者根据步骤1.1-1.3的方式获取自己的ICE候选地址;
步骤2.3,每个参与者通过信令服务器将自己的ICE候选地址发送给其他参与者,并向SFU节点发送自己的候选地址信息;
步骤2.4,SFU节点收到各参与者的候选地址后,根据各参与者信令中携带的网络状况和负载情况选择合适的路由,确定如何进行音视频流量的转发;
步骤2.5,SFU节点为每个参与者建立相应的转发通道,将每个参与者发送的音视频数据转发给其他参与者,转发给其他参与者时SFU节点根据每个参与者的网络状况和带宽情况动态调整转发的音视频数据,从而实现多人通信的需求。
步骤2.5中SFU节点根据每个参与者的网络状况和带宽情况动态调整转发的音视频数据具体为:
SFU节点对客户端作为接收的设备进行判断,若判定该参与者带宽不足,则减少视频传输的分辨率,若判定该参与者网络延迟高则减少视频传输的分辨率和帧率。
客户端带宽不足具体根据分辨率和编码方式确定,根据分辨率和编码方式确定出最小的宽带,若客户端带宽低于该最小的宽带,则认为客户端带宽不足。
网络延时具体判断标准为:延时超过500毫秒则认为网络延迟高。
本发明的有益效果是:
本发明在建立连接前,设备间先传输信令信息,再根据信令中的参与者数量,确定是点对点通信还是多对多通信,以实现高质量的视频传输,节省流量并避免带宽浪费和传输延迟。
本发明在进行多对多通信时,SFU节点根据每个参与者的网络状况和带宽情况动态调整转发的音视频数据,能最大程度地利用可用的带宽资源,并保障通信质量,并避免带宽浪费和传输延迟。
附图说明
图1是本发明基于WebRTC的P2P和SFU混合传输架构中根据参与者的数量选择通讯模式的流程图;
图2是本发明实施例3中各个设备间通过WebSocket建立与信令服务器的连接图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
实施例1
本发明基于WebRTC的P2P和SFU混合传输架构,客户端各个设备在建立连接前,各个设备间通过WebSocket建立与信令服务器的连接,信令服务器接收各个设备间的信令之后,检查信令中的参与者的数量,如图1所示,若参与者数量只有两人,则采用P2P通信模式,并进行P2P通讯;若检查到的参与者数量大于2,即就是多对多通信,则采用SFU通信模式,并进行SFU通信。
各个设备间通过WebSocket建立与信令服务器的连接用于设备与信令服务器之间双向传输信令消息。
在P2P通信模式中,客户端设备通过STUN服务器来发现公共IP地址和端口,从而直接建立通信通道,实现直接的设备间音视频通信。
采用P2P通信模式进行P2P通讯具体按照如下步骤实施:
步骤1.1,客户端设备首先向STUN服务器发送请求,以获取其在Internet上可见的公共IP地址和端口号;
步骤1.2,STUN服务器收到客户端设备的请求后,会向客户端设备返回响应,响应包括该客户端设备在Internet上的公共IP地址和端口号;
步骤1.3,客户端设备收到来自STUN服务器的响应后,将获得的公共IP地址和端口号作为ICE候选地址;
步骤1.4,客户端各个设备之间通过信令服务器交换各自的ICE候选地址,并根据各自的候选地址选择合适的通信路径;
步骤1.5,根据选择的通信路径客户端各个设备之间直接通过公共IP地址和端口建立通信通道,实现直接的P2P音视频传输。
在SFU通信模式中,通过SFU节点来提供中继功能,在SFU节点上进行音视频流量的转发,当设备中的发送方与SFU节点建立连接后,数据流会首先传输到SFU节点,然后SFU节点会根据网络条件和设备中接收方的设备能力,选择性地将数据流转发给合适的接收方。
采用SFU通信模式进行SFU通信具体按照如下步骤实施:
步骤2.1,客户端各个设备作为参与者均通过信令服务器加入通信会话,并通知其他参与者自己的存在;
步骤2.2,每个参与者根据步骤1.1-1.3的方式获取自己的ICE候选地址;
步骤2.3,每个参与者通过信令服务器将自己的ICE候选地址发送给其他参与者,并向SFU节点发送自己的候选地址信息;
步骤2.4,SFU节点收到各参与者的候选地址后,根据各参与者信令中携带的网络状况和负载情况选择合适的路由,确定如何进行音视频流量的转发;
步骤2.5,SFU节点为每个参与者建立相应的转发通道,将每个参与者发送的音视频数据转发给其他参与者,转发给其他参与者时SFU节点根据每个参与者的网络状况和带宽情况动态调整转发的音视频数据,从而实现多人通信的需求。
步骤2.5中SFU节点根据每个参与者的网络状况和带宽情况动态调整转发的音视频数据具体为:
SFU节点对客户端作为接收的设备进行判断,若判定该参与者带宽不足,则减少视频传输的分辨率,若判定该参与者网络延迟高则减少视频传输的分辨率和帧率。
本发明若参与者数量只有两人,则判定为P2P通信模式。P2P通信模式中,设备通过STUN服务器来帮助发现公共IP地址和端口,从而直接建立通信通道,实现直接的设备间音视频通信,避免了中心节点的转发。这种直接连接减少了传输延迟和带宽消耗。此外,P2P传输架构还具有较好的隐私性,因为通信数据直接传输在两个参与者之间,不经过第三方服务器,增强了数据的安全性。
本发明进行多人通讯时,SFU节点根据每个参与者的网络状况和带宽情况动态调整转发的音视频数据。通过分析当前的网络状况和可用带宽,适当的调整数据传输。通过这种优化策略,以最大程度地利用可用的带宽资源,并保障通信质量。
本发明采用的WebSocket提供了一种简单且高效的方式来进行信令交换。WebSocket是在WebRTC中的一种在客户端和服务器之间建立持久连接的通信协议。设备可以通过WebSocket建立与信令服务器的连接,并通过该连接进行实时的双向通信。
WebSocket中的信令服务器是指负责协调和转发通信消息的服务器。信令服务器的主要用于传输媒体信息和网络信息。
实施例2
在实施例1的基础上,客户端带宽不足具体根据分辨率和编码方式确定,根据分辨率和编码方式确定出最小的宽带,若客户端带宽低于该最小的宽带,则认为客户端带宽不足。比如:对于常见的720p分辨率的视频,H.264编码需要至少1Mbps的带宽。因此,如果客户端的实际带宽低于1Mbps,则认为带宽不足。
网络延时具体判断标准为:WebRTC中的视频传输要求在100毫秒到500毫秒之间的延迟,超过500毫秒的延迟可能会导致明显的卡顿和延迟效果,因此,延时超过500毫秒则认为网络延迟高。
实施例3
在实施例1和2的基础上,如图2所示,本实施例共3个客户端设备之间进行通讯,客户端各个设备在建立连接前,各个设备间通过WebSocket建立与信令服务器的连接,如图2所示,即就是建立客户端A设备、客户端B设备、客户端C设备与信令服务器的之间的连接。
本发明在建立连接前,设备间先传输信令信息,再根据信令中的参与者数量,确定是点对点通信还是多对多通信。然后根据通信的人数选择传输模式,基于传输模式选择传输优化策略,以实现高质量的视频传输,节省流量并避免带宽浪费和传输延迟。
本发明的混合传输架构充分利用了P2P和SFU各自的优势,节省了网络资源。结合对应的传输策略,通过混合传输架构,P2P和SFU相互协作,共同优化实时通信的性能和可靠性且能够根据不同情况下的通信需求调整数据流量的分配,通过合理分配数据流量,以确保每个参与者获得稳定、流畅的视频流,节省流量,并避免带宽浪费和传输延迟,从而提升用户体验。
Claims (9)
1.基于WebRTC的P2P和SFU混合传输架构,其特征在于,客户端各个设备在建立连接前,各个设备间通过WebSocket建立与信令服务器的连接,信令服务器接收各个设备间的信令之后,检查信令中的参与者的数量,若参与者数量只有两人,则采用P2P通信模式,并进行P2P通讯;若检查到的参与者数量大于2,即就是多对多通信,则采用SFU通信模式,并进行SFU通信。
2.根据权利要求1所述的基于WebRTC的P2P和SFU混合传输架构,其特征在于,所述各个设备间通过WebSocket建立与信令服务器的连接用于设备与信令服务器之间双向传输信令消息。
3.根据权利要求1所述的基于WebRTC的P2P和SFU混合传输架构,其特征在于,在所述P2P通信模式中,客户端设备通过STUN服务器来发现公共IP地址和端口,从而直接建立通信通道,实现直接的设备间音视频通信。
4.根据权利要求3所述的基于WebRTC的P2P和SFU混合传输架构,其特征在于,采用所述P2P通信模式进行P2P通讯具体按照如下步骤实施:
步骤1.1,客户端设备首先向STUN服务器发送请求,以获取其在Internet上可见的公共IP地址和端口号;
步骤1.2,STUN服务器收到客户端设备的请求后,会向客户端设备返回响应,响应包括该客户端设备在Internet上的公共IP地址和端口号;
步骤1.3,客户端设备收到来自STUN服务器的响应后,将获得的公共IP地址和端口号作为ICE候选地址;
步骤1.4,客户端各个设备之间通过信令服务器交换各自的ICE候选地址,并根据各自的候选地址选择合适的通信路径;
步骤1.5,根据选择的通信路径客户端各个设备之间直接通过公共IP地址和端口建立通信通道,实现直接的P2P音视频传输。
5.根据权利要求4所述的基于WebRTC的P2P和SFU混合传输架构,其特征在于,在所述SFU通信模式中,通过SFU节点来提供中继功能,在SFU节点上进行音视频流量的转发,当设备中的发送方与SFU节点建立连接后,数据流会首先传输到SFU节点,然后SFU节点会根据网络条件和设备中接收方的设备能力,选择性地将数据流转发给合适的接收方。
6.根据权利要求5所述的基于WebRTC的P2P和SFU混合传输架构,其特征在于,采用所述SFU通信模式进行SFU通信具体按照如下步骤实施:
步骤2.1,客户端各个设备作为参与者均通过信令服务器加入通信会话,并通知其他参与者自己的存在;
步骤2.2,每个所述参与者根据步骤1.1-1.3的方式获取自己的ICE候选地址;
步骤2.3,每个参与者通过信令服务器将自己的ICE候选地址发送给其他参与者,并向SFU节点发送自己的候选地址信息;
步骤2.4,SFU节点收到各参与者的候选地址后,根据各参与者信令中携带的网络状况和负载情况选择合适的路由,确定如何进行音视频流量的转发;
步骤2.5,SFU节点为每个参与者建立相应的转发通道,将每个参与者发送的音视频数据转发给其他参与者,转发给其他参与者时SFU节点根据每个参与者的网络状况和带宽情况动态调整转发的音视频数据,从而实现多人通信的需求。
7.根据权利要求6所述的基于WebRTC的P2P和SFU混合传输架构,其特征在于,所述步骤2.5中SFU节点根据每个参与者的网络状况和带宽情况动态调整转发的音视频数据具体为:
SFU节点对客户端作为接收的设备进行判断,若判定该参与者带宽不足,则减少视频传输的分辨率,若判定该参与者网络延迟高则减少视频传输的分辨率和帧率。
8.根据权利要求7所述的基于WebRTC的P2P和SFU混合传输架构,其特征在于,客户端带宽不足具体根据分辨率和编码方式确定,根据分辨率和编码方式确定出最小的宽带,若客户端带宽低于该最小的宽带,则认为客户端带宽不足。
9.根据权利要求8所述的基于WebRTC的P2P和SFU混合传输架构,其特征在于,网络延时具体判断标准为:延时超过500毫秒则认为网络延迟高。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311561206.7A CN117834991A (zh) | 2023-11-22 | 2023-11-22 | 基于WebRTC的P2P和SFU混合传输架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311561206.7A CN117834991A (zh) | 2023-11-22 | 2023-11-22 | 基于WebRTC的P2P和SFU混合传输架构 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117834991A true CN117834991A (zh) | 2024-04-05 |
Family
ID=90508616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311561206.7A Pending CN117834991A (zh) | 2023-11-22 | 2023-11-22 | 基于WebRTC的P2P和SFU混合传输架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117834991A (zh) |
-
2023
- 2023-11-22 CN CN202311561206.7A patent/CN117834991A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11503250B2 (en) | Method and system for conducting video conferences of diverse participating devices | |
JP5788473B2 (ja) | 端末の出力を同期させる方法およびシステム | |
JP5849323B2 (ja) | 遠隔会議用のマルチメディアストリームの効率的な伝送のための方法および装置 | |
US8502858B2 (en) | System and method for multipoint conferencing with scalable video coding servers and multicast | |
US7921157B2 (en) | Duplicating digital streams for digital conferencing using switching technologies | |
US9462018B2 (en) | Multiway peer-to-peer media streaming | |
JP2015080255A (ja) | 低遅延かつ分散した会議アプリケーション向けコンファレンスサーバアーキテクチャのためのシステムおよび方法 | |
US8385234B2 (en) | Media stream setup in a group communication system | |
CN101110811A (zh) | 一种用于视频系统媒体数据传输的控制方法 | |
WO2011088656A1 (zh) | 一种移动终端实现可视电话三方通话的方法及系统 | |
CN101656864A (zh) | 视频选看的实现方法及视频会议系统 | |
CN100454821C (zh) | 一种视频会议系统多mcu之间资源共享的方法 | |
CN101502109A (zh) | 用于低延迟和分布式会议应用的会议服务器架构的系统和方法 | |
US6853650B1 (en) | Communication network, method for transmitting a signal, network connecting unit and method for adjusting the bit rate of a scaled data flow | |
CN117834991A (zh) | 基于WebRTC的P2P和SFU混合传输架构 | |
Chodorek et al. | Comparison study of the adaptability of layered and stream replication variants of the WebRTC simulcast | |
KR20010083840A (ko) | 실시간 멀티미디어 프리젠테이션을 위한 서버 비의존캐스팅 기법 및 양방향통신의 구현방법 | |
KR20070006318A (ko) | 화상회의 시스템 및 화상회의 제공 방법 | |
US20180227342A1 (en) | Media stream management system | |
CN116827911A (zh) | 音频混合方法、装置、边缘服务器及中心服务器 | |
Zhang et al. | Scalable multipoint videoconferencing scheme without MCU | |
KR20020075026A (ko) | 다자간 신호제어 서버를 이용한 화상회의 방법 | |
Sureswaran et al. | Satellite bandwidth requirements for an MCS based multimedia conference | |
JP2012147212A (ja) | 通信端末およびその送受信方法ならびにその端末を含む通信システム |
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 |