使用ffmpeg并行递归转换文件
recursively convert files using ffmpeg in parallel
我有以下两个命令:
parallel --eta ffmpeg -loglevel 0 -i {} -c:a aac -b:a 64k {.}.aac ::: *
将当前文件夹中的所有文件(音频)并行转换为 aac 格式 (file.mp3>file.aac
),并且
find . -type f -not -name "*.jpg" -exec bash -c 'ffmpeg -loglevel 0 -i "{}" -c:a aac -b:a 64k "{}".aac' \;
将所有子目录中的所有文件转换为 aac 格式 (file.mp3>file.mp3.aac
),但不是并行。
所以我想完成两件事:
- 并行执行命令2
- 结果保存在命令 1 中,即
file.mp3>files.aac
而不是 file.mp3>file.mp3.aac
。
我尝试了一些组合,但都没有用。
好的,
我想我终于明白了:
find . -type f -not -name "*.jpg" -not -name "*.png" -not -name "*.aac" -print0 | parallel -0 --eta ffmpeg -loglevel 0 -i {} -c:a aac -b:a 64k {.}.aac
我有以下两个命令:
parallel --eta ffmpeg -loglevel 0 -i {} -c:a aac -b:a 64k {.}.aac ::: *
将当前文件夹中的所有文件(音频)并行转换为 aac 格式 (file.mp3>file.aac
),并且
find . -type f -not -name "*.jpg" -exec bash -c 'ffmpeg -loglevel 0 -i "{}" -c:a aac -b:a 64k "{}".aac' \;
将所有子目录中的所有文件转换为 aac 格式 (file.mp3>file.mp3.aac
),但不是并行。
所以我想完成两件事:
- 并行执行命令2
- 结果保存在命令 1 中,即
file.mp3>files.aac
而不是file.mp3>file.mp3.aac
。
我尝试了一些组合,但都没有用。
好的,
我想我终于明白了:
find . -type f -not -name "*.jpg" -not -name "*.png" -not -name "*.aac" -print0 | parallel -0 --eta ffmpeg -loglevel 0 -i {} -c:a aac -b:a 64k {.}.aac