У меня есть две подводные сетевые видеокамеры в глубоководной обсерватории, которые привязаны к земле по оптоволоконному кабелю и передают видеоданные обратно на берег. Я хотел бы найти способ автоматически вырезать или объединить эти видеофайлы на основе их временной шкалы. Можно ли это вообще сделать? Если так, то как?
Проблема: подводные камеры записывают файл (.asf) каждый раз, когда их сетевое соединение нарушается. Это означает, что клипы произвольной длительности затрудняют каталогизацию данных. В идеале нам нужны файлы продолжительностью один час, которые начинаются и заканчиваются в часы (например: Camera1_00: 00-00: 59.asf, Camera1_01: 00-01: 59.asf и т.д.). Имя файла каждого видео содержит метку времени первого кадра. Информация о времени не хранится в метаданных.
Вопрос: Как мне объединить эти видеофайлы и разделить их по часам?
Мое лучшее предположение до сих пор - что-то вроде этого (но я понятия не имею, как это сделать):
- Извлечь начальную метку времени из имени файла
- Получить продолжительность файла
- Добавьте продолжительность к начальной отметке времени, чтобы получить время начала / окончания UTC
- [как-то] присоединяйся к видео, пока я не пересек границу часа
- Разделить видео на час (я думаю, время будет вычислено по продолжительности и времени начала?)
- Сохраните 1-часовое видео как законченное и сохраните для использования в начале следующего часа.
- Повторение
Обратите внимание, что у нас есть некоторые пробелы в видеоданных, и идеальным решением может быть:
- Записать несколько файлов в течение часа (например: 03: 00-03: 15 и 03: 17-03: 59)
- Напишите один файл длиной менее часа, соединяя пробелы несколькими черными рамками.
Я понятия не имею, как это сделать. Есть ли программное обеспечение, которое может сделать это для меня? Должен ли я написать код для этого? Если последнее, какой язык лучше? Что насчет ffmpeg?
Я открыт для лучших идей. Заранее спасибо за вашу помощь!