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进行推流