У меня есть ПК A и ПК B. ПК A — это Raspberry Pi 3 b+, потоковое видео при открытом прослушивающем порте netcat 8090 с использованием этого кода:
ПК B использует MPlayer для подключения к порту 8090 ПК A и открытия видеопотока, вывод действительно потрясающий с низкой задержкой, команда:
Но дело в том, что:
-> 1. Есть ли какая-либо библиотека Python или код, который может помочь мне поймать потоковое видео и передать его в графический интерфейс? Так что я могу добавить некоторую информацию о моем графическом интерфейсе при отображении видео на заднем плане.
-> 2. Можно ли как-то использовать Mplayer для встраивания вывода в мой графический интерфейс? И тогда я могу редактировать свой графический интерфейс, как я хочу, и видеопоток воспроизводится на заднем плане.
Через день я нашел решение для этого.
Для тех, кто ищет решение, это будут ваши статьи:
ПК B (клиентская сторона, мой ноутбук с DebianOS): вы создаете эти 2 файла:
mkFIFO264.sh
#!/bin/bash
if [ -p fifo264 ]
then
rm fifo264
fi
mkfifo fifo264
nc -l -v -p 3592 > 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('iGenius138 Drone',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
ПК 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> 3592