#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.