首頁 »
2009/10/02

以IIS Smooth Streaming建立720p高畫質Silverlight影音串流

IIS Smooth Streaming
2009年8月號的台灣微軟MSDN Flash,祭司撰文一篇【以IIS Smooth Streaming建立720p高畫質Silverlight影音串流】,我個人在研究過其技術白皮書與實作之後,十分看好IIS Smooth Streaming串流伺服器高品質與高效能的表現,甚至覺得以其免費的角度而言,有這麼好的高畫質串流能力,可能對其他廠商動輒幾十萬元的串流伺服器造成衝擊,畢竟誰不喜歡免費的!


微軟於今年發表了第三代的Silverlight技術,眾所周知的,Silverlight是一個以向量為基底的RIA技術,除了優越的UI介面及特效功能外,其中一大重頭戲就是〝影音〞能力,或許您會很直覺地認為,影音不就是在Silverlight的XAML中,以指定一段wmv影片檔就可以了嗎?!然而這樣過份單純的想法,就好像說拍電影只要找幾個人和一部攝影機就可以開始,但實際上一部好的電影開拍,若將所需的人力、設備、技術、道具與資金元素全部展開,那可真是會令人瞠目結舌的,背後的複雜度與專業性非一般人可想像。

    同樣的,若要建立一個好的Silverlight影音網站,除了需要Silverlight本身Player技術配合外,還會涉及後端Streaming 串流伺服器及串流技術,此二者正是建立優越的Silverlight影音串流網站真正的關鍵,故在Silverlight 3發佈的同時,微軟也推出最新一代串流技術,叫做「IIS Smooth Streaming」,顧名思義它是為了創造平順流暢的影音串流而來,只要在IIS 7安裝「Smooth Streaming」延伸套件,就可以使得IIS變成最新一代的Smooth Streaming串流伺服器,透過Http傳送比以往更好更佳的影音品質,畫質還可達到當下最熱門的720p至1080p最高水準,大大突破了以往的媒體串流技術,最後當然在Silverlight Client端的使用者也能享受到更好的影音品質及體驗。

    個人對於Smooth Streaming技術的誔生有著十分深刻的體認,因為在Silverlight 1.0,我曾協助一家跨國企業建立Silverlight影音網站,網站內容是提供該公司電腦軟體、遊戲及活動之大量影片,讓使用者可以上線觀看有興趣的片段,然而為了讓消費者的Silverlight播放器可以平順接收與播放影片,中間著實遭遇不少問題,例如影片停頓、畫面傳送停停走走、影片中斷等等,都大大影響了使用者的觀感與心情,當然也深深困擾著企業主;然而就一個Silverlight程式開發人員,若要解決這類的問題,他能做的就是調整 Silverlight的Buffer設定,增加影片預先載入Buffer的秒數,再來就是將wmv做最佳化影片編碼,除此之外,很少有其他決定性的層面可以讓我們介入。

    對於Silverlight影音播放不夠完美的問題,一直要到IIS Smooth Streaming技術出現後,我才明白原來影音傳送播放最大的問題不在Silverlight,而是背後的影音串流技術先天上已決定了這一切,Silverlight Player只能做後天少數的微調。那究竟要採用最新一代的Smooth Streaming影音串流技術,需要哪些要素?需求如下:

    *  Windows 2008 Server/ Vista with SP1及IIS 7
    *  安裝Smooth Streaming延伸套件
    * 以Expression Encoder工具將影片編碼成Smooth Streaming專用格式



以下是建立及使用Smooth Streaming步驟說明:
1.    安裝Smooth Streaming延伸套件
首先作業系統必須有IIS 7,無論是Windows 2008 Server或Windows Vista皆可,然後再安裝IIS Smooth Streaming延伸套件,安裝完成後,在IIS中可看見Smooth Streaming圖示,此時的IIS 7就是一台Smooth Streaming串流伺服器。

圖1 IIS中的Smooth Streaming圖示(點圖放大)

2.    以Expression Encoder進行影片編碼
Smooth Streaming所傳送的影片檔案並不是一般常見的wmv影音格式,而是Smooth Streaming針對串流最佳化的格式,是故您必須將wmv影片檔,以Expression Encoder 2 with SP1或Encoder 3進行編碼轉換,以下是用Encoder 3工具將一段wmv影片進行Smooth Streaming編碼。
圖 2以Encoder 3進行Smooth Streaming串流影音編碼(點圖放大)

原本一個wmv影片檔用Encoder編碼完成後,會產生至少8個Smooth Streaming檔,代表不同畫質與大小的8個.ismv檔案,Smooth Streaming伺服器會動態偵測使用者網路頻寬與CPU運算力,進而動態決定合適大小的影片封包傳送給Silverlight Client端,使其可以平順地觀看影片內容,以此達成影音串流播放的最佳化目的。
圖3 Smooth Streaming檔案格式(點圖放大)

新一代Smooth Streaming技術的出現,代表Silverlight影音串流進入一個新紀元,不需花大錢購買專門的影音媒體串流伺服器,用基本IIS 7及Encoder就能製作出高品質與高效率的Silverlight影音串流網站,讓使用者可以歡欣愉悅地享受720p以上的高畫質影片,令其滿意度再提升一級,算是網站與消費者雙贏的局面!

 * Smooth Streaming技術參考網站
http://www.iis.net/extensions/SmoothStreaming

《聖殿祭司的ASP.NET》一書作者 奚江華


2009年8月號MSDN Flash預告←上一篇 │首頁│ 下一篇→ASP.NET MVC技術定位與抉擇
本文引用網址: