如何通过命令行或批处理脚本与ffmpeg转换整个目录/文件夹?
当前回答
对于任何想要用ffmpeg批量转换任何东西,但想要有一个方便的Windows界面的人,我开发了这个前端:
https://sourceforge.net/projects/ffmpeg-batch
它为ffmpeg添加了一个窗口时尚界面,进度条和时间剩余信息,这些功能是我在使用ffmpeg时经常错过的。
其他回答
@Linux 为了转换一堆,我的一行代码是这样的 (。Avi到。mkv)在同一目录:
for f in *.avi; do ffmpeg -i "${f}" "${f%%.*}.mkv"; done
请注意输出语句中的两个“%%”。它不仅提供了第一个单词或输入文件名,还提供了最后一个点之前的所有内容。
一行bash脚本很容易完成——替换*。Avi与您的文件类型:
for i in *.avi; do ffmpeg -i "$i" -qscale 0 "$(basename "$i" .avi)".mov ; done
为了逗你笑,这里有鱼壳的解决方案:
for i in *.avi; ffmpeg -i "$i" (string split -r -m1 . $i)[1]".mp4"; end
如果您想要一个图形界面来使用ffmpegX进行批处理,请尝试Quick Batcher。它是免费的,并将使用您最后的ffmpegX设置来转换您放入其中的文件。
注意,不能将文件夹拖放到Quick Batcher上。所以选择文件,然后把他们通过快速批处理。
复制@HiDd3n,你也可以这样做,如果你想递归搜索文件目录,以防你有很多文件夹:
for /r %i in (*.webm) do "C:\Program Files\ffmpeg\bin\ffmpeg.exe" -i "%i" "%~ni.mp3"