Как организовать OSD для IP камеры
Подскажите алгоритм, направление по следующему вопросу: в сети есть IP камера, необходимо организовать osd систему, т.е. взять видеопоток с IP камеры, нанести данные датчиков, отдать видеопоток в сеть, т.е. фактически ретрансляция видеопотока с нанесение дополнительных данных (текстовых - гуд, графических - супергуд). Видится два варианта реализации:
-
программный. Пробовал связку linux+ffmpeg+DrawText filter. К сожалению фильтры ffmpeg работают только при записи в файл: беру поток, накладываю текст+пишу в файл-все ок. При попытке писать на выходе в видеопоток фильтр просто отсутствует. Писал разработчикам , да такой баг существует. Другого программного обеспечения с нужным функционалом не нашел.
-
аппаратный. немного работал с OSD системой построенной на max7456. Но все osd системы построены на аналоговом сигнале. Как работать с ip камерой: tcp пакеты декодить в аналог пропускать через max и опять кодить в tcp, на первый взгляд только это приходит на ум. Возможно есть аналог max-а для цифровых видеоданных.
Вот здесь примерно то что мне нужно, но как они это сделали не понятно. Буду благодарен за любую информацию.
Спасибо.
Про linux не ведаю, а под виндой- DirectShow. Задачка не самая простая, но имхо вполне решаема.
Видеопоток отдельно, телеметрия отдельно, причём у телеметрии приоритет. Передаётся хоть по одному каналу, хоть голубиной почтой. Складывается программно на конечном устройстве. Не? Или вы с нечто собрались передавать полностью обработанный видеосигнал по ютубу или торренту? Достойно.
Про linux не ведаю, а под виндой- DirectShow. Задачка не самая простая, но имхо вполне решаема.
почитал про DirectShow, я так понял, что в основном он используется для видеозахвата+обработки+воспроизведения/записи. На одном из форумов было обсуждение трансляции видеопотока с помощью фильтра Direct Network, но обсуждение зашло в тупик, задача для DirectShow не типовая.
Видеопоток отдельно, телеметрия отдельно, причём у телеметрии приоритет. Передаётся хоть по одному каналу, хоть голубиной почтой. Складывается программно на конечном устройстве. Не? Или вы с нечто собрались передавать полностью обработанный видеосигнал по ютубу или торренту? Достойно.
Наверное я неверно объяснил:
Дано:
- в локальной сети есть ip камера, которая смотрит на проходную на территорию нашего предприятия (видео с данной камеры доступно, например по адресу 192.168.1.27/mjpg/video.mjpg)
- данная проходная снабжена RFID reader-ом и проходя через проходную работники фиксят свой проход карточкой, что пишется в базу предприятия
- данная проходная снабжена системой распознавания номеров а/м, распознанные номера также пишутся в базу предприятия
Задача:
- захват видео с 192.168.1.27
- нанесении текстовой информации вида: сколько работников прошло с начала смены, машин проехало, из каких подразделений …
- организовать видеопоток с телеметрией по адресу 192.168.1.28
Итого - зайдя на 192.168.1.27 смотришь обычное видео, на 192.168.1.28 видео с телеметрией
задача для DirectShow не типовая.
Из готовых фильтров DS конечно вряд ли такое можно сделать. Ну а написав свои, возможности практически не ограничены…
Задачка-то вроде 100500 раз решённая. Большой брат бдит! А вам и видео не нужно. При получении рфида прикладывать фотку с камеры и таймкодом. Ну а весь видеопоток сохранять отдельно на случай особого интереса Большого Брата.