【问题标题】:Video stream over UDP通过 UDP 的视频流
【发布时间】:2016-07-14 04:10:52
【问题描述】:

我目前正在尝试通过 UDP 将视频从 RPi(运行 Raspbian)流式传输到我的 MBP Retina(优胜美地)。

我有一个通过 TCP 流式传输的工作脚本,但我知道 UDP 是视频流式传输的更好选择,但我不太确定该怎么做。这是我目前所拥有的:

import socket, picamera, time

UDPsock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
file = UDPsock.makefile('wb')

class videostream():
    def __init__(self):
        print "Camera Class Initialised"
    def stream(self):
        with picamera.PiCamera() as camera:
            camera.resolution = (640, 480)
            camera.start_preview()
            time.sleep(2)
            camera.start_recording(file, format='h264')
            camera.wait_recording(60)
            camera.stop_recording()

camera = videostream()
stream = camera.stream()
address = ("10.0.1.29", 8000)
UDPsock.sendto(stream, address)

它给了我这个错误:socket.error: [Errno 89] Destination address required 在线:camera.stop_recording()

我对 Python 中的网络还很陌生,所以请原谅任何愚蠢的错误。

【问题讨论】:

    标签: python sockets udp raspberry-pi


    【解决方案1】:

    我不能立即告诉你修复方法,但我可以发现一大堆错误:

    • 分配给变量“文件”。 (“文件”是 Python 关键字;不好的举动)
    • 在我看来,camera.stream() 什么都不返回...因此“流”将是“无”
    • 我认为 sendto() 不接受文件对象;我只见过它与字符串一起使用,我认为文档支持这一点。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-11
      • 1970-01-01
      • 2019-05-05
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多