如何制作 WebM 桌面录音?

Kno*_*ube 14 software-recommendation webm

我正在寻找可以以 WebM 格式输出的桌面录像机/截屏应用程序,或者可以将生成的 .ogv 格式转换gtk-recordmydesktop为 WebM 的程序。

我选择了 WebM 作为我需要的格式,因为它似乎是 YouTube 支持的唯一免费编解码器,我的录音将在那里结束。我过去曾尝试上传 .ogv 并获得纯绿色视频,因此这对我不起作用。

我住在美国,我有意识地尝试远离任何可能有软件专利问题的东西,比如gstreamer0.10-plugins-uglygstreamer0.10-plugins-bad。正是出于这个原因,我最初对 Tibesti 感兴趣(例如),但这需要安装上述软件包。

我已经在网上搜索了一些免费(如金钱和自由)解决方案,但到目前为止找不到任何东西。有什么建议?

rey*_*cko 6

您可以通过按Ctrl+ Shift+ Alt+R组合键在 Ubuntu 11.10 + GNOME Shell 中进行 WebM 录制。

第一次按下组合键时,通知区域会出现一个红色圆圈,表示开始录制。第 2 次按下时,红色圆圈消失,您的录音将出现在${HOME}/Videos目录中。

更多信息:Gnome Shell 备忘单:截屏录制


Kno*_*ube 6

12.04 长期

似乎在此版本中ffmpeg 不再正常工作以将recordmydesktop的 .ogv 录音转换为 WebM。由于它不再维护,建议使用它的替代品avconv,在libav-tools包中提供(如果ffmpeg安装了,它似乎会自动安装)。

avconv用于转换所需的命令与以下命令没有太大区别ffmpeg

avconv -i input.ogv output.webm
Run Code Online (Sandbox Code Playgroud)

因此,如果有人面临同样的问题,即在 12.04(或可能以后)尝试仅使用免费包从 .ogv 转换为 .webm,这就是我解决的方法。如果您正在录制以使用视频显示新功能或记录问题,这应该会有所帮助。


小智 6

我正在使用这样的东西:

avconv -f x11grab -s 1024x768 -r 24 -i 0:0 -deadline realtime -b 5000000 -minrate 200000 -maxrate 40000000 recording-filename-000.webm
Run Code Online (Sandbox Code Playgroud)

在哪里:

-f x11grab - 强制输入的屏幕捕获“格式”。

-s 1024x768是输入文件的分辨率(又名捕获区域)。例如等于桌面分辨率。如果小于该值,则记录区域将在左侧和顶部。在这个例子中我使用了 1024x768 的记录区域。

-r 24- 帧率。基本上,真实电影使用 23 到 30 FPS 来提供流畅的录制画面。但是对于截屏,可以减少它以在较低比特率下获得更好的画面。我用24做游戏截屏。

-i 0:0是使用显示 0:0 作为源的提示(设备采用 xorg 表示法)。如果您只有 1 台显示器和默认的 Xorg 设置,则大多数情况下 0:0 就可以了。

-deadline realtime- 是对 libvpx 的提示。我们想要实时捕捉。我们想要实时性能。因此,libvpx 将尽最大努力实时对 VP8 进行编码。为此,它在某种程度上以质量换取速度。在给定的比特率下,质量会比非实时方式差一点。但是编码速度会飞涨。因此,在我的硬件上,它可以处理 1024x768@24FPS 的激烈场景,而不会丢帧(尽管建议使用强大的 CPU)。在这个例子中,我想要以良好的 FPS 和相当大的捕获区域进行高质量的实时捕获。因此,编解码器的 CPU 使用率可能是一个问题。这就是为什么这个提示真的需要好的结果。

-b 5000000- 以比特/秒为单位的目标比特率。我使用 5Mbits 来获得或多或少非常激烈的场景的好照片。编解码器将尝试使视频的平均比特率速度接近此值。该值越低,质量越差,文件越小。您可以进行一些试验以了解什么比特率适合特定用途。如果您过冲,视频共享服务会将视频下变频。如果您要使用自己的服务器,则由您来处理流量。如果欠冲,图像质量会很差。随意更改值以了解什么最适合您。5Mbits 旨在或多或少地在游戏中对激烈的场景进行现场捕捉,在这些场景中您无法轻易看到图片被过度压缩。对于捕获静态应用程序,您基本上需要的远远少于此。

-minrate200000 - 是编解码器允许的最低比特率。根据您要捕获的事物的性质,有时您可能希望强制使用最低比特率以保持合理的图片。有时,编解码器启发式可以将比特率降低到远低于您可能想要的值,从而在某些场景中呈现糟糕的画面。此选项允许强制编解码器保持最低比特率,即使编解码器认为场景很简单并且可能会降低比特率。此参数的高值可能会通过阻止编解码器使用较低的比特率来增加文件大小。

-maxrate 40000000- 此值控制激烈场景中的最大突发比特率。我使用了非常高的值来允许编解码器远高于期望的平均水平,如果它认为在某些场景中需要更高的速度才能保持良好的质量。为了在所有条件下获得漂亮的图片,最好将其设置得足够高(40Mbits 是类似蓝光的速度,可以解决问题)。另一方面,如果您要使用自己的服务器流式传输它,则必须以在激烈场景中牺牲一些图像质量为代价来降低此值。否则服务器可能无法应对所需的突发比特率,无法以实时方式将其交付给用户。然后玩家将面临缓冲区欠载(这很烦人)。视频共享服务会自行处理,通常会以牺牲图像质量为代价将视频下变频以降低参数。

recording-filename-000.webm- 是输出的文件名。如果您使用 .webm 扩展名,ffmpeg/avconv 足够聪明,可以理解您想要 WEBM。就是这么简单 - avconv 从文件名猜测所需的格式。所以 .WEBM 文件是 WEBM 里面的。

就是这样 - 这个命令直接将屏幕录制到 webm 文件。不需要额外的转换,并libvpx暗示尽可能快。没有声音,因为没有声音输入的规范。它可能是您想要的,也可能不是。对于声音,您还必须为声音流指定输入源。

PS 这可能看起来有点过于复杂,但在一天结束时,您会发现一种尺寸不能适合所有尺寸。因此,为了在所有情况下都能获得好看的图片,您可能真的想要一些用于编解码器的句柄并想要调整它们。Ffmpeg 为您提供了您可能需要的所有句柄,而且远不止这些。它是视频转换和编码的重型武器。因此,对于那些想要进行或多或少高级编码并准备进行一些实验以获得真正体面的结果的人来说,这个示例是一个很好的起点。