【问题标题】:Normalize samples with ffmpeg使用 ffmpeg 标准化样本
【发布时间】:2017-04-05 16:48:24
【问题描述】:

我正在编写音乐分析应用程序。我编写了依赖 ffmpeg 的重采样模块。目前,我有 AV_SAMPLE_FMT_S16 但后来我转换为浮点数,这可能很耗时。

因为我需要样本处于某个合理的间隔内,所以我需要对 AV_SAMPLE_FMT_FLT 样本进行某种标准化。

那么,当我选择 AV_SAMPLE_FMT_FLT 时,我如何标准化我得到的样本。理想的区间是 -n 到 n,其中 n 大于等于 1.f

【问题讨论】:

    标签: c++ audio ffmpeg


    【解决方案1】:

    鉴于 AV_SAMPLE_FMT_FLT 已经标准化为 -1 .. 1 范围,我们可以将每个样本乘以您的“n”值,使其在 -n ..n 之间缩放

    【讨论】:

    • 我得到的样本不在 [-1,1] 中。这是代码:gist.github.com/anonymous/87afd9892131f876e4096cefb32ff40d。我正在使用重采样器将我得到的所有内容重新采样到 44KHz 单声道进行处理。 Globals::DestinationSampleRate = 44100;
    • 根据文档 AV_SAMPLE_FMT_FLT 应该在该范围内进行标准化,除非我看错了。如果不知道上限和下限,就无法进行归一化。
    • 我在某处读到了类似的信息,要么我遗漏了什么,要么这没有返回标准化数据...
    猜你喜欢
    • 1970-01-01
    • 2020-03-15
    • 2013-10-28
    • 1970-01-01
    • 2020-01-15
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多