You need to enable JavaScript to run this app.
实时音视频

实时音视频

复制全文
产品简介
Web SDK 浏览器兼容性和已知问题
复制全文
Web SDK 浏览器兼容性和已知问题

火山引擎 Web RTC SDK 基于浏览器的 PeerConnection 实现与服务端的 ICE 建联和媒体能力协商。本文介绍 Web SDK 的浏览器兼容性及已知问题、功能已知限制。本文将介绍 Web RTC SDK 的浏览器兼容性和已知问题,以及功能已知限制。

浏览器兼容性

建议使用浏览器的最新稳定版本,以获取更优质、稳定的音视频通话体验。下文列出了浏览器的最低版本要求。

桌面端

操作系统

浏览器

浏览器最低版本要求

订阅音视频流(拉流)

发布音视频流(推流)

屏幕共享

Windows

Chrome

70

✅(需要 Chrome 74 或以上版本)

Edge

83

✅(需要 Edge 99 或以上版本)

Firefox

80

360 极速浏览器

13

macOS

Safari

12

✅(需要 Safari 13 或以上版本)

Chrome

70

✅(需要 Chrome 74 或以上版本)

Edge

83

✅(需要 Edge 99 或以上版本)

Firefox

80

360 极速浏览器

13

移动端

说明

Android 的浏览器支持情况与设备硬件和使用的 WebView 版本有关。

操作系统

浏览器

浏览器最低版本要求

订阅音视频流(拉流)

发布音视频流(推流)

屏幕共享

Android

Chrome

86

微信内嵌浏览器

8.0.32

iOS 12+

Safari

与操作系统版本一致

Chrome

无明确信息

微信内嵌浏览器

8.0.32

iOS 14.3+

Safari

与操作系统版本一致

Chrome

无明确信息

微信内嵌浏览器

8.0.32

HarmonyOS NEXT Developer Beta 1

华为浏览器

与操作系统版本一致

浏览器已知问题

下文列出了 Web RTC SDK 的浏览器已知问题和解决方案。

说明

如无特殊需求,建议使用 VP8 视频编码。使用 H.264 编码可能会导致开启硬件加速后出现一系列问题,包括帧率、码率、分辨率达不到目标值;视频花屏、黑屏;弱网环境下体验较差等。

桌面端

浏览器

已知问题与解决方案

Chrome

  • 某些 Windows 设备上硬件加速对视频渲染处理时导致画面抖动。
    解决方案:关闭硬件加速。
  • 在 Windows 设备上使用 Chrome 进行屏幕分享,选择分享微信、QQ、钉钉、WPS 应用窗口时可能出现采集黑屏,或拖动应用窗口时出现采集黑屏。
    解决方案:建议分享整个屏幕。
  • 在 Windows 设备上使用 deviceId"default""communications" 的麦克风时,如插入新的麦克风再拔出,原麦克风采集可能中断。
    解决方案:避免使用 deviceId"default""communications" 的麦克风。
  • 在同一 PC 设备上同时使用 Chrome 和 Safari 进行音视频通话时,订阅端出现 Chrome 声音变小、Safari 视频图像略大于 Chrome 的现象。

Safari

  • Safari 16 对外部采集的视频截图时,截图内容为黑屏。
  • Safari 13 可能听不到远端用户的声音。

Firefox

  • 由于 Firefox 没有旋转视频画面的 RTP 扩展头,使用 Firefox 与其他设备互通时,Firefox 端看其他端的视频画面会发生旋转。
    解决方案:使用 CSS 实现旋转。
  • Firefox 仅支持设置视频帧率为 30 FPS。
  • 首次安装 Firefox 浏览器会在联网状态下动态安装 H.264 编解码器。安装完成前,无法正常使用 Web SDK 推拉流。
    解决方案:调用 getSupportedCodecs 获取当前浏览器支持的编解码类型。若检测到 Firefox 浏览器不支持 H.264 编解码,则使用 Firefox 打开 about:addons,在“插件”中检查 OpenH264 的安装情况,等待安装完成后再进行通话。
  • 由于浏览器限制,Firefox 不支持大小流功能。

移动端

平台

已知问题与解决方案

