Nginx流媒體伺服器搭建
下載nginx
http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.14.1.tar.gz
下載openssl
https://github.com/openssl/openssl
wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_0f.tar.gz
nginx編譯需要opensll
so 標頭檔案
下載nginx-rtmp
https://github.com/arut/nginx-rtmp-module
1.2.0版本
tar -xzf xxx.tar.gz 解壓所有下載檔案
編譯
進入openssl目錄
1. mkdir bin 建立一個bin目錄
2. 執行下面命令
./config --prefix=`pwd`/bin
3. 執行make install
4.回到Nginx目錄(開始編譯nginx)
執行
./configure --prefix=`pwd`/bin --add-module=/ngnix/nginx-rtmp-module-1.2.0
生成makefile檔案
有坑
解決方案 sudo apt-get install libpcre3 libpcre3-dev
再次執行./configure --add-module=/ngnix/nginx-rtmp-module-1.1.10
解決方案
if [ $ngx_found = no ]; then # MacPorts ngx_feature="OpenSSL library in /ngnix/openssl-OpenSSL_1_1_0f/" ngx_feature_path="/ngnix/openssl-OpenSSL_1_1_0f/bin/include" if [ $NGX_RPATH = YES ]; then ngx_feature_libs="-R/ngnix/openssl-OpenSSL_1_1_0f/bin/lib -L/ngnix/openssl-OpenSSL_1_1_0f/bin/lib -lssl -lcrypto $NGX_LIBDL" else ngx_feature_libs="-L/ngnix/openssl-OpenSSL_1_1_0f/bin/lib -lssl -lcrypto $NGX_LIBDL" fi . auto/feature fi
修改/ngnix/nginx-1.14.1/auto/lib/openssl裡面的conf檔案
再次執行 ./configure --prefix=`pwd`/bin --add-module=/ngnix/nginx-rtmp-module-1.2.0
執行sudo apt-get install zlib1g-dev
再次執行 ./configure --prefix=`pwd`/bin --add-module=/ngnix/nginx-rtmp-module-1.2.0
成功了
真正編譯
make install
make之後會多出一個bin目錄
來到這個目錄
執行
./nginx
在vim /etc/ld.so.conf
加入
/ngnix/openssl-OpenSSL_1_1_0f/bin/lib
ldconfig 執行剛剛的配置
配置阿里雲伺服器開啟埠
nginx預設是80埠 我們可以改
修改 /ngnix/nginx-1.14.1/bin/conf ngnix.conf
server {
listen 80;把這個改了就可以
如果配置流媒體伺服器
我們需要把/ngnix/nginx-rtmp-module-1.2.0/test 的 nginx.conf 替換 /ngnix/nginx-1.14.1/bin/conf的 nginx.conf
修改nginx.conf內容
重啟服務
下載ffmpeg推流
http://www.ffmpeg.org/download.html#releases
下載Snapshot
跳轉到ffmpeg-20170915-6743351-win64-static\ffmpeg-20170915-6743351-win64-static\bin目錄
在這個地方開啟cmd 執行下面命令
ffmpeg -re -i E:\ss.flv -f flv rtmp://94.191.92.69/myapp/mystream
直播推流