UDP 视频流

Video stream over UDP

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

我有一个可以通过 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 中的网络还很陌生,所以请原谅任何愚蠢的错误。

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

  • 赋值给变量"file"。 ("file" 是一个 Python 关键字;BAD MOVE)
  • 在我看来 camera.stream() return 没什么...因此 "stream" 将是 "None"
  • 我认为 sendto() 不接受文件对象;我只见过它与字符串一起使用,我认为文档支持这一点。

祝你好运!