c++ - FFmpeg 1.0 < 导致音频播放问题

标签 c++ c android-ndk ffmpeg

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

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

关于 ffmpeg 中可能导致此类问题的可能更改,您有什么想法吗?

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

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

最佳答案

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

关于c++ - FFmpeg 1.0 < 导致音频播放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16479662/

相关文章:

c++ - 为什么不推荐使用 uint8_t 来表示某人的年龄?

c++ - dlopen 有效,但 dlsym 无效

无法解析 Android CDT setup std

c - 我有两个与 getchar() 和 putchar() 有关的问题

c - 防止循环中的无效数组输入

android - 如何将现有的 make 文件与 Android NDK 合并

java - 安卓工作室;未找到 jni.h

c++ - 我怎样才能使这个模板方法更优雅? (或 : less explicit template parameters required)

c++ - 这种替代的 'for' 循环语法有什么依据吗?

C++ 使用 std 从文件读取