一種分布式轉碼系統(tǒng)和方法
【專利摘要】本發(fā)明涉及一種分布式轉碼系統(tǒng)和方法,包括:獲取源文件并判斷文件類型的預處理單元,預處理單元與計算分片的大小和入出點的分片計算單元連接,分片計算單元與多個分片轉碼單元連接,多個分片轉碼單元與多個合并單元連接,多個合并單元與目標存儲裝置連接。本發(fā)明以視頻文件分片的方式,通過任務碎片化充分利用CPU和GPU計算資源,將傳統(tǒng)單服務器資源的利用擴展到更多的資源,達到快速高效的轉碼任務執(zhí)行的目的。本發(fā)明對FSC DTC和ITC DTC兩種文件類型的轉碼區(qū)別對待,對FSC DTC文件類型利用其文件的特點,實現(xiàn)秒級的快速合并,對ITC DTC文件類型則采用邊轉碼邊合并的方式,提高了合并速度,節(jié)約了存儲帶寬。
【專利說明】一種分布式轉碼系統(tǒng)和方法
【技術領域】
[0001]本發(fā)明涉及一種分布式轉碼系統(tǒng)和方法,是一種計算機數(shù)據(jù)計算和處理技術,是一種數(shù)字視頻處理的系統(tǒng)和方法。
【背景技術】
[0002]在視音頻處理領域,特別是在電視臺、網絡電視臺、網絡公司、IPTV、互聯(lián)網電視、0ΤΤ、手機電視等領域存在大量的視音頻文件格式轉碼需求。迫切需要一套高效快速的視音頻文件轉碼方法,通過充分利用計算資源來換取高速的轉碼速度。傳統(tǒng)的視音頻轉碼存在轉碼效率不高,無法充分利用計算資源的問題;或者存在支持的視音頻格式不全面,或者在合并處理時效率不高的問題,成為數(shù)字視頻信息處理的瓶頸。
【發(fā)明內容】
[0003]為了克服現(xiàn)有技術的問題,本發(fā)明提出了一種分布式轉碼系統(tǒng)和方法。所述的系統(tǒng)和方法采用分布式轉碼技術,并且采用了中間格式和快速合并技術,進行多線程分布轉碼處理,大大提高了轉碼效率。
[0004]本發(fā)明的目的是這樣實現(xiàn)的:一種分布式轉碼系統(tǒng),包括:從源存儲裝置中獲取源文件并判斷文件類型的預處理單元,所述的預處理單元與計算分片的大小和入出點的分片計算單元連接,所述的分片計算單元與多個分片轉碼單元連接,所述的多個分片轉碼單元與多個合并單元連接,所述的多個合并單元與存儲目標文件的目標存儲裝置連接。
[0005]進一步的,所述的分片轉碼單元和合并單元之間設有緩存裝置。
[0006]一種使用上述系統(tǒng)的分布式轉碼方法,所述的方法包括如下步驟:
轉碼預處理的步驟:用于對源文件的合法性進行判斷,并確定轉碼方式;
分片計算的步驟:用于決定拆分規(guī)則,并進行分片的大小和入出點計算;
拆分的步驟:用于根據(jù)確定的拆分規(guī)則和計算出的分片的大小和入出點對源文件進行拆分;
分片轉碼的步驟:用于完成對各個分片的轉碼工作;
分片的解析與合并的步驟:用于對轉碼后的分段文件進行合并。
[0007]進一步的,所述的“轉碼預處理的步驟”的轉碼方式為:“基于文件系統(tǒng)的分布式轉碼方式”或“及時合并分布式轉碼方式”中的一種。
[0008]進一步的,所述的“分片計算的步驟”中所述的拆分規(guī)則為:依據(jù)計算資源動態(tài)拆分或依據(jù)時長拆分方式中的一種。
[0009]進一步的,所述的“分片轉碼的步驟”中,以“基于文件系統(tǒng)的分布式轉碼方式”進行轉碼的,每個分片編碼為LeadFS文件系統(tǒng)的分片文件格式。
[0010]進一步的,所述的“分片轉碼的步驟”中,以“及時合并分布式轉碼方式”進行轉碼的,每個分片編碼為自定義的分片文件格式。
[0011]進一步的,所述的“分片的解析與合并的步驟”包括如下子步驟: 文件解析的子步驟:對分片進行解析,確定分片文件格式,如果是文件系統(tǒng)的分片文件格式,則進入“基于文件系統(tǒng)的分布式合并方式的子步驟”,如果是自定義的分片文件格式,則進入“及時合并分布式合并方式的子步驟”;
基于文件系統(tǒng)的分布式合并方式的子步驟:用于修改文件系統(tǒng)中的文件索引信息,將分片合并為目標文件;
及時合并分布式合并方式的子步驟:用于對分片解析和合并,包括如下分步驟:
根據(jù)輸入的分片組數(shù),逐個讀取分片;
解析讀取的分片中的幀信息和幀數(shù)據(jù);
將幀信息和幀數(shù)據(jù)放入緩存中;
從緩存中取出幀數(shù)據(jù)和幀信息,將分片合并為目標文件。
[0012]進一步的,所述的“基于文件系統(tǒng)的分布式合并方式的子步驟”中解析和合并分為兩個線程進行,在解析同時將已經獲取的分片幀信息和幀數(shù)據(jù)同時進行目標文件合并。
[0013]本發(fā)明產生的有益效果是:本發(fā)明將視頻文件分片的方式,將0^和計算資源通過任務碎片化手段充分利用起來,將傳統(tǒng)單服務器資源的利用擴展到更多的資源,達到快速高效的轉碼任務執(zhí)行的目的。本發(fā)明對?% 0扣和III: 0扣兩種文件類型的轉碼區(qū)別對待,對0X0文件類型利用其文件本身的系統(tǒng)特點,可以實現(xiàn)秒級的快速合并,對1扣0X0文件類型則采用邊轉碼邊合并的方式,大大的提高了合并速度,節(jié)約了存儲帶寬。
【專利附圖】
【附圖說明】
[0014]下面結合附圖和實施例對本發(fā)明作進一步說明。
[0015]圖1是本發(fā)明的實施例一所述系統(tǒng)的原理示意圖;
圖2是本發(fā)明的實施例二所述系統(tǒng)的原理示意圖;
圖3是本發(fā)明的實施例三所述方法的步驟流程示意圖;
圖4是本發(fā)明的實施例九所述方法的流程圖。
【具體實施方式】
[0016]實施例一:
本實施例是一種分布式轉碼系統(tǒng),如圖1所示。本實施例包括:從源存儲裝置中獲取源文件并判斷文件類型的預處理單元,所述的預處理單元與計算分片的大小和入出點的分片計算單元連接,所述的分片計算單元與多個分片轉碼單元連接,所述的多個分片轉碼單元與多個合并單元連接,所述的多個合并單元與存儲目標文件的目標存儲裝置連接。
[0017]本實施例所述系統(tǒng)中包含預處理單元、分片計算單元、分片轉碼單元、合并單元等組成。本實施例所述系統(tǒng)可以用靈活的方式實現(xiàn),即可實現(xiàn)為包含計算節(jié)點集群和盤陣的一套設備,也可以將各個軟件單元部署到云計算平臺中實現(xiàn)云轉碼。如果所述系統(tǒng)是帶有服務器和盤陣的設備,可以部署在電視臺、網絡電視臺、網絡公司、1?!^、互聯(lián)網電視、017、手機電視等用戶機房環(huán)境中。如果是云轉碼,則通過私有云或者公有云方式提供服務。本實施例所述系統(tǒng)具備很大的伸縮性,分片轉碼計算節(jié)點可以從幾個節(jié)點到幾百個不等。
[0018]源存儲裝置是存儲各種視頻文件的盤陣數(shù)據(jù)庫,或是服務器的硬盤,也可以是云存儲。
[0019]目標存儲裝置是各種存儲設備和云存儲。物理上可以是與源存儲裝置在一起,或者單獨的存儲設備。
[0020]預處理單元的功能是對源文件的合法性進行判斷,并決定采用哪種轉碼方式。采用哪種方式可以由上層指定,也可以通過依據(jù)源文件的文件系統(tǒng)類型自動判斷,如果源文件是LeadFS文件系統(tǒng)則采用基于LeadFS文件系統(tǒng)的快速分布式轉碼(File SystemCombinat1n Distributed Transcode:FSC DTC)方式,如果不是則用基于通用文件系統(tǒng)的分布式轉石馬(In Time Combinat1n Distributed Transcode:1TC DTC)方式。
[0021]分片計算單元的功能是決定拆分規(guī)則,并進行分片的大小和入出點計算。拆分規(guī)則有兩種方式:依據(jù)計算資源動態(tài)拆分和依據(jù)時長拆分方式。本實施例的基本思路是將源文件拆分為多個片段(本實施例中將片段稱為“分片”),利用多個線程同時進行轉碼,以充分利用計算資源并提高轉碼的效率。
[0022]依據(jù)計算資源動態(tài)拆分是將可用的計算資源數(shù)量做為拆分參考依據(jù),這種方式可以保證分段數(shù)量可以和計算資源匹配,同時為了保證并行度,拆片數(shù)量可以是計算資源(空閑線程)的倍數(shù)。
[0023]根據(jù)固定分片時長確定分布式拆分數(shù)目是根據(jù)片段時長來作為拆分參考依據(jù),用總時長除以片段時長就可以得到拆分數(shù)量。
[0024]拆分時如果出現(xiàn)剩余幀數(shù),還需要做對齊處理。考慮到轉碼的實際效率和效果,片段時長不能過小也不能過長。過小則調度效率下降,過長則達不到足夠的并行度。
[0025]如果依據(jù)計算資源拆分,拆分分段數(shù)量一般為計算資源數(shù)量的倍數(shù),這樣可以實現(xiàn)分片轉碼和合并的充分并行,也就是說當?shù)谝慌制D碼完成后,合并工作已經開始進行;與此同時,第二批的分片轉碼也可以同步進行。
[0026]如果計算節(jié)點數(shù)量很多的情況下,則分段可以不依據(jù)計算資源數(shù)量,否則會導致分片數(shù)量過多,導致調度效率下降。這種情況下直接使用定長分片就可以實現(xiàn)較好的總體效率。
[0027]分片轉碼單元的功能是完成對各個分片的轉碼工作。分片的轉碼使用多進程完成,可以調度不同的計算資源節(jié)點同時進行,達到最大的處理吞吐量。首先調用解碼器按照入出點的位置對源片段文件解碼,然后調用編碼器編碼為目標格式的片段文件,具體分片轉碼有兩種不同的方式,一種是“基于文件系統(tǒng)的分布式轉碼(FSC DTC)方式”,另一種是“及時合并分布式轉碼(ITC DTC)方式”。在不同方式下轉碼處理有所不同:
在基于文件系統(tǒng)的分布式轉碼(FSC DTC)方式下,每個分片會編碼為LeadFS文件系統(tǒng)的片段格式,這些片段在合并前是無法進行正常使用或者播放的。這種方法依賴LeadFS的文件系統(tǒng)。
[0028]在及時合并分布式轉碼(ITC DTC)方式下,每個分片要形成片段文件。片段文件采用自定義的文件格式,以便后續(xù)步驟的合并單元能夠檢測片段文件是否已完成所需的打包處理,如果完成即可以開始讀取片段文件并寫入到目標文件進行合并操作。這種方法的效果是通過將分片劃分細化,讓分片劃分數(shù)量大于轉碼服務器的數(shù)量,利用服務器集群的機器能夠在部分分片完成的情況就可以開始合并工作,將分片轉碼分片合并實現(xiàn)并行,降低轉碼總體的時間開銷。這種方法對文件系統(tǒng)無限制,并可以實現(xiàn)分片轉碼和合并同步。
[0029]合并單元的功能是負責對轉碼后的分片進行合并。為了目標文件完整可用,分片轉碼完畢后,就需要對分片進行解析并完成最終的合并工作。合并模塊解析分片文件類型,對于不同的分片類型合并的處理方式不同。
[0030]在基于文件系統(tǒng)的分布式轉碼010方式下,分片的解析與合并由文件系統(tǒng)自身的快速聚合功能完成??梢詫崿F(xiàn)非??焖俚暮喜?1-2秒),而且不占用額外的存儲空間。文件系統(tǒng)自身的快速聚合功能是直接修改[621(11?文件系統(tǒng)中的文件索引信息,并沒有實際的數(shù)據(jù)拷貝過程,所以可以達到極高的效率。
[0031]在及時合并分布式轉碼(11(: 010方式下,當開始生成轉碼后的分片文件時,合并單元開始運行,可在片段文件生成的同時執(zhí)行合并操作。合并單元會根據(jù)輸入的分片數(shù)組,逐個讀取片段文件。
[0032]為了提高并行性,合并單元分為兩個獨立線程:片段文件解析線程和目標文件生成線程。
[0033]片段文件解析線程主要負責對所有片段文件進行解析,并將解析的幀信息(經過序列化)和幀數(shù)據(jù)存入緩存。目標文件生成線程則負責不斷的從緩存中取出幀信息和幀數(shù)據(jù),然后推送出去生成目標文件。
[0034]實施例二:
本實施例是實施例一的改進,是實施例一關于分片轉碼單元和合并單元的細化。本實施例所述的分片轉碼單元和合并單元之間設有緩存裝置,如圖2所示。
[0035]分布式轉碼合并時的片段文件緩存處理。?% 0扣對于分片后的文件,直接使用文件系統(tǒng)的合并,所以不存在需要緩存的問題;而1扣01(:則需要先將分布式的片段緩存,然后進行合并。緩存可以使用如下幾種方式:
使用性能比較高的盤陣作為緩存存儲,這種存儲可以提供很高的1/0性能,可以滿足多個片段文件同時讀寫的帶寬需求。
[0036]使用計算節(jié)點本地的存儲,可以采用八硬盤,分片轉碼時,可以將每個分片存儲到計算節(jié)點本地存儲。這種方式可以將讀寫帶寬分散到整個計算網絡中,并且還對存儲沒有特別要求。
[0037]實施例三:
本實施例是一種使用上述系統(tǒng)的分布式轉碼方法,如圖3所示。
[0038]本實施例所述的方法的具體步驟如下:
轉碼預處理的步驟:用于對源文件的合法性進行判斷,并確定轉碼方式。本步驟主要對源文件進行判斷,其文件是否為現(xiàn)有的轉碼器所支持的。本是實施例所使用的系統(tǒng)中可以設置轉碼大部分流行的編碼,但總有一些小眾編碼方式被忽略,因此,還需要對源文件進行合法性判斷。在合法性判斷之后,將源文件分為兩種類型0X0類型和1扣0X0類型,以便后續(xù)步驟進行分別處理。
[0039]分片計算的步驟:用于決定拆分規(guī)則,并進行分片的大小和入出點計算。根據(jù)源文件輸入的主要參數(shù)來決定分片個數(shù)、各分片的信息等。決策依據(jù)的主要參數(shù)包括:計算節(jié)點數(shù)量,文件時長,默認分片時長等。
[0040]拆分規(guī)則是:依據(jù)計算資源動態(tài)確定拆分數(shù)目或根據(jù)時長確定分布式轉碼拆分數(shù)目。這兩種規(guī)則解決的都是依據(jù)資源與任務之間的分配優(yōu)化問題。
[0041]拆分的步驟:用于根據(jù)確定的拆分規(guī)則和計算出的分片的大小和入出點對源文件進行拆分。拆分的過程也是一個并行的過程,可以在邊拆分,邊形成分片文件。本步驟通過在分片中加入獨特的分片文件格式,使分片文件可以實現(xiàn)各種視音頻格式的分布式轉碼,并且可以支持各種文件系統(tǒng)的,保證了分布式方法的可用性。自定義格式與普通格式相比在結構上便于邊寫邊讀,可提高片段文件在生成時即時合并的效率。采用特定的片段文件格式在合并階段自動檢測所需片段文件是否已完成,在完成后就開始讀取片段文件并寫入到目標文件。通過將片段劃分進一步細化,利用集群中的計算資源盡快完成整個源前一部分的打包,在進行后一部分打包時就可以開始合并已完成的片段文件。
[0042]這樣可將分布式轉碼時間和文件合并時間適當并行,降低最后合并的時間開銷。這個方式的優(yōu)點是對目標文件格式和文件系統(tǒng)無限制。
[0043]分片轉碼的步驟:用于完成對各個分片的轉碼工作。源文件經拆分后,形成多個分片,即開始各個分片在多個轉碼單元中同時進行轉碼,以此提高轉碼的效率。
[0044]分片的解析與合并的步驟:用于對轉碼后的分片文件進行合并。分片文件轉碼后即可開始合并。合并可在轉碼后文件生成的同時執(zhí)行合并操作。合并單元會根據(jù)輸入的分片的文件名數(shù)組,逐個讀取分片文件。
[0045]解析和合并可以在兩個獨立線程同時進行:分片文件解析線程和目標文件生成線程。
[0046]分片文件解析線程主要負責對所有分片文件進行解析,并將解析的幀信息(經過序列化)和幀數(shù)據(jù)不斷的存入固定幀數(shù)的緩存中。解析的過程是,先判斷該分片文件是否存在,是否有數(shù)據(jù),是否生成結束?如果不滿足條件,則繼續(xù)等待,直到可以正常讀取數(shù)據(jù),或者一直無法等到而認為鎖死退出。
[0047]目標文件生成線程則負責不斷的從緩存中取出幀信息和幀數(shù)據(jù),然后推送出去生成目標文件。
[0048]實施例四:
本實施例是實施例三的改進,是實施例三關于“轉碼預處理的步驟”的細化。本實施例所述的“轉碼預處理的步驟”的轉碼方式為:“基于文件系統(tǒng)的分布式轉碼方式”或“及時合并分布式轉碼方式”中的一種。
[0049]本實施例所述方法可以用兩種分布式轉碼得以實現(xiàn)。一種是基于LeadFS文件系統(tǒng)的快速分布式轉碼方法(FSC DTC),一種是基于通用文件系統(tǒng)的分布式轉碼方法(ITCDTO0
[0050]基于文件系統(tǒng)的實現(xiàn)方法(FSC DTC):
FSC DTC是將源文件根據(jù)片段分片決策拆分為多個片段,(每個片段無法獨立解碼播放),在所有片段生成后使用LeadFS文件系統(tǒng)提供的合并函數(shù)將這些片段文件在文件系統(tǒng)層直接合并為目標文件。文件合并可以瞬時完成(1-2秒),而且不占用額外的存儲空間。該方法是基于LeadFS文件系統(tǒng)的快速聚合功能,能從根本上解決分布式轉碼在合并階段的性能瓶頸。但這種方式必須使用特定的文件系統(tǒng),而且只支持AVI和MXF兩種文件格式的分布式轉碼。
[0051]及時合并分布式轉碼(ITC DTC):1TC DTC是一種邊轉碼邊合并的分布式轉碼方式。采用自定義的片段文件格式,能夠自動檢測片段文件是否已完成所需的打包處理,如果完成即可以開始讀取片段文件并寫入到目標文件進行合并操作。這種方法的理想效果是通過將片段劃分細化,讓片段劃分數(shù)量大于轉碼服務器的數(shù)量,利用服務器陣列的機器盡快完成前一部分片段的轉碼,在進行后一部分片段轉碼時就可以開始合并已完成的片段文件。這樣可將片段轉碼片段合并實現(xiàn)并行,降低轉碼總體的時間開銷。
[0052]這種方法對目標文件格式和文件系統(tǒng)無限制,并可以實現(xiàn)片段轉碼和合并同步。
[0053]實施例五:
本實施例是實施例四的改進,是實施例四關于“分片計算的步驟”的細化。本實施例所述的“分片計算的步驟”中所述的拆分規(guī)則為:依據(jù)計算資源動態(tài)拆分或依據(jù)時長拆分方式中的一種。
[0054]無論是…還是1扣,分片任務的拆分規(guī)則是類似的。有兩種方式:
依據(jù)計算資源動態(tài)確定拆分數(shù)目:將可用的計算資源數(shù)量做為拆分參考依據(jù),這種方式可以保證分段數(shù)量可以和計算資源匹配,同時為了保證并行度,拆片數(shù)量可以是計算資源的倍數(shù)。
[0055]根據(jù)時長確定分布式轉碼拆分數(shù)目:根據(jù)分片時長來作為拆分參考依據(jù),用總時長除以分片時長就可以得到拆分數(shù)量。按照分片數(shù)量適中的原則,分片時長一般設置為1-2分鐘。
[0056]當分片信息不能整除的問題,底層處理方法:根據(jù)上層建議時長,底層對建議幀數(shù)進行60?對齊,繼而判斷是否可以等分,如果可以等分則直接劃分分片,如不能等分,需要判斷整除剩余幀數(shù),如剩余幀數(shù)大于建議幀數(shù)的一半,則將剩余幀數(shù)作為最后一個分片,否則將剩余幀數(shù)均勻疊加到前面的各個分片中,從而避免最后一個分片劃分不均勻的問題。
[0057]考慮到轉碼的實際效率和效果,分片時長不能過小也不能過長。過小則調度效率下降,過長則達不到足夠的并行度。
[0058]實施例六:
本實施例是實施例五的改進,是實施例五關于“分片轉碼的步驟”的細化。本實施例所述的“分片轉碼的步驟”中,以“基于文件系統(tǒng)的分布式轉碼方式”進行轉碼的,每個分片編碼為1621(11?文件系統(tǒng)的分片文件格式。
[0059]168(1^8文件系統(tǒng)是一種可以是文件快速聚合的文件系統(tǒng),具體細節(jié)見《一種共享文件系統(tǒng)多文件快速聚合和讀取的方法》(中國專利申請,申請日:2014年10月3日,申請?zhí)?014106000039),為文件快速合并接口,可以支持分段的文件在不做數(shù)據(jù)的拷貝的情況下做快速合并??焖俸喜⑹峭ㄟ^直接修改文件系統(tǒng)中文件數(shù)據(jù)塊的元數(shù)據(jù)信息來完成的。
[0060]實施例七:
本實施例是實施例五的改進,是實施例五關于“分片轉碼的步驟”的細化。本實施例所述的“分片轉碼的步驟”中,以“及時合并分布式轉碼方式”進行轉碼的,每個分片編碼為自定義的分片文件格式。
[0061]自定義格式與普通格式相比在結構上便于邊寫邊讀,可提高片段文件在生成時即時合并的效率。采用特定的片段文件格式在合并階段自動檢測所需片段文件是否已完成,在完成后就開始讀取片段文件并寫入到目標文件。通過將片段劃分進一步細化,利用集群中的計算資源盡快完成整個源前一部分的打包,在進行后一部分打包時就可以開始合并已完成的片段文件。
[0062]這樣可將分布式轉碼時間和文件合并時間適當并行,降低最后合并的時間開銷。這個方式的優(yōu)點是對目標文件格式和文件系統(tǒng)無限制。
[0063]實施例八:
本實施例是實施例六、七的改進,是實施例六、七關于“分片的解析與合并的步驟”的細化。本實施例所述的“分片的解析與合并的步驟”包括如下子步驟:
文件解析的子步驟:對分片進行解析,確定分片文件格式,如果是LeadFS文件系統(tǒng)的分片文件格式,則進入“基于文件系統(tǒng)的分布式合并方式的子步驟”,如果是自定義的分片文件格式,則進入“及時合并分布式合并方式的子步驟”。
[0064]基于文件系統(tǒng)的分布式合并方式的子步驟:用于修改LeadFS文件系統(tǒng)中的文件索引信息,將分片合并為目標文件。
[0065]及時合并分布式合并方式的子步驟:用于對分片解析和合并,包括如下分步驟:
根據(jù)輸入的分片組數(shù),逐個讀取分片。
[0066]解析讀取的分片中的幀信息和幀數(shù)據(jù)。
[0067]將幀信息和幀數(shù)據(jù)放入緩存中。
[0068]從緩存中取出幀數(shù)據(jù)和幀信息,將分片合并為目標文件。
[0069]片段文件解析主要負責對所有片段文件進行解析,并將解析的幀信息(經過序列化)和幀數(shù)據(jù)不斷的存入固定幀數(shù)的緩存中。解析的過程是,先判斷該片段是否存在,是否有數(shù)據(jù),是否生成結束?如果不滿足條件,則繼續(xù)等待,直到可以正常讀取數(shù)據(jù),或者一直無法等到而認為鎖死退出。
[0070]目標文件生成則負責不斷的從緩存中取出幀信息和幀數(shù)據(jù),然后推送出去生成目標文件。
[0071]可以將解析和合并分為兩個線程,對獲取的分片的幀信息和幀數(shù)據(jù)隨時進行目標文件合并。
[0072]實施例九:
本實施例是實施例八的改進,是實施例八中關于“基于文件系統(tǒng)的分布式合并方式的子步驟”的細化。本實施例所述的“基于文件系統(tǒng)的分布式合并方式的子步驟”中解析和合并分為兩個線程進行,在解析同時將已經獲取的分片幀信息和幀數(shù)據(jù)同時進行目標文件合并,如圖4所示。
[0073]圖4是解析和合并的處理流程的示意圖,線程A表示片段文件解析線程,線程B表示目標文件生成線程,這樣構建成異步讀寫緩存,提高合并效率。
[0074]最后應說明的是,以上僅用以說明本發(fā)明的技術方案而非限制,盡管參照較佳布置方案對本發(fā)明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發(fā)明的技術方案(比如系統(tǒng)的連接方式、各個連接關系、步驟的先后順序等)進行修改或者等同替換,而不脫離本發(fā)明技術方案的精神和范圍。
【權利要求】
1.一種分布式轉碼系統(tǒng),其特征在于,包括:從源存儲裝置中獲取源文件并判斷文件類型的預處理單元,所述的預處理單元與計算分片的大小和入出點的分片計算單元連接,所述的分片計算單元與多個分片轉碼單元連接,所述的多個分片轉碼單元與多個合并單元連接,所述的多個合并單元與存儲目標文件的目標存儲裝置連接。
2.根據(jù)權利要求1所述的系統(tǒng),其特征在于,所述的分片轉碼單元和合并單元之間設有緩存裝置。
3.一種使用權利要求2所述系統(tǒng)的分布式轉碼方法,其特征在于,所述的方法包括如下步驟: 轉碼預處理的步驟:用于對源文件的合法性進行判斷,并確定轉碼方式; 分片計算的步驟:用于決定拆分規(guī)則,并進行分片的大小和入出點計算; 拆分的步驟:用于根據(jù)確定的拆分規(guī)則和計算出的分片的大小和入出點對源文件進行拆分; 分片轉碼的步驟:用于完成對各個分片的轉碼工作; 分片的解析與合并的步驟:用于對轉碼后的分段文件進行合并。
4.根據(jù)權利要求3所述的方法,其特征在于,所述的“轉碼預處理的步驟”的轉碼方式為:“基于文件系統(tǒng)的分布式轉碼方式”或“及時合并分布式轉碼方式”中的一種。
5.根據(jù)權利要求4所述的方法,其特征在于,所述的“分片計算的步驟”中所述的拆分規(guī)則為:依據(jù)計算資源動態(tài)拆分或依據(jù)時長拆分方式中的一種。
6.根據(jù)權利要求5所述的方法,其特征在于,所述的“分片轉碼的步驟”中,以“基于文件系統(tǒng)的分布式轉碼方式”進行轉碼的,每個分片編碼為LeadFS文件系統(tǒng)的分片文件格式。
7.根據(jù)權利要求5所述的方法,其特征在于,所述的“分片轉碼的步驟”中,以“及時合并分布式轉碼方式”進行轉碼的,每個分片編碼為自定義的分片文件格式。
8.根據(jù)權利要求6或7所述的方法,其特征在于,所述的“分片的解析與合并的步驟”包括如下子步驟: 文件解析的子步驟:對分片進行解析,確定分片文件格式,如果是LeadFS文件系統(tǒng)的分片文件格式,則進入“基于文件系統(tǒng)的分布式合并方式的子步驟”,如果是自定義的分片文件格式,則進入“及時合并分布式合并方式的子步驟”; 基于文件系統(tǒng)的分布式合并方式的子步驟:用于修改LeadFS文件系統(tǒng)中的文件索引信息,將分片合并為目標文件; 及時合并分布式合并方式的子步驟:用于對分片解析和合并,包括如下分步驟: 根據(jù)輸入的分片組數(shù),逐個讀取分片; 解析讀取的分片中的幀信息和幀數(shù)據(jù); 將幀信息和幀數(shù)據(jù)放入緩存中; 從緩存中取出幀數(shù)據(jù)和幀信息,將分片合并為目標文件。
9.根據(jù)權利要求8所述的方法,其特征在于,所述的“基于文件系統(tǒng)的分布式合并方式的子步驟”中解析和合并分為兩個線程進行,在解析同時將已經獲取的分片幀信息和幀數(shù)據(jù)同時進行目標文件合并。
【文檔編號】H04N21/234GK104469396SQ201410812488
【公開日】2015年3月25日 申請日期:2014年12月24日 優(yōu)先權日:2014年12月24日
【發(fā)明者】李永葆, 褚震宇, 王彥彬, 杜偉, 韓利明, 張二麗, 郭志芳, 胡海琴, 王兵, 何焱 申請人:北京中科大洋信息技術有限公司