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

Есть ли легкий, бесплатный и надежный способ отображения MJPEG в кросс-браузерной среде? Я пытаюсь отобразить поток MJPEG с Axis 2120 на сайте, который я разрабатываю, и я обнаружил, что это довольно надежно в текущих версиях 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 и перекодировать его на лету, но это решение кажется слишком уродливым. Есть ли какие-нибудь лучшие предложения?


person Nicholas J. Arnold    schedule 11.03.2011    source источник
comment
Довольно простое решение, не требующее дополнительного сервера (например, Node.js): github.com/blueimp/ mjpeg-server Он оборачивается вокруг ffmpeg, а затем все, что требуется, - это открыть (по умолчанию) ваш localhost: 9000 в браузере. Для меня работает как оберег.   -  person astrowalker    schedule 08.06.2020


Ответы (2)


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

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

<img src="#" />

Если вы этого не сделаете, Firefox продолжит скачивать поток MJPEG, даже если этого не должно быть.

person Teddy    schedule 29.04.2011
comment
Спасибо, Тедди. Я также заметил, что Firefox загружает поток, хотя этого не должно быть. Ваш совет работает хорошо. - person Nicholas J. Arnold; 18.07.2011
comment
Я знаю, что это старый ответ, но я спрошу в надежде, что вы все еще здесь. установка src на # останавливает поток mjpeg без жесткого обновления? - person moeiscool; 13.02.2017
comment
@moeiscool это работало еще в 2011 году. Вы можете дважды проверить вкладку сети в веб-инспекторе, чтобы убедиться, что все работает должным образом. - person Teddy; 14.02.2017

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

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

Разветвите его на https://github.com/rodowi/Paparazzo.js.

person defvol    schedule 19.10.2012