如何解决将-show_entries用于音频MAX_level统计信息时,FFprobe更改FPS 我想每秒生成1帧以优化此过程,
我正在使用 FFprobe 从音频中获取MAX_level统计信息。
问题
此 ffprobe 命令使用 my_audio_file.mp3 作为输入文件来为每个帧生成MAX_level。
ffprobe -f lavfi -i amovie=my_audio_file.mp3,astats=metadata=1:reset=1 -show_entries frame=pkt_pts_time:frame_tags=lavfi.astats.Overall.MAX_level -of csv=p=0 1> my_output_log.txt
当我执行它时,我生成了 my_output_log.txt 文件,其中包含帧时间和该帧的csv格式的MAX_level值。 ((1列-帧时间| 2列-该帧的MAX_level)
您会看到MAX_level(第二列)值每0,026122
秒生成一次。因此,如果将所有帧计数为0秒,则得到 39 帧。输入文件持续时间= 3m 20s,那么我得到的输出文件具有+ -8000个MAX_level值,但是我只需要200个MAX_level值。
0.000000,0.000000
0.026122,0.000000
0.052245,0.000000
0.078367,0.000000
0.104490,0.000000
0.130612,0.000000
0.156735,0.000000
0.182857,0.000000
0.208980,0.000000
0.235102,1.000000
0.261224,5792.000000
0.287347,9111.000000
0.313469,9847.000000
0.339592,9208.000000
0.365714,8498.000000
0.391837,9649.000000
0.417959,12201.000000
0.444082,11763.000000
0.470204,9013.000000
0.496327,9048.000000
0.522449,8826.000000
0.548571,9932.000000
0.574694,9382.000000
0.600816,9013.000000
0.626939,8052.000000
0.653061,8317.000000
0.679184,5445.000000
0.705306,6925.000000
0.731429,7136.000000
0.757551,7029.000000
0.783673,7610.000000
0.809796,9199.000000
0.835918,8443.000000
0.862041,7847.000000
0.888163,6878.000000
0.914286,7385.000000
0.940408,9294.000000
0.966531,8105.000000
0.992653,8620.000000
1.018776,7286.000000
<38 frames>
2.011429,4573.000000
2.037551,5155.000000
2.063673,4527.000000
<etc>
我想每秒生成1帧以优化此过程,
因为我在生成该命令的android设备上执行了此命令,所以它会持续17秒。
输出应如下所示:
0.000000,0.000000
1.018776,7286.000000
2.011429,4573.000000
3.004082,9935.000000
4.022857,6132.000000
<frame per second>
200.012457,1002.000000
问题
如何将FPS更改为1,以获得每秒的MAX_level值?您可以修改或使用其他ffprobe命令以获得正确的结果。
提前谢谢
解决方法
使用asetnsamples将价值1秒的媒体合并为1帧。
function birthday(s,d,m) {
let res = 0
const sum = (arr) => arr.reduce((acc,el) => acc + el,0)
for (let i = 0; i < s.length - m + 1; i++) {
if (sum(s.slice(i,i + m)) === d) {
res++
}
}
return res
}
将setnsamples值设置为输入的采样率。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。