检测视频上存在音频存在的帧

时间:2016-08-26 09:37:55

标签: c# audio ffmpeg

我有几个视频文件对应一个电视切换(一个声道有声道,然后一个没有声音的黑屏,然后再用新声道再次发声)

我已经检测到了几乎所有内容,但我想知道在黑屏结束后音频显示需要多长时间。

基本上我从视频中提取音频并给出起始帧我想知道哪一帧再有一些音频。

然后使用它我可以轻松计算音频出现的时间。

1 个答案:

答案 0 :(得分:3)

您可以使用blackdetectsilencedetect过滤器并关联结果。

使用示例:

ffmpeg -i <input> -filter:v blackdetect=d=0.1 -filter:a silencedetect=d=0.1 -f null /dev/null

其中0.1是最小持续时间(以秒为单位的正浮点值)。

示例输出:

[blackdetect @ 0x35f65e0] black_start:0.0464444 black_end:0.566444 black_duration:0.52
[blackdetect @ 0x35f65e0] black_start:5.16644 black_end:5.32644 black_duration:0.16
[blackdetect @ 0x35f65e0] black_start:15.9264 black_end:16.1664 black_duration:0.24
[blackdetect @ 0x35f65e0] black_start:33.4464 black_end:33.6064 black_duration:0.16
[blackdetect @ 0x35f65e0] black_start:63.9664 black_end:64.7664 black_duration:0.8
[silencedetect @ 0x35f8700] silence_start: 67.0521
[silencedetect @ 0x35f8700] silence_end: 67.9184 | silence_duration: 0.866236