這篇文章介紹了如何在直播流中繼(origin/edge)架構下配置nDVR功能。直播流中繼是通過部署多臺服務器將一個直播流提供給大規(guī)模用戶的方法。這個架構使用源/邊緣配置,原始的輸入流被發(fā)布在源服務器上,內容片段也被錄制在源服務器上,之后,就可以通過多個邊緣服務器訪問直播流來播放。Wowza nDVR 會將播放列表信息從源服務器傳遞到邊緣服務器。邊緣服務器之后就會通過Http協(xié)議對外提供音頻和視頻數(shù)據(jù)。
注意: 需要Wowza Media Server® 3.0.0 及以上版本
注意: Wowza Streaming Engine™ 4.0 需要所有的源服務器和邊緣服務器均運行Wowza Streaming Engine 4.0及以上版本。在源和邊緣架構中,Wowza MediaServer 和 Wowza Streaming Engine 不能組合使用。

安裝
獲得授權并在源服務器和所有邊緣服務器上安裝 WowzaMedia Server。所有的源服務器和邊緣服務器上的Wowza Media Server必須采用相同的版本。
配置源服務器
這個章節(jié)介紹了在直播流中繼架構下配置WowzanDVR的基本步驟和Application.xml的配置。在這個例子中,緣服務器上的應用名為dvrorigin。
?
用文本編輯器打開新拷貝的Application.xml文件,做如下改動:
?
Code:
live
Code:
dvrstreamingpacketizer
這表示DVR會將錄制的內容片段存儲在這臺Wowza Media server上。除了DVR流播放外,要使用直播流播放,你可以增加下面的打包器(packetizer)。例如:
Code:
cupertinostreamingpacketizer,smoothstreamingpacketizer,sanjosestreamingpacketizer,dvrstreamingpacketizer
Code:
dvrrecorder
Code:
dvrfilestorage
Code:
dvrchunkstreaming
將會使得源服務器可以向邊緣服務器傳送錄制的音頻和視頻片段。
邊緣服務器的配置
在每一個邊緣服務器上配置創(chuàng)建一個新的WowzaMedia Server 應用。在這個例子中,應用名為dvredge。
?
用文本編輯器打開這個新拷貝的Application.xml文件,并做如下改動:
?
Code:
liverepeater-edge
Code:
dvrstreamingrepeater
這表示DVR錄制數(shù)據(jù)來自另一個Wowza Media Server,并由當前這個Wowza Media Server接收。處了DVR流播放外,要使用直播流播放,你需要增加下面的打包器(packetizer)。如下:
Code:
cupertinostreamingrepeater,smoothstreamingrepeater,sanjosestreamingrepeater,dvrstreamingrepeater
這樣可以測試是否可以從邊緣服務器上播放直播流,這對排查故障非常有用。
Code:
Code:
?
Code:
wowz://[origin-ip-address]/dvrorigin
其中[origin-ip-address] 是源服務器的IP地址。
WOWZ協(xié)議是Wowza Media Server 3.5 中的一個新的基于TCP的消息協(xié)議,用于服務器和服務器之間的消息通信。它在默認情況下就是可用的。如果在源和邊緣服務器中有一臺服務器運行的不是Wowza Media Server 3.5,那么服務器之間將會建立RTMP連接。
Code:
cupertinostreaming,smoothstreaming,sanjosestreaming
發(fā)布直播流
?
播放
H.264編碼的輸入流可以通過Wowza Media Server支持的任何Http協(xié)議來傳輸。
使用Adobe Flash Player(San Jose/Adobe HTTP Dynamic Streaming)
Note: 這個例子使用Strobe player,它基于OSMF播放流媒體。
Wowza Media Server 3.5
雙擊[install-dir]/examples/LiveDVRStreaming/FlashHTTPPlayer/player.html,輸入下面的信息,然后點擊Connect按鈕。
Code:
http://[wowza-ip-address]:1935/dvredge/myStream/manifest.f4m?DVR
使用Apple iOS device (Cupertino/Apple HTTP Live Streaming)
在iOS設備的Safari web 瀏覽器上訪問:
Code:
http://[wowza-ip-address]:1935/dvredge/myStream/playlist.m3u8?DVR
使用Microsoft Silverlight (Smooth Streaming)
Wowza Media Server 3.5
雙擊[install-dir]/examples/LiveDVRStreaming/SilverlightPlayer/player.html,輸入下面的信息,然后點擊Connect 按鈕。
Wowza Media Server 3.1.2 及更早版本
雙擊[install-dir]/examples/LiveDvrStreaming/clientSilverlight/LiveDvrSmoothStreaming.html,輸入下面的信息,然后點擊Play按鈕。
Code:
http://[wowza-ip-address]:1935/dvredge/myStream/Manifest?DVR
調優(yōu)
MediaCache
因為邊緣服務器將會從源服務器請求錄制的數(shù)據(jù)段,我們推薦在邊緣服務器的DVR配置中使用MediaCache。 這將允許DVR數(shù)據(jù)段在邊緣服務器上緩存,從而降低從邊緣服務器器到源服務器的訪問請求。
內存中的DVR數(shù)據(jù)段
默認情況下,Wowza nDVR 插件會將最近的10個錄制數(shù)據(jù)段保存在內容中。在源服務器和邊緣服務器上降低磁盤訪問的方法就是增加這個數(shù)值。注意,你應該理解這樣做的影響。它會把每一個流的錄制數(shù)據(jù)段保存在內存中,這樣會導致內存占用增大。
例如,假設你有20個高碼率的DVR流。 On average, 每一個視頻數(shù)據(jù)端900KB,每一個音頻數(shù)據(jù)段100KB (這樣,每一個數(shù)據(jù)段有1 MB大小)。如果你將這個值從10增大到50,你將在內存中為每一個流多保存40個數(shù)據(jù)段,將占用接近1 GB 的服務器內存(20 * 40 * (900 KB + 100 KB) = 800 MB)。
在調整這個數(shù)值前,分析好需要占用多少內存,你是否還有剩余的內存,以及磁盤I/O是否是個問題。 之后,請在[install-dir]/conf/dvredge/Application.xml文件的DVR/Properties下面添加下面的屬性:
Code:
chunkMemoryCacheSize
20
Integer
Wowza Streaming Engine 4是業(yè)界功能強大、API接口豐富的流媒體Server產品,采用它作為流媒體服務器產品的案例很多,直播、在線教育、IPTV都有它的用武之地。
京ICP備09015132號-996 | 違法和不良信息舉報電話:4006561155
© Copyright 2000-2026 北京哲想軟件有限公司版權所有 | 地址:北京市海淀區(qū)西三環(huán)北路50號豪柏大廈C2座11層1105室