媒體流傳送中的動(dòng)態(tài)軌道切換的制作方法
【專利說(shuō)明】
【背景技術(shù)】
[0001]對(duì)于媒體流傳送場(chǎng)景中的媒體回放的常見(jiàn)挑戰(zhàn)在于如何處理媒體軌道切換以及無(wú)縫地添加或移除媒體軌道。另一個(gè)挑戰(zhàn)在于例如當(dāng)源被添加或移除時(shí)如何處理對(duì)于媒體內(nèi)容源的改變。
[0002]一種可能的解決方案是允許多個(gè)軌道同時(shí)被解碼,其中僅所選擇的軌道被再現(xiàn)到顯示器或揚(yáng)聲器。例如,每個(gè)軌道可以被發(fā)送給單獨(dú)的解碼器,以及軌道中所選擇的一個(gè)軌道可以輸出到單獨(dú)的再現(xiàn)器。然而,這在用于媒體內(nèi)容的流傳送的系統(tǒng)資源成本、功率消耗和網(wǎng)絡(luò)帶寬成本方面具有負(fù)面含義。
[0003]另一種可能的解決方案是以更強(qiáng)力的方式切換軌道(例如音頻軌道),其中,系統(tǒng)嘗試通過(guò)盡力而為的方法使來(lái)自視頻流的樣本和來(lái)自音頻流的樣本的回放同步。然而,以幾乎沒(méi)有假信號(hào)(glitch)或無(wú)縫的方式連續(xù)保持視頻樣本和音頻樣本同步是具有挑戰(zhàn)性的。
【發(fā)明內(nèi)容】
[0004]總的來(lái)說(shuō),描述了用于管理媒體流傳送期間的動(dòng)態(tài)軌道切換的創(chuàng)新。例如,采用切換模塊,媒體引擎配置一個(gè)或多個(gè)源緩沖器與一個(gè)或多個(gè)再現(xiàn)管線之間的一個(gè)或多個(gè)切換;并且使用所述(一個(gè)或者多個(gè))切換來(lái)管理媒體軌道中的哪些媒體軌道(如果有的話)具有在媒體流傳送期間被路由到所述(一個(gè)或者多個(gè))再現(xiàn)管線的已編碼數(shù)據(jù)。所述切換的每個(gè)切換可以具有:一個(gè)或多個(gè)選擇輸入,其每個(gè)表示來(lái)自所述(一個(gè)或者多個(gè))源緩沖器中一個(gè)源緩沖器的媒體軌道的已編碼數(shù)據(jù);以及選擇輸出,其與用于解碼和再現(xiàn)的(一個(gè)或者多個(gè))再現(xiàn)管線中的不同的一個(gè)再現(xiàn)管線相關(guān)聯(lián)。這樣,所述媒體引擎可以動(dòng)態(tài)地管理媒體流傳送中的軌道切換。
[0005]動(dòng)態(tài)軌道切換的管理可以作為一種方法的一部分、作為一種被適配成執(zhí)行所述方法的計(jì)算機(jī)系統(tǒng)的一部分或作為一種存儲(chǔ)用于促使計(jì)算機(jī)系統(tǒng)執(zhí)行所述方法的計(jì)算機(jī)可執(zhí)行指令的有形計(jì)算機(jī)可讀介質(zhì)的一部分來(lái)實(shí)現(xiàn)。
[0006]例如,一種計(jì)算機(jī)系統(tǒng)實(shí)例化切換模塊;配置在一個(gè)或多個(gè)源緩沖器與一個(gè)或多個(gè)再現(xiàn)管線之間的切換模塊的一個(gè)或多個(gè)切換;以及使用所述(一個(gè)或者多個(gè))切換來(lái)管理來(lái)自所述(一個(gè)或者多個(gè))源緩沖器的媒體軌道中的哪些媒體軌道(如果有的話)具有在媒體流傳送期間被路由到所述(一個(gè)或者多個(gè))再現(xiàn)管線的已編碼數(shù)據(jù)。所述(一個(gè)或者多個(gè))切換的每個(gè)切換可以具有:一個(gè)或多個(gè)選擇輸入,其每個(gè)表示來(lái)自所述(一個(gè)或者多個(gè))源緩沖器中一個(gè)源緩沖器的媒體軌道的已編碼數(shù)據(jù);以及選擇輸出,其與所述(一個(gè)或者多個(gè))再現(xiàn)管線中的不同的一個(gè)再現(xiàn)管線相關(guān)聯(lián)。
[0007]或者,作為另一示例,一種計(jì)算機(jī)系統(tǒng)實(shí)現(xiàn)流媒體處理管線。所述流媒體處理管線包括一個(gè)或多個(gè)源緩沖器和由應(yīng)用編程接口(“API”)與所述(一個(gè)或者多個(gè))源緩沖器分離的媒體引擎。所述媒體引擎包括一個(gè)或多個(gè)再現(xiàn)管線和切換模塊,其中所述(一個(gè)或者多個(gè))再現(xiàn)管線包括視頻再現(xiàn)管線和一個(gè)或多個(gè)音頻再現(xiàn)管線。所述視頻再現(xiàn)管線包括視頻解碼器和視頻再現(xiàn)器,以及,所述(一個(gè)或者多個(gè))音頻再現(xiàn)管線的每個(gè)包括音頻解碼器和音頻再現(xiàn)器。所述切換模塊被適配成:配置所述(一個(gè)或者多個(gè))源緩沖器與所述(一個(gè)或者多個(gè))再現(xiàn)管線之間的一個(gè)或多個(gè)切換;以及使用所述切換來(lái)管理所述媒體軌道中的哪些媒體軌道(如果有的話)具有在媒體流傳送期間被路由到所述(一個(gè)或者多個(gè))再現(xiàn)管線的已編碼數(shù)據(jù)。所述(一個(gè)或者多個(gè))切換的每個(gè)切換可以具有:一個(gè)或多個(gè)選擇輸入,其每個(gè)表示來(lái)自所述(一個(gè)或者多個(gè))源緩沖器中一個(gè)源緩沖器的媒體軌道的已編碼數(shù)據(jù);以及選擇輸出,其與所述(一個(gè)或者多個(gè))再現(xiàn)管線中的不同的一個(gè)再現(xiàn)管線相關(guān)聯(lián)。所述切換模塊可以作為在媒體流傳送期間對(duì)媒體軌道的管理的一部分,被適配成對(duì)哪個(gè)媒體軌道具有被路由到所述(一個(gè)或者多個(gè))再現(xiàn)管線中的一個(gè)再現(xiàn)管線的已編碼數(shù)據(jù)進(jìn)行切換,以及添加或移除媒體軌道,作為所述(一個(gè)或者多個(gè))切換中的一個(gè)切換的選擇輸入。
[0008]從下面參考附圖進(jìn)行的詳細(xì)描述中,本發(fā)明的前述和其他目的、特征和優(yōu)點(diǎn)將變得顯而易見(jiàn)。
【附圖說(shuō)明】
[0009]圖1-5是流程圖,其圖示了用于采用切換模塊實(shí)現(xiàn)切換操作的示例方法。
[0010]圖6是具有切換模塊的示例體系結(jié)構(gòu)的圖,所述體系結(jié)構(gòu)包括一個(gè)視頻再現(xiàn)管線和一個(gè)音頻再現(xiàn)管線。
[0011]圖7是具有切換模塊的示例體系結(jié)構(gòu)的圖,所述體系結(jié)構(gòu)包括一個(gè)視頻再現(xiàn)管線和多個(gè)音頻再現(xiàn)管線。
[0012]圖8是可實(shí)現(xiàn)某些所描述的創(chuàng)新的示例計(jì)算機(jī)系統(tǒng)的框圖。
【具體實(shí)施方式】
[0013]描述了用于管理媒體流傳送期間的動(dòng)態(tài)軌道切換的創(chuàng)新。例如,切換模塊可以配置源緩沖器與再現(xiàn)管線之間切換;以及使用所述切換來(lái)管理來(lái)自所述源緩沖器中的一個(gè)源緩沖器的媒體軌道中的哪些媒體軌道(如果有的話)具有在媒體流傳送期間被路由到所述再現(xiàn)管線的已編碼數(shù)據(jù)。所述切換的每個(gè)切換可以具有一個(gè)或多個(gè)選擇輸入,其每個(gè)表示來(lái)自所述源緩沖器中的一個(gè)源緩沖器的媒體軌道的已編碼數(shù)據(jù);以及選擇輸出,其與用于解碼和再現(xiàn)的再現(xiàn)管線中不同的一個(gè)再現(xiàn)管線相關(guān)聯(lián)。在常見(jiàn)使用場(chǎng)景中,切換模塊可以動(dòng)態(tài)地管理媒體流傳送中的軌道切換,例如,響應(yīng)于用戶輸入或其他輸入之一而切換媒體軌道、添加或移除媒體軌道作為所述切換中的一個(gè)切換的選擇輸入、或者甚至添加或移除源緩沖器并然后更新所述切換的選擇輸入。這樣,甚至當(dāng)所述再現(xiàn)管線在媒體流傳送期間是固定的時(shí),所述切換模塊可以在媒體流傳送期間動(dòng)態(tài)地適配于源緩沖器、媒體軌道或用戶選擇的改變。所述切換模塊由此可以為計(jì)算機(jī)系統(tǒng)中具有固定功能性的媒體再現(xiàn)管線提供自適應(yīng)的前端。
[0014]在媒體切換模塊的某些實(shí)現(xiàn)方式中,在各種媒體流傳送場(chǎng)景中,本創(chuàng)新使得能實(shí)現(xiàn):(a)使用所述媒體切換模塊的無(wú)縫媒體軌道切換操作;(b)使用所述媒體切換模塊對(duì)媒體軌道的無(wú)縫添加或移除;(c)在保持軌道全部都同步的同時(shí)對(duì)多個(gè)音頻軌道和視頻軌道的無(wú)縫回放;以及(d)對(duì)關(guān)于軌道切換的元數(shù)據(jù)的信號(hào)傳送,以便采用媒體回放應(yīng)用或系統(tǒng)來(lái)支持交互式控制操作。在本文中描述的創(chuàng)新的各種方面可以組合地或分離地使用。
[0015]用于管理媒體流傳送中的切換的技術(shù)
圖1是圖示了用于采用切換模塊管理切換操作的一種示例方法的流程圖。切換模塊可以是操作系統(tǒng)的媒體引擎的一部分或另一媒體處理工具的一部分。在圖1-5中,相同的參考數(shù)字指代相同元件,并且因此將省略重復(fù)的描述。
[0016]在110處,切換模塊配置一個(gè)或多個(gè)源緩沖器與一個(gè)或多個(gè)再現(xiàn)管線之間的一個(gè)或多個(gè)切換。每個(gè)切換關(guān)聯(lián)于(一個(gè)或多個(gè))再現(xiàn)管線中不同的一個(gè)再現(xiàn)管線。(一個(gè)或多個(gè))再現(xiàn)管線可以包括視頻再現(xiàn)管線和一個(gè)或多個(gè)音頻再現(xiàn)管線。(一個(gè)或多個(gè))源緩沖器和媒體軌道在媒體流傳送期間是動(dòng)態(tài)的,而(一個(gè)或多個(gè))再現(xiàn)管線在媒體流傳送期間是固定的。每個(gè)切換被配置為接收媒體軌道中的一個(gè)或多個(gè)媒體軌道作為選擇輸入,以及被配置為輸出所選媒體軌道作為對(duì)用于進(jìn)行解碼和再現(xiàn)的對(duì)應(yīng)再現(xiàn)管線的選擇輸出。切換模塊確定哪些媒體軌道將被路由到每個(gè)切換,以便進(jìn)行向再現(xiàn)管線的潛在輸出。由于選擇輸入的數(shù)量可以隨回放會(huì)話的過(guò)程而變化,所以切換模塊對(duì)(一個(gè)或多個(gè))切換進(jìn)行管理,以確保媒體軌道被適當(dāng)?shù)芈酚傻胶线m的切換。
[0017]在130處,切換模塊使用(一個(gè)或多個(gè))切換來(lái)管理哪些媒體軌道(如果有的話)具有被路由到(一個(gè)或多個(gè))再現(xiàn)管線的已編碼數(shù)據(jù)。每個(gè)切換管理對(duì)于該切換的選擇輸入的媒體軌道中的哪些媒體軌道(如果有的話)具有在媒體流傳送期間被路由到與該切換相關(guān)聯(lián)的再現(xiàn)管線的已編碼數(shù)據(jù)。
[0018]例如,在操作時(shí),切換模塊從一個(gè)或多個(gè)源緩沖器接收媒體軌道。每個(gè)源緩沖器包含一個(gè)或多個(gè)視頻和/或音頻軌道(媒體軌道)。源緩沖器的數(shù)量可以隨回放會(huì)話的過(guò)程(在媒體流傳送期間)而變化,媒體軌道的數(shù)量也可以隨回放會(huì)話的過(guò)程(在媒體流傳送期間)而變化。由于源緩沖器和媒體軌道在媒體流傳送期間是動(dòng)態(tài)的,所以切換模塊被配置為:保存當(dāng)前源緩沖器和媒體軌道的列表,以及當(dāng)源緩沖器和/或媒體軌道的狀態(tài)隨媒體流傳送的過(guò)程而變化時(shí),從列表添加和移除源緩沖器和/或媒體軌道。由切換模塊接收的一個(gè)或多個(gè)媒體軌道與所述一個(gè)或多個(gè)切換的選擇輸入相關(guān)聯(lián),其中,所述選擇輸入的每個(gè)選擇輸入表示來(lái)自源緩沖器中的一個(gè)源緩沖器的媒體軌道的已編碼數(shù)據(jù)。
[0019]在高層,切換模塊選擇媒體軌道來(lái)輸出。盡管源緩沖器包含對(duì)于多個(gè)媒體軌道的數(shù)據(jù),但用戶可以僅對(duì)單個(gè)音頻軌道和單個(gè)視頻軌道感興趣。例如,源緩沖器可以包含針對(duì)多個(gè)語(yǔ)言的音頻軌道,但用戶可能僅對(duì)英語(yǔ)軌道感興趣。因此,在切換時(shí),切換模塊可以在與選擇輸入相關(guān)聯(lián)的音頻軌道中選擇英語(yǔ)軌道。切換模塊還選擇用于解碼和再現(xiàn)的再現(xiàn)管線。再現(xiàn)管線的每個(gè)再現(xiàn)管線包括媒體解碼器和媒體再現(xiàn)器。一旦對(duì)于回放會(huì)話設(shè)置了再現(xiàn)管線的數(shù)量,則該數(shù)量在媒體流傳送期間保持固定。
[0020]切換模塊將媒體軌道路由到所選再現(xiàn)管線。每個(gè)切換可以接收所述媒體軌道中的一個(gè)或多個(gè)媒體軌道,但可以僅將一個(gè)媒體軌道路由到其關(guān)聯(lián)的再現(xiàn)管線。由此,通過(guò)使用一個(gè)或多個(gè)切換,切換模塊管理一個(gè)或多個(gè)媒體軌道如何被路由到(一個(gè)或多