在 h.264 中以低延迟从 python 中的 opencv 流式传输 rtsp 视频

Stream rtsp video from opencv in python in h.264 with low latency

总的来说,我对视频流和 opencv 还很陌生。 我想使用 h264 从 raspberry pi 3 通过 rtsp 将我的计算流式传输到另一台设备。 我尝试使用带有 ffmpeg 的 popen 写入管道到带有 vlc 的 ffserver anf 创建 rtsp 服务器以流式传输内容。不幸的是我在流中有很大的滞后,我能做的最好的是减少到 3 秒。

有什么办法可以实现吗?我愿意考虑其他技术。

谢谢

我建议您改为使用 RTMP。延迟可以低至 100 毫秒。

另一件需要考虑的事情是,由于播放器的内部缓冲,VLC 和其他客户端会引入视频延迟。寻找不缓冲视频的选项,您应该能够减少几秒钟的视频延迟。

使用 ffplay 您可以尝试以下操作:

ffplay --fflags nobuffer rtmp://your.server.ip/path/to/stream -loglevel verbose

如果您要传输到 DASH 或 HLS,您还可能会在视频流中引入更多延迟。

RTMP 不是实现低延迟(< 5 秒)的最佳方式。

我建议您使用带有纯 RTP 的 FFMPEG 将视频流式传输到 RTPS 服务器。或者直接使用Gstreamer和Gst-RTSP-server,都是C语言的开放方案。

延迟也会受到您的编码器及其用于处理的硬件的影响。

有更多信息。