本發(fā)明涉及一種交互式應用程序的方法,特別涉及一種在視頻串流中實現(xiàn)的交互式應用程序的方法。
背景技術:
交互式應用程序,如游戲,可以是計算密集的。特別是對于某些種類的互動是應用程序,如交互式多媒體應用,這種高運算負載的主要組成是需要產(chǎn)生視頻或音頻以響應用戶的輸入。此外,負載會隨著用戶數(shù)量加成,因為相同的影像和聲音可能需要針對給定應用的每個多個用戶中分別產(chǎn)生。.
當這樣的應用程序設置于服務器,例如基于云的服務器,結果可能需要大量的服務器,而其取得、更新和維持都是昂貴的。
在托管(hosting)計算密集的交互式應用程序,如游戲,需要較佳的解決方案。
技術實現(xiàn)要素:
本發(fā)明的實施例將多媒體計算機程序轉換輸出為一系列的串流視頻剪輯,其可以通過由網(wǎng)絡數(shù)據(jù)中心(IDCs)和內容發(fā)送網(wǎng)絡(CDN)組成的視頻串流基礎設施在全球分發(fā)。
此外,在一些實施例中,視頻剪輯以元數(shù)據(jù)標記方便播放,元數(shù)據(jù)可以包括,例如,標識符和觸發(fā)信息。標識符可以是每個視頻剪輯的唯一標識符,觸發(fā)信息可以指定標識符下個播放的剪輯,可能是當前用戶輸入或其他條件的函數(shù)。
一般來說,本發(fā)明的實施例包括視頻剪輯產(chǎn)生過程和交互式播放程序。
在產(chǎn)生過程中,用戶(或者在一些變形,仿真的,機器人用戶)與傳統(tǒng)的交互式計算機程序互動。在響應用戶的互動,計算機程序產(chǎn)生原始視頻和音頻數(shù)據(jù),儲存用戶輸入或其他事件觸發(fā)產(chǎn)生的特定視頻和音頻數(shù)據(jù),與觸發(fā)條件相關的特定視頻和音頻數(shù)據(jù)之后轉換為串流視頻剪輯。該剪輯以元數(shù)據(jù)標記,包括例如ID、觸發(fā)條件或播放事件,以及長度。在一些實施例,該剪輯之后經(jīng)由內容發(fā)送網(wǎng)絡傳送到選定的網(wǎng)絡數(shù)據(jù)中心以支持一個或多個交互式應用程序。
在播放過程中,在某些實施例,例如支持交互式游戲播放的實施例,播放第一個視頻剪輯。在第一視頻剪輯播放結束時(或在一些實施例,在第一視頻剪輯播放期間的任何時間),參考元數(shù)據(jù)以識別觸發(fā)條件或將觸發(fā)下個視頻剪輯播放的條件。在偵測到觸發(fā)條件(例如用戶按下某個按鈕)時,播放下個視頻剪輯。以這種方式繼續(xù)播放直到基于最后的觸發(fā)條件播放最后的視頻剪輯。
在一些實施例中,播放發(fā)生在服務器中,如基于云的串流服務器,而內容從服務器串流到用戶。在其他的實施例,在播放時,內容經(jīng)由CDN和IDC串流到用戶。
以下結合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。
附圖說明
圖1是根據(jù)本發(fā)明實施例的分布式主從式計算機系統(tǒng)支持交互式實時多媒體應用程序的方框圖;
圖2是視頻串流基礎設施包括內容發(fā)送網(wǎng)絡(CDN)和多個網(wǎng)絡數(shù)據(jù)中心(IDCs)的方框圖,通過本發(fā)明的實施例來分發(fā)視頻剪輯;
圖3是其根據(jù)本發(fā)明實施例,描述交互式視頻剪輯產(chǎn)生和播放系統(tǒng)的圖;
圖4是根據(jù)本發(fā)明實施例的視頻剪輯產(chǎn)生和播放程序的流程圖;
圖5是根據(jù)本發(fā)明實施例,描述視頻剪輯的圖結構組。
具體實施方式
本發(fā)明實施例提供多媒體信息的產(chǎn)生和播放,如用于交互式實時媒體應用程序的串流視頻剪輯。
圖1是根據(jù)本發(fā)明實施例,分布式主從式計算機系統(tǒng)1000支持交互式實時多媒體應用程序的方框圖。計算機系統(tǒng)1000包括一個或多個服務器計算機101和一個或多個用戶設備103通過計算機程序產(chǎn)品131配置。計算機程序131可以在暫時性的或非暫時性的計算機可讀取介質提供;然而,在特定實施例中,他是在非暫時性計算機可讀取介質中提供,如持續(xù)性的(如,非揮發(fā)性)儲存,揮發(fā)性內存(如,隨機存取內存),或各種其他已知的非暫時性計算機可讀取介質。
用戶設備103包括中央處理器單元(CPU)120、內存122和儲存空間121.用戶設備103也包括輸入和輸出(I/O)子系統(tǒng)(圖中未單獨示出)(包括如顯示器或觸控顯示器、鍵盤、d-pad、軌跡球、觸摸板、操作桿、麥克風、和/或其他用戶接口設備和相關聯(lián)的控制器電路和/或軟件)。用戶設備103可以包括任何類型,可以提供媒體內容的電子設備。一些例子包括桌面計算機和可攜式電子設備如移動電話、智能型手機、多媒體播放器、電子閱讀器、平板/觸摸板、筆記本電腦或膝上型PCs、智能電視、智能手表、頭戴式顯示器和其他通訊設備。
服務器計算機101包括中央處理單元CPU110、儲存空間111和內存112(并可包括I/O子系統(tǒng),未單獨示出)。服務器計算機101可以是能夠托管計算機產(chǎn)品131的任何計算機設備,用來與一個或多個客戶端計算機通訊,例如,用戶設備103,通過網(wǎng)絡,例如網(wǎng)絡102(如,網(wǎng)絡)。服務器計算機101經(jīng)由網(wǎng)絡與一個或多個客戶端計算機通訊,并且可以采用協(xié)議如網(wǎng)絡協(xié)議組(TCP/IP)、超文本傳送協(xié)議(HTTP)或HTTPS、實時協(xié)議,或其他協(xié)議。
內存112和122可以包括任何已知的計算機內存設備。儲存空間111和121可以包括任何已知的儲存空間設備。
盡管未示出,內存112和122和/或儲存空間111和121也可以包括任何可通過服務器計算機101和用戶設備103存取的數(shù)據(jù)儲存設備,諸如,可移動或可攜式的任何內存(如,閃存或外接硬盤),或任何由第三方托管的數(shù)據(jù)儲存空間(如云端儲存空間),并且不限于此。
用戶設備103和服務器計算機101經(jīng)由網(wǎng)絡102存取和通訊。網(wǎng)絡102包括有線和無線連接,包括廣域網(wǎng)(WANs)和蜂巢式網(wǎng)絡或任何其他類型作為設備間通訊使用的計算機網(wǎng)絡。
在所示實施例中,計算機程序產(chǎn)品131實際上代表計算機程序產(chǎn)品或計算機程序產(chǎn)品部分組成,用來在個別的服務器101和用戶設備103上執(zhí)行。計算機程序產(chǎn)品131的部分裝入內存112組成服務器101,遵照本文進一步描述的發(fā)明要求,記錄并播放交互式串流視頻剪輯。串流視頻剪輯播放到,例如,用戶設備103,其支持接收串流視頻,例如經(jīng)由具有HTML5功能的瀏覽器。
圖2顯示視頻串流基礎設施的一個例子,通過本發(fā)明的實施例使用以分發(fā)視頻剪輯。如圖所示,視頻串流基礎設施2000包括內容發(fā)送網(wǎng)絡(CDN)200和網(wǎng)絡數(shù)據(jù)中心(IDCs)210-260。
媒體文件201最初儲存在文件儲存空間202,媒體文件201之后經(jīng)由CDN200分發(fā)到IDCs 210-260。在文件分發(fā)后,每個個別的IDC具有分發(fā)媒體文件的本地副本。個別的本地副本之后儲存為媒體文件副本211-261。每個IDC 210-260之后服務串流媒體,如視頻,到個別IDC地理鄰近區(qū)域的用戶,以響應用戶的請求。媒體文件副本211-261可以周期性的更新。
在本發(fā)明的一些實施例,使用視頻串流基礎設施2000分發(fā)由本文公開的發(fā)明過程產(chǎn)生的視頻剪輯。也就是說,例如,本發(fā)明的視頻剪輯作為媒體文件201儲存在文件儲存空間202,之后經(jīng)由CDN 200分發(fā)到IDCs 210-260,在那里他們可以用于作為串流視頻播放給用戶。
在其他實施例,本發(fā)明視頻剪輯直接從,例如,一個或多個服務器,如基于云的服務器分發(fā),而不使用視頻串流基礎設施2000。
圖3是一個系統(tǒng)3000的高階方框圖,其用來產(chǎn)生和儲存用元數(shù)據(jù)標記的交互式視頻剪輯,并用來分發(fā)交互式視頻到用戶設備,根據(jù)本發(fā)明的實施例。系統(tǒng)3000可以被實現(xiàn)為硬件模塊或軟件模塊,或硬件和軟件模塊的組合。在部分實施例,系統(tǒng)3000的至少一部分包括在服務器運行的軟件,如服務器101。
在所示的實施例中,除了產(chǎn)生和儲存以元數(shù)據(jù)標記的交互式視頻剪輯,系統(tǒng)3000執(zhí)行附加的相關功能。例如,在該實施例系統(tǒng)3000還能夠回放預先儲存的視頻剪輯,并且能夠響應用戶的互動傳輸串流視頻給用戶,而不需要將視頻首次儲存如視頻剪輯。在替代實施例中,這些一個或多個功能可以通過單獨或多個系統(tǒng)提供。
在圖3,計算機程序310可以是,例如,交互式多媒體應用程序。例如,計算機程序310可以是游戲應用程序。計算機程序310產(chǎn)生輸出程序320響應輸入程序330。
在一些實施例,輸出程序320包括原始視頻和音頻輸出,在一些實施例,輸出程序320包括視頻渲染結果。
在一些實施例,輸入程序330包括基于用戶輸入互動指示的控制信息,如用戶按下按鈕,選擇列表上的項目或鍵入命令。這樣的用戶輸入互動可以源自輸入接口設備350,輸入接口設備可以是與用戶設備相關的接口設備,如用戶設備103。特定用戶設備相關的接口設備可以包括操作桿、鼠標、觸控屏幕等。在一些實施例,輸入接口設備350可以與遠程用戶設備103并列,并與其他系統(tǒng)的組件經(jīng)由網(wǎng)絡通訊。雖然標記為「接口設備」,但是本領域技術人員將了解輸入設備/組件如接口設備350可以,在特定實施例中,包括輸入組件被建置于,即,部分的,用戶設備103中(例如觸控屏幕、按鈕等),而不是從用戶設備103分離并插入用戶設備103中。
在一些實施例中,輸入接口設備350是「機器人」實體,產(chǎn)生一連串仿真真實使用者行為的輸入序列。這樣的機器人實體可以用來「訓練」系統(tǒng),并且使其產(chǎn)生許多(或甚至全部)輸出程序320可能的情況。以這種方式「訓練」系統(tǒng)3000的目的可以是,例如,使其產(chǎn)生并儲存每個與輸出程序320相關視頻剪輯的至少一個副本。
應用程序互動容器340提供運行環(huán)境運行計算機程序310。在本發(fā)明的實施例中,應用程序互動容器340偵測并截取通過輸入接口設備350產(chǎn)生的用戶輸入,并以輸入程序330的形式,傳遞攔截的用戶輸入到計算機程序310。
應用程序互動容器340還截取原始視頻和音頻產(chǎn)生為輸出程序320,并且利用計算機程序視頻處理平臺360的服務將原始視頻和音頻轉換串流視頻格式,然后將轉換的視頻和音頻作為一個或多個視頻片段或剪輯370儲存在數(shù)據(jù)庫390。每個剪輯代表響應特定觸發(fā)條件的音頻和視頻輸出程序(或播放事件),其中一組可能的觸發(fā)條件包括,例如,輸入程序330的特定項目。在一些實施例,原始視頻和音頻轉換為多媒體封裝格式,在一些實施例,原始視頻和音頻被轉換為稱為MPEG2-傳輸串流(MPEG2-TS)的格式。
隨著視頻剪輯370的產(chǎn)生,他們也以一組屬性380標記(這里也稱作「元數(shù)據(jù)」),組成,例如,剪輯ID、播放事件和長度。元數(shù)據(jù)380中的屬性與相關聯(lián)的對應的視頻剪輯370儲存于數(shù)據(jù)庫390。儲存的剪輯370可以用于將來的播放,儲存的、標記視頻剪輯370可以由相同或不同的用戶再次使用。潛在地,給定的剪輯370可以通過數(shù)千個用戶以計算機程序310在共享服務器或服務器組上互動而被再次使用。
例如,下一次出現(xiàn)給定的播放事件(基于,例如,來自特定用戶輸入的偵測,從相同用戶或不同用戶),可以播放以該事件標記的儲存的視頻剪輯370,從而避免需要重新產(chǎn)生對應的原始視頻和音頻。對于一些應用程序,這可以導致計算機處理能力的顯著節(jié)省。見下面的播放過程說明,以得到進一步的細節(jié)。
如上所述,在所示實施例中,系統(tǒng)3000也可以回放預先儲存的視頻剪輯。例如,基于用戶經(jīng)由輸入接口設備350的互動,使輸入程序330、計算機程序310可以確定特定具有對應到用戶互動的元數(shù)據(jù)380的預先儲存剪輯370,其是有效的并且適合響應用戶的互動。然后匹配的剪輯370可以從儲存空間和串流中擷取,例如,根據(jù)多媒體封存格式,如MPEG2-TS,到用戶設備103。
如上所述,在所示實施例中,系統(tǒng)3000也可以串流視頻給用戶以響應用戶互動,即使視頻當前未被儲存為串流視頻剪輯370,例如,基于用戶經(jīng)由輸入接口設備350互動使輸入程序330、計算機程序310可以確定特定視頻輸出是適合響應用戶互動,但沒有對應的剪輯370可以使用。所需的視頻可以之后通過計算機程序310產(chǎn)出作為原始輸出視頻320。應用程序互動容器340之后截取輸出程序320并且,利用計算機程序視頻處理平臺360的服務,將原始視頻轉換為流格式,根據(jù),例如,多媒體封裝格式,如MPEG2-TS,并將串流視頻發(fā)送給用戶設備103。有利地,串流視頻可以同時被記錄、封裝為視頻剪輯370,并與適當?shù)脑獢?shù)據(jù)380儲存以作為將來使用。
圖4顯示產(chǎn)出、儲存和播放互動視頻剪輯及相關的元數(shù)據(jù)的過程4000,根據(jù)本發(fā)明的實施例。在一些實施例,過程4000也支持其他相關的功能,如,例如,在沒有首次儲存視頻作為視頻剪輯下,串流視頻給用戶。
在步驟410,計算機程序在服務器,如服務器101啟動。服務器可以是,例如,基于云的服務器。服務器可以是,例如,游戲服務器。計算機程序可以是,例如,交互式多媒體應用程序,如,例如,游戲應用程序。
在步驟420,該過程監(jiān)控用戶輸入。
在決策框430,如果沒有偵測到用戶輸入,過程返回到步驟420并繼續(xù)監(jiān)控用戶輸入。若偵測到用戶輸入,則控制移轉到?jīng)Q策框440。
在決策框440,若具有匹配元數(shù)據(jù)的預先儲存視頻剪輯存在(即,元數(shù)據(jù)對應用戶輸入),控制移轉到步驟450,預先儲存視頻剪輯串流到用戶。然后控制返回到步驟420,并且該過程繼續(xù)監(jiān)控用戶輸入。
如果,在決策框440,沒有發(fā)現(xiàn)具匹配元數(shù)據(jù)的預先儲存剪輯,控制移轉到步驟460。在步驟460,來自輸出程序響應用戶輸入的視頻片段串流到用戶。同時,視頻片段被記錄用來作為對應視頻剪輯的創(chuàng)建準備。在步驟470,記錄的視頻以串流形式被封裝到視頻剪輯。例如,流格式可以是多媒體封裝格式如MPEG2-TS。
在步驟480,產(chǎn)生與視頻剪輯相關的元數(shù)據(jù)(例如,剪輯ID,播放事件或觸發(fā)、長度)。
在步驟490,視頻剪輯和相關的元數(shù)據(jù)儲存作為將來使用,例如,當遇到與對應剪輯儲存元數(shù)據(jù)的啟動裝置時,視頻剪輯可以通過播放程序在將來使用。通過使用儲存的視頻剪輯,播放程序可以避免計算機程序需要重新產(chǎn)生對應儲存視頻剪輯的視頻片段。
視頻片段可以繼續(xù)被記錄,封裝到流格式的片段中,并與相關的元數(shù)據(jù)儲存直到,例如,游戲結束。
注意,程序4000在服務器運行的情況下,例如基于云的服務器,其實際上可以同時處理多個用戶,可能許多用戶。在這樣的情況下,完全可能的是,給定的視頻片段已經(jīng)被記錄、封裝并儲存為視頻剪輯370,與對應的元數(shù)據(jù)380在先前用戶與程序4000的交互過程中。在這種情況下,不應該需要再次記錄對應的片段,相反地,視頻剪輯可以從先前儲存的剪輯系列中擷取,基于元數(shù)據(jù),其可以包括唯一的ID。
圖5顯示視頻剪輯和相關元數(shù)據(jù)的圖形結構化例子組5000,根據(jù)本發(fā)明實施例使用在播放程序。這些剪輯可以是,例如,從圖3的系統(tǒng)3000和/或通過圖4的程序4000產(chǎn)生的視頻剪輯370和相關的元數(shù)據(jù)380。在播放程序,視頻剪輯370從服務器串流,如服務器計算機101或與網(wǎng)絡數(shù)據(jù)中心相關的服務器,如IDC210。視頻剪輯370在用戶設備接收并觀看,如用戶設備103,其具有適當?shù)墓δ埽缰С諬TML5的瀏覽器。
每個交互式多媒體應用程序或應用程序的部分,可能與相似于視頻剪輯組5000形式的播放視頻剪輯組相關,也稱作元數(shù)據(jù)播放列表,例如,多級別游戲的每個級別可以有他自己的元數(shù)據(jù)播放列表。如上所述,關于每個視頻剪輯370的元數(shù)據(jù)被學習作為響應真實或「機器人」用戶輸入的執(zhí)行應用程序,因此,同時,元數(shù)據(jù)播放列表也學習,這是因為元數(shù)據(jù)播放列表是視頻剪輯370的集合,根據(jù)元數(shù)據(jù)380連接,針對特定的應用程序或應用程序的部分。
在圖5的例子中,視頻剪輯由圓圈表示,每個具有一個ID。例如,視頻剪輯510以ID=A標記。箭頭表示「播放事件」或觸發(fā)條件使播放程序5000依箭頭方向前進,例如,若視頻剪輯520正在播放而按鈕X被按下,視頻剪輯520的播放停止而視頻剪輯530開始。若,另一方面,當視頻剪輯520正在播放,用戶選擇「項目2」,程序轉而改變到視頻剪輯540。若視頻剪輯530正在播放而按鈕Y被按下,程序轉換并播放視頻剪輯550。若視頻剪輯540正在播放而用戶滑動到「目標Z」,則程序轉換并播放視頻剪輯560。若視頻剪輯560或550任一個正在播放而從麥克風(「MIC」)接收到音頻命令「提交」,程序轉換并開始播放視頻剪輯570。說明稍微不同種類的觸發(fā),當視頻剪輯510完成播放時,程序自動前進到標記A’的視頻剪輯,即視頻剪輯520。
可選地,可以采用快取機制幫助視頻剪輯的平滑播放。
在本發(fā)明的部分實施例,從服務器傳送到用戶設備的視頻,是混合預先計算的視頻(儲存和再次播放的視頻剪輯)和實時產(chǎn)生的視頻串流(尚未儲存為具有元數(shù)據(jù)的視頻剪輯的視頻)。
在上面的描述中,參考串流多媒體封裝格式,如MPEG2-TS。應當理解,本發(fā)明的實施例不限于MPEG2-TS,而是可以采用各種各樣串流封裝格式的任何一種,包含但不限于3GP、ASF、AVI、DVR-MS、Flash Video(FLV,F4V)、IFF、Matroska(MKV)、MJ2、QuickTime文件格式、MPEG節(jié)目串流、MP4、Ogg和RM(RealMedia封裝)。實施例在沒有標準化封裝格式下的運作也是被預期的。
盡管上面已經(jīng)描述了一些示例性實施例,但本技術領域人員將了解,在不脫離本發(fā)明的精神和范圍的情況下,許多修改和變化是可能的。因此,所有這些修改和變化是預期包含在發(fā)明請求的范圍內。