设置视频属性

功能描述

在视频通话前,开发者可以根据不同场景下的用户喜好,对视频属性进行设置,调整发送视频画面的清晰度以及流畅度,带给用户最优的通话体验。

视频属性通常包含视频、帧率、码率的档位,裁剪模式等参数。

Android

实现方法

NERTC SDK 通过 setLocalVideoConfig 方法来设置视频相关的属性,比如分辨率、码率、帧率等。参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值。

示例代码

// 配置一个 NERtcVideoConfig 实例,参数可参考下文中的 API 参考链接
NERtcVideoConfig videoConfig = new NERtcVideoConfig();
videoConfig.frontCamera = mFrontCamera; //前后摄像头
videoConfig.videoProfile = mVideoProfile; //视频profile
videoConfig.videoCropMode = mVideoCropMode; //视频裁剪模式
videoConfig.frameRate = mVideoFps; //视频帧率
videoConfig.minFramerate = mVideoMinFps; //视频最小帧率
videoConfig.degradationPrefer = mVideoDegradation;//带宽受限时的视频编码降级偏好
videoConfig.bitrate = mVideoEncodeBitrate; //视频编码码率
videoConfig.minBitrate = mVideoEncodeMinBitrate; //视频编码最小码率
NERtcEx.getInstance().setLocalVideoConfig(videoConfig); //设置本地视频参数

NERtcEx.getInstance().enableDualStreamMode(mVideoDual); //是否开启小流


视频档位 具体参数
LOWEST 160x90/120
LOW 320x180/240
STANDARD 640x360/480
HD720P 1280x720
HD1080p 1920x1080

API参考

方法 功能描述
setLocalVideoConfig 设置视频参数(分辨率、摄像头位置等)

开发注意事项

iOS

实现方法

  1. 在设置视频属性前,请确保你已完成环境准备、安装包获取等步骤;
  2. 使用 setLocalVideoConfig: 方法来设置视频相关的属性,比如分辨率、码率、帧率等。参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值;
  3. 配置中的具体含义详见 NERtcVideoProfileType 定义;

示例代码

    NERtcEngine *coreEngine = [NERtcEngine sharedEngine];
    NERtcVideoEncodeConfiguration *config = [[NERtcVideoEncodeConfiguration alloc] init];
    config.maxProfile = kNERtcVideoProfileStandard; // 设置视频 profile 类型为640x360/480 @30fps
    config.cropMode = kNERtcVideoCropMode16_9;      // 设置裁剪格式为16:9
    config.frameRate = kNERtcVideoFrameRateFps30; //视频帧率
    config.minFrameRate = mMinFrameRate; //视频最小帧率
    config.bitrate = mBitrate; //视频编码码率
    config.minBitrate = mMinBitrate; //视频编码最小码率
    config.degradationPreference = kNERtcDegradationDefault; ;//带宽受限时的视频编码降级偏好

    [coreEngine setLocalVideoConfig:config];//设置本地视频参数

    [coreEngine enableDualStreamMode:mVideoDual];//是否开启小流

API参考

方法 功能描述
setLocalVideoConfig 设置视频发送配置

开发注意事项

Windows/macOS

实现方法

  1. 在设置视频属性前,请确保你已完成环境准备、安装包获取等步骤;
  2. 使用 setLocalVideoConfig: 方法来设置视频相关的属性,比如分辨率、码率、帧率等。参数均为理想情况下的最大值。当视频引擎因网络环境等原因无法达到设置的分辨率、帧率或码率的最大值时,会取最接近最大值的那个值;
  3. 配置中的具体含义详见 NERtcVideoConfig 定义;

示例代码

NERtcVideoConfig config;
videoConfig.max_profile = kNERtcVideoProfileHD1080P;
videoConfig.crop_mode_ = kNERtcVideoCropModeDefault;
videoConfig.framerate = kNERtcVideoFramerateFpsDefault; 
videoConfig.min_framerate = 15; 
videoConfig.bitrate = 0; 
videoConfig.min_bitrate = 0;
videoConfig.degradation_preference = kNERtcDegradationDefault; 
nrtc_engine_->setVideoConfig(config); //设置本地视频参数


nrtc_engine_->enableDualStreamMode(true); //设置是否支持小流

API参考

方法 功能描述
setVideoConfig 设置视频发送配置
enableDualStreamMode 设置视频双流发送

开发注意事项

常用分辨率、帧率和码率推荐

在大多数场景下,您可根据实际业务场景中的视频窗口的大小去配置分辨率、帧率、码率,以控制带宽压力及编解码的资源消耗。 在自定义视频编码参数的过程中,您也参考下表对上述参数进行自定义配置。

需注意,下表中的视频参数推荐仅适用于 Native端(Android、iOS、Windows、macOS平台)。

分辨率 帧率 推荐通信目标码率(kbps) 推荐直播目标码率(kbps)
160 x 90 30 75 113
160 x 90 15 50 75
120 x 90 30 61 91
120 x 90 15 40 60
90 x 90 30 49 73
90 x 90 15 32 48
320 x 180 30 214 321
320 x 180 15 141 212
240 x 180 30 172 259
240 x 180 15 113 170
180 x 180 30 139 208
180 x 180 15 91 137
640 x 360 30 606 909
640 x 360 15 400 600
480 x 360 30 488 732
480 x 360 15 322 483
360 x 360 30 393 590
360 x 360 15 259 389
1280 x 720 30 1714 2572
1280 x 720 15 1131 1697
960 x 720 30 1382 2073
960 x 720 15 911 1367
720 x 720 30 1113 1670
720 x 720 15 734 1102
1920 x 1080 30 3150 4725
1920 x 1080 15 2078 3117
1440 x 1080 30 2538 3808
1440 x 1080 15 1675 2512
1080 x 1080 30 2046 3069
1080 x 1080 15 1350 2025

Web

实现方法

云信 Web SDK 通过 setVideoProfile接口支持设置视频属性(在localStream.init()或者localStream.open()接口之前调用生效)

示例代码

rtc.localStream.setVideoProfile({
  resolution: WebRTC2.VIDEO_QUALITY_480p,
  frameRate: WebRTC2.CHAT_VIDEO_FRAME_RATE_5
})
参数名 类型 说明
resolution Number 设置的视频分辨率
frameRate Number 设置的视频分辨率

resolution, 视频分辨率设置

resolution可选值 类型 说明
WebRTC2.VIDEO_QUALITY_180p number 视频默认分辨率 320x180
WebRTC2.VIDEO_QUALITY_480p number 视频低分辨率 640x480
WebRTC2.VIDEO_QUALITY_720p number 视频中分辨率 1280x720
WebRTC2.VIDEO_QUALITY_1080p number 视频高分辨率 1920x1080

frameRate, 视频帧率设置

frameRate可选值 类型 说明
WebRTC2.CHAT_VIDEO_FRAME_RATE_5 number 视频通话帧率 最大取每秒5帧
WebRTC2.CHAT_VIDEO_FRAME_RATE_10 number 视频通话帧率 最大取每秒10帧
WebRTC2.CHAT_VIDEO_FRAME_RATE_15 number 视频通话帧率 最大取每秒15帧
WebRTC2.CHAT_VIDEO_FRAME_RATE_20 number 视频通话帧率 最大取每秒20帧
WebRTC2.CHAT_VIDEO_FRAME_RATE_25 number 视频通话帧率 最大取每秒25帧

API参考

方法 功能描述
setVideoProfile 设置视频属性