我有一系列延时图像,用于生成视频。这些图像很大(1080p),所以我试图尽可能少地占用电脑空间。我目前有大约 3500 张图像。如果我使用 FFmpeg 以 30fps 和 3500kb/s 生成视频,则文件大小约为 50MB,这对于 PowerPoint 演示文稿来说并不是一个可行的大小。所以我想使用 FFmpeg 生成视频,但只在视频中使用此图像序列中的每 N 帧。我发现了很多建议如何做到这一点的帖子,但所有这些帖子都是获取现有视频并将其剪辑。我尝试使用命令select
来实现这一点,但无济于事。这是我一直在使用的命令:
ffmpeg -framerate 30 -i Image%08d.jpg -filter:v select='not(mod(n\,5))' -b:v 3500k Output.mp4
有人有什么建议吗?
答案1
您可以直接使用 CRF 模式,而不必指定比特率:
ffmpeg -framerate 30 -i Image%08d.jpg -crf 23 Output.mp4
值越低越好,但会产生较大的文件。18-28 是一个合适的范围。
要使用每 5 帧,
ffmpeg -framerate 30 -i Image%08d.jpg -vf "select='not(mod(n,5))',setpts=N/30/TB" -crf 23 Output.mp4