c++ - 使用 FFmpeg 的音频均衡器

标签 c++ audio ffmpeg signal-processing fft

我正在使用 FFmpeg 开发音频播放器。我想在我的应用程序中添加音频均衡器,但我不知道该怎么做。我知道 FFmpeg 有一个 FFT 函数,但我有一些样本不符合 2 的任何幂。我也尝试使用其他 FFT 库,但均衡后我的音频有一些噪音。 谁能帮助我了解如何使用 FFmpeg 的 FFT 函数或使用 FFmpeg 实现 audio-eq 的任何其他方法?

最佳答案

如果您想使用 FFT 进行快速卷积过滤,请不要使用 mp3 样本计数。相反,您将需要重新缓冲音频数据(可能使用循环缓冲区)以获得 FFT 所需的适当大小的新缓冲区。您还需要对 FFT 进行零填充,以便进行重叠添加或重叠保存快速卷积 FFT 滤波。您需要计算所需均衡的脉冲响应长度,以便将 FFT 补零适当的量。这可能涉及修改均衡滤波器以获得合理(有限)长度的 FFT。

关于c++ - 使用 FFmpeg 的音频均衡器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32778683/

相关文章:

c++ - Memcmp 似乎给我一个不正确的返回值

c++ - 为 pthreads 动态创建 2 个条件变量

c++ - kcachegrind 显示我的 memcpy 未对齐

c++ - 访问负像素值 OpenCV

javascript - 连续播放麦克风音频

python - 当我使用 ffmpeg 将 numpy 数组转换为音频文件(python)时,为什么 mp3/wav 持续时间不同?

c++ - 有没有办法在 Mac OS 上播放系统提示音?

audio - 从歌声中提取音高

c++ - h264 ffmpeg : How to initialize ffmpeg to decode NALs created with x264

java - 检测runTime进程完成