Невозможно захватить поток при записи из другого потока [OpenCV GStreamer C ]

#c #multithreading #opencv #gstreamer

#c #многопоточность #opencv #gstreamer

Вопрос:

У меня есть программа, которая захватывает видео с USB-камеры, обрабатывает и передает в rtsp udp. Я использую OpenCV с Gstreamer.

Когда я использую основной поток для записи кадров, я могу без проблем захватить его с помощью gst-launch. Однако, когда я создаю другой поток для записи фрейма, с gst-launch ничего не происходит. Я знаю, что другой поток запущен, потому что я могу «imshow» кадры в этом потоке. Кроме того, я уверен, что программа записи открыта, поскольку я проверил ее перед записью.

Конвейер записи: appsrc ! videoconvert ! x264enc ! rtph264pay ! udpsink host=127.0.0.1 port=5015 приемник: gst-launch-1.0 udpsrc port=5015 ! queue ! "application/x-rtp, media=(string)video, encoding-name=(string)H264, framerate=30/1" ! rtph264depay ! decodebin ! videoconvert ! autovideosink

Ответ №1:

Это уже решено и вообще не связано с многопоточностью. Это было в составе конвейера. ключевое слово «port» не было добавлено в ostream.