學(xué)習(xí)啦>學(xué)習(xí)電腦>網(wǎng)絡(luò)知識>網(wǎng)絡(luò)基礎(chǔ)知識>

怎樣架設(shè)流媒體服務(wù)器

時間: 若木635 分享

歡迎大家來到學(xué)習(xí)啦,小編為大家講解怎樣架設(shè)流媒體服務(wù)器,歡迎大家閱讀。

一、前言

隨著越來越多的朋友開始選擇ADSL、Cable Modem或FTTB+ LAN作為首要的上網(wǎng)方式,寬頻時代即將到來,這使我們“寬頻 KTV、影音聊天室、線上電影院、遠(yuǎn)程教育”的夢想即將成為現(xiàn)實(shí),而與其密切相關(guān)的“流媒體(Streaming Media)”也成了許多人談?wù)摰臒衢T話題,因為“流媒體”正是實(shí)現(xiàn)這些寬頻應(yīng)用的技術(shù)動力。

寬頻時代的到來還使得網(wǎng)民們不再滿足于僅僅作為一項服務(wù)的受眾,他們需要更大規(guī)模的交流,從中體現(xiàn)個體的價值,因此,許多朋友開始用自己的計算機(jī),搭建網(wǎng)絡(luò)廣播和點(diǎn)播站點(diǎn)。他們充滿著滿腔的熱情,但不可否認(rèn)的是,中國網(wǎng)民先天技術(shù)上的不足,讓他們在建設(shè)這樣的站點(diǎn)時遇到重重險阻,以至于放棄。如何將這種熱情在技術(shù)的引導(dǎo)下成為動力,這正是我們家用電腦所要做的,所以,在今天,在這里,我就將給大家介紹如何打造屬于自己的流媒體服務(wù)器。

不過,在開始正式的流媒體服務(wù)器架設(shè)之前,請讓我們先了解一下流媒體服務(wù)器的基礎(chǔ)知識。

二、流媒體基礎(chǔ)知識

什么是流媒體?

目前,在網(wǎng)絡(luò)上傳輸音/視頻等多媒體信息有兩種解決方案,即http或ftp下載以及流式傳輸。

http或ftp下載使用標(biāo)準(zhǔn)的http和ftp協(xié)議,但由于多媒體信息個頭巨大,下載一個多媒體文件一般需要幾分鐘或幾小時的時間,這就造成為了看一個并不知道內(nèi)容的視頻,首先需要耗費(fèi)可能比整個視頻都要長的時間來完成下載。這些被下載的文件還必須在下載前制作完成,放在網(wǎng)絡(luò)服務(wù)器上,這樣造成的直接后果就是:網(wǎng)絡(luò)帶寬不斷提高,人們下載的等待時間越來越少,但最終還是不能觀看網(wǎng)上現(xiàn)場直播。

流式傳輸時,聲音、影像或動畫等多媒體信息由流媒體服務(wù)器向用戶計算機(jī)連續(xù)、實(shí)時傳送,它首先在使用者端的電腦上創(chuàng)建一個緩沖區(qū),于播放前預(yù)先下載一段資料作為緩沖,用戶不必等到整個文件全部下載完畢,而只需經(jīng)過幾秒或十?dāng)?shù)秒的啟動延時即可進(jìn)行觀看。當(dāng)多媒體信息在客戶機(jī)上播放時,文件的剩余部分將在后臺從服務(wù)器內(nèi)繼續(xù)下載。如果網(wǎng)絡(luò)連接速度小于播放的多媒體信息需要的速度時,播放程序就會取用先前建立的一小段緩沖區(qū)內(nèi)的資料,避免播放的中斷,使得播放品質(zhì)得以維持。

流式傳輸除了能夠發(fā)送已經(jīng)制作完成的文件外,還可以通過采集服務(wù)器實(shí)時采集現(xiàn)場音視頻,推送到流媒體服務(wù)器端,實(shí)時提供給用戶。因此,流媒體除了能夠更好的承擔(dān)如下載一樣的多媒體點(diǎn)播服務(wù)外,更能夠應(yīng)用在現(xiàn)場直播、電視轉(zhuǎn)播、突發(fā)事件報道等多種對實(shí)時性傳輸要求較高的領(lǐng)域。

