如何使用命令行将 .m4a 音频文件转换为 .mp3?

如何使用命令行将 .m4a 音频文件转换为 .mp3?

如何将 .m4a 音频文件转换为 .mp3 命令行?(如果可能的话,质量不会下降)。Ubuntu 16.04LTS 媒体信息:

General
Complete name                            : show.m4a
Format                                   : MPEG-4
Format profile                           : Apple audio with iTunes info
Codec ID                                 : M4A  (M4A /mp42/isom)
File size                                : 55.5 MiB
Duration                                 : 1h 48mn
Overall bit rate mode                    : Variable
Overall bit rate                         : 71.7 Kbps

Audio
ID                                       : 1
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : HE-AAC / LC
Codec ID                                 : 40
Duration                                 : 1h 48mn
Bit rate mode                            : Variable
Bit rate                                 : 72.0 Kbps
Maximum bit rate                         : 93.8 Kbps
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 44.1 KHz / 22.05 KHz
Frame rate                               : 21.533 fps (1024 spf)
Compression mode                         : Lossy
Stream size                              : 54.9 MiB (99%)
Writing library                          : Nero AAC codec 1.5.4.0
Encoding settings                        : -q 0.25

答案1

我注意到您的输入文件实际上是一个可变比特率 (VBR) AAC 文件,全面的比特率为 71.7 Kbps,最大限度比特率为 93.8 Kbps。因此,您实际上有两个合理的选择:编码为可变比特率 MP3 文件或简单地确定适合恒定比特率 (CBR) MP3 编码的比特率。而 FFmpeg 无疑是这两种情况的最佳工具!

1. 可变比特率 (VBR) 编码

这是我自己的选择,因为原始 AAC 文件也是 VBR 文件。编码为可变比特率为 70-105 Kbps 的 MP3 可以使用-q:a 8以下选项映射到 FFmpeg:

ffmpeg -i show.m4a -c:a libmp3lame -q:a 8 output.mp3

我怀疑这是你的最好的选项与您的输入文件。

2. 恒定比特率 (CBR) 编码

我认为恒定比特率 (CBR) 编码有点过度使用,但如果它最适合您的播放设备,那么它就是一个有效的选择。由于您的输入文件具有全面的比特率为 71.7 Kbps,最大限度比特率为 93.8 Kbps,我们或许可以稍微修改一下数字,并使用以下内容:

ffmpeg -i show.m4a -c:a libmp3lame -b:a 96k output.mp3

可能需要进行一些实验,从以下 LAME“允许”标准中选择合适的比特率:64k、80k、96k、112k。无论哪种听起来最好的你的播放硬件...

参考:

  • FFmpeg MP3 编码指南:FFmpeg Trac 的 mp3 编码指南。特别注意标记为“LAME 比特率概览”的 VBR 映射表。

答案2

尝试一下:

sudo apt-get install ffmpeg

这将安装该ffmpeg包。

我们可以通过输入以下内容来查看哪些格式是可以接受的:

ffmpeg -formats 

或者

 ffmpeg -codecs

使用命令导航到音频文件所在的目录cd。如果您需要帮助查找目录,请使用命令ls

$ ls
backup.log         Desktop    examples.desktop  Music     snap
branches-tutorial  Documents  flick             Pictures  Templates
SumDocument        Downloads  mozilla.pdf       Public    Videos

假设我的文件在Desktop文件夹中。然后我会输入:

cd Desktop

现在我将进入正确的目录。接下来,我们输入:

ffmpeg -i show.m4a newFileName.mp3

要使用指定的比特率进行转换(在您的情况下,它看起来像 71.1Kbps,最大为 93.8Kbps - 不幸的是,我不确定如果尝试使用最大比特率与整体比特率会发生什么),我们运行:

ffmpeg -i show.m4a -b:a 71100 newFileName.mp3

我从以下来源获取了此信息https://www.howtoforge.com/tutorial/ffmpeg-audio-conversion/

请注意,转换为无损编解码器(mp3)不可避免地会导致(不一定可听见的)质量损失。

答案3

您可以使用FFmpeg命令行版本。

ffmpeg -i inputfile.m4a -acodec libmp3lame -ab 93k outputfile.mp3

在将其转换为 MP3 的过程中,总会有一些质量损失(尽管人类听觉可能察觉不到)。MP3 是一种有损格式(无论原始格式如何)。您可以阅读有关有损和无损格式的更多信息这里

答案4

这是与 96k 采样的恒定比特率相同的建议(如上所述),但作为单个 BASH 命令行:

for i in *.m4a; do ffmpeg -i "$i" -c:a libmp3lame -b:a 96k  "${i%.*}.mp3"; done

这将自动扫描当前目录并将文件从 .m4a 转换为具有恒定比特率的 mp3。

相关内容