促進實時視頻流送的系統(tǒng)、設(shè)備和方法
【專利摘要】在本公開中提供了用于從至少兩個實時視頻流生成主視頻流的系統(tǒng)和方法。所述系統(tǒng)包括將實時視頻流組合以生成主視頻流的組合部件。在一方面,實時視頻流可以是根據(jù)用戶數(shù)據(jù)報協(xié)議從不同位置多播的同一記錄的副本。所述實時視頻流由于傳輸而遭受不同的錯誤,諸如流毀壞或流錯誤。所述組合部件消除了由于傳輸而引起的實時視頻中的錯誤且創(chuàng)建基本上無錯誤的主視頻流。
【專利說明】促進實時視頻流送的系統(tǒng)、設(shè)備和方法
[0001]相關(guān)申請的交叉引用
[0002]本申請要求于2012年4月12日提交的題為“SYSTEM, APPARATUS AND METHOD TOFACILITATE LIVE VIDEO STREAMING”的美國專利申請序號13/445,588的權(quán)益。其全部內(nèi)容被通過引用合并到本文中。
【技術(shù)領(lǐng)域】
[0003]本公開涉及媒體流送,更具體地涉及利用數(shù)字視頻流以進行實時視頻流送。
【背景技術(shù)】
[0004]媒體共享服務(wù)隨著連接速度增加而在因特網(wǎng)上變得豐富,為消費者提供了上傳例如其自己的個人視頻的能力。大多數(shù)媒體共享服務(wù)嚴格地充當(dāng)中介,例如其為用戶提供顯示用戶的視頻版本的論壇。媒體共享服務(wù)然后可托管用戶上傳的媒體,允許因特網(wǎng)上的其他用戶有觀看上傳媒體的能力。媒體共享服務(wù)還能夠?qū)碜詫崟r事件的媒體流送。例如,媒體共享服務(wù)可以托管能夠被顯示給媒體共享服務(wù)的用戶的實時體育事件。
[0005]媒體共享服務(wù)常常經(jīng)由協(xié)議通過網(wǎng)絡(luò)來接收經(jīng)受流毀壞或流錯誤的實時視頻流。流毀壞或流錯誤可在播放期間引起可見的偽像。甚至更壞,流毀壞或流錯誤在某些情況下甚至可導(dǎo)致后續(xù)解碼器系統(tǒng)崩潰。
【發(fā)明內(nèi)容】
[0006]下面提出了本說明書的簡化概要以提供本說明書的某些方面的基本理解。此概要不是本說明書的全面概述。既不意圖識別本說明書的關(guān)鍵或必需元素,也不意圖描述本說明書的特定實施例的任何范圍或權(quán)利要求的任何范圍。其唯一目的是以簡化形式提出本說明書的某些改變作為稍后提出的更詳細描述的前奏。
[0007]根據(jù)一個或多個實施例和相應(yīng)公開,結(jié)合提供實時視頻流來描述各種非限制性方面。
[0008]根據(jù)非限制性實施例,提供了一種包括生成至少兩個實時視頻流的至少一個媒體內(nèi)容生成器的系統(tǒng)。所述至少兩個實時視頻流被組合部件所組合。該組合部件從組合的至少兩個實時視頻流生成主視頻流。根據(jù)一方面,該系統(tǒng)進一步包括使所述至少兩個實時視頻流同步的同步部件。該同步部件通過使各個段的指紋或其他元數(shù)據(jù)匹配來使所述至少兩個實時視頻流同步,以促進其組合。
[0009]根據(jù)另一非限制性實施例,提供了一種用于生成主視頻流的方法。接收至少兩個實時視頻流并將其組合。從所述至少兩個實時視頻流的組合生成主視頻流。根據(jù)一方面,主視頻流是基本上沒有錯誤的。通過修正每個可遭受流毀壞或流錯誤或經(jīng)受其他形式的數(shù)字錯誤(諸如毀壞或重復(fù)數(shù)據(jù))的至少兩個實時視頻流來生成基本上沒有錯誤的主流。通過使所述至少兩個實時視頻流中的分組(packet)的指紋匹配并用另一數(shù)據(jù)流的相應(yīng)分組來替換一個數(shù)據(jù)流中的丟失分組來修正所述至少兩個實時視頻流的流毀壞或流錯誤。
[0010]在另一非限制性實施例中,提供了能夠執(zhí)行促進主視頻流的生成的操作的計算機可讀存儲介質(zhì)。該操作包括接收至少兩個實時視頻流并通過將所述至少兩個實時視頻流組合來生成主視頻流。根據(jù)一方面,該操作還包括向所述至少兩個實時視頻流分配權(quán)值并根據(jù)所分配的權(quán)值將所述至少兩個實時視頻流組合??苫谀軌虮容^的視頻流的發(fā)起位置、可靠性或任何其他參數(shù)來分配權(quán)值。
[0011]以下描述和附圖闡述了本說明書的某些說明性方面。然而,這些方面指示可用以采用本說明書的原理的幾個不同方式。當(dāng)結(jié)合附圖來考慮時,從本說明書的以下詳細描述,本說明書的其他目的、優(yōu)點和新型特征將變得顯而易見。
【專利附圖】
【附圖說明】
[0012]在考慮結(jié)合附圖進行的以下詳細描述時,本發(fā)明的許多方面、實施例、目的和優(yōu)點將是顯而易見的,在附圖中相同的附圖標記自始至終指示相同的部分,并且在所述附圖中:
[0013]圖1圖示出根據(jù)本文所述的各個方面和實施方式的促進主媒體流的生成的示例性非限制性系統(tǒng);
[0014]圖2圖示出根據(jù)本文所述的各個方面和實施方式的使至少兩個媒體流同步以促進所述至少兩個實時視頻流的組合的示例性非限制性系統(tǒng);
[0015]圖3圖示出根據(jù)本文所述的各個方面和實施方式的至少兩個實時視頻流的生成的示例性非限制性描述;
[0016]圖4圖示出根據(jù)本文所述的各個方面和實施方式的不同地理位置處的視頻流的處理的示例性非限制性描述;
[0017]圖5圖示出根據(jù)本文所述的各個方面和實施方式的促進給最終用戶的主視頻流的服務(wù)的示例性非限制性系統(tǒng);
[0018]圖6圖示出根據(jù)本文所述的各個方面和實施方式的示出了在視頻流中發(fā)送的不同類型的分組的圖例的示例性非限制性描述;
[0019]圖7圖示出根據(jù)本文所述的各個方面和實施方式的在主視頻流的生成中利用的具有不同流毀壞或流錯誤的不同視頻流的示例性非限制性描述;
[0020]圖8圖示出根據(jù)本文所述的各個方面和實施方式的通過根據(jù)處方(recipe)將視頻流組合來促進數(shù)據(jù)中心處的主視頻流生成的示例性非限制性系統(tǒng);
[0021]圖9圖示出根據(jù)本文所述的各個方面和實施方式的通過用來自外部視頻流的分組來替換本地視頻流中的分組而生成主視頻流的示例性非限制性系統(tǒng);
[0022]圖10圖示出根據(jù)本文所述的各個方面和實施方式的通過根據(jù)處方用來自外部視頻流的分組來補償本地視頻流中的流毀壞或流錯誤而促進數(shù)據(jù)中心處的主視頻流的生成的示例性非限制性系統(tǒng);
[0023]圖11圖示出根據(jù)本文所述的各個方面和實施方式的用于生成主視頻流的示例性非限制性方法;
[0024]圖12圖示出根據(jù)本文所述的各個方面和實施方式的用于從已遭受流毀壞或流錯誤的至少兩個實時視頻流生成基本上無錯誤的主視頻流的示例性非限制性方法;
[0025]圖13圖示出根據(jù)本文所述的各個方面和實施方式的用于使用分配給已遭受流毀壞或流錯誤的視頻流的權(quán)值來生成主視頻流的示例性非限制性方法;
[0026]圖14圖示出用于實現(xiàn)本文所述一個或多個實施例的示例性非限制性聯(lián)網(wǎng)或分布式計算環(huán)境的示意圖;以及
[0027]圖15圖示出其中可以實現(xiàn)各種實施例的示例性非限制性計算系統(tǒng)或操作環(huán)境的框圖。
【具體實施方式】
[0028]參考附圖來描述本公開的各種方面或特征,其中,相同的附圖標記自始至終用來指代相同的元件。在本說明書中,闡述了許多特定細節(jié)以便提供本公開的透徹理解。然而,應(yīng)理解的是可在沒有這些特定細節(jié)的情況下或者用其他方法、部件、材料等來實施公開的某些方面。在其他情況下,以框圖形式示出了眾所周知的結(jié)構(gòu)和設(shè)備以促進本創(chuàng)新的描述和圖不。
[0029]將認識到的是根據(jù)本公開中所述的一個或多個實施例或?qū)嵤┓绞?,可以通過網(wǎng)絡(luò)來接收實時視頻流的多個副本。當(dāng)在本文中使用時,術(shù)語“視頻流”將被理解為指的是實時視頻流。視頻流的多個副本每個可以遭受各種流毀壞或錯誤??梢孕拚曨l流的多個副本中的流毀壞或錯誤并且可以存儲已修正的視頻流并派發(fā)給最終用戶。已修正的視頻流消除可見偽像和與流毀壞或流錯誤相關(guān)聯(lián)的其他問題。
[0030]現(xiàn)在參考附圖,最初參考圖1,呈現(xiàn)了促進主視頻流的生成的系統(tǒng)100。在本公開中解釋的系統(tǒng)、設(shè)備和過程的各方面可以組成在一個或多個機器內(nèi)體現(xiàn)、例如在與一個或多個機器相關(guān)聯(lián)的一個或多個計算機可讀介質(zhì)中體現(xiàn)的機器可執(zhí)行部件。一個或多個此類部件在被一個或多個機器、例如一個或多個計算機、一個或多個計算設(shè)備、一個或多個虛擬機等執(zhí)行時可以促使一個或多個機器執(zhí)行所述操作。系統(tǒng)100可以包括用于存儲計算機可執(zhí)行部件和指令的存儲器,并且一個或多個處理器可以促進由系統(tǒng)100進行的計算機可執(zhí)行部件和指令的操作。
[0031]在實施例中,系統(tǒng)100可以包括一個或多個媒體內(nèi)容生成器102和組合部件108。系統(tǒng)100表示可以在一個或多個數(shù)據(jù)中心中的一個或多個計算機或設(shè)備中采用以提供主媒體流110的系統(tǒng)。一個或多個媒體內(nèi)容生成器102生成至少兩個媒體流104a、104b。雖然圖示出僅兩個數(shù)據(jù)流的生成,但將理解的是一個或多個媒體內(nèi)容生成器102可以生成大于或等于兩個的任何數(shù)目(N)的媒體流。根據(jù)實施例,生成的媒體流的數(shù)目可以是四個(N=4)。根據(jù)另一實施例,生成的媒體流的數(shù)目可以是大于3的任何奇數(shù)(N > 3)。在實施例中,媒體流104a、104b可以是彼此相同的副本。根據(jù)另一實施例,媒體流104a、104b可以相互不同(例如,可以相互不同地對媒體流104a、104b進行編碼)。
[0032]通過由組合部件108進行的兩個或更多媒體流104a 104b的組合,主媒體流100可以是基本上無錯誤的。組合部件108可以利用與媒體流104a、104b相關(guān)聯(lián)的指紋或其他元數(shù)據(jù)106a、106b來匹配媒體流104a、104b的各種段或分組以促進組合。組合部件108可以利用使媒體流104a、104b的段匹配并用另一媒體流104a或104b的完整段來替換一個媒體流104a或104b的丟失段。
[0033]本文所使用的術(shù)語“媒體”可以包括任何多媒體數(shù)據(jù)。多媒體數(shù)據(jù)的示例包括但不限于:視頻數(shù)據(jù)、音頻數(shù)據(jù)、視頻游戲數(shù)據(jù)或可以流送的任何其他類型的數(shù)據(jù)。本文所使用的術(shù)語“段”指的是媒體流的任何部分。例如,媒體流的段可以是經(jīng)由用戶數(shù)據(jù)報協(xié)議(UDP)發(fā)送的視頻流的分組。常常經(jīng)由經(jīng)受流毀壞或流錯誤的不可靠協(xié)議(類似于UDP)通過網(wǎng)絡(luò)來發(fā)送數(shù)字視頻流。數(shù)字視頻流被劃分成分組或數(shù)據(jù)報并根據(jù)UDP來發(fā)送;然而,UDP不提供對分組進行序列化以用于數(shù)字視頻流的重組。不能對分組進行序列化導(dǎo)致流毀壞或流錯誤。在數(shù)字視頻流的播放期間,流毀壞或流錯誤可以引起可見偽像。在某些情況下,流毀壞或流錯誤可以促使后續(xù)解碼器系統(tǒng)崩潰。將理解的是媒體流的段可以指的是經(jīng)由任何協(xié)議從源發(fā)送到目的地的媒體流的任何部分。例如,可以跨更可靠的協(xié)議(諸如TCP/IP)發(fā)送媒體流。
[0034]現(xiàn)在參考圖2,示出了使至少兩個媒體流104a、104b同步以促進至少兩個實時視頻流104a、104b的組合的系統(tǒng)200。根據(jù)實施例,系統(tǒng)200可以包括一個或多個媒體內(nèi)容生成器102、同步部件202以及組合部件108。一個或多個媒體內(nèi)容生成器提供兩個或更多媒體流104a、104b。兩個或更多媒體流104a、104b和與媒體流104a、104b相關(guān)聯(lián)的指紋或其他元數(shù)據(jù)106a、106b被發(fā)送到同步部件202。同步部件可以使至少兩個實時視頻流104a、104b同步以促進由組合部件108將至少兩個實時視頻流104a、104b組合成主媒體流110。
[0035]在實施例中,同步部件202可以使媒體流104a的段的指紋或其他相關(guān)聯(lián)的元數(shù)據(jù)104a與另一媒體流104b的相應(yīng)段的指紋或其他相關(guān)聯(lián)的元數(shù)據(jù)104b匹配。當(dāng)在本文中使用時,“指紋”指的是與媒體流的段的一組數(shù)據(jù)分組相關(guān)聯(lián)的元數(shù)據(jù)。同步部件202創(chuàng)建被發(fā)送到組合部件108以促進主媒體流110的生成的同步媒體流204a、204b。
[0036]在從任何類型的媒體流中的兩個或更多生成主媒體流110時可以利用圖1和2的系統(tǒng)100和200。圖3-10圖示出相對于特定示例:視頻流的本公開的實施例和方面。將理解的是圖3-10中的相對于視頻流所述的實施例和方面可以用于圖1和2的系統(tǒng)100和200的任何媒體流。
[0037]圖3中所示的是至少兩個實時視頻流306和308的生成的示例性非限制性描述300??梢杂擅襟w內(nèi)容生成器102來生成所述至少兩個實時視頻流306、308。根據(jù)實施例,媒體內(nèi)容生成器102可以包括相機302和編碼器304。
[0038]相機302可以記錄與任何事件有關(guān)的視頻數(shù)據(jù)。例如,相機可以記錄實時事件的視頻數(shù)據(jù)。根據(jù)實施例,實時事件可以是體育事件。然而,該事件不必局限于實時事件。
[0039]可以將視頻數(shù)據(jù)發(fā)送到可以對視頻數(shù)據(jù)進行編碼以便跨協(xié)議發(fā)送到至少兩個數(shù)據(jù)中心(如圖3中所示的數(shù)據(jù)中心A和B)的視頻數(shù)據(jù)進行編碼的編碼器304。例如,數(shù)據(jù)中心A可以從編碼器304接收視頻流A 306,而數(shù)據(jù)中心B可以從編碼器304接收單獨視頻流 B 308 ο
[0040]數(shù)據(jù)中心A位于地理位置A 310處。同樣地,數(shù)據(jù)中心B位于地理位置B 312處。根據(jù)實施例,地理位置A和地理位置B可以位于相互遠離處。例如,地理位置A可以在北美,而地理位置B可以在歐洲。然而,將理解的是地理位置A和B不必位于相互遠離處。例如,地理位置A和B兩者可以位于美國的同一機構(gòu)中,但是地理位置A和B可以對應(yīng)于接收不同視頻流306、308的不同硬件或軟件。
[0041]圖4圖示出位于不同地理位置A和B 310、312處的不同數(shù)據(jù)中心處的視頻流306、308的處理的示例性非限制性描述400。地理位置A310處的數(shù)據(jù)中心A包括將視頻流306發(fā)送到另一路由器(路由器Al)406以用于進一步分發(fā)的路由器(路由器A)402。路由器(路由器A) 402還將視頻流306的副本發(fā)送到另一路由器(路由器A2) 408。路由器(路由器Al和路由器A2) 406和408促進相應(yīng)視頻流306和視頻流306的副本到相應(yīng)代理(代理Al和代理A2) 414和416的傳輸。
[0042]“代理”是用于視頻流306和視頻流306的副本的不同“目的地點”且與存儲設(shè)備422,424相關(guān)聯(lián),其提供對應(yīng)于視頻流306或視頻流306的副本的視頻段104a、104b和相關(guān)聯(lián)的元數(shù)據(jù)106a、106b的至少臨時存儲。存儲422、424可以是基于存儲器或盤的。根據(jù)實施例,利用基于盤的存儲,因為基于此盤的存儲提供高度的可靠性,因為即使在存在代理414、416故障的情況下,基于盤的存儲也是持久性的。
[0043]代理(代理Al和代理A2) 414和416確定與視頻流306和視頻流306的副本的分組相關(guān)聯(lián)的指紋或其他元數(shù)據(jù)。視頻流104a 104b的分組和相關(guān)聯(lián)的指紋或其他元數(shù)據(jù)106a、106b被至少臨時地存儲在地理位置A 310內(nèi)的不同位置處的存儲設(shè)備422和424中。作為非限制性示例性,如果地理位置A 310是美國,則路由器402可以位于紐約市,而路由器406、代理414和存儲設(shè)備422可以位于紐約市且路由器406、代理416和存儲設(shè)備424可以位于波士頓。將理解的是美國、紐約市和波士頓可以是任何國家、州、省或地區(qū)。
[0044]在非限制性示例中,可以經(jīng)由UDP或網(wǎng)絡(luò)隧道上UDP將視頻流A 306和視頻流A的副本多播到各個路由器402、406、408或代理414、416。根據(jù)實施例,可以將視頻流A 306和視頻流A 306的副本接收為密封MEG2傳輸流(M2TS),其可以被實時傳輸協(xié)議(RTP)進一步密封。然而,可以有其他格式,諸如實時通訊協(xié)議(RTMP)上的flash視頻(FLV)。
[0045]在每次傳輸時,視頻流A 306和視頻流A 306的副本可能遭受流毀壞或流錯誤。當(dāng)在本文中使用時,“流毀壞或流錯誤”指的是遺漏,毀壞或被損壞的視頻段。視頻流A 306和視頻流A 306的副本的流毀壞或流錯誤被假設(shè)為是獨立的。換言之,視頻流A 306遭受不與視頻流A 306的副本的流毀壞或流錯誤相關(guān)的流毀壞或流錯誤。同樣地,視頻流A 306的流毀壞或流錯誤被假設(shè)為獨立于視頻流B的流毀壞或流錯誤。
[0046]類似于位于位置A 310處的數(shù)據(jù)中心,位于位置B 312處的數(shù)據(jù)中心包括將視頻流308發(fā)送到另一路由器(路由器BI) 410以用于進一步分發(fā)的路由器(路由器B) 404。路由器(路由器B)404還將視頻流308的副本發(fā)送到另一路由器(路由器B2)412。路由器(路由器B I和路由器B2) 410和412促進相應(yīng)視頻流308和視頻流308的副本到相應(yīng)代理(代理BI和代理B2) 418和420的傳輸。根據(jù)實施例,可以將視頻流B 308和視頻流B 308的副本接收為密封MEG2傳輸流(M2TS),其可以被實時傳輸協(xié)議(RTP)進一步密封。然而,可以有其他格式,諸如實時通訊協(xié)議(RTMP)上的flash視頻(FLV)。
[0047]代理(代理BI和代理B2) 418和420確定與視頻流308和視頻流308的副本的分組相關(guān)聯(lián)的指紋或其他元數(shù)據(jù)。視頻流104c、104d的分組和相關(guān)聯(lián)的指紋或元數(shù)據(jù)106c、106d被存儲在地理位置B 312內(nèi)的不同位置處的存儲設(shè)備426和428中。
[0048]在非限制性示例中,類似于視頻流A 306,可以經(jīng)由UDP或網(wǎng)絡(luò)隧道上UDP將視頻流B 308和視頻流B 306的副本多播到各種路由器404、410、412或代理418、420。在每次傳輸時,視頻流B 308和視頻流B 308的副本可能遭受流毀壞或流錯誤。視頻流B 308和視頻流B 308的副本的流毀壞或流錯誤被假設(shè)為是獨立的。換言之,視頻流B 308遭受不與視頻流B 308的副本的流毀壞或流錯誤相關(guān)的流毀壞或流錯誤。視頻流B 308的流毀壞或流錯誤也被假設(shè)為獨立于視頻流A 306的流毀壞或流錯誤。
[0049]可以結(jié)合圖5的系統(tǒng)500而利用圖3和4的描述300和400以促進給最終用戶的主視頻流110a、110b、110c、I1d的服務(wù)。該系統(tǒng)包括獲取可能毀壞的視頻流104a、104b、104c、104d、檢測錯誤并修正錯誤的拼接器(stitcher) 502。根據(jù)實施例,拼接器502可以通過用來自不同流的無錯誤分組來替換具有錯誤的分組而修正錯誤。在另一實施例中,拼接器502可以促進流中的錯誤的修正。拼接器502包括如相對于圖1所述的組合部件108??蛇x地,根據(jù)實施例,拼接器502還可以包括如相對于圖2所述的同步部件202。
[0050]拼接器502可以從不同的位置接收視頻流104a、104b、104c、104d和相關(guān)聯(lián)的指紋或其他元數(shù)據(jù)106a、106b、106c、106d。根據(jù)實施例,拼接器可以從來自圖4的數(shù)據(jù)位置A的存儲422和424接收視頻104a、104b和相應(yīng)指紋或其他元數(shù)據(jù)106a、106b并從圖4的數(shù)據(jù)中心B的存儲426和428接收視頻104c、104d和相應(yīng)指紋及其他元數(shù)據(jù)106a、106b。
[0051]拼接器502的組合部件108可以將視頻流104a、104b、104c、104d組合以檢測且消除視頻流104a、104b、104c、104d中的錯誤。組合部件108可以檢測毀壞段、遺漏段、復(fù)制段以及假段。根據(jù)實施例,組合部件108不需要檢測特定類型的錯誤。例如。組合部件108可以將毀壞段和假段檢測為相同種類的“噪聲”。
[0052]組合部件108可以消除任何所檢測的流毀壞或流錯誤或錯誤并產(chǎn)生被發(fā)送到存儲設(shè)備504、506、508、510的冗余主副本110a、110b、110c、IlOcL雖然存儲設(shè)備504,506,508,510被示為與存儲422、424、426、428分開的存儲設(shè)備,但將理解的是存儲設(shè)備可以是相同的(例如,存儲422對應(yīng)于存儲504、存儲424對應(yīng)于存儲506、存儲426對應(yīng)于存儲508、存儲428對應(yīng)于存儲508)。
[0053]冗余主副本110a、110b、110c、I 1d未遭受視頻流104a、104b、104c、104d中的流毀壞或流錯誤。組合部件108將視頻流104a、104b、104c、104d組合以消除任何流毀壞或流錯誤,使得主副本110a、110b、110c、I 1d基本上無錯誤。根據(jù)實施例,同步部件202可以根據(jù)相關(guān)聯(lián)的指紋或元數(shù)據(jù)106a、106b、106c、106d使視頻流104a、104b、104c、104d同步。同步部件202可以促進由組合部件108將視頻流104a、104b、104c、104d組合成冗余主視頻流110a、110b、110c、110d。
[0054]系統(tǒng)500還包括視頻服務(wù)器512,其能夠促進給最終用戶的冗余主視頻流110a、110b、110c、110d中的一個的服務(wù)。視頻服務(wù)器512可以訪問任何存儲位置504、506、508、510以促進服務(wù)。根據(jù)實施例,視頻服務(wù)器可以根據(jù)每個存儲位置的負荷、每個存儲位置的可靠性、每個存儲位置的位置、用于每個存儲位置的預(yù)定義訪問調(diào)度或能夠用來確定存儲位置中的哪一個可以快速地且準確地哪個存儲位置可以給最終用戶派發(fā)視頻饋送的任何其他參數(shù)來訪問存儲位置504、506、508、510。
[0055]圖6和7圖示出可以用來生成基本上無錯誤的主視頻流的具有不同流毀壞或流錯誤的不同視頻流的描述600、700。圖6圖示出存在于數(shù)據(jù)流中的不同類型的段或分組的圖例600。針對每個段,視頻流被假設(shè)為具有沒有錯誤或流毀壞或流錯誤的視頻段602。雖然可以存在許多類型的流毀壞或流錯誤,但任何流毀壞或流錯誤被假設(shè)為落入在毀壞視頻段608或遺漏視頻段610的種類中。毀壞視頻段608可以包括毀壞、重復(fù)、假的等任何視頻段。根據(jù)另一實施例,某些錯誤可以忽視。
[0056]根據(jù)實施例,沒有錯誤的視頻段602可以包括指紋606。毀壞視頻段608也可以包括指紋614,但是指紋614可以不同于將提供給沒有錯誤或毀壞的同一段的指紋。根據(jù)實施例,分組可以是表示內(nèi)容的摘要或尺寸減小的值。然而,指紋不必是表示內(nèi)容的摘要或尺寸減小的值。在另一實施例中,分組可以是內(nèi)容的一部分或整個內(nèi)容。
[0057]沒有錯誤的視頻段602還可以包括附加元數(shù)據(jù)。根據(jù)實施例,附加元數(shù)據(jù)可以包括時間戳604。
[0058]圖7圖示出在主視頻流的生成中利用的具有不同流毀壞或流錯誤的不同視頻流的描述700。主視頻流是基本上無錯誤的,即使不同的視頻流每個顯示出不同的流毀壞或流錯誤。
[0059]現(xiàn)在參考圖8,圖示出通過根據(jù)處方810來組合視頻而促進數(shù)據(jù)中心處的主視頻流I1的生成的系統(tǒng)800。系統(tǒng)800包括相對于圖5所述的拼接器502。拼接器從位于不同數(shù)據(jù)中心820、840、860、880處的存儲422、424、426、428接收視頻流。拼接器502執(zhí)行視頻流的確定性分段。根據(jù)實施例,拼接器502檢測視頻流中的觸發(fā)段邊界創(chuàng)建的某些區(qū)別標記。可以采用不同的分段方法。根據(jù)實施例,如果視頻流的分組非常小且被確定為不重要,則可以將段序列組合成較長的視頻段。
[0060]拼接器502可以采用比較部件108來比較視頻流的不同段并對顯示出錯誤的任何段執(zhí)行修正。根據(jù)實施例,可以以逐段方式來進行比較。該逐段比較允許拼接器502確定兩個或更多分組是相等還是不相等。通過不比較實際段內(nèi)容而是比較段內(nèi)容的指紋或其他元數(shù)據(jù)而使得比較更加高效。例如,元數(shù)據(jù)可以包括段的時間代碼、隨后段的時間代碼以及內(nèi)容的散列碼。在另一實施例中,如果基于元數(shù)據(jù)的比較是不可用的,例如因為輸入流并不是位相同的,則可以采用基于視頻內(nèi)容的相似性度量?;趦?nèi)容的相似性度量的示例包括圖像與圖像匹配、基于直方圖的匹配、基于特征的匹配、基于壓縮域的匹配等。
[0061]基于指紋或其他元數(shù)據(jù)來比較段允許拼接器502避免從數(shù)據(jù)中心820、840、860、880(或數(shù)據(jù)中心820、840、860、880處的代理)獲取實際視頻段。替代地,拼接器502只需要獲取視頻段的指紋或其他元數(shù)據(jù)表示,其使得拼接器502在網(wǎng)絡(luò)帶寬和CPU利用率兩者方面都是高效的。視頻數(shù)據(jù)的實際獲取被延遲直至比較完成為止,并且拼接器502需要找到主視頻流110的每個段的副本。
[0062]根據(jù)實施例,拼接器可以創(chuàng)建用于創(chuàng)建到每個數(shù)據(jù)中心820、840、860、880的主視頻流110的處方810。將僅描述數(shù)據(jù)中心A 820處的主視頻流110的創(chuàng)建。然而,將理解的是可以針對每個數(shù)據(jù)中心創(chuàng)建類似處方??梢詫⑻幏?10發(fā)送到數(shù)據(jù)中心820處的協(xié)調(diào)器802。每個數(shù)據(jù)中心840、860、880具有能夠類似地操作的相應(yīng)協(xié)調(diào)器804、806、808。
[0063]協(xié)調(diào)器802可以檢索對應(yīng)于處方810的視頻段。處方810在每當(dāng)可能的情況下使用本地存儲的段。只有當(dāng)在本地存儲的分組中發(fā)生流毀壞或流錯誤時,處方810才要求外部存儲的段。
[0064]雖然僅一個外部數(shù)據(jù)中心(數(shù)據(jù)中心D 880)被示為向數(shù)據(jù)中心A820的協(xié)調(diào)器提供外部分組,但將理解的是所有其他數(shù)據(jù)中心840、860、880可以向數(shù)據(jù)中心A 820提供外部分組。如圖9中所示,可以根據(jù)處方810從任何外部數(shù)據(jù)中心檢索外部分組。
[0065]圖10圖示出類似于系統(tǒng)800的系統(tǒng)1000。系統(tǒng)1000通過根據(jù)處方1002用來自外部視頻流的分組來補償本地視頻流中的流毀壞或流錯誤而促進數(shù)據(jù)中心D 880處的主視頻流的生成。處方1002在段經(jīng)歷流毀壞或流錯誤或其他錯誤時檢索外部段,并且在不存在錯誤時默認返回到本地副本。
[0066]每個其他數(shù)據(jù)中心820、840、860是協(xié)調(diào)器808可訪問的。處方指示外部段可以來自數(shù)據(jù)中心A 820、數(shù)據(jù)中心B 840或數(shù)據(jù)中心C860。根據(jù)實施例,將提供外部段的數(shù)據(jù)中心的選擇可以基于用于在外部數(shù)據(jù)源之間進行切換的調(diào)度。在另一實施例中,將提供外部段的數(shù)據(jù)中心的選擇可以基于給予不同數(shù)據(jù)中心820、840、860的權(quán)值。該權(quán)值可以基于數(shù)據(jù)中心的任何參數(shù),諸如位置、可靠性、負荷等。在權(quán)值基于位置的情況下,數(shù)據(jù)中心C 860可以具有高于數(shù)據(jù)中心A和B820和840的權(quán)值,因為數(shù)據(jù)中心C 860在與數(shù)據(jù)中心D 880相同的地理位置。然而,如果在地理位置中存在一般中斷,則位于不同地理位置處的數(shù)據(jù)中心A和B 820和840可以具有大于數(shù)據(jù)中心C 860的權(quán)值。
[0067]圖11-13圖示出根據(jù)本公開的實施方式的方法和/或流程圖。為了說明的簡化起見,將該方法描繪并描述為一系列動作。然而,根據(jù)本公開的動作可以按照各種順序和/或同時地發(fā)生,以及與在本公開中并未提出和描述的其他動作一起發(fā)生。此外,可能并非所有所示動作都是實現(xiàn)根據(jù)公開主題的方法所需要的。另外,本領(lǐng)域的技術(shù)人員將理解和認識到的是可以經(jīng)由狀態(tài)圖或事件替選地將該方法表示為一系列互相關(guān)狀態(tài)。另外,應(yīng)進一步認識到的是在本說明書中公開的方法能夠存儲在制品上以促進將此類方法傳送和傳輸?shù)接嬎阍O(shè)備。如在本公開中所使用的術(shù)語意圖涵蓋可從任何計算機可讀設(shè)備或計算機可讀存儲/通信介質(zhì)訪問的計算機程序。
[0068]參考圖11,提出了根據(jù)實施例的在本說明書中描述的系統(tǒng)的示例性應(yīng)用的流程圖。在一方面,用于生成主視頻流的系統(tǒng)的示例性方法1100被存儲在存儲器中且利用處理器來執(zhí)行計算機可執(zhí)行指令以執(zhí)行功能。在1102處,接收至少兩個實時視頻流(例如,使用組合部件108)。在1104處,將所述至少兩個實時視頻流組合(例如,使用組合部件108)。在1106處,從所述至少兩個實時視頻流生成主視頻流(例如,使用組合部件108)。
[0069]參考圖12,提出了根據(jù)實施例的在本說明書中描述的系統(tǒng)的示例性應(yīng)用的流程圖。在一方面,用于來自已遭受流毀壞或流錯誤的至少兩個實時視頻流的基本上無錯誤的主視頻流的系統(tǒng)的示例性方法1200存儲在存儲器中并利用處理器來執(zhí)行計算機可執(zhí)行指令以執(zhí)行功能。在1202處,接收具有第一流毀壞或流錯誤的第一數(shù)據(jù)流和具有第二流毀壞或流錯誤的第二數(shù)據(jù)流(例如,使用拼接器502從數(shù)據(jù)中心820、840、860、880)。在1204處,用第二數(shù)據(jù)流的相應(yīng)分組來修正第一數(shù)據(jù)流的第一流毀壞或流錯誤(例如使用拼接器502的修正部件108)。在1206處,生成基本上無錯誤的主視頻流(例如,由拼接器502)。
[0070]參考圖13,提出了根據(jù)實施例的在本說明書中描述的系統(tǒng)的示例性應(yīng)用的流程圖。在一方面,用于使用分配給已遭受流毀壞或流錯誤的視頻流的權(quán)值來生成主視頻流的系統(tǒng)的示例性方法1300被存儲在存儲器中并利用處理器來執(zhí)行計算機可執(zhí)行指令以執(zhí)行功能。
[0071]在1302處,向至少三個數(shù)據(jù)源分配權(quán)值(例如,使用數(shù)據(jù)源820、840、860或880處的協(xié)調(diào)器802、804、806或808)。例如,可以為與協(xié)調(diào)器相關(guān)聯(lián)的數(shù)據(jù)源分配最高或默認權(quán)值,同時可基于許多參數(shù)為其他數(shù)據(jù)源分配權(quán)值,其他參數(shù)諸如位置、可靠性、負荷等。在1304處,在來自數(shù)據(jù)源中的一個的視頻段中檢測錯誤(例如,使用拼接器502)。在1306處,根據(jù)權(quán)值用來自其他數(shù)據(jù)源中的一個的相應(yīng)視頻段來修正該視頻段中的錯誤(例如,使用協(xié)調(diào)器802、804、806或808和來自拼接器502的處方810)。
[0072]示例性聯(lián)網(wǎng)和分布式環(huán)境
[0073]本領(lǐng)域的技術(shù)人員可以認識到的是可以結(jié)合任何計算機或其他客戶端或服務(wù)器設(shè)備來實現(xiàn)本文所述的各種實施例,其可以被部署為計算機網(wǎng)絡(luò)的一部分或者在分布式計算環(huán)境中,并且可以連接到其中可找到媒體的任何種類的數(shù)據(jù)存儲。在這方面,可以在具有任何數(shù)目的存儲器或存儲單元以及跨任何數(shù)目的存儲單元發(fā)生的任何數(shù)目的應(yīng)用和進程的任何計算機系統(tǒng)或環(huán)境中實現(xiàn)本文所述的各種實施例。這包括但不限于具有部署在網(wǎng)絡(luò)環(huán)境或分布式計算環(huán)境中的服務(wù)器計算機和客戶端計算機的環(huán)境,具有遠程或本地存儲。
[0074]從位于分布式數(shù)據(jù)中心處的至少兩個媒體流創(chuàng)建基本上無錯誤的主媒體流包括用于對象的信息交換、高速緩存器存儲和磁盤存儲,所述對象諸如視頻流或視頻流的各部分。在這方面,多種設(shè)備可具有可參與本公開的各種實施例的應(yīng)用、對象或資源。
[0075]圖14提供了其中可以實現(xiàn)本文所述的實施例的示例性聯(lián)網(wǎng)或分布式計算環(huán)境的示意圖。分布式計算環(huán)境包括計算對象1410、1412等和計算對象或設(shè)備1420、1422、1424、1426、1428等,其可以包括如應(yīng)用1430、1432、14341436、14314所表示的程序、方法、數(shù)據(jù)存儲、可編程邏輯等??梢哉J識到的是計算對象1410、1412等和計算對象或設(shè)備1420、1422、1424、1426、1428等可以包括不同的設(shè)備,諸如個人數(shù)字助理(PDA)、音頻/視頻設(shè)備、移動電話、MPEG-1音頻層3 (MP3)播放器、個人計算機、膝上計算機、平板電腦等。
[0076]每個計算對象1410、1412等和計算對象或設(shè)備1420、1422、1424、1426、1428等可以直接地或間接地經(jīng)由通信網(wǎng)絡(luò)1440與一個或多個其他計算對象1410、1412等和計算對象或設(shè)備1420、1422、1424、1426、1428等通信。即使在圖14中被示為單個元件,通信網(wǎng)絡(luò)1440可以包括向圖14的系統(tǒng)提供服務(wù)的其他計算對象和計算設(shè)備和/或可以表示未示出的多個互聯(lián)網(wǎng)絡(luò)。每個計算對象1410、1412等或計算對象或設(shè)備1420、1422、1424、1426、1428等還可以包含應(yīng)用,諸如應(yīng)用1430、1432、1434、1436、1438,其可能利用應(yīng)用編程接口(API)或其他對象、軟件、固件和/或硬件,適合于與本公開的各種實施例進行通信或?qū)崿F(xiàn)該實施例。
[0077]存在支持媒體流的分布式存儲和基本上無錯誤的主媒體流的創(chuàng)建的多種系統(tǒng)、部件以及網(wǎng)絡(luò)配置。例如,可以用有線或無線系統(tǒng)、用本地網(wǎng)絡(luò)或廣泛分布網(wǎng)絡(luò)將計算系統(tǒng)連接在一起。當(dāng)前,許多網(wǎng)絡(luò)被耦合到因特網(wǎng),其提供用于廣泛分布計算的基礎(chǔ)設(shè)施并涵蓋許多不同網(wǎng)絡(luò),但可以將任何網(wǎng)絡(luò)基礎(chǔ)設(shè)施用于對系統(tǒng)進行的示例性實施例,如在各種實施例中所述。
[0078]因此,可以利用大量的網(wǎng)絡(luò)拓撲和網(wǎng)絡(luò)基礎(chǔ)設(shè)施,諸如客戶端/服務(wù)器、端對端或混合式架構(gòu)。客戶端可以是使用另一類或群組的服務(wù)的類或群組的成員??蛻舳丝梢允怯嬎銠C過程,例如大致上一組指令或任務(wù),其請求由另一程序或進程提供的服務(wù)??蛻舳丝梢栽诓槐刂狸P(guān)于其他程序或服務(wù)本身的所有工作細節(jié)的情況下利用所請求服務(wù)。
[0079]如在本申請中使用的術(shù)語“部件”、“模塊”、“系統(tǒng)”等意圖指的是計算機相關(guān)實體,為硬件、軟件、固件、硬件和軟件的組合、軟件和/或執(zhí)行中的軟件。例如,部件可以是但不限于是在處理器上運行的進程、處理器、對象、可執(zhí)行指令、執(zhí)行線程、程序和/或計算機。以舉例說明的方式,在計算設(shè)備上運行的應(yīng)用和/或計算設(shè)備兩者都可以是部件。一個或多個部件可以存在于執(zhí)行的進程和/或線程內(nèi),并且可以將部件定位于一個計算機上和/或分布在兩個或更多計算機之間。另外,這些部件可以從具有存儲在其上面的各種數(shù)據(jù)結(jié)構(gòu)的各種計算機可讀存儲介質(zhì)執(zhí)行。該部件可以經(jīng)由本地和/或遠程進程進行通信,諸如根據(jù)具有一個或多個數(shù)據(jù)分組的信號(例如,來自在本地系統(tǒng)、分布式系統(tǒng)中和/或經(jīng)由信號與其他系統(tǒng)跨網(wǎng)絡(luò)與另一部件相交互的一個部件的數(shù)據(jù),所述網(wǎng)絡(luò)諸如因特網(wǎng))。
[0080]此外,術(shù)語“或”意圖意指包括性“或”而非排他性“或”。也就是說,除非另外指明或從上下文顯而易見,短語“X采用A或B”意圖意指任何自然的包括性置換。也就是說,用任何一下實例來滿足短語“X采用A或B”:X采用A ;X采用B ;或X采用A和B兩者。另外,一般地應(yīng)將在本申請和所附權(quán)利要求中所使用的冠詞“一”和“一個”理解成意指“一個或多個”,除非另外指定或從上下文顯而易見是針對單數(shù)形式。
[0081]在客戶端/服務(wù)器結(jié)構(gòu)中,特別是聯(lián)網(wǎng)系統(tǒng),客戶端可以是訪問由另一計算機、例如服務(wù)器提供的共享網(wǎng)絡(luò)資源的計算機。在圖14的圖示中,作為非限制性示例,可以將計算對象或設(shè)備14201422、1424、1426、1428等視為客戶端且可以將計算對象1410、1412等視為服務(wù)器,其中,計算對象1410、1412等提供數(shù)據(jù)服務(wù),諸如從客戶端計算對象或設(shè)備1420、1422、1424、1426、1428等接收數(shù)據(jù)、存儲數(shù)據(jù)、處理數(shù)據(jù)、向客戶端計算對象或設(shè)備1420、1422、1424、1426、1428等發(fā)送數(shù)據(jù),但根據(jù)情況,可以將任何計算機視為客戶端、服務(wù)器或兩者。這些計算設(shè)備中的任何一個可處理數(shù)據(jù)或請求交易服務(wù)或任務(wù),其可以暗示用于如本文針對一個或多個實施例所述的系統(tǒng)的技術(shù)。
[0082]服務(wù)器通??梢允强赏ㄟ^遠程或本地網(wǎng)絡(luò)訪問的遠程計算機系統(tǒng),諸如因特網(wǎng)或無線網(wǎng)絡(luò)基礎(chǔ)設(shè)施??蛻舳诉M程可以在第一計算機系統(tǒng)中活動,并且服務(wù)器進程可以在第二計算機系統(tǒng)中活動,通過通信介質(zhì)相互通信,因此提供分布式功能并允許多個客戶端利用服務(wù)器的信息收集能力??梢元毩⒌靥峁└鶕?jù)本文所述的技術(shù)利用的任何軟件對象,或者跨多個計算設(shè)備或?qū)ο蠓植肌?br>
[0083]在其中通信網(wǎng)絡(luò)/總線1440可以是因特網(wǎng)的網(wǎng)絡(luò)環(huán)境中,例如,計算對象1410、1412等可以是web服務(wù)器、文件服務(wù)器、媒體服務(wù)器等,客戶端計算對象或設(shè)備1420、1422、1424、1426、1428等經(jīng)由許多已知協(xié)議中的任何一個、諸如超文本傳輸協(xié)議(HTTP)與之進行通信。計算對象1410、1412等還可以充當(dāng)客戶端計算對象或設(shè)備1420、1422、14241426、1428等,其可以是被用于媒體流的分布式存儲和主視頻流的創(chuàng)建的分布式計算環(huán)境的特性。
[0084]示例性計算設(shè)備
[0085]如所述,有利地,本文所述的技術(shù)可以應(yīng)用于任何適當(dāng)設(shè)備。因此,應(yīng)理解的是可預(yù)期各種各樣的手持式、便攜式及其他計算設(shè)備和計算對象結(jié)合各種實施例使用,即在設(shè)備可能希望從或向數(shù)據(jù)庫讀取或?qū)懭胧聞?wù)的任何地方。因此,下面在圖15中所述的以下遠程計算機僅僅是計算設(shè)備的一個示例。另外,適當(dāng)?shù)姆?wù)器可以包括以下計算機的一個或多個方面,諸如媒體服務(wù)器或其他媒體管理服務(wù)器部件。
[0086]雖然并不要求,但可以部分地經(jīng)由操作系統(tǒng)來實現(xiàn)實施例,以供用于設(shè)備或?qū)ο蟮姆?wù)的開發(fā)者使用,和/或包括在進行操作以執(zhí)行本文所述的各個實施例的一個或多個功能方面的應(yīng)用軟件內(nèi)??梢栽谟嬎銠C可執(zhí)行指令的一般背景下描述軟件,諸如程序模塊,由一個或多個計算機、諸如客戶端工作站、服務(wù)器或其他設(shè)備執(zhí)行。本領(lǐng)域的技術(shù)人員將認識到的是計算機系統(tǒng)具有可以用來傳送數(shù)據(jù)的多種配置和協(xié)議,并且因此不應(yīng)將特定配置或協(xié)議視為限制性的。
[0087]圖15因此圖示出其中可以實現(xiàn)本文所述實施例的一個或多個方面的適當(dāng)計算環(huán)境1500的示例,但如上文闡明的,計算環(huán)境1500僅僅是適當(dāng)計算環(huán)境的一個示例,并且并不意圖暗示關(guān)于使用或功能的范圍的任何限制。也不應(yīng)將計算環(huán)境1500解釋為具有關(guān)于在示例性計算環(huán)境1500中所示的部件中的任何一個或組合的任何依賴性或要求。
[0088]參考圖15,用于實現(xiàn)一個或多個實施例的示例性計算環(huán)境1500包括以計算機150的形式提供的計算設(shè)備。計算機1510的部件可以包括但不限于處理單元1520、存儲器1530以及將包括系統(tǒng)存儲器的各種系統(tǒng)部件耦合到處理單元1520的系統(tǒng)總線1522。系統(tǒng)存儲器可以存儲部件,例如拼接器502、組合部件108、協(xié)調(diào)器802、804、806、808等。處理器1520可以促進部件的執(zhí)行。
[0089]計算機1510通常包括多種計算機可讀介質(zhì)且可以是能夠被計算機1510訪問的任何可用介質(zhì)。存儲器1530可以包括采取易失性和/或非易失存儲器的形式的計算機存儲介質(zhì),諸如只讀存儲器(ROM)和/或隨機存取存儲器(RAM)。數(shù)據(jù)中心820、840、860和880可以采用易失性或非易失存儲器或其某些組合。以示例而非限制的方式,存儲器1530還可以包括操作系統(tǒng)、應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù)。
[0090]用戶可以通過輸入設(shè)備1540向計算機1510中輸入命令和信息,輸入設(shè)備1540的非限制性示例可以包括鍵盤、鍵區(qū)、指示設(shè)備、鼠標、觸針、觸控板、觸摸屏、軌跡球、運動檢測器、相機、麥克風(fēng)、操縱桿、游戲板、掃描儀或允許用戶與計算機1510相交互的任何其他設(shè)備。還可以經(jīng)由接口、諸如輸出接口 1550將監(jiān)視器或其他類型的顯示設(shè)備連接到系統(tǒng)總線1522。除監(jiān)視器之外,計算機還可以包括其他外圍輸出設(shè)備,諸如揚聲器和打印機,其可以通過輸出接口 1550來連接。
[0091]計算機1510可以使用到一個或多個其他遠程計算機或遠程數(shù)據(jù)中心820、840、860、880、諸如遠程計算機1570的邏輯連接在聯(lián)網(wǎng)或分布式環(huán)境中操作。遠程計算機1570可以是個人計算機、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對端設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點或任何其他遠程媒體消費或傳輸設(shè)備,并且可以包括上文相對于計算機1510所述的任何或所有元件。圖15中所描述的邏輯連接包括網(wǎng)絡(luò)1572,諸如局域網(wǎng)(LAN)或廣域網(wǎng)(WAN),但還可以包括其他網(wǎng)絡(luò)/總線,例如蜂窩式網(wǎng)絡(luò)。
[0092]如上所述,雖然已結(jié)合各種計算設(shè)備和網(wǎng)絡(luò)架構(gòu)描述了示例性實施例,但底層概念可以應(yīng)用于其中期望以靈活的方式發(fā)布或消費媒體的任何網(wǎng)絡(luò)系統(tǒng)和任何計算設(shè)備或系統(tǒng)。
[0093]而且,存在用以實現(xiàn)相同或類似功能的多個方式,例如適當(dāng)?shù)腁P1、工具箱、驅(qū)動器代碼、操作系統(tǒng)、控件、獨立或可下載軟件對象等,其使得應(yīng)用和服務(wù)能夠利用本文所述的技術(shù)。因此,從API (或其他軟件對象)以及從實現(xiàn)本文所述的一個或多個方面的軟件或硬件對象的觀點出發(fā)可預(yù)期本文中的實施例。因此,本文所述的各種實施例可以具有完全用硬件、部分地用硬件且部分地用軟件以及用軟件的各方面。
[0094]計算設(shè)備通常包括各種介質(zhì),其可以包括計算機可讀存儲介質(zhì)和/或通信介質(zhì),其中,在本文中如下所述相互不同地使用這兩個術(shù)語。計算機可讀存儲介質(zhì)可以是能夠被計算機訪問的任何可用存儲介質(zhì),通常是非臨時性質(zhì)的,并且可以包括易失性和非易失介質(zhì)、可移動和不可移動介質(zhì)兩者。以示例而非限制的方式,可以結(jié)合用于存儲信息的任何方法或技術(shù)來實現(xiàn)計算機可讀存儲介質(zhì),諸如計算機可讀指令、程序模塊、結(jié)構(gòu)化數(shù)據(jù)或非結(jié)構(gòu)化數(shù)據(jù)。計算機可讀存儲介質(zhì)可以包括但不限于RAM、ROM、電可擦可編程只讀存儲器(EEPROM)、閃速存儲器或其他存儲技術(shù)、緊湊式盤只讀存儲器(⑶-ROM)、數(shù)字多功能盤(DVD)或其他光盤存儲、磁帶盒、磁帶、磁盤存儲或其他磁存儲器件或可以用來存儲期望信息的其他有形和/或非臨時介質(zhì)。計算機可讀存儲介質(zhì)可以被一個或多個本地或遠程計算設(shè)備訪問,例如經(jīng)由訪問請求、查詢或其他數(shù)據(jù)檢索協(xié)議,以用于相對于由介質(zhì)存儲的信息的多種操作。
[0095]另一方面,通信介質(zhì)通常用諸如已調(diào)制數(shù)據(jù)信號(例如載波或其他傳輸機制)的數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù),并且包括任何信息傳送或傳輸介質(zhì)。術(shù)語“已調(diào)制數(shù)據(jù)信號”或多個信號指的是其特性中的一個或多個或以從而對一個或多個信號中的信息進行編碼的方式設(shè)定或改變的信號。以示例而非限制的方式,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接有線連接之類的有線介質(zhì)以及諸如聲學(xué)、射頻(RF)、紅外及其他無線介質(zhì)之類的無線介質(zhì)。
[0096]應(yīng)理解的是可以用硬件、軟件、固件、中間件、微代碼或其任何組合來實現(xiàn)本文所述的實施例。針對硬件實施方式,可以在一個或多個專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、數(shù)字信號處理設(shè)備(DSro)、可編程邏輯器件(PLD)、現(xiàn)場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器和/或被設(shè)計成執(zhí)行本文所述功能的其他電子單元或其組合內(nèi)實現(xiàn)處理單元。如在本說明書中所采用的術(shù)語"處理器"可以指的是基本上任何計算處理單元或設(shè)備,包括但不限于單核處理器;具有軟件多線程執(zhí)行能力的單處理器;多核處理器;具有軟件多線程執(zhí)行能力的多核處理器;具有硬件多線程技術(shù)的多核處理器;并行平臺;以及具有分布式共享存儲器的并行平臺。另外,處理器可以指的是集成電路、專用集成電路(ASIC)、數(shù)字信號處理(DSP)、現(xiàn)場可編程門陣列(FPGA)或可編程序邏輯控制器(PLC)、復(fù)雜可編程邏輯器件(CPLD)、分立門或晶體管邏輯、分立硬件部件或其任何組合,其被設(shè)計成執(zhí)行本公開所述功能。處理器可以利用納米級架構(gòu),諸如但不限于基于分子或量子點的晶體管、開關(guān)或門,以便優(yōu)化空間使用或增強用戶設(shè)備的性能。還可將處理器實現(xiàn)為計算處理單元的組合。
[0097]當(dāng)用軟件、固件、中間件或微代碼、程序代碼或代碼段來實現(xiàn)實施例時,可以將其存儲在機器可讀介質(zhì)(或計算機可讀存儲介質(zhì))中,諸如存儲部件。代碼段可以表示程序、函數(shù)子程序、程序、例程、子例程、模塊、軟件包、類或指令、數(shù)據(jù)結(jié)構(gòu)或程序語句的任何組合??梢酝ㄟ^傳遞和/或接收信息、數(shù)據(jù)、自變量、參數(shù)或存儲器內(nèi)容而將代碼段耦合到另一代碼段或硬件電路??梢允褂萌魏芜m當(dāng)手段來傳遞、轉(zhuǎn)送或發(fā)送信息、自變量、參數(shù)、數(shù)據(jù)等,所述適當(dāng)手段包括存儲器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)取?br>
[0098]針對軟件實現(xiàn),可以用執(zhí)行本文所述功能的模塊或部件(例如,程序、函數(shù)等)來實現(xiàn)本文所述的技術(shù)??梢詫④浖a存儲在存儲器單元中并由處理器來執(zhí)行。可以在處理器內(nèi)或者在處理器外部實現(xiàn)存儲器單元,在這種情況下,可以經(jīng)由各種結(jié)構(gòu)將其通信耦合到處理器。
[0099]遍及本說明書對“一個實施例”或“實施例”的引用意指結(jié)合實施例所述的特定特征、結(jié)構(gòu)或特性被包括在至少一個實施例中。因此,短語“在一個實施例中”或“在實施例中”在遍及本說明書的各種位置上的出現(xiàn)不一定全部引用同一實施例。此外,可以在一個或多個實施例中以任何適當(dāng)方式將特定特征、結(jié)構(gòu)或特性組合。
[0100]詞語“示例”或“示例性”在本公開中用來意指充當(dāng)示例、實例或圖示。在本公開中描述為“示例性”的任何方面或設(shè)計不一定被理解為相比于其他方面或設(shè)計而言是優(yōu)選或有利的。相反地,詞語“示例”或“示例性”的使用意圖以具體的方式呈現(xiàn)概念。在本說明書中,利用諸如“數(shù)據(jù)存儲”、“緩沖器”和關(guān)于部件的操作和功能的基本上任何其他信息存儲部件之類的術(shù)語來指示“存儲器部件”或在“存儲器”或包括存儲器的部件中體現(xiàn)的實體。將認識到的是在本公開中所述的存儲器部件或計算機可讀存儲介質(zhì)可以是易失性存儲器或非易失存儲器,或者可以包括易失性和非易失存儲器。以圖示而非限制的方式,非易失存儲器可以包括只讀存儲器(ROM)、可編程ROM(PROM)、電可編程ROM(EPROM)、電可擦ROM(EEPROM)或閃速存儲器。易失性存儲器可以包括隨機存取存儲器(RAM),其充當(dāng)外部高速緩沖存儲器。以圖示而非限制的方式,RAM以許多形式可用,諸如靜態(tài)RAM(SRAM)、動態(tài)RAM (DRAM)、同步 DRAM (SDRAM)、雙倍數(shù)據(jù)速率 SDRAM (DDR SDRAM)和增強型 SDRAM (ESDRAM)。另外,本公開中的系統(tǒng)或方法的公開存儲器部件意圖包括但不限于包括這些和任何其他適當(dāng)類型的存儲器。
[0101]上文描述的內(nèi)容包括本發(fā)明的實施例的示例。當(dāng)然,不可能出于描述要求保護的主題的目的而描述部件或方法的每個可預(yù)期組合,但是應(yīng)認識到的是可以有本創(chuàng)新的許多其他組合或置換。相應(yīng)地,要求保護的主題意圖涵蓋落在所附權(quán)利要求的精神和范圍內(nèi)的所有變更、修改和變化。此外,不應(yīng)將某些或所有過程塊在每個過程中出現(xiàn)的順序視為是限制性的。相反地,應(yīng)理解的是可以按照在本公開中未示出的多種順序來執(zhí)行某些過程塊。此夕卜,本公開的所示實施例的以上描述(包括在摘要中描述的內(nèi)容)不意圖是窮舉的或使公開的實施例局限于公開的精確形式。雖然在本公開中出于說明性目的描述了特定實施例和示例,但可以有各種修改,其被視為在此類實施例和示例的范圍內(nèi),如相關(guān)領(lǐng)域的技術(shù)人員可以認識到的。
[0102]特別地且關(guān)于由上述部件、模塊、系統(tǒng)等執(zhí)行的各種功能,用來描述此類部件的術(shù)語意圖(除非另外指明)對應(yīng)于執(zhí)行所述部件(例如,功能等價物)的指定功能的任何部件,即使在結(jié)構(gòu)上并未等價于公開結(jié)構(gòu),其執(zhí)行要求保護的主題的本文所示示例性方面中的功能。已相對于多個部件和/或塊之間的相交互而描述了上述系統(tǒng)、設(shè)備以及電路??梢哉J識到的是此類系統(tǒng)、設(shè)備、電路以及部件和/或塊可以包括那些部件或指定子部件、指定部件或子部件中的某些和/或附加部件以及根據(jù)前述內(nèi)容的各種排列和組合。還可以將子部件實現(xiàn)為通信耦合到其他部件而不是包括在父部件(分級)內(nèi)的部件。另外,應(yīng)注意的是可將一個或多個部件組合成提供聚合功能的單個部件或劃分成多個單獨子部件,并且可提供任何一個或多個中間層(諸如管理層)以通信耦合到此類子部件以便提供集成功能。在本公開中描述的任何部件還可與在本公開中未具體地描述但為本領(lǐng)域的技術(shù)人員所知的一個或多個其他部件相交互。
[0103]另外,雖然可相對于多個實施方式中的僅一個來公開本創(chuàng)新的特定特征,但可將此類特征與其他實施方式的一個或多個其他特征組合,如對于任何給定或特定應(yīng)用而言可能期望且有利的。此外,在術(shù)語“包括”、“包含”、“具有”、其變體以及其他類似詞語在詳細描述或權(quán)利要求中使用的程度上,這些術(shù)語意圖以與作為開放性過渡詞的術(shù)語“包括”類似的方式是包括性而不排除任何附加或其他元件。
【權(quán)利要求】
1.一種系統(tǒng),包括: 至少一個媒體內(nèi)容生成器,所述至少一個媒體內(nèi)容生成器生成至少兩個實時視頻流; 非臨時存儲器,所述非臨時存儲器存儲計算機可執(zhí)行部件;以及 處理器,所述處理器執(zhí)行存儲于所述存儲器內(nèi)的以下計算機可執(zhí)行部件: 組合部件,所述組合部件將所述至少兩個實時視頻流組合以生成主視頻流。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述至少兩個實時視頻流是相同副本。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其中,所述至少兩個實時視頻流是不相同的。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其中,所述至少兩個實時視頻流源自于不同地理位置處的至少兩個數(shù)據(jù)中心。
5.根據(jù)權(quán)利要求4所述的系統(tǒng),其中,所述至少兩個實時視頻流在所述至少兩個數(shù)據(jù)中心處被以不同的方式編碼。
6.根據(jù)權(quán)利要求1所述的系統(tǒng),其中, 所述至少一個媒體內(nèi)容生成器生成N個實時視頻流,以及 所述組合部件將所述N個實時視頻流組合, 其中,N是至少四。
7.根據(jù)權(quán)利要求1所述的系統(tǒng),進一步包括:同步部件,所述同步部件使所述至少兩個實時視頻流同步。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其中,所述同步部件使所述至少兩個實時視頻流中的第一視頻流的段的指紋與所述至少兩個實時視頻流中的第二視頻流的段的指紋匹配。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述指紋包括與所述第一視頻流的所述段的一組數(shù)據(jù)分組和所述第二視頻流的所述段的一組數(shù)據(jù)分組相關(guān)聯(lián)的元數(shù)據(jù)。
10.一種方法,包括: 接收至少兩個實時視頻流; 將所述至少兩個實時視頻流組合;以及 從所述至少兩個實時視頻流生成主視頻流。
11.根據(jù)權(quán)利要求10所述的方法,其中,所述接收進一步包括:接收根據(jù)用戶數(shù)據(jù)報協(xié)議被作為至少兩個數(shù)據(jù)流來多播的所述至少兩個實時視頻流。
12.根據(jù)權(quán)利要求11所述的方法,其中,所述接收進一步包括: 接收具有第一流毀壞或流錯誤的所述至少兩個數(shù)據(jù)流的第一數(shù)據(jù)流并接收具有第二流毀壞或流錯誤的所述至少兩個數(shù)據(jù)流的第二數(shù)據(jù)流。
13.根據(jù)權(quán)利要求12所述的方法,進一步包括:用所述第二數(shù)據(jù)流的相應(yīng)分組來修正所述第一數(shù)據(jù)流的所述第一流毀壞或流錯誤,其中,所述第一流毀壞或流錯誤不同于第二流毀壞或流錯誤。
14.根據(jù)權(quán)利要求13所述的方法,其中,所述修正進一步包括: 識別已經(jīng)丟失的所述第一數(shù)據(jù)流的分組的指紋; 對所述第二數(shù)據(jù)流搜索具有與所述第一數(shù)據(jù)流的分組基本上類似的指紋的分組;以及用來自所述第二數(shù)據(jù)流的具有基本上類似指紋的分組來替換在主視頻流中已丟失的所述第一數(shù)據(jù)流的分組。
15.根據(jù)權(quán)利要求11所述的方法,其中,所述接收進一步包括:從第一位置接收所述至少兩個數(shù)據(jù)流的第一視頻流并從在地理上遠離所述第一位置的第二位置接收所述至少兩個數(shù)據(jù)流的第二視頻流。
16.根據(jù)權(quán)利要求10所述的方法,其中,所述生成進一步包括: 從所述至少兩個實時視頻流生成基本上無錯誤的主視頻流。
17.一種其上存儲有指令的計算機可讀存儲介質(zhì),所述指令響應(yīng)于執(zhí)行而促使系統(tǒng)執(zhí)行操作,包括: 接收至少兩個實時視頻流;以及 通過將所述至少兩個實時視頻流組合而生成主視頻流。
18.根據(jù)權(quán)利要求17所述的計算機可讀存儲介質(zhì),其中 所述接收進一步包括:接收至少三個視頻流并向所述至少三個視頻流分配至少三個權(quán)值;以及 所述生成進一步包括: 檢測所述至少三個視頻流中的一個的段中的錯誤; 基于權(quán)值用另一個流的相應(yīng)段來替換所述至少兩個實時視頻流中的一個的段。
19.根據(jù)權(quán)利要求18所述的計算機可讀存儲介質(zhì),其中,所述分配進一步包括: 基于所述至少三個視頻流的發(fā)起位置向所述至少三個視頻流分配所述至少三個權(quán)值。
20.根據(jù)權(quán)利要求18所述的計算機可讀存儲介質(zhì),其中,所述分配進一步包括: 基于所述至少三個視頻流的可靠性向所述至少三個視頻流分配所述至少三個權(quán)值。
【文檔編號】H04N21/845GK104365109SQ201380030606
【公開日】2015年2月18日 申請日期:2013年4月12日 優(yōu)先權(quán)日:2012年4月12日
【發(fā)明者】尼爾斯·奧利弗·克拉恩施特弗爾, 托馬斯·愛德華·德威斯, 邁克爾·A·格洛弗 申請人:谷歌公司