Бюджетное видеонаблюдение из веб камеры и роутера

Опубликовано Октябрь 4, 2014 в разделе Технологии умного дома | Комментарии

с270 logitech

Сегодняшнюю статью я хочу посвятить такой важной теме, как видеонаблюдение. Так, как бюджет ограничен, и на хорошую IP камеру средств не предусмотренно, я решил сделать бюджетное видеонаблюдение из доступных компонентов. Для этой цели я использовал роутер TP-link mr3020 с прошивкой Opwrt и, лежавшую без дела, веб камеру Logitech c270.

Logitech c270 поддерживает UVC (USB Video Class — USB Device Class Definition for Video Devices), поэтому прекрасно работает в linux системах. Камера снабжена микрофоном и позволяет не только видеть, но и слышать.

Установку на TP-link mr3020 прошивки Opwrt мы рассматривали в прошлой статье, поэтому сразу перейдем к настройке видеонаблюдения. И для начала заходим Telnet-ом на роутер mr3020 и установим необходимые для работы пакеты:

root@Opwrt:~# opkg update
root@Opwrt:~# opkg install kmod-video-uvc

Вместе с kmod-video-uvc установятся остальные необходимые пакеты с модулями ядра linux: kmod-i2c-core, kmod-video-core, kmod-input-core, kmod-video-videobuf2. Так как mr3020 имеет только один usb выход (Где уже подключена флешка!), то для подключения камеры потребуется USB hub, с помощью которого мы получим дополнительные usb разъемы. Подключим хаб к роутеру, а уже в него вставим флешку и веб камеру. Снова подключившись Телнетом к роутеру, введем команду:

root@Opwrt:~# dmesg

В открывшемся списке находим такие строчки, чтобы убедится в удачной установке пакетов:

Linux video capture interface: v2.00
uvcvideo: Found UVC 1.00 device  (046d:0817)
input: UVC Camera (046d:0817) as 
/devices/platform/ehci-platform/usb1/1-1/1-1:1.0/input/input0
usbcore: registered new interface driver uvcvideo
USB Video Class driver (1.1.1)

Проверим подключилась ли камера:

root@Opwrt:~# ls /dev/video*

На экране должно отобразится /dev/video0 При этом на самой камере должен загореться светодиод. Для видео трансляции воспользуемся пакетом MJPEG-Streamer.

root@Opwrt:~# opkg install mjpg-streamer

Вместе с этим пакетом libjpeg libpthread установятся автоматически. Далее необходимо настроить конфигурационный файл.

root@Opwrt:~# vi /etc/config/mjpg-streamer

Например так:

option enabled     1
option device      /dev/video0
option resolution  320x240
option fps         10 
option www         /www/webcam
option port        8080
option YUV         " "

Device - идентификатор устройства, resolution - разрешение, port - http порт, fps - частота кадров (FPS), YUV - флаг YUV кодирования. В дальнейшем можно поэкспериментировать с настройками для наилучшего изображения.

Запустим mjpg-streamer:

root@Opwrt:~# vi /etc/init.d/mjpg-streamer start

Теперь, набрав в браузере http://ip-роутера:8080, увидим изображение с web камеры. Аналогично посмотреть можно и при помощи VLC медиа проигрывателя, открыв в нём URL: http://ip-роутера:8080/?action=stream. Статическая картинка доступна по адресу http://ip-роутера:8080/?action=snapshot.

Если на роутере настроен веб сервер, то можно встроить это видео в html страницу используя тег img: img src="http://ip-роутера:8080?action=stream". А если ваш провайдер предоставляет внешний Ip то можно настроить трансляцию таким образом, чтобы подключатся к камере по сети. А если роутер подключить к внешнему источнику питания, то камера и вовсе становится мобильной.

По некоторым причинам трансляция видео может не запустится, например, если камера не поддерживает аппаратное кодирование MJPEG. Или изображение просто может тормозить. В этом случае попробуйте разные значения в конфигурационном файле. О том, как настроить передачу звука с веб камеры, читайте в моей следующей статье.


Оставить комментарий: