Rtmp/Hls直播、点播服务器部署与配置

摘要:
useepoll;#设置用于复用客户端线程的轮询方法。worker_connections51200;#由一个worker进程同时打开的最大连接数。}rtmp_auto_pushon;#切换自动推送模式rtmp_auto_push_reconnect1s;#当worker被干掉时设置自动推送连接超时时间。rtmp{#保存所有RTMP配置的块。server{#声明一个RTMP实例。listen1935;#监听的端口号chunk_size4096;#流整合的最大的块大小。play/opt/media/nginxrtmp/flv;#点播文件路径}applicationlive{#创建一个RTMP应用。liveon;#是否直播hlson;#是否开启hlshls_path/usr/local/nginx/html/live;#设置HLS播放列表和分段目录。hls_fragment1s;#设置HLS分段长度。

测试使用的系统为CentOS7.3、所有文章中涉及到的包打包在以下地址:

链接:http://pan.baidu.com/s/1nuF3gLV 密码:fo8q

1. Nginx-Rtmp-Module 安装

1). 安装依赖包
yum -y installgcc glibc glibc-devel make nasm pkgconfig openssl-devel expat-devel gettext-devel libtool perl-Digest-SHA1.x86_64

2). yum 安装相关工具包及 ffmpeg 依赖包
yum -y install git zlib pcre openssl

3). 手动编译安装工具包和依赖包
a). yadmi
# tar xzvf yamdi-1.9.tar.gz
# cd yamdi-1.9
# make && make install
# cd ..

b). yasm
# tar xzvf yasm-1.3.0.tar.gz
# cd yasm-1.3.0
# ./configure
# make && make install
# cd ..

c). x264
# tar -xjvf x264.tar.bz2
# cd x264-snapshot-20170111-2245
# ./configure --enable-shared
# make && make install
# cd ..

d). lame
# tar xzvf lame-3.99.5.tar.gz
# cd lame-3.99.5
#./configure --enable-nasm
# make && make install
# cd ..

e). faad2
# tar zxvf faad2-2.7.tar.gz
# cd faad2-2.7
# ./configure
# make && make install
# cd ..

f). faac
# tar zxvf faac-1.28.tar.gz
# cd faac-1.28
# ./configure
# make && make install
# cd ..

g). xvid
# tar zxvf xvidcore-1.3.3.tar.gz
# cd xvidcore/build/generic
# ./configure
# make && make install
# cd ..

h). ffmpeg
# tar -xjvf ffmpeg-3.2.4.tar.bz2
# cd ffmpeg-3.2.4
# ./configure --prefix=/opt/ffmpeg/ --enable-version3 --enable-libvpx --enable-libmp3lame --enable-libvorbis --enable-libx264 --enable-libxvid --enable-shared --enable-gpl --enable-postproc--enable-nonfree --enable-avfilter --enable-pthreads
# make && make install
# cd ..

