Blog
Видеонаблюдение. Теория

Моя история начинается с покупки участка и начала строительства своего собственного уютного газобетонного гнездышка.
И как показало время, у меня абсолютно нет представления о том, что там происходит когда я отсутствую, от чего мое нежное и заботливое сердечко сжимается (и кстати не только сердечко).
Так и появилась необходимость видеть через монитор свои владения, что бы при необходимости знать когда хватать палку и ехать ею махать.
Первое что пришло в голову - это почему бы не поставить веб-камеру и не смотреть кто там шастает, плюс как бонус раздавать инет по wifi и после каждого положенного газобетонного блока писать об в этом в твиттер френдам.

Вступление

Поскольку тема слишком большая, разобью ее на 3 части:

  • Видеонаблюдение. Теория
  • Видеонаблюдение. Настройка старого хлама
  • Видеонаблюдение. Захват видео с веб-камеры

Итак начнем с самого начала, сначала была тьма, потом произошел взрыв, так родилась вселенная... после этой остроумной шутки перейдем к делу.

Входные данные такие:

  1. Участок земли в поле с кабинкой, в которой можно разместить оборудование. К тому же ее могут открыть и вынести все, что пожелает пропитая душа грабителя.
  2. Отсутствие проводного интернета. До ближайшей оптики, по которой текут фоточки девочек на iPhone с пухлыми губками перед зеркалом, ~ 2 км.

Из того, что есть в наличии:

  1. Голова, руки, серое вещество не пораженное алкоголизмом - короче база
  2. Старый компьютерный хлам: какой-то винчестер, материнская плата, проц, память, корпус - не важно что именно, главное рабочее и чтобы было не жалко если украдут
  3. TL-WN722N WiFi - купил когда-то, сейчас лежит без дела
  4. 3G модем Novatel Wireless U720 - тоже валялся без дела

Идея

Я хочу:

  1. Видеть то, что происходит на участке через веб-камеру
  2. Записывать любое движение и сохранять его на домашнем сервере
  3. Раздавать интернет через WiFi

Как это предполагается реализовать:

  1. Для трансляции видео мне нужен сервер со статическим IP адресом и VPN соединением, через которое я смогу брать видео поток с нашей веб-камеры, а на выделенном сервере через nginx прокси - показывать. Для генерации видео потока будем использовать mjpeg сжатие и встроенный в программу Motion mini-http сервер
  2. Для отслеживания движения и записи видео будем также использовать Motion, а для заливания нового видео на домашний сервер - запускать консольный клиент owncloud
  3. Раздавать инет тоже не сложно - настраиваем 3G модем, точку доступа WiFi, и делаем между ними шлюз

Веб-камера

Если честно, то у меня была веб-камера, которую я купил еще когда только усы начинали расти, это было где-то в 2000-х годах.
Называется она Logitech QuickCam Express. После недели плясок с чем только возможно, отказался от этой камеры, поскольку никак не смог ее завести.
Начал искать какую же камеру купить, порыскав по глобальной сети понял что Logitech C270 - это именно то что мне нужно.
Пошел в магазин и купил Sven IC-350.
Какого хрена я ее купил, одному Богу известно. Тем не менее она дешевая, и не жалко если украдут, да и разрешение 640х480 меня вполне устраивало. Все бы ничего, если бы не одно гребаное но... когда направляешь ее на улицу, она упирается в свой порог регулировки яркости, и мы видим белую пелену, а не улицу. Короче это был фейл.
Как говорится: "Не откладывай на завтра, а откладывай на послезавтра, так у тебя будет 2 свободных дня".
Хотя стоп, это не та поговорка: "Скупой платит дважды" - вот эта поговорка.
Пошел я в магазин еще раз и купил...
Хе-хе в этот раз тупость и скупость кончилась, купил Logitech C270.
К камере претензий нет, это стандартная UVC веб-камера, которую ядро Linux начиная с версии 2.6.26 поддерживает.
На этом про камеру пожалуй все. Напоследок мой вам совет - если покупаете дешевую камеру, проверьте ее сразу в магазине как она работает на солнце, так вам не придется бегать в магазин 2 раза.

Железо

