在 Linux 中使用网络摄像头和 VLC 进行高分辨率流式传输时图像质量差且 CPU 使用率高

在 Linux 中使用网络摄像头和 VLC 进行高分辨率流式传输时图像质量差且 CPU 使用率高

我正在尝试使用网络摄像头进行一些流式传输,但到目前为止结果并不好:以 320x240 流式传输的所有内容看起来都很好,但只要我选择更高的分辨率,图像质量就会变得很差,并且 CPU 使用率也会急剧上升。

我使用的是 Logitech C525 摄像头,据称是高清的,原始分辨率为 1280x720)。

如果 1280x720 是原始分辨率,我想知道为什么质量这么差?

我正在使用 VLC 进行流式传输,并使用以下 vlm 配置文件:

new camNumber2 broadcast enabled
setup camNumber2 input v4l2:///dev/video2:width:320:heigth:240
setup camNumber2 output #transcode{vcodec=mpeg4,acodec=none,vb=1000}:standard{access=http,mux=ogg,dst=0.0.0.0:8080}
control camNumber2 play

就像我说的,一旦我将分辨率提高,质量就会下降,变得一团糟。

我怀疑我的视频输入设置可能有问题,VLC 只是尝试将图像放大到我要求的分辨率,而不是以要求的分辨率抓取图像。

答案1

我有一些观察和建议。我认为你的命令没有什么问题,但让我们尝试找到解决方案。

  1. 看起来你正在使用 mpeg4,我建议你看一下支持的 VLC 编解码器列表。我建议您尝试 h265 或 mp4v。仔细检查后,我实际上没有在该列表中看到 mpeg4,所以这可能是您的问题。
  2. 你使用的是什么 CPU?你的系统可能不够强大,无法传输 1280x720。你没有提到你使用的是什么电脑,我只是想确保你没有在 Raspberry Pi 或任何东西上尝试这个。
  3. 尝试使用 GUI 使其工作。我认识到 GUI 可能不是最终的解决方案,但如果我们可以让它在那里工作,那么我们就知道这是可能的,并且可以继续使用 CLI 参数。
  4. 尝试使用其他操作系统和计算机。您能让它在 Windows 和 Linux 上运行吗?哪个更好?同样,这将有助于消除一些有关问题所在变量。
  5. 不太可能,但您的 USB 总线可能已饱和,也许端口只有 USB 1,或者您在同一总线上有一个外部 HDD,占用了所有带宽。

尝试上述一些选项,如果您发现哪些解决方案对您有用,请发布。如果仍然无效,请发布您的发现。

相关内容