Android

  • 由于华为设备限制,部分版本的华为浏览器及华为设备上的 Chrome 浏览器无法推流和订阅视频。
    解决方案:使用 VP8 编码。
  • 在某些 Android 12 设备上(如 Google Pixel 3/Pixel 4、红米 K50)使用 Chrome 浏览器或 Chromium 内核浏览器 97 以下版本开启视频硬件编码可能会导致花屏。
    解决方案:使用 Chrome 97+。
  • 由于 Android 设备的音频路由全部由 Android 操作系统分配而 Chromium 不能修改,用户使用 Chromium 97.0.4692.98 内核的浏览器 (常见的如荣耀手机的自带浏览器) 加入音视频通话并从扬声器切换到蓝牙耳机时,远端用户的音频仍然通过扬声器 (喇叭或者手机上方的听筒,特别的,如果声音从手机上方的听筒出来,将导致小声甚至无声的问题) 播放。参看 Chromium Issue 1317548。建议使用 chrome 浏览器, 并且版本在 M106 以上。
  • Android Chrome 上无法使用 H.264 编码发送大小流。
    解决方案:使用 VP8 编码。
  • 在部分小米、OnePlus、Vivo 机型上,如果本地用户使用蓝牙耳机,在通话过程中通过蓝牙耳机采集本地音频且发送音频流后,有概率会无法收听到远端用户的声音,出现无声问题。
  • Chrome 88 开启硬件加速时,使用 HTMLMediaElement.captureStream 推 MP4 文件,远端拉流观看黑屏。参看 Chromium Issue 1156408
    解决方案:升级至 Chrome 96+。
  • 华为 MediaPad M5 lite,使用 Chrome、自带浏览器,第一次连接蓝牙的时候无法切换到蓝牙耳机,第二次连接蓝牙耳机才能正常切换。
  • 华为 P30 Pro 在不同采集参数设置下,使用的默认摄像头可能不同。如果希望指定前置或者后置摄像头,建议采集时不使用默认值。
  • Android Chrome 对 H.264 的支持依赖硬件,部分 Android 设备不支持 H.264 编解码格式。可以通过调用 isSupported 接口,查看兼容性。
  • 小米手机自带浏览器不支持 webRTC。

iOS

  • iOS 15.x 上的所有浏览器及内嵌 WKWebView 的应用(如微信浏览器和 Chrome 浏览器),在 DOM 中播放视频且在 video 元素或其父元素添加某些 CSS 属性(如 transformanimation)后,或者改变 CSS 属性重绘视频渲染区域后,有概率视频播放出现黑屏。参看 Webkit Bug 230532
    解决方案:尽量减少更改 video 元素及其父元素的 CSS 属性。
  • iOS 15.1 使用 H.264 推流导致页面崩溃。参看 Webkit Bug 232381Webkit Bug 231505
    解决方案:使用 iOS 15.2+ 或使用 VP8 推流。
  • iPhone 14 Pro/iPhone 14 Pro Max 设备上使用 iOS 16.0 出现音频采集失败或音频断流现象。
    解决方案:使用 iOS 16.1+。
  • iOS 15 以下版本无法使用 video 元素播放 canvas.captureStream 采集的外部视频。参看 Webkit Bug 181663
    解决方案:使用 iOS 15+。
  • iOS 15 以下版本连接耳机时无法切换到内置麦克风,始终通过耳机麦克风输入。参看 Webkit Bug 233634
  • 在 iPad 设备上使用 iOS 15 以下版本调用 enumerateDevices 无法获取外置音频输入设备信息。
    解决方案:使用 iOS 15+。
  • iOS 13 和 iOS 14 上可能出现远端用户音量随机变化的问题。
  • 切换前置、后置摄像头时采集画面可能出现瞬间旋转。
  • 语音路由不稳定,可能出现连接外置耳机时通过扬声器播放,或未连接耳机时自动切换扬声器和听筒。
  • 连续两次调用 getUserMedia 获取相同媒体类型的轨道时,第一次获取的媒体轨道会静音或黑屏,建议避免这样的操作。
  • 在其他应用中使用过音视频输入设备后(如 Siri 或微信),无法通过 Web SDK 采集本地音频或视频。
  • iOS 11 和 12 中,旋转视频画面的 RTP 扩展头不生效。
    解决方案:使用 CSS 实现旋转。
  • iOS 15 上的 Safari 浏览器及 iOS 14.4 至 iOS 15 上内嵌 WKWebView 的应用(如微信浏览器、Chrome 浏览器),在浏览器或应用切换到后台时,音频流发送中断。参看 Webkit Bug 231105Apple 论坛讨论
    解决方案:用户在本地监听 visibilityChange 事件,如果切到后台,就通过信令通知远端用户在 UI 上进行提示。

