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