2015-05-09 105 views
0

我目前正試圖通過UDP將視頻從RPi(運行Raspbian)流式傳輸到我的MBP Retina(Yosemite)。UDP上的視頻流

我有一個工作腳本來通過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) 

它給我這個錯誤:​​就行了:camera.stop_recording()

我對Python的網絡相當陌生,所以原諒任何愚蠢的錯誤。

回答

0

我不能馬上告訴你的修復,但我可以當場錯誤一大堆:

  • 分配給變量「文件」。 (「文件」是一個Python關鍵字;壞的移動)
  • 它看起來像我camera.stream()返回什麼......因此「流」將是「無」
  • 我不認爲sendto()接受一個文件對象;我只見過它用於字符串,我認爲文檔支持這一點。

祝你好運!