使用 Ffmpeg 构建和使用 OpenCV 作为静态库
Posted
技术标签:
【中文标题】使用 Ffmpeg 构建和使用 OpenCV 作为静态库【英文标题】:Building and using OpenCV as a static library with Ffmpeg 【发布时间】:2016-10-10 08:31:03 【问题描述】:我正在尝试编写一个 OpenCV 应用程序。我已经从源代码静态构建了 OpenCV,因为我不想要 dll 文件,并且只要我不使用 cv::VideoCapture
,我的项目就会编译,在这种情况下,我会收到链接错误 LNK2019
unresolved external symbol。
我认为这是因为 cv::VideoCapture
使用 ffmpeg 处理视频,由于它的许可证,它不能在我的项目中静态链接。我可以动态链接ffmpeg,但我在这样做时遇到了麻烦。 %OpenCV_DIR%\bin
文件夹中有一个 opencv_ffmpeg310_64.dll
文件,但我不知道如何将它动态链接到我的项目。通常我有.dll
附带的.lib
文件,但我无法在任何地方找到它们。
是否可以静态链接OpenCV和动态链接ffmpeg,我该怎么做呢?
附加信息:
Windows 10 Visual Studio 2015 OpenCV 3.1.0 x64 构建【问题讨论】:
动态构建ffmpeg,构建opencv并与刚刚构建的ffmpeg链接? 这个问题可能对你有帮助github.com/opencv/opencv/issues/5920 @stijn 我该怎么做呢? 如果我知道我会创建一个完整的答案:] 构建 ffmpeg 已记录在案,所以应该很容易,让 opencv 与您自己的 ffmpeg 链接可能需要一些 cmake 向导或手动编辑 VS 项目文件 【参考方案1】:我终于让它工作了。我错误地认为我需要 ffmpeg 才能让它工作。通过在 Visual Studio 的库依赖项中添加 vfw32.lib
解决了我遇到的问题。
【讨论】:
以上是关于使用 Ffmpeg 构建和使用 OpenCV 作为静态库的主要内容,如果未能解决你的问题,请参考以下文章
使用 opencv 和 ffmpeg 制作视频。如何找到正确的颜色格式?