Video streaming Raspberry Pi无延迟(<;10ms)视频流

Video streaming Raspberry Pi无延迟(<;10ms)视频流,video-streaming,real-time,live,raspberry-pi,Video Streaming,Real Time,Live,Raspberry Pi,我正在建造基于树莓皮的四架直升机。我想通过手机连接将视频从网络摄像头传输到我的电脑。我尝试了ffmpeg和mjpg,但它有很大的延迟,使其能够控制四只观看视频 我的问题是,是否有可能以很小的延迟来传输视频(如此之小,以至于我可以毫无问题地驾驶quad) 如果Raspberry的硬件不够好,BeagleBord可能会这么做?此外,将智能手机安装到quad将是最后一个可能的解决方案,但我更喜欢使用Pi的解决方案 更新:我已经使用gstreamer的流媒体和覆盆子Pi相机。事实证明,它的延迟非常小。1

我正在建造基于树莓皮的四架直升机。我想通过手机连接将视频从网络摄像头传输到我的电脑。我尝试了ffmpeg和mjpg,但它有很大的延迟,使其能够控制四只观看视频

我的问题是,是否有可能以很小的延迟来传输视频(如此之小,以至于我可以毫无问题地驾驶quad)

如果Raspberry的硬件不够好,BeagleBord可能会这么做?此外,将智能手机安装到quad将是最后一个可能的解决方案,但我更喜欢使用Pi的解决方案


更新:我已经使用gstreamer的流媒体和覆盆子Pi相机。事实证明,它的延迟非常小。10毫秒在某种程度上是不可能的,但我设法将延迟减少到20毫秒。

我有一个RasPi型号B,并使用mjpg拖缆。以12 fps 640 x 480的速度运行时,几乎看不到延迟。安装和配置大约需要10分钟。除了mjpg streamer,我还尝试了Motion和FFMpeg,但两者都非常滞后

有一种对覆盆子有益的方法,您可能会发现它很有用。

在中使用stream.py。 我们有三个功能

run
功能使用默认端口8001开始流式传输。您可以通过传递一个整数来更改默认端口

stop
功能停止流式处理


最后,您可以通过调用
status
函数来检查状态。

为了降低延迟,我建议在wifi临时模式下使用Raspberry pi。之后,使用以下代码享受低延迟直播:

导入picamera
将pyshine导入为ps#pip3安装pyshine==0.0.9
HTML=”“”
PyShine直播
使用OpenCV的PyShine实时流媒体
"""
def main():
StreamProps=ps.StreamProps
StreamProps.set_页面(StreamProps,HTML)
地址=('192.168.1.1',9000)#输入您的IP地址
StreamProps.set_模式(StreamProps,'picamera')
使用picamera.picamera(分辨率为640x480',帧速率为30)作为相机:
输出=ps.StreamOut()
StreamProps.set_输出(StreamProps,输出)
摄像机旋转角度=90
照相机.开始录制(输出,格式='mjpeg')
尝试:
服务器=ps.Streamer(地址,StreamProps)
打印('http://'+地址[0]+':'+str(地址[1])上启动的服务器)
服务器。永远为您服务()
最后:
照相机。停止录制()
如果“名称”=“\uuuuuuuu主要”:
main()

更多细节可以在这里找到

我会检查一下,看你是否可以通过手机网络到桌面,而不用担心raspi。你可能会发现,手机网络的延迟并不足以满足你的需求。AR无人机正在通过WiFI进行传输。一个手机连接不能更快,但肯定会更慢-可能比你想要的延迟更多。我这样做了,流真的很慢。我将使用普通FPV,并使自己的OSC(屏幕显示)使用PiI真的怀疑,甚至20毫秒是可能的。可能您使用的计时器显示的是1/100秒,而不是1/1000秒,这可能会让您难以计算延迟(中国小工具评论经常会遇到这种情况)。所以它是100-200ms。你应该试试GStreamer(它可用于Pi),它真的更快!我完全同意@Val。现在我使用GStreamer,因为它使用更少的CPU。只有当网络摄像头支持Mjpeg时,Mjpeg拖缆才是好的。如果你有YUV摄像机,它将不得不在CPU上解码和编码视频,这将导致超频PIV上超过90%的负载。它的答案对今天有效吗?或者你可以建议一些更现代的框架?我相信链接不再指向预期的页面。它指向的是网站的主页而不是文章。