以下實(shí)施例涉及一種用于串流服務(wù)的用戶和服務(wù)器的操作方法。
背景技術(shù):
:本發(fā)明的
背景技術(shù):
在以下文獻(xiàn)中被記載。1)韓國公開專利公報(bào)NO.2014-0054138(2014.05.08公開)2)韓國公開專利公報(bào)NO.2012-0117384(2012.10.24公開)過去大部分的串流技術(shù)是使用類似實(shí)時(shí)串流協(xié)議RTSP(RealTimeStreamingProtocol)的串流專用協(xié)議。但是,最相鄰串流技術(shù)被設(shè)計(jì)為能夠在類似因特網(wǎng)的較寬分布的HTTP網(wǎng)絡(luò)上被有效地操作。例如,自適性串流(adaptivebitratestreaming)是基于網(wǎng)絡(luò)狀態(tài)或是傳送速度等傳送帶寬可承受的畫質(zhì)的內(nèi)容的HTTP串流技術(shù)。自適性串流是將文件以單位分開傳送。例如,自適性串流可利用存儲(chǔ)2~10秒的數(shù)據(jù)塊(chunk)來提供串流服務(wù)。在這種情況下,傳送的數(shù)據(jù)塊被要求分別以I-frame等預(yù)設(shè)的關(guān)鍵幀開始。為了滿足這種條件,自適性串流中必須要求將視頻文件編碼轉(zhuǎn)換成(transcoding)流文件的過程。該轉(zhuǎn)換過程中視頻文件的畫質(zhì)降低,且需要用于轉(zhuǎn)換的附加時(shí)間和電腦電源的附加消耗。此外,自適性串流必須使用清單(manifest)文件。清單文件是用于存儲(chǔ)流文件的各數(shù)據(jù)塊信息的文件。清單文件在視頻文件轉(zhuǎn)換成流文件時(shí)被生成。根據(jù)自適性串流,客戶端為了接收提供的串流服務(wù)必須參照清單文件。技術(shù)實(shí)現(xiàn)要素:技術(shù)課題以下說明的實(shí)施例,提供一種基于HTTP的串流技術(shù),不使用流文件格式,而是按原樣使用視頻文件格式。實(shí)施例提供將視頻文件以容量單位分開傳送的技術(shù)。例如,實(shí)施例提供一種實(shí)際不分割視頻文件而是將視頻文件的一部分以字節(jié)地址為單位進(jìn)行傳送的串流服務(wù)。根據(jù)實(shí)施例,傳送的數(shù)據(jù)塊無需從關(guān)鍵幀開始,可省略將視頻文件轉(zhuǎn)換成流文件的過程。由于實(shí)施例可以省略將視頻文件轉(zhuǎn)換成流文件的過程,因此,可防止轉(zhuǎn)換時(shí)發(fā)生的畫質(zhì)低下并可減少服務(wù)器的負(fù)荷。此外,根據(jù)實(shí)施例,由于視頻文件被上傳至服務(wù)器之后不需要將視頻文件轉(zhuǎn)換成流文件的時(shí)間,因此,可迅速地提供串流服務(wù)。不僅如此,根據(jù)實(shí)施例,由于不另外生成流文件,因此不需要存儲(chǔ)流文件的數(shù)據(jù)塊信息的清單文件。技術(shù)方案根據(jù)一個(gè)側(cè)面的用于串流服務(wù)的客戶端操作方法,包括以下步驟:傳送含有用于指示文件URL和播放信息請(qǐng)求的第一媒介參數(shù)的第一請(qǐng)求數(shù)據(jù)包;接收含有對(duì)應(yīng)于所述文件URL的文件播放信息的第一響應(yīng)數(shù)據(jù)包;傳送含有用于指示所述文件URL和數(shù)據(jù)請(qǐng)求的第二媒介參數(shù)的第二請(qǐng)求數(shù)據(jù)包;以及接收第二響應(yīng)數(shù)據(jù)包,其含有對(duì)應(yīng)于所述文件內(nèi)所述第二媒介參數(shù)的地址范圍數(shù)據(jù)。所述客戶端操作方法,可進(jìn)一步包括以下步驟:將所述第一媒介參數(shù)設(shè)定為預(yù)設(shè)的第一指示符;以及從所述第一響應(yīng)數(shù)據(jù)包提取將所述文件分割的數(shù)據(jù)塊大小、所述數(shù)據(jù)塊個(gè)數(shù)、所述文件中存儲(chǔ)的內(nèi)容的分辨率、用于存儲(chǔ)不同于所述分辨率的第二分辨率的內(nèi)容的第二文件URL、以及所述第二分辨率。所述客戶端操作方法,可進(jìn)一步包括以下步驟:將所述第二媒介參數(shù)設(shè)定為最初索引;以及將所述響應(yīng)數(shù)據(jù)包的數(shù)據(jù)輸入至緩沖區(qū)。所述客戶端操作方法,可進(jìn)一步包括以下步驟:當(dāng)所述緩沖區(qū)的殘余量為閾值以下時(shí),將所述第二媒介參數(shù)設(shè)定為下一個(gè)將播放的數(shù)據(jù)塊索引;以及將所述第二響應(yīng)數(shù)據(jù)包的數(shù)據(jù)輸入至所述緩沖區(qū)。所述客戶端操作方法,可進(jìn)一步包括以下步驟:將所述第二媒介參數(shù)設(shè)定為最初索引;以及從所述第二響應(yīng)數(shù)據(jù)包提取所述文件的關(guān)鍵幀信息的偏移地址。所述客戶端操作方法,可進(jìn)一步包括以下步驟:當(dāng)所述偏移地址的數(shù)據(jù)被包含在所述第二響應(yīng)數(shù)據(jù)包中時(shí),從所述第二響應(yīng)數(shù)據(jù)包提取所述關(guān)鍵幀信息。所述客戶端操作方法,可進(jìn)一步包括以下步驟:當(dāng)所述偏移地址的數(shù)據(jù)沒有被包含在所述第二響應(yīng)數(shù)據(jù)包中時(shí),將用于指示數(shù)據(jù)請(qǐng)求的第三媒介參數(shù)設(shè)定為所述偏移地址;傳送含有所述文件URL和所述第三媒介參數(shù)的第三請(qǐng)求數(shù)據(jù)包;接收第三響應(yīng)數(shù)據(jù)包,其含有對(duì)應(yīng)于所述文件內(nèi)所述第三媒介參數(shù)的地址范圍數(shù)據(jù);以及從所述第三響應(yīng)數(shù)據(jù)包提取所述關(guān)鍵幀信息。所述客戶端操作方法,可進(jìn)一步包括以下步驟:將所述第二響應(yīng)數(shù)據(jù)包的數(shù)據(jù)輸入到緩沖區(qū);所述數(shù)據(jù)被播放的期間提取所述文件的關(guān)鍵幀;以及基于所述關(guān)鍵幀來生成所述文件的關(guān)鍵幀信息。所述客戶端操作方法,可進(jìn)一步包括以下步驟:接收分辨率更改輸入;將所述文件URL設(shè)定為對(duì)應(yīng)于所述分辨率更改輸入中包含的新分辨率的第二文件URL;將所述第一媒介參數(shù)設(shè)定為預(yù)設(shè)的第二指示符;以及從所述第一響應(yīng)數(shù)據(jù)包提取將所述第二文件分割的數(shù)據(jù)塊大小、所述數(shù)據(jù)塊個(gè)數(shù)。所述客戶端操作方法,可進(jìn)一步包括以下步驟:接收分辨率更改輸入;將所述文件URL設(shè)定為對(duì)應(yīng)于所述分辨率更改輸入中包含的新分辨率的第二文件URL;基于所述第二文件的關(guān)鍵幀,來檢測對(duì)應(yīng)于當(dāng)前播放時(shí)間的關(guān)鍵幀;將所述第二媒介參數(shù)設(shè)定為所述檢測的關(guān)鍵幀的地址;以及將所述第二響應(yīng)數(shù)據(jù)包的數(shù)據(jù)輸入到緩沖區(qū)。所述客戶端操作方法,可進(jìn)一步包括以下步驟:接收分辨率更改輸入;將所述文件URL設(shè)定為對(duì)應(yīng)于所述分辨率更改輸入中包含的新分辨率的第二文件URL;基于當(dāng)前播放時(shí)間和整體播放時(shí)間,來估計(jì)對(duì)應(yīng)于所述當(dāng)前播放時(shí)間的數(shù)據(jù)塊;將所述第二媒介參數(shù)設(shè)定為所述估計(jì)的數(shù)據(jù)塊索引;當(dāng)所述第二響應(yīng)數(shù)據(jù)包的時(shí)間范圍包含所述當(dāng)前播放時(shí)間時(shí),從所述第二響應(yīng)數(shù)據(jù)包的數(shù)據(jù)檢測出與所述當(dāng)前播放時(shí)間最相鄰的關(guān)鍵幀;以及將所述檢測的關(guān)鍵幀之后的數(shù)據(jù)輸入到所述緩沖區(qū)。所述客戶端操作方法,可進(jìn)一步包括以下步驟:當(dāng)所述第二響應(yīng)數(shù)據(jù)包的時(shí)間范圍不包含所述當(dāng)前播放時(shí)間時(shí),估計(jì)對(duì)應(yīng)于所述當(dāng)前播放時(shí)間的新索引;將指示數(shù)據(jù)請(qǐng)求的第三媒介參數(shù)設(shè)定為所述新索引;傳送含有所述文件URL和所述第三媒介參數(shù)的第三請(qǐng)求數(shù)據(jù)包;接收第三響應(yīng)數(shù)據(jù)包,其含有對(duì)應(yīng)于所述文件內(nèi)所述第三媒介參數(shù)的地址范圍數(shù)據(jù);以及從所述第三響應(yīng)數(shù)據(jù)包的數(shù)據(jù)檢測出與所述當(dāng)前播放時(shí)間最相鄰的關(guān)鍵幀。所述客戶端操作方法,可進(jìn)一步包括以下步驟:接收檢索時(shí)間;利用所述文件的關(guān)鍵幀信息,來檢測出對(duì)應(yīng)于所述檢索時(shí)間的關(guān)鍵幀;將所述第二媒介參數(shù)設(shè)定為所述檢測的關(guān)鍵幀的地址;以及將所述第二響應(yīng)數(shù)據(jù)包的數(shù)據(jù)輸入到緩沖區(qū)。所述客戶端操作方法,可進(jìn)一步包括以下步驟:接收檢索時(shí)間;基于所述檢索時(shí)間和所述文件的整個(gè)播放時(shí)間,來估計(jì)對(duì)應(yīng)于所述檢索時(shí)間的數(shù)據(jù)塊;將所述第二媒介參數(shù)設(shè)定為所述估計(jì)的數(shù)據(jù)塊索引;當(dāng)所述第二響應(yīng)數(shù)據(jù)包的時(shí)間范圍包含所述檢索時(shí)間時(shí),從所述第二響應(yīng)數(shù)據(jù)包的數(shù)據(jù)檢測出與所述檢索時(shí)間最相鄰的關(guān)鍵幀;以及將所述檢測的關(guān)鍵幀之后的數(shù)據(jù)輸入到緩沖區(qū)。所述客戶端操作方法,可進(jìn)一步包括以下步驟:當(dāng)所述第二響應(yīng)數(shù)據(jù)包的時(shí)間范圍不包含所述檢索時(shí)間時(shí),估計(jì)對(duì)應(yīng)于所述檢索時(shí)間的新索引;將指示數(shù)據(jù)請(qǐng)求的第三媒介參數(shù)設(shè)定為所述新索引;傳送含有所述文件URL和所述第三媒介參數(shù)的第三請(qǐng)求數(shù)據(jù)包;接收第三響應(yīng)數(shù)據(jù)包,其含有對(duì)應(yīng)于所述文件內(nèi)所述第三媒介參數(shù)的地址范圍數(shù)據(jù);從所述第三響應(yīng)數(shù)據(jù)包的數(shù)據(jù)檢測出與所述檢索時(shí)間最相鄰的關(guān)鍵幀。根據(jù)另一側(cè)面的用于串流服務(wù)的服務(wù)器操作方法,包括以下步驟:接收含有文件URL和媒介參數(shù)的請(qǐng)求數(shù)據(jù)包;當(dāng)所述媒介參數(shù)指示數(shù)據(jù)請(qǐng)求時(shí),響應(yīng)與所述文件URL相對(duì)應(yīng)的文件內(nèi)所述媒介參數(shù)所對(duì)應(yīng)的地址范圍數(shù)據(jù);以及當(dāng)所述媒介參數(shù)指示播放信息請(qǐng)求時(shí),響應(yīng)所述文件的播放信息。所述響應(yīng)數(shù)據(jù)的步驟可包括以下步驟中的至少一個(gè):當(dāng)所述媒介參數(shù)含有索引時(shí),響應(yīng)所述文件內(nèi)所述索引所對(duì)應(yīng)的地址范圍數(shù)據(jù);以及當(dāng)所述媒介參數(shù)含有地址時(shí),響應(yīng)所述文件內(nèi)所述地址所對(duì)應(yīng)的地址范圍數(shù)據(jù)。響應(yīng)所述地址所對(duì)應(yīng)的地址范圍數(shù)據(jù)的步驟可包括以下步驟中的至少一個(gè):當(dāng)所述媒介參數(shù)含有兩個(gè)地址時(shí),響應(yīng)所述文件內(nèi)所述兩個(gè)地址之間的數(shù)據(jù);以及當(dāng)所述媒介參數(shù)含有一個(gè)地址時(shí),響應(yīng)所述文件內(nèi)所述一個(gè)地址和所述文件的結(jié)束之間的數(shù)據(jù)。響應(yīng)所述播放信息的步驟可包括以下步驟中的至少一個(gè):所述媒介參數(shù)包含預(yù)設(shè)的第一指示符時(shí),響應(yīng)將所述文件分割的數(shù)據(jù)塊大小、所述數(shù)據(jù)塊個(gè)數(shù)、所述文件中存儲(chǔ)的內(nèi)容的分辨率、存儲(chǔ)不同于所述分辨率的第二分辨率內(nèi)容的第二文件URL,和所述第二分辨率;以及當(dāng)所述媒介參數(shù)包含預(yù)設(shè)的第一指示符時(shí),響應(yīng)所述數(shù)據(jù)塊大小和所述數(shù)據(jù)塊個(gè)數(shù)。附圖說明圖1是說明根據(jù)一個(gè)實(shí)施例的客戶端操作方法的示圖。圖2至圖7是說明根據(jù)一個(gè)實(shí)施例的服務(wù)器操作方法的示圖。圖8是說明根據(jù)一個(gè)實(shí)施例的客戶端的基本操作的示圖。圖9至圖11是說明根據(jù)一個(gè)實(shí)施例的獲取關(guān)鍵幀信息操作的示圖。圖12至圖14是說明根據(jù)一個(gè)實(shí)施例的分辨率更改操作的示圖。圖15至圖17是說明根據(jù)一個(gè)實(shí)施例的檢索操作的示圖。圖18和圖19是說明利用多個(gè)url串流的客戶端操作的示圖。具體實(shí)施方式以下,參照附圖對(duì)實(shí)施例進(jìn)行詳細(xì)說明。各附圖中記載的相同符號(hào)表示相同的部件。以下說明的實(shí)施例可適用于串流服務(wù)的客戶端或服務(wù)器。根據(jù)一個(gè)實(shí)施例,客戶端可以是接收串流服務(wù)的電腦裝置,例如包括個(gè)人電腦、筆記本電腦、平板電腦、PDA、智能手機(jī)等??蛻舳酥锌砂惭b有利用http協(xié)議與服務(wù)器的通信的客戶端應(yīng)用軟件,例如swf播放器等。根據(jù)一個(gè)實(shí)施例的服務(wù)器可以是提供串流服務(wù)的電腦裝置,例如包括網(wǎng)絡(luò)服務(wù)器等。服務(wù)器不僅是服務(wù)器專用電腦裝置,還可以是由個(gè)人電腦、筆記本電腦、平板電腦、PDA、智能手機(jī)等構(gòu)成。服務(wù)器中可安裝有利用http協(xié)議與客戶端通信的服務(wù)器應(yīng)用軟件,例如Apache服務(wù)器等。圖1是說明根據(jù)一個(gè)實(shí)施例的客戶端操作方法的示圖。參照?qǐng)D1,根據(jù)一個(gè)實(shí)施例的客戶端110將第一請(qǐng)求數(shù)據(jù)包傳送至服務(wù)器120。第一請(qǐng)求數(shù)據(jù)包可包含指示文件URL和播放信息請(qǐng)求的第一媒介參數(shù)。在此,文件URL作為將電腦網(wǎng)絡(luò)上的資源固有地進(jìn)行指示的信息,例如可以是將作為i串流服務(wù)的對(duì)象的視頻文件固有地進(jìn)行指示的信息。用于指示播放信息請(qǐng)求的第一媒介參數(shù)可以是預(yù)設(shè)的文字或字符串,例如:”i”或“r”等??蛻舳?10將第一請(qǐng)求數(shù)據(jù)包傳送至服務(wù)器120,由此可請(qǐng)求與文件URL相對(duì)應(yīng)的文件播放信息。文件播放信息作為通過串流服務(wù)播放文件的信息,例如為了傳送可包含文件被分割的信息等??蛻舳?10可從服務(wù)器120接收第一響應(yīng)數(shù)據(jù)包。第一響應(yīng)數(shù)據(jù)包可包含與文件URL相對(duì)應(yīng)的文件播放信息。如上所述,實(shí)施例可提供一種將文件以容量單位分開傳送的串流技術(shù)。以下,將文件分割的各容量單位可稱為數(shù)據(jù)塊。根據(jù)一個(gè)實(shí)施例,將文件分割的數(shù)據(jù)塊大小可通過服務(wù)器120被設(shè)置。服務(wù)器120可根據(jù)將文件分割的數(shù)據(jù)塊大小,來計(jì)算分割文件時(shí)所需的數(shù)據(jù)塊個(gè)數(shù)。在這種情況下,第一響應(yīng)數(shù)據(jù)包的播放信息可包含數(shù)據(jù)塊大小和數(shù)據(jù)塊個(gè)數(shù)?;蚴?,服務(wù)器120可將數(shù)據(jù)塊大小和文件總?cè)萘堪诘谝豁憫?yīng)數(shù)據(jù)包中。在這種情況下,客戶端110可基于數(shù)據(jù)塊大小和文件總?cè)萘浚瑏碛?jì)算分割文件時(shí)所需的數(shù)據(jù)塊個(gè)數(shù)。根據(jù)另一個(gè)實(shí)施例,將文件分割的數(shù)據(jù)塊大小可通過客戶端120被設(shè)置??蛻舳?20可將數(shù)據(jù)塊大小包含在第一媒介參數(shù)中并傳送至服務(wù)器120。服務(wù)器120基于接收的數(shù)據(jù)塊大小,來計(jì)算分割文件時(shí)所需的數(shù)據(jù)塊個(gè)數(shù)。在這種情況下,第一響應(yīng)數(shù)據(jù)包的播放信息可包含數(shù)據(jù)塊個(gè)數(shù)。此外,服務(wù)器120可將文件總?cè)萘堪诘谝豁憫?yīng)數(shù)據(jù)包中。在這種情況下,由于客戶端110已經(jīng)獲知數(shù)據(jù)塊大小,因此可根據(jù)文件總?cè)萘?,?jì)算分割文件時(shí)所需的數(shù)據(jù)塊個(gè)數(shù)??蛻舳?10將第二請(qǐng)求數(shù)據(jù)包傳送至服務(wù)器120。第二請(qǐng)求數(shù)據(jù)包可包含指示文件URL和數(shù)據(jù)請(qǐng)求的第二媒介參數(shù)。指示數(shù)據(jù)請(qǐng)求的第二媒介參數(shù)可以是指示文件內(nèi)地址的數(shù)字或字符串,例如,可以是”地址r”或”地址1r地址2”等。以下,文件內(nèi)地址可以是字節(jié)地址??蛻舳?10將第二請(qǐng)求數(shù)據(jù)包傳送至服務(wù)器120,因此能夠以容量單位,請(qǐng)求與文件URL相對(duì)應(yīng)的文件的至少一部分客戶端110可從服務(wù)器120接收第二響應(yīng)數(shù)據(jù)包。第二響應(yīng)數(shù)據(jù)包可包含于文件URL相對(duì)應(yīng)的文件內(nèi)第二媒介參數(shù)所對(duì)應(yīng)的地址范圍的數(shù)據(jù)。客戶端110可將第二響應(yīng)數(shù)據(jù)包的數(shù)據(jù)輸入到緩沖區(qū)。以下,對(duì)此進(jìn)行詳細(xì)說明,但輸入至緩沖區(qū)的數(shù)據(jù)可通過多路分配器和/或解碼器被播放。圖2至圖7是說明根據(jù)一個(gè)實(shí)施例的服務(wù)器操作方法的示圖。參照?qǐng)D2,根據(jù)一個(gè)實(shí)施例的服務(wù)器220可從客戶端210接收請(qǐng)求數(shù)據(jù)包。請(qǐng)求數(shù)據(jù)包可包含文件URL和媒介參數(shù)。文件URL作為將電腦網(wǎng)絡(luò)上的資源固有地進(jìn)行指示的信息,例如可以是指示存儲(chǔ)在服務(wù)器220中的文件的信息。服務(wù)器220可判斷媒介參數(shù)是指示數(shù)據(jù)請(qǐng)求,還是指示播放信息請(qǐng)求。例如,服務(wù)器220可判斷請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)是指示播放信息請(qǐng)求的第一媒介參數(shù),還是指示數(shù)據(jù)請(qǐng)求的第二媒介參數(shù)。指示播放信息請(qǐng)求的第一媒介參數(shù)和指示數(shù)據(jù)請(qǐng)求的第二媒介參數(shù)可被預(yù)先設(shè)置,且服務(wù)器220和客戶210可共享預(yù)設(shè)的第一媒介參數(shù)和第二媒介參數(shù)。當(dāng)媒介參數(shù)指示播放信息請(qǐng)求時(shí),服務(wù)器220可響應(yīng)文件的播放信息。作為示例,參照?qǐng)D3,服務(wù)器320可從客戶端310接收含有文件1URL和第一指示符的請(qǐng)求數(shù)據(jù)包。在此,第一指示符可以是預(yù)設(shè)的文字或字符串,例如可以是'r'。在請(qǐng)求數(shù)據(jù)包中,文件1URL和第一指示符可通過預(yù)設(shè)的符號(hào)被區(qū)分,例如'?'。服務(wù)器320可判斷請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)是否含有第一指示符。請(qǐng)求數(shù)據(jù)包中包含的媒介參數(shù)含有第一指示符時(shí),服務(wù)器320可響應(yīng)將對(duì)應(yīng)于文件URL的第一文件分割的數(shù)據(jù)塊大小(chunk大小)、數(shù)據(jù)塊個(gè)數(shù)(chunk個(gè)數(shù))、以及文件列表。文件列表可包含第一文件分辨率,和存儲(chǔ)與第一文件的內(nèi)容的第一分辨率不同的其他分辨率的內(nèi)容的至少一個(gè)文件URL和分辨率。例如,文件列表可包含:第一文件的內(nèi)容的第一分辨率(文件1分辨率)、存儲(chǔ)與第一分辨率不同的其他第二分辨率的內(nèi)容的第二文件URL(文件2URL)、以及第二分辨率(文件2分辨率)。存儲(chǔ)與第一分辨率不同的其他分辨率的內(nèi)容的文件為多個(gè)時(shí),文件列表可包含多個(gè)文件的URL和分辨率。分辨率320可在與文件1URL對(duì)應(yīng)的第一文件被存儲(chǔ)的目錄內(nèi),檢索存儲(chǔ)與第一分辨率不同的其他分辨率的內(nèi)容的至少一個(gè)文件。例如,第一文件被存儲(chǔ)的目錄中存儲(chǔ)有類似表1的文件,且第一文件為'音樂視頻.mp4'時(shí),服務(wù)器320可檢索到'音樂視頻_720p.mp4'、'音樂視頻_480p.mp4'、'音樂視頻_360p.mp4'。[表1]音樂視頻.mp4音樂視頻_720p.mp4音樂視頻_480p.mp4音樂視頻_360p.mp4在這種情況下,服務(wù)器320可生成類似表2的響應(yīng)數(shù)據(jù)包,并將響應(yīng)數(shù)據(jù)包傳送至客戶端310。[表2]2097152971080URL2720URL3480URL4360在此,響應(yīng)數(shù)據(jù)包的第一元素為數(shù)據(jù)塊大小,且第二元素為數(shù)據(jù)塊個(gè)數(shù),且第三元素為文件1分辨率,第四元素為文件2URL,且第五元素為文件2分辨率,第六元素為文件3URL,第七元素為文件3分辨率,第八元素為文件4URL,且第九元素為文件4分辨率。數(shù)據(jù)塊大小可以是字節(jié)單位。根據(jù)情況,為了具有統(tǒng)一性的資料結(jié)構(gòu),文件列表可包含與相同內(nèi)容對(duì)應(yīng)的所有文件的URL和分辨率。例如,文件列表可包含存儲(chǔ)第一文件的URL、第一文件的分辨率、以及與第一文件的分辨率不同的其他分辨率的內(nèi)容的至少一個(gè)文件的URL和分辨率。在這種情況下,服務(wù)器320可生成類似表3的響應(yīng)數(shù)據(jù)包,并將響應(yīng)數(shù)據(jù)包傳送至客戶端310。[表3]209715297URL11080aURL2720URL3480URL4360在此,響應(yīng)數(shù)據(jù)包的第一元素為數(shù)據(jù)塊大小,且第二元素為數(shù)據(jù)塊個(gè)數(shù),且第三元素為文件1URL,第四元素為文件1分辨率,且第五元素為文件2URL,第六元素為文件2分辨率,第七元素為文件3URL,第八元素為文件3分辨率,且第九元素為文件4URL,且第時(shí)。數(shù)據(jù)塊大小可以是字節(jié)單位。為了顯示出當(dāng)前請(qǐng)求的文件(第一文件)的分辨率為1080(文件1分辨率),文件1分辨率的結(jié)尾可添加預(yù)設(shè)的文字或字符串,例如可添加'a'。各文件可在文件名中包含分辨率。例如,當(dāng)原始視頻文件'音樂視頻.mp4'被上傳結(jié)束時(shí),服務(wù)器320可將'音樂視頻.mp4'以新的分辨率編碼。在這種情況下,服務(wù)器320可在原始視頻文件的文件名中附加新的分辨率,從而決定新分辨率的文件名。在這種情況下,服務(wù)器320可基于文件名,獲取(obtain)相關(guān)文件中所存儲(chǔ)的內(nèi)容的分辨率。根據(jù)另一實(shí)施例,參照?qǐng)D4,服務(wù)器420可從客戶端410接收含有文件URL和第二指示符的請(qǐng)求數(shù)據(jù)包。在此,第二指示符可以是預(yù)設(shè)的文字或字符串,例如'i'。在請(qǐng)求數(shù)據(jù)包中,文件URL和第二指示符可通過預(yù)設(shè)的符號(hào)被區(qū)分,例如'?'。服務(wù)器420可判斷請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)是否含有第二指示符。當(dāng)請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)含有第二指示符時(shí),服務(wù)器420可響應(yīng)將對(duì)應(yīng)于文件URL的文件分割的數(shù)據(jù)塊大小(chunk大小),以及數(shù)據(jù)塊個(gè)數(shù)(chunk個(gè)數(shù))。例如,請(qǐng)求數(shù)據(jù)包為”文件3URL?i”時(shí),服務(wù)器420可生成類似表4的響應(yīng)數(shù)據(jù)包,并將響應(yīng)數(shù)據(jù)包傳送至客戶端410。[表4]104857686在此,響應(yīng)數(shù)據(jù)包的第一元素為數(shù)據(jù)塊大小,且第二元素為數(shù)據(jù)塊個(gè)數(shù)。數(shù)據(jù)塊大小可以是字節(jié)單位。參照表1,將各文件分割的數(shù)據(jù)塊大小可互相不同地被設(shè)置。但是實(shí)施例并不局限于將各文件分割的數(shù)據(jù)塊大小互相不同地被設(shè)置。例如,將各文件分割的數(shù)據(jù)塊大小也可彼此相同地被設(shè)置。重新參照?qǐng)D2,當(dāng)媒介參數(shù)指示數(shù)據(jù)請(qǐng)求時(shí),服務(wù)器220可響應(yīng)與文件URL相對(duì)應(yīng)的文件內(nèi)媒介參數(shù)所對(duì)應(yīng)的地址范圍的數(shù)據(jù)。作為示例,參照?qǐng)D5,服務(wù)器520可從客戶端510接收含有文件URL和索引的請(qǐng)求數(shù)據(jù)包。在此,索引可以是0以上的整數(shù)。請(qǐng)求數(shù)據(jù)包內(nèi)文件URL和索引可通過預(yù)設(shè)的符號(hào)被區(qū)分,例如'?'。服務(wù)器520可判斷請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)是否含有索引。當(dāng)請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)含有索引時(shí),服務(wù)器520可響應(yīng)與文件URL相對(duì)應(yīng)的文件內(nèi)索引所對(duì)應(yīng)的地址范圍的數(shù)據(jù)。例如,請(qǐng)求數(shù)據(jù)包為'文件URL?n'時(shí),服務(wù)器520可獲取將對(duì)應(yīng)于文件URL的文件分割的數(shù)據(jù)塊大小。當(dāng)文件的數(shù)據(jù)塊大小為2097152字節(jié)時(shí),服務(wù)器520可將該數(shù)據(jù)傳送至客戶端510。表5的數(shù)據(jù)可稱為chunk-n。[表5][(2097152)*n,(2097152)*(n+1)-1]在此,[第一字節(jié)地址,第二字節(jié)地址]是從第一字節(jié)地址到第二字節(jié)地址的數(shù)據(jù)。作為另一示例,含有文件URL和索引的請(qǐng)求數(shù)據(jù)包可包含數(shù)據(jù)頭(header)。數(shù)據(jù)頭可包含地址范圍參數(shù)。數(shù)據(jù)頭可以是http數(shù)據(jù)頭。服務(wù)器520可利用請(qǐng)求數(shù)據(jù)包的數(shù)據(jù)頭中含有地址范圍參數(shù),將對(duì)應(yīng)于索引的數(shù)據(jù)塊的一部分?jǐn)?shù)據(jù)傳送至客戶端510。例如,請(qǐng)求數(shù)據(jù)包中包含的文件URL所對(duì)應(yīng)的文件的數(shù)據(jù)塊大小為2097152字節(jié),且請(qǐng)求數(shù)據(jù)包中含有的索引為n,且請(qǐng)求數(shù)據(jù)包的地址范圍參數(shù)為(startrange,endrange)時(shí),服務(wù)器520可將類似表6的數(shù)據(jù)傳送至客戶端510。[表6][(2097152)*n+startrange,(2097152)*n+endrange]在此,startrange和endrange的單位可以是字節(jié)。服務(wù)器520可包含緩存服務(wù)器。緩存服務(wù)器可基于文件URL和索引將數(shù)據(jù)塊數(shù)據(jù)緩存。在這種情況下,就算請(qǐng)求數(shù)據(jù)包的數(shù)據(jù)頭中包含的地址范圍參數(shù)互不相同,請(qǐng)求數(shù)據(jù)包中包含的文件URL和索引相同時(shí),可利用緩存服務(wù)器中被緩存的數(shù)據(jù)塊數(shù)據(jù)。作為又另一示例,參照?qǐng)D6,服務(wù)器620可從客戶端610接收含有文件URL和地址的請(qǐng)求數(shù)據(jù)包。在此,地址可以是字節(jié)地址。請(qǐng)求數(shù)據(jù)包內(nèi)文件URL和地址可通過預(yù)設(shè)的符號(hào)被區(qū)分,例如'?'。為了區(qū)別地址和索引,地址后可添加預(yù)設(shè)的文字或字符串,例如'r'。服務(wù)器620可判斷請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)是否含有地址。當(dāng)請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)含有地址時(shí),服務(wù)器620可響應(yīng)與文件URL相對(duì)應(yīng)的文件內(nèi)地址所對(duì)應(yīng)的地址范圍的數(shù)據(jù)。例如,請(qǐng)求數(shù)據(jù)包為'文件URL?地址r'時(shí),服務(wù)器620可將類似表7的數(shù)據(jù)傳送至客戶端610。[表7][地址,文件終止]此外,[地址,文件終止]是從地址到文件終止的數(shù)據(jù)。作為又另一示例,參照?qǐng)D7,服務(wù)器720可從客戶端710接收含有文件URL和多個(gè)地址的請(qǐng)求數(shù)據(jù)包,例如第一地址和第二地址。在此,多個(gè)地址可分別是字節(jié)地址。請(qǐng)求數(shù)據(jù)包內(nèi)文件URL和多個(gè)地址可通過預(yù)設(shè)的符號(hào)被區(qū)分,例如'?'。此外,為了區(qū)別多個(gè)地址,多個(gè)地址之間可添加預(yù)設(shè)的文字或字符串可,例如'r'。服務(wù)器720可判斷請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)是否含有多個(gè)地址。當(dāng)請(qǐng)求數(shù)據(jù)包中的媒介參數(shù)含有多個(gè)地址時(shí),服務(wù)器720可響應(yīng)與文件URL相對(duì)應(yīng)的文件內(nèi)多個(gè)地址所對(duì)應(yīng)的地址范圍的數(shù)據(jù)。此外,請(qǐng)求數(shù)據(jù)包為'文件URL?地址1r地址2'時(shí),服務(wù)器720可將類似表8的數(shù)據(jù)傳送至客戶端710。[表8][地址1,地址2]在此,[地址1,地址2]是從第一地址到第二地址的數(shù)據(jù)。圖8是說明根據(jù)一個(gè)實(shí)施例的客戶端的基本操作的示圖。參照?qǐng)D8,根據(jù)實(shí)施例的客戶端810通過串流服務(wù)可獲取將播放的第一文件的URL,例如'文件1URL'??蛻舳?10可將請(qǐng)求第一文件的最初數(shù)據(jù)塊的請(qǐng)求數(shù)據(jù)包傳送至服務(wù)器820,例如'文件1URL?0'。此外,客戶端810可將請(qǐng)求第一文件的播放信息的請(qǐng)求數(shù)據(jù)包傳送至服務(wù)器820,例如,'文件1URL?r'??蛻舳?10可從服務(wù)器820接收含有第一文件的播放信息的響應(yīng)數(shù)據(jù)包。例如,第一文件的播放信息可含有數(shù)據(jù)塊大小、數(shù)據(jù)塊個(gè)數(shù)、以及文件列表。文件列表可包含文件1分辨率、文件2URL、以及文件2分辨率等。客戶端810可從響應(yīng)數(shù)據(jù)包提取第一文件的播放信息??蛻舳?10可從服務(wù)器820接收含有第一文件的最初數(shù)據(jù)塊例如'chunk-0'的響應(yīng)數(shù)據(jù)包。客戶端810可播放'chunk-0'。例如,客戶端810可將響應(yīng)數(shù)據(jù)包中的'chunk-0'輸入至緩沖區(qū)。緩沖區(qū)中輸入的數(shù)據(jù)可通過多路分配器和/或解碼器被播放??蛻舳?10可檢查緩沖區(qū)的殘余量。例如,可判斷緩沖區(qū)的殘余量是否為預(yù)設(shè)的閾值。預(yù)設(shè)的閾值可以是字節(jié)單位或時(shí)間單位。當(dāng)預(yù)設(shè)的閾值為時(shí)間單位時(shí),可基于播放中的內(nèi)容的分辨率將時(shí)間單位閾值換算成字節(jié)單位閾值。緩沖區(qū)的殘余量為預(yù)設(shè)的閾值以下時(shí),客戶端810可將請(qǐng)求第一文件的下一數(shù)據(jù)塊的請(qǐng)求數(shù)據(jù)包傳送至服務(wù)器820。例如,客戶端810可在當(dāng)前播放的數(shù)據(jù)塊的索引中添加1,因此可算出下一數(shù)據(jù)塊的索引。當(dāng)前播放的數(shù)據(jù)塊的索引為0時(shí),客戶端810可將'文件1URL?1'傳送至服務(wù)器820??蛻舳?10可從服務(wù)器820接收含有下一數(shù)據(jù)塊例如'chunk-1'的響應(yīng)數(shù)據(jù)包??蛻舳?10可播放'chunk-1'。例如,客戶端810可將響應(yīng)數(shù)據(jù)包中包含的'chunk-1'輸入至緩沖區(qū)。緩沖區(qū)中輸入的數(shù)據(jù)可通過多路分配器和/或解碼器被播放。圖9至圖11是說明根據(jù)一個(gè)實(shí)施例的獲取關(guān)鍵幀信息操作的示圖。根據(jù)一個(gè)實(shí)施例的客戶端,可獲取經(jīng)串流服務(wù)播放的第一文件的關(guān)鍵幀信息。第一文件中存儲(chǔ)的內(nèi)容由多個(gè)幀構(gòu)成。多個(gè)幀可被分類成完全容納畫面信息的幀和參照其他幀的幀。完全容納畫面信息的幀可稱為關(guān)鍵幀。參照其他幀的幀由于沒有完全容納該幀的畫面信息,因此,相比關(guān)鍵幀,具有較小的容量。第一文件的關(guān)鍵幀信息可包含有關(guān)構(gòu)成第一文件中存儲(chǔ)的內(nèi)容的多個(gè)幀中關(guān)鍵幀的信息。例如,關(guān)鍵幀信息可包含關(guān)鍵幀各自的索引、字節(jié)地址、和時(shí)間步驟等。作為一個(gè)示例,第一文件可存儲(chǔ)關(guān)鍵幀信息。例如,當(dāng)?shù)谝晃募哂衜p4文件格式時(shí),第一文件可存儲(chǔ)關(guān)鍵幀信息。在這種情況下,客戶端可從服務(wù)器接收到存儲(chǔ)有關(guān)鍵幀的地址范圍數(shù)據(jù),因此可獲取關(guān)鍵幀信息。更具體地,參照?qǐng)D9,客戶端910可將請(qǐng)求第一文件的最初數(shù)據(jù)塊的請(qǐng)求數(shù)據(jù)包,例如'文件1URL?0'傳送至服務(wù)器920。客戶端910可從服務(wù)器920接收含有第一文件的最初數(shù)據(jù)塊,例如'chunk-0'的響應(yīng)數(shù)據(jù)包。客戶端910可從第一文件的最初數(shù)據(jù)塊提取關(guān)鍵幀信息的偏移地址??蛻舳?10可判斷偏移地址是否被包含在最初數(shù)據(jù)塊的地址范圍內(nèi),因此,可判斷偏移地址的數(shù)據(jù)是否包含在最初數(shù)據(jù)塊中。當(dāng)偏移地址包含在最初數(shù)據(jù)塊的地址范圍內(nèi)時(shí),客戶端910可從已經(jīng)接收的最初數(shù)據(jù)塊中獲取關(guān)鍵幀信息。當(dāng)偏移地址不包含在最初數(shù)據(jù)塊的地址范圍內(nèi)時(shí),客戶端910可將請(qǐng)求偏移地址之后的數(shù)據(jù)的請(qǐng)求數(shù)據(jù)包,例如'文件1URL?偏移地址r'傳送至服務(wù)器920。客戶端910可接收含有偏移地址之后的數(shù)據(jù),例如[偏移地址,文件1終止]的響應(yīng)數(shù)據(jù)包??蛻舳?10可從響應(yīng)數(shù)據(jù)包提取關(guān)鍵幀信息。作為另一示例,第一文件可以不存儲(chǔ)關(guān)鍵幀信息。例如,第一文件具有flv文件格式時(shí),第一文件可以不存儲(chǔ)關(guān)鍵幀信息。在這種情況下,客戶端可在播放第一文件的時(shí)候生成關(guān)鍵幀信息。更具體地,參照?qǐng)D10,客戶端1010可將請(qǐng)求第一文件的最初數(shù)據(jù)塊的數(shù)據(jù)包,例如'文件1URL?0'傳送至服務(wù)器1020。客戶端1010可從服務(wù)器1020接收含有第一文件的最初數(shù)據(jù)塊,例如'chunk-0'的響應(yīng)數(shù)據(jù)包??蛻舳?010可播放'chunk-0'。例如,客戶端1010可將響應(yīng)數(shù)據(jù)包內(nèi)包含的'chunk-0'輸入至緩沖區(qū)。緩沖區(qū)中輸入的數(shù)據(jù)可通過多路分配器和/或解碼器被播放??蛻舳?010可在chunk-0被播放時(shí)提取chunk-0中包含的關(guān)鍵幀??蛻舳?010可基于提取的關(guān)鍵幀來生成用于第一文件的關(guān)鍵幀信息。例如,參照?qǐng)D11,客戶端1010可生成含有關(guān)鍵幀信息的檢索表1100。雖然附圖中沒有示出,但客戶端1010除了最初數(shù)據(jù)塊以外,還可在其他數(shù)據(jù)塊被播放的時(shí)候生成關(guān)鍵幀信息。例如,客戶端1010可在第一文件中存儲(chǔ)的內(nèi)容被播放期間,持續(xù)地更新檢索表1100。圖12至圖14是說明根據(jù)一個(gè)實(shí)施例的分辨率更改操作的示圖。參照?qǐng)D12,根據(jù)一個(gè)實(shí)施例的1210可獲取經(jīng)串流服務(wù)將播放的第一文件的URL,例如'文件URL'。客戶端1210可將請(qǐng)求第一文件的最初數(shù)據(jù)塊的數(shù)據(jù)包,例如'文件1URL?0'傳送至服務(wù)器1220。此外,客戶端1210可將請(qǐng)求第一文件的播放信息的請(qǐng)求數(shù)據(jù)包,例如'文件1URL?r'傳送至服務(wù)器1220。客戶端1210可從服務(wù)器1220接收含有第一文件的播放信息的響應(yīng)數(shù)據(jù)包。例如,第一文件的播放信息可包含數(shù)據(jù)塊大小、數(shù)據(jù)塊個(gè)數(shù)、文件列表等。文件列表可包含文件1分辨率、文件2URL、和文件2分辨率??蛻舳?10可從響應(yīng)數(shù)據(jù)包提取第一文件的播放信息??蛻舳?210可從服務(wù)器1220接收含有第一文件的最初數(shù)據(jù)塊,例如'文件1chunk-0'的響應(yīng)數(shù)據(jù)包。客戶端1210可播放'文件1chunk-0'。例如,客戶端810可將響應(yīng)數(shù)據(jù)包中含有的'文件1chunk-0'輸入至緩沖區(qū)中。緩沖區(qū)中輸入的數(shù)據(jù)可通過多路分配器和/或解碼器被播放??蛻舳?210可接收分辨率更改輸入。例如,客戶端1210可通過預(yù)設(shè)的界面,向用戶提供當(dāng)前播放的內(nèi)容的分辨率和/或可更改的分辨率??蛻舳?210可通過界面接收分辨率更改輸入。根據(jù)情況,客戶端1210可自動(dòng)地決定分辨率更改與否。例如,客戶端1210可基于通信狀態(tài)、緩沖與否、通信費(fèi)用等,來自動(dòng)地決定分辨率更改與否。以下,對(duì)從第一分辨率更改成第二分辨率的實(shí)施例進(jìn)行說明??蛻舳?210可將請(qǐng)求對(duì)應(yīng)于第二分辨率的第二文件的播放信息的請(qǐng)求數(shù)據(jù)包,例如'文件2URL?i'傳送至服務(wù)器1220。由于客戶端1210已經(jīng)具有分辨率列表,因此可利用第二指示符,例如'i',來請(qǐng)求第二文件的播放信息。客戶端1210可從服務(wù)器1220接收含有第二文件的播放信息的響應(yīng)數(shù)據(jù)包。例如,第二文件的播放信息可包含數(shù)據(jù)塊大小和數(shù)據(jù)塊個(gè)數(shù)??蛻舳?210可將請(qǐng)求第二文件的最初數(shù)據(jù)塊的請(qǐng)求數(shù)據(jù)包,例如'文件2URL?0'傳送至服務(wù)器1220??蛻舳?210可從服務(wù)器1220接收含有第二文件的最初數(shù)據(jù)塊,例如'文件2chunk-0'的響應(yīng)數(shù)據(jù)包。雖然附圖中沒有示出,但客戶端1210可獲取第二文件的關(guān)鍵幀信息。例如,客戶端1210可基于圖9中所述的實(shí)施例來獲取第二文件的關(guān)鍵幀信息??蛻舳?210可基于第二文件的關(guān)鍵幀信息,來檢測出對(duì)應(yīng)于當(dāng)前時(shí)間的關(guān)鍵幀。作為示例,客戶端1210可檢測出當(dāng)前播放時(shí)間之后,與預(yù)設(shè)時(shí)間例如1秒之后的幀最相鄰的關(guān)鍵幀。作為其他示例,客戶端1210可基于第一文件的緩沖區(qū)信息,檢測出對(duì)應(yīng)于當(dāng)前播放時(shí)間的關(guān)鍵幀。又另一示例,客戶端1210可檢測出與當(dāng)前緩沖區(qū)中輸入的量之后的時(shí)間相當(dāng)?shù)年P(guān)鍵幀??蛻舳?210可將請(qǐng)求檢測的關(guān)鍵幀地址之后的數(shù)據(jù)的請(qǐng)求數(shù)據(jù)包,例如'文件2URL?關(guān)鍵幀地址r相應(yīng)數(shù)據(jù)塊終止地址'傳送至服務(wù)器1220。'相應(yīng)數(shù)據(jù)塊終止地址'作為檢測的關(guān)鍵幀所屬的數(shù)據(jù)塊終止地址,客戶端1210可利用第二文件的播放信息,來算出檢測的關(guān)鍵幀所屬的數(shù)據(jù)塊終止地址。雖然附圖中沒有示出,但客戶端1210可將請(qǐng)求檢測的關(guān)鍵幀所屬的數(shù)據(jù)塊的請(qǐng)求數(shù)據(jù)包,例如'文件2URL?相應(yīng)數(shù)據(jù)塊索引'傳送至服務(wù)器1220,同時(shí),利用請(qǐng)求數(shù)據(jù)包的數(shù)據(jù)頭中含有的地址范圍參數(shù),來請(qǐng)求[關(guān)鍵幀地址,相應(yīng)數(shù)據(jù)塊終止]的數(shù)據(jù)。根據(jù)另一實(shí)施例,由于客戶端1210將'文件2URL?關(guān)鍵幀地址r'傳送至服務(wù)器,因此可請(qǐng)求[關(guān)鍵幀地址,文件終止]的數(shù)據(jù)??蛻舳?210可接收含有關(guān)鍵幀地址之后的數(shù)據(jù),例如[關(guān)鍵幀地址,相應(yīng)數(shù)據(jù)塊終止地址]的響應(yīng)數(shù)據(jù)包??蛻舳?210可將關(guān)鍵幀地址之后的數(shù)據(jù)輸入至緩沖區(qū),因此,可播放具有新的分辨率的第二文件。參照?qǐng)D13,根據(jù)另一實(shí)施例的客戶端1310可在第一文件播放時(shí)接收分辨率更改輸入。例如,客戶端1310可通過預(yù)設(shè)的界面,向用戶提供當(dāng)前播放的內(nèi)容的分辨率和/或可更改的分辨率。客戶端1310通過界面可接收分辨率更改輸入。根據(jù)情況,客戶端1310可自動(dòng)地決定分辨率更改與否。例如,客戶1310可基于通信狀態(tài)、緩沖與否、通信費(fèi)用等,來自動(dòng)地決定分辨率更改與否。以下,對(duì)從第一分辨率更改成第二分辨率的實(shí)施例進(jìn)行說明??蛻舳?310可將請(qǐng)求第二文件的播放信息的請(qǐng)求數(shù)據(jù)包,例如'文件2URL?i'傳送至服務(wù)器1320。由于客戶端1310已經(jīng)具有分辨率列表,因此可利用第二指示符,例如'i',來請(qǐng)求第二文件的播放信息??蛻舳?310可從服務(wù)器1320接收含有第二文件的播放信息的響應(yīng)數(shù)據(jù)包。例如,第二文件的播放信息可包含數(shù)據(jù)塊大小和數(shù)據(jù)塊個(gè)數(shù)。客戶端1310可將請(qǐng)求第二文件的最初數(shù)據(jù)塊的請(qǐng)求數(shù)據(jù)包,例如'文件2URL?0'傳送至服務(wù)器1320??蛻舳?310可從服務(wù)器1320接收含有第二文件的最初數(shù)據(jù)塊,例如'文件2chunk-0'的響應(yīng)數(shù)據(jù)包。在這種情況下,第二文件可以不存儲(chǔ)關(guān)鍵幀信息。這種情況下,客戶端1310可基于當(dāng)前播放時(shí)間和整個(gè)播放時(shí)間,來估計(jì)第二文件中對(duì)應(yīng)于當(dāng)前播放時(shí)間的數(shù)據(jù)塊。例如,客戶端1310可利用當(dāng)前播放時(shí)間對(duì)整個(gè)播放時(shí)間的比,來估計(jì)第二文件中對(duì)應(yīng)于當(dāng)前播放時(shí)間的數(shù)據(jù)塊??蛻舳?310可將請(qǐng)求估計(jì)的數(shù)據(jù)塊數(shù)據(jù)的請(qǐng)求數(shù)據(jù)包,例如'文件2URL?m'傳送至服務(wù)器1320。在此,'m'是估計(jì)的數(shù)據(jù)塊的索引??蛻舳?310可接收含有估計(jì)的數(shù)據(jù)塊數(shù)據(jù),例如'文件2chunk-m'的響應(yīng)數(shù)據(jù)包??蛻舳?310可利用估計(jì)的數(shù)據(jù)塊數(shù)據(jù)來判斷是否估計(jì)成功。例如,客戶端1310可在估計(jì)的數(shù)據(jù)塊內(nèi)比較第一幀的時(shí)間和當(dāng)前播放時(shí)間,來判斷是否估計(jì)成功。當(dāng)判斷為估計(jì)失敗時(shí),客戶端1310可估計(jì)新的數(shù)據(jù)塊。當(dāng)判斷為估計(jì)成功時(shí),可在估計(jì)的數(shù)據(jù)塊內(nèi)提取關(guān)鍵幀??蛻舳?310可檢測出與當(dāng)前播放時(shí)間最相鄰的關(guān)鍵幀??蛻舳?310可將檢測的關(guān)鍵幀之后的數(shù)據(jù)輸入至緩沖區(qū)。參照?qǐng)D14,根據(jù)一個(gè)實(shí)施例的客戶端1410可利用多樣化的比特率從服務(wù)器1420接收數(shù)據(jù)塊。如上所述,根據(jù)實(shí)施例,數(shù)據(jù)塊不需要從關(guān)鍵幀開始,且進(jìn)一步,數(shù)據(jù)塊可以不包含關(guān)鍵幀。據(jù)此,服務(wù)器1420無須按照數(shù)據(jù)塊進(jìn)行編碼,服務(wù)器1420可將mp4、flv等一般的視頻文件以容量單位分開傳送。服務(wù)器1420和客戶端1410之間被傳送的數(shù)據(jù)塊不需要從關(guān)鍵幀開始或包含關(guān)鍵幀,因此,實(shí)施例不僅支持GOP(closedGOP),還可支持GOP(OpenGOP)??蛻舳?410可預(yù)先下載相當(dāng)于緩沖區(qū)大小的數(shù)據(jù)塊。由于客戶端1410存儲(chǔ)播放的數(shù)據(jù)塊,因此,在重新播放存儲(chǔ)的數(shù)據(jù)塊中所屬的幀時(shí),可重復(fù)該數(shù)據(jù)塊而無須進(jìn)行下載。圖15至圖17是說明根據(jù)一個(gè)實(shí)施例的檢索操作的示圖。檢索動(dòng)作是隨機(jī)存取內(nèi)容的動(dòng)作。參照?qǐng)D15,根據(jù)一個(gè)實(shí)施例的客戶端1510可將請(qǐng)求第一文件的第n個(gè)數(shù)據(jù)塊的請(qǐng)求數(shù)據(jù)包,例如'文件1URL?n'傳送至服務(wù)器1520??蛻舳?510可從服務(wù)器1510接收含有第一文件的第n個(gè)數(shù)據(jù)塊,例如'chunk-n'的響應(yīng)數(shù)據(jù)包??蛻舳?510可將'chunk-n'輸入至緩沖區(qū)。緩沖區(qū)中輸入的數(shù)據(jù)可通過多路分配器和/或解碼器被播放。客戶端1510可在'chunk-n'被播放時(shí)接收檢索輸入。例如,客戶端1510可通過預(yù)設(shè)的界面來接收檢索輸入。檢索輸入可包含檢索時(shí)間??蛻舳?510可基于第一文件的關(guān)鍵幀信息檢測出對(duì)應(yīng)于檢索時(shí)間的關(guān)鍵幀。例如,客戶端1510可檢測出與檢測時(shí)間的關(guān)鍵幀最相鄰的關(guān)鍵幀??蛻舳?510可將請(qǐng)求檢測的關(guān)鍵幀的地址之后的數(shù)據(jù)的請(qǐng)求數(shù)據(jù)包,例如'文件1URL?關(guān)鍵幀地址r相應(yīng)數(shù)據(jù)塊終止地址'傳送至服務(wù)器1520??蛻舳?510利用第一文件的播放信息可算出檢測的關(guān)鍵幀所屬的數(shù)據(jù)塊終止地址。雖然在附圖中沒有被示出,但客戶端1510可將請(qǐng)求檢測的關(guān)鍵幀所屬的數(shù)據(jù)塊的請(qǐng)求數(shù)據(jù)包,例如'文件1URL?相應(yīng)數(shù)據(jù)塊索引'傳送至服務(wù)器1520,同時(shí)可利用請(qǐng)求數(shù)據(jù)包的數(shù)據(jù)頭中包含的地址范圍參數(shù),來請(qǐng)求[關(guān)鍵幀地址,相應(yīng)數(shù)據(jù)塊終止]的數(shù)據(jù)??蛻舳?510可接收含有關(guān)鍵幀地址之后的數(shù)據(jù),例如[關(guān)鍵幀地址,相應(yīng)數(shù)據(jù)塊終止地址]的響應(yīng)數(shù)據(jù)包。由于客戶端1510將關(guān)鍵幀地址之后的數(shù)據(jù)輸入至緩沖區(qū),因此可檢索并播放第一文件。參照?qǐng)D16,根據(jù)另一實(shí)施例的客戶端1610可將'文件1URL?n'傳送至服務(wù)器1620。客戶端1610可從服務(wù)器1620從服務(wù)器接收含有'chunk-n'的響應(yīng)數(shù)據(jù)包。客戶端1610可播放'chunk-n'??蛻舳?610可在'chunk-n'被播放的時(shí)候接收檢索輸入??蛻舳?610可基于第一文件的關(guān)鍵幀信息來檢測出對(duì)應(yīng)于檢索時(shí)間的關(guān)鍵幀。例如,客戶端1610可檢測出與檢索時(shí)間最相鄰的關(guān)鍵幀??蛻舳?610可將請(qǐng)求檢測的關(guān)鍵幀所屬的數(shù)據(jù)塊數(shù)據(jù)的請(qǐng)求數(shù)據(jù)包,例如'文件URL?k'傳送至服務(wù)器。在此,k是檢測的關(guān)鍵幀所屬的數(shù)據(jù)塊的索引??蛻舳?610可接收含有檢測的關(guān)鍵幀所屬的數(shù)據(jù)塊數(shù)據(jù),例如'文件1chunk-k'的響應(yīng)數(shù)據(jù)包。由于客戶端1610將關(guān)鍵幀地址之后的數(shù)據(jù)輸入至緩沖區(qū),因此,可檢索并播放第一文件。圖16的檢索動(dòng)作與圖15的檢索動(dòng)作相比,可增加緩存服務(wù)器的效率,且圖15的檢索動(dòng)作與圖16的檢索動(dòng)作相比,減少了實(shí)際傳送的數(shù)據(jù)量。實(shí)施例可考慮緩存服務(wù)器的效率和實(shí)際傳送的數(shù)據(jù)量之間的權(quán)衡關(guān)系,根據(jù)圖15的檢索動(dòng)作和圖16的檢索動(dòng)作中的任意一個(gè)來進(jìn)行運(yùn)作。參照?qǐng)D17,根據(jù)又另一實(shí)施例的客戶端1710可在播放'chunk-n'時(shí)接收檢索輸入。檢索輸入可包含檢索時(shí)間。當(dāng)前播放的第一文件可以不存儲(chǔ)關(guān)鍵幀信息。在這種情況下,客戶端1710根據(jù)圖10和11說明的實(shí)施例可生成關(guān)鍵幀信息。但是,對(duì)應(yīng)于檢索時(shí)間的關(guān)鍵幀可能還沒有包含在關(guān)鍵幀信息中??蛻舳?710可基于當(dāng)前播放時(shí)間及整個(gè)播放時(shí)間,來估計(jì)第一文件的數(shù)據(jù)塊中對(duì)應(yīng)于當(dāng)前播放時(shí)間的數(shù)據(jù)塊。例如??蛻舳?710可利用當(dāng)前播放時(shí)間與整個(gè)播放時(shí)間的比,來估計(jì)第一文件中對(duì)應(yīng)于當(dāng)前播放時(shí)間的數(shù)據(jù)塊??蛻舳?710可將請(qǐng)求估計(jì)的數(shù)據(jù)塊數(shù)據(jù)的請(qǐng)求數(shù)據(jù)包,例如'文件1URL?m'傳送至服務(wù)器。在此,'m'是估計(jì)的數(shù)據(jù)塊的索引。客戶端1710可接收含有估計(jì)的數(shù)據(jù)塊數(shù)據(jù),例如'文件1chunk-m'的響應(yīng)數(shù)據(jù)包??蛻舳?710可利用估計(jì)的數(shù)據(jù)塊數(shù)據(jù),來判斷估計(jì)成功與否。例如,客戶端1710可比較估計(jì)的數(shù)據(jù)塊內(nèi)第一幀的時(shí)間和當(dāng)前播放時(shí)間,從而可判斷估計(jì)成功與否。當(dāng)判斷為估計(jì)失敗時(shí),客戶端1710可估計(jì)新的數(shù)據(jù)塊。當(dāng)判斷為估計(jì)成功時(shí),可在估計(jì)的數(shù)據(jù)塊內(nèi)提取關(guān)鍵幀??蛻舳?710可檢測與當(dāng)前播放時(shí)間最相鄰的關(guān)鍵幀??蛻舳?710可將檢測的關(guān)鍵幀之后的數(shù)據(jù)輸入至緩沖區(qū)。圖18和圖19是說明利用多個(gè)url串流的客戶端操作的示圖。參照?qǐng)D18,根據(jù)一個(gè)實(shí)施例的客戶端可利用多個(gè)url串流,執(zhí)行分辨率更改動(dòng)作和/或檢索動(dòng)作。以下,對(duì)客戶端利用兩個(gè)url串流的情況進(jìn)行說明。第一url串流和第二url串流可分別生產(chǎn)請(qǐng)求數(shù)據(jù)包,傳送至服務(wù)器,并可處理從服務(wù)器接收的響應(yīng)數(shù)據(jù)包。第一url串流的數(shù)據(jù)可通過第一多路分配器和第二解碼器被播放。第二url串流的數(shù)據(jù)可通過第二多路分配器和第二解碼器被生成。根據(jù)一個(gè)實(shí)施例,第一多路分配器和第二多路分配器可通過單一的裝置被體現(xiàn)。例如,第一多路分配器和第二多路分配器可以是利用相同的多路分配器裝置的兩個(gè)線程。此外,第一解碼器和第二解碼器也可通過單一的裝置被體現(xiàn)。例如,第一解碼器和第二解碼器可以是利用相同的解碼器裝置的兩個(gè)線程。雖然圖中沒有被示出,但根據(jù)另一實(shí)施例,當(dāng)視頻文件不包含B-幀時(shí),客戶端可利用一個(gè)多路分配器或一個(gè)解碼器,來執(zhí)行分辨率更改動(dòng)作和/或檢索動(dòng)作。B-幀可以是參照之后幀信息被壓縮的幀。例如,B-幀可以是參照之前幀信息及之后幀信息被壓縮的幀。當(dāng)?shù)谝晃募邪珺-幀時(shí),第一文件的緩沖區(qū)后緊隨第二文件的緩沖區(qū)時(shí),第一文件中包含的B-幀可能會(huì)參照第二文件而不是第一文件,從而發(fā)生錯(cuò)誤。相反,當(dāng)?shù)谝晃募胁话珺-幀時(shí),由于第一文件的緩沖區(qū)與第二文件的緩沖區(qū)并接,不需要區(qū)分解碼器中輸入的緩沖輸入行。由此,客戶端可利用一個(gè)解碼器來執(zhí)行分辨率更改動(dòng)作和/或檢索動(dòng)作??蛻舳丝稍谂袛嘁曨l文件中是否包含B-幀之后,選擇動(dòng)作模式??蛻舳丝衫每刂频谝欢嗦贩峙淦鞯男盘?hào)(EN_DEMUX_1)、控制第一解碼器的信號(hào)(EN_DECODER_1)、控制第二多路分配器的信號(hào)(EN_DEMUX_2)、控制第二解碼器的信號(hào)(EN_DECODER_2)、以及控制輸出多路復(fù)用器的信號(hào)(MUX_OUT)中的至少一個(gè),來控制第一url串流的數(shù)據(jù)和第二url串流的數(shù)據(jù)的數(shù)據(jù)流(dataflow)。作為示例,參照?qǐng)D19,串流服務(wù)開始時(shí)客戶端可利用第一url串流,從第一文件的最初數(shù)據(jù)塊開始按順序地進(jìn)行播放。在這種情況下,客戶端可利用第二url串流來接收第一文件的播放信息。分辨率更改輸入時(shí),客戶端可利用第一url串流播放第一文件,同時(shí)利用第二url串流,來檢測第二文件的關(guān)鍵幀中對(duì)應(yīng)于當(dāng)前時(shí)間的關(guān)鍵幀??蛻舳藶榱烁姆直媛剩稍跈z測的關(guān)鍵幀被播放的時(shí)點(diǎn),控制第一url串流的數(shù)據(jù)流和第二url串流的數(shù)據(jù)流。例如,客戶端可將第一url串流的數(shù)據(jù)流關(guān)閉,并將第二url串流的數(shù)據(jù)流打開。根據(jù)情況,客戶端可通過多路分配器和/或解碼器的延遲,來控制第一url串流的數(shù)據(jù)流和第二url串流的數(shù)據(jù)流在一定的時(shí)間,例如30ms期間一起切換為打開。之后,客戶端利用第二url串流播放檢測的關(guān)鍵幀之后的數(shù)據(jù)??蛻舳丝蓪⒂糜诘谝籾rl串流的緩沖區(qū)清除。雖然附圖中沒有被示出,但是當(dāng)附加的分辨率更改輸入被接收時(shí),客戶端可在上述的動(dòng)作中將第一url串流和第二url串流的作用互換,從而可處理附加的分辨率更改輸入。雖然在附圖中沒有被示出,作為另一示例,第一文件不包含B關(guān)鍵幀時(shí),當(dāng)分辨率更改輸入時(shí)客戶端可利用第一url串流來播放第一文件,同時(shí)利用第二url串流,來檢測出第二文件的關(guān)鍵幀中對(duì)應(yīng)于當(dāng)前緩沖量的關(guān)鍵幀。在此,當(dāng)前緩沖量可以是當(dāng)前緩沖區(qū)中輸入的第一文件的量。客戶端可檢測出與當(dāng)前緩沖量之后的時(shí)間相當(dāng)?shù)牡诙募年P(guān)鍵幀。當(dāng)?shù)谝晃募シ艜r(shí)出現(xiàn)第二文件的分辨率更改輸入的情況,客戶端可檢測出與解碼器的緩沖區(qū)中第一文件的量之后的播放時(shí)間相當(dāng)?shù)牡诙募年P(guān)鍵幀??蛻舳丝稍跈z測的第二文件的關(guān)鍵幀的播放時(shí)間之前,將第一文件的數(shù)據(jù)輸入至緩沖區(qū),且第二文件的關(guān)鍵幀之后將第二文件的數(shù)據(jù)輸入至相同的緩沖區(qū),因此,緊隨第一文件的緩沖區(qū)可以是第二文件的緩沖區(qū)。在這種情況下,客戶端無須另外的動(dòng)作,也可在相當(dāng)于第二文件的關(guān)鍵幀的播放時(shí)間內(nèi)執(zhí)行分辨率更改和/或檢索。例如,客戶端可以不進(jìn)行另外的打開/關(guān)閉切換動(dòng)作。此外,客戶端可以不進(jìn)行清除緩沖區(qū)的動(dòng)作。第一url串流可生成與第二文件的關(guān)鍵幀之前的時(shí)間相當(dāng)?shù)牡谝晃募木彌_區(qū),且當(dāng)?shù)谝晃募木彌_區(qū)輸入結(jié)束時(shí),第二url串流可將第二文件的緩沖區(qū)附于第一文件的緩沖區(qū)之后。上述說明的實(shí)施例可由硬件構(gòu)成要素、軟件構(gòu)成要素、和/或硬件構(gòu)成要素及軟件構(gòu)成要素的組合被體現(xiàn)。例如,說明的裝置及構(gòu)成要素,可利用類似處理器、控制器、算術(shù)邏輯單元ALU(arithmeticlogicunit)、數(shù)字信號(hào)處理器(digitalsignalprocessor)、微型計(jì)算機(jī)、現(xiàn)場可編程陣列FPA(fieldprogrammablearray)、可編程邏輯單元PLU(programmablelogicunit)、微處理器、或執(zhí)行指令(instruction)的其他任何裝置、一個(gè)以上的范用計(jì)算機(jī)或特殊目的計(jì)算機(jī)被體現(xiàn)。處理裝置可執(zhí)行操作系統(tǒng)(OS)及該操作系統(tǒng)中所執(zhí)行的一個(gè)以上的軟件應(yīng)用程序。此外,處理裝置可應(yīng)答軟件的執(zhí)行,來存取、存儲(chǔ)、運(yùn)行、處理、生成數(shù)據(jù)。為了便于理解,處理裝置被說明是使用一個(gè),但在相關(guān)
技術(shù)領(lǐng)域:
中,具有通常知識(shí)的技術(shù)人員應(yīng)理解,處理裝置可包括多個(gè)處理元件(processingelement)和/或多個(gè)類型的處理元件。例如,處理裝置可包括多個(gè)處理器或一個(gè)處理器,以及一個(gè)控制器。此外,也可以是類似并行處理器(parallelprocessor)的其他處理配置(processingconfiguration)。軟件可包括計(jì)算機(jī)程序(computerprogram)、代碼(code)、指令(instruction)或上述中的一個(gè)以上的組合,來構(gòu)成處理裝置或單獨(dú)地或共同地(collectively)命令處理裝置。軟件和/或數(shù)據(jù),為了通過處理裝置被解析或是將指令或數(shù)據(jù)提供給處理裝置,可在任何類型的機(jī)器、組件(component)、物理裝置、虛擬裝置(virtualequipment)、計(jì)算機(jī)存儲(chǔ)媒體或裝置、或傳送的信號(hào)波中被永久或暫時(shí)地具體化(embody)。軟件被分散在以網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng)上,可通過分散的方法被存儲(chǔ)或執(zhí)行。軟件和數(shù)據(jù)可存儲(chǔ)在一個(gè)以上的計(jì)算機(jī)可讀記錄媒體中。根據(jù)實(shí)施例的方法可通過多種計(jì)算機(jī)手段以可執(zhí)行的程序指令形態(tài)被記錄在計(jì)算機(jī)可讀媒體中。計(jì)算機(jī)可讀媒體可包括獨(dú)立的或結(jié)合的程序指令、數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等。媒體和程序指令可為了本發(fā)明被專門設(shè)計(jì)和創(chuàng)建,或?yàn)橛?jì)算機(jī)軟件技術(shù)人員熟知而應(yīng)用。計(jì)算機(jī)可讀媒體的例子包括:磁媒體(magneticmedia),如硬盤、軟盤和磁帶;光學(xué)媒體(opticalmedia),如CDROM、DVD;磁光媒體(magneto-opticalmedia),如光盤(flopticaldisk);和專門配置為存儲(chǔ)和執(zhí)行程序指令的硬件裝置,如只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)等。程序指令的例子,既包括由編譯器產(chǎn)生的機(jī)器代碼,也包括使用解釋程序并可通過計(jì)算機(jī)被執(zhí)行的高級(jí)語言代碼。為執(zhí)行實(shí)施例的運(yùn)作,所述硬件裝置可被配置為以一個(gè)以上的軟件模來運(yùn)作,反之亦然。如上所示,本發(fā)明雖然已參照有限的實(shí)施例和附圖進(jìn)行了說明,但是本發(fā)明并不局限于所述實(shí)施例,在本發(fā)明所屬領(lǐng)域中具備通常知識(shí)的人均可以從此記載中進(jìn)行各種修改和變形。例如,可通過與說明的方法不同的順序來執(zhí)行所說明的技術(shù),或是通過與說明的方法不同的形態(tài)來結(jié)合或組合所說明的系統(tǒng)、結(jié)構(gòu)、裝置、電路等的構(gòu)成要素,或是通過其他構(gòu)成要素或同等事物來代替或置換也可獲得適當(dāng)結(jié)果。因此,本發(fā)明的范圍不受其他體現(xiàn)、其他實(shí)施例的局限或定義,而是由后附的權(quán)利要求范圍以及權(quán)利要求范圍等同內(nèi)容定義。當(dāng)前第1頁1 2 3