RecordMyDesktop - самое простое решение, вы используете его следующим образом:
recordmydesktop \
-o "/tmp/recording.ogv" \
--fps 30 \
--no-cursor \
--full-shots \
--on-the-fly-encoding \
-x 22 -y 249 --width 320 --height 240
Однако он медленный и недостаточно быстрый для игр с большими разрешениями. Это также имеет проблему, когда дело доходит до очень длинных записей, которые имеют тенденцию к повреждению, поэтому рекомендуется останавливать и перезапускать кодировку каждые 30 минут или около того, чтобы не рисковать поврежденным потоком.
Для правильного захвата игры вам нужен GLC , который специально написан для OpenGL и работает только с приложениями OpenGL. Это не в Ubuntu, но вы можете скачать исходный код и скомпилировать его самостоятельно. После компиляции вам нужно начать игру glc-captureс помощью строки вроде:
glc-capture -l /dev/stdout -v 3 -i -j -o /tmp/recording.glc -b back your_game
GLC достаточно быстр для захвата игр с разрешением 1280x720 и более в зависимости от вашего компьютера.
Если вам нужно больше гибкости при захвате нескольких аудиоисточников, вы можете использовать инструменты pulseaudio. Наиболее важным является то pavucontrol, что это приложение микшера для pulseaudio, которое позволяет вам решать, что записывается, и даже переключать источники записи во время выполнения. Чтобы выбрать записывающее устройство, перейдите в раздел «Устройства ввода / Все устройства ввода» и выберите одно из них с именем «Монитор встроенного аудио-аналогового стерео». Все мониторы позволяют записывать аудио выход. Это то, что вам, вероятно, придется делать при использовании GLC и recordmydesktop, так как я думаю, что по умолчанию они будут записывать линейный вход или что-то в этом роде, а не фактический вывод динамика.
Pulseaudio также поставляется с многочисленными модулями, которые позволяют перенаправлять или фильтровать вывод. Например, чтобы создать виртуальную звуковую карту, которая не выводится на ваши динамики, вы используете:
pactl load-module module-null-sink sink_name=nullsink
Документации может быть немного не хватает, но она должна позволять вам делать большинство вещей, которые вы, возможно, захотите сделать. Для отдельной записи звука игры и выхода на гарнитуру можно настроить pavucontrolтак, чтобы GLC записывал звук игры, а затем использовать отдельную parecordдля захвата гарнитуры.