如何在 Linux 上创建截屏视频

在Linux系统上录制屏幕视频的多种方式

想在Linux上进行屏幕录像,却被各种工具和软件搞得眼花缭乱?本文将介绍三种不同的屏幕录像方法。从简单快捷到精细控制,我们为你呈现最全面的选择。

制作高质量屏幕录像的技巧

要制作一个成功的屏幕录像,你不仅需要记录屏幕上的操作,还需要加入清晰的解说。这需要你能够录制桌面视频、Linux系统音频以及其他可能的音频来源。

观看优秀的屏幕录像时,你会发现解说或旁白是经过精心处理的。它的表达流畅自然,充满自信。在屏幕录像中,不应该有“嗯”、“啊”等停顿语。这些不仅听起来不专业,还会让你的录像显得业余。这与你想要达到的效果完全相反。你希望观众认为你是该领域的权威,而不是在磕磕巴巴地讲解。

因此,许多更流畅的屏幕录像会单独录制和编辑音频轨道,然后再将其与屏幕视频混合。由于这需要深入探讨,我们将在本文中重点介绍同时录制音频和桌面视频的方法。但这并不意味着你注定要听起来不专业,有一些简单的技巧可以提高你的口头表达质量。

最重要也是最基本的方法是撰写脚本和练习。在开始录制之前,请多次演练你的屏幕录像。记下笔记,明确你要表达的内容和重点。不要害怕使用“脚本”这个词,它不需要是一个复杂的文档。一两页易于阅读的要点将会有很大的帮助。关键是,当你在讲解时,不应该因为试图阅读脚本而分心。

花时间进行试运行。专业人士进行彩排是有原因的。要同时完成讲解、控制屏幕录像软件并保持良好的口头表达是非常具有挑战性的。

选择合适的麦克风和摄像头

你需要一个设备来记录你的声音。这意味着你需要购买一个麦克风,如果你的笔记本电脑自带的麦克风效果足够好,那简直是个奇迹。麦克风不必非常昂贵,但一个合理的外部麦克风可以让你自然地说话并以合适的音量录制,这是至关重要的。拥有麦克风支架也会带来额外的便利。

如果你想在屏幕录像中露脸,你需要一个摄像头。如果只是记录你的头部和肩膀,以便在屏幕录像的一个小窗口中显示,则不需要电影级相机。但是,你需要一个比笔记本电脑自带的基本网络摄像头更好的选择。一个单独的摄像头可以让你将其放置在需要的位置。

自动对焦、自动调光和良好的分辨率传感器都是重要的考虑因素。一个好的相机可能自带一个足够你使用的麦克风,这并非不可能。因此,如果你正在寻找相机和麦克风,可以先购买相机,看看它的麦克风是否能满足你的需求。

使用GNOME内置录像工具快速录制

值得一提的是,如果你使用GNOME桌面环境 (DE),你可以使用直接内置在其中的简单屏幕录像工具,虽然它不提供音频录制功能。如果你只需要一个简短的无声视频片段,它足以胜任。例如,创建一个小片段发送给他人,以展示重现错误所需的步骤,非常方便。

要开始在桌面上录制活动,只需按下:

Ctrl+Shift+Alt+R

屏幕录制会立即开始。在通知区域,靠近网络、声音和电源图标的位置,会出现一个红色的圆形指示器。

要停止录制,请使用相同的组合键:

Ctrl+Shift+Alt+R

录制指示器将从通知区域消失。你的录像将存储在你的 ~/Videos 目录中,文件名带有时间戳。该文件的扩展名为“.webm”,表示它是以WebM视频格式录制的。

如果你想将你的录像上传到YouTube,你需要将其转换为MPEG-4 (MP4) 格式。我们将稍后介绍如何使用另一个名为ffmpeg的工具实现这一点。

请注意,默认情况下,最大录制时长为30秒。你可以使用dconf编辑器来更改此设置。该设置位于org > gnome > settings-daemon > plugins > media-keys下。要调整的设置名为max-screencast-length。

使用recordMyDesktop快速简单地录制

recordMyDesktop是一个简单易用的屏幕和录音工具。它允许你录制整个桌面、部分桌面或特定的应用程序窗口。

要在Ubuntu上安装recordMyDesktop,请使用以下命令:

sudo apt-get install recordmydesktop gtk-recordmydesktop

要在Fedora上安装recordMyDesktop,请使用以下命令:

sudo dnf install recordmydesktop gtk-recordmydesktop

要在Manjaro上安装recordMyDesktop,请使用以下命令:

sudo pacman -Syrecordmydesktop gtk-recordmydesktop

用户界面非常简洁。

默认情况下,recordMyDesktop会录制整个桌面。要录制部分桌面,请在预览缩略图中点击并拖动。这将定义要录制的屏幕区域。要录制单个应用程序窗口,请单击“选择窗口”按钮,然后单击桌面上的应用程序窗口。

准备好录制时,单击“录制”按钮。在通知区域中,靠近网络、声音和电源图标的位置,会出现一个红色指示器。

