Создание видео из программы OpenGL C - PullRequest
6 голосов
/ 08 февраля 2011

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

Вопрос: Какой лучший способ сделать видео из программы на C / OpenGL?

То, как я делал это в прошлом, - это использование программы захвата экрана, но это очень трудоемко (нужно запустить / остановить программу захвата экрана, сохранить видеофайл и т. Д.) Кажется, должен быть способ автоматизировать процесс создания видео из программы на языке Си. Затем я могу оставить его включенным на ночь и посмотреть утром 20 видеороликов, а затем выбрать лучший для размещения на YouTube.

YouTube рекомендуем"MPEG4 (Divx, Xvid) формат с разрешением 640x480".

Я использую GLUT 3.7.6_3, если это имеет значение. Я могу изменить систему управления окнами, если на то есть веская причина.

Я использую Windows (XP), поэтому предпочел бы ответы, которые работают в Windows, но ответы с Linux тоже подойдут. Я могу использовать Linux, если нет возможности легко создавать видео в Windows. У меня есть друг, который делает изображение в формате .png для каждого кадра видео, а затем соединяет их вместе, используя «mencoder» в Linux.

Ответы [ 2 ]

8 голосов
/ 08 февраля 2011

вы можете использовать функцию glReadPixels (см. пример )

Но если материал, который вы пытаетесь отобразить, состоит из простых объектов (например, сферы, стержни и т. Д.),Я бы «экспортировал» каждый кадр в файлы POV-ray , отрендерил их, а затем сделал бы видео из этих изображений.вы достигнете гораздо более высокого качества, как это.

1 голос
/ 08 февраля 2011

Используйте стороннее приложение, такое как FRAPS , чтобы выполнить работу за вас.

Fraps может захватывать аудио и видео размером до 2560x1600 с пользовательской частотой кадров от 1 до 120 кадровв секунду!

Все фильмы записаны в отличном качестве.

У них есть видео образцы на сайте.Они кажутся хорошими.

РЕДАКТИРОВАТЬ:

Вы можете запустить инструмент для записи экрана из вашего приложения C, называя его как system("C:\screen_recorder_app.exe -params").Проверьте camstudio , у него есть версия для командной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...