Windows Server 2003 - Media Server 架設

1、前言

Windows Media Services 9 (Windows 2003 Server)跟之前的 Windows Media Services 4.6 (Windows 2000 Server),最大的不同在於 Windows Media Services 9 能為使用者提供 快速串流 的功能,所謂的快速串流有四大要素快速啟動(Fast Start)、快速快取(Fast Cache)、快速恢復(Fast Recovery)、快速重新連線(Fast Reconnect)。






文章目錄

1、前言
          玩 Media Service 前要了解的名詞
          發行端點
          通訊協定
          通知檔案
2、實作環境
3、實作一、點播單點傳播
          點播單點傳播1. 內容類型為檔案 (.mp3、.asf、.wma、wmv)
          點播單點傳播2. 內容類型為目錄 (選取目錄)
          點播單點傳播3. 內容類型為播放清單 (.wsx)
4、實作二、Client 端需輸入帳號、密碼才可存取串流伺服器的發行端點
          設定串流伺服器啟動驗證機制
5、補充:批次檔建立使用者
6、參考
7、Me FAQ
          Q1.無法即時修改播放清單檔案?
          Q2.跨機器該如何轉移發行端點?

玩 Media Service 前要了解的名詞

  • 單點: 單點傳播串流是伺服器與用戶端之間的 一對一連線,這表示每個要求串流的用戶端都會收到一個獨立的串流。您可以從點播或廣播發行端點,使用單點傳播串流傳遞內容。

  • 多點: 多點傳播串流是 Windows Media 伺服器與接收串流用戶端之間的 一對多連線。使用多點傳播串流,伺服器會串流處理到網路上的某個多點傳播 IP 位址,用戶端則利用訂閱該 IP 位址的方式接收串流。所有用戶端都收到相同的串流。由於無論接收串流的用戶端數目多寡,都只有一個來自伺服器的連線,因此多點傳播串流所需的頻寬與含有相同內容的單一個單點傳播串流相同。使用多點傳播串流可以節省網路頻寬,對於低頻寬的區域網路相當有用。

發行端點

用戶端藉由連線到發行端點,從您的伺服器存取內容串流。Windows Media Services 包含的發行端點有下列兩種類型:點播及廣播。這兩種類型都能夠設定為,從數種來源類型之一 (例如來自編碼器、檔案或播放清單的實況串流) 傳送串流。可設定一台 Windows Media 伺服器來執行多個發行端點,並主控廣播及點播內容的組合。

  • 點播: 如果想要讓使用者能夠控制已串流處理之內容的播放,從點播發行端點串流處理內容的方式最為適合。這種類型的發行端點最常使用於主控來源是檔案、播放清單或目錄的內容。當用戶端連線到發行端點時,內容便從頭開始,使用者可使用播放程式中的播放控制項,來暫停、向前快轉、倒帶、略過播放清單中的項目,或者停止。

  • 廣播: 如果您想要營造類似觀賞電視節目的感覺,也就是內容由起源點或伺服器來控制及串流處理,那麼,從廣播發行端點串流處理內容的方式最為適合。這種類型的發行端點最常使用於傳送來自編碼器、遠端伺服器或其他廣播發行端點的實況串流。當用戶端連線到廣播發行端點時,該用戶端是在加入進行之中的廣播。例如,如果在 10:00 A.M. 的時候廣播全公司的會議,於 10:18 A.M. 連線的用戶端就會錯過會議的前 18 分鐘。用戶端可啟動及停止串流,但無法暫停、向前快轉、倒帶或略過。

通訊協定

若要讓 Windows Media Player 以及其他用戶端使用 HTTP、RTSP 或 MMS 通訊協定,來連接至防火牆後的 Windows Media 伺服器,請開啟下列連接埠。

  • TCP (Port 80): Windows Media 伺服器使用 TCP 輸入埠來接受來自 Windows Media Player及其他用戶端傳入的 HTTP 連線。
  • TCP (Port 554): Windows Media 伺服器使用 TCP 輸入埠來接受來自 Windows Media Player及其他用戶端傳入的 RTSP 連線。
  • TCP (Port 1755): Windows Media 伺服器使用 TCP 輸入埠來接受來自 Windows Media Player及其他用戶端傳入的 MMS 連線。
  • UDP (Port 1755): Windows Media 伺服器使用 UDP 輸入埠 1755 以接收使用 MMSU 來串流處理之用戶端的重送要求。
  • UDP (Port 5005): Windows Media 伺服器使用 UDP 輸入埠 5005 以接收使用 RTSPU 串流處理之用戶端的重送要求。
  • UDP (Port 1024 ~ 5000): Windows Media 伺服器使用 UDP 輸出埠 1024-5000 來將資料傳送至 Windows Media Player 及其他用戶端。

通知檔案

通知檔案是帶有 .asx 副檔名的 Windows Media 中繼檔,用來將用戶端重新導向至 Windows Media 伺服器上的內容。通知檔案可以從網站,經由電子郵件附加檔傳送,或在網路磁碟機上分享的方式,分佈給用戶端。通知檔案預設會與 Windows Media Player 連結。





