我尝试通过以下命令使用ffmpeg来检测静音。
ffmpeg -i "test.mov" -af silencedetect=noise=-60dB:d=0.5,ametadata=print:file=log.txt -f null -
我得到下面的结果
frame:3008 pts:3012663 pts_time:62.7638
lavfi.silence_start=62.2804
frame:3040 pts:3044879 pts_time:63.435
lavfi.silence_end=63.4504
lavfi.silence_duration=1.16996
frame:10230 pts:10244071 pts_time:213.418
lavfi.silence_start=212.925
frame:10523 pts:10536927 pts_time:219.519
lavfi.silence_end=219.524
lavfi.silence_duration=6.59985
此输入视频的fps为29.97。
lavfi.silence_start / end显示正确的结果,但是帧不正确,因为其帧数仅为8218!
为什么会这样?
没有办法获取时间码,而是此帧信息吗?
答案 0 :(得分:0)
frame:
在这里不是指视频帧。音频样本也被陷害,样本数量取决于编解码器。
AAC通常为1024个样本/帧。 MP3可以是1152个样本/帧。因此,如果您的采样率为48000 Hz,则每个AAC音频帧的持续时间为1024/48000 = 0.2133 seconds
。