文件名有空格时,需要把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