0
点赞
收藏
分享

微信扫一扫

libusb + libuvc 环境搭建

Sky飞羽 2022-03-11 阅读 57



1.什么是libuvc ?

libuvc 是一个基于 host 端的跨平台的 uvc 开源库,小巧简洁。目前支持


  • h264/mjpeg/yuv
  • 完整的 uvc 协议支持(控制/流)
  • 扩展单元协议自定义。

libuvc 是一个基于libusb 之上的协议,对于想学uvc的朋友,可以快速入手其源码。

本文对其源码,不做过多分析,只对其环境构建做详细介绍。

2.安装准备


  • cmake
  • git
  • gcc
  • pkg-config
  • libusb
  • libuvc

默认cmake/git/gcc/pkg-config 已安装,本文只对libusb 和libuvc 进行介绍。

3.安装 libusb

libusb 可以通过命令行安装,本文将从源码编译安装,方便大家后续在编的平台交叉编译。

3.1下载

git clone https://github.com/libusb/libusb.git

3.2 编译

  1. 安装第三方库
sudo apt-get install autoconf libtool 
libudev-dev
  1. 执行自动配置脚本,执行完成后会生成configure, INSTALL
./autogen.sh
  1. 配置configure(工具链, 安装路径,编译选项等) 见 INSTALL
PWD=`pwd`
rm -r $PWD/out
mkdir $PWD/out
PREFIX_DIR=$PWD/out
# 这里只配置了 安装路径
./configure --prefix=$PREFIX_DIR
# 编译及安装
make && make install

3 .编译成功如下:

libusb + libuvc 环境搭建_git

4. libuvc

4.1 下载源码

git clone https://github.com/libuvc/libuvc.git

4.2 编译

  1. 打开README。可以看到安装编译目录

libusb + libuvc 环境搭建_第三方库_02

  1. 指定第三方库路径

1.1 libusb

# 设置环境变量,并将libusb-1.0.pc 复制到改路径下
export PKG_CONFIG_PATH=/home/wxyang/work/github/usb/3rd/pkgconfig
# 查找库(测试)
pkg-config --libs libusb-1.0
# 查找头文件(测试)
pkg-config --cflags libusb-1.0

1.2 opencv 由于opecv 依赖的三方库太多,故不从源码介绍安装,直接通过apt-get 安装

sudo apt-get install libopencv-dev python-opencv
# 测试
pkg-config --cflags opencv

libusb + libuvc 环境搭建_第三方库_03

1.3 libjpeg 

可选,如果要支持mjpeg 编码需要安装,也可通过ffmpeg解码

  1. 编译安装
#!/bin/bash
PWD=`pwd`
rm $PWD/build
mkdir $PWD/build
mkdir $PWD/out
BUILD_DIR=$PWD/build
PREFIX_DIR=$PWD/out
cd BUILD_DIR
# 指定安装路径
cmake -DCMAKE_INSTALL_PREFIX=$PREFIX_DIR -DBUILD_TEST=ON -DBUILD_EXAMPLE=ON ..
# 这里只配置了 安装路径
make && make install
~

libusb + libuvc 环境搭建_git_04

5. 测试

  1. 修改 makefile

libusb + libuvc 环境搭建_git_05

  1. 将编好的libuvc库 放到指定的位置并设置好环境变量 PKG_CONFIG_PATH

  • 3rd/pkgconfig 下放编译好的.pc 便于pkg-config 能找到
  • libuvc.pc 里面指定了真正的库文件目录
  • testuvc 里面是测试simple ,直接从libuvc里面拷贝一个例子
  • 注意使用pkg-congfig 默认是动态链接,如果想要镜头链接,将指定库文件里面的动态库全部删掉,就会自动静态链接。

libusb + libuvc 环境搭建_git_06

6. 总结

本文记录一下在构建libuvc 的时候,所遇到的一些坑.整个过程下来,如果一个人折腾还是挺花时间。同时回顾一下第三库的构建过程,方便读者快速在其他平台编译。

如果,觉得文章对你有所帮助,欢迎点赞、转发、分享!


举报

相关推荐

0 条评论