Потоковая передача декодера VLC и MJPEG (недопустимый заголовок)

Я делаю приложение WinRT, которое включает потоковое видео. Теперь я остановился на VLC в качестве сервера потоковой передачи и библиотеки MJPEGDecoder (http://mjpeg.codeplex.com/) на клиент для декодирования видео.

Но после создания HTTP-потока и подключения к нему с клиента MJPEGDecoder говорит, что заголовок недействителен (ожидается составной поток). VLC-to-VLC работает нормально.

Вопрос 1: как это можно исправить?

Вопрос 2: какие альтернативы созданию потокового видео для WinRT?


person Oleh Nechytailo    schedule 17.02.2013    source источник


Ответы (2)


Просто чтобы уточнить ваш вопрос / ответ немного дальше. Опубликованный ответ ссылается только на пример, но не объясняет его, как и сам пример. Поэтому я хотел бы завершить этот ответ на случай, если кто-то еще наткнется на него.

Когда вы определили свой поток vlc, которым вы забыли поделиться в своем вопросе, вы, скорее всего, не указали никаких параметров из параметра доступа http и определили стандартный модуль vlc как таковой. (как и я, когда столкнулся с той же проблемой)

standard{access=http,mux=mpjpeg,dst=< address >:< port >/< path >}

Вы используете VLC для создания потока mjpeg, доставляемого по http. Благодаря ответу osgx в еще один вопрос, вот ссылка на википедию, описывающая MPJEG через HTTP. В основном:

M-JPEG через HTTP информирует клиента с помощью специального mime-типа multipart/x-mixed-replace с параметром boundary=*‹ border >*****, что вы будете отправлять серию изображений JPEG, разделенных границей ‹ >.

Правила, которые применяются к границе ‹ >, указаны в этом post от Gumbo и некоторые другие рекомендации, которые, возможно, теперь устарели из-за более новой, определены в RFC2046.

Типы носителей со смешанной заменой объясняются в статье о MIME в Википедии.

Поскольку приведенный вами пример включает определение mime мультимедийного контента, передаваемого через http, может быть определено как необязательный параметр с определением доступа http.

standard{access=http{mime=multipart/x-mixed-replace;boundary=--myboudary},mux=mpjpeg,dst=< address >:< port >/< path >}
person Pau Coma Ramirez    schedule 27.06.2013

Догадаться. С помощью http://tumblr.martinml.com/post/2108887785/how-to-broadcast-a-mjpeg-stream-from-your-webcam-with

VLC имеет параметры для установки типа mime и границы. Пример конфигурации по ссылке

:sout=#transcode{vcodec=MJPG,vb=400,width=640,height=480}
:duplicate{dst=std{access=http{mime=multipart/x-mixed-replace;
boundary=--7b3cc56e5f51db803f790dad720ed50a},mux=mpjpeg,dst=:1234/webcam.mjpg}}
person Oleh Nechytailo    schedule 17.02.2013
comment
Это помогло заставить камеру VGSion H.264 RTSP работать с ZoneMinder в Ubuntu. Спасибо! - person PJ_Finnegan; 11.06.2014