我有一个 24 fps 的视频。首先,我将其分成几帧:
ffmpeg -i input.mp4 frame%06d.png
其次,我将这些帧连接起来,并用另一个命令压缩结果:
ffmpeg -r 24 -i frame%06d.png -c:v libx264rgb -crf 0 -preset ultrafast all.mp4
ffmpeg -i all.mp4 -c:v libx264 -pix_fmt yuv420p -crf 27 -preset veryslow allcompressed.mp4
第三,我删除了每个第二帧(末尾有偶数的帧),然后重命名它们,以便它们具有连续的数字。
最后,我使用前面的命令将它们连接起来并压缩,但速度为 12 fps:
ffmpeg -r 12 -i frame%06d.png -c:v libx264rgb -crf 0 -preset ultrafast odds.mp4
ffmpeg -i odds.mp4 -c:v libx264 -pix_fmt yuv420p -crf 27 -preset veryslow oddscompressed.mp4
我不明白的是,allcompressed.mp4 是 296 741 kB,而 oddscompressed.mp4 是 322 369 kB。这怎么可能?我没想到会得到原始大小的一半,但从较少的信息中获得更大的文件却令人惊讶。
另一个异常现象:
之前(在删除每一秒的 .png 之前),我错误地将 fps 设置为 10:ffmpeg -r 10 -i frame%06d.png -c:v libx264rgb -crf 0 -preset ultrafast all10.mp4 ffmpeg -i all.mp4 -c:v libx264 -pix_fmt yuv420p -crf 27 -preset veryslow allcompressed10.mp4
我以为 allcompressed10.mp4 和 allcompressed.mp4 的大小应该差不多,因为它们包含的帧数相同。然而,后者是 296 741 kB,而前者是 758 740 kB(现在错了,它大了 2.5 倍)
这怎么可能?