当前位置: 首页 > 教程资源 > FFmpeg 教程 > 正文
如何使用 FFmpeg 从视频中提取帧图像

如何使用 FFmpeg 从视频中提取帧图像

作者:大眼仔~旭 日期:2个月前 (07-27) 评论:0 条

摘要:每段视频都由静止图像组成。摄像机以连续的顺序将这些图像拼接在一起,以产生运动的错觉。您可以提取视频中的任意图像(通常称为帧)。从视频中提取帧对于创建缩略图和海报图像非常有用。还可以捕捉关键图像用于文档和博客文章,如电影评论。 本指南大眼仔将教你如何使用 FFmpeg 从视频中提取帧。最后,您应该能够完成以下工作: 从视…

每段视频都由静止图像组成。摄像机以连续的顺序将这些图像拼接在一起,以产生运动的错觉。您可以提取视频中的任意图像(通常称为帧)。从视频中提取帧对于创建缩略图和海报图像非常有用。还可以捕捉关键图像用于文档和博客文章,如电影评论。

本指南大眼仔将教你如何使用 FFmpeg 从视频中提取帧。最后,您应该能够完成以下工作:

  • 从视频中提取第一帧
  • 从特定时间戳中提取帧。
  • 提取视频中的所有帧。
  • 以设定的时间间隔提取帧。

FFmpeg 从视频中提取帧图像

什么是 FFmpeg?

FFmpeg 是一款流行的命令行工具,非常适合处理视频和音频。你可以用它来修剪和压缩视频、更改文件格式、提取帧等。

它是免费的,可在许多操作系统上运行。如果没有 FFmpeg,请访问官方网站下载。然后,按照你所在平台的安装说明进行操作。

运行以下命令确认 FFmpeg 已在系统中运行。

1
ffmpeg -version

你应该会在终端中看到一些构建信息。这表明安装成功。

FFmpeg 从视频中提取帧图像教程

使用 FFmpeg 提取第一帧

在终端运行以下命令,提取视频的第一帧。

1
ffmpeg -i input.mp4 -frames:v 1 first.jpg

让我们分解一下该命令的每个部分的作用:

  • -i input.mp4:: -i 标志指定从哪个视频中提取视频。在本教程中,input.mp4 是我们使用的文件名。请用视频文件的名称替换 input.mp4。
  • -frames:v 1:告诉 FFmpeg 只提取一帧。你可以在 -frames 前添加时间戳 ss 0:00:00,以显示你想提取第一个文件。命令如下:
1
ffmpeg -i input.mp4 ss 0:00:00 -frames:v 1 first.jpg

默认情况下,如果不指定任何时间戳,FFmpeg 将提取第一帧。

您可以使用电脑上的任何图像查看器或照片编辑软件查看提取的图像。

从特定时间戳中提取帧

使用以下命令从视频中的特定时间戳中提取帧。

1
ffmpeg -i input.mp4 -ss 00:00:02 -frames:v 1 specific.jpg

该命令与上一节中的命令类似。不同之处在于时间戳 -ss 00:00:02。它告诉 FFmpeg 要从视频中提取的准确帧。在本例中,FFmpeg 将提取视频两秒后的帧。

提取视频中的所有帧

提取视频中的所有帧意味着为每一帧制作一个单独的图像文件。您可以使用下面的命令来实现。

1
ffmpeg -i input.mp4 frame_%04d.jpg

该命令将提取视频中的所有帧。但您应该谨慎使用该命令。原因如下:

我们的视频是以每秒 25 帧(fps)的速度拍摄的五秒视频。这意味着视频的每秒都有 25 帧。为这段视频运行上述命令将生成 125 帧(5 x 25 = 125 帧)。而如果为一段以每秒 30 帧的速度拍摄的 60 秒视频运行上述命令,则会生成 1800 幅图像(60 x 30 = 1800 帧)。

您可以使用 frame_%04d.jpg 作为占位符,以清晰的顺序标注输出文件。末尾的 %004d 表示每个输出文件末尾都有一个四位数的 ID。例如,前两个帧分别是 frame_0001.jpg、frame_0002.jpg,依此类推,直到 frame_0142.jpg、

以设定的时间间隔提取视频帧

为避免如上例所述产生成千上万不必要的帧,您可以每秒或以特定间隔提取一帧。为此,您可以调整帧频。方法是在输出文件名前添加 -vf fps=1。

1
ffmpeg -i input.mp4 -vf fps=1 frame_%04d.jpg

示例为视频的每一秒钟创建一个帧。-vf 标志代表视频过滤器。它允许你筛选出想要提取的帧。在本例中,我们给 -vf 传递了 fps=1,这将只提取视频中每秒的帧。

使用 -vf fps=1 会在需要创建精灵表的情况下派上用场。你可以轻松选择要使用的帧之间的间隔。

这次你将只有 frame_0001.jpg 至 frame_0006.jpg 6 个文件。

总结

从视频中提取帧是基于视频的应用程序中的一项有用功能。本文介绍了提取帧的一些实际用例。您还了解了使用 FFmpeg 从视频中提取帧的不同方法。我们详细介绍了如何提取第一帧、特定时间的特定帧以及所有帧。

声明:大眼仔旭 | 本文采用署名-非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
文章名称:《如何使用 FFmpeg 从视频中提取帧图像
文章固定链接:http://www.dayanzai.me/ffmpeg-extract-frames.html
本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
转载声明
全部评论: (0条)
^_^ 暂无评论!

发表评论

返回顶部