sendSEIMessage abstract method

Future<int?> sendSEIMessage({
  1. StreamIndex streamIndex = StreamIndex.main,
  2. required Uint8List message,
  3. required int repeatCount,
  4. SEICountPerFrame mode = SEICountPerFrame.single,
})

通过视频帧发送 SEI 数据。

在视频通话场景下,SEI 数据会随视频帧发送;在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据。

streamIndex:指定携带 SEI 数据的媒体流类型。
语音通话场景下,该值需设为 main,否则 SEI 数据会被丢弃从而无法送达远端。

message:是 SEI 消息内容,超过 4KB 的消息会被丢弃。

repeatCount:是消息发送重复次数。取值范围是 [0, max{29, %{视频帧率}-1}]。推荐范围 [2,4]
调用此接口后,这些 SEI 数据会添加到从当前视频帧开始的连续 %{repeat_count}+1 个视频帧中。

mode:SEI 发送模式。

返回值:

  • >=0:将被添加到视频帧中的 SEI 的数量
  • <0:发送失败

注意:

  • SEI 数据会随视频帧发送。每秒发送的 SEI 消息数量建议不超过当前的视频帧率。在语音通话场景下,SDK 会自动生成一路 16px × 16px 的黑帧视频流用来发送 SEI 数据,帧率为 15 fps。
  • 语音通话场景中,仅支持在内部采集模式下调用该接口发送 SEI 数据。
  • 视频通话场景中,如果自定义采集的原视频帧中已添加了 SEI 数据,则调用此方法不生效。
  • 视频帧仅携带前后 2s 内收到的 SEI 数据;语音通话场景下,若调用此接口后 1min 内未有 SEI 数据发送,则 SDK 会自动取消发布视频黑帧。
  • 消息发送成功后,远端会收到 RTCVideoEventHandler.onSEIMessageReceived 回调。
  • 语音通话切换至视频通话时,会停止使用黑帧发送 SEI 数据,自动转为用采集到的正常视频帧发送 SEI 数据。

Implementation

Future<int?> sendSEIMessage({
  StreamIndex streamIndex = StreamIndex.main,
  required Uint8List message,
  required int repeatCount,
  SEICountPerFrame mode = SEICountPerFrame.single,
});