【发布时间】:2018-12-15 17:39:38
【问题描述】:
如何将 gstreamer 的输出重定向到 OpenCV(在 linux 上使用 python),以便进行图像处理?
编辑: 这是我当前的代码:
./receive_video.py | gst-launch-1.0 fdsrc fd=0 ! h264parse ! avdec_h264 ! xvimagesink sync=false
我希望将制作的视频重定向到 openCV。
编辑 2:
我的receive_video.py 代码:
#!/usr/bin/env python3
import socket
import sys
import time
def convert_2_bytes_array(x):
data=x.split(':')
my_bytes = bytearray()
for elem in data:
my_bytes.append(int(elem,16))
return my_bytes
TCP_IP="172.16.10.1"
TCP_PORT=8888
BUFFER_SIZE = 4096
try:
TCP_sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
TCP_sock.settimeout(5.0)
TCP_sock.connect((TCP_IP,TCP_PORT))
magic_word=convert_2_bytes_array("00:01:02:03:04:05:06:07:08:09:28:28")
TCP_sock.send(magic_word)
except:
exit(-1)
t0=time.time()
while(1):
try:
data = TCP_sock.recv(BUFFER_SIZE)
# sys.stdout.write(data) # python 2.7
sys.stdout.buffer.write(data) # python 3
except ValueError:
print(ValueError)
break
if time.time()-t0>1:
t0=time.time()
try:
TCP_sock.send(magic_word)
except:
exit(-1)
TCP_sock.close()
【问题讨论】:
-
已添加。请注意,receive_video.py 从摄像头接收数据并将其输出到 sys.stdout。
-
你知道如何使用 python 和在 linux 上工作吗?
-
完成!它必须每秒发送一次魔法词才能从摄像头获取 tcp 流
标签: linux python-3.x opencv image-processing gstreamer