Посещая продуктовые магазины я иногда встречаю телевизоры которые транслируют «сетку» видео с камер видеонаблюдения что бы сотрудники могли «присматривать» за посетителями, а посетители наглядно убеждались в том, что на данной торговой точке идет видеонаблюдение.
Такую «сетку» зачастую можно получить подключив монитор или телевизор к видеорегистратору (DVR). Или подключившись к WEB-интерфейсу регистратора. Но предположим у нас несколько видеорегистраторов с которых нам нужно показывать не все камеры и в определенной композиции. Или расположение видеорегистратора не позволяет подключить экран который расположен в другой комнате. Возможно регистраторы подключены к экранам в комнате охраны, а их необходимо дублировать в другие комнаты или даже в другие города. Это я к тому, что стандартные возможности очень ограничены.
Загоревшись идеей найти решение которое: а) позволит выбирать видеоканалы из регистратора или из нескольких и отображать из на одном экране. б) позволит размещать видео на экране в нужной композиции в) устройство должно быть негабаритным и легким, что бы было удобно размещать. г) не дорогим.
Были рассмотрены профессиональные решения из сферы цифровой рекламы на подобии BrightSign.
Варианты удлинителей видеосигнала по витой паре с подключением к тому же видеорегистратору или компьютеру с открытым web-интерфейсом.
И даже использование функций Smart TV на телевизорах с различными комбинациями приложений для воспроизведения видеопотоков RTSP, ONVIF и другие.
В итоге подсмотрев в одном из магазинов небрежно висящую коробочку подключенную по HDMI к экрану с трансляцией камер видеонаблюдения, я узнал в ней хорошо знакомое устройство — Raspberry Pi и начал гуглить в этом направлении. И не прогадал.
Так как у меня в наличии имеются все версии выпускаемой платы от 1й до 4й, но без дела стояла только версия Raspberry Pi 2 model B, на ней и было решено провести тесты. Изучив статьи в интернете и выполнив настройку я получил готовое решение, позволяющее получить изображение непосредственно и IP-камер или с видеорегистратора (Важно что бы камеры или регистратор умели транслировать видеопотоки). Так же я могу сам настроить композицию. Варианты ограничены только фантазией и возможным количеством подключаемых камер (но об этом в конце).
Вот примеры пара примеров композиции изображений для экранов с расширением 1280×1024:
Размер экранов и изображений могут меняться, а вот количество камер ограничено. Я видел как люди реализуют сетку 3×3 — 9 камер на Raspberry Pi 3 model B, но не уверен что такое количество камер будет стабильно работать на моей плате Raspberry Pi 2 model B. Так как поток воспроизводится плеером без буферизации, так же возрастают требования к качественному сетевому соединению.
Кратко опишу суть реализации: на Raspberry Pi устанавливаем Raspbian Noob. Утилитой screen делим экран на несколько окон и в каждом окне запускаем OMXPlayer который воспроизводит поток получаемый непосредственно с камеры видеонаблюдения или с видеорегистратора (конечно для этого предварительно их нужно настроить). Все эти действия описаны в скрипте который запускается после запуска самой системы на Raspberry Pi.
В моем случае данная реализация стабильно работает больше года с одной камерой (в большем количестве нет необходимости). Из минусов можно отметить высокие требования к сети и необходимость наличия возможности трансляции видеопотока камерой или видеорегистратором.
Стоимость всего решения складывается из стоимости самой платы Raspberry Pi с блоком питания, корпусом и microSD картой (на дату написания статьи при стоимости доллара 80 рублей, новый комплект стоил в районе 5т.р. ), а так же стоимости потраченного времени на настройки. В качестве экрана подойдет любой телевизор или монитор с интерфейсом HDMI.
Для реализации данного решения мной были использована информация из следующий статей: статья1, статья2, статья3, статья4.