專利名稱:可變速率媒體傳送系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體涉及媒體內(nèi)容傳送。
背景技術(shù):
可以推行在本部分中描述的方法,但這些方法并非一定是先前已經(jīng)設(shè)計(jì)或推行的方法。因此,除非本文另外指出,在本部分中描述的方法不是本申請(qǐng)中的權(quán)利要求的現(xiàn)有技術(shù),并且不允許通過包含在本部分中而成為現(xiàn)有技術(shù)。這些年來,視頻內(nèi)容在因特網(wǎng)上的傳送已得到發(fā)展。從內(nèi)容服務(wù)器到客戶端計(jì)算機(jī)的視頻傳送的最初應(yīng)用受到技術(shù)和帶寬容量的限制。必須明顯減小視頻文件的大小,以適應(yīng)電話線的低帶寬。必須在可以向用戶播放視頻文件之前將低分辨率視頻內(nèi)容作為整體下載至客戶端計(jì)算機(jī)。這是由于文件系統(tǒng)限制(在文件系統(tǒng)利用文件之前,其需要下載整個(gè)文件)和僅具有重放整個(gè)文件的能力的視頻播放器軟件的原因。這迫使用戶忍受等待完全下載視頻文件的長時(shí)延遲。當(dāng)下載內(nèi)容時(shí),創(chuàng)建私人文件格式和視頻播放器軟件以允許用戶觀看視頻內(nèi)容。 在下載完成且用戶觀看到視頻內(nèi)容之后,保存或刪除該文件。該方法由于帶寬限制、服務(wù)器負(fù)載或網(wǎng)絡(luò)延遲而非常容易出現(xiàn)下載延遲。由于視頻播放器軟件缺乏重放的視頻內(nèi)容,所以必須周期性地停止視頻內(nèi)容的重放。開發(fā)了一種更復(fù)雜的方法,該方法將視頻內(nèi)容傾注至視頻播放器軟件。傳送系統(tǒng)通常針對(duì)每個(gè)視頻內(nèi)容標(biāo)題具有單比特率視頻文件。單比特率視頻文件被分配給所有用戶,而不管它們的帶寬是否可用。通過迫使用戶觀看具有比合理帶寬低的質(zhì)量的視頻內(nèi)容, 來懲罰具有比正常帶寬高的帶寬的用戶。在用戶能夠重放視頻內(nèi)容之前,緩沖一定量的視頻內(nèi)容。緩沖器足夠大,以支持一定量的視頻內(nèi)容來掩蓋由帶寬限制、服務(wù)器負(fù)載或網(wǎng)絡(luò)延遲所導(dǎo)致的視頻內(nèi)容傳送中的小延遲。較長的傳送延遲(典型地,為幾秒或更長)由不穩(wěn)定的最后一英里帶寬導(dǎo)致。傳送延遲會(huì)使視頻播放器軟件無內(nèi)容可播,并導(dǎo)致視頻播放器軟件停止視頻內(nèi)容的重放,直到傳送重新開始且充分填充緩沖器為止。
在附圖的圖中,通過實(shí)施例但不限于實(shí)施例示出了本發(fā)明,其中,相同的參考標(biāo)號(hào)指的是相同的元件,其中圖1示出了根據(jù)本發(fā)明的可行實(shí)施方式的在網(wǎng)絡(luò)間與客戶端系統(tǒng)、原始服務(wù)器、 同位體MFD以及中心管理站相通信的媒體流導(dǎo)向器(MFD);圖2示出了根據(jù)本發(fā)明的可行實(shí)施方式的MFD部件和數(shù)據(jù)流架構(gòu)的實(shí)施例;圖3示出了根據(jù)本發(fā)明的可行實(shí)施方式的動(dòng)態(tài)地確定內(nèi)容部分的流行度 (popularity)的實(shí)施例;圖4示出了根據(jù)本發(fā)明的可行實(shí)施方式的代替?zhèn)鹘y(tǒng)的視頻服務(wù)器網(wǎng)站的MFD配置;圖5示出了根據(jù)本發(fā)明的可行實(shí)施方式的向客戶端系統(tǒng)傳送內(nèi)容的MFD網(wǎng)絡(luò);圖6示出了可以在其上執(zhí)行一可行實(shí)施方式的計(jì)算機(jī)系統(tǒng);圖7示出了根據(jù)本發(fā)明的可行實(shí)施方式的HPE和服務(wù)器側(cè)播放器之間的工作流程的流程圖;圖8a示出了根據(jù)本發(fā)明的可行實(shí)施方式的磁盤管理器與策略模塊和分析模塊之間的相互作用;圖8b示出了根據(jù)本發(fā)明的可行實(shí)施方式的磁盤管理器與用于存儲(chǔ)裝置的詞典之間的相互作用;圖8c示出了根據(jù)本發(fā)明的可行實(shí)施方式的磁盤管理器與反向塊映射(reverse block map)之間的相互作用;圖9示出了根據(jù)本發(fā)明的可行實(shí)施方式的緩沖池與緩沖管理器之間的相互作用;圖IOa示出了根據(jù)本發(fā)明的可行實(shí)施方式的媒體管理器、緩沖管理器和媒體提供商之間的相互作用;圖IOb示出了根據(jù)本發(fā)明的可行實(shí)施方式的媒體管理器與用于確定熱門視頻片段的分析模塊之間的相互作用;圖11示出了根據(jù)本發(fā)明的可行實(shí)施方式的MFD中的網(wǎng)絡(luò)管理器的流程圖;圖12示出了根據(jù)本發(fā)明的可行實(shí)施方式的容器文件中的漸近式下載提示軌道位置;圖13示出了根據(jù)本發(fā)明的可行實(shí)施方式的參數(shù)說明畫面的圖形用戶界面屏幕截圖;圖14示出了根據(jù)本發(fā)明的可行實(shí)施方式的實(shí)時(shí)字節(jié)傳送監(jiān)控圖的圖形用戶界面屏幕截圖;圖15示出了根據(jù)本發(fā)明的可行實(shí)施方式的網(wǎng)絡(luò)連接性能監(jiān)控圖的圖形用戶界面屏幕截圖;圖16示出了根據(jù)本發(fā)明的可行實(shí)施方式的在網(wǎng)絡(luò)間與客戶端系統(tǒng)相通信的媒體流導(dǎo)向器(MFD);圖17示出了根據(jù)本發(fā)明的可行實(shí)施方式的MFD在網(wǎng)絡(luò)中的應(yīng)用。圖18示出了根據(jù)本發(fā)明的可行實(shí)施方式的向MFD傳送視頻文件的發(fā)布系統(tǒng) (publishing system);圖19示出了根據(jù)本發(fā)明的可行實(shí)施方式的制備視頻文件以由MFD傳送的預(yù)處理引擎;圖20示出了根據(jù)本發(fā)明的可行實(shí)施方式的可由MFD使用的文件格式的實(shí)施例;圖21示出了根據(jù)本發(fā)明的實(shí)施方式的內(nèi)部文件結(jié)構(gòu)。
具體實(shí)施例方式描述了一種可變速率媒體傳送系統(tǒng)。在以下描述中,為了解釋的目的,闡述了許多具體細(xì)節(jié)以提供對(duì)本發(fā)明的充分理解。然而,對(duì)于本領(lǐng)域的技術(shù)人員來說將顯而易見的是, 在沒有這些具體細(xì)節(jié)的情況下也可以實(shí)踐本發(fā)明。在其他情況中,以框圖的形式示出了眾所周知的結(jié)構(gòu)和裝置,以避免不必要地使本發(fā)明模糊。本文中,按照以下提綱描述實(shí)施方式1. 0總體概述2. 0結(jié)構(gòu)和功能概述2. 1網(wǎng)絡(luò)上的適應(yīng)性內(nèi)容傳送2. 1. 1媒體流導(dǎo)向器架構(gòu)2. 1.2媒體流導(dǎo)向器布置2. 2網(wǎng)絡(luò)上的可變速率媒體傳送2. 2. 1平滑流架構(gòu)2. 2. 2不同比特率之間的過渡2. 2. 3網(wǎng)絡(luò)中的媒體流導(dǎo)向器2. 2. 4準(zhǔn)備平滑流文件3. 0實(shí)現(xiàn)機(jī)制——硬件概述4. 0實(shí)施例5. 0擴(kuò)展和變形總體概述本概述給出了本發(fā)明的可行實(shí)施方式的一些方面的基本描述。應(yīng)當(dāng)注意,該概述不是可行實(shí)施方式的方面的廣泛或徹底的總結(jié)。此外,應(yīng)當(dāng)注意,該概述并非旨在被理解為確定可行實(shí)施方式的任何具體的重要方面或元件,也并非旨在被理解為具體地描述可行實(shí)施方式的任何范圍(具體地,并非旨在大體上為本發(fā)明)。該概述僅提出了一些與壓縮且簡化的形式的實(shí)施例的可行實(shí)施方式相關(guān)的概念,并且其應(yīng)被理解為,僅是以下實(shí)施例的可行實(shí)施方式的更詳細(xì)描述的概念上的序言。描述了一種可變速率媒體傳送系統(tǒng)。在其他實(shí)施方式中,本發(fā)明包含計(jì)算機(jī)設(shè)備和被配置為執(zhí)行所述步驟的計(jì)算機(jī)可讀介質(zhì)。在以下文本中,視頻內(nèi)容和視頻數(shù)據(jù)被用作媒體內(nèi)容和媒體數(shù)據(jù)的實(shí)例,但是,這些實(shí)例不限于視頻內(nèi)容,還可以包括其他類型的媒體內(nèi)容和媒體數(shù)據(jù),例如,音頻、多媒體表現(xiàn)、放映幻燈片等。該系統(tǒng)通過傳送適于變化的比特率的媒體數(shù)據(jù)來適應(yīng)服務(wù)器和客戶端之間的比特率變化。在實(shí)施方式中,視頻數(shù)據(jù)被發(fā)送以匹配服務(wù)器和客戶端之間的帶寬??蛻舳撕头?wù)器之間的帶寬是不斷改變的。在某一時(shí)間點(diǎn),存在這樣的比特率,在該比特率時(shí),必須針對(duì)視頻來傳送視頻數(shù)據(jù),使得該視頻由客戶端的視頻播放器連續(xù)重放而沒有暫?;蛑袛唷T撓到y(tǒng)確??蛻舳艘曨l播放器不會(huì)沒有數(shù)據(jù)??勺詣?dòng)地檢測(cè)服務(wù)器和客戶端之間的帶寬,并且通過服務(wù)器將帶寬映射至適當(dāng)?shù)囊曨l比特率。客戶端視頻播放器被提供有穩(wěn)定的視頻數(shù)據(jù)流。不使時(shí)標(biāo)折衷,但傳遞至客戶端的數(shù)據(jù)的量可以改變以與可用的帶寬相匹配。如此,重放的視頻的質(zhì)量也可以改變??蛻舳瞬シ牌魇冀K播放相同量的數(shù)據(jù);只有視頻的質(zhì)量改變。服務(wù)器在用戶和客戶端視頻播放器看不到任何中斷的情況下而在視頻比特率之間進(jìn)行無縫地切換。在可行實(shí)施方式中,為了阻止對(duì)峰值或谷值過快地產(chǎn)生影響,服務(wù)器可以在具有明顯的下降或增加時(shí)切換比特率。唯一可注意到的變化是所播放的視頻的質(zhì)量。 標(biāo)準(zhǔn)的視頻播放器可以用來與服務(wù)器對(duì)接。可行的實(shí)施方式經(jīng)由漸進(jìn)式下載方法而向用戶提供視頻流體驗(yàn)。在另一可行實(shí)施方式中,視頻播放器可以通過使用控制信號(hào)或命令與服務(wù)器通信來使能服務(wù)器的其他特征(例如,特殊再現(xiàn)特征/比特率自適應(yīng))、或通過提供關(guān)于客戶端側(cè)資源(例如,CPU使用/存儲(chǔ))的信息而具有與服務(wù)器相通信的智能。特殊再現(xiàn)是這樣一種特征允許用戶在當(dāng)前流動(dòng)的視頻上使用流命令(諸如快進(jìn)、倒帶、幀步進(jìn)、 暫停等)來控制其媒體重放體驗(yàn)。在另一可行實(shí)施方式中,可以稍微改進(jìn)視頻播放器,以能夠向服務(wù)器發(fā)送告知服務(wù)器視頻播放器已暫停的控制信號(hào)或命令。暫停通知使服務(wù)器暫停對(duì)視頻播放器的漸進(jìn)式下載。這釋放了服務(wù)器的部分帶寬,并使服務(wù)器處理其他下載。描述了一種適應(yīng)性網(wǎng)絡(luò)內(nèi)容傳送系統(tǒng)。參考圖1,可行實(shí)施方式提供了媒體流導(dǎo)向器(MFD) 103。MFD是可以經(jīng)由HTTP、FTP、流動(dòng)或其他協(xié)議而將網(wǎng)絡(luò)104上的視頻內(nèi)容(以及各種大小的其他類型的文件內(nèi)容,例如,媒體(音頻、圖片等)、游戲、軟件、HTML、腳本等) 有效地傳送至多個(gè)客戶端101a、101b、101n的網(wǎng)絡(luò)裝置。視頻內(nèi)容包括這樣的內(nèi)容,如特征長度電影、情景喜劇、各種演出、脫口秀、新聞節(jié)目、廣告等??蛻舳搜b置101a、101b、101n可以是個(gè)人計(jì)算裝置(諸如臺(tái)式機(jī)或筆記本電腦、機(jī)頂盒、手持計(jì)算裝置、手機(jī)、便攜式媒體播放器)或能夠顯示多媒體內(nèi)容的任何其他便攜式裝置,并且它們還可以通過任何適當(dāng)?shù)慕涌诙罱又辆W(wǎng)絡(luò)104。MFD 103將視頻內(nèi)容存儲(chǔ)在各種存儲(chǔ)裝置(包括HDD、SSD、RAM、非易失性存儲(chǔ)器等)中的內(nèi)部。MFD 103可以將視頻傳送至許多個(gè)客戶端同時(shí)對(duì)每個(gè)客戶端保持高水平的觀看體驗(yàn)。MFD 103通過測(cè)量客戶端的最后一英里的比特率變化,而自動(dòng)地適應(yīng)傳送至客戶端101的視頻的比特率。MFD向客戶端提供平滑的視頻觀看而沒有緩沖停頓。其確保了通過使用自適應(yīng)性比特率將漸進(jìn)視頻傳送至客戶端。MFD動(dòng)態(tài)地適應(yīng)視頻的比特率,以匹配有效的最后一英里帶寬,并適應(yīng)于改變客戶端的網(wǎng)絡(luò)條件。MFD可以動(dòng)態(tài)地測(cè)量到客戶端的最后一英里帶寬,以動(dòng)態(tài)地調(diào)節(jié)比特率??蛻舳瞬恍枰ㄖ频囊曨l內(nèi)容播放器來與MFD通信。MFD 支持工業(yè)標(biāo)準(zhǔn)視頻播放器,諸如 Flash、Quicktime、SilverLight, Windows Media Player 等。MFD 103對(duì)可以由消費(fèi)者以及MFD提供商所定義的視頻的存儲(chǔ)和傳送提供策略控制。MFD可以以各種方式配置在網(wǎng)絡(luò)104上,包括在邊緣高速緩存位置或原始服務(wù)器位置。 網(wǎng)絡(luò)104可以由在通信系統(tǒng)中的裝置之間提供數(shù)據(jù)交換的任何介質(zhì)或機(jī)制來實(shí)現(xiàn)。網(wǎng)絡(luò) 104的實(shí)施例包括但不限于諸如局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、以太網(wǎng)、內(nèi)聯(lián)網(wǎng)、因特網(wǎng)的網(wǎng)絡(luò),或者一個(gè)或多個(gè)陸地、衛(wèi)星或無線連接。MFD 103通過任何適當(dāng)?shù)耐ㄐ沤涌?例如,以太網(wǎng)或無線通信端口)而與網(wǎng)絡(luò)104 通信。可選地或附加地,連接至網(wǎng)絡(luò)104的任意數(shù)量的裝置還可以通過通信鏈路而彼此直接相連接。例如,當(dāng)客戶端101請(qǐng)求并未由MFD 103存儲(chǔ)在其存儲(chǔ)器中的URL內(nèi)容時(shí),MFD 103可以經(jīng)由網(wǎng)絡(luò)104或經(jīng)由局域網(wǎng)從原始服務(wù)器102請(qǐng)求內(nèi)容,以獲得URL內(nèi)容。另外, MFD 103可以經(jīng)由網(wǎng)絡(luò)104或經(jīng)由局域網(wǎng)與另一 MFD 105通信,以獲得URL內(nèi)容、MFD內(nèi)容信息、MFD狀態(tài)等。中心管理站106可以用來允許管理員設(shè)置用于MFD管理(例如,高速緩存管理、帶寬限制、內(nèi)容流行度確定等)的策略。中心管理站106還允許管理員管理將內(nèi)容存儲(chǔ)在MFD 內(nèi)的多個(gè)存儲(chǔ)裝置中的哪個(gè)地方以及如何存儲(chǔ)該內(nèi)容。中心管理站106可以經(jīng)由局域網(wǎng)通信,或經(jīng)由網(wǎng)絡(luò)104連接至MFD 103、105。管理員登錄中心管理系統(tǒng)106,并選擇管理員希望與其相互作用的一個(gè)MFD或一組MFD。管理員可以定義策略,并通過中心管理站106將策略發(fā)送至MFD或推送至多個(gè)MFD??蛇x地,MFD可以周期性地或者當(dāng)由中心管理站通知MFD 可利用更新時(shí)而接觸中心管理站106。2. 0結(jié)構(gòu)和功能概述2. 1網(wǎng)絡(luò)上的適應(yīng)性內(nèi)容傳送2. 1. 1媒體流導(dǎo)向器架構(gòu)圖2示出了說明被構(gòu)造成一個(gè)MFD以傳送視頻內(nèi)容的內(nèi)容傳送開關(guān)的架構(gòu)的可行實(shí)施方式。以下描述了該架構(gòu)中的部件。輸出協(xié)議引擎210輸出協(xié)議引擎210處理來自客戶端的請(qǐng)求??蛻舳讼騇FD發(fā)送請(qǐng)求,以與客戶端連接,例如,HTTP獲得對(duì)特定URL的請(qǐng)求,輸出協(xié)議引擎210被認(rèn)為是針對(duì)請(qǐng)求向服務(wù)器側(cè)播放器201傳遞URL內(nèi)容。服務(wù)器側(cè)播放器201服務(wù)器側(cè)播放器201主要負(fù)責(zé)每個(gè)視頻流的特定視頻邏輯的封裝和執(zhí)行。當(dāng)針對(duì)視頻流向MFD進(jìn)行請(qǐng)求時(shí),這種執(zhí)行可以出現(xiàn)在入站側(cè),或者,當(dāng)特定視頻流正前往用于傳送時(shí),這種執(zhí)行可以出現(xiàn)在出站側(cè)。服務(wù)器側(cè)播放器201解釋從輸出協(xié)議引擎210接收的URL,決定哪個(gè)比特率將用于所請(qǐng)求的視頻內(nèi)容,處理將發(fā)送什么視頻內(nèi)容,以及從哪里播放視頻(從視頻內(nèi)的哪個(gè)幀開始流動(dòng))。服務(wù)器側(cè)播放器201注意比特率,并知道其嘗試服務(wù)的視頻內(nèi)容的比特率。 其可以使用從最優(yōu)化網(wǎng)絡(luò)堆棧211獲得的信息,以找出哪個(gè)有效帶寬用于最后一英里中的客戶端。服務(wù)器側(cè)播放器201還可以批準(zhǔn)請(qǐng)求。在可行實(shí)施方式中,被嵌入U(xiǎn)RL中的查詢字符串的帶符號(hào)的散列關(guān)鍵字(hash key)用來驗(yàn)證請(qǐng)求已批準(zhǔn)。服務(wù)器側(cè)播放器201提供確定的比特率和服務(wù)質(zhì)量(QoQ特征。如果客戶端必須緩沖,則這意味著,MFD的傳送速率已經(jīng)落后,并且客戶端已經(jīng)歷沒有要播放或顯示的內(nèi)容的死周期。在一個(gè)可行實(shí)施方式中,服務(wù)器側(cè)播放器201計(jì)算已將多少數(shù)據(jù)發(fā)送至客戶端以及已經(jīng)過去了多長時(shí)間。服務(wù)器側(cè)播放器201跟蹤發(fā)送至每個(gè)客戶端的數(shù)據(jù)的量以及正發(fā)送到每個(gè)客戶端的視頻內(nèi)容的比特率。當(dāng)每個(gè)客戶端被發(fā)送一定量的數(shù)據(jù)時(shí),服務(wù)器側(cè)播放器201記錄所發(fā)送的數(shù)據(jù)的量以及自從發(fā)送最后量的數(shù)據(jù)開始已經(jīng)過去的時(shí)間的量。 可選地,服務(wù)器側(cè)201可以記錄發(fā)送至客戶端的數(shù)據(jù)的總量以及在客戶端的對(duì)話期間已過去的時(shí)間的總量。通過使用所記錄的信息,服務(wù)器側(cè)播放器201可以計(jì)算其在對(duì)特定客戶端的傳送上是否已落后。例如,如果服務(wù)器側(cè)播放器201已經(jīng)以一定的比特率向客戶端發(fā)送30秒的數(shù)據(jù),并且,自從最后的數(shù)據(jù)傳輸開始已經(jīng)過去了 31秒,則服務(wù)器側(cè)播放器201 知道其已經(jīng)落后。在另一可行實(shí)施方式中,服務(wù)器側(cè)播放器201計(jì)算其需要向客戶端傳送多少更多的數(shù)據(jù)以及必須在其中傳送數(shù)據(jù)以避免客戶端側(cè)上的緩沖的時(shí)間窗。該計(jì)算與之前的實(shí)施例稍微不同。服務(wù)器側(cè)播放器201知道視頻文件的大小,并由此可以計(jì)算保持被發(fā)送至客戶端的數(shù)據(jù)的量。給定視頻文件的比特率和總大小,服務(wù)器側(cè)播放器還可以計(jì)算其必須傳送剩余量的數(shù)據(jù)的時(shí)間的大小。服務(wù)器側(cè)播放器201可以計(jì)算針對(duì)其建立的一個(gè)任務(wù)所需設(shè)置的截止時(shí)間,以向客戶端傳送視頻文件的一個(gè)片段。MFD是基于任務(wù)的系統(tǒng),其可以使用基于截止時(shí)間的調(diào)度。為了避免客戶端緩沖, 服務(wù)器側(cè)播放器201在其建立的任務(wù)中設(shè)置截止時(shí)間。在可行的實(shí)施方式中,服務(wù)器側(cè)播放器201計(jì)算確定的流速(AFR)值(如下所述)。AFR是確保平滑的觀看體驗(yàn)所需的傳輸速度。服務(wù)器側(cè)播放器201使用AFR值來設(shè)置用于其建立的任務(wù)的截止時(shí)間,以從緩沖管理器203請(qǐng)求數(shù)據(jù)。服務(wù)器側(cè)播放器201計(jì)算AFR,并且輸出協(xié)議引擎210基于AFR來管理每個(gè)連接上的傳輸速度,并設(shè)置任務(wù)截止時(shí)間,使得可以滿足AFR。在以上實(shí)施例中,服務(wù)器側(cè)播放器201嘗試保持在AFR的前面,并且如果例如,服務(wù)器側(cè)播放器201已經(jīng)發(fā)送30秒的數(shù)據(jù)并且自從最后一次傳輸開始已經(jīng)過去了 30秒,就會(huì)知道其已經(jīng)落后,服務(wù)器側(cè)播放器201立即知道其已經(jīng)落后。在可選實(shí)施方式中,服務(wù)器側(cè)播放器201可以掃描媒體文件,以設(shè)置媒體文件的AFR。服務(wù)器側(cè)播放器 201知道,一定質(zhì)量或分辨率的媒體文件需要一定的傳輸速度,以確保客戶端將不會(huì)停止。服務(wù)器側(cè)播放器201還處理擦除請(qǐng)求(為了決定將來做什么)、自動(dòng)譯碼以及廣告插入。與不知道視頻文件格式或視頻內(nèi)容是什么的典型的文件服務(wù)器相反,服務(wù)器側(cè)播放器201是知道視頻的。當(dāng)服務(wù)器側(cè)播放器201在視頻已經(jīng)開始之后改變比特率時(shí),服務(wù)器側(cè)播放器201已經(jīng)知道相關(guān)聯(lián)的幀存在于不同比特率版本中的哪個(gè)地方,因此,服務(wù)器側(cè)播放器201可以輕松地改變比特率,而無需客戶端必須為了新比特率而發(fā)送不同的偏移量。一個(gè)可行實(shí)施方式以可被自動(dòng)譯碼成其所需要的任一比特率的定制格式來存儲(chǔ)視頻內(nèi)容。這使服務(wù)器側(cè)播放器201精確地知道相關(guān)聯(lián)的幀在哪里用于每個(gè)比特率自動(dòng)譯碼。另一可行實(shí)施方式對(duì)特定的視頻內(nèi)容存儲(chǔ)幾個(gè)不同的比特率版本。服務(wù)器側(cè)播放器201存儲(chǔ)每個(gè)比特率版本的索引表,因此,服務(wù)器側(cè)播放器201可以快速地查閱一個(gè)表以找到用于新比特率視頻的相關(guān)聯(lián)的幀。服務(wù)器側(cè)播放器201可以執(zhí)行在視頻流中插入廣告。廣告可以覆蓋地放在視頻流中。這使得廣告插入與客戶端播放器無關(guān)??梢詣?dòng)態(tài)地創(chuàng)建內(nèi)容,例如,可以快速地進(jìn)行副標(biāo)題語言選擇,并可以快速地覆蓋適當(dāng)?shù)母睒?biāo)題。服務(wù)器側(cè)播放器201可以將廣告拼接在視頻的中間部分中(被稱作中間加載)。服務(wù)器側(cè)播放器201還可以用另一信道重寫 (overwrite)視頻的語音信道,以提供多語言支持,而不用必須存儲(chǔ)不同版本的視頻內(nèi)容。在一個(gè)可行實(shí)施方式中,服務(wù)器側(cè)播放器201提供兩個(gè)接口,它們均由輸入?yún)f(xié)議引擎209中的HTTP協(xié)議引擎(HPE)接入。北向接口 其用作這樣的北向接口,其中,通過服務(wù)器側(cè)播放器201檢查由HPE解析的每個(gè)進(jìn)入請(qǐng)求,以通過其特定用戶邏輯來使請(qǐng)求生效。一旦檢查到請(qǐng)求并執(zhí)行必需的參數(shù),請(qǐng)求就被發(fā)回至HPE,使得其可以對(duì)緩沖管理器203(以及此后的其他提供商)針對(duì)內(nèi)容進(jìn)行有效的請(qǐng)求。南向接口 其用作這樣的南向接口,其中,將所有傳出數(shù)據(jù)發(fā)送至服務(wù)器側(cè)播放器 201以在傳送之前進(jìn)行檢查。這是最后一個(gè)位置,在該位置,服務(wù)器側(cè)播放器201可以在為了傳送而發(fā)出內(nèi)容之前執(zhí)行任何的限制。服務(wù)器側(cè)播放器201在該階段具有這樣的能力 在將由緩沖管理器203返回的數(shù)據(jù)緩沖發(fā)出之前如果需要,則可以對(duì)其進(jìn)行修改。圖7示出了 HPE和服務(wù)器側(cè)播放器201之間的工作流程的可行實(shí)施方式。執(zhí)行以下步驟
步驟1 在已經(jīng)建立連接之后,用戶請(qǐng)求通過最優(yōu)化網(wǎng)絡(luò)堆棧211而到達(dá)HPE 701。步驟2 =HPE 701進(jìn)行最小的解析,以得到查詢字符串和名稱/值對(duì)。步驟3 然后,HPE 701用查詢字符串啟動(dòng)對(duì)服務(wù)器側(cè)播放器201的調(diào)用。步驟3a 服務(wù)器側(cè)播放器201可以起到使與視頻無關(guān)的文件通過的作用,但是本質(zhì)上為安全存取文件等的除外,諸如由客戶端播放器請(qǐng)求的那些文件。步驟4:對(duì)于每個(gè)新連接的每個(gè)第一調(diào)用,服務(wù)器側(cè)播放器201將查詢字符串重新映射至指向元文件的內(nèi)部URL。該元文件存儲(chǔ)所存在的簡檔(profile)的數(shù)量、其速率、時(shí)間周期,以及視頻的其他信息。步驟5 服務(wù)器側(cè)播放器201將所重新映射的URL返回至HPE 701,并且還設(shè)置了這樣的標(biāo)記,其向HPE 701指出不在線上發(fā)送所返回的元文件,而是將被元文件返回至服務(wù)器側(cè)播放器201用于進(jìn)一步的處理。步驟6 =HPE 701建立任務(wù)以從高速緩存中讀取元文件。HPE 701接收元文件并使其返回至服務(wù)器側(cè)播放器201。步驟6a:服務(wù)器側(cè)播放器201將元文件中的信息存儲(chǔ)在用于該連接的套接字結(jié)構(gòu) (socket structure)中。元文件信息被存儲(chǔ)在高速緩存中作為該讀取的結(jié)果,以在未來快
速查看。步驟7 —旦元文件中的信息位于套接字結(jié)構(gòu)中,服務(wù)器側(cè)播放器201現(xiàn)在便可以用轉(zhuǎn)換邏輯插件704重新映射原始URL。轉(zhuǎn)換邏輯插件704(進(jìn)行尋找和速度適應(yīng))使用存在于套接字連接中的服務(wù)器側(cè)播放器201結(jié)構(gòu)中的信息,以進(jìn)行向不同簡檔/組塊的必需轉(zhuǎn)換。步驟8 服務(wù)器側(cè)播放器201返回所重新映射的URL,并在HPE 701中重新設(shè)置標(biāo)記,以表明其準(zhǔn)備好讀取并在線上發(fā)送從高速緩存檢索的數(shù)據(jù)。步驟9 將查詢字符串傳遞至服務(wù)器側(cè)播放器201。服務(wù)器側(cè)播放器201檢查其是否已位于套接字結(jié)構(gòu)中。步驟10 如果已位于其中和/或如果用于時(shí)間偏移的名稱/值對(duì)不是最小的(存在表示擦除或?qū)ふ业臅r(shí)間偏移或字節(jié)偏移),則服務(wù)器側(cè)播放器201調(diào)用轉(zhuǎn)換邏輯,以重新映射至適當(dāng)?shù)腢RL,并且,服務(wù)器側(cè)播放器201調(diào)用HPE 701,以讀取/傳遞數(shù)據(jù)。步驟11 如果查詢字符串中的名稱/值對(duì)是最小的(沒有表示擦除或?qū)ふ业臅r(shí)間偏移或字節(jié)偏移),那么從步驟4開始重復(fù)。調(diào)度器202調(diào)度器202使用由調(diào)用者設(shè)置的截止時(shí)間,以組織任務(wù)的調(diào)度??梢源嬖谡{(diào)度器 202管理的幾十萬個(gè)任務(wù)。調(diào)度器保持由截止時(shí)間組織的任務(wù)。調(diào)度器202監(jiān)控該任務(wù),以查看是否有哪個(gè)任務(wù)已經(jīng)錯(cuò)過其截止時(shí)間。這告訴調(diào)度器202MFD已經(jīng)落后。調(diào)度器向服務(wù)器側(cè)播放器201發(fā)送反饋,以告訴服務(wù)器側(cè)播放器傳送速度已經(jīng)落后。調(diào)度器202可以發(fā)送諸如錯(cuò)過截止時(shí)間的任務(wù)的任務(wù)ID和時(shí)間大小的信息。在一個(gè)可行實(shí)施方式中,如果調(diào)度器202確定其無法滿足所請(qǐng)求的任務(wù)的截止時(shí)間,則其可以拒絕接收用于新連接的任務(wù)。這是確保沒有過度提交(Over-COmmit)MFD資源并且現(xiàn)有連接平滑地播放的許可控制的部件。類似地,執(zhí)行任務(wù)的所有部件(例如,緩沖管理器、磁盤管理器和原始管理器)可以查看其內(nèi)部資源承諾,并使新連接的第一任務(wù)無法式。服務(wù)器側(cè)播放器201可以識(shí)別哪些任務(wù)與每個(gè)客戶端相關(guān)聯(lián)。其可以通過使用上述計(jì)算而計(jì)算其有多晚向客戶端傳送視頻內(nèi)容,并相應(yīng)地調(diào)節(jié)后續(xù)任務(wù)的截止時(shí)間。然后, 服務(wù)器側(cè)播放器201可以停止接收新連接。在一個(gè)可行實(shí)施方式中,服務(wù)器側(cè)播放器201可以基于策略設(shè)置而降低一些現(xiàn)有連接的比特率,以接收另外的連接。這些方法使服務(wù)器側(cè)播放器201動(dòng)態(tài)地測(cè)量其性能,因此,其不需要對(duì)客戶端連接的數(shù)目設(shè)置靜態(tài)的上限。假設(shè)服務(wù)器側(cè)播放器處理很多不同的比特率,則連接數(shù)目的固定上限不代表MFD的實(shí)際容量, 因此,動(dòng)態(tài)上限可以更有效,并允許MFD自己決定其是否可以處理更多或更少的連接。一個(gè)可行的實(shí)施方式執(zhí)行截止時(shí)間調(diào)度,其中,每個(gè)任務(wù)狀態(tài)可以具有多個(gè)截止時(shí)間隊(duì)列。每個(gè)截止時(shí)間隊(duì)列可以與固定的時(shí)間周期(例如,Ι/lOms組塊)相對(duì)應(yīng)。調(diào)度器202可以使具有最短截止時(shí)間的隊(duì)列退棧。任務(wù)處理器在起始時(shí)間通過調(diào)度器202而被預(yù)先記錄。它們始終是不阻塞的。阻塞處理器為另一組線程并在下面進(jìn)行了描述。在一個(gè)可行實(shí)施方式中,任何任務(wù)切換均不包括線程上下文切換。向線程池放出阻塞任務(wù)。無論何時(shí)存在待完成的任務(wù),來自線程池的一個(gè)線程都將服務(wù)該任務(wù)。在這一點(diǎn)上,調(diào)度器202已經(jīng)推開阻塞任務(wù)。因此,將不阻止其他任務(wù)。調(diào)度器以WRR(加權(quán)輪詢)方式檢查相關(guān)的隊(duì)列(狀態(tài)/截止時(shí)間隊(duì)列)。其通過調(diào)用預(yù)先記錄的任務(wù)處理器來分派任務(wù)。調(diào)度器202通過保持跟蹤過去的時(shí)間并使相關(guān)隊(duì)列退棧,來根據(jù)截止時(shí)間進(jìn)行調(diào)度。截止時(shí)間調(diào)度不是嚴(yán)格的實(shí)時(shí)。截止時(shí)間是對(duì)調(diào)度器 202的建議,即,在另一個(gè)任務(wù)之前需要對(duì)特定任務(wù)進(jìn)行調(diào)度。調(diào)度器202使得能夠進(jìn)行不同類型的線程。這些線程為任務(wù)線程、I/O線程、事件線程和網(wǎng)絡(luò)線程。這些列舉的線程并不限制可以執(zhí)行的線程的數(shù)量和類型。任務(wù)線程為任務(wù)執(zhí)行的主要引擎。調(diào)度器202為開始例程。其基于優(yōu)先管理來執(zhí)行分派查看。當(dāng)沒有任務(wù)運(yùn)行時(shí),這些線程阻塞。I/O線程用來執(zhí)行阻塞線程(例如,磁盤管理器206中的磁盤I/O)。它們可以對(duì)讀/寫調(diào)用進(jìn)行阻塞。事件線程為異步的,并將網(wǎng)絡(luò)事件映射至任務(wù)狀態(tài)變化。網(wǎng)絡(luò)線程執(zhí)行用戶空間網(wǎng)絡(luò)堆棧,并通常不會(huì)阻塞讀取。專用線程用于AFR的定時(shí)器的定標(biāo)和管理。 可選地,可以通過使用調(diào)度器線程上的任務(wù)來執(zhí)行網(wǎng)絡(luò)活動(dòng)。磁盤管理器206磁盤管理器206管理分布在多個(gè)磁盤驅(qū)動(dòng)器上的對(duì)象,而不管大小、數(shù)量和類型如何。還參考圖8a,磁盤管理器206從策略模塊801 (PM)和分析模塊802 (AM)獲得關(guān)于對(duì)象位置的提示。媒體管理器204可以與PM 801相互作用,以幫助其決定如何將視頻分配到片段中,并且還確定何時(shí)判斷視頻的一部分是熱門的(如下所述)。媒體管理器204還可以與AM 802相互作用。AM 802基于統(tǒng)計(jì)信息來確定哪些視頻部分是熱門的,這些統(tǒng)計(jì)信息覆蓋了由媒體管理器204所提供的視頻部分點(diǎn)擊。存儲(chǔ)在磁盤管理器206中的對(duì)象最可能是相關(guān)的視頻,但也可以是任何視頻。由于視頻對(duì)象以連續(xù)的方式被消費(fèi),所以對(duì)象的磁盤布局特別適合于視頻對(duì)象。對(duì)于較小的對(duì)象,磁盤管理器206執(zhí)行特殊的壓縮,因此,許多連續(xù)的小對(duì)象可以以時(shí)序的順序而被緊密地壓縮在一起。在小對(duì)象是較大的視頻在時(shí)序中的大塊部分時(shí),這是非常適用的。該壓縮使磁盤管理器206將磁盤驅(qū)動(dòng)器的讀取性能最優(yōu)化,因?yàn)槠渥x取少量數(shù)據(jù)所花費(fèi)的時(shí)間大約與其讀取1MB至2MB數(shù)據(jù)所花費(fèi)的時(shí)間相同。在另一實(shí)施方式中,磁盤管理器206可以使能多種用于壓縮對(duì)象的策略。除了基于時(shí)間的位置以外,磁盤管理器還可以支持基于名稱結(jié)構(gòu)或其他定制方案內(nèi)的位置的壓縮。還參考圖8c,磁盤管理器206可以使用反向塊映射(RBM)805,以始終如一地讀取大塊806 (甚至在存在小對(duì)象時(shí))。塊大小被設(shè)置為允許從磁盤驅(qū)動(dòng)器有效地讀取的特定大小,例如,1MB、2MB等。對(duì)于每個(gè)塊,磁盤管理器206保持RBM 805中的一列范圍,其中,每個(gè)范圍為對(duì)象的相鄰部分。在該實(shí)施例中,RBM 805列出具有相關(guān)范圍807至812的塊806。 注意,對(duì)于較小的對(duì)象,多個(gè)小對(duì)象本身或較小對(duì)象的一部分可以適合于一個(gè)塊,并且它們可以一起被讀入高速緩沖存儲(chǔ)器。當(dāng)磁盤管理器206接收用于對(duì)象的特定部分的請(qǐng)求時(shí), 其將這個(gè)塊定位在特定部分所在的位置。然后,其將整個(gè)塊讀入由緩沖管理器203提供的高速緩沖存儲(chǔ)器813中。使用RBM 805,磁盤管理器206能夠?qū)⒄_身份(UOL)分配給每個(gè)緩沖器(如下所述)。這允許緩沖管理器203隨后消耗額外的數(shù)據(jù),而不進(jìn)行任何附加的10。在實(shí)施方式中,磁盤管理器206針對(duì)存儲(chǔ)在MDF中的所有對(duì)象而在RBM中建立入口。 當(dāng)從原始服務(wù)器加載一個(gè)對(duì)象時(shí),磁盤管理器206可以針對(duì)該對(duì)象而在RBM中建立入口。磁盤管理器206解決了許多類型的磁盤控制器和磁盤驅(qū)動(dòng)器,包括SATA、SAS、SSD 和閃存。每個(gè)驅(qū)動(dòng)器類型具有不同的大小和性能特征。如此,磁盤管理器206將改變每個(gè)驅(qū)動(dòng)器類型的數(shù)據(jù)布局,以使能磁盤空間的最佳性能和利用。為了自調(diào)節(jié)驅(qū)動(dòng)器類型和控制器的變化,磁盤管理器206在啟動(dòng)時(shí)執(zhí)行簡短的帶寬測(cè)試,因此,磁盤管理器可以對(duì)其在開放硬件框架內(nèi)看到的大量配置進(jìn)行分類。管理員可以配置磁盤管理器206,以將來自原始服務(wù)器的內(nèi)容存儲(chǔ)在硬盤驅(qū)動(dòng)器上或存儲(chǔ)在高速緩存中。管理員可以指定在磁盤管理器206將內(nèi)容存儲(chǔ)在硬盤驅(qū)動(dòng)器或高速緩存上之前,磁盤管理器206將內(nèi)容存儲(chǔ)在第一命中(hit)上或任何特定數(shù)量的命中上。這允許管理員關(guān)于任何已知或可預(yù)測(cè)的需求而靈活地調(diào)節(jié)所高速緩存的內(nèi)容。可選地,可以由內(nèi)部分析來驅(qū)動(dòng)磁盤管理器206如何存儲(chǔ)內(nèi)容。由于例如管理員知道節(jié)目的新情節(jié)將是有需求的,所以管理員可以命令磁盤管理器206將特定的新內(nèi)容存儲(chǔ)在硬盤驅(qū)動(dòng)器上。通過磁盤管理器206執(zhí)行逐出策略(eviction policy)??梢詫?nèi)容從硬盤驅(qū)動(dòng)器或高速緩存去除,以基于由管理員或用戶定義的逐出策略而為新內(nèi)容騰出空間。在一個(gè)可行實(shí)施方式中,可以基于分析算法(例如,使用最近使用的(LRU)算法或其衍生算法) 而內(nèi)部地獲得逐出策略。用戶可以在MFD中安裝足夠大的存儲(chǔ)容量,使得可以不再通過用戶的內(nèi)容來填充存儲(chǔ)空間。為了實(shí)現(xiàn)該目標(biāo),用戶可以期望使其內(nèi)容在硬盤驅(qū)動(dòng)器的最快區(qū)域中,并稀疏地位于硬盤驅(qū)動(dòng)器中。然后,用戶可以具有一組專用于其最熱門的內(nèi)容的 MFD (具有稀疏地填充的硬盤驅(qū)動(dòng)器),并具有高速緩存其不太流行的內(nèi)容的另一組MFD。管理員可以指定MFD上的某些硬盤驅(qū)動(dòng)器保持由稀疏地用最熱門的內(nèi)容來填充,而MFD上的其他硬盤驅(qū)動(dòng)器用于所有其他的內(nèi)容。這允許用戶執(zhí)行特定MFD的有效存儲(chǔ)方案。還參考圖8b,磁盤管理器206將每個(gè)裝置對(duì)待為獨(dú)立的高速緩存模塊。與文件系統(tǒng)類似,每個(gè)裝置上的元數(shù)據(jù)和數(shù)據(jù)包括分開的且獨(dú)立的存儲(chǔ)。然而,與傳統(tǒng)的文件系統(tǒng)不同,命名層級(jí)在所有模塊上是公共的,其中,將給定的名稱與邏輯設(shè)備(文件系統(tǒng))綁定。例
13如,如果將傳統(tǒng)的文件系統(tǒng)安裝在/a/b/c,則該目錄下的所有對(duì)象將位于該文件系統(tǒng)中。相反,磁盤管理器 206 能夠?qū)?/a/b/c/one. gif、/a/b/c/two. gif、以及 /a/b/c/three. gif 存儲(chǔ)在高速緩存裝置803a、803b、803c中的任一個(gè)中,并且其進(jìn)行管理。在初始放置(以及對(duì)負(fù)載平衡重新定位)的過程中,磁盤管理器206在其基于每個(gè)裝置而保持的使用統(tǒng)計(jì)的基礎(chǔ)上選擇裝置來存儲(chǔ)對(duì)象。在查找(以服務(wù)STAT任務(wù))的過程中,磁盤管理器206確定哪些裝置具有對(duì)象,并再次基于使用統(tǒng)計(jì)選擇一個(gè)裝置。這允許放置對(duì)象或其一部分,并由與其名稱無關(guān)的任何高速緩存模塊服務(wù)。磁盤管理器206能夠通過在使用統(tǒng)計(jì)的基礎(chǔ)上放置對(duì)象(并動(dòng)態(tài)地將其重新定位),而從每個(gè)裝置中將帶寬最優(yōu)化。在一個(gè)實(shí)施方式中,磁盤管理器206在每個(gè)裝置的讀寫吞吐量方面保持跟蹤每個(gè)裝置流量。在初始放置和重新定位的過程中,其選擇具有最少量流量的裝置。在另一實(shí)施方式中,其使用隊(duì)列深度(重要請(qǐng)求的數(shù)量)和平均等待時(shí)間作為流量的測(cè)量。靈活的放置導(dǎo)致了在高速緩存裝置之間的線性定標(biāo)。在一個(gè)實(shí)施方式中,磁盤管理器206針對(duì)每個(gè)高速緩存裝置803a、803b、803c將詞典804a、804b、8(Mc高速緩存在RAM中。詞典804a、804b、8(Mc由存儲(chǔ)在該裝置803a、803b、 803c中的對(duì)象的樹與關(guān)于對(duì)象的少量元數(shù)據(jù)一起組成。這允許磁盤管理器206非常有效地回答STAT查詢,而不會(huì)導(dǎo)致任何磁盤10。磁盤管理器206提供簡單的故障恢復(fù)模型。單個(gè)高速緩存裝置的故障僅導(dǎo)致包含在該高速緩存裝置中的對(duì)象遺失。其對(duì)其他高速緩存裝置的性能沒有影響。有故障的高速緩存裝置可以被替換(在線,針對(duì)支持熱交換的硬件系統(tǒng))并被重新配置為新的高速緩存模塊。在一個(gè)實(shí)施方式中,磁盤管理器206還可以選擇性地復(fù)制多個(gè)高速緩存裝置中的對(duì)象,以得到更好的故障恢復(fù)和性能。在一個(gè)實(shí)施方式中,關(guān)于視頻的所有信息均自包含在每個(gè)驅(qū)動(dòng)器內(nèi),使得可以在 MFD之間移動(dòng)驅(qū)動(dòng)器。隨著時(shí)間的過去,磁盤管理器206詢問分析模塊802,以在驅(qū)動(dòng)器之間自動(dòng)地移動(dòng)整部電影或剪輯,和/或?qū)⑵湟苿?dòng)至SAS磁盤803的驅(qū)動(dòng)器中的內(nèi)部或外部軌道。磁盤管理器206提供媒體管理器204所必需的數(shù)據(jù),以使高速緩存層級(jí)內(nèi)的各層之間的對(duì)象升級(jí)和降級(jí)。內(nèi)容的初始放置可以取決于來自分析模塊802和/或策略模塊801 的數(shù)據(jù)。磁盤管理器206選擇將讀取性能最優(yōu)化的數(shù)據(jù)布局,甚至針對(duì)小對(duì)象。磁盤管理器206可以避免影響大多數(shù)文件系統(tǒng)的性能的存儲(chǔ)殘片問題。無論什么時(shí)候已在該塊中釋放可配置的空間量,其都通過回收全部塊來這樣做。例如,如果用64個(gè) 32KB的對(duì)象填充2MB的塊,并且刪除一半的對(duì)象(例如,基于逐出),則磁盤管理器206便可以釋放整個(gè)塊。通過磁盤管理器206使用RBM以邏輯上刪除或重新定位剩余的對(duì)象。視頻信息可以包括壓縮/未壓縮的視頻數(shù)據(jù)、應(yīng)用所需的視頻屬性(標(biāo)題信息),以及幫助內(nèi)部操作所需的視頻屬性(高速緩存期滿、高速緩存起始時(shí)間)。當(dāng)去除和增加驅(qū)動(dòng)器時(shí),磁盤管理器206重新調(diào)節(jié)高速緩存內(nèi)容。其還適度地處理來自物理介質(zhì)的運(yùn)行時(shí)間誤差。在同一系統(tǒng)上一起支持SAS、SATA、SSD和閃存驅(qū)動(dòng)器。磁盤管理器206允許多個(gè)驅(qū)動(dòng)器高水平地并行。一個(gè)可行實(shí)施方式允許用介質(zhì)預(yù)先加載高速緩存,可服務(wù)該介質(zhì)直到特定的日期和/或時(shí)間為止。智能高速緩存硬盤驅(qū)動(dòng)器作為高速緩存而操作得不好,當(dāng)硬盤驅(qū)動(dòng)器被用作高速緩存并且其正高速緩存幾百、幾千或甚至幾萬個(gè)視頻時(shí),最終結(jié)果是隨機(jī)輸入/輸出(IO)圖案。MFD將有意思的內(nèi)容放在硬盤驅(qū)動(dòng)器的相同區(qū)域中,因此,MFD可以執(zhí)行大讀取以補(bǔ)償帶寬,例如, 對(duì)于低帶寬連接,MFD在一次讀取中可以讀取30秒的視頻,并將其存儲(chǔ)在RAM或SSD中的高速緩存中(或根據(jù)所服務(wù)的連接的數(shù)量以及這些連接的帶寬考慮,而在硬盤驅(qū)動(dòng)器上緩沖)。這使得對(duì)客戶端傳送該高速緩存,并且客戶端在30秒的時(shí)間內(nèi)不需要其下一次10。 SSD用于更頻繁地存取的內(nèi)容,或用于需要不能有效地從硬盤驅(qū)動(dòng)器服務(wù)的更小的隨機(jī)IO 的內(nèi)容。流行度索引用于一部分內(nèi)容,以確定一個(gè)部分是否是熱門的。對(duì)于視頻,人們可能不觀看整個(gè)視頻,并且視頻的某些部分可能比其他部分更熱門,因此高速緩存最熱門的內(nèi)容部分。這使得MFD在其高速緩存時(shí)更智能。例如,MFD不用必須高速緩存整個(gè)視頻流。 MFD動(dòng)態(tài)地計(jì)算內(nèi)容部分的流行度。參考圖3,當(dāng)MFD測(cè)量視頻流的存取時(shí),動(dòng)態(tài)地確定視頻的熱門部分的邊界。在一個(gè)可行實(shí)施方式中,服務(wù)器側(cè)播放器201使用邏輯組塊方法來動(dòng)態(tài)地確定哪部分是視頻的熱門部分。例如,服務(wù)器側(cè)播放器201可以使用幀標(biāo)識(shí)符,諸如嵌入在視頻幀中的時(shí)間標(biāo)簽或存儲(chǔ)器地址位置中??梢酝ㄟ^服務(wù)器側(cè)播放器201利用針對(duì)視頻流所創(chuàng)建的偏移量的表格來獲得幀標(biāo)識(shí)符。偏移量的表格可以由系統(tǒng)在接收視頻流時(shí)創(chuàng)建,或者可以由內(nèi)容提供商創(chuàng)建,內(nèi)容提供商在接收視頻流時(shí)被加載至系統(tǒng)中。對(duì)于不同比特率的視頻流,可以存儲(chǔ)多個(gè)表格。服務(wù)器側(cè)播放器201可以確定覆蓋視頻流的觀看最多的幀的視頻流的一部分或邊界,并將視頻流的熱門部分放入一個(gè)高速緩存(硬盤驅(qū)動(dòng)器、SSD或RAM)中。在一個(gè)可行實(shí)施方式中,分析模塊監(jiān)控視頻1,301、視頻2 302、視頻3,303及視頻4 404。其發(fā)現(xiàn), 存在比該視頻的其他部分或利用客戶端系統(tǒng)的其他視頻更頻繁地觀看的視頻的片段。將視頻305、306、307、308的這些部分存儲(chǔ)在高速緩存309中。高速緩存309可以為任何高速緩存,RAM高速緩存、SSD高速緩存,或硬盤驅(qū)動(dòng)器高速緩存,或它們的任何組合。在一個(gè)可行實(shí)施方式中,服務(wù)器側(cè)播放器201支持所存儲(chǔ)的視頻流的將視頻流劃分成小文件并確定哪個(gè)文件流行的物理組塊。物理組塊將視頻分成客戶端播放器可看得到的小命名組塊?;跁r(shí)間的存取模式用來確定哪些視頻(例如,與主題相關(guān)的新聞項(xiàng)或與內(nèi)容相關(guān)的視頻)趨向于一起觀看,并且磁盤管理器206將視頻的熱門部分重新定位在硬盤驅(qū)動(dòng)器高速緩存、SSD高速緩存或RAM高速緩存中的相同區(qū)域中,從而增加高速緩存命中并允許更快的存取時(shí)間。RAM高速緩存與緩沖管理器203相結(jié)合。其使用分析和/或策略來管理RAM高速緩存并選擇逐出候選者。當(dāng)服務(wù)器側(cè)播放器201找到每個(gè)熱門視頻部分時(shí),緩沖管理器203 確定已經(jīng)存儲(chǔ)在高速緩存中的熱門部分哪些不再被確定為是熱門的。緩沖管理器203從高速緩存中去除不再熱門的部分,以為新的熱門部分騰出空間。這由緩沖管理器203基于從存取模式獲得的內(nèi)部分析來完成。在一個(gè)實(shí)施方式中,緩沖管理器203保持所有不活躍使用的緩沖器按逐出順序組織。排序考慮以下因素,例如,緩沖器存取的次數(shù)、存取的時(shí)間頻率以及增加/減小的使用速度。緩沖管理器203可以使用主存儲(chǔ)器(RAM)作為用于高比特率視頻的高速緩存,并使用SSD存儲(chǔ)器用于低比特率視頻。這允許MFD更有效地使用主存儲(chǔ)器。
媒體管理器204管理高速緩存層級(jí)(例如,SSD、硬盤、同位體)。其查看分析和/ 或策略,以確定何時(shí)升級(jí)、降級(jí)或逐出高速緩存內(nèi)容。媒體管理器204啟動(dòng)分級(jí)的高速緩存管理(包括高速緩存升級(jí)和降級(jí)動(dòng)作)。每個(gè)元素在高速緩存層級(jí)中的執(zhí)行叫做高速緩存提供商。動(dòng)態(tài)地記錄提供商,并基于其記錄的特性(例如,帶寬、等待時(shí)間、容量等)將提供商匯編在層級(jí)中。存在兩類提供商高速緩存提供商,其是對(duì)支持讀寫的系統(tǒng)的本地高速緩存;以及原始提供商,其是提供原始內(nèi)容并且是只讀的網(wǎng)絡(luò)源。高速緩存遷移的單元可以包含邏輯組塊邊界,或者在一些情況中,純粹從裝置等級(jí)塊管理中獲得。例如在HDD中,可以將流行的塊(其可以包含多個(gè)視頻的一部分)升級(jí)至SSD或升級(jí)至HDD的外部軌道。元數(shù)據(jù)描述了將媒體存儲(chǔ)在磁盤中的什么地方。大多數(shù)操作系統(tǒng)高速緩存與文件相關(guān)的信息。該信息被叫做信息節(jié)點(diǎn)。信息節(jié)點(diǎn)高速緩存可以支持很多信息節(jié)點(diǎn),典型地, 為百萬的數(shù)量級(jí)。該高速緩存將消耗MFD可以使用的之前的存儲(chǔ)器,以高速緩存媒體數(shù)據(jù)。 MFD具有告訴媒體數(shù)據(jù)的各種片段存儲(chǔ)在磁盤的原始分區(qū)內(nèi)的什么地方的信息。該信息落入元數(shù)據(jù),并且其被稱作“范圍”。支持大媒體對(duì)象的每個(gè)磁盤塊可以具有單個(gè)范圍以查閱該數(shù)據(jù)。當(dāng)磁盤塊支持多個(gè)小對(duì)象時(shí),每個(gè)小對(duì)象均具有不同的范圍以對(duì)其進(jìn)行描述。為了減小在一些系統(tǒng)中難以控制的信息節(jié)點(diǎn)高速緩存空間,將元數(shù)據(jù)(包括范圍)壓縮成被稱作容器的單個(gè)信息節(jié)點(diǎn)/文件。每個(gè)容器均支持用于一組公共的對(duì)象的范圍。因?yàn)閷?duì)象是公共的,所以MFD會(huì)正常讀取用于這些對(duì)象的元數(shù)據(jù)。在一個(gè)可行實(shí)施方式中,MFD產(chǎn)生動(dòng)態(tài)磁盤層級(jí),其允許MFD確定磁盤在MFD內(nèi)的帶寬。磁盤管理器206確定哪些驅(qū)動(dòng)器可能是高速緩存目標(biāo)。其運(yùn)行簡短的測(cè)試,以根據(jù)磁盤帶寬將每個(gè)驅(qū)動(dòng)器進(jìn)行分類。這樣做是因?yàn)橄嗤愋偷尿?qū)動(dòng)器可以根據(jù)哪個(gè)磁盤控制器在其前面而看到不同的性能數(shù)。通過運(yùn)行磁盤測(cè)試,磁盤管理器206不需要在各種驅(qū)動(dòng)器類型之間進(jìn)行區(qū)分,或找出每個(gè)磁盤控制器可以傳遞什么性能。驅(qū)動(dòng)器/控制器帶寬組合將這一對(duì)放在由工廠或由管理員設(shè)置的一些類別內(nèi)。典型地,存在預(yù)置數(shù)目的類別。在一個(gè)可行實(shí)施方式中,MFD創(chuàng)建磁盤高速緩存層級(jí)。高速緩存層級(jí)的每個(gè)級(jí)別均包含一組對(duì)象。在訪問次數(shù)方面接近最高值的對(duì)象是移入下一個(gè)最快層級(jí)中的良好候選者,從而使得能夠降低所有對(duì)象的總訪問次數(shù)時(shí)間。可以使用帶寬利用情況和空間利用情況來確定對(duì)象從較低等級(jí)到較高等級(jí)的移動(dòng),以確定何時(shí)適于移動(dòng)對(duì)象。在訪問次數(shù)方面接近最低值的對(duì)象是移入下一個(gè)最慢層級(jí)中的良好候選者,以為較高的訪問計(jì)數(shù)的對(duì)象釋放空間。MFD嘗試將用于最高等級(jí)的可用帶寬最大化至最低等級(jí)。例如,定義三個(gè)等級(jí)A、 B和C,其中,A是最快的高速緩存。如果A不完整,則將B中的最高存取的對(duì)象升級(jí)至A是有意義的。這將騰出更多空間,以將對(duì)象從C升級(jí)至B。如果B中的某些對(duì)象訪問得沒有C 中的對(duì)象那么頻繁,則通過將B中訪問最少的對(duì)象從B移入C而使其降級(jí)并將C中訪問最多的對(duì)象升級(jí)至B中是有意義的。該移動(dòng)過程被叫做“升級(jí)”和“降級(jí)”。每個(gè)磁盤驅(qū)動(dòng)器的外部的10%至15%可以傳遞比整個(gè)裝置的隨機(jī)性能好15%至 20%的性能。一個(gè)可行實(shí)施方式可以開拓(carve out)驅(qū)動(dòng)器的外部,并將媒體對(duì)象的最熱門部分移至該區(qū)域。緩沖管理器203緩沖管理器203在MFD內(nèi)提供原始數(shù)據(jù)路徑。經(jīng)由緩沖器發(fā)送由MFD服務(wù)的所有內(nèi)容。緩沖器用于在出站網(wǎng)絡(luò)(outbound network)與高速緩存提供商之間以及在其與RAM高速緩存之間進(jìn)行速度匹配(緩沖)。后者是高速緩存層級(jí)中的(隱含的)第一等級(jí)。當(dāng)所請(qǐng)求的內(nèi)容在高速緩存中得不到時(shí),緩沖管理器203使用媒體管理器204的服務(wù)來檢索該數(shù)據(jù),并且如果可能的話,為了后續(xù)請(qǐng)求而將其高速緩存。緩沖管理器203從HPE創(chuàng)建的任務(wù)中接收對(duì)內(nèi)容的請(qǐng)求。緩沖管理器203取來內(nèi)容。給定URL和從那里播放的偏移量,緩沖管理器將提供內(nèi)容。緩沖管理器203從媒體管理器204中檢索內(nèi)容。緩沖管理器204創(chuàng)建任務(wù),以檢索在偏移開始時(shí)的一部分視頻內(nèi)容。 媒體管理器204從硬盤驅(qū)動(dòng)器或SSD檢索內(nèi)容。緩沖管理器203可以檢查所請(qǐng)求的內(nèi)容是否與存儲(chǔ)在主存儲(chǔ)器高速緩存(RAM)中的任何內(nèi)容匹配。RAM高速緩存由多個(gè)緩沖器組成。 可以根據(jù)高速緩存來直接服務(wù)一個(gè)命中,而不用任何進(jìn)一步的復(fù)制??梢酝ㄟ^使用媒體管理器204填充新的緩沖器來服務(wù)一個(gè)未命中,以將內(nèi)容重新定位在存儲(chǔ)中。緩沖管理器203 將指針傳遞至包含給輸出協(xié)議引擎210(將視頻內(nèi)容的一部分流動(dòng)至客戶端)的視頻內(nèi)容的一部分的緩沖器。緩沖管理器203有效地管理大量存儲(chǔ)器。其具有在服務(wù)相同內(nèi)容的連接之間共享緩沖器的能力。緩沖管理器203還具有從MFD中的使用模式獲得的有效的再使用方案。緩沖管理器203基于在使用計(jì)數(shù)和壽命基礎(chǔ)上計(jì)算的成本函數(shù)來處理緩沖器逐出。較高的使用計(jì)數(shù)導(dǎo)致了較高的成本,而壽命用作成本上的衰減函數(shù),例如,較老的緩沖器具有較老的成本。逐出算法嘗試大概找出在非常有效地操作(恒定時(shí)間)的同時(shí)具有最低成本的緩沖器。將可以逐出的緩沖器(具有零參考計(jì)數(shù))插在LRU列表的尾部。通過緩沖器的使用計(jì)數(shù)而對(duì)列表進(jìn)行排序。通過時(shí)間戳而對(duì)每個(gè)LRU列表有效地進(jìn)行排序。將不在高速緩存中的緩沖器(例如,到期的、被清除的)放在具有零時(shí)間戳的最低LRU列表的最前頭上。在逐出的過程中,對(duì)每個(gè)LRU列表的最前頭計(jì)算成本,并且逐出最低成本的緩沖
ο每個(gè)對(duì)象(URI)具有為屬性的一部分的期滿時(shí)間。在訪問緩沖器高速緩存時(shí),相對(duì)于當(dāng)前時(shí)間檢查期滿時(shí)間。如果到期,則從高速緩存中去除與對(duì)象相關(guān)的所有緩沖器和屬性。當(dāng)參考計(jì)數(shù)變?yōu)榱銜r(shí),將緩沖器放在LRU列表上。在期滿時(shí)間之前的時(shí)間窗(其可由管理員或用戶配置)的過程中,可以用原始服務(wù)器使對(duì)象重新生效。參考圖9,在一個(gè)可行實(shí)施方式中,緩沖管理器203管理緩沖池904??捎糜跀?shù)據(jù)的存儲(chǔ)器被靜態(tài)地分成固定大小頁面的陣列。每個(gè)頁面具有相應(yīng)的緩沖器結(jié)構(gòu),以壓縮與緩沖器相關(guān)聯(lián)的元數(shù)據(jù)。還從陣列中靜態(tài)地分配緩沖器結(jié)構(gòu)。每個(gè)緩沖器可以經(jīng)由緩沖器高速緩存和自由列表而鏈接。元數(shù)據(jù)的部分元素是身份。緩沖器的身份。數(shù)據(jù)緩沖器具有由U0L(URI、偏移量和長度)組成的ID。屬性緩沖器僅具有URI的ID。參考計(jì)數(shù)。緩沖器的使用中的用戶的數(shù)量。使用計(jì)數(shù)。緩沖器已經(jīng)使用的次數(shù)。這是緩沖器“流行度”的基本測(cè)量標(biāo)準(zhǔn)。時(shí)間戳。將緩沖器放在LRU列表上的時(shí)間(即,參考計(jì)數(shù)為零)。緩沖管理器203管理緩沖器高速緩存。針對(duì)具有身份且可與其他連接共享的所有緩沖器,保持使用UOL作為鍵碼的哈希映射。一個(gè)可行實(shí)施方式支持用于緩沖器的非高速緩存模式,由此,緩沖器具有身份但不可以共享。
與相同對(duì)象(URI)相關(guān)的數(shù)據(jù)緩沖器通過植根在相應(yīng)的屬性緩沖器中的列表將而鏈接在一起。這允許快速地應(yīng)用屬于整個(gè)對(duì)象的動(dòng)作(例如,高速緩存到期和對(duì)象清除)。自由表也由緩沖管理器203保持。所有緩沖器(包括那些具有身份的緩沖器,其具有零參考計(jì)數(shù))均在該列表上。這允許根據(jù)需要有效地逐出緩沖器。該列表可以由利用緩沖器的使用計(jì)數(shù)所排序的多個(gè)列表組成。每個(gè)GET任務(wù)在用來保持其緩沖器的列表以進(jìn)行參考計(jì)數(shù)的高速緩存請(qǐng)求專用數(shù)據(jù)905中分配一些私人數(shù)據(jù)。其還用來與下層的媒體請(qǐng)求連接。高速緩存請(qǐng)求處理器 902管理高速緩存請(qǐng)求私人數(shù)據(jù)905,并處理GET任務(wù)請(qǐng)求。媒體請(qǐng)求處理器903對(duì)發(fā)送至媒體管理器204的每個(gè)媒體GET任務(wù)獲取進(jìn)入/出去的自變量。媒體請(qǐng)求對(duì)象鏈接在媒體請(qǐng)求表906中,使得可以使對(duì)相同或共同存儲(chǔ)的對(duì)象的多個(gè)請(qǐng)求同步。參考圖10a,緩沖管理器203和媒體管理器204之間的接口(其實(shí)現(xiàn)高速緩存層級(jí))具有獨(dú)特的特性,該特性使得能夠?qū)崿F(xiàn)高性能高速緩存系統(tǒng)。通過使用STAT任務(wù)(其作用就像是投標(biāo)系統(tǒng))來實(shí)現(xiàn)提供數(shù)據(jù)的裝置的選擇。高速緩存層級(jí)中的每一層(例如,固態(tài)器件(SSD)管理器205、磁盤管理器206,以及原始管理器207)可以依次響應(yīng)于用于服務(wù)請(qǐng)求的投標(biāo)(bid)。投標(biāo)包括告訴緩沖管理器203分配緩沖器的必需設(shè)置的“塊大小”。然后,緩沖管理器203將GET請(qǐng)求向下發(fā)送至贏得投標(biāo)的特定高速緩存提供商。將請(qǐng)求和響應(yīng)在邏輯上去耦合。提供商用內(nèi)容來填充所提供的緩沖器,并針對(duì)每個(gè)緩沖器設(shè)置適當(dāng)?shù)纳矸?。這導(dǎo)致了新的緩沖器被插入RAM高速緩存中。緩沖管理器203 —完成任務(wù),其就再次查找RAM高速緩存,并能夠找到其所尋找的緩沖器。該模型允許提供商在相同的請(qǐng)求中提供附加的數(shù)據(jù),同一對(duì)象的后續(xù)部分或其他相關(guān)的對(duì)象。其還允許對(duì)象的不同部分由不同的提供商提供。命名和位置是正交的。例如,具有名稱/a/b/c/one.flv的視頻對(duì)象(部分地或整體地)可以存在于高速緩存層級(jí)中的任一提供商中。媒體管理器204媒體管理器204基于視頻的相對(duì)熱門度而使視頻升級(jí)和降級(jí)。視頻的熱門度為該視頻的點(diǎn)擊次數(shù)、點(diǎn)擊頻率,以及頻率的增大或減小趨勢(shì)的函數(shù)。媒體管理器204具有η個(gè)不同的源,一個(gè)或多個(gè)SSD 205、一個(gè)或多個(gè)硬盤206、原始服務(wù)器207、或同位體208。媒體管理器接收緩沖器,并用所請(qǐng)求的內(nèi)容的一部分對(duì)其填充。媒體管理器204將所填充的緩沖器發(fā)送至緩沖管理器203。如果內(nèi)容不在本地存儲(chǔ)中, 則媒體管理器204從原始服務(wù)器、同位體或客戶端中檢索內(nèi)容。以下為速度的層級(jí),在一個(gè)可行實(shí)施方式中,其與每個(gè)源相關(guān)聯(lián)1.存儲(chǔ)器(RAM) =IOGbps
2.閃存4(ibps
3.固態(tài)器件(SSD) :1.6Gbps
4.磁盤(SAS) :550Mbps
5.磁盤(SATA) :400Mbps
6.其他
7.NFS和其他文件高速緩存
8.原始管理器。參考圖10b,媒體管理器204首先將新視頻放在最低存儲(chǔ)器層級(jí)中。在定時(shí)器到時(shí)時(shí),媒體管理器204檢查最熱門和最冷門視頻的分析/策略管理器1002。分析/策略管理器1002向媒體管理器204提供最熱門的視頻和/或所存取的視頻的一部分。將最熱門的視頻或視頻的一部分升級(jí)至層級(jí)中的下一個(gè)存儲(chǔ)器高速緩存,并將最冷門的視頻降級(jí)至層級(jí)中的下一個(gè)最低的存儲(chǔ)器。以此方式,可以將視頻放在高速緩存層級(jí)的最低層中,并且如果其熱度相對(duì)于其他視頻而增加,則其可以上浮至層級(jí)的頂部。媒體管理器204從相應(yīng)的高速緩存驅(qū)動(dòng)視頻的逐出。媒體管理器執(zhí)行逐出定時(shí)器。當(dāng)定時(shí)器激發(fā)時(shí),媒體管理器204仔細(xì)檢查每個(gè)高速緩存提供商205、206、207、1006,從而檢查高速緩存是否充滿至某一閾值。如果特定的高速緩存是滿的,則媒體管理器204調(diào)用提供商的逐出功能性。然后,提供商執(zhí)行其特定的逐出算法。同位體管理器207同位體管理器207可以被配置為在高速緩存缺失時(shí)從同位體MFD獲得某一內(nèi)容。 假設(shè)MFD在本地存儲(chǔ)器(例如,一個(gè)或多個(gè)硬盤驅(qū)動(dòng)器以及一個(gè)或多個(gè)SSD)中具有有限量的存儲(chǔ)空間,則可能存在這樣的情況,其中,用戶具有比單個(gè)MFD可存儲(chǔ)的視頻內(nèi)容更多的視頻內(nèi)容。可以在安裝于用戶的場(chǎng)所處的多個(gè)同位體MFD中分配用戶的視頻內(nèi)容,或者在那里,同位體MFD可以在網(wǎng)絡(luò)(諸如,分配在彼此通信的多個(gè)同位體MFD中的內(nèi)聯(lián)網(wǎng)、因特網(wǎng)、LAN或WAN)上彼此可訪問。管理員可以通知其同位體的IP地址的每個(gè)同位體MFD,因此同位體MFD能夠與其同位體通信。如果同位體MFD局部地相連接,則其可以通過任何類型的發(fā)現(xiàn)機(jī)制而由其自己發(fā)現(xiàn)其同位體。同位體MFD可以在它們自身之間通信,并讓每個(gè)同位體MFD知道其高速緩存哪些URL。這意味著,在每個(gè)同位體MFD已加載來自原始服務(wù)器或另一同位體MFD的內(nèi)容之后,同位體MFD通知每個(gè)其同位體MFD關(guān)于其服務(wù)的URL。這可以經(jīng)由發(fā)送至每個(gè)同位體MFD或廣播至所有同位體MFD的一個(gè)消息或一系列消息來實(shí)現(xiàn)。如果將用于特定URL的請(qǐng)求發(fā)送至導(dǎo)致高速緩存缺失的同位體MFD,則該MFD中的同位體管理器可以從高速緩存該特定URL的同位體MFD中請(qǐng)求URL內(nèi)容。原始管理器208a.原始服務(wù)器可以將內(nèi)容推送至原始管理器208,或者原始管理器208可以從原始服務(wù)器拖出內(nèi)容。原始服務(wù)器可以通過將內(nèi)容預(yù)先安排至原始管理器208,而將內(nèi)容推送至原始管理器208。原始服務(wù)器可以將FTP或HTTP推送至原始管理器208,并告訴原始管理器208高速緩存某些URL,因?yàn)閮?nèi)容提供商知道該內(nèi)容將是熱門的。b.由于錯(cuò)過所有局部可用的高速緩存(還是代理服務(wù)器功能)的客戶端請(qǐng)求,原始管理器208從原始服務(wù)器拉出內(nèi)容。拉出內(nèi)容還可以由于策略或命令驅(qū)動(dòng)的動(dòng)作而發(fā)生,以與客戶端請(qǐng)求分開地讀取內(nèi)容。代理服務(wù)器功能與高速緩存攝取是分開的。這有幾個(gè)原因(a)代理服務(wù)器可能必須服務(wù)對(duì)于高速緩存來說不方便的奇怪對(duì)準(zhǔn)的字節(jié)范圍請(qǐng)求;(b)該系統(tǒng)可能需要執(zhí)行處理功能,例如,在攝取過程中的組塊和自動(dòng)譯碼(這些在代理服務(wù)器中難以實(shí)時(shí)地實(shí)現(xiàn));以及(c)用于兩個(gè)功能的不同策略。輸入?yún)f(xié)議引擎209輸入?yún)f(xié)議引擎209以和輸出協(xié)議引擎210相同的方式操作,只是其通過使用諸如
19HTTP、FTP和NFS的協(xié)議與原始服務(wù)器通信。最優(yōu)化網(wǎng)絡(luò)堆棧211最優(yōu)化網(wǎng)絡(luò)堆棧211使用TCP堆棧中的往返時(shí)間(RTT),以估計(jì)對(duì)客戶端的最后一英里的比特率變化。RTT時(shí)間告訴最優(yōu)化網(wǎng)絡(luò)堆棧211是否存在完全(down the line)擁塞。RTT提供在前往客戶端的網(wǎng)絡(luò)中可用的帶寬的估計(jì)。最優(yōu)化網(wǎng)絡(luò)堆棧211還通過使用適于時(shí)敏應(yīng)用(例如視頻)的算法來執(zhí)行誤差處理和擁塞控制。MFD可以響應(yīng)于所檢測(cè)到的比特率變化來改變比特率,而無需客戶端知道。確定的流速在一個(gè)可行實(shí)施方式中,MFD具有對(duì)允許進(jìn)入系統(tǒng)以進(jìn)行數(shù)據(jù)傳送的每一流動(dòng)保證某一類服務(wù)的能力。這被叫做確定的流速。MFD針對(duì)每個(gè)對(duì)話來計(jì)算確定的流速,并針對(duì)對(duì)話設(shè)置最大帶寬。用于對(duì)話的帶寬利用不應(yīng)小于確定的流速,并且如果存在可用的帶寬, 則應(yīng)嘗試達(dá)到最大帶寬。MFD執(zhí)行流控制,以確保現(xiàn)有對(duì)話得到所需的速度,并且不大于最大速度。這在網(wǎng)絡(luò)套接字等級(jí)中實(shí)現(xiàn)。套接字等級(jí)管理數(shù)據(jù)發(fā)送速度。對(duì)話帶寬隊(duì)列和服務(wù)器定時(shí)器用于計(jì)算流控制。MFD通過確保如果服務(wù)器沒有足夠的資源以接受連接,則不容許新的對(duì)話,來執(zhí)行許可控制和連接管理。四種規(guī)格可以用于MFD,以保持確定的流速(AFR)Σ所有連接的AFR彡設(shè)備界面端口帶寬對(duì)話AFR彡客戶端對(duì)話帶寬Σ所有連接的AFR彡(磁盤+緩沖器)讀取速度最差質(zhì)量視頻比特率彡對(duì)話AFR彡最高質(zhì)量視頻比特率其中-對(duì)話單TCP連接。- Σ所有連接的AFR 所有接受的對(duì)話的AFR之和。-對(duì)話AFR用于單個(gè)對(duì)話的各個(gè)AFR。-客戶端對(duì)話帶寬客戶端對(duì)話最大帶寬。典型地,客戶端對(duì)話最大帶寬指的是, 由于WAN環(huán)境的限制而產(chǎn)生的最大TCP吞吐量。對(duì)于DSL下載,典型的帶寬為1500K比特/秒。-視頻比特率每個(gè)視頻均具有一個(gè)簡檔。不同的簡檔具有不同的質(zhì)量。較高質(zhì)量的視頻需要較高的比特率。并不是每個(gè)視頻都具有用于所有比特率的簡檔。典型的視頻簡檔比特率的范圍可以是從200K比特/秒至1000K比特/秒。為了確保MFD沒有過度提交服務(wù)器資源,使得可以保持用于現(xiàn)有任務(wù)的AFR,MFD 拒絕新的對(duì)話或者降低用于現(xiàn)有對(duì)話的簡檔(如果可能的話),以在策略設(shè)置的基礎(chǔ)上適應(yīng)新的對(duì)話。通過在服務(wù)器上發(fā)送繁忙HTTP應(yīng)答或通過簡單地關(guān)閉連接,來拒絕對(duì)話。MFD 在服務(wù)數(shù)據(jù)的中間過程時(shí)不關(guān)閉對(duì)話。其僅降低視頻簡檔。例如,如果對(duì)于每個(gè)網(wǎng)絡(luò)界面端口,將總設(shè)備網(wǎng)絡(luò)帶寬被限制在IG比特/秒,則Σ 所有對(duì)話的AFR應(yīng)小于該帶寬。當(dāng)所有接受的對(duì)話的AFR之和等于IG比特/秒時(shí),MFD可以停止接受新的對(duì)話。在一個(gè)可行實(shí)施方式中,通過考慮由包重發(fā)、ACK包、TCP/IP標(biāo)題、其他使用(例如,ARP)、離線原始管理器208等所使用的網(wǎng)絡(luò)開銷,對(duì)于所有對(duì)話,AFR計(jì)算, 帶寬可以降低至0. 8G比特/秒,以考慮更現(xiàn)實(shí)的帶寬限制。AFR比特率可以在最差質(zhì)量視頻比特率和最高質(zhì)量視頻比特率之間。如果AFR <最差質(zhì)量視頻比特率,那么屏幕抖動(dòng)將出現(xiàn)在客戶端側(cè)。如果AFR >最高質(zhì)量視頻比特率,則將浪費(fèi)帶寬資源。服務(wù)器側(cè)播放器201不關(guān)閉連續(xù)對(duì)話GET請(qǐng)求,但允許通過返回故障誤差代碼來關(guān)閉新的對(duì)話。在一個(gè)可行實(shí)施方式中,如果客戶端經(jīng)由撥號(hào)調(diào)制解調(diào)器獲得接入,則AFR受到較慢的最后一英里連接的限制。網(wǎng)絡(luò)驅(qū)動(dòng)器模塊基于RTT計(jì)算來檢測(cè)客戶端連接ISP。一個(gè)實(shí)施例等式可以為客戶端對(duì)話帶寬速度=1460字節(jié)/RTT(秒)。如上所述,視頻內(nèi)容被存儲(chǔ)在磁盤或RAM中。一旦MFD確定了 AFR,其就需要確保磁盤+緩沖器可以達(dá)到該速度。與CPU和網(wǎng)絡(luò)容量不同,作為一個(gè)容量的磁盤速度不是可以容易測(cè)量的東西。其與工作量高度相關(guān)。一種測(cè)量磁盤是否處于或接近容量的更實(shí)際的方法是查看隊(duì)列深度和/或平均等待時(shí)間。調(diào)度器202的截止時(shí)間缺失計(jì)數(shù)器是在系統(tǒng)中發(fā)生什么的良好指標(biāo)。在某些情況下,例如,網(wǎng)絡(luò)管理員希望產(chǎn)生VIP列表。網(wǎng)絡(luò)管理員可能通過用戶接口管理控制臺(tái)來設(shè)置策略,使得VIP列表接收產(chǎn)生更高的用于對(duì)話的AFR的高質(zhì)量視頻。在另一實(shí)施例中,網(wǎng)絡(luò)管理員可以設(shè)置平均視頻質(zhì)量。網(wǎng)絡(luò)管理員可以使用用戶接口管理器控制臺(tái)來設(shè)置平均AFR。在一個(gè)可行實(shí)施方式中,MFD不希望將較高的視頻質(zhì)量發(fā)送至無法播放高質(zhì)量視頻的客戶端。例如,PC/筆記本可以播放高質(zhì)量視頻,但iPhone/g-phone/Palm等僅具有非常小的屏幕,因此無法播放高質(zhì)量視頻。完全不需要將高質(zhì)量視頻發(fā)送至這些類型的裝置。參考圖11,示出了用于最優(yōu)化網(wǎng)絡(luò)堆棧211中的網(wǎng)絡(luò)管理器的AFR部分的可行實(shí)施方式的數(shù)據(jù)流,最優(yōu)化網(wǎng)絡(luò)堆棧在HPE對(duì)調(diào)度器202提出任務(wù)并且調(diào)度器202返回?cái)?shù)據(jù)塊之后發(fā)送數(shù)據(jù)。如果在一個(gè)定時(shí)器間隔縫隙(例如,一次一秒)內(nèi)無法發(fā)出所計(jì)算的數(shù)據(jù)的大小,則這意味著在網(wǎng)絡(luò)管理器中出現(xiàn)AFR錯(cuò)過。如果調(diào)度器202在截止期限錯(cuò)過時(shí)間內(nèi)不返回任務(wù),則這意味著磁盤管理器206中發(fā)生AFR錯(cuò)過。網(wǎng)絡(luò)管理器計(jì)算任務(wù)的截止時(shí)間。然后,其提出具有所計(jì)算的截止時(shí)間的任務(wù)
1101。然后,給定AFR和套接字的傳輸周期的定時(shí)器間隔,網(wǎng)絡(luò)管理器計(jì)算可以在連接上發(fā)送的最大數(shù)量的字節(jié)。這產(chǎn)生可以在一個(gè)定時(shí)器間隔中在連接上發(fā)送的最大量的數(shù)據(jù)
1102。然后,網(wǎng)絡(luò)管理器在套接字上發(fā)送數(shù)據(jù)1103。如果發(fā)送是不完全的1104,例如,沒有足夠的空間來發(fā)送數(shù)據(jù)或者定時(shí)器間隔已經(jīng)過去,則網(wǎng)絡(luò)管理器將嘗試在連接上重新發(fā)送數(shù)據(jù)1107、1103。如果有足夠的空間來發(fā)出/接收數(shù)據(jù)1104(例如,客戶端上的緩沖器等級(jí)是足夠的,TCP等級(jí)是足夠的,窗口大小是足夠的,更多數(shù)據(jù)將被發(fā)送等),則網(wǎng)絡(luò)管理器檢查以查看是否存在更多的數(shù)據(jù)要發(fā)送1105。如果有更多的數(shù)據(jù)可用于發(fā)送,則網(wǎng)絡(luò)管理器將套接字放回在定時(shí)器隊(duì)列中以等待下一定時(shí)器間隔,來發(fā)送更多的數(shù)據(jù)1108,并計(jì)算可以在連接上發(fā)送的下一個(gè)最大數(shù)量的比特1102。另外,網(wǎng)絡(luò)管理器以定時(shí)器間隔結(jié)束,并且使下一塊數(shù)據(jù)發(fā)送1106。該過程繼續(xù),直到已經(jīng)發(fā)送來自調(diào)度器202的一個(gè)或多個(gè)數(shù)據(jù)塊中的所有數(shù)據(jù)為止。在一個(gè)可行實(shí)施方式中,為了保持AFR,MFD執(zhí)行以下操作1.在網(wǎng)絡(luò)端口上請(qǐng)求的連接。如果該網(wǎng)絡(luò)端口的總連接>最大容許連接,則拒絕該連接。2.每個(gè)連接僅可以分完所計(jì)算的對(duì)話帶寬。在該實(shí)施例中=Kibps/該網(wǎng)絡(luò)端口上的總連接。3.由于最大對(duì)話帶寬配置而產(chǎn)生的改進(jìn)。a.如果配置最大配置的對(duì)話帶寬并且所計(jì)算的對(duì)話帶寬>最大對(duì)話帶寬,則將所計(jì)算的對(duì)話帶寬設(shè)置為最大配置對(duì)話帶寬。b.否則不改變。4.計(jì)算對(duì)話AFR。a.將對(duì)話AFR設(shè)置為所配置的AFR作為基本建議的AFR。b.調(diào)用服務(wù)器側(cè)播放器201用于調(diào)節(jié)AFR。如果通過服務(wù)器側(cè)播放器201返回誤差消息,那么關(guān)閉對(duì)話。5.由于平衡的AFR計(jì)算而產(chǎn)生的改進(jìn)。a.如果所計(jì)算的對(duì)話帶寬> 1. 2*AFR,則將所計(jì)算的對(duì)話帶寬設(shè)置為1. 2*AFR。b.否則不改變。6.由于AFR而產(chǎn)生的改進(jìn)。a.如果所計(jì)算的對(duì)話帶寬< AFR,則將所計(jì)算的對(duì)話帶寬設(shè)置為AFR。b.否則不改變。7.在將數(shù)據(jù)發(fā)送至客戶端的任何時(shí)候,在每個(gè)epollout事件或任務(wù)完成中執(zhí)行所計(jì)算的對(duì)話帶寬。網(wǎng)絡(luò)和HTTP管理器對(duì)用于計(jì)算服務(wù)器側(cè)播放器201的AFR值的服務(wù)器側(cè)播放器 201提供三個(gè)參數(shù)。這三個(gè)參數(shù)是URI??蛻舳藢?duì)話帶寬(AFR的上限值)。網(wǎng)絡(luò)帶寬的總可用AFR。其中-網(wǎng)絡(luò)模塊可能削減總可用AFR。-總可用AFR興總網(wǎng)絡(luò)帶寬-Σ現(xiàn)有對(duì)話的AFR。-總可用AFR= min (總網(wǎng)絡(luò)帶寬-Σ現(xiàn)有對(duì)話的AFR,所配置的最大AFR)。在服務(wù)器側(cè)播放器201的AFR計(jì)算中,返回的AFR值可以小于客戶端對(duì)話帶寬和總可用AFR??梢栽贖PE完成HTTP解析之后的時(shí)間調(diào)用服務(wù)器側(cè)播放器201。HPE提供所有的HTTP信息(諸如URI等)以及標(biāo)記,以表明這是新的對(duì)話或具有相同連接的連續(xù)對(duì)話。服務(wù)器側(cè)播放器201不關(guān)閉連續(xù)對(duì)話GET請(qǐng)求,但應(yīng)被允許關(guān)閉新的對(duì)話。服務(wù)器側(cè)播放器201將AFR設(shè)置為在URI請(qǐng)求中指定的值。如果服務(wù)器側(cè)播放器201不能將AFR 設(shè)置為所請(qǐng)求的值,則其將錯(cuò)誤代碼返回至將關(guān)閉該連接的HTTP引擎。調(diào)度器202截止時(shí)間錯(cuò)過可以用來在運(yùn)行時(shí)間的過程中測(cè)量磁盤吞吐量。HPE計(jì)算截止時(shí)間(使用截止時(shí)間=函數(shù)(總HTTP字節(jié)/AFR))(單位為微秒),并且當(dāng)向調(diào)度器202提交任務(wù)時(shí),將截止時(shí)間發(fā)送至調(diào)度器202。如果磁盤操作超載,則調(diào)度器202丟掉一些新任務(wù)。所選擇的丟掉的任務(wù)應(yīng)屬于由新對(duì)話產(chǎn)生的第一任務(wù)。通過HPE可以設(shè)置標(biāo)記, 以告訴調(diào)度器202 —個(gè)任務(wù)是否屬于新的對(duì)話。當(dāng)存在過多的磁盤截止時(shí)間錯(cuò)過時(shí),調(diào)度器202向網(wǎng)絡(luò)管理器發(fā)送反饋,以減小服務(wù)器結(jié)構(gòu)中的最大容許連接。這減小了總對(duì)話數(shù)量。在恢復(fù)磁盤操作且忽略截止時(shí)間錯(cuò)過問題之后,調(diào)度器202試圖恢復(fù)回至在服務(wù)器結(jié)構(gòu)中設(shè)置的最大容許連接。提示軌道(hint track)參考圖12,在一個(gè)可行實(shí)施方式中,漸進(jìn)式下載提示軌道(PDH) 1206向MFD描述了如何在HTTP上使用漸進(jìn)式下載來服務(wù)存在于文件1201中的媒體數(shù)據(jù)。只有一個(gè)容器文件 1201需要存在于MFD中。在該容器文件1201中,用戶可以存儲(chǔ)變化比特率、空間分辨率的流1204、1205或可縮放的流。與MP4容器文件一樣,容器文件1201還可以包含元數(shù)據(jù)1202。 PDH提示軌道1206將是視頻文件容器(在該實(shí)施例中移動(dòng))1203內(nèi)的較高等級(jí)的元方框, 視頻文件容器向MFD描述其可用的所有選擇以支持PDH。在一個(gè)可行實(shí)施方式中,取決于來自客戶端的請(qǐng)求而適應(yīng)變化的帶寬條件、可用的客戶端CPU資源,或由MFD查詢(poll)網(wǎng)絡(luò)以解決網(wǎng)絡(luò)等待時(shí)間,MFD側(cè)邏輯可以在以下方面進(jìn)行智能決策其應(yīng)如何服務(wù)以及服務(wù)何種類型的比特率、幀速率或分辨率,以最佳地滿足網(wǎng)絡(luò)的條件和客戶端的需求。在一個(gè)可行實(shí)施方式中,可以通過MFD使用提示軌道,以決定最佳的速度或分辨率來進(jìn)行服務(wù),然后,將媒體數(shù)據(jù)的時(shí)間周期的相關(guān)部分壓縮成MP4的自包含塊,以在HTTP 上傳送。在普通容器中存在的媒體數(shù)據(jù)本身不需要以任何方式重定格式。在一個(gè)可行實(shí)施方式中,可以產(chǎn)生多個(gè)預(yù)定義的PDH提示軌道,其覆蓋大多數(shù)普通使用條件,以減小MFD側(cè)上的負(fù)載。在一個(gè)可行實(shí)施方式中,可以在被組成為以預(yù)定義幀速率(例如,以Bllcbps, 3(^ 8編碼的!1.264流)服務(wù)的服務(wù)器中使用單個(gè)媒體數(shù)據(jù)流。在傳送的過程中,根據(jù)網(wǎng)絡(luò)條件,MFD可以選擇丟掉較高的臨時(shí)增強(qiáng)層(通過MP4中的分層方框可以輕松地獲得其信息)。同樣地,用于這些較低的幀速率部分(例如,15fps、7.5fps)的PDH塊的速率將小于Bllcbps,從而提供這樣一種機(jī)制,該機(jī)制在不會(huì)很大程度上影響用戶的重放質(zhì)量體驗(yàn)的同時(shí)快速地適應(yīng)帶寬波動(dòng)。在一個(gè)可行實(shí)施方式中,可以使用附加的提示軌道(或較高等級(jí)的方框)對(duì)可用于支持特殊再現(xiàn)的各種選項(xiàng)進(jìn)行描述。這種提示軌道(或方框)可以對(duì)MFD提供關(guān)于快進(jìn)或倒帶的速度、1條卜1HW)的信息,同時(shí)提供關(guān)于相對(duì)幀偏移量的精確信息和在重放過程中將幫助客戶端播放器的重放速率。在一個(gè)可行實(shí)施方式中,還可以擴(kuò)展提示軌道使用,以支持MFD側(cè)的節(jié)目播放表。 這些提示軌道可以提供關(guān)于需要在哪里插入廣告或視頻片段以及它們的精確的持續(xù)時(shí)間的信息。提示軌道還可以提供控制機(jī)制信息,例如,如果客戶端播放器可以跳過或快進(jìn)通過廣告或視頻片段。提示軌道還可以包含關(guān)于以下內(nèi)容的信息對(duì)于廣告或視頻片段的動(dòng)態(tài)放置,如果需要,與哪個(gè)廣告服務(wù)器聯(lián)系。MFD 策略
a.管理員能夠設(shè)置用于MFD的策略以在其上操作。例如,管理員可以希望使MFD 服務(wù)盡可能多的客戶端,或以服務(wù)許多個(gè)客戶端的代價(jià)來服務(wù)HD內(nèi)容并保持HD內(nèi)容的質(zhì)量。b.可以將來自調(diào)度器202的反饋(關(guān)于任務(wù)已經(jīng)晚了的時(shí)間量、已經(jīng)晚了的任務(wù)的數(shù)量,或任何其他有用的度量)發(fā)送至服務(wù)器側(cè)201和/或輸出協(xié)議引擎210。服務(wù)器側(cè)201可以使用該信息來調(diào)節(jié)其所服務(wù)的客戶端的數(shù)量,或者甚至調(diào)節(jié)其傳送至某些客戶端的視頻的質(zhì)量,以解決傳送等待時(shí)間。在某些帶寬運(yùn)行的某些客戶端可以足夠靈活,以動(dòng)態(tài)地減小其帶寬。c.輸出協(xié)議引擎210可以使用來自調(diào)度器202的信息,來拒絕任何新的客戶端連接,直到調(diào)度器202向輸出協(xié)議引擎210傳遞表明MFD已經(jīng)用期望的傳送效率充分地追趕上的統(tǒng)計(jì)數(shù)據(jù)為止。定義用什么標(biāo)準(zhǔn)進(jìn)行這種判斷的參數(shù)可以由管理員定義。這些參數(shù)可以包括,基于受到最后的傳送或等待時(shí)間的量(例如,其存在錯(cuò)過截止時(shí)間的任務(wù)的數(shù)量) 影響的客戶端的數(shù)量來執(zhí)行動(dòng)作。d.管理員可以配置原始服務(wù)器,以通知MFD關(guān)于其應(yīng)與哪個(gè)內(nèi)容服務(wù)器通信,以當(dāng)MFD經(jīng)歷高速緩存缺失時(shí)檢索內(nèi)容。原始服務(wù)器可以命令原始管理器207通過使用特定協(xié)議而從特定內(nèi)容服務(wù)器獲得某些內(nèi)容。原始服務(wù)器還可以定義MFD上的策略,以告訴原始管理器207哪個(gè)內(nèi)容是可以高速緩存的以及必須從原始服務(wù)器獲得什么內(nèi)容,例如,很少請(qǐng)求的內(nèi)容。MFD 擴(kuò)展MFD還可以在工廠是帶寬限制的??梢詫FD設(shè)置為不超過某一峰值帶寬或開放對(duì)話的數(shù)量。這允許MFD提供商銷售某些級(jí)別的服務(wù)。如果用戶需要較高的峰值帶寬或較多的開放對(duì)話,則MFD提供商可以一定費(fèi)用遠(yuǎn)程設(shè)置用戶的MFD的峰值帶寬或最大數(shù)量的開放對(duì)話,該費(fèi)用可以是一次性費(fèi)用或者循環(huán)費(fèi)用。MFD還可以自動(dòng)地超過最大帶寬或最大數(shù)量的開放對(duì)話,并通知MFD提供商所超過的量。然后,MFD提供商可以針對(duì)所超過的量而對(duì)用戶充值。這允許用戶臨時(shí)處理高活動(dòng)性脈沖串(burst),并且,并非必須購買額外的 MFD或MFD升級(jí)。負(fù)載均衡器相互作用典型地,存在與同位體MFD通信的負(fù)載均衡器。負(fù)載均衡器可以被配置為當(dāng)請(qǐng)求針對(duì)特定URL時(shí),向某一同位體MFD發(fā)送客戶端請(qǐng)求。一個(gè)同位體MFD可以發(fā)送什么URL 可為每個(gè)同位體MFD所用的表格。可選地,每個(gè)同位體MFD可以告訴負(fù)載均衡器其服務(wù)于哪些URL。負(fù)載均衡器可以從同位體MFD收集所有信息,并產(chǎn)生其自己的表格或數(shù)據(jù)庫入口,以將客戶端URL請(qǐng)求引導(dǎo)至正確的同位體MFD。負(fù)載均衡器可以使用基于URL和/或其他參數(shù)的哈希方案來確定MFD將URL請(qǐng)求引導(dǎo)至其中。這允許在同位體MFD中分配URL內(nèi)容。監(jiān)控和統(tǒng)計(jì)用戶界面管理員等可以查看MFD的所存儲(chǔ)的由服務(wù)器側(cè)播放器201記錄的統(tǒng)計(jì)數(shù)據(jù),并且管理員等可以經(jīng)由文本的或圖形的表達(dá)看到如何執(zhí)行MFD。媒體管理器204還記錄高速緩存命中和缺失的數(shù)量以及什么內(nèi)容是最流行的(熱門內(nèi)容)或最不流行的。媒體管理器 204還可以記錄其從中請(qǐng)求內(nèi)容的原始服務(wù)器以及進(jìn)行這種請(qǐng)求的次數(shù)。用戶界面允許管
2理員觀察圖形或文本表達(dá)的內(nèi)容性能數(shù)據(jù)。用戶界面可以在特定的時(shí)間周期中或?qū)崟r(shí)地提供任何記錄的信息。圖形用戶界面允許MFD使用統(tǒng)計(jì)信息,使得其可以相對(duì)于磁盤使用和內(nèi)容存取來收集信息,以顯示在視覺上表現(xiàn)以下任何內(nèi)容的圖表表現(xiàn)每個(gè)磁盤的最近數(shù)據(jù)檢索次數(shù)的柱狀圖數(shù)據(jù)。磁盤存取計(jì)數(shù)器。每個(gè)磁盤的視頻的數(shù)量。自由空間的量。所請(qǐng)求的視頻的數(shù)量。每個(gè)磁盤的所請(qǐng)求視頻的數(shù)量。每個(gè)磁盤的最近吞吐量。緩沖器高速緩存中的命中/缺失。各種緩沖器操作。誤差(來自媒體管理器統(tǒng)計(jì)數(shù)據(jù)、媒體請(qǐng)求等中)所存儲(chǔ)的視頻的數(shù)量。每個(gè)高速緩存的視頻的數(shù)量。所產(chǎn)生的視頻的數(shù)量。所刪除的視頻的數(shù)量。媒體提供商的數(shù)量。關(guān)于媒體提供商的元信息。每個(gè)高速緩存級(jí)別(存儲(chǔ)器、SSDJfa )以及原始源(HTTP、NFS等)所服務(wù)的帶
覓ο每個(gè)高速緩存裝置(每個(gè)SSD或磁盤單元)所服務(wù)的帶寬。高速緩存邏輯被設(shè)計(jì)為當(dāng)工作量簡檔相對(duì)于內(nèi)容而變化時(shí),在裝置上加載級(jí)別。每個(gè)界面端口所服務(wù)的帶寬和連接。每個(gè)協(xié)議(HTTP、RTSP等)所服務(wù)的帶寬和連接。在一個(gè)可行實(shí)施方式中,用戶可以配置與MFD的性能特性相關(guān)的參數(shù)。諸如服務(wù)器側(cè)播放器和媒體管理器的部件記錄由圖形用戶界面使用的性能統(tǒng)計(jì)數(shù)據(jù),以向用戶顯示統(tǒng)計(jì)數(shù)據(jù)和圖表。圖13示出了一個(gè)可行實(shí)施方式中的用戶界面屏幕,其中,用戶可以指定參數(shù),例如,AFR 1304或每個(gè)對(duì)話1305的最大比特率。用戶還可以與用于名字空間的其 URI1302和HTTP原始服務(wù)器1303的主機(jī)名稱一起指定名字空間1301。參考圖14,在一個(gè)可行實(shí)施方式中,圖形用戶界面屏幕1400可以示出從高速緩存、原始服務(wù)器傳輸?shù)淖止?jié)1401以及隨著時(shí)間傳送至客戶端的總字節(jié)1402的總數(shù)的實(shí)時(shí)圖表。當(dāng)MFD向客戶端1403發(fā)送內(nèi)容時(shí),圖形用戶界面屏幕1400允許用戶看到MFD的實(shí)際性能。用戶可以定制MFD中的策略,以調(diào)節(jié)高速緩存存儲(chǔ),例如,以處理用戶始終希望可用的某些熱門內(nèi)容。圖形用戶界面1400立即向用戶表明其變化對(duì)MFD的影響。圖15示出了顯示MFD的連接1501上的性能特性的圖形用戶界面的屏幕截圖 1500。2. 1.2媒體流導(dǎo)向器布局
圖4示出了使用MFD 401代替現(xiàn)有視頻服務(wù)器402的一個(gè)可行實(shí)施方式?,F(xiàn)有視頻服務(wù)器實(shí)現(xiàn)方式典型地為從一臺(tái)原始服務(wù)器或一組原始服務(wù)器404中高速緩存內(nèi)容的一組文件服務(wù)器403。在許多視頻服務(wù)器403上映射(mirror)來自原始服務(wù)器404的內(nèi)容。用戶經(jīng)由客戶端訪問入口服務(wù)器(portal server) 405上的網(wǎng)頁,以搜索視頻內(nèi)容。用戶經(jīng)由網(wǎng)頁上的鏈接而從網(wǎng)頁中選擇視頻。將URL發(fā)送至DNS服務(wù)器,該DNS服務(wù)器將URL 解析為負(fù)載均衡器所負(fù)責(zé)的IP地址??蛻舳送ㄟ^由客戶端所使用的經(jīng)解析的IP地址,以進(jìn)行視頻請(qǐng)求。在一組邊緣路由器407中,路由器將請(qǐng)求路由至分配中心406中的負(fù)載均衡器。負(fù)載均衡器接收請(qǐng)求,并將URL請(qǐng)求轉(zhuǎn)送至視頻服務(wù)器群402中的視頻服務(wù)器。URL 請(qǐng)求可以告訴視頻服務(wù)器客戶端正期望的所請(qǐng)求的視頻的比特率。視頻服務(wù)器是不知道其正傳送的文件的特性的文件服務(wù)器,除了知道其必須將一定比特率版本的視頻發(fā)送至客戶端的事實(shí)以外。典型地,名稱和內(nèi)容對(duì)視頻服務(wù)器來說是不透明的。典型地,視頻的每個(gè)比特率均為命名文件。視頻服務(wù)器將視頻文件流動(dòng)至客戶端,并嘗試將視頻傳送至客戶端,使得客戶端的視頻緩沖器不會(huì)變空。客戶端必須緩沖所接收的視頻,以代替來自視頻服務(wù)器的視頻流中的延遲??蛻舳说木彌_器意味著給予用戶連續(xù)的觀看體驗(yàn)。假設(shè)視頻服務(wù)器正向許多客戶端服務(wù)大量的視頻,由帶寬的服務(wù)器溢出或由網(wǎng)絡(luò)延遲所產(chǎn)生的傳送延遲是頻繁的,并且客戶端緩沖器變空。結(jié)果,用戶看到視頻流停止播放,直到緩沖器開始再次填充為止,或者對(duì)于小視頻文件,進(jìn)行等待直到在視頻開始播放之前將整個(gè)視頻載入緩沖器為止。在一個(gè)可行實(shí)施方式中,一個(gè)MFD具有實(shí)現(xiàn)超過10(ibpS的吞吐量的能力,從而產(chǎn)生代替十個(gè)以上視頻服務(wù)器的單個(gè)MFD。兩個(gè)MFD 401可以代替一組20個(gè)視頻服務(wù)器。MFD 401與原始服務(wù)器402通信,以當(dāng)MFD接收URL內(nèi)容(MFD在存儲(chǔ)器中沒有)的請(qǐng)求時(shí),或者當(dāng)MFD從原始服務(wù)器接收新的視頻內(nèi)容時(shí),來獲得視頻內(nèi)容。MFD直接代替視頻服務(wù)器,并且入口服務(wù)器405、邊緣路由器407和分配開關(guān)406的基礎(chǔ)結(jié)構(gòu)保持相同。圖5示出了 MFD在邊緣和/或原始位置的布局。在該實(shí)施例中,虛線是用于傳統(tǒng)實(shí)現(xiàn)方式的數(shù)據(jù)通路。MFD可以被安裝在內(nèi)容所有者的位置501、⑶N 502、506、內(nèi)容整合位置504、或ISP。位置的任何組合可以安裝有MFD,從而導(dǎo)致向客戶端508進(jìn)行更快且更可靠的內(nèi)容傳送。例如,當(dāng)將兩個(gè)MFD安裝在ISP 507時(shí),將MFD配置在ISP網(wǎng)絡(luò)中的某處。 這可以在群中的相同數(shù)據(jù)中心中,或在不同的數(shù)據(jù)中心中但在相同的ISP接入網(wǎng)絡(luò)中。MFD 可以彼此通信,以更有效地傳送內(nèi)容,因?yàn)槿绻鸐FD可以從相同的網(wǎng)絡(luò)內(nèi)檢索內(nèi)容,則這比從不同的和/或多個(gè)不同的網(wǎng)絡(luò)上或從原始位置檢索內(nèi)容更有效。如果大內(nèi)容整合體配置所有MFD私人傳送網(wǎng)絡(luò),則甚至可以更有效地看到內(nèi)容整合體,因?yàn)镸FD可以甚至更有效地使用私人協(xié)議來處理高速緩存缺失處理、預(yù)升級(jí)、數(shù)據(jù)收集等。當(dāng)實(shí)現(xiàn)所有MFD實(shí)現(xiàn)方式時(shí),由于MFD經(jīng)由最有效的路線檢索內(nèi)容的能力,所以效率急劇地提高。注意,在整個(gè)文本的實(shí)施方式描述中,已經(jīng)使用了術(shù)語“視頻內(nèi)容”。可以用一直討論的實(shí)施方式中的任何媒體類型代替術(shù)語“視頻內(nèi)容”,因?yàn)镸FD適合于傳送任何類型的內(nèi)容文件,例如媒體(音頻、圖片等)、游戲、軟件、HTML、腳本等。2. 2網(wǎng)絡(luò)上的可變速率媒體傳送2. 2. 1平滑流視頻架構(gòu)
圖16示出了一個(gè)可行實(shí)施方式,其示出了被配置為在網(wǎng)絡(luò)上傳送視頻內(nèi)容的媒體流導(dǎo)向器(MFD)IOl的數(shù)據(jù)流。視頻內(nèi)容文件被存儲(chǔ)在可以由MFD 101接入的至少一個(gè)本地存儲(chǔ)裝置108上。對(duì)于某一視頻內(nèi)容,內(nèi)容提供商可以提供包含視頻內(nèi)容的幾個(gè)內(nèi)容文件,其中,每個(gè)文件均以不同的比特率(例如100Kb、200Kb、500Kb、1Mb、2Mb等)被編碼。 在一個(gè)可行實(shí)施方式中,使用MFD 101,或者可選地,使用中央處理服務(wù)器預(yù)處理來自原始服務(wù)器的輸入內(nèi)容,以產(chǎn)生成塊的文件圖像,使得根據(jù)可配置的參數(shù)(例如,一秒,兩秒等) 按大小排列文件圖像的每個(gè)組塊。如下所述,組塊的大小允許MFD 101中的服務(wù)器側(cè)播放器(SSP) 107在不同的比特率文件之間提供無縫過渡(平滑流)。在另一可行實(shí)施方式中, 組塊為邏輯塊,它們具有由索引表或任何其他類型的數(shù)據(jù)結(jié)構(gòu)所跟蹤的邊界。SSP 107以與處理物理組塊幾乎相同的方式來處理邏輯塊。在一個(gè)可行實(shí)施方式中,客戶端視頻播放器沒有限制??蛻舳艘曨l播放器可以是處理HTTP漸進(jìn)式下載的標(biāo)準(zhǔn)視頻播放器。不需要對(duì)播放器進(jìn)行改進(jìn),以處理來自MFD 1601 的漸進(jìn)式下載??蛻舳?MFD相互作用在一個(gè)可行實(shí)施方式中,MFD 1601以具有對(duì)話綁定的雙信道方法為基礎(chǔ)??蛻舳瞬シ牌髋cMFD 1601建立媒體鏈路和控制鏈路,它們通過使用由客戶端播放器所產(chǎn)生的唯一對(duì)話ID(SID)而被綁定在一起。當(dāng)客戶端播放器由于帶寬波動(dòng)的原因而使用控制鏈路向 MFD 1601發(fā)出適當(dāng)?shù)倪m應(yīng)點(diǎn)的信號(hào)時(shí),通過使用媒體鏈路傳送視頻數(shù)據(jù)。控制信道可以被用作雙向鏈路,以發(fā)送和接收請(qǐng)求/控制數(shù)據(jù)。在一個(gè)可行實(shí)施方式中,用戶點(diǎn)擊網(wǎng)頁上的文件鏈接以查看文件。例如,客戶端啟動(dòng)客戶端上的播放器,例如Flash播放器或Silverlight播放器。客戶端播放器對(duì)每個(gè)對(duì)話產(chǎn)生唯一的SID,并將該ID作為查詢參數(shù)與視頻名稱的請(qǐng)求一起提供給MFD 1601。在與 MFD 1601的所有后續(xù)通信中使用該對(duì)話ID。在該實(shí)施例中,客戶端播放器使用UID生成器 1603產(chǎn)生用戶ID,該用戶ID是與客戶端相關(guān)聯(lián)的唯一 ID。UID生成器1603例如可以使用偽隨機(jī)數(shù)和當(dāng)前時(shí)間(幾秒和幾毫秒,為ID的一部分)的組合,并可以將ID的長度限制為小于36字節(jié)??蛻舳瞬シ牌?602將UID與包含域和文件名稱的文件請(qǐng)求1604組合。在一個(gè)可行實(shí)施方式中,還可以包括平滑流(sf)命令狀態(tài)。在表1中示出了實(shí)施例命令狀態(tài)。在圖16中的URI的實(shí)施例中,所請(qǐng)求的文件為foo_p00. flv,對(duì)話ID為AXGBF,并將sf設(shè)置為1。
權(quán)利要求
1.一種用于在網(wǎng)絡(luò)上將可變比特率媒體內(nèi)容動(dòng)態(tài)地傳送至多個(gè)客戶端系統(tǒng)的方法,包括在服務(wù)器處接收來自客戶端系統(tǒng)的對(duì)媒體內(nèi)容的請(qǐng)求;通過所述服務(wù)器將所請(qǐng)求的媒體內(nèi)容的被編碼為第一比特率的部分傳送至所述客戶端系統(tǒng);在所述服務(wù)器處確定,可以將傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分改變?yōu)閭魉退?qǐng)求的媒體內(nèi)容的被編碼為第二比特率的部分;一經(jīng)確定可以將傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分改變?yōu)閭魉退?qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分,所述傳送步驟就停止將所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分傳送至所述客戶端系統(tǒng),并開始將所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分傳送至所述客戶端系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的方法,還包括在所述服務(wù)器處確定所述服務(wù)器和所述客戶端系統(tǒng)之間的可用帶寬已經(jīng)改變;其中,所述可用帶寬確定步驟通知所述傳送確定步驟所述服務(wù)器和所述客戶端系統(tǒng)之間的可用帶寬已經(jīng)改變。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述客戶端系統(tǒng)規(guī)定所述第二比特率。
4.根據(jù)權(quán)利要求3所述的方法,還包括在所述客戶端系統(tǒng)處接收來自所述服務(wù)器的用于所請(qǐng)求的媒體內(nèi)容的可用比特率和特征;其中,所述客戶端系統(tǒng)從所接收的可用比特率中選擇所述第二比特率。
5.根據(jù)權(quán)利要求1所述的方法,還包括將多個(gè)媒體內(nèi)容文件存儲(chǔ)在與所述服務(wù)器通信的至少一個(gè)存儲(chǔ)裝置上;其中,所述至少一個(gè)存儲(chǔ)裝置包含所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分和所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分。
6.根據(jù)權(quán)利要求1所述的方法,還包括當(dāng)將所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分傳送至所述客戶端系統(tǒng)時(shí), 對(duì)所述部分進(jìn)行編碼。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述傳送步驟從所請(qǐng)求的媒體內(nèi)容中已經(jīng)停止傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分的點(diǎn),開始傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分。
8.根據(jù)根據(jù)權(quán)利要求7所述的方法,其中,所述傳送步驟參考索引找到在所請(qǐng)求的媒體內(nèi)容中的被編碼為所述第二比特率的媒體幀,所述媒體幀與其中停止傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分的媒體幀相關(guān)聯(lián),并且其中,所述傳送步驟從所請(qǐng)求的媒體內(nèi)容中的被編碼為所述第二比特率的相關(guān)聯(lián)媒體幀開始傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分。
9.根據(jù)權(quán)利要求7所述的方法,其中,所述傳送步驟在所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的媒體部分組塊的末尾處停止傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分,并開始從所請(qǐng)求的媒體內(nèi)容中的被編碼為所述第二比特率的媒體部分組塊的起點(diǎn)處傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分,所請(qǐng)求的媒體內(nèi)容中的被編碼為所述第二比特率的媒體部分組塊的起點(diǎn)與所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的媒體部分組塊的末尾在時(shí)間上是連續(xù)的。
10.根據(jù)權(quán)利要求1所述的方法,還包括當(dāng)將所請(qǐng)求的媒體內(nèi)容的部分傳送至所述客戶端系統(tǒng)時(shí),傳送作為所請(qǐng)求的媒體內(nèi)容的部分的一部分的替代內(nèi)容。
11.根據(jù)權(quán)利要求1所述的方法,其中,當(dāng)從原始服務(wù)器接收到所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分時(shí),所述傳送步驟傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分。
12.根據(jù)權(quán)利要求11所述的方法,其中,對(duì)從所述原始服務(wù)器接收的被編碼為所述第一比特率的所請(qǐng)求的媒體內(nèi)容進(jìn)行排隊(duì),以通過所述服務(wù)器編碼成所述第二比特率。
13.根據(jù)權(quán)利要求1所述的方法,其中,所請(qǐng)求的媒體內(nèi)容為音頻內(nèi)容。
14.根據(jù)權(quán)利要求1所述的方法,其中,所請(qǐng)求的媒體內(nèi)容為視頻內(nèi)容。
15.一種在網(wǎng)絡(luò)上將可變比特率媒體內(nèi)容動(dòng)態(tài)地傳送至多個(gè)客戶端系統(tǒng)的設(shè)備,包括媒體傳送請(qǐng)求接收器,在服務(wù)器上接收來自客戶端的對(duì)媒體內(nèi)容的請(qǐng)求;媒體內(nèi)容傳送子系統(tǒng),在所述服務(wù)器上將所請(qǐng)求的媒體內(nèi)容的被編碼為第一比特率的部分傳送至所述客戶端系統(tǒng);比特率過渡確定子系統(tǒng),在所述服務(wù)器上確定可以將傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分改變?yōu)閭魉退?qǐng)求的媒體內(nèi)容的被編碼為第二比特率的部分;一經(jīng)確定可以將傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分改變?yōu)閭魉退?qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分,所述媒體內(nèi)容傳送子系統(tǒng)就停止將所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分傳送至所述客戶端系統(tǒng),并開始將所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分傳送至所述客戶端系統(tǒng)。
16.根據(jù)權(quán)利要求15所述的設(shè)備,還包括帶寬確定子系統(tǒng),在所述服務(wù)器上確定所述服務(wù)器和所述客戶端系統(tǒng)之間的可用帶寬已經(jīng)改變;其中,所述帶寬確定子系統(tǒng)通知所述比特率過渡確定子系統(tǒng)所述服務(wù)器和所述客戶端系統(tǒng)之間的可用帶寬已經(jīng)改變。
17.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述客戶端系統(tǒng)規(guī)定所述第二比特率。
18.根據(jù)權(quán)利要求17所述的設(shè)備,還包括媒體內(nèi)容描述接收器,在所述客戶端系統(tǒng)上接收來自所述服務(wù)器的用于所請(qǐng)求的媒體內(nèi)容的可用比特率和特征;其中,所述客戶端系統(tǒng)從所接收的可用比特率中選擇所述第二比特率。
19.根據(jù)權(quán)利要求15所述的設(shè)備,還包括與所述服務(wù)器通信的用于存儲(chǔ)多個(gè)媒體內(nèi)容文件的至少一個(gè)存儲(chǔ)裝置;其中,所述至少一個(gè)存儲(chǔ)裝置包含所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分和所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分。
20.根據(jù)權(quán)利要求15所述的設(shè)備,其中,當(dāng)將所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率編碼的部分傳送至所述客戶端系統(tǒng)時(shí),所述媒體內(nèi)容傳送子系統(tǒng)對(duì)所述部分進(jìn)行編碼。
21.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所述媒體內(nèi)容傳送子系統(tǒng)從所請(qǐng)求的媒體內(nèi)容中的已經(jīng)停止傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分的點(diǎn),開始傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分;
22.根據(jù)權(quán)利要求21所述的設(shè)備,其中,所述媒體內(nèi)容傳送子系統(tǒng)參考索引找到在所請(qǐng)求的媒體內(nèi)容中的被編碼為所述第二比特率的媒體幀,所述媒體幀與其中停止傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分的媒體幀相關(guān)聯(lián),并且其中,所述媒體內(nèi)容傳送子系統(tǒng)從所請(qǐng)求的媒體內(nèi)容中的被編碼為所述第二比特率的相關(guān)聯(lián)媒體幀開始傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分。
23.根據(jù)權(quán)利要求21所述的設(shè)備,其中,所述媒體內(nèi)容傳送子系統(tǒng)在所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的媒體部分組塊的末尾處停止傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分,并開始從所請(qǐng)求的媒體內(nèi)容中的被編碼為所述第二比特率的媒體部分組塊的起點(diǎn)處傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第二比特率的部分,所請(qǐng)求的媒體內(nèi)容中的被編碼為所述第二比特率的媒體部分組塊的起點(diǎn)與所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的媒體部分組塊的末尾在時(shí)間上是連續(xù)的。
24.根據(jù)權(quán)利要求15所述的設(shè)備,其中,當(dāng)將所請(qǐng)求的媒體內(nèi)容的部分傳送至所述客戶端系統(tǒng)時(shí),所述媒體內(nèi)容傳送子系統(tǒng)傳送作為所請(qǐng)求的媒體內(nèi)容的部分的一部分的替代內(nèi)容。
25.根據(jù)權(quán)利要求15所述的設(shè)備,其中,當(dāng)從原始服務(wù)器接收到所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分時(shí),所述媒體內(nèi)容傳送子系統(tǒng)傳送所請(qǐng)求的媒體內(nèi)容的被編碼為所述第一比特率的部分。
26.根據(jù)權(quán)利要求25所述的設(shè)備,其中,對(duì)從所述原始服務(wù)器接收的被編碼為所述第一比特率的所請(qǐng)求的媒體內(nèi)容進(jìn)行排隊(duì),以由所述服務(wù)器編碼成所述第二比特率。
27.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所請(qǐng)求的媒體內(nèi)容為音頻內(nèi)容。
28.根據(jù)權(quán)利要求15所述的設(shè)備,其中,所請(qǐng)求的媒體內(nèi)容為視頻內(nèi)容。
全文摘要
用于傳送可變比特率媒體文件的方法和設(shè)備將媒體文件傳送至客戶端系統(tǒng)。媒體服務(wù)器可以動(dòng)態(tài)地檢測(cè)客戶端何時(shí)能夠接受不同比特率版本的媒體內(nèi)容。當(dāng)媒體服務(wù)器將媒體內(nèi)容傳送至客戶端系統(tǒng)時(shí),媒體服務(wù)器可以在不同比特率版本的媒體內(nèi)容之間平滑地切換??蛻舳讼到y(tǒng)在播放媒體內(nèi)容的同時(shí)還可以請(qǐng)求不同比特率版本的媒體內(nèi)容。
文檔編號(hào)G06F15/16GK102439579SQ201080020837
公開日2012年5月2日 申請(qǐng)日期2010年3月18日 優(yōu)先權(quán)日2009年3月18日
發(fā)明者什瓦庫馬爾·卡拉斯祖烏·納拉亞南, 庫馬爾·納拉亞南, 普拉巴卡爾·桑德拉詹, 祖貝爾·維沙拉姆, 蘇尼爾·穆昆丹, 雅斯帕·科利 申請(qǐng)人:叢林網(wǎng)絡(luò)公司