当前位置: 首页 > 知识库问答 >
问题:

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

颜畅
2023-03-14

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

共有1个答案

鲍理
2023-03-14

你可以用缩略图过滤器。它从每组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帧。尽管名称,缩略图只是选择框架,它不会缩小缩略图使用。设置R是结合设置的,以避免重复或丢失帧。vframes被设置为输出不超过50幅图像。

ffmpeg -i input.mp4 -vf select='not(mod(n\,300))',setpts=N/TB -r 1 -vframes 50 inputframes%03d.png
 类似资料:
  • 这将从到获取所有i帧。 但是我想做的是给出一个帧号列表,并让ffmpeg提取出与每个帧号最接近的关键帧。有没有一种方法可以用ffmpeg来实现这一点,或者我必须在libavcodec上编写自己的程序来实现这一点?

  • 我有一堆从Youtube下载的视频,我想从他们中提取帧。我使用的当前命令是: 但是我还想设置-r和-t选项。我想要的fps是每个视频的fps,持续时间是他们的持续时间。我知道如果我不设置-r选项,默认值是25 fps。

  • 但我只想要一张截图,比如01:23:45。或1截图在86%英寸。 对于ffmpegthumbnailer来说,这一切都是可能的,但这是另一个我不想依赖的依赖项。我希望能够用FFMPEG来完成。

  • 我不知道如何选择特定的JSON数据。 如何更改此代码以使我只有id,而没有其他响应数据? 我在网上阅读,显然我需要使用结构?我不确定如何处理这个问题。 这将返回...

  • 前言 上节初步介绍一些硬件基础知识和分析硬件所需要的基本工具,本篇将讲述利用编程器直接读取芯片固件的方法。 为了读取 Flash 芯片的内容,有以下两种常用方式: 1、直接将导线连接到芯片的引脚,在通过飞线连接编程器,进行在线读取固件; 2、把芯片拆焊下来,通过烧录座编程器,离线读取固件。 飞线法读取 通过夹具夹住芯片引脚,然后连接编程器读取芯片内容,通过编程器连接芯片需要注意引脚的顺序,在 IC