2016-09-25 108 views
1

我有一個小型無線基於FPV相機的無人機。我設法讓它可以下載並使用python保存h264文件。通過TCP查看h264流

TCP_IP = '193.168.0.1' 
TCP_PORT = 6200 
BUFFER_SIZE = 2056 

f = open('stream.h264', 'wb') 
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
sock.connect((TCP_IP,TCP_PORT)) 
while True: 
    data = sock.recv(BUFFER_SIZE) 
    f.write(data) 
    print("Writing") 
sock.close() 
f.close() 

我一直試圖做一段時間,現在是播放流。我發現了這個流,我可以下載並保存它,但現在我想要現場打開它。 我試過使用VLC的'開放網絡流'與各種選項,但他們都沒有似乎工作。

回答

0

我成功地輸出使用

data = sock.recv(BUFFER_SIZE) sys.stdout.buffer.write(data)

到MPlayer和然後具有mplayer的管輸入

python cam.py - | mplayer -fps 20 -nosound -vc ffh264 -noidx -mc 0 -

0

它是一個簡單的方法,是:發送H.264 NALU流(你在每個nal單元前放置了0,0,0,1前綴,並且沒問題)。

如果你想要更酷的東西,那麼你可以添加打包到RTP並通過多播發送它。編碼簡單,易於閱讀。