Одновременно работает несколько конвейеров Gstreamer - PullRequest
1 голос
/ 12 февраля 2020

Я новичок в Gstreamer и пытаюсь найти эффективный способ выполнять две потоковые передачи rtsp одновременно. В настоящее время я делаю так, определяя два отдельных конвейера внутри моего Python сценария и запускаю их через cv2.VideoCapture (). Когда я запускаю один конвейер, все работает отлично, однако, когда работают два конвейера, я получаю задержку в несколько секунд, которую я не могу допустить. Я знаю, что должен быть более эффективный способ сделать это, поэтому очень ценю, если кто-то мне помог.

Для ясности, мой код для одного конвейера выглядит примерно так:

gst1 = 'rtspsrc location=rtspt://my.rtsp.link ! queue ! rtph264depay ! h264parse ! nvv4l2decoder enable-max-performance=1 ! nvvidconv ! videoconvert ! video/x-raw, format=BGR ! appsink sync=false'

cap1 = cv2.VideoCapture(gst1, cv2.CAP_GSTREAMER) Затем следует l oop, который читает кадры и т.д. c. У меня есть два из них для потоковой передачи двух IP-камер, и это явно замедляет поток. Моя цель - показать их в одном кадре (картинка в картинке), поэтому я не могу использовать такие конвейеры, которые открывают два отдельных windows. У меня должно быть два конвейера и два объекта захвата для cv2.VideoCapture () и один кадр. Надеюсь, я прояснил это достаточно.

Заранее спасибо за любую помощь!

...