2016-09-25 106 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并通过多播发送它。编码简单,易于阅读。