我想通过删除帧并加快速度来显著减少文件大小。
以下操作有效,但仅限于重新编码时:
ffmpeg -r 1000 -i input.mp4 -r 30 -y output.mp4
ffmpeg -itsscale .01 -i input.mp4 -r 30 -y output.mp4
添加-c copy
会破坏它们。
-r 1000
方法什么也不做。-itsscale
制作加速视频但不会减小文件大小...所有帧是否仍然隐藏在文件中?
有没有什么办法可以丢弃帧并减小文件大小而无需重新编码?
答案1
您不能只丢弃帧来获得可正常工作的视频,因为某些帧依赖于它们之前的帧。这是许多编解码器/格式中用于减小文件大小的一种优化方法。
因此,如果您想减小视频尺寸,您绝对需要重新编码。
欲了解更好的解决方案,请参阅帖子 如何使用 ffmpeg 减小视频尺寸?
这篇高票帖子的答案列出了各种解决方案:
- 使用 H.265 视频格式,该格式更好,因为在相同质量下它可以压缩更多。
- 使用
-crf 28
(关联 - 缩小视频尺寸以获得较小的分辨率。
- 如果视频不包含快速动作场景,请降低帧速率。
- 增加压缩率。
- 降低颜色深度。