Ищу решение: автоскриншот + титры => видео

Есть задача генерации видео следующим образом:

1. Нужно скриптом из 1С (неважно как это в 1С, важно, что она может выполнить некий внешний скрипт) формировать по определенному событию скриншот.

2. Это же событие может записаться как титры в некий файл (например).

3. Из набора этих скриншотов и титров нужно сгенерировать видео. Автоматически без участия человека.

4. В идеале нужно еще наложить на другое видео в виде окна или с трех камер + эти скриншоты с компьютера.

Как это можно реализовать. Может есть опыт какой-то, хотя бы в части.

Вообще задача такая: нужно записывать видео с компа кассира в систему видеонаблюдения параллельно с видео от камер вокруг кассы для дальнейшего сопоставления действий кассира в программе и того, что происходило в жизни (был ли человек, давал ли дисконтную карту, давал ли деньги и тп). Текущее решение есть с видеозаписью, там проблема — плохое качество видео с компьютера, высокая нагрузка на комп. И медленная не удобная программа для дальнейшего анализа.

Нужно хорошее решение.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Из бесплатных — virtualdub позволяет скриптование и их запуск из консоли.
www.virtualdub.org/...cs/vdscript.txt

Ну или AviSynth — там даже побольше всякого творить можно.
compactvideo.wordpress.com/...using-avisynth

Могу реализовать с использованием ffmpeg. Подробности в личку.
Работы на 3-4 часа.

ffmpeg очень хорошая библиотека. Но на нее не следует полностью полагаться. Это прежде всего касается левых библиотек, которые в ней используются. Например, у меня были проблемы с дайджест аутентификацией по RTSP для IP камер. Пришлось для приема потока использовать библиотеки openRTSP от live555. Есть еще и проблемы по RTMP

Может есть опыт какой-то, хотя бы в части.

Посмотри на splitcamera.com , если что, могу садаптировать под ваши задачи.

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

Ну батенька вы хотите и «рыбку съесть и пиво выпить». Все что с видео требует больших ресурсов компа. Для качественного видео нужен комп c процем i5, а лучше i7. Ну и диск побыстрее на запись, эдак 80 МБ/с для записи потока видео 1280×720 c 25 кадрами на секунду

Вы немного преувеличили требования к аппаратной части...

Артем могу согласиться с вами только тогда, когда идет речь только о проигрывании видео. Но если речь идет о видео потоке с высоким качеством (HD формата), который нужно принять и еще обработать, тогда нет. Ну а если его еще надо загнать в avi файл, это отдельная песня.

Там по условию кадр собирается по событию, что сильно легче 25фпс будет. Мыслю — максимум пара кадров в секунду. Другое дело, что на ум сходу довольно мало форматов приходит, куда это кодировать. mjpeg, mss2?
Что касается камер, то со временем приходит понимание, что лучше пусть сами кодируют и отдают уже серверной стороне (с протоколом можно поиграться — сильно индивидуально для производителя-модели камер). Аналог все больше проигрывает цифре по деньгам и удобству, при уже сравнимом качестве.
.
Кстати вопрос ТСу — сей мониторинг в реальном времени нужен, или задержка в несколько минут допустима?

что лучше пусть сами кодируют и отдают уже серверной стороне

Боюсь, что ситуация там еще хуже — Несколько дешевых IP камер, производящие MJPEG/H264 видео, которое обрабатывает бюджетный комп с 1С, и на него они еще хотят повесить всю эту обработку. До боли знакомая ситуация.

По полной цепочке, что хочет автор, придется потоки с камер декодировать (это можно хардварно по VDPAU/VAAPI), потом софтварно формировать картинку коллажа и энкодить ее обратно в h264. Кассовый комп с таким точно не справится без конкретной просадки производительности, нужен разумеется сервер.
Причем с нехилым кол-вом места/памяти для буфферизации, т.к. в реалтайме в лучшем случае один такой коллаж осилит (та же libx264 довольно медленная и капризная).
.
Можно пойти другим путем и формировать коллаж из отдельных стримов уже на этапе просмотра в программе. Так более-менее средний сервер штук 10 касс и штук 20-30 камер потянет.
Ну и прога нетривиальная выходит довольно, хотя и не особо сложная.

Для начала все таки хотелось бы знать, что там за камеры стоят, и на какой поток они настроены. Может там простой MJPEG с HTTP/RTSP.

Постараюсь уточнить.

Бюджетность не главное. Видео с IP-камер не обрабатывается на кассе, обрабатывается на сервере (сильно не вникал каком). Пока обработка видео с самой кассы грузит комп, плюс само видео не качественное, какое-то маленькое разрешение, а больше не тянет (наверное, не уточнял) комп.

Ну так уточните, что там за комп стоит, что в него приходит

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

Смотрите — вкратце выглядеть должно так:
1. Сетевые камеры сколь-либо приличного производителя (вебкамы категорически не годятся, т.к. у них фокусное расстояние никакое + уровень освещенности и т.д.). Хотя бы самый дешевый Axis типа M1004-w (там только свет приличный сделать нужно над кассой, т.к. 1.2lum).
2. Сервер принимает по rtsp/http h264, муксит в мп4 или ts и тут же укладывает его кусками минут по 5-10 в папки/файлы с названиями, понятными для последующей обработки и визуализации.
При аккуратной настройке один сервак справится со всеми камерами без проблем — ему не надо декодировать, только оборачивать в контейнер.
3. На кассе утилита делает скриншот, накладывает на картинку текст и отдает тому же серверу, где оно так же складируется в папках с именами с таймстампами. Особого смысла формировать видео из них вообще нет.
4. Отдельный клиент мониторинга-расследований просто берет нужные видео и картинки (соответствующей кассы) за нужное время и выводит одновременно в окнах. Клиент работает на компе проверяющего и сервер дополнительно не грузит (только файлы с него тягает, ну или для красоты через вебсервер с json).
Можно наворачивать его функции типа — какую-то камеру и картинку увеличить, пошаговая или медленная перемотка, скриншоты в высоком разрешении нескольких окон и т.д., тут простор для фантазии и от потребностей контролеров.
5. Сервер по расписанию архивирует куда-то старые данные и чистит место на дисках.

Спасибо за ответ, сори за задержку.
1. Те камеры, что есть дают вполне приемлемое на данном этапе изображение, видно кто возле кассы, что делает, все ок. Претензия пока только к изображению с экрана.
Все остальное выглядит заманчиво!
Я думаю, что даже не обязательно оборачивать все в видео, можно скриншоты расставлять по временной шкале (теоретизирую).
Насколько сложно это реализовать? Какой вероятный бюджет (на разработку, аппаратную часть считать не нужно)?

это 2 человекомесяца до первой рабочей версии, еще полгода на допиливание

Первую часть (видео и скриншоты со складированием по каталогам и переименованиям с таймстампами) можно вообще силами сисадмина реализовать, там ничего уникального нет.
Сама же прога оператора-контролера — пусть товарища подскажут, не берусь единолично судить.

Да, даже раз в несколько секунд пойдет. Мониторинг делается даже не в этот день.

не понял, т.е. вы уже работаете с сохраненным видео? А лучше распишите, как все это происходит

Сейчас есть набор вэб-камер, какая-то софтина пишет с монитора (разрешение слабое, читать неудобно, нужно всматриваться), потом это в какой-то неудобной программе можно вместе просмотреть, в одной временной шкале.

Підписатись на коментарі