在没有画布/显示器的情况下拍摄不可见的WebRTC/视频照片

我从MDN阅读了Taking still photos,介绍了如何从网络摄像头捕获照片(使用视频元素和mediaDevices.getUserMedia),以便使用画布将它们显示给用户。

但是,我不需要(也不想)向用户显示拍摄的图像,因此我也不想使用画布,因为我要说的是,首先绘制画布仅仅是为了获取图像数据(如ImageData或DataURI)可能会影响性能。

有没有办法不用画布就能获取图像数据?


解决方案

使用画布完全可以,并且性能良好。只要不将画布附加到文档,它就不会显示。我认为你对业绩的担忧是没有根据的。

从流中获取数据的唯一其他方法是MediaRecorder,但它以给定的帧速率生成视频,而不是您想要的,而且涉及的内容要多得多。

有关于imageCaptureAPI的讨论,但它还没有在任何浏览器中实现,除了behind a flag。它将提供一种.takePhoto()方法,该方法还将允许访问可用的全分辨率相机(即手机)。

相关文章