需要安装的工具

yum install -y wget unzip gcc gcc-c++ perl

安装ffmpeg

yum install -y ffmpeg

创建临时文件夹

  • 切换到home目录

    cd /home
  • 新建文件夹

    mkdir build
  • 进入build文件夹

    cd build

下载并解压pcre

  • 下载pcre

    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz
  • 解压pcre

    tar -zxvf pcre-8.41.tar.gz

下载并解压zlib

  • 下载zlib

    wget http://www.zlib.net/zlib-1.2.11.tar.gz
  • 解压zlib

    tar -zxvf zlib-1.2.11.tar.gz

下载并安装openssl

  • 下载openssl

    wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
  • 解压openssl

    tar -zxvf openssl-1.1.1a.tar.gz
  • 切换到openssl目录里

    cd openssl-1.1.1a
  • 生成配置文件 默认配置

    ./config --prefix=/usr/local --openssldir=/usr/local/openssl
  • 编译程序

    make
  • 安装程序

    make install
  • 切换回build目录

    cd ..

下载并解压nginx-rtmp-model

  • 下载nginx-rtmp-module

    wget https://codeload.github.com/arut/nginx-rtmp-module/zip/master
  • 解压nginx-rtmp-module

    unzip -o master.zip

下载并安装nginx

  • 下载nginx

    wget http://nginx.org/download/nginx-1.14.0.tar.gz
  • 解压nginx

    tar -zxvf nginx-1.14.0.tar.gz
  • 切换到nginx目录

    cd nginx-1.14.0
  • 生成配置文件

    ./configure --with-http_ssl_module --with-pcre=../pcre-8.41 --with-zlib=../zlib-1.2.11 --with-openssl=../openssl-1.1.1a --add-module=../nginx-rtmp-module-master
  • 编译程序

    make
  • 安装程序

    make install

修改nginx配置

  • 备份nginx.conf

    cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak
  • 修改nginx.conf

    vi /usr/local/nginx/conf/nginx.conf
  • events后添加

    rtmp {
      server {
    
          listen 1935;
          chunk_size 4000;
    
          application myapp {
              live on;
              record off;
          }
    
          application hls {
              live on;
              hls on;
              hls_path /tmp/hls;
          }
      }
    }
  • http的service中添加

    #数据格式设置
      charset utf-8;
    #配置hls
      location /hls {
          types {
              application/vnd.apple.mpegurl m3u8;
              video/mp2t ts;
          }
          root /tmp;
          add_header Cache-Control no-cache;
      }

把nginx添加进systemctl

  • 添加并编辑nginx.service文件

    vim /usr/lib/systemd/system/nginx.service
  • 在文件中填入下面文字并保存

    [Unit]
    
    Description=nginx - high performance web server
    
    Documentation=http://nginx.org/en/docs/
    
    After=network.target remote-fs.target nss-lookup.target
    
    [Service]
    Type=forking
    
    PIDFile=/usr/local/nginx/logs/nginx.pid
    
    ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
    
    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    
    ExecStop=/usr/local/nginx/sbin/nginx -s stop
    
    ExecQuit=/usr/local/nginx/sbin/nginx -s quit
    
    PrivateTmp=true 
    
    [Install]
    
    WantedBy=multi-user.target
  • 重载systemctl命令

    systemctl daemon-reload

添加hls视频播放网页

  • 添加并编辑文件

    vi /usr/local/nginx/html/video.html
  • 在文件中填入下面文字并保存

<script src="https://open.ys7.com/sdk/js/1.3/ezuikit.js"></script>
<video id="myPlayer" poster="" controls playsInline webkit-playsinline autoplay>
    <source src="http://服务器ip/test.m3u8" type="application/x-mpegURL" />
</video>
<script>
    //初始化播放器
    var player = new EZUIPlayer('myPlayer');
    player.on('error', function(error) {
        playSuccess=0;
        console.log('error');
    });
    player.on('play', function() {
        playSuccess=1;
        console.log('play');
    });
    player.on('pause', function() {
        playSuccess=0;
        console.log('pause');
    });

</script>
  • 启动nginx服务

    systemctl start nginx
  • 开启ffmpeg转码

    ffmpeg -f rtsp -rtsp_transport tcp -i "rtsp:填入rtsp地址" -strict -2 -c:v libx264 -vsync 2 -c:a aac -f hls -hls_time 5 -hls_list_size 2 -hls_wrap 2 /usr/local/nginx/html/test.m3u8
  • 在浏览器中打开网址,即可查看转码后视频。服务器要开启80端口

    服务器ip/video.html

添加rtmp视频播放网页

  • 添加并编辑文件

    vi /usr/local/nginx/html/rtmp.html
  • 在文件中填入下面文字并保存

<script src="https://open.ys7.com/sdk/js/1.3/ezuikit.js"></script>

<video id="myPlayer" poster="" controls playsInline webkit-playsinline autoplay>
    <source src="rtmp://服务器ip:1935/myapp/test" type="" />
</video>

<script>
    //初始化播放器
    var player = new EZUIPlayer('myPlayer');
    player.on('error', function(error) {
        playSuccess=0;
        console.log('error');
    });
    player.on('play', function() {
        playSuccess=1;
        console.log('play');
    });
    player.on('pause', function() {
        playSuccess=0;
        console.log('pause');
    });

</script>
  • 启动nginx服务

    systemctl start nginx
  • 开启ffmpeg转码

    ffmpeg -f rtsp -rtsp_transport tcp -i "rtsp:填入rtsp地址" -strict -2 -c:v libx264 -vsync 2 -c:a aac -f flv -s 640x360 -q 10 rtmp://localhost:1935/myapp/test
  • 在浏览器中打开网址,即可查看转码后视频。服务器要开启80、1935端口

    服务器ip/rtml.html