Centos 从零开始 (四)

12:nginx架设 rtmp直播
首先在之前 所安装的nginx是用 yum 源安装的。却不能为nginx添加他的模块 所以要用wget来下载源文件 来进行源码配置与安装。开搞
[root@localhost ~]# wget  nginx-1.6.3.tar.gz
#下载nginx源文件
[root@localhost ~]# tar xvf nginx-1.6.3.tar.gz                                                            #解压文件
因为这里需要用到  nginx-rtmp-moudle 这个模块  所以需要下载他 
[root@localhost ~]# yum install git                #下载git 因为源码在git上。
[root@localhost ~]# git clone https://github.com/arut/nginx-rtmp-module
我把他安装到了 root目录下 此时此刻他的地址应该是 /root/nginx-rtmp-module 我需要记住这个地址。
接下来安装 nginx-1.6.3
[root@localhost ~]# cd nginx-1.6.3                    #进入nginx源文件
[root@localhost ~]# ./configure --add-module=/root/nginx-rtmp-module  #配置系统参数。最后可以用 nginx -V来查看所用的环境配置,
[root@localhost ~]# make #编译
[root@localhost ~]# make install  #安装
当安装好了之后 nginx 来看下需要用到的目录结构
安装目录 /usr/local/nginx
命令程序 /usr/local/nginx/sbin/nginx -v # 就是他的命令 ,因为没有设置环境变量 ,这里看了一下nginx的版本号
配置文件 /usr/local/nginx/conf/nginx.conf #这个文件用于操作反向代理。
暂时用到的都看完了 这个时候需要配置 rtmp了 。。感觉很麻烦,那就用这个模块给我的 测试代码好了。测试代码在 /root/nginx-rtmp-module/test/nginx.conf
我把这个测试的nginx.conf 拷贝到 /usr/local/nginx/conf/conf/下 用rtmp.conf命名 不要忘记在conf文件下 在创建个 conf文件哦。。大概的命令就是这个样子了
[root@localhost ~]# cd /usr/local/nginx/conf #进入conf配置文件夹
[root@localhost ~]# mkdir conf #创建conf文件夹 (他的目录应该是 /usr/local/nginx/conf/conf)
[root@localhost ~]# cp /root/nginx-rtmp/test/nginx.conf /usr/local/nginx/conf/conf/rtmp.conf#拷贝文件然后我需要把rtmp.conf文件放到nginx.conf下。
[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf #编辑nginx.conf
这个时候 要在nginx.conf配置文件里最下面 加入一行代码 include conf/*.conf 这就吧我拷贝的rtmp.conf 放进去了 然后修改这个文件 把除了rtmp{ } 内容外面的东西全部删掉因为起冲突。所以只需要rtmp就够了。
这基本就配置完毕了 。然后启动 nginx服务
[root@localhost ~]# /usr/local/nginx/sbin/nginx #启动nginx服务
这里假设我内网ip 是192.168.0.127 那么流服务器就是 
rtmp://192.168.0.127/myapp
注意 : 这里的myapp 就是rtmp.conf 中 application的值(test中默认的) 
我们可以用 rtmp://192.168.0.127/myapp/test 来推流 这个test其实就是缓存文件什么都可以。
接下来我可以用一个程序软件来测试他  https://ffmpeg.org/来下载 ffmpeg ,接下来将用windows操作系统来进行推流与播放。
ffmpeg -i rtmp://*******(源地址) -c:v copy -c:a copy -f flv -y rtmp://*******(服务器地址) #推流命令
D:> ffmpeg -i rtmp://live.hkstv.hk.lxdns.com/live/hks -c:v copy -c:a copy -f flv -y rtmp://192.168.0.127/myapp/test
然后另起一个cmd
D:> ffplay rtmp://192.168.0.127/myapp/test
OK大功告成
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
12:nginx架设 hls 服务器
1,先在http{}里添加一个这个配置信息。
server {
        listen       8080;
        #HLS配置开始,这个配置为了`客户端`能够以http协议获取HLS的拉流
        location /hls {
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /usr/local/nginx/html; #因为root指向 所以接受流的时候 实际上是去了/usr/local/nginx/html/hls 这里
  
      expires -1;
        }
}
2,在在nginx.conf 的http上写一个rtmp配置

rtmp {
    server {
        listen 1935;
        #rtmp流 如推流方式 rtmp://localhost/myapp/test 读流方式也是 rtmp://localhost/myapp/test
        application myapp {
                live on;
                record off;
        }
        #hls流 如推流方式 rtmp://localhost/hls/test 但读流方式则是 http://localhost:8080/hls/test.m3u8
        application hls {
            live on;
            hls on;
            hls_path /usr/local/nginx/html/hls;
            hls_fragment 5s; 
        }
        #增加对HLS支持结束
    }
}

2,此时 nginx.conf应该是这个样子的。
.....
......
http{ ......  } #http
rtmp{ ...... } #流
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
原文地址:https://www.cnblogs.com/dandingjun/p/6029335.html