在Ubuntu上如何录制OpenGL游戏?

我想制作一个短片,展示我玩Minecraft这个OpenGL游戏。通常的屏幕录制软件无法正确地录制OpenGL。
有什么可用于此目的的软件吗?
我在类似但不再重复的问题中使用过的软件体验如下:
1. kazam:帧率非常低,即使设置为60 FPS,没有声音,Unity菜单栏在全屏窗口中不断闪烁。 2. RecordMyDesktop:最大帧率设置为50 FPS,但如果不使用默认的15 FPS,视频会变得极快。 3. xvidcap:在12.04版本上不可用。 4. tibesti:在12.04版本上不可用。 5. wink:无法运行。 6. ffmpeg:使用推荐的设置,视频质量很低,没有声音,可能可以调整(可惜没有图形界面)。 7. kdenlive:使用recordmydesktop,录制的片段会损坏。 8. aconv:视频加速,经常出现图像损坏,没有声音。

你确定那些程序能正确地与一个OpenGL游戏配合工作吗?上次我检查时它们在这方面有很多问题。 - Tamás Szelei
不知道,那说得很有道理。也许你应该把原文改成“如何在Ubuntu中录制OpenGL游戏”? - Tom Brossman
1好的。与此同时,我正在重新检查您提供的链接中的所有程序。到目前为止,还没有找到合适的解决方案。在录制的视频中,菜单栏在全屏窗口中闪烁,并且帧率非常低(尽管我使用了设置)。 - Tamás Szelei
4原本是个重复的问题,但现在这个编辑过的问题应该保持开放,特别是考虑到所有所做的修改和努力来改进它。我看不到取消我之前关闭投票的方法,所以我只会删除我的第一个评论并点赞。 - Tom Brossman
1这是个笑话吧?那个问题不是重复的——那些屏幕录像应用程序只能限制于硬件渲染的内容。由于X11架构的严重缺陷,OpenGL在GPU渲染方面需要专门的工具。这个问题必须重新开放。 - lurscher
在我看来,它似乎重新开放了。问题是第一个版本已经有4个关闭投票了,尽管进行了编辑,但这些投票仍然存在(无法取消),所以只是时间问题,直到有人点击最后一个关闭投票。 - Tamás Szelei
иҜ·зңӢиҝҷдёӘй—®йўҳпјҢжҲ‘еңЁе…¶дёӯиҜҰз»Ҷи®Ёи®әдәҶе…ідәҺеңЁUbuntuдёҠеҪ•еҲ¶OpenGLжёёжҲҸзҡ„glcе·Ҙе…·пјҡhttp://askubuntu.com/questions/100053/fraps-like-programs-for-ubuntu - user76204
3个回答

GLC非常适合这个目的。不幸的是,它没有打包在存档中。然而,我已经将它(以及它的依赖项)放在了PPA中: ppa:george-edison55/glc Launchpad logo点击此处获取使用PPA的说明。
您可以使用以下命令将PPA添加到您的系统中:
sudo apt-add-repository ppa:george-edison55/glc
sudo apt-get update

然后您可以使用以下命令安装GLC:

sudo apt-get install glc

一旦安装了该工具,您可以通过运行以下命令开始录制应用程序:
glc-capture -o /tmp/capture.glc <application>

这将立即启动应用程序。您可以通过按下键盘快捷键Shift + F8在游戏中开始和停止录制。
完成后,您将得到一个名为/tmp/capture.glc的文件,其中包含工具捕获的数据。您可以立即使用以下命令回放录制内容:
glc-play /tmp/capture.glc

如果您希望将录音转换为视频,您可以使用以下方法进行操作:
glc-play /tmp/capture.glc -y 1 -o - | mencoder -demuxer y4m - \
    -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=3000 -o /tmp/capture.avi

这将创建一个名为/tmp/capture.avi的MP4文件,比特率为3,000 Kbps。
来源:

这个似乎无法录制声音。而且,只有使用整个glc才能输出到avi格式。因此,对于分割的视频,你需要重新启动整个游戏。除此之外,一切都完美无缺。 - phil294

我正在使用SimpleScreenRecorder来录制我的Minecraft游戏过程。为了使声音正常工作,需要进行一些调整,但几乎所有录制Minecraft所需的内容都可以在该网站上找到(在“Recording game audio”下)。它有一个图形用户界面,并且尽管名字叫做简单屏幕录制器,但实际上有很多设置可以调整,以满足您的需求(例如质量与文件大小之间的平衡)。安装说明在这里。对于Ubuntu系统,您需要添加一个ppa软件源。
sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder
sudo apt-get update
sudo apt-get install simplescreenrecorder
# if you want to record 32-bit OpenGL applications on a 64-bit system:
sudo apt-get install simplescreenrecorder-lib:i386

要使用它来录制Minecraft,请确保视频输入设置为“记录OpenGL”,点击OpenGL设置,并在“命令”中输入打开Minecraft启动器的Java命令: java -jar /path/to/launcher/Minecraft.jar。确保选中“自动启动OpenGL应用程序”。这样,当您继续到录制窗口时,Minecraft启动器就会打开。只需登录,点击播放,然后按下Ctrl + R(可配置为使用其他组合键)开始/停止录制(或者,您也可以使用按钮)。 glc是另一个可以做同样事情的工具,但我还没有使用过,不知道它是什么样子。不过,您可以随意尝试一下。

有很多程序可以从X缓冲区进行屏幕截图,但这样做非常占用处理器资源且较慢。然而,我确实找到了一种选项,可以直接从显卡进行捕获:Yukon。
另一个选项是glc。glc是一个Linux下的ALSA和OpenGL捕获工具。它由一个通用的视频捕获、播放和处理库以及围绕该库构建的一套工具组成。glc应该能够捕获任何使用ALSA作为音频引擎和OpenGL进行绘图的应用程序。虽然它还是一个相对较新的项目,但已经拥有了一长串功能列表。

1有一个名为Yukon的后续版本,叫做glc:https://github.com/nullkey/glc - lurscher