当前位置: 首页 > news >正文

树莓派安装GStreamer ,opencv支持, 并在虚拟环境中使用的安装方法

首先是我在树莓派中 使用OpenCV 读取网络视频流, 如海康威视 通过rtsp协议地址读取 会发生延迟和丢包的情况 后来使用ffmpeg和OpenCV 读取视频流 丢报的问题减少了 但是长时间运行 还是会造成延迟和卡顿 最后直接卡死画面 后来试了一下GStreamer 管道流 是树莓派支持的 但是原生的OpenCV库 不支持GStreamer  需要通过cmake 改写 以下是办法 

1`下载原文件并解压

# 创建编译目录
mkdir ~/opencv_build && cd ~/opencv_build# 下载 OpenCV 和 OpenCV contrib(可选)
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip# 解压
unzip opencv.zip
unzip opencv_contrib.zip

2`进入 OpenCV 源码并创建 build 目录: 按照你的opencv 目录进入

cd ~/你的路径/opencv
mkdir build && cd build

3`激活你的虚拟环境

source ~/你的虚拟环境路径/虚拟环境名字/bin/activate

4`执行 CMake 配置命令:

cmake -D CMAKE_BUILD_TYPE=Release \-D CMAKE_INSTALL_PREFIX=你的虚拟环境路径/虚拟环境名字/lib/python3.11/site-packages \-D OPENCV_EXTRA_MODULES_PATH=opencv_contrib安装目录/opencv_contrib/modules \-D PYTHON_EXECUTABLE=你的虚拟环境路径/虚拟环境名字/bin/python3 \-D BUILD_opencv_python3=ON \-D BUILD_opencv_python2=OFF \-D WITH_FFMPEG=ON \-D WITH_GSTREAMER=ON \-D WITH_V4L=ON \-D BUILD_TESTS=OFF \-D BUILD_PERF_TESTS=OFF \..

如果这一步成功,会看到一大堆检测通过的结果,且最后几行显示:

-- Configuring done
-- Generating done
-- Build files have been written to: ...

5`如果没报错,请继续执行:

make -j2  # 推荐 j2,树莓派性能有限 

6`安装到虚拟环境

make install

7`安装完之后验证

进入虚拟环境
source ~/你的虚拟环境路径/你的虚拟环境名字/bin/activatepython3 -c "import cv2; print(cv2.__file__)"
python3 -c "import cv2; print(cv2.getBuildInformation())"
你应该能看到:cv2 路径在你的虚拟环境中GStreamer: YESPython 3.11: YES

8`常见导致构建失败的原因:

问题描述
内存不足树莓派即使是 5B 也可能编译中内存不足,建议添加 swap 或减少并发:make -j2
依赖库不全如未正确安装 ffmpeg, gstreamer, libjpeg-dev 等依赖
contrib 模块下载失败某些模块会尝试下载模型,若超时可能卡住或失败
Python 路径不对cmake 的 Python 路径必须与你虚拟环境匹配,否则生成不出 cv2make

相关文章:

  • opencv--图像变换
  • 使用QML Tumbler 实现时间日期选择器
  • express的中间件,全局中间件,路由中间件,静态资源中间件以及使用注意事项 , 获取请求体数据
  • BOM与DOM(解疑document window关系)
  • 看一看 中间件Middleware
  • JVM性能优化之老年代参数设置
  • 【前端】手写代码输出题易错点汇总
  • git检查提交分支和package.json的version版本是否一致
  • 使用vue2开发一个医疗预约挂号平台-前端静态网站项目练习
  • ASP.NET MVC​ 入门指南
  • JAVA设计模式——(六)装饰模式(Decorator Pattern)
  • 建造者模式:分步构建复杂对象的设计模式
  • 罗伯·派克:Go语言创始者的极客人生
  • 【项目管理】进度网络图 笔记
  • Vue 2 的响应式 API 和 Vue 3 的组合式 API 的详细对比,从核心机制、使用方式、代码示例及优缺点展开
  • Linux:git和gdb/cgdb
  • 多线程(线程安全)
  • MacOS上如何运行内网穿透详细教程
  • Puter部署指南:基于Docker的多功能个人云平台掌控自己的数据
  • 《Pinia 从入门到精通》Vue 3 官方状态管理 -- 进阶使用篇
  • 关于“十五五”,在上海召开的这场座谈会释放最新信号
  • 央行4月开展12000亿元买断式逆回购操作
  • 零食连锁鸣鸣很忙递表港交所:去年营收393亿元,门店超1.4万家,净利润率2.1%
  • 贵州茅台一季度净利268亿元增长11.56%,系列酒营收增近两成
  • 三大白电巨头去年净利近900亿元:美的持续领跑,格力营收下滑
  • 习近平就伊朗发生严重爆炸事件向伊朗总统佩泽希齐扬致慰问电