本文教程是使用MJPG-streamer来进行摄像头监控查看,MJPG-streamer是一个优秀的开源项目,它可以通过HTTP和其他的方式访问linux上面的兼容摄像头,从而做到远程视频传输的效果。最近我在搞一个和远程视频传输有关开发,考虑到MJPG-streamer图像的流畅的比较高,于是我在树莓派上面搭建监控的时候直接选择了MJPG-streamer。现在将整个搭建的过程记录下来,供大家参考。
1.搭建环境以及硬件设备
树莓派B+、树莓派原生的操作系统(官网可下载)、树莓派的专用摄像头Raspberry Pi Camera。其实现在市面上可以很容易买到的USB摄像头会更加方便,但是笔者手头上暂时只有Raspberry Pi Camera,就将就使用了,并且使用Raspberry Pi Camera由于驱动问题要比USB摄像头多几个安装步骤。
2.Enable(启用)树莓派摄像头
Raspberry Pi Camera插到正确位置后(注意别插反了),供电开机。输入以下命令启用摄像头支持:
输入:sudo raspi-config
然后选择Interface Options,选择Camera然后按回车,再次回车,然后重启树莓派就行了,如下图所示:
3.安装必要的组件
命令行直接敲以下指令:
刷新源:sudo apt update
安装组件:sudo apt install libjpeg62-turbo-dev cmake git subversion libv4l-dev imagemagick
如果一次安装过个命令执行失败也可以逐个命令执行安装。
4.git开源的project到本地并且编译安装
克隆开源:git clone https://github.com/jacksonliam/mjpg-streamer.git
进入目录:cd mjpg-streamer/mjpg-streamer-experimental
编译文件:sudo make all
安装刚才编译的文件:sudo make install
到这步重启一下树莓派就可以自动运行了,浏览器输入http://你树莓派的ip地址:8080就可以查看了,例如http://192.168.1.123:8080/stream.html这样就行了。
5.效果展示
运行成功后浏览器打开地址界面是这个样子的,如图所示:
教程到这基本就可以了,下面是自定义运行及说明。
6.手动加密运行及参数说明
如果需要自定义运行的话,编译完成后请不要进行安装编译即可,也就是不要进行执行sudo make install这条命令。自动没有运行的话也可以尝试下面手动运行:
方法一、可以写个开机自动运行脚本runmjpg,写好放在/etc/init.d目录下:
#!/bin/sh ### BEGIN INIT INFO # Provides: jiankong # Required-Start: $remote_fs $network # Required-Stop: $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: jiankong mjpg-streamer ### END INIT INFO case "$1" in start) echo -n "已开启监控" sudo /替换成你的路径/mjpg_streamer -i "/替换成你的路径/input_uvc.so" -o "/替换成你的路径/output_http.so -w /替换成你的路径/www -p 8080 -c 你的用户名:你的密码" & ;; stop) echo -n "已关闭监控" killall mjpg_streamer ;; restart) killall mjpg_streamer sudo /替换成你的路径/mjpg_streamer -i "/替换成你的路径/input_uvc.so" -o "/替换成你的路径/output_http.so -w /替换成你的路径/www -p 8080 -c 你的用户名:你的密码" & ;; esac exit
放在/etc/init.d目录并授权755,例如授权命令是:sudo chmod 755 runmjpg 如下图所示:
方法二、在命令窗口输入运行:
手动普通运行(当前目录下):./mjpg_streamer -i "./input_uvc.so" -o "./output_http.so -w ./www"
手动加密运行(自定义目录下):/home/aaa/mjpg_streamer -i "/home/aaa/input_uvc.so" -o "/home/aaa/output_http.so -w /home/aaa/www -p 8080 -c name:passwd"
上面加密运行命令说明:、home/aaa/是表示你的程序路径,-p 8080是设置端口,-c name:passwd是设置用户名和密码,这些参数都可以自定义修改,运行启动后效果如下图:
里面的input_uvc.so语法可以更具个人喜好自定义,mjpg_streamer这个功能的结构:
Mjpg_streamer.c /* 主程序主要运行如下几个部分 */
input_init(); /* 输入相关的初始化 */
output_init(); /* 输出相关的初始化 */
input_run(); /* 运行输入函数,采集输入数据*/
output_run(); /* 输出初函数,把数据收集起来通过网络socket发送出去 */
mjpg_streamer搭建好可以用来自定义各种监控,只要细心点都会运行成功,本教程到此结束。
网友点评
已有0条点评 我要点评