我正在尝试让 VLC 实时显示我的网络摄像头:
vlc -I dummy v4l2:///dev/video0
大部分情况下都能解决问题,只是在执行某个动作(比如我转过头)和在视频窗口中看到该动作之间会有将近一秒钟的延迟。有什么方法可以减少延迟,或者我可以使用其他软件(Gentoo Linux)吗?
答案1
这很可能只是网络摄像头的一个限制。与早期的手机摄像头一样(新款手机摄像头的问题可能较少),网络摄像头通常具有较低的帧速率,并且光传感器速度较慢,处理捕获的视频帧也需要更长的时间。这导致实时视频和显示视频之间存在延迟。摄像头和 PC 之间有 USB 连接也会增加延迟。
您可以尝试做的(除了升级到更好的网络摄像头)是改善照明条件。数码相机在低光照条件下往往需要更长的时间来捕捉图像,因为它需要更长的时间来捕捉产生良好图像所需的光量(有点像降低模拟相机的快门速度)。使用 FireWire 相机也可以稍微加快速度。
答案2
答案3
奇怪的是,我试图解决同样的问题,并取得了一点成功。我使用的是 HP HD 3110。他们在百思买以大约 20 美元的价格出售。无论如何,我尝试将它与 VLC 和第三方软件一起使用,结果出现了大约 300 毫秒的延迟,对于我所做的事情来说,这几乎是不可接受的。
亮度有帮助,将曝光度设置为非常低似乎也有帮助,但它可能只是提高了帧速率,而这不一定等同于减少延迟。最终,最佳性能来自使用网络摄像头附带的软件。
延迟时间在 100 毫秒或更低的范围内,低于人类通常不费吹灰之力就能检测到的时间。我对此没有很好的解释。可能是 VLC 和我使用的其他软件缓冲了一点图像,或者设备附带的软件可能正在访问网络摄像头的隐藏选项。
主要问题是您的系统,但据我所知,您可能能够让它工作。其次,相机附带的软件可能无法轻松整合到其他程序中。
答案4
如果这个问题仍然与某人有关,则All
在设置下启用时可以看到一个设置 - 请参阅/Stream output/Sout stream/Display
。Delay (ms)
此值默认为 100(毫秒),在重新广播/流式传输/转码视频时应考虑该值以及缓冲区值。
我相信Display
,如果您只是想要显示视频,而不是流式传输视频,则此值适用。