原始视频数据(视频前后处理)
功能描述
音视频传输过程中,我们可以对采集到的音视频数据进行前处理和后处理,获取想要的播放效果。
对于有自行处理音视频数据需求的场景,HWRtcEngine SDK 提供原始数据功能,您可以在将数据发送给编码器前进行前处理,对捕捉到的音频信号或视频帧进行修改,也可以在将数据发送给解码器后进行后处理,对接收到的音频信号或视频帧进行修改。
原始音频数据可以进行视频前处理,然后发送给远端。也可以进行视频后处理。
注意事项
当前只支持YUV420数据格式处理。
注册视频前后处理
获取HWRtcEngine的HWRtcMediaEngine对象。
[HWRtcEngine sharedEngine].mediaEngine
注册视频前后处理
[[HWRtcEngine sharedEngine].mediaEngine setVideoFrameObserver:self];
每次入会都需要重新注册。取消注册,则传nil。
self (当前类)要签署HWRtcMediaEngineVideoDelegate。
和实现
requireCaptureVideoFrame:
requireRenderVideoFrame:
回调,通过回调的返回值来决定对应视频帧的处理是否生效。
实现
onVideoFrameCapture:
onVideoFrameRender:
回调,从回调中获取视频帧并进行处理。
注意:所有回调的返回值为false,说明对视频帧的处理无效。
/// 视频前处理 - (BOOL)onVideoFrameCapture:(HWRtcVideoFrame* _Nonnull)videoFrame { return YES; } //后处理 - (BOOL)onVideoFrameRender:(NSString *_Nonnull)userid videoFrame:(HWRtcVideoFrame* _Nonnull)videoFrame { return YES; } - (BOOL)requireCaptureVideoFrame { return YES; } - (BOOL)requireRenderVideoFrame { Return YES; }
加入房间
参考接口调用流程中加入房间的时序图步骤加入房间。