Видеонаблюдение в Ubuntu Server

Продолжаю цикл статей про сервер на убунте. Какой умный дом без видеонаблюдения за каждым углом? Тем более, что это так просто сделать и это тратит так мало ресурсов процессора.

В этом действительно нет ничего сложного, сделаем всё с помощью mjpeg-streamer. Я пробовал также вариант с ffmpeg/ffserver, в новых версиях убунты они стали называться avconv. Однако, я столкнулся со следующей проблемой — видео накапливается в буфере, и выходит наружу со скоростью полтора-два раза меньше. То есть, спустя пару минут работы такого видеосервера появляется задержка примерно в минуту. Что будет спустя час, я не проверял — снёс и установил mjpeg-streamer :)Удивительно, но правка конфигов, переход на сверх-убогое качество видео, изменение значений fps ничего не дали.

Скачиваем сборку mjpg-streamer. С ней были проблемы, вот отремонтированная версия.

Устанавливаем: sudo apt-get install libjpeg62 && sudo dpkg —install mjpeg-streamer_fixed.deb

Запускаем: sudo mjpg_streamer -i «input_uvc.so -d /dev/video0″ -o «output_http.so -p 8091″

Просмотр видео по адресу «ip сервера»91/?action=stream, встраивать в html можно так: <img src=»http://192.168.1.1091/?action=stream»/>

Ссылки: 1, 2.

Русский язык в MySQL 5.5

MySQL 5.5.32 неверно работает с русским языком. Решение простое:

Редактируем файл  /etc/mysql/conf.d/utf8_charset.cnf — добавляем следующие строки:

[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake

Перезагружаем сервер MySQL, заходим в его консоль:

sudo service mysql restart
mysql -u USER -pPWD

Проверяем изменения:

mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | utf8                             |
| character_set_server     | utf8                             |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.01 sec)

Конечно, придётся создать новую таблицу.

Источник

Моя домашняя сеть

У меня дома три компьютера x86, несколько arm-based компьютеров и переменное количество мобильных устройств.

Вся сеть держится на Wi-Fi роутере ASUS RT-N16, перешитом на DD-WRT. Не могу сказать, что доволен им. Сетевые разъёмы были выбраны явно самые дешёвые — после нескольких десятков подключений они окисляются и портятся. Методы вроде протирки контактов ацетоном дают лишь временное появление контакта. Можно попробовать подобраться к контактам стирательной резинкой, но это тоже довольно тяжело сделать в узком пространстве. Скорее всего, поможет дремель с полировальным кругом — но есть опасность сдвинуть контакты со своих мест.

Ещё к нему периодически не могут подключиться некоторые устройства по wi-fi, но это скорее проблема устройств.

Сейчас роутер установлен внутрь HTPC, с жёстко закреплёнными сетевыми проводами. Всё работает, но надежды нет. Наверное, придётся перепаивать ethernet-разъёмы, или сделать выносную патч-панель.

Основной компьютер в сети, несколько месяцев работавший веб-сервером — Core-i3. Второй компьютер — HTPC, на котором почти постоянно работает оболочка xbmc; а когда не работает xbmc — работает скринсейвер с фотографиями.

Третий x86 компьютер — сервер на Atom, которому посвящено большинство постов в блоге. Без корпуса, поэтому находится в укромном месте, чтобы не быть на виду.

Около выходной двери висит китайский планшет c Ethernet-гнездом, на нём отображается веб-страница с новостями, пробками и погодой. Скоро он будет отображать страницу управления умным домом. Планшет называется Flytouch 3. За давностию лет у него слетела прошивка, была найдена такая (версия для устройства с питанием от 9 вольт), одна полезная тема, другая полезная тема. Дисплей 1024*600 пикселей. Плата версии sv8811_v4p1, процессор — imapx210. Ему нужно 9 вольт, поэтому он питается от 12 вольт через преобразователь.

Для нужд видеонаблюдения я применяю TL-MR3020, перешитый на OpenWRT. К нему подключена видеокамера Logitech C270, питание к роутеру сделано самодельной PoE (передача питания по незадействованным линиям Ethernet), так что к нему подходит только ethernet-провод. Если его питать от блока питания, то можно передавать сигнал по Wi-Fi, и обеспечить полную автономность.

Для уменьшения количества блоков питания и увеличения их КПД все устройства, которые могут питаться от 12 вольт или меньше — питаются от общей линии 12 вольт, напрямую или через преобразователь. Эта линия будет проложена проводом КВВГ-нг на 4 жилы: 2 на питание, 2 — шина CAN для умного дома. В дальнейшем питание будет переведено на 19 вольт от блока питания ноутбука, и установлен аккумулятор в качестве ИБП.

load average и что с ним делать

Сервер раздаёт несколько торрентов с помощью transmission, также на сервере настроена Samba. Включаем просмотр видео из samba-папки с помощью xbmc на другом компьютере.

Параллельно с этим, начинаем раздавать на третьем компьютере торренты из этой samba-папки (суммарная скорость раздачи всех торрентов на всех компах — 3 МБ/с). Сразу же воспроизведение видео прекращается. Проблема!

Сломался список пакетов apt (решено)

При попытке удаления пакета вылезло сообщение «Списки пакетов или файл состояния не могут быть открыты или прочитаны.».

**Проблема:** любое действие с apt (install, remove, update) вызывает появление сообщения:

user@server:/$ sudo apt-get update
Чтение списков пакетов… Ошибка!
E: Ошибка чтения - read (5: Input/output error)
E: Problem opening /var/lib/apt/lists/ru.archive.ubuntu.com_ubuntu_dists_raring-updates_main_binary-amd64_Packages
E: Списки пакетов или файл состояния не могут быть открыты или прочитаны.

Решение: удаляем все загруженные пакеты и обновляем базу пакетов:

sudo rm /var/lib/apt/lists/* -f
sudo apt-get update