如何将猫猫监控放在博客上


title: 如何将猫猫监控放在博客上
date: 2020-07-30 13:36:22
tags:

  • docker
  • nginx
  • rtmp
  • ffmpeg
    categories:
  • 喵喵

将监控猫猫的监控放到博客上并且定时关闭摄像头

需求很简单,作为一个拥有猫猫的程序员来说,观察自己的猫猫每天在干什么很重要,
于是乎,装了监控,为了分享给朋友们一起云撸猫,特意将摄像头的视频流推送到博客上

第一步 选方案

因为家里的摄像头是rtsp协议的,想在网页上观看只能选择转码推流,那么大致方案就敲定下来了

因为家里的nas上还有其他程序再跑,最终选中docker容器作为载体

1.Ffmpeg 2.nginx 3.docker

第二步 搭建Docker

环境:centos7

1、Docker 要求 CentOS 系统的内核版本高于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。
通过 uname -r 命令查看你当前的内核版本

$ uname -r

2、使用 root 权限登录 Centos。确保 yum 包更新到最新。

$ sudo yum update

3、可以查看所有仓库中所有docker版本,并选择特定版本安装

$ yum list docker-ce --showduplicates | sort -r

4、安装docker

$ sudo yum install docker-ce  #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版17.12.0
$ sudo yum install <FQPN>  # 例如:sudo yum install docker-ce-17.12.0.ce

5、启动并加入开机启动

$ sudo systemctl start docker
$ sudo systemctl enable docker

6、验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

$ docker version

第三步 使用Docker搭建安装nginx+rtmp

1.安装nginx

这里使用docker仓库里tiangolo/nginx-rtmp的,直接拉下来运行即可

# 拉取镜像
docker pull tiangolo/nginx-rtmp
# 根据镜像运行容器
docker run -d -p 1935:1935 --name nginx-rtmp tiangolo/nginx-rtmp
2.安装ffmpeg

这里使用docker仓库里tiangolo/nginx-rtmp的,直接拉下来运行即可

# 拉取镜像
docker pull jrottenberg/ffmpeg
# 根据镜像运行容器
docker run -it --name app_ffmpeg -p 8080:8080 -v /home/app_ffmpeg/:/mnt/app/ --entrypoint=‘bash’ jrottenberg/ffmpeg
# 把文件导入到docker容器目录中
docker cp /usr/video/a.mp4 app_ffmpeg:/tmp/workdir
# 查看容器,启动容器,进入容器
docker ps -a
docker start app_ffmpeg
docker attach app_ffmpeg
# 然后就可以推流啦(这里就可以使用局域网IP进行推流)
ffmpeg -re -stream_loop -1 -i a.mp4 -vcodec copy -acodec copy -f flv rtmp://172.17.0.16:1935/live/cs

两个容器使用的ip不一样,可以使用

docker inspect -f='{{.Name}} {{.NetworkSettings.IPAddress}} {{.HostConfig.PortBindings}}' $(docker ps -aq)

查询每一个容器所对应的端口,名称和ip

对了,最后还需要一个内网穿透才可以,我用的是nps,这个都可以

定时关闭摄像头,家里的潘多拉 定时任务给摄像头mac限制一下联网时间即可

第四步 优化

目前可优化的部分就是博客上的rtmp流必须是用falsh才能播放

可以优化为hls协议

还有就是摄像头ip定时关闭的事情,因为只要断网 ffmpeg 肯定罢工,因为定时任务唤醒才可以

以上就是我目前的 “ 将监控猫猫的监控放到博客上并且定时关闭摄像头 ”

原文地址:https://www.cnblogs.com/jingzheins/p/13994116.html