2013-02-22 4 views
2

У меня есть потоковый видеопоток с несколькими листами, для которого мне нужно приложение OPENCV (Emgu) 2.4.x для захвата и обработки («клиент»).Захват многоадресного видеопотока UDP с использованием OpenCV

На клиенте, я могу захватить поток с помощью VLC (УДП: //xx.yy.zz.aaa: 1234, Тем не менее, мое приложение не удается захватить этот поток UdP Мой код довольно прост (

.
Capture cap = new Capture ("udp://@212.1.1.1:1234"); 

пс я не пытался с и 2/о в @ также попытался РТП по этому адресу не повезло: -./

ли OpenCV непосредственно позволяют «захват» потоков UDP или мне нужно запустить VLC на? клиент для повторного потока видео как rtp или http или какой-либо другой ....?

Спасибо.

ответ

2

я, наконец, понял это и обмен в надежде, что может помочь другим,

Capture cap = new Capture ("udp://@212.1.1.1:1234"); 

не забудьте символ @!

захват успешно создан в потоке UDP, однако доступ к свойствам захвата вызывает его исключение и вызывает ошибку.

Длинная история Короче говоря, UDP поток не появляется течь свойства устройства, так что вы, возможно, потребуется, чтобы получить, что в другом месте или код его в.

С другой вещью отметить, что с момента FPS (кадров в секунду) ненадежна, если не ошибочно, вам может потребоваться настроить FPS, особенно если вы проводите опрос потока в цикле.

НТН

+0

просто любопытных, так как я не получил ни малейшего представления о emgu, это на победу или Linux? – berak

+0

Emgu - это .net-оболочка для OpenCV (я запускал ее на windows. Однако я слышал, что Emgu отлично работает в Linux с Mono. – Mikos

+0

Что отличает ваш вопрос, где он не работал на ваш ответ, где он работал? кода нет? – Gulzar

0
IplImage* frame; 
CvCapture* pCapture; 
pCapture = cvCaptureFromFile("udp://ip:port/path"); 
frame = cvQueryFrame(pCapture); 

Это также сделает работу в случае, если у вас нет видеоввода библиотеки

Смежные вопросы