# sendSEIMsg method Null safety

Future<bool?> sendSEIMsg(

1. String data,
2. int repeatCount

)

将小数据量的自定义数据嵌入视频帧中

与 sendCustomCmdMsg 的原理不同，sendSEIMsg 是将数据直接塞入视频数据头中。因此，即使视频帧被旁路到了直播 CDN 上， 这些数据也会一直存在。由于需要把数据嵌入视频帧中，建议尽量控制数据大小，推荐使用几个字节大小的数据。

最常见的用法是把自定义的时间戳（timstamp）用 sendSEIMsg 嵌入视频帧中，这种方案的最大好处就是可以实现消息和画面的完美对齐。

参数：

data 待发送的数据，最大支持1kb（1000字节）的数据大小。

repeatCount 发送数据次数

返回：

true：消息已通过限制，等待后续视频帧发送；false：消息被限制发送

本接口有以下限制：

数据在接口调用完后不会被即时发送出去，而是从下一帧视频帧开始带在视频帧中发送。

发送消息到房间内所有用户，每秒最多能发送30条消息（与 sendCustomCmdMsg 共享限制）。

每个包最大为1KB，若发送大量数据，会导致视频码率增大，可能导致视频画质下降甚至卡顿（与 sendCustomCmdMsg 共享限制）。

每个客户端每秒最多能发送总计8KB数据（与 sendCustomCmdMsg 共享限制）。

若指定多次发送（repeatCount > 1），则数据会被带在后续的连续 repeatCount 个视频帧中发送出去，同样会导致视频码率增大。

如果 repeatCount > 1，多次发送，接收消息 onRecvSEIMsg 回调也可能会收到多次相同的消息，需要去重。

## Implementation

    Future<bool?> sendSEIMsg(String data, int repeatCount) {
      return _channel
          .invokeMethod('sendSEIMsg', {"data": data, "repeatCount": repeatCount});
    }