欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種分布式實(shí)時(shí)轉(zhuǎn)碼方法與系統(tǒng)的制作方法

文檔序號:7897428閱讀:418來源:國知局
專利名稱:一種分布式實(shí)時(shí)轉(zhuǎn)碼方法與系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種分布式實(shí)時(shí)轉(zhuǎn)碼方法與系統(tǒng),屬于計(jì)算機(jī)視頻處理領(lǐng)域。
背景技術(shù)
視頻轉(zhuǎn)碼使得不同視頻數(shù)據(jù)格式之間能夠互相兼容,在視頻應(yīng)用中有很高的實(shí) 用價(jià)值。視頻轉(zhuǎn)碼是指將視頻數(shù)據(jù)從一種格式轉(zhuǎn)換為另一種格式,格式包括編碼標(biāo)準(zhǔn)、碼 率、幀率和空間分辨率等。從廣義上講,所有對視頻流的操作都可被視為視頻轉(zhuǎn)碼,例如在 視頻流中嵌入圖標(biāo)、水印信息以及加入差錯(cuò)抑制特征的數(shù)據(jù)等。隨著多媒體和網(wǎng)絡(luò)技術(shù)的 快速發(fā)展,多媒體服務(wù)已經(jīng)越來越流行。在這些應(yīng)用中,常常需要對視頻編碼流的碼率或分 辨率作調(diào)整,以適應(yīng)異構(gòu)網(wǎng)絡(luò)和多終端環(huán)境的需要。在實(shí)時(shí)轉(zhuǎn)碼應(yīng)用中,對轉(zhuǎn)碼的速度與可 靠性提出了很高的要求。傳統(tǒng)的轉(zhuǎn)碼方式一般由一臺或多臺轉(zhuǎn)碼服務(wù)器串行的來轉(zhuǎn)換待轉(zhuǎn)換文件,如果待 轉(zhuǎn)換文件是文件格式之間的轉(zhuǎn)換則轉(zhuǎn)換時(shí)間可由服務(wù)器性能來決定,如果待轉(zhuǎn)換文件是編 碼格式之間的轉(zhuǎn)換,則時(shí)間為影片的長度,由此可見,轉(zhuǎn)碼效率極其低下。

發(fā)明內(nèi)容
為了解決上述技術(shù)問題,本發(fā)明提供一種分布式實(shí)時(shí)轉(zhuǎn)碼方法與系統(tǒng),能夠解決 轉(zhuǎn)碼效率低下的問題。在分布式實(shí)時(shí)轉(zhuǎn)碼方法中,首先利用網(wǎng)格計(jì)算的方式對待轉(zhuǎn)換文件進(jìn)行邏輯分 片,把整個(gè)待轉(zhuǎn)換文件劃分成一個(gè)個(gè)的轉(zhuǎn)換任務(wù)存放于任務(wù)數(shù)據(jù)庫中,其次,網(wǎng)格里面的轉(zhuǎn) 碼服務(wù)器則根據(jù)自身的能力來實(shí)時(shí)獲取轉(zhuǎn)碼任務(wù),待轉(zhuǎn)換完畢,首先通知任務(wù)服務(wù)器任務(wù) 完成,然后把完成的數(shù)據(jù)塊存放于目標(biāo)文件服務(wù)器,目標(biāo)文件服務(wù)器再根據(jù)待轉(zhuǎn)換文件的 完成情況對其進(jìn)行整合,從而完成整個(gè)轉(zhuǎn)碼任務(wù)。在該系統(tǒng)中,包括一源文件服務(wù)器,一轉(zhuǎn)碼服務(wù)器群,一任務(wù)數(shù)據(jù)庫、以及一目標(biāo) 文件服務(wù)器。上述源文件服務(wù)器,轉(zhuǎn)碼服務(wù)器群,任務(wù)數(shù)據(jù)庫、以及目標(biāo)文件服務(wù)器都處于 網(wǎng)格之中。上述源文件服務(wù)器對視頻源文件進(jìn)行邏輯分塊,將源文件劃分為固定大小的任 務(wù)塊。任務(wù)塊劃分完后,分塊信息傳輸?shù)饺蝿?wù)數(shù)據(jù)庫中。上述任務(wù)數(shù)據(jù)庫用于存儲源文件服務(wù)器發(fā)送過來的分塊信息。劃分好子任務(wù)(即任務(wù)塊)后將分塊信息存儲于任務(wù)數(shù)據(jù)庫服務(wù)器中。轉(zhuǎn)碼服務(wù)器群由多個(gè)轉(zhuǎn)碼服務(wù)器組成,具有分布式結(jié)構(gòu),用于實(shí)時(shí)向任務(wù)數(shù)據(jù)庫 發(fā)出獲取任務(wù)的請求,以從任務(wù)數(shù)據(jù)庫中獲取任務(wù),任務(wù)數(shù)據(jù)庫根據(jù)轉(zhuǎn)碼服務(wù)器群獲取任 務(wù)的請求,向轉(zhuǎn)碼服務(wù)器群發(fā)送具體的任務(wù),轉(zhuǎn)碼服務(wù)器群根據(jù)該任務(wù)從源文件服務(wù)器中 獲取待轉(zhuǎn)碼的源文件,并執(zhí)行轉(zhuǎn)碼處理。當(dāng)一個(gè)任務(wù)被成功完成時(shí)(即轉(zhuǎn)碼完成),轉(zhuǎn)碼服務(wù)器會向數(shù)據(jù)庫服務(wù)器通知成功 完成的消息,并把該任務(wù)上傳到目標(biāo)文件服務(wù)器。目標(biāo)文件服務(wù)器用于實(shí)時(shí)接收轉(zhuǎn)碼服務(wù) 器群發(fā)送來的轉(zhuǎn)碼后的數(shù)據(jù),當(dāng)文件的所有任務(wù)都執(zhí)行完畢且成功完成,目標(biāo)文件服務(wù)器將此文件合并成目標(biāo)文件。


