背景和相關(guān)技術(shù)
計算機和計算系統(tǒng)已經(jīng)影響了現(xiàn)代生活的近乎每一個方面。計算機通常涉及工作、休閑、保健、運輸、娛樂、家政管理等。
此外,計算系統(tǒng)功能還可以通過計算系統(tǒng)經(jīng)由網(wǎng)絡(luò)連接互連到其他計算系統(tǒng)的能力來增強。網(wǎng)絡(luò)連接可包括,但不僅限于,經(jīng)由有線或無線以太網(wǎng)的連接,蜂窩式連接,或者甚至通過串行、并行、USB或其它連接的計算機到計算機的連接。這些連接允許計算系統(tǒng)訪問其他計算系統(tǒng)上的服務(wù),并快速且有效地從其他計算系統(tǒng)接收應(yīng)用數(shù)據(jù)。
計算系統(tǒng)的互連促進(jìn)了來自內(nèi)容服務(wù)提供者的多媒體內(nèi)容的傳遞。例如,終端用戶可通過網(wǎng)絡(luò)將視頻和/或音頻內(nèi)容流傳輸?shù)剿麄兊脑O(shè)備。這樣的流傳輸可以是實況流傳輸或點播流傳輸。
當(dāng)用戶希望流傳輸內(nèi)容時,存在約束了什么內(nèi)容可被流傳輸?shù)臄?shù)個約束。例如,網(wǎng)絡(luò)帶寬可限制流的比特率。替換地或附加地,內(nèi)容被流傳輸?shù)狡涞脑O(shè)備可能僅支持用于解碼內(nèi)容的特定編解碼器,可能具有有限的顯示分辨率來顯示內(nèi)容,可能具有有限的處理器功率來解碼和播放內(nèi)容等。相反,支持許多編解碼器,具有高屏幕分辨率,具有豐富的環(huán)繞聲能力,并且連接到高帶寬網(wǎng)絡(luò)的高功率設(shè)備的用戶可能希望向他們遞送盡可能最高質(zhì)量的內(nèi)容。由此,用戶可能希望具有適合于他們設(shè)備的流內(nèi)容被遞送,無論內(nèi)容是為可獲得的最高質(zhì)量,可獲得的最低質(zhì)量還是處于兩者之間。
內(nèi)容提供者通常通過“資產(chǎn)(asset)”的使用來提供內(nèi)容。資產(chǎn)是多媒體內(nèi)容片段的集合,如果被終端用戶設(shè)備請求,多媒體內(nèi)容片段的集合中的任何一個都可被遞送到該終端用戶設(shè)備。例如,資產(chǎn)可包括若干不同的視頻文件,其中每個視頻文件是相同源視頻的不同的編碼版本。由此,例如,一個版本可以是視頻的以1.5Mb/s比特率編碼的1080p版本。另一個可以是視頻的以1Mb/s比特率編碼的720p版本。另一個版本可以是視頻的以0.7Mb/s比特率編碼的720p版本。等等。資產(chǎn)可附加地或替換地存儲數(shù)個音頻軌道。例如,資產(chǎn)可存儲7.1軌道、5.1軌道、立體聲軌道、單聲道軌道、以及各種因語言而異的軌道。由此,資產(chǎn)的大小可以相當(dāng)大,并且能夠提供用于回放的各種選項。
為了向終端用戶指示什么內(nèi)容是可用的,資產(chǎn)的清單可被提供。清單列出了用戶可選擇進(jìn)行流傳輸?shù)馁Y產(chǎn)的所有可獲得的部分。通常,設(shè)備將接收清單并選擇最高質(zhì)量的部分以用于流傳輸。然而,設(shè)備可能不能支持這些部分(以完全或無縫的方式),而由此可能需要停止嘗試高質(zhì)量內(nèi)容的回放并選擇較低質(zhì)量的內(nèi)容。當(dāng)設(shè)備嘗試為特定設(shè)備找到適合質(zhì)量的流時,這導(dǎo)致了某些低效性。
一些系統(tǒng)通過為不同設(shè)備創(chuàng)建不同的資產(chǎn)來解決此問題。由此,用戶設(shè)備可根據(jù)URL找到用于他們設(shè)備的特定資產(chǎn)。然而,這導(dǎo)致需要多個不同的資產(chǎn)并導(dǎo)致對給定媒體提供的內(nèi)容遞送的分段實現(xiàn)以及與存儲(并在內(nèi)容分發(fā)邊緣節(jié)點處高速緩存)不同版本的媒體提供相關(guān)的低效。
本文要求保護(hù)的主題不限于解決任何缺點或僅在諸如上述環(huán)境這樣的環(huán)境中操作的各實施例。相反,提供該背景僅用于例示其中可實施所述一些實施例的一個示例性技術(shù)領(lǐng)域。
簡要概述
本文解說的一個實施例包括可在計算環(huán)境中實施的方法。該方法包括用于提供清單的動作,該清單描述了點播視頻(VOD)或?qū)崨r視頻的資產(chǎn)的呈現(xiàn)。該方法包括在服務(wù)器處接收來自客戶端設(shè)備的對清單的請求。對清單的請求包括將被應(yīng)用于返回的清單的一個或多個過濾器的標(biāo)識。該方法進(jìn)一步包括在服務(wù)器處標(biāo)識清單。清單標(biāo)識了可被遞送到客戶端設(shè)備的多媒體資產(chǎn)的不同部分。該方法進(jìn)一步包括將一個或多個經(jīng)標(biāo)識的過濾器應(yīng)用于清單,以生成排除一個或多個過濾器所指示的一個或多個項的經(jīng)過濾的清單。經(jīng)過濾的清單被返回到客戶端設(shè)備。
提供本概述以便以簡化的形式介紹以下在詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并非旨在標(biāo)識出要求保護(hù)的主題的關(guān)鍵特征或必要特征,亦非旨在用作輔助確定要求保護(hù)的主題的范圍。
附加特征和優(yōu)點將在以下描述中提出,且部分會從描述中顯而易見,或者可以通過實施本文的原理來獲悉。本發(fā)明的特征和優(yōu)點可以通過在所附權(quán)利要求書中特別指出的工具和組合來實現(xiàn)和獲得。本發(fā)明的特征從以下描述和所附權(quán)利要求書中將更完全顯而易見,或者可以通過如下文所述實施本發(fā)明而獲悉。
附圖簡述
為了描述可獲得以上記載的及其他優(yōu)點和特征的方式,將參照各具體實施例呈現(xiàn)以上簡述的主題的更具體描述,各具體實施例在附圖中例示。理解這些附圖僅描述典型的實施例,因此不應(yīng)被視為限制本發(fā)明的范圍,各實施例將通過使用附圖以附加的具體性和細(xì)節(jié)來描述和解釋,附圖中:
圖1示出了包括內(nèi)容分發(fā)服務(wù)器、邊緣節(jié)點、以及客戶端設(shè)備的內(nèi)容分發(fā)網(wǎng)絡(luò)的示例;
圖2示出了資產(chǎn)清單的示例;
圖3示出了清單過濾器的示例;
圖4A示出了一起使用若干個清單過濾器;
圖4B示出了使用若干個清單過濾器并向不同客戶端發(fā)送不同的經(jīng)過濾的清單;
圖4C示出了一起使用若干個清單過濾器并向不同客戶端發(fā)送不同的經(jīng)過濾的清單;
圖5示出了使用過濾以通過過濾時間戳來創(chuàng)建來自長期運行流的不同的節(jié)目;
圖6示出了通過過濾時間戳來創(chuàng)建實況回退;
圖7示出了通過過濾時間戳來創(chuàng)建DVR窗口;
圖8示出了堆疊過濾器的結(jié)果;
圖9示出了由堆疊過濾器導(dǎo)致的附加結(jié)果;
圖10示出了用于定義過濾器的用戶界面控件;
圖11示出了提供VOD或流視頻清單的方法;
圖12示出了服務(wù)器和客戶端設(shè)備的交互;以及
圖13示出了管理VOD或流視頻資產(chǎn)的方法。
詳細(xì)描述
本文的實施例可提供維護(hù)單個資產(chǎn)的能力,還可為客戶端設(shè)備提供該資產(chǎn)的不同版本的清單。具體而言,過濾器可被應(yīng)用于清單,該過濾器過濾掉清單的特定細(xì)節(jié)以創(chuàng)建經(jīng)過濾的清單。經(jīng)過濾的清單然后被提供給客戶端設(shè)備,使得經(jīng)過濾的清單提供可從資產(chǎn)獲得的不同元素的有限“視圖”。
在一些實施例中,客戶端設(shè)備可指定什么過濾器將被應(yīng)用于資產(chǎn)的清單。客戶端設(shè)備可標(biāo)識資產(chǎn)并標(biāo)識將被應(yīng)用于服務(wù)器的過濾器。服務(wù)器可然后在服務(wù)器處將過濾器應(yīng)用在該資產(chǎn)的清單上,并將經(jīng)過濾的清單發(fā)送到客戶端。
一些實施例可涉及服務(wù)器處的過濾器管理。具體而言,資產(chǎn)可用過濾器注釋,該過濾器可被應(yīng)用于該資產(chǎn)的清單。在一些實施例中,客戶端設(shè)備可請求可被應(yīng)用的過濾器的列表,并且服務(wù)器可提供列表以響應(yīng)該請求。在一些實施例中,可用通常被應(yīng)用的不同過濾器的列表來周期性地更新客戶端。
現(xiàn)在參考圖1,示出了流傳輸或點播媒體分發(fā)的示例。盡管本文的示例在視頻流或視頻點播(VOD)的上下文中,但是應(yīng)當(dāng)理解,其他媒體流或點播遞送可在本文所公開的本發(fā)明的各實施例的上下文中被執(zhí)行。
圖1示出了原始服務(wù)器102。原始服務(wù)器102是流媒體從其被分發(fā)的集中式源。如本文將更詳細(xì)地討論的,原始服務(wù)器可存儲可被遞送給用戶的資產(chǎn)(參見例如圖2的資產(chǎn)202),該資產(chǎn)包括各種視頻、音頻、子標(biāo)題等流。資產(chǎn)的大小可以相當(dāng)大。
由于對流媒體的網(wǎng)絡(luò)需求,通常期望在地理上鄰近于終端用戶設(shè)備處具有資產(chǎn),其中該媒體將最終被遞送到該終端用戶設(shè)備。為了實現(xiàn)這一點,內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)可被實現(xiàn)。為了實現(xiàn)內(nèi)容分發(fā)網(wǎng)絡(luò),CDN邊緣節(jié)點104可在地理上分布于各個位置。CDN邊緣節(jié)點可將資產(chǎn)的副本高速緩存于CDN邊緣節(jié)點104處。
每個資產(chǎn)都與清單相關(guān)聯(lián)。清單包含了可在給定資產(chǎn)中獲得的各種流的列表。清單可被高速緩存在CDN邊緣節(jié)點104處,其中該清單可被提供給客戶端設(shè)備106或可由原始服務(wù)器102直接提供。
使用清單,客戶端設(shè)備106可請求資產(chǎn)的各部分以供流傳輸。然而,一些客戶端設(shè)備可能試圖流傳輸資產(chǎn)中他們不能夠以令人滿意的方式進(jìn)行流傳輸?shù)牟糠郑@要么是因為設(shè)備本身不具有適合的編解碼器或處理能力;要么是因為網(wǎng)絡(luò)帶寬太低以至于不允許該資產(chǎn)部分的遞送??蛻舳嗽O(shè)備然后將不得不嘗試越來越低的質(zhì)量或越來越小的資產(chǎn)部分;或不同地編碼各部分以便標(biāo)識客戶端設(shè)備106能夠回放的部分。然而,本文中的實施例允許清單被過濾(參見圖3),使得由客戶端設(shè)備102接收的清單包括可獲得的資產(chǎn)部分的經(jīng)減少的枚舉。以此方式,客戶端設(shè)備102將不會嘗試請求資產(chǎn)的特定部分,因為那些部分將不會被標(biāo)識在清單中。
注意,在此簡單示例中,圖示涉及確定資產(chǎn)的哪些部分被包括在清單中。然而,應(yīng)當(dāng)理解,并將在下文中更詳細(xì)地解釋清單可包括各種時間偏移和其他信息,該其他信息也可以被過濾以便僅呈現(xiàn)視頻的部分,以便標(biāo)識適當(dāng)?shù)纳虡I(yè)位置等。
現(xiàn)在參考圖2,示出了資產(chǎn)202。資產(chǎn)202可被概念化成卷。在圖2所示的示例中,資產(chǎn)202包括各種部分。例如,資產(chǎn)202可包括一組視頻文件204。資產(chǎn)202可包括一組音頻文件206。清單還可包括諸如時序信息208之類的附加信息。該時序信息可包括用開始和結(jié)束時間標(biāo)記來標(biāo)識資產(chǎn)片段的時間標(biāo)記集。如上所述,清單可枚舉資產(chǎn)202的各個部分。客戶端設(shè)備106處的用戶可使用清單來選擇向該客戶端設(shè)備流傳輸?shù)馁Y產(chǎn)的各部分。
現(xiàn)在參考圖3,示出了清單過濾的示例。圖3示出了包括資產(chǎn)的各個部分的枚舉的清單302。過濾器304可被應(yīng)用于清單302,其導(dǎo)致經(jīng)過濾的清單302’的創(chuàng)建。經(jīng)過濾的清單302’包括少于清單302中枚舉的所有元素的枚舉。這可被實現(xiàn)來限制用戶可在其客戶端設(shè)備106處請求的資產(chǎn)202的部分。值得注意的是,不一定執(zhí)行限制來限制較低質(zhì)量的流。例如,考慮客戶端設(shè)備106耦合到高帶寬網(wǎng)絡(luò)并且是能夠播放很高質(zhì)量的媒體流的設(shè)備的情況。在這樣的示例中,內(nèi)容提供者可能期望將流媒體的選擇限制到高質(zhì)量源,并且由此可從清單302過濾出任何較低質(zhì)量的流。
現(xiàn)在參考圖4A,示出了過濾的另一示例。在圖4A所示的示例中,清單302具有一組過濾器404,該組過濾器404被應(yīng)用于清單302以便產(chǎn)生經(jīng)過濾的清單302’。此示例示出過濾器可被連續(xù)地應(yīng)用于清單以便自定義清單提供。
在如圖4B所示的替換或附加實施例中,清單302可將不同的過濾器406和408連續(xù)地應(yīng)用于中間經(jīng)過濾的清單。由此,例如,過濾器406被應(yīng)用于清單302以便產(chǎn)生經(jīng)過濾的清單302’。經(jīng)過濾的清單302’可被發(fā)送到第一客戶端106-1。過濾器408被應(yīng)用于經(jīng)過濾的清單302’以便產(chǎn)生經(jīng)過濾的清單302”。經(jīng)過濾的清單302”被發(fā)送到客戶端106-2。由此,中間結(jié)果可被適當(dāng)?shù)赜糜诓煌目蛻舳恕?/p>
在如圖4C所示的又一替換或附加實施例中,可與被發(fā)送到不同客戶端的不同的經(jīng)過濾的清單并行地應(yīng)用過濾器。由此,例如,清單302具有過濾器406,該過濾器406被應(yīng)用以產(chǎn)生經(jīng)過濾的清單302’-1。經(jīng)過濾的清單302’-1被發(fā)送到客戶端106-1。并行地,清單302具有過濾器408,該過濾器408被應(yīng)用以產(chǎn)生經(jīng)過濾的清單302’-2。經(jīng)過濾的清單302’-2被發(fā)送到客戶端106-2。
本發(fā)明的一些實施例可被實現(xiàn),其中原始服務(wù)器由云服務(wù)提供者提供,使得各種不同的云服務(wù)客戶可向云服務(wù)提供者購買主存服務(wù)。云服務(wù)提供者通過允許客戶“租賃”計算、存儲、以及網(wǎng)絡(luò)資源來提供服務(wù)。隨著客戶需求的增加或降低,云服務(wù)提供者可從共享資源池調(diào)整這些資源的數(shù)量。這允許云的客戶僅根據(jù)需求來租賃需要的資源,并在需要較少的資源的情況下節(jié)省資金。由此,例如,本發(fā)明的一些實施例可使用可從華盛頓州雷蒙德市的微軟公司獲得的Microsoft Azure媒體服務(wù)來實施。
在給定以上概括描述的情況下,現(xiàn)在將關(guān)注轉(zhuǎn)向本發(fā)明的各種實施例的更具體的示例和實現(xiàn)。
在實況流和視頻點播媒體資產(chǎn)兩者的上下文中,存在客戶可能希望向她的終端用戶呈現(xiàn)整個資產(chǎn)的子集的情況。這可能受到客戶端側(cè)限制、資產(chǎn)質(zhì)量、運行長度、或關(guān)注時間線的特定段的期望的激勵。
在一些實施例中,過濾器可由客戶端設(shè)備106指定,使得過濾器被應(yīng)用于原始服務(wù)器102處和/或CDN邊緣節(jié)點104處的的清單302。替換地或附加地,原始服務(wù)器102還可檢測做出請求的客戶端設(shè)備106,并相應(yīng)地選擇過濾器。例如,一些實施例可將設(shè)備的用戶代理映射到特定的已命名的過濾器。
各種實施例可展現(xiàn)特定的特征和/或功能。例如,一些實施例可以以保留命名、保存、以及重用清單過濾器的能力的方式來實現(xiàn),如媒體平臺內(nèi)的代表性狀態(tài)轉(zhuǎn)移(REST)實體。替換地或附加地,各實施例可被實現(xiàn)成包括為清單請求實時使用清單過濾器的能力。替換地或附加地,各實施例可被實現(xiàn)成包括在服務(wù)器側(cè)(通常是客戶端側(cè)設(shè)置)創(chuàng)建流傳輸設(shè)置(諸如實況回退位置)的能力。替換地或附加地,各實施例可被實現(xiàn)成包括創(chuàng)建單個清單的能力,該單個清單同時應(yīng)用于一個以上的協(xié)議。替換地或附加地,各實施例可被實現(xiàn)成包括設(shè)置默認(rèn)清單過濾器的能力,該默認(rèn)清單過濾器將應(yīng)用于所有清單請求,而無需被明確地指定。
在媒體流傳輸中,存在清單和媒體塊兩者。本文中的各實施例可被實現(xiàn)成允許過濾,使得媒體塊能跨CDN和原始服務(wù)器保留它們的冪等性和可高速緩存性。由此,在一些實施例中,不需要為媒體塊產(chǎn)生新的URL。
考慮資產(chǎn)202包括由具有各種屬性和時間線208的流組成。限制呈現(xiàn)給用戶客戶端設(shè)備106的流以例如通過比特率、分辨率或編解碼器來進(jìn)行限制可能是符合客戶(例如,基于云的流媒體服務(wù)的客戶,其中客戶向終端用戶設(shè)備提供流傳輸媒體)興趣的。或者,可存在資產(chǎn)過長的情形,并且客戶想要向用戶客戶端設(shè)備106呈現(xiàn)單個時間線的子剪輯。
許多屬性存在于清單302中,并且它們可以若干不同的方式被過濾。例如,可通過精確匹配或枚舉來過濾屬性。替換地或附加地,可通過使用大于和小于運算符來過濾屬性。替換地或附加地,可通過排除來過濾屬性。這些方法可被單獨使用或以適當(dāng)?shù)慕M合使用。
一些實施例可實現(xiàn)過濾器以便管理設(shè)備能力。具體而言,設(shè)備世界是高度碎片化的(fractioned),并且對協(xié)議、編解碼器、比特率、以及分辨率的支持將極大地變化。然而,尤其是使用一種編碼對每種類型的設(shè)備進(jìn)行若干次編碼是不切實際且昂貴的。內(nèi)容所有者和分發(fā)者正在尋找將內(nèi)容遞送到許多設(shè)備的簡單方式。如上所述,一個解決方案是使用多個比特率資產(chǎn),其通過允許具有多比特率MP4、Smooth形式的源文件或其他文件在原始服務(wù)器102處被多路復(fù)用來解決多協(xié)議方面的問題,以供遞送例如Smooth、HLS、HDS以及DASH/CSF。然而,資產(chǎn)打包僅處理協(xié)議,并最終向客戶端設(shè)備106呈現(xiàn)完整的多比特率資產(chǎn)。由此,例如,先前包含H.264基線和H.264高(High)兩者的混合編碼簡檔可能已被呈現(xiàn)給了僅支持基線的設(shè)備;諸如例如,較舊的Android設(shè)備。
類似地,優(yōu)質(zhì)內(nèi)容的所有者傾向于遞送優(yōu)質(zhì)音頻。他們對使用不同的比特率的AAC、不同的配置文件、HE-AAC和AAC-LE,以及經(jīng)由杜比數(shù)字加(Dolby Digital Plus)和DTS的5.1環(huán)繞聲有興趣。如果它們遞送iOS應(yīng)用,它們還必須提供至少一個變體流,該變體流合計小于64kbps(通常是僅音頻)。多比特率音頻在當(dāng)今的客戶端框架中不能被很好地支持。至今為止還不存在已知的MBR音頻算法,而軌道選擇是在支持它的那些客戶端設(shè)備上的唯一機制。如果不支持的軌道被選擇,則某些框架就簡單地停止運轉(zhuǎn)。通過使用對資產(chǎn)清單的過濾來允許基于編解碼器的服務(wù)器側(cè)限制,各實施例可解決當(dāng)前設(shè)備格局(landscape)的一些能力限制。
一些實施例可涉及優(yōu)化移動設(shè)備上的帶寬和功率消耗。一般認(rèn)為,發(fā)送比設(shè)備能夠顯示的更高分辨率在帶寬和設(shè)備計算方面是浪費的,因為設(shè)備必須解碼過多的信息僅用于將其縮小以供顯示。本文的一些實施例可使用對資產(chǎn)清單的過濾來提供基于分辨率的服務(wù)器側(cè)限制。以此方式,實施例可解決移動設(shè)備上的帶寬和功率消耗。
一些實施例可涉及強制質(zhì)量限制。值得注意的是,可實現(xiàn)強制質(zhì)量上限和/或下限中的任一個或兩者的實施例。內(nèi)容所有者可意圖取決于目標(biāo)設(shè)備106來向他們的終端用戶遞送特定體驗。例如,當(dāng)向機頂盒或游戲控制臺遞送時,內(nèi)容所有者可能希望強制設(shè)備僅消耗較高的比特率。在較慢網(wǎng)絡(luò)條件下這可造成緩沖的后果,然而,一些內(nèi)容所有者可處在工作室合同、或其他約束下,僅能在特定條件下為特定標(biāo)題遞送特定質(zhì)量。
一些內(nèi)容所有者通過具有針對HD(高清晰度)和SD(標(biāo)準(zhǔn)清晰度)內(nèi)容的定價層來區(qū)分他們的產(chǎn)品。由此,內(nèi)容所有者可能需要限制用戶降低質(zhì)量。這可經(jīng)由數(shù)字權(quán)限管理系統(tǒng)通過密鑰和權(quán)限限制對HD內(nèi)容而不是對SD內(nèi)容的訪問來實現(xiàn)。然而,跨播放器框架限制軌道是復(fù)雜的,并且許多播放器框架不能區(qū)分哪些軌道是它們具有密鑰的而哪些軌道是它們將會得到解密錯誤的。能夠?qū)④壍老拗频脚cSD質(zhì)量層的特定密鑰/權(quán)限匹配的子集是有利的。這可通過在原始服務(wù)器102處對資產(chǎn)202的清單302應(yīng)用適合的過濾器來實現(xiàn)。由此,通過基于比特率來允許服務(wù)器側(cè)限制,各實施例可允許內(nèi)容所有者和分發(fā)者能夠管理質(zhì)量考量。
一些實施例可促進(jìn)多語言支持。多語言支持由跨因設(shè)備而異的播放器框架的不同實現(xiàn)支持。通過使用基于語言的過濾器來允許服務(wù)器側(cè)限制,各實施例可以管理多語言資產(chǎn)。
一些實施例包括用于在實況內(nèi)容流上操作的功能。具體而言,本發(fā)明的各實施例可從長期運行流之外創(chuàng)建多個虛擬節(jié)目時段。這可在它仍然是實況節(jié)目時,或稍后作為VOD資產(chǎn)時被實現(xiàn)。許多實況賽事是長期運行的,而廣播者可能希望將這些實況賽事劃分為邏輯節(jié)目開始和停止序列,而不限制觀看實況流的某人尋回DVR窗口的能力。這些較小的序列在移動設(shè)備上更易于管理,并為內(nèi)容提供者提供了附加的虛擬內(nèi)容。這樣的虛擬節(jié)目的示例是足球或籃球比賽的季度、棒球賽中的局、或奧林匹克節(jié)目下午的個體賽事。
例如,現(xiàn)在參考圖5。圖5示出了作為實況流廣播的多個不同體育賽事的連續(xù)流502。清單202可在時序信息208中包含時間標(biāo)記。時間標(biāo)記可被過濾以便向客戶端設(shè)備106提供僅顯示個體節(jié)目的資產(chǎn)的視圖。由此,設(shè)備106處的用戶可以看到僅提供滑雪節(jié)目504、僅提供雪橇節(jié)目506、僅提供花樣滑冰節(jié)目508或僅提供曲棍球節(jié)目510的視圖的清單。
參考圖6,時序信息208中的時間標(biāo)記的清單過濾可被用于從實況節(jié)目的實況邊緣移除若干秒以便創(chuàng)建節(jié)目回退。這允許廣播者觀看預(yù)覽發(fā)布點602上的呈現(xiàn),并如604所示的在查看者正接收流的時刻之前(通?;赝?0秒)創(chuàng)建廣告插入點。廣播者可然后及時地將這些廣告推送給它們的客戶端框架(通常使用XML或JSON對象),以便讓它們在廣告機會之前被接收并被處理。
如圖7所示,時序信息208中的時間標(biāo)記的清單過濾可被用于創(chuàng)建滾動DVR窗口,而不必刪除媒體。存在許多情形,其中廣播者希望提供隨實況邊緣移動的有限的DVR窗口。廣播者仍可將在DVR窗口之外的數(shù)據(jù)用于精彩片段剪輯,或者用于創(chuàng)建VOD節(jié)目或剪輯。
在一些情況下,用戶可能想對資產(chǎn)應(yīng)用一個以上的過濾器。例如,他們可能想要定義多個設(shè)備過濾器(XBOX、iPad、iPhone、Windows Phone、Flash、Silverlight),并對每個設(shè)備過濾器應(yīng)用時間線限制。由此,設(shè)備過濾器和時間線過濾器可被應(yīng)用。圖4A-4C示出了應(yīng)用多個過濾器的示例。
值得注意的是,一些過濾器比其他過濾器更持久。例如,設(shè)備過濾器是可重用的并且一年可能僅改變幾次,而時間線過濾器通常是因資產(chǎn)而異的。因此,持久存儲特定過濾器是有價值的,并且在清單請求時刻指定其他過濾器也是有價值的。
在一些實施例中,多個時間線過濾器可被應(yīng)用于實況情形。如圖4A-4C所示,用戶可能需要能夠設(shè)置一個以上的過濾器算法。例如,對于大多數(shù)實況廣播情形,用于實現(xiàn)滾動DVR窗口的時間線過濾器和用于修整來自資產(chǎn)頭部的平板的時間線過濾器可能需要被實現(xiàn)。在替換示例中,對特定大型體育廣播客戶,實現(xiàn)實況回退的時間線過濾器和實現(xiàn)滾動DVR窗口的時間線過濾器以及用于修整來自資產(chǎn)頂部的平板的時間線過濾器可能被實現(xiàn)。
例如,圖8示出平板移除限制了DVR窗口的一部分中的塊,證明了這些過濾器的AND特性。如果任何一個過濾器移除了一個塊,則它不可用于被下一個過濾器包括。這是可交換的,過濾器次序無關(guān)緊要。這由圖9示出,圖9示出了在流傳輸中的稍后的表示。
然而,隨著實況資產(chǎn)變得更大以及虛擬節(jié)目結(jié)束,廣播者還可能想要創(chuàng)建除了被用于實況流的過濾器之外的新過濾器,以便界定這些虛擬節(jié)目時段。由此,單個資產(chǎn)具有許多已命名過濾器可以是相關(guān)的。各實施例可在應(yīng)用過濾機制和允許這些過濾器的多樣性方面提供靈活性。
在一些情況下,內(nèi)容所有者可能想要將若干子剪輯呈現(xiàn)為單個資產(chǎn)。由于清單過濾不影響媒體片段,所以這種資產(chǎn)的時間線將具有不連續(xù)性,并且不是所有的流傳輸協(xié)議都優(yōu)雅地處理不連續(xù)性。在多個子剪輯的情況下,各實施例可使用兩個或更多個時間線過濾器的組合:例如(0:05:00<t<0:10:00)||(0:20:00<t<0:25:00)。
由單個資產(chǎn)可能引起許多流傳輸情形。各實施例因此使用用戶定義的令牌為單個資產(chǎn)提供多個可尋址清單。
各種特征可在各種實施例中實現(xiàn)。例如,經(jīng)過濾的清單可能能夠被重新多路復(fù)用為任何被支持的輸出格式。各實施例可被實現(xiàn),其中片段將保持冪等,內(nèi)容和URL兩者都不會改變,而不管過濾器是否改變。
如果清單過濾器改變,則會在相同URL處發(fā)布新的清單,這會中斷CDN邊緣節(jié)點處的下游高速緩存。如果這是實況清單,則它具有短TTL,并且將不會受到極大的影響。但是對于具有長TTL的VOD清單而言,可能需要注意不要修改已發(fā)布的過濾器。由此,一些實施例制作過濾器的副本,修改該副本并用不同的名稱保存它。
理想地,將向用戶呈現(xiàn)原始清單,并然后包括或排除將構(gòu)成被用于創(chuàng)建資產(chǎn)的‘呈現(xiàn)’的過濾器的各種屬性。如本文所使用的,術(shù)語“呈現(xiàn)”表示資產(chǎn)的特定的、經(jīng)過濾的版本。呈現(xiàn)包含用于各種清單特性的過濾器的集合。
為了更好地示出各種示例工作流,以下示出了各種偽對象和它們的交互。新實體IAssetRendition(I資產(chǎn)呈現(xiàn))將被創(chuàng)建。在所示示例中,它具有復(fù)合類型的數(shù)組ManifestFilter(清單過濾器)。它將是Iasset(I資產(chǎn))上的集合。它將跟蹤已經(jīng)與其相關(guān)聯(lián)的資產(chǎn)。由此:
New IAssetRendition entity(實體):
IAssetRendition.Name
IAssetRendition.Id
IAssetRendition.ManifestFilters[]
IAssetRendition.AssociatedAssets[](read-only(只讀),setter is in the IAsset(setter在IAsset中))
New IManifestFilters complex type(復(fù)合類型):
IManifestFilters.Type=enum{
VideoBitrate,
AudioBitrate,
VideoMaxWidth,
VideoMaxHeight,
CODEC,
Language,
AbsoluteStreamTime,
TimeRelativeToStreamEndInSec}
IManifestFilters.Operator=enum{GE,LE,EQ,NEQ}
IManifestFilters.Value=“stringValue”
IAssetRendition上的典型CRUD:
IAssetRendition AssetRendition=
Context.AssetRenditions.Create(“AssetRenditionName”)
Context.AssetRenditions.Delete(Id)
Helper funcion(函數(shù)):
IAssetRendition newAssetRendition=
Asset.AssetRenditions.CreateFrom(sourceAssetRenditionId,”Some New Rendition Name(某個新的呈現(xiàn)名)”);
Asset上的集合具有CRUD,如按照通常的設(shè)計模式:
Asset.AssetRenditions.Add
Asset.AssetRenditions.Remove
Asset.AssetRenditions.Update
具有相應(yīng)的異步(Async)函數(shù)。
以下示出了各個使用示例。
在以下示例中,示出了組成可重用過濾器的示例。在此特定示例中,期望僅使用較高的比特率流。該可重用過濾器如下:
以下示出了過濾器對某個資產(chǎn)的應(yīng)用:
targetAsset.AssetRenditions.Add(xboxRendition);
以下示出了過濾器的使用:
theAsset.ism/Manifest(filternames=Xbox_v1)
組成可重用過濾器的另一示例被示出。在此特定示例中,期望僅向使用低于1020×768分辨率的Android移動設(shè)備提供媒體。該可重用過濾器如下:
以下示出了過濾器對某個資產(chǎn)的應(yīng)用:
targetAsset.AssetRenditions.Add(androidLowRes);
以下示出了過濾器的使用:
theAsset.ism/Manifest(filternames=AndroidLowRes_v1)
以下示出了組成可重用過濾器的示例,該可重用過濾器將定義實況回退和DVR窗口。期望將回退設(shè)置為10秒,并將DVR長度設(shè)置為2小時。實現(xiàn)如下:
以下示出了過濾器對某個資產(chǎn)的應(yīng)用:
targetLiveAsset.AssetRenditions.Add(typicalLive);
以下示出了過濾器的使用:
theAsset.ism/Manifest(filternames=TypicalLive)
以下示出了組成可重用過濾器的示例,該可重用過濾器將創(chuàng)建資產(chǎn)的子剪輯。希望將虛擬節(jié)目添加到從1小時到2小時標(biāo)記的實況資產(chǎn),有效地對其進(jìn)行子剪輯。在所示示例中,還對該資產(chǎn)可用的是設(shè)備呈現(xiàn)和典型實況設(shè)置。以下示出該實現(xiàn):
首先,已知呈現(xiàn)被相關(guān)聯(lián):
targetLiveAsset.AssetRenditions.Add(xboxRendition);
targetLiveAsset.AssetRenditions.Add(androidLowRes);
targetLiveAsset.AssetRenditions.Add(typicalLive);
接著,新的絕對流時間過濾器被創(chuàng)建:
以下示出了過濾器的使用:
theAsset.ism/Manifest(filternames=clip1,AndroidLowRes_v1)
theAsset.ism/Manifest(filternames=clip1,Xbox_v1)
以下示出與過濾器的服務(wù)器交互。在一個示例實施例中,服務(wù)器將解析清單查詢特性中的文件名的逗號(或與號)分隔列表:
theAsset.ism/Manifest(filternames=clip1,Xbox_v1)
服務(wù)器將接收或檢索關(guān)于這些經(jīng)命名過濾器的過濾信息。服務(wù)器將使用AND邏輯來把它們應(yīng)用于原始清單(使得每個附加過濾器僅可從先前操作的經(jīng)過濾的清單中移除信息)。如果用戶希望創(chuàng)建多剪輯,他們將需要把所有的AbsoluteStreamTimeInHNS過濾器放入單個呈現(xiàn),因為把它們放入兩個不同的呈現(xiàn)將導(dǎo)致他們在整個時間線上互斥。替換地,用于用信號表示AND邏輯和OR邏輯兩者的機制可被實現(xiàn)。
各實施例可包括用于提供允許用戶定義清單過濾的用戶界面的功能??稍诙鄠€不同的位置和情形中提供用戶界面。例如,可與資產(chǎn)遞送系統(tǒng)結(jié)合來提供用戶界面,以便允許資產(chǎn)遞送系統(tǒng)處的管理員定義各種過濾器。替換地,可在客戶端設(shè)備處提供用戶界面,以便允許客戶端創(chuàng)建過濾器并請求根據(jù)在客戶端設(shè)備處定義的過濾器來過濾資產(chǎn)清單。
現(xiàn)在參考圖10,用于定義過濾器的用戶界面1000的示例被示出??稍谟嬎銠C或設(shè)備顯示器上向用戶顯示用戶界面1000,該用戶還可包括管理員或其他用戶。在此示例中,用戶界面1000包括三個范圍控制滑塊1002、1004和1006。此示例中的滑塊控制過濾器的上限和下限。例如,滑塊1002控制分辨率的上限和下限?;瑝K1004控制比特率的上限和下限?;瑝K1006控制音頻軌道質(zhì)量的上限和下限。
用戶可將滑塊控件(例如滑塊控件1008和1010)設(shè)置于上限和下限處。這將定義要定義的過濾器的過濾器范圍。當(dāng)將這樣的過濾器應(yīng)用于資產(chǎn)的清單時,該資產(chǎn)的高于上限或低于下限的任何部分將使其描述從清單中過濾出來。
由此,示例用戶界面可涉及具有復(fù)選框、滑塊、時間線等特性的呈現(xiàn)以及設(shè)置操作符和邊界值的能力。在一個示例實施例中,創(chuàng)作UI然后將作出對REST API的調(diào)用以便創(chuàng)建或修改實體。
下面的討論現(xiàn)在涉及可被執(zhí)行的多個方法和方法動作。盡管這些方法動作可以以特定次序被討論或在流程圖中被例示為以指定次序發(fā)生,但是除非特別指明否則不需要任何特定排序,或者因某一動作取決于在該動作被執(zhí)行之前完成的另一個動作而要求特定排序。
現(xiàn)在參考圖11,例示出方法1100。方法1100可在計算環(huán)境中實施,并包括用于提供VOD或流視頻清單的動作。該方法1100包括在服務(wù)器處接收來自客戶端設(shè)備的對清單的請求。對清單的請求包括將被應(yīng)用于返回的清單的一個或多個過濾器的標(biāo)識(動作1102)。例如,各種過濾器可被標(biāo)識,諸如被配置為基于視頻分辨率進(jìn)行過濾的過濾器,被配置為基于比特率進(jìn)行過濾的過濾器,被配置為基于音頻質(zhì)量進(jìn)行過濾的過濾器,被配置為基于時間戳進(jìn)行過濾的過濾器等的過濾器。圖12示出了客戶端設(shè)備向服務(wù)器1206發(fā)送包括一個或多個過濾器的標(biāo)識1204的請求1202的示例。
方法1100進(jìn)一步包括標(biāo)識清單(動作1104)。清單標(biāo)識了可被遞送到客戶端設(shè)備的多媒體資產(chǎn)的不同部分。例如,如上所述,清單可標(biāo)識資產(chǎn)中多媒體內(nèi)容的不同分辨率(例如720p、1080p等),資產(chǎn)中多媒體內(nèi)容的不同比特率(例如1Mbs、0.7Mbs等),不同音頻質(zhì)量(例如7.1、5.1、立體聲、單聲道等),資產(chǎn)中多媒體內(nèi)容的各種時間戳等。例如,圖12示出了標(biāo)識清單302的服務(wù)器1206。值得注意的是,服務(wù)器1206可以是內(nèi)容遞送節(jié)點、原始節(jié)點或其他適當(dāng)?shù)墓?jié)點。
方法1100進(jìn)一步包括將一個或多個經(jīng)標(biāo)識的過濾器應(yīng)用于清單,以生成排除一個或多個過濾器所指示的一個或多個項的經(jīng)過濾的清單(動作1106)。例如,如圖12所示,服務(wù)器1206可將過濾器304應(yīng)用于清單302以創(chuàng)建經(jīng)過濾的清單302’。
方法1100進(jìn)一步包括將經(jīng)過濾的清單返回到客戶端設(shè)備(動作1108)。例如,如圖12所示,經(jīng)過濾的清單302’被返回到客戶端設(shè)備106’。
方法1100可被實施,其中一個或多個過濾器在客戶端設(shè)備處被創(chuàng)建。例如,客戶端可能能夠決定它可以消耗什么內(nèi)容或者它偏好消耗什么內(nèi)容,并且可以創(chuàng)建可被發(fā)送到內(nèi)容服務(wù)器的自定義過濾器。內(nèi)容服務(wù)器可然后在內(nèi)容服務(wù)器處應(yīng)用過濾器,并且提供僅枚舉客戶端設(shè)備可呈現(xiàn)的或客戶端設(shè)備偏好接收的多媒體內(nèi)容選項的清單。
方法1100可被實施,其中該一個或多個過濾器是從提供給客戶端的預(yù)定義的一組過濾器中被選擇的。例如,該組過濾器可由內(nèi)容服務(wù)器提供給客戶端,以便指示內(nèi)容服務(wù)器能夠應(yīng)用于內(nèi)容服務(wù)器處的資產(chǎn)的過濾器的列表,或特別適用于內(nèi)容服務(wù)器處的內(nèi)容的過濾器的列表。替換地或附加地,多媒體播放器應(yīng)用或在客戶端設(shè)備處的應(yīng)用可具有一組被定義在該應(yīng)用中的過濾器,該組過濾器可被指定給內(nèi)容服務(wù)器。新的或不同的過濾器可在應(yīng)用更新中被指定,或可被指定為可插入應(yīng)用的過濾器集。
方法1100可進(jìn)一步包括將可在服務(wù)器處應(yīng)用的過濾器的選擇的指示發(fā)送到客戶端設(shè)備。在一些這樣的實施例中,將被應(yīng)用于返回的清單的一個或多個過濾器的標(biāo)識由客戶端使用可被應(yīng)用的過濾器的選擇的指示來創(chuàng)建。由此,內(nèi)容服務(wù)器可發(fā)送可以在客戶端設(shè)備處被選擇并被指示給內(nèi)容服務(wù)器的過濾器的選擇的指示,其中該過濾器可被應(yīng)用。
方法1100可被執(zhí)行,其中一個或多個過濾器中的至少一個包括上限和下限兩者。由此,例如,各實施例可以設(shè)置要被濾除的分辨率上限和要被濾除的分辨率下限??舍槍Ρ忍芈?、音頻質(zhì)量、時間戳或清單中的其他項來實現(xiàn)類似的示例。替換地,在一些實施例中,可設(shè)置上限和下限,并且落在上限與下限之間的項可被過濾,而高于上限和低于下限的項可被包括在清單中。
現(xiàn)在參考圖13,例示出方法1300。方法1300可以在計算環(huán)境中實施。方法1300包括用于管理VOD或流視頻資產(chǎn)的動作。該方法包括,針對給定資產(chǎn)來標(biāo)識可被應(yīng)用于該資產(chǎn)的清單的過濾器(動作1302)。方法1300進(jìn)一步包括向客戶端設(shè)備發(fā)送可被應(yīng)用于該資產(chǎn)的清單的所標(biāo)識的過濾器的指示(動作1304)。例如,如圖12所示,服務(wù)器1206可向客戶端設(shè)備106發(fā)送可被應(yīng)用于特定多媒體資產(chǎn)的過濾器的列表1208。
而且,各方法可由計算機系統(tǒng)實現(xiàn),計算機系統(tǒng)包括一個或多個處理器以及諸如計算機存儲器這樣的計算機可讀介質(zhì)。具體而言,計算機存儲器可以存儲計算機可執(zhí)行指令,該計算機可執(zhí)行指令在由一個或多個處理器執(zhí)行時使各種功能得以被執(zhí)行,諸如各實施例中記載的動作。
本發(fā)明的各實施例可以包括或使用包括計算機硬件的專用或通用計算機,如以下更詳細(xì)討論的。本發(fā)明范圍內(nèi)的各實施例也包括用于實現(xiàn)或存儲計算機可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的實體及其他計算機可讀介質(zhì)。這樣的計算機可讀介質(zhì)可以是可由通用或?qū)S糜嬎銠C系統(tǒng)訪問的任何可用介質(zhì)。存儲計算機可執(zhí)行指令的計算機可讀介質(zhì)是物理存儲介質(zhì)。承載計算機可執(zhí)行指令的計算機可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種顯著不同的計算機可讀介質(zhì):物理計算機可讀存儲介質(zhì)和傳輸計算機可讀介質(zhì)。
物理計算機存儲介質(zhì)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲(如CD、DVD等)、磁盤存儲或其他磁存儲設(shè)備、或可用于存儲計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜嬎銠C訪問的任何其他介質(zhì)。
“網(wǎng)絡(luò)”被定義為使得電子數(shù)據(jù)能夠在計算機系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸?shù)囊粋€或多個數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可以包括可用于攜帶計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的期望程序代碼裝置并可被通用或?qū)S糜嬎銠C訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。以上的組合也被包括在計算機可讀介質(zhì)的范圍內(nèi)。
此外,在到達(dá)各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸計算機可讀介質(zhì)自動轉(zhuǎn)移到物理計算機可讀存儲介質(zhì)(或者相反)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路接收到的計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口模塊(例如,“NIC”)內(nèi)的RAM中,并且然后最終被傳輸至計算機系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的計算機可讀物理存儲介質(zhì)。由此,計算機可讀物理存儲介質(zhì)可以被包括在同樣(或甚至主要)利用傳輸介質(zhì)的計算機系統(tǒng)組件中。
計算機可執(zhí)行指令包括例如使通用計算機、專用計算機或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或一組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實現(xiàn)權(quán)利要求的示例形式而公開的。
本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網(wǎng)絡(luò)計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發(fā)明也可在其中通過網(wǎng)絡(luò)鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計算機系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實施。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備二者中。
替換地或附加地,此處描述的功能可以至少部分由一個或多個硬件邏輯組件來執(zhí)行。例如、但非限制,可使用的硬件邏輯組件的說明性類型包括現(xiàn)場可編程門陣列(FPGA)、程序?qū)S玫募呻娐?ASIC)、程序?qū)S玫臉?biāo)準(zhǔn)產(chǎn)品(ASSP)、片上系統(tǒng)系統(tǒng)(SOC)、復(fù)雜可編程邏輯器件(CPLD)、等等。
本發(fā)明可以以其他具體形式來體現(xiàn),而不背離其精神或特征。所描述的實施例在所有方面都應(yīng)被認(rèn)為僅是說明性而非限制性的。從而,本發(fā)明的范圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變應(yīng)被權(quán)利要求書的范圍所涵蓋。