首页 » 99链接平台 » 计划将自己写的视频会议系统架构写一下(是一种实时用于协议网络)

计划将自己写的视频会议系统架构写一下(是一种实时用于协议网络)

雨夜梧桐 2024-10-30 05:03:43 0

扫一扫用手机浏览

文章目录 [+]

一人会议展示

会议列表

主要功能利用WebRTC(Web Real-Time Communications)技术,允许网络应用或者站点,在不借助中间媒介和不需要了解音视频编码器相关技术的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。
封装WebRTC(Web Real-Time Communications)相关接口,构建RTC基础服务。
在WebRTC(Web Real-Time Communications)的基础之上,通过SFU(Selective Forwarding Unit)架构来实现高可用、高性能的网络音视频中间件。
架构图

计划将自己写的视频会议系统架构写一下(是一种实时用于协议网络) 99链接平台
(图片来自网络侵删)

架构图

术语解释

1. RTC 技术指的是实时通信技术(Real-Time Communication),它是一种用于在网络上实现实时音频、视频和数据传输的技术。

2. Track:代表一个stream 的信息,可以是音频、视频或自定义数据。

3. Room:代表real-time 的客户端与服务端的一次会话,基于同步状态机制的容器对象。

4. RTP(实时传输协议):RTP是用于在IP网络上传输音频和视频等实时多媒体数据的协议。

5. RTSP(Real Time Streaming Protocol)是一种用于控制实时多媒体流传输的网络协议。
RTSP 本身并不具备音视频数据传输的能力,通常需要与 RTP结合使用,RTP 负责传输实际的音视频数据,而 RTSP 则负责控制和管理这些数据流。

6. RTCP(实时传输控制协议):RTCP是RTP的控制协议,用于传输与媒体流相关的控制信息,如参与者列表、媒体流统计数据和网络质量反馈等。

7. RTMP(Real-Time Messaging Protocol)是一种用于实时流传输的协议。
它最初由 Adobe Systems开发,用于在 Flash 平台上传输音频、视频和数据。
是 Adobe 的专有协议,它的使用受到一些限制,可能需要相应的许可或使用费用。

8. SRTP(安全实时传输协议):SRTP是RTP的扩展,提供了对实时多媒体数据的加密和身份验证功能,以保护数据的安全性和完整性。

9. SIP(Session Initiation Protocol)是一种应用层协议,用于建立、修改和终止多媒体会话(如音频、视频、即时消息等)。
是一种客户端/服务器协议,通过 SIP 服务器来处理各种会话请求和响应。
主要目的是在不同终端设备之间建立通信并传递媒体数据。
SIP 会话可以使用 UDP 或 TCP 进行传输,使用 Session Description Protocol(SDP)描述媒体参数和属性。

10. NAT(网络地址转换)是一种常见的网络技术,用于将私有网络中的多个设备映射到公共网络上的单个IP地址。

11. STUN(Session Traversal Utilities for NAT)(会话穿透实用工具):STUN是一种协议,用于在NAT后面的设备上发现自己的公共IP地址和端口。

12. TURN(Traversal Using Relays around NAT)(遍历使用中间设备):当两个设备无法直接通信(例如由于双方都在NAT后面),TURN可以作为一种中继机制。

13. ICE(Interactive Connectivity Establishment)(交互式连接建立):ICE是一种框架,用于在对等连接或实时通信中选择最佳的通信路径。
ICE利用STUN来获取公共地址,利用TURN作为备用中继机制,并通过多种候选路径进行探测,以确保设备之间能够建立可靠的连接。

开发环境系统环境Golang VERSION 1.19MYSQL VERSION 8.0.32依赖github.com/redis/go-redis/v9 v9.3.0github.com/go-sql-driver/mysql v1.7.1github.com/zeromicro/go-zero v1.5.3github.com/pion/rtcp v1.2.12github.com/pion/rtp v1.8.3github.com/pion/sctp v1.8.9github.com/pion/sdp/v3 v3.0.6github.com/pion/transport/v2 v2.2.4github.com/pion/turn/v2 v2.1.4github.com/pion/webrtc/v3 v3.2.22

前提条件WebRTC 相关的 API 需要 Https(或者 localhost)环境支持,因为在浏览器上通过 HTTP 请求下来的 JavaScript 脚本是不允话访问音视频设备的,只有通过 HTTPS 请求的脚本才能访问音视频设备。
WebRTC 旨在实现点对点工作,因此用户可以通过最直接的路由进行连接。
但是,WebRTC 是为了应对实际网络而构建的。
客户端应用需要遍历 NAT 网关和防火墙,点对点网络需要回退机制,以防直接连接失败。
在此过程中,WebRTC API 使用 STUN 服务器获取您的计算机的 IP 地址,使用 TURN 服务器作为中继服务器,以防点对点通信失败。
标签:

相关文章