实时音视频 SPARKRTC-本地流对象(LocalStream):setVideoProfile
setVideoProfile
setVideoProfile(profile: string|RTCVideoProfile,resolutionId?: string): void
【功能说明】
设置视频主流配置,如分辨率、帧率和码率等。如果未调用该接口设置,则SDK设置默认值为360p_2。如果该流已经发布,则该流会自动重新发布到远端。
【请求参数】
- profile:必选,string类型或RTCVideoProfile类型。 若为string类型,则相关的分辨率、帧率和码率如表3。 若为RTCVideoProfile类型,则需要根据实际情况进行配置,推荐使用已定义的“profile”。输入不合法时,默认使用360p_2。
表3 profile 对应的分辨率、帧率和码率 profile
分辨率
帧率
最小码率(kbps)
最大码率(kbps)
90p_1
160 x 90
15
64
110
90p_2
120 x 90
15
64
110
120p_1
160 x 120
15
64
120
120p_2
120 x 120
15
64
110
180p_1
320 x 180
15
80
320
180p_2
240 x 180
15
80
170
180p_3
180 x 180
15
64
130
240p_1
320 x 240
15
100
400
240p_2
240 x 240
15
80
320
270p_1
480 x 270
15
160
600
300p_1
400 x 300
15
200
500
360p_1
640 x 360
15
200
800
360p_2
480 x 360
15
200
700
360p_3
360 x 360
15
150
600
450p_1
800 x 450
15
300
950
480p_1
640 x 480
15
250
900
480p_2
480 x 480
15
200
800
540p_1
960 x 540
15
400
1000
630p_1
1120 x 630
15
450
1150
720p_1
1280 x 720
15
500
1500
720p_2
960 x 720
15
450
1100
1080p_1
1920 x 1080
15
600
2000
1080p_2
1440 x 1080
15
550
1700
- resolutionId:可选,string类型。在双流场景下,指定要设置的分辨率Id的视频,如果不指定,默认选择最高的分辨率的视频。
RTCVideoProfile类型定义为:{
- width:可选,number类型,分辨率的宽度,单位为像素。
- height:可选,number类型,分辨率的高度,单位为像素。
- frameRate:可选,number类型,视频帧率,单位为帧/秒。
- minBitrate:可选,number类型,视频最小码率,单位为bps。
- maxBitrate:可选,number类型,视频最大码率,单位为bps。
}
【返回参数】
无
- 需注意码表中单位为kbps,接口传参的单位为bps,实际调用接口时需进行转换。
- 自定义采集的流(使用videoSource创建的Stream)不支持动态调用此接口,仅支持摄像头采集的流调用。
- 由于设备采集能力、系统性能以及浏览器的限制,视频分辨率,帧率,码率的实际值不一定能够完全匹配设定值,这种情况下浏览器会自动调整分辨率,尽可能匹配设定值,具体分辨率以实际采集到的分辨率为准。
- 能否采集1080p及以上的分辨率取决于采集设备能力以及系统性能,iOS Safari不支持采集1080p。
- 码表中的1080p分辨率为2.0.0版本新增,1.0版本如需采集1080P分辨率,请使用自定义参数的方式设置。
- Firefox不支持自定义帧率(默认为30fps)。
- 如果上表的Profile不符合您的要求,用户可以根据自身业务需求自定义Profile。