使用ffmpeg批量减少mp3音频文件的比特率和大小

时间:2016-11-15 05:33:01

标签: bash ffmpeg mp3 bitrate

我一直在寻找一种方法来批量减少我的大量mp3文件的mp3比特率。鉴于这必须是一件非常普遍的事情,这是令人惊讶的困难。

事实上,有数十个,也许是数百个来自人们询问如何做的帖子,还有数十个可用于不同金额的公用事业,声称可以做到这一点。环顾四周并尝试了一些免费软件,我很惊讶没有人能够轻松完成批量转换/调整任务。

如果我想转换单个文件,我被告知这是一个很好的方法:

ffmpeg -y -loglevel "error" -i "my_music_file.mp3" -acodec libmp3lame  -ab $BITRATE "my_music_file_new.mp3"

(虽然我更喜欢文件是否已更改并产生相同的名称。)

我需要一个使用ffmpeg的简单bash脚本,它会以递归的方式遍历我的音乐目录并更改我的mp3文件的比特率。

1 个答案:

答案 0 :(得分:4)

获得正确的ffmpeg并找到选项需要花一些时间,但这应该做到。

#!/bin/bash
MUSIC="FULL PATH TO YOUR MUSIC FOLDER"
BITRATE=160k
find "${MUSIC}" -name "*.mp3" -execdir echo "{}" \; -exec mv "{}" "{}.mp3" \; -exec ffmpeg -y -loglevel "error" -i "{}.mp3" -acodec libmp3lame  -ab $BITRATE "{}" \; -exec rm "{}.mp3" \;

因为ffmpeg无法输出到相同的输入文件,所以脚本首先重命名文件,以您选择的比特率构建一个新文件,然后删除旧文件。

我相信很多人会在这里提出改进建议。我当然欢迎使脚本更具可读性的方法。