首页 > 解决方案 > 为什么用ffmpeg渲染后文件大小没有减小?

问题描述

问题:渲染某个视频后,ffmpeg文件大小从 4GB 增加到 6GB。
原始视频:EE1.mkv
FFMPEG 命令:ffmpeg -i EE1.mkv -c:a copy -c:v libx264 -crf 23 -preset medium -profile:v high out.mp4
问题:为什么文件大小增加了?我究竟做错了什么?

!细节!
几年后,我制作了大约 30 个游戏视频(130GB),在当前的 covid-19 情况下,我开始录制我的在线课程(大约 40 个视频或 150GB)。现在因为我的 1TB 外置硬盘空间不足,我开始使用ffmpeg. 之前我只使用obs-studio并没有很好的参数进行记录。

我正在使用CBR录制模式,5000KB 或 15000KB 比特率,不同的 x264 预设和配置文件,因为我也在试验它们。通常具有高调的超快预设。所以我想用ffmpegusing CRF 23、medium preset 和 high profile 转换所有这些视频。请注意,当我使用它录制时,obs-studio它设置为 matroska 格式 ( .mkv) 录制。

当我使用这些设置渲染我的在线课程视频时,我设法在相同质量的情况下实现了 10 倍更好的压缩。在渲染我的游戏视频时,我设法在相同质量的情况下实现了高达 3 倍的更好压缩。然而,有一个视频,当使用相同的参数渲染时,文件大小会增加。

EE1.mkv应以 15000KB 码率录制CBR具有超快预设和高配置文件。此外,该视频中录制的游戏Empire Earth需要大约 8000KB 才能看起来不错。不需要超过 8000KB 的所有内容。

谢谢大家的帮助。

标签: videoffmpegx264screen-recordingobs

解决方案


我发现解决问题的方法是:

  1. 首先,您需要知道要压缩的视频的目标比特率。
    在这种情况下,我通过录制相同的游戏CRF 23并查看它达到的比特率来做到这一点。
  2. 然后我尝试CBR用不同的值渲染视频,CRF并寻找那些比特率与目标比特率相似的值。

在这种情况下是CRF 32。实际上这个过程很痛苦,所以我正在尝试学习QP速率控制,因为它可能是比CRF. 我还是个新手ffmpeg。此外,这种情况仅发生在我以CBRmode 录制的某些视频以及当我尝试使用CRF.


推荐阅读