Определение типа фрейма с помощью ffmpeg
или ffprobe
Вы хотите работать с видеофайлом, проверяя типы кадров по ходу работы. У меня была причина сделать это в прошлом. Ответ Джан Доши на SO охватывает это:
ffmpeg -i input.mp4 -vf select='eq(n,334)',showinfo -f null -
Выше будет производить выход для 335-го кадра видео
n: 0 pts: 171008 pts_time:11.1333 pos: 1090471 fmt:yuv420p sar:1/1 s:1280x720
i:P iskey:0 type:B checksum:A72D197D plane_checksum:[9008E835 680AC49A 6CD66C90]
mean:[136 122 134] stdev:[65.4 7.0 9.5]
Вы можете пропустить фильтр выбора и получить выходные данные для всех кадров, а затем выполнить grep, как это делает incBrain. Обратите внимание, что вы хотите, чтобы номер отображаемого изображения не кодировался.
(дополнительная ссылка отсутствует в добавленном мной ответе)
В зависимости от того, как вы хотите это сделать, у вас есть возможность использовать фильтр select
как указано выше, или получить информацию для всех кадров (используя ffprobe video.mp4 -show_frames
) и обработать вывод этого.