视频监控搭建
本来想用 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)。
参考: