如何获取宽高比 1:1 和最大可用分辨率的网络摄像头流
How to get webcam stream with aspect ratio 1:1 and maximum available resolution
基本上问题就在标题里。这是关于 WebRTC 和 getUserMedia 功能。类似的问题在这里:。但就我而言,我需要使用 MediaRecorder 录制流,仅使用 css 裁剪视频元素是不够的。
我对 getUserMedia 约束有点困惑。有 aspectRatio 参数,但我没有管理如何用它实现所需的结果。对我有用的是以这种方式定义约束:
const constraints = {
audio: true,
video: {
width: { exact: 720 },
}
};
但它不会自动定义最大分辨率。您有什么想法可以巧妙地做到这一点吗?
并非所有相机都支持所有纵横比。 1:1
当然是一个奇怪的长宽比。
您要做的就是自己裁剪并制作自己的流。为此,您可以将视频的 srcObject
设置为 getUserMediaStream,然后每一帧(使用 requestAnimationFrame()
)将该视频绘制到 canvas,以您想要的任何裁剪方式。从那里,使用 CanvasCaptureMediaStream
将编辑后的视频作为流返回,您可以在 WebRTC 通话中使用它。
基本上问题就在标题里。这是关于 WebRTC 和 getUserMedia 功能。类似的问题在这里:
const constraints = {
audio: true,
video: {
width: { exact: 720 },
}
};
但它不会自动定义最大分辨率。您有什么想法可以巧妙地做到这一点吗?
并非所有相机都支持所有纵横比。 1:1
当然是一个奇怪的长宽比。
您要做的就是自己裁剪并制作自己的流。为此,您可以将视频的 srcObject
设置为 getUserMediaStream,然后每一帧(使用 requestAnimationFrame()
)将该视频绘制到 canvas,以您想要的任何裁剪方式。从那里,使用 CanvasCaptureMediaStream
将编辑后的视频作为流返回,您可以在 WebRTC 通话中使用它。