【发布时间】:2018-06-17 14:10:40
【问题描述】:
我正在尝试使用 ffmpeg 将 flac 文件转换为 wav 文件。 flac 文件位于不同的子目录中。
/speech_files
/speech_files/201/speech1.flac
/speech_files/201/speech2.flac
/speech_files/44/speech45.flac
/speech_files/44/speech109.flac
/speech_files/66/speech200.flac
/speech_files/66/speech33.flac
脚本运行后我想要的如下
/speech_files
/speech_files/201/speech1.wav
/speech_files/201/speech2.wav
/speech_files/44/speech45.wav
/speech_files/44/speech109.wav
/speech_files/66/speech200.wav
/speech_files/66/speech33.wav
我可以让我的脚本在一个目录中运行,但我很难让它从顶级目录 (speech_files) 运行并在所有子目录中运行。下面是我正在使用的脚本。
#!/bin/bash
for f in "./"/*
do
filename=$(basename $f)
if [[ ($filename == *.flac) ]]; then
new_file=${filename%?????}
file_ext="_mono_16000.wav"
wav_file_ext=".wav"
ffmpeg -i $filename $new_shits$wav_file_ext
ffmpeg -i $new_file$wav_file_ext -ac 1 -ar 16000 $new_file$file_ext
rm -f $filename
rm -f $new_file$wav_file_ext
fi
done
【问题讨论】:
-
当你想
cd到带有 flac 的目录时,请查看 stackoverflow.com/a/42683508/3220113
标签: bash