如何使用FFmpeg
我想从一个视频中提取帧,所以我选择了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 环境。