Libavresample:从 AV_SAMPLE_FMT_FLTP 到 AV_SAMPLE_FMT_S16P 的转换不明确

Libavresample: convertion from AV_SAMPLE_FMT_FLTP to AV_SAMPLE_FMT_S16P is not clear

使用"avresample_convert"从AV_SAMPLE_FMT_FLTP转换为AV_SAMPLE_FMT_S16P后声音不清晰(质量差,有些噪音)

采样率相同,我只需要从浮点平面格式转换为带符号的 16 位平面格式。

如何将音频格式从AV_SAMPLE_FMT_FLTP正确转换为AV_SAMPLE_FMT_S16P?

我发现了问题: 如果您尝试将 AV_SAMPLE_FMT_FLTP 转换为 AV_SAMPLE_FMT_S16P,您应该使用内部 FIFO 缓冲区并使用每个音频帧精确的 1152 个音频样本进行操作(传递给编码器)(在我的例子中是 mpeg2)。

一些有用的信息,一个音频帧包含每个通道的 xyz 音频样本:

  • aac: 1024
  • mpeg(layer1): 384
  • mpeg(layer2): 1152