文章目录
由于大部分 OpenCV 版本不支持 GStreamer
,我们得重新编译 OpenCV
1. 确保 GStreamer 安装正确
1.1 本地下载 GStreamer
Runtime 版本(适合运行 GStreamer 应用程序): GStreamer Runtime (Windows 64-bit)
Development 版本(适合开发使用 GStreamer 的应用程序): GStreamer Development (Windows 64-bit)
两个版本必须同时安装!
将 Runtime 版本下载到 D:\Gstream\run
, 将 Development 版本下载到 D:\Gstream\develop\bin
将 D:\Gstream\run\bin
和 D:\Gstream\develop\bin
添加到系统环境变量 PATH
。
验证安装是否有效:
gst-launch-1.0 --version
配置 PKG_CONFIG_PATH
$env:PKG_CONFIG_PATH="D:/Gstream/run/1.0/msvc_x86_64/lib/pkgconfig"
验证环境变量是否正确:
echo $env:PKG_CONFIG_PATH
输出应为:
D:/Gstream/run/1.0/msvc_x86_64/lib/pkgconfig
也可以直接在编辑环境变量中操作:
设置变量名为 PKG_CONFIG_PATH
, 变量值为 D:/Gstream/run/1.0/msvc_x86_64/lib/pkgconfig
1.1 验证 pkg-config
是否正常工作
验证是否能找到 GStreamer
, 是否能正确找到 GStreamer
的头文件和库:
pkg-config --cflags gstreamer-1.0
pkg-config --libs gstreamer-1.0
1.2 确认 GStreamer 的头文件和库路径正确传递
根据你的 pkg-config
输出,设置以下环境变量:
$env:GSTREAMER_INCLUDE_DIRS="D:/Gstream/run/1.0/msvc_x86_64/include/gstreamer-1.0;D:/Gstream/run/1.0/msvc_x86_64/include/glib-2.0;D:/Gstream/run/1.0/msvc_x86_64/lib/glib-2.0/include"
$env:GSTREAMER_LIBRARIES="D:/Gstream/run/1.0/msvc_x86_64/lib/gstreamer-1.0.lib;D:/Gstream/run/1.0/msvc_x86_64/lib/glib-2.0.lib;D:/Gstream/run/1.0/msvc_x86_64/lib/gobject-2.0.lib"
$env:PKG_CONFIG_PATH="D:/Gstream/run/1.0/msvc_x86_64/lib/pkgconfig"
确认是否设置成功:
echo $env:GSTREAMER_INCLUDE_DIRS
echo $env:GSTREAMER_LIBRARIES
echo $env:PKG_CONFIG_PATH
1.3 确认 GStreamer 的头文件和库路径正确传递
pkg-config --cflags glib-2.0
pkg-config --libs glib-2.0
pkg-config --cflags gobject-2.0
pkg-config --libs gobject-2.0
2.下载并编译 OpenCV 源码
2.1 下载 OpenCV 源码
从 OpenCV GitHub 仓库 下载源码。
git clone https://github.com/opencv/opencv.git
2.2 下载OpenCV_contrib代码
下载 OpenCV 的扩展模块 opencv_contrib
git clone https://github.com/opencv/opencv_contrib.git
确保 OpenCV 和 opencv_contrib 放在同一层目录,例如:
/path/to/opencv
/path/to/opencv_contrib
3.配置CMake
确保已经安装 CMake,用来配置和生成 OpenCV 的构建文件。
3.1 准备 CMake 构建目录
在 OpenCV 源码根目录(opencv/
)外新建一个构建文件夹(避免污染源码):
cd /path/to/opencv
mkdir build
cd build
3.2 配置CMake
使用以下命令启用 GStreamer
,并指定 opencv_contrib
的模块路径:
cmake -S D:/pycharm/Project/github/opencv `
-B D:/pycharm/Project/github/opencv/build `
-D CMAKE_BUILD_TYPE=Release `
-D OPENCV_EXTRA_MODULES_PATH=D:/pycharm/Project/github/opencv_contrib/modules `
-D WITH_GSTREAMER=ON `
-D PKG_CONFIG_EXECUTABLE=pkg-config `
-D CMAKE_INSTALL_PREFIX=D:/pycharm/Project/github/opencv/install `
-D CMAKE_PREFIX_PATH="D:/Gstream/develop/1.0/msvc_x86_64" `
-D GSTREAMER_INCLUDE_DIR=D:/Gstream/develop/1.0/msvc_x86_64/include/gstreamer-1.0 `
-D GSTREAMER_LIBRARY_DIR=D:/Gstream/develop/1.0/msvc_x86_64/lib
查看是否有如下输出:
-- GStreamer: YES (1.20.6)
若有,则OpenCV已支持GStreamer
有想交流的朋友可以联系微信:a2744739916
,或微信公众号:咚叶的小铺
,欢迎大家!