我只想将我的 WALKMAN 中的所有 320kbps 都转换为 128kbps,因为它们很重。当然,转换所有 8GB 会花费很长时间,因为一张 0.5GB 的 320kbps 专辑在这里需要半个小时。我可以等 6 个小时来转换 3GB,但我不能等所有 8GB 从 128kbps 转换为 128kbps,因为其中的 5GB 已经是 128kbps 了。所以这里的问题是如何强制 Ubuntu 转换仅有的我的 WALKMAN 里有 320kbps 的文件吗?
答案1
这里有一种方法可以找到所有超过指定比特率的 mp3 文件,并将它们转换为较低的比特率。在开始之前,请务必从头到尾阅读,因为实际转码有两个选项:Clementine 或脚本。
您需要安装一些软件包:
sudo aptitude install mp3info clementine lame gawk findutils
要列出所有音乐文件及其比特率,请在适当替换 /path/to/your/music 后执行以下操作:
find /path/to/your/music -iname '*.mp3' -print0 | xargs -0 mp3info -rm -p '%r:%F\n' > transcode.kbps
查看该文件
transcode.kbps
并确保它看起来像这样(比特率:文件名):128:/path/to/your/music/dir1/file.mp3 256:/path/to/your/music/dirX/fileX.mp3 320:/path/to/your/music/dirY/fileA.mp3
当看起来不错时,执行此 awk 命令,创建一个仅包含高于指定比特率的文件的播放列表(此处所有比特率 > 160 的文件都将放入 m3u 播放列表中):
awk -F: '$1 > 160 { print $2; }' transcode.kbps > transcode.m3u
检查文件
transcode.m3u
并确保它看起来没问题。如果一切正常,您就可以转码了!
Clementine 转码解决方案
- 在播放列表菜单上,选择“加载播放列表”并打开 transcode.m3u。
- 单击文件列表并键入 CTRL-A 以选择播放列表中的所有文件。
- 右键单击播放列表并选择上下文菜单项“将文件添加到转码器”。
- 在 Transcoder 窗口中设置所需的参数,记得设置选项。您可能想要“优化比特率 128kbps、恒定比特率、标准质量”之类的选项。
- 点击“开始转码”
等待转码完成。
至少在 Ubuntu 10.04 Trusty 上使用 Clementine 1.2 的主要问题是,唯一的选择是在旧文件旁边创建一个新文件。我认为如果您连接了音乐播放器,Clementine 会让您直接将代码转码到音乐播放器。
由于您要转换的文件已经在音乐播放器上,因此这会出现问题,因为新文件可能会填满您的播放器。
脚本转码解决方案
这是一个相当简单的脚本,用于处理transcode.m3u
文件lame
转码并删除旧文件。将其保存到名为的文件中transcode.sh
:
#!/bin/sh -e
# transcode.sh -- read filenames from standard input and transcode files
while read file
do
if lame -h "$file" "$file.new"
then
mv "$file.new" "$file"
else
rm -f "$file.new"
fi
done
现在你可以执行:
sh transcode.sh < transcode.m3u
脚本将对所有文件进行转码,每次 lame 成功创建新文件后都会删除旧文件。
您可以编辑 transcode.sh 脚本中的 lame 命令参数来执行您喜欢的任何其他转码参数。