在没有 canvas/display 的情况下拍摄隐形 WebRTC/video 张照片
Taking invisible WebRTC/video photos without canvas/display
我从 MDN 上读到 Taking still photos 描述了如何从网络摄像头捕捉照片(使用视频元素和 mediaDevices.getUserMedia
)并使用 canvas.
但是我 不需要 需要(并且不想)向用户显示拍摄的图像,因此我也不想使用 canvas 作为我想说,首先绘制 canvas 只是为了获取图像数据(如 ImageData 或 DataUri)可能对性能不利。
那么有没有不用canvas就可以得到图像数据的方法呢?
使用 canvas 完全没问题,性能也很好。只是不要将 canvas 附加到文档,它不会显示。我认为您对性能的担忧是没有根据的。
从流中获取数据的唯一其他方法是 MediaRecorder
,但它会以给定的帧速率生成视频,而不是您想要的,而且涉及更多。
有人在谈论 imageCapture
API, but it's not implemented in any browser yet, except behind a flag。它将提供一种 .takePhoto()
方法,该方法还可以访问可用的全分辨率相机(即手机)。
我从 MDN 上读到 Taking still photos 描述了如何从网络摄像头捕捉照片(使用视频元素和 mediaDevices.getUserMedia
)并使用 canvas.
但是我 不需要 需要(并且不想)向用户显示拍摄的图像,因此我也不想使用 canvas 作为我想说,首先绘制 canvas 只是为了获取图像数据(如 ImageData 或 DataUri)可能对性能不利。
那么有没有不用canvas就可以得到图像数据的方法呢?
使用 canvas 完全没问题,性能也很好。只是不要将 canvas 附加到文档,它不会显示。我认为您对性能的担忧是没有根据的。
从流中获取数据的唯一其他方法是 MediaRecorder
,但它会以给定的帧速率生成视频,而不是您想要的,而且涉及更多。
有人在谈论 imageCapture
API, but it's not implemented in any browser yet, except behind a flag。它将提供一种 .takePhoto()
方法,该方法还可以访问可用的全分辨率相机(即手机)。