zoukankan      html  css  js  c++  java
  • OrangePI通过ffmpeg和nginx把摄像头输出为rtmp

    首先安装点基础套件

    sudo apt install -y ffmpeg libx264-dev libssl-dev yasm cmake libpcre3-dev
    

    从源码编译安装ffmpeg

    以上命令已经安装了发布版的ffmpeg,不过如果有需要,可以按照源码版的编译安装

    git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
    cd ffmpeg
    sudo ./configure --enable-shared --prefix=/usr/local/ffmpeg
    make
    sudo make install
    

    编译安装nginx

    sudo git clone https://github.com/arut/nginx-rtmp-module.git
    sudo wget http://nginx.org/download/nginx-1.16.1.tar.gz
    sudo tar -xvf nginx-1.16.1.tar.gz
    cd nginx-1.16.1
    sudo  ./configure --prefix=/usr/local/nginx  --add-module=../nginx-rtmp-module  --with-cc-opt="-Wimplicit-fallthrough=0"
    make -j4
    make install
    
    

    nginx配置文件

    nano /usr/local/nginx/conf/nginx.conf
    
    user www-data;
    worker_processes auto;
    pid /tmp/nginx.pid;
    
    events {
      worker_connections 768;
      # multi_accept on;
    }
    
    rtmp {
        server {
            listen 1335;
            application rtmp {
                live on;
                max_connections 1024;
            }
            application zbcs {
                live on;
                record off;
            }
            application hls{
                live on;
                hls on;
                hls_path /rtmp/;
                hls_fragment 1s;
            }
        }
    }
    
    

    写 systemd 配置文件

    mkdir /usr/lib/systemd/system/
    vim /usr/lib/systemd/system/nginx.service
    
    [Unit]
    Description=nginx optimized HTTP server
    After=network.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=forking
    PIDFile=/tmp/nginx.pid
    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    ExecReload=/usr/bin/kill -HUP $MAINPID
    ExecsTOP=/usr/bin/kill -s QUIT $MAINPID
    privateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    启动

    systemctl enable nginx
    systemctl restart nginx
    systemctl status nginx
    

    推送

    # 摄像头采集推送
    ffmpeg -i /dev/video0  -s 320x240 -f flv -an rtmp://127.0.0.1:1335/rtmp/1
    
    # 视频文件推送
    ffmpeg -stream_loop -1 -i cutb.mp4 -s 320x240 -f flv -an rtmp://127.0.0.1:1335/rtmp/1
    
  • 相关阅读:
    ActiveMQ-在Centos7下安装和安全配置
    Servlet基础知识点
    Filter的执行顺序
    Dubbo-使用Maven构建Dubbo服务的可执行jar包
    Dubbo-Centos7管控台安装
    Spring 小知识点
    Zookeeper+ActiveMQ集群搭建
    Zookeeper在Centos7上搭建单节点应用
    SpringMVC+AJAX+JSON
    RocketMQ-Filer
  • 原文地址:https://www.cnblogs.com/DragonStart/p/12151452.html
Copyright © 2011-2022 走看看