專利名稱:動態(tài)改變播放列表的制作方法
動態(tài)改變播放列表
一支術領j或
本發(fā)明總體上涉及遞送和呈現(xiàn)多媒體內容。
背景技術:
流式傳輸是一種用來將多媒體內容遞送給最終用戶的技術。流 式傳輸包括在將媒體內容遞送給用戶的同時,連續(xù)地向用戶顯示該 內容。流式傳輸可以用來向最終用戶遞送各種類型的數(shù)字媒體。流 媒體例如可以包括錄制的媒體內容(例如,錄制的視頻)和/或即時 媒體內容(例如,來自用戶網(wǎng)絡攝像頭的視頻)。
發(fā)布者可以利用一個或多個編解碼器來對內容進行編碼,從而 創(chuàng)建用于流式傳輸?shù)膬热?例如,音頻和視頻)。流媒體服務器繼 而可以通過網(wǎng)絡(例如,因特網(wǎng))接收所創(chuàng)建的流以及將流傳送給 客戶端設備??蛻舳丝梢园蛻舳藗炔シ牌?,其為最終用戶解壓 縮和顯示濟u。
流媒體環(huán)境可以使用虛擬機來向最終用戶呈現(xiàn)流式傳輸內容。 虛擬機是自包含的操作環(huán)境,其允許程序在虛擬機平臺本身之中運 行,如同虛擬機是單機計算機一樣。虛擬機可以是程序本身,其嵌
入在操作系統(tǒng)或者其他軟件應用之中。虛擬機的 一 個示例是Adobe Flash Player運4亍時(可/人CA, San Jose的Adobe Systems ^〉司獲 得),其可以用來運行包括ActionScript和Shockwave Flash ( SWF ) 文件在內的Flash 文件。
定制的圖像閱覽器和視頻播放器可以在虛擬機上運行,并且向 最終用戶呈現(xiàn)流媒體。這些定制的應用可以用來協(xié)助web應用提供 交互式富媒體內容。配置用于在Adobe Flash 平臺上執(zhí)行的應用可 以包含在SWF文件中,而SWF文件可以由客戶端側SWF播放器軟件來處理。媒體內容本身可以保持為與SWF文件分離,并且可以在
運行時加載到SWF中以《更回放。
在流式傳輸期間可以使用播放列表。播放列表可以包括排隊等待播放的流的列表。播放列表中的流可以流式傳輸給用戶,并且按照其排隊的順序一個接一個的從源(例如,流媒體服務器)進行播
放。來自播放列表的流可以通過定制的圖像閱覽器、視頻播放器和音頻播放器(其可以與各種其他應用相關聯(lián))呈現(xiàn)給最終用戶。
發(fā)明內容
本說明書描述涉及動態(tài)改變包括流式傳輸內容的播放列表的技術。播放列表可以響應于客戶端側反饋而改變,所述反饋可以包括運行時性能信息和/或用戶偏好。
總體上,在一個方面,提供一種計算機實現(xiàn)的方法。該方法包
括從服務器接收與播放列表相關聯(lián)的流,該播放列表包括流的排序,這些流進行排隊以 <更按照該排序從服務器進行客戶端側回放;訪問與至少 一 個流的4妾收和回》文相關聯(lián)的客戶端側回》文狀況;響應于該客戶端側回放狀況,由客戶端側應用請求改變該播;故列表的流,該請求標識期望的播放列表改變,并且包括控制播放列表改變的信息;以及按照響應于該請求而進行的播放列表改變,來顯示該播放列表的流。其他實施方式包括相應的系統(tǒng)、裝置和計算機程序產品。
實現(xiàn)可以包括以下一個或多個特征。例如,在某些實現(xiàn)中,播放列表的流包括以下至少一個音頻流、視頻流、具有音頻和視頻的混合流、基于文本的數(shù)據(jù)、靜態(tài)圖像數(shù)據(jù)以及用戶定義的 據(jù)。流可以包括即時流。在某些實現(xiàn)中,播放列表由客戶端側應用創(chuàng)建。
訪問客戶端側播放列表狀況可以包括訪問以下至少 一 個網(wǎng)絡帶寬可用性,客戶端處理能力,以及用戶閱覽統(tǒng)計。期望的播放列表改變可以包括以下至少一個(i)播放列表中流的重新排序;(ii)將流從播放列表中移除;以及(Hi)在播放列表中的指定插入點處插入新的流。期望的播放列表改變可以包括將播放列表中的流替換為該流的不同版本,該不同版本與被替換的流需要不同的網(wǎng)絡和處理資源。期望的播放列表改變可以包括將播放列表中的流替換為不同的流,該不同的流具有與被替換的流不同的內容。期望的播放列表改變可以包括將當前播放的流替換為新的流,其中所述請求標識當前播放的流和新的流,并且包括指定是否在中間位置替換當前播放流的控制信息。
總體上,在另一方面,提供一種計算機實現(xiàn)的方法。該方法包
括向客戶端流式傳輸與播放列表相關聯(lián)的媒體流,該播放列表包括流的排序,這些流進行排隊以便按照所述排序進行客戶端側回放;從客戶端側應用接收響應于4企測到的客戶端側狀況的、改變插^文列表的請求,該請求標識期望的播放列表改變,并且包括控制播放列表改變的信息;基于接收到的請求來改變播放列表;以及按照所述改變,流式傳輸與播放列表相關聯(lián)的媒體流。其他實施方式包括相應的系統(tǒng)、裝置和計算機程序產品。
實現(xiàn)可以包括以下一個或多個特征。例如,在某些實現(xiàn)中,與播放列表相關聯(lián)的流包括以下錄制的或即時的內容的至少 一個音頻流、視頻流、具有音頻和纟見頻的混合流、基于文本的數(shù)據(jù)、靜態(tài)圖像數(shù)據(jù)以及用戶定義的數(shù)據(jù)。
改變播;故列表可以包括以下至少一個(i)對播;改列表中的流重新排序;(ii)將流從播放列表中移除;以及(iii)在播放列表中的指定插入點處將新的流插入播放列表。改變播放列表可以包括將播放列表中的流替換為該流的不同版本,該不同版本與被替換的流需要不同的網(wǎng)絡和處理資源。改變播放列表可以包括將播放列表中的流替換為不同的流,該不同的流與被替換的流具有不同的內容。改變播放列表可以包括將當前流式傳輸?shù)牧魈鎿Q為新的流,其中在新流中的最早關鍵幀處替換當前流式傳輸?shù)牧?,使得當前流式傳輸?shù)牧鞯幕胤趴雌饋頉]有中斷。
總體上,在另一方面,提供一種系統(tǒng)。該系統(tǒng)包括一個或多個處理器用來執(zhí)行操作,所述操作包括向客戶端流式傳輸與播放列表相關聯(lián)的媒體流,該播放列表包括流的排序,這些流進行排隊以
便按照所述排序進行客戶端側回放;從客戶端側應用接收響應于枱,
測到的客戶端側狀況的、改變播放列表的請求,該請求標識期望的
播放列表改變,并且包括控制播放列表改變的信息;基于接收到的請求來改變播放列表;以及按照所述改變,流式傳輸與播放列表相關聯(lián)的媒體流。
實現(xiàn)可以包括以下一個或多個特征。例如,在某些實現(xiàn)中,與播放列表相關聯(lián)的流包括以下錄制的或即時的內容的至少 一個音頻流、視頻流、具有音頻和視頻的混合流、基于文本的數(shù)據(jù)、靜態(tài)圖像數(shù)據(jù)以及用戶定義的數(shù)據(jù)。
在某些實現(xiàn)中,改變播放列表可以包括以下至少一個(i)對播放列表中的流重新排序;(ii)將流從播放列表中移除;以及(iii)在播放列表中的指定插入點處將新的流插入所述播放列表。改變播放列表可以包括將播放列表中的流替換為該流的不同版本,該不同版本與被替換的流需要不同的網(wǎng)絡和處理資源。改變播放列表可以包括將播放列表中的流替換為不同的流,該不同的流與被替換的流具有不同的內容。改變播放列表可以包括將當前播放的流替換為新的流,其中在新流中的最早關鍵幀處替換當前流式傳輸?shù)牧鳎沟卯斍傲魇絺鬏數(shù)牧鞯幕亍氛煽雌饋頉]有中斷。
在某些實現(xiàn)中,該系統(tǒng)還包括一 個或多個處理器用來執(zhí)行操作,所述操作包括接收與播放列表相關聯(lián)的流式傳輸?shù)拿襟w流;檢測與至少 一個接收的流的接收和回放相關聯(lián)的客戶端側回放狀況;發(fā)送改變播放列表的請求;以及按照該改變來顯示播放列表的流。
可以實現(xiàn)本it明書中所描述主題的方面,以實現(xiàn)以下一個或多個和/或其他優(yōu)點。按照本公開的實現(xiàn)可以用來動態(tài)地將播放列表中
的一個流替換為另一流,而不影響播放列表中的其他流。切換可以在適當?shù)狞c自動地進行,使得回放看起來是無縫的并且沒有干擾或停頓。而且,在有些示例中,可以在無需重置或者重新創(chuàng)建播放列表的情況下對播放列表的流重新排序。而且,按照本公開的實現(xiàn)可以提供對播放列表改變的應用控制。例如,如果服務器已經(jīng)開始傳輸來自播放列表的內容,則應用可以決定服務器是否應當從當前流式傳輸?shù)膬热萘髑袚Q為另 一流。
在播放列表中流的回放期間,帶寬可用性和/或系統(tǒng)資源可能變化(例如,由于系統(tǒng)上運行的其他應用)。在這種情況下,可能期望將播放列表中的一個或多個流替換為具有相同內容、但是以不同質量編碼的流。按照本公開的實現(xiàn)可以利用不同的分辨率或者比特率版本來更新流式傳輸內容,以適應可用的帶寬和系統(tǒng)資源。可以更新播放列表以包括這些不同版本,而無需重新創(chuàng)建播放列表,也無需在進行更新時中斷回》文體-驗。
作為示例,用戶在播放列表中對500kbps的視頻進行排隊,以用于高帶寬環(huán)境的介質。服務器繼而開始流式傳輸該播放列表,但是在回放期間 ,網(wǎng)絡僅提供300kbps的帶寬。為了避免由于該降低的帶寬而使視頻斷續(xù),當前播放的視頻應當切換為較低比特率的版本,諸如比特率小于300kbps的版本。而且,播放列表中排隊等候的所有其他高比特率(在此例中,是高于300kbps)視頻流同樣應當切換為其較低比特率版本。按照本公開的實現(xiàn)可以將受帶寬降低影響的相關流更新為其較低比特率版本,而不造成任何回放暫停。而且,如果需要切換的目標流已經(jīng)在播放之中,則可以利用應用的API(應用編程接口)控制對其進行切換或者不進行切換。
在另 一情況下,應用可能希望根據(jù)用戶的閱覽歷史來切換播放列表中的流。例如,基于先前閱覽器行為,應用可能希望在播放列表中應當保持不變的其他視頻流之間的某點,將播放列表中的特定流替換為具有不同內容的完全不同的流(不僅僅是先前情況中相同內容的不同質量或者比特率的版本)。作為示例,應用可能希望將播放列表中的一個流式傳輸?shù)纳虡I(yè)廣告替換為另一個商業(yè)廣告,其中商業(yè)廣告發(fā)生在應當保持不變的即時視頻流之間。在這種情況下,可能不希望在任何中間位置(例如,在流的中間)切換流,因為這將在切換流時導致回放內容的突變。按照本公開的實現(xiàn)可以允許應用控制和指定切換的類型,以避免這類突變。
本說明書中所描述主題的一個或多個實施方式的細節(jié)在附圖和下文描述中記載。根據(jù)描述、附圖以及權利要求書,其他特征、方面和優(yōu)點將變得易見。
圖1是示出了示例數(shù)據(jù)流的圖示。
圖2是示出了播放列表的概念性概觀的框圖。
圖3是示出了示例數(shù)據(jù)處理環(huán)境的框圖。
圖4是示出了示例播放列表改變過程的流程圖。
圖5是示出了另一示例播放列表改變過程的流程圖。
圖6是示出了示例流替換過程的流程圖。
圖7是示出了示例流替換過程的示例方面的流程圖。
在各個附圖中,類似的標號表示類似的元素。
具體實施例方式
圖1示出了示例數(shù)據(jù)流100,其中播放列表120包括可以動態(tài)改變的一個或多個流122。數(shù)據(jù)流100是一個示例,而并非意在限制。因此,在不脫離本公開范圍的情況下,可以對數(shù)據(jù)流100進行各種修改。
在此使用的"播放列表"可以表示一個或多個內容流的排序,這些內容流進行排隊,以便按照其排隊的順序來進行流式傳輸和播放。在某些示例中,播放列表可以通過XML (可擴展標記語言)實現(xiàn),并且可以包括標識播放列表中內容流的各種信息。在此使用的"內容流,,或者"流,,可以表示能夠呈現(xiàn)給用戶的任何媒體或者數(shù)據(jù)項。例如,流可以包括視頻內容、音頻內容和/或音頻和視頻內容的組合。在某些實現(xiàn)中,與播放列表相關聯(lián)的流還可以包括各種其他數(shù)據(jù),諸如基于文本的數(shù)據(jù)、靜態(tài)圖像數(shù)據(jù)和/或用戶定義的數(shù)據(jù)??梢园凑崭鞣N格式來創(chuàng)建和存儲流,其可以使用各種壓縮方案(例如,有損壓縮和/或無損壓縮)以及各種數(shù)據(jù)結構(例如,光柵 圖形和/或矢量圖形)。可以按照支持同步音頻和視頻的格式來創(chuàng)建
和存儲流。在某些示例中,流可以表示為MPEG-4(移動圖像專家組) 格式、SWF格式、FLV (Flash視頻文件)格式和/或F4V格式。各 種其他格式也是可能的,包括波形音頻(WAV)、音頻互換文件格 式(AIFF)、自由無損音頻編解碼器(FLAC) 、 Apple無損、Windows Media Audio ( WMA ) 、 MP3、高級音頻編碼(AAC ) 、 GIF (圖像 互換格式)、PNG(便攜式網(wǎng)絡圖形)以及HTTP(超文本傳輸協(xié)議)。 其他格式也是可能的。
在數(shù)據(jù)流100的流式傳輸105階段期間,與播放列表120相關 聯(lián)的流122可以從源110流式傳輸?shù)讲シ牌?50。在此使用的"流式" (或者用作動詞時的術語"流式傳輸")表示遞送流的比特,使得 在將該流遞送給用戶的同時連續(xù)地向用戶顯示該流。在將內容流式 傳輸?shù)侥康牡貢r,在遞送比特的同時在目的地顯示該內容,繼而丟 棄該內容,而不將其持久地本地保存在目的地。
流源110例如可以包括媒體服務器或者網(wǎng)絡中心,其配置用于 通過網(wǎng)絡(諸如,互聯(lián)網(wǎng))流式傳輸內容。在某些實現(xiàn)中,流源110 可以包括可從CA, San Jose的Adobe Systems公司獲得的Adobe Flash⑧媒體服務器(FMS)系統(tǒng)。流源110可以維護播放列表120。 在某些示例中,播放列表120中的每個流122可以與存儲在流源110 中或流源110可訪問的相應文件相關聯(lián)。例如,每個流122可以與 流源110維護的或者可訪問的FLV或者其他類型的文件相關聯(lián)。播 放列表120可以包括指向與內容流122對應的文件的指針。
播放器150可以包括為最終用戶處理和顯示流的任何機制。播 放器150例如可以包括客戶端側虛擬機,其配置作為單機播放器或 者^'J覽器(i者3口, Mozilla Firefox、 Opera、 Safari以及Internet Explorer ) 的插件。在某些示例中,播放器150可以包括Adobe Flash⑧播放器 運行時(可以從CA, San Jose的Adobe Systems公司獲得),其例如 可以運行SWF文件、FLV文件和/或F4V文件。在流式傳輸105期間,可以在流源IIO與播放器150之間建立 持久連接。該連接可以促進從源IIO到播放器150的流式傳輸105。 在某些實現(xiàn)中,可以使用TCP (傳輸控制協(xié)議)、UDP (用戶數(shù)據(jù) 報協(xié)議)和/或其他協(xié)議來創(chuàng)建該連接。例如,播放器150可以使用 RTMP (實時消息收發(fā)協(xié)議)和/或RTMFP (實時々某體流協(xié)議)來連 接至流源110。
播放列表120可以按照各種方式來創(chuàng)建。在某些示例中,播放 列表120可以由流源IIO創(chuàng)建。在某些示例中,在播放器150上運 行的客戶端側應用160可以參與播放列表120的創(chuàng)建。例如,應用 160可以對流源IIO進行一個或多個調用124,以便將各個內容流(例 如,流122)添加到播放列表120中。這些流可以一個接一個的附加, 以便按照同樣的順序在列表中播放。在某些示例中,如下所述,可 以在指定的插入點和刪除點處在播放列表中插入流或者刪除流。流 源110維護播放列表120,并且在流式傳輸105階段期間將這些流的 比特遞送至播放器150。
在此使用的術語"應用"表示具有用戶可感知的某些已定義目 的的任何計算機程序。應用可以包括各種計算機程序(也稱為程序、 軟件、軟件應用、軟件模塊或者代碼),其包含可由處理器執(zhí)行和/ 或解釋的指令。應用可以包括一個或多個文件,這些文件包含各種
信息,諸如源代碼、機器代碼、庫、數(shù)據(jù)、文檔、配置信息、圖標 或者應用以及用于該應用的安裝過程可以使用的任何其他資源。應 用(或者其部分)可以是依賴于平臺的或者平臺無關的。在某些實 現(xiàn)中,應用160可以表示使用各種應用開發(fā)框架和/或web開發(fā)工具 創(chuàng)建的應用,諸如Adobe Flex BUILDER 軟件、Adobe Flash 軟件和Adobe Dreamweaver⑧軟件,這些軟件可以從CA, San Jose 的Adobe Systems 乂>司獲4尋。
在某些示例中, 一個或多個發(fā)布者190(其在地理上可以是分散 的)可以向流源110提供內容流(例如,流122),以便包含到播放 列表120中。發(fā)布者可以包括創(chuàng)建、更新、分發(fā)、擁有或者以其他方式控制或管理多媒體內容的任何實體。發(fā)布者190例如可以包括
軟件開發(fā)者。備選地,發(fā)布者190例如可以包括最終用戶。在某些 示例中,發(fā)布者190可以向流源IIO提供錄制的或者即時的內容(例 如,來自網(wǎng)絡攝像頭),以便流式傳輸給其他用戶。在某些實現(xiàn)中, 發(fā)布者190可以與應用160或者其他應用相關聯(lián)。
在應用160正在運行并且開始顯示流(例如,流122)的同時, 可以開始進行多個運4亍時以及動態(tài)行為。例如,應用160可以部署 到具有多樣化的網(wǎng)絡和系統(tǒng)可用性程度的各種異構環(huán)境中。相同的 應用可以在具有高帶寬可用性的環(huán)境處運行,或是在帶寬不足的端 點處運行,所述端點不能足夠快地接收流從而按照視頻被編碼的速 率來顯示它們。系統(tǒng)處理資源也可能變化,這例如是由其他應用的 需求引起的。
為了考慮到這些運行時和動態(tài)行為以及其他客戶端側狀況,數(shù) 據(jù)流100包括事件監(jiān)測170階段。事件監(jiān)測170可以在貫穿數(shù)據(jù)流 100中各個時間點進行(包括流式傳輸150期間)?;诳尚薷牡脑O 置,事件監(jiān)測170可以是周期性的(例如,每秒、每30秒、每5分 鐘等)。事件監(jiān)測170對于最終用戶而言可以是透明的,并且其可 以在最終用戶的控制和指示下執(zhí)行。
在事件監(jiān)測170期間,播放器150可以監(jiān)測和/或訪問各種客戶 端側狀況,這些狀況可以用作動態(tài)改變180播放列表120的基礎。 例如,事件監(jiān)測170可以包括檢測和/或訪問運行時性能信息172和/ 或關于用戶偏好174的信息。運行時性能信息172例如可以包括 網(wǎng)絡帶寬、客戶端側處理資源(例如,處理器利用率)、功率狀況 (例如,電池電量低、節(jié)能操作模式等)、客戶端側音頻繪制能力 (例如,揚聲器能力、聲道屬性(多聲道、立體聲、單聲道)、支 持的頻率、高清能力等)、客戶端側視頻繪制能力(例如,支持的 分辨率、屏幕大小、高清能力等)以及與流122的客戶端側回放相 關聯(lián)的各種其他性能狀況。關于用戶偏好174的信息例如可以包括 用戶活動、閱覽歷史和/或影響用戶活動和偏好的各種其他狀況。該信息可以包括如下指示用戶點擊或者以其他方式選擇特定的流(例
如,商業(yè)廣告)和/或用戶閱覽特定內容(例如,播放列表中的流)
所花費的時間量。在某些實現(xiàn)中,用戶偏好可以實現(xiàn)在應用160中。 運行時性能信息172和/或用戶偏好174可以用來構建用于播放列表 改變180的啟發(fā)。
在數(shù)據(jù)流IOO期間的各個時刻,播放器150可以向應用160提 供事件監(jiān)測170的結果。可以利用控制邏輯165來配置應用160,該 控制邏輯165允許應用進行關于改變180播放列表120的決策。在 某些示例中,該控制165可以使用API來實現(xiàn)。播放器150可以在 播放列表120的回放期間向應用160提供事件監(jiān)測結果,而應用160 可以(使用控制165)進行關于動態(tài)改變180播放列表120中一個或 多個流(包括播放器150當前正在播放的流)的動態(tài)決策。盡管將 控制165示出為應用160的一部分,但是控制165可以包括在應用 160、播放器150或者應用和播放器之中。在某些示例中,控制165 的一個或多個方面可以在應用160和播放器150之間分布,作為用 于其他應用的可分布式庫,以便將其他應用嵌入在內。
應用160例如可以通過向流源110提供適當?shù)姆础┵F175,來實現(xiàn) 對播放列表的動態(tài)改變180。反饋175可以包括針對基于事件監(jiān)測 170的動態(tài)改變180的請求。動態(tài)改變180可以包括對播放列表120 中的一個或多個流的任何類型的改動。示例改變包括但不限于在 開始流式傳輸之前或者甚至在流式傳輸之中(此時原始項已經(jīng)在進 行流式傳輸),將播放列表中的項替換為另一項;對播放列表中的 流進行重新排序;以及從播放列表中移除一個或多個流;向播放列 表中插入新的流。替換流可以包括將播放列表中的特定流切換為 該流的不同版本(例如,從500kbps視頻切換為300kbps視頻)。替 換流還可以包括將播放列表中的流切換為另一流,此另一流的內 容與所替換流的內容無關和/或不同。
在某些示例中,反饋175可以實現(xiàn)響應于降級狀況的改變180, 其中降級狀況諸如降低的網(wǎng)絡帶寬、降低的功率、降低的處理能力等。在這些情況下,改變180可以包括將播放列表120的流替換為
相同內容的降檔或者降級版本。例如,為了避免由于檢測到的網(wǎng)絡
帶寬下降而使視頻斷續(xù),應用160可以請求流源110將播放列表120 中的一個或多個流替換為較低比特率版本。作為另一示例,應用160 可以請求流源IIO將播放列表120的一個或多個流替換為較低清晰 度版本(例如,從高清晰度到標準清晰度)。其他示例改變180可 以包括從全屏版本切換為部分屏幕版本(例如,在瀏覽器中)、 從混合音頻/視頻切換為純音頻(或者純視頻)、從高分辨率切換為 低分辨率,等等。
反之,為了利用客戶端側環(huán)境的全部能力,反饋175可以實現(xiàn) 響應于改進狀況的改變180,其中改進狀況例如提高的網(wǎng)絡帶寬、提 高的功率、提高的處理能力等。在這些情況下,改變180可以包括 將播放列表120的流替換為相同內容的升級版本。例如,應用160 可以請求流源IIO將播放列表120的一個或多個流替換為較高比特 率版本。作為另一示例,應用160可以請求流源110將播放列表120 的一個或多個流替換為較高清晰度版本(例如,從標準清晰度到高 清晰度)。其他示例替換180包括從部分屏幕版本(例如,在瀏覽 器中)切換為全屏版本、從純音頻(或者純視頻)切換為混合的音 頻/視頻、從立體聲版本切換為多聲道版本、乂人低分辨率切換為高分 辨率等。
除了實現(xiàn)涉及流的升級和降級版本的替換之外,反饋175可以 實現(xiàn)以下改變,這些改變將播放列表中的流替換為具有無關和/或不 同內容的無關流或者不同流。這些類型的改變180可以響應于^r測 到的用戶偏好,諸如閱覽歷史。例如,基于閱覽歷史,應用160可 以確定播放列表120中的第一流應當替換為與第一流無關和/或不 同的第二流(其可以不在播放列表中)。第一流和第二流例如可以 是面向不同受眾的不同商業(yè)廣告。
為了實現(xiàn)改變180,反饋175可以包括一個或多個請求,所述請 求包含標識期望的改動的適當信息。例如,為了實現(xiàn)流替換,反饋175可以包括如下請求,該請求包括當前在播放列表120中的流的名 稱,以及替換流的名稱。在接收到該請求之后,流源110可以在播 放列表中查找舊流名稱,并將其替換為新流。如果流源110已經(jīng)在 流式傳輸舊流的比特,則其可以計算不會在回放期間在播放器150 上造成任何干擾或者贗像的情況下,切換為新流的最近時幀。
不論是請求流的升級/降級版本還是具有無關和/或不同內容的 流,應用160可以在反饋175中包括控制信息,該控制信息指定期 望的切換類型以及期望的切換行為。此控制信息可以基于根據(jù)事件 監(jiān)測170構建的各種啟發(fā)。對于將流替換為具有無關或者不同內容 的其他流而言,控制信息可能尤其有用。例如,當新流和舊流;波此 完全無關時,如果流源110已經(jīng)開始流式傳輸舊流,則應用160和/ 或播放器150可能不希望切換流,因為這樣做將導致回放期間的內 容突變。由此,應用160和/或播放器150具有用來指定播放列表流 是否應當整體或者部分切換的控制。播放器150和流源110還可以 具有指定播放列表120的插入或者刪除模式的控制能力,從而使新 流可以插入在舊流之前或者之后,或者可以從播放列表中刪除舊流。 流源IIO和播放器150還可以具有指定應當替換舊流的新流的開始 點或者偏移以及長度的能力。
在某些實現(xiàn)中,播放列表(例如,播放列表120)可以在客戶端 創(chuàng)建(例如,由客戶端側應用創(chuàng)建),而在通過網(wǎng)絡流式傳輸內容 的服務器(例如,流源110)處改變。各種其他實現(xiàn)同樣位于本公開 的范圍之內。例如,播放列表最初可以在媒體服務器處創(chuàng)建,并繼 而下載到客戶端,并在客戶端處改變。作為另一示例,播放列表最 初可以在服務器處創(chuàng)建,并繼而下載到客戶端。播放列表繼而在服 務器處改變,并且可以將改變后的版本提供給客戶端。在另一實現(xiàn) 中,播放列表可以由執(zhí)行流式傳輸以外的服務器來主控。例如,一 個服務器可以執(zhí)行流式傳輸,而另一服務器可以主控播放列表和改 變邏輯。
圖2示出了按照至少某些實現(xiàn)的示例播放列表200。圖2僅僅是示例性的,其他播放列表實現(xiàn)也在本公開的范圍之內。如圖所示,
播放列表200可以包括一個或多個流210(1)-210(N)。每個流210可 以包括音頻內容、視頻內容或者二者。流210可以包括利用一個或 多個編解碼器(例如,H.264、 On2VP6和/或Sorenson Spark視頻編 解碼器)編碼的內容。播放列表200可以通過XML、 ActionScript 或者任何其他適當?shù)恼Z言來實現(xiàn)。播放列表200可以由流媒體服務 器(例如,Adobe Flash⑧媒體服務器系統(tǒng),可以從CA, San Jose 的Adobe Systems公司獲得)來維護,并且插。改列表210中的每個流 210可以對應于該々某體服務器維護或者可訪問的文件(例如,SWF 文件、FLV文件和/或F4V文件)。響應于來自播放器應用的命令, 可以在一個或多個數(shù)據(jù)結構(例如,F(xiàn)MS數(shù)據(jù)結構)中內部維護播 放歹'J表。
在某些實現(xiàn)中,流210可以包括利用一個或多個關鍵幀220編 碼的一個或多個流,以及用于改變關鍵幀以重現(xiàn)關4建幀之間的中間 幀或者增量幀225的中間信息。在流的回放期間,可以對已編碼的 流進行解壓縮和解碼。關鍵幀220可以包括內容的部分,并且可以 提供解壓縮期間所需的信息,以適當?shù)馗嘛@示(例如,以反映內 容的變動,諸如圖像移動)。流中所包括中間信息可以提供更新, 該更新能夠漸進式地重現(xiàn)內容。只要流(例如, 一見頻)的內容無法 使用中間信息根據(jù)先前的關鍵幀進行重現(xiàn)時,流210便可以包括新 的關鍵幀220。
在某些實現(xiàn)中,播放列表200可以與時間線相關聯(lián)。時間線可 以將播放列表200的總計運行時間劃分為分段或者幀。播放列表200 的每個流210可以在時間線上的指定位置處放置在時間線上。在某 些示例中,播放列表200可以在服務器上存儲的列表類數(shù)據(jù)結構中 實現(xiàn)。播放列表200中的每個流210可以具有開始時間和結束時間。 播放列表的流可以首尾相接地設置,以構建組合時間線。
在某些實現(xiàn)中,改變播放列表可以包括改變與播放列表相關聯(lián) 內容和時間線。例如,在將新流包含到播放列表中時,可以按照新流對原始時間線重新排序。由此,如果特定流切換為較短的流,則 相應的時間線可以縮#豆。
圖3示出了示例數(shù)據(jù)處理環(huán)境300,其中,播放列表可以動態(tài)改 變。獨立的計算平臺310和315每個都包括硬件和軟件。計算平臺 310可以配置為流媒體服務器,而平臺315可以配置為回放客戶端 (例如,最終用戶計算機)??蛻舳?15例如可以包括個人計算機 或者工作站、膝上型計算機、移動電話、機頂盒、手持設備或者可 以提供回放功能的任何其他適當?shù)脑O備。
計算機平臺310和315在地理上可以是分散的,并且經(jīng)由網(wǎng)絡 375可操作地耦合。網(wǎng)絡375可以包括一個或多個電信網(wǎng)絡,諸如計 算機網(wǎng)絡、電話或者通信網(wǎng)絡、因特網(wǎng)等。網(wǎng)絡375可以包括共享 的、公共的或者專用的數(shù)據(jù)網(wǎng)絡,包括廣域網(wǎng)(例如,WAN)或者 局域網(wǎng)(例如,LAN)。
在圖3所示的示例配置中,計算機平臺310和/或315上的硬件 可以包括以下一個或多個網(wǎng)絡接口 352,處理器354,輸出設備356, 輸入設備358,存儲設備360以及其他設備362。 一個或多個系統(tǒng)總 線可以將這些組件互連。這些元件的數(shù)目、標識和布置并不限于所 示情況,而是可以包括附加的和/或不同的元件或者將其與所示元件 耦合。此外,平臺310和315可以包括少于所示的組件。盡管利用 類似的組件來描繪,但是平臺310和315可以不同地配置,每個平 臺具有與附圖中所示相比較多、較少或者不同的元件。例如,客戶
端平臺315可以是移動設備,其具有少于或者不同于服務器310中 包括的組件。
網(wǎng)絡接口 352輔助與網(wǎng)絡(諸如,網(wǎng)絡375 )的連通性。網(wǎng)絡接 口 352可以是用于輔助計算機平臺與網(wǎng)絡375之間的單向或者雙向 數(shù)據(jù)傳輸?shù)娜魏芜m當?shù)挠芯€機制(例如,IEEE (國際電子電氣工程 師協(xié)會)1394、通用串行總線(USB )等)或者無線機制(例如,IEEE 802.11 ,藍牙⑧、IrDA⑧等)。網(wǎng)絡接口 352可以包括一個或多個 網(wǎng)絡卡和/或數(shù)據(jù)和通信端口 。處理器354可以執(zhí)行來自存儲設備的指令,在計算機平臺的組 件之間路由信息,和/或執(zhí)行對數(shù)據(jù)的各種操作。每個平臺310和315 可以包括任何數(shù)目的通用處理器和/或專用處理器,其協(xié)同操作或者 獨立操作。在某些示例中,處理器354可以包括一個或多個專用集 成電路(ASIC)和/或各種其他電路。處理器354可以包括各種邏輯 元件和架構(例如,馮諾依曼架構、平行架構等),并且可以執(zhí)行 各種類型的計算操作,諸如串行計算和并行計算。
輸出設備356可以呈現(xiàn)文本、圖像、視頻、音頻或者任何其他 類型的信息。輸出設備356的示例包括視頻顯示設備、音頻顯示 設備、打印機等。輸出設備356可以顯示用于在計算機平臺上運行 的各種軟件應用和工具、以及操作系統(tǒng)所需的操作系統(tǒng)程序的用戶 接口信息。輸出設備356可以借助于陰極射線管、液晶、硅上液晶、 發(fā)光二極管、氣體等離子、激光或者其他類型的顯示機制來呈現(xiàn)信 息。輸出設備356還可以配置用于接收、生成和/或呈現(xiàn)全息或者其 他可視表示。輸出設備356可以配置用于聽覺式呈現(xiàn)信息,并且其 可以包括用于接收和呈現(xiàn)音頻信號的適當組件。每個平臺310和315 可以包括任意數(shù)目的類似或者不同的輸出設備。
輸入設備358可以包括諸如鍵盤、鼠標、觸筆、指點設備、操 縱桿和/或觸屏的組件。輸入設備358還可以包括音頻或者視頻捕獲 設備(例如,攝像機、麥克風等)和/或用于捕獲和處理發(fā)射(例如, 熱量、運動、聲音等)的各種傳感器。其還可以包括一個或多個信 息讀取設備(例如,掃描儀、硬盤驅動等)和/或輸入端口。每個平 臺310和315可以包括任意數(shù)目的相似或者不同的輸入設備。同樣 可以使用其他類型的設備來提供與用戶的交互;例如,提供給用戶 的反饋可以是任意形式的感官反饋(例如,視覺反饋、聽覺反饋或 者觸覺反饋);并且來自用戶的輸入可以按照任意形式來接收,包 括聲音輸入、語音輸入或者觸覺輸入。
存儲設備360可以為系統(tǒng)提供大容量存儲、工作(例如,高速 緩存)存儲器和/或緩沖區(qū)空間。存儲設備360可以使用各種適當?shù)拇鎯ζ髟韺崿F(xiàn)。存儲器元件例如可以包括固態(tài)元件、光學元 件、聚合體元件、磁性元件和/有機物元件(例如,晶體)。存儲器 元件可以是易失性的或者非易失性的,并且可以隨機訪問或者順序
訪問。存儲設備360可以包括隨機訪問存儲器(RAM )、閃速RAM、 只讀存儲器(ROM)、可擦寫可編程只讀存儲器(EPROM)、以及 電可擦寫可編程只讀存儲器(EEPROM)。存儲設備360可以包括 一個或多個固定硬盤驅動(例如,硬盤驅動、RAID存儲設備等)以 及一個或多個可移動盤驅動(例如,CD-ROM驅動、DVD驅動等)。 存儲設備360還可以包括一個或多個數(shù)據(jù)存儲庫(例如,關系數(shù)據(jù) 庫、分布式數(shù)據(jù)庫和/或面向對象的數(shù)據(jù)庫),其對于平臺而言可以 是本地的和/或遠程的。在某些示例中,存儲設備360可以包括一個 或多個本地的和/或遠程的基于網(wǎng)絡的存儲架構,諸如存儲區(qū)域網(wǎng)絡 (SAN)。每個平臺310和315可以包括任意數(shù)目的、獨立配置的 存儲設備元件360或者與之交互。
存儲設備360可以存儲用于各種應用的程序代碼、操作系統(tǒng)320、 應用編程接口、應用例程、中間件組件和/或其他可執(zhí)行指令。存儲 設備360可以包括用于通信(例如,TCP/IP通信)的程序代碼和信 息、中間件組件、內核和設備驅動、不可變低層系統(tǒng)代碼、用于基 本輸入和輸出的數(shù)據(jù)、以及各種配置信息。
在某些實現(xiàn)中,存儲設備360包括至少一個計算機可讀介質, 其有形地包含一個或多個計算機程序。計算機程序可以包含指令, 當這些指令由處理器執(zhí)行時,其實現(xiàn)各種方法(例如,下文描述的 方法)和/或系統(tǒng)。計算機可讀介質一般地表示用來為處理器提供機 器指令和/或數(shù)據(jù)的任何類型的計算機程序、裝置和/或設備(例如, 磁盤、光盤、存儲器、可編程邏輯器件(PLD))。適于存儲計算 機程序和數(shù)據(jù)的計算機可讀介質可以包括以下形式非易失性存儲 器、介質和存儲器設備,作為示例,包括半導體存儲器設備,例如 EPROM、 EEPROM和閃存設備;磁盤,例如內部硬盤或者可移動盤; 磁光盤;以及CD ROM和DVD-ROM盤。其他設備362例如可以包括用于視頻和影片編輯的各種設備。 示例包括視頻控制器、視頻錄制器、音頻錄制系統(tǒng)、備用電源等。 而且,其他設備362可以包括任何數(shù)字打印引擎或者標記引擎、顯 示監(jiān)視器或者能夠在紙張、膠片、顯示器屏幕或者其他輸出介質上 重現(xiàn)彩色或者灰度像素的其他光柵輸出設備。
如圖3所示,服務器平臺310包括操作系統(tǒng)320和流式傳輸模 塊330,其可以包括和/或利用改變模塊335。操作系統(tǒng)320可以包括 用于管理計算資源和主控應用的任何適當?shù)牟僮飨到y(tǒng)(OS),例如 WINDOWS OS 、 MAC OS 、 UNIX OS 、 LINUX OS等。
流式傳輸模塊3 3 0可以包括用于構建播放列表以及通過網(wǎng)絡3 7 5 流式傳輸播放列表的關聯(lián)內容的任何適當組件。流式傳輸模塊330 可以實現(xiàn)在服務器模塊或者應用340中或者實現(xiàn)為其一部分,其可 以配置用于與客戶端平臺315的服務組件(例如,播放器370 )交互。 流式傳輸模塊330可以配置用于接收數(shù)字媒體,并且按照各種協(xié)議 通過網(wǎng)絡375將接收到的媒體流式傳輸給客戶端平臺315。流式傳輸 模塊330可以配置用于存儲和/或訪問 一個或多個播放列表(例如, 播放列表200),并將這些播放列表中的內容流(例如,流 210(1)-210(n))流式傳輸給客戶端平臺315。在某些示例中,播放列 表和相關聯(lián)的內容流可以本地存儲在服務器平臺310上(例如,存 儲在存儲設備360中)。播放列表也可以在不同的機器間分布,如 服務器的邊(edge) /源配置中一樣。
在某些示例中,應用可以進行對服務器平臺310的調用,以便 將個體內容流添加到特定的播放列表(例如,播放列表120)中。應 用可以隨同請求提供內容流,或者可以提供標識流的位置的信息。 流式傳輸模塊330可以獲得這些流,并且將其一個接一個的附加到 播放列表中。在流式傳輸內容時,流式傳輸模塊330繼而可以將這 些流的比特遞送給客戶端平臺315。
在某些示例中,流式傳輸模塊330可以接收已經(jīng)使用 一個 多 個編解碼器進行了格式化的流。在某些示例中,流式傳輸模塊300可以接收未格式化(例如,未壓縮)的媒體(例如,從用戶的網(wǎng)絡 攝像頭饋送的即時視頻),并且可以配置用于使用一個或多個編解 碼器將接收到的媒體格式化到內容流中。由此,在某些實現(xiàn)中,流
式傳輸模塊330可以包括和/或利用一個或多個編解碼器(諸如, H.264編解碼器、On2VP6編解碼器、Sorenson Spark編解碼器等) 來壓縮接收到的流,以便流式傳輸給客戶端平臺315。在某些實現(xiàn)中, 流式傳輸模塊330可以接收已經(jīng)在特定編解碼器中進行了編碼的即 時視頻饋送,并且在將該饋送流式傳輸給客戶端時,流式傳輸模塊 330可以改動該編解碼器類型。
流式傳輸模塊330可以通過一個或多個接口來接收媒體,并且 可以經(jīng)由一個或多個其他接口來傳送內容流。流式傳輸模塊330可 以配置用于按照各種傳送速率、分辨率、格式等來傳送內容流(例 如,即時纟見頻或者其他即時 流)。流 式傳輸內容流的特定方式可以 取決于改變模塊335。
改變模塊335可以處理通過網(wǎng)絡375從客戶端平臺315接收到 的、針對動態(tài)改變的請求。改變模塊335可以配置用于接收這些請 求,并且采取適當動作來實現(xiàn)播放列表的改動,其中播放列表可以 本地存儲在服務器平臺310上(例如,存儲在存儲設備360中)。 例如,改變模塊315可以在播放列表中查找所標識的流,并且將該 流替換為其他流。改變模塊335例如還可以配置用于重新布置播放 列表中的流、向播放列表添加流和/或從播放列表移除流。在某些示 例中,改變模塊335可以包括如下功能計算在不會在回放中造成 干擾或者贗像的情況下切換流的適當時幀。而且,在某些示例中, 改變模塊335可以包括如下功能指定播放列表的插入和刪除模式, 使得新流插入在舊流之前或者之后,或者將舊流從播放列表中刪除。 改變模塊335還可以指定新流的開始點或者偏移以及長度。
在某些實現(xiàn)中,改變模塊335(或者服務器平臺310的其他組件) 可以包括和/或訪問一個或多個緩沖區(qū)。在某些示例中,改變模塊335 可以配置用于發(fā)起或者觸發(fā)對流的緩沖,以便輔助播放列表改變。例如,當在即時流之間切換時,改變模塊335可以在切換發(fā)起時開
始對流進行緩沖,并繼而計算切換流的適當點。
流式傳輸模塊330和改變模塊335可以包括和/或使用一個或多 個數(shù)據(jù)結構以及可以對各種數(shù)據(jù)進行操作的一個或多個計算算法。 這些模塊可以包括用于執(zhí)行各種任務的指令集,并且這些模塊可以 輸出信息以供用戶或者其他系統(tǒng)使用。在某些實現(xiàn)中,這些模塊可 以包括一個或多個引擎,其可以輸出代碼,充當對其他系統(tǒng)、引擎 或者過程的輸入。這些模塊可以包括和/或使用各種硬件和固件元件。
客戶端平臺315可以包括適當?shù)牟僮飨到y(tǒng)320、播放器370以及 一個或多個應用380。播放器370可以包括基于客戶端的軟件,其運 行Flash⑧和/或其他應用,并且支持矢量圖形和光柵圖形、音頻和視 頻的雙向流式傳輸,以及一個或多個腳本或者其他語言(例如, JavaScript、 ActionScript等)。在某些示例中,應用380 (例如,基 于Flash⑧的應用)在操作期間可能依賴于播放器370。此外,播放 器370可以將Flash⑧以及其他應用與操作系統(tǒng)320集成,以便向客 戶端平臺315提供各種功能和特征。在某些示例中,播放器370可 以實現(xiàn)為虛擬機。播放器370例如可以包括Adobe Flash Player 運行時。
播放器370和應用380不限于Flash⑧平臺或者基于Flash⑧的應 用。在不脫離本公開范圍的情況下,播放器370可以在各種其他平 臺和環(huán)境中實現(xiàn)和運行,和/或配置用于運行和/或支持利用各種其他 平臺和環(huán)境創(chuàng)建的應用。
在某些示例中,播放器370可以實現(xiàn)為在客戶端平臺315上運 行的獨立組件和/或實現(xiàn)為嵌入式組件。在某些實現(xiàn)中,播放器370 可以配置用于與Web應用結合運行。在某些示例中,播放器370可 以實現(xiàn)為"插件"型組件,其向一個或多個主機應用(例如,應用 380 )提供各種功能或者擴展一個或多個主機應用的功能集。此類主 機應用可以向插件」提供服務,以允許插件與主才幾應用交互。主4幾應 用和/或OS可以包括允許添加插件以及插件與主才幾應用交互的API。200910168375.8 這些應用380可以包括各種計算機程序,其包含可以由一個或 多個處理器(例如,處理器354 )執(zhí)行的指令。按照本公開的計算機 程序可以通過各種編程語言來實現(xiàn),諸如高級或者中級的面向過程 或者面向對象的編程語言(例如,C、 C++、 Java、 JavaScript、 PHP、 Visual Basic等)、低級匯編語言(Intel 80x86、 ARM等)和/或各種 其他語言。
在某些實現(xiàn)中,客戶端平臺可以包括運行時環(huán)境,其提供各種 實用服務以供應用380使用。這些實用服務可以包括文件系統(tǒng)訪問、 窗口和菜單控制、與OS夕卜殼(shell)(例如,WINDOWS OS Explorer 或者MAC OS Finder)的集成、文件擴展注冊、文檔處理支持(例 如,超文本標記語言(HTML)和便攜式文檔格式(PDF)引擎)、 字符串操作、圖形、聯(lián)網(wǎng)、通知工具、尋址外設或者可以使用運行
時庫提供的其他類型的功能。而且,運行時環(huán)境可以包括API,其向 應用提供服務,并且對運行時環(huán)境配置為在其上運行的各種硬件和 OS平臺的細節(jié)進行抽象。
在此使用圖3中所示的分立模塊(例如,模塊330、 335和370 ) 僅僅出于說明目的,各種其他布置也在本公開的范圍之內。例如, 這些模塊的各種功能可以在比圖示模塊更多或者更少的模塊間分布 或者存在于其中。各模塊的特定配置、布置和特征集通常將取決于 特定的操作環(huán)境。
圖4是示出了按照本公開的示例應用更新分發(fā)過程400的流程 圖。過程400可以由數(shù)據(jù)處理環(huán)境300中的一個或多個元件4丸行。 過程400可以由執(zhí)行來自存儲設備的一個或多個指令的一個或多個 處理器(例如,客戶端平臺315中的處理器354 )來執(zhí)行。過程400 可以包括接收與播放列表相關聯(lián)的流(410);訪問客戶端側回放 信息(420);請求改變播放列表(430);以及按照響應于該請求 的播放列表改變,來顯示播放列表的流(440)。
過程400可以接收與播放列表相關聯(lián)的流(410)。這可以包括 客戶端(例如,客戶端平臺315)從服務器(例如,服務器310)接收播放列表(例如,播放列表220)的流(例如,流210)。在某些 示例中,所接收的播放列表可以由客戶端側應用創(chuàng)建??蛻舳藗葢?用可以與服務器交互并且向服務器發(fā)送請求,以建立播放列表。播 放列表可以包括流的排序,這些流進行排隊以便按照所述排序從服 務器進行客戶端側回放。在某些實現(xiàn)中,播放列表可以本地存儲在 服務器側。
與播放列表相關聯(lián)的流例如可以包括音頻流、視頻流以及具有 音頻和視頻二者的混合流。在某些實現(xiàn)中,播放列表的流可以包括 即時流。例如,流可以包括來自正在錄制現(xiàn)場足球比賽的信息捕獲 設備(例如,攝像機)的流。播放列表可以包括即時流和錄制流的 混合。作為示例,播放列表可以包括正在錄制的足球比賽的即時流, 并混合有預先錄制的對應于商業(yè)廣告或者廣告的流。在某些示例中, 與播放列表關聯(lián)的流可以包括各種數(shù)據(jù)內容,諸如文本數(shù)據(jù)、靜態(tài) 圖像數(shù)據(jù)和/或其他用戶定義的經(jīng)配置(例如,經(jīng)過串行化以便傳輸) 的數(shù)據(jù)格式。
過程400可以訪問客戶端側回放信息(420)。這例如可以包括 訪問與播放列表的至少 一 個關聯(lián)流的接收和回放相關聯(lián)的客戶端側 狀況。訪問客戶端側回放狀況(420)可以包括訪問運行時性能信息 和/或用戶偏好。如上所述,運行時性能信息例如可以包括網(wǎng)絡帶 寬、客戶端側處理資源、功率狀況、客戶端側音頻繪制能力、客戶 端側視頻繪制能力以及與接收到的流的客戶端側回放相關聯(lián)的各種 其他性能狀況。用戶偏好信息例如可以包括用戶活動、閱覽歷史 和/或反映用戶活動或者偏好的各種其他狀況。該信息例如可以包括 如下指示用戶點擊或者以其他方式選擇了特定的流和/或用戶閱覽 特定內容所花費的時間量。
在某些示例中,訪問客戶端側回放信息(420 )可以包括監(jiān)測(例 如,通過客戶端平臺315上的播放器370 )客戶端側狀況。監(jiān)測可以 周期性地進行,其或者獨立于客戶端設備的用戶進行,或者在用戶 的指示之下進行。例如,播放器370可以跟蹤客戶端側狀況,并向客戶端側應用提供信息,客戶端側應用可以基于已建立的啟發(fā)來進 行關于改變播放列表的決策。
響應于所訪問的客戶端側回放信息,過程400可以請求改變播
放列表(430 )。這例如可以包括客戶端側應用向服務器發(fā)送改變 播放列表的流的請求。在某些示例中,該請求可以標識期望的播放 列表改變,并且可以包括控制播放列表改變的信息。
可以請求各種類型的改變。例如,過程400可以請求對4番方丈列 表中的多媒體流重新排序,從播放列表中移除流,和/或向播放列表 中插入新的流。請求可以包括指定改變應當如何進行的各種信息。 例如,對于重新排序,請求可以包括指示舊排序和新排序的信息。 在某些示例中,重新排序請求可以包括指定流的名稱以及在播放列 表排序中流的期望移動的信息。對于移除和插入,請求可以包括要 移除或者插入的流的標識。對于插入,請求還可以標識新流應當》文 置在播放列表中的期望位置。
播放列表改變可以包括將播放列表中的一個或多個流替換為 與該被替換的流需要不同資源和能力的、這些流的不同版本(但是 具有相同內容)。例如,播放列表的改變可以包括將流替換為該流 的升級或者降級版本。播放列表改變還可以包括將播放列表中的 流替換為無關的或者不同的流,其具有與被替換的流的內容無關的 或者不同的內容。在這種情況下,改變請求可以包括舊流和新流的 名稱,以及流是否可以在中間,S切換的有關信息。
在某些示例中,播放列表改變可能影響當前正在回放的流。在 這種情況下,可以使用來自改變請求的控制信息來適當?shù)貓?zhí)行改變。 例如,請求改變的客戶端側應用可以在請求中指定如何對待當前播 放的流(例如,是否在中間位置替換當前播放的流)。流式傳輸源 (例如,服務器平臺310)可以使用該信息來實現(xiàn)改變。在某些示例 中,在操縱(例如,切換)當前播放的流時,流式傳輸源可以執(zhí)行 改變,使得當前播放的流的回放看起來沒有中斷。此功能的其他細 節(jié)將在下文結合圖5-圖7加以討論。在某些實現(xiàn)中,響應于所訪問的客戶端側回放狀況而i青求改變
播放列表(430 )可以包括標識播放列表中將潛在受到該狀況影響 的所有相關流。例如,如果網(wǎng)絡正在提供300kbps帶寬,請求(430 ) 可以包括標識具有高于300kbps的比特率的所有流。過程400可 以請求(430 )將播放列表中排隊的高比特率視頻流切換為較低比特 率版本。請求(430 )也可以包括標識播放列表中可能由于提高的 網(wǎng)絡帶寬或者其他資源改善而升級的流。例如,如果網(wǎng)絡正在提供 500kbps帶寬,則請求(430)可以包括標識播放列表中具有低于 500kbps的比特率的所有流。過程400繼而可以請求(430)將低比 特率版本切換為其較高比特率版本。
過程400可以顯示按照響應于請求的播放列表改變的、接收到 的播放列表的流(440)。這可以包括客戶端按照所請求的改變向 最終用戶(例如,經(jīng)由顯示設備)呈現(xiàn)播放列表的流。例如,如果 請求降級,則顯示(440)可以包括顯示降級的流(例如,以較低的 比特率或者分辨率)。如果請求升級,則顯示(440)可以包括顯示 升級的流。
圖5是示出了可以表示客戶端側操作的另一示例播放列表改變 過程500的流程圖。過程500可以由數(shù)據(jù)處理環(huán)境300中的一個或 多個元件執(zhí)行。過程500可以由執(zhí)行來自存儲設備的一個或多個指 令的一個或多個處理器(例如,服務器平臺310中的處理器354 )來 執(zhí)行。過程500可以包括流式傳輸播放列表(510);接收播放列 表改變的請求(520 );基于接收到的請求來改變播放列表(530 ); 以及按照改變來流式傳輸播放列表(540)。
過程500可以流式傳輸播放列表(510)。這可以包括服務器 (例如,服務器平臺310)向客戶端(例如,客戶端平臺315)流式 傳輸與播放列表(例如,播放列表200)相關聯(lián)的媒體/內容流(例 如,流210)。播放列表可以由客戶端側應用創(chuàng)建,并且可以包括流 的排序,這些流進行排隊以便按照所述排序進行客戶端側回放。播 放列表可以在服務器側本地維護。過程500可以接收針對播;改列表改變的i青求(520)。這例如可 以包括響應于檢測到的客戶端側狀況,從客戶端側應用4妄收針對 播放列表改變的請求。接收(520 )例如可以包括接收在上文討論 的過程400的階段430處生成的請求。如上文結合過程400所說明 的,請求可以標識期望的播放列表改變,并且包括控制播;改列表改 變的信息。
過程500繼而可以基于接收到的請求來改變播放列表(530 )。 這可以包括服務器(例如,服務器平臺315)基于請求中提供的控 制信息來改變播放列表。例如,改變530可以包括確定是否可以在 流中的中間位置處切換當前播放的流。改變(530 )可以包括查找請 求中標識的流名稱,以及執(zhí)行請求中指定的改變。例如,改變(530 ) 可以包^r:查找舊流和新流,繼而將舊流^^:換為新流。過禾呈500繼 而可以按照改變來流式傳輸與播放列表相關聯(lián)的內容流(540)。例 如,過程500可以流式傳輸(540)播放列表中流的升級版本或者降 級版本。過程500可以流式傳輸(540)添加到播放列表的新流,停 止流式傳輸從播放列表中移除的特定流,和/或按照不同于播放列表 中先前順序的順序來流式傳輸播放列表中的流。
在某些示例中,改變(530 )可以包括標識應當切換的所有相關 流。例如,如果改變請求包括由于下降的網(wǎng)絡帶寬或者其他資源降 級而引起的、針對流的降級版本的請求,則改變(530 )可以包括 對播放列表進行解析,以標識播放列表中潛在受到這些狀況影響的 所有其他流。例如,如果網(wǎng)絡正在提供300kbps帶寬,則改變(530 ) 可以解析播放列表,并且標識與高于300kbps的比特率相關聯(lián)的所 有流。過程500可以將播放列表中排隊的已標識高比特率一見頻流切 換為其較低比特率版本。反之,改變(530 )可以包括標識播放列 表中由于提高的網(wǎng)絡帶寬或者其他資源改善而可以升級的流。例如, 如果網(wǎng)絡正在提供500kbps帶寬,則改變(530 )可以包括標識播 放列表中與低于500kbps的比特率相關聯(lián)的所有流。過程500繼而 可以將這些低比特率版本切換為其較高比特率版本。在某些實現(xiàn)中,過程500可以包括對流進行緩沖并在其中引入 延遲(例如,在改變(530 )期間)。例如,當在兩個即時流之間切 換時,過程500可以在切換發(fā)起時開始緩沖這兩個流。在緩沖期間, 過程500可以標識切換流的適當點。緩沖可以允許在不會在回;^文中 導致任何干擾或者贗像的情況下進行流切換。
圖6是示出了示例流替換過程600的流程圖。過程600可以表 示作為上文討論的過程500的改變階段530的一部分而執(zhí)行的纟喿作。 過程600可以由數(shù)據(jù)處理環(huán)境300中的一個或多個元件來^丸行。過 程600可以由執(zhí)行來自存儲設備的一個或多個指令的一個或多個處 理器(例如,服務器平臺310中的處理器354 )來執(zhí)行。
過程600可以接收舊流的標識以及新流的標識(610)。這些標 識可以包括在從客戶端平臺315發(fā)送給服務器平臺310的播放列表 改變請求中。該請求可以包括將播放列表中的舊流切換為新流的請 求。
過程600可以使用來自改變請求的信息來標識播放列表中的 舊流(620)。過程600繼而可以確定目前是否正在回力文舊流(例如, 舊流是當前正在流式傳輸?shù)牧?。例如,過程600可以確定插^文器 370是否正在呈現(xiàn)標識為舊流的流(例如,服務器當前正在向客戶端 流式傳輸標識為舊流的流)。如果舊流不是當前流式傳輸?shù)牧鳎瑒t 過程600可以在播放列表中的選定點處將該舊流整個替換為另 一 流。 該選定點可以在發(fā)送自客戶端側的改變請求中指定,或者其可以在 服務器側確定。
如果所標識的舊流是當前流式傳輸?shù)牧鳎瑒t過程600可以確定 是否允許在中間點處進行流替換(640)。換言之,過程600可以確 定其是否在當前流式傳輸?shù)牧魍瓿刹シ胖爸袛嗨员銓⒃摿髑?換為新流。該確定可以基于改變請求中指定的控制信息來進行。如 果不允許中間替換,則過程600可以維持當前流式傳輸?shù)牧髦钡酵?成(645 )。
如果允許中間替換,則過程600可以標識用于切換流的適當點。過程600可以標識適當?shù)狞c(650 ),使得切換不會在回;^文中導 致任何干擾或者贗像。過程600繼而可以在所標識的切換點處將舊 流切換為新流(660 )。這可以包括將舊流從播放列表中移除,并 將新流插入播放列表中舊流的位置。
圖7是示出了用于標識適當切換點的示例過程700的流程圖。 過程700可以表示作為上文討論的過程600的標識階段(650 )的一 部分而執(zhí)行的操作。與過程600相同,過程700可以由數(shù)據(jù)處理環(huán) 境300中的一個或多個元件來執(zhí)行。過程700可以由執(zhí)行來自存儲 設備的一個或多個指令的一個或多個處理器(例如,服務器平臺310 中的處理器354 )來執(zhí)行。
過程700可以標識舊流(其是當前播;故的流)中用于流切換的 最早時刻(710)。這可以包括在當前播放流中標識最早的關^t幀。 最早的關鍵幀例如可以是尚未傳輸給客戶端的最早關鍵幀。在某些 示例中,服務器平臺310中的改變模塊335可以標識最早關鍵幀。 過程700繼而可以標識用于進行切換點的新流中的點(720 )。這可 以包括標識新流中的關鍵幀。在某些示例中,過程700可以在新 流中標識(720)標識關4建幀,該關4建幀出現(xiàn)在當前播-;改流中所標識 的最早關4定幀之后。過程700繼而可以標識舊流(當前播i文流)中 與新流中所標識的切換點相對應的點。這可以包括在舊流中標識 與新流中所標識的關鍵幀相對應的關鍵幀或者中間幀。
在某些實施方式中,為了實現(xiàn)流切換,過程700可以對流的時 間線進行匹配(740)。例如,過程700可以對音頻和^見頻時間線進 行匹配,以確保切換對于最終用戶而言平滑地進行。在某些實現(xiàn)中, 在改變播放列表時可以使用各種切換策略。例如,如果兩組內容之 間的音頻和一見頻時間線不匹配,則可以優(yōu)選l吏用音頻時間線,以避 免音頻時間線中的干擾。如果音頻在期望的切換點附近不可用,則 可以僅使用視頻時間線。該特定切換策略并非意在限制,在不脫離 本公開范圍的情況下,可以使用各種其他切換策略。
圖4-圖7中示出的事件序列是示例性的,并非意在限制。因此可以使用其他過程,即使是對于圖4到圖7中描繪的過程400、 500、 600和700,事件可以進行重新排序、添加和/或移除。此外,過程的 元素可以重疊和/或可以存在于少于附圖所示數(shù)目的階段中。在某些 示例中,過程可以重新布置和配置,以適應和/或利用多任務和并行 處理技術和/或各種系統(tǒng)架構的其他方面。
盡管上文描述參考了流式傳輸,但是本公開的方面可以應用于 其他媒體遞送技術。例如,本公開的方面可以用來改變漸進式遞送 (例如,漸進式下載)的播放列表。在這些實現(xiàn)中,播放列表可以 包括排隊以供消費(流式傳輸,或者漸進式遞送的)的內容的排序。 在漸進式遞送實現(xiàn)中,與播放列表相關聯(lián)的內容(例如,SWF文件、 FLV文件、F4V文件等)可以從服務器(例如,服務器平臺310) 下載到客戶端(例如,客戶端平臺315),其中客戶端包括用于進行 播放列表改變決策以及改變播放列表的適當邏輯。
本說明書中描述的主題和功能性操作的實施方式可以在數(shù)字 電子電路中實現(xiàn),或者在計算機軟件、固件或硬件中實現(xiàn),該計算
是它們的一個或多個的組合。本說明書中描述的主題的實施方式可 以實現(xiàn)為一個或多個計算機程序產品,也即,在計算機可讀介質上 編碼的、以便由數(shù)據(jù)處理裝置執(zhí)行或控制數(shù)據(jù)處理裝置操作的 一 個 或多個計算機程序指令模塊。有形程序載體可以是傳播的信號或者 計算機可讀介質。傳播信號是人工產生的信號,例如,機器產生的 電信號、光信號或者電磁信號,生成該信號以對信息進行編碼,以 便傳輸?shù)竭m當?shù)慕邮掌餮b置。計算機可讀介質可以是機器可讀的存 儲設備、機器可讀的存儲村底、存儲設備、實現(xiàn)計算機可讀的傳播 信號的組合、或者它們中的一個或多個的結合。術語"數(shù)據(jù)處理裝 置,,包括用于處理數(shù)據(jù)的所有裝置、設備和機器,例如包括可編程 處理器、計算機,或者多個處理器或計算機。除了硬件之外,該裝 置可以包括為考慮中的計算機程序創(chuàng)建執(zhí)行環(huán)境的代碼,例如,構 成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、跨平臺運行時環(huán)境,或者它們中一個或多個的結合的代碼。
計算機程序(也公知為程序、軟件、軟件應用、腳本或代碼) 可以由任意形式的編程語言編寫,包括編譯語言或解釋語言,說明 性語言或過程語言,并且該計算機程序可以任意形式部署,包括部 署為單獨的程序或模塊、組件、子例程,或者適于在計算環(huán)境中使 用的其他單元。計算機程序無需對應于文件系統(tǒng)中的文件。程序可 以存儲在保存其他程序或數(shù)據(jù)(例如,存儲在標記語言文檔中的一 個或多個腳本)的文件的一部分中、可以存儲在專門用于考慮中的 程序的單個文件中,或者存儲在多個協(xié)同文件中(例如,存儲一個 或多個模塊、子程序,或代碼部分的文件)??梢詫⒂嬎銠C程序部 署為在一個計算機上執(zhí)行,或者將其部署為在位于一個地點的多個 計算機上執(zhí)行或跨過多個地點分布且通過通信網(wǎng)絡互連的多個計算 機上執(zhí)行。
本說明書中描述的處理和邏輯流程可以由執(zhí)行一個或多個計 算機程序的 一 個或多個可編程處理器執(zhí)行,用于通過對輸入數(shù)據(jù)進 行操作以及產生輸出來執(zhí)行功能。該處理和邏輯流程還可以由例如
FPGA (現(xiàn)場可編程門陣列)或ASIC(專用集成電路)的專用邏輯 電路執(zhí)行,并且也可以將裝置實現(xiàn)為所述專用邏輯電路。
適于計算機程序執(zhí)行的處理器例如包括通用和專用處理器兩 者、以及任意類型的數(shù)字計算機的任意一個或多個處理器。通常, 處理器將從只讀存儲器或隨機訪問存儲器或兩者處接收指令和數(shù) 據(jù)。計算機的基本元件是用于執(zhí)行指令的處理器以及用于存儲指令 和數(shù)據(jù)的一個或多個存儲器設備。通常,計算機還將包括用于存儲 數(shù)據(jù)的一個或多個海量存儲設備,或被操作性地耦合為從所述用于 存儲數(shù)據(jù)的一個或多個海量存儲設備接收數(shù)據(jù)、向其傳送數(shù)據(jù)、或 者進行兩者,該海量存儲設備例如磁盤、磁光盤、或光盤。然而, 計算機不必一定具有這樣的設備。而且,計算機可以嵌入在其他設 備中,例如移動電話、個人數(shù)字助理(PDA)、移動音頻或一見頻播 放器、全球定位系統(tǒng)(GPS)接收器、或者便攜式存儲設備(例如,通用串行總線(USB)閃存驅動),這僅是幾例。適于存儲計算機 程序指令和數(shù)據(jù)的計算機可讀介質包括所有形式的非易失性存儲
器、介質和存儲設備,例如包括半導體存儲設備,如EPROM、 EEPROM和閃存設備;磁盤,如內部硬盤或可移動硬盤;》茲光盤; 以及CD-ROM和DVD-ROM盤。處理器和存々者器可以由專用邏輯電 路補充或是包括在專用邏輯電路中。
為了提供與用戶的交互,本說明書中描述的主題的實施方式可 以在具有用于向用戶顯示信息的顯示設備以及用戶可以通過其向計 算機提供輸入的鍵盤和指點設備的計算機上實現(xiàn),其中顯示設備例 如CRT (陰極射線管)或者LCD (液晶顯示器)監(jiān)視器,指點設備 例如鼠標或者軌跡球。也可以使用其他類型的設備來提供與用戶的 交互;例如,提供給用戶的反饋可以是任何形式的感觀反々貴,例如 視覺反饋、聲覺反饋、或者觸覺反饋;并且可以接收來自用戶的任 意形式的輸入,包括聲音、語音或觸覺輸入。
本說明書中描述的主題的實施方式可以實現(xiàn)在包括后端組件 的計算系統(tǒng)中,例如數(shù)據(jù)服務器;或實現(xiàn)在包括中間件組件的計算 系統(tǒng)中,例如應用服務器;或實現(xiàn)在包括前端組件的計算系統(tǒng)中, 例如具有圖形用戶界面或者Web瀏覽器的客戶端計算機,用戶通過 該圖形用戶界面或W e b瀏覽器可以與本說明書中描述的主題的實現(xiàn) 進行交互;或實現(xiàn)在一個或多個這樣的后端、中間件、或前端組件 的任意結合中。系統(tǒng)組件可以與任意形式或介質的數(shù)字數(shù)據(jù)通信(例 如,通信網(wǎng)絡)互連。通信網(wǎng)絡的示例包括局域網(wǎng)("LAN"), 廣域網(wǎng)("WAN"),網(wǎng)際網(wǎng)(例如,互聯(lián)網(wǎng))以及端對端網(wǎng)絡(例 如,adhoc端對端網(wǎng)絡)。
計算系統(tǒng)可以包括客戶端和服務器??蛻舳撕头掌饕话阆嗷?遠離,并且通常通過通信網(wǎng)絡進行交互??蛻舳撕头掌鞯年P系是 借助于在各自計算機上運行的、彼此具有客戶端-服務器關系的計算 機程序得到的。
盡管本說明書包含多種特定細節(jié),但是不應將其理解為是對本發(fā)明的范圍或者所要求保護內容的限制,而應當理解為是本發(fā)明具 體實施方式的特定特征的描述。本說明書中描述的在各個實施方式 的上下文中的某些特征也可以在單個實施方式中結合實現(xiàn)。相反, 在單個實施方式上下文中描述的各種特征也可以分別實現(xiàn)在多個實 施方式中或者任意適當?shù)淖咏M合中。而且,盡管上文可能將特征描 述為在特定的組合中操作,甚至初始也是這樣要求保護的,但是來 自所要求保護的組合的一個或多個特征在一些情況下可以乂人該組合
類似地,盡管在附圖中以特定的順序描述操作,但是不應將其 理解為要求按照所示的特定順序或是串行順序來執(zhí)行這些操作,或 是要求執(zhí)行全部所示的操作以得到期望的結果。在特定環(huán)境中,多 任務和并行處理可能是有利的。而且,在上述實施方式中多個系統(tǒng) 組件的分離不應被理解為在所有實施方式中需要這些操作,應當將 其理解為所描述的程序組件和系統(tǒng)通??梢栽趩蝹€軟件產品中集成
在一起,或是被打包到多個軟件產品中
由此,已經(jīng)描述了本發(fā)明的特定實施方式。其他實施方式也在 所附權利要求書的范圍之內。例如,權利要求書中記載的動作可以 按照不同順序執(zhí)行并仍然能夠實現(xiàn)期望的結果。在某些示例中,在 不脫離本公開范圍的情況下,可以使用不同系列的API來實現(xiàn)某些 結果。例如,可以使用用于操縱播放列表的API的富集。作為另一 示例,基于對播放器的不同量度,或者用來在內容流之間切換的不 同技術,可以使用不同的算法來控制如何切換內容。
權利要求
1.一種計算機實現(xiàn)的方法,包括從服務器接收與播放列表相關聯(lián)的流,所述播放列表包括流的排序,所述流進行排隊以便按照所述排序從所述服務器進行客戶端側回放;訪問與至少一個所述流的接收和回放相關聯(lián)的客戶端側回放狀況;響應于所述客戶端側回放狀況,由客戶端側應用請求改變所述播放列表的流,所述請求標識期望的播放列表改變,并且包括控制所述播放列表改變的信息;以及按照響應于所述請求而進行的播放列表改變,來顯示所述播放列表的流。
2. 如權利要求l的方法,其中所述播放列表的流包括以下至少 一個音頻流、視頻流、具有音頻和視頻的混合流、基于文本的數(shù) 據(jù)、靜態(tài)圖像數(shù)據(jù)以及用戶定義的數(shù)據(jù)。
3. 如權利要求2的方法,其中所述流包括即時流。
4. 如權利要求1的方法,其中訪問客戶端側回放狀況包括訪問 以下至少一個網(wǎng)絡帶寬可用性,客戶端處理能力,以及用戶閱覽 統(tǒng)計。
5. 如權利要求l的方法,其中所述期望的播放列表改變包括以 下至少一個(i)對所述播放列表中的流進行重新排序;(ii)將 流從所述播放列表中移除;以及(iii)在所述播放列表中的指定插 入點處將新的流插入所述播放列表。
6. 如權利要求l的方法,其中所述期望的播放列表改變包括 將所述播放列表中的流替換為該流的不同版本,所述不同版本與被 替換的流需要不同的網(wǎng)絡和處理資源。
7. 如權利要求l的方法,其中所述期望的播放列表改變包括 將所述播放列表中的流替換為不同的流,所述不同的流與被替換的流 具有不同的內容。
8. 如權利要求l的方法,其中所述期望的播放列表改變包括 將當前播放的流替換為新的流,其中所述請求標識所述當前播放的 流和所述新的流,并且包括控制信息,所述控制信息指定是否在中 間位置替換所述當前播放的流。
9. 如權利要求l的方法,其中所述播放列表由所述客戶端側應 用創(chuàng)建。
10. —種設備,包括接收裝置,用于從服務器接收與播放列表相關聯(lián)的流,所述播 放列表包括流的排序,所述流進行排隊以便按照所述排序從所述服 務器進行客戶端側回放;訪問裝置,用于訪問與至少 一 個所述流的接收和回放相關聯(lián)的 客戶端側回力文狀況;請求裝置,用于響應于所述客戶端側回i文狀況,由客戶端側應 用請求改變所述播放列表的流,所述請求標識期望的播放列表改變,并且包括控制所述播放列表改變的信息;以及顯示裝置,用于按照響應于所述請求而進行的播放列表改變, 來顯示所述播放列表的流。
11. 如權利要求10的設備,其中所述播放列表的流包括以下至 少一個音頻流、視頻流、具有音頻和視頻的混合流、基于文本的 數(shù)據(jù)、靜態(tài)圖像數(shù)據(jù)以及用戶定義的數(shù)據(jù)。
12. 如權利要求ll的設備,其中所述流包括即時流。
13. 如權利要求10的設備,其中所述訪問裝置用于訪問以下至 少一個網(wǎng)絡帶寬可用性,客戶端處理能力,以及用戶閱覽統(tǒng)計。
14. 如權利要求10的設備,其中所述期望的播放列表改變包括 以下至少一個(i)對所述播放列表中的流進行重新排序;(ii) 將流從所述播放列表中移除;以及(iii)在所述播放列表中的指定 插入點處將新的流插入所述播放列表。
15. 如權利要求10的設備,其中所述期望的播放列表改變包括:將所述播放列表中的流替換為該流的不同版本,所述不同版本與被 替換的流需要不同的網(wǎng)絡和處理資源。
16. 如權利要求10的設備,其中所述期望的播放列表改變包括: 將所述播放列表中的流替換為不同的流,所述不同的流與被替換的 流具有不同的內容。
17. 如權利要求10的設備,其中所述期望的播放列表改變包括: 將當前播放的流替換為新的流,其中所述請求標識所述當前播放的流和所述新的流,并且包括控制信息,所述控制信息指定是否在中間位置替換所述當前播放的流。
18. 如權利要求10的設備,其中所述播放列表由所述客戶端側 應用創(chuàng)建。
19. 一種計算機實現(xiàn)的方法,包括向客戶端流式傳輸與播放列表相關聯(lián)的媒體流,所述播放列表 包括流的排序,所述流進行排隊以便按照所述排序進行客戶端側回 放;從客戶端側應用接收響應于檢測到的客戶端側狀況的、改變所 述播放列表的請求,所述請求標識期望的播放列表改變,并且包括 控制所述播放列表改變的信息;基于接收到的所述請求來改變所述播放列表;以及按照所述改變,流式傳輸與所述播放列表相關聯(lián)的媒體流。
20. 如權利要求19的方法,其中與所述播放列表相關聯(lián)的流包 括以下錄制的或即時的內容的至少一個音頻流、-現(xiàn)頻流、具有音 頻和視頻的混合流、基于文本的數(shù)據(jù)、靜態(tài)圖像數(shù)據(jù)以及用戶定義 的數(shù)據(jù)。
21. 如權利要求19的方法,其中改變所述播放列表包括以下至 少一個(i)對所述播放列表中的流進行重新排序;(ii)將流從 所述播放列表中移除;以及(iii)在所述播放列表中的指定插入點 處將新的流插入所述播放列表。
22. 如權利要求19的方法,其中改變所述播放列表包括將所述播放列表中的流替換為該流的不同版本,所述不同版本與#_替換 的流需要不同的網(wǎng)絡和處理資源。
23. 如權利要求19的方法,其中改變所述播放列表包括將所 述播放列表中的流替換為不同的流,所述不同的流與被替換的流具 有不同的內容。
24. 如權利要求19的方法,其中改變所述播放列表包括將當 前流式傳輸?shù)牧魈鎿Q為新流,在所述新流中的最早關鍵幀處替換所 述當前流式傳輸?shù)牧?,使得所述當前流式傳輸?shù)牧鞯幕胤趴雌饋頉] 有中斷。
25. —種設備,包括流式傳輸裝置,用于向客戶端流式傳輸與播放列表相關聯(lián)的媒 體流,所述播放列表包括流的排序,所述流進行排隊以便按照所述 排序進行客戶端側回放;接收裝置,用于從客戶端側應用接收響應于檢測到的客戶端側 狀況的、改變所述播放列表的請求,所述請求標識期望的播放列表 改變,并且包括控制所述播放列表改變的信息;改變裝置,用于基于接收到的所述請求來改變所述播放列表;其中在所述改變裝置改變所述播放列表之后,所述流式傳輸裝 置還用于按照所述改變,流式傳輸與所述播放列表相關聯(lián)的媒體流。
26. 如權利要求25的設備,其中與所述播放列表相關聯(lián)的流包 括以下錄制的或即時的內容的至少一個音頻流、視頻流、具有音 頻和視頻的混合流、基于文本的數(shù)據(jù)、靜態(tài)圖像數(shù)據(jù)以及用戶定義的數(shù)據(jù)。
27. 如權利要求25的設備,其中改變所述播放列表包括以下至 少一個(i)對所述播放列表中的流進行重新排序;(ii)將流從 所述播放列表中移除;以及(m)在所述播放列表中的指定插入點 處將新的流插入所述播放列表。
28. 如權利要求25的設備,其中改變所述播放列表包括將所述播放列表中的流替換為該流的不同版本,所述不同版本與被替換 的流需要不同的網(wǎng)絡和處理資源。
29. 如權利要求25的設備,其中改變所述播放列表包括將所 述播放列表中的流替換為不同的流,所述不同的流與被替換的流具 有不同的內容。
30. 如權利要求25的設備,其中改變所述播放列表包括將當 前流式傳輸?shù)牧魈鎿Q為新流,在所述新流中的最早關鍵幀處替換所 述當前流式傳輸?shù)牧鳎沟盟霎斍傲魇絺鬏數(shù)牧鞯幕胤趴雌饋頉]有中斷。
全文摘要
本申請涉及用于動態(tài)改變播放列表的方法和設備。具體地,在一個方面,從服務器接收與播放列表相關聯(lián)的流。該播放列表包括流的排序,這些流進行排隊以便按照所述排序從服務器進行客戶端側回放。訪問與至少一個流的接收和回放相關聯(lián)的客戶端側回放狀況。響應于所訪問的客戶端側回放狀況,客戶端側應用請求改變播放列表的流。該請求標識期望的播放列表改變,并且包括該控制播放列表改變的信息。按照響應于所述請求而進行的播放列表改變,來顯示播放列表的流。
文檔編號G06F17/30GK101661504SQ20091016837
公開日2010年3月3日 申請日期2009年8月31日 優(yōu)先權日2008年8月29日
發(fā)明者A·卡普爾, A·惠爾羅克, K·斯特里特 申請人:奧多比公司