一、首先就是先下載nginx-rtmp-module
官方github地址:https://github.com/arut/nginx-rtmp-module
我這里在git上直接克隆了
git clone https://github.com/arut/nginx-rtmp-module.git
如果提示git錯誤的,裝下git
這個時候,根目錄下應該會有一個 nginx-rtmp-module 文件夾
二、安裝:nginx
nginx的官方網站為:http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.12.1.tar.gz
tar -zxvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
./configure --prefix=/usr/local/nginx --add-module=/nginx-rtmp-module --with-http_ssl_module
make && make install
如果你已經安裝好nginx,那么需要單獨安裝第三方模塊,不能重新安裝
nginx第三方模塊安裝方法:
./configure --prefix=/你的安裝目錄 --add-module=/第三方模塊目錄
以安裝nginx-rtmp-module模塊為例,在已安裝nginx情況下安裝nginx-rtmp-module模塊
因為以前nginx安裝在/usr/local/nginx目錄下,所以下面的操作都是以此目錄為路徑進行操作,如果安裝到其他目錄有些命令需要做對應的更改。
先查看原有nginx的配置參數並拷貝出來(重要)注意V 是大寫的
/usr/local/nginx/sbin/nginx -V
root@iZ1175b20bpZ:~# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.1
built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
built with OpenSSL 1.0.2l 25 May 2017
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-openssl=/usr/local/nginx/src/openssl --add-module=/usr/local/nginx/src/ngx_devel_kit --add-module=/usr/local/nginx/src/lua_nginx_module --add-module=/usr/local/nginx/src/ngx_cache_purge --add-module=/usr/local/nginx/src/nginx-sticky-module --add-module=/usr/local/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc
系統將我們之前安裝好的Nginx配置都列了出來,我們看到之前沒有安裝過 nginx-rtmp-module 模塊。我們這次單獨安裝。
上面顯示我們之前安裝的nginx 版本是 1.12.1 我們要使用對應版本的 nginx 的安裝包。
wget http://nginx.org/download/nginx-1.12.1.tar.gz
tar -zxvf nginx-1.12.1.tar.gz
cd nginx-1.12.1
下載完成,並解壓后 進入到 nginx-1.12.1 目錄
接下來是重要的一步,將我們上面 原先安裝的nginx配置參數 上,添加新的模塊
./configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-openssl=/usr/local/nginx/src/openssl --add-module=/usr/local/nginx/src/ngx_devel_kit --add-module=/usr/local/nginx/src/lua_nginx_module --add-module=/nginx-rtmp-module --add-module=/usr/local/nginx/src/ngx_cache_purge --add-module=/usr/local/nginx/src/nginx-sticky-module --add-module=/usr/local/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc
注意,里面我 加了一個參數 --add-module=/nginx-rtmp-module 如果你有其他模塊要一起安裝,方法是一樣的。
等待配置跑完。然后輸入
make
進行編譯。編譯完成后,我們需要在根目錄下我們剛下載的 /nginx-1.12.1/objs/ 目錄下。找到剛剛編譯好的 nginx 文件( 沒有擴展名)
將 nginx 文件復制到 我們之前安裝的 /usr/local/nginx/sbin/ 目錄,替換舊的 nginx 文件。建議備份一下舊的 nginx 文件。
然后重啟下nginx 就好了。
這個時候我們在查看下nginx 配置。
root@iZ1175b20bpZ:~# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.12.1
built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
built with OpenSSL 1.0.2l 25 May 2017
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-openssl=/usr/local/nginx/src/openssl --add-module=/usr/local/nginx/src/ngx_devel_kit --add-module=/usr/local/nginx/src/lua_nginx_module --add-module=/nginx-rtmp-module --add-module=/usr/local/nginx/src/ngx_cache_purge --add-module=/usr/local/nginx/src/nginx-sticky-module --add-module=/usr/local/nginx/src/nginx-http-concat --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-ipv6 --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt=-Wl,-E --with-cc-opt=-Wno-error --with-ld-opt=-ljemalloc
我們看到 nginx-rtmp-module 模塊已經有了。
接下來,我們更改下 nginx.conf 文件,讓支持 rtmp
三、修改nginx配置文件
vi /usr/local/nginx/conf/nginx.conf
在文件里加入下面內容 http段外面(加載在最后面就行,獨立模塊)
rtmp {
server {
listen 1935; #監聽的端口
chunk_size 4000;
application hls { #rtmp推流請求路徑
live on;
hls on;
hls_path /usr/local/nginx/html/hls;
hls_fragment 5s;
}
}
}
還有就是這個路徑,看你自己的實際情況的訪問根目錄來,我的是/usr/local/nginx/html/這個路徑,
然而/usr/local/nginx/html/hls肯定沒有這個目錄,所以需要建一個放流文件的目錄hls,並且需要改權限可讀可寫的權限
然后啟動nginx:
/usr/local/nginx/sbin/nginx