Подтвердить что ты не робот

Кросс-браузерное решение для отображения потока MJPEG

Есть ли легкий, бесплатный и надежный способ отображения MJPEG в среде с несколькими браузерами? Я пытаюсь отобразить поток MJPEG из Axis 2120 IP-камера на сайте, который я разрабатываю, и я обнаружил, что это довольно надежное в текущих версиях Firefox. Однако после некоторого тестирования я обнаружил, что IE, Opera и Chrome имеют разные проблемы с этим (без доступа к Mac, поэтому я не уверен в Safari). Internet Explorer не поддерживает MJPEG и не работает вообще. Opera занимает буквально 10-15 секунд, чтобы отобразить что-либо после отправки начального GET. Chrome работает отлично до тех пор, пока <div>, содержащий тег <img>, не будет скрыт, а затем снова отобразится.

Для справки, я использую тег <img> для отображения потока следующим образом:

<img src="http://my.ip.addr/axis-cgi/mjpg/video.cgi/?resolution=352x240" alt="real-time video feed" />

Я рассмотрел использование сервера повторного вещания для сбора потока MJPEG и перекодировки его на лету, но это решение кажется слишком уродливым. Есть ли лучшие предложения там?

4b9b3361

Ответ 1

Вот решение на основе Java-апплета, которое вы можете использовать для любого браузера (или просто тех, которые не поддерживают MJPEG): http://www.charliemouse.com/code/cambozola/

Что касается других ошибок с MJPEG, я обнаружил, что вы должны установить атрибут 'src' тега 'img' на что-то помимо MJPEG, прежде чем пытаться удалить тег 'img'. Пример:

<img src="#" />

Если вы этого не сделаете, Firefox продолжит загружать поток MJPEG, хотя он не должен.

Ответ 2

Я только что вышел с решением пару месяцев назад. Он кросс-платформенный и не нуждается в сторонних плагинах, таких как Flash или Java.

В принципе, это a node.js proxy, который анализирует границы m-jpeg и доставляет изображения в определенный интервал.

Введите https://github.com/rodowi/Paparazzo.js