本發(fā)明實施例涉及信息處理技術(shù),尤其涉及一種多媒體流的處理方法、裝置和嵌入式設(shè)備。
背景技術(shù):
近幾年來,隨著IP(Internet Protocol,網(wǎng)際協(xié)議)網(wǎng)絡(luò)的快速發(fā)展,視頻監(jiān)控行業(yè)進(jìn)入了全網(wǎng)絡(luò)化時代,網(wǎng)絡(luò)攝像機、以及NVR(Network Video Recorder,網(wǎng)絡(luò)硬盤錄像機)產(chǎn)品的應(yīng)用也越來越廣泛。
上述產(chǎn)品一般有兩大主要功能:實時播放和錄像。錄像一般都會掛載一張SD Card(Secure Digital Memory Card,安全數(shù)字存儲卡)或者其他存儲設(shè)備中,用來保存大量的音視頻數(shù)據(jù)。保存在SD卡中的視頻文件,通常會用來做視頻回放,這就需要對音視頻流打包封裝成多媒體文件,以提供給客戶端或者移動應(yīng)用程序的播放器播放。在一些場景下需要同時將多路網(wǎng)絡(luò)攝像頭拍攝的錄音錄像打包封裝成多媒體文件;在另一些場景下可能需要將有價值的錄音錄像片段通過網(wǎng)絡(luò)上傳到云服務(wù)器中,再下載到客戶端,同時又需要支持通過點播或者直播的形式在移動設(shè)備上查看錄像文件,這就避免不了對音視頻混流封裝成多個格式的多媒體文件,如FLV(Flash Video,流媒體格式)、MP4(Moving Picture Experts Group 4,動態(tài)圖像專家組)、TS(transport stream,傳送流)或PS(Program Stream,節(jié)目流)等格式。
現(xiàn)有的音視頻混流打包的管理方式,只支持單路音視頻流的處理或者僅支持對音視頻流進(jìn)行單一封裝格式的處理邏輯,直接增添多路或多種格式的封裝打包往往會使系統(tǒng)邏輯變得復(fù)雜,且容易出現(xiàn)問題。此外擴展性也差,增加新的功能的時候,代碼改動量大。由于代碼臃腫,也使后期的維護(hù)成本很高。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種多媒體流的處理方法、裝置和嵌入式設(shè)備,以實現(xiàn)簡單、高效將音視頻流混流生成滿足設(shè)定封裝需求的多媒體文件。
第一方面,本發(fā)明實施例提供了一種多媒體流的處理方法,該方法包括:
根據(jù)封裝要求確定多媒體流數(shù)量和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的編碼組件模板進(jìn)行配置,以獲得對應(yīng)的編碼組件實例;
將輸入的多媒體流,輸入至所述編碼組件實例進(jìn)行所述預(yù)設(shè)封裝格式的封裝;
輸出具有所述預(yù)設(shè)封裝格式的多媒體流。
第二方面,本發(fā)明實施例還提供了一種多媒體流的處理裝置,該裝置包括:
編碼組件實例獲取模塊,用于根據(jù)封裝要求確定多媒體流數(shù)量和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的編碼組件模板進(jìn)行配置,以獲得對應(yīng)的編碼組件實例;
多媒體流封裝模塊,用于將輸入的多媒體流,輸入至所述編碼組件實例進(jìn)行所述預(yù)設(shè)封裝格式的封裝;
多媒體流輸出模塊,用于輸出具有所述預(yù)設(shè)封裝格式的多媒體流。
第三方面,本發(fā)明實施例還提供了一種嵌入式設(shè)備,包括:本發(fā)明實施例所述的多媒體流的處理裝置。
本發(fā)明實施例根據(jù)封裝要求確定多媒體流數(shù)量和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的編碼組件模板進(jìn)行配置,以獲得對應(yīng)的編碼組件實例;將輸入的多媒體流,輸入至所述編碼組件實例進(jìn)行所述預(yù)設(shè)封裝格式的封裝;輸出具有所述預(yù)設(shè)封裝格式的多媒體流,解決了現(xiàn)有的音視頻混流打包的管理方式,只支持單路音視頻流的處理或者僅支持對音視頻流進(jìn)行單一封裝格式的處理邏輯,直接增添多路或多種格式的封裝打包往往會使系統(tǒng)邏輯變得復(fù)雜的技術(shù)問題,實現(xiàn)了簡單、高效將音視頻流混流生成滿足需求的多媒體文件的技術(shù)效果。
附圖說明
圖1是本發(fā)明實施例一中的一種多媒體流的處理方法的流程圖;
圖2a是本發(fā)明實施例二中的一種多媒體流的處理方法的流程圖;
圖2b是一種應(yīng)用于本發(fā)明實施例二中的多媒體流的處理方法的編碼組件模板的結(jié)構(gòu)示意圖;
圖2c是一種應(yīng)用于本發(fā)明實施例二中的多媒體流的處理方法的混流過濾器的功能示意圖;
圖2d是一種應(yīng)用于本發(fā)明實施例二中的多媒體流的處理方法的優(yōu)先級隊列的功能示意圖;
圖3是本發(fā)明實施例三中的一種多媒體流的處理裝置的結(jié)構(gòu)圖;
圖4是本發(fā)明實施例四中的一種嵌入式設(shè)備的結(jié)構(gòu)圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部結(jié)構(gòu)。
實施例一
圖1為本發(fā)明實施例一提供的一種多媒體流的處理方法的流程圖,本實施例可適用于對音視頻流進(jìn)行混流封裝的情況,該方法可以由多媒體流的處理裝置來執(zhí)行,該裝置可通過軟件,和/或硬件的方式實現(xiàn),并一般可集成于完成音視頻混流封裝功能的硬件設(shè)備中(典型的,音視頻復(fù)用器),所述方法具體包括如下步驟:
S110、根據(jù)封裝要求確定多媒體流數(shù)量和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的編碼組件模板進(jìn)行配置,以獲得對應(yīng)的編碼組件實例。
在本實施例中,所述封裝要求用于指明待處理的多媒體流數(shù)量,以及所述多媒體流的封裝格式。
其中,所述多媒體流可以包括音視頻流、也可以僅包括音頻流或者視頻流。所述多媒體流數(shù)量可以為一個或者多個。典型的,所述多媒體流可以為一個或者多個IP Camera(網(wǎng)絡(luò)攝像頭)采集的音視頻流。所述多媒體流的封裝格式可以為一個,也可以為多個。其中,所述多媒體流的封裝格式可以包括:RTP格式、TS格式、MP4格式或者FLV格式等多媒體文件封裝格式。
相應(yīng)的,根據(jù)封裝要求確定多媒體流數(shù)量和預(yù)設(shè)封裝格式可以包括:
如果接收到的封裝要求中確定待處理的多媒體流為多個,或者預(yù)設(shè)封裝格式有多個,則根據(jù)多媒體流的數(shù)量和/或預(yù)設(shè)封裝格式的數(shù)量,將多媒體流復(fù)制生成多路多媒體流,以分別進(jìn)行處理。
典型的,所述封裝要求可以為對多路IP Camera采集的音視頻流進(jìn)行封裝處理生成一種封裝格式的多媒體文件的要求,或者對一路IP Camera采集的音視頻流進(jìn)行封裝處理生成多種封裝格式的多媒體文件的要求,或者對多路IP Camera采集的音視頻流進(jìn)行封裝處理生成多種封裝格式的多媒體文件的要求等。
所述編碼組件模板具體是指預(yù)先編寫的,用于將輸入的音視頻流編碼為相應(yīng)封裝格式的多媒體文件的模板函數(shù)。其中,所述編碼組件模板可以包括一個或者多個用于執(zhí)行設(shè)定功能的模板函數(shù),用于根據(jù)所述多媒體流數(shù)量和預(yù)設(shè)封裝格式,生成相應(yīng)的編碼組件實例,以實現(xiàn)針對實際的封裝要求,適應(yīng)性生成相應(yīng)的編碼組件實例,以實現(xiàn)將輸入的多媒體流封裝為相應(yīng)的封裝格式。
其中,所述編碼組件模板中包括與封裝格式對應(yīng)的至少兩個編碼程序模板,以實現(xiàn)生成至少兩個封裝格式的多媒體文件。
S120、將輸入的多媒體流,輸入至所述編碼組件實例進(jìn)行所述預(yù)設(shè)封裝格式的封裝。
如前所述,所述多媒體流具體是指一路或者多路音頻流,和/或視頻流。
所述編碼組件實例中包括輸入接口以及輸出接口,用于將輸入的所述多媒體流,進(jìn)行所述預(yù)設(shè)封裝格式的封裝處理,以最終生成所述預(yù)設(shè)封裝格式的多媒體流,即:RTP(Real-time Transport Protocol,實時傳輸協(xié)議)、TS、MP4或者FLV等格式的多媒體文件。
S130、輸出具有所述預(yù)設(shè)封裝格式的多媒體流。
本發(fā)明實施例根據(jù)封裝要求確定多媒體流數(shù)量和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的編碼組件模板進(jìn)行配置,以獲得對應(yīng)的編碼組件實例;將輸入的多媒體流,輸入至所述編碼組件實例進(jìn)行所述預(yù)設(shè)封裝格式的封裝;輸出具有所述預(yù)設(shè)封裝格式的多媒體流,解決了現(xiàn)有的音視頻混流打包的管理方式,只支持單路音視頻流的處理或者僅支持對音視頻流進(jìn)行單一封裝格式的處理邏輯,直接增添多路或多種格式的封裝打包往往會使系統(tǒng)邏輯變得復(fù)雜的技術(shù)問題,實現(xiàn)了簡單、高效將音視頻流混流生成滿足需求的多媒體文件的技術(shù)效果。
實施例二
圖2a是本發(fā)明實施例二提供的一種多媒體流的處理方法的流程圖,本實施例以上述實施例為基礎(chǔ)進(jìn)行優(yōu)化,在本實施例中,將根據(jù)封裝要求和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的編碼組件模板進(jìn)行配置,以獲得對應(yīng)的編碼組件實例具體優(yōu)化為:根據(jù)封裝要求和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的音頻編碼組件模板、視頻編碼組件模板和混流組件模板分別進(jìn)行配置,以獲得對應(yīng)的音頻編碼組件實例、視頻編碼組件實例和混流組件實例;
相應(yīng)的,將輸入的多媒體流,輸入至所述編碼組件實例進(jìn)行所述預(yù)設(shè)封裝格式的封裝具體優(yōu)化為:
將輸入的多媒體流中的音頻流,輸入至所述音頻編碼組件實例進(jìn)行封裝,并輸出至混流組件實例;將輸入的多媒體流中的視頻流,輸入至所述視頻編碼組件實例進(jìn)行封裝,并輸出至混流組件實例;通過所述混流組件實例,按照音頻流和視頻流中的時間戳,將音頻流和視頻流進(jìn)行混流處理,形成具有預(yù)設(shè)封裝格式的多媒體流。
相應(yīng)的,本實施例的方法具體包括如下步驟:
S210、根據(jù)封裝要求和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的音頻編碼組件模板、視頻編碼組件模板和混流組件模板分別進(jìn)行配置,以獲得對應(yīng)的音頻編碼組件實例、視頻編碼組件實例和混流組件實例。
可以理解的是,為了實現(xiàn)將輸入的音視頻流最終封裝為相應(yīng)封裝格式的多媒體文件,需要首先將音頻流以及視頻流首先封裝成適宜的音頻格式以及視頻格式。在一個具體例子中,如果需要最終生成的多媒體文件為MP4格式,則需要首先將輸入的音頻流封裝為MP3格式。
相應(yīng)的,為了便于程序代碼的模塊化處理,以及擴展,在本實施例中,將所述編碼組件模板具體優(yōu)化為:音頻編碼組件模板、視頻編碼組件模板和混流組件模板。
其中,所述音頻編碼組件模板,用于將輸入的音頻流封裝為與封裝要求對應(yīng)的音頻封裝格式;所述視頻編碼組件模板,用于將輸入的視頻流封裝為與封裝要求對應(yīng)的視頻封裝格式;所述混流模板組件,用于將所述通過所述音頻編碼組件模板以及所述視頻編碼組件模板輸出的音視頻流進(jìn)行混流,以最終生成所述預(yù)設(shè)封裝格式的多媒體流。
S220、將輸入的多媒體流中的音頻流,輸入至所述音頻編碼組件實例進(jìn)行封裝,并輸出至混流組件實例。
在本實施例的一個可選的實施方式中,將輸入的多媒體流中的音頻流,輸入至所述音頻編碼組件實例進(jìn)行封裝,可以包括:
通過所述音頻編碼組件實例,獲取設(shè)定大小(典型的,1kb(千字節(jié))或者2kb等)的音頻流,在預(yù)存的音頻編碼格式集中獲取與封裝要求對應(yīng)的音頻編碼格式對所述音頻流進(jìn)行封裝。
其中,所述音頻編碼格式集預(yù)存在所述音頻編碼組件模板(實例)中,包括有至少兩個音頻編碼格式等的編碼算法以實現(xiàn)對輸入的音頻流進(jìn)行相應(yīng)音頻編碼格式的封裝,典型的所述音頻編碼格式可以包括:MP3、WAV(Windows Media Audio,微軟媒體音頻)以及AAC(Advanced Audio Coding高級音頻編碼)等。
S230、將輸入的多媒體流中的視頻流,輸入至所述視頻編碼組件實例進(jìn)行封裝,并輸出至混流組件實例。
S240、通過所述混流組件實例,按照音頻流和視頻流中的時間戳,將音頻流和視頻流進(jìn)行混流處理,形成具有預(yù)設(shè)封裝格式的多媒體流。
在本實施例的一個可選的實施方式中,通過所述混流組件實例,按照音頻流和視頻流中的時間戳,將音頻流和視頻流進(jìn)行混流處理,形成具有預(yù)設(shè)封裝格式的多媒體流,可以包括:
通過所述混流組件實例,獲取與預(yù)設(shè)封裝格式對應(yīng)的參數(shù)配置信息,根據(jù)所述參數(shù)配置信息創(chuàng)建相應(yīng)的多媒體容器,并將混流處理的所述音頻流和視頻流寫入所述多媒體容器中,形成具有預(yù)設(shè)封裝格式的多媒體流。
進(jìn)一步的,在所述混流組件模板中還可以包括有擴展接口,用于支持對至少一個新增封裝格式的擴展。
S250、輸出具有所述預(yù)設(shè)封裝格式的多媒體流。
本發(fā)明實施例的技術(shù)方案通過將輸入的多媒體流中的音頻流,輸入至所述音頻編碼組件實例進(jìn)行封裝,并輸出至混流組件實例;將輸入的多媒體流中的視頻流,輸入至所述視頻編碼組件實例進(jìn)行封裝,并輸出至混流組件實例;通過所述混流組件實例,按照音頻流和視頻流中的時間戳,將音頻流和視頻流進(jìn)行混流處理,形成具有預(yù)設(shè)封裝格式的多媒體流,可以提高了現(xiàn)有的多媒體流處理方法的可擴展性,當(dāng)增加新的封裝格式或者多媒體流的數(shù)量時,僅需要對音頻編碼組件模板、視頻編碼組件模板和混流組件模板進(jìn)行適應(yīng)性配置即可,不需要另外開發(fā)數(shù)據(jù)的讀寫、管理接口等,減少了大量的系統(tǒng)邏輯,提高代碼的穩(wěn)定性,給程序瘦身,減少軟件維護(hù)成本。
在圖2b是一種應(yīng)用于本發(fā)明實施例二中的多媒體流的處理方法的編碼組件模板的結(jié)構(gòu)示意圖。如圖2b所示,所述編碼組件模板主體架構(gòu)以記錄引擎管理器(也可稱為Record Engine Manager)為中心管理引擎,音頻輸入過濾器(也可稱為Audio Input Filter),用于獲取設(shè)定大小(典型的,1kb(千字節(jié))或者2kb等)的音頻流,音頻編碼過濾器(也可稱為Audio Encode Filter)用于將在預(yù)存的音頻編碼格式集中獲取與封裝要求對應(yīng)的音頻編碼格式對所述音頻流進(jìn)行封裝,其中,所述音頻輸入過濾器以及音頻編碼過濾器共同構(gòu)成音頻編碼組件模板;視頻編碼過濾器(也可稱為Video Encode Filter)構(gòu)成音頻編碼組件模板,用于輸出設(shè)定視頻編碼格式的視頻流。
混流過濾器(也可稱為Muxer Filters),用于將輸入的一個或者多個音視頻流(在圖2b中僅示出一個音視頻輸入)組合成一個單獨的數(shù)據(jù)流(即:預(yù)設(shè)封裝格式的多媒體流,或者多媒體文件),混流配置過濾器(也可稱為Muxer Config Filters)用于存儲音視頻編碼,和/或混流格式的參數(shù)配置信息,混流控制過濾器(也可稱為Muxer Control Filter)用于控制整個流程的開始,結(jié)束等操作,同時支持設(shè)定數(shù)據(jù)庫(典型的,sqllite數(shù)據(jù)庫)的管理。其中,混流過濾器、混流配置過濾器以及混流控制過濾器共同構(gòu)成混流組件模板。
可選的,所述記錄引擎管理器是主體,用來控制所有的過濾器,主要有以下的功能:用來管理協(xié)調(diào)不同過濾器之間的狀態(tài)改變,從而使記錄引擎管理器中的所有的過濾器的狀態(tài)的改變應(yīng)該一致,將過濾器的消息通知返回給主程序。
過濾器是每個工作階段,每個過濾器擁有唯一的身份標(biāo)識號,每一個過濾器都一個其他的一個或者兩個過濾器相連接。通過標(biāo)識出一個過濾器的輸入過濾器,和/或輸出過濾器的身份標(biāo)識,可以實現(xiàn)將多媒體流從一個過濾器傳輸至另一個過濾器,進(jìn)而實現(xiàn)多媒體流在由過濾器組成的鏈表中流動。
一個過濾器可以有一個或者多個輸入接口、以及一個或者多個輸出接口,具體的接口數(shù)量取決于過濾器的功能。多媒體流在一個方向傳播,即從音頻編碼過濾器,和/或視頻編碼過濾器流入混流過濾器。
一個過濾器在獲取音視頻流并進(jìn)行相應(yīng)處理后,通過其輸出接口發(fā)送處理后的音視頻流到該過濾器連接的下一個過濾器的輸入接口。下一個過濾器進(jìn)行相應(yīng)處理后,發(fā)送到下一個過濾器,如此類推。最終各個過濾器實現(xiàn)將輸入的音視頻數(shù)據(jù)封裝為預(yù)設(shè)封裝格式的多媒體文件。
圖2c是一種應(yīng)用于本發(fā)明實施例二中的多媒體流的處理方法的混流過濾器的功能示意圖,如圖2c所示,所述混流過濾器的工作流程包括:
創(chuàng)建一路或者多路音頻編碼過濾器或者視頻編碼過濾器,以記錄引擎管理器為時鐘基準(zhǔn),將相匹配的音頻編碼過濾器以及視頻編碼過濾器輸入的音頻流以及視頻流加上同步時間戳,同時,音頻編碼過濾器將音頻流轉(zhuǎn)換為預(yù)設(shè)的音頻編碼格式(例如:G711或者AAC)等。
相應(yīng)的,通過音頻編碼過濾器輸出的混流輸入音頻流以及通過視頻編碼過濾器輸出的混流輸入視頻流被輸入至混流過濾器中。
混流過濾器內(nèi)部將音頻流以及視頻流送入優(yōu)先級隊列(也可稱為Priority Queue)中,優(yōu)先級隊列將音視頻流按幀時間戳重新排序,輸出時間戳最小的幀數(shù)據(jù);流控制器(也稱為stream control)收到開始混流的消息后,讀取優(yōu)先級隊列中的數(shù)據(jù)并以第一幀數(shù)據(jù)為時鐘基準(zhǔn)計算打包時間,并將音視頻流分發(fā)到混流核心器中,混流核心器為所有多媒體容器的管理者,通過混流配置過濾器傳送的配置參數(shù),混流核心器創(chuàng)建對應(yīng)的多媒體容器(例如,MP4容器),并將音視頻流寫入到所建立的容器中,并按照配置進(jìn)行自動分片,同時支持動態(tài)的分片,保證了在對不同場景下錄像需求。這樣基本完成一個完整的工作流程。
擴展方面,混流核心器導(dǎo)出了擴展接口,如果想加入新的媒體容器(例如,AVI格式)的封裝,在AVI庫中實現(xiàn)擴展接口后,即可加入到混流核心器中,實現(xiàn)一個新的容器的擴展,同時支持流的方式輸出,比如RTP等。
多路復(fù)用方面,只需要創(chuàng)建多個(音頻編碼過濾器與視頻編碼過濾器)的輸入,系統(tǒng)內(nèi)部自動同步創(chuàng)建相應(yīng)的其他過濾器將其對應(yīng)連接起來完成封裝打包。
另外,需要說明的是:音頻編碼過濾器以及視頻編碼過濾器并非一定要成對創(chuàng)建,可允許僅輸入視頻流或者音頻流進(jìn)行封裝。
實施例三
在圖3中示出了本發(fā)明實施例三提供的一種多媒體流的處理裝置的結(jié)構(gòu)圖。如圖3所示,所述裝置包括:編碼組件實例獲取模塊310、多媒體流封裝模塊320以及多媒體流輸出模塊330。
編碼組件實例獲取模塊310,用于根據(jù)封裝要求確定多媒體流數(shù)量和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的編碼組件模板進(jìn)行配置,以獲得對應(yīng)的編碼組件實例。
多媒體流封裝模塊320,用于將輸入的多媒體流,輸入至所述編碼組件實例進(jìn)行所述預(yù)設(shè)封裝格式的封裝。
多媒體流輸出模塊330,用于輸出具有所述預(yù)設(shè)封裝格式的多媒體流。
本發(fā)明實施例根據(jù)封裝要求確定多媒體流數(shù)量和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的編碼組件模板進(jìn)行配置,以獲得對應(yīng)的編碼組件實例;將輸入的多媒體流,輸入至所述編碼組件實例進(jìn)行所述預(yù)設(shè)封裝格式的封裝;輸出具有所述預(yù)設(shè)封裝格式的多媒體流,解決了現(xiàn)有的音視頻混流打包的管理方式,只支持單路音視頻流的處理或者僅支持對音視頻流進(jìn)行單一封裝格式的處理邏輯,直接增添多路或多種格式的封裝打包往往會使系統(tǒng)邏輯變得復(fù)雜的技術(shù)問題,實現(xiàn)了簡單、高效將音視頻流混流生成滿足需求的多媒體文件的技術(shù)效果。
在上述各實施例的基礎(chǔ)上,編碼組件實例獲取模塊,進(jìn)一步可以用于:
根據(jù)封裝要求和預(yù)設(shè)封裝格式,對相應(yīng)封裝格式的音頻編碼組件模板、視頻編碼組件模板和混流組件模板分別進(jìn)行配置,以獲得對應(yīng)的音頻編碼組件實例、視頻編碼組件實例和混流組件實例;
相應(yīng)的,多媒體流封裝模塊,可以包括:
音頻流封裝單元,用于將輸入的多媒體流中的音頻流,輸入至所述音頻編碼組件實例進(jìn)行封裝,并輸出至混流組件實例;
視頻流封裝單元,用于將輸入的多媒體流中的視頻流,輸入至所述視頻編碼組件實例進(jìn)行封裝,并輸出至混流組件實例;
混流單元,用于通過所述混流組件實例,按照音頻流和視頻流中的時間戳,將音頻流和視頻流進(jìn)行混流處理,形成具有預(yù)設(shè)封裝格式的多媒體流。
在上述各實施例的基礎(chǔ)上,編碼組件實例獲取模塊可以用于:
如果接收到的封裝要求中確定待處理的多媒體流為多個,或者預(yù)設(shè)封裝格式有多個,則根據(jù)多媒體流的數(shù)量和/或預(yù)設(shè)封裝格式的數(shù)量,將多媒體流復(fù)制生成多路多媒體流,以分別進(jìn)行處理。
在上述各實施例的基礎(chǔ)上,所述編碼組件模板中可以包括與封裝格式對應(yīng)的至少兩個編碼程序模板。
在上述各實施例的基礎(chǔ)上,所述混流單元,具體可以用于:
通過所述混流組件實例,獲取與預(yù)設(shè)封裝格式對應(yīng)的參數(shù)配置信息,根據(jù)所述參數(shù)配置信息創(chuàng)建相應(yīng)的多媒體容器,并將混流處理的所述音頻流和視頻流寫入所述多媒體容器中,形成具有預(yù)設(shè)封裝格式的多媒體流。
在上述各實施例的基礎(chǔ)上,所述音頻流封裝單元,可以用于:通過所述音頻編碼組件實例,獲取設(shè)定大小的音頻流,在預(yù)存的音頻編碼格式集中獲取與封裝要求對應(yīng)的音頻編碼格式對所述音頻流進(jìn)行封裝。
在上述各實施例的基礎(chǔ)上,在所述混流組件模板中包括有擴展接口,可以用于支持對至少一個新增封裝格式的擴展。
上述產(chǎn)品可執(zhí)行本發(fā)明任意實施例所提供的方法,具備執(zhí)行方法相應(yīng)的功能模塊和有益效果。
實施例四
在圖4中示出了本發(fā)明實施例四提供的一種嵌入式設(shè)備的結(jié)構(gòu)圖。如圖4所示,所述嵌入式設(shè)備包括:本發(fā)明任意實施例所述的多媒體流的處理裝置410。
一般來說,嵌入式設(shè)備中可以運行的程序空間有限,無法引入大型的軟件框架,現(xiàn)有技術(shù)中無法在嵌入式設(shè)備中實現(xiàn)多路多媒體流以及多種媒體容器來管理大量音視頻文件或流的情況。在本實施例中,通過在嵌入式設(shè)備中引入本發(fā)明任意實施例所述的多媒體流的處理裝置410,可以在有限的程序空間中,實現(xiàn)簡單、高效的將多路音視頻流混流生成滿足需求的多路多媒體文件的技術(shù)效果,可維護(hù)性高、使用難度低以及可移植性好。
注意,上述僅為本發(fā)明的較佳實施例及所運用技術(shù)原理。本領(lǐng)域技術(shù)人員會理解,本發(fā)明不限于這里所述的特定實施例,對本領(lǐng)域技術(shù)人員來說能夠進(jìn)行各種明顯的變化、重新調(diào)整和替代而不會脫離本發(fā)明的保護(hù)范圍。因此,雖然通過以上實施例對本發(fā)明進(jìn)行了較為詳細(xì)的說明,但是本發(fā)明不僅僅限于以上實施例,在不脫離本發(fā)明構(gòu)思的情況下,還可以包括更多其他等效實施例,而本發(fā)明的范圍由所附的權(quán)利要求范圍決定。