自定义视频渲染

SDK支持视频数据回调到外部进行自定义渲染。目前支持类型有ChuangVideoBufferType

步骤

1、开启自定义视频渲染

  • 本端视频自定义渲染开关
// Objective-C

/*!
 @brief 是否启用本端视频自定义渲染
 @param enable YES:启用自定义渲染 NO:不启用自定义渲染。(默认:NO 不启用自定义渲染)
 @param config 自定义渲染视频配置 , 详见ChuangCustomVideoRenderConfig
 @return 调用结果  0:成功,非0:失败
 */
- (int)enableCustomLocalVideoRender:(BOOL)enable config:(ChuangCustomVideoRenderConfig *)config;

方法参数说明:

参数 类型 是否必传 描述
enable BOOL 必传 YES:启用自定义渲染 NO:不启用自定义渲染。(默认:NO 不启用自定义渲染)
config ChuangCustomVideoRenderConfig 必传 自定义视频渲染配置
  • 远端视频自定义渲染开关
// Objective-C

/*!
 @brief 是否启用远端视频自定义渲染
 @param enable YES:启用自定义渲染 NO:不启用自定义渲染。(默认:NO 不启用自定义渲染)
 @param config 自定义渲染视频配置 , 详见ChuangCustomVideoRenderConfig
 @return 调用结果  0:成功,非0:失败
 */
- (int)enableCustomRemoteVideoRender:(BOOL)enable config:(ChuangCustomVideoRenderConfig *)config;

方法参数说明:

参数 类型 是否必传 描述
enable BOOL 必传 YES:启用自定义渲染 NO:不启用自定义渲染。(默认:NO 不启用自定义渲染)
config ChuangCustomVideoRenderConfig 必传 自定义视频渲染配置

2、设置自定义视频渲染回调

回调代理协议ChuangVideoCustomRenderDelegate

// Objective-C

/*!
 @brief 设置自定义视频渲染回调
 @param delegate 自定义视频渲染回调代理
 */
- (void)setCustomVideoRenderHandler:(id<ChuangVideoCustomRenderDelegate>)delegate;

3、自定义视频渲染回调方法

本端视频自定义渲染回调
// Objective-C

/*!
 @brief 本端预览视频帧 CVPixelBuffer 数据回调
 @param buffer 封装为CVPixelBuffer的视频帧数据(需要释放)
 @param streamId 推流的流Id
 */
- (void)onLocalVideoFrameCVPixelBuffer:(CVPixelBufferRef)buffer streamId:(NSString *)streamId;

方法参数说明:

参数 类型 描述
buffer CVPixelBuffer 视频帧编码数据
streamId NSString 推流的流Id
远端视频自定义渲染回调

视频帧参数ChuangVideoFrameParam

// Objective-C

/*!
 @brief 远端拉流视频帧 CVPixelBuffer 数据回调,通过 streamId 区分不同的流
 @param buffer 封装为 CVPixelBuffer 的视频帧数据(需要释放)
 @param param 视频帧参数
 @param streamId 拉流的流id
*/
- (void)onRemoteVideoFrameCVPixelBuffer:(CVPixelBufferRef)buffer param:(ChuangVideoFrameParam *)param streamId:(NSString *)streamId;

方法参数说明:

参数 类型 描述
buffer CVPixelBufferRef 视频帧数据(需要手动释放)
param ChuangVideoFrameParam 视频帧参数
streamId NSString 拉流的流ID
// Objective-C

/*!
 @brief 远端拉流视频帧裸数据回调,通过 streamId区分不同的流
 @param rawData 视频帧的裸数据
 @param param 视频帧参数
 @param streamId 拉流的流id
*/
- (void)onRemoteVideoFrameRawData:(NSData *)rawData param:(ChuangVideoFrameParam *)param streamId:(NSString *)streamId;

方法参数说明:

参数 类型 描述
rawData NSData 视频帧的裸数据
param ChuangVideoFrameParam 视频帧参数
streamId NSString 拉流的流Id
// Objective-C

/*!
 @brief 远端拉流视频帧解码前的数据回调,通过 streamId 区分不同的流
 @param rawData 视频帧编码数据
 @param param 视频帧参数
 @param streamId 拉流的流Id
*/
- (void)onRemoteVideoFrameEncodedRawData:(NSData *)rawData param:(ChuangEncodedFrameParam *)param streamId:(NSString *)streamId;

方法参数说明:

参数 类型 描述
rawData NSData 视频帧编码数据
param ChuangEncodedFrameParam 视频帧参数
streamId NSString 拉流的流Id

results matching ""

    No results matching ""