UDP上的视频流

时间:2015-05-09 22:18:20

标签: python sockets udp raspberry-pi

我目前正在尝试通过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中的网络相当陌生,所以请原谅任何愚蠢的错误。

1 个答案:

答案 0 :(得分:0)

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

  • 分配给变量“file”。 (“file”是Python关键字; BAD MOVE)
  • 它在我看来像camera.stream()什么都不返回...因此“stream”将是“None”
  • 我认为sendto()不接受文件对象;我只看到它与字符串一起使用,我认为文档支持这一点。
祝你好运!