nginx-rtmp-module 安裝
最近在做直播功能,為了方便調試,在本地搭建一個rtmp server吧~
我的配置環境是Ubuntu12.04 64
安裝編譯環境所需庫
sudo apt-get install build-essential libpcre3 libpcre3-dev libssl-dev
下載源碼
wget http://nginx.org/download/nginx-1.4.2.tar.gz
wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
解壓
tar -zxvf nginx-1.4.2.tar.gz
unzip master.zip
cd nginx-1.4.2
編譯安裝
./configure --add-module=../nginx-rtmp-module-master
$ make
$ sudo make install
那么現在可以試着啟動Nginx
sudo /usr/local/nginx/sbin/nginx
然后在瀏覽器輸入http://localhost 應該就能夠看到nginx的歡迎首頁了,這意味着nginx在我們的機器上運行正常,可以進行下一步配置了:]
Nginx rtmp 配置
打開nginx.conf文件,開始配置rtmp吧:
http {
……
}
在http節點后面加上rtmp配置:
rtmp {
server {
listen 1935;
application live1 {
live on;
record off;
}
}
}
你可以在這里找到完整的配置文件
保存退出后,告訴nginx重新讀取配置:
sudo /usr/local/nginx/sbin/nginx -s reload
這里多提一句,如果想要重啟nginx:
sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx
這時我們可以測試推送流了,這里由於我們還沒有寫推送代碼,就先借助軟件完成吧。
測試推送流
如果你有Windows環境,且是Vista以上系統,有獨立顯卡,使用Open Broadcaster Software
如果你有Mac環境,使用CocoaSplit
推送流簡單來說就是上傳,也被稱為推送、發布。想要推送流,總要有一個目標地址吧。看看之前我們建立的RTMP服務器配置,里面規定了使用1935作為監聽端口,配置了一個應用live1,通過這些信息,我們就能拼出可以使用的上傳地址了,例如這樣:
rtmp://localhost:1935/live1
live1是應用名,對應我們在nginx中配置的應用。room1是一個應用的實例(或者叫結點,我是這么理解的),這個不需要在服務器做特別的配置,我們只需要在配置好的應用中選擇一個實例名字(例如room1)就能使用了。
使用之前提到的軟件,簡單配置下上傳地址就能夠發布了。
測試接收流
發送上去了,那么我們如何接收呢?
使用JWPlayer在網頁播放
這里又要使用外部工具了:jwplayer,一個flash的播放器,利用它可以在網頁播放rtmp流。
jwplayer目前能夠提供試用,但是使用需要先注冊以獲取key。這里有一個我已經注冊好並下載到本地的播放器文件,你可以直接使用它們。
找到/usr/local/nginx/html/
目錄,在下面新建文件player.html
charset="utf-8"> JW Player Example
id="'playerWRYqPNErNtRf'>test
然后將jwplayer文件夾放在/usr/local/nginx/html/
目錄下,最后應該是這樣:
/usr/local/nginx/html/player.html
/usr/local/nginx/html/jwplayer/jwplayer.js
/usr/local/nginx/html/jwplayer/jwplayer.flash.swf
...
然后重啟nginx,在瀏覽器輸入http://localhost/player.html
,點擊播放按鈕,這時如果你正在使用軟件進行推送,就應該可以看到視頻了:]
使用VLC軟件播放
這是更簡單的一種方式,找一個支持rtmp的桌面軟件,恩……之前為什么我要折騰jwplayer呢……
下載后打開VLC,在菜單選擇file->open network->在彈出的新窗口中選擇Network標簽頁,填入URL:rtmp://localhost:1935/live1
->點擊open,等待緩沖完成后,就自動開始播放了=。=