自定义视频渲染
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、设置自定义视频渲染回调
// 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 |
远端视频自定义渲染回调
// 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 |