首页 > 解决方案 > 24kHz 音频文件问题:不支持比特率 64000

问题描述

我经常使用 Alexa音频标签。我知道现在音频标签支持 24kHz 音频文件,所以尝试将我的音频文件从 16kHz 转换。我使用文档中提供的命令来执行此操作:

ffmpeg -i <input-file> -ac 2 -codec:a libmp3lame -b:a 48k -ar 24000 <output-file.mp3>

但是当我尝试播放这个文件时,我得到一个无效的响应错误,说:Error: The audio is of an unsupported bitrate 64000. 通过查看文件详细信息,我清楚地看到,比特率为 48kbps,采样率为 24kHz。我看不到任何值,它会说 64 或任何接近它的值。

如果我将文件编码回 16kHz,它会再次正常播放。

这个命令似乎有问题,因为如果我使用 audacity 对文件进行编码,它们可以使用 24kHz。我还是更喜欢使用 ffmpeg,因为我需要对很多文件进行编码。

我在问,不是关于文件格式,格式是正确的。我需要 24kHz 采样率的文件,这就是导致问题的原因。我看到另一个关于类似问题的问题和其他人在那里讨论采样率,但没有人能够使用 ffmpeg 将文件编码为 24kHz。

有没有人在使用 ffmpeg 将文件编码为 24kHz 时运气好?

标签: audioffmpegalexa

解决方案


感谢LordNeckbeard建议使用lame代替 ffmpeg。因此,为了对文件进行编码并使它们以 24kHz 为单位,您可以使用以下命令:

lame -b48 --resample 24 input.mp3 output.mp3

Alexa 不会抱怨这样编码的文件。同样如问题中所述,您仍然可以使用 audacity,但我更喜欢使用 CLI,因为我总是必须对一批文件进行编码。

如果有人知道如何做到这一点,ffmpeg请分享它。

编辑:

再次感谢LordNeckbeard提出的在命令中添加-write_xing 0标志的建议ffmpeg,现在它也可以使用了。

实现 24kHz 音频文件的命令ffmpeg是:

ffmpeg -i input.mp3 -codec:a libmp3lame -ac 2 -ar 24000 -b:a 48k -write_xing 0 output.mp3

推荐阅读