我有一个 IP 摄像机,我可以通过链接在 VLC 中查看它
rtsp://admin:[email protected]:554/mpeg4/ch0/main/av_stream
但我注意到与在 NVR 中查看摄像机时相比,VLC 中的视频有明显的延迟。 VLC 的延迟为 4-6 秒,而 NVR 的延迟不到 1 秒,几乎察觉不到。
我需要知道为什么会这样,这样我就可以计划在我要制作的程序中使用哪些方法/库。它有助于了解原因,以便探索可能的解决方案。
这是 vlc 固有的问题还是 rtsp 的限制?
有什么办法可以减少这种延迟吗?
首先确保您的相机在获取多个流时没有问题。停用 NVR 上的摄像头并检查是否有更好的延迟。
VLC 默认使用 TCP 上的 rtsp/rtp,因此强制 vlc 使用 UDP 上的 rtsp/rtp,只需 google 一下 vlc 参数即可。 并验证您是否有更好的延迟。 正如 BijayRegmi 所写,请注意默认缓冲。
您也可以尝试 ffmpeg 库中的 ffplay 并用它打开 rtsp 流。在那里你有更多关于流的健康状况的信息,比如包丢失等。这也给你提供了第二个选项来验证你的流/延迟,然后你应该知道哪个部分产生了延迟。
VLC,至少 Ubuntu 版本,有一个缓存选项,默认设置为 1000ms,如果有延迟,可以将此值减小到 100ms 并检查视频质量。