实时音视频
  • iOS
  • Android
  • macOS
  • Windows
  • HarmonyOS
  • Linux
  • Web : JavaScript
  • 小程序
  • Flutter
  • Electron
  • Unreal Engine
  • Unity3D
  • uni-app
  • React Native
  • Cocos Creator
  • 产品简介
  • 下载
  • 体验 App
  • 快速开始
    • 跑通示例源码
    • 集成 SDK
    • 实现视频通话
    • 场景化音视频配置
  • 通信能力
  • 房间能力
  • 音频能力
  • 视频能力
  • 直播能力
  • 其他能力
  • 播放器插件
  • 最佳实践
  • 客户端 API
  • 服务端 API
  • 常见错误码
  • 常见问题
  • 文档中心
  • 实时音视频
  • 视频能力
  • 设置视频编码属性

设置视频编码属性

更新时间:2024-01-02 18:48

1 功能简介

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

2 示例源码下载

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

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

3 前提条件

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

4 使用步骤

4.1 推摄像头画面

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

// 创建流是一个异步的过程,等待 Promise 完成返回 zego 流对象。 
const localStream = await zg.createZegoStream({camera: {video: true, audio: true}});
// 预览推流前或者推流中的流,将播放组件挂载到页面,"local-video" 为组件容器 DOM 元素的 ID 。
localStream.playVideo(document.querySelector("#local-video"));

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

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

使用 CDN 录制时,不能将推流视频属性设置为 “VP8”,否则录制的文件会出现异常。

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