FFmpeg 1.0<导致音频播放问题

时间:2013-05-10 09:58:11

标签: c++ c android-ndk ffmpeg

我有一个基于ffplay的音频流。它使用ffmpeg 0.11工作得很好但是当我使用ffmpeg 1.0或最新的1.2版本时,音频似乎被解码或播放奇怪。

基本上它听起来像带有mp3流和aac流的花栗鼠我听到大量的静态几乎听不到实际的流,实际的流听起来很慢。

任何可能导致这些类型问题的ffmpeg可能发生变化的想法?

类似的问题已发布here,但没有关于正在发生的事情的实际答案。据说this code再现了同样的问题。

更新1:
我已经从ffplay一步一步地复制了,但仍然没有运气! :/通道和采样率看起来是正确的,所以必须在内部返回一个奇怪的解码格式?

2 个答案:

答案 0 :(得分:1)

找到一个修复...所以最初它听起来像某些东西与解码的原始PCM数据和我的PCM播放器无法正确匹配。我深入研究了解码器返回的内容以及任何潜在的差异。事实证明,默认解码格式已从AV_SAMPLE_FMT_S16更改为AV_SAMPLE_FMT_S16P。修复是在打开解码器之前简单地指定pCodecCtx->request_sample_fmt = AV_SAMPLE_FMT_S16;

如果这是一个坏主意的任何反馈?我担心是否存在其他格式和潜在性能问题......

答案 1 :(得分:1)

pCodecCtx-> request_sample_fmt = AV_SAMPLE_FMT_S16 不改变行为!我没有找到比使用swr_convert将音频样本从AV_SAMPLE_FMT_FLT转换为AV_SAMPLE_FMT_S16更好的解决方案。