Захват и воспроизведение MJPEG — Поток сетевого видео по UDP с OpenCV и ffmpeg

Я пытаюсь получить и показать UDP Live Mjpeg — сетевой видеопоток с сетевой камеры.
Я могу воспроизвести видео поток, запустив VLC с аргументом --demux=mjpeg а затем печатать udp://@:1234 в поле сетевого потока. Или с gstreamer по строке консоли: gst-launch -v udpsrc port=1234 ! jpegdec ! autovideosink, Моя камера имеет IP-адрес 192.168.1.2 и он отправляет поток на адрес 192.168.1.1:1234,

Я попытался захватить поток с OpenCV с:

cv::VideoCapture cap;
cap.open("udp://@192.168.1.1:1234");

Я пробовал также:

cap.open("udp://@:1234")

cap.open("udp://@localhost:1234")

cap.open("udp://192.168.1.1:1234")

cap.open("udp://192.168.1.1:1234/")

Но функция зависает, пока я не нажму ctrl+C, У меня та же проблема, когда я использую ffmpeg с: ffmpeg -i udp://@192.168.1.1:1234 -vcodec mjpeg

Что я сделал не так? Когда я установил ffmpeg, я не смог установить зависимость libsdl1.2-dev, Это проблема?

Если да, есть ли способ прочитать кадры udp из сокета, а затем декодировать изображения JPEG и отобразить их с помощью OpenCV?

У меня ОС Ubuntu linaro oneiric 11.10 с ядром 3.0.35 от Freescale

1

Решение

Спасибо, в любом случае. я исправил эту проблему, установив более новую версию ffmpeg и используя C-Api ffmpeg

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]