Из этой ссылки Я думаю, что я могу быть рядом, но я не получаю никаких ошибок, кроме ошибок, не связанных с типом, когда я использую поток.
cap = cv2.VideoCapture("tcpclientsrc host=192.168.1.111 port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! opencvsink sync=false")
Я пытаюсьнайдите ошибку в приведенной выше строке.Кто-нибудь выполнил это, и помоги мне помочь.
У меня есть raspberry pi, который публикует видеопоток с помощью gstreamer, и я могу успешно транслировать его на компьютер Ubuntu с gstreamer в терминале.
Отправитель:
raspivid -t 999999 -h 720 -w 1080 -fps 25 -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=192.168.1.111 port=5000
Reciever
gst-launch-1.0 -v tcpclientsrc host=192.168.1.111 port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false
Python-скрипт, который я пытаюсь заставить работать
import cv2
cap = cv2.VideoCapture('tcpclientsrc host=192.168.1.111 port=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! '
'videoconvert ! appsink')
while True:
r, frame = cap.read()
try:
cv2.imshow('yes', frame)
except cv2.error as e:
print(e)
Выдает ошибку OpenCV(3.4.3) /io/opencv/modules/highgui/src/window.cpp:356: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'