繁体   English   中英

如何用ffmpeg提取固定数量的帧?

[英]How to extract a fixed number of frames with ffmpeg?

我试图从一堆视频中统一提取固定数量的帧(比如每个视频50帧,总共10,000个视频)。

由于持续时间不同,我计算了每个视频的理想输出fps,并将其作为ffmpeg提取的参数,但未能获得所需的帧数。

有谁知道如何使用ffmpeg或其他工具提取固定数量的帧? 谢谢!

您可以使用缩略图过滤器。 它从每组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帧。尽管名称,缩略图只是选择帧,但它不会缩小它们以供缩略图使用。 setptsr一起设置以避免重复或丢帧。 设置了vframes ,因此输出的图像不超过50张。

如果您需要严格选择每nth帧,请使用

ffmpeg -i input.mp4 -vf select='not(mod(n\,300))',setpts=N/TB -r 1 -vframes 50 inputframes%03d.png

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM