2016-09-25 8 views
1

У меня есть маленькая камера FPV на базе wifi для беспилотного летательного аппарата. Мне удалось довести его до такой степени, что я могу загрузить и сохранить файл h264 с помощью python.Просмотр потока h264 по TCP

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

Я успешно выводится MPLAYER с помощью

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

, а затем с MPlayer трубы вход

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

0

Это простой способ, да: отправить H.264 Nalu поток (вы ставите префикс 0,0,0,1 перед каждым отдельным модулем, и это нормально).

Если вам нужно что-то более прохладное, вы можете добавить упаковку в RTP и отправить ее через многоадресную рассылку. Это будет довольно просто кодировать и легко читать.