#2683 翻译后视频体积异常变大

95.85* Posted at: 15 hours ago 👁13

原视频16M

以h.265硬编码的方式生成翻译后,输出翻译后视频体积膨胀到70M+

翻看代码发现,

  • 如果原视频是 1080p,会自动设置 -maxrate 8000k -bufsize 16000k
  • 如果原视频是 720p,会自动设置 -maxrate 5000k -bufsize 10000k

例如视频原始可能只有4000左右的kbps,这个步骤可能直接导致视频体积增长至少2被。是否主要是这个原因导致?

1 Replies

是的,您分析得非常准确。视频体积异常增大的主要原因,正是软件在重新编码时自动设置的 -maxrate-bufsize 参数。

核心原因分析

  1. 自动码率上限:软件会根据原视频分辨率,强制设置一个较高的最大码率上限(如1080p为8000kbps)。如果原视频平均码率远低于此(如您提到的4000kbps),重新编码时可能会尝试填充到这个上限,导致文件体积显著增加。
  2. 质量控制参数 (CRF) 的优先级:在FFmpeg的编码中,-crf(恒定质量)和 -maxrate(最大码率)是两种不同的码率控制模式。当两者同时存在时,行为可能变得复杂,如果 -maxrate 设置得过高,可能会干扰 -crf 的预期效果,导致编码器为了不突破最大码率而分配了不必要的比特。

解决方案

您可以通过修改高级选项中的视频输出参数来解决此问题:

方法一(推荐):移除自动码率限制

  1. 在软件主界面,点击菜单栏的 工具 -> 选项 -> 高级选项
  2. 在“视频输出控制”区域,找到 视频输出质量控制 (CRF)输出视频压缩率 (Preset)
  3. 关键步骤:在 视频输出质量控制 (CRF) 的输入框内,直接追加参数来覆盖默认的码率限制。例如,如果您希望使用CRF 23并禁用最大码率限制,可以输入:
    -crf 23 -maxrate 0 -bufsize 0

    • -maxrate 0 -bufsize 0 表示不设置最大码率限制,完全由CRF控制质量和体积。
  4. 点击“保存”并重新处理视频。

方法二:调整编码预设和CRF值

  1. 同样在“高级选项 -> 视频输出控制”中。
  2. 输出视频压缩率 (Preset) 改为更慢的选项,如 slowslower。更慢的预设能在相同画质下生成更小的体积。
  3. 适当调高 视频输出质量控制 (CRF) 的数值。默认是23,数值越大,画质越低,体积越小。您可以尝试设置为 2628 来显著减小体积(需在输出后检查画质是否可接受)。

方法三:检查是否启用了“视频慢速”

  • 在主界面第5行,确保 视频慢速 选项没有勾选。勾选此选项会通过复制帧来延长视频时间,导致体积成比例增加。

总结

您遇到的体积膨胀问题,根源在于软件为保障高清视频质量而设置的保守码率上限,与您低码率原视频的实际情况不匹配。通过方法一,在CRF参数后追加 -maxrate 0 -bufsize 0 来禁用自动码率限制,是解决此问题最直接有效的方法。

请查看更多参考文档:

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Donate: https://ko-fi.com/jianchang512

Trending Questions