视频流处理
SDK 支持应用程序获取视频流数据,自行进行美颜、录像等处理后,再将数据返回给 SDK 进行发送或渲染。
视频流的处理需要您设置对应的代理:
Objective C
[RCRTCEngine sharedInstance].defaultVideoStream.streamEventDelegate = self;
在发送前处理本地视频流
您可以在 SDK 发送视频流前处理视频流数据,修改会对发送到 远端以及本地视频显示的视频数据生效。
实现视频发送处理代理
接口原型
Objective C
- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream willEncodeVideoFrame:(nullable RCRTCVideoFrame *)videoFrame;
参数说明
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
stream | RCRTCVideoOutputStream * | 是 | 即将编码发送的视频帧数据所属接收到的流 |
videoFrame | RCRTCVideoFrame * | 否 | 即将编码发送的视频帧数据,类型为 RCRTCVideoFrameFormatI420 |
代码示例
Objective C
#import <RongRTCLib/RongRTCLib.h>
// 设置视频流事件代理
[RCRTCEngine sharedInstance].defaultVideoStream.streamEventDelegate = self;
// 实现视频发送处理代理方法
- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream willEncodeVideoFrame:(nullable RCRTCVideoFrame *)videoFrame {
// 在这里进行美颜、水印等处理
// 可以修改 videoFrame 的数据
if (videoFrame) {
// 对视频帧进行自定义处理
}
}
在本地预览前处理视频流
您可以在 SDK 本地显示视频流前处理视频流,修改仅作用于本地视频显示,SDK 仍然发送摄像头采集的原始数据。
实现 视频预览处理代理
接口原型
Objective C
- (void)outputVideoStream:(RCRTCVideoOutputStream *)stream willRenderVideoFrame:(nullable RCRTCVideoFrame *)videoFrame;