Самое бюджетное видеонаблюдение на даче
Привет, хабр!
Хочу поделиться моим опытом в организации очень бюджетного видеонаблюдения на даче c 3G с возможностью просмотра онлайн и сохранению архива.
Так как с видеонаблюдением я ранее никогда не сталкивался, то решил начать с простого — купить лишь одну 2M камеру и далее протестировать и посмотреть что из это выйдет.
Почитал отзывов в инете, мой выбор пал вот на Этот экземпляр китайского производства. Устройство вещает по rtsp 1920×1080 с сжатием h264 основной поток и 540×340 второй поток.
Покупая устройство я предположил, что программу для записи видео с камеры я найду без проблем хоть под винду, хоть под линукс. В жизни все оказалось намного сложнее.
В моем распоряжении имелся комп с Intel Pentium D (2 core), 1 GB RAM, встроенная видюха, 250 ГБ хард. На момент получения камеры, жила на этом стареньком PC windows XP x86.
Так же есть свисток МТС (на даче ловит 3G), есть хостинг с VDS сервером.
Понятно, что с таким багажом о качественном видеонаблюдении говорить не приходится, но с чего-то надо же начинать.
Итак, я приступил к домашним тестам.
Первое, что пришло в голову — это надо попробовать всеми известный сервис ivideon
Быстро регистрируемся, ставим софтинку, раз-два-три все готово, удобно и просто.
Жаль что подобный сервис накладывает значительные ограничения на бесплатное использования, впринципе жить можно, но не удобно. Самая печаль это огромный объем передаваемых данных по исходящему аплинку, для 3Г многовато, нужен хороший инет, а его нет и не будет.
ZoneMinder
Когда то давно, ставили на работе данный софт, впечатление очень хорошее, много настроек работает хорошо.
К сожалению, до установки данного софта дело не дошло, так как, со слов людей, знакомых с ситуацией, сервис очень требовательный к ресурсам и на моем старом компе просто мог не взлететь, да и переустанавливать винду не хотелось. Оставил на крайний случай, если ничего не найду подходящего.
Axxon next
Судя по всему суровая софтина для суровых компаний. В бесплатной версии до 4-х камер и более никаких ограничений. В тестовом режиме весь функционал со всеми камерами, по пишет только с 8–00 до 20–00 (или что такое).
Честно говоря, юзабилити программы очень неудобное, но да фиг с ним, привыкнем. Столкнулся с проблемами: Пишет видео в один архив в своем формате — видео не достать просто так, не работает по рдп (необходим opengl >1.4). Последняя 4-ая версия не работает в вин ХП, 3-ая работает, но, блин только с консоли, по рдп не пройдет.
Xeoma
Софтина установилась на старое железо, заработало.
Вцелом софтина не особо удобная, но привыкнуть можно, дело времени.
Из «конструктора» можно собрать разные схемы, логику, добавить какие то обработчики, действия при появлении какого либо события. Но все это теряет смысл в бесплатной версии, где доступтно лишь 3 модуля. Один из них камера, один запись в архив. Можно прикрутить детектор движения, но к сожалению это не мой случай — железо не вытянет, просмотра онлайн не будет (об этом позже — решено выдавать статичную картинку по запросу, а не гнать весь трафик в инет)
FFMPEG
Самая последняя рабочая версия ffmpeg для Windows xp тут
Вообще очень приятно, когда процесс полностью контролируется, но нужно много всего писать самому. Переподключение, ротация, проверка на зависание и тд.
Писать самому не особо хотелось
А вот команда, для захвата потока и записи в файл может кому пригодитсяD:\ffmpeg\ffmpeg -i rtsp://192.168.1.10:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp?real_stream -reset_timestamps 1 -vcodec copy -acodec copy -y -f segment -segment_time 60 -segment_format mp4 "d:\Xeoma\video\vid-%%05d.mp4"
Грусть тоска с софтом господа. Грусть…
Но давайте вернемся к схеме включения всего это безобразия и разберемся что впринципе мы хотим и что можем сделать?
Имеем: 3 г свисток. По факту, все операторы сотовой связи уже давно не предоставляют динамические ИП на свистки, а выдают серые адреса и натят. Попасть через инет на комп с 3G можно только через впн.
Но мы же хотим сделать все дешевле. Какой тариф выбрать? Какого оператора выбрать (Ловит 3Г на моей даче у всех операторов — свезло)? Платить по 600р/мес за свисток нет желания. Посмотрел тарифы всех операторов — примерно у всех одно и тоже.
Решение было простым. Оказывается, у моего МТС-а есть опция «Поделись инетом» или как то так. Смысл в том, что платишь 100р в мес и делишься своим инетом на тарифе с другим номером. Вот по этому пути я и пошел.
Настроить впн сервер на дебиане очень просто
В биосе компа ставим автовключение при возвращении питания, настриваем МТС-соединение через стандартные средства (как dial-up модем со звонком на *99#) и настраиваем поднятие впн после поднятия МТС-соединения. ГОТОВО!
Связь есть, ВПН держит. можно работать.
Для администрирования сервера достаточно подключиться через ссш тюнель сервера к порту 3389 (рдп) и нет никакой необходимости выставлять 3389 от винхп наружу с пробросом портов через хостинг.
Так как было решено, что выгружать весь архив мы не будем, то остается вопрос — как организовать онлайн просмотр.
Я сделал вот так:
На компе с виндной поставил запись основного потока непрерывно, а дополнительный граблю раз в 30 секунд. Делается это для того, чтобы быстро найти интересующий примерный участок времени, а потом медленно и неспешно тянуть видео файлы по 3Г. На сервер установил апач, php натравил его на директорию с видео фото и включил опцию индексации содержимого директории.
На хостинге приемнике (Куда мы соединяемся по впн) настраиваем форвардинг портовProxyPreserveHost On
#ProxyRequests Off
ProxyPass / http://192.168.1.30/
ProxyPassReverse / http://192.168.1.30/
Где 192.168.1.30 это адрес, который мы получили по pptpd
Для отображения файлов с потока я выбрал такую концепцию:
Онлайн будем хватать один кадр с доп потока в качестве ниже 2МП
Для просмотра картинки в высокой четкости настроим ротацию файлов основного потока раз в минуту (потом так же будет проще качать файлы) и будем выполнять захват кадра с последнего завершенного видео. Таким образом максимальный лаг HD картинки будет составлять 2 минуты, что, вцелом, нормально.
Для получения снапшота с видео файла используем такой код на phpshell_exec ("D:\scripts\convert.cmd $file");
Ну и сам процесс получения снапшотаD:\ffmpeg\ffmpeg -y -loglevel 0 -i %1 -ss 00:00:1.1 -r 1 -vframes 1 D:\Xeoma\last.jpeg
Итого по затратам:
Камера 2500
Инет 100р/мес
Потребление компом электричества 24/7 = 100Вт*24×30 *4р/квч=288р/мес
Старый комп (был в наличии) = 3000р
VDS Хостинг с возможностью приема впн (был) = 2400 год
Наверно не бывает дешевле:)
Надеюсь, данная статья будет кому-либо полезна