RecordMyDesktop é a solução mais fácil, você a usa como:
recordmydesktop \
-o "/tmp/recording.ogv" \
--fps 30 \
--no-cursor \
--full-shots \
--on-the-fly-encoding \
-x 22 -y 249 --width 320 --height 240
No entanto, é lento e não é rápido o suficiente para jogos em grandes resoluções. Também tem problemas quando se trata de gravações muito longas, que tendem a corromper, por isso é uma boa ideia parar e reiniciar a codificação a cada 30 minutos, para não arriscar um fluxo corrompido.
Para uma captura adequada do jogo, você precisa do GLC , que foi escrito especificamente para o OpenGL e só funciona com aplicativos OpenGL. Não está no Ubuntu, mas você pode baixar o código-fonte e compilá-lo você mesmo. Depois de compilado, você precisa iniciar o jogo glc-capture
com uma linha como:
glc-capture -l /dev/stdout -v 3 -i -j -o /tmp/recording.glc -b back your_game
O GLC é rápido o suficiente para capturar jogos com 1280x720 ou mais, dependendo do seu computador.
Se você precisar de mais flexibilidade para capturar várias fontes de áudio, poderá usar as ferramentas pulseaudio. O mais importante é pavucontrol
que é um aplicativo de mixagem para o pulseaudio que permite decidir o que será gravado e até alternar as fontes de gravação em tempo de execução. Para selecionar um dispositivo de gravação, vá para "Dispositivos de entrada / Todos os dispositivos de entrada" e selecione um chamado "Monitor de áudio estéreo analógico incorporado". Todos os monitores permitem gravar a saída de áudio. Isso é algo que você provavelmente precisará fazer ao usar o GLC e o recordmydesktop, pois, por padrão, eles gravam a entrada de linha ou algo parecido, não a saída real do alto-falante.
O Pulseaudio também vem com vários módulos que permitem redirecionar ou filtrar a saída. Por exemplo, para criar uma placa de som virtual que não seja transmitida para os alto-falantes, use:
pactl load-module module-null-sink sink_name=nullsink
A documentação pode faltar um pouco, mas deve permitir que você faça a maioria das coisas que deseja. Para apenas gravar o áudio do jogo e a saída do fone de ouvido separadamente, você pode configurar pavucontrol
para que o GLC grave o áudio do jogo e use um separado parecord
para capturar o fone de ouvido.