【发布时间】:2014-08-13 11:28:14
【问题描述】:
当尝试在 mp4 容器中播放 AAC-HE 内容时,在 mp4 容器中发现的报告采样率似乎是实际采样率的一半。
例如,它显示为 24kHz 而不是 48kHz。
使用 FFmpeg AAC 解码器,可以通过简单地使用解码音频包来检索实际采样率
avcodec_decode_audio4
并查看AVCodecContext::sample_rate,它将适当更新。从中很容易调整输出。
使用 CoreAudio 解码器,我会使用 AudioConverterRef 设置输入和输出 AudioStreamBasicDescription
并致电AudioConverterFillComplexBuffer
由于转换器执行所有必需的内部转换,包括重新采样,这很好。但它会在将内容重新采样到 24kHz 后播放内容(因为这就是输入 AudioStreamBasicDescription 所包含的内容。
是否有一种方法可以以与使用 FFmpeg 类似的方式检索解码器(而不是解复用器)中发现的实际采样率?
希望尽可能避免丢失音频质量,而不是缩混数据
谢谢
【问题讨论】:
标签: ffmpeg core-audio