Пока из Китая едут заказанные железки (ардуины, датчики, релюшки и пр.) и нормальная камера, а небольшой тестовый набор NooLite обещают привезти только сегодня-завтра, я решил подготовить видеонаблюдение.
Имеющаяся в закромах ip-камера не завелась, но не беда: всяких смартфонов на Android разной степени убитости - куча!

Есть замечательная программа IP Webcam:
https://play.google.com/store/apps/deta ... pas.webcam, настраиваем, запускаем - камера телефона теперь доступна, например, по адресу
http://192.168.83.166:8080
Просто транслировать с камеры - это не интересно, надо писать по движению. В этом нам поможет Zoneminder, установка его на Ubuntu из пакетов стандартна (sudo apt-get install zoneminder), но после надо кое-чего поправить:
1. usermod -a -G video www-data или chmod 777 /dev/video0
2. если будут ошибки в логах:
http://swip-admin.blogspot.ru/2013/04/zoneminder.html
3. добавить в /etc/init.d/zoneminder "sleep 15" после "zmfix -a"
4. добавить в конфиге апача /etc/apache2/sites-enabled/000-default строчки из /etc/zm/apache.conf
Дальше самая большая проблема - заставить видео показываться на мобильных устройствах. Засада тут в том, что по умолчанию Zoneminder транслирует в mjpeg, что мобильные браузеры как правило не понимают, и mpeg через swf (flash то из android выпилил довольно давно).
Не буду много растекаться по тексту, просто шаги (для Ubuntu 12.0.4 32bit):
1. sudo apt-get install ffmpeg x264
2. в настройках ZM:
Images -> OPT_FFMPEG галка, PATH_FFMPEG -> /usr/bin/ffmpeg
В "Широкий канал", "средний" и "узкий" -> WEB_H_CAN_STREAM no, WEB_H_STREAM_METHOD -> mpeg
3. Добавляем нашу камеру:
Тип источника -> удалённый
Функция -> modect
Источник
Remote Protocol -> HTTP
Remote Method -> Simple
Имя удаленного хоста -> 192.168.83.166
удаленный порт -> 8080
Путь на удаленном хосте -> /videofeed
разрешение - смотря что настроили на телефоне
теперь если открыть новый монитор, он должен показать картинку с камеры телефона, если показывает, тогда идём дальше.
Надо поставить на Android телефон с которого будем смотреть Flash, выбираем самую свежую версию отсюда:
http://helpx.adobe.com/flash-player/kb/ ... sions.html
В MJD создаём HTML-код в нужном месте:
Код: Выделить всё
<p align="left">
<object id="liveStream" width="640" height="480" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" type="application/x-shockwave-flash">
<param name="movie" value="/cgi-bin/nph-zms?mode=mpeg&monitor=2&scale=100&bitrate=150000&maxfps=15&format=swf&connkey=256986&rand=1385619903">
<param name="quality" value="high">
<param name="bgcolor" value="#ffffff">
<embed type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" src="/cgi-bin/nph-zms?mode=mpeg&monitor=2&scale=100&bitrate=150000&maxfps=15&format=swf&connkey=256986&rand=1385619903" name="SonyErricsonLT" width="640" height="480" quality="high" bgcolor="#ffffff" <="" embed="">
</object>
<br><br><a href="/zm/index.php?view=watch&mid=2">Открыть</a><br><br>
</p>
Должно показывать!

Несколько сумбурно, но идея думаю понятна.
Чуть позже опишу как передавать алармы из ZM в MJD.