这是我如何使用 ffmpeg 的 libav* 解码音频流的过程
[videofile]--> (read audio packets) --> [pkts queue] --> (decoder) --> speaker's sample buffer
出于某种原因,我需要在解码器之后插入一个缓冲区
[videofile]--> (read audio packets) --> [pkts queue] --> (decoder) --> [samples buffer] --> speaker's sample buffer
样本缓冲区中的音频样本是 LPCM 16 位。为了保存音频样本缓冲区的点,我保存第一个样本的点。通过这种方式,我可以计算缓冲区中任何样本的分数。
问题是,仅当音频流包含连续的音频样本时,计算才是正确的。 ffmpeg 的解码音频帧是否始终包含连续的样本?
最佳答案
为什么情况并非如此呢?解码器将按照呈现给上层的顺序给出数据。
关于ffmpeg - libavcodec 如何解码音频帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13597878/