




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、微軟的全新一代操作系統(tǒng)將IIS 7(Internet Information Services 7)引入到人們的視線中,作為IIS 6.0的一個(gè)升級版本,IIS 7在很多地方都做了改進(jìn),諸如模塊化服務(wù)功能,與.NET的無縫集成,簡單的操作和部署,改進(jìn)的管理功能,以及安全性、過程改進(jìn)、錯(cuò)誤診斷、兼容性等很多新特性,要想全面了解IIS 7所帶來的更多新特性,可以查看“探索用于Windows Vista的Web服務(wù)器和更多內(nèi)容”一文。IIS 7的很多功能都是作為模塊(插件)被集成到服務(wù)器上的,默認(rèn)安裝的IIS 7上已經(jīng)集成了很多常用的功能,下圖展示了IIS 7上的一些常用模塊。 IIS 7支持很多的
2、插件,The Offical Microsoft IIS Site上列出了當(dāng)前IIS 7上的所有擴(kuò)展,如SEO(Search Engine Optimization Toolkit,搜索引擎優(yōu)化),Web Platform Installer(如上圖中已安裝在Management分類下),Application Request Routing,URL Rewrite Module(我在“使用URL Rewriter進(jìn)行URL重寫失效”和“ASP.NET URL雙向改寫的實(shí)現(xiàn)”中詳細(xì)介紹過在非IIS 7的環(huán)境寫如何通過ASP.NET實(shí)現(xiàn)URL的重寫,現(xiàn)在IIS 7已經(jīng)將這個(gè)功能集成了),Smoo
3、th Streaming(這個(gè)功能是本文即將要介紹的)等。IIS 7的這些插件在很大程度上給站點(diǎn)開發(fā)人員帶來了便利性,可能以前我們需要在Web程序中添加許多很復(fù)雜的代碼才能實(shí)現(xiàn)的功能,現(xiàn)在借助于IIS 7和插件,幾乎不用修改任何代碼就可以搞定。是不是讓人覺得很興奮呢?先別著急,要想了解或掌握IIS 7的這些插件,還是需要耗費(fèi)點(diǎn)時(shí)間的,The Offical Microsoft IIS Site官方網(wǎng)站上有許多詳細(xì)的介紹和示例,可供我們學(xué)習(xí)和研究。在本文中,我想重點(diǎn)介紹下Smooth Streaming技術(shù)的應(yīng)用。 什么是Smooth Streaming?官方站點(diǎn)上有詳細(xì)的介紹和示例,
4、相信也有許多人已經(jīng)見過了,還記得那個(gè)生動的動畫短片Big Buck Bunny嗎?那個(gè)有趣的影片很好地展現(xiàn)了Smooth Streaming技術(shù)在Silverlight 3中的應(yīng)用。那么,究竟什么是Smooth Streaming技術(shù)呢?一個(gè)很好的解釋就是,Smooth Streaming是IIS Media Services的擴(kuò)展,它使得Silverlight客戶端可以通過HTTP來適應(yīng)流媒體的帶寬,通過對視頻源文件(如wmv等常用視頻文件格式)的特殊處理,會在服務(wù)器上按照不同帶寬要求生成多個(gè)不同版本的視頻文件副本,IIS在接收到Silverlight客戶端請求后再決定將哪個(gè)視頻文件副本通過
5、流媒體發(fā)送到客戶端,這個(gè)過程是完全動態(tài)的,也就是說當(dāng)客戶端的帶寬發(fā)生變化時(shí),傳送流媒體的視頻文件副本也會相應(yīng)地改變。如當(dāng)前客戶端的帶寬在300kbps以下,則當(dāng)前的流媒體文件副本可能為280kbps的那個(gè);當(dāng)客戶端的帶寬上升到1mbps時(shí),當(dāng)前的流媒體文件副本就可能變成1.5mbps的那個(gè)了。是不是覺得很神奇?。慨?dāng)然,所有這些都是需要IIS 7和Silverlight 3.0的支持。 需要些什么?事實(shí)上,我在研究Smooth Streaming技術(shù)之前,已經(jīng)有很多人介紹過它了,看來它也不是那么陌生!這里是我在網(wǎng)上搜集到得一些資料,大家可以先了解一下:基本上,我們在開始Smooth S
6、treaming之前,有些工具是必備的,否則將無法進(jìn)行后面的工作。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,在官方站點(diǎn)上有下載。在頁面右上角的Download Extension部分下載或安裝Smooth Streaming,注意32位機(jī)器和64位機(jī)器的版本不同,如果你選擇“Using the Microsoft Web Platform Installer”進(jìn)行安裝,則會先在IIS 7中安裝Web Platform Installer,然后通過它在線安裝Smooth Streaming,安裝成功后需要重新打開IIS 7的管理界面,點(diǎn)擊站點(diǎn),右邊的功能視圖中會多出來一個(gè)Media Services的分類,下面會多出來三個(gè)插件,分別是Bit Rate
8、Throttling,Live Smooth Streaming,Smooth Streaming。這里我已經(jīng)安裝過IIS Media Services 3.0,所以在Web Platform Installer中選擇和安裝IIS Media Services 3.0的選項(xiàng)都被灰掉了。另外,通過Web Platform Installer你還可以安裝許多其它的IIS 7插件,它本身也是IIS 7的一個(gè)插件,安裝之后會出現(xiàn)在IIS 7管理界面的Management分類中,如本文一開始的截圖中。除了通過Web Platform Installer安裝Smooth Streaming外,你還可以直接
9、下載安裝包進(jìn)行安裝,下載后的Smooth Streaming插件是一個(gè)msi包,叫IISMedia32.msi(64位版本應(yīng)該叫IISMedia64.msi)。3. Microsoft Expression Encoder 3。其實(shí)Encoder 2也完全可以,不過我個(gè)人推薦使用Encoder 3,這樣可以省去你很多的麻煩,而且功能也更豐富。4. Visual Studio 2008和Silverlight 3.0。這個(gè)基本上都是必備,如果你是作為一個(gè)Silverlight開發(fā)人員的話,這里就不多說了。好了,準(zhǔn)備工作完成后,下面就讓我們開始體驗(yàn)在Silverlight 3中使用Smooth S
10、treaming吧。 如何開始?我們都知道,要想在Silverlight中播放影片,需要MediaElement控件的支持,在以往的應(yīng)用中,我們只需要給這個(gè)控件指定一個(gè)Source屬性,將本地或遠(yuǎn)程的視頻文件(或視頻服務(wù))地址告訴MediaElement控件就可以了,然后我們通過Media Template(這個(gè)可以通過Encoder自動生成或完全自定義)中的按鈕、進(jìn)度條等控制視頻的播放。這個(gè)過程是比較簡單的,當(dāng)然,如果你想做一些很酷的效果可能就要費(fèi)掉周折了。要想通過Smooth Streaming播放影片,對影片的格式是有要求的,這就是我們?yōu)槭裁葱枰狹icrosoft Expres
11、sion Encoder的原因。通過Encoder,我們可以將視頻源文件轉(zhuǎn)換成Smooth Streaming所支持的文件格式,這個(gè)步驟在上面我給出的兩篇文章中都有詳細(xì)的介紹(見“需要些什么”那一節(jié)),其實(shí)我也是參考了其中的內(nèi)容。這里我再簡單做下介紹吧。打開Encoder,導(dǎo)入要轉(zhuǎn)換的視頻文件,選擇右邊的Encoder面板,將Output Format選擇為IIS Smooth Streaming。 然后你還可以做一些其它的設(shè)置,如在Clip面板中設(shè)置影片的起止時(shí)間,Audio的設(shè)置(模式、比特率、聲道等),展開Video節(jié)點(diǎn),你還可以在其中增減Smooth Streaming需要的
12、影片副本數(shù)量,這些影片副本將各自對應(yīng)于一個(gè)客戶端帶寬范圍。 最好在Output面板中設(shè)置輸出模板,這樣Encoder在轉(zhuǎn)換完視頻后會自動按照你所選擇的模板生成一個(gè)Silverlight示例以播放轉(zhuǎn)換后的視頻,其中自動生成的xap文件我們在后面會用到。注意輸出路徑,轉(zhuǎn)換完成后我們需要到這個(gè)目錄下拷貝相應(yīng)的文件。 轉(zhuǎn)換的時(shí)間視你所選擇的影片文件大小而定,一般情況下都會比較長,所以你可能需要有點(diǎn)耐心了。轉(zhuǎn)換完成后轉(zhuǎn)到Encoder的輸出目錄,如果你沒有修改這個(gè)路徑的話,它應(yīng)該會在“我的文檔-Expression”下面。如下圖,這是在我的機(jī)器上的轉(zhuǎn)換結(jié)果: 按照你在
13、Encoder中的設(shè)定,視頻文件被轉(zhuǎn)換成按帶寬范圍所命名的文件,并且以.ismv作為后綴。另外還有一個(gè)ism文件和一個(gè)ismc文件,這兩個(gè)文件都是xml文件,可以用記事本將它們打開,你會看到其實(shí)都是一些配置信息,ism文件是服務(wù)器解析文件,用于描述在硬盤上的不同碼率文件之間的關(guān)系,而ismc文件是客戶端解析文件,它用來決定給客戶端下載哪個(gè)碼率的解釋性文件,其中包括描述可用的碼率視頻、采用什么解碼器、視頻分辨率等等。我們不用太去研究這兩個(gè)文件究竟是怎么回事,因?yàn)樗鼈兌际荢mooth Streaming使用的。因?yàn)槲覀冊谟肊ncoder轉(zhuǎn)換視頻時(shí)選擇了輸出的Template,所以Encoder還為
14、我們生成了預(yù)覽要用的一些文件,如Default.html、MediaPlayerTemplate.xap、SmoothStreaming.xap等,其中SmoothStreaming.xap文件中就有我們要用的東西,稍后再來介紹。 另外,為了能夠快速演示Smooth Streaming,我們可以直接下載并安裝IIS Smooth Streaming Player Development Kit,它會提供演示要用的xap文件也頁面。 創(chuàng)建站點(diǎn)當(dāng)然了,要讓Smooth Streaming能工作,我們需要在服務(wù)器上架設(shè)一個(gè)Smooth Streaming的站點(diǎn)。很簡單!首先將前面Enco
15、der轉(zhuǎn)換的文件中的全部ismv文件以及ism、ismc文件復(fù)制到你要創(chuàng)建的網(wǎng)站的物理目錄下。按照官方網(wǎng)站向?qū)系慕榻B(你可以去官方網(wǎng)站上下載pdf或doc的向?qū)臋n,不過都是英文的),一共有兩種Smooth Streaming方案可供選擇,打開IIS 7,點(diǎn)擊我們所創(chuàng)建的站點(diǎn),在右邊功能視圖的Media Services分類下會看到Live Smooth Streaming和Smooth Streaming兩個(gè)插件,事實(shí)上它們就是向?qū)纤f的Serving On-Demand Smooth Streaming(按需Smooth Streaming)和Serving Live Smooth S
16、treaming(實(shí)時(shí)Smooth Streaming),向?qū)蠈@兩種方案的架設(shè)說得都很詳細(xì),包括如何通過Encoder轉(zhuǎn)換視頻文件,如何發(fā)布視頻文件等,讓人覺得整個(gè)過程很繁瑣,事實(shí)上沒有這么麻煩!首先,視頻文件的發(fā)布在Encoder中可以通過WebDAV完成,但是這個(gè)需要在IIS上配置權(quán)限和認(rèn)證,比較麻煩,我們可以通過手動將轉(zhuǎn)換文件復(fù)制到網(wǎng)站下(僅僅就是復(fù)制而已,沒有別的)。然后就是發(fā)布Smooth Streaming了。先說說發(fā)布Live Smooth Streaming。在IIS中打開Live Smooth Streaming,點(diǎn)擊“Add”,在彈出的窗口中輸入你想要創(chuàng)建的Live S
17、mooth Streaming的文件的名字,并選擇Live Source Type為Push,其它的選項(xiàng)如Title、Estimated duration等都可以完全不用填寫。確定后在右邊的Actions中點(diǎn)擊Start Publishing Point就OK了,這時(shí)在網(wǎng)站的物理目錄下會生成一個(gè)你所命名的isml文件。還記得之前你下載的IIS Smooth Streaming Player Development Kit嗎?現(xiàn)在將它安裝后的全部文件復(fù)制到你的網(wǎng)站根目錄下,一共是5個(gè)文件,事實(shí)上有用的就3個(gè),Default.html、pushencoder.exe、SmoothStreaming
18、SamplePlayer.xap。 然后切換到Windows的command方式下,并且轉(zhuǎn)到網(wǎng)站所在的目錄,執(zhí)行下面的命令: pushencoder <url-of-publishingpoint> <ism-file>如圖,在我的機(jī)器上的執(zhí)行過程是這樣的: 你可能要稍微等一會兒,因?yàn)槊畹膱?zhí)行過程需要一點(diǎn)時(shí)間,一定要等命令完全執(zhí)行完成。好了,現(xiàn)在打開瀏覽器,輸入你的站點(diǎn)的地址,然后后面跟上/LiveSmoothStream.isml/manifest,你會看到Live Smooth Streaming服務(wù)器解析文件已經(jīng)生成好了。 好了,基本上已經(jīng)
19、成功了,當(dāng)你看到上面這個(gè)畫面時(shí)表示你的Live Smooth Streaming已經(jīng)架設(shè)成功了,接下來就是在Default.html文件中設(shè)置播放地址讓影片播放起來。用記事本打開Default.html,找到Silverlight控件的mediaSource屬性,將后面的地址修改為“http:/localhost:77/livesmoothstream.isml/manifest”,注意“l(fā)ocalhost:77”是我機(jī)器上的網(wǎng)站地址,可能跟你的不一樣,“l(fā)ivesmoothstreaming.isml”為你創(chuàng)建的Live Smooth Streaming服務(wù)器解析文件的名稱?,F(xiàn)在你應(yīng)該可以在
20、瀏覽器中看到你所發(fā)布的影片了,因?yàn)槲覀冎苯邮褂昧薎IS Smooth Streaming Player Development Kit提供的播放器,所以我們只需要修改地址就能直接播放影片,在這個(gè)播放器中,你會看到隨著客戶端帶寬的變化影片的質(zhì)量也會發(fā)生改變,這正是Live Smooth Streaming所提供的功能。 恩,我不知道你是不是也跟我一樣成功架設(shè)好了站點(diǎn),如果你沒有成功那你可能就要再仔細(xì)檢查檢查了,也許哪個(gè)環(huán)節(jié)出了問題,如果你也可以觀看到影片,那么恭喜你,你已經(jīng)學(xué)會了如何發(fā)布Live Smooth Streaming了。還記得我在前面說Live Smooth Stream
21、ing是“實(shí)時(shí)平滑流媒體”嗎?不錯(cuò),這種方式可以在線提供實(shí)時(shí)視頻播放,但是存在一個(gè)問題,當(dāng)我們重啟IIS時(shí)(最糟糕的是當(dāng)我們重啟機(jī)器時(shí))我們需要重新發(fā)布isml解析文件,也就是通過pushencoder命令重新生成isml文件的內(nèi)容,我不太清楚為什么非要這么做,但這樣確實(shí)帶來不少麻煩。下面我們看看Smooth Streaming(按需平滑流媒體)吧。這個(gè)就比較簡單了,不需要在IIS上創(chuàng)建任何文件,我們只需要將Default.html文件中的Silverlight Source屬性指定為這個(gè)地址就行了,“http:/localhost:77/Wildlife.ism/manifest”,同樣,根
22、據(jù)需要你可能要修改“l(fā)ocalhost:77”和“Wildlife.ism”?,F(xiàn)在,你同樣可以在瀏覽器中看到影片,基本上沒有區(qū)別,不過這種方式不是實(shí)時(shí)的。 打造自己的Smooth Streaming播放器上面我們都是用IIS Smooth Streaming Player Development Kit提供的播放器做的演示,如果你的Silverlight工程中已經(jīng)有了一個(gè)播放器,你如何才能讓它播放Smooth Streaming提供的視頻流呢?也許你覺得直接將MediaElement控件的Source屬性指向上面我們介紹的那個(gè)地址就可以了,但事實(shí)上我試過了這樣行不通,看來需要在代碼方
23、面做些改動。確實(shí)如此,這里有一些資料可供參考:其實(shí)也不是很麻煩,但有些準(zhǔn)備工作要做。首先你需要在你的Silverlight工程中使用AdaptiveStreamingSource對象,而這個(gè)對象在Silverlight 3.0的標(biāo)準(zhǔn)類庫中是不存在的,怎么辦呢?還記得前面我讓你將Encoder生成的文件中的xap文件復(fù)制到網(wǎng)站根目錄中嗎?那個(gè)SmoothStreamingSamplePlayer.xap現(xiàn)在有用了,將這個(gè)文件的后綴改為zip(事實(shí)上xap文件就是一個(gè)壓縮包),打開它,看到了吧?里面包含了我們要用的兩個(gè)類庫,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)造一個(gè)AdaptiveStreamingSource對象,將它的ManifestUrl屬性指向我們的Smooth Streaming的發(fā)布地址,并將它的MediaElement屬性指
31、向MediaElement控件的實(shí)例,然后通過它的StartPlayback方法就可以播放視頻了,是不是很簡單呢?但有一個(gè)問題你需要注意,那就是平常我們在Visual Studio中可以直接啟動并調(diào)試Silverlight工程,如果你將影片的地址指向Smooth Streaming的發(fā)布地址,這時(shí)你在Visual Sutdio中調(diào)試的時(shí)候是看不到影片的,而必須將網(wǎng)站發(fā)布到IIS上才可以。這個(gè)我也覺得很奇怪,明明接收請求的只是Smooth Streaming影片的發(fā)布站點(diǎn),和請求站點(diǎn)應(yīng)該沒有關(guān)系啊,但是必須這么做你才能看到影片。 跨域訪問的問題這里還有一個(gè)問題,如果你的站點(diǎn)發(fā)布地址和S
32、mooth Streaming的發(fā)布地址不是一個(gè)站點(diǎn),或者說不在同一臺Server上,Smooth Streaming的請求會失敗。其實(shí)這個(gè)并不是Smooth Streaming本身的問題,這個(gè)是Silverlight所帶來的問題。如果你有遇到這樣的問題,可以在Smooth Streaming的發(fā)布站點(diǎn)的物理根目錄下創(chuàng)建一個(gè)名為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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆浙江省衢州市六校聯(lián)誼八年級數(shù)學(xué)第二學(xué)期期末調(diào)研試題含解析
- 醫(yī)療行業(yè)數(shù)據(jù)泄露的倫理風(fēng)險(xiǎn)分析
- 售房居間服務(wù)協(xié)議書
- 六年級奧數(shù)試卷及答案
- 分家繼承析產(chǎn)協(xié)議書
- 勞動外包用工協(xié)議書
- 合伙經(jīng)營茶葉協(xié)議書
- 名酒回收免責(zé)協(xié)議書
- 醫(yī)院科室接管協(xié)議書
- 制作版權(quán)保密協(xié)議書
- 鋼結(jié)構(gòu)工程施工組織設(shè)計(jì)完整版
- 《田間藥效試驗(yàn)》課件
- 血常規(guī)報(bào)告單
- JJG 443-2023燃油加油機(jī)(試行)
- 國家開放大學(xué)-傳感器與測試技術(shù)實(shí)驗(yàn)報(bào)告(實(shí)驗(yàn)成績)
- 機(jī)械工業(yè)出版社2020《人工智能導(dǎo)論》課程第1章 緒論
- 教育教學(xué)實(shí)習(xí)教案幼兒園
- 大眾電子助力轉(zhuǎn)向EPS 雙齒輪電動助力轉(zhuǎn)向系統(tǒng)
- 【醫(yī)院管理案例學(xué)習(xí)】-床單位終末消毒標(biāo)準(zhǔn)的執(zhí)行
- 退化草地修復(fù)親水性聚氨酯復(fù)合材料應(yīng)用技術(shù)規(guī)范
- 暗挖格柵加工技術(shù)交底
評論
0/150
提交評論