【问题标题】:How to compile OpenCV 2.3 with ffmpeg support with Visual Studio 2010如何使用 Visual Studio 2010 编译具有 ffmpeg 支持的 OpenCV 2.3
【发布时间】:2011-08-16 08:02:42
【问题描述】:

这两天我在网上搜索一个教程来编译 OpenCV 2.3,在 windows 下支持 ffmpeg,但没有找到。我在 VS2010 中使用的是 OpenCV 的预构建版本,但我无法从网络摄像头读取数据,这就是我需要 ffmeg 支持的原因。

【问题讨论】:

    标签: opencv


    【解决方案1】:

    您正在寻找的答案就在这里,它适用于 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 个简单的步骤 ;)

    【讨论】:

    • 经过测试,我能够从 python opencv 库调用 videoWriter 并编码为 XVID 视频。
    • opencv 2.4 也会自动添加 FFMPEG 功能。它实际上在 CMAKE 变量中有一个 WITH_FFMPEG 标志
    • 如果你想编译它也必须在 opencv_gpu 中完成(即启用 WITH_CUDA)
    【解决方案2】:

    使用 CMake 从源代码构建 OpenCV。选择 USE_FFMPEG 标志。

    http://ffmpeg.zeranoe.com/builds/获取ffmpeg

    【讨论】:

    【解决方案3】:

    在我的实验中,FFMPEG 不直接在 window 中支持。 WITH_FFMPEG 标志仅出现在 UNIX(opencv 2.3 CMakeLists.txt)下。因此,如果您想构建支持 ffmpeg 的 opencv 2.3,您应该自己编辑 CmakeLists.txt 或项目 opencv_highgui。然后从 WWW 获取 ffmpeg。您可能还需要编辑 cap_ffmpeg_impl.hpp。

    【讨论】:

    • 我注意到了这一点,我想知道我需要在 cap_ffmpeg_impl.hpp 中执行什么样的编辑。任何帮助将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 2010-12-01
    • 2011-10-03
    • 2011-10-24
    • 2019-05-12
    • 2017-06-22
    • 2017-04-13
    • 2013-02-26
    相关资源
    最近更新 更多