视频截图

更新时间: 2021/03/28 14:25:48

本地服务端录制 SDK 支持在录制过程中自动截图,以便后续进行视频内容分析、存档等,例如对通话内容进行鉴黄反垃圾等合规操作。本文档为您介绍如何通过接口调用的方式调整视频截图参数,控制视频截图的频率和间隔。

实现方法

视频自动截图功能默认开启,您也可以在初始化时将 initialize 的 snapshot_enable 参数 设置为 false,关闭自动截图功能。

默认情况下,视频录制时会持续自动生成截图,您可以通过 engine->init() 的 snapshot_interval 字段设置截图时间间隔,间隔默认为 5 秒,最小为 1 秒。

  • 截图文件保存位置与录制文件存储路径相同。设置存储路径,请查看录制文件
  • 截图文件命名格式为:原录制文件名+时间戳。
  • 视频截图文件的格式为 jpeg。

示例代码

合流录制模式下,采用自适应布局模式,并设置截图间隔为 60 秒。

nerecord::IRecordEngine *engine = (nerecord::IRecordEngine *)createNERecordEngine();

nerecord::NERecordEngineContext ctx;
ctx.auto_subscribe_audio = true;
ctx.auto_subscribe_video = true;
ctx.audio_enable = true;
ctx.video_enable = true;
ctx.default_stream_type = nerecord::kNERtcRemoteVideoStreamTypeHigh;
ctx.mixed_audio_video = true;
ctx.mixing_enable = true;
ctx.decodeAudio = nerecord::kNERtcAudioFormatAAC;
ctx.decodeVideo = nerecord::kNERtcVideoFormatH264;
ctx.video_record_resolution.vanvasWidth = 640;
ctx.video_record_resolution.vanvasHeight = 480;
ctx.video_record_resolution.bps = 400000;
ctx.video_record_resolution.fps = 15;
ctx.snapshot_interval = 60; /* 截图间隔60秒 */
ctx.audioProfile = nerecord::kNERtcAudioProfileHight;

engine->initialize(ctx);
engine->joinChannel(<token>, <channel_name>, <uid>);
nerecord::VideoMixingLayout layout;
layout.layout = kNERtcLayoutGrid;
layout.backgroundColor = "#ffffff";
engine->setVideoMixingLayout(layout);
engine->startService();
/*录制中*/
engine->stopService();
engine->leaveChannel();
engine->release();
destroyNERecordEngine((void *&)engine);
此文档是否对你有帮助?
有帮助
去反馈
  • 实现方法
  • 示例代码