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的混音器应用程序,可让您决定要录制的内容,甚至在运行时切换录制源。要选择录音设备,请转到“输入设备/所有输入设备”,然后选择一个名为“内置音频模拟立体声的监视器”。所有的Monitor监视器都允许您记录音频输出。当使用GLC和recordmydesktop时,这可能是您必须要做的事情,因为我认为默认情况下,它们将录制线路输入或类似内容,而不是实际的扬声器输出。
Pulseaudio还带有许多模块,可让您重定向或过滤输出。例如,要创建一个不会输出到扬声器的虚拟声卡,可以使用:
pactl load-module module-null-sink sink_name=nullsink
可能会缺少文档,但是它应该允许您执行大多数您想做的事情。对于仅分别记录游戏音频和头戴式耳机输出的声音,可以进行设置,pavucontrol
以便GLC记录游戏音频,然后使用单独的声音parecord
捕捉耳机。