本發(fā)明涉及多媒體數(shù)據(jù)傳輸方法,尤其涉及一種數(shù)據(jù)傳輸?shù)姆椒胺?wù)器及客戶端。
背景技術(shù):
對于音頻和視頻等不同的多媒體文件,計算機(jī)都會使用不同的編解碼器對它們進(jìn)行解析和重構(gòu),以獲取它們的具體信息來做處理、播放。對于像互聯(lián)網(wǎng)上的網(wǎng)頁視頻或?qū)iT的視頻網(wǎng)站視頻,進(jìn)行在線播放時都會有視頻文件緩存在本地計算機(jī)上,但是這些緩存文件并不能直接使用,它們都需要專屬的視頻解析器才能夠轉(zhuǎn)換成最常用的視頻文件。
目前一些協(xié)議(例如AllJoyn協(xié)議)的傳輸僅對小容量的文本文件和圖像文件有較好的支持,而對于容量較大的文件的傳輸還無法有效支持。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)中的協(xié)議無法有效支持較大文件的傳輸?shù)娜秉c,本發(fā)明提供了一種數(shù)據(jù)傳輸?shù)姆椒胺?wù)器及客戶端。
本發(fā)明提供了一種數(shù)據(jù)傳輸?shù)姆椒ǎǎ?/p>
服務(wù)器根據(jù)目標(biāo)文件的文件類型選擇解碼器對目標(biāo)文件進(jìn)行解碼獲得所述目標(biāo)文件的文件配置信息、文件編碼信息和數(shù)據(jù)內(nèi)容;
將所述文件配置信息和所述文件編碼信息發(fā)送至客戶端,或者,將所述文件配置信息發(fā)送至所述客戶端;
當(dāng)根據(jù)所述文件配置信息中的文件大小判定目標(biāo)文件大于預(yù)設(shè)容量時,將所述數(shù)據(jù)內(nèi)容分為多段,在每段數(shù)據(jù)內(nèi)容的文件頭增加時間戳,將所述多段數(shù)據(jù)內(nèi)容發(fā)送至所述客戶端。
上述方法還具有以下特點:
在所述將所述文件配置信息和所述文件編碼信息發(fā)送至客戶端,或者,將所述文件配置信息發(fā)送至所述客戶端之前,所述方法還包括:服務(wù)器確定文件傳輸模式,向客戶端發(fā)送用于指示文件傳輸模式的信息,所述文件傳輸模式為完整傳輸模式或共享傳輸模式;
所述服務(wù)器將所述文件配置信息發(fā)送至所述客戶端或者將所述文件配置信息和所述文件編碼信息發(fā)送至所述客戶端包括:在文件傳輸模式為完整傳輸模式時,將所述文件配置信息和所述文件編碼信息發(fā)送至所述客戶端,在文件傳輸模式為共享傳輸模式時,將所述文件配置信息發(fā)送至所述客戶端。
上述方法還具有以下特點:
所述在文件傳輸模式為完整傳輸模式時,將所述文件配置信息和所述文件編碼信息發(fā)送至所述客戶端包括:在文件傳輸模式為共享傳輸模式時,若所述服務(wù)器從客戶端接收到獲取完整文件請求,則將所述目標(biāo)文件的編碼信息發(fā)送至所述客戶端。
上述方法還具有以下特點:
所述服務(wù)器通過與所述客戶端建立的連接調(diào)用所述客戶端上的控制應(yīng)用程序編程接口函數(shù)控制所述客戶端對目標(biāo)文件的操作,所述應(yīng)用程序編程接口函數(shù)包括以下信息中的至少一個:播放、停止、暫停。
上述方法還具有以下特點:
所述服務(wù)器設(shè)置用于發(fā)送文件配置信息的傳輸塊的容量、用于發(fā)送文件編碼信息的傳輸塊的容量、用于發(fā)送各段數(shù)據(jù)內(nèi)容的傳輸塊的容量均相同;
所述服務(wù)器設(shè)置用于傳輸文件配置信息的傳輸塊的傳輸塊類型為文件配置信息;設(shè)置用于傳輸文件編碼信息的傳輸塊的傳輸塊類型為文件編碼信息;設(shè)置用于傳輸數(shù)據(jù)內(nèi)容的傳輸塊的傳輸塊類型為數(shù)據(jù)內(nèi)容。
本發(fā)明還提供了一種服務(wù)器,包括:
解析模塊,用于根據(jù)所述目標(biāo)文件的文件類型選擇解碼器對所述目標(biāo)文件進(jìn)行解碼獲得所述目標(biāo)文件的文件配置信息、文件編碼信息和數(shù)據(jù)內(nèi)容;
判斷模塊,用于根據(jù)所述文件配置信息中的文件大小判斷目標(biāo)文件大于預(yù)設(shè)容量;
發(fā)送模塊,將所述文件配置信息發(fā)送至所述客戶端,或者,將所述文件配置信息和所述文件編碼信息發(fā)送至所述客戶端;還用于在判斷模塊判斷目標(biāo)文件大于預(yù)設(shè)容量時,將所述數(shù)據(jù)內(nèi)容分為多段,在每段數(shù)據(jù)內(nèi)容的文件頭增加時間戳,將所述多段數(shù)據(jù)內(nèi)容發(fā)送至所述客戶端。
上述服務(wù)器還具有以下特點:
文件傳輸模式確定模塊,用于確定文件傳輸模式,所述文件傳輸模式是指完整傳輸模式或共享傳輸模式;
所述發(fā)送模塊,還用于向客戶端發(fā)送用于指示文件傳輸模式的信息;還用于在文件傳輸模式為完整傳輸模式時,將所述文件配置信息和所述文件編碼信息發(fā)送至所述客戶端,在文件傳輸模式為共享傳輸模式時,將所述文件配置信息發(fā)送至所述客戶端。
上述服務(wù)器還具有以下特點:
接收模塊,用于從客戶端接收到獲取完整文件請求;
所述發(fā)送模塊,還用于在文件傳輸模式為共享傳輸模式時,在所述接收模塊從客戶端接收到獲取完整文件請求后,才將所述目標(biāo)文件的編碼信息發(fā)送至所述客戶端。
上述服務(wù)器還具有以下特點:
還包括控制模塊,用于通過與所述客戶端建立的連接調(diào)用所述客戶端上的控制應(yīng)用程序編程接口函數(shù)控制所述客戶端對目標(biāo)文件的操作,所述應(yīng)用程序編程接口函數(shù)包括以下信息中的至少一個:播放、停止、暫停。
本發(fā)明還提供了一種數(shù)據(jù)傳輸?shù)姆椒?,包括?/p>
客戶端從所述服務(wù)器接收到文件配置信息、文件編碼信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各段數(shù)據(jù)內(nèi)容的文件頭中的時間戳將多段數(shù)據(jù)內(nèi)容構(gòu)建為目標(biāo)文件的數(shù)據(jù)內(nèi)容,使用所述文件配置信息和所述文件編碼信息根據(jù)目標(biāo)文件的數(shù)據(jù)內(nèi)容生成目標(biāo)文件;
客戶端從所述服務(wù)器接收到文件配置信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各段數(shù)據(jù)內(nèi)容的文件頭中的時間戳將多段數(shù)據(jù)內(nèi)容構(gòu)建為目標(biāo)文件的數(shù)據(jù)內(nèi)容,使用文件配置信息根據(jù)目標(biāo)文件的數(shù)據(jù)內(nèi)容生成緩存文件。
上述方法數(shù)據(jù)傳輸?shù)姆椒ㄟ€具有以下特點:所述方法還包括:所述客戶端從服務(wù)器接收到用于指示文件傳輸模式的信息后,在文件傳輸模式為共享傳輸模式時,向服務(wù)器發(fā)送獲取完整文件請求。
本發(fā)明還提供了一種客戶端,包括:
接收模塊,用于從服務(wù)器接收到文件配置信息、文件編碼信息和多段數(shù)據(jù)內(nèi)容,或者,從所述服務(wù)器接收到文件配置信息和多段數(shù)據(jù)內(nèi)容;
生成模塊,用于在接收模塊從所述服務(wù)器接收到文件配置信息、文件編碼信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各段數(shù)據(jù)內(nèi)容的文件頭中的時間戳將多段數(shù)據(jù)內(nèi)容構(gòu)建為目標(biāo)文件的數(shù)據(jù)內(nèi)容,使用文件配置信息和文件編碼信息根據(jù)目標(biāo)文件的數(shù)據(jù)內(nèi)容生成目標(biāo)文件;還用于在接收模塊從所述服務(wù)器接收到文件配置信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各段數(shù)據(jù)內(nèi)容的文件頭中的時間戳將多段數(shù)據(jù)內(nèi)容構(gòu)建為目標(biāo)文件的數(shù)據(jù)內(nèi)容,使用文件配置信息根據(jù)目標(biāo)文件的數(shù)據(jù)內(nèi)容生成緩存文件。
上述客戶端還具有以下特點:
還包括發(fā)送模塊;
所述接收模塊,還用于從服務(wù)器接收到用于指示文件傳輸模式的信息;
所述發(fā)送模塊,用于在接收模塊從服務(wù)器接收到用于指示文件傳輸模式的信息后,在文件傳輸模式為共享傳輸模式時,向服務(wù)器發(fā)送獲取完整文件請求。
本發(fā)明將大容量文件劃分為小容量文件的形式分塊傳輸,從而解決了一些協(xié)議(例如AllJoyn協(xié)議)只適用于小文件傳輸和只適用于圖片或文本傳輸?shù)娜秉c,使服務(wù)器和客戶端可以傳輸多種類型、任意大小的文件。本發(fā)明將文件傳輸區(qū)分為完全傳送和共享兩個概念,一方面保證了文件傳送和文件共享的功能,一方面避免了文件傳送和文件共享兩者之間的沖突。
附圖說明
圖1是實施例中數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D;
圖2是另一實施例中數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D。
具體實施例
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
本發(fā)明中進(jìn)行數(shù)據(jù)傳輸時傳輸?shù)奈募念愋桶▓D片、音頻和視頻。
本發(fā)明典型適用于AllJoyn協(xié)議。
圖1是實施例中數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D,以服務(wù)器為執(zhí)行主體,此方法包括:
步驟101,服務(wù)器根據(jù)目標(biāo)文件的文件類型選擇解碼器對目標(biāo)文件進(jìn)行解碼獲得目標(biāo)文件的文件配置信息、文件編碼信息和數(shù)據(jù)內(nèi)容;
步驟102,將文件配置信息和文件編碼信息發(fā)送至客戶端,或者,將文件配置信息發(fā)送至客戶端;
步驟103,當(dāng)根據(jù)文件配置信息中的文件大小判定目標(biāo)文件大于預(yù)設(shè)容量時,將數(shù)據(jù)內(nèi)容分為多段,在每段數(shù)據(jù)內(nèi)容的文件頭增加時間戳,將上述多段數(shù)據(jù)內(nèi)容發(fā)送至客戶端。
其中,
步驟101中的文件配置信息包括:文件大小、文件類型、文件采樣率、數(shù)據(jù)結(jié)構(gòu)等信息。
步驟102中服務(wù)器將文件配置信息和文件編碼信息發(fā)送至客戶端時,客戶端除了播放及顯示數(shù)據(jù)內(nèi)容外還可以重新生成原文件并保存,步驟102中服務(wù)器只將文件配置信息發(fā)送至客戶端時,客戶端只能在線播放及顯示數(shù)據(jù)內(nèi)容,不能重新生成原文件并保存。
本方法中,在步驟102之前還可以包括:服務(wù)器端確定文件傳輸模式并向客戶端發(fā)送用于指示文件傳輸模式的信息,文件傳輸模式是指完整傳輸模式或共享傳輸模式。步驟102具體包括:服務(wù)器將文件配置信息發(fā)送至客戶端或者將文件配置信息和文件編碼信息發(fā)送至客戶端包括:在文件傳輸模式為完整傳輸模式時,將文件配置信息和文件編碼信息發(fā)送至客戶端,在文件傳輸模式為共享傳輸模式時,將文件配置信息發(fā)送至客戶端。
文件傳輸模式為完整傳輸模式時,將所述文件配置信息和所述文件編碼信息發(fā)送至所述客戶端包括:在文件傳輸模式為共享傳輸模式時,若服務(wù)器從客戶端接收到獲取完整文件請求后,則將目標(biāo)文件的編碼信息發(fā)送至客戶端。
步驟103中的預(yù)設(shè)容量是指現(xiàn)有技術(shù)中協(xié)議進(jìn)行小容量文件傳輸時的容量上限,例如可以針對AllJoyn協(xié)議可以設(shè)置為5兆字節(jié)。
本方法中,服務(wù)器發(fā)送文件配置信息、文件編碼信息、各段數(shù)據(jù)內(nèi)容時,用于發(fā)送文件配置信息的傳輸塊、用于發(fā)送文件編碼信息的文件塊和用于發(fā)送各段數(shù)據(jù)內(nèi)容的傳輸塊的容量相同,例如均為5兆字節(jié)。服務(wù)器發(fā)送文件配置信息、文件編碼信息、各段數(shù)據(jù)內(nèi)容時,在傳輸塊的文件頭上設(shè)置傳輸塊類型,例如,設(shè)置用于傳輸文件配置信息的傳輸塊的傳輸塊類型為文件配置信息;設(shè)置用于傳輸文件編碼信息的傳輸塊的傳輸塊類型為文件編碼信息;設(shè)置用于傳輸數(shù)據(jù)內(nèi)容的傳輸塊的傳輸塊類型為數(shù)據(jù)內(nèi)容。
本方法中,目標(biāo)文件為音頻或視頻文件時,服務(wù)器可以控制客戶端對目標(biāo)文件的操作,具體的,服務(wù)器通過與客戶端建立的連接調(diào)用客戶端上的控制應(yīng)用程序編程接口函數(shù)控制客戶端對目標(biāo)文件的操作,應(yīng)用程序編程接口函數(shù)包括以下信息中的至少一個:播放、停止、暫停。
本實施例中的服務(wù)器包括:解析模塊、判斷模塊、發(fā)送模塊。
解析模塊,用于根據(jù)目標(biāo)文件的文件類型選擇解碼器對目標(biāo)文件進(jìn)行解碼獲得目標(biāo)文件的文件配置信息、文件編碼信息和數(shù)據(jù)內(nèi)容;
判斷模塊,用于根據(jù)文件配置信息中的文件大小判斷目標(biāo)文件大于預(yù)設(shè)容量;
發(fā)送模塊,將文件配置信息發(fā)送至客戶端,或者,將文件配置信息和文件編碼信息發(fā)送至客戶端;還用于在判斷模塊判斷目標(biāo)文件大于預(yù)設(shè)容量時,將數(shù)據(jù)內(nèi)容分為多段,在每段數(shù)據(jù)內(nèi)容的文件頭增加時間戳,將多段數(shù)據(jù)內(nèi)容發(fā)送至客戶端。
服務(wù)器為了控制客戶端是否生成原文件,服務(wù)器還包括文件傳輸模式確定模塊。此文件傳輸模式確定模塊用于確定文件傳輸模式,文件傳輸模式是指完整傳輸模式或共享傳輸模式。
發(fā)送模塊還用于向客戶端發(fā)送用于指示文件傳輸模式的信息;還用于在文件傳輸模式為完整傳輸模式時,將文件配置信息和文件編碼信息發(fā)送至客戶端,在文件傳輸模式為共享傳輸模式時,將文件配置信息。
服務(wù)器在客戶端的請求下,將目標(biāo)文件的編碼信息發(fā)送至客戶端。具體的,接收模塊用于從客戶端接收到獲取完整文件請求。發(fā)送模塊還用于在文件傳輸模式為共享傳輸模式時,在接收模塊從客戶端接收到獲取完整文件請求后,才將目標(biāo)文件的編碼信息發(fā)送至客戶端。
目標(biāo)文件為音頻或視頻文件時,服務(wù)器可以控制客戶端對目標(biāo)文件的操作時,控制模塊,用于通過與客戶端建立的連接調(diào)用客戶端上的控制應(yīng)用程序編程接口函數(shù)控制客戶端對目標(biāo)文件的操作,應(yīng)用程序編程接口函數(shù)包括以下信息中的至少一個:播放、停止、暫停。
控制模塊,還用于設(shè)置用于發(fā)送文件配置信息的傳輸塊的容量、用于發(fā)送文件編碼信息的文件塊的容量和用于發(fā)送各段數(shù)據(jù)內(nèi)容的傳輸塊的容量均相同,例如均為5兆字節(jié);還用于設(shè)置用于傳輸文件配置信息的傳輸塊的傳輸塊類型為文件配置信息;設(shè)置用于傳輸文件編碼信息的傳輸塊的傳輸塊類型為文件編碼信息;設(shè)置用于傳輸數(shù)據(jù)內(nèi)容的傳輸塊的傳輸塊類型為數(shù)據(jù)內(nèi)容。
圖2是實施例中數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D,以客戶端為執(zhí)行主體,此方法包括:
步驟201,客戶端從服務(wù)器接收到文件配置信息、文件編碼信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各段數(shù)據(jù)內(nèi)容的文件頭中的時間戳將多段數(shù)據(jù)內(nèi)容構(gòu)建為目標(biāo)文件的數(shù)據(jù)內(nèi)容,使用文件配置信息和文件編碼信息根據(jù)目標(biāo)文件的數(shù)據(jù)內(nèi)容生成目標(biāo)文件;
步驟202,客戶端從服務(wù)器接收到文件配置信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各段數(shù)據(jù)內(nèi)容的文件頭中的時間戳將多段數(shù)據(jù)內(nèi)容構(gòu)建為目標(biāo)文件的數(shù)據(jù)內(nèi)容,使用文件配置信息根據(jù)目標(biāo)文件的數(shù)據(jù)內(nèi)容生成緩存文件。
其中,
客戶端從服務(wù)器接收到文件配置信息、文件編碼信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各傳輸塊的頭文件中的傳輸塊類型區(qū)分出此傳輸塊中攜帶的是文件配置信息、文件編碼信息或多段數(shù)據(jù)內(nèi)容。
在服務(wù)器設(shè)定文件傳輸模式時,客戶端從服務(wù)器接收到用于指示文件傳輸模式的信息后,文件傳輸模式為共享傳輸模式,在需要獲取原目標(biāo)文件時,向服務(wù)器發(fā)送獲取完整文件請求。
客戶端還接收服務(wù)器通過與客戶端建立的連接調(diào)用客戶端上的控制應(yīng)用程序編程接口函數(shù)控制客戶端對目標(biāo)文件的操作,應(yīng)用程序編程接口函數(shù)包括以下信息中的至少一個:播放、停止、暫停。
此實施例中的客戶端,其特征在于,包括:接收模塊和生成模塊。
接收模塊用于從服務(wù)器接收到文件配置信息、文件編碼信息和多段數(shù)據(jù)內(nèi)容,或者,從服務(wù)器接收到文件配置信息和多段數(shù)據(jù)內(nèi)容。
生成模塊用于在接收模塊從服務(wù)器接收到文件配置信息、文件編碼信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各段數(shù)據(jù)內(nèi)容的文件頭中的時間戳將多段數(shù)據(jù)內(nèi)容構(gòu)建為目標(biāo)文件的數(shù)據(jù)內(nèi)容,使用文件配置信息和文件編碼信息根據(jù)目標(biāo)文件的數(shù)據(jù)內(nèi)容生成目標(biāo)文件;還用于在接收模塊從服務(wù)器接收到文件配置信息和多段數(shù)據(jù)內(nèi)容后,根據(jù)各段數(shù)據(jù)內(nèi)容的文件頭中的時間戳將多段數(shù)據(jù)內(nèi)容構(gòu)建為目標(biāo)文件的數(shù)據(jù)內(nèi)容,使用文件配置信息根據(jù)目標(biāo)文件的數(shù)據(jù)內(nèi)容生成緩存文件。
客戶端還包括發(fā)送模塊。
接收模塊還用于從服務(wù)器接收到用于指示文件傳輸模式的信息;
發(fā)送模塊用于在接收模塊從服務(wù)器接收到用于指示文件傳輸模式的信息后,在文件傳輸模式為共享傳輸模式時,向服務(wù)器發(fā)送獲取完整文件請求。
本發(fā)明將大容量文件劃分為小容量文件的形式分塊傳輸,從而解決了只適用于小文件傳輸和只適用于圖片或文本傳輸?shù)娜秉c,使服務(wù)器和客戶端可以傳輸多種類型、任意大小的文件。本發(fā)明將文件傳輸區(qū)分為完全傳送和共享兩個概念,一方面保證了文件傳送和文件共享的功能,一方面避免了文件傳送和文件共享兩者之間的沖突。
此外,需要說明的是,本說明書中所描述的具體實施例,其零、部件的形狀、所取名稱等可以不同,本說明書中所描述的以上內(nèi)容僅僅是對本發(fā)明結(jié)構(gòu)所作的舉例說明。
上面描述的內(nèi)容可以單獨地或者以各種方式組合起來實施,而這些變型方式都在本發(fā)明的保護(hù)范圍之內(nèi)。
在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括……”限定的要素,并不排除在包括要素的物品或者設(shè)備中還存在另外的相同要素。
以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,僅僅參照較佳實施例對本發(fā)明進(jìn)行了詳細(xì)說明。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。