使用ffmpeg提取帧并找出它们的偏移量(毫秒)

时间:2019-02-24 13:31:16

标签: ffmpeg

我希望每2秒提取10个连续帧。 (这是因为我希望从“附近偏移量”中选择“最佳选择”)。 我知道如何每x秒提取一帧:

ffmpeg -i /tmp/V.MP4 -vf fps=1 %02d.jpg

我知道如何从某个起始偏移量提取10帧:

ffmpeg -ss 20.0 -i /tmp/V.MP4 -vframes 10 %02d.jpg

我有2个问题:

  1. 如何找到每个输出图像的偏移量?我可以尝试进行计算(使用视频fps,在我的情况下为29.97),但这听起来像是个坏主意-数据就在视频中,可供ffmpeg抓取。
  2. 是否存在一种有效的方法将两个命令“合并”为一个,从而每x秒获得10个连续帧?

1 个答案:

答案 0 :(得分:1)

使用

ffmpeg -i source -vf select='eq(n,0)+if(mod(trunc(t)+1,2)*(trunc(t)-trunc(prev_t)),st(1,n),lt(n,ld(1)+10))' -vsync 0 -frame_pts 1 %d.jpg

如何找到每个输出图像的偏移量?

ffmpeg output images filename with time position上查看frame_pts值的含义

这是因为我希望从“附近的偏移量”中选择“最佳选择”

thumbnail过滤器可以做到这一点。