以下是一个示例代码,它可以通过子文件夹循环运行ffmpeg命令并将其导向文件夹中的文件进行处理:
#!/bin/bash
# 循环遍历所有子文件夹
for folder in */; do
echo "处理文件夹: $folder"
# 进入子文件夹
cd "$folder"
# 循环遍历当前文件夹中的所有文件
for file in *; do
# 检查文件是否为视频文件(以.mp4为例)
if [[ $file == *.mp4 ]]; then
echo "处理文件: $file"
# 运行ffmpeg命令并将输出重定向到与输入文件同名的输出文件
ffmpeg -i "$file" -vf "output/$file"
fi
done
# 返回上一级文件夹
cd ..
done
请注意,上述代码中的
需要替换为实际的ffmpeg过滤器选项。此外,你还可以根据实际需求进行其他自定义操作,例如修改文件扩展名、更改输出文件夹等等。
你可以将上述代码保存为一个名为batch_convert.sh
的脚本文件,并在终端中运行以下命令来执行它:
chmod +x batch_convert.sh # 给脚本文件添加执行权限
./batch_convert.sh # 执行脚本文件
这将在当前文件夹中执行脚本,并递归处理所有子文件夹中的视频文件。