You need to enable JavaScript to run this app.
导航

发送和接收媒体补充增强信息(SEI)

最近更新时间2023.12.14 14:20:14

首次发布时间2021.07.18 15:06:49

H.264/H.265 视频压缩标准支持在视频流中包含 SEI 信息。在直播场景中,你可以通过添加 SEI 信息实现多种功能,包括 RTC 消息和业务信令同步等。

功能变更日志

  1. 自客户端 SDK 3.27 起,支持在直播流中发送和接收 SEI 的功能。

使用说明

发送 SEI 信息

下表介绍了各种场景下适用的 SEI 发送方式,你可以根据实际情况及需要,选择相对应的操作方式。

技术方案
特点
调用顺序
适用场景

方案一

  • 通用 SEI 发送接口(内外部视频源均适用):sendSEIMessage,可随视频帧发送 SEI 数据

  • 调用成功后,远端会收到 SEI 回调:

    onSEIMessageReceived

  • 支持 4KB长度

  • 支持消息重发

  • 支持合并所有 RTC 用户的 SEI 数据并推到 CDN 流中

  • 以视频15 fps 为例,同步精度为 0~66 ms,如对精度有更高要求,请参看方案四

alt

视频通话场景(如 K 歌、直播连麦等)

方案二

alt

方案三

内部采集黑帧

  1. 调用 setVideoSourceType设置视频源及屏幕流
  1. 调用通用 SEI 发送接口:sendSEIMessage

  2. 调用成功后,远端会收到 SEI 回调: onSEIMessageReceived

  • 支持 4KB长度

  • 支持消息重发

  • 支持合并所有 RTC 用户的 SEI 数据并推到 CDN 流中

  • 以视频15 fps 为例,同步精度为 0~66 ms,如对精度有更高要求,请参看方案四

alt

纯音频通话场景(如 K 歌、语聊等)

方案四

音频 RTP 扩展头

  • 支持的最大 SEI 传输长度为 255B,如对消息长度有更高要求,请参看方案一方案二

  • RTC 用户的 SEI 数据不会推到 CDN 流中

  • 可实现更高的同步精度,理论上可以做到 0~20ms

  • 调用频率为单个 SDK 50次每秒

alt

方案五

  • SEI 随视频帧发送

  • 不重复发送

  • RTC 通道可能会丢帧

  • 在合流服务端添加 SEI 信息时,SEI 信息添加频率和视频 I 帧间隔一致,量级约为数秒,频率远低于在客户端添加。建议在客户端添加频繁变化的信息,比如实时音量信息。

转推直播场景(如用户观众侧进房后切换布局、放置 PK 血条位置等)

方案六

  • 合流接口中传递到直播流中的信息,会在合流 I 帧前重复发送

  • 如果合流布局变更,会立即触发一个最新的 SEI 帧;如果合流布局不变更,SEI 帧仍会发送。

  • 适用于比较固定的信息

alt

方案七

alt

发送非媒体流 SEI 信息(如给房间内其他用户发送文本消息等)


API 参考

以下是各个平台的相关API参考: