如何通过命令行或批处理脚本与ffmpeg转换整个目录/文件夹?
当前回答
要转换子目录,请使用例如。
find . -exec ffmpeg -i {} {}.mp3 \;
其他回答
窗口:
@echo off
for /r %%d in (*.wav) do (
ffmpeg -i "%%~nd%%~xd" -codec:a libmp3lame -c:v copy -qscale:a 2 "%
%~nd.2.mp3"
)
这是质量2的可变比特率,如果你想,你可以把它设置为0,但除非你有一个非常好的扬声器系统,否则在我看来这是毫无价值的
如果你有GNU并行,你可以将vid_dir以下的所有。avi文件并行转换为mp4,使用你的CPU内核
find vid_dir -type f -name '*.avi' -not -empty -print0 |
parallel -0 -j -1 ffmpeg -loglevel fatal -i {} {.}.mp4
要从/转换为不同的格式,请更改'*。Avi '或。mp4。GNU parallel在大多数Linux发行版的存储库中以一个通常称为parallel的包的形式列出。
为了逗你笑,这里有鱼壳的解决方案:
for i in *.avi; ffmpeg -i "$i" (string split -r -m1 . $i)[1]".mp4"; end
要转换子目录,请使用例如。
find . -exec ffmpeg -i {} {}.mp3 \;
使用fd命令(存储库)的替代方法:
cd directory
fd -d 1 mp3 -x ffmpeg -i {} {.}.wav
-d表示深度
-x表示执行
{。没有文件扩展名的}路径