摄像头拉流录制及上传流程

一、拉流

环境:Ubuntu16.04 + python3.5 + OpenCV3.3.0 with ffmpeg

1.摄像头主体程序

在萤石开放平台https://open.ys7.com登陆后可以查到各个设备的信息,包括拉流地址(注意:拉流前需要把摄像头加密disable,在手机APP萤石云视频上可以设置,账号密码同影视开放平台一样)。
拉流代码路径:

/root/ezviz/rtmp_recorder.py

上传代码路径:

/root/ezviz/uploader.py

用一个shell脚本启动以上两个程序,其中拉流程序一共开了三个进程(因为一共有三个摄像头),共计四个进程。
脚本路径:

/usr/sbin/ezviz-rtmp

做成了一个service来启动此脚本并设置成开机启动。
.service文件路径:

/lib/systemd/system/ezviz-rtmp.service
2.建立ssh反向隧道

建立ssh反向隧道从外网连接到192.168.2.62(这个服务器的外网ip是218.94.95.60),密钥对登陆,公钥私钥可在两个系统的/root/.ssh/目录下找到。然后将其做成了一个service一样设置成开机启动,.service文件路径:

/lib/systemd/system/autossh.service
3.监视器脚本

shell脚本检测上文中提到的ezviz-rtmp、autossh服务是否是正常的Active(running)状态,如果不是立刻重启。
脚本路径:

/root/ezviz/monitor.sh

使用crontab每十五分钟执行一次监视器脚本(即每个小时的00, 15, 30, 45分时执行)。
同样使用crontab在每天凌晨三点重启服务器。
使用命令查看crontab里的程序:

crontab -l

使用命令修改crontab里的程序:

crontab -e

你可能感兴趣的:(摄像头拉流录制及上传流程)