2017-04-04 76 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