пятница, 16 марта 2012 г.

Скринкаст игр в Ubuntu

Скринкаст (screencast, скринкастинг) – цифровая видео- и аудиозапись, производимая непосредственно с экрана компьютера, так же известная как video screen capture (досл. видеозахват экрана). Делать скринкаст рабочего стола в Ubuntu достаточно просто. Я делал это с помощью аж четырёх программ: recordMyDesktop, Istanbul, XVidCap, ffmpeg . Каждую из них легко установить из «Центра приложений Ubuntu» и каждая (кроме ffmpeg) имеет понятный графический интерфейс. Но когда с помощью этих программ я попробовал записать видео из игры, у меня ничего не вышло – каждый раз при запуске игры запись прерывалась. В итоге я попробовал ещё одну программу, с помощью которой мне удалось достигнуть желаемого результата, и в этой статье я постараюсь в простой форме описать работу с данной программой.

GLC

GLC – это программа для записи видео из игр и других OpenGL приложений. GLC способна захватывать как видео, так и звук, при этом обеспечивая достаточно высокое качество записи. В ОС Windows для этих целей, как правило, используется известная многим программа под названием Fraps.

Установка GLC

Почти везде в интернете для скачивания GLC даётся ссылка на официальный сайт. Но у меня этот сайт так и не открылся, поэтому пришлось лазить по сети и искать по отдельности программу и зависимые от неё пакеты. Для того, чтобы вам этого не делать, вы можете скачать мой архив со всеми необходимыми пакетами: скачать GLC.
Итак, распаковываем архив и указываем в терминале путь к распакованным файлам. Если, мы, к примеру, распаковали архив в папку профиля, то команда в терминале будет выглядеть примерно так:
cd /home/username/GLC
Ваш путь будет отличаться в зависимости от того, куда был распакован архив. После того, как мы указали путь к распакованным файлам, прописываем в терминале следующую команду:
sudo dpkg -i *.deb
Вводим свой пароль и ждём завершения установки.
Для работы нам так же потребуется программа mencoder. Устанавливаем её простой командой:
sudo apt-get install mencoder
Примечание: исходные тексты GLC, а так же некоторую информацию по установке и настройке программы можно найти на этом сайте (англ.).

Запись видео

Итак, для того, чтобы записать видео с помощью GLC, необходимо открыть терминал, прописать команду «glc-capture» и запускаемую игру, например:
glc-capture openarena
Если игра запускается через wine, то необходимо указать путь к исполняемому файлу игры, к примеру:
cd /home/username/games/Quake
А затем использовать команду:
glc-capture wine quake3.exe
Вместо «quake3.exe» указывается исполняемый файл игры.

После этих команд запустится игра. Для того, чтобы начать запись, необходимо нажать «Shift+F8». Окончание записи делается так же при помощи клавиш «Shift+F8».

Обработка видео

После окончания записи в текущем каталоге появится файл с расширением .glc. Например, файл может выглядеть так: «wine-preloader-7094-0.glc».
Проиграть его можно следующим образом: прописываем в терминале путь к файлу .glc и вводим следующую команду:
glc-play wine-preloader-7094-0.glc
Вместо «wine-preloader-7094-0.glc» указываем свой файл. Чтобы видео можно было открывать с помощью обычных проигрывателей, этот файл необходимо сконвертировать. Делается это следующим образом:
glc-play wine-preloader-7094-0.glc -a 1 -o audio.wav
Данная команда вырезает звук из записи и сохраняет его в текущий каталог в файл с именем «audio.wav». Рекомендую сразу проверить, проигрывается ли этот файл, т. к. если он не будет проигрываться (как было в моём случае), то дальнейшие действия будут бесполезны. У меня файл начал проигрываться после того, как я в этой команде заменил -a 1 на -a 3. Возможно вам придется попробовать тоже изменить цифру, чтобы аудио нормально вырезалось. После того, как мы убедились в том, что аудио работает, вводим в терминале следующую команду:
glc-play wine-preloader-7094-0.glc -y 1 -o - | mencoder -demuxer y4m - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=5000 -audiofile audio.wav -oac mp3lame -o video.avi
Данная команда вырезает видео из записи, конвертирует его в понятный формат и объединяет с аудио. Если всё же аудио не вырезается, или оно нам не нужно, тогда достаточно только одной команды:
glc-play wine-preloader-7094-0.glc -y 1 -o - | mencoder -demuxer y4m - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=5000 -o video.avi
В итоге мы получаем файл «video.avi» с нашей демкой из игры, который можно открывать в плеере или обрабатывать в видеоредакторе.

Дополнительные настройки и советы

Команды glc-play и glc-capture имеют ряд дополнительных функций. Список этих функций можно увидеть, если набрать команды :
glc-capture -h glc-play -h
Вот примеры некоторых наиболее важны функций:
glc-capture --disable-audio openarena
Возможно вы уже догадались, что данная команда позволяет записывать видео без звука. Она может оказаться полезной, если вам не нужен звук или у вас какие-то проблемы с записью звука.
glc-capture -f 20 openarena
С помощью данной команды мы указываем, какой будет FPS у записи. По умолчанию он равен 30, но иногда может возникнуть проблема переполнения буфера и вместо видео вы получите чёрный квадрат. Хоть лично у меня записывало и с таким FPS.
glc-capture -s openarena
Запись видео начнётся сразу при запуске игры. Т.е. «Shift+F8» для начала и окончания записи нажимать не нужно.
glc-capture -r 0.5 openarena
Записывает видео с разрешением, которое будет в два раза меньше чем то, которое установлено в настройках игры. Т.е. если разрешение в игре 1200x800, то видео будет 600x400.
glc-play wine-preloader-9203-0.glc -o - -a 1 | lame -hV2 - audio.mp3
Из записи будет вырезан звук и автоматически сконвертирован в .mp3. Может потребоваться установка lame (sudo apt-get install lame).
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 
Это команда для пакетной обработки файлов. Если у вас много файлов .glc, то с помощью этой одной команды вы сможете сконвертировать их всех и сразу с аудиодорожкой.

Примечание: после захвата видео полученный файл .glc имеет, как правило, достаточно большой размер, поэтому перед записью советую проверить наличие достаточного количества свободно места на жёстком диске. Я бы даже порекомендовал записать минутное видео, посмотреть его размер и прикинуть, сколько свободно места вам понадобится для вашей записи.

Следите за новостями в области бесплатного программного обеспечения в нашей группе Вконтакте и на Twitter.

2 комментария: