这是一个 bash 脚本,它将采用文件扩展名并从具有该扩展名的任何文件中提取音频,当然还要保持比特率。我不能声称代码的关键部分的功劳,因为那是写这个博客的绅士。
#!/bin/bash
ext=$1
for file in *.${ext}; do
tmpfn=${file%.*} ; # get rid of file ext
tmpfn=$tmpfn".mp3"; # add mp3 file ext
# next line gets bitrate of audio from video using ffmpeg
bit=`ffmpeg -i "${file}" 2>&1 | grep Audio | awk -F", " '{print $5}' | cut -d' ' -f1`
# finally, convert to mp3 using proper bitrate
ffmpeg -i "$file" -ab ${bit}k "$tmpfn"
done
只需在您拥有文件的目录中运行它,如下所示:
$bash script.sh flv
其中 flv 是文件扩展名。破解它以使其完全按照您的意愿进行操作,或根据您的内心处理多种文件类型。
编辑:对于 Ubuntu/debian/etc 上的任何人来说只是一个简短的说明。确保您安装了额外的编解码器包,否则它将无法工作,即您必须安装 ffmpeg 和额外的 libav 编解码器包,否则您将度过一段糟糕的时光。这应该可以解决问题:
sudo apt-get ffmpeg libavcodec-extra-53