Как разобрать HTTP-поток MJPEG в C ++?

Мне нужно получить доступ и прочитать http-поток, который отправляет живые кадры MJPEG с сетевой камеры, чтобы выполнить некоторую обработку изображений opencv на изображении.

Я могу получить доступ к видеозаписи с камеры через VLC или просто перейдя по URL-адресу в chrome или firefox. Но как я могу программно получить доступ к http-серверу и разделить каждый фрейм, когда сервер просто отправляет непрерывный поток?

Кажется, что данные просто отформатированы, циклически переходя между HTTP-заголовком и данными JPEG. Единственный способ, которым я могу придумать это, - это каким-то образом отправить запрос на сервер, проанализировать данные по мере их поступления и отделить заголовок от фактических данных jpeg и, в свою очередь, передать его в opencv.

Однако , это звучит ужасно запутанно, и я не совсем уверен, с чего бы начать. Вы, ребята, знаете, есть ли какие-нибудь библиотеки или просто более простой подход, который я упускаю, что может упростить все это?

Большое спасибо

5
задан jonas 26 January 2011 в 06:36
поделиться