如何使用FFmpeg

9 投票
3 回答
42979 浏览
提问于 2025-04-15 17:03

我想从一个视频中提取帧,所以我选择了ffmpeg这个工具(如果你知道更好的工具,告诉我一下)。

我下载了它的源代码,但不知道怎么使用它?? 我该怎么编译它呢?

它推荐用什么语言呢?我会Python和C++。请注意,我的操作系统是Windows Vista 64位。

3 个回答

1

如果你只是想使用 ffmpeg,那就直接下载一个现成的版本,而不是下载源代码。

要从视频中提取一帧,可以使用以下命令:

ffmpeg -i input.avi -r 1 -f image2 -s 120x96 images%05d.png

这里的 input.avi 是你的视频文件,120x96 是输出图片的尺寸。其实你可以用很多选项来指定视频中的具体帧,但这里讲这些会太复杂。你可以看看这个 页面,上面有更详细的说明。

祝好,
Fabian

8

如果你会C++,你可以根据这篇文章的示例来修改一下,文章地址是使用ffmpeg

6

如果你只是想从视频中提取帧并保存到文件里,可以直接在命令行使用 ffmpeg:

ffmpeg -i video.avi image%d.jpg

用这种方法,你不需要自己编译 ffmpeg,因为网上应该有现成的 Windows 版本可以下载。

如果你想显示这些帧或者对它们进行其他处理,可能需要用到 libavformat 和 libavcodec(这两个是 ffmpeg 项目的主要部分)来在代码中提取视频帧。这里有一个不错的教程,教你如何使用 libavcodec 和 libavformat 从视频中获取帧。libavformat 和 libavcodec 是 C 语言的库,所以如果你想直接使用它们,建议用 C 或 C++。另外,还有这个 Python 封装,看起来也不错,但我还没试过。

你也可以下载已经编译好的 ffmpeg 库,这样就不需要自己编译了。根据文档,ffmpeg 不能在 MSVC++ 上编译,所以你需要设置一个 mingw 环境。

撰写回答