ffmpeg ametadata过滤器的输出正确吗?

时间:2018-10-31 09:52:06

标签: ffmpeg

我尝试通过以下命令使用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!

为什么会这样?

没有办法获取时间码,而是此帧信息吗?

1 个答案:

答案 0 :(得分:0)

frame:在这里不是指视频帧。音频样本也被陷害,样本数量取决于编解码器。

AAC通常为1024个样本/帧。 MP3可以是1152个样本/帧。因此,如果您的采样率为48000 Hz,则每个AAC音频帧的持续时间为1024/48000 = 0.2133 seconds