2、實作環境

  • Windows 2003 Server (Media Service 9)
  • Windows XP Professional SP2
  • Windows Media Player 10
  • Windows Media Encoder 9





3、實作一、點播單點傳播

如下圖中所示,在名為 Server1 的 Windows Media 伺服器上有一個名為 TV1 的點播發行端點。此發行端點標示了欲進行串流處理的內容所在。內容可被主控於本機伺服器或網路檔案系統上。其來源可為特定檔案、播放清單檔案或目錄。此例中的發行端點來源為儲存在 Server1 本機上的影音檔案。準備好讓使用者開始進行串流處理之後,即可建立一個通知,提供使用者連接此內容的 URL。由於內容作為單點傳播串流傳遞,因此每個播放程式都分別與 Server1 有一個連線。


點播單點傳播1. 內容類型為檔案 (.mp3、.asf、.wma、wmv)

  1. 點選發行端點
  2. 右鍵
  3. 新增發行端點(進階)
  4. 發行端點類型:點播 //點選
  5. 發行端點名稱:TV1 //自行keyin
  6. 內容類型範例 //點選檔案類型,串流只處理單一檔案
  7. 瀏覽 //去找你要載入的檔案吧!此例為TVArchive.wmv
  8. 確定


所以 Client 端連結此點播單點傳播串流的 URL 如下
mms://Server1/TV1                //Server1 為此台 Media Server 的 Hostname
建立用戶端通知檔案 (.asx),用戶端收到此檔只要點二下執行便會自動開啟 Media Player 並連線到指定的發行端點。
  1. 點選發行端點TV1
  2. 通知
  3. 執行單點傳播通知精靈 //跟著指示建立吧,建立好 (.asx) 內容如下
 <asx version = "3.0">
  <entry>
    <ref href = "mms://Server1/TV1"/>
  </entry>
 </asx>


點播單點傳播2. 內容類型為目錄 (選取目錄)

  1. 點選發行端點
  2. 右鍵
  3. 新增發行端點(進階)
  4. 發行端點類型:點播 //點選
  5. 發行端點名稱:TV1 //自行keyin
  6. 內容類型範例 //點選目錄類型,串流處理資料夾內所有檔案
  7. 瀏覽 //去找你要載入的目錄吧!此例為Test資料夾
  8. 確定


所以 Client 端連結此點播單點傳播串流的 URL 如下 (此例 Test 資料夾內有 3 個檔案)
mms://Server1/TV1/TVArchive1.wmv      //Server1 為此台 Media Server 的 Hostname
mms://Server1/TV1/TVArchive2.wmv
mms://Server1/TV1/TVArchive3.wmv


點播單點傳播3. 內容類型為播放清單 (.wsx)

Client 端存取伺服器所設計的播放清單流程為,當 Client 端連結到 Web 網頁時點選超連結至串流伺服器所產生的播放清單檔 (.wsx),藉由 wsx 播放清單取得 Media Server 的位址與影音檔案名稱,之後再指向 Media Server 要求影音串流資訊,並把接受到的資訊利用本機的影音播放程式開啟。
  1. 點選發行端點
  2. 右鍵
  3. 新增發行端點(進階)
  4. 發行端點類型:點播 //點選
  5. 發行端點名稱:TV1 //自行keyin
  6. 內容類型範例 //點選播放清單類型,串流處理播放清單內容
  7. 瀏覽 //去找你要載入的播放清單吧!此例為TV1.wsx
  8. 確定


所以 Client 端連結此點播單點傳播串流的 URL (此例 TV1.wsx 內有三個檔案)
mms://Server1/TV1                //Server1為此台Media Server的Hostname
當用戶端連結此 URL 路徑 Server 會自已去找 TV1.wsx (因為指定此 URL 來源是播放清單),其內容如下
 <?wsx  version="1.0" encoding="utf-8"?>
 <smil>
    <media src="D:\Test\TVArchive1.wmv"/>
    <media src="D:\Test\TVArchive2.wmv"/>
    <media src="D:\Test\TVArchive3.wmv"/>
 </smil> 






4、實作二、Client 端需輸入帳號、密碼才可存取串流伺服器的發行端點

在開始之前我們要先了解二個名詞 驗證授權 這樣當您測試時才了解為何連線嘗試會被接受或拒絕,您可在伺服器上或發行端點上啟動但優先權為伺服器上的優先權較高,但若您採用多重驗證外掛程式時只要有一個驗證不過,那使用者便會在授權過程中被終止。


本次的實作為設定伺服器使用【WMS 發行端點 ACL 驗證外掛程式】加【WMS 協議驗證】來達成使用者使用 Media Player 欲連結廣播發行端點時會跳出輸入帳號、密碼的驗證視窗。

設定串流伺服器啟動驗證機制

