(1)首先将USB摄像头连接到OrangePi开发板的USB接口
(2)通过lsmod命令查看是否加载了uvcvideo模块
lsmod | grep video
(3)通过 v4l2-ctl 命令可以看到 USB 摄像头的设备节点信息为/dev/video0
sudo apt update
sudo apt install -y v4l-utils
v4l2-ctl --list-devices
#注:v4l2 中的 l 是小写字母 l,不是数字 1。
#注:video 的序号不一定都是 video0,请以实际看到的为准。
(4)使用 fswebcam 测试 USB 摄像头
#安装 fswebcam
sudo apt update
sudo apt-get install -y fswebcam
#拍照
sudo fswebcam -d /dev/video0 \ --no-banner -r 1280x720 -S 5 ./image.jpg
#-d 选项用于指定 USB 摄像头的设备节点
#--no-banner 用于去除照片的水印
#-r 选项用于指定照片的分辨率
#-S 选项用设置于跳过前面的帧数
#./image.jpg 用于设置生成的照片的名字和路径
#在服务器版的 linux 系统中,拍完照后可以使用 scp 命令将拍好的图片传到Ubuntu PC 上镜像观看
scp image.jpg test@192.168.1.55:/home/test(根据实际情况修改 IP 地址和路径)
#在桌面版的 linux 系统中,可以通过 HDMI 显示器直接查看拍摄的图片
(5)使用 mjpg-streamer 测试 USB 摄像头
#下载 mjpg-streamer
#Github 的下载地址:
git clone https://github.com/jacksonliam/mjpg-streamer
#Gitee 的镜像下载地址为:
git clone https://gitee.com/leeboby/mjpg-streamer
#安装依赖的软件包
#Ubuntu 系统
sudo apt-get install -y cmake libjpeg8-dev
#Debian 系统
sudo apt-get install -y cmake libjpeg62-turbo-dev
#编译安装 mjpg-streamer
cd mjpg-streamer/mjpg-streamer-experimental
make -j4
sudo make install
#启动mjpg_streamer
export LD_LIBRARY_PATH=.
sudo ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -u -f 30" -o "./output_http.so -w ./www"
#也可以在start.sh中直接修改
vi start.sh
#将./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
#修改为./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -u -f 30" -o "./output_http.so -w ./www" #注意这里的video1需要根据实际情况修改
./start.sh
#在和开发板同一局域网的 Ubuntu PC 或者 Windows PC 或者手机的浏览器中输入【开发板的 IP 地址:8080】就能看到摄像头输出的视频了
(6) 执行拍照,获取图片
#获取图片
wget http://192.168.1.6:8080/?action=snapshot -O /tmp/garbage.jpg
(7)设置开机自启动
cd ~
touch mjpg.sh
vi mjpg.sh
#输入
####################
#!/bin/bash
cd mjpg-streamer/mjpg-streamer-experimental
./start.sh
####################
chmod +x mjpg.sh
/home/orangepi/mjpg.sh
#开机起来当前用户下面所有的执行程序(配置开机启动的位置)
cd /etc/xdg/autostart/
sudo cp im-launch.desktop mjpg.desktop
sudo vi mjpg.desktop
#清空输入
####################
[Desktop Entry]
Name=mjpg
Exec=/home/orangepi/mjpg.sh
Type=Application
NoDisplay=true
####################
#重启然后查看mjpg的服务有没有起来
sudo reboot -f
ps ax | grep mjpg