Для количества кадров можно использовать отчет со специальным режимом отладки:
FFREPORT=file=\'file.log\':level=48 && ffmpeg ... -vf select=eq(pict_type\,PICT_TYPE_I) -vsync vfr -f image2 OUTPUT
, затем вы можете сопоставить имя с preg_match_all
:
preg_match_all("/] n:(\\d+)\\.[^>]+pict_type:I/Us",$log,$m,PREG_PATTERN_ORDER,5000);
$frames=$m[1];
Пожалуйста, наслаждайтесь!