通过 TCP 查看 h264 流
Viewing h264 stream over TCP
我有一个用于无人机的基于 wifi 的小型 FPV 相机。我已经设法达到可以使用 python.
下载和保存 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 'open network stream',但其中 none 似乎有效。
我使用
成功输出到 mplayer
data = sock.recv(BUFFER_SIZE)
sys.stdout.buffer.write(data)
然后让 mplayer 通过管道输入
python cam.py - | mplayer -fps 20 -nosound -vc ffh264 -noidx -mc 0 -
方法很简单,是的:发送H.264 NALU流(你在每个nal单元前加上0,0,0,1前缀就可以了)。
如果你想要更酷的东西,那么你可以将打包添加到 RTP 并通过多播发送。编码起来会很简单,也很容易阅读。
我有一个用于无人机的基于 wifi 的小型 FPV 相机。我已经设法达到可以使用 python.
下载和保存 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 'open network stream',但其中 none 似乎有效。
我使用
成功输出到 mplayerdata = sock.recv(BUFFER_SIZE)
sys.stdout.buffer.write(data)
然后让 mplayer 通过管道输入
python cam.py - | mplayer -fps 20 -nosound -vc ffh264 -noidx -mc 0 -
方法很简单,是的:发送H.264 NALU流(你在每个nal单元前加上0,0,0,1前缀就可以了)。
如果你想要更酷的东西,那么你可以将打包添加到 RTP 并通过多播发送。编码起来会很简单,也很容易阅读。