本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種直播任務(wù)管理調(diào)度方法及其系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的快速發(fā)展,各種各樣的直播業(yè)務(wù)也呈井噴之勢涌現(xiàn),為了適應(yīng)不同的帶寬下用戶播放的流暢性,同一個直播頻道需要支持具有不同的分辨率和視頻碼率。
一般地,一個頻道的直播源的碼率是不變的。直播流的音頻格式一般為h264,音頻一般為mpga,而在某些場景下,需要將音頻轉(zhuǎn)為aac等其他格式。為了滿足用戶不同碼率的使用情況,需要能夠進(jìn)行直播任務(wù)處理。同時為了保證直播的不間斷性,需要對直播的切片做主備的處理。然而,當(dāng)直播頻道數(shù)量較多時,會存在如下的情況:
1)為了保證在異常情況下直播服務(wù)不中斷,同一個直播頻道需要同時有兩臺服務(wù)器做直播切流處理;
2)一個直播源可能需要按照要求同時轉(zhuǎn)成幾個不同碼率的直播流切片,對服務(wù)器的配置和性能要求非常高,比如對cpu、內(nèi)存等都有較高要求,這種配置的cpu價格一般是普通cpu的4倍,甚至10倍的價格,這種高配置的服務(wù)器價格都異常昂貴;
3)一個1080p(高清)的直播源轉(zhuǎn)碼成720p的直播,在高配置下的服務(wù)器最多也只能同時處理20多個這樣的碼率轉(zhuǎn)換,而當(dāng)高清轉(zhuǎn)成480p甚至更低碼率時,相同配置的服務(wù)器可以同時處理的數(shù)量更多;
目前,現(xiàn)有的調(diào)度策略是采用按照每臺服務(wù)器處理的任務(wù)數(shù)進(jìn)行調(diào)度,因而,有可能相同配置的有些服務(wù)器的性能已經(jīng)達(dá)到極限,甚至超過極限,而另外有些服務(wù)器卻依然很空閑,這樣一來,為了保證所有的直播任務(wù)都能正常處理,可能需要比理想中更多的服務(wù)器,這樣可能造成成本會大大地超過項(xiàng)目的預(yù)期。
因此,如何在有限設(shè)備的情況下能夠保質(zhì)保量地完成直播任務(wù)一直是業(yè)界亟需解決的問題。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種直播任務(wù)管理調(diào)度方法及其系統(tǒng)。所述技術(shù)方案如下:
一方面,一種直播任務(wù)管理調(diào)度方法,其中,所述方法包括以下步驟:
獲取所述直播任務(wù)的轉(zhuǎn)碼需求;
根據(jù)所述轉(zhuǎn)碼需求及預(yù)先配置的任務(wù)權(quán)重對應(yīng)表,確定所述直播任務(wù)的任務(wù)權(quán)重;
查詢?nèi)蝿?wù)權(quán)重記錄表,確定當(dāng)前承載的任務(wù)權(quán)重最小的任務(wù)服務(wù)器組;
判斷所述任務(wù)服務(wù)器組是否可以承載所述直播任務(wù),若可以,則下發(fā)所述直播任務(wù)給所述任務(wù)服務(wù)器組,并更新所述任務(wù)權(quán)重記錄表中所述任務(wù)服務(wù)器組的記錄。
進(jìn)一步的,所述轉(zhuǎn)碼需求包含所述直播任務(wù)中源文件的原始分辨率,原始碼率,目標(biāo)分辨率和目標(biāo)碼率。
進(jìn)一步的,所述任務(wù)權(quán)重對應(yīng)表包含原始分辨率,原始碼率,目標(biāo)分辨率,目標(biāo)碼率及由所述原始分辨率和所述原始碼率轉(zhuǎn)換成所述目標(biāo)分辨率和所述目標(biāo)碼率的任務(wù)權(quán)重。
進(jìn)一步的,所述任務(wù)權(quán)重記錄表包含各任務(wù)服務(wù)器組識別信息,及每個所述任務(wù)服務(wù)器組承載的任務(wù)權(quán)重。
進(jìn)一步的,所述判斷所述任務(wù)服務(wù)器組是否可以承載所述直播任務(wù)方法包含,判斷所述任務(wù)服務(wù)器組當(dāng)前承載的任務(wù)權(quán)重與所述直播任務(wù)的任務(wù)權(quán)重之和是否大于將所述任務(wù)服務(wù)器組的任務(wù)權(quán)重最大承載量,若大于,則判定所述任務(wù)服務(wù)器組不可以承載所述直播任務(wù),若不大于,則判定所述任務(wù)服務(wù)器組可以承載所述直播任務(wù)。
進(jìn)一步的,若判定所述任務(wù)服務(wù)器組不可以承載所述直播任務(wù),則新建任務(wù)服務(wù)器組,將所述直播任務(wù)下發(fā)至新建的所述任務(wù)服務(wù)器組,并在所述任務(wù)權(quán)重記錄表中新增相應(yīng)記錄。
進(jìn)一步的,所述任務(wù)服務(wù)器組中包含至少一臺任務(wù)服務(wù)器。
進(jìn)一步的,所述任務(wù)服務(wù)器組中的所述任務(wù)服務(wù)器處理相同的直播任務(wù)。
另一方面,一種直播任務(wù)管理調(diào)度系統(tǒng),其中,所述直播任務(wù)管理調(diào)度系統(tǒng)與多個任務(wù)服務(wù)器通信,其中,所述直播任務(wù)管理調(diào)度系統(tǒng)包括:
任務(wù)接收模塊,用于接收直播任務(wù);
文件管理模塊,用于存儲和更新任務(wù)權(quán)重對應(yīng)表和任務(wù)權(quán)重記錄表;
任務(wù)服務(wù)器管理模塊,用于對所述多個任務(wù)服務(wù)器進(jìn)行組別的劃分和管理;
任務(wù)調(diào)度模塊,其中,所述任務(wù)調(diào)度模塊從所述任務(wù)接收模塊獲取所述直播任務(wù),根據(jù)所述直播任務(wù)的轉(zhuǎn)碼需求查詢所述文件管理模塊中的所述任務(wù)權(quán)重對應(yīng)表,確定所述直播任務(wù)的任務(wù)權(quán)重;通過所述任務(wù)權(quán)重記錄表確定當(dāng)前承載任務(wù)權(quán)重最小的任務(wù)服務(wù)器組,并判斷所述任務(wù)服務(wù)器組是否可以承載所述直播任務(wù),若可以,則下發(fā)所述直播任務(wù)給所述任務(wù)服務(wù)器組,并請求所述文件管理模塊更新所述任務(wù)權(quán)重記錄表中所述任務(wù)服務(wù)器組的記錄。
進(jìn)一步的,所述轉(zhuǎn)碼需求包含所述直播任務(wù)中源文件的原始分辨率,原始碼率,目標(biāo)分辨率和目標(biāo)碼率。
進(jìn)一步的,所述任務(wù)權(quán)重對應(yīng)表包含原始分辨率,原始碼率,目標(biāo)分辨率,目標(biāo)碼率及由所述原始分辨率和所述原始碼率轉(zhuǎn)換成所述目標(biāo)分辨率和所述目標(biāo)碼率的任務(wù)權(quán)重。
進(jìn)一步的,所述任務(wù)權(quán)重記錄表包含各任務(wù)服務(wù)器組識別信息,及每個所述任務(wù)服務(wù)器組承載的任務(wù)權(quán)重。
進(jìn)一步的,所述任務(wù)調(diào)度模塊判斷所述任務(wù)服務(wù)器組是否可以承載所述直播任務(wù)方法包含,判斷所述任務(wù)服務(wù)器組當(dāng)前承載的任務(wù)權(quán)重與所述直播任務(wù)的任務(wù)權(quán)重之和是否大于將所述任務(wù)服務(wù)器組的任務(wù)權(quán)重最大承載量,若大于,則判定所述任務(wù)服務(wù)器組不可以承載所述直播任務(wù),若不大于,則判定所述任務(wù)服務(wù)器組可以承載所述直播任務(wù)。
進(jìn)一步的,若判定所述任務(wù)服務(wù)器組不可以承載所述直播任務(wù),所述任務(wù)調(diào)度模塊向所述任務(wù)服務(wù)器管理模塊發(fā)送新建任務(wù)服務(wù)器組請求;所述任務(wù)服務(wù)器管理模塊接收所述請求后,新建任務(wù)服務(wù)器組,并返回所述新建任務(wù)服務(wù)器組的識別信息至所述文件管理模塊和所述任務(wù)調(diào)度模塊,所述任務(wù)調(diào)度模塊將所述直播任務(wù)下發(fā)至新建的所述任務(wù)服務(wù)器組,所述文件管理模塊在所述任務(wù)權(quán)重記錄表中新增相應(yīng)記錄。
進(jìn)一步的,所述任務(wù)服務(wù)器管理模塊根據(jù)預(yù)先設(shè)置的備份數(shù)設(shè)置所述任務(wù)服務(wù)器組中包含的任務(wù)服務(wù)器數(shù)。
進(jìn)一步的,所述任務(wù)服務(wù)器管理模塊根據(jù)預(yù)先設(shè)置的直播頻道數(shù)設(shè)置初始的任務(wù)服務(wù)器分組數(shù)。
本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:能夠根據(jù)服務(wù)器的性能和負(fù)載等情況,智能地將直播任務(wù)處理的任務(wù)均衡地分配給所有直播任務(wù)的任務(wù)服務(wù)器來進(jìn)行處理,在保證直播服務(wù)正常的情況下,有效地解決了在有限的設(shè)備情況下也能夠保質(zhì)保量地完成直播任務(wù)的問題,能最大限度地使用設(shè)備的性能。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明一實(shí)施方式中直播任務(wù)管理調(diào)度方法流程圖;
圖2為本發(fā)明一實(shí)施方式中直播任務(wù)管理調(diào)度系統(tǒng)10的內(nèi)部結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
以下將對本發(fā)明所提供的一種直播任務(wù)管理調(diào)度方法進(jìn)行詳細(xì)說明。
請參閱圖1,為本發(fā)明一實(shí)施方式中直播任務(wù)管理調(diào)度方法流程圖。
在一實(shí)施方式中,該直播任務(wù)管理調(diào)度方法應(yīng)用于直播任務(wù)管理調(diào)度系統(tǒng),其中,該直播任務(wù)管理調(diào)度系統(tǒng)與多個任務(wù)服務(wù)器進(jìn)行通信,每一個任務(wù)服務(wù)器都能夠進(jìn)行直播任務(wù)處理。
在步驟s1中,獲取直播任務(wù)的轉(zhuǎn)碼需求。
在一實(shí)施方式中,所述轉(zhuǎn)碼需求包含所述直播任務(wù)中源文件的原始分辨率,原始碼率,目標(biāo)分辨率和目標(biāo)碼率。
在步驟s2中,根據(jù)轉(zhuǎn)碼需求及預(yù)先配置的任務(wù)權(quán)重對應(yīng)表,確定直播任務(wù)的任務(wù)權(quán)重。
在一實(shí)施方式中,所述任務(wù)權(quán)重對應(yīng)表包含原始分辨率,原始碼率,目標(biāo)分辨率,目標(biāo)碼率及由所述原始分辨率和所述原始碼率轉(zhuǎn)換成所述目標(biāo)分辨率和所述目標(biāo)碼率的任務(wù)權(quán)重。
在一實(shí)施方式中,根據(jù)各個任務(wù)服務(wù)器的cpu的性能和不同分辨率對直播任務(wù)處理的能力來預(yù)先配置直播任務(wù)的任務(wù)權(quán)重對應(yīng)表,并確定直播任務(wù)的轉(zhuǎn)碼需求,其中,將一個原始分辨率碼率轉(zhuǎn)化成指定分辨率碼率對應(yīng)一個權(quán)重系數(shù)。
在一實(shí)施方式中,每一個任務(wù)服務(wù)器的cpu的性能可能各不相同,例如有的cpu的主頻為1.4ghz,有的cpu的主頻為2.3ghz,不同分辨率對直播任務(wù)處理的能力有高有低,例如分辨率為1080p對直播任務(wù)處理能力強(qiáng),分辨率為480p對直播任務(wù)處理能力弱,利用任務(wù)服務(wù)器的cpu的性能和不同分辨率對直播任務(wù)處理的能力這兩個因素來制定直播任務(wù)的任務(wù)權(quán)重表。
在一實(shí)施方式中,所述直播頻道的轉(zhuǎn)碼需求包括原始分辨率、原始碼率,需要轉(zhuǎn)碼成的目標(biāo)分辨率、目標(biāo)碼率,例如,原始分辨率為1920*1080p、原始碼率為8000kbps、需要轉(zhuǎn)碼的目標(biāo)分辨率為1280*720p、需要轉(zhuǎn)碼的目標(biāo)碼率為1600kbps。
在一實(shí)施方式中,將一個原始分辨率/碼率轉(zhuǎn)化成指定目標(biāo)分辨率碼率對應(yīng)一個權(quán)重系數(shù),例如將原始分辨率/碼率為1920*1080p/8000kbps轉(zhuǎn)化成指定分辨率/碼率為1280*720p/1600kbps,對應(yīng)的權(quán)重系數(shù)為1.2,將原始分辨率/碼率為640*480p/6000kbps轉(zhuǎn)化成指定分辨率/碼率為1280*720p/1600kbps,對應(yīng)的權(quán)重系數(shù)為0.8,不同的權(quán)重系數(shù)可以根據(jù)不同的轉(zhuǎn)化方式進(jìn)行設(shè)定,在此不做限定。
在一實(shí)施方式中,還可以根據(jù)項(xiàng)目情況確定直播頻道的備份數(shù),通常情況下每一個直播頻道至少需要有2份拷貝作為備份。本發(fā)明利用這種備份方式在保證原有的直播頻道的主備功能的同時,具備容災(zāi)能力。
在一實(shí)施方式中,將與所述直播任務(wù)管理調(diào)度系統(tǒng)通信的多個任務(wù)服務(wù)器進(jìn)行分組。
在一實(shí)施方式中,與所述直播任務(wù)管理調(diào)度系統(tǒng)通信的多個任務(wù)服務(wù)器可以分成多個分組,每一個分組可以包括多個任務(wù)服務(wù)器,在本發(fā)明的直播任務(wù)管理調(diào)度方法中,直播處理任務(wù)會被均衡的分配到部分分組或者全部分組中,分到直播處理任務(wù)的分組中所包括的所有任務(wù)服務(wù)器將處理相同的任務(wù)。
在一實(shí)施方式中,主要是利用第三方系統(tǒng)以直播處理請求的方式下發(fā)直播處理任務(wù)到所述直播任務(wù)管理調(diào)度系統(tǒng),所述直播任務(wù)管理調(diào)度系統(tǒng)從第三方系統(tǒng)接收其下發(fā)的直播處理任務(wù)。
在一實(shí)施方式中,第三方系統(tǒng)所下發(fā)的直播處理請求中包括原始分辨率、原始碼率、頻道數(shù),以及各頻道需要轉(zhuǎn)碼成的目標(biāo)分辨率和目標(biāo)碼率。本發(fā)明根據(jù)頻道數(shù)及各頻道的目標(biāo)分辨率和目標(biāo)碼率將第三方系統(tǒng)下發(fā)的直播處理請求具化為各個直播處理任務(wù),每個處理任務(wù)的原始分辨率和原始碼率相同,但目標(biāo)分辨率和目標(biāo)碼率取決于各頻道的實(shí)際需求,依據(jù)頻道數(shù)選擇任務(wù)服務(wù)器組進(jìn)行處理。
在一實(shí)施方式中,根據(jù)所述直播頻道的轉(zhuǎn)碼需求以及所述直播任務(wù)的任務(wù)權(quán)重表確定所述直播處理任務(wù)的權(quán)重。
在一實(shí)施方式中,直播頻道的轉(zhuǎn)碼需求,例如可以包括一個直播頻道,原始分辨率/原始碼率分別為1920*1080p/8000kbps,需要轉(zhuǎn)碼的目標(biāo)分辨率/目標(biāo)碼率分別為1280*720p/1600kbps等,并結(jié)合步驟s2中的直播任務(wù)的任務(wù)權(quán)重表確定所述直播處理任務(wù)的權(quán)重。
在步驟s3中,查詢?nèi)蝿?wù)權(quán)重記錄表,確定當(dāng)前承載的任務(wù)權(quán)重最小的任務(wù)服務(wù)器組。
在一實(shí)施方式中,所述任務(wù)權(quán)重記錄表包含各任務(wù)服務(wù)器組識別信息,及每個所述任務(wù)服務(wù)器組承載的任務(wù)權(quán)重。其中,任務(wù)服務(wù)器組中包含至少一臺任務(wù)服務(wù)器,同一任務(wù)服務(wù)器組中的任務(wù)服務(wù)器處理相同的直播任務(wù)。一般而言,一個任務(wù)服務(wù)器組中包含兩臺任務(wù)服務(wù)器,以實(shí)現(xiàn)安全備份。其中,組別的任務(wù)權(quán)重可等于該組中所有任務(wù)服務(wù)器正在處理的直播任務(wù)的任務(wù)權(quán)重之和,也可以是該組中任一臺任務(wù)服務(wù)器正在處理的直播任務(wù)的任務(wù)權(quán)重之和。
在一實(shí)施方式中,根據(jù)任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)之間的通訊狀態(tài)確定各個分組的當(dāng)前狀態(tài),并根據(jù)各個分組的當(dāng)前狀態(tài)確定當(dāng)前處理直播任務(wù)最輕的分組作為目標(biāo)分組。
在一實(shí)施方式中,所述當(dāng)前狀態(tài)包括存活狀態(tài)和非存活狀態(tài),其中,所述存活狀態(tài)為任務(wù)服務(wù)器組中的所有任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)之間的通訊正常連接,表示正在通信連接,而所述非存活狀態(tài)為任務(wù)服務(wù)器組中的至少有一臺任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)之間的通訊失聯(lián),表示已斷開通信連接。
在一實(shí)施方式中,直播任務(wù)管理調(diào)度系統(tǒng)將定期監(jiān)測與每一個任務(wù)服務(wù)器之間的通信鏈路的暢通情況,判斷是正常連接還是已斷開連接,如果有任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)斷開連接,則該任務(wù)服務(wù)器所屬的任務(wù)服務(wù)器組會被直播任務(wù)管理調(diào)度系統(tǒng)記錄為“不存活狀態(tài)”,否則如果任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)是正常連接,則該任務(wù)服務(wù)器所屬的任務(wù)服務(wù)器組會被直播任務(wù)管理調(diào)度系統(tǒng)記錄為“存活狀態(tài)”,也就是說,只有當(dāng)分組中所包括的所有任務(wù)服務(wù)器均被記錄為“存活狀態(tài)”時,該分組才被確定為“存活分組”,否則該分組被確定為“非存活分組”。在一實(shí)施方式中,只有“存活分組”才能接收到直播處理任務(wù),而“非存活分組”將無法接收到直播處理任務(wù)。
在一實(shí)施方式中,根據(jù)組別的當(dāng)前狀態(tài),從任務(wù)權(quán)重記錄表中獲取每個處于存活狀態(tài)的組別的任務(wù)權(quán)重,并確定當(dāng)前任務(wù)權(quán)重最小的組別。
在步驟s4中,判斷所述任務(wù)服務(wù)器組是否可以承載所述直播任務(wù)。
在一實(shí)施方式中,所述判斷所述任務(wù)服務(wù)器組是否可以承載所述直播任務(wù)方法包含:
判斷所述任務(wù)服務(wù)器組當(dāng)前承載的任務(wù)權(quán)重與所述直播任務(wù)的任務(wù)權(quán)重之和是否大于將所述任務(wù)服務(wù)器組的任務(wù)權(quán)重最大承載量,若大于,則判定所述任務(wù)服務(wù)器組不可以承載所述直播任務(wù),若不大于,則判定所述任務(wù)服務(wù)器組可以承載所述直播任務(wù)。
在一實(shí)施方式中,若任務(wù)服務(wù)器組可以承載直播任務(wù),則在步驟s5中,下發(fā)所述直播任務(wù)給所述任務(wù)服務(wù)器組,并更新所述任務(wù)權(quán)重記錄表中所述任務(wù)服務(wù)器組的任務(wù)權(quán)重記錄。
在一實(shí)施方式中,若任務(wù)服務(wù)器組不可以承載直播任務(wù),則在步驟s6中,則新建任務(wù)服務(wù)器組,將所述直播任務(wù)下發(fā)至新建的所述任務(wù)服務(wù)器組,并在所述任務(wù)權(quán)重記錄表中新增相應(yīng)記錄。
在一實(shí)施方式中,假設(shè)分配之前,目標(biāo)分組的任務(wù)權(quán)重為a,而所述直播處理任務(wù)的權(quán)重為b,則更新后的目標(biāo)分組的任務(wù)權(quán)重為a+b。
在一實(shí)施方式中,當(dāng)有新的直播處理任務(wù)從第三方系統(tǒng)下發(fā)到直播任務(wù)管理調(diào)度系統(tǒng)時,將采用步驟s1-s6進(jìn)行處理,使得本發(fā)明在保證直播的容災(zāi)情況下,依然能夠?qū)ν馓峁┱5那覟闊o擾切換的直播服務(wù),本發(fā)明最大程度地利用了服務(wù)器資源,每臺服務(wù)器均能夠得到最大程度地使用。
在一實(shí)施方式中,當(dāng)直播任務(wù)管理調(diào)度系統(tǒng)監(jiān)測到空閑的任務(wù)服務(wù)器組時,將及時對其釋放,已保證當(dāng)前正在工作的任務(wù)服務(wù)器組的工作量盡量趨于飽和。
在一實(shí)施方式中,當(dāng)有更多的直播處理任務(wù)時,可通過新增組別和服務(wù)器來進(jìn)行擴(kuò)容,擴(kuò)容后,新的組別加入到組別群中,在直播任務(wù)分配時,依然采用本發(fā)明的步驟s1-s6來進(jìn)行處理。本發(fā)明通過這種方式支持平滑擴(kuò)容功能,保證在服務(wù)器處理能力達(dá)到上限的情況下,依然能夠讓整個服務(wù)器群處理新增的直播任務(wù)。
以下將對本發(fā)明所提供的一種直播任務(wù)管理調(diào)度系統(tǒng)進(jìn)行詳細(xì)說明。
請參閱圖2,所示為本發(fā)明一實(shí)施方式中直播任務(wù)管理調(diào)度系統(tǒng)10的內(nèi)部結(jié)構(gòu)示意圖。
在一實(shí)施方式中,該直播任務(wù)管理調(diào)度系統(tǒng)10與多個任務(wù)服務(wù)器(圖未示)進(jìn)行通信,每一個任務(wù)服務(wù)器都能夠進(jìn)行直播任務(wù)處理。其中,該直播任務(wù)管理調(diào)度系統(tǒng)10包括任務(wù)接收模塊11、文件管理模塊12、任務(wù)服務(wù)器管理模塊13、任務(wù)調(diào)度模塊14。
任務(wù)接收模塊11,用于接收直播任務(wù),并其中所述直播任務(wù)包含轉(zhuǎn)碼需求。
在一實(shí)施方式中,所述轉(zhuǎn)碼需求包含所述直播任務(wù)中源文件的原始分辨率,原始碼率,目標(biāo)分辨率和目標(biāo)碼率。
文件管理模塊12,用于存儲和更新任務(wù)權(quán)重對應(yīng)表和任務(wù)權(quán)重記錄表。
在一實(shí)施方式中,所述任務(wù)權(quán)重對應(yīng)表包含原始分辨率,原始碼率,目標(biāo)分辨率,目標(biāo)碼率及由所述原始分辨率和所述原始碼率轉(zhuǎn)換成所述目標(biāo)分辨率和所述目標(biāo)碼率的任務(wù)權(quán)重。
在一實(shí)施方式中,根據(jù)各個任務(wù)服務(wù)器的cpu的性能和不同分辨率對直播任務(wù)處理的能力來預(yù)先配置直播任務(wù)的任務(wù)權(quán)重對應(yīng)表,并確定直播任務(wù)的轉(zhuǎn)碼需求,其中,將一個原始分辨率碼率轉(zhuǎn)化成指定分辨率碼率對應(yīng)一個權(quán)重系數(shù)。
在一實(shí)施方式中,每一個任務(wù)服務(wù)器的cpu的性能可能各不相同,例如有的cpu的主頻為1.4ghz,有的cpu的主頻為2.3ghz,不同分辨率對直播任務(wù)處理的能力有高有低,例如分辨率為1080p對直播任務(wù)處理能力強(qiáng),分辨率為480p對直播任務(wù)處理能力弱,利用任務(wù)服務(wù)器的cpu的性能和不同分辨率對直播任務(wù)處理的能力這兩個因素來制定直播任務(wù)的任務(wù)權(quán)重表。
在一實(shí)施方式中,所述直播頻道的轉(zhuǎn)碼需求包括原始分辨率、原始碼率、需要轉(zhuǎn)碼成的目標(biāo)分辨率和目標(biāo)碼率,例如,原始分辨率為1920*1080p、原始碼率為8000kbps、需要轉(zhuǎn)碼的目標(biāo)分辨率為1280*720p、需要轉(zhuǎn)碼的目標(biāo)碼率為1600kbps。
在一實(shí)施方式中,將一個原始分辨率/碼率轉(zhuǎn)化成指定目標(biāo)分辨率碼率對應(yīng)一個權(quán)重系數(shù),例如將原始分辨率/碼率為1920*1080p/8000kbps轉(zhuǎn)化成指定分辨率/碼率為1280*720p/1600kbps,對應(yīng)的權(quán)重系數(shù)為1.2,將原始分辨率/碼率為640*480p/6000kbps轉(zhuǎn)化成指定分辨率/碼率為1280*720p/1600kbps,對應(yīng)的權(quán)重系數(shù)為0.8,不同的權(quán)重系數(shù)可以根據(jù)不同的轉(zhuǎn)化方式進(jìn)行設(shè)定,在此不做限定。
在一實(shí)施方式中,還可以根據(jù)項(xiàng)目情況確定直播頻道的備份數(shù),通常情況下每一個直播頻道至少需要有1份拷貝作為備份。本發(fā)明利用這種備份方式在保證原有的直播頻道的主備功能的同時,具備容災(zāi)能力。
任務(wù)服務(wù)器管理模塊13,用于對所述多個任務(wù)服務(wù)器進(jìn)行組別的劃分和管理。
在一實(shí)施方式中,任務(wù)服務(wù)器管理模塊將與所述直播任務(wù)管理調(diào)度系統(tǒng)通信的多個任務(wù)服務(wù)器進(jìn)行分組。
在一實(shí)施方式中,與所述直播任務(wù)管理調(diào)度系統(tǒng)通信的多個任務(wù)服務(wù)器可以分成多個分組,每一個分組可以包括多個任務(wù)服務(wù)器,在本發(fā)明的直播任務(wù)管理調(diào)度方法中,直播處理任務(wù)會被均衡的分配到部分分組或者全部分組中,分到直播處理任務(wù)的分組中所包括的所有任務(wù)服務(wù)器將處理相同的任務(wù)。
在一實(shí)施方式中,主要是利用第三方系統(tǒng)以直播處理請求的方式下發(fā)直播處理任務(wù)到所述直播任務(wù)管理調(diào)度系統(tǒng),所述直播任務(wù)管理調(diào)度系統(tǒng)從第三方系統(tǒng)接收其下發(fā)的直播處理任務(wù)。其中,所述第三方系統(tǒng)包含直播平臺、主播等提供直播視頻源的服務(wù)端。
在一實(shí)施方式中,第三方系統(tǒng)所下發(fā)的直播處理請求中包括原始分辨率、原始碼率、頻道數(shù),以及各頻道需要轉(zhuǎn)碼成的目標(biāo)分辨率和目標(biāo)碼率。本發(fā)明根據(jù)頻道數(shù)及各頻道的目標(biāo)分辨率和目標(biāo)碼率將第三方系統(tǒng)下發(fā)的直播處理請求具化為各個直播處理任務(wù),每個處理任務(wù)的原始分辨率和原始碼率相同,但目標(biāo)分辨率和目標(biāo)碼率取決于各頻道的實(shí)際需求,依據(jù)頻道數(shù)選擇任務(wù)服務(wù)器組進(jìn)行處理。
在一實(shí)施方式中,初始狀態(tài)下,任務(wù)服務(wù)器管理模塊13根據(jù)頻道數(shù)創(chuàng)建數(shù)量相同的任務(wù)服務(wù)器組,已處理該些直播任務(wù)。
任務(wù)調(diào)度模塊14,基于直播任務(wù)權(quán)重任務(wù)分配相應(yīng)的任務(wù)服務(wù)器組。
在一實(shí)施方式中,調(diào)度模塊14從任務(wù)接收模塊11獲取直播任務(wù),根據(jù)直播任務(wù)的轉(zhuǎn)碼需求查詢文件管理模塊12中的任務(wù)權(quán)重對應(yīng)表,確定直播任務(wù)的任務(wù)權(quán)重;通過任務(wù)權(quán)重記錄表確定當(dāng)前承載任務(wù)權(quán)重最小的任務(wù)服務(wù)器組,并判斷任務(wù)服務(wù)器組是否可以承載所述直播任務(wù),若可以,則下發(fā)所述直播任務(wù)給所述任務(wù)服務(wù)器組,并請求所述文件管理模塊更新所述任務(wù)權(quán)重記錄表中所述任務(wù)服務(wù)器組的記錄。
在一實(shí)施方式中,直播頻道的轉(zhuǎn)碼需求,例如可以包括一個直播頻道,原始分辨率/原始碼率分別為1920*1080p/8000kbps,需要轉(zhuǎn)碼的目標(biāo)分辨率/目標(biāo)碼率分別為1280*720p/1600kbps等,并結(jié)合文件管理模塊12中的直播任務(wù)的任務(wù)權(quán)重表確定所述直播處理任務(wù)的權(quán)重。
在一實(shí)施方式中,所述任務(wù)權(quán)重記錄表包含各任務(wù)服務(wù)器組識別信息,及每個所述任務(wù)服務(wù)器組承載的任務(wù)權(quán)重。其中,任務(wù)服務(wù)器組中包含至少一臺任務(wù)服務(wù)器,同一任務(wù)服務(wù)器組中的任務(wù)服務(wù)器處理相同的直播任務(wù)。一般而言,一個任務(wù)服務(wù)器組中包含兩臺任務(wù)服務(wù)器,以實(shí)現(xiàn)安全備份。任務(wù)服務(wù)器管理模塊13根據(jù)預(yù)先設(shè)定的備份數(shù)設(shè)置每個分組所包含的任務(wù)服務(wù)器數(shù)。其中,組別的任務(wù)權(quán)重可等于該組中所有任務(wù)服務(wù)器正在處理的直播任務(wù)的任務(wù)權(quán)重之和,也可以是該組中任一臺任務(wù)服務(wù)器正在處理的直播任務(wù)的任務(wù)權(quán)重之和。
在一實(shí)施方式中,任務(wù)服務(wù)器管理模塊13根據(jù)任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)之間的通訊狀態(tài)確定各個分組的當(dāng)前狀態(tài),并根據(jù)各個分組的當(dāng)前狀態(tài)確定當(dāng)前處理直播任務(wù)權(quán)重最輕的分組作為目標(biāo)分組。
在一實(shí)施方式中,所述當(dāng)前狀態(tài)包括存活狀態(tài)和非存活狀態(tài),其中,所述存活狀態(tài)為任務(wù)服務(wù)器組中的所有任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)之間的通訊正常連接,表示正在通信連接,而所述非存活狀態(tài)為任務(wù)服務(wù)器組中的至少有一臺任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)之間的通訊失聯(lián),表示已斷開通信連接。
在一實(shí)施方式中,直播任務(wù)管理調(diào)度系統(tǒng)的任務(wù)服務(wù)器管理模塊13將定期監(jiān)測與每一個任務(wù)服務(wù)器之間的通信鏈路的暢通情況,判斷是正常連接還是已斷開連接,如果有任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)斷開連接,則該任務(wù)服務(wù)器所屬的任務(wù)服務(wù)器組會被直播任務(wù)管理調(diào)度系統(tǒng)記錄為“不存活狀態(tài)”,否則如果任務(wù)服務(wù)器與直播任務(wù)管理調(diào)度系統(tǒng)是正常連接,則該任務(wù)服務(wù)器所屬的任務(wù)服務(wù)器組會被直播任務(wù)管理調(diào)度系統(tǒng)記錄為“存活狀態(tài)”,只有當(dāng)分組中所包括的所有任務(wù)服務(wù)器均被記錄為“存活狀態(tài)”時,也就是說,該分組才被確定為“存活分組”,否則該分組被確定為“非存活分組”。在一實(shí)施方式中,只有“存活分組”才能接收到直播處理任務(wù),而“非存活分組”將無法接收到直播處理任務(wù)。
在一實(shí)施方式中,任務(wù)服務(wù)器管理模塊13根據(jù)組別的當(dāng)前狀態(tài),從任務(wù)權(quán)重記錄表中獲取每個處于存活狀態(tài)的組別的任務(wù)權(quán)重,并確定當(dāng)前任務(wù)權(quán)重最小的組別。
在一實(shí)施方式中,任務(wù)調(diào)度模塊14判斷所述當(dāng)前任務(wù)權(quán)重最小的任務(wù)服務(wù)器組是否可以承載所述直播任務(wù)方法包含,判斷所述任務(wù)服務(wù)器組當(dāng)前承載的任務(wù)權(quán)重與所述直播任務(wù)的任務(wù)權(quán)重之和是否大于將所述任務(wù)服務(wù)器組的任務(wù)權(quán)重最大承載量,若大于,則判定所述任務(wù)服務(wù)器組不可以承載所述直播任務(wù),若不大于,則判定所述任務(wù)服務(wù)器組可以承載所述直播任務(wù),并下發(fā)所述直播任務(wù)給所述任務(wù)服務(wù)器組,并更新所述任務(wù)權(quán)重記錄表中所述任務(wù)服務(wù)器組的任務(wù)權(quán)重記錄。。
在一實(shí)施方式中,若判定所述任務(wù)服務(wù)器組不可以承載所述直播任務(wù),所述任務(wù)調(diào)度模塊向所述任務(wù)服務(wù)器管理模塊發(fā)送新建任務(wù)服務(wù)器組請求;所述任務(wù)服務(wù)器管理模塊接收所述請求后,新建任務(wù)服務(wù)器組,并返回所述新建任務(wù)服務(wù)器組的識別信息至所述文件管理模塊和所述任務(wù)調(diào)度模塊,所述任務(wù)調(diào)度模塊將所述直播任務(wù)下發(fā)至新建的所述任務(wù)服務(wù)器組,所述文件管理模塊在所述任務(wù)權(quán)重記錄表中新增相應(yīng)記錄。
在一實(shí)施方式中,當(dāng)直播任務(wù)管理調(diào)度系統(tǒng)的任務(wù)服務(wù)器管理模塊監(jiān)測到空閑的任務(wù)服務(wù)器組時,將及時對其釋放,已保證當(dāng)前正在工作的任務(wù)服務(wù)器組的工作量盡量趨于飽和。
本發(fā)明提供的直播任務(wù)管理調(diào)度系統(tǒng)10,能夠根據(jù)服務(wù)器的性能和負(fù)載等情況,智能地將直播任務(wù)處理的任務(wù)均衡地分配給所有直播任務(wù)的任務(wù)服務(wù)器來進(jìn)行處理,在保證直播服務(wù)正常的情況下,有效地解決了在有限的設(shè)備情況下也能夠保質(zhì)保量地完成直播任務(wù)的問題,能最大限度地使用設(shè)備的性能。
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在計算機(jī)可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實(shí)施例或者實(shí)施例的某些部分所述的方法。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。