如何将 .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
答案4
这是与 96k 采样的恒定比特率相同的建议(如上所述),但作为单个 BASH 命令行:
for i in *.m4a; do ffmpeg -i "$i" -c:a libmp3lame -b:a 96k "${i%.*}.mp3"; done
这将自动扫描当前目录并将文件从 .m4a 转换为具有恒定比特率的 mp3。