2017-04-04 73 views
0

我正在为音乐分析编写应用程序。我依靠ffmpeg编写了重采样模块。目前,我有AV_SAMPLE_FMT_S16但后来我转换为浮动,这可能会很耗时。用ffmpeg标准化样品

因为我需要样本处于某个合理的时间间隔内,所以我需要对AV_SAMPLE_FMT_FLT样本进行一些归一化处理。

所以,当我选择AV_SAMPLE_FMT_FLT时,我怎样才能正常化样本。理想的间隔是-n到n,其中n大于等于1.f

回答

0

鉴于AV_SAMPLE_FMT_FLT已经被归一化到-1.1范围,我们可以将每个样本乘以'n'值到它是否在-n之间缩放?n

+0

我得到的样本不在[-1,1]中。以下是代码:https://gist.github.com/anonymous/87afd9892131f876e4096cefb32ff40d。 我正在使用resampler重新采样所有我得到的44KHz单声道进行处理。 Globals :: DestinationSampleRate = 44100; – Steva

+0

根据文档AV_SAMPLE_FMT_FLT应在该范围内进行标准化,除非我误读。不知道上限和下限,你不能正常化。 – PaulHK

+0

我在某处读了类似的信息,要么我错过了某些东西,要么这不会返回标准化的数据...... – Steva