【发布时间】:2011-08-16 08:02:42
【问题描述】:
这两天我在网上搜索一个教程来编译 OpenCV 2.3,在 windows 下支持 ffmpeg,但没有找到。我在 VS2010 中使用的是 OpenCV 的预构建版本,但我无法从网络摄像头读取数据,这就是我需要 ffmeg 支持的原因。
【问题讨论】:
标签: opencv
这两天我在网上搜索一个教程来编译 OpenCV 2.3,在 windows 下支持 ffmpeg,但没有找到。我在 VS2010 中使用的是 OpenCV 的预构建版本,但我无法从网络摄像头读取数据,这就是我需要 ffmeg 支持的原因。
【问题讨论】:
标签: opencv
您正在寻找的答案就在这里,它适用于 32 位和 64 位配置。 我使用了这个 FFMPEG 版本。 http://ffmpeg.zeranoe.com/builds/win64/dev/ffmpeg-git-1aeb88b-win64-dev.7z
1) 下载 OpenCV 2.3
2) 打开根 CMakeLists.txt 并插入行 set(HAVE_FFMPEG 1)
3) 下载http://ffmpeg.zeranoe.com/builds/win64/dev/ffmpeg-git-1aeb88b-win64-dev.7z(如果你喜欢,也可以下载 32 位版本)
4) 使用#define INT64_C 编辑ffmpeg 包含目录中的avformat.h
5) 使用 #define snprintf _snprintf 编辑 highgui 项目中的 cap_ffmpeg_impl.hpp
6)在你的highgui项目属性下的C/C++>Additional Include Directories添加你刚刚下载的FFMPEG的include目录的路径
7)在Linker>General>Additional Library Dependencies下的同一个属性页,添加刚刚下载的FFMPEG的lib目录路径
8)在Linker>Input>Additional dependencies下的同一属性页面上,添加在lib中找到的所有ffmpeg库的名称(avformat.lib、avscale.lib、avcore.lib等)
9) 构建 highgui 项目
10) 将 FFMPEG 附带的 .dll 文件的路径添加到 System Path 环境变量中。
就是这样! 10 个简单的步骤 ;)
【讨论】:
使用 CMake 从源代码构建 OpenCV。选择 USE_FFMPEG 标志。
从http://ffmpeg.zeranoe.com/builds/获取ffmpeg
【讨论】:
在我的实验中,FFMPEG 不直接在 window 中支持。 WITH_FFMPEG 标志仅出现在 UNIX(opencv 2.3 CMakeLists.txt)下。因此,如果您想构建支持 ffmpeg 的 opencv 2.3,您应该自己编辑 CmakeLists.txt 或项目 opencv_highgui。然后从 WWW 获取 ffmpeg。您可能还需要编辑 cap_ffmpeg_impl.hpp。
【讨论】: