实时音视频
  • iOS
  • Android
  • macOS
  • Windows
  • HarmonyOS
  • Linux
  • Web : JavaScript
  • 小程序
  • Flutter
  • Electron
  • Unity3D
  • uni-app
  • React Native
  • Cocos Creator
  • 产品简介
  • 下载
  • 体验 App
  • 快速开始
    • 跑通示例源码
    • 集成 SDK
    • 实现视频通话
    • 场景化音视频配置
  • 基础功能
  • 进阶功能
  • 最佳实践
  • 常见错误码
  • 服务端 API
  • 客户端 API
  • 常见问题

设置视频编码属性

更新时间:2022-07-08 21:46

1 功能简介

ZEGO Express Web SDK 支持 H.264 和 VP8 两种视频编码格式,VP8 的浏览器兼容性优于 H.264,但 H.264 互通性上胜过 VP8。开发者在视频通话时可以根据业务场景需要选择适合的视频编码格式,使不同端之间进行编码对齐,实现多端互通。

2 示例源码下载

请参考 下载示例源码 获取源码。

相关源码请查看 “/Examples/AdvancedVideoProcessing/EncodingAndDecoding” 目录下的文件。

3 前提条件

在设置视频编码属性之前,请确保:

4 使用步骤

4.1 推摄像头画面

调用 createStream 接口设置 “camera” 属性,创建摄像头麦克风采集源数据。

// 创建流是一个异步的过程,等待 Promise 完成返回媒体流对象。 
const localStream = await zg.createStream({camera: {video: true, audio: true}});
// 创建媒体流播放组件对象,用于预览本地流
const localView = zg.createLocalStreamView(localStream);
// 将播放组件挂载到页面,"local-video" 为组件容器 DOM 元素的 ID 。
localView.play("local-video");

4.2 开始推流并选择合适视频编码格式

调用 startPublishingStream 接口将本地流推送到远端(ZEGO 服务器),通过 “videoCodec” 参数设置推流视频属性,只能传入 “VP8” 或 “H264”,默认值为 “H264”。

// publishStreamId 自定义,需保证唯一
// videoCodec:  推流视频编码,只能传入 'VP8' (string) 或 'H264' (string),默认值为 'H264' 。
const result = zg.startPublishingStream(publishStreamId, localStream, {videoCodec: 'VP8'});

5 API 参考列表

方法 描述
startPublishingStream 开始推流