这是我使用 ffmpeg 的 libav* 解码音频流的过程
[videofile]-->(读取音频包)--> [pkts queue]-->(解码器)-->扬声器的样本缓冲区
出于某种原因,我需要在解码器之后插入一个缓冲区
[videofile]--> (读取音频包)--> [pkts queue] --> (decoder)--> [samples buffer] --> 说话者的样本缓冲区
中的音频样本samples buffer
是 LPCM 16 位。为了保存音频的 pts,sample buffer
我保存了第一个样本的 pts。通过这种方式,我可以计算缓冲区中任何样本的 pts。
问题是只有当音频流包含连续的音频样本时计算才是正确的。ffmpeg 的解码音频帧是否总是包含连续的样本?