将 4k Logitech 网络摄像头与 WebRTC/getUserMedia 结合使用

mor*_*obs 5 webcam webrtc getusermedia electron

我有一个 4k Logitech brio 网络摄像头,我可以使用 WebRTC/getUserMedia 从中提取实时视频。可悲的是,只有高清 1920x1080 ……有没有办法在浏览器/电子应用程序中使用相机的 4k 功能?

我正在处理单实例媒体安装,因此跨浏览器支持不是问题。我的目标是任何 webkit 电子构建器将打包。

谢谢!

Kla*_*mon 4

getUserMedia 目前在大多数浏览器(包括电子浏览器)中可能非常...奇特。

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

{
  audio: false,
  video: {
    width: { exact: 3840 },
    height: { exact: 2160 }
  }
}
Run Code Online (Sandbox Code Playgroud)

如果可行,请从那里开始减少限制,让其他非超高清网络摄像头也能正常工作。确保您阅读了这里的约束和可能的内容,并且始终包含WebRTC adapter.js,即使在最新版本的 Electron 中仍然需要它(主要用于将错误名称转换为正确的“标准”名称)。

您很可能最终会得到与此类似的约束设置:

{
  audio: false,
  video: {
    width: {
      min: 1280,
      ideal: 3840,
      max: 3840
    },
    height: {
      min: 720,
      ideal: 2160,
      max: 2160
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这将使浏览器尝试获得 4k 分辨率,但如果需要,则会降低到最低 720p。

另外,如果您想检查您的浏览器/相机是否正确支持 UHD,您可以随时尝试此网站,该网站将运行测试以获取 getUserMedia 在您的系统上支持哪些分辨率。

最后,确保您选择正确的相机。许多新设备都包含多个面向环境的摄像头,如果您没有定义deviceId要使用的摄像头,则用户代理会为您选择,但他们通常选择得很差(例如,我最近使用的京瓷手机使用了广泛的摄像头)除非另有说明,否则默认情况下使用广角镜头,并且广角镜头不支持任何“正常”分辨率,使其回退到非常低的分辨率和非常奇怪的长宽比。