Запись вывода приложения в видео с использованием FFmpeg (или аналогичного) - PullRequest
2 голосов
/ 16 декабря 2011

У нас есть требование, чтобы пользователи могли записывать видео нашего 3D-приложения. Я уже могу взять отдельные отрендеренные кадры, поэтому этот вопрос конкретно о том, как записать кадры в видеофайл.

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

Я могу посмотреть варианты записи в простой видеофайл для последующей оптимизации / кодирования или записи непосредственно в разумно кодированный формат.

FFmpeg был предложен в другом посте, но он выглядит немного пугающим для меня. Это лучший вариант, если не то, что можно предложить? Мы можем работать с LGPL, но не с полной лицензией GPL.

Мы работаем в Windows (Win32, а не MFC) в C ++. Пример / псевдокод с вашей рекомендуемой библиотекой очень ценится ... в основном после того, как сделать 3 функции:

  • startRecording() выполняет необходимую инициализацию
  • recordFrame() берет указатель на данные кадра и кодирует его, в идеале с данными синхронизации
  • endRecording() завершает работу с видеофайлом, выключает систему видео и т. Д.

1 Ответ

1 голос
/ 16 декабря 2011

Проверьте источники для Такси на sourceforge.http://taksi.sourceforge.net/ Вам нужно 2 вещи.1. Код для сжатия кадров.2. Формат файла контейнера.Как AVI или MPG.

Такси использует старый API VideoForWindows и AVI, а не более новый COM API, но он все еще может работать для вас.

...