附圖1為本發(fā)明提出的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng)的結(jié)構(gòu)圖; 附圖2為本發(fā)明提出的分布式實(shí)時(shí)轉(zhuǎn)碼方法流程附圖3為本發(fā)明的一個(gè)示意性的實(shí)施例。
具體實(shí)施例方式本發(fā)明所述的轉(zhuǎn)碼包括文件格式轉(zhuǎn)碼和編碼格式轉(zhuǎn)碼。所謂文件格式轉(zhuǎn)碼指的是 一種文件格式向另一種文件格式的轉(zhuǎn)換,而編碼格式轉(zhuǎn)碼則是一種編碼格式到另一種編碼 格式的轉(zhuǎn)換。比如fIv轉(zhuǎn)mp4,文件格式轉(zhuǎn)碼就是從flv格式文件中提取幀數(shù)據(jù)來填充到 mp4格式的文件當(dāng)中,數(shù)據(jù)編碼格式不變。而編碼格式的轉(zhuǎn)換則轉(zhuǎn)變的是視頻文件的編碼方 式。在分布式實(shí)時(shí)轉(zhuǎn)碼方法中,首先利用網(wǎng)格計(jì)算的方式對待轉(zhuǎn)換文件進(jìn)行邏輯分 片,把整個(gè)待轉(zhuǎn)換文件劃分成一個(gè)個(gè)的轉(zhuǎn)換任務(wù)存放于任務(wù)數(shù)據(jù)庫中,其次,網(wǎng)格里面的轉(zhuǎn) 碼服務(wù)器則根據(jù)自身的能力來實(shí)時(shí)獲取轉(zhuǎn)碼任務(wù),待轉(zhuǎn)換完畢,首先通知任務(wù)服務(wù)器任務(wù) 完成,然后把完成的數(shù)據(jù)塊存放于目標(biāo)文件服務(wù)器,目標(biāo)文件服務(wù)器再根據(jù)待轉(zhuǎn)換文件的 完成情況對其進(jìn)行整合,從而完成整個(gè)轉(zhuǎn)碼任務(wù)。在該系統(tǒng)中,包括一源文件服務(wù)器,一轉(zhuǎn)碼服務(wù)器群,一任務(wù)數(shù)據(jù)庫、以及一目標(biāo) 文件服務(wù)器。上述源文件服務(wù)器,轉(zhuǎn)碼服務(wù)器群,任務(wù)數(shù)據(jù)庫、以及目標(biāo)文件服務(wù)器都處于 網(wǎng)格之中。上述源文件服務(wù)器對視頻源文件進(jìn)行邏輯分塊,將源文件劃分為固定大小的任 務(wù)塊。任務(wù)塊劃分完后,分塊信息傳輸?shù)饺蝿?wù)數(shù)據(jù)庫中。上述任務(wù)數(shù)據(jù)庫用于存儲源文件服務(wù)器發(fā)送過來的分塊和分塊信息。劃分好子任務(wù)(即任務(wù)塊)后將分塊和分塊信息存儲于任務(wù)數(shù)據(jù)庫服務(wù)器中。轉(zhuǎn)碼服務(wù)器群由多個(gè)轉(zhuǎn)碼服務(wù)器組成,具有分布式結(jié)構(gòu),用于實(shí)時(shí)向任務(wù)數(shù)據(jù)庫 發(fā)出獲取任務(wù)的請求,以從任務(wù)數(shù)據(jù)庫中獲取任務(wù),任務(wù)數(shù)據(jù)庫根據(jù)轉(zhuǎn)碼服務(wù)器群獲取任 務(wù)的請求,向轉(zhuǎn)碼服務(wù)器群發(fā)送具體的任務(wù),轉(zhuǎn)碼服務(wù)器群根據(jù)該任務(wù)從源文件服務(wù)器中 獲取待轉(zhuǎn)碼的源文件,并執(zhí)行轉(zhuǎn)碼處理。當(dāng)一個(gè)任務(wù)被成功完成時(shí)(即轉(zhuǎn)碼完成),轉(zhuǎn)碼服務(wù)器會向數(shù)據(jù)庫服務(wù)器通知成功 完成的消息,并把該任務(wù)上傳到目標(biāo)文件服務(wù)器。目標(biāo)文件服務(wù)器用于實(shí)時(shí)接收轉(zhuǎn)碼服務(wù) 器群發(fā)送來的轉(zhuǎn)碼后的數(shù)據(jù),當(dāng)文件的所有任務(wù)都執(zhí)行完畢且成功完成,目標(biāo)文件服務(wù)器 將此文件合并成目標(biāo)文件。為了更為清楚地闡述本發(fā)明的技術(shù)內(nèi)容,請進(jìn)一步參見附圖描述。如圖1所示 附圖1為本發(fā)明提出的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其包括一源文件服務(wù)器,一轉(zhuǎn)碼服務(wù)器
群,一任務(wù)數(shù)據(jù)庫、以及一目標(biāo)文件服務(wù)器。上述源文件服務(wù)器,轉(zhuǎn)碼服務(wù)器群,任務(wù)數(shù)據(jù) 庫、以及目標(biāo)文件服務(wù)器都處于網(wǎng)格之中。源文件服務(wù)器用于存儲視頻源文件,即待轉(zhuǎn)碼的數(shù)據(jù),視頻源文件包括各種格式 的影像文件,如f lv、mpeg-2, mpeg-4, mp4, mo ν,以及符合H. 26χ標(biāo)準(zhǔn)的視頻格式文件。在網(wǎng)格計(jì)算模型中,通常把要計(jì)算的數(shù)據(jù)以任務(wù)的形式劃分為一個(gè)個(gè)子任務(wù),網(wǎng)格中的轉(zhuǎn)碼服務(wù)器實(shí)時(shí)的來獲取任務(wù)并執(zhí)行。上述源文件服務(wù)器對視頻源文件進(jìn)行邏輯分塊,將源文件劃分為固定大小的任務(wù) 塊。如何把待轉(zhuǎn)碼文件劃分成若干個(gè)待轉(zhuǎn)碼數(shù)據(jù)塊是整個(gè)系統(tǒng)的關(guān)鍵性設(shè)計(jì)之一。在本發(fā) 明的一個(gè)優(yōu)選的實(shí)施方式中,按照待轉(zhuǎn)碼文件的數(shù)據(jù)單元來劃分,使得每個(gè)數(shù)據(jù)單元的大 小不超過閾值Thl,優(yōu)選地,該閾值為2M,即2兆字節(jié),根據(jù)不同硬件設(shè)備的處理能力,該閾 值Thl可以是其它的值,例如1M,4M,8M,16M等等。一個(gè)示意性而非限定性的例子中,對于 f Iv文件格式的文件,其由文件頭和文件體組成,而文件體包含多個(gè)數(shù)據(jù)單元(tag),對其 進(jìn)行邏輯分塊時(shí),按照f Iv文件數(shù)據(jù)單元(tag)來劃分,在劃分的過程中當(dāng)一個(gè)tag跨越了 2M字節(jié),則認(rèn)為在此tag之前的數(shù)據(jù)為一個(gè)待轉(zhuǎn)換任務(wù)塊,此tag為下一個(gè)任務(wù)塊的起點(diǎn)。 任務(wù)塊劃分完后,分塊和分塊信息傳輸?shù)饺蝿?wù)數(shù)據(jù)庫中。上述任務(wù)數(shù)據(jù)庫用于存儲源文件服務(wù)器發(fā)送過來的分塊和分塊信息。劃分好子任 務(wù)(即任務(wù)塊)后將分塊和分塊信息存儲于任務(wù)數(shù)據(jù)庫服務(wù)器中。轉(zhuǎn)碼服務(wù)器群由多個(gè)轉(zhuǎn)碼服務(wù)器組成,具有分布式結(jié)構(gòu),用于實(shí)時(shí)向任務(wù)數(shù)據(jù)庫 發(fā)出獲取任務(wù)的請求,以從任務(wù)數(shù)據(jù)庫中獲取任務(wù),任務(wù)數(shù)據(jù)庫根據(jù)轉(zhuǎn)碼服務(wù)器群獲取任 務(wù)的請求,向轉(zhuǎn)碼服務(wù)器群發(fā)送具體的任務(wù),轉(zhuǎn)碼服務(wù)器群根據(jù)該任務(wù)從源文件服務(wù)器中 獲取待轉(zhuǎn)碼的源文件,并執(zhí)行轉(zhuǎn)碼處理。網(wǎng)格中的轉(zhuǎn)碼服務(wù)器根據(jù)處理能力實(shí)時(shí)獲取任務(wù), 該處理能力為轉(zhuǎn)碼服務(wù)器的運(yùn)算能力,在可選的實(shí)施方式中,處理能力為轉(zhuǎn)碼服務(wù)器的處 理器的運(yùn)算頻率,或者處理器的核數(shù)。優(yōu)選地,轉(zhuǎn)碼服務(wù)器的CPU核數(shù)越多能力就越大,因 為其反映了轉(zhuǎn)碼服務(wù)器處理并發(fā)任務(wù)的能力,即有多少個(gè)任務(wù)能同時(shí)在一個(gè)處理器上執(zhí)行 (task-per-cpu),對于一臺4核的服務(wù)器而言,其同時(shí)可以并發(fā)的執(zhí)行4個(gè)任務(wù),以此類推。進(jìn)一步,上述數(shù)據(jù)庫服務(wù)器為每個(gè)已分配出去的任務(wù)設(shè)定一個(gè)超時(shí)時(shí)間,用于防 止某臺轉(zhuǎn)碼服務(wù)器發(fā)送故障或異常退出時(shí)該任務(wù)會被其他的轉(zhuǎn)碼服務(wù)器獲取到。當(dāng)一個(gè)任務(wù)被成功完成時(shí)(即轉(zhuǎn)碼完成),轉(zhuǎn)碼服務(wù)器會向數(shù)據(jù)庫服務(wù)器通知成功 完成的消息,并把該任務(wù)上傳到目標(biāo)文件服務(wù)器。目標(biāo)文件服務(wù)器用于實(shí)時(shí)接收轉(zhuǎn)碼服務(wù) 器群發(fā)送來的轉(zhuǎn)碼后的數(shù)據(jù),當(dāng)文件的所有任務(wù)都執(zhí)行完畢且成功完成,目標(biāo)文件服務(wù)器 將此文件合并成目標(biāo)文件。任務(wù)的失敗分為兩種情況,第一,轉(zhuǎn)碼失敗(可能是源文件的問題),第二,轉(zhuǎn)碼超 時(shí)(可能是由于轉(zhuǎn)碼服務(wù)器故障)。對于第一種情況,本發(fā)明采取的策略是將該任務(wù)轉(zhuǎn)發(fā)至轉(zhuǎn)碼服務(wù)器群中的其它轉(zhuǎn) 碼服務(wù)器進(jìn)行轉(zhuǎn)碼,并記錄該任務(wù)轉(zhuǎn)碼失敗記錄的信息,該失敗記錄至少包括轉(zhuǎn)碼失敗的 次數(shù),每失敗一次,失敗的次數(shù)增加一次。如果轉(zhuǎn)碼失敗記錄中的轉(zhuǎn)碼失敗次數(shù)超過一定的 次數(shù)之后,例如超過3次,或5次,則會認(rèn)為此文件無法被轉(zhuǎn)碼并發(fā)出轉(zhuǎn)碼失敗異常。對于第二種情況,本發(fā)明采取的策略是,直接由其他轉(zhuǎn)碼服務(wù)器來轉(zhuǎn)換,而不記錄 任務(wù)轉(zhuǎn)碼失敗記錄的信息。這種情況下,目標(biāo)文件服務(wù)器合并時(shí),向數(shù)據(jù)庫服務(wù)器查詢每 一塊數(shù)據(jù)由哪臺轉(zhuǎn)碼服務(wù)器轉(zhuǎn)碼,因?yàn)槿绻D(zhuǎn)碼服務(wù)器和數(shù)據(jù)庫服務(wù)器之間的通信鏈路異 常,導(dǎo)致數(shù)據(jù)庫服務(wù)器未能正確收到轉(zhuǎn)碼服務(wù)器的任務(wù)成功或失敗信息,轉(zhuǎn)碼服務(wù)器就把 任務(wù)上傳到目標(biāo)文件服務(wù)器,可能會發(fā)生數(shù)據(jù)不一致等異常。一個(gè)可選地例子中,源文件將根據(jù)預(yù)先定義的策略來決定刪除或者保留。如圖2所示,附圖2為本發(fā)明提出的分布式實(shí)時(shí)轉(zhuǎn)碼方法,該方法包括以下步驟步驟1,源文件服務(wù)器對待轉(zhuǎn)碼的文件進(jìn)行任務(wù)劃分,得到分塊和分塊信息。在本發(fā)明 的一個(gè)優(yōu)選的實(shí)施方式中,按照待轉(zhuǎn)碼文件的數(shù)據(jù)單元來劃分,使得每個(gè)數(shù)據(jù)單元的大小 不超過閾值Thl,優(yōu)選地,該閾值為2M,即2兆字節(jié),根據(jù)不同硬件設(shè)備的處理能力,該閾值 Thl可以是其它的值,例如1M,4M, 8M, 16M等等。一個(gè)示意性而非限定性的例子中,對于flv 文件格式的文件,其由文件頭和文件體組成,而文件體包含多個(gè)數(shù)據(jù)單元(tag),對其進(jìn)行 邏輯分塊時(shí),按照flv文件數(shù)據(jù)單元(tag)來劃分,在劃分的過程中當(dāng)一個(gè)tag跨越了 2M 字節(jié),則認(rèn)為在此tag之前的數(shù)據(jù)為一個(gè)待轉(zhuǎn)換任務(wù)塊,此tag為下一個(gè)任務(wù)塊的起點(diǎn)。任 務(wù)塊劃分完后,分塊和分塊信息傳輸?shù)饺蝿?wù)數(shù)據(jù)庫中。步驟2,數(shù)據(jù)庫服務(wù)器(即任務(wù)數(shù)據(jù)庫)存儲分塊和分塊信息。步驟3,分布式轉(zhuǎn)碼服務(wù)器群實(shí)時(shí)向數(shù)據(jù)庫服務(wù)器發(fā)出獲取任務(wù)的請求; 步驟4,數(shù)據(jù)庫服務(wù)器相分布式轉(zhuǎn)碼服務(wù)器群發(fā)送任務(wù)信息。步驟5,分布式轉(zhuǎn)碼服務(wù)器群執(zhí)行轉(zhuǎn)碼操作,并向數(shù)據(jù)庫服務(wù)器反饋轉(zhuǎn)碼完成情 況。步驟6,分布式轉(zhuǎn)碼服務(wù)器群將以成功轉(zhuǎn)碼的數(shù)據(jù)塊發(fā)送到目標(biāo)文件服務(wù)器。步驟7,數(shù)據(jù)庫服務(wù)器向目標(biāo)文件服務(wù)器提供分塊信息,當(dāng)文件的所有任務(wù)都執(zhí)行 完畢且成功完成,目標(biāo)文件服務(wù)器根據(jù)分塊信息將此文件合并成目標(biāo)文件。在上述步驟4中,任務(wù)數(shù)據(jù)庫根據(jù)轉(zhuǎn)碼服務(wù)器群獲取任務(wù)的請求,向轉(zhuǎn)碼服務(wù)器 群發(fā)送具體的任務(wù),轉(zhuǎn)碼服務(wù)器群根據(jù)該任務(wù)從源文件服務(wù)器中獲取待轉(zhuǎn)碼的源文件,并 執(zhí)行轉(zhuǎn)碼處理。網(wǎng)格中的轉(zhuǎn)碼服務(wù)器根據(jù)處理能力實(shí)時(shí)獲取任務(wù),該處理能力為轉(zhuǎn)碼服務(wù) 器的運(yùn)算能力,在可選的實(shí)施方式中,處理能力為轉(zhuǎn)碼服務(wù)器的處理器的運(yùn)算頻率,或者處 理器的核數(shù)。優(yōu)選地,轉(zhuǎn)碼服務(wù)器的CPU核數(shù)越多能力就越大,因?yàn)槠浞从沉宿D(zhuǎn)碼服務(wù)器處 理并發(fā)任務(wù)的能力,即有多少個(gè)任務(wù)能同時(shí)在一個(gè)處理器上執(zhí)行(task-per-cpu),對于一 臺4核的服務(wù)器而言,其同時(shí)可以并發(fā)的執(zhí)行4個(gè)任務(wù),以此類推。進(jìn)一步,上述數(shù)據(jù)庫服務(wù)器為每個(gè)已分配出去的任務(wù)設(shè)定一個(gè)超時(shí)時(shí)間,用于防 止某臺轉(zhuǎn)碼服務(wù)器發(fā)送故障或異常退出時(shí)該任務(wù)會被其他的轉(zhuǎn)碼服務(wù)器獲取到。在本發(fā)明的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng)和方法中,所述的任務(wù)可以由一定格式的數(shù)據(jù)形 式來描述,該格式中,至少包括三大部分1,header信息;2,data信息;3,url信息。在發(fā) 明人所實(shí)施的一個(gè)優(yōu)選的實(shí)施方式中,任務(wù)格式包括一下字段Fileid,用于標(biāo)識一個(gè)待轉(zhuǎn) 換文件,也就是文件的MD5值;Blockid,用于標(biāo)識待轉(zhuǎn)換文件的塊id,Headerjange,用于 標(biāo)識文件頭的范圍,Data_range,用于標(biāo)識具體塊的數(shù)據(jù)范圍,Source_server_endpoint, 用于標(biāo)識源服務(wù)器地址;DestinatioruserveLendpoint,用于標(biāo)識目標(biāo)服務(wù)器地址。獲取 上述信息后轉(zhuǎn)碼服務(wù)器就可以利用源服務(wù)器地址、文件標(biāo)識、文件頭和數(shù)據(jù)區(qū)間獲取轉(zhuǎn)碼 前的數(shù)據(jù),待轉(zhuǎn)碼完畢后可以利用fileid和blockid通知數(shù)據(jù)庫服務(wù)器此文件的此塊數(shù)據(jù) 已轉(zhuǎn)碼完畢,同時(shí)利用目標(biāo)服務(wù)器地址上傳已完成的數(shù)據(jù)。上述任務(wù)在數(shù)據(jù)庫可以采用以下存儲格式,該存儲格式中包括Fileid,作為文件 標(biāo)識;Blockid,作為塊標(biāo)識;Data_begin,作為塊結(jié)束位置;FiIeid 文件標(biāo)識;Header_ begin,用于標(biāo)識文件頭的起始位置;Header_end,用于標(biāo)識文件頭的結(jié)束位置;SourCe_ server_endpoint,用于標(biāo)識源月艮務(wù)器地址;Destination_server_endpoint用于標(biāo)識目標(biāo) 服務(wù)器地址Jtate,作為任務(wù)狀態(tài)Jailcoimt用于記錄轉(zhuǎn)碼失敗次數(shù)。上述任務(wù)狀態(tài)包括四種狀態(tài),分別是1,未轉(zhuǎn)碼;2,轉(zhuǎn)碼中;3,轉(zhuǎn)碼超時(shí);4,轉(zhuǎn)碼失敗。 有了上述信息數(shù)據(jù)庫服務(wù)器就可以在轉(zhuǎn)碼服務(wù)器請求任務(wù)時(shí)分配其任務(wù)、目標(biāo)文
件服務(wù)器查詢之時(shí)返回其當(dāng)前所有塊的轉(zhuǎn)碼狀態(tài)。圖3為本發(fā)明的一個(gè)示意性的實(shí)施例。其示意了 fIv轉(zhuǎn)mp4格式的步驟。首先,對 待轉(zhuǎn)碼的多個(gè)flv文件進(jìn)行數(shù)據(jù)塊劃分;文件1被劃分為tag(50-607) ,tag(608-807)…… 等多個(gè)文件;文件2被劃分為tag (36-307)、tag (308-307)……等多個(gè)文件;數(shù)據(jù)塊劃分完 畢后,分布式轉(zhuǎn)碼服務(wù)器群對這些文件執(zhí)行并行轉(zhuǎn)碼操作,將flv編碼格式轉(zhuǎn)換成mp4格 式;轉(zhuǎn)碼完畢后,每一數(shù)據(jù)塊根據(jù)其所屬文件進(jìn)行分類,例如BOX<21-69>,Box<70-155>, Bo x<155-end> 屬于文件 1,其被分到文件 1 一類中;Box<66-78>, Box<79-150>, Box<151-233> ,Box<234-end>屬于文件2,其被分到文件2 —類中;且都被保存到目標(biāo)服務(wù)器上;待某個(gè) 文件的所有數(shù)據(jù)塊都轉(zhuǎn)碼完畢后,將其進(jìn)行合并,得到mp4文件。本系統(tǒng)提供的分布式實(shí)時(shí)轉(zhuǎn)碼方法和系統(tǒng)取得了很好的技術(shù)效果。在很大程度上 提升了系統(tǒng)的可擴(kuò)展性、容錯(cuò)性和可維護(hù)性,并使文件編碼格式的轉(zhuǎn)碼時(shí)間得到極大的提升。
權(quán)利要求
1.一種分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),包括一源文件服務(wù)器,一轉(zhuǎn)碼服務(wù)器群,一任務(wù)數(shù)據(jù)庫、 以及一目標(biāo)文件服務(wù)器;其特征在于上述源文件服務(wù)器,轉(zhuǎn)碼服務(wù)器群,任務(wù)數(shù)據(jù)庫、以及目標(biāo)文件服務(wù)器都處于網(wǎng)格之中;上述源文件服務(wù)器對視頻源文件進(jìn)行邏輯分塊,通過邏輯分塊將視頻源文件劃分為固 定大小的任務(wù)塊;任務(wù)塊劃分完后,分塊和分塊信息傳輸并保存到任務(wù)數(shù)據(jù)庫中;上述任務(wù)數(shù)據(jù)庫用于存儲源文件服務(wù)器發(fā)送過來的分塊以及分塊信息;上述轉(zhuǎn)碼服務(wù)器群由多個(gè)轉(zhuǎn)碼服務(wù)器組成,具有分布式結(jié)構(gòu),用于實(shí)時(shí)向任務(wù)數(shù)據(jù)庫 發(fā)出獲取任務(wù)的請求,以從任務(wù)數(shù)據(jù)庫中獲取任務(wù);上述任務(wù)數(shù)據(jù)庫根據(jù)轉(zhuǎn)碼服務(wù)器群獲取任務(wù)的請求,向轉(zhuǎn)碼服務(wù)器群發(fā)送具體的任 務(wù),轉(zhuǎn)碼服務(wù)器群根據(jù)該任務(wù)從源文件服務(wù)器中獲取待轉(zhuǎn)碼的源文件,并執(zhí)行轉(zhuǎn)碼處理;上述目標(biāo)文件服務(wù)器用于實(shí)時(shí)接收轉(zhuǎn)碼服務(wù)器群發(fā)送來的轉(zhuǎn)碼后的數(shù)據(jù),當(dāng)文件的所 有任務(wù)都執(zhí)行完畢且成功完成,目標(biāo)文件服務(wù)器將此文件合并成目標(biāo)文件。
2.如權(quán)利要求1所述的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其特征在于當(dāng)一個(gè)任務(wù)被成功完成時(shí),轉(zhuǎn)碼服務(wù)器會向數(shù)據(jù)庫服務(wù)器通知成功完成的消息,并把 該任務(wù)上傳到目標(biāo)文件服務(wù)器。
3.如權(quán)利要求1所述的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其特征在于所述的轉(zhuǎn)碼包括文件格式 轉(zhuǎn)碼和編碼格式轉(zhuǎn)碼。
4.如權(quán)利要求1所述的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其特征在于所述邏輯分塊按照視頻源 文件的數(shù)據(jù)單元來劃分,使得每個(gè)數(shù)據(jù)單元的大小不超過閾值Thl。
5.如權(quán)利要求4所述的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其特征在于所述視頻源文件為flv文 件格式的文件,對其進(jìn)行邏輯分塊時(shí),按照flv文件數(shù)據(jù)單元來劃分,所述閾值Thl為2M字 節(jié),在邏輯分塊過程中,當(dāng)一個(gè)文件數(shù)據(jù)單元的大小超過2M字節(jié),則將該文件數(shù)據(jù)單元之 前的數(shù)據(jù)劃分為一個(gè)待轉(zhuǎn)換任務(wù)塊。
6.如權(quán)利要求1所述的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其特征在于所述轉(zhuǎn)碼服務(wù)器根據(jù)處理 能力實(shí)時(shí)獲取任務(wù),所述,處理能力為轉(zhuǎn)碼服務(wù)器的處理器的運(yùn)算頻率,或者處理其的核 數(shù)。
7.如權(quán)利要求1所述的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其特征在于上述數(shù)據(jù)庫服務(wù)器為每個(gè) 已分配出去的任務(wù)設(shè)定一個(gè)超時(shí)時(shí)間,當(dāng)轉(zhuǎn)碼失敗時(shí),任務(wù)數(shù)據(jù)庫將該任務(wù)轉(zhuǎn)發(fā)至轉(zhuǎn)碼服 務(wù)器群中的其它轉(zhuǎn)碼服務(wù)器進(jìn)行轉(zhuǎn)碼,并記錄該任務(wù)轉(zhuǎn)碼失敗記錄的信息,該失敗記錄至 少包括轉(zhuǎn)碼失敗的次數(shù),每失敗一次,失敗的次數(shù)增加一次;如果轉(zhuǎn)碼失敗記錄中的轉(zhuǎn)碼失 敗次數(shù)超過一定的次數(shù)之后,則向目標(biāo)文件數(shù)據(jù)庫發(fā)出轉(zhuǎn)碼失敗異常消息。
8.如權(quán)利要求7所述的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其特征在于當(dāng)轉(zhuǎn)碼超時(shí)時(shí),任務(wù)數(shù)據(jù)庫 直接由其他轉(zhuǎn)碼服務(wù)器來轉(zhuǎn)換,而不記錄任務(wù)轉(zhuǎn)碼失敗記錄的信息;目標(biāo)文件服務(wù)器執(zhí)行 文件合并時(shí),首先向任務(wù)數(shù)據(jù)庫查詢每一任務(wù)塊數(shù)據(jù)由哪臺轉(zhuǎn)碼服務(wù)器轉(zhuǎn)碼。
9.一種分布式實(shí)時(shí)轉(zhuǎn)碼方法,所述的轉(zhuǎn)碼包括文件格式轉(zhuǎn)碼和編碼格式轉(zhuǎn)碼,其特征 在于,包括以下步驟步驟1,源文件服務(wù)器對待轉(zhuǎn)碼的文件進(jìn)行任務(wù)劃分,得到分塊和分塊信息,任務(wù)塊 劃分完后,分塊和分塊信息傳輸?shù)饺蝿?wù)數(shù)據(jù)庫中;步驟2,任務(wù)數(shù)據(jù)庫存儲分塊以及分塊信息;步驟3,分布式轉(zhuǎn)碼服務(wù)器群實(shí)時(shí)向數(shù)據(jù)庫服務(wù)器發(fā)出獲取任務(wù)的請求; 步驟4,任務(wù)數(shù)據(jù)庫向分布式轉(zhuǎn)碼服務(wù)器群發(fā)送任務(wù)信息; 步驟5,分布式轉(zhuǎn)碼服務(wù)器群執(zhí)行轉(zhuǎn)碼操作,并向數(shù)據(jù)庫服務(wù)器反饋轉(zhuǎn)碼完成情況; 步驟6,分布式轉(zhuǎn)碼服務(wù)器群將以成功轉(zhuǎn)碼的數(shù)據(jù)塊發(fā)送到目標(biāo)文件服務(wù)器; 步驟7,數(shù)據(jù)庫服務(wù)器向目標(biāo)文件服務(wù)器提供分塊信息,當(dāng)文件的所有任務(wù)都執(zhí)行完畢 且成功完成,目標(biāo)文件服務(wù)器根據(jù)分塊信息將此文件合并成目標(biāo)文件。
10.如權(quán)利要求9所述的分布式實(shí)時(shí)轉(zhuǎn)碼系統(tǒng),其特征在于在上述步驟5中,轉(zhuǎn)碼服 務(wù)器根據(jù)處理能力實(shí)時(shí)獲取任務(wù),所述處理能力為轉(zhuǎn)碼服務(wù)器的處理器的運(yùn)算頻率,或者 處理器的核數(shù);上述任務(wù)數(shù)據(jù)庫為每個(gè)已分配出去的任務(wù)設(shè)定一個(gè)超時(shí)時(shí)間,用于防止某 臺轉(zhuǎn)碼服務(wù)器發(fā)送故障或異常退出時(shí)該任務(wù)會被其他的轉(zhuǎn)碼服務(wù)器獲取到。
全文摘要
本發(fā)明提供一種分布式實(shí)時(shí)轉(zhuǎn)碼方法與系統(tǒng)。采用源文件服務(wù)器對視頻源文件進(jìn)行邏輯分塊,分塊和分塊信息傳輸?shù)饺蝿?wù)數(shù)據(jù)庫中。轉(zhuǎn)碼服務(wù)器群實(shí)時(shí)獲取待轉(zhuǎn)碼的源文件,并執(zhí)行轉(zhuǎn)碼處理,目標(biāo)文件服務(wù)器實(shí)時(shí)接收轉(zhuǎn)碼服務(wù)器群發(fā)送來的轉(zhuǎn)碼后的數(shù)據(jù),將文件合并成目標(biāo)文件。本發(fā)明在很大程度上提升了系統(tǒng)的可擴(kuò)展性、容錯(cuò)性和可維護(hù)性,并使文件編碼格式的轉(zhuǎn)碼時(shí)間得到極大的提升。
文檔編號H04N7/26GK102123279SQ201010609189
公開日2011年7月13日 申請日期2010年12月28日 優(yōu)先權(quán)日2010年12月28日
發(fā)明者李茗, 楊永強(qiáng), 祝曉光 申請人:樂視網(wǎng)信息技術(shù)(北京)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
于都县| 远安县| 将乐县| 阿瓦提县| 福海县| 左云县| 萨迦县| 敦化市| 宣恩县| 龙山县| 桂阳县| 沅陵县| 安顺市| 泰顺县| 九龙坡区| 利川市| 普兰县| 察哈| 永德县| 越西县| 米易县| 丰城市| 杭锦后旗| 东台市| 新宁县| 托里县| 湾仔区| 建宁县| 丹寨县| 石首市| 象州县| 溧水县| 隆化县| 高要市| 尚义县| 商南县| 邵武市| 读书| 常德市| 土默特左旗| 进贤县|