我正在使用 Windows 10 PC,并按照说明使用 FFmpeg 从视频中提取帧在 SuperUser 上的另一个问答主题中. 如何控制生成的 webP 文件的大小?
我尝试了以下命令:
ffmpeg -i anim.mp4 -vf "select=not(mod(n\,6))" -vsync vfr img1/f%04d.jpg -preset photo
ffmpeg -i anim.mp4 -vf "select=not(mod(n\,6))" -vsync vfr img/f%04d.webp -qscale 20 -lossless false -preset photo -compression_level 6
答案1
FFmpeg 中的选项顺序很重要。
输出文件的选项位于该输出文件之前和所有输入文件之后。
因此,这个命令:
ffmpeg -i anim.mp4 -vf "select=not(mod(n\,6))" -vsync vfr img/f%04d.webp -qscale 20 -lossless false -preset photo -compression_level 6
应该:
ffmpeg -i anim.mp4 -vf "select=not(mod(n\,6))" -vsync vfr -qscale 20 -lossless false -preset photo -compression_level 6 img/f%04d.webp
除了 WebP 编码器的质量有专门的选项外quality
,因此:
ffmpeg -i anim.mp4 -vf "select=not(mod(n\,6))" -vsync vfr -quality 50 -lossless false -preset photo img/f%04d.webp
quality
范围为 0 至 100,数值越高越好。默认值为 75。
compression_level
还将调节控制和编码速度,6 表示最慢/最佳。范围是 0-6。