如何修改Bash脚本实现批量检测目录wav文件并自动转码为aac?
Bash批量转WAV为AAC脚本实现
需求说明
原有单参数调用的Bash转码脚本,仅支持每次传入单个WAV文件转成AAC编码文件,需要调整为如下逻辑:
- 无需传入参数,自动遍历当前目录下所有WAV格式文件
- 仅当对应转码后的AAC文件不存在时,才执行转码操作
原始单文件转码脚本
#!/bin/bash ffmpeg -i "$1" -vn -acodec aac "$(basename "${1/.wav}").aac"
最终可用批量转码脚本
#!/bin/bash for file in ./*.wav; do [ -e "$file" ] || continue # 检查是否存在匹配的WAV文件,无匹配时直接跳过循环 if [[ ! -f "${file}.aac" ]]; then ffmpeg -i "${file}" -vn -acodec aac "$(basename "${file}").aac" fi; done;
使用方式
- 将上述代码保存为脚本文件,例如命名为
batch_wav2aac.sh - 给脚本添加执行权限:
chmod +x batch_wav2aac.sh - 将脚本移动到存放WAV文件的目录下,直接执行即可完成批量转码
内容的提问来源于stack exchange,提问作者steve
相关产品推荐
相关产品推荐

