【问题标题】:Best way to achieve robust low latency video streaming to a browser using a Raspberry Pi Zero使用 Raspberry Pi Zero 将强大的低延迟视频流传输到浏览器的最佳方法
【发布时间】:2022-10-14 05:08:44
【问题描述】:

我想以尽可能低的延迟(<1s)将从连接到我的 Raspberry Pi Zero 的摄像头捕获的实时视频流传输到某个浏览器。我的最终目标是将 Pi Zero 和相机连接到无人机并通过 LTE 流式传输视频。

但是,我有点迷失在这里存在的不同解决方案(MJPEG、RTMP、RTSP、WebRTC)的丛林中。

到目前为止,我在this guide 之后尝试了一个简单的 mjpeg 流媒体:

import cv2
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='320' height='240' autoplay playsinline></center>
</body>
</html>
"""
def main():
    StreamProps = ps.StreamProps
    StreamProps.set_Page(StreamProps,HTML)
    address = ('127.0.0.1',9000) # Enter your IP address
    try:
        StreamProps.set_Mode(StreamProps,'cv2')
        capture = cv2.VideoCapture(0)
        if capture.isOpened():
            capture.set(cv2.CAP_PROP_BUFFERSIZE,2)
            capture.set(cv2.CAP_PROP_FRAME_WIDTH,240)
            capture.set(cv2.CAP_PROP_FRAME_HEIGHT,320)
            capture.set(cv2.CAP_PROP_FPS,8)
            StreamProps.set_Capture(StreamProps,capture)
            StreamProps.set_Quality(StreamProps,40)
            server = ps.Streamer(address,StreamProps)
            print('Server started at','http://'+address[0]+':'+str(address[1]))
            server.serve_forever()

    except KeyboardInterrupt:
        capture.release()
        server.socket.close()

if __name__=='__main__':
    main()

虽然这个简单解决方案的延迟足够低,但对于我的用例来说,它还远远不够健壮。每当连接中断时,流就会停止,直到浏览器被刷新。由于互联网速度较慢,流在一段时间后往往会有很大的延迟(15 秒或更长)。

我应该为我的用例使用什么样的解决方案?

谢谢你的帮助!

【问题讨论】:

    标签: video raspberry-pi video-streaming streaming


    【解决方案1】:

    WebRTC 专为您的用例而设计,是您应该使用的。

    整个堆栈旨在降低延迟,以牺牲质量为代价,自动改变比特率,在需要时丢帧等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 2014-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      相关资源
      最近更新 更多