專(zhuān)利名稱(chēng):一種音視頻編解碼裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及音視頻編解碼,特別涉及一種可降低對(duì)用戶(hù)系統(tǒng)環(huán)境依賴(lài)性及提高軟
件質(zhì)量穩(wěn)定性的音視頻編解碼裝置及方法。
背景技術(shù):
現(xiàn)有技術(shù)一般采用DirectShow或FFMPEG進(jìn)行音視頻編解碼。DirectShow是微軟
公司推出的基于COM (Component Object Model,組件對(duì)象模型)的流媒體處理的開(kāi)發(fā)包,
提供一種Windows平臺(tái)上的流媒體開(kāi)發(fā)框架,可用于Windows平臺(tái)上的音視頻編解碼處理。
而FFMPEG是開(kāi)源愛(ài)好者開(kāi)發(fā)的一個(gè)項(xiàng)目,集成了各種音頻和視頻的編解碼,以及各種文件
格式的轉(zhuǎn)換, 一般采用C語(yǔ)言和匯編語(yǔ)言進(jìn)行開(kāi)發(fā),可以跨平臺(tái)。 如果采用上述的DirectShow技術(shù)進(jìn)行音視頻編解碼,會(huì)存在以下問(wèn)題 1)對(duì)用戶(hù)系統(tǒng)環(huán)境的依賴(lài)性高。采用DirectShow技術(shù)進(jìn)行音視頻編解碼,依賴(lài)于
系統(tǒng)中存在的諸多第三方開(kāi)發(fā)者開(kāi)發(fā)的編解碼組件,而這些組件通過(guò)安裝一些播放器或一
些專(zhuān)門(mén)的軟件包獲得,因此導(dǎo)致不同的系統(tǒng)中存在組件很可能不同。 2)軟件質(zhì)量存在不確定性。由于采用依賴(lài)于第三方開(kāi)發(fā)者開(kāi)發(fā)的編解碼組件,而 這些組件的開(kāi)發(fā)者各異,質(zhì)量也參差不齊,導(dǎo)致一些文件運(yùn)行在某些電腦上會(huì)報(bào)錯(cuò),運(yùn)行在 某些電腦上沒(méi)有問(wèn)題。而且微軟也準(zhǔn)備逐漸放棄DirectShow這種架構(gòu),導(dǎo)致這種技術(shù)的前 景暗淡。 如果采用上述的FFMPEG技術(shù)音視頻編解碼,會(huì)存在以下問(wèn)題
因?yàn)镕FMPE是采用GPL協(xié)議,如果使用到該項(xiàng)目,那么軟件必須開(kāi)放源代碼。而 FFMPEG架構(gòu)以及代碼復(fù)雜龐大,而且沒(méi)有注釋?zhuān)茈y看懂。如果要修改存在的BUG或做必要 擴(kuò)展,則難度太高。并且FFMPEG主要是針對(duì)LINUX平臺(tái)的,移植到WINDOWS平臺(tái)則需要做 大量的修改,使用起來(lái)不方便。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題在于,如何針對(duì)現(xiàn)有技術(shù)中采用DirecShow技術(shù)對(duì)用戶(hù) 系統(tǒng)環(huán)境的依賴(lài)性高和軟件質(zhì)量不確定性,以及采用FFMPEG技術(shù)難以維護(hù)和擴(kuò)展的缺點(diǎn), 提供一種可降低對(duì)用戶(hù)系統(tǒng)環(huán)境依賴(lài)性及提高軟件質(zhì)量穩(wěn)定性音視頻編解碼裝置及方法。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是一種音視頻編解碼裝置,包括
解碼模塊,用于導(dǎo)入媒體文件,調(diào)用相應(yīng)的解碼器對(duì)該媒體文件進(jìn)行解碼;
播放模塊,用于對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行播放; 轉(zhuǎn)換控制模塊,用于對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行相關(guān)處理,包括根據(jù)編碼參數(shù)進(jìn) 行視頻分辨率的縮放和添加效果處理,依據(jù)幀率和時(shí)間戳進(jìn)行重復(fù)幀和丟幀處理,對(duì)音頻 數(shù)據(jù)進(jìn)行采樣率轉(zhuǎn)換處理,按照數(shù)據(jù)量和時(shí)間戳對(duì)音頻數(shù)據(jù)進(jìn)行丟棄或填補(bǔ)靜音數(shù)據(jù)的處 理,以及將多個(gè)媒體文件連接成一個(gè)媒體文件的處理; 編碼模塊,包括編碼器和媒體文件合成器,用于調(diào)用相應(yīng)的編碼器和媒體文件合成器,生成指定格式及相關(guān)參數(shù)的多媒體文件。 本發(fā)明中,所述解碼模塊具體包括多類(lèi)型解碼管理器、圖像解碼器、DirectShow解 碼器以及媒體文件解碼器, 多類(lèi)型解碼管理器,用于將文件后綴名為圖像類(lèi)型文件后綴的媒體文件送入圖像 解碼器進(jìn)行解碼,將文件后綴名為wmv、wma、rmvb以及rm的媒體文件送入DirectShow解碼 器進(jìn)行解碼,將除文件后綴名為wmv、wma、rmvb以及rm以外的媒體文件送入媒體文件解碼 器進(jìn)行解碼; 圖像解碼器,用于將解碼后得到的YUV12(MPEG里都是按12bit —個(gè)點(diǎn)來(lái)存放的, 通常簡(jiǎn)寫(xiě)為YUV12)類(lèi)型的視頻數(shù)據(jù)返回給多類(lèi)型解碼管理器; DirectShow解碼器,用于將解碼后得到的YUV12類(lèi)型的視頻數(shù)據(jù)和/或16位 PCM(Pulse Code Modulation,脈碼調(diào)制錄音)類(lèi)型的音頻數(shù)據(jù)返回給多類(lèi)型解碼管理器;
媒體文件解碼器,用于將解碼后得到的YUV12類(lèi)型的視頻數(shù)據(jù)和/或16位PCM類(lèi) 型的音頻數(shù)據(jù)返回給多類(lèi)型解碼管理器。 本發(fā)明中,所述媒體文件解碼器包括解碼控制器、文件分離管理器、文件分離器插 件、解碼插件管理器、音頻解碼器插件以及視頻解碼器插件; 解碼控制器調(diào)用文件分離管理器獲取媒體文件信息,文件分離管理器根據(jù)后綴名
調(diào)用相應(yīng)的文件分離器插件獲取文件信息,該文件信息包括音視頻流的數(shù)目、文件的播放
時(shí)間、各路流的參數(shù),該參數(shù)包括視頻的碼率、分辨率、音頻的采樣率以及碼率; 當(dāng)播放模塊或轉(zhuǎn)換控制模塊調(diào)用解碼控制器獲取下一 YUV12類(lèi)型的視頻數(shù)據(jù)或
16位PCM類(lèi)型的音頻數(shù)據(jù)時(shí),解碼控制器通過(guò)文件分離管理器調(diào)用對(duì)應(yīng)的文件分離器插件
從文件中順序分離若干視頻或音頻壓縮數(shù)據(jù)并傳給解碼控制器,并由解碼控制器將數(shù)據(jù)傳
給解碼插件管理器,解碼插件管理器根據(jù)壓縮數(shù)據(jù)的類(lèi)型傳送給音頻解碼器插件或視頻解
碼器插件進(jìn)行解碼,并將解碼出的YUV12類(lèi)型的視頻數(shù)據(jù)或16位PCM類(lèi)型的音頻數(shù)據(jù)返回
給解碼控制器。 本發(fā)明中,所述轉(zhuǎn)換控制模塊包括數(shù)據(jù)處理模塊、文件連接模塊以及轉(zhuǎn)換模塊,
數(shù)據(jù)處理模塊對(duì)多類(lèi)型解碼管理器發(fā)來(lái)的解碼后的音視頻數(shù)據(jù)進(jìn)行視頻縮放、圖 像疊加、添加效果、視頻顯示區(qū)域比例轉(zhuǎn)換、消除隔行掃描處理、平滑視頻時(shí)間戳、音頻采樣 率變換以及平滑音頻時(shí)間戳處理; 文件連接模塊對(duì)界面發(fā)來(lái)的文件連接處理的請(qǐng)求,進(jìn)行文件連接處理處理,包括 文件頭時(shí)間戳對(duì)齊、文件尾時(shí)間戳對(duì)齊、文件的連接以及視頻和音頻時(shí)間戳的計(jì)算處理;
轉(zhuǎn)換模塊從文件連接模塊獲取需進(jìn)行文件連接處理的音視頻數(shù)據(jù)或從數(shù)據(jù)處理 模塊獲取無(wú)需進(jìn)行文件連接處理的音視頻數(shù)據(jù),對(duì)這些音視頻數(shù)據(jù)進(jìn)行轉(zhuǎn)換邏輯處理,包 括當(dāng)視頻時(shí)間戳小于或等于音頻時(shí)間戳?xí)r,調(diào)用編碼模塊的視頻接口將視頻數(shù)據(jù)寫(xiě)入編碼 器進(jìn)行編碼,當(dāng)視頻時(shí)間戳大于音頻時(shí)間戳?xí)r,調(diào)用編碼模塊中的音頻接口將音頻數(shù)據(jù)寫(xiě) 入編碼器進(jìn)行編碼。 本發(fā)明中,所述編碼模塊還包括編碼管理器,所述編碼器包括音頻編碼器插件和 視頻編碼器插件,所述媒體文件合成器包括媒體文件合成器插件, 轉(zhuǎn)換控制模塊將音頻數(shù)據(jù)寫(xiě)入編碼管理器中,編碼管理器通過(guò)調(diào)用對(duì)應(yīng)的音頻編 碼器插件對(duì)音頻數(shù)據(jù)進(jìn)行編碼,轉(zhuǎn)換控制模塊將視頻數(shù)據(jù)寫(xiě)入編碼管理器中,編碼管理器通過(guò)調(diào)用對(duì)應(yīng)的視頻編碼器插件對(duì)視頻數(shù)據(jù)進(jìn)行編碼,編碼完成后,編碼管理器調(diào)用相應(yīng) 的媒體文件合成器插件,把編碼后的數(shù)據(jù)按照對(duì)應(yīng)的媒體文件格式標(biāo)準(zhǔn)寫(xiě)入媒體文件。
為解決問(wèn)題的另一方面,本發(fā)明還公開(kāi)了一種音視頻編解碼方法,包括如下步 驟 A、導(dǎo)入媒體文件,調(diào)用相應(yīng)的解碼器對(duì)該媒體文件進(jìn)行解碼; B、對(duì)解碼后的音視頻數(shù)據(jù)選擇播放,或?qū)獯a后的音視頻數(shù)據(jù)進(jìn)行相關(guān)處理,包
括根據(jù)編碼參數(shù)進(jìn)行視頻分辨率的縮放和添加效果處理,依據(jù)幀率和時(shí)間戳進(jìn)行重復(fù)幀
和丟幀處理,對(duì)音頻數(shù)據(jù)進(jìn)行采樣率轉(zhuǎn)換處理,按照數(shù)據(jù)量和時(shí)間戳對(duì)音頻數(shù)據(jù)進(jìn)行丟棄
或填補(bǔ)靜音數(shù)據(jù)的處理,以及將多個(gè)媒體文件連接成一個(gè)媒體文件的處理; C、調(diào)用相應(yīng)的編碼器和媒體文件合成器進(jìn)行編碼,生成指定格式及相關(guān)參數(shù)的多
媒體文件。 本發(fā)明中,所述步驟A中,在進(jìn)行解碼之前還包括判斷該媒體文件的類(lèi)型,具體包 括 Al、如果文件后綴名為圖像類(lèi)型文件后綴,包括但不限于bmp、 jpg、 png,則調(diào)用圖 像解碼器進(jìn)行解碼,得到Y(jié)UV12類(lèi)型的視頻數(shù)據(jù)。 A2、如果文件后綴為wmv、wma、rmvb、rm,則調(diào)用DirectShow解碼器進(jìn)行解碼,視頻 解碼后得到Y(jié)UV12數(shù)據(jù),音頻解碼后得到16位PCM類(lèi)型的音頻數(shù)據(jù)。 A3、如果文件后綴為除wmv、 wma、 rmvb、 rm之外的其他媒體文件后綴,包括但不限 于mpg、 mp4、 ogg,則調(diào)用媒體文件解碼器進(jìn)行解碼,視頻解碼后得到Y(jié)UV12類(lèi)型的視頻數(shù) 據(jù),音頻解碼后得到16位PCM類(lèi)型的音頻數(shù)據(jù)。如果解碼失敗則采用DirectShow解碼器 進(jìn)行解碼。 本發(fā)明中,所述步驟A3中,解碼的過(guò)程具體包括 A31,獲取文件信息的步驟,該步驟中解碼控制器調(diào)用文件分離管理器獲取媒體文 件信息,文件分離管理器根據(jù)后綴名調(diào)用相應(yīng)的文件分離器插件獲取文件信息;
A32,視頻解碼的步驟,該步驟中當(dāng)播放模塊或轉(zhuǎn)換控制模塊調(diào)用解碼控制器獲取 的視頻數(shù)據(jù)和/或音頻數(shù)據(jù)時(shí),解碼控制器通過(guò)文件分離管理器調(diào)用對(duì)應(yīng)的文件分離器插 件從文件中順序分離若干視頻壓縮數(shù)據(jù)和/或音頻壓縮數(shù)據(jù)并傳給解碼控制器,并由解碼 控制器將數(shù)據(jù)傳給解碼插件管理器,解碼插件管理器根據(jù)壓縮數(shù)據(jù)的類(lèi)型傳送給視頻解碼 器插件和/或音頻解碼器插件進(jìn)行解碼,并將解碼出的YUV12類(lèi)型的視頻數(shù)據(jù)和/或16位 PCM類(lèi)型的音頻數(shù)據(jù)返回給解碼控制器。 本發(fā)明中,所述步驟B中,所述對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行相關(guān)處理的步驟包括
Bl,數(shù)據(jù)處理模塊對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行視頻縮放、圖像疊加、添加效果、視 頻顯示區(qū)域比例轉(zhuǎn)換、消除隔行掃描處理、平滑視頻時(shí)間戳、音頻采樣率變換以及平滑音頻 時(shí)間戳處理; B2,文件連接模塊對(duì)界面發(fā)來(lái)的文件連接處理的請(qǐng)求,進(jìn)行文件連接處理處理, 包括文件頭時(shí)間戳對(duì)齊、文件尾時(shí)間戳對(duì)齊、文件的連接以及視頻和音頻時(shí)間戳的計(jì)算處 理; B3,轉(zhuǎn)換模塊從文件連接模塊獲取需進(jìn)行文件連接處理的音視頻數(shù)據(jù)或從數(shù)據(jù)處 理模塊獲取無(wú)需進(jìn)行文件連接處理的音視頻數(shù)據(jù),對(duì)這些音視頻數(shù)據(jù)進(jìn)行轉(zhuǎn)換邏輯處理,包括當(dāng)視頻時(shí)間戳小于或等于音頻時(shí)間戳?xí)r,調(diào)用編碼模塊的視頻接口將視頻數(shù)據(jù)寫(xiě)入編 碼器進(jìn)行編碼,當(dāng)視頻時(shí)間戳大于音頻時(shí)間戳?xí)r,調(diào)用編碼模塊中的音頻接口將音頻數(shù)據(jù) 寫(xiě)入編碼器進(jìn)行編碼。
本發(fā)明中,所述步驟C具體包括 Cl,轉(zhuǎn)換控制模塊將音頻數(shù)據(jù)寫(xiě)入編碼管理器中,并由編碼管理器通過(guò)調(diào)用對(duì)應(yīng) 的音頻編碼器插件對(duì)音頻數(shù)據(jù)進(jìn)行編碼,轉(zhuǎn)換控制模塊將視頻數(shù)據(jù)寫(xiě)入編碼管理器中,并 由編碼管理器通過(guò)調(diào)用對(duì)應(yīng)的視頻編碼器插件對(duì)視頻數(shù)據(jù)進(jìn)行編碼; C2,編碼完成后,編碼管理器調(diào)用相應(yīng)的媒體文件合成器插件,把編碼后的數(shù)據(jù)按 照對(duì)應(yīng)的媒體文件格式標(biāo)準(zhǔn)寫(xiě)入媒體文件。 實(shí)施本發(fā)明提供一種音視頻編解碼裝置及方法,與現(xiàn)有的技術(shù)相比,具有如下優(yōu) 點(diǎn) 1)降低了對(duì)用戶(hù)系統(tǒng)環(huán)境的依賴(lài)性,提高了軟件質(zhì)量的確定性。 對(duì)于麗V,WMA,RM,RMVB格式,微軟和Real公司提供的非??煽亢头€(wěn)定的組件進(jìn)行
編解碼,而且每臺(tái)WINDOWS平臺(tái)的電腦都擁有這類(lèi)組件,對(duì)于這類(lèi)格式采用了 DirectShow
技術(shù)進(jìn)行編解碼;而對(duì)于其他格式,則根據(jù)不同文件格式的標(biāo)準(zhǔn),開(kāi)發(fā)出各類(lèi)媒體文件的音
視頻分離器和媒體文件合成器,再根據(jù)各個(gè)編碼格式的標(biāo)準(zhǔn),開(kāi)發(fā)出解碼器和編碼器。另
外,對(duì)于一些技術(shù)難度高的編碼器,還可以通過(guò)選擇購(gòu)買(mǎi)一些非常成熟和穩(wěn)定的商業(yè)SDK
來(lái)實(shí)現(xiàn)。對(duì)音視頻流分別采用模式和基于時(shí)間戳進(jìn)行音視頻同步的方法,設(shè)計(jì)和開(kāi)發(fā)出解
碼平臺(tái),因此降低了用戶(hù)系統(tǒng)環(huán)境的依賴(lài)性,并且軟件質(zhì)量也是可控的。 2)易于維護(hù)。 由于本發(fā)明的編解碼和媒體文件分離、合成部分大都依據(jù)公開(kāi)標(biāo)準(zhǔn)自行開(kāi)發(fā),而 且擁有詳細(xì)的開(kāi)發(fā)文檔,可維護(hù)性強(qiáng),不需要公布相關(guān)源代碼。而另一部分是通過(guò)購(gòu)買(mǎi)一些 成熟和穩(wěn)定的商業(yè)SDK來(lái)實(shí)現(xiàn)的,可以通過(guò)售后服務(wù)來(lái)解決一些BUG。
圖1是說(shuō)明本發(fā)明所述音視頻編解碼方法實(shí)施例的流程圖;
圖2是圖1中進(jìn)入解碼過(guò)程的數(shù)據(jù)進(jìn)行判斷處理的數(shù)據(jù)流圖;
圖3是圖2中進(jìn)行編解碼數(shù)據(jù)處理的數(shù)據(jù)流圖;
圖4是圖1中文件連接處理的調(diào)用過(guò)程的數(shù)據(jù)流圖;
圖5是圖1中生成多媒體文件的數(shù)據(jù)流圖。
具體實(shí)施例方式
為使審查員對(duì)本發(fā)明的結(jié)構(gòu)特征及所具有的功能有更進(jìn)一步的了解與認(rèn)識(shí),用以 較佳的實(shí)施例及附圖配合詳細(xì)的說(shuō)明,說(shuō)明如下 如圖1所示,按照本發(fā)明的音視頻編解碼裝置主要包括解碼模塊、播放模塊、轉(zhuǎn) 換控制模塊以及編碼模塊四大部分。按照本發(fā)明的音視頻編解碼方法,各個(gè)組成部分是這 樣進(jìn)行工作的。 步驟SI,解碼模塊導(dǎo)入媒體文件,調(diào)用相應(yīng)的解碼器對(duì)該媒體文件進(jìn)行解碼。其中 解碼模塊具體包括多類(lèi)型解碼管理器、圖像解碼器、DirectShow解碼器以及媒體文件解碼器,該步驟SI中對(duì)于進(jìn)入解碼過(guò)程的音視頻數(shù)據(jù),作如下處理(如圖2所示)
Al,如果文件后綴名為圖像類(lèi)型文件后綴,如bmp、 jpg、 png等,則多類(lèi)型解碼管理 器調(diào)用圖像解碼器進(jìn)行解碼,得到Y(jié)UV12(MPEG里都是按12bit —個(gè)點(diǎn)來(lái)存放的,通常簡(jiǎn)寫(xiě) 為YUV12)類(lèi)型的視頻數(shù)據(jù)。 A2,如果文件后綴為wmv、 wma、 rmvb、 rm,則多類(lèi)型解碼管理器調(diào)用DirectShow解 碼器進(jìn)行解碼,視頻解碼后得到Y(jié)UV12類(lèi)型的視頻數(shù)據(jù),音頻解碼后得到16位PCM (Pulse Code Modulation,脈碼調(diào)制錄音)類(lèi)型的音頻數(shù)據(jù)。 A3,如果文件后綴為除wmv、 wma、 rmvb、 rm之外的其它媒體文件后綴,如mpg、 mp4、 ogg等,但不限于這幾種格式,則多類(lèi)型解碼管理器調(diào)用媒體文件解碼器進(jìn)行解碼,視頻解 碼后得到Y(jié)UV12數(shù)據(jù),音頻解碼后得到16位PCM類(lèi)型的音頻數(shù)據(jù)。如果解碼失敗則采用 DirectShow方式進(jìn)行解碼。 具體的,所述媒體文件解碼器包括解碼控制器、文件分離管理器、文件分離器插 件、解碼插件管理器、音頻解碼器插件以及視頻解碼器插件,對(duì)于上述A3進(jìn)一步包括(如圖 3所示) A31,獲取文件信息的過(guò)程。 解碼控制器調(diào)用文件分離管理器,獲取媒體文件信息,如包含音視頻流的數(shù)目,文 件的播放時(shí)間,各路流的參數(shù)(如視頻的碼率、分辨率、音頻的采樣率、碼率等信息)。
文件分離管理器根據(jù)后綴名調(diào)用相應(yīng)的文件分離器插件獲取文件信息(如文件 的類(lèi)型等,因?yàn)槊糠N類(lèi)型的文件格式對(duì)應(yīng)著一個(gè)文件分離器插件,這些插件是統(tǒng)一接口 ,便 于擴(kuò)展,而文件分離器插件是根據(jù)該格式對(duì)應(yīng)的標(biāo)準(zhǔn),分析文件中的相關(guān)數(shù)據(jù),獲取文件信 息。例如MP4系列的文件分離器插件,可根據(jù)IS014496中的內(nèi)容,讀取MP4文件中的特定 數(shù)據(jù),獲得文件信息),如果獲取失敗,則調(diào)用其他類(lèi)型的文件分離器插件,可解決因文件后 綴名錯(cuò)誤導(dǎo)致不能播放的問(wèn)題。
A32 ,視頻解碼的過(guò)程。 當(dāng)外界(播放模塊或轉(zhuǎn)換控制模塊)調(diào)用解碼控制器的Forward接口獲取下一 YUV12類(lèi)型的視頻數(shù)據(jù)的時(shí)候,解碼控制器從文件分離管理器中調(diào)用GetBlock接口獲取若 干視頻壓縮數(shù)據(jù),文件分離管理器調(diào)用對(duì)應(yīng)的文件分離器插件的GetBlock接口 ,從文件中 順序分離若干視頻壓縮數(shù)據(jù),并傳給解碼控制器。 解碼控制器調(diào)用解碼插件管理器的PutData接口 ,把數(shù)據(jù)傳給解碼插件管理器, 解碼插件管理器根據(jù)壓縮數(shù)據(jù)的類(lèi)型,調(diào)用對(duì)應(yīng)的解碼器插件的PutData接口 ,把壓縮數(shù) 據(jù)傳遞給解碼器插件(各種解碼器插件都是根據(jù)某種媒體格式的壓縮以及解壓縮標(biāo)準(zhǔn)編 寫(xiě)的,如對(duì)H264視頻壓縮數(shù)據(jù)的解碼,根據(jù)IS0/IEC的MPEG-4的第10部分所描述的內(nèi)容, 實(shí)現(xiàn)對(duì)H264的解碼。這些插件是統(tǒng)一接口,便于擴(kuò)展),然后解碼控制器調(diào)用解碼插件管理 器的GetNextFrame接口獲取一張視頻圖像的數(shù)據(jù),解碼插件管理器通過(guò)調(diào)用對(duì)應(yīng)解碼器 插件中的GetNextFrame接口 ,對(duì)輸入的壓縮數(shù)據(jù)進(jìn)行解碼,獲取一張視頻圖像的數(shù)據(jù)。如 果輸入的視頻壓縮數(shù)據(jù)不足以獲取一張視頻數(shù)據(jù),那么可以重復(fù)上述過(guò)程,直到解碼出一 張YUV12類(lèi)型的視頻數(shù)據(jù)。 A33,音頻解碼過(guò)程與步驟A32的視頻解碼過(guò)程類(lèi)似,這里不再重復(fù)描述。
步驟S2,對(duì)解碼后的音視頻數(shù)據(jù)可以選擇播放。
步驟S3,對(duì)解碼后的音視頻數(shù)據(jù),根據(jù)編碼參數(shù)進(jìn)行視頻分辨率的縮放,添加效果 等處理,依據(jù)幀率和時(shí)間戳,進(jìn)行重復(fù)幀和丟幀等處理。對(duì)音頻數(shù)據(jù)進(jìn)行采樣率變換,依據(jù) 數(shù)據(jù)量和時(shí)間戳對(duì)音頻數(shù)據(jù)進(jìn)行丟棄或填補(bǔ)靜音數(shù)據(jù)的處理,以及把多個(gè)文件連接成一個(gè) 文件的處理。 具體的,所述轉(zhuǎn)換控制模塊包括數(shù)據(jù)處理模塊、文件連接模塊以及轉(zhuǎn)換模塊,圖4 為上述步驟S3中帶文件連接處理的調(diào)用過(guò)程流程圖,文件連接處理就是把多個(gè)文件轉(zhuǎn)換 成一個(gè)文件輸出。 該圖4中數(shù)據(jù)處理模塊主要從多類(lèi)型解碼管理器中獲取音視頻數(shù)據(jù),包括YUV12 數(shù)據(jù)和16位PCM類(lèi)型的音頻數(shù)據(jù),數(shù)據(jù)處理模塊主要處理的步驟包括
1)視頻縮放。 根據(jù)雙線(xiàn)性插值算法,將解碼后的圖像的分辨率轉(zhuǎn)換成編碼所需的分辨率。
2)圖像疊加。 根據(jù)圖像疊加算法,將其他圖像(水印或用戶(hù)指定的圖片)疊加到解碼后的圖像 上。 3)添加效果。 依據(jù)現(xiàn)有的各類(lèi)特效算法,如浮雕效果算法,彩色轉(zhuǎn)黑白算法,反色算法等,對(duì)解
碼出的圖像進(jìn)行效果變換處理。 4)視頻顯示區(qū)域比例轉(zhuǎn)換。 根據(jù)雙線(xiàn)性插值算法,把圖像變化成4:3或16:9的顯示方式。
5)消除隔行掃描處理。 用戶(hù)通過(guò)選擇消除隔行掃描方式,消除隔行掃描,包括 a、重復(fù)奇數(shù)行,對(duì)于一個(gè)YUV12類(lèi)型的視頻圖像,把奇數(shù)行的數(shù)據(jù)復(fù)制到偶數(shù)行, 替換偶數(shù)行。 b、重復(fù)偶數(shù)行,對(duì)于一個(gè)YUV12類(lèi)型的視頻圖像,把偶數(shù)行的數(shù)據(jù)復(fù)制到奇數(shù)行。
c、把相鄰的兩行奇數(shù)行中的各個(gè)數(shù)值取平均,替換之間的偶數(shù)行。
d、把相鄰的兩行偶數(shù)行中的各個(gè)值取平均,替換之間的奇數(shù)行。
6)平滑視頻時(shí)間戳。 依據(jù)解碼出來(lái)圖像的時(shí)間戳,通過(guò)重復(fù)圖像和丟棄圖像使得輸出的圖像嚴(yán)格按照 幀率輸出。 7)音頻采樣率變換。 采用線(xiàn)性插值算法,把解碼出來(lái)的音頻采樣率轉(zhuǎn)換成編碼所需的音頻采樣率。
8)平滑音頻時(shí)間戳。 依據(jù)數(shù)據(jù)量和時(shí)間戳的關(guān)系,填充靜音數(shù)據(jù)或丟棄數(shù)據(jù),使得輸出數(shù)據(jù)時(shí)間戳與 數(shù)據(jù)量相對(duì)應(yīng)。
該圖4中文件連接模塊主要處理的步驟包括
1)文件頭時(shí)間戳對(duì)齊。 —個(gè)媒體文件視頻開(kāi)始時(shí)間戳與音頻開(kāi)始時(shí)間戳并不一定一致,連接過(guò)程中會(huì)導(dǎo) 致音視頻不同步,因此需要將視頻時(shí)間戳與音頻時(shí)間戳對(duì)齊。對(duì)齊的方法就是將各路音視 頻流中開(kāi)始時(shí)間戳最小的那路流的時(shí)間戳作為文件的開(kāi)始時(shí)間戳,其余各路流需要按幀率補(bǔ)黑圖像(視頻)或者按數(shù)據(jù)量補(bǔ)靜音數(shù)據(jù)(音頻),進(jìn)行對(duì)齊。
2)文件尾時(shí)間戳對(duì)齊。 —個(gè)媒體文件視頻結(jié)束時(shí)間戳與音頻結(jié)束時(shí)間戳并不一定一致,連接過(guò)程中也導(dǎo) 致音視頻不同步,因此需要將視頻結(jié)束時(shí)間戳與音頻結(jié)束時(shí)間戳對(duì)齊。對(duì)齊的方法就是將 各路音視頻流中結(jié)束時(shí)間戳最大那路流的時(shí)間戳作為文件的結(jié)束時(shí)間戳,其余各路流需要 按幀率補(bǔ)黑圖像(視頻)或按數(shù)據(jù)量補(bǔ)靜音數(shù)據(jù)(音頻),進(jìn)行對(duì)齊。
3)文件的連接。 當(dāng)一個(gè)文件轉(zhuǎn)換結(jié)束后,創(chuàng)建下一個(gè)文件的解碼器,從解碼器中獲得的音頻和視
頻數(shù)據(jù)的時(shí)間戳都要加上前面轉(zhuǎn)換過(guò)的所有文件的持續(xù)時(shí)間之和。 4)視頻和音頻時(shí)間戳的計(jì)算方法。 從解碼器中取得的時(shí)間戳需要減去文件的開(kāi)始時(shí)間戳,加上前面轉(zhuǎn)換過(guò)的所有文 件的持續(xù)時(shí)間之和。例如 a、文件A視頻流開(kāi)始時(shí)間戳是0秒,結(jié)束時(shí)間戳是5秒,幀率是10秒;音頻流開(kāi)始 時(shí)間戳是1秒,結(jié)束時(shí)間戳是6秒,采樣率是44100,聲道數(shù)是1聲道。 b、文件B視頻流開(kāi)始時(shí)間戳是2秒,結(jié)束時(shí)間戳是7秒,幀率是10秒;音頻流開(kāi)始 時(shí)間戳是3秒,結(jié)束時(shí)間戳是7秒,采樣率是44100,聲道數(shù)是1聲道。
c、連接兩個(gè)文件 第一步,文件頭時(shí)間戳對(duì)齊,根據(jù)1)可知需要對(duì)音頻流補(bǔ)1秒的靜音數(shù)據(jù)。數(shù)據(jù) 量為44100*16/8*1。 第二步,文件尾時(shí)間戳對(duì)齊,當(dāng)視頻播放完畢,需要按幀率補(bǔ)齊文件尾,依據(jù)頻率 需要補(bǔ)10張的黑圖像,與音頻對(duì)齊。 第三步,創(chuàng)建文件B的解碼器,對(duì)文件B進(jìn)行文件頭時(shí)間戳對(duì)齊。文件A的持續(xù)時(shí)
間為6-0 = 6秒,因此對(duì)于視頻第一幀圖像時(shí)間戳修改為2-2+6 = 6。 因此從文件連接模塊中獲取到的音視頻數(shù)據(jù)的時(shí)間戳永遠(yuǎn)是連續(xù)的。 該圖4中轉(zhuǎn)換模塊的轉(zhuǎn)換處理包括 如果需要進(jìn)行文件連接處理,轉(zhuǎn)換模塊需要從文件連接模塊中獲取視頻和音頻數(shù) 據(jù);如果無(wú)需進(jìn)行文件連接處理,那么轉(zhuǎn)換模塊則從數(shù)據(jù)處理模塊中獲取音視頻數(shù)據(jù)。轉(zhuǎn)換 邏輯如下 當(dāng)拿到一張視頻幀和音頻數(shù)據(jù)后,判斷視頻時(shí)間戳是否小于音頻時(shí)間戳,如 果小于或等于音頻時(shí)間戳,那么通過(guò)調(diào)用編碼管理器中的FCWriteVideoFrame接口將 視頻數(shù)據(jù)寫(xiě)入編碼器,進(jìn)行編碼;如果大于音頻數(shù)據(jù),那么通過(guò)調(diào)用編碼管理器中的 FCWriteAudioData接口將音頻數(shù)據(jù)寫(xiě)入編碼器,進(jìn)行編碼。轉(zhuǎn)換模塊調(diào)用文件連接模塊的 GetFrame接口獲得下一幀數(shù)據(jù),重復(fù)上述過(guò)程。 步驟S4,編碼模塊(包括編碼器和媒體文件合成器)調(diào)用相應(yīng)的編碼器和媒體文 件合成器進(jìn)行編碼生成指定格式及相關(guān)參數(shù)的多媒體文件。 具體的,所述編碼模塊還包括編碼管理器,所述編碼器包括音頻編碼器插件和視 頻編碼器插件,所述媒體文件合成器包括媒體文件合成器插件,對(duì)于上述步驟S4進(jìn)一步包 括(如圖5所示) Dl,轉(zhuǎn)換控制器調(diào)用編碼管理器中的FCWriteAudioData接口分別將16位PCM類(lèi)型的音頻數(shù)據(jù)寫(xiě)入編碼管理器中; D2,編碼管理器通過(guò)調(diào)用對(duì)應(yīng)的音頻編碼器插件對(duì)音頻數(shù)據(jù)進(jìn)行編碼(大部分編 碼器插件,都是根據(jù)該編碼對(duì)應(yīng)的標(biāo)準(zhǔn)文獻(xiàn)編碼實(shí)現(xiàn)的;一部分編碼器插件如MPG編碼,通 過(guò)購(gòu)買(mǎi)例如MainConc印t公司提供的SDK實(shí)現(xiàn)的); D3,編碼完成后,編碼管理器通過(guò)調(diào)用相應(yīng)的媒體文件合成器插件,把編碼后的數(shù) 據(jù),按照對(duì)應(yīng)的媒體文件格式標(biāo)準(zhǔn),寫(xiě)入到媒體文件中;
D4,視頻編碼方式與音頻編碼方式類(lèi)似。 綜上所述,通過(guò)采用本發(fā)明技術(shù)方案,降低了用戶(hù)系統(tǒng)環(huán)境的依賴(lài)性,使得軟件質(zhì) 量是可控的,并且由于編解碼和媒體文件分離、合成部分大都是依照公開(kāi)的標(biāo)準(zhǔn)進(jìn)行,可維 護(hù)性強(qiáng)。 以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的權(quán)利要求范圍之內(nèi)。
權(quán)利要求
一種音視頻編解碼裝置,其特征在于,包括解碼模塊,用于導(dǎo)入媒體文件,調(diào)用相應(yīng)的解碼器對(duì)該媒體文件進(jìn)行解碼;播放模塊,用于對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行播放;轉(zhuǎn)換控制模塊,用于對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行相關(guān)處理,包括根據(jù)編碼參數(shù)進(jìn)行視頻分辨率的縮放和添加效果處理,依據(jù)幀率和時(shí)間戳進(jìn)行重復(fù)幀和丟幀處理,對(duì)音頻數(shù)據(jù)進(jìn)行采樣率轉(zhuǎn)換處理,按照數(shù)據(jù)量和時(shí)間戳對(duì)音頻數(shù)據(jù)進(jìn)行丟棄或填補(bǔ)靜音數(shù)據(jù)的處理,以及將多個(gè)媒體文件連接成一個(gè)媒體文件的處理;編碼模塊,包括編碼器和媒體文件合成器,用于調(diào)用相應(yīng)的編碼器和媒體文件合成器,生成指定格式及相關(guān)參數(shù)的多媒體文件。
2. 根據(jù)權(quán)利要求1所述的音視頻編解碼裝置,其特征在于,所述解碼模塊具體包括多 類(lèi)型解碼管理器、圖像解碼器、DirectShow解碼器以及媒體文件解碼器,多類(lèi)型解碼管理器,用于將文件后綴名為圖像類(lèi)型文件后綴的媒體文件送入圖像解碼 器進(jìn)行解碼,將文件后綴名為wmv、wma、rmvb以及rm的媒體文件送入DirectShow解碼器進(jìn) 行解碼,將除文件后綴名為wmv、wma、rmvb以及rm以外的媒體文件送入媒體文件解碼器進(jìn) 行解碼;圖像解碼器,用于將解碼后得到的YUV12類(lèi)型的視頻數(shù)據(jù)返回給多類(lèi)型解碼管理器; DirectShow解碼器,用于將解碼后得到的YUV12類(lèi)型的視頻數(shù)據(jù)和/或16位PCM類(lèi)型的音頻數(shù)據(jù)返回給多類(lèi)型解碼管理器;媒體文件解碼器,用于將解碼后得到的YUV12類(lèi)型的視頻數(shù)據(jù)和/或16位PCM類(lèi)型的音頻數(shù)據(jù)返回給多類(lèi)型解碼管理器。
3. 根據(jù)權(quán)利要求2所述的音視頻編解碼裝置,其特征在于,所述媒體文件解碼器包括 解碼控制器、文件分離管理器、文件分離器插件、解碼插件管理器、音頻解碼器插件以及視 頻解碼器插件;解碼控制器調(diào)用文件分離管理器獲取媒體文件信息,文件分離管理器根據(jù)后綴名調(diào)用 相應(yīng)的文件分離器插件獲取文件信息,該文件信息包括音視頻流的數(shù)目、文件的播放時(shí)間、 各路流的參數(shù),該參數(shù)包括視頻的碼率、分辨率、音頻的采樣率以及碼率;當(dāng)播放模塊或轉(zhuǎn)換控制模塊調(diào)用解碼控制器獲取下一 YUV12類(lèi)型的視頻數(shù)據(jù)時(shí),解 碼控制器通過(guò)文件分離管理器調(diào)用對(duì)應(yīng)的文件分離器插件從文件中順序分離若干視頻壓 縮數(shù)據(jù)并傳給解碼控制器,并由解碼控制器將數(shù)據(jù)傳給解碼插件管理器,解碼插件管理器 根據(jù)壓縮數(shù)據(jù)的類(lèi)型傳送給音頻解碼器插件或視頻解碼器插件進(jìn)行解碼,并將解碼出的 YUV12類(lèi)型的視頻數(shù)據(jù)或16位PCM類(lèi)型的音頻數(shù)據(jù)返回給解碼控制器。
4. 根據(jù)權(quán)利要求2所述的音視頻編解碼裝置,其特征在于,所述轉(zhuǎn)換控制模塊包括數(shù) 據(jù)處理模塊、文件連接模塊以及轉(zhuǎn)換模塊,數(shù)據(jù)處理模塊對(duì)多類(lèi)型解碼管理器發(fā)來(lái)的解碼后的音視頻數(shù)據(jù)進(jìn)行視頻縮放、圖像疊 加、添加效果、視頻顯示區(qū)域比例轉(zhuǎn)換、消除隔行掃描處理、平滑視頻時(shí)間戳、音頻采樣率變 換以及平滑音頻時(shí)間戳處理;文件連接模塊對(duì)界面發(fā)來(lái)的文件連接處理的請(qǐng)求,進(jìn)行文件連接處理處理,包括文件 頭時(shí)間戳對(duì)齊、文件尾時(shí)間戳對(duì)齊、文件的連接以及視頻和音頻時(shí)間戳的計(jì)算處理;轉(zhuǎn)換模塊從文件連接模塊獲取需進(jìn)行文件連接處理的音視頻數(shù)據(jù)或從數(shù)據(jù)處理模塊獲取無(wú)需進(jìn)行文件連接處理的音視頻數(shù)據(jù),對(duì)這些音視頻數(shù)據(jù)進(jìn)行轉(zhuǎn)換邏輯處理,包括當(dāng) 視頻時(shí)間戳小于或等于音頻時(shí)間戳?xí)r,調(diào)用編碼模塊的視頻接口將視頻數(shù)據(jù)寫(xiě)入編碼器進(jìn) 行編碼,當(dāng)視頻時(shí)間戳大于音頻時(shí)間戳?xí)r,調(diào)用編碼模塊中的音頻接口將音頻數(shù)據(jù)寫(xiě)入編 碼器進(jìn)行編碼。
5. 根據(jù)權(quán)利要求1所述的音視頻編解碼裝置,其特征在于,所述編碼模塊還包括編碼 管理器,所述編碼器包括音頻編碼器插件和視頻編碼器插件,所述媒體文件合成器包括媒 體文件合成器插件,轉(zhuǎn)換控制模塊將音頻數(shù)據(jù)寫(xiě)入編碼管理器中,編碼管理器通過(guò)調(diào)用對(duì)應(yīng)的音頻編碼器 插件對(duì)音頻數(shù)據(jù)進(jìn)行編碼,轉(zhuǎn)換控制模塊將視頻數(shù)據(jù)寫(xiě)入編碼管理器中,編碼管理器通過(guò) 調(diào)用對(duì)應(yīng)的視頻編碼器插件對(duì)視頻數(shù)據(jù)進(jìn)行編碼,編碼完成后,編碼管理器調(diào)用相應(yīng)的媒 體文件合成器插件,把編碼后的數(shù)據(jù)按照對(duì)應(yīng)的媒體文件格式標(biāo)準(zhǔn)寫(xiě)入媒體文件。
6. —種基于權(quán)利要求1所述音視頻編解碼方法,其特征在于,包括如下步驟A、 導(dǎo)入媒體文件,調(diào)用相應(yīng)的解碼器對(duì)該媒體文件進(jìn)行解碼;B、 對(duì)解碼后的音視頻數(shù)據(jù)選擇播放,或?qū)獯a后的音視頻數(shù)據(jù)進(jìn)行相關(guān)處理,包括根據(jù)編碼參數(shù)進(jìn)行視頻分辨率的縮放和添加效果處理,依據(jù)幀率和時(shí)間戳進(jìn)行重復(fù)幀和丟幀 處理,對(duì)音頻數(shù)據(jù)進(jìn)行采樣率轉(zhuǎn)換處理,按照數(shù)據(jù)量和時(shí)間戳對(duì)音頻數(shù)據(jù)進(jìn)行丟棄或填補(bǔ) 靜音數(shù)據(jù)的處理,以及將多個(gè)媒體文件連接成一個(gè)媒體文件的處理;c、調(diào)用相應(yīng)的編碼器和媒體文件合成器,生成指定格式及相關(guān)參數(shù)的多媒體文件。
7. 根據(jù)權(quán)利要求6所述的音視頻編解碼方法,其特征在于,所述步驟A中,在進(jìn)行解碼之前還包括判斷該媒體文件的類(lèi)型,具體包括Al、如果文件后綴名為圖像類(lèi)型文件后綴,包括bmp、 jpg、 png,則調(diào)用圖像解碼器進(jìn)行 解碼,得到Y(jié)UV12類(lèi)型的視頻數(shù)據(jù)。A2、如果文件后綴為wmv、wma、rmvb、rm,則調(diào)用DirectShow解碼器進(jìn)行解碼,視頻解碼 后得到Y(jié)UV12數(shù)據(jù),音頻解碼后得到16位PCM類(lèi)型的音頻數(shù)據(jù)。A3、如果文件后綴為除wmv、 wma、 rmvb、 rm之外的其他媒體文件后綴,包括mpg、 mp4、 ogg,則調(diào)用媒體文件解碼器進(jìn)行解碼,視頻解碼后得到Y(jié)UV12類(lèi)型的視頻數(shù)據(jù),音頻解碼 后得到16位PCM類(lèi)型的音頻數(shù)據(jù)。如果解碼失敗則采用DirectShow解碼器進(jìn)行解碼。
8. 根據(jù)權(quán)利要求7所述的音視頻編解碼方法,其特征在于,所述步驟A3中,解碼的過(guò)程 具體包括A31,獲取文件信息的步驟,該步驟中解碼控制器調(diào)用文件分離管理器獲取媒體文件信 息,文件分離管理器根據(jù)后綴名調(diào)用相應(yīng)的文件分離器插件獲取文件信息;A32,視頻解碼的步驟,該步驟中當(dāng)播放模塊或轉(zhuǎn)換控制模塊調(diào)用解碼控制器獲取視頻 數(shù)據(jù)和/或音頻數(shù)據(jù)時(shí),解碼控制器通過(guò)文件分離管理器調(diào)用對(duì)應(yīng)的文件分離器插件從文 件中順序分離若干視頻壓縮數(shù)據(jù)和/或音頻壓縮數(shù)據(jù)并傳給解碼控制器,并由解碼控制器 將數(shù)據(jù)傳給解碼插件管理器,解碼插件管理器根據(jù)壓縮數(shù)據(jù)的類(lèi)型傳送給視頻解碼器插件 和/或音頻解碼器插件進(jìn)行解碼,并將解碼出的YUV12類(lèi)型的視頻數(shù)據(jù)和/或16位PCM類(lèi) 型的音頻數(shù)據(jù)返回給解碼控制器。
9. 根據(jù)權(quán)利要求6所述的音視頻編解碼方法,其特征在于,所述步驟B中,所述對(duì)解碼 后的音視頻數(shù)據(jù)進(jìn)行相關(guān)處理的步驟包括Bl,數(shù)據(jù)處理模塊對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行視頻縮放、圖像疊加、添加效果、視頻顯 示區(qū)域比例轉(zhuǎn)換、消除隔行掃描處理、平滑視頻時(shí)間戳、音頻采樣率變換以及平滑音頻時(shí)間 戳處理;B2,文件連接模塊對(duì)數(shù)據(jù)處理模塊發(fā)來(lái)的需要進(jìn)行文件連接處理的音視頻數(shù)據(jù),進(jìn)行 文件頭時(shí)間戳對(duì)齊、文件尾時(shí)間戳對(duì)齊、文件的連接以及視頻和音頻時(shí)間戳的計(jì)算處理;B3,轉(zhuǎn)換模塊從文件連接模塊獲取需進(jìn)行文件連接處理的音視頻數(shù)據(jù)或從數(shù)據(jù)處理模 塊獲取無(wú)需進(jìn)行文件連接處理的音視頻數(shù)據(jù),對(duì)這些音視頻數(shù)據(jù)進(jìn)行轉(zhuǎn)換邏輯處理,包括 當(dāng)視頻時(shí)間戳小于或等于音頻時(shí)間戳?xí)r,調(diào)用編碼模塊的視頻接口將視頻數(shù)據(jù)寫(xiě)入編碼器 進(jìn)行編碼,當(dāng)視頻時(shí)間戳大于音頻時(shí)間戳?xí)r,調(diào)用編碼模塊中的音頻接口將音頻數(shù)據(jù)寫(xiě)入 編碼器進(jìn)行編碼。
10.根據(jù)權(quán)利要求6所述的音視頻編解碼方法,其特征在于,所述步驟C具體包括 Cl,轉(zhuǎn)換控制模塊將音頻數(shù)據(jù)寫(xiě)入編碼管理器中,并由編碼管理器通過(guò)調(diào)用對(duì)應(yīng)的音頻編碼器插件對(duì)音頻數(shù)據(jù)進(jìn)行編碼,轉(zhuǎn)換控制模塊將視頻數(shù)據(jù)寫(xiě)入編碼管理器中,并由編碼管理器通過(guò)調(diào)用對(duì)應(yīng)的視頻編碼器插件對(duì)視頻數(shù)據(jù)進(jìn)行編碼;C2,編碼完成后,編碼管理器調(diào)用相應(yīng)的媒體文件合成器插件,把編碼后的數(shù)據(jù)按照對(duì)應(yīng)的媒體文件格式標(biāo)準(zhǔn)寫(xiě)入媒體文件。
全文摘要
本發(fā)明提供了一種音視頻編解碼裝置,包括解碼模塊,用于導(dǎo)入媒體文件,調(diào)用相應(yīng)的解碼器對(duì)該媒體文件進(jìn)行解碼;播放模塊,用于對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行播放;轉(zhuǎn)換控制模塊,用于對(duì)解碼后的音視頻數(shù)據(jù)進(jìn)行相關(guān)處理,包括根據(jù)編碼參數(shù)進(jìn)行視頻分辨率的縮放和添加效果處理,依據(jù)幀率和時(shí)間戳進(jìn)行重復(fù)幀和丟幀處理,對(duì)音頻數(shù)據(jù)進(jìn)行采樣率轉(zhuǎn)換處理,按照數(shù)據(jù)量和時(shí)間戳對(duì)音頻數(shù)據(jù)進(jìn)行丟棄或填補(bǔ)靜音數(shù)據(jù)的處理,以及將多個(gè)媒體文件連接成一個(gè)媒體文件的處理;編碼模塊,用于調(diào)用相應(yīng)的編碼器和媒體文件合成器,生成指定格式及相關(guān)參數(shù)的多媒體文件。本發(fā)明降低了用戶(hù)系統(tǒng)環(huán)境的依賴(lài)性,使得軟件質(zhì)量是可控的,并且可維護(hù)性強(qiáng)。
文檔編號(hào)H04N7/52GK101771869SQ20081024174
公開(kāi)日2010年7月7日 申請(qǐng)日期2008年12月30日 優(yōu)先權(quán)日2008年12月30日
發(fā)明者吳太兵, 朱偉, 蔣義勇 申請(qǐng)人:深圳市萬(wàn)興軟件有限公司