nginx-rtmp-module搭建直播

Posted 倔强的冬瓜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx-rtmp-module搭建直播相关的知识,希望对你有一定的参考价值。

供参考:


下载nginx及nginx-rtmp-module

https://github.com/arut/nginx-rtmp-module

编译安装略。

[root@VHOST-94 local]# ls nginx

nginx/             nginx.bak/         nginx-rtmp-module/

[root@VHOST-94 local]# nginx/sbin/nginx -V

nginx version: nginx/1.16.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) 

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --with-pcre --with-http_ssl_module --with-http_v2_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_perl_module --with-stream --with-http_flv_module --with-http_mp4_module --add-module=/usr/local/nginx-rtmp-module


nginx相关配置:


user  nginx;

worker_processes  1;

events {

    worker_connections  10240;

}

rtmp_auto_push on;

rtmp {

    server {

        listen 1935;

allow play all;

        chunk_size 4096;

application live {

allow play all;

live on;

record all;

record_path /data/image/Streaming/live;

record_suffix -%d-%m-%y-%T.flv; #将会产生形如 mystream-24-Apr-13-18:23:38.flv 的文件。所有支持 strftime 格式的选项可以在 strftime man page 里进行查找。

record_unique on;  #描述:是否添加时间戳到录制文件。否则的话同样的文件在每一次新的录制发生时将被重写。默认为 off。

#record_append; #描述:切换文件附加模式。当这一指令为开启,录制时将把新数据附加到老文件,如果老文件丢失的话将重新创建一个。文件中的老数据和新数据没有时间差。默认为 off。    

#record_lock on;        #描述:当这一指令开启时,当前录制文件将被 fcntl 调用锁定。那样可以在其他地方来核实哪个文件正在进行录制。默认为 off。

#record_max_size 128K;  #描述:设置录制文件的最大值。

#record_max_frames 2;   #描述:设置每个录制文件的视频帧的最大数量。

record_interval 1m;    #描述:在这个指令指定数量的(毫秒)秒之后重启录制。默认为 off。设置为 0 的话意味着录制中无延迟。如果 record_unique 为 off 的话所有记录片段会被写到同一个文件。否则(文件名)将附以时间戳以区分不同文件(给定的 record_interval 要大于 1 秒)。

#record_notify on;描述:切换当定义录制启动或停止文件时发送 NetStream.Record.Start 和 NetStream.Record.Stop 状态信息(onStatus)到发布者。状态描述字段保存录制的名字(默认录制的话为空)。默认为 off。

#publish_notify on;

#on_publish       http://192.168.1.50:8021/portal/app/sms/test;

        #on_publish_done http://192.168.1.50:8021/portal/app/sms/test;

        #on_play         http://192.168.1.50:8021/portal/app/sms/test;

          #on_play_done     http://192.168.1.50:8021/portal/app/sms/test;

hls on;                  #这个参数把直播服务器改造成实时回放服务器。

hls_nested on;           #嵌套模式。

hls_path /data/image/Streaming/live;  #切片视频文件存放位置。

  hls_fragment 60s;        #每个视频切片的时长。

hls_playlist_length 600s; #总共可以回看的时间,这里设置的是10分钟。

        hls_continuous on;       #连续模式。

            hls_cleanup on;          #对多余的切片进行删除。

#exec ffmpeg -i rtmp://192.168.1.94:1935/$app/$name -acodec copy -c:v libx264 -preset veryfast -profile:v baseline -vsync cfr -s 480x360 -b:v 400k maxrate 400k -bufsize 400k -threads 0 -r 30 -f flv rtmp://192.168.1.94:1935/live/$;

}

       application vod {

play /data/image/Streaming/live;

        }


    }

}


http {

    

    server {

        listen       80;

        server_name  localhost; 

        # This URL provides RTMP statistics in XML

        location /stat {

            rtmp_stat all;

            # Use this stylesheet to view XML as web page

            # in browser

            rtmp_stat_stylesheet stat.xsl;

        }


        location /stat.xsl {

            # XML stylesheet to view RTMP stats.

            # Copy stat.xsl wherever you want

            # and put the full directory path here

            root /usr/local/nginx-rtmp-module/;

        }


      }


}




视频直播点播nginx-rtmp开发手册中文版:

https://www.bbsmax.com/A/Vx5MlQLJNr/

以上是关于nginx-rtmp-module搭建直播的主要内容,如果未能解决你的问题,请参考以下文章

nginx + nginx-rtmp-module + springboot 搭建直播流服务器实现推流拉流实时直播功能

基于obs+nginx-rtmp-module搭建自己直播的系统

搭建Nginx+nginx-rtmp-module的hls流媒体服务器并用OBS进行推流

搭建Nginx+nginx-rtmp-module的hls流媒体服务器并用OBS进行推流

Centos7 搭建Nginx+rtmp+hls直播推流服务器

「自己开发直播」rtmp-nginx-module实现直播状态观看人数控制