我有 PC A 和 PC B。PC A 是 Raspberry Pi 3 b+,使用以下代码在打开 netcat 监听端口 8090 的同时流式传输视频:
PC B 使用 MPlayer 连接到 PC A 端口 8090 并打开视频流,输出非常好且低延迟,命令:
但问题是:
-> 1,是否有任何 Python 库或代码可以帮助我捕获流视频并将其传输到 GUI 中?所以我可以在我的 GUI 上添加一些信息,同时在背景上显示视频。
-> 2,是否可以使用 Mplayer 作为 GUI 中的嵌入输出?然后我可以根据需要编辑 GUI,并且视频流会在后台播放。
一天后,我找到了解决方案。
对于任何寻找解决方案的人,这将是您的文章:
mkFIFO264.sh
#!/bin/bash
if [ -p fifo264 ]
then
rm fifo264
fi
mkfifo fifo264
nc -l -v -p <port> > fifo264
getStreamData.py
import numpy as np
import cv2
cap = cv2.VideoCapture('fifo264')
while(cap.isOpened()):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('< DroneName >',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
PC A(Raspberry Pi 3 流服务器):您使用以下代码创建一个 .sh 文件:
#!/bin/bash
raspivid -t 0 -w <video_width> -h <video_height> -hf -ih -fps 60 -o - | nc <PC-B_IP> <port>