有關(guān)流媒體的廠商

流媒體的市場巨大,世界上許多優(yōu)秀的廠商都加入此行列,現(xiàn)階段更是系統(tǒng)集成商競爭的風(fēng)水寶地。而在通用市場上,競爭的公司主要有三個:Microsoft、RealNetworks、Apple,而相應(yīng)的產(chǎn)品就是:Windows Media、Real Media、QuickTime。而近來,以開發(fā)Winamp著名的Nullsoft公司也在自己的MP3服務(wù)器中加入了視頻支持,欲在流媒體市場分一杯羹。

由于Apple的服務(wù)器和編輯軟件一般都以Mac為操作平臺,Nullsoft的流媒體服務(wù)器屬于新生不成熟事務(wù),所以今天在這里我主要給大家介紹一下Microsoft和RealNetworks的產(chǎn)品。

流媒體的傳輸協(xié)議

大家在觀看網(wǎng)上電影或者電視時,一般都會注意到這些文件的連接都不是用http或者ftp開頭,而是一些rtsp或者mms開頭的東西,為什么是這樣呢?實(shí)際上,這些和http和ftp一樣,都是數(shù)據(jù)在網(wǎng)絡(luò)上傳輸?shù)膮f(xié)議,只是它們是專門用來傳輸流式媒體的協(xié)議而已。下面,讓我們來看一下現(xiàn)在使用的主要的流媒體協(xié)議:

1. RTSP(Real Time Streaming Protocol),實(shí)時流媒體協(xié)議,它是由RealNetworks和Netscape共同提出的,現(xiàn)在用于RealNetworks的Real Media產(chǎn)品中;

2. PNM(Progressive Networks Audio),這也是Real專用的實(shí)時傳輸協(xié)議,它一般采用UDP協(xié)議,并占用7070端口,但當(dāng)你的服務(wù)器在防火墻內(nèi)且7070端口被擋,且你的服務(wù)器把SmartingNetwork設(shè)為真時,則采用http協(xié)議,并占用默認(rèn)的80端口;

3. MMS(Microsoft Media Server protocol),這是微軟的流媒體服務(wù)器協(xié)議,MMS 是連接 Windows Media 單播服務(wù)的默認(rèn)方法。

介紹了主要的三個,可能您還會問,Apple的QuickTime使用哪種協(xié)議呢?在多數(shù)情況下,QuickTime使用http協(xié)議,但實(shí)際上它也由標(biāo)準(zhǔn)的流媒體傳輸協(xié)議,這就是標(biāo)準(zhǔn)RTSP協(xié)議,而Real公司使用的RTSP是自己經(jīng)過開發(fā)的。

在流媒體傳輸中,標(biāo)準(zhǔn)的協(xié)議就是RTP(Real time Transport Protocol,實(shí)時傳輸協(xié)議)、RTCP(Real-time Transport Control Protocol,實(shí)時傳輸控制協(xié)議)、RTSP(Real Time Streaming Protocol,實(shí)時流媒體協(xié)議)和RSVP(Resource Reserve Protocol, 資源預(yù)訂協(xié)議),廠商們的產(chǎn)品都是在這些協(xié)議的基礎(chǔ)上進(jìn)行研究與開發(fā),限于篇幅,在這里我們就不再深入討論了。

流媒體文件和發(fā)布格式

有了實(shí)時的傳輸協(xié)議,我們應(yīng)該還能夠想到,只有較小的文件才適合網(wǎng)絡(luò)實(shí)時傳輸,那么,流媒體文件采用了什么樣的壓縮算法呢?

而使用Windows操作系統(tǒng)的朋友可以看到,我們觀看網(wǎng)上流節(jié)目時,它們的后綴名一般是rm、asf、wmv等,這些就是流媒體的格式。流媒體文件格式經(jīng)過特殊編碼,不僅采用較高的壓縮比,還加入了許多控制信息,使其適合在網(wǎng)絡(luò)上邊下載邊播放,而不是等到下載完整個文件才能播放。

