本文主要介绍如何在视频通话或互动直播中设置视频属性,开发者可以根据具体业务需求调整视频画面的清晰度和流畅度,获得更好的用户体验。 视频属性包括分辨率、帧率和码率。
实现方式
通过本地音视频流 Stream 对象的 setVideoProfile() 方法设置视频属性:
- 指定一个预定义的 Profile,每个 Profile 对应着一套推荐的分辨率、帧率和码率。
const localStream = TRTC.createStream({ userId, audio: true, video: true });
// 设置视频属性 Profile 为 ‘480p’
localStream.setVideoProfile('480p');
localStream.initialize().then(() => {
console.log('local stream init success');
localStream.play('local_stream');
});
- 指定自定义分辨率、帧率和码率
const localStream = TRTC.createStream({ userId, audio: true, video: true });
// 自定义视频分辨率、帧率和码率
localStream.setVideoProfile({ width: 640, height: 480, frameRate: 15, bitrate: 900 /* kpbs */});
localStream.initialize().then(() => {
console.log('local stream init success');
localStream.play('local_stream');
});
注意
setVideoProfile() 需要在本地流调用 initialize() 初始化之前调用,不支持在通话过程中动态调整视频属性。
视频属性 Profile 列表
视频 Profile | 分辨率(宽 x 高) | 帧率(fps) | 码率(kbps) |
---|---|---|---|
120p | 160 x 120 | 15 | 200 |
180p | 320 x 180 | 15 | 350 |
240p | 320 x 240 | 15 | 400 |
360p | 640 x 360 | 15 | 800 |
480p | 640 x 480 | 15 | 900 |
720p | 1280 x 720 | 15 | 1500 |
1080p | 1920 x 1080 | 15 | 2000 |
1440p | 2560 x 1440 | 30 | 4860 |
4K | 3840 x 2160 | 30 | 9000 |
- 由于设备和浏览器的限制,视频分辨率不一定能够完全匹配,在这种情况下,浏览器会自动调整分辨率使其接近 Profile 对应的分辨率