苹果对 WebRTC 的实施比竞争对手 Chrome 和 Firefox 更加僵化。但这并非坏事。
WebRTC 和 Apple Safari
WebRTC 可让用户通过 Web 浏览器访问音频、视频和数据通信,而无需额外的插件或第三方软件。
除其他优点外,WebRTC 还提供端到端加密和低延迟传输。WebRTC 是当今通信和协作领域的重要组成部分,是 Google Meet、Discord 和 Facebook 等协作工具的基础。
WebRTC 常用于视频会议、远程教育、远程医疗服务、IT、客户服务以及任何需要协作和在线沟通的领域。它已服务于超过 80 亿台联网设备,预计未来几年还将大幅增长。WebRTC 尤其适合那些希望避免大规模基础设施部署,同时又能享受高质量、基于浏览器的通信优势的中小企业。
尽管 WebRTC 成为 Firefox 和 Chrome 浏览器的一部分已有十多年,但 Apple 对 WebRTC 的支持却要追溯到 2017 年。

Apple Safari 浏览器与 Chrome 和 Firefox 等竞争对手不同。它的实现往往限制更多,对旧部署的宽容度也更低。这是否是一个问题取决于您的环境和您的公司对保持 Web 浏览器最新版本的态度;一般来说,保持 Web 浏览器更新是网络安全的一个重要组成部分。
由于 Chrome 浏览器和 Firefox 支持 WebRTC 的时间较长,因此它们保留了内置的向后兼容性。Apple Safari WebRTC 实施时间更短,因此开始时采用的是较新的标准。
管理 Apple Safari WebRTC
Safari 的 WebRTC 实现不如其他流行浏览器完善。不过,其主要缺陷都集中在向后兼容性以及对旧版安全和连接协议的支持上。这样不好吗?未必。无论是 WebRTC 还是其他技术,保持当前 Web 浏览器版本对于减轻安全威胁和提供广泛的功能支持都至关重要。
Safari 可以很好地处理基本的 WebRTC 连接,因此大多数用户不会遇到问题。此外,WebRTC 在 Safari 中是默认启用的,无需用户进行任何额外设置。这种基本部署方式使用户能够快速上手,无需管理繁琐的设置或处理一些难以理解的故障排除选项。
例如,Safari 的 WebRTC 支持仅扩展到标准的基于 Promise 的 API。虽然这意味着 Safari 无法使用传统的回调 API,但也意味着它不会受到原始 API 的漏洞和不理想的性能配置的影响。
开发人员在创建托管或推送多媒体通信的网站和服务时,应仔细遵循当前的 WebRTC API 标准,以确保与 Apple Safari 的最佳兼容性。现代 Chrome 和 Firefox 用户能够顺利完成这些设置。
Safari WebRTC 质量设置
WebRTC 的客户端不需要管理;该功能默认已启用。大多数质量管理和连接选项都是在 Web 应用程序端定义的。这些选项通常包括仅接收视频支持(用户接收视频但不分享自己的视频),或配置比特率限制。
平板电脑和手机上的摄像头选择(前置或后置)也会影响视频流。后置摄像头可提供更高质量的图像,但可能会影响性能。
使用 Apple Safari WebRTC 增强用户体验的另一种方法是正确管理设备访问设置。
在苹果笔记本电脑或台式机系统上使用以下步骤:
- Safari > Settings > Websites tab。
- 选择 Camera。
- 选择要授予 Camera 访问权限的网站,然后选择“Allow”或“Ask”。
- 对 Microphone(麦克风)重复上述步骤。
当连接到托管基于 WebRTC 会话的网站时,也可以从地址栏管理这些设置。
在 iPhone 或 iPad 上执行以下步骤:
- 点击地址栏(address bar)的左侧。
- 选择网站设置(Website Settings)。
- 选择 Camera 或 Microphone。
- 选择“Allow”或“Ask”。
当您第一次连接到会话时,Safari 也可能会提示您。
其他需要管理的设置包括:
- 隐私浏览模式阻止访问摄像头和麦克风。
- Safari 的设置独立于系统的隐私和安全设置进行管理。
帮助您的 Safari 用户管理这些设置并改善他们的体验。
保持 WebRTC 更新
开源 WebRTC 技术是当今音频和视频通信及协作平台的重要组成部分。它允许人们使用浏览器连接各种资源,从远程协作到客户支持。
Apple Safari 浏览器提供了最新的 WebRTC 实现,避免了广泛向后兼容带来的潜在隐患。此外,虽然它没有提供全面的终端用户配置,但如果托管网站使用现代选项和设置,其基本方法仍然有效。
现在是确保您的 WebRTC 应用程序保持最新状态并为所有客户提供最佳用户体验的绝佳机会,无论他们是否使用 Safari。
WebRTC 的替代方案
WebRTC 的替代方案一般包括:
- 专业的音视频通信平台。这些平台通常功能更丰富,音视频质量更有保障,当然一般是商用。例如 Zoom SDK、Amazon Chime 和 ZEGO SDK。
- WebSockets、WebTransport 和 gRPC 等替代协议也具有各自的优势。
以 ZEGO SDK 为例。ZEGO Web 端 SDK使用了 WebRTC 技术实现实时音视频功能。因此,在当前浏览器中能否使用 Web SDK,依赖于当前浏览器对 WebRTC 能否兼容。详细请查看:浏览器兼容性和已知问题
受限于 WebRTC 的限制,抖动缓冲、流量控制等能力只能依靠 WebRTC,不能自行定制化,因此 Web 端的抗弱网能力相较差于 native 端是行业认知,但通过实测对比发现,ZEGO Web端整体抗弱网仍表现优秀。尤其在 300 kbps 带宽限速情况下,ZEGO 仍然能保持正常的语音通话,对于海外网络建设较差地区有明显优势;在高丢包场景下,ZEGO 最大能支持在 65% 的丢包率仍能稳定地提供音视频服务。在日常生活中以组合网损即同时出现丢包+抖动+限速的场景最常见,在多种复杂的网络抖动场景下ZEGO RTC 仍能保障用户的良好体验。
了解更多 ZEGO SDK 音视频能力,您可注册免费体验。
常见问题
1. 如何在 Safari 中启用 WebRTC?
WebRTC 在现代版本的 Safari 浏览器中默认启用。请确保您使用的是最新版本的浏览器,并在出现提示时允许摄像头/麦克风权限。
2. WebRTC Safari 支持哪些编解码器?
Safari 支持 H.264、VP8(Safari 12.1+)和 VP9(兼容设备上的 Safari 17+),但旧版本可能对编解码器的支持有限。
3. 为什么我的摄像头或麦克风无法与 WebRTC Safari 配合使用?
确保您已授予权限,您的网站使用 HTTPS,并且使用的是受支持的 Safari 版本。扩展程序或安全设置也可能会造成干扰。
4. iOS 上的 WebRTC Safari 有什么限制吗?
是的,与桌面版 Safari 相比,iOS 上的某些功能(例如屏幕共享和某些编解码器)可能会受到限制或不可用。
5. 可以在 Safari 中使用 WebRTC 进行本地开发吗?
Safari 需要通过 HTTPS 访问摄像头/麦克风。如需本地测试,请在“开发”菜单中启用“允许在不安全的网站上捕获媒体”标记。