视频截图
更新时间: 2024/09/18 16:26:13
音视频通话过程中,用户可以通过视频截图功能截取实时视频流画面,以便后续的存档分析、事件备忘、证据留存等等,例如在教育场景中,学生对课件或板书内容进行截图,截图作为笔记保存;娱乐场景中,可以通过截图对直播画面进行内容安全审核。
NERTC SDK 支持针对实时视频流进行截图,包括本地主流画面、本地辅流画面、远端主流和辅流画面。
注意事项
- 视频截图功能只截取实时视频流数据,截图中不包含画布水印信息,但会包含视频水印信息。
- 截图相关接口调用时机如下,如果在其他时机调用截图相关接口,会报错
ERR_INVALID_OPERATION
,表示当前不支持该操作。- 在 V4.4.0 及之前版本中,如果需要对本地视频流截图,需要在
Client.join
并Client.publish
发布流成功之后调用takeSnapShot
。 - 远端视频流截图,需要在
Client.subscribe
订阅远端视频流之后调用。
- 在 V4.4.0 及之前版本中,如果需要对本地视频流截图,需要在
- 若您调用
takeSnapShot
接口进行视频截图,返回的是图片的存储路径。在 V4.6.10 及之后版本中,您可以调用takeSnapshotBase64
接口,支持返回 Base64 格式的截图数据。
示例项目
网易云信在 GitHub 上提供视频截图的开源示例项目 ScreenShot,您可以前往下载体验,也可以在线体验此功能。
实现方法
-
调用
takeSnapshot
接口,实现视频流截图,返回图片的存储路径。截图时,可以通过 name 参数指定截图文件的保存名称。默认格式为 uid-1。
截图后,您可以在浏览器的默认下载路径中查看截图文件。 -
调用
takeSnapshotBase64
接口,实现视频流截图转 Base64,返回 Base64 字符串。
示例代码
js//截取本端或远端的视频图片,返回图片的存储路径
stream = localStream || remoteStream
let config = {
name: xxx //截取的图片名称,保存目录是浏览器默认下载路径
}
await stream.takeSnapshot(config)
//截取本端或远端的视频图片,返回 Base64 字符串
stream = localStream || remoteStream
let base64Url = await stream.takeSnapshotBase64({mediaType: 'video'})
此文档是否对你有帮助?