LINUX.ORG.RU

Сообщения DeOnis

 

Задача: найти движение в видео файле и собрать их в новом файле.

Форум — Multimedia

Заснял экшенкамерой птиц в кормушке. Видео на несколько часов, хочу получить птиц со звуком, без промежутков. То есть, найти фрагменты с движением и собрать их всех в одном выходном файле. Сразу сунулся в ffmpeg и его фильтры: ffmpeg -i C0064.MP4 -vf select='gt(scene\,0.005)' output.mp4 видео уменьшается с 4,7ГБ до 152,8МБ, из потока удаляется все без движения. Только видео по прежнему длится 13,5 минут. Просидел с мануалом и интернетом, но так и не нашёл нормальное решение. Получил вариант со скриптом, пачкой таймкодов, нарезкой десятков файлов, каждый с отдельным фрагментом а потом объединение этих файлов в общее видео. Ну колхоз-же.

Попробовал Motion с потоком из файла. Тут тоже куча костылей, сообщений о ошибках и т.п. Пока не дотаптывал.

Попробовал DVR-Scan. Ну вот это почти идеально. Прям как нужно делает. Даже по паре секунд до фрагмента и после добавляет и собирает сам в общий файл. Но, блин, со звуком он не работает!. Каюсь, код доработать не смог. Полез разбираться и понял, что всё основано на OpenCV а там вообще нет аудио. Максимум получил с помощью DVR-Scan перечень таймкодов для ffmpeg, но блин опять колхоз со скриптами и кучей файлов-фрагментов. А обработка видео в пару часов растягивается на сутки.

Ну и кучу разных скриптов перепробовал и все, в основном, рассчитаны на сохранение таймкода а движение или в вывод события или банальное уменьшение объёма.

Всё видео давно обрабатываю в Kdenlive но, кажись, не он не библиотека MLT, на которой он основан, тоже детекцию движения не поддерживают.

Неужели ffmpeg такое не умеет по простому и нужно писать здоровенный скрипт?

 

DeOnis
()

Помогите определить формат данных принятых от сервера

Форум — Development

Пишу программу для работы с видеорегистратором BestDVR из под линукс. Всё общение идёт в формате: запрос серверу: «Name» : «AlarmFunction», «Ret» : 100, «SessionID» : «0x00000001»

ответ: { «Name» : «SystemFunction», «Ret» : 100, «SessionID» : «0x00000001», «SystemFunction» : { «AlarmFunction» : { «AlarmConfig» : true, «BlindDetect» : true, «LossDetect» : true, «MotionDetect» : true, «NetAbort» : false, «NetAlarm» : true, «NetIpConflict» : false, «StorageFailure» : true, «StorageLowSpace» : true, «StorageNotExist» : true }, «CommFunction» : { «CommRS232» : true, «CommRS485» : true }, «EncodeFunction» : { «CombineStream» : false, «DoubleStream» : true, «SnapStream» : true }, «NetServerFunction» : { «Net3G» : true, «NetARSP» : true, «NetAlarmCenter» : true, «NetDDNS» : true, «NetDHCP» : true, «NetDNS» : true, «NetEmail» : true, «NetFTP» : true, «NetIPFilter» : true, «NetMobile» : true, «NetMutliCast» : false, «NetNTP» : true, «NetPPPoE» : true, «NetPlatMega» : false, «NetPlatShiSou» : false, «NetPlatVVEye» : false, «NetPlatXingWang» : false, «NetRTSP» : true, «NetUPNP» : true, «NetWifi» : true }, «PreviewFunction» : { «GUISet» : true, «Tour» : true } } }

Больно неохота писать свою библиотеку разбора формата. Может кто определит. Если б не разделение запятыми, был бы похож на PHP. Данные : значение , - разделитель «Строки» - строки true - булевы 100 - числа {} - массивы

 bestdvr, ,

DeOnis
()

RSS подписка на новые темы