How to compress video size

ffmpeg -i $in -c:v libx264 -c:a libfaac -crf 20 -preset:v veryslow $out
  • -crf option
    • scale: 0 – 51 (0 is lossless, 23 is the default, and 51 is worst quality possible)
    • Consider 17 or 18 to be visually lossless or nearly so; it should look the same or nearly the same as the input but it isn’t technically lossless
    • The range is exponential, so increasing the CRF value +6 results in roughly half the bitrate / file size, while -6 leads to roughly twice the bitrate.
    • via: shell - FFMPEG convert .mpg video to .mp4 without lose quality - Stack Overflow

自己试了下 0, 无损压缩, 文件大小从 30M → 300M

300M 这个结果有合理预期。 4. 实验结论:建议补充一句总结,例如”因此无损压缩并不适合以缩小体积为目标的场景”,或者改为展示推荐参数下更合理的压缩结果。

这段内容对读者理解影响很大,建议优先重写。 ⇒

References

整体总结

主要优点:

  • 提供了一个立即可用的 ffmpeg 命令,适合快速上手。
  • CRF 参数说明详细,并给出了可信来源,体现出调研基础。
  • 文章简洁,不被不必要的细节拖慢节奏。

最需要注意的 2-3 个模式或局限:

  1. 实验数据的有效性问题:30M 到 300M 的结果与文章主题相反,说明实验呈现方式存在严重误导风险,需要澄清或重做。
  2. 参数解释不足:虽然说明了 -crf,但 libx264、libfaac、preset:v veryslow 等参数缺少简洁解释,新手难以直接迁移使用。
  3. 使用指南不完整:缺少对变量 $in、$out 的说明,以及对 veryslow 转码耗时成本的提醒。

整体建议: 这篇文章目前不适合直接发布。建议先重测并解释 30M 到 300M 的原因,或改用更符合”压缩”目标的参数做对照;然后补充参数用途、适用场景和耗时提示。修正后,这篇文章会更像一篇可执行的经验总结,而不是一条未经解释的命令摘录。