i). 修改/etc/ld.so.conf如下:
include ld.so.conf.d/*.conf
/lib
/lib64
/usr/lib
/usr/lib64
/usr/local/lib
/usr/local/lib64
/opt/ffmpeg/lib
# ldconfig

4). 安装 Nginx
# tar zxvf nginx-1.9.9.tar.gz
# unzip nginx-rtmp-module-master.zip
# tar zxvf openssl-1.0.2k.tar.gz
# cd nginx-1.9.9
# ./configure --add-module=../nginx-rtmp-module-master --without-http_rewrite_module --with-openssl=../openssl-1.0.2k
# make & make install
# cd ..

2. nginx.conf配置

# nginx.conf Start
worker_processes 1;# nginx对外提供 web 服务时的 worker 进程数

error_log logs/error.log debug; # 错误日志路径

pid logs/nginx.pid; # pid 文件路径
worker_rlimit_nofile 51200; # worker 进程的最大打开文件数限制

events { # events 模块中包含 nginx 中所有处理连接的设置。
use epoll; # 设置用于复用客户端线程的轮询方法。
worker_connections 51200; #由一个 worker 进程同时打开的最大连接数。
}

rtmp_auto_push on; # 切换自动推送(多 worker 直播流)模式

rtmp_auto_push_reconnect 1s; # 当 worker 被干掉时设置自动推送连接超时时间。默认为 100 毫秒。

rtmp { # 保存所有 RTMP 配置的块。
server { # 声明一个 RTMP 实例。
listen 1935; # 监听的端口号
chunk_size 4096; # 流整合的最大的块大小。默认值为 4096。

application vod { # 创建一个 RTMP 应用。
play /opt/media/nginxrtmp/flv;# 点播文件路径
}

application live { # 创建一个 RTMP 应用。
live on; # 是否直播
hls on; # 是否开启hls
hls_path /usr/local/nginx/html/live; # 设置 HLS 播放列表和分段目录。
hls_fragment 1s; # 设置 HLS 分段长度。
max_connections 1024; # 最大连接数
hls_playlist_length 30s; # HLS 播放列表长度
hls_sync 100ms; # HLS 时间戳同步阈值
meta copy; # 是否发送元数据到客户端
recorder manual { # 创建一个录制应用
record all manual; # 设置录制模式
record_suffix %Y-%m-%d-%H_%M_%S.flv; # 设置录制文件名
record_max_size 6200000K; # 设置录制文件的最大值
record_path /usr/local/nginx/html/Rec; # 指定录制的 flv 文件存放目录
}
#record keyframes;
#record_path /tmp;
#record_max_size 128K;
#record_interval 30s;
#record_suffix .this.is.flv;

#on_publish http://localhost:8080/publish;
#on_play http://localhost:8080/play;
#on_record_done http://localhost:8080/record_done;
}
# application hls {
# live on;
# hls on;
# hls_path /tmp/app;
# hls_fragment 5s;
# }

# application hls{
# live on;
# hls on;
# hls_path /usr/local/nginx/html/hls;
# hls_fragment 5s;
# }
}
}

http {
server {
listen 5000;
keepalive_timeout 65;
location /stat {
rtmp_stat all;
rtmp_stat_stylesheet stat.xsl;
}

location /stat.xsl {
root /opt/nginx-rtmp-server/nginx-rtmp-module/;
}

location /control {
rtmp_control all;
}

location /rtmp-publisher {
root /opt/nginx-rtmp-server/nginx-rtmp-module/test;
}

location / {
root /opt/nginx-rtmp-server/nginx-rtmp-module/test/www;
}

location /crplayer {
root /opt/nginx-rtmp-server/nginx-rtmp-module/test;
}
location /live {
#server hls fragments
types{
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root html;
expires -1;
}
}
}
# nginx.conf End

3. 运行Nginx服务

# /usr/local/nginx/sbin/nginx -c /root/nginx/nginx.conf

4. 检查是否运行成功

# ps -ef | grep nginx

免责声明:文章转载自《Rtmp/Hls直播、点播服务器部署与配置》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android之SystemUI载入流程和NavigationBar的分析更新Mac双系统多分区下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ELK之使用metricbeat收集系统数据及其他程序并生成可视化图表

  将 Metricbeat 部署到您所有的 Linux、Windows 和 Mac 主机,并将它连接到 Elasticsearch 就大功告成啦:您可以获取系统级的 CPU 使用率、内存、文件系统、磁盘 IO 和网络 IO 统计数据,以及获得如同系统上 top 命令类似的各个进程的统计数据   1,安装metricbeat   官网下载rpm包安装 rp...

Debian 环境安装新版 nginx

在 Debian 系统中,我们可以通过 apt-get 安装系统自带的 nginx,这样安装的 nginx 版本略旧。Nginx 官网提供了一些编辑绎好的 deb 安装包,我们只需更新安装源,就可以通过 apt-get 来安装最新的稳定版 Nginx 了。  加载安装源并导入key $ echo deb http://nginx.org/packages...

nginx(1)安装

./configure --prefix=/usr/local/nginx 安装及设置安装路径 安装遇见的问题 1. ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --with...

Nginx 配置访问静态资源

做个简单的配置: 以txt/png/mp4结尾的请求都会按照如下规则寻找返回文件 关键词: location、root location ~ .(mp4|png|txt) {   root /usr/local/tomcat9/webapps/scm;   autoindex on; } 主义root代表的是替换请求URL中域名的值,如请求的URL为...

linux 下nginx

所有的配置文件都在/etc/nginx (ect/nginx/nginx.conf) 下,并且每个虚拟主机已经安排在 了/etc/nginx/sites-available 程序文件在/usr/sbin/nginx 日志放在了/var/log/nginx中 并已经在/etc/init.d/下创建了启动脚本 nginx -------------------...

nginx配置https,重定向后https变成了http

nginx配置https如下 nginx 后面应用是对应的tomcat应用 server { listen 80; server_name xxxx.com; rewrite ^(.*) https://$server_name$1 permanent; } server { listen...