nginx搭建rtmp伺服器後怎麼使用
A. nginx搭建rtmp伺服器後怎麼使用
設置MSYS、Perl、VC環境變數
運行vc設置環境變數腳本vcvarsall.bat(默認安裝路徑:C:\Program Files\MicrosoftVisual Studio 9.0\VC)
l 開始MSYS
l 建立編譯和庫目錄
mkdir objs
mkdir objs/lib
cd objs/lib
tar -xzf ../../pcre-8.32.tar.gz
tar -xzf ../../zlib-1.2.7.tar.gz
tar -xzf ../../openssl-1.0.1e.tar.gz
l 運行配置腳本:
auto/configure --with-cc=cl --builddir=objs--prefix= \
--conf-path=conf/nginx.conf--pid-path=logs/nginx.pid \
--http-log-path=logs/access.log--error-log-path=logs/error.log \
--sbin-path=nginx.exe--http-client-body-temp-path=temp/client_body_temp \
--http-proxy-temp-path=temp/proxy_temp \
--http-fastcgi-temp-path=temp/fastcgi_temp\
--with-cc-opt=-DFD_SETSIZE=1024--with-pcre=objs/lib/pcre-8.32 \
--with-zlib=objs/lib/zlib-1.2.7--with-openssl=objs/lib/openssl-1.0.1e \
--with-select_mole --with-http_ssl_mole--with-ipv6
運行腳本:
nmake –f objs/Makefile
3.2.2 Cygwin下:
同linux
4 Windows下的限制:
Windows下下列功能不支持:
l execs
l static pulls
l auto_push
windows下用的是select模式:
events{
worker_connections 30; #默認為(1024),windows默認為64,所以需要修改此值小於64
}
B. 使用nginx-rtmp-mole 部署了一個rtmp服務, 但是推流地址只有一個,我如何才能有多個推流地址
建議使用WebRTC方式,多路推流伺服器能行嗎?
C. nginx怎麼搭建非本地rtmp伺服器
1、電源一定要看清楚是不是正負極接線反向了;
2、如果模擬的時候,其它的東西都按照書本的要求填了,還是提示下面這個初始化錯誤,那就是沒有加powergui模塊。
D. Nginx籌建rtmp流媒體伺服器怎麼解決
這個比較麻煩,需要先從MP4中讀取出H264和音頻裸流,尤其是要注意關鍵幀的查找,然後用librtmp推送給RED5。不知道你為何要這樣做,既然已經是文件了,直接把文件放到RED的相應目錄下面不就可以了么
E. windows下nginx安裝配置後怎麼使用
1)查看nginx進程
tasklist /fi "imagename eq nginx.exe",如下顯示:
映像名稱 PID 會話名 會話# 內存使用
========================= ======== ================ =========== ============
nginx.exe 8944 Console 1 5,128 K
nginx.exe 6712 Console 1 5,556 K
2)nginx常用命令
nginx -s stop 強制關閉
nginx -s quit 安全關閉
nginx -s reload 改變配置文件的時候,重啟nginx工作進程,來時配置文件生效
nginx -s reopen 打開日誌文件
3)其它
可以通過配置文件開啟多個nginx工作進程,但同時只有其中一個nginx工作進程在工作,其他的阻塞等待。
一個nginx工作進程最多同時可以處理1024個連接。
nginx中需要共享內存的cache或者模塊無法在windows下正常使用。
不過,nginx官方正在改進,將來nginx會以服務的方式運行,使用 I/O completion ports代替select方法,使多個工作進程能並發工作。
要使用nginx配合php-cgi使用,需要修改環境變數,否則,php-cgi運行一定次數就推出,需要重啟,設置PHP_FCGI_MAX_REQUESTS這個變數為0即可。
以上在win7上通過。
8)nginx以windows服務形式啟動
1.下載微軟兩個工具:
instsrv.exe srvay.exe
2.執行命令:
instsrv Nginxc:/nginx/srvany.exe
3.配置Nginx的運行參數
可以直接將配置導入到注冊表
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/NGINX/Parameters]
"Application"="C://nginx//nginx.exe"
"AppParameters"=""
"AppDirectory"="C://nginx//"
注意:windows 下的Nginx 內置的mole 很多沒有,用Nginx -V 命令查看。
9)Nginx下部署mono+asp.net環境
1、從Mono for Windows中提取FastCGI-Mono-Server
2、Nginx nginx.conf 的配置:
worker_processes 1;
error_log logs/error-debug.log info;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type text/plain;
sendfile on;
keepalive_timeout 65;
index index.html index.htm;
server {
listen 80;
server_name yourdomain.com;
index index.aspx default.aspx;
location / {
root D:\www/yourwebapp;
fastcgi_pass 127.0.0.1:8000;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
include fastcgi_params;
}
}
}
將上面的 FastCGI-Mono-Server 提取出來,所有文件全部注冊到 GAC(否則 Web 應用會找不到他們,當然你也可以直接放到 webapp/bin),然後解壓到某個文件夾,這里假設為 D:/FastCGI-Mono-Server。
之後我們就可以按下列命令運行 FastCGI:
fastcgi-mono-server2 /socket=tcp:127.0.0.1:8000 /root="D:\www\yourwebapp" /applications=yourdomain.com:/:. /multiplex=True
最後執行運行 Nginx 伺服器,我們的 ASP.Net 程序就能脫離 IIS。
F. 怎麼在遠程伺服器上安裝nginx-rtmp
一,目標: 利用開源或者免費工具實現一個直播系統;同時支持在瀏覽器、播放器和嵌入到 PC 應 用或者移動 APP 中觀看直播。 二,技術選型: 視音頻源端:: Adobe Flash Media Live Encoder 3.2,可以在 windows 和 mac 安裝; 如果你已有一些支持 RTMP 的採集設備,那是最好了; 或許你想在自己的應用中實現,這樣你就必須自己開發處理採集,編碼和協議傳輸了(以後 再表); RTMP Server: FMS -- Adobe 公司出品的伺服器,價格昂貴,當然是最正宗的,因為 RTMP 就是 Adobe 公 司的私有協議; Wowza -- 同樣需要授權費, 大概是$55 per month/instance,效率和穩定性都還不錯; Red5 -- 一個開源實現, 效率和穩定性都稍微差些,由於它是 java 實現的,所以天生支持 跨平台運行; Nignx-rtmp-mole - -nginx 的一個第三方模塊,如果你熟悉 nginx 那是不錯的選擇,當然它 也是免費的,不過功能就沒有其他幾個豐富了; 這里我選擇 nginx+nginx-rtmp-mole 作為伺服器,這是我認為最容易上手的一種方式了(如 果 你 把 windows 作 為 服務 器 那 可 能 麻煩 些 , 官 方 提供 的 windows 二 進 製版 本 是 沒 有 nignx-rtmp-mole 的,而且 nginx 在 windows 下的性能比 linux 就差太多了) 客戶端: VLC 也可以安裝其他支持 rtmp 的播放器; JW Media Player 一個開源的 flash 視音頻播放器, 利用它我們可以直接在瀏覽器觀看直播; (移動端的瀏覽器是不知道 flash 的) ffmpge/librtmp 如果你希望在自己的應用中實現播放器,或者希望在移動端直接接收 RTMP 流,那就要自己開發了(以後再表) 最後選型是: Adobe Flash Media Live Encoder 3.2 + Nignx-rtmp-mole + JW Media Player 三,實現 (本文將 nginx 安裝到 Centos 6.5 下,IP 為 192.168.0.51) 1,下載安裝 Adobe Flash Media Live Encoder 3.2 2,編譯安裝配置 nginx + nginx-rtmp-mole (nginx 1.7 無法編譯通過) #wget http://nginx.org/download/nginx-1.6.2.tar.gz #tar -zxvf nginx-1.6.2.tar.gz #git clone https://github.com/arut/nginx-rtmp-mole.git (如果沒有安裝 git 則直接下載 zip 包) #cd nginx-1.6.2 #./configure --add-mole=../nginx-rtmp-mole --with-http_ssl_mole #make #make install 配置 ( 詳細查看 https://github.com/arut/nginx-rtmp-mole), 編輯 nginx/nginx.conf ,增加 rtmp 模塊: rtmp { server { Listen 1935; chunk_size 4000; #可以將 mylive 改成你想要的名字 application mylive { live on; } } } 在 http 模塊增加: location /stat{ rtmp_stat all; rtmp_stat_stylesheet stat.xsl; } location /stat.xsl{ root html; } 同時需要將 nginx-rtmp-mole 源碼目錄下的 stat.xsl 拷貝到 nginx/html 下,這樣就可以通過 網頁查看伺服器的 RTMP 狀態了。
G. vlc播放 推送到本地的rtmp流會頓卡
vlc處理rtmp流時候,不是立即處理,導致數據包堆積,使用potPlayer播放器就沒有這種現象了
H. 在nginx.conf中加入rtmp後nginx啟動不了
1)正確編譯和安裝:網頁鏈接
2)安裝完成後,鍵入 nginx -V 命令查看(無法找到命令的話,請使用絕對路徑訪問 nginx 可執行文件)
正常編譯安裝情況
應當出現類似 --add-mole=nginx-rtmp-mole 字樣
3)問題依舊可以嘗試:
移除舊安裝目錄下文件(rm -rf /usr/local/nginx)
清楚編譯產生的文件(make clean)
使用正確的選項重新編譯安裝
問題還在?嘗試換個 nginx 版本,再重復上述步驟