ffmpeg关键帧提取

ffmpeg关键帧提取,ffmpeg,keyframe,Ffmpeg,Keyframe,我一直在尝试使用ffmpeg 0.11.1从视频中提取关键帧。到目前为止,我尝试的所有命令都没有提取关键帧,而是返回所有帧,即25fps*输出中的总帧数。 我尝试将keyint_min设置为25,以确保最大值为每秒1个关键帧 ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -g 250 -keyint_min 25 -i C:\test.mp4 -vsync 2 -f image2 C:\testTemp\thumbnails-%02d.jpeg

我一直在尝试使用ffmpeg 0.11.1从视频中提取关键帧。到目前为止,我尝试的所有命令都没有提取关键帧,而是返回所有帧,即25fps*输出中的总帧数。 我尝试将keyint_min设置为25,以确保最大值为每秒1个关键帧

ffmpeg -vf select="eq(pict_type\,PICT_TYPE_I)" -g 250 -keyint_min 25 -i C:\test.mp4 -vsync 2 -f image2 C:\testTemp\thumbnails-%02d.jpeg
但仍然返回所有帧

然后我试着把关键帧分开20秒

ffmpeg -i C:\test.mp4 -vf select='eq(pict_type\,I)*(isnan(prev_selected_t)+gte(t-prev_selected_t\,20))' -vsync 0 -f image2 C:\testTemp\%09d.jpg
同样的结果,所有帧都返回


我该怎么办?

在第一个命令中,您使用过滤器作为输入选项。我不知道ffmpeg将如何解释这一点

试试这个:

ffmpeg -i C:\test.mp4 -vf select='eq(pict_type\,I)',setpts='N/(25*TB)' C:\testTemp\%09d.jpg
25
更改为源的帧速率:NTSC视频为30000/1001,NTSC胶片为24000/1001,PAL为25,等等

使用
-q:v
-qscale:v
选项控制输出质量(在旧ffmpeg中仅称为
-qscale
)。mpeg*的范围为1-31,其中31是最差的质量


下次请记住,将在superuser.com上询问ffmpeg使用问题,因为stackoverflow是专门用于编程的。

您好,谢谢,但我在初始化带有参数的筛选器选择时出错。打开和关闭的次数不相等,因此我尝试将选择部分更改为选择“eq(pict_type\,I),setpts=N/(25*TB)”&然后选择“eq(pict_type\,I),setpts='N/(25*TB)”,但都返回了相同的错误抱歉。糟糕的粘贴工作。我更新了命令,但此时无法测试。我得到:缺少“')”或“eq(pict_type\,I)”中的参数太多,然后在解析表达式“eq(pict_type\,I)”时出现另一个错误作为错误,该命令适用于0.11.1的OS X/cc@shiI正在使用Windows 8 RP。我查了一下,发现如果我不在eq(pict_type),I)中写“\”,也就是说,我写eq(pict_type,I),它就像一个符咒!