Сегодня мы поговорим о самой больной теме в сообществе умного дома и любителей HomeBridge — добавление камеры.

Сразу обозначим основные особенности добавления камеры в HomeBridge:
— не все камеры можно добавить в HomeBridge
— многие камеры необходимо будет отдельно «ломать» — об этом мы не будем говорить
— после выполнения инструкций камера будет достаточно гладко отображать видео-поток и будет доступен звук! ?
— при установке датчика движения в одной комнате с камерой будет отправляться фотография при обнаружении движения

Из первоначальных требований, как обычно:
— Raspberry Pi 3 model B (или выше) — инструкция
— настроенный HomeBridge — инструкция

Также обращу внимание, что все последующие шаги производились на «свежей» на данный момент сборке Raspbian Stretch.

Установка Git

С большой долей вероятности вы уже использовали Git ранее при установке других плагинов — но если это не так, то для начала устанавливаем Git. Всего лишь одна команда.

sudo apt-get install git

Установка AAC и FFMPEG

Далее нам необходимо установить AAC (библиотека, отвечающая за звук в нашей камере), FFMPEG (соответственно то, что и будет принимать поток от нашей камеры, транскодировать его и отправлять дальше в HomeKit) и библиотеки, которые необходимы для сборки всего этого. Сразу предупрежу, что установка и настройка FFMPEG занимает приблизительно 40-60 минут. Поэтому не пугайтесь длительности происходящих процессов.

Устанавливаем инструменты для сборки

sudo apt-get install pkg-config autoconf automake libtool libx264-dev

Устанавливаем AAC

git clone https://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
./autogen.sh
./configure --prefix=/usr/local --enable-shared --enable-static
make -j4
sudo make install
sudo ldconfig
cd ..

Устанавливаем FFMPEG

git clone https://github.com/FFmpeg/FFmpeg.git
cd FFmpeg
./configure --prefix=/usr/local --arch=armel --target-os=linux --enable-omx-rpi --enable-nonfree --enable-gpl --enable-libfdk-aac --enable-mmal --enable-libx264 --enable-decoder=h264 --enable-network --enable-protocol=tcp --enable-demuxer=rtsp
make -j4
sudo make install

После этого наш FFMPEG готов и мы можем идти дальше.

Установка плагина camera-ffmpeg

Теперь мы готовы перейти к установке плагина и его настройке.

Вводим команду

sudo npm install -g homebridge-camera-ffmpeg

После чего в зависимости от камеры необходимо выбрать тот набор настроек, который должен:
1. по возможности как можно лучше совпадать с реальным потоком камеры
2. подходить под вашу камеру — список рекомендуемых настроек под разные камеры можно найти здесь

Ниже я приведу пример настройки для камеры Yi Ants 720p и опишу возможные параметры.

        {
            "platform": "Camera-ffmpeg",
            "cameras": [
                {
                    "name": "Camera",
                    "videoConfig": {
                        "source": "-re -i rtsp://192.168.31.121:554/ch0_0.h264",
                        "maxStreams": 2,
                        "maxWidth": 1280,
                        "maxHeight": 720,
                        "maxFPS": 30,
                        "vcodec": "h264_omx",
                        "packetSize": 188,
                        "audio": true
                    }
                }
            ]
        }

Как вы понимаете плагин должен быть добавлен еще одним объектом в массив platforms.

  • source — сама ссылка на иточник видео с параметрами (дополнительно к параметрам -re -i можно дополнительно пробовать параметр -vcodec h264_mmal для аппаратного декодирования или -rtsp_transport tcp если при кодировании в h264 видео прерывается
  • maxStreams — максимальное количество потоков для камеры, по-умолчанию 2
  • maxWidth — максимальная ширина, по-умолчанию 1280
  • maxHeight — максимальная высота, по-умолчанию 720
  • maxFPS — максимальный FPS, по-умолчанию 10
  • maxBitrate — максимальный битрейт в к-битах, по-умолчанию 300
  • vcodec — используется для указания кодека, для улучшения производительности советуем использовать h264_omx, по-умолчанию «libx264»
  • audio — если true, то появляется возможность слышать звук с камеры и контролировать громкость, по-умолчанию false
  • packetSize — если звук и аудио прерываются, то попробуйте уменьшить значение, допустим поставить 188, по-умолчанию 1316
  • debug — отображает информацию для дебага в лог HomeBridge (достаточно полезная функция при настройке), по-умолчанию false

После чего сохраняем наш config и перезагружаем HomeBridge. Это мы уже с вами, я надеюсь, умеем 🙂

После чего необходимо перейти в приложение Дом, нажать на кнопку добавления аксессуаров, пройти внизу по ссылке «Нет кода или не можете сканировать?» и выбрать появившееся устройство со значком камеры (имя зависит от параметра name в конфиге)

После чего ваша камера появится в Доме.

 

Author

Наш главный гайд-мастер. Инструкции и обзоры его конёк. Иногда перебарщивает с личным мнением.