为什么我使用 FFmpeg 创建的将 MP4 文件转换为 GIF 文件的批处理脚本不起作用?

为什么我使用 FFmpeg 创建的将 MP4 文件转换为 GIF 文件的批处理脚本不起作用?

这是我目前所拥有的。它可以运行,但会引发错误。

我想出了以下几点。

for %%a in ("*.mp4") do ffmpeg -i "%%a" -t 3 -vf "fps=10, scale=320, flags=lanczos, split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 copy "__newfiles\%%~na.gif"

答案1

无法找到适合“复制”的输出格式

删除copy。这不是一个实际的选择。ffmpeg假设您希望将输出命名为copy,但它不知道copy应该采用哪种容器格式(GIF、MP4、AVI、MKV、MOV 等)。

尺寸‘320’无效

更改scale=320scale=320:-1。您需要提供宽度和高度。-1自动选择正确高度的手段。请参阅比例过滤器文档

没有这样的过滤器:“flags”

flags不是独立过滤器。它是比例过滤器的一个选项。更改scale=320:-1, flags=lanczosscale=320:-1:flags=lanczos。请参阅比例过滤器文档


固定命令

for %%a in ("*.mp4") do ffmpeg -i "%%a" -t 3 -vf "fps=10, scale=320:-1:flags=lanczos, split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 "__newfiles\%%~na.gif"

相关内容