树莓派4B非官方摄像头+MJPG-stream显示安装全过程/踩雷记录]
前言
最近尝试树莓派非官方摄像头采集数据,遇到了了一些问题,在这里做记录。
提示:以下是本篇文章正文内容,下面案例可供参考
一、环境配置
1.摄像头检查
sudo raspi-config
选择 【是】随后重启树莓派
重启完之后,我们的基本的操作就完成了,下来来看看/dev下面是否存在摄像头设备的问题:
ls /dev
查看是否有video 0,如果有的话,说明摄像头正常。
注:可能提示这样的问题(如果在以上工作都完成的情况下,摄像头还是不能正常的使用或者驱动,请先检查硬件的连接的问题,可能是排线没有很好的插稳,或者是摄像头本身的问题。
2.安装库
这里参考了树莓派实验室的资料,可以打开链接
添加链接描述
打开终端输入以下命令:
sudo apt-get update
sudo apt-get install subversion
sudo apt-get install libjpeg8-dev
sudo apt-get install imagemagick
sudo apt-get install libv4l-dev
sudo apt-get install cmake
sudo apt-get install git
sudo git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental
sudo make all
sudo make install
就此,安装完成,我在这些地方没有遇到什么问题,如果git clone比较慢的话可以换源,一开始我换了清华镜像,后来发现配置opencv的时候一直出问题,就问客服要了配置好的环境。
普通usb,直接输入以下命令:
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
然后!!!我就开始报错…
二、奇奇怪怪的问题们
1. init_VideoIn failed
出现这个问题的原因是摄像头不支持MJPG是YUV格式的,报错如下:
crw-r–r-- 1 root root 81, 0 Jan 1 08:00 /dev/video0
root@OpenWrt:/# /etc/init.d/mjpg-streamer start
root@OpenWrt:/# MJPG Streamer Version.: 2.0
i: Using V4L2 device.: /dev/video0
i: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
i: Format…: MJPEG
Unable to set format: Invalid argument
Init v4L2 failed !! exit fatal
i: init_VideoIn failed
打开mjg-streamer-------plugins---------input_uvc找到input_uvc.c文件,打开大概在141行左右的位置把int width = 640, height = 480, fps = -1, format = V4L2_PIX_FMT_MJPEG , i; 把 V4L2_PIX_FMT_MJPEG 改成 V4L2_PIX_FMT_YUYV
但是在修改这部分的时候我的mipg-streamer保存路径是默认的,所以在编译器修改代码后提示没有权限修改文件。
故打开终端输入
sudo chmod 777 input_uvc.c
ls al
随后需要重新编译
绿了就表示这个文件可读可写可更改 随后再次编译
cd mjpg-streamer/mjpg-streamer-experimental
sudo make all
sudo make install
完成了所有的基础操作~
2.显示图像
查看树莓派所在的IP地址
ifconfig
我的IP就是172.20.10.5:
输入命令启动摄像头
./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
虽然报错了,但是没有影响,用树莓派或者连在同一网下的另一台PC输入
http://172.20.10.5:8080/ [自己的IP:8080]
也可以用VLC播放器,PC播放就很卡,延迟大概有个1–2S
我一开始输入了 http://172.20.10.5:8080/?action=stream,在VLC和网页都无法显示…所以建议大家直接用http://172.20.10.5:8080/