小小的记录一下
文件名有空格时,需要把IFS改一下,不然ffmpeg会用空格分割,当成多个文件

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")

ffmpeg转mp3的命令,-i audio.wav中的audio.wav是输入文件,audio.mp3是输出的文件

ffmpeg -i audio.wav -acodec libmp3lame audio.mp3

假设在当前目录下有多个WAV文件
例如1dd.wav 2ff.wav 3gg.wav

遍历它们,并且获得它们的文件名,但不包含.wav,用作输出的文件名

basename命令

root@static:~# basename -s .wav 1dd.wav
1dd
root@static:~# basename -s .wav 2ff.wav
2ff

组合一下这些命令

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for file in ./*;do\
        filetype=".wav"
        mp3name="`basename -s $filetype $file`.mp3"
        ffmpeg -i "${file}" -acodec libmp3lame ${mp3name}
done

完成之后,1dd.wav 2ff.wav 3gg.wav转完输出1dd.mp3 2ff.mp3 3gg.mp3

也可以输出在新的目录下,像这样

outputdir=./output
mkdir -p outputdir
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for file in ./*;do\
        filetype=".wav"
        mp3name="`basename -s $filetype $file`.mp3"
        ffmpeg -i "${file}" -acodec libmp3lame ${outputdir}/${mp3name}
done

完成之后,1dd.wav 2ff.wav 3gg.wav转完输出./output/1dd.mp3 ./output/2ff.mp3 ./output/3gg.mp3

记一下,免得忘了又要去搜