游戏屏幕录制器

我制作游戏视频,最近在Ubuntu上安装了系统,但一直没找到一个好用的屏幕录像软件。有没有什么推荐的(最好是免费的),可以高清录制,并同时使用多个音频源(比如耳机和电脑音效),并且能在Ubuntu软件中心找到?如果不在软件中心也没关系,只是最好在软件中心能找到。我已经试过Kazam Screencaster和RecordMyDesktop了,但它们对我来说都不理想。谢谢大家!

你能告诉我为什么RecordMyDesktop不够好吗?据我所知,它提供了你列出的所有功能。 - Rafał Cieślak
它没有多个音源的选项。 - user127594
可以!使用JACK音频模式时,您可以通过按住Ctrl键选择多个来源。 - Rafał Cieślak
无法工作。 https://www.dropbox.com/s/pnog9rnulhslwvw/Screenshot%20from%202013-02-01%2016%3A29%3A48.png - user127594
5嗯,它说的是你需要运行JACK音频服务器才能使用这个功能(而且绝对没有其他屏幕录制器可以在没有JACK的情况下捕获声音,这是唯一一种允许多个音频源同时工作的技术)。有一个名为qjackctl的工具可以帮助你以非常简单的方式启动JACK。然后RecordMyDesktop将列出所有你的音频源,而JACK将把来自多个源的音频路由到录制器上。祝好运! - Rafał Cieślak
6个回答

我可以实际证明Grumbel关于在终端中使用recordmydesktop的回答是正确的。在资源使用方面,它是最好的选择。还有ffmpeg/avconv。但是在录制时,你应该考虑一些因素:
  1. 你的硬盘驱动器(假设你没有固态硬盘)转速是多少?如果转速只有5400 RPM,录制时同时播放视频可能会导致画面不流畅或者游戏运行变慢的机会更大。如果转速是7200 RPM并且硬盘缓存容量很大(例如16MB、32MB或者64MB),那么你的使用体验将更好。
  2. 你使用的显卡是什么型号?比如,我遇到过一个用户使用的是FX 5200显卡,真的假的?用那样一张显卡录制游戏时想要获得流畅而清晰的效果根本是不可能的。所以,你的显卡越好,使用体验也就越好。
  3. CPU功率。希望能够创造最佳和精彩的游戏录制,但你却使用了英特尔赛扬或者AMD杜兰处理器,不可能的。那样的情况下,你的录制效果将非常差劲。如果你的CPU功率不够强大(还有与之配套的主板),当你发现录制时同时进行游戏会出现很多卡顿时,不要感到奇怪,因为这将使得录制的视频看起来非常糟糕。
从我的经验来看,要想录制高清视频,需要一台配置良好的电脑,具备足够的CPU、RAM、VIDEO和其他显而易见的硬件(尤其是硬盘的读写速度)。你可以使用Kazam来进行录制(因为你提到了高清)。但是不要使用软件中心提供的Kazam,而是使用PPA中提供的版本。相比于12.04或12.10中的版本,PPA中的版本性能更好。如果你想尝试一下,请按照以下步骤操作:
sudo add-apt-repository ppa:kazam-team/unstable-series
sudo apt-get update && sudo apt-get install kazam

但请考虑以下几点:
1. 在录制过程中,根据所使用的录制应用程序,录制的视频可以直接发送到硬盘/固态硬盘(HDD/SDD),这样会占用一部分硬盘速度,从而影响游戏的流畅度。另一种情况是,根据可用的内存量,视频将被发送到内存中,并开始进行处理(实时编码视频),然后按间隔写入磁盘。
2. 无论如何,请记住,在大多数情况下,录制游戏时视频都会进行编码。这意味着它会占用一部分内存、CPU和硬盘速度。因此,您拥有的任何一项资源越多,对性能的影响就越小。
3. 如果您的显卡和/或CPU针对特定的编码技术进行了优化(例如H.264),那将会有很大帮助。
请注意,我没有提到声音。这是因为与实际视频相比,声音对计算机性能的影响较小。
作为一个例子,我这里有一个使用Ubuntu 13.04,在一台搭载Intel i7 2600,16 GB RAM和Nvidia 560 TI的设备上完成的VIDEO。我有一个Intel 120 GB SSD和一个Intel DZ68DB主板...是的,我知道..全都是Intel的。不管怎样,你可以看到视频的表现。
对于多个音频源,Kazam(PPA中的那个)提供了以下功能:

