FFmpeg批量压缩mp4并转换成gif

FFmpeg批量压缩mp4并转换成gif

我想要取出一个 mp4 文件夹并使用 ffmpeg 压缩它们并将它们转换成 gif。

我使用以下代码对每个文件执行此操作:

ffmpeg -i input.mp4 -c:v libx264 -tune zerolatency -preset ultrafast -crf 40 -c:a aac -b:a 32k output.mp4

-crf 可以达到 63 并且我可以调整结果文件的压缩程度。

但是我如何对整个文件夹的 mp4 运行该代码并将它们全部压缩并转换为 gif?

因此,我阅读了该板上所有可能出现的问题,并发现使用此代码制作一个.bat 文件,然后在命令提示符下运行它:

for %F in (*.mp4) do (If not Exist "%~nF" MkDir "%~nF" ffmpeg -i %F -r 1 -qscale:v 2 %~nF\%~nF-%3d.jpg)

确实接近我的需要(除了这是将多个 mp4 分解为 jpg)。

此代码将我发现的多个 mp4 转换为 gif:

for %i in (*.mp4) do ffmpeg -i "%i" "%~ni.mp3

正如你所见,我正在尝试真正地玩弄这些代码,每一个都很棒,但我希望有一个组合的 ffmpeg 代码,A)获取一个装满 mp4 的文件夹 b)压缩它们,我可以在其中自定义 -crf 和 c)将它们转换为 gif,并添加前缀或后缀或其他方式,让我仍然可以识别原始文件是什么。

如果有一种方法可以在不使用可定制的 -crf 的情况下做到这一点,那么这是可行的。

谢谢大家的帮助!

相关内容