/ Статьи / Видео / Запись видео с OpenGL игр в Linux. Аналог Fraps /

Запись видео с OpenGL игр в Linux. Аналог Fraps

Дата публикации: Aug. 31, 2009, 7:09 p.m.
Теги: видео, GLC, OpenGL, игры,
Автор: Brainsburn

Камера GLC - программа для записи видео из игр и других OpenGL приложений. Аналог Fraps под Linux.

Графический интерфейс: нет
Сайт: http://nullkey.ath.cx/projects/glc/



Хотите записать видео из вашей любимой игры, но не знаете как? В Windows для этого есть Fraps. Многие думают, что под Linux подобных программ не существует, однако их по меньшей мере две. Одна из них - Glc.

Что же умеет делать glc? По сути это аналог Fraps для Linux. Она может записывать видео из игр (и любых других OpenGL программ) со звуком, с отличным качеством и при этом не сильно нагружая систему. По моим ощущениям, работает заметно быстрее того-же фрапса. Процесс и параметры записи детально настраиваются.

Для начала установим собственно glc. Последний релиз вышел недавно - 2009.07.20 - glc-0.5.8. Инструкция по установке есть на сайте проекта: http://nullkey.ath.cx/projects/glc/wiki/HowtoInstall .

После установки запишем тестовое видео. Я буду записывать с игры VDrift.
Простейшая команда для запуска glc будет выглядеть так:
glc-capture vdrift

Видео сохранится в текущий каталог и будет иметь название типа vdrift-12345.glc.
Все-же мы запускаем программу в первый раз, поэтому неплохо бы включить лог:
glc-capture -v 4 vdrift

Теперь все сообщения для дебага будут видны. Например, иногда возникает ошибка, которая происходит в результате того, что буфер программы не успевает за приложением и, поэтому, вместо игры на видео видно только черный квадрат. Если у вас тоже самое, понизьте фпс записи. Я вобще записываю с фпс 15, на глаз даже не заметно никаких рывков. Установим фпс записи в 20:
glc-capture -v 4 -f 20 vdrift

Допустим, вы играете на разрешении 1600-1200 но хотите получить видео с разрешением 800-600. Тогда можно указать опцию для автоматического изменения разрешения видео:
glc-capture -v 4 -f 20 -r 0.5 vdrift

Если вы хотите записать без звука, то получится так:
glc-capture -v 5 -f 20 -r 0.5 --disable-audio vdrift


Посмотреть полный список доступных опций, разумеется, можно командой
glc-capture --help


Чуть не забыл сказать про сочетание клавиш, которое запускает и останавливает сам процесс записи. Жмете shift+F8 - запись пошла, жмете shift+F8 еще раз - запись остановилась.

Итак, вы записали видео и в текущей директории лежит файл vdrift-1234.glc. Для просмотра свежезаписанных видео можно использовать команду glc-play:
glc-play vdrift-1234.glc


Но что-же делать с этим непонятным форматом glc теперь? Правильно, надо его сконвертировать во что-нибудь более приятное, например в MPEG4. Есть быстрый способ это сделать, используя mencoder (он у вас скорее всего уже установлен):
glc-play vdrift-1234.glc -a 1 -o vdrift.wav

Таким образом мы выдрали из записи звук и сохранили его в wav. Теперь видео:
glc-play vdrift-1234.glc -y 1 -o - | mencoder -demuxer y4m - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=5000 -audiofile vdrift.wav -oac mp3lame -o vdrift.avi

Когда закончится процесс кодирования, в текущей директории появится файл vdrift.avi. Этой командой мы выдрали из записи видео, сжали его с битрейтом 5000, соединили с аудио и сохранили все в AVI. Теперь ваше видео можно просматривать в любом видео-плеере. Enjoy!

Так же вы можете скачать готовый скрипт отсюда и использовать его так:
./encode.sh [stream file] -o mynicefragvid.mp4
И, на всякий случай, еще один вариант для работы со многими файлами сразу (хотя и с одним будет работать). Следующая конструкция сконвертирует в AVI все GLC файлы из текущего каталога:
for i in `ls *.glc`; do glc-play $i -a 1 -o $i.WAV && glc-play $i -y 1 -o - | mencoder -demuxer y4m - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=5000 -audiofile $i.WAV -oac mp3lame -o $i.AVI; done





Возможно, эти материалы Вас заинтересуют:


Рекомендовать эту страницу:

Комментарии:(10)

# Joe March 17, 2010, 5:19 a.m.
Здравствуйте!

- всё понятно, но одно не могу понять - а как же удалить эту программу?? - установить то я понял как , но вот ответа на этот вопрос на сайте создателя я найти так и не смог - не сможете подсказать?...

Спасибо

# N-Drew March 18, 2010, 8:46 a.m.
Для удаления нужно открыть менеджер пакетов,для Ubuntu Система-Администрирование-Менеджер пакетов Synaptic, найти glc, отметить на удаление и применить.

Либо в терминале набрать
sudo aptitude remove glc

