Захват видео и звука из OpenGL приложений под Linux

Эта заметка появилась взамен моей предыдущей заметки “Захват экрана OpenGL-приложения”, т.к. последняя устарела. Да и пакет media-video/captury бесследно исчез из дерева портежа. Впрочем и само приложение давно перестало обновляться.

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

layman -f -a glc -o 'http://nullkey.ath.cx/glc/overlays.xml'

Установка производится как обычно:

emerge glc

Но предварительно придется размаскировать несколько пакетов:

media-video/glc
dev-libs/packetstream
dev-libs/elfhacks

Захват осуществляется командой

glc-capture -v 5 -f 20 -r 0.5 -i --disable-audio opengl_app

здесь -v 5 означает пятый уровень логирования;
а -f 20 означает с какой частотой будет захватываться видео;
параметр -r 0.5 означает фактор рисайза;
для отображения индикатора захвата используется параметр -i.

Включить / выключить запись можно с помощью комбинации Shift+F8.

Это не единственные параметры, подробнее можно посмотреть выполнив команду:

glc-capture --help

Запись производится в собственный формат, поэтому воспроизвести полученную запись можно командой

glc-play opengl_app-1234.glc

Перекодировать видео можно так:

glc-play opengl_app-1234.glc -a 1 -o opengl_app.wav
glc-play opengl_app-1234.glc -y 1 -o - | mencoder -demuxer y4m - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=5000 -audiofile opengl_app.wav -oac mp3lame -o opengl_app.avi

Glc прекрасно работает в 64-х битной системе.
Вообще все необходимое написано на сайте glc.

One comment

Leave a Reply

Your email address will not be published. Required fields are marked *