В принципе, писать тут нечего, есть только небольшие мелочи.
Мощность процессора влияет на то, какое видео и с какой частотой кадров в секунду вы сможете сжать, капитан сделал свое дело, теперь по сути - на моем процессоре Athlon 1200 МГц, видео с разрешением 1280х720, при сжатии в mpeg4 и битрейте ~ 1 Мбит/с получается максимум 10 кадров в сек, что вполне достаточно.
Второй момент - если у вас сильно старое железо, то там скорее всего будет USB 1.1. На этом интерфейсе Logitech C270 сможет выдать максимум разрешение 176х144. Для веб-камеры нужен интерфейс не ниже USB 2.0.

WiFi и 3G модем

TL-WN722N: все что нужно сказать - на линукс нужно ставить проприетарные драйвера. Но почему-то на Debian Squeeze - она не завелась, а вот на Debian Wheezy, после установки драйверов, заработало сразу и без проблем.
Novatel Wireless U720: как воткнул, так и заработал, с ним на линуксе проблем нет.

Интернет

Садитесь по удобнее, берите попкорн, дальше будет интересно.
Поскольку проводной интернет мне сейчас провести нереально, единственный возможный выход это только мобильный 3G.
В принципе я особо и не выбирал, так как знал что самый дешевый интернет у Интертелекома.
Зашел на профессионально сверстанный сайт Интертелекома, нашел самый дешевый тариф "3G свобода 30", в который входит 1 Гб трафика на скорости 3.1 Мбит/с и не ограниченный трафик на скорости 128 Кбит/с.
1 Гб трафика на скорости 3.1 Мбит/с можно не учитывать сразу, поскольку для видео это не трафик. Нас больше интересует не ограниченный трафик в 128 Кбит/с, поскольку 1 Гб улетит в первые 2-3 дня, дальше нам будет доступна более медленная скорость, а значит всю систему нужно рассчитывать именно на нее.
Помимо этого есть одна особенность, о которой не пишет ни один мобильный оператор, и не говорит приветливо улыбающаяся девочка в сервисном центре. Поскольку видео будет отдаваться в интернет, то скорость отдачи нас интересует в первую очередь. По моим тестам из разных точек нашего прекрасного города, я получил максимум скорость приема 2.5 Мбит/с и отдачи - 0.4 Мбит/с.
Тоесть говоря другими словами - вы получаете 1 Гб на скорости 400 Кбит/с, все остальное на скорости 128 Кбит/с.
Но не все так плохо, как может показаться. Давайте с вами оденем очки, возьмем калькулятор и посчитаем: 128 Кбит/с это 128/8 = 16 Кбайт/с.
Не густо конечно, но в минуту мы сможем передать: 16 * 60 = 960 Кб.
Тоже не густо, но давайте считать дальше, это же так интересно. Сколько мы сможем передать в день: 960 * 60 (минут в часе) * 24 (часок в сутках) = 1382400 Кб или 1,3 Гб.
Давайте отбросим 300 Мб на всякие там потери, получается что за сутки на скорости 128 Кбит/с мы можем передать 1 Гб - а это уже неплохо, от этого и будем плясать.

Есть только одно но, что-то мне подсказывает, что на практике я свою математику могу запихнуть в одно место. Но сейчас ничего говорить не буду, время покажет.

Следующий совет - покупайте модем там где вам удобнее и дешевле, не обязательно его покупать именно у них. Я чуть было не купил, имея старый 3G модем, в который мой номер прошили без проблем и он отлично заработал.

И последнее - мне сказали что нужна антенна, а ее стоимость около 350 грн. Сюда входит переходник, кабель и антенна, насколько я понял. Но во-первых не стоит ее сразу покупать, желательно поехать на место и проверить скорость - возможно она и не нужна, а во-вторых - ее можно сделать самому.
В моем случае на участке скорость приема и отдачи была 400 Кбит/с, поскольку большую скорость отдачи получить у меня нигде не удалось, то и антенна как бы и не нужна, но...
Ради интереса решил посмотреть, реально ли сделать антенну самому, оказалось ее делать не просто, а очень просто. Вот и решил повторить конструкцию и поставить антенну для более уверенного приема и передачи.
Почитать как ее делать можно здесь на форуме либо здесь на сайте.

Вот то, что получилось у меня:

DSC_5780.JPG
DSC_5788.JPG

И самодельный разъём вблизи:

DSC_5782.JPG

На этом пожалуй все, теория закончилась, нужно переходить к практике.
Спасибо за внимание, продолжение скоро.