网站首页 > 精选文章 正文
其实WebRTC并不是为直播场景而设计的,但它是基于UDP的,建立通信后,会不断以流式发送数据,所以延迟会比RTMP还要低。因此人们利用这个特性,将它用在了一些交互性较高的直播场景,如直播带货、实时语音交互等场景。
WebRTC定义
WebRTC (Web Real-Time Communications) 是 RTC 的一部分,是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流/音频流或者其他任意数据的传输。WebRTC的安全特性是其可靠性的重要组成部分,它使用SRTP安全实时传输协议(Secure Real-time Transport Protocol)对RTP数据进行加密,消息认证和完整性以及重播攻击保护。它是一个安全框架,通过加密RTP负载和支持原始认证来提供机密性。详细定义可以参考官方文档:WebRTC API - Web API | MDN。
WebRTC于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。Google于2011年6月3日宣布向开发人员开放WebRTC架构的源代码。这个源代码将根据没有专利费的BSD(伯克利软件发布)式的许可证向用户提供。WebRTC作为一个开源框架,用于在浏览器中实现实时通信。它允许在浏览器和移动应用之间直接进行音频、视频和数据共享,无需插件或额外软件。
WebRTC特点
每种技术都有它的优缺点,WebRTC也不例外。
优点
- 跨平台(Web、Windows、MacOS、Linux、iOS、Android)。
 - 免费、免插件、免安装,得到主流浏览器支持。
 - 强大的打洞能力,包含 STUN、ICE、TURN 的关键 NAT 和防火墙穿透技术。
 
缺点
- 缺乏服务器方案的设计和部署
 - 音频的设备适配问题
 
WebRTC 的关键步骤:
- 媒体捕获:WebRTC 允许浏览器和移动应用访问用户的媒体设备(如摄像头和麦克风),以捕获音频和视频流。
 - 信令:在两个对等节点(peers)能够通信之前,它们需要建立连接。信令过程涉及交换元数据和控制消息,以协商会话设置和处理网络细节。
 - 对等连接:完成信令过程后,两个设备之间建立直接的对等连接。WebRTC 使用安全高效的对等连接协议在它们之间传输音频、视频和数据流。
 - 编解码器和加密:WebRTC 支持多种音频和视频编解码器,以高效编码和传输媒体流。此外,它还使用加密技术来保护对等节点之间的通信,确保隐私和数据完整性。
 - NAT 和防火墙穿越:WebRTC 设计用于跨越不同网络并处理网络地址转换器(NAT)和防火墙。它使用交互式连接建立技术来发现和建立直接通信路径。
 - 数据通道:除了音频和视频流,WebRTC 还包括一个数据通道,允许对等节点直接交换非媒体数据,实现实时数据共享。
 
与其它协议比较
特性  | WebRTC  | SRT  | RTMP  | RTSP  | 
主要用途  | 实时通信  | 可靠、低延迟流媒体  | 媒体流媒体(直播)  | IP 摄像头流媒体  | 
传输协议  | UDP(主要)  | UDP(主要)  | TCP  | TCP(主要),UDP 用于控制  | 
延迟  | 非常低(为实时通信设计)  | 低(可配置)  | 中等  | 中等  | 
复杂性  | 高(信令,NAT 穿越)  | 中(专注于可靠性)  | 比WebRTC 简单  | 比 WebRTC 简单  | 
浏览器支持  | 原生支持  | 需要插件或应用  | 无直接浏览器支持  | 需要媒体播放器/插件  | 
防火墙穿越  | 需要 STUN/TURN 服务器  | 比 WebRTC 容易(基于 UDP)  | 需要防火墙修改  | 需要防火墙修改  | 
安全性  | 内置 DTLS 加密  | 可以被加密  | 有限  | 有限  | 
自适应比特率  | 是  | 有限  | 有限  | 有限  | 
可扩展性  | 有挑战  | 容易扩展  | 中  | 中  | 
P2P通信  | 是  | 否  | 否  | 否  | 
总结
WebRTC实现了基于网页的视频会议,实现标准是Web Hypertext Application Technology Working Group (WHATWG) 协议,目的是通过浏览器提供简单的javascript就可以达到实时通讯(Real-Time Communications (RTC))能力。它的最终目的主要是让Web开发者能够基于浏览器轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,也无需关注多媒体的数字信号处理过程。WebRTC还希望能够建立一个多互联网浏览器间健壮的实时通信的平台,形成开发者与浏览器厂商良好的生态环境。同时,Google也希望和致力于让WebRTC的技术成为HTML5标准之一,可见Google布局之深远。
- 上一篇: 云服务器搭建coturn不能正常使用的问题
 - 下一篇: NAT穿透的工作原理
 
猜你喜欢
- 2025-05-28 OvenMediaEngine部署全攻略:打造你的实时媒体服务器
 - 2025-05-28 为何强烈推荐用 FilePizza 做 P2P 文件传输?
 - 2025-05-28 关于UEPlus for HTML5、UEPlus for Pixel Streaming的问题解答
 - 2025-05-28 NAT穿透的工作原理
 - 2025-05-28 云服务器搭建coturn不能正常使用的问题
 - 2025-05-28 计划将自己写的视频会议系统架构写一下
 - 2025-05-28 WebRTC 入门教程:WebRTC信令控制与STUN/TURN服务器搭建
 
- 最近发表
 
- 标签列表
 - 
- 向日葵无法连接服务器 (32)
 - git.exe (33)
 - vscode更新 (34)
 - dev c (33)
 - git ignore命令 (32)
 - gitlab提交代码步骤 (37)
 - java update (36)
 - vue debug (34)
 - vue blur (32)
 - vscode导入vue项目 (33)
 - vue chart (32)
 - vue cms (32)
 - 大雅数据库 (34)
 - 技术迭代 (37)
 - 同一局域网 (33)
 - github拒绝连接 (33)
 - vscode php插件 (32)
 - vue注释快捷键 (32)
 - linux ssr (33)
 - 微端服务器 (35)
 - 导航猫 (32)
 - 获取当前时间年月日 (33)
 - stp软件 (33)
 - http下载文件 (33)
 - linux bt下载 (33)
 
 