# admin March 19, 2010, 1:55 p.m.
Joe, если вы устанавливали ее через пакетный менеджер вашего дистрибутива, то и удалять можно через него. Если будете собирать из исходников, то в конце установки оно напишет, что для удаления файлов glc из системы, надо выполнить
sudo rm \
/usr/lib/libglc-core.so* \
/usr/lib/libglc-capture.so* \
/usr/lib/libglc-play.so* \
/usr/lib/libglc-export.so* \
/usr/lib/libglc-hook.so* \
/usr/lib/libelfhacks.so* \
/usr/lib/libpacketstream.so* \
/usr/include/elfhacks.h \
/usr/include/packetstream.h \
/usr/bin/glc-capture \
/usr/bin/glc-play

# Zoobotty Nov. 14, 2010, 3:53 p.m.
Здравстуйте, мне требуется записать игровое видео, но при установки glc терминал выдаёт следующее

tuxlinux@tux:~$ ./glc-build.sh
info : Welcome to glc install script!
Enter path where glc will be installed.
(leave blank to install to root directory)
> /home/tuxlinux/
Enter compiler optimizations.
(-O2 -msse -mmmx -fomit-frame-pointer -mtune=pentium3)
>
Use git (y/n)
(git contains latest unstable development version)
> n
info : Fetching sources...
info : Unpacking sources...
info : Building elfhacks...
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as

cmake_minimum_required(VERSION 2.8)

should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.

info : Building packetstream...
CMake Warning (dev) in CMakeLists.txt:
No cmake_minimum_required command is present. A line of code such as

cmake_minimum_required(VERSION 2.8)

should be added at the top of the file. The version specified may be lower
if you wish to support older CMake versions for this project. For more
information run "cmake --help-policy CMP0000".
This warning is for project developers. Use -Wno-dev to suppress it.

info : Building glc...
CMake Warning (dev) at src/CMakeLists.txt:28 (ADD_EXECUTABLE):
Policy CMP0003 should be set before this line. Add code such as

if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)

as early as possible but after the most recent call to
cmake_minimum_required or cmake_policy(VERSION). This warning appears
because target "play" links to some libraries for which the linker must
search:

GL, asound, X11, m, png

and other libraries with known full path:

/home/tuxlinux/packetstream/build/src/libpacketstream.so

CMake is adding directories in the second list to the linker search path in
case they are needed to find libraries from the first list (for backwards
compatibility with CMake 2.4). Set policy CMP0003 to OLD or NEW to enable
or disable this behavior explicitly. Run "cmake --help-policy CMP0003" for
more information.
This warning is for project developers. Use -Wno-dev to suppress it.

/home/tuxlinux/glc/src/capture.c: In function ‘set_opt’:
/home/tuxlinux/glc/src/capture.c:338: warning: ignoring return value of ‘getcwd’, declared with attribute warn_unused_result
/home/tuxlinux/glc/src/glc/common/state.c: In function ‘glc_state_time_add_diff’:
/home/tuxlinux/glc/src/glc/common/state.c:157: warning: format ‘%ld’ expects type ‘long int’, but argument 5 has type ‘glc_stime_t’
/home/tuxlinux/glc/src/glc/core/file.c: In function ‘file_set_tar

# Анна April 11, 2011, 3:09 p.m.
А как её скачать?

# Brainsburn April 11, 2011, 8:08 p.m.
Ну я ж в самом начале ссылку на оф. сайт дал. Переходите по ней, ищете на странице ссылку "Install -- How to install glc", переходите по ней и выбираете подходящий вариант.
Для ленивых: https://github.com/nullkey/glc/wiki/Install ;)

# Роман July 12, 2011, 1:53 p.m.
Можно как то сделать чтобы запись звука шла не из игры а через микрофон?

# костян Aug. 27, 2011, 8:53 a.m.
Народ а как скачать?Не вижу кнопки тут “скачать”.Мне нужно записать видео с игры.
Подскажите.

# костян Aug. 27, 2011, 8:57 a.m.
Она на русском языке я надеюсь?….

# Роман Dec. 3, 2011, 10:02 p.m.
Она на русском языке я надеюсь?….

Лол. Конечно нет. =D

Комментировать:

Гость, Вы можете оставить свой комментарий.

Стиль кода:
Имя
Сайт * не обязательное поле
Поставьте галку, если вы - бот
Поставьте галку, если вы - человек

Друзья! Убедительная просьба воздержаться от нецензурной лексики!



Справка:
Если вы хотите использовать в тексте комментария специальные символы, например, [ и ], используйте их внутри тега [code] [/code]
Вы можете использовать теги BBcode. Для оформления кода и подсветки синтаксиса используйте тег [code] или [code=название_языка], например, [code=python]
Ссылки вставляйте так: [url]zenux.ru[/url] или так: http://zenux.ru, но не так: zenux.ru
Текст сообщения должен быть в пределах 3000 символов.




Последние комментарии:

fanyit: Спасибо за обзор. очень полезно и доступно.... >>>
cheech: Спасибо, статья полезная )... >>>
Васёк: Коммент, расскажи про часы на стене капитану в оке... >>>
METAJIJI: Ах да, почему я начал вообще трогать urxvt, потому... >>>
METAJIJI: Вкладки как раз не феншуйные (штатный tabbed), они... >>>