本地编译 OpenCV 支持 GStreamer

由于大部分 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.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,或微信公众号:咚叶的小铺,欢迎大家!

### 编译带有GStreamer支持OpenCV 在Linux环境中编译带有GStreamer支持OpenCV涉及几个关键步骤,包括准备环境、下载源码以及配置构建选项。对于Ubuntu 20.04而言,确保系统已更新至最新状态并安装必要的开发工具和库文件至关重要。 #### 准备工作 首先需要安装一系列依赖包来满足OpenCV及其插件模块的需求: ```bash sudo apt-3-dev \ libavcodec-dev libavformat-dev libswscale-dev python3-dev python3-numpy \ libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev \ gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good \ gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav \ libgstrtspserver-1.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev ``` 上述命令不仅涵盖了基本的图像处理库,还包括了完整的GStreamer框架及相关组件的支持[^1]。 #### 获取OpenCV源码 通过Git克隆官方仓库获取最新的稳定版源代码: ```bash git clone https://github.com/opencv/opencv.git cd opencv git checkout <desired_version> # 替换为所需的具体版本号 cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout <same_version_as_opencv> ``` 这里强调保持`opencv`与`opencv_contrib`两个项目的分支同步非常重要,因为额外的功能可能依赖于特定版本间的兼容性[^2]。 #### 配置CMake参数 创建一个临时目录用于存放编译产物,并进入该目录执行如下指令完成初步设置: ```bash mkdir -p ~/opencv_build && cd ~/opencv_build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \ -D ENABLE_PRECOMPILED_HEADERS=OFF \ -D WITH_GSTREAMER=ON \ -D BUILD_EXAMPLES=ON .. ``` 特别注意`WITH_GSTREAMER=ON`这一项是用来开启对GStreamer支持;而指定了`OPENCV_EXTRA_MODULES_PATH`则允许访问更多实验性的功能模块。 #### 执行编译过程 一旦确认无误后就可以启动实际的编译流程了: ```bash make -j$(nproc) sudo make install ``` 这一步骤可能会消耗较长时间视乎机器性能而定。完成后即成功安装了一个具备GStreamer特性的自定义化OpenCV实例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值