左键单击指示器,然后从菜单中选择“停止”以停止录制。录像将由recordMyDesktop处理并保存。如果你取消此过程,你将丢失录像。

录制完成后,单击“另存为”按钮以保存你的屏幕录像。“文件保存”对话框允许你选择保存录像的位置。

录像以“.ogv”Ogg视频格式保存。这是唯一可用的格式。要将文件转换为不同的视频格式,你可以使用接下来要介绍的工具ffmpeg。

使用ffmpeg命令行工具进行高级控制

FFmpeg项目于2000年发布了第一个版本的ffmpeg实用工具。他们最初对有用的图形和视频转换程序的愿景已经远远超出了预期。ffmpeg现在是一套功能强大的工具,它包含许多编解码器,并被许多知名的应用程序使用,例如VLCPlexBlender

如果你需要进行一些音频或视频录制或格式转换,并且想知道ffmpeg是否能够做到,那么答案基本上是“是的”。

ffmpeg有非常多的选项。这个超过4000行的选项列表可以证明这一点。如果你想做一些简单的格式转换之外的事情,那么它丰富的特性可能会带来相当陡峭的学习曲线。ffmpeg没有漂亮的前端,但它在界面方面的不足可以通过其强大的功能、速度和灵活性来弥补。由于它是命令行驱动的,因此你可以从脚本中调用它。你可以录制无人值守命令的瞬态输出,或者录制无法重定向到文件的GUI屏幕活动。

在我们的测试过程中,ffmpeg需要安装在Fedora 31和Ubuntu 18.04上。它已经存在于Manjaro 18.1.0上。要在Ubuntu上安装ffmpeg,请使用以下命令:

sudo apt-get install ffmpeg

要在Fedora上安装它,需要添加两个存储库。此命令将注册第一个:

sudo dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

此命令将注册第二个:

sudo dnf -y install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

现在可以使用以下命令安装ffmpeg应用程序:

sudo dnf -y install ffmpeg

如何使用ffmpeg录制视频和音频

为了使事情(相对)简单,我们将直接使用音频录制整个桌面。我们需要向ffmpeg提供许多参数才能完成此操作。我们可以使用一些实用程序来帮助我们找到其中一些值。

要识别可用的屏幕分辨率,我们可以使用xrandr。我们不需要为此命令提供任何参数:

xrandr

输出列出了所有可用的屏幕分辨率。

当前的分辨率,也是这台测试机器上可用的最高分辨率,是1920×1080。我们将使用它。

现在,我们将找出PulseAudio在这台测试机器上的声源。我们将使用pactl实用工具并要求它列出来源。语法非常简单:

pactl list sources

通过滚动浏览详细输出,我们可以看到有一个源#0,它是一个输出源。这意味着它会产生声音输出。

查看输出的其余部分,会发现另一个名为源#1的源。这是一个输入源。

这意味着源#1接收声音输入。例如,它将来自麦克风。因此,我们将使用带有ffmpeg的源#1,并通过麦克风录制我们的声音。

这是完整的ffmpeg命令:

ffmpeg -video_size 1920x1080 -framerate 25 -f x11grab -i :0.0 -f pulse -ac 2 -i 1 output.mkv -async 1 -vsync 1

让我们分解一下:

-video_size 1920×1080:设置视频捕获的大小。这是我们使用xrandr找到的值。
-framerate 25:设置每秒帧数值。
-f x11grab:强制视频格式为特定类型。在这里,我们将输入格式设置为X服务器的输出。
-i :0.0:指定视频输入将来自主屏幕。
-f pulse:将预期格式设置为PulseAudio。
-ac 2:设置两个音频通道。
-i 1:从PulseAudio源#1获取音频输入。这是我们使用pactl找到的值。
output.mkv:我们想要创建的文件的名称。
-async 1:设置音频同步方式。这是一个已弃用的参数,但我们在这里使用它以避免可忽略的错误消息。
-vsync 1:设置视频同步方式。这是一个已弃用的参数,但我们在这里使用它以避免可忽略的错误消息。

随着录制的进行,你可以在终端窗口中看到大量信息滚动。最小化此终端窗口,或将你正在讲解的应用程序的主窗口放在它上面,以便它不会出现在你的屏幕录像中。

要停止录制,请在终端窗口中输入Ctrl+C。如果一切顺利,你将看到来自ffmpeg的确认消息,报告它正在正常退出。

我们没有在ffmpeg命令中的输出文件名上放置路径,因此它将在启动ffmpeg的目录中创建。在这个例子中,那是我们的主目录。

使用ffmpeg转换视频文件

我们之前提到过,上传到YouTube的首选视频格式是MPEG-4。我们可以使用ffmpeg轻松地将“.mkv”转换为“.mp4”文件。我们说“转换”,但实际上,我们完全是在创建一个新文件。你的原始文件不受影响。

