树莓派Linux编译安装MJPG-streamer查看摄像头并设置访问密码

本文教程是使用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 libjpeg9-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.效果展示

运行成功后浏览器打开地址界面是这个样子的,如图所示:

3-1.jpg教程到这基本就可以了,下面是自定义运行及说明。

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 如下图所示:

2.jpg

方法二、在命令窗口输入运行:

手动普通运行(当前目录下):./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是设置用户名和密码,这些参数都可以自定义修改,运行启动后效果如下图:

无标题.jpg


里面的input_uvc.so语法可以更具个人喜好自定义,mjpg_streamer这个功能的结构:

Mjpg_streamer.c    /* 主程序主要运行如下几个部分 */

input_init();              /* 输入相关的初始化 */

output_init();           /* 输出相关的初始化 */

input_run();             /* 运行输入函数,采集输入数据*/

output_run();          /* 输出初函数,把数据收集起来通过网络socket发送出去 */

4.jpg

mjpg_streamer搭建好可以用来自定义各种监控,只要细心点都会运行成功,本教程到此结束。

本文章为原创、翻译或编译,转载请注明来自TKDCZ网图

网友点评

已有0条点评 我要点评
验证码
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。