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

发布于:2025-03-24 ⋅ 阅读:(27) ⋅ 点赞:(0)

作者: 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网口雷达:

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

预先准备

  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_0
   MvCameraControl
   ##GenApi_gcc485_v3_0
   MVGigEVisionSDK
   log4cpp_gcc485_v3_0
   MVRender
   Log_gcc485_v3_0
   MvUsb3vTL
   #MathParser_gcc485_v3_0
   #NodeMapData_gcc485_v3_0
   MediaProcess
   ##XmlParser_gcc485_v3_0
   X11
 )

  • 注释掉的,我们这个项目里面不需要,需要的话,后续在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名称是 mylive
            application 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