开源相机管理库Aravis学习——安装

paw5zx Lv4

前言

最近在做采集软件的开发,由于我自己使用过Huaray和Basler两个品牌的相机,所以在设计软件时尝试设计统一的接口去控制不同品牌和型号相机的相同或类似的行为。当然,我的设计思路都是建立在调用各品牌SDK的基础上。
后来我去外网搜索,发现了一个开源项目Aravis,它通过提供一个通用的API,让我们能够不受相机的品牌或型号限制,自由地进行图像采集和相机控制,支持从简单的图像捕获到复杂的相机设置调整的一系列操作。

项目地址:https://github.com/AravisProject/aravis

Aravis简介

Aravis是一个基于glib/gobject的库,允许开发者对遵循GenICam标准的网络相机进行通信和控制。它目前实现了工业相机使用的GigE和USB3协议。它还提供了一个简单的以太网相机模拟器和视频查看器。

依赖关系说明

  • Aravis库依赖于zlib、libxml2和glib2,若选择使用USB支持则需要依赖libusb1。
  • GStreamer插件除了需要Aravis库的依赖外,还依赖于GStreamer1。
  • 视频查看器(Viewer)依赖于GStreamer1、Gtk+3以及Aravis库的依赖。
  • 所需的版本在Aravis源码中的meson.build文件里有指定。
  • 若使用Aravis核心功能,可选择性构建,减少依赖。

安装过程

cmake安装(可选)

可选,不安装也可以构建Aravis项目


注意ubuntu 22.04之后可以直接apt安装cmake,而20.04及之前版本直接apt安装的cmake版本低于Aravis所要求的cmake版本(3.17),解决方法见《CMake版本过低》

1
apt install cmake

安装完毕后验证是否安装成功

1
cmake --version

meson安装

由于Aravis是使用meson进行项目构建的,所以我们先安装meson:

1
apt install meson

安装完毕后验证是否安装成功

1
meson --version

pkg-config安装

1
apt install pkg-config

安装完毕后验证是否安装成功

1
pkg-config --version

glib-2.0安装

1
apt install libglib2.0-dev

安装完毕后验证是否安装成功

1
pkg-config --modversion glib-2.0

libxml-2.0安装

1
apt install libxml2-dev

安装完毕后验证是否安装成功

1
pkg-config --modversion libxml-2.0

GStreamer插件安装

1
apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

aravis源文件下载

作者对aravis使用者的建议是最好使用发行版本而不是直接git checkout

在github上找到所需的aravis的发行版本,并下载:https://github.com/AravisProject/aravis/releases
我选择的是0.8.31版本:

下载压缩包后解压即可

1
tar -xvf aravis-0.8.31.tar.xz

构建和安装aravis

进入工作目录,然后执行以下命令:

1
meson configure

此命令可以查看构建目录中的配置选项,主要关注项目构建配置选项:

1
2
3
4
5
6
7
8
9
10
11
12
Project options         Default Value             Possible Values           Description
--------------- ------------- --------------- -----------
documentation disabled [enabled, disabled, auto] Build documentation (requires gi-docgen)
fast-heartbeat false [true, false] Enable faster heartbeat rate
gst-plugin auto [enabled, disabled, auto] Build GStreamer plugin
gv-n-buffers 16 >=1 Number of buffers used to receive GVSP packets
introspection auto [enabled, disabled, auto] Build introspection data (requires gobject-
introspection)
packet-socket auto [enabled, disabled, auto] Enable packet socket support
tests true [true, false] Build tests
usb auto [enabled, disabled, auto] Enable USB support
viewer auto [enabled, disabled, auto] Build simple viewer

用户可以视情况选择执行:

1
meson setup build [构建选项]

例如,我的实际使用需求为:①无需GUI Viewer②仅使用C语言API③不使用USB相机,因此添加以下选项:

1
meson setup build -Dviewer=disabled -Dintrospection=disabled -Dusb=disabled

当然,如需全部默认则直接:

1
meson setup build

然后进一步构建:

1
2
3
cd build
ninja
ninja install

在执行meson setup build可能会有安装失败的项点,错误解决方法可以参考文末的《安装过程中遇到的问题》

构建失败重新构建可以:

1
2
meson setup build --reconfigure [构建选项]
...

或(推荐):

1
2
3
rm -rf build
meson setup build [构建选项]
...

验证

1
pkg-config --modversion aravis-0.8

==至此安装已完成==

视频查看器

找到Aravis双击打开,即可查看已连接的相机设备

安装过程中遇到的问题

meson版本过低

我安装的aravis版本是0.8.31,这个版本aravis的编译依赖0.57.0及以上版本的meson,而我通过apt包管理器下载的meson版本为0.53.2,不满足需求。因此要对meson进行升级操作:

①首先安装或升级pip

1
2
3
apt install python3-pip

pip3 install --upgrade pip

②然后移除旧版本meson避免版本冲突

1
apt remove meson

③使用pip安装最新版本的meson
推荐使用–user选项,这样可以将Meson安装在用户目录下,避免对系统全局Python环境造成潜在的干扰

1
pip3 install --upgrade --user meson

④更新环境变量
~/.bashrc文件中添加

1
export PATH="$HOME/.local/bin:$PATH"

然后重启系统生效

⑤验证meson版本
安装或升级完成后,通过以下命令检查Meson的版本,以确保安装或升级成功

1
meson --version

我的安装结果:

CMake版本过低

在构建项目的时候,提示了以下错误信息:

说明我系统中的CMake版本过低,需要升级。

注意:apt包管理器中的CMake版本不是最新的,所以我们不使用apt install更新CMake

我们采用从源码编译的方法更新:
①移除旧cmake防止版本冲突

1
apt remove cmake

②下载源码
进入CMake官网 下载所需版本的源码,我下载的是3.29.0发布版本

③解压下载的源码包

1
tar -zxvf cmake-3.29.0.tar.gz

④编译和安装CMake

1
2
3
4
cd ./cmake-*
./bootstrap
make
make install

⑤添加环境变量
~/.bashrc中添加

1
export PATH=/path/to/cmake/bin:$PATH

/path/to/cmake是解压出来的源码的路径

⑥验证CMake

1
cmake --version

缺少GStreamer组件

直接使用包管理器安装即可

1
apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

其他

待补充,反正就是缺啥安啥就行

参考文章

1.Installation and Debug

  • 标题: 开源相机管理库Aravis学习——安装
  • 作者: paw5zx
  • 创建于 : 2024-03-30 12:21:15
  • 更新于 : 2025-05-15 09:15:00
  • 链接: https://paw5zx.github.io/aravis-install/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论