常見的流媒體格式大致有以下幾種:

流媒體文件格式擴(kuò)展(Video/Audio) 媒體類型與名稱

asf               Advanced Streaming format. (Microsoft).

rm               Real Video/Audio 文件 (Progressive Networks).

ra               Real Audio 文件 (Progressive Networks).

rp               Real Pix 文件 (Progressive Networks).

rt               Real Text 文件 (Progressive Networks).

swf               Shock Wave Flash (Macromedia).

mov               QuickTime(Apple公司格式)

viv               Vivo Movie 文件(Vivo Software).

另外還有一個wmv格式,是Windows Media Video的簡稱,它與asf文件有稍許區(qū)別,wmv一般采用window media video/audio 格式,asf視頻部分一般采用Microsoft MPG4 V(3/2/1?),音頻部分是windows media audio v2/1,不過現(xiàn)在很多制作軟件都沒有把它們分開,所以直接更改后綴名就能夠互相轉(zhuǎn)換為對方格式。

制作完成的流媒體文件需要發(fā)布到網(wǎng)絡(luò)上才能夠被別人使用,這就需要以特定方式安排壓縮好的流媒體文件,而安排流媒體文件的格式就被成為流媒體發(fā)布格式。常見的發(fā)布格式主要有以下幾種:

流媒體發(fā)布格式擴(kuò)展 媒體類型和名稱

asf        Advanced Streaming format.

smil        Synchronised Multimedia Integration Language.

ram        RAM File.

rpm        Embedded RAM File.

asx        ASF Stream Redirector/ASF流轉(zhuǎn)向器文件

xml        eXtensible Markup Language

MPEG-4與流媒體

說到流媒體就不能不提及MPEG-4。MPEG-4是當(dāng)前討論的焦點(diǎn)之一,只因為它能夠在大的壓縮比下實(shí)現(xiàn)近似DVD品質(zhì)的視頻和音頻效果,這也是許多朋友認(rèn)為MPEG-4格式肯定比rm清晰的原因。但事實(shí)上并不是如此,MPEG-4只是一種視頻編碼技術(shù),它的清晰度也根據(jù)壓縮時所選擇的碼率的不同有較大的改變(我們見到的MPEG-4格式文件通常為500Kbps壓縮生成,質(zhì)量當(dāng)然高了),并且,MPEG-4還有多種壓縮標(biāo)準(zhǔn),如Microsoft的asf視頻部分就是基于MPEG-4的Discrete Cosine Transform (DCT),另外還有DivX的免費(fèi)MPEG-4版本(開始是解除微軟的格式而來)。至于音頻部分,更是混亂,Microsoft采用windows media audio v2/1,DivX采用MP3或者更高質(zhì)量的AC3等。相比而言,Real或者Apple的格式使用的是自己開發(fā)的編碼,在相同碼率,特別是低碼率下,不見得就比MPEG-4差,采取高碼率的rm格式照樣清晰可人,所以大家以后說rm格式清晰度差的觀念要改變一下:),至少也要加上條件。而且,最新的Helix Producer中的Real Video 9采用VP5壓縮格式進(jìn)行編碼,這可比DivX優(yōu)秀多了!

不過,流媒體服務(wù)器開始向MPEG-4格式靠攏是不爭的事實(shí),Real最新的Helix就開始支持mp4格式文件的服務(wù),而RealOne Player更是只需安裝一個插件便可實(shí)現(xiàn)MPEG-4格式的播放。

點(diǎn)播與廣播

在架設(shè)流媒體服務(wù)器之前,我們一定要了解一些點(diǎn)播與廣播的知識。

