每当我使用 ffmpeg 和 libfdk_aac 将一段音频转换为 AAC 时,我都会注意到,aac_he_v2
如果源音频是单声道,则配置文件不起作用。例如:
ffmpeg -i mono.wav -c:a libfdk_aac -profile:a aac_he_v2 output.m4a
给出错误:
无法初始化编码器:SBR 库初始化错误
初始化输出流 0:0 时出错 - 打开输出流 #0:0 的编码器时出错 - 可能是 bit_rate、rate、width 或 height 等参数不正确
我可以通过添加-ac 2
强制立体声选项来解决这个问题。但是我觉得很奇怪,这个配置文件要求音频是立体声,而它不指定 AAC-HE-V2 配置文件就可以正常工作。也许这是我对这个编码器或配置文件的工作原理缺乏理解,但它应该是这样的吗?
此外,我假设通过指定-ac 2
ffmpeg 只会通过将单个音频流复制到相同的左右声道来“伪造”立体声?
答案1
HE-AAC v2 是具有参数立体声的 HE-AAC - 它不适用于单声道信号。