測試使用的系統爲CentOS7.3、全部文章中涉及到的包打包在如下地址:html
連接:http://pan.baidu.com/s/1nuF3gLV 密碼:fo8qnginx
1. Nginx-Rtmp-Module 安裝git
1). 安裝依賴包
yum -y install gcc glibc glibc-devel make nasm pkgconfig openssl-devel expat-devel gettext-devel libtool perl-Digest-SHA1.x86_64web
2). yum 安裝相關工具包及 ffmpeg 依賴包
yum -y install git zlib pcre opensslapp
3). 手動編譯安裝工具包和依賴包
a). yadmi
# tar xzvf yamdi-1.9.tar.gz
# cd yamdi-1.9
# make && make install
# cd ..ide
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 ..post
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 ..ui
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