點(diǎn)播是客戶端與服務(wù)器之間的主動的連接,在點(diǎn)播連接中,用戶通過選擇內(nèi)容項目來初始化客戶端連接,一個客戶端從服務(wù)器接收一個媒體流(這個連接是唯一的,其它用戶不能占用),并且能夠?qū)γ襟w進(jìn)行開始、停止、后退、快進(jìn)或暫停等操作,客戶端擁有流的控制權(quán),就像在看影碟一樣。這種方式由于每個客戶端各自連接服務(wù)器,服務(wù)器需要給每個用戶建立連接,對服務(wù)器資源和網(wǎng)絡(luò)帶寬的需求都比較大。

廣播指的是用戶被動接收流。在廣播過程中,客戶端接收流,但不能控制流,用戶不能暫停、快進(jìn)或后退該流,廣播使用的數(shù)據(jù)發(fā)送手段有單播與廣播。使用單播發(fā)送時,服務(wù)器需要將數(shù)據(jù)包復(fù)制多個拷貝,以多個點(diǎn)對點(diǎn)的方式分別發(fā)送到需要它的那些用戶,而使用廣播方式發(fā)送,數(shù)據(jù)包的單獨(dú)一個拷貝將發(fā)送給網(wǎng)絡(luò)上的所有用戶,而不管用戶是否需要,上述兩種傳輸方式會非常浪費(fèi)網(wǎng)絡(luò)帶寬和服務(wù)器資源,因此產(chǎn)生了組播(多播)技術(shù)。

組播(多播)吸收了上述兩種發(fā)送方式的長處,克服了上述兩種發(fā)送方式的弱點(diǎn),將數(shù)據(jù)包的單獨(dú)一個拷貝發(fā)送給需要的那些客戶,組播不會復(fù)制數(shù)據(jù)包的多個拷貝傳輸?shù)骄W(wǎng)絡(luò)上,也不會將數(shù)據(jù)包發(fā)送給不需要它的那些客戶,保證了網(wǎng)絡(luò)上多媒體應(yīng)用占用網(wǎng)絡(luò)的最小帶寬。但組播不僅需要服務(wù)器端支持,更需要有多播路由器乃至整個網(wǎng)絡(luò)結(jié)構(gòu)的支持。

單播與組播(多播)

在上面我們已經(jīng)了解了一些單播和組播的概念,這也是現(xiàn)在流媒體方面討論的焦點(diǎn)之一。以我的認(rèn)識,點(diǎn)播與廣播是一組概念,它們和客戶端媒體交互的手段;單播和組播又是另外一組概念,它們是流媒體數(shù)據(jù)在服務(wù)器端和網(wǎng)絡(luò)上的傳輸方式。

單播發(fā)送時,需要在客戶端與媒體服務(wù)器之間需要建立一個單獨(dú)的數(shù)據(jù)通道,從一臺服務(wù)器送出的每個數(shù)據(jù)包只能傳送給一個客戶機(jī),每個用戶必須分別對媒體服務(wù)器發(fā)送單獨(dú)的查詢,而服務(wù)器必須向每個用戶發(fā)送所申請的數(shù)據(jù)包拷貝。這種巨大冗余會造成服務(wù)器沉重和網(wǎng)絡(luò)帶寬的沉重負(fù)擔(dān),響應(yīng)需要很長時間,甚至出現(xiàn)不能服務(wù)的情況。單播可以用在點(diǎn)播和廣播上。

組播發(fā)送時,服務(wù)器將一組客戶請求的流媒體數(shù)據(jù)發(fā)送到支持組播技術(shù)的路由器上,然后由路由器一次將數(shù)據(jù)包根據(jù)路由表復(fù)制到多個通道上,再向用戶發(fā)送。這時候,媒體服務(wù)器只需要發(fā)送一個信息包,所有發(fā)出請求的客戶端都共享同一信息包,并且信息可以發(fā)送到任意地址的客戶機(jī),沒有請求的客戶機(jī)不會收到信息包,網(wǎng)絡(luò)上傳輸?shù)男畔目偭繘]有廣播那么多,大大提高了服務(wù)器和網(wǎng)絡(luò)線路的利用率。不過組播也有自己的特點(diǎn),首先是必須要開始支持組播技術(shù)的路由器,另外就是一般只能用作廣播,因為用作點(diǎn)播會存在用戶控制問題。

119432