zoukankan      html  css  js  c++  java
  • 如何将猫猫监控放在博客上


    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 肯定罢工,因为定时任务唤醒才可以

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

  • 相关阅读:
    Grunt Server:Fatal error: Port 35729 is already in use by another process.
    ionic ng-src 在网页显示,但是导出apk在android手机中运行不显示图片
    Ionic 测试针对Andorid平台
    Javascript屏蔽鼠标右键-超简单,不过还是记录一下
    CSS自定义select下拉选择框(不用其他标签模拟)
    js 获得网页背景色和字体色
    简单十步让你全面理解SQL
    你可能不知道的5种 CSS 和 JS 的交互方式
    Web开发者需养成的8个好习惯
    用CSS hack技术解决浏览器兼容性问题
  • 原文地址:https://www.cnblogs.com/jingzheins/p/13994116.html
Copyright © 2011-2022 走看看