天天看點

使用 nginx 和 rtmp 插件搭建視訊直播和點播伺服器

1. 安裝 nginx 和 rtmp 子產品

有關 nginx 的編譯和安裝比較簡單,這裡就不介紹了,看參考文獻。這裡提示以下幾點:

(1) 安裝好 nginx 後,配置檔案在這裡:

(2) 啟動 nginx 的指令:

2. 配置 nginx 視訊直播和點播服務

先看一下完整的 nginx 配置檔案裡有關視訊點播和直播的配置:

現在來解釋一下裡面各行代碼的含義。對于視訊直播服務,如果需要支援多路流輸入的話,很簡單,在 nginx 配置檔案裡多配幾個 Application 就隻可以了,像下面這樣:

這樣就可以通過下面的位址來推送直播流,其它觀衆端也可以通過下面的位址來通路直播流:

後面緊跟的 test 關鍵字,可以随便更換,隻要你的推送流和通路流的位址一樣就可以了。

然後把一個 mp4 或是 flv 檔案扔到 /var/flvs 目錄下,對于 /var/flvs/dir/file.flv 這個視訊檔案,就可以通過下面的網址來通路了:

這樣直接在浏覽器裡就可以通過網頁觀看視訊。對于 mp4 檔案,也可以實作 VOD 服務,不過需要的是采用 H.264 和 AAC 格式編碼的 mp4 檔案。

3. HLS 直播流的配置

如果需要使用 HLS 來視訊直播,可以直接像配置檔案那樣,寫上下面這一段:

同時把後面有關 http 通路的内容寫上:

配好以後,推流可以使用下面的位址:

movie 關鍵字可以任何替換。對于觀衆端來說,可以有幾種播放方式:

(1) 用 rtmp:

(2) 用 hls 播放:

這樣就可以看到主播端推出來的流。注意,如果使用 http 方式,則是監聽的 8080 端口,這個是在配置檔案裡寫的。

4. 網頁播放器插件

下載下傳 JWPlayer 播放器,放到 nginx 網頁服務的根目錄,比如說,在我這兒是 /usr/local/nginx/html 這個目錄,把 JWPlayer 解壓後放到這個目錄裡,然後在這個目錄裡建立一個 play.html 的文本檔案,再寫入以下内容:

對于 flv 檔案,可以采用如下的形式來實作網頁播放:

另外,如果有一些 flv 檔案沒有辦法拖動播放,那是因為沒有給 flv 檔案添加“關鍵幀”,可以用工具“yamdi” 和“flvtool”來給 flv 生成關鍵幀,以 yamdi 為例,下載下傳解壓後從 shell 執行:

意思是将 src.flv 添加關鍵幀,并輸出為 dst.flv 。這樣 flv 就有關鍵幀了,即可進行拖動播放操作。

繼續閱讀