11

我正在构建基于 Raspberry Pi 的四轴飞行器。我想通过蜂窝连接从网络摄像头将视频流式传输到我的计算机。我尝试了 ffmpeg 和 mjpg,但它必须有很大的延迟才能仅通过观看视频来控制 Quad。

我的问题是是否可以以非常小的延迟(小到我可以毫无问题地驱动四核)流式传输视频?

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

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

4

3 回答 3

8

我有一个 RasPi 模型 B 并使用 mjpg-streamer。在 12fps 640 x 480 下运行时延迟几乎不明显。安装和配置大约需要 10 分钟。除了 mjpg-streamer 我还尝试过 Motion 和 FFMpeg,但两者都非常滞后。

有一个很好的 Raspberry网络摄像头教程,您可能会觉得有帮助。

于 2013-06-14T05:27:20.237 回答
0

在这个 git repo中使用 stream.py 。我们在那里有三个功能。

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

stop函数停止流式传输。

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

于 2019-04-16T04:40:44.773 回答
0

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

import picamera
import  pyshine as ps #  pip3 install pyshine==0.0.9
HTML="""
<html>
<head>
<title>PyShine Live Streaming</title>
</head>

<body>
<center><h1> PyShine Live Streaming using OpenCV </h1></center>
<center><img src="stream.mjpg" width='640' height='480' autoplay playsinline></center>
</body>
</html>
"""
def main():
    StreamProps = ps.StreamProps
    StreamProps.set_Page(StreamProps,HTML)
    address = ('192.168.1.1',9000) # Enter your IP address 
    StreamProps.set_Mode(StreamProps,'picamera')    
    with picamera.PiCamera(resolution='640x480', framerate=30) as camera:
        output = ps.StreamOut()
        StreamProps.set_Output(StreamProps,output)
        camera.rotation = 90
        camera.start_recording(output, format='mjpeg')
        try:
            server = ps.Streamer(address, StreamProps)
            print('Server started at','http://'+address[0]+':'+str(address[1]))
            server.serve_forever()
        finally:
            camera.stop_recording()
   
        
if __name__=='__main__':
    main()

可以在本教程中找到更多详细信息

于 2021-04-16T05:01:10.197 回答