海康工业摄像机rtmp推流和fastlio部署

news/2025/3/26 2:53:04/

作者: DWDROME

配置环境:

  • OS: Ubuntu 20.04.6 LTS on Windows 11 x86_64
  • Kernel: 5.15.167.4-microsoft-standard-WSL2+
  • ros-noetic

wsl连接:

  1. 海康摄像机usb口:

    • Connect USB devices

      powershell管理员下:

      inget install usbipd  
      usbipd list  
      usbipd bind --busid <busid>   #确保共享
      usbipd attach --wsl --busid <busid> # attach
      

      在wsl2下

      lsusb
      

      确保已经有设备连接了不要连错了USB3 Vision Device

  2. livox网口雷达:

    • 在官方的wsl setting中,设置镜像网络模式
    • 参考教程:
      • WSLg/WSL2 网络配置,终极解决方案 - 镜像网络
      • WSL2的镜像网络模式:带来更流畅的Linux开发体验
    • 或者说你不是win11版本的,也可以参照我这个教程(没有镜像网络模式),但是在设置之后就无法使用usbipd了,目前我想不出解决方式。
      • WSL 环境桥接与雷达通信配置笔记

如果你是完整环境,那太好了,以上你都不需要搞

预先准备

  • opencv安装:https://blog.csdn.net/weixin_44796670/article/details/115900538
  • 海康MVS:海康Camera MVS Linux SDK二次开发封装ROS packge过程记录(c++)
  • nginx推流
  • fastlio的安装:
    • 库:

      • NEXTE_Sentry_Nav
    • 博客:

      • 关于在ROS1下用MID360配置FAST-LIO2备忘
      • 我的笔记
  1. 配置./bashrc
# 1. MVS SDK(MVCAM)环境变量配置
export MVCAM_SDK_PATH=/opt/MVS                              # SDK 根目录
export MVCAM_GENICAM_CLPROTOCOL=/opt/MVS/lib/CLProtocol    # 协议库路径
export ALLUSERSPROFILE=/opt/MVS/MVFG                       # 运行文件目录
export MVCAM_COMMON_RUNENV=/opt/MVS/lib                    # 运行环境库路径# 2. LD_LIBRARY_PATH 配置(强制使用系统)
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH# 3. 执行文件路径扩展
export PATH=$PATH:/usr/local/nginx/sbin/
export PATH=$PATH:/opt/MVS/bin
  1. 修改/ws_hikrobot_camera/src/hikrobot_camera/CmakeList.txt部分区域
find_package(OpenCV REQUIRED)target_link_libraries(${PROJECT_NAME}${catkin_LIBRARIES}${OpenCV_LIBRARIES}${mqtt_client_LIBRARIES}GCBase_gcc485_v3_0MvCameraControl##GenApi_gcc485_v3_0MVGigEVisionSDKlog4cpp_gcc485_v3_0MVRenderLog_gcc485_v3_0MvUsb3vTL#MathParser_gcc485_v3_0#NodeMapData_gcc485_v3_0MediaProcess##XmlParser_gcc485_v3_0X11)
  • 注释掉的,我们这个项目里面不需要,需要的话,后续在launch中自行配置启动环境
  1. 修改launch文件,在/ws_hikrobot_camera/src/hikrobot_camera/launch下的mid360部分
<node pkg="hikrobot_camera" type="hikrobot_camera" name="hikrobot_camera" respawn="true" output="screen"><env name="LD_LIBRARY_PATH" value="/opt/MVS/lib/64:/opt/MVS/lib/32:/usr/lib/x86_64-linux-gnu:/usr/local/lib:/opt/ros/noetic/lib:$LD_LIBRARY_PATH"/>
</node>
  • ✔️ 支持 MVS 相机
  • ✔️ 支持 ROS 基础库
  1. 部署nginx:

    1. # 依赖
      sudo apt-get update
      sudo apt-get install openssl libssl-dev
      sudo apt-get install libpcre3 libpcre3-dev
      sudo apt-get install zlib1g-dev
      sudo apt-get install build-essential libssl-dev
      # 安装
      mkdir my_nginx_rtmp
      cd my_nginx_rtmp/
      wget http://nginx.org/download/nginx-1.21.6.tar.gz
      wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
      tar -xf nginx-1.21.6.tar.gz
      unzip master.zip
      cd nginx-1.21.6/
      ./configure --with-http_ssl_module --add-module=../nginx-rtmp-module-master
      sudo make -j4 
      sudo make install##检查是否安装成功
      /usr/local/nginx/sbin/nginx -v
      ##将nginx添加到环境变量中:
      sudo vi ~/.bashrc
      ##在最后添加:
      export PATH=$PATH:/usr/local/nginx/sbin/
      ##添加完成执行source命令:
      source ~/.bashrc
      ##如果遇到权限问题
      sudo chown -R 用户名:用户名 /usr/local/nginx/
      
    2. 编辑/usr/local/nginx/conf/nginx.conf

      1. #/usr/local/nginx/conf/nginx.conf
        #注明:请勿直接覆盖原来的conf文件,这只是部分有关直播的内容
        #配置RTMP,这个配置格式在github的readme上有详细说明rtmp {                server {listen 1935;  #服务端口--默认chunk_size 4096;   #数据传输块的大小--默认#设置直播的application名称是 myliveapplication mylive{ live on; #live on表示开启直播模式}}
        }#请在http里面找到server
        http{...# 这里有一些其他的配置server {listen       8080;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;#增加这一步分内容location / {root   html;index  index.html index.htm;}location = /50x.html {root   html;}location /pop/video {alias /var/video;}location /info {rtmp_stat all;rtmp_stat_stylesheet stat.xsl;}location /stat.xsl {root /home/along/code/my_nginx_rtmp/nginx-rtmp-module-master;}
        }
        
      2. 剩余部分参照opencv读取rtsp图像处理后推流rtmp


