一種數據處理方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及數據處理技術領域,尤其涉及一種數據處理方法及裝置。
【背景技術】
[0002]隨著網絡和文化事業(yè)的發(fā)展,音視頻資源極大豐富,對音視頻文件的處理的需要也快速增長。
[0003]音視頻文件處理的大致流程如下:首先將需處理的音視頻文件解封裝成為視頻幀序列和音頻幀序列;然后將視頻幀序列和音頻幀序列分別解碼為RAW格式和PCM格式數據;對RAW格式和PCM格式數據進行處理;再將RAW格式和PCM格式的數據編碼為所需格式的音頻幀序列和視頻幀序列;最后將音頻幀序列和視頻幀序列封裝成需要的文件格式。
[0004]以上處理是通過計算機或計算機構成的數據處理裝置來完成的,現有的這些計算機或數據處理裝置是依靠本機的軟硬件資源來實現對文件的處理。音視頻文件處理的計算量龐大,對處理裝置的運算能力和存儲資源消耗很大,而且隨著高清音視頻文件的日益增多和處理需求的不斷增大,依靠單機進行音視頻文件處理的瓶頸問題日益突出,單機處理速度慢且容易發(fā)生系統(tǒng)崩潰。即使用戶使用配置很高的計算機也難以保證處理的速度和穩(wěn)定程度,尤其無法滿足大批量和時間要求很高的處理任務。
[0005]鑒于現有技術中存在的以上問題,提供了一種分布式處理系統(tǒng),使用多臺計算機或處理裝置來實現并行處理,并通過本發(fā)明的數據處理方法為分布式處理系統(tǒng)中的各個裝置進行任務管理,從而大大減少了處理所需的時間,同時降低了系統(tǒng)的處理壓力,減少了系統(tǒng)崩潰的可能性。
【發(fā)明內容】
[0006]本發(fā)明實施例提供一種數據處理方法及裝置,包括如下技術方案:
[0007]根據本發(fā)明實施例的第一方面,提供一種數據處理方法,用于分布式處理系統(tǒng),所述分布式處理系統(tǒng)包括多個音視頻處理裝置,所述方法包括:
[0008]接收所述多個音視頻處理裝置發(fā)送的視頻數據的多媒體文件的碎片總數信息和處理后的多媒體文件碎片;
[0009]根據所述碎片總數信息和已接收到的處理后的多媒體文件碎片確定在當前已接收時長大于預設接收時長時,是否存在未接收到的目標多媒體文件碎片;
[0010]在確定存在所述目標多媒體文件碎片時,向所述調度裝置發(fā)送超時請求,所述超時請求包括所述目標多媒體文件碎片的身份標識,以及所述目標多媒體文件所屬任務的身份標識;
[0011]控制所述調度裝置根據所述超時請求和已記錄的音視頻處理裝置和任務、多媒體文件碎片之間的對應關系,確定所述目標多媒體文件碎片對應的目標音視頻處理裝置;
[0012]獲取所述目標視頻處理裝置的當前工作狀態(tài),根據所述當前工作狀態(tài)確定是否將所述目標多媒體文件碎片發(fā)送至所述多個音視頻處理裝置中的其他音視頻處理裝置。
[0013]在一個實施例中,所述根據所述當前工作狀態(tài)確定是否將所述目標多媒體文件碎片發(fā)送至所述多個音視頻處理裝置中的其他音視頻處理裝置,包括:
[0014]判斷所述當前工作狀態(tài)是否正常;
[0015]在判斷所述當前工作狀態(tài)正常時,忽略所述超時請求,等待所述目標音視頻處理裝置處理所述目標多媒體文件碎片;
[0016]在判斷所述當前工作狀態(tài)不正常時,將所述目標多媒體文件碎片發(fā)送至所述多個音視頻處理裝置中的其他音視頻處理裝置進行處理。
[0017]在一個實施例中,所述系統(tǒng)還包括解封裝裝置,在接收所述多個音視頻處理裝置發(fā)送的多媒體文件的碎片總數信息和處理后的多媒體文件碎片之前,所述方法還包括:
[0018]控制所述調度裝置獲取所述視頻數據;
[0019]控制所述解封裝裝置對所述視頻數據進行解封裝操作,以得到所述視頻數據對應的所述多媒體文件碎片和所述多媒體文件的碎片總數信息;
[0020]控制所述調度模塊將所述多媒體文件碎片分發(fā)至多個音視頻處理裝置進行處理。[0021 ] 在一個實施例中,所述根據所述碎片總數信息和已接收到的處理后的多媒體文件碎片確定在當前已接收時長大于預設接收時長時,是否存在未接收到的目標多媒體文件碎片,包括:
[0022]根據所述碎片總數信息創(chuàng)建所述多媒體文件對應的任務,并根據所述碎片總數信息生成碎片位圖,利用所述碎片位圖記錄所述多媒體文件碎片的接收狀態(tài),其中,所述碎片位圖中的位數與碎片總數一致,所述碎片位圖中的每位對應一個碎片,所述碎片位圖中的每位包括第一狀態(tài)和第二狀態(tài),所述第一狀態(tài)用于表示已接收到所述位對應的處理后的多媒體文件碎片,所述第二狀態(tài)用于表示未接收到所述位對應的處理后的多媒體文件碎片;
[0023]判斷所述碎片位圖中,是否存在處于第二狀態(tài)的時長大于所述預設接收時長的目標位;
[0024]在判斷所述碎片位圖中存在所述目標位時,確定所述目標位對應的多媒體文件碎片為所述目標多媒體文件碎片。
[0025]在一個實施例中,所述方法還包括:
[0026]當接收到所述視頻數據對應的所有處理后的多媒體文件碎片后,確定對所述所有處理后的多媒體文件碎片進行封裝操作,以得到處理后的視頻數據。
[0027]根據本發(fā)明實施例的第二方面,提供一種數據處理裝置,用于分布式處理系統(tǒng),所述分布式處理系統(tǒng)包括多個音視頻處理裝置,所述裝置包括:
[0028]接收模塊,用于接收所述多個音視頻處理裝置發(fā)送的視頻數據的多媒體文件的碎片總數信息和處理后的多媒體文件碎片;
[0029]第一確定模塊,用于根據所述碎片總數信息和已接收到的處理后的多媒體文件碎片確定在當前已接收時長大于預設接收時長時,是否存在未接收到的目標多媒體文件碎片;
[0030]發(fā)送模塊,用于在確定存在所述目標多媒體文件碎片時,向所述調度裝置發(fā)送超時請求,所述超時請求包括所述目標多媒體文件碎片的身份標識,以及所述目標多媒體文件所屬任務的身份標識;
[0031]第二確定模塊,用于控制所述調度裝置根據所述超時請求和已記錄的音視頻處理裝置和任務、多媒體文件碎片之間的對應關系,確定所述目標多媒體文件碎片對應的目標音視頻處理裝置;
[0032]第三確定模塊,用于獲取所述目標視頻處理裝置的當前工作狀態(tài),根據所述當前工作狀態(tài)確定是否將所述目標多媒體文件碎片發(fā)送至所述多個音視頻處理裝置中的其他音視頻處理裝置。
[0033]在一個實施例中,所述第三確定模塊包括:
[0034]判斷子模塊,用于判斷所述當前工作狀態(tài)是否正常;
[0035]忽略子模塊,用于在判斷所述當前工作狀態(tài)正常時,忽略所述超時請求,等待所述目標音視頻處理裝置處理所述目標多媒體文件碎片;
[0036]發(fā)送子模塊,用于在判斷所述當前工作狀態(tài)不正常時,將所述目標多媒體文件碎片發(fā)送至所述多個音視頻處理裝置中的其他音視頻處理裝置進行處理。
[0037]在一個實施例中,所述系統(tǒng)還包括解封裝裝置,所述裝置還包括:
[0038]獲取模塊,用于在接收所述多個音視頻處理裝置發(fā)送的多媒體文件的碎片總數信息和處理后的多媒體文件碎片之前,控制所述調度裝置獲取所述視頻數據;
[0039]解封裝模塊,用于控制所述解封裝裝置對所述視頻數據進行解封裝操作,以得到所述視頻數據對應的所述多媒體文件碎片和所述多媒體文件的碎片總數信息;<