关心社区,
我想使用 ffmpeg 从音频值生成文件(txt,csv)。 有什么想法吗?
我使用此代码生成音频级别:
ffplay -f lavfi "amovie=input.aac, asplit [a][out1]; [a] showvolume=f=1:b=4:w=800:h=70 [out0]"
非常感谢
答案 0 :(得分:3)
以下命令将生成CSV格式,其中第一列表示以秒为单位的音频帧时间,第二列表示该帧的总RMS dB音量,第三列表示第一个通道的RMS音量,最后一列表示RMS第二频道的音量。
ffprobe -f lavfi -i amovie=input.aac,astats=metadata=1:reset=1 -show_entries frame=pkt_pts_time:frame_tags=lavfi.astats.Overall.RMS_level,lavfi.astats.1.RMS_level,lavfi.astats.2.RMS_level -of csv=p=0
输出:
Duration: N/A, start: 0.023220, bitrate: N/A
Stream #0:0: Audio: pcm_f64le, 44100 Hz, stereo, dbl, 5644 kb/s
0.023220,-inf,-inf,-inf
0.046440,-inf,-inf,-inf
0.069660,-inf,-inf,-inf
0.092880,-27.330401,-22.685612,-24.414572
0.116100,-21.141091,-18.986082,-19.931269
0.139320,-20.955719,-18.549085,-19.587788
0.162540,-20.938002,-18.198237,-19.355561
0.185760,-19.852306,-20.032553,-19.941494
0.208980,-20.495281,-21.684953,-21.049508
reset
确定统计数据的计算频率。我已将值设置为1
,即为每个音频帧单独计算。