IZegoCustomVideoProcessHandler
IZegoCustomVideoProcessHandler
Declared in callback/IZegoCustomVideoProcessHandler.java
方法
onStart
public void onStart(ZegoPublishChannel channel)callback/IZegoCustomVideoProcessHandler.java参数
| 名称 | 类型 | 描述 |
|---|---|---|
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启自定义视频前处理时,SDK 通知开发者将要开始进行视频前处理,推荐在此回调中进行其他资源(比如美颜 SDK)的初始化。
- 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
- 通知时机:开启自定义视频前处理,调用 [startPreview] 或 [startPublishingStream] 成功之后。
- 相关回调:自定义视频前处理结束通知 [onStop]。
- 相关接口:可调用 [setCustomVideoProcessHandler] 函数设置自定义视频前处理回调。
- 支持版本:2.2.0 及以上。
onStop
public void onStop(ZegoPublishChannel channel)callback/IZegoCustomVideoProcessHandler.java参数
| 名称 | 类型 | 描述 |
|---|---|---|
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启自定义视频前处理时,SDK 通知开发者将要结束视频前处理,推荐在此回调中进行其他资源(比如美颜 SDK)的销毁。
- 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
- 通知时机:如果开启自定义采集后同时调用 [startPreview] 开启预览和 [startPublishingStream] 开启推流,则应该调用 [stopPreview] 停止预览 和 [stopPublishingStream] 停止推流后才会触发该回调。
- 相关回调:自定义视频前处理开始通知 [onStart]。
- 相关接口:可调用 [setCustomVideoProcessHandler] 函数设置自定义视频前处理回调。
- 支持版本:2.2.0 及以上。
onCapturedUnprocessedRawData
public void onCapturedUnprocessedRawData(ByteBuffer data, int[] dataLength, ZegoVideoFrameParam param, long referenceTimeMillisecond, ZegoPublishChannel channel)callback/IZegoCustomVideoProcessHandler.java参数
| 名称 | 类型 | 描述 |
|---|---|---|
| data | ByteBuffer | 原始视频数据。RGB 格式数据存放位置为 data[0],YUV 格式数据存放位置分别为 Y 分量:data[0],U 分量:data[1],V 分量:data[2]。 |
| dataLength | int[] | 原始视频数据长度。RGB 格式数据长度存放位置为 dataLength[0],YUV 格式数据存放位置分别为 Y 分量长度:dataLength[0],U 分量长度:dataLength[1],V 分量长度:dataLength[2]。 |
| param | ZegoVideoFrameParam | 视频帧参数。 |
| referenceTimeMillisecond | long | 视频帧的索引时间,UNIX 时间戳,或系统启动时间戳,单位为毫秒。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启自定义视频前处理时,调用 [setCustomVideoProcessHandler] 设置回调后,SDK 收到原始视频数据并回调给开发者。当开发者处理完原始图像之后,必须调用 [sendCustomVideoProcessedRawData] 将处理后数据传回 SDK 中,否则会导致丢帧现象。
- 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
- 通知时机:开启自定义视频前处理,SDK 采集到原始视频数据时。
- 平台差异:适用于 Window、Android 平台。
- 支持版本:2.2.0 及以上。
- 使用限制:当调用 [enableCustomVideoProcessing] 开启自定义视频前处理且 config 的 bufferType 传入 [ZegoVideoBufferTypeRawData] 时,此接口生效。
onCapturedUnprocessedTextureData
public void onCapturedUnprocessedTextureData(int textureID, int width, int height, long referenceTimeMillisecond, ZegoPublishChannel channel)callback/IZegoCustomVideoProcessHandler.java参数
| 名称 | 类型 | 描述 |
|---|---|---|
| textureID | int | 纹理 ID。 |
| width | int | 纹理宽度。 |
| height | int | 纹理高度。 |
| referenceTimeMillisecond | long | 视频帧的索引时间,UNIX 时间戳,单位为毫秒。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启自定义视频前处理时,调用 [setCustomVideoProcessHandler] 设置回调后,SDK 收到原始视频数据并回调给开发者。当开发者处理完原始图像之后,必须调用 [sendCustomVideoProcessedTextureData] 将处理后数据传回 SDK 中,否则会导致丢帧现象。
- 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
- 通知时机:开启自定义视频前处理,SDK 采集到原始视频数据时。
- 平台差异:仅在 Android 平台生效。
- 支持版本:2.2.0 及以上。
- 使用限制:当调用 [enableCustomVideoProcessing] 开启自定义视频前处理且 config 的 bufferType 传入 [ZegoVideoBufferTypeGLTexture2D] 时,此接口生效。
getCustomVideoProcessInputSurfaceTexture
public SurfaceTexture getCustomVideoProcessInputSurfaceTexture(int width, int height, ZegoPublishChannel channel)callback/IZegoCustomVideoProcessHandler.java参数
| 名称 | 类型 | 描述 |
|---|---|---|
| width | int | 原始视频的采集宽度。 |
| height | int | 原始视频的采集高度。 |
| channel | ZegoPublishChannel | 推流通道。 |
详情
开启自定义视频前处理,开发者需要创建 SurfaceTexture 对象并监听其成员方法 [setOnFrameAvailableListener],然后 return 相应的 SurfaceTexture。当 SDK 原始视频数据输入完成时,开发者将收到 [onFrameAvailable]。开发者将 SurfaceTexture(input) 对象传给 SDK 之后,可通过调用 [getCustomVideoProcessOutputSurfaceTexture] 拿到 SDK 用于编码推流的 SurfaceTexture,此后开发者可以将视频处理后的数据传入此 SurfaceTexture(output) 对象中。
- 业务场景:开发者自行采集视频数据或获取到 SDK 采集的视频数据后,若 SDK 自带的基础美颜和水印功能无法满足开发者需求时(例如美颜效果无法达到预期),可以结合 ZegoEffects SDK 对视频进行一些特殊处理,例如美颜、添加挂件等,该过程即为自定义视频前处理。
- 平台差异:仅在 Android 平台生效。
- 支持版本:2.2.0 及以上。
- 使用限制:当调用 [enableCustomVideoProcessing] 开启自定义视频前处理且 config 的 bufferType 传入 [ZegoVideoBufferTypeSurfaceTexture] 时,此回调生效。
返回值
SurfaceTexture 实例。
