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

Jer*_*obs 6 linux vlc-media-player webcam streaming v4l2

我正在尝试使用网络摄像头进行一些流式传输,但到目前为止,结果并不好:我以 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
Run Code Online (Sandbox Code Playgroud)

就像我说的,一旦我把分辨率提高到更高,质量就会下降到一团糟。

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

tbe*_*nz9 0

我有一些观察和建议。我认为您的命令不一定有任何问题,但让我们尝试找到解决方案。

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

如果您发现哪些解决方案适合您,请尝试上面的一些选项。如果仍然不起作用,请发布您发现的内容。