захват графики OpenGL в видео - PullRequest
4 голосов
/ 16 февраля 2011

Я написал приложение openGL и хотел бы создать видео с графикой, показанной в окне Glut.Вы знаете, как это сделать?

Из предыдущего вопроса в SO, я знаю, что одним из возможных решений является использование glReadPixels для получения фреймов, которые были отрисованы openGL, а затем использовать Библиотека FFmpeg для создания видео.Я действительно не знаю, как использовать FFmpeg, поэтому я не уверен, как я мог бы написать программу, которая берет кадры и выводит видео.Хотя в исходном вопросе ссылка не работает, я нашел этот пример кодирования видео, который может пригодиться всем, кто пытается помочь.

Два вопроса:

  1. Как я могу использовать FFmpeg для написания программы, которая принимает кадры и выводит видео?
  2. Мое приложение написано на OCaml, поэтому я использую lablgl и lablglut.Любые идеи о том, как идеи FFmpeg могут быть реализованы в этом случае?

Ответы [ 3 ]

3 голосов
/ 16 февраля 2011

Вы можете использовать libpng для записи ваших кадров в отдельные файлы PNG, а затем использовать инструмент командной строки ffmpeg для кодирования этого в видео.

2 голосов
/ 18 февраля 2011

Вариант ответа png: вывод в bmp. Создайте белое изображение того же размера в Paint (или все, что доступно на Mac), откройте его с помощью блокнота, изолируйте заголовок файла (для 800 * 600 это 42 4D 36 F9 15 00 00 00 00 00 36 00 00 00 28 00 -00 00 20 03 00 00 58 02 00 00 01 00 18 00 00 00-00 00 00 F9 15 00 00 00-00 00 00 00 00 00 00 00 00 00 00 00 00 00 27), добавьте результаты glReadPixels, flush , закрыть.

Так что да, много файлов, но обычно это не проблема, так как большинство приложений openGL не слишком часто используют жесткий диск.

(я знаю, это довольно грязно, но это самый простой способ реализовать - я делал это в поезде один раз, без какой-либо документации)

0 голосов
/ 16 февраля 2011

Для захвата видео для демонстрации лучше всего использовать фрапс

...