标签:推流 char stream 文件的 配置 clu control serve sheet
nginx搭建流媒体服务器
进入新建的文件夹prog
1、下载nginx-rtmp-module
git clone https://github.com/arut/nginx-rtmp-module.git  
 
2、下载nginx
wget http://nginx.org/download/nginx-1.14.0.tar.gz   
3、下载nginx依赖模块
gzip模块需要 zlib 库、rewrite模块需要 pcre 库、ssl 功能需要openssl库
①安装pcre,只需要装开发库libpcre3-dev
sudo apt install libpcre3 libpcre3-dev
②安装openssl,只需要装个开发库
sudo apt install openssl libssl-dev
(这里选的是1.14.0版本,选择其他稳定版本可直接到官网下载 http://nginx.org/en/download.html)
也可以到https://ftp.pcre.org/pub/pcre/获取pcre编译安装包当前最新的版本
在http://www.openssl.org/source/上可以获取openssl当前最新的版本
获取zlib编译安装包,在http://www.zlib.net/上可以获取当前最新的版本
4、安装nginx
tar -zxvf nginx-1.8.1.tar.gz  
cd nginx-1.8.1 
(运行configure,prefix后面接你的nginx安装目录,添加模块接第三方nginx-rtmp-module模块所在目录)
./configure --prefix=/usr/local/nginx  --add-module=/home/yl/prog/nginx-rtmp-module  --with-http_ssl_module    
make
sudo make install
5、修改nginx配置文件
#user  nobody;   #配置用户或者组,默认为nobody nobody
worker_processes  1;     #允许生成的进程数,默认为1
error_log  logs/error.log;   #制定日志路径,级别
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
#pid logs/nginx.pid; #指定nginx进程运行文件存放地址
events {           #events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等
    worker_connections  1024;      #最大连接数,默认为512
}
http {             #http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等
    include       mime.types;      #文件扩展名与文件类型映射表
    default_type  application/octet-stream;     #默认文件类型,默认为text/plain
    
    sendfile        on;    #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;   #连接超时时间,默认为75s,可以在http,server,location块。
#gzip on;
    server {           #server块:配置虚拟主机的相关参数,一个http中可以有多个server。
        listen       8080;     #监听端口
        server_name  192.168.1.244;       #监听地址       
#charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {    #location块:配置请求的路由,以及各种页面的处理情况
        add_header Cache-Control no-cache;  
         root html;    #根目录
        index  index.html index.htm;      #设置默认页
        }
        location /stat {
            rtmp_stat all;  #为当前 HTTP location 设置 RTMP statistics 处理程序。RTMP statistics 是一个静态的 XML 文档。可以使用 rtmp_stat_stylesheet 指令在浏览器中作为 XHTML 页面查看这个文档
            rtmp_stat_stylesheet stat.xsl;    #添加 XML 样式表引用到 statistics XML 使其可以在浏览器中可视。
        }
        location /stat.xsl {
             root /home/tqhy/prog/nginx-rtmp-module; #stat.xsl所在目录位置,该文件可复制
        }
       # location /control {    
       #     rtmp_control all;    
       # }
        location /hls {
            # Serve HLS fragments  
            types {
                application/vnd.apple.mpegurl m3u8;
                video/mp2t ts;
            }
            root /home/tqhy/obs/hls;
            expires -1;
        }
       # location ~\.flv {
       #     flv;
       # }
       # location ~\.mp4$ {
       #     mp4;
       # }
#error_page 404 /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
rtmp{                  #保存所有 RTMP 配置的块
server {                      #声明一个 RTMP 实例
        listen 1935;            #监听的端口,以接收rtmp连接
chunk_size 4000; #流整合的最大的块大小。默认值为 4096。这个值设置的越大 CPU 负载就越小。这个值不能低于 128
         application live {      #rtmp推流请求路径,创建一个 RTMP 应用
            live on;          #切换直播模式,即一对多广播
            record all;       #切换录制模式。流可以被记录到 flv 文件, all - 音频和视频(所有)
            record_path /home/tqhy/obs/live;  #指定录制的 flv 文件存放目录。
            #record_max_size 200M;         #设置录制文件的最大值
            hls on;         #在 application 切换 HLS
            hls_path /home/tqhy/obs/hls;   #设置 HLS 播放列表和分段目录。这一目录必须在 NGINX 启动前就已存在
            hls_fragment 1s;     #设置 HLS 分段长度。默认为 5 秒钟
            hls_playlist_length 5;   #设置 HLS 播放列表长度。默认为 30 秒钟
            allow play all;   #允许来自指定地址或者所有地址发布/播放。allow 和 deny 指令的先后顺序可选
         }
         application vod {
            play /home/tqhy/obs/vod;   #同一个 play 指令可以定义多个播放地址。当多个 play 指令定义时,地址列表将被合并,并进行从更高域中继承。尝试播放每一个地址,直到发现一个成功的地址。如果没有找到成功地址,将发送错误状态到客户端。
索引的 FLV 播放具有随机查找能力。没有索引的 FLV 则不具备查找/暂停能力(重播模式)。使用 FLV 索引器(比如 yamdi)来编索引。
mp4 文件只有在音频和视频编码都被 RTMP 支持时才可以播放。最常见的情况是 H264/AAC。
         }
    }
}
Nginx rtmp模块nginx-rtmp-module指令详解
https://www.cnblogs.com/yisionwa/p/5882585.html
然后启动nginx:
sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
标签:推流 char stream 文件的 配置 clu control serve sheet
原文地址:https://www.cnblogs.com/lely/p/9403519.html