在 Ubuntu 中将所有音频文件转换为低质量

在 Ubuntu 中将所有音频文件转换为低质量

我只想将我的 WALKMAN 中的所有 320kbps 都转换为 128kbps,因为它们很重。当然,转换所有 8GB 会花费很长时间,因为一张 0.5GB 的 320kbps 专辑在这里需要半个小时。我可以等 6 个小时来转换 3GB,但我不能等所有 8GB 从 128kbps 转换为 128kbps,因为其中的 5GB 已经是 128kbps 了。所以这里的问题是如何强制 Ubuntu 转换仅有的我的 WALKMAN 里有 320kbps 的文件吗?

答案1

这里有一种方法可以找到所有超过指定比特率的 mp3 文件,并将它们转换为较低的比特率。在开始之前,请务必从头到尾阅读,因为实际转码有两个选项:Clementine 或脚本。

  1. 您需要安装一些软件包:

    sudo aptitude install mp3info clementine lame gawk findutils
    
  2. 要列出所有音乐文件及其比特率,请在适当替换 /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
    
  3. 当看起来不错时,执行此 awk 命令,创建一个仅包含高于指定比特率的文件的播放列表(此处所有比特率 > 160 的文件都将放入 m3u 播放列表中):

    awk -F: '$1 > 160 { print $2; }' transcode.kbps > transcode.m3u
    

    检查文件transcode.m3u并确保它看起来没问题。如果一切正常,您就可以转码了!

Clementine 转码解决方案

  1. 在播放列表菜单上,选择“加载播放列表”并打开 transcode.m3u。
  2. 单击文件列表并键入 CTRL-A 以选择播放列表中的所有文件。
  3. 右键单击播放列表并选择上下文菜单项“将文件添加到转码器”。
  4. 在 Transcoder 窗口中设置所需的参数,记得设置选项。您可能想要“优化比特率 128kbps、恒定比特率、标准质量”之类的选项。
  5. 点击“开始转码”

等待转码完成。

至少在 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 命令参数来执行您喜欢的任何其他转码参数。

相关内容