自定义视频采集和渲染
setExternalVideoCapture
- (int)setExternalVideoCapture:(BOOL)enabled format:(HWRtcVideoImageFormat)format;
【功能说明】
设置是否开启外部视频采集。需要在加入房间前调用。
【请求参数】
- enable:YES表示开启,NO表示关闭。默认为NO。
- format:设置外部采集的视频格式,默认为I420(即yuv420P)。
【返回参数】
- 0:方法调用成功。
- > 0:方法调用失败。具体请参见HWRtcErrorCode。
- 加入房间前调用,不支持房间内切换。
- 视频支持格式:默认为I420,format可选格式为yuv420p、rgba和texture2d,如果需要外部传入texture2d编码的数据,需要设置format为texture2d,否则传入yuv420p或者rgba。
- 如果使用外部输入视频数据,需要在加入房间后,按照一定时间间隔调用pushExternalVideoFrame接口输入视频数据。
pushExternalVideoFrame
- (int)pushExternalVideoFrame:(HWRtcVideoFrame* _Nonnull)videoFrame;
【功能说明】
推送外部视频数据。
【请求参数】
videoFrame:视频自采集数据格式 ,具体请参见HWRtcVideoFrame。
【返回参数】
- 0:方法调用成功。
- > 0:方法调用失败。具体请参见HWRtcErrorCode。
- 此方法调用前,需要先调用setExternalVideoCapture设置开启外部视频采集。
- 数据输入周期:同视频周期,1/帧率。
setExternalMediaFrameOutput
- (int)setExternalMediaFrameOutput:(HWRtcMediaType)mediaType remoteEnable:(BOOL)remoteEnable localEnable:(BOOL)localEnable;
【功能说明】
设置是否开启视频流自渲染。开启后,回调onRenderExternalVideoFrame中会有视频帧数据上报。
- mediaType:“audio”表示设置音频,“video”表示设置视频 ,具体请参见HWRtcMediaType。
- remoteEnable:YES表示开启远端自渲染, NO表示关闭远端自渲染。默认为NO。
- localEnable:YES表示开启本地自渲染,NO表示关闭本地自渲染。默认为NO。
【返回参数】
- 0:方法调用成功。
- > 0:方法调用失败。具体请参见HWRtcErrorCode。
setExternalVideoFrameOutputWithFormat
- (int)setExternalVideoFrameOutputWithFormat:(HwRtcImageBufferFormat)format remoteEnable:(BOOL)remoteEnable localEnable:(BOOL)localEnable;
【功能说明】
设置是否开启视频流自渲染,指定Format参数。开启后,回调onRenderExternalVideoFrame中会有视频帧数据上报。
- format :指定输出视频内容帧格式,具体请参见HwRtcImageBufferFormat。
- remoteEnable:YES表示开启远端自渲染, NO表示关闭远端自渲染。默认为NO。
- localEnable:YES表示开启本地自渲染,NO表示关闭本地自渲染。默认为NO。
【返回参数】
- 0:方法调用成功。
- > 0:方法调用失败。具体请参见HWRtcErrorCode。
在onRenderExternalVideoFrame回调参数videoFrame.format中体现设置的format参数。
pushAuxExternalVideoFrame
- (int)pushAuxExternalVideoFrame:(HWRtcVideoFrame * _Nonnull)dataFrame;
【功能说明】
辅流输入外部视频数据。
【请求参数】
videoFrame:视频数据,具体请参考HWRtcVideoFrame。
【返回参数】
- 0:成功。
- > 0:失败。
- 此接口与屏幕采集功能互斥。
- 如果需要传输texture2d编码流,需要设置setAuxExternalVideoCapture videoEnable参数为true,format设置为texture2d。