> 技术文档 > 本地编译 OpenCV 支持 GStreamer_opencv gstreamer

本地编译 OpenCV 支持 GStreamer_opencv gstreamer


文章目录

    • 1. 确保 GStreamer 安装正确
      • 1.1 本地下载 GStreamer
      • 1.1 验证 `pkg-config` 是否正常工作
      • 1.2 确认 GStreamer 的头文件和库路径正确传递
      • 1.3 确认 GStreamer 的头文件和库路径正确传递
    • 2.下载并编译 OpenCV 源码
      • 2.1 下载 OpenCV 源码
      • 2.2 下载OpenCV_contrib代码
    • 3.配置CMake
      • 3.1 准备 CMake 构建目录
      • 3.2 配置CMake

由于大部分 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\\binD:\\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.0pkg-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_DIRSecho $env:GSTREAMER_LIBRARIESecho $env:PKG_CONFIG_PATH

1.3 确认 GStreamer 的头文件和库路径正确传递

pkg-config --cflags glib-2.0pkg-config --libs glib-2.0pkg-config --cflags gobject-2.0pkg-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/opencvmkdir buildcd 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


有想交流的朋友可以私信,或微信公众号:咚叶的小铺,欢迎大家!