Я использую ffmpeg для сканирования видеофайлов для смены сцены и сохранения результатов в текстовый файл. Код, который я использую ниже, работает, но я хочу упростить результаты и просто вывести номер кадра, где происходят изменения сцены, и не все данные, которые производит этот код. Какие-либо предложения?Как сохранить номера кадров с помощью ffmpeg?
ffprobe -show_frames -of compact=p=0 -f lavfi "movie=input.mov,select=gt(scene\,.02)" > results.txt
Выходы все это:
media_type=video stream_index=0 key_frame=1 pkt_pts=31031 pkt_pts_time=1.292958 pkt_dts=31031 pkt_dts_time=1.292958 best_effort_timestamp=31031 best_effort_timestamp_time=1.292958 pkt_duration=N/A pkt_duration_time=N/A pkt_pos=82320 pkt_size=629760 width=640 height=328 pix_fmt=rgb24 sample_aspect_ratio=1:1 pict_type=I coded_picture_number=0 display_picture_number=0 interlaced_frame=0 top_field_first=0 repeat_pict=0 tag:lavfi.scene_score=0.025551
Спасибо за это. Любая идея, почему она дает гораздо больше сцен, которые я ожидаю? Мой оригинальный код выше обнаруживает 6 сцен. Ваш дайте мне список из 297 кадров. ? – JulianJ
Проверить значение изменения сцены - '.02' или' 0.2' – Mulvya
Работает согласно вашему исходному коду. Большое спасибо. – JulianJ