Привет всем, хочу поделится с вами плодами моих изысканий.
К сожалению работа не закончена (пока) из за поломки моего домашнего сервера.
Но может кому нибудь и этого будет достаточно для успешной реализации задумки.
Немного теории.
bktr
Да, есть такой драйвер. Если все хорошо, то в системе появяться файлы устройств bktr* для вашей платы видеозахвата.
Как проверить, что видеокамера работает как надо?
К счастью ffmpeg знает как работать с драйвером bktr, нужно лишь указать опцию -f bktr в вызове команды.
Из нюансов можно указать на невозможность выбора канала средствами ffmpeg, но как пишет умный человек (
http://cev.sdf.org/category/freebsd/1/ ) это можно сделать задавая переменнуюю среды BKTR_DEV. По умолчанию ffmpeg считает, что она равна 1.
Вот пример команды для записи видео:
BKTR_DEV=1 ffmpeg -f bktr -standard PAL -i /dev/bktr1 -r 25 -s 924x576 -vf format=rgb555,super2xsai -c:v libx264 -preset fast test1.mkv
Если все прошло успешно, то переходим к слещующему пункту.
zoneminder
Для работы с видеокамерами, представленными в системе файлами устройств zoneminder использует интерфейс (api) Video For Linux (v4l) версии 1 или 2. Функционал скрытый за v4l позволяет удобно обращаться к камерам и получать к-л информацию или делать к-л настройки.
Но драйвер bktr не понимает v4l, соответственно zoneminder не может работать с нашими видеокамерами.
Как же обойти это ограничение? К счастью zoneminder может использовать ffmpeg для захвата видео. Нужно лишь выбрать "Source type: ffmpeg" при добавлении новой камеры.
Но, создатели zoneminder считают, что c помощью ffmpeg пользователи будут получать только видео из сети.
Таким образом, мы знаем, что ffmpeg умеет работать с нашей камерой, но zoneminder этого делать не хочет.
А теперь практика:
Если посмотреть соответствующие места в сырцах zoneminder а, то увидим, что прикрутить испльзование bktr к нему очень просто.
"Очень просто" можно посмотреть в моих 2 патчах.
Что получилось:
Камера добавляется, в режиме Modect регистрирует движения. Но! Ничего не показывает. Ни живое видео, ни записанные события. Почему так произошло выяснить не удалось, как я и говорил ранее.