IRecorderVideoFrameObserver 类

  • C++

更新时间不可用

用于处理录制器的视频帧回调。

onYuvFrameCaptured

C++
virtual void onYuvFrameCaptured(const char* channelId, user_id_t userId, const agora::media::base::VideoFrame *frame) = 0;

捕获到 YUV 视频帧时触发的回调。

调用 enableRecorderVideoFrameCapture 启用视频帧采集,并将 VideoFrameCaptureType 设置为 VIDEO_FORMAT_YUV_FRAME_TYPE 后,每次捕获到 YUV 视频帧时,都会触发该回调。

参数

参数数据类型描述
channelIdconst char*频道 ID。
userIduser_id_t远端用户 ID。
frameconst agora::media::base::VideoFrame *捕获的视频帧,详见 VideoFrame。
表格内容超出当前宽度,可横向滚动查看更多列。

onEncodedFrameReceived

C++
virtual void onEncodedFrameReceived(const char* channelId, user_id_t userId, const uint8_t* imageBuffer, size_t length, agora::rtc::EncodedVideoFrameInfo videoEncodedFrameInfo) = 0;

编码后的视频帧采集回调。

当你在录制过程中调用 enableRecorderVideoFrameCapture 启用视频采集,并将 VideoFrameCaptureType 设置为 VIDEO_FORMAT_ENCODED_FRAME_TYPE 或 VIDEO_FORMAT_JGP_FORMAT_TYPE 时,会触发该回调:

  • 当设置为编码帧类型时,每次采集到视频帧都会触发该回调。
  • 当设置为 JPG 格式类型时,该回调会按照你在 RecorderVideoFrameCaptureConfig::jpgCaptureInternalInSec 中设置的时间间隔触发。

你可以通过 EncodedVideoFrameInfo::codecType 获取帧的编码格式。

参数

参数数据类型描述
channelIdconst char*频道 ID。
userIduser_id_t远端用户 ID。
imageBufferconst uint8_t*视频图像缓冲区指针。
lengthsize_t视频图像数据的长度。
videoEncodedFrameInfoagora::rtc::EncodedVideoFrameInfo编码后的视频帧信息。详见 EncodedVideoFrameInfo。
表格内容超出当前宽度,可横向滚动查看更多列。

onJPGFileSaved

C++
virtual void onJPGFileSaved(const char* channelId, user_id_t userId, const char* filename) = 0;

捕获的 JPG 文件保存成功时触发的回调。

调用 enableRecorderVideoFrameCapture 启用视频帧采集,并将 VideoFrameCaptureType 设置为 VIDEO_FORMAT_JPG_FILE_TYPE 后,SDK 会按照在 RecorderVideoFrameCapturedConfig::jpgCaptureIntervalInSec 中设置的时间间隔触发该回调。

参数

参数数据类型描述
channelIdconst char*频道 ID。
userIduser_id_t远端用户 ID。
filenameconst char*保存的 JPG 文件名,格式为 $jpgFileStorePath/channelId_userId_YYYYMMDDHHMMSS_MS.jpg。
表格内容超出当前宽度,可横向滚动查看更多列。