我一直在寻找一种方法来批量减少我的大量mp3文件的mp3比特率。鉴于这必须是一件非常普遍的事情,这是令人惊讶的困难。
事实上,有数十个,也许是数百个来自人们询问如何做的帖子,还有数十个可用于不同金额的公用事业,声称可以做到这一点。环顾四周并尝试了一些免费软件,我很惊讶没有人能够轻松完成批量转换/调整任务。
如果我想转换单个文件,我被告知这是一个很好的方法:
ffmpeg -y -loglevel "error" -i "my_music_file.mp3" -acodec libmp3lame -ab $BITRATE "my_music_file_new.mp3"
(虽然我更喜欢文件是否已更改并产生相同的名称。)
我需要一个使用ffmpeg的简单bash脚本,它会以递归的方式遍历我的音乐目录并更改我的mp3文件的比特率。
答案 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无法输出到相同的输入文件,所以脚本首先重命名文件,以您选择的比特率构建一个新文件,然后删除旧文件。
我相信很多人会在这里提出改进建议。我当然欢迎使脚本更具可读性的方法。