Recordmydesktop 对视频文件进行编码。生成的文件仅需 8 分钟而不是数小时

Fla*_*Fla 5 video recordmydesktop screencast

我做了一个很长的截屏视频recordmydesktop(将近两个小时)。

在录制结束时,像往常一样recordmydesktop开始对其录制的所有原始数据进行编码以生成out.ogv视频文件。

但是,现在无法完全创建该文件。编码过程正常启动,out.ogv创建并开始增长,但在 1?209?585?664 字节(视频长 8min11)处停止。recordmydesktop什么也没说,看起来它只是继续渲染,但没有任何反应。过了一段时间,我的电脑就死机了,我猜 RAM 和 SWAP 已经满了。视频还是8分11。

我担心我会丢失所有工作,但我发现recordmydesktop隐藏在/tmp/rmMD-session-4625/目录中的原始文件。这个文件夹是 50GB,所以我的截屏视频肯定在那里。我搜索了文档并找到了--rescue允许重新启动编码过程的选项。我再次启动它,让它这样一整夜,今天早上,进程停止了,新的视频文件仍然与第一次尝试完全相同,停在8分11分。

终端的输出:

recordmydesktop --rescue /tmp/rMD-session-4625/
Restoring /tmp/rMD-session-4625/!!!
STATE:ENCODING
Encoding started!
This may take several minutes.
Pressing Ctrl-C will cancel the procedure (resuming will not be possible, but
any portion of the video, which is already encoded won't be deleted).
Please wait...
Output file: out-4.ogv
[0%] Processus arrêté0]
Run Code Online (Sandbox Code Playgroud)

这是specs.txt文件rMD-session-4625夹中文件的内容:

recordMyDesktop = 0.3.8.1
Width = 1920
Height = 1072
Filename = out.ogv
FPS = 15.000000
NoSound = 0
Frequency = 22050
Channels = 1
BufferSize = 4096
SoundFrameSize = 2
PeriodSize = 1365
UsedJack = 0
v_bitrate = 0
v_quality = 63
s_quality = 10
ZeroCompression = 1
Run Code Online (Sandbox Code Playgroud)

我知道这recordmydesktop是一个相当古老的程序。输出文件大小有限制吗?如果是这样,它不能生成几个我可以连接的小文件吗?我备份了文件夹的内容,以确保不会丢失/tmp/. 我不能失去那份工作!

编辑:好的,我试了一下:我创建了一个 65GB 的交换文件。使用我的 16GB RAM,这为 RecordMyDesktop 提供了 80GB 来编码视频。我有同样的行为,文件停止增长 1.2GB。我让 RMD 继续,它在 4 天内使用了 100% 的一个 CPU 内核,并完全填满了它可用的 80GB 内存,对结果没有任何改变。我认为原始文件是 50GB,一旦它在 RAM 中,它就会做一些事情,但没有。

该程序的源代码可用,但我对 C 生疏了。我联系了开发人员但没有任何答复。原始文件不是 YUV420,但我无法使用 ffmpeg 转换它们。请帮忙!