本文主要介绍如何在视频通话或互动直播中设置视频属性(包括分辨率、帧率和码率),开发者可以根据具体业务需求调整视频画面的清晰度和流畅度,获得更好的用户体验。
设置分辨率、帧率、码率
指定一个预定义的 Profile,每个 Profile 对应着一套推荐的分辨率、帧率和码率。
// 启动时指定视频属性await trtc.startLocalVideo({option: { profile: '480p' }});// 通话过程中动态调整视频属性await trtc.updateLocalVideo({option: { profile: '360p' }});
指定自定义分辨率、帧率和码率。
// 启动时指定视频属性await trtc.startLocalVideo({option: { profile: { width: 640, height: 480, frameRate: 15, bitrate: 500 /* kpbs */} }});// 通话过程中动态调整视频属性await trtc.updateLocalVideo({option: { profile: { width: 640, height: 360, frameRate: 15, bitrate: 400 /* kpbs */} }});
设置清晰度优先、流畅度优先
在弱网下,TRTC 对于摄像头及屏幕分享有不同的编码策略。
对于摄像头,默认是流畅度优先。即在弱网时,会通过降低编码分辨率的方式,来优先保障编码帧率。
对于屏幕分享,默认是清晰度优先。即在弱网时,会通过降低编码帧率的方式,来优先保障编码分辨率。
若默认的编码策略不符合您的需求,您可以通过如下方式调整编码策略。
// 将摄像头改为清晰度优先await trtc.startLocalVideo({option: {qosPreference: TRTC.TYPE.QOS_PREFERENCE_CLEAR}});// 可以动态调整await trtc.updateLocalVideo({option: {qosPreference: TRTC.TYPE.QOS_PREFERENCE_SMOOTH}});// 将屏幕分享改为流畅度优先await trtc.startScreenShare({option: {qosPreference: TRTC.TYPE.QOS_PREFERENCE_SMOOTH}})// 可以动态调整await trtc.updateScreenShare({option: {qosPreference: TRTC.TYPE.QOS_PREFERENCE_CLEAR}})
视频属性 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 对应的分辨率。