Задача:
С минимальными затратами организовать видео наблюдение в удаленной комнате.
Требования:
1. Все происходящее должно записываться с возможностью просмотреть в дальнейшем.
2. Голос должен записываться.
3. Возможность просмотра с мобильных устройств ipad, Iphone или Android.
4. Инфракрасная подсветка для ночной съемки.
5. Датчик движения для сокращения объема записываемого видео.
6. Poe — питание по сети, для того что бы не тащить розетку 220 на потолок.
Решение:
Проанализировав рынок сетевых видео камер, было принято решение остановиться на модели Hikvision DS-2CD2412F-I стоимостью 5000 рублей. За эти деньги это самый приемлемый вариант, удовлетворяющий всем выше перечисленным требованиям.
Проблемы реализации задачи:
1. В коробке камера идет с английской прошивкой версии 4 — Необходимо обновится на русскую прошивку пятой версии.
2. Четвертая версия прошивки так же не поддерживает возможность записи видео в папки общего доступа Windows — Необходимо обновиться до пятой версии.
3. Третья и самая глобальная проблема это периодическое отключение хранилища, в основном после перезагрузки камеры. В результате чего статус диска из «Норм.» меняется на «Неинициализированные» или по английски «Uninitialized». Проблема состоит в том что в при форматировании диска, система вычисляет свободное пространство на диске и в процессе форматирования создает некоторое количество папок «datadirs» и записывает в файл «info.bin» максимальный размер одной папки и общее количество папок «datadirs», если эти показатели перемножить то получится свободное место на диске. Ошибка скрыта в процессе инициализации диска после перезагрузки. Система пытается проверить диск, но вместо того что бы сравнивать общий размер папок со свободным местом на диске она сравнивает их с общим размером диск, в результате чего получается сбой.
Умельцы с иностранного форма предлагают следующий вариант решения проблемы:
1. Активируем на камере режим telnet
2. Заходим при помощи putty на камеру.
3. Командой mount смотрим как смонтирована сетевая папка
# mount rootfs on / type rootfs (rw) /dev/root on / type ext2 (rw,relatime) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,relatime) ramfs on /home type ramfs (rw,relatime) udev on /dev type tmpfs (rw,relatime) devpts on /dev/pts type devpts (rw,relatime,mode=600) /dev/ubi1_0 on /dav type ubifs (rw,relatime) /dev/ubi3_0 on /davinci type ubifs (rw,relatime) /dev/ubi4_0 on /config type ubifs (rw,relatime) //192.168.0.50/hdr on /mnt/nfs00 type cifs (rw,mand,relatime,unc=\192.168.0.50\hdr,username=hdr,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.0.50,file_mode=0755,dir_mode=0755,nobrl,rsize=4096,wsize=4096,actimeo=1) |
В моем случае это /mnt/nfs00
4. копируем файл на компьютер davinci.tar.gz
cp /dav/davinci.tar.gz /mnt/nfs00 |
5. На компьютере, при помощи 7zip распаковываем файл davinci
5. Открываем его в HEX редакторе (я использовал бесплатный HexEdit)
6. В зависимости от версии прошивки ищем строку:
Версия 5.02 :
5001D4C09DE52C00001A07005CE12A00001A |
меняем на:
5001D4C09DE50000000007005CE100000000 |
Версия 5.1.2 :
5001DCC09DE54900001A0B005CE14700001A |
меняем на:
5001DCC09DE5000000000B005CE100000000 |
Сохраняем.
7. Запаковываем файл davinci в davinci.tar.gz
8. В telnet обратно копируем файл на устройство:
cp /mnt/nfs00/davinci.tar.gz /dav/ |
9. Перезагружаем устройство и наслаждаемся его работой.