1.下载必要的东西
sudo apt-get install libjpeg8-dev #JPEG支持库
sudo apt-get install imagemagick
sudo apt-get install libv4l-dev #4l是小写"L"
sudo apt-get install cmake #下载编译工具
sudo apt-get install git
git clone https://github.com/jacksonliam/mjpg-streamer.git
2. 进入mjpg-streamer-experimental 目录底下
cd mjpg-streamer/mjpg-streamer-experimental
3.编译
make all
4.安装
sudo make install
5.修改启动脚本
vi start.sh
把usb的摄像头(input_uvc.so)改成树莓派的摄像头(input_raspicam.so):
6.把摄像头的功能打开
sudo raspi-config
- 选择Interfacing Options
- 进入之后选择P1 Camera
- 进入之后选择Yes
最后通过 Finish 退出,并重启树莓派(sudo reboot).
7. 启动
./start.sh
在浏览器输入 http://树莓派IP地址:8080,回车 显示如下页面,点击页面左侧,Stream栏,显示监视画面
8.拍照
必须结束掉上面监控的功能才能进行拍照否则会放生如下的错误:
输入以下指令,可以使用树莓派摄像头的拍照功能:
raspistill -o imageTest.jpg
指令参数:
-?, --help : 帮助文档
-w, --width : 设置图像宽度 <尺寸>
-h, --height : 设置图像高度 <尺寸>
-q, --quality : 设置jpeg品质 <0到100>
-r, --raw : 增加raw原始拜尔数据到JPEG元数据
-o, --output : 输出文件名 <文件名>,如果要写到stdout,使用`-o -`,如果不特别指定,图像文件不会被保存
-l, --latest : 链接最近的完整图像到指定文件 <文件名>
-v, --verbose : 在运行摄像头时输出详细信息
-t, --timeout : 拍照和关闭时的延时指定,未指定时默认是5s
-th, --thumb : 设置预览图(小图)参数(包括X、Y、品质)或者不设置
-d, --demo : 运行一个demo模式(cycle through range of camera options, no capture),括号里的我可以理解成循环测试模式吗?
-e, --encoding : 编码来输出指定格式文件 (jpg, bmp, gif, png)
-x, --exif :将可交换图像文件应用到捕获中(格式:`key=value`)或者不设置
-tl, --timelapse : 间隔拍摄,每拍摄一张图片
-fp, --fullpreview : 用静态捕捉分辨率运行预览(可能会减小预览帧率)
-k, --keypress : 按键触发,按`ENTER`键拍照,按`X`然后`ENTER`键退出
-s, -signal : 信号触发,等待另一个进程信号来拍摄一张照片
-g, -gl : 绘制预览到文本,而不是使用视频渲染组件(啥意思?)
-gc, --glcapture : 捕获GL帧buffer而不是摄像机图像
-set, --settings : 检索摄像机设置值然后写出到stdout
-cs, --camselect : 选择摄像头设备 <数字>,默认0
-bm, --burst : 运行burst capture mode
拍照后在工作目录中生成 imageTest.jpg 的文件就是照片。