国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      視頻轉(zhuǎn)碼系統(tǒng)和方法

      文檔序號:7769861閱讀:188來源:國知局
      視頻轉(zhuǎn)碼系統(tǒng)和方法
      【專利摘要】本發(fā)明提供了一種視頻轉(zhuǎn)碼系統(tǒng),包括調(diào)度模塊、切片模塊、轉(zhuǎn)碼模塊和合片模塊;其中,所述調(diào)度模塊用于生成視頻源文件的切片任務(wù);所述切片模塊用于執(zhí)行所述切片任務(wù)對所述視頻源文件進行切片,獲得多個視頻子文件;所述調(diào)度模塊還用于生成對應(yīng)每個所述視頻子文件的轉(zhuǎn)碼子任務(wù);所述轉(zhuǎn)碼模塊用于執(zhí)行所述轉(zhuǎn)碼子任務(wù)對每個所述視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件;所述調(diào)度模塊還用于生成對應(yīng)所述轉(zhuǎn)碼子文件的合片任務(wù);所述合片模塊,用于執(zhí)行所述合片任務(wù)將所述多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。本發(fā)明提供的視頻轉(zhuǎn)碼系統(tǒng)可并行處理多個轉(zhuǎn)碼子任務(wù),大大提高了視頻轉(zhuǎn)碼的效率。本發(fā)明還提供了一種視頻轉(zhuǎn)碼方法。
      【專利說明】視頻轉(zhuǎn)碼系統(tǒng)和方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及圖像處理【技術(shù)領(lǐng)域】,特別是涉及一種視頻轉(zhuǎn)碼系統(tǒng)和方法。
      【背景技術(shù)】
      [0002]目前針對應(yīng)用領(lǐng)域的不同、用戶的需求不同以及使用的播放終端不同等各種原因,需要對視頻源文件進行轉(zhuǎn)碼以得到符合需求的視頻文件。比如交通、安防、監(jiān)控以及影視等領(lǐng)域,對視頻質(zhì)量要求較高,需要視頻具有較高分辨率及碼率;而移動設(shè)備由于存儲空間有限,一般需要將視頻源文件轉(zhuǎn)碼為分辨率較低的視頻文件,以減小視頻所占的存儲空間,且易于傳輸。
      [0003]發(fā)明人發(fā)現(xiàn)傳統(tǒng)的轉(zhuǎn)碼方法中,對于一個視頻源文件的視頻轉(zhuǎn)碼任務(wù),只能使用轉(zhuǎn)碼模塊對應(yīng)的一個可用資源進行轉(zhuǎn)碼,轉(zhuǎn)碼效率低,而且視頻源文件越大,轉(zhuǎn)碼效率低的情況更明顯。

      【發(fā)明內(nèi)容】

      [0004]基于此,有必要針對傳統(tǒng)的視頻轉(zhuǎn)碼方法轉(zhuǎn)碼效率低的問題,提供一種視頻轉(zhuǎn)碼系統(tǒng)和方法。
      [0005]一種視頻轉(zhuǎn)碼系統(tǒng),所述系統(tǒng)包括調(diào)度模塊、切片模塊、轉(zhuǎn)碼模塊和合片模塊;其中,
      [0006]所述調(diào)度模塊用于生成視頻源文件的切片任務(wù);
      [0007]所述切片模塊用于執(zhí)行所述切片任務(wù)對所述視頻源文件進行切片,獲得多個視頻子文件;
      [0008]所述調(diào)度模塊還用于生成對應(yīng)每個所述視頻子文件的轉(zhuǎn)碼子任務(wù);
      [0009]所述轉(zhuǎn)碼模塊用于執(zhí)行所述轉(zhuǎn)碼子任務(wù)對每個所述視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件;
      [0010]所述調(diào)度模塊還用于生成對應(yīng)所述轉(zhuǎn)碼子文件的合片任務(wù);
      [0011]所述合片模塊,用于執(zhí)行所述合片任務(wù)將所述多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。
      [0012]一種視頻轉(zhuǎn)碼方法,所述方法包括:
      [0013]生成視頻源文件的切片任務(wù);
      [0014]執(zhí)行所述切片任務(wù)對所述視頻源文件進行切片,獲得多個視頻子文件;
      [0015]生成對應(yīng)每個所述視頻子文件的轉(zhuǎn)碼子任務(wù);
      [0016]執(zhí)行所述轉(zhuǎn)碼子任務(wù)對每個所述視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件;
      [0017]生成對應(yīng)所述轉(zhuǎn)碼子文件的合片任務(wù);
      [0018]執(zhí)行所述合片任務(wù)將所述多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。
      [0019]上述視頻轉(zhuǎn)碼系統(tǒng)和方法,切片模塊執(zhí)行切片任務(wù)對視頻源文件進行切片獲得多個視頻子文件,轉(zhuǎn)碼模塊執(zhí)行轉(zhuǎn)碼子任務(wù)對每個視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件,合片模塊執(zhí)行合片任務(wù)將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。相對于轉(zhuǎn)碼子任務(wù),切片任務(wù)和合片任務(wù)所用時間很少,對整個視頻轉(zhuǎn)碼過程的效率影響很小。將原來對應(yīng)一個視頻源文件的一個大的視頻轉(zhuǎn)碼任務(wù),轉(zhuǎn)化為多個小的轉(zhuǎn)碼子任務(wù),可通過多個轉(zhuǎn)碼模塊和/或轉(zhuǎn)碼模塊對應(yīng)的多個可用資源并行處理多個小的轉(zhuǎn)碼子任務(wù),大大提高了視頻轉(zhuǎn)碼的效率。
      【專利附圖】

      【附圖說明】
      [0020]圖1為一個實施例中視頻轉(zhuǎn)碼系統(tǒng)的結(jié)構(gòu)框圖;
      [0021]圖2為圖1中一個實施例的調(diào)度模塊的結(jié)構(gòu)框圖;
      [0022]圖3為圖1中另一個實施例的調(diào)度模塊的結(jié)構(gòu)框圖;
      [0023]圖4為一個實施例中為切片任務(wù)分配可用資源的示意圖;
      [0024]圖5為一個實施例中切片任務(wù)和合片任務(wù)共用資源集的示意圖;
      [0025]圖6為一個實施例中視頻轉(zhuǎn)碼方法的流程示意圖。
      【具體實施方式】
      [0026]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
      [0027]如圖1所示,在一個實施例中,提供了一種視頻轉(zhuǎn)碼系統(tǒng),該系統(tǒng)包括調(diào)度模塊102、切片模塊104、轉(zhuǎn)碼模塊106和合片模塊108。
      [0028]其中,調(diào)度模塊102用于生成視頻源文件的切片任務(wù)。
      [0029]調(diào)度模塊102接收到對視頻源文件進行轉(zhuǎn)碼的視頻轉(zhuǎn)碼任務(wù)后,生成視頻源文件的切片任務(wù),該切片任務(wù)用于將視頻源文件切割成多個視頻子文件。一個視頻源文件對應(yīng)一個切片任務(wù),當有多個視頻源文件即有多個視頻轉(zhuǎn)碼任務(wù)時,將生成對應(yīng)的多個切片任務(wù)。
      [0030]切片模塊104用于執(zhí)行切片任務(wù)對視頻源文件進行切片,獲得多個視頻子文件。
      [0031]調(diào)度模塊102將生成的切片任務(wù)發(fā)送給切片模塊104,切片模塊104可以是一個或多個,可根據(jù)需要配置。切片模塊104調(diào)用可用資源執(zhí)行切片任務(wù)從而對視頻源文件進行切片,獲得多個視頻子文件。切片模塊104完成切片任務(wù)后向調(diào)度模塊102返回切片完成的反饋,從而便于調(diào)度模塊102繼續(xù)進行后續(xù)處理。
      [0032]調(diào)度模塊102還用于生成對應(yīng)每個視頻子文件的轉(zhuǎn)碼子任務(wù)。
      [0033]切片完成獲得視頻子文件后,調(diào)度模塊102生成對應(yīng)每個視頻子文件的轉(zhuǎn)碼子任務(wù),轉(zhuǎn)碼子任務(wù)用于將對應(yīng)的視頻子文件轉(zhuǎn)碼成為轉(zhuǎn)碼子文件。
      [0034]當視頻源文件對應(yīng)的視頻轉(zhuǎn)碼任務(wù)對應(yīng)輸出一路轉(zhuǎn)碼視頻文件,即輸出一種轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件時,一個視頻子文件對應(yīng)一個轉(zhuǎn)碼子任務(wù);若對應(yīng)輸出多路視頻文件,即輸出多種轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件時,一個視頻子文件對應(yīng)多個轉(zhuǎn)碼子任務(wù),且一個視頻子文件對應(yīng)的轉(zhuǎn)碼子任務(wù)的數(shù)量與轉(zhuǎn)碼規(guī)格信息的種類數(shù)相同。
      [0035]其中,轉(zhuǎn)碼規(guī)格信息為轉(zhuǎn)碼后獲得的轉(zhuǎn)碼視頻文件的視頻參數(shù),包括但不限于幀率、碼率、分辨率和編碼格式等中的至少一種。對于一個視頻子文件對應(yīng)的轉(zhuǎn)碼子任務(wù),不同的轉(zhuǎn)碼規(guī)格信息分別對應(yīng)不同的轉(zhuǎn)碼子任務(wù),轉(zhuǎn)碼后獲得與轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件。比如,若視頻子文件數(shù)為M,轉(zhuǎn)碼規(guī)格信息的種類數(shù)為O,則生成的轉(zhuǎn)碼子任務(wù)數(shù)為M*0個,需要M*0個可用資源執(zhí)行轉(zhuǎn)碼子任務(wù),從而獲得分別對應(yīng)不同轉(zhuǎn)碼規(guī)格信息的M*0個轉(zhuǎn)碼子文件。
      [0036]轉(zhuǎn)碼模塊106用于執(zhí)行轉(zhuǎn)碼子任務(wù)對每個視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件。
      [0037]調(diào)度模塊102生成對應(yīng)每個視頻子文件的轉(zhuǎn)碼子任務(wù)后,將生成的轉(zhuǎn)碼子任務(wù)發(fā)送給轉(zhuǎn)碼模塊106。轉(zhuǎn)碼模塊106可以是一個或多個,可根據(jù)需要配置。轉(zhuǎn)碼模塊106調(diào)用可用資源執(zhí)行轉(zhuǎn)碼子任務(wù)從而將視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件。轉(zhuǎn)碼模塊106完成轉(zhuǎn)碼子任務(wù)后向調(diào)度模塊102返回轉(zhuǎn)碼完成的反饋,從而便于調(diào)度模塊102繼續(xù)進行后續(xù)處理。
      [0038]調(diào)度模塊102還用于生成對應(yīng)轉(zhuǎn)碼子文件的合片任務(wù)。
      [0039]將視頻子文件轉(zhuǎn)碼成為轉(zhuǎn)碼子文件后,調(diào)度模塊102生成對應(yīng)轉(zhuǎn)碼子文件的合片任務(wù),合片任務(wù)用于將對應(yīng)的轉(zhuǎn)碼子文件合并為轉(zhuǎn)碼視頻文件。
      [0040]合片模塊108用于執(zhí)行合片任務(wù)將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。
      [0041]合片模塊108可以是一個或多個,可根據(jù)需要配置。合片模塊108接收到調(diào)度模塊102生成的合片任務(wù)后,執(zhí)行該合片任務(wù)從而將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。合片模塊108完成合片任務(wù)后向調(diào)度模塊102返回合片完成的反饋,從而便于調(diào)度模塊102繼續(xù)進行后續(xù)處理。
      [0042]在一個實施例中,視頻源文件、視頻子文件以及轉(zhuǎn)碼子文件存儲于公共存儲中,需要時憑視頻源文件、視頻子文件或轉(zhuǎn)碼子文件的存儲地址進行讀取寫入操作??杀苊獯罅繑?shù)據(jù)的傳輸帶來的傳輸資源和時間的損耗,提高視頻轉(zhuǎn)碼效率。
      [0043]通過對切片模塊104、轉(zhuǎn)碼模塊106和合片模塊108進行靜態(tài)壓力測試表明,在不執(zhí)行任務(wù)時,單個切片模塊104、轉(zhuǎn)碼模塊106或合片模塊108對應(yīng)的可用資源數(shù)與該切片模塊104、轉(zhuǎn)碼模塊106或合片模塊108對應(yīng)的終端的CPU核數(shù)一致。
      [0044]上述視頻轉(zhuǎn)碼系統(tǒng),切片模塊執(zhí)行切片任務(wù)對視頻源文件進行切片獲得多個視頻子文件,轉(zhuǎn)碼模塊執(zhí)行轉(zhuǎn)碼子任務(wù)對每個視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件,合片模塊執(zhí)行合片任務(wù)將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。相對于轉(zhuǎn)碼子任務(wù),切片任務(wù)和合片任務(wù)所用時間很少,對整個視頻轉(zhuǎn)碼過程的效率影響很小。將原來對應(yīng)一個視頻源文件的一個大的視頻轉(zhuǎn)碼任務(wù),轉(zhuǎn)化為多個小的轉(zhuǎn)碼子任務(wù),可通過多個轉(zhuǎn)碼模塊和/或轉(zhuǎn)碼模塊對應(yīng)的多個可用資源并行處理多個小的轉(zhuǎn)碼子任務(wù),大大提高了視頻轉(zhuǎn)碼的效率。
      [0045]在一個實施例中,調(diào)度模塊102還用于在相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子任務(wù)完成后,生成相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件所對應(yīng)的合片任務(wù)。
      [0046]合片模塊108還用于執(zhí)行相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的合片任務(wù),將相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的多個轉(zhuǎn)碼子文件合并,獲得合并后的與相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件。
      [0047]本實施例中,當需要輸出多種轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件時,調(diào)度模塊102在相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子任務(wù)全部完成后,即可生成該相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件所對應(yīng)的合片任務(wù)。合片模塊108執(zhí)行該相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的合片任務(wù),從而將相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的多個轉(zhuǎn)碼子文件合并,獲得合并后的與相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件。
      [0048]本實施例中,無需等待全部轉(zhuǎn)碼子任務(wù)完成,即可將一種轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件進行合片處理,獲得對應(yīng)的轉(zhuǎn)碼視頻轉(zhuǎn)碼文件,提高了視頻轉(zhuǎn)碼的效率。
      [0049]如圖2所示,在一個實施例中,調(diào)度模塊102包括計算模塊102a,用于根據(jù)預(yù)設(shè)的切片閾值和/或轉(zhuǎn)碼模塊對應(yīng)的資源總數(shù)計算預(yù)計視頻子文件數(shù);資源預(yù)分配模塊102b,用于根據(jù)預(yù)計視頻子文件數(shù)為轉(zhuǎn)碼預(yù)分配可用資源數(shù)量,預(yù)分配的可用資源對應(yīng)轉(zhuǎn)碼模塊106 ;資源預(yù)分配更新模塊102c,用于獲取視頻子文件數(shù),根據(jù)視頻子文件數(shù)更新預(yù)分配的可用資源數(shù)量。
      [0050]本實施例中,預(yù)設(shè)的切片閾值可以是預(yù)設(shè)的單個視頻子文件的大小或者切片數(shù)。若預(yù)設(shè)的切片閾值為單個視頻子文件的大小100MB (兆字節(jié)),視頻源文件大小為900MB,則預(yù)計視頻子文件數(shù)為900/100=9 ;若預(yù)設(shè)的切片閾值為切片數(shù)9,則預(yù)計視頻子文件數(shù)為9??稍谇衅K104執(zhí)行切片任務(wù)前,即為轉(zhuǎn)碼預(yù)分配轉(zhuǎn)碼模塊106對應(yīng)的可用資源,使轉(zhuǎn)碼模塊106有足夠的準備時間,當轉(zhuǎn)碼模塊106執(zhí)行轉(zhuǎn)碼子任務(wù)時,有充足的可用資源執(zhí)行轉(zhuǎn)碼子任務(wù),提高視頻轉(zhuǎn)碼的效率。
      [0051]資源預(yù)分配模塊102b用于在切片前,根據(jù)預(yù)計視頻子文件數(shù)為轉(zhuǎn)碼預(yù)分配可用資源數(shù)量,預(yù)分配的可用資源對應(yīng)轉(zhuǎn)碼模塊106。若只有一路輸出時,這里預(yù)分配的可用資源數(shù)量等于預(yù)計視頻子文件數(shù);若有多路輸出,則預(yù)分配的可用資源數(shù)量等于預(yù)計視頻子文件數(shù)與轉(zhuǎn)碼規(guī)格信息種類數(shù)的乘積。需要說明的是,由于此時還未切片,更未生成對應(yīng)的轉(zhuǎn)碼子任務(wù),因此預(yù)分配的可用資源數(shù)量是一個總量,并不對應(yīng)每個轉(zhuǎn)碼子任務(wù)。
      [0052]資源預(yù)分配更新模塊102c,用于在切片后,獲取視頻子文件數(shù),根據(jù)視頻子文件數(shù)更新預(yù)分配的可用資源。由于實際的視頻子文件數(shù)(視頻子文件數(shù)就是實際的視頻子文件數(shù))與預(yù)計視頻子文件數(shù)不一定相同,因此切片任務(wù)完成后,需要根據(jù)視頻子文件數(shù)更新預(yù)分配的可用資源的數(shù)量,避免預(yù)分配過多資源浪費資源。
      [0053]在一個實施例中,計算模塊102a用于根據(jù)預(yù)設(shè)的切片閾值和轉(zhuǎn)碼模塊106對應(yīng)的資源總數(shù)計算預(yù)計視頻子文件數(shù)。本實施例中,預(yù)設(shè)的切片閾值是預(yù)設(shè)的單個視頻子文件的大小。具體地,計算模塊102a用于先使用視頻源文件的文件大小除以轉(zhuǎn)碼模塊106對應(yīng)的資源總數(shù)獲得中間值,若該中間值大于切片閾值,則預(yù)計視頻子文件數(shù)等于轉(zhuǎn)碼模塊106對應(yīng)的資源總數(shù);反之,若中間值不大于切片閾值,則預(yù)計視頻子文件數(shù)等于視頻源文件的文件大小除以切片閾值的值。這里的轉(zhuǎn)碼模塊106對應(yīng)的資源總數(shù),是指所有轉(zhuǎn)碼模塊106對應(yīng)的資源(包括已用和可用資源)的總數(shù),比如若有4個轉(zhuǎn)碼模塊106,每個轉(zhuǎn)碼模塊106對應(yīng)4個可用資源,則轉(zhuǎn)碼模塊106對應(yīng)的資源總數(shù)為16。
      [0054]本實施例中,根據(jù)預(yù)設(shè)的切片閾值和轉(zhuǎn)碼模塊106對應(yīng)的資源總數(shù)計算預(yù)計視頻子文件數(shù),可以保證預(yù)計視頻子文件數(shù)總是大于等于實際的視頻子文件數(shù),從而可以保證為轉(zhuǎn)碼預(yù)分配的資源足夠用。切片任務(wù)完成后,資源預(yù)分配更新模塊102c獲取視頻子文件數(shù),根據(jù)視頻子文件數(shù)更新預(yù)分配的可用資源,將不會使用的可用資源釋放出來,避免資源的浪費。[0055]需要說明的是,計算獲得的預(yù)計視頻子文件數(shù)與實際的視頻子文件數(shù)可能有差距。因此,調(diào)度模塊102還用于從切片模塊104獲取視頻子文件數(shù),根據(jù)獲取的視頻子文件數(shù)調(diào)整預(yù)分配的轉(zhuǎn)碼模塊106對應(yīng)的可用資源。通過獲取實際的視頻子文件數(shù)調(diào)整預(yù)分配的可用資源,可避免可用資源的浪費。
      [0056]在一個實施例中,調(diào)度模塊102還用于獲取轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼規(guī)格信息,根據(jù)獲取的轉(zhuǎn)碼規(guī)格信息估算轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼耗時;按照轉(zhuǎn)碼耗時從高到低的順序為對應(yīng)的轉(zhuǎn)碼子任務(wù)分配轉(zhuǎn)碼模塊106對應(yīng)的可用資源。
      [0057]轉(zhuǎn)碼規(guī)格信息的不同,會導致轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼耗時有較大差別,比如幀率、碼率、分辨率等視頻參數(shù)與轉(zhuǎn)碼耗時正相關(guān),幀率大、碼率高或者分辨率大,對應(yīng)的轉(zhuǎn)碼子任務(wù)的轉(zhuǎn)碼耗時也多。
      [0058]本實施例中,按照轉(zhuǎn)碼耗時從高到低的順序為對應(yīng)的轉(zhuǎn)碼子任務(wù)分配轉(zhuǎn)碼模塊106對應(yīng)的可用資源,優(yōu)先為轉(zhuǎn)碼耗時多的轉(zhuǎn)碼子任務(wù)分配可用資源,可保證耗時多的轉(zhuǎn)碼子任務(wù)先執(zhí)行,總體上所有轉(zhuǎn)碼子任務(wù)完成的時間相差不大,相對于不按照轉(zhuǎn)碼耗時排序發(fā)送轉(zhuǎn)碼子任務(wù),節(jié)省了時間,提高了轉(zhuǎn)碼效率。
      [0059]如圖3所示,在一個實施例中,調(diào)度模塊102包括切片任務(wù)調(diào)度模塊102d,用于獲取切片模塊104對應(yīng)的可用資源數(shù),根據(jù)切片模塊104對應(yīng)的可用資源數(shù)向?qū)?yīng)的切片模塊104調(diào)度切片任務(wù)。
      [0060]切片模塊104對應(yīng)的一個可用資源,只能執(zhí)行一個切片任務(wù),執(zhí)行切片任務(wù)時該資源為已用資源,執(zhí)行完該切片任務(wù)后釋放該資源,該資源再次成為可用資源。
      [0061]本實施例中,將多個視頻源文件進行切片處理,獲取切片模塊104對應(yīng)的可用資源數(shù),可根據(jù)獲取的切片模塊104對應(yīng)的可用資源數(shù)合理的調(diào)度切片任務(wù)。比如,可向每個切片模塊104發(fā)送與該切片模塊104對應(yīng)的可用資源數(shù)一致的切片任務(wù)。具體地,若一個切片模塊104對應(yīng)2個可用資源,可先向該切片模塊104分配2個切片任務(wù)。根據(jù)切片模塊104的可用資源數(shù)發(fā)送切片任務(wù),可保證各個切片模塊104具備足夠的可用資源執(zhí)行切片任務(wù),可提聞切片的效率,進而提聞?wù)麄€視頻轉(zhuǎn)碼的效率。
      [0062]在一個實施例中,切片任務(wù)調(diào)度模塊102d還用于獲取切片模塊104對應(yīng)的可用資源數(shù);向?qū)?yīng)最多可用資源數(shù)的切片模塊104調(diào)度一個切片任務(wù),繼續(xù)獲取切片模塊104對應(yīng)的可用資源數(shù),直至調(diào)度完所有切片任務(wù)。
      [0063]具體地,當不存在可用資源時暫停發(fā)送切片任務(wù),直到存在可用資源時繼續(xù)發(fā)送切片任務(wù)。當多個切片模塊104對應(yīng)的可用資源數(shù)相同時,可按照預(yù)定順序或隨機選擇切片模塊104分配切片任務(wù)。
      [0064]在一個實施例中,切片任務(wù)調(diào)度模塊102d還用于在繼續(xù)獲取切片模塊104對應(yīng)的可用資源數(shù)之前,獲取轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù),判斷當前獲取的轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù)是否大于已調(diào)度的切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量,若是則執(zhí)行繼續(xù)獲取切片模塊104對應(yīng)的可用資源數(shù),直至調(diào)度完所有切片任務(wù)。
      [0065]本實施例中,已調(diào)度的切片任務(wù)對應(yīng)的轉(zhuǎn)碼子任務(wù)調(diào)度給轉(zhuǎn)碼模塊106后,該切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量會相應(yīng)地減少。具體地,該切片任務(wù)對應(yīng)的一個轉(zhuǎn)碼子任務(wù)調(diào)度給轉(zhuǎn)碼模塊106后,該切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量會減I。若當前獲取的轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù)大于已調(diào)度的切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量,說明已調(diào)度的切片任務(wù)切片完成后,生成對應(yīng)的轉(zhuǎn)碼子任務(wù),轉(zhuǎn)碼模塊106具有足夠數(shù)量的可用資源來執(zhí)行對應(yīng)的轉(zhuǎn)碼子任務(wù),此時可以繼續(xù)調(diào)度切片任務(wù)。相反,若當前獲取的轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù)不大于已調(diào)度的切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量,說明已調(diào)度的切片任務(wù)完成后,轉(zhuǎn)碼模塊106尚未有或者剛好具有足夠的可用資源執(zhí)行對應(yīng)的轉(zhuǎn)碼子任務(wù),此時可暫停調(diào)度切片任務(wù),待獲取的轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù)大于已調(diào)度的切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量時,再執(zhí)行繼續(xù)獲取切片模塊104對應(yīng)的可用資源數(shù),直至調(diào)度完所有切片任務(wù)。避免切片任務(wù)及后續(xù)對應(yīng)的轉(zhuǎn)碼子任務(wù)堆積,不能及時執(zhí)行,占用過多的存儲及運行資源,節(jié)省了存儲資源和運行資源。
      [0066]舉例說明,如圖4所示,在圖2左圖中,切片模塊1-4對應(yīng)的已用資源數(shù)分別為2、
      3、3和2,對應(yīng)的可用資源數(shù)分別為2、1、I和2,可見此時切片模塊I和切片模塊4對應(yīng)的可用資源數(shù)最多,可優(yōu)先向切片模塊I或切片模塊4分配切片任務(wù)。若先向切片模塊I調(diào)度一個切片任務(wù),如圖2中右圖所示,切片模塊1-4對應(yīng)的可用資源數(shù)分別為1、1、I和2,可再向切片模塊4調(diào)度一個切片任務(wù)。依此類推,直至調(diào)度完所有切片任務(wù)。
      [0067]本實施例中,逐個向當前對應(yīng)最多可用資源數(shù)的切片模塊104發(fā)送切片任務(wù)并執(zhí)行,可保證各個切片模塊104執(zhí)行的切片任務(wù)數(shù)大致平衡,避免切片任務(wù)分配不均而造成資源的浪費。
      [0068]參考圖3,調(diào)度模塊102還包括轉(zhuǎn)碼子任務(wù)調(diào)度模塊102e,用于獲取轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù),根據(jù)轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù)向?qū)?yīng)的轉(zhuǎn)碼模塊106調(diào)度轉(zhuǎn)碼子任務(wù)。
      [0069]轉(zhuǎn)碼模塊106對應(yīng)的一個可用資源,只能執(zhí)行一個轉(zhuǎn)碼子任務(wù),執(zhí)行轉(zhuǎn)碼子任務(wù)時該資源為已用資源,執(zhí)行完該轉(zhuǎn)碼子任務(wù)后釋放該資源,該資源再次成為可用資源。
      [0070]本實施例中,獲取轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù),可根據(jù)獲取的轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù)合理的調(diào)度轉(zhuǎn)碼子任務(wù)。比如,可向每個轉(zhuǎn)碼模塊106發(fā)送與該轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù)一致的轉(zhuǎn)碼子任務(wù)。根據(jù)轉(zhuǎn)碼模塊106的可用資源數(shù)發(fā)送轉(zhuǎn)碼子任務(wù),可保證各個轉(zhuǎn)碼模塊106具備足夠的可用資源執(zhí)行轉(zhuǎn)碼子任務(wù),可提高對視頻子文件進行轉(zhuǎn)碼的效率,進而提高整個視頻轉(zhuǎn)碼的效率。
      [0071 ] 在一個實施例中,轉(zhuǎn)碼子任務(wù)調(diào)度模塊102e還用于獲取轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù);向?qū)?yīng)最多可用資源數(shù)的轉(zhuǎn)碼模塊106調(diào)度一個轉(zhuǎn)碼子任務(wù),繼續(xù)獲取轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù),直至調(diào)度完所有轉(zhuǎn)碼子任務(wù)。
      [0072]具體地,當不存在可用資源時暫停發(fā)送轉(zhuǎn)碼子任務(wù),直到存在可用資源時繼續(xù)發(fā)送轉(zhuǎn)碼子任務(wù)。當多個轉(zhuǎn)碼模塊106對應(yīng)的可用資源數(shù)相同時,可按照預(yù)定順序或隨機選擇轉(zhuǎn)碼模塊106分配轉(zhuǎn)碼子任務(wù)。
      [0073]本實施例中,逐個向當前對應(yīng)最多可用資源數(shù)的轉(zhuǎn)碼模塊106發(fā)送轉(zhuǎn)碼子任務(wù)并執(zhí)行,可保證各個轉(zhuǎn)碼模塊106執(zhí)行的轉(zhuǎn)碼子任務(wù)數(shù)大致平衡,避免轉(zhuǎn)碼子任務(wù)分配不均而造成資源的浪費。
      [0074]參考圖3,調(diào)度模塊102還包括合片任務(wù)調(diào)度模塊102f,用于獲取合片模塊108對應(yīng)的可用資源數(shù),根據(jù)合片模塊108對應(yīng)的可用資源數(shù)向?qū)?yīng)的合片模塊108調(diào)度合片任務(wù)。
      [0075]合片模塊108對應(yīng)的一個可用資源,只能執(zhí)行一個合片任務(wù),執(zhí)行合片任務(wù)時該資源為已用資源,執(zhí)行完該合片任務(wù)后釋放該資源,該資源再次成為可用資源。
      [0076]本實施例中,獲取合片模塊108對應(yīng)的可用資源數(shù),可根據(jù)獲取的合片模塊108對應(yīng)的可用資源數(shù)合理的調(diào)度合片任務(wù)。比如,可向每個合片模塊108發(fā)送與該合片模塊108對應(yīng)的可用資源數(shù)一致的合片任務(wù)。根據(jù)合片模塊108的可用資源數(shù)發(fā)送合片任務(wù),可保證各個合片模塊108具備足夠的可用資源執(zhí)行合片任務(wù),可提高對視頻子文件進行轉(zhuǎn)碼的效率,進而提聞?wù)麄€視頻轉(zhuǎn)碼的效率。
      [0077]在一個實施例中,合片任務(wù)調(diào)度模塊102e還用于獲取合片模塊108對應(yīng)的可用資源數(shù);向?qū)?yīng)最多可用資源數(shù)的合片模塊108調(diào)度一個合片任務(wù),繼續(xù)獲取合片模塊108對應(yīng)的可用資源數(shù),直至調(diào)度完所有合片任務(wù)。
      [0078]具體地,當不存在可用資源時暫停發(fā)送合片任務(wù),直到存在可用資源時繼續(xù)發(fā)送合片任務(wù)。當多個合片模塊108對應(yīng)的可用資源數(shù)相同時,可按照預(yù)定順序或隨機選擇合片模塊108分配合片任務(wù)。
      [0079]本實施例中,逐個向當前對應(yīng)最多可用資源數(shù)的合片模塊108發(fā)送合片任務(wù)并執(zhí)行,可保證各個合片模塊108執(zhí)行的合片任務(wù)數(shù)大致平衡,避免合片任務(wù)分配不均而造成資源的浪費。
      [0080]在一個實施例中,該視頻轉(zhuǎn)碼方法還包括:調(diào)度模塊102定時向切片模塊104、轉(zhuǎn)碼模塊106和合片模塊108查詢?nèi)蝿?wù)完成進度;當接收到停止目標視頻源文件的視頻轉(zhuǎn)碼任務(wù)的指令后,根據(jù)查詢獲得的任務(wù)完成進度向正在執(zhí)行與目標視頻源文件相關(guān)的任務(wù)的模塊發(fā)送停止命令。這里的模塊指切片模塊104、轉(zhuǎn)碼模塊106和合片模塊108中的至少一種。其中視頻轉(zhuǎn)碼任務(wù)是指根據(jù)目標視頻源文件生成視頻轉(zhuǎn)碼文件的過程中的任務(wù)。
      [0081]本實施例中,定時向切片模塊104、轉(zhuǎn)碼模塊106和合片模塊108查詢?nèi)蝿?wù)完成進度,可獲知任務(wù)進展情況,當接收到停止視頻轉(zhuǎn)碼任務(wù)的指令后,根據(jù)查詢獲得的任務(wù)完成進度向正在執(zhí)行與目標視頻源文件相關(guān)的任務(wù)的模塊發(fā)送停止命令,便可停止視頻轉(zhuǎn)碼任務(wù),可方便地控制整個視頻轉(zhuǎn)碼任務(wù)進程。
      [0082]在一個實施例中,切片任務(wù)與合片任務(wù)可共用資源集。其中共用資源集指既可用來執(zhí)行切片任務(wù),又可用來執(zhí)行合片任務(wù)的資源的集合,但同一時間同一資源仍只能執(zhí)行一個任務(wù)。
      [0083]舉例說明,參考圖5,切片模塊I和合片模塊I對應(yīng)共用資源集1,切片模塊2和合片模塊2對應(yīng)共用資源集2,切片模塊3和合片模塊3對應(yīng)共用資源集3,切片模塊4和合片模塊4對應(yīng)共用資源集4。參考圖5中左圖,共用資源集I正在執(zhí)行一個切片任務(wù)和一個合片任務(wù),共用資源集2正在執(zhí)行2個合片任務(wù)和一個切片任務(wù),共用資源集3正在執(zhí)行2個切片任務(wù)和I個合片任務(wù),共用資源集4正在執(zhí)行2個切片任務(wù),因此,共用資源集1-4的可用資源數(shù)分別為2、1、1和2。此時,若是發(fā)送切片任務(wù),可向切片模塊I發(fā)送切片任務(wù),參考圖5中右圖,共用資源集I對應(yīng)的可用資源數(shù)變?yōu)镮。若再發(fā)送合片任務(wù),則可向合片模塊4發(fā)送合片任務(wù),共用資源集4的可用資源數(shù)變?yōu)镮。本實施例中,切片任務(wù)與合片任務(wù)可共用資源集,節(jié)省了資源。
      [0084]如圖6所示,在一個實施例中,提供了一種視頻轉(zhuǎn)碼方法,包括:
      [0085]步驟602,生成視頻源文件的切片任務(wù)。
      [0086]調(diào)度模塊接收到對視頻源文件進行轉(zhuǎn)碼的視頻轉(zhuǎn)碼任務(wù)后,生成視頻源文件的切片任務(wù),該切片任務(wù)用于將視頻源文件切割成多個視頻子文件。一個視頻源文件對應(yīng)一個切片任務(wù),當有多個視頻源文件即有多個視頻轉(zhuǎn)碼任務(wù)時,將生成對應(yīng)的多個切片任務(wù)。
      [0087]步驟604,執(zhí)行切片任務(wù)對視頻源文件進行切片,獲得多個視頻子文件。
      [0088]調(diào)度模塊將生成的切片任務(wù)發(fā)送給切片模塊,切片模塊調(diào)用可用資源執(zhí)行切片任務(wù)從而對視頻源文件進行切片,獲得多個視頻子文件。
      [0089]步驟606,生成對應(yīng)每個視頻子文件的轉(zhuǎn)碼子任務(wù)。
      [0090]切片完成獲得視頻子文件后,調(diào)度模塊生成對應(yīng)每個視頻子文件的轉(zhuǎn)碼子任務(wù),轉(zhuǎn)碼子任務(wù)用于將對應(yīng)的視頻子文件轉(zhuǎn)碼成為轉(zhuǎn)碼子文件。
      [0091]當視頻源文件對應(yīng)的視頻轉(zhuǎn)碼任務(wù)對應(yīng)輸出一路轉(zhuǎn)碼視頻文件,即輸出一種轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件時,一個視頻子文件對應(yīng)一個轉(zhuǎn)碼子任務(wù);若對應(yīng)輸出多路視頻文件,即輸出多種轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件時,一個視頻子文件對應(yīng)多個轉(zhuǎn)碼子任務(wù),且一個視頻子文件對應(yīng)的轉(zhuǎn)碼子任務(wù)的數(shù)量與轉(zhuǎn)碼規(guī)格信息的種類數(shù)相同。
      [0092]其中,轉(zhuǎn)碼規(guī)格信息為轉(zhuǎn)碼后獲得的轉(zhuǎn)碼視頻文件的視頻參數(shù),包括但不限于幀率、碼率、分辨率和編碼格式等中的至少一種。對于一個視頻子文件對應(yīng)的轉(zhuǎn)碼子任務(wù),不同的轉(zhuǎn)碼規(guī)格信息分別對應(yīng)不同的轉(zhuǎn)碼子任務(wù),轉(zhuǎn)碼后獲得與轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件。
      [0093]步驟608,執(zhí)行轉(zhuǎn)碼子任務(wù)對每個視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件。
      [0094]調(diào)度模塊生成對應(yīng)每個視頻子文件的轉(zhuǎn)碼子任務(wù)后,將生成的轉(zhuǎn)碼子任務(wù)發(fā)送給轉(zhuǎn)碼模塊。轉(zhuǎn)碼模塊調(diào)用可用資源執(zhí)行轉(zhuǎn)碼子任務(wù)從而將視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件。
      [0095]步驟610,生成對應(yīng)轉(zhuǎn)碼子文件的合片任務(wù)。
      [0096]將視頻子文件轉(zhuǎn)碼成為轉(zhuǎn)碼子文件后,調(diào)度模塊生成對應(yīng)轉(zhuǎn)碼子文件的合片任務(wù),合片任務(wù)用于將對應(yīng)的轉(zhuǎn)碼子文件合并為轉(zhuǎn)碼視頻文件。
      [0097]步驟612,執(zhí)行合片任務(wù)將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。
      [0098]合片模塊接收到調(diào)度模塊生成的合片任務(wù)后,執(zhí)行該合片任務(wù)從而將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。
      [0099]在一個實施例中,視頻源文件、視頻子文件以及轉(zhuǎn)碼子文件存儲于公共存儲中,需要時憑視頻源文件、視頻子文件或轉(zhuǎn)碼子文件的存儲地址進行讀取寫入操作??杀苊獯罅繑?shù)據(jù)的傳輸帶來的傳輸資源和時間的損耗,提高視頻轉(zhuǎn)碼效率。
      [0100]上述視頻轉(zhuǎn)碼方法,執(zhí)行切片任務(wù)對視頻源文件進行切片獲得多個視頻子文件,執(zhí)行轉(zhuǎn)碼子任務(wù)對每個視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件,執(zhí)行合片任務(wù)將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。相對于轉(zhuǎn)碼子任務(wù),切片任務(wù)和合片任務(wù)所用時間很少,對整個視頻轉(zhuǎn)碼過程的效率影響很小。將原來對應(yīng)一個視頻源文件的一個大的視頻轉(zhuǎn)碼任務(wù),轉(zhuǎn)化為多個小的轉(zhuǎn)碼子任務(wù),可通過并行處理多個小的轉(zhuǎn)碼子任務(wù)實現(xiàn)視頻轉(zhuǎn)碼,大大提高了視頻轉(zhuǎn)碼的效率。
      [0101]在一個實施例中,執(zhí)行切片任務(wù)對視頻源文件進行切片,獲得多個視頻子文件的步驟之前還包括:根據(jù)預(yù)設(shè)的切片閾值和/或用于轉(zhuǎn)碼的資源總數(shù)計算預(yù)計視頻子文件數(shù);根據(jù)預(yù)計視頻子文件數(shù)為轉(zhuǎn)碼預(yù)分配用于轉(zhuǎn)碼的可用資源數(shù)量。執(zhí)行切片任務(wù)對視頻源文件進行切片,獲得多個視頻子文件的步驟之后還包括:獲取視頻子文件數(shù),根據(jù)視頻子文件數(shù)更新預(yù)分配的用于轉(zhuǎn)碼的可用資源數(shù)量。
      [0102]本實施例中,預(yù)設(shè)的切片閾值可以是預(yù)設(shè)的單個視頻子文件的大小或者切片數(shù)??稍趫?zhí)行切片任務(wù)前,即為轉(zhuǎn)碼預(yù)分配用于轉(zhuǎn)碼的可用資源,當執(zhí)行轉(zhuǎn)碼子任務(wù)時,便有充足的用于轉(zhuǎn)碼的可用資源執(zhí)行轉(zhuǎn)碼子任務(wù),從而提高視頻轉(zhuǎn)碼的效率。
      [0103]根據(jù)預(yù)計視頻子文件數(shù)為轉(zhuǎn)碼預(yù)分配用于轉(zhuǎn)碼的可用資源數(shù)量。若只有一路輸出時,這里預(yù)分配的用于轉(zhuǎn)碼的可用資源數(shù)量等于預(yù)計視頻子文件數(shù);若有多路輸出,則預(yù)分配的用于轉(zhuǎn)碼的可用資源數(shù)量等于預(yù)計視頻子文件數(shù)與轉(zhuǎn)碼規(guī)格信息種類數(shù)的乘積。需要說明的是,由于此時還未切片,更未生成對應(yīng)的轉(zhuǎn)碼子任務(wù),因此預(yù)分配的可用資源數(shù)量是一個總量,并不對應(yīng)每個轉(zhuǎn)碼子任務(wù)。
      [0104]在切片完成后,獲取視頻子文件數(shù),根據(jù)視頻子文件數(shù)更新預(yù)分配的用于轉(zhuǎn)碼的可用資源數(shù)量。由于實際的視頻子文件數(shù)(如無特別說明,視頻子文件數(shù)就是實際的視頻子文件數(shù))與預(yù)計視頻子文件數(shù)不一定相同,因此切片任務(wù)完成后,需要根據(jù)視頻子文件數(shù)更新預(yù)分配的用于轉(zhuǎn)碼的可用資源的數(shù)量,避免預(yù)分配過多資源浪費資源。
      [0105]在一個實施例中,根據(jù)預(yù)設(shè)的切片閾值和用于轉(zhuǎn)碼的資源總數(shù)計算預(yù)計視頻子文件數(shù)。本實施例中,預(yù)設(shè)的切片閾值是預(yù)設(shè)的單個視頻子文件的大小。具體地,先使用視頻源文件的文件大小除以用于轉(zhuǎn)碼的資源總數(shù)獲得中間值,若該中間值大于切片閾值,則預(yù)計視頻子文件數(shù)等于用于轉(zhuǎn)碼的資源總數(shù);反之,若中間值不大于切片閾值,則預(yù)計視頻子文件數(shù)等于視頻源文件的文件大小除以切片閾值的值。這里的用于轉(zhuǎn)碼的資源總數(shù),是指所有用于轉(zhuǎn)碼的資源(包括已用和可用資源)的總數(shù)。
      [0106]本實施例中,根據(jù)預(yù)設(shè)的切片閾值和用于轉(zhuǎn)碼的資源總數(shù)計算預(yù)計視頻子文件數(shù),可以保證預(yù)計視頻子文件數(shù)總是大于等于實際的視頻子文件數(shù),從而可以保證為轉(zhuǎn)碼預(yù)分配的資源足夠用。切片任務(wù)完成后,獲取視頻子文件數(shù),根據(jù)視頻子文件數(shù)更新預(yù)分配的可用資源,將不會使用的可用資源釋放出來,避免資源的浪費。
      [0107]需要說明的是,計算獲得的預(yù)計視頻子文件數(shù)與實際的視頻子文件數(shù)可能有差距。因此,執(zhí)行轉(zhuǎn)碼子任務(wù)對每個視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件的步驟之前,還包括:獲取視頻子文件數(shù),根據(jù)獲取的視頻子文件數(shù)調(diào)整預(yù)分配的用于轉(zhuǎn)碼的可用資源。通過獲取實際的視頻子文件數(shù)調(diào)整預(yù)分配的可用資源,可避免可用資源的浪費。
      [0108]在一個實施例中,生成對應(yīng)轉(zhuǎn)碼子文件的合片任務(wù)的步驟,包括:相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子任務(wù)完成后,生成相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件所對應(yīng)的合片任務(wù)。
      [0109]執(zhí)行合片任務(wù)將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件的步驟包括:執(zhí)行相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的合片任務(wù),將相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的多個轉(zhuǎn)碼子文件合并,獲得合并后的與相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件。
      [0110]本實施例中,當需要輸出多種轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件時,在相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子任務(wù)全部完成后,即可生成該相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件所對應(yīng)的合片任務(wù)。執(zhí)行該相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的合片任務(wù),從而將相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的多個轉(zhuǎn)碼子文件合并,獲得合并后的與相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件。
      [0111]本實施例中,無需等待全部轉(zhuǎn)碼子任務(wù)完成,即可將一種轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件進行合片處理,獲得對應(yīng)的轉(zhuǎn)碼視頻轉(zhuǎn)碼文件,提高了視頻轉(zhuǎn)碼的效率。
      [0112]在一個實施例中,生成對應(yīng)每個視頻子文件的轉(zhuǎn)碼子任務(wù)的步驟之后,還包括:獲取轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼規(guī)格信息,根據(jù)獲取的轉(zhuǎn)碼規(guī)格信息估算轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼耗時;按照轉(zhuǎn)碼耗時從高到低的順序為對應(yīng)的轉(zhuǎn)碼子任務(wù)分配用于轉(zhuǎn)碼的可用資源。
      [0113]本實施例中,按照轉(zhuǎn)碼耗時從高到低的順序為對應(yīng)的轉(zhuǎn)碼子任務(wù)分配用于轉(zhuǎn)碼的可用資源,優(yōu)先為轉(zhuǎn)碼耗時多的轉(zhuǎn)碼子任務(wù)分配可用資源,可保證耗時多的轉(zhuǎn)碼子任務(wù)先執(zhí)行,總體上所有轉(zhuǎn)碼子任務(wù)完成的時間相差不大,相對于不按照轉(zhuǎn)碼耗時排序發(fā)送轉(zhuǎn)碼子任務(wù),節(jié)省了時間,提高了轉(zhuǎn)碼效率。
      [0114]在一個實施例中,執(zhí)行切片任務(wù)對視頻源文件進行切片,獲得多個視頻子文件的步驟之前還包括:獲取用于切片的可用資源數(shù),根據(jù)用于切片的可用資源數(shù)為切片任務(wù)分配用于切片的可用資源。
      [0115]本實施例中,將多個視頻源文件進行切片處理,獲取用于切片的可用資源數(shù),可根據(jù)獲取的用于切片的可用資源數(shù)合理的為切片任務(wù)分配可用資源,可保證有足夠的可用資源執(zhí)行切片任務(wù),可提聞切片的效率,進而提聞?wù)麄€視頻轉(zhuǎn)碼的效率。
      [0116]在一個實施例中,獲取用于切片的可用資源數(shù),根據(jù)用于切片的可用資源數(shù)為切片任務(wù)分配用于切片的可用資源的步驟具體包括:獲取用于切片的資源集對應(yīng)的可用資源數(shù),為一個切片任務(wù)分配對應(yīng)最多可用資源數(shù)的用于切片的資源集中的一個可用資源,繼續(xù)獲取用于切片的資源集對應(yīng)的可用資源數(shù),直至為所有切片任務(wù)分配了可用資源。
      [0117]在一個實施例中,在繼續(xù)獲取用于切片的資源集對應(yīng)的可用資源數(shù)之前,還包括:獲取用于轉(zhuǎn)碼的資源集對應(yīng)的可用資源數(shù),判斷當前獲取的用于轉(zhuǎn)碼的可用資源數(shù)是否大于已分配了可用資源的切片任務(wù)對應(yīng)的預(yù)分配的用于轉(zhuǎn)碼的可用資源數(shù)量,若是則執(zhí)行繼續(xù)獲取用于切片的資源集對應(yīng)的可用資源數(shù),直至為所有切片任務(wù)分配了可用資源的步驟。
      [0118]本實施例中,已分配了可用資源的切片任務(wù)對應(yīng)的轉(zhuǎn)碼子任務(wù)分配了用于轉(zhuǎn)碼的可用資源后,該切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量會相應(yīng)地減少。具體地,該切片任務(wù)對應(yīng)的一個轉(zhuǎn)碼子任務(wù)分配了一個用于轉(zhuǎn)碼的可用資源后,該切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量會減I。若當前獲取的用于轉(zhuǎn)碼的可用資源數(shù)大于已調(diào)度的切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量,說明已調(diào)度的切片任務(wù)切片完成后,生成對應(yīng)的轉(zhuǎn)碼子任務(wù),具有足夠數(shù)量的用于轉(zhuǎn)碼的可用資源來執(zhí)行對應(yīng)的轉(zhuǎn)碼子任務(wù),此時可以繼續(xù)調(diào)度切片任務(wù)。相反,若當前獲取的用于轉(zhuǎn)碼的可用資源數(shù)不大于已調(diào)度的切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量,說明已調(diào)度的切片任務(wù)完成后,尚未有或者剛好具有足夠的用于轉(zhuǎn)碼的可用資源執(zhí)行對應(yīng)的轉(zhuǎn)碼子任務(wù),此時可暫停調(diào)度切片任務(wù),待獲取的用于轉(zhuǎn)碼的可用資源數(shù)大于已調(diào)度的切片任務(wù)對應(yīng)的預(yù)分配的可用資源數(shù)量時,再執(zhí)行繼續(xù)獲取用于切片的資源集對應(yīng)的可用資源數(shù),直至為所有切片任務(wù)分配了可用資源的步驟。避免切片任務(wù)及后續(xù)對應(yīng)的轉(zhuǎn)碼子任務(wù)堆積,不能及時執(zhí)行,占用過多的存儲及運行資源,節(jié)省了存儲資源和運行資源。
      [0119]本實施例中,逐個為每個切片任務(wù)分配對應(yīng)最多可用資源數(shù)的用于切片的資源集中的一個可用資源,可保證各個用于切片的資源集對應(yīng)的切片任務(wù)數(shù)大致平衡,避免用于切片的可用資源分配不均而造成資源的浪費。[0120]在一個實施例中,執(zhí)行轉(zhuǎn)碼子任務(wù)對每個視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件的步驟之前還包括:獲取用于轉(zhuǎn)碼的可用資源數(shù),根據(jù)用于轉(zhuǎn)碼的可用資源數(shù)為轉(zhuǎn)碼子任務(wù)分配用于轉(zhuǎn)碼的可用資源。
      [0121]本實施例中,將多個視頻源文件進行轉(zhuǎn)碼處理,獲取用于轉(zhuǎn)碼的可用資源數(shù),可根據(jù)獲取的用于轉(zhuǎn)碼的可用資源數(shù)合理的為轉(zhuǎn)碼子任務(wù)分配可用資源,可保證有足夠的可用資源執(zhí)行轉(zhuǎn)碼子任務(wù),可提高將視頻子文件進行轉(zhuǎn)碼的效率,進而提高整個視頻轉(zhuǎn)碼的效率。
      [0122]在一個實施例中,獲取用于轉(zhuǎn)碼的可用資源數(shù),根據(jù)用于轉(zhuǎn)碼的可用資源數(shù)為轉(zhuǎn)碼子任務(wù)分配用于轉(zhuǎn)碼的可用資源具體包括:獲取用于轉(zhuǎn)碼的資源集對應(yīng)的可用資源數(shù),為一個轉(zhuǎn)碼子任務(wù)分配對應(yīng)最多可用資源數(shù)的用于轉(zhuǎn)碼的資源集中的一個可用資源,繼續(xù)獲取用于轉(zhuǎn)碼的資源集對應(yīng)的可用資源數(shù),直至為所有轉(zhuǎn)碼子任務(wù)分配了可用資源。
      [0123]本實施例中,逐個為每個轉(zhuǎn)碼子任務(wù)分配對應(yīng)最多可用資源數(shù)的用于轉(zhuǎn)碼的資源集中的一個可用資源,可保證各個用于轉(zhuǎn)碼的資源集對應(yīng)的轉(zhuǎn)碼子任務(wù)數(shù)大致平衡,避免用于轉(zhuǎn)碼的可用資源分配不均而造成資源的浪費。
      [0124]在一個實施例中,執(zhí)行合片任務(wù)將多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件的步驟之前還包括:獲取用于合片的可用資源數(shù),根據(jù)用于合片的可用資源數(shù)為合片任務(wù)分配用于合片的可用資源。
      [0125]本實施例中,將多個視頻源文件進行合片處理,獲取用于合片的可用資源數(shù),可根據(jù)獲取的用于合片的可用資源數(shù)合理的為合片任務(wù)分配可用資源,可保證有足夠的可用資源執(zhí)行合片任務(wù),可提聞合片的效率,進而提聞?wù)麄€視頻轉(zhuǎn)碼的效率。
      [0126]在一個實施例中,獲取用于合片的可用資源數(shù),根據(jù)用于合片的可用資源數(shù)為合片任務(wù)分配用于合片的可用資源具體包括:獲取用于合片的資源集對應(yīng)的可用資源數(shù),為一個合片任務(wù)分配對應(yīng)最多可用資源數(shù)的用于合片的資源集中的一個可用資源,繼續(xù)獲取用于合片的資源集對應(yīng)的可用資源數(shù),直至為所有合片任務(wù)分配了可用資源。
      [0127]本實施例中,逐個為每個合片任務(wù)分配對應(yīng)最多可用資源數(shù)的用于合片的資源集中的一個可用資源,可保證各個用于合片的資源集對應(yīng)的合片任務(wù)數(shù)大致平衡,避免用于合片的可用資源分配不均而造成資源的浪費。
      [0128]在一個實施例中,切片任務(wù)與合片任務(wù)可共用資源集。其中共用資源集指既可用來執(zhí)行切片任務(wù),又可用來執(zhí)行合片任務(wù)的資源的集合,但同一時間同一資源仍只能執(zhí)行一個任務(wù)。本實施例中,切片任務(wù)與合片任務(wù)可共用資源集,節(jié)省了資源。
      [0129]以上所述實施例僅表達了本發(fā)明的幾種實施方式,其描述較為具體和詳細,但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進,這些都屬于本發(fā)明的保護范圍。因此,本發(fā)明專利的保護范圍應(yīng)以所附權(quán)利要求為準。
      【權(quán)利要求】
      1.一種視頻轉(zhuǎn)碼系統(tǒng),其特征在于,所述系統(tǒng)包括調(diào)度模塊、切片模塊、轉(zhuǎn)碼模塊和合片模塊;其中, 所述調(diào)度模塊用于生成視頻源文件的切片任務(wù); 所述切片模塊用于執(zhí)行所述切片任務(wù)對所述視頻源文件進行切片,獲得多個視頻子文件; 所述調(diào)度模塊還用于生成對應(yīng)每個所述視頻子文件的轉(zhuǎn)碼子任務(wù); 所述轉(zhuǎn)碼模塊用于執(zhí)行所述轉(zhuǎn)碼子任務(wù)對每個所述視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件; 所述調(diào)度模塊還用于生成對應(yīng)所述轉(zhuǎn)碼子文件的合片任務(wù); 所述合片模塊,用于執(zhí)行所述合片任務(wù)將所述多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。
      2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述調(diào)度模塊包括: 計算模塊,用于根據(jù)預(yù)設(shè)的切片閾值和/或所述轉(zhuǎn)碼模塊對應(yīng)的資源總數(shù)計算預(yù)計視頻子文件數(shù); 資源預(yù)分配模塊,用于根據(jù)所述預(yù)計視頻子文件數(shù)為轉(zhuǎn)碼預(yù)分配可用資源數(shù)量,所述預(yù)分配的可用資源對應(yīng)所述轉(zhuǎn)碼模塊; 資源預(yù)分配更新模塊,用于獲取所述視頻子文件數(shù),根據(jù)所述視頻子文件數(shù)更新所述預(yù)分配的可用資源數(shù)量。
      3.根據(jù)權(quán)利要求1所述 的系統(tǒng),其特征在于,所述調(diào)度模塊還用于在相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子任務(wù)完成后,生成所述相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件所對應(yīng)的合片任務(wù); 所述合片模塊還用于執(zhí)行所述相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的合片任務(wù),將所述相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的多個轉(zhuǎn)碼子文件合并,獲得合并后的與所述相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件。
      4.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述調(diào)度模塊還用于獲取所述轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼規(guī)格信息,根據(jù)所述獲取的轉(zhuǎn)碼規(guī)格信息估算所述轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼耗時;按照轉(zhuǎn)碼耗時從高到低的順序為對應(yīng)的所述轉(zhuǎn)碼子任務(wù)分配所述轉(zhuǎn)碼模塊對應(yīng)的可用資源。
      5.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述調(diào)度模塊包括: 切片任務(wù)調(diào)度模塊,用于獲取所述切片模塊對應(yīng)的可用資源數(shù),根據(jù)所述切片模塊對應(yīng)的可用資源數(shù)向?qū)?yīng)的所述切片模塊調(diào)度所述切片任務(wù); 轉(zhuǎn)碼子任務(wù)調(diào)度模塊,用于獲取所述轉(zhuǎn)碼模塊對應(yīng)的可用資源數(shù),根據(jù)所述轉(zhuǎn)碼模塊對應(yīng)的可用資源數(shù)向?qū)?yīng)的所述轉(zhuǎn)碼模塊調(diào)度所述轉(zhuǎn)碼子任務(wù); 合片任務(wù)調(diào)度模塊,用于獲取所述合片模塊對應(yīng)的可用資源數(shù),根據(jù)所述合片模塊對應(yīng)的可用資源數(shù)向?qū)?yīng)的所述合片模塊調(diào)度所述合片任務(wù)。
      6.一種視頻轉(zhuǎn)碼方法,所述方法包括: 生成視頻源文件的切片任務(wù); 執(zhí)行所述切片任務(wù)對所述視頻源文件進行切片,獲得多個視頻子文件; 生成對應(yīng)每個所述視頻子文件的轉(zhuǎn)碼子任務(wù);執(zhí)行所述轉(zhuǎn)碼子任務(wù)對每個所述視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件; 生成對應(yīng)所述轉(zhuǎn)碼子文件的合片任務(wù); 執(zhí)行所述合片任務(wù)將所述多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件。
      7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述執(zhí)行所述切片任務(wù)對所述視頻源文件進行切片,獲得多個視頻子文件之前還包括: 根據(jù)預(yù)設(shè)的切片閾值和/或用于轉(zhuǎn)碼的資源總數(shù)計算預(yù)計視頻子文件數(shù); 根據(jù)所述預(yù)計視頻子文件數(shù)為轉(zhuǎn)碼預(yù)分配用于轉(zhuǎn)碼的可用資源數(shù)量; 所述執(zhí)行所述切片任務(wù)對所述視頻源文件進行切片,獲得多個視頻子文件之后,還包括: 獲取所述視頻子文件數(shù),根據(jù)所述視頻子文件數(shù)更新所述預(yù)分配的用于轉(zhuǎn)碼的可用資源數(shù)量。
      8.根據(jù)權(quán) 利要求6所述的方法,其特征在于,所述生成對應(yīng)所述轉(zhuǎn)碼子文件的合片任務(wù),包括: 相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子任務(wù)完成后,生成所述相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼子文件所對應(yīng)的合片任務(wù); 所述執(zhí)行所述合片任務(wù)將所述多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件,包括: 執(zhí)行所述相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的合片任務(wù),將所述相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的多個轉(zhuǎn)碼子文件合并,獲得合并后的與所述相同轉(zhuǎn)碼規(guī)格信息對應(yīng)的轉(zhuǎn)碼視頻文件。
      9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述生成對應(yīng)每個所述視頻子文件的轉(zhuǎn)碼子任務(wù)之后,還包括: 獲取所述轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼規(guī)格信息,根據(jù)所述獲取的轉(zhuǎn)碼規(guī)格信息估算所述轉(zhuǎn)碼子任務(wù)對應(yīng)的轉(zhuǎn)碼耗時; 按照轉(zhuǎn)碼耗時從高到低的順序為對應(yīng)的所述轉(zhuǎn)碼子任務(wù)分配用于轉(zhuǎn)碼的可用資源。
      10.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述執(zhí)行所述切片任務(wù)對所述視頻源文件進行切片,獲得多個視頻子文件之前,還包括: 獲取用于切片的可用資源數(shù),根據(jù)所述用于切片的可用資源數(shù)為所述切片任務(wù)分配用于切片的可用資源; 所述執(zhí)行所述轉(zhuǎn)碼子任務(wù)對每個所述視頻子文件進行轉(zhuǎn)碼,獲得對應(yīng)的多個轉(zhuǎn)碼子文件之前,還包括: 獲取用于轉(zhuǎn)碼的可用資源數(shù),根據(jù)所述用于轉(zhuǎn)碼的可用資源數(shù)為所述轉(zhuǎn)碼子任務(wù)分配用于轉(zhuǎn)碼的可用資源; 所述執(zhí)行所述合片任務(wù)將所述多個轉(zhuǎn)碼子文件合并,獲得合并后的轉(zhuǎn)碼視頻文件之前,還包括: 獲取用于合片的可用資源數(shù),根據(jù)所述用于合片的可用資源數(shù)為所述合片任務(wù)分配用于合片的可用資源。
      【文檔編號】H04N21/234GK103458270SQ201310409688
      【公開日】2013年12月18日 申請日期:2013年9月9日 優(yōu)先權(quán)日:2013年9月9日
      【發(fā)明者】陳智偉 申請人:深圳市融創(chuàng)天下科技股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1