编解码器
软硬编码
您可以根据设备性能和业务需求选择合适的编码方式。硬编码性能更优,软编码兼容性更好。建议在发起通话和接听通话前进行设置。
参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
hardWareEncode | boolean | 是 | 是否使用 H.264 硬编码。SDK 会根据硬件支持情况创建硬编码器,如果创建失败则自动切换到软编码 |
示例代码:
以下示例演示如何启用硬编码:
Java
RCRTCConfig.Builder builder = RCRTCConfig.Builder.create();
builder.enableHardwareEncoder(true);
RongCallClient.getInstance().setRTCConfig(builder);
提示
- 硬编码:利用设备的专用硬件进行编码,CPU 占用率低,编码效率高
- 软编码: 使用 CPU 进行编码,兼容性更好,但会增加 CPU 负担
硬编码等级设置
您可以在发起通话和接听通话前,根据视频质量和兼容性需求选择不同的硬件编码等级。
参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
hardWareEncodeHighProfile | boolean | 是 | 设置硬编码压缩等级是否为 MediaCodecInfo.CodecProfileLevel.AVCProfileHigh ,ProfileHigh 比 AVCProfileBaseline 压缩率更高,但是 AVCProfileBaseline 兼容性更好, AVCProfileHigh 压缩等级为 MediaCodecInfo.CodecProfileLevel.AVCLevel3 ,默认值为 false ,false 代表 MediaCodecInfo.CodecProfileLevel.AVCProfileBaselin) |
示例代码:
Java
RCRTCConfig.Builder builder = RCRTCConfig.Builder.create();
builder.enableHardwareEncoderHighProfile(true);
RongCallClient.getInstance().setRTCConfig(builder);
软硬解码
您可以选择硬解码或软解码来处理接收到的视频流。硬解码能够减少 CPU 占用,提升解码效率。建议在发起通话和接听通话前进行设置。
参数说明:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
hardWareDecode | boolean | 是 | 是否使用 H.264 硬解码(默认开启)。SDK 会根据硬件支持情况创建硬解码器,如果创建失败则自动切换到软解码 |
示例代码:
以下示例演示如何启用硬解码:
Java
RCRTCConfig.Builder builder = RCRTCConfig.Builder.create();
builder.enableHardwareDecoder(true);
RongCallClient.getInstance().setRTCConfig(builder);