我在 Ubuntu 20.04.2 上使用 Kdenlive v21.04.3。当我尝试渲染时,PC 要么冻结,要么 PC 自行重启,或者 Kdenlive 处于各种状态。偶尔 Kdenlive 会提供错误日志。这是上次失败的输出:
x265 [info]: HEVC encoder version 3.2.1+1-b5c86a64bbbe x265 [info]: build info [Linux][GCC 9.3.0][64 bit] 8bit+10bit+12bit
x265 [info]: using cpu capabilities: MMX2 SSE2Fast LZCNT SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
x265 [info]: Main profile, Level-4 (Main tier)
x265 [info]: Thread pool created using 4 threads x265 [info]: Slices : 1
x265 [info]: frame threads / pool features : 2 / wpp(17 rows)
x265 [info]: Coding QT: max CU size, min CU size : 64 / 8
x265 [info]: Residual QT: max TU size, max depth : 32 / 1 inter / 1 intra
x265 [info]: ME / range / subpel / merge : hex / 57 / 2 / 2 x265 [info]: Keyframe min / max / scenecut / bias: 25 / 250 / 40 / 5.00
hx265 [info]: Lookahead / bframes / badapt : 15 / 4 / 0
x265 [info]: b-pyramid / weightp / weightb : 1 / 1 / 0
x265 [info]: References / ref-limit cu / depth : 2 / on / on
x265 [info]: AQ: mode / str / qg-size / cu-tree : 2 / 1.0 / 32 / 1
x265 [info]: Rate Control / qCompress : CRF-23.0 / 0.60
x265 [info]: tools: rd=2 psy-rd=2.00 early-skip rskip signhide tmvp fast-intra
x265 [info]: tools: strong-intra-smoothing lslices=6 deblock sao
[mp4 @ 0x7f5b98000f40] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
[mp4 @ 0x7f5b98000f40] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
我尝试了很多视频输出配置,渲染到不同的文件夹位置,渲染未编辑的短片。我使用的是板载 SSD 硬盘(内置在技嘉主板中),怀疑是它出了问题。所以我刚刚安装了一个新的内置 SSD HD,并安装了新的 Ubuntu 和 Kdenlive,但这没有帮助。在旧的 HD 上,我回滚到 Kdenlive v19(使用 ubuntu 20.o4),但没有用。我使用旧版本的 Ubuntu 和 Kdenlive v19 渲染正常。我愿意接受任何建议。我已经束手无策了。
以下是另一次崩溃的 kdenlive 报告:
Rendering ... video/1st3clips2.mp4 crashed
no more csLADSPA plugins
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f33102219c0] Value 1.000000 for parameter 'seekable' out of range [-1 - 0]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f3310240840] Value 1.000000 for parameter 'seekable' out of range [-1 - 0]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f331047ed80] Value 1.000000 for parameter 'seekable' out of range [-1 - 0]
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7f3310847440] Value 1.000000 for parameter 'seekable' out of range [-1 - 0]
[mp4 @ 0x7f3310000f40] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. [mp4 @ 0x7f3310000f40] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
在后一次崩溃中,kdenlive 继续运行,Ubuntu 生成了自己的崩溃报告,其中包括:“melt 因 SIGSEGV 崩溃”。我还没有弄清楚如何从 Ubuntu 崩溃报告中复制文本。抱歉这里的字体发生了变化。这不是我故意做的。
这是另一份崩溃报告。
Rendering of /home/lekcin/Videos/Render 2.mp4 crashed
[mp4 @ 0x7f3804000f40] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead. [mp4 @ 0x7f3804000f40] Using AVStream.codec to pass codec parameters to muxers is deprecated, use AVStream.codecpar instead.
Ubuntu 还针对此渲染崩溃生成了一份崩溃报告。标题为:melt crashed with SIGSEGV inx264_8_trellis_coefn()
答案1
就我而言,我发现崩溃是由于 RAM 和 SWAP 使用率过高造成的。当我增加 RAM 和/或增加 SWAP 分区大小时,它就不会再崩溃了。您可以通过运行 htop 或其他显示渲染时内存和 SWAP 使用情况的工具来查看是否也是这种情况。
答案2
我偶然发现了一些可以在 Kdenlive 和 Shotcut 中运行的东西。
在 Kdenlive 中:在渲染选项中,我选择了:/Presets/Hardware Accelerated (experimental)/VAAPI Intel H264。我选择 VAAP Intel H264 选项只是因为我有一个 Intel CPU。
在 Shotcut 中:在我选择的渲染选项中,使用硬件编码器。
在配置“硬件”之前,无论是在 Kdenlive 还是 Shotcut 中,CPU 线程在渲染过程中的运行率都在 100% 左右。选择“硬件”选项后,CPU 线程的运行率平均约为 60%,比较合理。现在,我的渲染中大约有 90% 是成功的。
答案3
当我遇到这个问题时,我禁用了多线程并且渲染停止崩溃。