前言

最近在做采集软件的开发,由于我自己使用过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。
  • 视频查看器依赖于GStreamer1、Gtk+3以及Aravis库的依赖。
  • 所需的版本在Aravis源码中的meson.build文件里有指定。
  • 可以只构建库本身,以此将依赖减少到最少。

安装过程

meson安装

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

apt install meson

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

meson --version

aravis源文件下载

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

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

下载压缩包后解压即可

tar -xvf aravis-0.8.31.tar.xz

构建和安装aravis

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

meson setup build
cd build
ninja
ninja install

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

至此安装已完成

视频查看器

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

安装过程中遇到的问题

meson版本过低

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

①首先安装或升级pip

apt install python3-pip
或
pip3 install --upgrade pip

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

apt remove meson

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

pip3 install --upgrade --user meson

④更新环境变量

~/.bashrc
文件中添加

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

然后重启系统生效

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

meson --version

我的安装结果:

CMake版本过低

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

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

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

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

apt remove cmake

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

③解压下载的源码包

tar -zxvf cmake-3.29.0.tar.gz

④编译和安装CMake

cd ./cmake-*
./bootstrap
make
make install

⑤添加环境变量

~/.bashrc
中添加

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

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

⑥验证CMake

cmake --version

缺少GStreamer组件

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

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

参考文章

1.
Installation and Debug

标签: none

添加新评论