專利名稱:一種應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換系統(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字家庭的多媒體格式轉(zhuǎn)換領(lǐng)域。技術(shù)背景數(shù)字家庭標(biāo)準(zhǔn)IGRS (Intelligent Grouping and Resource Sharing)的 AV應(yīng)用框架定義了 IGRS AV設(shè)備,其中包括媒體服務(wù)器和媒體播放器,媒體服 務(wù)器提供媒體內(nèi)容的瀏覽和傳輸,媒體播放器負(fù)責(zé)媒體播放。媒體轉(zhuǎn)碼服務(wù)是 媒體服務(wù)器內(nèi)容目錄服務(wù)中的一個可選功能,用于在媒體播放器向媒體服務(wù)器 請求傳輸媒體文件時,實現(xiàn)不同媒體格式之間的實時轉(zhuǎn)換,將待傳輸?shù)拿襟w文 件實時轉(zhuǎn)碼成媒體播放器所支持并能夠?qū)崟r播放的某種媒體格式,整個轉(zhuǎn)碼過 程對用戶來說是透明的。目前關(guān)于媒體轉(zhuǎn)碼服務(wù)中轉(zhuǎn)碼的實現(xiàn), 一般的做法是在進行實際轉(zhuǎn)碼過程 時調(diào)用相應(yīng)的轉(zhuǎn)碼函數(shù)庫完成具體的媒體轉(zhuǎn)碼過程,但這種方法的缺點是只能 提供對特定的幾種媒體格式的轉(zhuǎn)碼功能,支持的媒體格式數(shù)量有限,不利于系 統(tǒng)對媒體格式支持的擴展,不能做到靈活適應(yīng)不同應(yīng)用環(huán)境的需求。而且運行 媒體服務(wù)器軟件的硬件平臺本身所提供的轉(zhuǎn)碼能力會由于其集成的轉(zhuǎn)碼芯片的 不同而各有不同。所以,這樣的設(shè)計方法不能靈活適應(yīng)實際的需要。發(fā)明內(nèi)容本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,針對IGRS媒體服務(wù)器軟件的媒體 轉(zhuǎn)碼服務(wù)設(shè)計并實現(xiàn)了一種具有可擴展性的、可配置的外部轉(zhuǎn)碼設(shè)計方案。另外本發(fā)明還提供了一種基于FIFO的方法,能夠支持一邊轉(zhuǎn)碼一邊傳輸媒 體數(shù)據(jù)流一邊播放的功能。為了實現(xiàn)發(fā)明目的,采用的技術(shù)方案如下一種應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換系統(tǒng),包括媒體服務(wù)器以及媒體播放 器,所述媒體服務(wù)器通過數(shù)字家庭網(wǎng)絡(luò)與媒體播放器連接,還設(shè)置有獨立的轉(zhuǎn) 碼器程序以負(fù)責(zé)具體的媒體格式轉(zhuǎn)換過程,所述媒體服務(wù)器通過配置文件控制 媒體格式轉(zhuǎn)碼的調(diào)配,即針對不同格式的媒體轉(zhuǎn)碼要求調(diào)配適當(dāng)?shù)霓D(zhuǎn)碼器程序。本發(fā)明設(shè)計了一種外部轉(zhuǎn)碼的方案,即將具體的媒體格式轉(zhuǎn)碼過程從媒體 服務(wù)器系統(tǒng)中分離出來,將其調(diào)配給適當(dāng)?shù)霓D(zhuǎn)碼器程序進行處理。而媒體服務(wù) 器系統(tǒng)則專注于媒體轉(zhuǎn)碼任務(wù)的調(diào)配,針對不同格式的媒體內(nèi)容調(diào)配適當(dāng)?shù)霓D(zhuǎn) 碼器程序完成具體的媒體轉(zhuǎn)碼過程。通過設(shè)計配置文件,將有關(guān)媒體轉(zhuǎn)碼任務(wù) 調(diào)配的配置保存在配置文件中,實現(xiàn)媒體轉(zhuǎn)碼服務(wù)的可配置性,例如增加或刪 除可以轉(zhuǎn)碼的媒體格式,增加或刪除轉(zhuǎn)碼器程序。用到配置文件的地方有兩處 (1)媒體服務(wù)器根據(jù)配置文件中的相關(guān)設(shè)置將媒體內(nèi)容映射到發(fā)送給媒體播放 器的媒體內(nèi)容列表中;(2)當(dāng)媒體播放器請求媒體服務(wù)器傳輸需進行媒體轉(zhuǎn)碼 的媒體內(nèi)容時,媒體服務(wù)器讀取配置文件,根據(jù)配置文件中的相關(guān)設(shè)置,執(zhí)行 一系列動作進行具體的媒體格式轉(zhuǎn)碼過程。通過這種設(shè)計,本發(fā)明可以適應(yīng)不 同的應(yīng)用場合和硬件平臺對不同媒體格式的支持,而且可以通過配置靈活地調(diào) 用各種轉(zhuǎn)碼器程序來完成轉(zhuǎn)碼過程,還可以靈活增加或替換轉(zhuǎn)碼器程序,更加 容易隨時適應(yīng)不同的應(yīng)用需要,支持更多的媒體格式。上述技術(shù)方案中,所述獨立的轉(zhuǎn)碼器程序包括運行時采用與媒體服務(wù)器主 進程獨立的轉(zhuǎn)碼子進程實現(xiàn),需要轉(zhuǎn)碼時,媒體服務(wù)器創(chuàng)建子進程執(zhí)行轉(zhuǎn)碼策略中指定的轉(zhuǎn)碼器程序,將具體的轉(zhuǎn)碼過程交給轉(zhuǎn)碼器子進程,而媒體服務(wù)器 主進程負(fù)責(zé)調(diào)配轉(zhuǎn)碼任務(wù)和讀取轉(zhuǎn)碼輸出。轉(zhuǎn)碼過程結(jié)束后,轉(zhuǎn)碼器子進程馬 上退出?;蛘呤撬鲛D(zhuǎn)碼器程序為獨立的轉(zhuǎn)碼服務(wù)設(shè)備,所述媒體服務(wù)器通過 直接調(diào)用或遠(yuǎn)程調(diào)用該轉(zhuǎn)碼服務(wù)設(shè)備實現(xiàn)轉(zhuǎn)碼過程,此種結(jié)構(gòu)下,轉(zhuǎn)碼服務(wù)設(shè) 備可作為第三方的服務(wù)設(shè)備,供媒體服務(wù)器調(diào)用。本發(fā)明所述配置文件包含有轉(zhuǎn)碼規(guī)則和轉(zhuǎn)碼策略,所述轉(zhuǎn)碼規(guī)則指明了對 哪種媒體格式進行轉(zhuǎn)碼,以及進行轉(zhuǎn)碼時所使用的轉(zhuǎn)碼策略,所述轉(zhuǎn)碼策略則 指定了將一種媒體格式轉(zhuǎn)碼成另一種媒體格式將需要調(diào)用哪個轉(zhuǎn)碼器程序,并 指定了運行該轉(zhuǎn)碼器程序時的命令行參數(shù)。所述媒體服務(wù)器還創(chuàng)建一個FIFO作為轉(zhuǎn)碼器程序的輸入輸出隊列,由一個或多個轉(zhuǎn)碼器程序向FIFO隊列的一端寫入數(shù)據(jù),而媒體服務(wù)器從FIFO隊列的 另 一端讀出轉(zhuǎn)碼輸出的媒體數(shù)據(jù)。本發(fā)明的一種應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換方法,包括如下步驟(1) 媒體內(nèi)容的映射媒體服務(wù)器讀取配置文件中的轉(zhuǎn)碼規(guī)則和轉(zhuǎn)碼策略,并在向媒體播放器發(fā) 送媒體內(nèi)容列表時,將能夠進行轉(zhuǎn)碼的媒體內(nèi)容映射成多個不同媒體格式的媒體內(nèi)容列表項,包括原始格式的和轉(zhuǎn)碼輸出格式;(2) 轉(zhuǎn)碼任務(wù)的調(diào)配 媒體服務(wù)器收到媒體播放器的請求后,將根據(jù)該播放請求判斷是否需要進行媒體轉(zhuǎn)碼,若需要則讀取配置文件的轉(zhuǎn)碼策略,通過轉(zhuǎn)碼策略指定的轉(zhuǎn)碼器 程序完成具體的轉(zhuǎn)碼過程,而媒體服務(wù)器負(fù)責(zé)調(diào)配不同轉(zhuǎn)碼器程序的轉(zhuǎn)碼任務(wù), 并讀取轉(zhuǎn)碼輸出傳送給媒體播放器。所述步驟(1)的媒體服務(wù)器向媒體播放器發(fā)送的媒體內(nèi)容列表中,其媒體內(nèi)容列表項的URI參數(shù)包括了媒體對象ID和轉(zhuǎn)碼策略ID,媒體服務(wù)器根據(jù)轉(zhuǎn)碼 策略ID參數(shù)的有無來判斷是原始格式還是轉(zhuǎn)碼輸出格式,以決定是否進行轉(zhuǎn)碼。所述步驟(2)的媒體服務(wù)器創(chuàng)建一個FIFO作為轉(zhuǎn)碼器程序的轉(zhuǎn)碼輸出, 利用FIFO,轉(zhuǎn)碼器程序進行媒體轉(zhuǎn)碼并把轉(zhuǎn)碼輸出到FIFO,媒體服務(wù)器從FIFO 的另外一端讀取轉(zhuǎn)碼輸出的媒體數(shù)據(jù)并傳輸給媒體播放器,實現(xiàn)了一邊轉(zhuǎn)碼一 邊播放。本發(fā)明提供一種針對IGRS媒體服務(wù)器軟件的媒體轉(zhuǎn)碼服務(wù)的可擴展性的、 可配置的媒體轉(zhuǎn)碼服務(wù)解決方案,該發(fā)明的特點是設(shè)計了媒體轉(zhuǎn)碼服務(wù)的配置 文件,將有關(guān)媒體轉(zhuǎn)碼任務(wù)調(diào)配的配置保存在配置文件中,實現(xiàn)媒體轉(zhuǎn)碼服務(wù) 的可配置性,例如增加或刪除可以轉(zhuǎn)碼的媒體格式,增加或刪除轉(zhuǎn)碼器程序。 從而使得IGRS媒體服務(wù)器軟件靈活地調(diào)用各種不同的轉(zhuǎn)碼器程序來完成不同格 式的轉(zhuǎn)碼過程。另外本發(fā)明提供了一種基于FIFO的方法,能夠支持一邊轉(zhuǎn)碼一 邊傳輸媒體數(shù)據(jù)流一邊播放的功能。本發(fā)明采用獨立的轉(zhuǎn)碼器程序?qū)iT進行特定媒體格式之間的轉(zhuǎn)碼過程,將 輸入的媒體文件轉(zhuǎn)碼并保存成另外一種格式的媒體文件。對轉(zhuǎn)碼器程序的要求 是可以在命令行參數(shù)中設(shè)置待轉(zhuǎn)碼文件路徑和轉(zhuǎn)碼輸出文件路徑。獨立的轉(zhuǎn)碼器程序?qū)崿F(xiàn)了外部轉(zhuǎn)碼,外部轉(zhuǎn)碼就是把具體轉(zhuǎn)碼過程交給作 為子程序運行的轉(zhuǎn)碼器程序。這樣,就可以根據(jù)實際需要,例如基于轉(zhuǎn)碼芯片 硬件平臺自行開發(fā)某種格式的轉(zhuǎn)碼器程序,或者直接利用已有的第三方轉(zhuǎn)碼器 程序。還可以編寫轉(zhuǎn)碼腳本作為轉(zhuǎn)碼器程序,而在轉(zhuǎn)碼腳本中,可以通過管道 命令調(diào)用多個轉(zhuǎn)碼器程序?qū)崿F(xiàn)轉(zhuǎn)碼,在轉(zhuǎn)碼腳本中還可以進行轉(zhuǎn)碼參數(shù)的設(shè)置。例如編寫一個轉(zhuǎn)碼腳本調(diào)用開源轉(zhuǎn)碼器程序ogg 123和lame,以便將ogg格式 轉(zhuǎn)碼成mp3格式。本發(fā)明可以將配置文件以XML格式保存,在配置文件中可以設(shè)置轉(zhuǎn)碼規(guī)則, 以及可以針對每一種能轉(zhuǎn)碼的媒體格式設(shè)置轉(zhuǎn)碼策略。有了轉(zhuǎn)碼規(guī)則和轉(zhuǎn)碼策 略,于是媒體服務(wù)器可以針對不同格式的媒體內(nèi)容調(diào)配適當(dāng)?shù)霓D(zhuǎn)碼器程序完成 具體的媒體轉(zhuǎn)碼過程。通過修改配置文件就能靈活地增加、修改或刪除轉(zhuǎn)碼規(guī) 則和轉(zhuǎn)碼策略,于是可以實現(xiàn)媒體轉(zhuǎn)碼服務(wù)的可配置性。轉(zhuǎn)碼規(guī)則指明了可以對哪種媒體格式進行轉(zhuǎn)碼,以及進行轉(zhuǎn)碼時所使用的 轉(zhuǎn)碼策略。轉(zhuǎn)碼規(guī)則在配置文件中的〈transcode〉標(biāo)簽項中設(shè)置,其中mimetype 屬性表示可以進行轉(zhuǎn)碼的媒體格式;profile屬性表示所使用的轉(zhuǎn)碼策略。示例 如下<transcode mimetype=〃audio/x-vorbis+ogg〃 profile =〃oggprof7>轉(zhuǎn)碼策略體現(xiàn)在配置文件中定義的〈profile〉標(biāo)簽項分節(jié),每一個 〈profile〉標(biāo)簽項表示一種轉(zhuǎn)碼策略,轉(zhuǎn)碼策略指定了將一種媒體格式轉(zhuǎn)碼成另 一種媒體格式將需要調(diào)用哪個轉(zhuǎn)碼器程序,并指定了運行該轉(zhuǎn)碼器程序時的命 令行參數(shù)。轉(zhuǎn)碼規(guī)則所對應(yīng)的轉(zhuǎn)碼策略oggprof的設(shè)置如下所示 <profile name=〃 oggprof 〃 ><mimetype>audio/x—wav〈/mimetype〉〈codec command="oggl23" arguments=〃-d wav -f %out c %in 7> 〈/profile>上述轉(zhuǎn)碼策略示例中,〈profile〉標(biāo)簽的name屬性表示轉(zhuǎn)碼策略的名稱,〈mimetype〉子標(biāo)簽表示轉(zhuǎn)碼的目標(biāo)媒體格式,< codec〉子標(biāo)簽用于設(shè)置轉(zhuǎn)碼器 程序,其中command屬性表示轉(zhuǎn)碼器程序名稱,arguments屬性表示調(diào)用該轉(zhuǎn)碼 器程序時的命令行參數(shù),注意其中的y。in和Q/。out標(biāo)記符,它們不屬于命令行參 數(shù)的一部分,在媒體服務(wù)器中有特定的含義標(biāo)記符。Mn將會被輸入文件名所代 替,該文件就是需要進行轉(zhuǎn)碼的媒體文件;。/。out將會被用于轉(zhuǎn)碼輸出的FIFO名 代替。
圖l為本發(fā)明的實現(xiàn)示意圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明做進一步的說明。本發(fā)明的轉(zhuǎn)碼系統(tǒng)包括幾個主要模塊HTTP服務(wù)器模塊、虛擬目錄文件IO 請求處理模塊、轉(zhuǎn)碼任務(wù)調(diào)配模塊,具體介紹如下(1) HTTP服務(wù)器模塊在數(shù)字家庭標(biāo)準(zhǔn)IGRS中,媒體服務(wù)器和媒體播放器之間媒體內(nèi)容數(shù)據(jù)的傳 輸采用IGRS以外的協(xié)議,因此稱作媒體帶外傳輸,對于媒體帶外傳輸沒有指定 特定的協(xié)議,在此本發(fā)明采用HTTP作為媒體帶外傳輸?shù)膮f(xié)議,為此,在媒體服 務(wù)器中必須實現(xiàn)內(nèi)置HTTP服務(wù)器功能。HTTP服務(wù)器模塊負(fù)責(zé)接收并處理媒體 播放器發(fā)送的HTTP-Get請求,并負(fù)責(zé)將讀取到的媒體內(nèi)容數(shù)據(jù)以HTTP協(xié)議方 式進行媒體帶外傳輸,以發(fā)送給媒體播放器。(2) 虛擬目錄文件10請求處理模塊虛擬目錄文件10請求處理模塊負(fù)責(zé)接受HTTP服務(wù)器的文件10操作調(diào)用。 本模塊的主要函數(shù)包括void * web_open(const char *0bjectURI, struct File—Info *info, enum OpenFileMode mode);int web一read(Void * f, char氺buf, size—t length) , Ref〈RequestHandler〉 create_request—handler(const char氺ObjectURI);函數(shù)web—open:當(dāng)HTTP服務(wù)器需要打開一個文件時,該函數(shù)將被回調(diào)。 web—open調(diào)用create—request—handler函數(shù),該函數(shù)根據(jù)請求返回合適的10 Handler。待打開文件由媒體內(nèi)容的URI指定,分兩種情況處理(l)如果URI 中只包括媒體對象ID (0bjectlD),代表待打開文件是普通文件,則交由用于處 理普通文件10請求的模塊進行處理,返回FileIOHandler; (2)如果URI中的參 數(shù)中除了包括ObjectID,還包括轉(zhuǎn)碼策略ID,則代表待打開文件是以轉(zhuǎn)碼輸出 格式呈現(xiàn)的媒體內(nèi)容,需要媒體服務(wù)器進行媒體轉(zhuǎn)碼,所以要交由轉(zhuǎn)碼任務(wù)調(diào) 配模塊進行處理,最終返回ProcessIOHandler。函數(shù)web—read: HTTP服務(wù)器回調(diào)該函數(shù),對一個已經(jīng)打開了的文件進行順 序讀取操作。web—read首先分析請求,然后調(diào)用合適的10 hanlder (FileIOHandler或ProcessI0Handler)的read函數(shù),該read函數(shù)從文件或 轉(zhuǎn)碼輸出緩沖區(qū)中讀取length字節(jié)的數(shù)據(jù)并寫入到輸出緩沖中。(3)轉(zhuǎn)碼任務(wù)調(diào)配模塊轉(zhuǎn)碼任務(wù)調(diào)配模塊負(fù)責(zé)以下工作根據(jù)待轉(zhuǎn)碼的媒體內(nèi)容的0bjectlD獲取其對應(yīng)的媒體文件的在文件系統(tǒng)中 的路徑,判斷媒體文件路徑的正確性,包括是否存在、是否可讀等; 根據(jù)轉(zhuǎn)碼策略ID獲取轉(zhuǎn)碼策略的詳細(xì)設(shè)置值; 創(chuàng)建一個臨時FIFO,用于轉(zhuǎn)碼輸出;創(chuàng)建子進程,執(zhí)行轉(zhuǎn)碼策略中指定的轉(zhuǎn)碼器程序;創(chuàng)建用于讀取FIFO的工0句柄ProcessIOHandler, ProcessIOHandler負(fù)責(zé) FIF0的I0操作。媒體轉(zhuǎn)碼的流程如附圖1所示,為IGRS媒體服務(wù)器的媒體轉(zhuǎn)碼控制流程, 假設(shè)媒體服務(wù)器上共享有一個Hv格式的視頻文件,文件名是myvideo. flv。媒 體播放器只支持播放mpeg格式而不支持f lv格式。而媒體服務(wù)器具有媒體轉(zhuǎn)碼 服務(wù),在配置文件中已經(jīng)對flv格式設(shè)置了轉(zhuǎn)碼策略,轉(zhuǎn)碼策略中指定了轉(zhuǎn)碼 器軟件是vlc,轉(zhuǎn)碼輸出格式是mpeg。以下描述媒體轉(zhuǎn)碼交互流程(1) 媒體播放器向媒體服務(wù)器發(fā)送browse的IGRS請求數(shù)據(jù)包,要求瀏覽 媒體服務(wù)器上共享的媒體內(nèi)容;(2) 媒體服務(wù)器響應(yīng)媒體播放器的browse請求,以IGRS響應(yīng)數(shù)據(jù)包形式 將媒體內(nèi)容列表發(fā)送給媒體播放器,媒體內(nèi)容列表中包括了關(guān)于每 -項媒體內(nèi) 容的URI屬性和媒體格式屬性。視頻文件myvideo.flv在媒體內(nèi)容列表中對應(yīng) 有兩個列表項,其中一項的媒體格式為flv,其URI中內(nèi)含了該文件在媒體服 務(wù)器媒體庫中的媒體對象ID (ObjectID);另一項的媒體格式為mpeg,其URI 中除了包含該文件的媒體對象ID,還有轉(zhuǎn)碼策略ID (TranscodeID)。(3) 媒體播放器請求播放媒體內(nèi)容列表中的媒體格式為mpeg的媒體內(nèi)容, 于是發(fā)送HTTP-Get請求給媒體服務(wù)器,在HTTP-Get請求數(shù)據(jù)包中包含了待播 放媒體內(nèi)容的URI;(4) 媒體服務(wù)器中的內(nèi)建HTTP服務(wù)器接收到媒體播放器的HTTP-Get請求 數(shù)據(jù)包后對其進行解析和處理,HTTP服務(wù)器首先對URI調(diào)用文件操作open;(5) HTTP服務(wù)器對URI調(diào)用文件操作叩en,其實是回調(diào)虛擬目錄文件10請求處理模塊中的web—open函數(shù),web—open函數(shù)負(fù)責(zé)分析URI中的參數(shù),根據(jù) 參數(shù)的不同將調(diào)用不同模塊的open接口如果URI中只包含了 ObjectID參數(shù) 而沒有TranscodeID參數(shù),則調(diào)用媒體文件10請求處理模塊的open接口 ,該 接口將調(diào)用普通文件的open操作以打開OjbectID所對應(yīng)的媒體服務(wù)器上的實 際的媒體文件;如果URI中包含了ObjectID參數(shù)和TranscodeID參數(shù),則表明 需要進行媒體轉(zhuǎn)碼,將調(diào)用轉(zhuǎn)碼任務(wù)調(diào)配模塊的open接口,該接口將進行以下 一系列操作(6)至(11);(6) 轉(zhuǎn)碼任務(wù)調(diào)配模塊的open接口首先讀取系統(tǒng)的媒體信息數(shù)據(jù)庫,根 據(jù)0bjectlD獲取其對應(yīng)的媒體文件在文件系統(tǒng)中的路徑;(7) 轉(zhuǎn)碼任務(wù)調(diào)配模塊的open接口接著讀取媒體轉(zhuǎn)碼的配置文件,獲取 TranscodeID所對應(yīng)的轉(zhuǎn)碼策略,轉(zhuǎn)碼策略中包括轉(zhuǎn)碼器程序的路徑、命令行參 數(shù)s(8) 創(chuàng)建一個FIFO文件;(9) 用剛才得到的媒體文件路徑和剛才創(chuàng)建的FIFO路徑分別替換轉(zhuǎn)碼策 略中命令行參數(shù)的y。in和。/。out標(biāo)記符,然后創(chuàng)建子進程,執(zhí)行轉(zhuǎn)碼策略中指定 的轉(zhuǎn)碼器程序;(10) 轉(zhuǎn)碼器子進程開始進行媒體轉(zhuǎn)碼,將媒體文件作為轉(zhuǎn)碼輸入,F(xiàn)IFO 作為轉(zhuǎn)碼輸出;(11) 創(chuàng)建IO句柄,用該10句柄調(diào)用標(biāo)準(zhǔn)操作open打開FIFO,然后轉(zhuǎn)碼 任務(wù)調(diào)配模塊的open接口返回10句柄,最終HTTP服務(wù)器的open文件操作成 功返回了IO句柄;(12) HTTP服務(wù)器調(diào)用10操作read,最終從FIFO中讀取轉(zhuǎn)碼輸出;(13) HTTP服務(wù)器將轉(zhuǎn)碼輸出發(fā)送給媒體播放器,媒體播放器接收到媒體 內(nèi)容數(shù)據(jù)后開始播放;此后,轉(zhuǎn)碼器程序以媒體服務(wù)器主進程的一個子進程的形式運行, 一邊轉(zhuǎn)碼, 一邊將轉(zhuǎn)碼輸出寫到FIFO中,同時媒體服務(wù)器主進程從FIFO讀取轉(zhuǎn)碼輸 出,發(fā)送給媒體播放器進行播放。
權(quán)利要求
1、一種應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換系統(tǒng),包括媒體服務(wù)器以及媒體播放器,所述媒體服務(wù)器通過數(shù)字家庭網(wǎng)絡(luò)與媒體播放器連接,其特征在于還設(shè)置有獨立的轉(zhuǎn)碼器程序以負(fù)責(zé)具體的媒體格式轉(zhuǎn)換過程,所述媒體服務(wù)器通過配置文件控制媒體格式轉(zhuǎn)碼的調(diào)配,即針對不同格式的媒體轉(zhuǎn)碼要求調(diào)配適當(dāng)?shù)霓D(zhuǎn)碼器程序。
2、 根據(jù)權(quán)利要求1所述的應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換系統(tǒng),其特征在于所述獨立的轉(zhuǎn)碼器程序包括運行時采用與媒體服務(wù)器主進程獨立的轉(zhuǎn)碼子進 程實現(xiàn),或者是所述轉(zhuǎn)碼器程序為獨立的轉(zhuǎn)碼服務(wù)設(shè)備,所述媒體服務(wù)器通過 直接調(diào)用或遠(yuǎn)程調(diào)用該轉(zhuǎn)碼服務(wù)設(shè)備實現(xiàn)轉(zhuǎn)碼過程。
3、 根據(jù)權(quán)利要求1或2所述的應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換系統(tǒng),其特 征在于所述配置文件包含有轉(zhuǎn)碼規(guī)則和轉(zhuǎn)碼策略,所述轉(zhuǎn)碼規(guī)則指明了對哪種 媒體格式進行轉(zhuǎn)碼,以及進行轉(zhuǎn)碼時所使用的轉(zhuǎn)碼策略,所述轉(zhuǎn)碼策略則指定 了將一種媒體格式轉(zhuǎn)碼成另一種媒體格式將需要調(diào)用哪個轉(zhuǎn)碼器程序,并指定 了運行該轉(zhuǎn)碼器程序時的命令行參數(shù)。
4、 根據(jù)權(quán)利要求3所述的應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換系統(tǒng),其特征在 于所述媒體服務(wù)器還創(chuàng)建一個FIFO作為轉(zhuǎn)碼器程序的輸入輸出隊列,由一個或 多個轉(zhuǎn)碼器程序向FIFO隊列的一端寫入數(shù)據(jù),而媒體服務(wù)器從FIFO隊列的另 一端讀出轉(zhuǎn)碼輸出的媒體數(shù)據(jù)。
5、 一種采用權(quán)利要求4所述媒體格式轉(zhuǎn)換系統(tǒng)的媒體格式轉(zhuǎn)換方法,其特征在于包括如下步驟(l)媒體內(nèi)容的映射媒體服務(wù)器讀取配置文件中的轉(zhuǎn)碼規(guī)則和轉(zhuǎn)碼策略,并在向媒體播放器發(fā) 送媒體內(nèi)容列表時,將能夠進行轉(zhuǎn)碼的媒體內(nèi)容映射成多個不同媒體格式的媒 體內(nèi)容列表項,包括原始格式的和轉(zhuǎn)碼輸出格式; (2)轉(zhuǎn)碼任務(wù)的調(diào)配媒體服務(wù)器收到媒體播放器的請求后,將根據(jù)該播放請求判斷是否需要進 行媒體轉(zhuǎn)碼,若需要則讀取配置文件的轉(zhuǎn)碼策略,通過轉(zhuǎn)碼策略指定的轉(zhuǎn)碼器 程序完成具體的轉(zhuǎn)碼過程,而媒體服務(wù)器負(fù)責(zé)調(diào)配不同轉(zhuǎn)碼器程序的轉(zhuǎn)碼任務(wù), 并讀取轉(zhuǎn)碼輸出傳送給媒體播放器。
6、 根據(jù)權(quán)利要求5所述的應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換方法,其特征在于所述步驟(1)的媒體服務(wù)器向媒體播放器發(fā)送的媒體內(nèi)容列表中,其媒體內(nèi)容列表項的URI參數(shù)包括了媒體對象ID和轉(zhuǎn)碼策略ID,媒體服務(wù)器根據(jù)轉(zhuǎn)碼策 略ID參數(shù)的有無來判斷是原始格式還是轉(zhuǎn)碼輸出格式,以決定是否進行轉(zhuǎn)碼。
7、 根據(jù)權(quán)利要求5所述的應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換方法,其特征在 于所述步驟(2)的媒體服務(wù)器創(chuàng)建一個FIFO作為轉(zhuǎn)碼器程序的轉(zhuǎn)碼輸出,利 用FIFO,轉(zhuǎn)碼器程序進行媒體轉(zhuǎn)碼并把轉(zhuǎn)碼輸出到FIFO,媒體服務(wù)器從FIFO 的另外一端讀取轉(zhuǎn)碼輸出的媒體數(shù)據(jù)并傳輸給媒體播放器,實現(xiàn)了一邊轉(zhuǎn)碼一 邊播放。
全文摘要
本發(fā)明提供了一種應(yīng)用于數(shù)字家庭的媒體格式轉(zhuǎn)換系統(tǒng)及方法,包括媒體服務(wù)器以及媒體播放器,所述媒體服務(wù)器通過數(shù)字家庭網(wǎng)絡(luò)與媒體播放器連接,還設(shè)置有獨立的轉(zhuǎn)碼器程序以負(fù)責(zé)具體的媒體格式轉(zhuǎn)換過程,所述媒體服務(wù)器通過配置文件控制媒體格式轉(zhuǎn)碼的調(diào)配,即針對不同格式的媒體轉(zhuǎn)碼要求調(diào)配適當(dāng)?shù)霓D(zhuǎn)碼器程序。本發(fā)明克服了現(xiàn)有技術(shù)的不足,針對IGRS媒體服務(wù)器軟件的媒體轉(zhuǎn)碼服務(wù)設(shè)計并實現(xiàn)了一種具有可擴展性的、可配置的外部轉(zhuǎn)碼設(shè)計方案。另外還提供了一種基于FIFO的方法,能夠支持一邊轉(zhuǎn)碼一邊傳輸媒體數(shù)據(jù)流一邊播放的功能。
文檔編號H04L29/06GK101404652SQ20081019906
公開日2009年4月8日 申請日期2008年10月10日 優(yōu)先權(quán)日2008年10月10日
發(fā)明者劉發(fā)貴, 鄺耀宗 申請人:華南理工大學(xué)