Gstreamer вход в opencv - PullRequest
       10

Gstreamer вход в opencv

0 голосов
/ 27 сентября 2018

Из этой ссылки Я думаю, что я могу быть рядом, но я не получаю никаких ошибок, кроме ошибок, не связанных с типом, когда я использую поток.

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'

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Чтобы получить сообщения журнала от gstreamer, установите GST_DEBUG перед запуском скрипта Python.Например:

GST_DEBUG=4 ./script.py
0 голосов
/ 28 сентября 2018

Вы имеете в виду appsink вместо opencvsink?

cap = cv2.VideoCapture("tcpclientsrc host=192.168.1.111 port=5000  ! gdpdepay !  rtph264depay ! avdec_h264 ! videoconvert ! appsink")
...