http://www.ppmy.cn/news/1582628.html

相关文章

AI 赋能应急管理:ChatGPT、DeepSeek、Grok 的应用探索

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 随着人工智能&#xff08;AI&#xff09;技术的快速发展&#xff0c;大语言模型&#xff08;LLM&#xff09;在应急管理…

使用Python开发智能家居系统:基于语音命令的设备控制

友友们好! 我是Echo_Wish,我的的新专栏《Python进阶》以及《Python!实战!》正式启动啦!这是专为那些渴望提升Python技能的朋友们量身打造的专栏,无论你是已经有一定基础的开发者,还是希望深入挖掘Python潜力的爱好者,这里都将是你不可错过的宝藏。 在这个专栏中,你将会…

开源AI大模型赋能私域流量:S2B2C场景下品牌文化建构的智能路径研究

摘要&#xff1a;在私域流量时代&#xff0c;品牌与用户的关系正在经历从单向传播到双向共生的范式转变。本文以星巴克、喜茶等典型案例为切入点&#xff0c;结合开源AI大模型的技术特性&#xff0c;探讨AI智能名片、S2B2C商城小程序源码等数字化工具如何重构品牌与用户对话的底…

前后端+数据库的项目实战:hbu迎新网-较复杂(上)

目录 一、准备工作 二、创建数据库 三、前端htmlcss搭建好 四、把数据库的信息显示到页面-实现查找全部操作 &#xff08;1&#xff09;写js文件进行交互 &#xff08;2&#xff09;创建服务器后端通过js与前端页面进行相响应 ​五、实现查找部分信息 &#xff08;1&…

无阻塞UI:通过Web Worker提升用户体验的新途径

1.Web Worker 的定义 Web Worker 是浏览器提供的 JavaScript 多线程解决方案&#xff0c;允许在主线程之外运行脚本&#xff0c;执行耗时任务而不阻塞用户界面, 适用于处理耗时任务&#xff0c;避免阻塞主线程&#xff0c;提升用户体验。通过 postMessage 和 onmessage 实现主…

行业分析---小米汽车2024全年财报

1 背景 其实&#xff0c;关于小米汽车&#xff0c;笔者之前已经多次介绍过了&#xff0c;包括小米汽车成功的原因、智驾进展以及雷军个人的魅力&#xff0c;见博客《自动驾驶---小米汽车智驾进展》和《微自传系列---雷军》。 小米汽车取得的成绩&#xff0c;出乎很多人的意料&a…

燃气场站的岗位与职责

在燃气行业&#xff0c;场站管理需要根据运营规模和安全要求设置多个岗位&#xff0c;形成层级明确、协作紧密的组织架构。以下是基于最新行业规范和管理实践的核心岗位及其职责解析&#xff0c;并梳理了岗位间的逻辑关系&#xff1a; 一、核心岗位及职责 站长 • 主要职责&…

机器学习和深度学习中参数概览

目录 1. 模型参数&#xff08;Learnable Parameters&#xff09; 1.1 神经网络中的核心参数 1.2 归一化层参数 1.3 其他特殊参数 2. 超参数&#xff08;Hyperparameters&#xff09; 2.1 优化相关超参数 2.2 训练流程超参数 2.3 模型结构超参数 2.4 正则化超参数 3. …