




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、微軟的全新一代操作系統(tǒng)將IIS 7(Internet Information Services 7)引入到人們的視線中,作為IIS 6.0的一個升級版本,IIS 7在很多地方都做了改進,諸如模塊化服務(wù)功能,與.NET的無縫集成,簡單的操作和部署,改進的管理功能,以及安全性、過程改進、錯誤診斷、兼容性等很多新特性,要想全面了解IIS 7所帶來的更多新特性,可以查看“探索用于Windows Vista的Web服務(wù)器和更多內(nèi)容”一文。IIS 7的很多功能都是作為模塊(插件)被集成到服務(wù)器上的,默認安裝的IIS 7上已經(jīng)集成了很多常用的功能,下圖展示了IIS 7上的一些常用模塊。 IIS 7支持很多的
2、插件,The Offical Microsoft IIS Site上列出了當前IIS 7上的所有擴展,如SEO(Search Engine Optimization Toolkit,搜索引擎優(yōu)化),Web Platform Installer(如上圖中已安裝在Management分類下),Application Request Routing,URL Rewrite Module(我在“使用URL Rewriter進行URL重寫失效”和“ASP.NET URL雙向改寫的實現(xiàn)”中詳細介紹過在非IIS 7的環(huán)境寫如何通過ASP.NET實現(xiàn)URL的重寫,現(xiàn)在IIS 7已經(jīng)將這個功能集成了),Smoo
3、th Streaming(這個功能是本文即將要介紹的)等。IIS 7的這些插件在很大程度上給站點開發(fā)人員帶來了便利性,可能以前我們需要在Web程序中添加許多很復雜的代碼才能實現(xiàn)的功能,現(xiàn)在借助于IIS 7和插件,幾乎不用修改任何代碼就可以搞定。是不是讓人覺得很興奮呢?先別著急,要想了解或掌握IIS 7的這些插件,還是需要耗費點時間的,The Offical Microsoft IIS Site官方網(wǎng)站上有許多詳細的介紹和示例,可供我們學習和研究。在本文中,我想重點介紹下Smooth Streaming技術(shù)的應(yīng)用。 什么是Smooth Streaming?官方站點上有詳細的介紹和示例,
4、相信也有許多人已經(jīng)見過了,還記得那個生動的動畫短片Big Buck Bunny嗎?那個有趣的影片很好地展現(xiàn)了Smooth Streaming技術(shù)在Silverlight 3中的應(yīng)用。那么,究竟什么是Smooth Streaming技術(shù)呢?一個很好的解釋就是,Smooth Streaming是IIS Media Services的擴展,它使得Silverlight客戶端可以通過HTTP來適應(yīng)流媒體的帶寬,通過對視頻源文件(如wmv等常用視頻文件格式)的特殊處理,會在服務(wù)器上按照不同帶寬要求生成多個不同版本的視頻文件副本,IIS在接收到Silverlight客戶端請求后再決定將哪個視頻文件副本通過
5、流媒體發(fā)送到客戶端,這個過程是完全動態(tài)的,也就是說當客戶端的帶寬發(fā)生變化時,傳送流媒體的視頻文件副本也會相應(yīng)地改變。如當前客戶端的帶寬在300kbps以下,則當前的流媒體文件副本可能為280kbps的那個;當客戶端的帶寬上升到1mbps時,當前的流媒體文件副本就可能變成1.5mbps的那個了。是不是覺得很神奇啊?當然,所有這些都是需要IIS 7和Silverlight 3.0的支持。 需要些什么?事實上,我在研究Smooth Streaming技術(shù)之前,已經(jīng)有很多人介紹過它了,看來它也不是那么陌生!這里是我在網(wǎng)上搜集到得一些資料,大家可以先了解一下:基本上,我們在開始Smooth S
6、treaming之前,有些工具是必備的,否則將無法進行后面的工作。1. IIS 7。據(jù)我所知,在Vista之后的Windows操作系統(tǒng)中基本上都支持IIS 7,如果你在操作系統(tǒng)的“管理工具”中沒有發(fā)現(xiàn)“Internet Information Services(IIS) Manager”,則你需要通過添加Windows Feature來添加它。我的系統(tǒng)環(huán)境是Windows 7,下面是截圖。IIS 7的安裝在Vista和Windows 2008上可能會有所不同,注意在Windows 2008上安裝IIS 7需要在服務(wù)器管理界面中添加服務(wù)器角色來完成。2. Smooth Streaming插件。也
7、就是IIS Media Services 3.0,在官方站點上有下載。在頁面右上角的Download Extension部分下載或安裝Smooth Streaming,注意32位機器和64位機器的版本不同,如果你選擇“Using the Microsoft Web Platform Installer”進行安裝,則會先在IIS 7中安裝Web Platform Installer,然后通過它在線安裝Smooth Streaming,安裝成功后需要重新打開IIS 7的管理界面,點擊站點,右邊的功能視圖中會多出來一個Media Services的分類,下面會多出來三個插件,分別是Bit Rate
8、Throttling,Live Smooth Streaming,Smooth Streaming。這里我已經(jīng)安裝過IIS Media Services 3.0,所以在Web Platform Installer中選擇和安裝IIS Media Services 3.0的選項都被灰掉了。另外,通過Web Platform Installer你還可以安裝許多其它的IIS 7插件,它本身也是IIS 7的一個插件,安裝之后會出現(xiàn)在IIS 7管理界面的Management分類中,如本文一開始的截圖中。除了通過Web Platform Installer安裝Smooth Streaming外,你還可以直接
9、下載安裝包進行安裝,下載后的Smooth Streaming插件是一個msi包,叫IISMedia32.msi(64位版本應(yīng)該叫IISMedia64.msi)。3. Microsoft Expression Encoder 3。其實Encoder 2也完全可以,不過我個人推薦使用Encoder 3,這樣可以省去你很多的麻煩,而且功能也更豐富。4. Visual Studio 2008和Silverlight 3.0。這個基本上都是必備,如果你是作為一個Silverlight開發(fā)人員的話,這里就不多說了。好了,準備工作完成后,下面就讓我們開始體驗在Silverlight 3中使用Smooth S
10、treaming吧。 如何開始?我們都知道,要想在Silverlight中播放影片,需要MediaElement控件的支持,在以往的應(yīng)用中,我們只需要給這個控件指定一個Source屬性,將本地或遠程的視頻文件(或視頻服務(wù))地址告訴MediaElement控件就可以了,然后我們通過Media Template(這個可以通過Encoder自動生成或完全自定義)中的按鈕、進度條等控制視頻的播放。這個過程是比較簡單的,當然,如果你想做一些很酷的效果可能就要費掉周折了。要想通過Smooth Streaming播放影片,對影片的格式是有要求的,這就是我們?yōu)槭裁葱枰狹icrosoft Expres
11、sion Encoder的原因。通過Encoder,我們可以將視頻源文件轉(zhuǎn)換成Smooth Streaming所支持的文件格式,這個步驟在上面我給出的兩篇文章中都有詳細的介紹(見“需要些什么”那一節(jié)),其實我也是參考了其中的內(nèi)容。這里我再簡單做下介紹吧。打開Encoder,導入要轉(zhuǎn)換的視頻文件,選擇右邊的Encoder面板,將Output Format選擇為IIS Smooth Streaming。 然后你還可以做一些其它的設(shè)置,如在Clip面板中設(shè)置影片的起止時間,Audio的設(shè)置(模式、比特率、聲道等),展開Video節(jié)點,你還可以在其中增減Smooth Streaming需要的
12、影片副本數(shù)量,這些影片副本將各自對應(yīng)于一個客戶端帶寬范圍。 最好在Output面板中設(shè)置輸出模板,這樣Encoder在轉(zhuǎn)換完視頻后會自動按照你所選擇的模板生成一個Silverlight示例以播放轉(zhuǎn)換后的視頻,其中自動生成的xap文件我們在后面會用到。注意輸出路徑,轉(zhuǎn)換完成后我們需要到這個目錄下拷貝相應(yīng)的文件。 轉(zhuǎn)換的時間視你所選擇的影片文件大小而定,一般情況下都會比較長,所以你可能需要有點耐心了。轉(zhuǎn)換完成后轉(zhuǎn)到Encoder的輸出目錄,如果你沒有修改這個路徑的話,它應(yīng)該會在“我的文檔-Expression”下面。如下圖,這是在我的機器上的轉(zhuǎn)換結(jié)果: 按照你在
13、Encoder中的設(shè)定,視頻文件被轉(zhuǎn)換成按帶寬范圍所命名的文件,并且以.ismv作為后綴。另外還有一個ism文件和一個ismc文件,這兩個文件都是xml文件,可以用記事本將它們打開,你會看到其實都是一些配置信息,ism文件是服務(wù)器解析文件,用于描述在硬盤上的不同碼率文件之間的關(guān)系,而ismc文件是客戶端解析文件,它用來決定給客戶端下載哪個碼率的解釋性文件,其中包括描述可用的碼率視頻、采用什么解碼器、視頻分辨率等等。我們不用太去研究這兩個文件究竟是怎么回事,因為它們都是Smooth Streaming使用的。因為我們在用Encoder轉(zhuǎn)換視頻時選擇了輸出的Template,所以Encoder還為
14、我們生成了預(yù)覽要用的一些文件,如Default.html、MediaPlayerTemplate.xap、SmoothStreaming.xap等,其中SmoothStreaming.xap文件中就有我們要用的東西,稍后再來介紹。 另外,為了能夠快速演示Smooth Streaming,我們可以直接下載并安裝IIS Smooth Streaming Player Development Kit,它會提供演示要用的xap文件也頁面。 創(chuàng)建站點當然了,要讓Smooth Streaming能工作,我們需要在服務(wù)器上架設(shè)一個Smooth Streaming的站點。很簡單!首先將前面Enco
15、der轉(zhuǎn)換的文件中的全部ismv文件以及ism、ismc文件復制到你要創(chuàng)建的網(wǎng)站的物理目錄下。按照官方網(wǎng)站向?qū)系慕榻B(你可以去官方網(wǎng)站上下載pdf或doc的向?qū)臋n,不過都是英文的),一共有兩種Smooth Streaming方案可供選擇,打開IIS 7,點擊我們所創(chuàng)建的站點,在右邊功能視圖的Media Services分類下會看到Live Smooth Streaming和Smooth Streaming兩個插件,事實上它們就是向?qū)纤f的Serving On-Demand Smooth Streaming(按需Smooth Streaming)和Serving Live Smooth S
16、treaming(實時Smooth Streaming),向?qū)蠈@兩種方案的架設(shè)說得都很詳細,包括如何通過Encoder轉(zhuǎn)換視頻文件,如何發(fā)布視頻文件等,讓人覺得整個過程很繁瑣,事實上沒有這么麻煩!首先,視頻文件的發(fā)布在Encoder中可以通過WebDAV完成,但是這個需要在IIS上配置權(quán)限和認證,比較麻煩,我們可以通過手動將轉(zhuǎn)換文件復制到網(wǎng)站下(僅僅就是復制而已,沒有別的)。然后就是發(fā)布Smooth Streaming了。先說說發(fā)布Live Smooth Streaming。在IIS中打開Live Smooth Streaming,點擊“Add”,在彈出的窗口中輸入你想要創(chuàng)建的Live S
17、mooth Streaming的文件的名字,并選擇Live Source Type為Push,其它的選項如Title、Estimated duration等都可以完全不用填寫。確定后在右邊的Actions中點擊Start Publishing Point就OK了,這時在網(wǎng)站的物理目錄下會生成一個你所命名的isml文件。還記得之前你下載的IIS Smooth Streaming Player Development Kit嗎?現(xiàn)在將它安裝后的全部文件復制到你的網(wǎng)站根目錄下,一共是5個文件,事實上有用的就3個,Default.html、pushencoder.exe、SmoothStreaming
18、SamplePlayer.xap。 然后切換到Windows的command方式下,并且轉(zhuǎn)到網(wǎng)站所在的目錄,執(zhí)行下面的命令: pushencoder <url-of-publishingpoint> <ism-file>如圖,在我的機器上的執(zhí)行過程是這樣的: 你可能要稍微等一會兒,因為命令的執(zhí)行過程需要一點時間,一定要等命令完全執(zhí)行完成。好了,現(xiàn)在打開瀏覽器,輸入你的站點的地址,然后后面跟上/LiveSmoothStream.isml/manifest,你會看到Live Smooth Streaming服務(wù)器解析文件已經(jīng)生成好了。 好了,基本上已經(jīng)
19、成功了,當你看到上面這個畫面時表示你的Live Smooth Streaming已經(jīng)架設(shè)成功了,接下來就是在Default.html文件中設(shè)置播放地址讓影片播放起來。用記事本打開Default.html,找到Silverlight控件的mediaSource屬性,將后面的地址修改為“http:/localhost:77/livesmoothstream.isml/manifest”,注意“l(fā)ocalhost:77”是我機器上的網(wǎng)站地址,可能跟你的不一樣,“l(fā)ivesmoothstreaming.isml”為你創(chuàng)建的Live Smooth Streaming服務(wù)器解析文件的名稱。現(xiàn)在你應(yīng)該可以在
20、瀏覽器中看到你所發(fā)布的影片了,因為我們直接使用了IIS Smooth Streaming Player Development Kit提供的播放器,所以我們只需要修改地址就能直接播放影片,在這個播放器中,你會看到隨著客戶端帶寬的變化影片的質(zhì)量也會發(fā)生改變,這正是Live Smooth Streaming所提供的功能。 恩,我不知道你是不是也跟我一樣成功架設(shè)好了站點,如果你沒有成功那你可能就要再仔細檢查檢查了,也許哪個環(huán)節(jié)出了問題,如果你也可以觀看到影片,那么恭喜你,你已經(jīng)學會了如何發(fā)布Live Smooth Streaming了。還記得我在前面說Live Smooth Stream
21、ing是“實時平滑流媒體”嗎?不錯,這種方式可以在線提供實時視頻播放,但是存在一個問題,當我們重啟IIS時(最糟糕的是當我們重啟機器時)我們需要重新發(fā)布isml解析文件,也就是通過pushencoder命令重新生成isml文件的內(nèi)容,我不太清楚為什么非要這么做,但這樣確實帶來不少麻煩。下面我們看看Smooth Streaming(按需平滑流媒體)吧。這個就比較簡單了,不需要在IIS上創(chuàng)建任何文件,我們只需要將Default.html文件中的Silverlight Source屬性指定為這個地址就行了,“http:/localhost:77/Wildlife.ism/manifest”,同樣,根
22、據(jù)需要你可能要修改“l(fā)ocalhost:77”和“Wildlife.ism”。現(xiàn)在,你同樣可以在瀏覽器中看到影片,基本上沒有區(qū)別,不過這種方式不是實時的。 打造自己的Smooth Streaming播放器上面我們都是用IIS Smooth Streaming Player Development Kit提供的播放器做的演示,如果你的Silverlight工程中已經(jīng)有了一個播放器,你如何才能讓它播放Smooth Streaming提供的視頻流呢?也許你覺得直接將MediaElement控件的Source屬性指向上面我們介紹的那個地址就可以了,但事實上我試過了這樣行不通,看來需要在代碼方
23、面做些改動。確實如此,這里有一些資料可供參考:其實也不是很麻煩,但有些準備工作要做。首先你需要在你的Silverlight工程中使用AdaptiveStreamingSource對象,而這個對象在Silverlight 3.0的標準類庫中是不存在的,怎么辦呢?還記得前面我讓你將Encoder生成的文件中的xap文件復制到網(wǎng)站根目錄中嗎?那個SmoothStreamingSamplePlayer.xap現(xiàn)在有用了,將這個文件的后綴改為zip(事實上xap文件就是一個壓縮包),打開它,看到了吧?里面包含了我們要用的兩個類庫,PlugInMssCtrl.dll和SmoothStreaming.dll
24、,將它們引用到你的Silverlight工程中。好了,現(xiàn)在你可以放心大膽地修改你的Silverlight代碼了。下面是我給出的例子,你應(yīng)該不難看懂!<UserControl x:Class="SmoothStreamingTest.MainPage" xmlns="" xmlns:x="" xmlns:d="" xmlns:mc=""
25、60; mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> <Grid x:Name="LayoutRoot"> <MediaElement x:Name="mediaElement" Loaded="mediaElement_Loaded"/> </Grid> <
26、;/UserControl> using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; using Microsoft.Expression.Encoder.AdaptiveStreaming; namespace SmoothStreamingTest &
27、#160; public partial class MainPage : UserControl private string uriString = "http:/localhost:77/Wildlife.ism/manifest" private AdaptiveStreamingSource MainSrc
28、 = new AdaptiveStreamingSource(); public MainPage() InitializeComponent();
29、MainSrc.MediaElement = mediaElement; MainSrc.ManifestUrl = new Uri(uriString); private void mediaElement_Loaded(object sender, RoutedEven
30、tArgs e) MainSrc.StartPlayback(); 我們構(gòu)造一個AdaptiveStreamingSource對象,將它的ManifestUrl屬性指向我們的Smooth Streaming的發(fā)布地址,并將它的MediaElement屬性指
31、向MediaElement控件的實例,然后通過它的StartPlayback方法就可以播放視頻了,是不是很簡單呢?但有一個問題你需要注意,那就是平常我們在Visual Studio中可以直接啟動并調(diào)試Silverlight工程,如果你將影片的地址指向Smooth Streaming的發(fā)布地址,這時你在Visual Sutdio中調(diào)試的時候是看不到影片的,而必須將網(wǎng)站發(fā)布到IIS上才可以。這個我也覺得很奇怪,明明接收請求的只是Smooth Streaming影片的發(fā)布站點,和請求站點應(yīng)該沒有關(guān)系啊,但是必須這么做你才能看到影片。 跨域訪問的問題這里還有一個問題,如果你的站點發(fā)布地址和S
32、mooth Streaming的發(fā)布地址不是一個站點,或者說不在同一臺Server上,Smooth Streaming的請求會失敗。其實這個并不是Smooth Streaming本身的問題,這個是Silverlight所帶來的問題。如果你有遇到這樣的問題,可以在Smooth Streaming的發(fā)布站點的物理根目錄下創(chuàng)建一個名為clientaccesspolicy.xml的文件,在其中寫入下列內(nèi)容:<?xml version="1.0" encoding="utf-8"?> <access-policy> <c
33、ross-domain-access> <policy> <allow-from http-request-headers="*"> <domain uri="http:/sitename"/> </allow-from> <grant-to> <resource path="/" include-subpaths="true"/> </grant-to&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 60155:1993/AMD2:2006 EN-D Amendment 2 - Glow-starters for fluorescent lamps
- 專業(yè)領(lǐng)域技術(shù)研發(fā)工作經(jīng)驗證明(6篇)
- 詩詞歌賦與修辭技巧融合:初中英語詞匯教學方法
- 化工工藝流程及安全知識考核
- 藝術(shù)欣賞考試試題及答案
- 沂源小學考試試題及答案
- 六一親子簽到活動方案
- 六一德克士活動方案
- 六一活動女裝活動方案
- 六一活動小集市活動方案
- 貨物倒塌危害預(yù)防管理
- 辦公室綜合業(yè)務(wù)培訓課件
- 諸暨市城北片控制性詳細規(guī)劃
- 2023年10月自考00539中國古代文學史二試題及答案含評分標準
- 安保服務(wù)方案(技術(shù)標 )
- 高中化學課程標準解讀課件
- 四年級下冊數(shù)學說課稿-1歌手大賽-北師大版
- 北京市朝陽區(qū)2021-2022學年四年級下學期期末語文試卷
- 甘肅省張掖市2023年中考地理真題試題(含解析)
- 人教小學數(shù)學五年級下冊綜合與實踐《怎樣通知最快》示范公開課教學課件
- 脫不花三十天溝通訓練營
評論
0/150
提交評論