從第一格式轉換成第二格式的代碼和例程。例如,格式模塊150將視頻文件從MP4文件格式轉換成FLV文件格式。
[0058]在一個實施例中,當用戶125點擊以查看第二格式的視頻文件時,如果第二格式的視頻文件不可用,格式模塊150生成對第一格式的諸如視頻文件的內容文件中的數據的請求。例如,當用戶請求查看要求FLV文件格式的flash播放器界面中的視頻文件時,如果在資產托管站點100中沒有可用的FLV格式的視頻文件,格式模塊150生成對在資產托管站點100中存儲的MP4格式的視頻文件的數據的請求。在一個實施例中,請求包括視頻ID、視頻標題和視頻文件的一個或多個關鍵字中的一個或多個。在另一實施例中,請求還包括描述視頻文件中的數據的位置和/或長度的信息。格式模塊150經由前端接口 102將請求傳送到資產托管站點100中的視頻派發(fā)模塊104。在一個實施例中,格式模塊150從視頻派發(fā)模塊104接收視頻文件中的數據并且處理該數據。例如,格式模塊150解析數據并且將視頻文件從MP4文件格式轉換成FLV文件格式。然后,格式模塊150將FLV文件發(fā)送到flash播放器188的其他組件來在用于用戶125的客戶端設備115上呈現該視頻。
[0059]格式模塊150
[0060]現在參考圖2,描述更詳細地示出格式模塊150的客戶端設備115的實施例。具體地,圖2描述處理器235、存儲器237、存儲設備280和包括格式模塊150的flash播放器188。
[0061 ] 在一個實施例中,處理器235是客戶端設備115的計算機處理器,并且能用來執(zhí)行代碼和例程。處理器235包括算術邏輯單元、微處理器、通用控制器或一些其他處理器陣列來執(zhí)行計算及執(zhí)行代碼和例程。處理器235耦接到總線220,用于與客戶端設備115的其他組件通信。處理器235處理數據信號并且可以包括包含復雜指令集計算機(CISC)體系結構、精簡指令集計算機(RSIC)體系結構或實現指令集的組合的體系結構的各種計算體系結構。盡管在圖2中僅示出單個處理器,可以包括多個處理器。處理能力可以限于支持圖像的顯示及捕捉和傳輸圖像。處理能力可以足以執(zhí)行更復雜任務,包括各種類型的特征抽取和采樣。對本領域的技術人員來說顯而易見的是,其他處理器、操作系統(tǒng)、傳感器、顯示器和物理配置均可能的。處理器235經由信號線路236通信地耦接到總線220。
[0062]存儲器237是非瞬時存儲介質。存儲器237存儲可以由處理器235執(zhí)行的指令和/或數據。例如,在一個實施例中,存儲器237存儲格式模塊150。存儲器237通信地耦接到總線220,用于與客戶端設備115的其他組件通信。在一個實施例中,在存儲器237上存儲的指令和/或數據包括用于執(zhí)行在此所述的技術中的任何一個和/或全部的代碼。存儲器237是動態(tài)隨機存取存儲器(DRAM)設備、靜態(tài)隨機存取存儲器(SRAM)設備、閃存或本領域已知的某個其他存儲器設備。在一個實施例中,存儲器237還包括非易失存儲器或類似的永久存儲設備和介質,諸如硬盤驅動、軟盤驅動、CD-ROM設備、DVD-ROM設備、DVD-RAM設備、DVD-RW設備、閃存設備、或本領域已知的某個其他非瞬時存儲設備。存儲器237經由信號線路238通信地耦接到總線220。在一個實施例中,存儲器237存儲格式模塊150和包括在格式模塊150中的子模塊202、204、206、208、210和212。
[0063]存儲設備280是存儲由格式模塊150或其子模塊生成和/或接收的數據以及執(zhí)行下述功能所必要的其他數據的非瞬時存儲器。在下文中將參考圖3進一步詳細地描述存儲設備280。
[0064]在一個實施例中,格式模塊150包括通信接口 202、獲取模塊204、解析器206、表生成器208、確定模塊210和封裝模塊212。
[0065]通信接口 202包括用于處理獲取模塊204、解析器206、表生成器208、確定模塊210、封裝模塊212、客戶端設備115的其他組件(未示出)以及資產托管站點100的組件之間的通信的代碼和例程。在一個實施例中,通信接口 202是可由處理器235執(zhí)行的指令集。在另一實施例中,通信端口 202存儲在存儲器237中并且可由處理器235訪問和執(zhí)行。在另一實施例中,通信接口 202適合于經由信號線路222與客戶端設備115的處理器235和其他組件協(xié)作和通信。通信接口 202經由信號線路222通信地耦接到總線220。
[0066]在一個實施例中,當用戶125請求查看嵌入在諸如Google Chrome的瀏覽器中的flash播放器界面中的視頻文件時,通信接口 202從客戶端設備115的其他組件(未示出)接收消息。通信接口 202將指示用戶125的請求的消息傳遞到獲取模塊204。在另一實施例中,通信接口 202從獲取模塊204接收對諸如視頻文件的內容文件中的數據的請求,并且經由前端接口 102將請求傳送到包括在資產托管站點100中的視頻派發(fā)模塊104。在另一實施例中,通信接口 202從確定模塊210接收對內容文件中的一個或多個樣本的請求。通信接口 202經由前端接口 102將該請求發(fā)送到資產托管站點100中的視頻派發(fā)模塊104。
[0067]在一個實施例中,通信接口 202經由前端接口 102從視頻派發(fā)模塊104接收內容文件中的數據。例如,數據包括用于諸如視頻文件的內容文件的一個或多個文件頭。通信接口 202將所接收的數據發(fā)送到用于解析數據的解析器206。在另一實施例中,通信接口202經由前端接口 102從視頻派發(fā)模塊104接收內容文件中的一個或多個樣本。通信接口202將所接收的一個或多個樣本傳遞到確定模塊210來解析一個或多個樣本。
[0068]在一個實施例中,通信接口 202還與客戶端設備115的封裝模塊212和其他組件(未示出)通信來將封裝模塊212的輸出(具有轉換的文件格式的內容文件,諸如FLV文件)傳遞給客戶端設備115的其他組件(未示出),諸如flash播放器188的一些相關組件。這樣,能在flash播放器界面中播放內容文件。
[0069]在一個實施例中,通信接口 202還處理格式模塊150中的其他子模塊204、206、208,210和212之間的通信。例如,通信接口 202與表生成器208和確定模塊210通信來將表生成器208的輸出(一個或多個內容表)傳遞到確定模塊210。然而,為清楚和方便起見,該描述可能有時省略提及通信接口 202。例如,為清楚和方便目的,上述情形可以被描述為表生成器208將一個或多個內容表傳遞給確定模塊210。
[0070]獲取模塊204包括用于從資產托管站點100獲取內容文件中的數據的代碼和例程。在一個實施例中,獲取模塊204是可由處理器235執(zhí)行來提供如下所述的用于從資產托管站點100獲取內容文件中的數據的功能的指令集。在另一實施例中,獲取模塊204存儲在存儲器237中并且可由處理器235存取和執(zhí)行。在另一實施例中,獲取模塊204適合于經由信號線路224與客戶端設備115的處理器235和其他組件協(xié)作和通信。獲取模塊204經由信號線路224通信地耦接到總線220。
[0071]在一個實施例中,獲取模塊204響應于接收指示用戶125請求查看第二格式的內容文件的消息,生成對第一格式的內容文件的數據的請求。例如,當用戶125點擊包括在flash播放器界面中的播放列表中的指向FLV格式視頻的鏈接時,獲取模塊204從通信接口 202接收指示用戶125請求查看flash播放器界面中的視頻的消息。至少部分地基于所接收的消息,如果在資產托管站點100中沒有可用的FLV格式的這樣的視頻文件,獲取模塊204生成對在資產托管站點100中存儲的MP4格式的視頻文件的數據的請求。例如,獲取模塊204從所接收的消息檢索視頻文件的元數據(諸如視頻ID、視頻標題和關鍵字)并且生成包括元數據的請求。
[0072]在另一實施例中,獲取模塊204定期地、諸如每預定時間間隔(例如每天、每周、每月)地生成對第一格式的內容文件的數據的請求。在另一實施例中,一旦由客戶端設備115的用戶125或由內容提供者118上傳MP4視頻文件,獲取模塊204生成對諸如MP4視頻文件的具有第一格式的內容文件中的數據的請求。
[0073]在一個實施例中,請求包括視頻的視頻ID、視頻標題和關鍵字中的一個或多個。在另一實施例中,請求還包括描述數據的位置和長度中的一個或多個的信息。例如,請求包括開始字節(jié)、結束字節(jié)、開始時間和結束時間中的一個或多個來指示所請求的數據的位置。在另一示例中,請求包括所請求的數據的字節(jié)長度(諸如2兆字節(jié))和時間長度(諸如3秒)中的一個或多個。
[0074]在一個實施例中,獲取模塊204將對第一格式的內容文件中的數據的請求傳送到通信接口 202,以及通信接口 202經由網絡105將請求傳遞到資產托管站點100中的視頻派發(fā)模塊104。
[0075]解析器206包括用于解析用于一個或多個文件頭的內容文件中的數據的代碼和指令。在一個實施例中,解析器206是可由處理器235執(zhí)行來提供下述的用于對內容文件中的數據解析一個或多個文件頭的功能的指令集。在另一實施例中,解析器206存儲在存儲器237中并且可由處理器235訪問和執(zhí)行。在任一實施例中,解析器206適合于經由信號線路226與客戶端設備115的處理器235和其他組件協(xié)作和通信。解析器206經由信號線路226通信地耦接到總線220。
[0076]在一個實施例中,解析器206通過通信接口 202從資產托管站點100接收第一格式的內容文件中的數據。解析器206以字節(jié)級對數據解析一個或多個文件頭。例如,內容文件是MP4視頻文件。解析器206以字節(jié)級對數據解析用于MP4視頻文件的文件頭。在一個實施例中,文件頭包括描述MP4視頻文件中的一個或多個樣本(諸如視頻樣本、音頻樣本)的位置的補充數據(諸如字節(jié)數目)。例如,文件頭包括指示MP4視頻文件中的一個或多個樣本的字節(jié)偏移量和時間偏移量中的一個或多個的I兆字節(jié)。在另一實施例中,文件頭還包括指示在樣本是視頻樣本的情況下樣本的字節(jié)、樣本的長度、樣本的運動特征以及有關樣本的任何其他特征中的一個或多個的多個字節(jié)。
[0077]在一個實施例中,解析器206將所解析的數據發(fā)送到表生成器208。例如,解析器206將包括補充數據的一個或多個文件頭發(fā)送到表生成器208來基于一個或多個文件頭生成一個或多個內容表。在一個實施例中,解析器206將一個或多個文件頭發(fā)送到存儲設備280以存儲。
[0078]在一個實施例中,解析器206接收內容文件的一個或多個樣本并且基于包含樣本的描述的一個或多個內容表來解析樣本。在下文中將參考表生成器208和確定模塊210來進一步詳細地描述內容表和樣本。
[0079]表生成器208包括用于至少部分地基于一個或多個文件頭來生成一個或多個內容表的代碼和指令。在一個實施例中,表生成器208是可由處理器235執(zhí)行來提供下述的用于至少部分地基于一個或多個文件頭來生成一個或多個內容表的功能的指令集。在另一實施例中,表生成器208存儲在存儲器237中并且可由處理器235訪問和執(zhí)行。在任一實施例中,表生成器208適合于經由信號線路228與客戶端設備115的處理器235和其他組件協(xié)作和通信。表生成器208經由信號線路228通信地耦接到總線220。
[0080]在一個實施例中,表生成器208從解析器206接收包括一個或多個文件頭的解析數據。在另一實施例中,表生成器208從存儲設備280檢索一個或多個文件頭。在任一實施例中,表生成器208至少部分地基于一個或多個文件頭來生成一個或多個內容表。
[0081]例如,表生成器208生成包含一個或多個條目的內容表。內容表中的每一條目對應于內容文件中的一個樣本。表生成器208使用包括在文件頭中的補充數據來擴增內容表中的一個或多個條目。例如,內容表中的條目包括樣本類型(諸如視頻和音頻)、字節(jié)偏移量(