ffmpeg对视频抽帧时让结果图片文件名带上时间戳

最近一个项目,需要用ffmpeg对视频进行抽帧,大概是每隔几秒提取一张图片。这个命令非常简单:ffmpeg -i input.mp4 -vf fps=1/3 %04d.png 。但是有一个额外需求是,需要知道每张图片在视频中的时间,而上面的命令提取的图片文件名是单调递增的数字,所以我们需要对上面的命令做一些改造,改造后的命令如下:
ffmpeg -i input.mp4 -vf fps=1,select='not(mod(t,3))' -vsync 0 -frame_pts 1 %d.jpg

这个命令的意思就是首先以每秒一张的帧数提取图片,然后当当前时间能被3整除时才进行提取,达到了3秒提取一张图片的效果,后面的-frame_pts 1开启了写入当前帧时间到文件名的功能。