ZEGO Express Web SDK 使用 WebRTC 技术实现实时音视频功能,其中视频编码支持 H.264 和 VP8 两种格式。本文介绍了两种编码格式的优劣势,并根据业务场景选择适合的编码格式,帮助开发者更好的了解编码格式的选择。
开发者在开始使用音视频业务前,可以使用 ZEGO Express Web SDK 提供的兼容性检测接口 checkSystemRequirements,对浏览器环境和设备做检测,并提示相关风险。
两种编码格式对比如下:
编码格式 | 优势 | 劣势 |
---|---|---|
H.264 |
配套生态成熟,可直接转推 CDN,以及直接和小程序互通。 |
在移动端浏览器上支持度稍差,例如微信浏览器,WebView 等。 |
VP8 |
|
配套较差,不可直接转推 CDN,不可直接和小程序互通。 |
系统 | 浏览器 | H.264 | VP8 |
---|---|---|---|
Windows |
|
✔️ |
✔️ |
macOS |
|
✔️ |
✔️ |
ChromeOS |
Chrome |
✔️ |
✔️ |
Chrome
Safari
Safari 12.1 或以下版本,仅支持 H.264 编解码。
Firefox
在使用 Apple M1 芯片的 Mac 设备上,Firefox 不支持 H.264 编解码,详见 Firefox 官方说明。
Android
Android 支持自研 WebView 或引入第三方 WebView,不同设备、不同应用的 WebView 实现的方式有所不同,因此 ZEGO Express Web SDK 对不同应用版本和设备硬件的支持也有不同,推荐开发者在使用前进行兼容性检测。
浏览器 | 功能 | H.264 | VP8 |
---|---|---|---|
WebView |
推/拉流 |
✔️ |
✔️ |
Chrome 浏览器 |
推/拉流 |
✔️ |
✔️ |
其中 WebView 包含了如微信内置浏览器、企业微信内置浏览器、QQ 内置浏览器、钉钉、头条等。在这些 WebView 和 Chrome 浏览器中,关于浏览器版本、芯片类型和编码格式的使用限制说明如下:
限制名称 | 限制说明 |
---|---|
编码格式 |
使用 H.264 编码发送视频流可能会导致发送视频流的码率偏低,无法达到预期码率。 |
搭载芯片 |
在搭载联发科芯片的设备上无法使用 H.264 编码发送视频流。 |
浏览器版本及搭载芯片 |
|
iOS
iOS 只支持系统 WebView,因此 ZEGO Express Web SDK 对 WebView 的支持,仅与 iOS 系统版本有关。
浏览器 | 功能 | H.264 | VP8 |
---|---|---|---|
WebView(微信内置浏览器等) |
推流 |
✔️(iOS 14.3 或以上版本) |
|
拉流 |
✔️(iOS 12.1.4 或以上版本) |
✔️(iOS 12.2 或以上版本) |
|
Safari 浏览器 |
推/拉流 |
✔️(iOS 11 或以上版本) |
✔️(iOS 12.2 或以上版本) |
在 iOS 上使用 H.264 编码格式推流,无法将 1080p 或以上分辨率的视频推送到 CDN。
综合上述兼容性说明,以及 ZEGO 市场用户数据统计,不支持 VP8 的设备占比相对较少,VP8 在浏览器的兼容性方面,略优于 H.264。因此:
具体的场景推荐如下:
主播端 | 观众端 | 推荐编码格式 | 优点 | 缺点 | 应用场景 |
---|---|---|---|---|---|
WebRTC |
WebRTC |
VP8 |
兼容性最好,质量最佳。 |
- |
银行/证券开户 |
CDN |
H.264 |
无需转码。 |
主播端推流时,部分机型不支持 H.264 编码格式。 |
秀场直播 |
|
VP8 |
推流端兼容性较好。 |
需手动转码。 |
|||
小程序 |
H.264 |
无需转码。 |
主播端推流时,部分机型不支持 H.264 编码格式。 |
银行/证券开户 |
不论选择 H.264 还是 VP8,都需要先对使用的浏览器进行兼容性检测。开发者可以通过 checkSystemRequirements 接口,对浏览器进行兼容性检查,这也是 SDK 自动选择编码的前提条件。
转码,是指将视频信号从一种格式转换成另一种格式。在 ZEGO 服务中,支持音视频编码格式、分辨率、码率等的转换,开发者可以参考 混流转码示例 Demo。如有疑问,请联系 ZEGO 技术支持。
联系我们
文档反馈