Arhn - архитектура программирования

Как синхронизировать два видео с переменной частотой кадров?

У меня есть много пар видеофайлов, снятых двумя сетевыми камерами в комнате. Из-за использования полосы пропускания видеофайлы имеют переменную частоту кадров. Насколько я понимаю, если мы размечаем кадры на таймлайне, то это примерно так:

переменная частота кадров

Я хочу синхронизировать эти два видео. Под синхронизацией я подразумеваю заполнение пробелов таким образом, чтобы для данного кадра в видео был соответствующий кадр в другом видео. В конце концов, я хочу, чтобы у двух было два таких видео:

введите здесь описание изображения

Я подумал о преобразовании обоих видео в 25 кадров в секунду с помощью инструмента конвертера, хотя у меня будут избыточные пары кадров, которые будут синхронизированы. Однако у меня есть информация, связанная с каждым кадром для всех видео, я не смогу узнать связь после преобразования.

Я думаю, что мне нужно сделать это программно, чтобы я мог соответствующим образом сохранить информацию, связанную с каждым кадром.

До сих пор я пробовал OpenCV, VideoCapture свойство CV_CAP_PROP_POS_MSEC дает мне номер кадра, а не миллисекунду кадра. Даже если он дал мне правильные значения, VideoWriter не поддерживает переменную частоту кадров. MATLAB отказывается читать мои видеофайлы, потому что не поддерживает кодек MJPEG (motion jpeg). Я смог прочитать номер кадра и соответствующую миллисекунду, используя pyglet в Python. Но это всего лишь декодер, мне все еще нечего писать в видеофайл типа «Это кадр №12, и это должно быть ровно 1,76 секунды видео».

Я ищу самый простой способ добиться этого, язык, инструмент не имеет значения. Решения на базе Windows приветствуются. Большое спасибо за ваши ответы.

PS. Я не возражаю против выходного формата, хотя я бы предпочел формат без потерь.


Ответы:


1

Самый простой способ сделать это — преобразовать оба в один и тот же fps (скажем, 25), а затем сопоставить их. ffmpeg — отличный инструмент для этого. Прочтите этот пост в блоге для получения более подробной информации http://www.hdslr-cinema.com/news/workflow/convert-between-framerates/

Но, вероятно, он будет дублировать кадры, чтобы закрыть пустые слоты. Если это не соответствует вашим требованиям, вам следует изучить интерполяцию времени - интерполировать пиксели между кадрами. Но это большая работа. Решение ffmpeg — это 5-минутная задача, интерполяция может означать чтение и внедрение некоторых академических статей.

Обратите внимание, что могут быть какие-то специальные инструменты для интерполяции, но я о них не знаю. Это стоит исследовать.

18.07.2012
  • Я не возражаю против интерполяции самостоятельно, поскольку я сказал, что есть связанная информация с такими кадрами, как (#1, info1), (#2, info2), поэтому, если я конвертирую их оба с помощью инструмента, я не буду знать, как соответствие между предыдущими ассоциациями и новыми. Я проверю библиотеку ffmpeg. 18.07.2012
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..