基于 mjpg-streamer 的树莓派视频监控

视频监控搭建

本来想用 python 来做的,但是 VLC 串流不知道是不是设置的问题,视频采集是正常的,但是接收端接收到的视频一团糊,在无意间知道了 mjpg-streamer 这个项目,GitHub 地址:https://github.com/jacksonliam/mjpg-streamer。

安装方法参照GitHub:

sudo apt-get install cmake libjpeg8-dev

sudo apt-get install gcc g++

cd mjpg-streamer-experimental
make
sudo make install

安装完之后就可以直接启动了:

./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so"

默认使用8080端口,浏览器打开地址:

http://192.168.0.103:8080/?action=stream

就能实时查看树莓派摄像头采集到的视频。

外网访问

在局域网内,直接访问树莓派的 ip 地址就能查看视频,但是如果想从外网访问的话,还需要做点手脚。

使用 frp 反向隧道进行内网穿透。

先分别在vps 和树莓派上安装frp 服务:

wget https://github.com/fatedier/frp/releases/download/v0.20.0/frp_0.20.0_linux_amd64.tar.gz

解压上面下载的文件。

服务器端配置文件:

进去目录

vi  frps.ini

[common]
bind_port = 7000         # frp与客户端绑定进行通信的端口
auto_token = frp7
vhost_http_port = 9000   # http 访问端口

树莓派配置文件:

1.进去目录
2.vi frpc.ini

[common]
server_addr = 云服务器的IP   # frps所在的服务器的 IP
server_port = 7000                 # frp与服务器绑定进行通信的端口

[ssh]
type = tcp
local_ip = 192.168.0.103        # Pi所在局域网IP
local_port = 22                       # 本地端口
remote_port = 6000               # ssh远程访问端口

[web]
type = http
local_port = 8080                   # web 服务对应的端口——mjpg-streamer所需端口
custom_domains = 云服务器IP   # frps所在的服务器的 IP

依次启动服务器端的 frp,树莓派视频采集,树莓派端 frp。

./frps -c ./frps.ini

./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so"

./frpc -c ./frpc.ini

然后打开浏览器访问:http://xxx.xxx.xxx.xxx:9000/stream.html ,不知道是不是因为 VPS 在国外的原因,延迟有3 s 这样子。。

注意:树莓派只能运行 arm 架构的 frp(树莓派frp


参考:

基于树莓派+mjpg+frp+阿里云服务器的远程监控

树莓派上MJPG-streamer安装手顺