vlambda博客
学习文章列表

nginx部署支持rtmp协议-CCTV直播项目实现

第一步:安装纯净系统

第二步:#ssh [email protected] #<==检查ssh是否可用

第三步:#yum install -y wget   #<==需要下载软件

第四步:更改数据源

             #cd /etc/yum.repos.d/

             #mv CentOS-Base.repo ./CentOS-Base.repo.backup

             #curl -o /etc/yum.repos.d/CentOS-Base.repo   http://mirrors.aliyun.com/repo/CentOS-7.repo      

            并更新源,建立缓存:

             #yum update -y

             #yum all yum makecache

第五步:安装工具

            #yum install git gcc make pcre-devel openssl-devel

            git ;

            gcc 编译器;

            vi/vim 文本编辑器 g环境 k环境;

            make源码编译安装 makefile文件 编译你当前改变的文件 更新文件;

            make install 可执行文件/相当于Windows下的exe,指定的目录中;

            /usr/local/nginx/sbin/;

            openssl ssh服务 加密 免密登录;

第六步:建立一个目录 源码编译安装 /usr/local/或/application

          #cd /usr/local/


第七步:下载nginx-rtmp-module 安装Nginx的rtmp协议的扩展

         #git clone git://github.com/arut/nginx-rtmp-module.git

         #git clone https://github.com/arut/nginx-rtmp-module.git

         #wget http://nginx.org/download/nginx-1.15.0.tar.gz

第八步:解压

         #tar xzf nginx-1.15.0.tar.gz

第九步:进入到Nginx目录里进行配置

        #cd ./nginx-1.15.0/

       #./configure --with-http_ssl_module --add-module=../nginx-rtmp-module

第十步:编译源码并安装

        建立在Makefile文件基础上。

        #cat Makefile

        #make && make install

第十一步:验证是否成功

        查看版本:

         #./usr/local/nginx/sbin/nginx -V

        直接启动:

         #./usr/local/nginx/sbin/nginx 

        #./usr/local/nginx/sbin/nginx 

nginx部署支持rtmp协议-CCTV直播项目实现


         80端口被占用

              调错:

                     Apache2.0阿帕奇 web服务 80端口

                     有效的验证通过80端口:

                          浏览器的方式访问 Nginx欢迎页面 表示成功,

nginx部署支持rtmp协议-CCTV直播项目实现

                          否则,就需要改Nginx的默认端口80 改为8080 9090等等。

第十二步:修改Nginx的conf文件 配置rtmp端口默认1935端口

        #vim nginx.conf

       ##↓编辑nginx.conf↓## 

rtmp{

  server{

      listen 1935;

      chunk_size 5000;


      application hls{

        #开启实时直播 实况直播

         live on;

         hls on;

        #不记录数据

         record off;

         hls_path /usr/local/nginx/html/hls;

         hls_fragment 3s;

       }


   }


}

      ##↑编辑nginx.conf↑##

nginx部署支持rtmp协议-CCTV直播项目实现

第十三步:配置????

        ##↓编辑nginx.conf↓## 

        location /hls{

            #server hls fragments

            types{

                application/vnd.apple.mpegurl m3u8;

                video/mp2t ts;

            }

            alias /temp/hls;

            expires -1;

        }

      ##↑编辑nginx.conf↑##

nginx部署支持rtmp协议-CCTV直播项目实现

        停止Nginx服务:#/usr/local/nginx/sbin/nginx -s stop

        启动并加装配置文件:#/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

         验证:#/usr/local/nginx/sbin/nginx

第十四步:如何推流

        1、OBS软件推流 Mac Linux Windows版(非专业人士)

       官网下载Windows版的OBS软件。

nginx部署支持rtmp协议-CCTV直播项目实现

    OBS推流:

nginx部署支持rtmp协议-CCTV直播项目实现

        推流成功:

              苹果电脑等设备可以访问:http://服务器IP/hls/串流密钥输入的内容.m3u8;(IP后面是否需要加上端口,请用苹果设备测试)。

       2、FFmpeg音频视频处理的库Mac Linux Windows Android iOS等(开发者)

第十五步:VLC视频播放 拉流,Windows实现播放

       写代码:

       #vim /usr/local/nginx/html/play.html

       ##↓play.html↓##

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>PC HLS video</title>

    <link href="http://cdn.bootcss.com/video.js/6.0.0-RC.5/alt/video-js-cdn.min.css" rel="stylesheet">

</head>

<body>


<h1>PC 端播放 HLS(<code>.m3u8</code>) 视频</h1>

<p>借助 video.js 和 videojs-contrib-hls</p>

<p>由于 videojs-contrib-hls 需要通过 XHR 来获取解析 m3u8 文件, 因此会遭遇跨域问题, 请设置浏览器运行跨域</p>


<video id="hls-video" width="300" height="200" class="video-js vjs-default-skin"

       playsinline webkit-playsinline

       autoplay controls preload="auto"

       x-webkit-airplay="true" x5-video-player-fullscreen="true" x5-video-player-typ="h5">

    <!-- 直播的视频源 -->

    <source type="application/x-mpegURL">

    <!-- 点播的视频源 -->

    <!--<source type="application/x-mpegURL">-->

</video>


<script ></script>

<!-- PC 端浏览器不支持播放 hls 文件(m3u8), 需要 videojs-contrib-hls 来给我们解码 -->

<script ></script>

<script>

    // XMLHttpRequest cannot load http://xxx/video.m3u8. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://192.168.198.98:8000' is therefore not allowed access.

    // 由于 videojs-contrib-hls 需要通过 XHR 来获取解析 m3u8 文件, 因此会遭遇跨域问题, 请设置浏览器运行跨域

    var player = videojs('hls-video');

    player.play();

</script>

</body>

</html>

       ##↑play.html##

        测试:浏览器输入http://服务器IP/play.html 

CCTV直播成功。