命令很简单。我们使用-i(输入)选项告诉ffmpeg使用原始文件作为输入。输出文件的文件扩展名告诉ffmpeg要创建什么类型的文件。

ffmpeg -i output.mkv output.mp4

使用“.mp4”文件扩展名创建一个新文件。

要将使用Ctrl+Shift+Alt+R方法录制的屏幕录像转换为MPEG-4视频格式,请使用以下命令:

ffmpeg -i "Screencast from 11-02-19 10:47:05.webm" output.mp4

功能强大且用户友好:使用OBS Studio

如果你正在寻找比recordMyDesktop功能更多,并且比ffmpeg更容易操作的工具,Open Broadcaster Software Studio(OBS Studio)是一个不错的选择。

使用以下命令在Ubuntu上安装OBS Studio:

sudo apt-get install obs-studio

使用以下命令在Fedora上安装OBS Studio:

sudo dnf install obs-studio

使用以下命令在Manjaro上安装OBS Studio:

sudo pacman -Sy obs-studio

如何在OBS Studio中使用源和场景

OBS Studio在应用程序的底部有一个大的工作区和一组窗格。

你应该从哪里开始呢?

为了更好地使用该软件,我们需要一个目标,一个可以尝试实现的终点。观看一个高质量的屏幕录像,然后尝试复制它的制作似乎是一个明智的做法。我用作模板的屏幕录像显示了一个桌面,其中打开了几个应用程序。演示者的画面被嵌入在屏幕的一个小窗口中。有时,显示会更改为显示单个窗口的放大视图。这使得对特定细节的讨论成为可能。画外音则提供了解说。

由于其场景和来源的概念,所有这些都非常容易在OBS Studio中复制。OBS中的源是指产生声音或视频的元素。你的桌面、桌面上的窗口、网络摄像头、输出音频源和输入音频源(如麦克风)都是有效的源。

源的集合可以组合成一个场景。可以创建包含不同源组合的多个场景。场景之间的切换只需单击鼠标即可完成。

要创建场景,请右键单击“场景”窗格,然后单击上下文菜单中的“添加”。在“添加场景”对话框中输入场景的名称,然后单击“确定”按钮。

你创建的场景将列在“场景”窗格中。

我们创建了两个场景,一个用于桌面和网络摄像头合成视图,另一个用于终端窗口的放大视图。我们需要为这些场景添加一些源。我们将使用“缩放终端窗口”场景。要向场景中添加源,请在“场景”窗格中选择它,然后在“源”窗格中单击鼠标右键。在上下文菜单中单击“添加”。

该菜单允许你添加图像、音频输入和输出、应用程序窗口、视频源以及其他可能想要包含在屏幕录像中的元素。我们将捕获一个窗口。单击“窗口捕获(Xcomposite)”菜单选项。

在“创建/选择源”对话框中,为源创建一个名称,然后单击“确定”按钮。

在“窗口捕获属性”对话框中,使用“窗口”下拉菜单选择要添加到场景中的窗口,然后单击“确定”按钮。

让我们重复一遍,为麦克风添加一个源。右键单击“源”窗格,然后单击上下文菜单中的“添加”。用于研究本文的测试机器使用的是PulseAudio。如果你使用不同的方案,例如高级Linux声音架构(ALSA),你将选择不同的选项。我们从菜单中选择了“音频输入捕获(PulseAudio)”。

在“创建/选择源”对话框中,为源命名,然后单击“确定”按钮。

在“’音频输入捕获(脉冲音频)’的属性”对话框中,使用“设备”下拉菜单选择麦克风连接的声音设备。单击“确定”按钮。

你的“源”窗格现在应该有两个源,用于当前场景。

你可以对源进行大量的微调。例如,在“音频混音器”窗格中,右键单击麦克风的设置图标会弹出一个上下文菜单。

选择“过滤器”会显示“用于‘麦克风’的过滤器”对话框。

要添加过滤器,请右键单击左侧窗格,然后从上下文菜单中选择“添加”。每个过滤器都有可以调整的属性。

经过反复试验,我们选择了与测试麦克风配合良好的过滤器和设置。我们在清晰度和音量以及背景噪音的减少之间取得了很好的平衡。

创建第二个场景同样简单。我们正在录制的桌面在虚拟机中运行。通过添加整个虚拟机正在运行的窗口,可以轻松地将其添加到场景中。网络摄像头作为视频源添加,并拖动并调整大小以坐在显示器的角落。以下是观众会看到的画面:

在两个场景之间切换就像在“场景”窗格中单击场景名称一样简单。放大的终端场景提供了top命令的最佳全屏视图。

虽然可以做到,但OBS Studio建议不要以MPEG-4格式录制。如果出现问题,你可能会丢失文件。相反,他们建议你录制FLVMKV格式。

如果你需要以不同的视频格式提供屏幕录像,OBS Studio可以为你进行转换,当然,你也可以使用ffmpeg。

准备,开始,录制!

你可能永远无法进入好莱坞,但如果你需要制作高质量的屏幕录像,Linux拥有你需要的所有工具。