当前位置: 首页 > 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 官方状态管理 -- 进阶使用篇
  • 杭州发布最新“独角兽企业”榜单,“六小龙”中5家已晋级
  • 拖车10公里收1900元?货车司机质疑收费过高,潮州饶平县市监局已介入
  • 央行上海总部:受益于过境免签政策,上海市外卡刷卡支付交易量稳步增长
  • 中国海外宏洋集团:一季度经营溢利同比降48.6%,密切关注行业收并购机会等
  • “雷公”起诉人贩子王浩文案开庭:庭审前手写道歉信,庭审中不承认拐走川川
  • 今年一季度上海离境退税商品销售额7.6亿元,同比增85%