基于香橙派 调用USB摄像头 的两种方法(命令&脚本)
文章目录
1、配置
- 全志H616
- 在某宝随便买的一个带有USB接口的摄像头模块
类似这种就可以了, 没必要买的太高大上,有个摄像头和USB就行。
2、实验
因为我的目的其实是想要用香橙派来实现垃圾识别的功能,这篇文章涉及到的代码可能有部分会与 C语言调用阿里云Python接口 的程序,但是并不影响摄像头模块的功能,大家可以放心参考;
2.1 设备连接与调试
2.1.0 小知识 怎么查看当前进程?怎么杀进程?
- 查看进程
ps aux | grep ***
'***'可以是我们想要查看的进程的 正则表达式 - 杀死进程
kill -9 ***
'***'表示该进程的序列号
2.1.1 基本库
查看设备节点
sudo apt update
sudo apt install -y v4l-utils
v4l2-ctl --list-devices
clone https://gitee.com/leeboby/mjpg-streamer
sudo apt-get install -y cmake libjpeg8-dev
cd mjpg-streamer/mjpg-streamer-experimental
make -j4
sudo make install
# 为start.sh脚本的运行做准备,在后文
2.1.2 简单拍个照
sudo apt update
sudo apt-get install -y fswebcam
# 安装完 fswebcam 后可以使用下面的命令来拍照
# a) -d 选项用于指定 USB 摄像头的设备节点
# b) --no-banner 用于去除照片的水印
# c) -r 选项用于指定照片的分辨率
# d) -S 选项用设置于跳过前面的帧数
# e) ./image.jpg 用于设置生成的照片的名字和路径
# 看不懂没关系,后面会有命令
# 假设
>>> sudo fswebcam -d /dev/video1 --no-banner -r 1280x720 -S 5 ./image.jpg
# 这样子就可以拍一张照片了,存放位置在主目录下,文件名为 image.jpg
- 提示错误的话,是因为设备节点不对,每次重新启动板子,连接的摄像头设备节点都会变,他有三种 分别是video1/video2/video3
举个栗子
-
我们一个个设备节点都试试,就可以了;
-
记住我们的设备节点!我当前是
video0
2.2 实验程序
2.2.1 用两个脚本实现
# start.sh
export LD_LIBRARY_PATH="$(pwd)"
#./mjpg_streamer -i "input_uvc.so --help"
./mjpg_streamer -i "./input_uvc.so -d /dev/video1 -u -f 30" -o "./output_http.so -w ./www"
# mjpg.sh
#!/bin/bash
cd /home/orangepi/mjpg-streamer/mjpg-streamer-experimental
./start.sh
2.2.2 用脚本打开摄像头
封端mjpg.sh的原因是,start.sh仅在当前目录执行
>>> mhpg.sh
- 程序定在这里,说明摄像头开启成功
2.2.3 在网页上看到实时拍摄的视频
然后在和开发板同一局域网的 Ubuntu PC 或者 Windows PC 或者手机的浏览orange Pi器中输入就能看到摄像头输出的视频了
192.168.1.20:8080 #【开发板的 IP地址:8080】
2.2.4 抓拍命令
wget http://127.0.0.1:8080/?action=snapshot -O /tmp/garbage.jpg
- 抓拍结果
欢迎大家一起交流讨论!