功能已知限制

下文列出了 Web RTC SDK 的功能已知限制。

屏幕共享

  • 采集屏幕共享 startScreenCapture 方法仅支持在桌面端使用(Windows 和 macOS),浏览器及版本需为:

    • Chrome 74+
    • Firefox 80+
    • Edge 99+
    • Safari 13+
    • 360 极速浏览器 13+(其中,Windows 不支持共享标签页)
  • 仅 Chrome、Edge、360 极速浏览器支持共享屏幕音频,即 startScreenCapture 方法中的 ScreenConfig.enableAudio 参数。各浏览器对共享屏幕音频的支持情况如下:

    操作系统

    浏览器

    共享整个屏幕

    共享标签页

    共享应用窗口

    Windows

    Chrome

    Edge

    360 极速浏览器

    macOS

    Chrome

    Edge

    360 极速浏览器

  • 不同浏览器可选择分享的内容如下:

    浏览器

    共享整个屏幕

    共享标签页

    共享应用窗口

    Chrome

    Edge

    Firefox

    Safari

    360 极速浏览器

  • Firefox 浏览器不支持设置屏幕采集的视频内容类型,即 setScreenEncoderConfig 方法中的 ScreenEncoderConfig.contentHint 参数,详情参看 contentHint 浏览器兼容信息

  • 在 Windows 设备上使用 Chrome 进行屏幕分享,选择分享微信、QQ、钉钉、WPS 应用窗口时可能出现采集黑屏,或拖动应用窗口时出现采集黑屏。建议分享整个屏幕。

发布 Simulcast 流

发布端开启 Simulcast 功能已经在以下浏览器版本中通过验证:

  • Chrome 74 或以上版本
  • Safari 14.1 或以上版本
  • Android 端 Chrome 128 或以上版本
  • iOS 15 或以上版本
  • HarmonyOS NEXT Developer Beta 1 或以上版本,但仅支持通过 VP8 编码方式发布 Simulcast 流。

获取设备列表

获取和设置扬声器设备

收发 SEI 消息

sendSEIMessage 等收发 SEI 消息接口兼容性说明:

  • SEI 消息仅支持在 H.264 编码且内核为 Chromium 86+、Firefox 117+ 或 Safari 15.4+ 的浏览器上使用。
  • Android 设备无法在语音通话场景下自动生成黑帧视频流发送 SEI 数据。

插件功能

  • 基础美颜插件虚拟背景插件 浏览器最低版本要求如下:
    不建议在移动端使用,这是由于本功能依赖一些 WASM 文件,对移动端设备的性能要求较高。

    设备类型

    浏览器

    浏览器最低版本要求

    桌面端

    Chrome

    78

    Safari

    15

    Firefox

    80

    Edge

    83

    移动端

    Chrome

    78

    Safari

    15.4

    微信内嵌浏览器

    8.0.32

    华为终端设备
    HarmonyOS NEXT Developer Beta 1

    华为浏览器

    无限制

  • AI 降噪插件支持在桌面端和华为 HarmonyOS NEXT 操作系统上使用。其中,桌面端的浏览器最低版本要求为:

    • Chrome 94
    • Edge 94
    • Firefox 80
    • Safari 14.1

发布和订阅 H.265 视频

  • H.265 格式视频仅支持在以下浏览器使用:Chrome 136 及以上版本、Safari 18 及以上版本。

    使用 H.265 前,建议先调用 getSupportedCodecs 查询当前浏览器是否支持 H.265 编解码,避免因环境不支持导致后续流程失败。

  • 分辨率过低可能由于芯片不支持导致编解码失败或画面异常,建议在使用 H.265 时设置的分辨率高于 146*146。
最近更新时间:2025.12.10 19:37:37
这个页面对您有帮助吗?
有用
有用
无用
无用