我正在使用此命令提取两个特定的帧
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