使用ffmpeg和aresample具有超低采样率

问题描述 投票:0回答:1

我正在尝试使用ffmpeg获取数据以生成分辨率为每秒30个峰的峰列表。

我正在使用的参数是:

ffmpeg -y -i audio.wav -filter_complex "[0]aresample=30[resampled]" -map [resampled] output_30.wav

杀死几乎所有信息,并且结果数据数组仅包含非常小的值。该波形在重采样之前enter image description here

重采样至60kHz后与之相反

enter image description here

我的问题是,是否可以使用ffmpeg并在每个音频跨度(秒或1/20秒)内获得最大值(峰值)?

ffmpeg waveform
1个回答
1
投票

如果要以1/20秒的分辨率获得峰值数据,请以此为起点。

ffmpeg -i audio.wav -af "aresample=60000,asetnsamples=3000,astats=reset=1:metadata=1,ametadata=print:key='lavfi.astats.Overall.Peak_level':file=stats.log" -f null -

想法是使用aresample来获得足够高的采样率,然后使用setnsamples将音频分成相等的块,每个块等于1/20秒。然后,stats将按帧测量日志数据(reset = 1)。然后ametadata会将峰值电平(以dB为单位)的值写入文本文件。

© www.soinside.com 2019 - 2024. All rights reserved.