- 文档首页
实时音视频
实时音视频
开发指南
音频管理
自定义音频采集和渲染
Web 端自定义音视频采集
Web 端自定义音视频采集
当你使用 RTC 实现实时音视频通信时,RTC 会使用默认的音视频模块进行视频采集。在一些场景下,你可能会发现默认模块无法满足需求,比如:
- 希望对采集到的音视频数据进行一些传输前处理,如美颜等;
在这些场景下,你可以参考本文,将自定义音视频流,交给 RTC 进行编码和传输。
前提条件
你已经集成 v4.36 或更高版本的 RTC SDK,实现了基本的音视频通话。
获取自定义流
音视频设备采集流
const stream = await navigator.mediaDevices.getUserMedia({
//获取自定义的 video track 和 audio track
const videoTrack = stream.getVideoTracks()[0];
const audioTrack = stream.getAudioTracks()[0];
Canvas 中的动画
const canvas = document.getElementById('<your-canvas-element-ID>');
const stream = canvas.captureStream();
const videoTrack = stream.getVideoTracks()[0];
正在播放的媒体元素
const video = document.getElementById('<your-video-element-ID>');
const stream = video.captureStream();
const audioTrack = stream.getAudioTracks()[0];
const videoTrack = stream.getVideoTracks()[0];
切换视频输入为外部源
engine.setVideoSourceType(
VERTC.StreamIndex.STREAM_INDEX_MAIN,
VERTC.VideoSourceType.VIDEO_SOURCE_TYPE_EXTERNAL
// 设置摄像头流自定义的 video track
engine.setExternalVideoTrack(
VERTC.StreamIndex.STREAM_INDEX_MAIN,
切换音频输入为外部源
engine.setAudioSourceType(
VERTC.StreamIndex.STREAM_INDEX_MAIN,
VERTC.AudioSourceType.AUDIO_SOURCE_TYPE_EXTERNAL
// 设置麦克风流为自定义的 audio track
engine.setExternalAudioTrack(
VERTC.StreamIndex.STREAM_INDEX_MAIN,
最近更新时间:2026.08.05 19:24:51