媒体补充增强信息(SEI)
更新时间:2021-05-26
简介
在 LinkV SDK
中 当推流的时候,远端拉流后会收到 OnDrawFrame:sei:
方法的回调,也就是收到远端视频数据的时候会回调此方法。
如果想要在推流时随视频传输文本信息,然后在拉流端接收,就需要用到 sei
功能。
一般可用于歌词同步、直播答题等需要随视频数据下发同步文本的场景。
使用步骤
- 实现
loginRoom
的delegate
方法,然后在推流方的代理方法中反馈对应的sei
信息。 - 在拉流方的远程视频数据回调方法中接收对应的
sei
数据信息。
推流方
-
SDK
内部采集视频在发送时会回调下面方法,开发者返回需要随视频携带的信息即可。 -
此方法每一帧都会回调,会调用多次,需要控制处理。
/*
* 是否需要在视频帧上附加其他媒体信息
* @param timestamp 当前要发送数据帧的时间戳
* @return 请返回要随当前视频帧发送的附加数据 (字符串最长长度 24 个字符)
*/
- (NSString *)onMediaSideInfoInPublishVideoFrame:(NSUInteger)timestamp
{
return (@"extra data");
}
拉流方
- 远端用户收到该自定义数据时会收到自定义数据的通知
/*
* 收到远端视频数据回调,如果为 SDK 设置了渲染视图,SDK 内部会自动将该视频帧渲染出来
* @param pixelBuffer 已解码的视频数据
* @param uid 用户 ID
* @param sei 随视频数据携带的附加数据信息
* @return 建议返回当前渲染完成的时间戳,用以统计渲染延迟
* @discussion 注:如果用户实现该接口,则 SDK 内部的远端视频渲染会自动实现,渲染完全由外部进行实现
*/
- (int64_t)OnDrawFrame:(CVPixelBufferRef)pixelBuffer
uid:(NSString *)uid
sei:(NSString *)sei
{
NSLog( @"%@", sei );
}