FFMPEG 提取特定帧并输出其类型(I、P、B)

FFMPEG 提取特定帧并输出其类型(I、P、B)

我正在使用此命令提取两个特定的帧

ffmpeg -ss 00:03:00.0 -i video.mkv -vf select="eq(n\,0)+eq(n\,1)" -vsync vfr -vframes 2 %01d.bmp

我如何知道每帧的帧类型并将其直接输出到文件名,因此文件名将是:

"%01d-I.bmp" or "%01d-P.bmp" or "%01d-B.bmp"

答案1

将第一个选择过滤器的结果拆分为 3 个输出,并对这三个输出分别使用选择,并选择图片类型。

ffmpeg -ss 00:03:00.0 -i video.mkv -filter_complex "select='eq(n\,0)+eq(n\,1)',split=3[i][p][b];[i]select='eq(PICT_TYPE\,I)'[i];[p]select='eq(PICT_TYPE\,P)'[p];[b]select='eq(PICT_TYPE\,B)'[b]" -map [i] -vsync vfr %01d-I.bmp -map [p] -vsync vfr %01d-P.bmp -map [b] -vsync vfr %01d-B.bmp

相关内容