audio - 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 时运气好?
解决方案
感谢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
推荐阅读
- sql - 隐藏参数值的空值
- javascript - 如何应用 CSS 输入?
- reactjs - 如何将孩子传递给 nextjs 类?
- python-3.x - 有没有办法自定义 pandas.DataFrame.head()?
- docker - 当节点死亡时,Docker Swarm 不调度容器
- javascript - 如何将对象替换为具有特定唯一字段值的数组?
- react-native - 在 React Native 中渲染 JSX
- r - 在 R 中无法访问返回函数
- javascript - JavaScript 中 switch-case 语句中的变量声明
- javascript - 为什么我的 CSS 没有被捆绑到应用程序中?