本地合图

  • Android

更新时间不可用

startLocalVideoTranscoder

开始本地视频合图。

Java
public abstract int startLocalVideoTranscoder(LocalTranscoderConfiguration config);

调用该方法后,你可以在本地将多个视频流合并为一个视频流,例如摄像头采集的视频流、屏幕共享、媒体播放器、远端视频、视频文件、图片等,然后将混合后的视频流发布到频道中。以下是实现人像画中画效果的典型用例:

  1. 调用 enableVirtualBackground,并将自定义背景图设置为 BACKGROUND_NONE,即将摄像头采集的视频中的人像与背景分离。
  2. 调用 startScreenCapture 开始采集屏幕共享视频流。
  3. 调用 startLocalVideoTranscoder,并将采集人像的视频源设置为参与本地视频合图的视频源之一,即可在视频中实现人像画中画效果。

注:

  • 本地视频合图需要更多的 CPU 资源。声网建议在性能较高的设备上启用此功能。

  • 如果需要混合本地采集的视频流,SDK 支持以下采集组合:

    • 在 Android 平台上,支持最多 2 路摄像头采集的视频流(设备需支持双摄像头或支持外接摄像头)+ 1 路屏幕共享流。
  • 配置本地视频合图时,需要确保采集人像的视频流的图层编号大于屏幕共享流的图层编号。否则,人像会被屏幕共享遮挡,无法在最终视频合图中显示。

  • 参与本地视频合图的每路视频流的最大分辨率为 4096 × 2160。如果超过该限制,视频合图将不生效。

  • 混合后的视频流的最大分辨率为 4096 × 2160。

适用场景

适用于远程会议、直播、在线教育等场景,便于用户查看和管理多个视频流,并支持人像画中画等功能。

调用时机

相关回调

当调用该方法失败时,SDK 会触发 onLocalVideoTranscoderError 回调报告失败原因。

参数

参数名描述
config

本地视频合图的配置,详见 LocalTranscoderConfiguration。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

stopLocalVideoTranscoder

停止本地合图。

Java
public abstract int stopLocalVideoTranscoder();

调用 startLocalVideoTranscoder 后,如需停止本地合图,可调用该方法。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

updateLocalTranscoderConfiguration

更新本地合图配置。

Java
public abstract int updateLocalTranscoderConfiguration(LocalTranscoderConfiguration config);

调用 startLocalVideoTranscoder 后,如果你需要更新本地合图配置,可以调用该方法。

注: 如果你想更新用于本地合图的视频源类型,例如添加第二个摄像头或屏幕进行视频采集,需要在调用 startCameraCapture 或 startScreenCapture 后调用该方法。

参数

参数名描述
config

本地合图配置。详见 LocalTranscoderConfiguration。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

onLocalVideoTranscoderError

本地视频合图过程中发生错误回调。

Java
public void onLocalVideoTranscoderError(LocalTranscoderConfiguration.TranscodingVideoStream stream, int error)

当调用 startLocalVideoTranscoder 或 updateLocalTranscoderConfiguration 失败时,SDK 会触发该回调报告失败原因。

触发时机

该回调在调用 startLocalVideoTranscoder 或 updateLocalTranscoderConfiguration 失败时被触发。

参数

参数名描述
stream

在视频合图过程中无法被合图的视频流。详见 TranscodingVideoStream。

error

本地视频合图错误的原因:

  • 1:指定的视频源尚未开始视频采集。你需要创建视频轨道并开始采集。
  • 2:无效的视频源类型。你需要指定支持的视频源类型。
  • 3:无效的图片路径。你需要指定正确的图片路径。
  • 4:无效的图片格式。请确保图片格式为 PNG、JPEG 或 GIF。
  • 5:合图后的视频分辨率无效。
  • 20:内部错误。
表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类