Добрый день, хабрапользователи.
Я привык с детства смотреть в глазок перед тем, как отрыть дверь в квартиру кому-либо.
Но после переезда так вышло, что в глазок не видно того, кто к тебе в гости просится.
Другими словами надо сделать что-то, что позволит не выходя из квартиры видеть, что же там у лифта происходит.
Примерно вот так:
Сказано — сделано!
Исходные материалы
Исходя из моей жадности, тратить на это дело много денег мне не хотелось, поэтому для начала я посмотрел на то, что у меня было в наличии:
- Компьютер HP (стоит у меня в качестве файлового сервера)
- Старая аналоговая видеокамера JVC
- ТВ-тюнер AverMedia 307
- Метров 5 провода витая пара ( для видеосигнала это не лучший вариант, но все же )
Из этого списка вполне возможно построить видеонаблюдение за коридором.
Одно но: старая видеокамера внушительных размеров (вешать ее в коридоре не очень красиво). Решил поискать замену: посмотрел много камер на просторах интернета, но больше всего приглянулась цветная с возможностью ночной съемки вот эта мини камера стоимостью всего 12$. Решился и заказал камеру в Китае, привезли, проверил, вроде все работает.
Приступим к сбору всего воедино
Установка камеры
Камера продается без чего-либо в комплекте. На камере два выхода «тюльпан» и один выход питания (9V) примерно как разъем старой нокии. Эти разъемы меня не устроили из-за их размеров, срезаем
Боковой вид камеры:
Фронтальный вид камеры:
Перейдем к компьютерной части.
Отображение видео с камеры
В качестве сервера я выбрал Ubuntu Server 11.04 при установки он сам спросил про графическую оболочку, выбрал рабочий стол xfce. После установки создал отдельного пользователя с автоматическим входом в графическую систему и настроил менеджер питания на постоянную работу. Открыл firefox нажал F11 (полноэкранный режим) и закрыл его, затем добавил firefox в автозапуск через настройки сессий. Теперь при запуске компьютера сразу откроется firefox в полноэкранном режиме. Теперь приступим к самому сложному — установке видеорегистратора.
Точно не помню весь набор необходимых пакетов, но основные это video4linux video4linux2 и сам видеосервер zoneminder. При установки zoneminder (sudo apt-get install zoneminder ffmpeg) он автоматом установил apache, mysql, php5 и все необходимые зависимости. Теперь делаем ссылку в настройки apache:
sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder
Затем перезапускаем apache: sudo service apache2 restart
И вуаля, открыв в браузере с сервера localhost/zm увидим панель настройки zoneminder-a.
Обратите внимание в центре на верху надпись running ( у меня сразу запустился, но бывают случаи когда сразу не запускается, если щелкнуть на эту надпись можно запустить демон zoneminder).
Забегая вперед сразу скажу, что для отображения видео в разрешении больше чем 320х240 надо увеличить память ядра, прописав следующие две строки в /etc/sysctl.conf:
kernel.shmall = 134217728
kernel.shmmax = 134217728
А чтобы сработало сразу (без перезагрузки) надо:
echo 134217728 >/proc/sys/kernel/shmall
echo 134217728 >/proc/sys/kernel/shmmax
Про более детальную настройку zoneminder можно найти нужную информацию на официальном сайте zoneminder.org.
Я напишу в двух словах:
Добавляем новый монитор, выбираем
Source Type -> local ( локальное устройство)
Function -> monitor ( простой просмотр, при выборе modect будет осуществляться запись по движению)
Вкладка Source:
Device Path /dev/video1 ( Чтобы узнать путь нужно sudo apt-get install v4l2-utils а после v4l2_ctl --all)
Capture Method -> Я выбрал Video For Linux Version 2
Device Channel 1 ( Я использую композитный вход в ТВ-тюнере)
Capture Pallette YUYV
Width и Height по вашему желанию, но для выбранной камеры нормальной работы я добился при разрешении 500х340.
Buffers -> Image Buffer Size 200 (буфер кадров)
Pre Event Image Count 50 (кол-во кадров перед событием для записи)
Post Event Image Count 50 (кол-во кадров после события для записи)
Остальные настройки можно не менять, но интуитивно понятно какие настройки на что влияют.
Далее настройки самого Zoneminder, на главной странице справа сверху ссылка settings. Я во вкладке images выбрал STREAM_METHOD mjpeg вместо jpeg, как мне показалось так работает чуть быстрее. Остальные настройки на свой вкус и цвет.
Теперь на главной странице появилась запись новой камеры, нажав на ее название (Monitor1) увидим отображение видео с камеры:
Видео отображается в браузере, сам браузер работает в полноэкранном режиме, нажав Ctrl-Tab можно перемещаться по вкладкам браузера, поэтому вместе с видео я открыл страничку с прогнозом погоды (и настроил браузер на открытие вкладок с прошлого сеанса) и теперь, выходя из дома не только смотрю есть ли кто в коридоре, но еще и погоду на сегодня, а то вдруг дождь, а я как всегда зонт забуду.
Отображение погоды:
И еще один бонус. Взяв устройство на Android (впрочем любое устройство с программой, которая сможет показать потоковое IP видео) и установив туда TinyCamMonitor, прописав в настройки камеры в поле имя хоста примерно следующее x.x.x.x/cgi-bin/nph-zms?mode=single&monitor=1&scale=150&connkey=722426&rand=1308306882
где x.x.x.x — IP адрес сервера, а сам путь можно взять посмотрев в браузере исходный код страницы с отображением видео и найти там id=«liveStream» src=«x.x.x.x/cgi-bin/nph-zms?mode=single&monitor=1&scale=150&connkey=932856&rand=1308899602» alt=«Monitor-1» width=«750» height=«510». Src это и есть тот самый путь. Указать номер порта (по умолчанию 80) и можно увидеть камеру на экране телефона или планшета или еще какого устройства.
Спасибо за внимание, надеюсь Вам было интересно читать эту статью.