如何使用 ffmpeg/ffprobe 查找视频中歌曲出现的位置

如何使用 ffmpeg/ffprobe 查找视频中歌曲出现的位置

我有一个音频文件(mp3)和一个视频文件(mp4)。

我需要找出歌曲在视频中的开始和结束位置(例如 @ 0-60 秒)。如何使用 ffmpeg/ffprobe 执行此操作?如果使用 ffmpeg 无法做到这一点,还有其他方法可以比较音频流吗?

请注意,mp3 中的歌曲的音频质量与视频中的歌曲的音频质量并不完全相同。

答案1

我使用 volumedetect 过滤器来查找视频文件每 5 秒的 max_volume。

ffmpeg -hide_banner -ss <Start Seconds> -i <Input File> -t 5 -filter:a volumedetect -f null /dev/null 2>&1 | grep max_volume

当 max_volume 超过 -20DB 时,我知道歌曲开始了,当它降到 -20DB 以下时,我知道歌曲结束了。

希望这可以帮助!

相关内容