使用 4k 罗技网络摄像头 WebRTC/getUserMedia

Using a 4k Logitech webcam with WebRTC/getUserMedia

我有一个 4k 罗技 brio 网络摄像头,我可以使用 WebRTC/getUserMedia 从中提取实时视频。遗憾的是只有 HD 1920x1080 ......有什么方法可以在 browser/electron 应用程序中使用相机的 4k 功能?

我正在进行单实例媒体安装,因此跨浏览器支持不是问题。我的目标是任何 webkit electron-builder 将打包的东西。

谢谢!

getUserMedia 可能非常...目前在大多数浏览器中非常特殊,包括 electron。

首先,确保您正确使用约束。要获得 4k,您应该尝试类似的方法:

{
  audio: false,
  video: {
    width: { exact: 3840 },
    height: { exact: 2160 }
  }
}

然后,如果可行,则从那里开始降低限制,让其他 non-UHD 网络摄像头正常工作。确保你 read up on the constraints and what is possible here, and always include the WebRTC adapter.js 即使在最新版本的电子中仍然需要它(主要是为了将错误名称转换为正确的 "standard" )。

很可能您最终会得到类似于这样的约束设置:

{
  audio: false,
  video: {
    width: {
      min: 1280,
      ideal: 3840,
      max: 3840
    },
    height: {
      min: 720,
      ideal: 2160,
      max: 2160
    }
  }
}

这将使浏览器尝试获得 4k 分辨率,但随后会根据需要降至最低 720p。

此外,如果您想检查 browser/camera 是否正确支持 UHD,您可以随时尝试 this website 这将 运行 测试 getUserMedia 在您的系统上支持哪些分辨率.

最后,确保您选择了正确的相机。许多新设备都包含多个 environment-facing 摄像头,如果您没有定义要使用的 deviceId,用户代理会为您挑选,而且他们通常会选择不当(例如,京瓷 phone 除非另有说明,否则我最近默认使用 wide-angle 镜头,并且 wide-angle 镜头不支持任何 "normal" 分辨率,因此它回退到非常低的分辨率和很奇怪的宽高比。