ffmpeg缩略图:每2秒生成0,1,3,5秒

时间:2014-01-29 23:31:46

标签: video ffmpeg

我正在使用ffmpeg从一段.mov视频中生成缩略图。我希望每两秒钟获得缩略图,因此,几乎直接从https://trac.ffmpeg.org/wiki/Create%20a%20thumbnail%20image%20every%20X%20seconds%20of%20the%20video复制,我正在做:

ffmpeg -i test.mov -f image2 -vf fps=fps=1/2 thumb%04d.jpg

这有用,并且给我缩略图,但它们对应于视频中的图像0,1,3,5 ......秒。我期待0,2,4,6 ......秒;我不确定为什么缩略图之间会有一秒钟的间隙,然后才会每两秒钟完成一次。

有没有办法让他们在0,2,4,6 ......秒出来,或者这只是“它是如何工作的”?谢谢!

1 个答案:

答案 0 :(得分:2)

这与您的问题无关,但过去我的参数“fps”存在框架存在问题。相反,我使用了“选择”过滤器:

ffmpeg -i test.mov -vf "select='not(mod(n,50))',setpts='N/(25*TB)'" -f image2 thumb%04d.jpg

如果你正在处理25 fps的电影,这对你也应该没问题。

编辑:

对于NTSC,将选择过滤器更改为:

select='not(mod(n,60))',setpts='N/(30*TB)'"

对于电影电影,请将其更改为

select='not(mod(n,48))',setpts='N/(24*TB)'"

基本上,它会将PTS(显示时间戳)覆盖为正确的值,并在每次帧编号是“Mod”函数中值的倍数时选择一个帧。此值必须等于帧速率的两倍。

原谅我默认使用PAL的值,我主要在欧洲使用FFMPEG进行广播:)