定义时刻的音频衰减通过ffmpeg



m4a格式有不同长度的音轨。还有用于处理媒体的ffmpeg库。许多音轨最终都有"衰减"的效果,有必要确定它在什么时候发生(确定一次并将值与有关音轨的其他信息一起输入数据库)。这些东西。我们必须以某种方式确定音轨开始淡出,并且其音量达到歌曲总音量的30%。是否可以通过ffmpeg解决,如果可以,如何解决?

如果运行此命令,

ffmpeg -i in.mp4
      -af astats=metadata=1:reset=1,
          ametadata=print:key=lavfi.astats.Overall.RMS_level:file=vol.log -vn -f null -

它将生成一个名为vol.log的文件,如下所示

frame:8941 pts:9155584 pts_time:190.741
lavfi.astats.Overall.RMS_level=-79.715762
frame:8942 pts:9156608 pts_time:190.763
lavfi.astats.Overall.RMS_level=-83.973798
frame:8943 pts:9157632 pts_time:190.784
lavfi.astats.Overall.RMS_level=-90.068668
frame:8944 pts:9158656 pts_time:190.805
lavfi.astats.Overall.RMS_level=-97.745197
frame:8945 pts:9159680 pts_time:190.827
lavfi.astats.Overall.RMS_level=-125.611266
frame:8946 pts:9160704 pts_time:190.848
lavfi.astats.Overall.RMS_level=-inf
frame:8947 pts:9161728 pts_time:190.869
lavfi.astats.Overall.RMS_level=-inf

pts_time为时间指数,RMS水平为该间隔(此处为21 ms)的平均体积。每下降6dB对应当前体积的一半。

如果您使用reset=0运行命令,生成的日志文件中的最后读数将显示整个文件的RMS卷。那么占平均音量30%的音量比平均值低10.5 dB。

最新更新