1

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

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

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

此处发布了类似的问题,但没有关于正在发生的事情的实际答案。据说这段代码重现了同样的问题。

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

4

2 回答 2

1

找到了解决办法……所以最初听起来好像有些东西与解码的原始 PCM 数据和我的 PCM 播放器不匹配。我深入研究了解码器返回的内容以及任何潜在的差异。结果默认解码格式已从 AV_SAMPLE_FMT_S16 更改为 AV_SAMPLE_FMT_S16P。修复是pCodecCtx->request_sample_fmt = AV_SAMPLE_FMT_S16;在打开解码器之前简单地指定。

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

于 2013-05-14T11:40:34.307 回答
1

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

于 2013-11-07T22:30:59.913 回答