You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检测ffprobe返回的音频电平统计值的数值刻度?

ffprobe音频电平检测刻度的疑问

我使用ffprobe检测各类音频文件的最大与最小电平,所用命令示例如下:

ffprobe -v error -f lavfi -i amovie=my_song.mp3,asetnsamples=n=4410,astats=metadata=1:reset=1 -show_entries frame_tags=lavfi.astats.Overall.Max_level,lavfi.astats.Overall.Min_level -of json

通常返回的最大/最小电平值刻度会与输入文件格式匹配:

  • MP3文件返回-1.0至1.0的分数值,代表最大电平的百分比
  • 16位有符号WAV文件返回-32768至32767的数值
  • 32位有符号FLAC文件使用-2147483648至2147483647的范围,数值位宽与音频文件的位深一致

但在部分场景下,返回刻度与输入文件不匹配,比如8位有符号WAV文件,返回结果采用的是16位刻度(-32768至32767)。

我希望找到非启发式的方法,来检测ffprobe返回结果所用的格式或刻度。目前未找到专门反映生成这些电平值所用数值体系的返回字段,sample_fmt在多数场景下匹配,但像s8格式的WAV文件,sample_fmt返回s8,与实际返回电平值的s16刻度不匹配。

如果无法从ffprobe实时获取该信息,FFmpeg代码库中是否有相关内容说明它如何确定电平值的刻度?


内容的提问来源于stack exchange,提问作者Farski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:55:00