enter image description here

如您所见,您可以从扬声器听到声音,并且也可以从麦克风听到声音。

这个人已经在做这样的视频录制了,所以可能有一台配置不错的机器。 - ImaginaryRobots
@ImaginaryRobots - 在这一点上,我与你持相同观点,但以防万一。我曾经遇到过(并不是在暗示 OP 是其中之一)一些用户认为,在 Ubuntu 上录制视频时,不考虑硬件因素不会影响他们的录制性能。解释基本原理没有坏处 ^^. 我也正在上传一个视频到 YouTube,以展示给 OP 硬件如何影响性能表现(当然,还包括录制的帧率、录制质量等)。 - Luis Alvarado

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来捕获您的耳机声音。


你可能想要尝试Gamecaster,来自Ubuntu Vibes

gamecaster

Gamecaster 是一个开源项目 glc 的图形前端。它可以捕捉任何使用 ALSA 来进行声音和 OpenGL 进行绘制的 Linux 游戏的实时画面。
Gamecaster 具有以下功能: - 捕捉使用 OpenGL 加速的 Linux 游戏的高清视频 - 选择一个游戏二进制文件或选择已安装的游戏来开始录制 - 播放 .glc 文件 - 将捕获的 .glc 文件编码为 webm 视频格式 - 可以更改捕捉热键、视频比特率和 CPU 线程数量的选项 - 支持 Ubuntu 指示器
我已经为 Ubuntu 12.04 和 12.10 更新了 Gamecaster。它包括一个重要的 bug 修复,这将防止 Gamecaster 在您的桌面上使用其他语言而导致崩溃。
在撰写本文时,Gamecaster 只适用于 12.04 和 12.10 版本。开发似乎已经停止。按下键盘组合:CTRL-ALT-T, 打开您的终端,并复制/粘贴下面的代码。

警告:GameCaster仍处于Alpha阶段(0.3版本)

sudo add-apt-repository ppa:niteshgupta16/gamecaster-stable
sudo apt-get update
sudo apt-get install gamecaster

源代码 tar 包在这里 这里


我推荐使用SimpleScreenRecorder。虽然需要使用命令行来获取它,但它非常简单。我曾经遇到很多其他屏幕录制软件存在视频撕裂等问题,但SSR对我来说效果非常好。
sudo add-apt-repository ppa:maarten-baert/simplescreenrecorder
sudo apt-get update
sudo apt-get install simplescreenrecorder

就是这样了。 希望能对你有所帮助!

我可以为SimpleScreenRecorder担保。不过,有一个重要的功能缺失:录制两个声音源。我非常熟悉它,因为我经常使用它,它非常可靠,只要你能接受这个缺失的功能(当我真的需要麦克风声音时,我用另一个应用程序录制它,然后在剪辑中后期添加,而不需要重新编码)。啊,它在Wayland上不起作用,如果你需要的话。 - undefined

试试看GLC,它不在软件中心里,我也不知道它是否支持多个音频源,但它是唯一一个对我来说在OpenGL上运行良好的。

3Grumbel在GLC上的回答已经比较老,而且更加详细了。 - David Foerster

你可以试试Open Broadcaster Software (OBS)。它适用于多个操作系统;我在我的Windows游戏机上使用它,但它也可以在Linux上原生运行。
它可以捕捉多个声音源,因为我经常直播/录制游戏、Mumble和其他内容。
这个链接是给14.04版本的,但对你来说应该也能用:

http://ubuntuhandbook.org/index.php/2015/06/open-broadcaster-software-ubuntu-14-04/

它很可能也在存储库中。

希望这可以帮到你。