當串流伺服器如下步驟啟動驗證機制之後,當 Client 端使用 Media Player 連接至串流伺服器的發行端點時便會跳出需要輸入帳號、密碼的驗證視窗,輸入正確才可連結至串流伺服器的發行端點。
  1. 點選【Media 伺服器】。
  2. 點選【屬性】。
  3. 點選【驗證】外掛程式僅【WMS 協議驗證】啟用其餘皆停用。
  4. 點選【授權】外掛程式僅【WMS 發行端點 ACL 驗證外掛程式】啟用其餘皆停用。
  5. 預設 Eneryone 群組有讀取權限,而 Administrator 則有所有權限,當然您也可自行新增群組並給予權限。
  6. 使用 Media Player 連結測試看是否會跳出驗證視窗。





5、補充:批次檔建立使用者

我有另外的需求就是希望有試聽的功能,但用手動建立的帳號無法設定帳戶到期時間 (例如 建立的帳號只能試聽 2 週),而若每次要記得時間去停止帳戶也太累,所以就寫個簡單的批次檔來達成這個需求詳細內容如下

account.bat 內容

建立使用者帳號、密碼、描述
  • 使用者帳號: testuser2
  • 使用者密碼: 1234
  • 使用者描述: 試聽戶 User2

設定使用者帳號到期日
  • 帳號到期日: 2006年12月29日上午 12:00 (也就是到 28日晚上 12:00)
  • 日期表示方式: 2006/12/29 or Dec,29,2006

將該使用者加入試聽音樂群組
  • 試聽群組: audition

所以整合上述需求後,可依如下指令達成
NET USER testuser2 1234 /ADD /comment:"試聽戶 User2" /expires:2006/12/29
NET LOCALGROUP audition testuser2 /ADD

如何延長使用者帳戶到期時間?
NET USER testuser2 /expires:2007/01/04       //延長聽到 2007年1月4日上午 12:00
如何查尋特定使用者相關資訊?
C:\> net user testuser2
 使用者名稱             testuser2
 全名
 註解                   試聽戶 User2
 使用者的註解
 國碼 (地區碼)          000 (系統預設值)
 帳戶使用中             Yes
 帳戶到期               2006/12/29 上午 12:00     //也就是12月28日晚上12:00到期
 上次設定密碼           2006/12/26 下午 05:15
 密碼到期               2007/2/7 下午 04:02
 可變更密碼             2006/12/26 下午 05:15
 請輸入密碼             Yes
 使用者可以變更密碼     Yes
 容許的工作站           All
 登入指令檔
 使用者設定檔
 主目錄
 上次登入時間           2006/12/28 上午 08:12     //上次聆聽時間
 可容許的登入時數       All
 本機群組會員           *Audition             *Users
 通用群組會員           *None
 命令執行成功。 






6、參考






7、Me FAQ

Q1.無法即時修改播放清單檔案?

Error Message:
當我即時修改播放清單內容後按下儲存卻出現如下圖錯誤?試過使用權限 DomainAdmin 及本機的 Administator 都仍出現下圖錯誤訊息。


Ans:
主要原因為沒有增加 Network Service 的寫入權限,因為 Windows Media Services 是 Web Application 所以需要在檔案的安全性加入,加入完成後即可修改控制了。
  1. 【檔案或目錄】\【右鍵】
  2. 【內容】\【安全性】\【進階】\【新增】
  3. Network Service 群組




Q2.跨機器該如何轉移發行端點?

Error Message:
當我有 50 個發行端點時若新加入一台機器想做負載分擔時難道要重建 50 個發行端點?

Ans:
發行端點的內容其實在如下所示檔案內
C:\WINDOWS\system32\Windows Media\Server\NamespaceDelta.xml     //隨著 Media Service 而產生(記錄機器等資訊)
C:\WINDOWS\system32\Windows Media\Server\ServerNamespace.xml    //記錄發行端點資訊


發行端點跨機器轉換步驟如下:

1. 複製上述二個 XML 檔案到欲轉移的機器並切換到該機器上,停止 Windows Media Services (否則 NamespaceDelta.xml 檔案將無法複製貼上)。


2. 貼上複製的二個 XML 檔案,啟動 Windows Media Services。


3. 設定 WMUS_ComputerName 密碼。


4. 設定 Media Service WMS 匿名使用者密碼,因為機器不同因此複製 XML 檔案後會發生 WMS 匿名使用者驗證錯誤。



5. 切換到 WMS 匿名使用者驗證項目設定 WMS 匿名使用者密碼,點選滑鼠右鍵後選擇【屬性】,輸入我們剛才設定的 WMUS_ComputerName 密碼。


6. 重新啟用 WMS 匿名使用者驗證。


7. 應可看到 WMS 匿名使用者驗證啟動成功,雖然WMS 匿名使用者驗證啟動成功了不過此時可能仍看不到匯入的發行端點,你可以把 Media Service 關閉在開啟應該可發現發行端點順利轉移了。