我试图从一堆视频中统一提取固定数量的帧(比如每个视频50帧,总共10,000个视频)。
由于持续时间不同,我计算了每个视频的理想输出fps,并将其作为ffmpeg提取的参数,但未能获得所需的帧数。
有谁知道如何使用ffmpeg或其他工具提取固定数量的帧?谢谢!
答案 0 :(得分:3)
您可以使用缩略图过滤器。它从每组n
帧中选择一个代表性帧(默认为100)
因此,如果您的源视频长达10分钟且速度为25 fps,那么它总共有15000帧。因此,要选择50帧,您可以使用
ffmpeg -i input.mp4 -vf thumbnail=300,setpts=N/TB -r 1 -vframes 50 inputframes%03d.png
这将从每组300帧中选择一个代表性帧,因此从15000中选择50帧。尽管名称,缩略图只是选择帧,但它不会缩小它们以供缩略图使用。同时设置setpts
和r
以避免重复或丢弃的帧。设置vframes
,因此输出的图像不超过50张。
如果您需要严格选择每个nth
框架,请使用
ffmpeg -i input.mp4 -vf select='not(mod(n\,300))',setpts=N/TB -r 1 -vframes 50 inputframes%03d.png