自定义视频采集和渲染
CreateCustomVideoTrack
创建一个自定义的视频轨道。
C#
public abstract video_track_id_t CreateCustomVideoTrack();
详情
当你需要在频道中发布多路自定义采集视频时,可参考以下步骤:
- 调用该方法创建视频轨道并获得视频轨道 ID。
- 在每个频道的 ChannelMediaOptions 中,将 customVideoTrackId 参数设置为你想要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为
true
。 - 调用 将 videoTrackId 指定为步骤 2 中指定的视频轨道 ID,即可实现在多个频道中发布对应的自定义视频源。
返回值
- 方法调用成功,返回视频轨道 ID 作为该视频轨道的唯一标识。
- 方法调用失败,返回负值。
DestroyCustomVideoTrack
销毁指定的视频轨道。
C#
public abstract int DestroyCustomVideoTrack(video_track_id_t video_track_id);
参数
- video_track_id
- 调用 CreateCustomVideoTrack 方法返回的视频轨道 ID。
返回值
- 0: 方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。
PushVideoFrame
推送外部原始视频帧到 SDK。
C#
public abstract int PushVideoFrame(ExternalVideoFrame frame, uint videoTrackId = 0);
详情
调用 CreateCustomVideoTrack 方法获得视频轨道 ID,在每个频道的 ChannelMediaOptions 中,将 customVideoTrackId 参数设置为你想要发布的视频轨道 ID,并将 publishCustomVideoTrack 设置为 true
后,你可以调用本方法将未编码的外部视频帧推送到 SDK。
参数
- frame
待推送的视频帧。详见 ExternalVideoFrame。
- videoTrackId
- 调用 CreateCustomVideoTrack 方法返回的视频轨道 ID。默认值为 0。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
SetExternalVideoSource
设置外部视频源。
C#
public abstract int SetExternalVideoSource(bool enabled, bool useTexture, EXTERNAL_VIDEO_SOURCE_TYPE sourceType, SenderOptions encodedVideoOption);
详情
注意
请在加入频道前调用该方法。
参数
- enabled
- 是否启用外部视频源:
true
: 启用外部视频源。SDK 准备接收外部视频帧。false
:(默认)不启用外部视频源。
- useTexture
- 是否使用 texture 格式的外部视频帧:
true
: 使用 texture 格式的外部视频帧。false
: 不使用 texture 格式的外部视频帧。
- sourceType
- 外部视频帧是否编码,详见 EXTERNAL_VIDEO_SOURCE_TYPE。
- encodedVideoOption
返回值
- 0:方法调用成功。
- < 0: 方法调用失败。详见错误码了解详情和解决建议。