本文主要介绍如何在视频通话或互动直播中设置视频属性(包括分辨率、帧率和码率),开发者可以根据具体业务需求调整视频画面的清晰度和流畅度,获得更好的用户体验。
设置分辨率、帧率、码率
指定一个预定义的 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 /* kbps */} }});// 通话过程中动态调整视频属性await trtc.updateLocalVideo({option: { profile: { width: 640, height: 360, frameRate: 15, bitrate: 400 /* kbps */} }});
设置清晰度优先、流畅度优先
在弱网下,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 对应的分辨率。