ffprobe/ffmpg 静音检测命令

use*_*478 3 json ffmpeg ffprobe

我正在研究流静音检测。它正在 ffmpeg 中执行以下命令:

ffmpeg -i http://mystream.com/stream -af silencedetect=n=-50dB:d=0.5 -f null - 2> log.txt
Run Code Online (Sandbox Code Playgroud)

我想获得日志文件的 json 输出。“ffprobe”中有一个 json 选项,但silencedetect=n=-50dB:d=0.5不起作用。

帮助!

干杯!

Gya*_*yan 5

ffprobe 旨在探测容器级或流级元数据。silencedetect是一个过滤器,用于分析解码的音频流的内容;它的输出不受作者选择的控制。

由于 SilenceDetect 还将其结果记录到元数据标记中,因此您可以做的就是将该数据输出到文件中。

ffmpeg -i http://mystream.com/stream -af silencedetect=n=-50dB:d=0.5,ametadata=print:file=log.txt -f null -
Run Code Online (Sandbox Code Playgroud)

输出

frame:281  pts:323712  pts_time:6.744  
lavfi.silence_start=6.244
frame:285  pts:328320  pts_time:6.84   
lavfi.silence_end=6.84
lavfi.silence_duration=0.596
frame:413  pts:475776  pts_time:9.912  
lavfi.silence_start=9.412
frame:1224 pts:1410048 pts_time:29.376 
lavfi.silence_end=29.376
lavfi.silence_duration=19.964
Run Code Online (Sandbox Code Playgroud)