Вы можете использовать FFmpeg для обнаружения сцены и получения сменных кадров и их временных отметок.Команду можно объединить со скриптом Python, и вы можете изменить ее в соответствии с вашим вариантом использования.
Вы можете просто использовать команду:
ffmpeg inputvideo.mp4 -filter_complex "select='gt(scene,0.3)',metadata=print:file=time.txt" -vsync vfr img%03d.png
Это сохранит только соответствующую информацию вфайл time.txt, как показано ниже, а также сохраняйте изображения смены кадров в следующем порядке:
frame:0 pts:108859 pts_time:1.20954
lavfi.scene_score=0.436456
frame:1 pts:285285 pts_time:3.16983
lavfi.scene_score=0.444537
frame:2 pts:487987 pts_time:5.42208
lavfi.scene_score=0.494256
frame:3 pts:904654 pts_time:10.0517
lavfi.scene_score=0.462327
frame:4 pts:2533781 pts_time:28.1531
lavfi.scene_score=0.460413
frame:5 pts:2668916 pts_time:29.6546
lavfi.scene_score=0.432326
Кадр - это серийный номер обнаруженного изменения снимка с начала.Кроме того, выберите правильное пороговое значение (здесь 0,3) для вашего варианта использования, чтобы получить правильные выходные данные