專利名稱:嵌入式流媒體文件格式識別方法
技術(shù)領(lǐng)域:
本發(fā)明涉及嵌入式流媒體文件,具體的說是涉及一種嵌入式流媒體文件格式識別方法。
背景技術(shù):
網(wǎng)絡(luò)電視作為三網(wǎng)融合下的一個終端產(chǎn)品,自然也就帶有流媒體播放器功能。網(wǎng) 絡(luò)中存在的流媒體文件封裝格式種類繁多,每種封裝格式有獨有的數(shù)據(jù)組織規(guī)范,即在播 放流媒體文件時,每種封裝格式就對應(yīng)著一個文件解析器。每種流媒體文件封裝格式都會 有一個或兩個后綴名與之對應(yīng),所以在傳統(tǒng)技術(shù)中,一般是根據(jù)流媒體文件后綴名來判斷 出流媒體文件封裝格式,再選擇對應(yīng)格式的文件解析器解析;但是在實際操作中,還存在不 少文件后綴名與實際文件封裝格式不匹配的流媒體文件。如果按照傳統(tǒng)的方法進行流媒體 文件解析,必然會導(dǎo)致出錯,造成無法播放的問題。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種嵌入式流媒體文件格式識別方法,解決 在采用傳統(tǒng)技術(shù)對流媒體文件格式進行識別時,可能由于流媒體文件后綴名與實際格式不 符合,導(dǎo)致后續(xù)無法播放的問題。本發(fā)明解決上述技術(shù)問題所采用的技術(shù)方案是嵌入式流媒體文件格式識別方 法,包括以下步驟a.讀取流媒體文件的前512個字節(jié)數(shù)據(jù),取前4個字節(jié)數(shù)據(jù)按照地址由低到高的 順序排列成一個32位數(shù);b.將此32位數(shù)與RM文件、AVI文件、MKV文件、WMV文件、PS文件的文件特征值分 別進行比較,如果與其中的某一個文件特征值相等,則該文件特征值對應(yīng)的文件格式即為 該流媒體文件的格式,否則,執(zhí)行步驟c ;c.將此32位數(shù)與0XFFFFFF00作與運算,判斷運算后的結(jié)果是否為0X464C5600, 如果是,則該流媒體文件的格式即為FLV,否則執(zhí)行步驟d ;d.取第5個字節(jié)至第8個字節(jié)的數(shù)據(jù)按照地址由低到高的順序再生成一個32位 數(shù),并將該32位數(shù)與MP4文件的文件特征值進行比較,如果相等,則該流媒體文件的格式即 為MP4,否則執(zhí)行步驟e;e.判斷讀取的512個字節(jié)數(shù)據(jù)中第η個字節(jié)的值與TS文件的文件特征值是否相 等,如果相等則執(zhí)行步驟f,否則該流媒體文件的格式無法識別,1 ^ η ^ 192 ;f.判斷第η個字節(jié)后第188個字節(jié)的值是否與TS文件的文件特征值相等,如果相 等,則該流媒體文件的格式為TS ;否則,判斷第η個字節(jié)后第192個字節(jié)的值是否與TS文 件的文件特征值相等,如果相等,則該流媒體文件的格式為M2TS,否則該流媒體文件的格式 無法識別。本發(fā)明的有益效果是通過取流媒體文件的前512個字節(jié)數(shù)據(jù)與各個文件格式的文件特征碼進行比較,從而確定流媒體文件格式,避免出現(xiàn)由于后綴名與實際格式不符的 情況。
具體實施例方式下面結(jié)合實施例對本發(fā)明作進一步的描述。本發(fā)明提出了一種嵌入式流媒體文件格式識別方法,解決在采用傳統(tǒng)技術(shù)對流媒 體文件格式進行識別時,可能由于流媒體文件后綴名與實際格式不符合的情況,導(dǎo)致后續(xù) 無法播放的問題。通過研究當前網(wǎng)絡(luò)環(huán)境下存在的流媒體文件,發(fā)現(xiàn)每種流媒體文件封裝 格式都有一組或一個特征值。本發(fā)明提出的方法,就是通過將這些特征值與文件開始512 個字節(jié)內(nèi)的某些位數(shù)據(jù)進行比較,從而確定流媒體文件的封裝格式。其具體實現(xiàn)方式如下1.嵌入式流媒體文件格式識別方法,其特征在于包括以下步驟a.讀取流媒體文件的前512個字節(jié)數(shù)據(jù),取前4個字節(jié)數(shù)據(jù)按照地址由低到高的 順序排列成一個32位數(shù);b.將此32位數(shù)與RM文件、AVI文件、MKV文件、WMV文件、PS文件的文件特征值分 別進行比較,如果與其中的某一個文件特征值相等,則該文件特征值對應(yīng)的文件格式即為 該流媒體文件的格式,否則,執(zhí)行步驟c ;c.將此32位數(shù)與0XFFFFFF00作與運算,判斷運算后的結(jié)果是否為0X464C5600, 如果是,則該流媒體文件的格式即為FLV,否則執(zhí)行步驟d ;d.取第5個字節(jié)至第8個字節(jié)的數(shù)據(jù)按照地址由低到高的順序再生成一個32位 數(shù),并將該32位數(shù)與MP4文件的文件特征值進行比較,如果相等,則該流媒體文件的格式即 為MP4,否則執(zhí)行步驟e ;e.判斷讀取的512個字節(jié)數(shù)據(jù)中第η個字節(jié)的值與TS文件的文件特征值是否相 等,如果相等則執(zhí)行步驟f,否則該流媒體文件的格式無法識別,1 ≤ η ≤ 192 ;f.判斷第η個字節(jié)后第188個字節(jié)的值是否與TS文件的文件特征值相等,如果相 等,則該流媒體文件的格式為TS ;否則,判斷第η個字節(jié)后第192個字節(jié)的值是否與TS文 件的文件特征值相等,如果相等,則該流媒體文件的格式為M2TS,否則該流媒體文件的格式 無法識別。實施例如需識別當前某一流媒體文件的格式,首先需要讀取該流媒體文件的頭512字節(jié) 數(shù)據(jù),取前4個字節(jié)數(shù)據(jù)按照地址從高到低順序生成一個32位數(shù)Α,接下來提取RM文件、 AVI文件、MKV文件、WMV文件、PS文件的文件特征值分別與A進行比較,如果發(fā)現(xiàn)RM文件 的文件特征值與A相等,則該流媒體文件的格式即為RM格式。而如果這些文件特征值與A 均不相等,則就要考慮是否為FLV格式的可能性,即將A與0XFFFFFF00作與運算,判斷運算 后的結(jié)果是否為0X464C5600,如果是,則該流媒體文件的格式即為FLV,否則就要考慮是否 為ΜΡ4格式的可能性那么,需要從這512個字節(jié)中取第5個字節(jié)至第8個字節(jié)的數(shù)據(jù)按照 地址由低到高的順序再生成一個32位數(shù)B,并將B與ΜΡ4文件的文件特征值進行比較,如果 相等,則該流媒體文件的格式即為ΜΡ4,否則就要考慮是否為TS格式或M2TS格式的可能性 判斷讀取的512個字節(jié)數(shù)據(jù)中第1個字節(jié)的值與TS文件的文件特征值是否相等,如果相等還要判斷第1個字節(jié)后的第188個字節(jié)(即第189個字節(jié))的值與TS文件的文件特征值是 否相等,只有兩個條件都符合了,才能判定該流媒體文件的格式為TS格式,如果不為TS格 式就要判斷是否為M2TS格式判斷第1個字節(jié)后的192個字節(jié)(即第193個字節(jié))的值與 M2TS文件的文件特征值是否相等,只有第1個字節(jié)和第192個字節(jié)均與M2TS文件的文件特 征值相等了才能判定該流媒體文件格式為M2TS。如果仍然不能判定流媒體文件的格式,則 需要讀取512個字節(jié)數(shù)據(jù)中第2個字節(jié)的值判斷是否與TS文件的文件特征值相等,再判斷 第2個字節(jié)后的188個字節(jié)(即第190個字節(jié))是否與TS文件的文件特征值相等,第2個 字節(jié)后的192個字節(jié)(即第194個字節(jié))的值與M2TS文件的文件特征值是否相等…如此 循環(huán),直至讀取到第192個字節(jié)、及第380個字節(jié)、第384個字節(jié)仍然無法判斷格式,則說明 該流媒體文件的格式無法識別。
權(quán)利要求
嵌入式流媒體文件格式識別方法,其特征在于包括以下步驟a.讀取流媒體文件的前512個字節(jié)數(shù)據(jù),取前4個字節(jié)數(shù)據(jù)按照地址由低到高的順序排列成一個32位數(shù);b.將此32位數(shù)與RM文件、AVI文件、MKV文件、WMV文件、PS文件的文件特征值分別進行比較,如果與其中的某一個文件特征值相等,則該文件特征值對應(yīng)的文件格式即為該流媒體文件的格式,否則,執(zhí)行步驟c;c.將此32位數(shù)與0XFFFFFF00作與運算,判斷運算后的結(jié)果是否為0X464C5600,如果是,則該流媒體文件的格式即為FLV,否則執(zhí)行步驟d;d.取第5個字節(jié)至第8個字節(jié)的數(shù)據(jù)按照地址由低到高的順序再生成一個32位數(shù),并將該32位數(shù)與MP4文件的文件特征值進行比較,如果相等,則該流媒體文件的格式即為MP4,否則執(zhí)行步驟e;e.判斷讀取的512個字節(jié)數(shù)據(jù)中第n個字節(jié)的值與TS文件的文件特征值是否相等,如果相等則執(zhí)行步驟f,否則該流媒體文件的格式無法識別,1≤n≤192;f.判斷第n個字節(jié)后第188個字節(jié)的值是否與TS文件的文件特征值相等,如果相等,則該流媒體文件的格式為TS;否則,判斷第n個字節(jié)后第192個字節(jié)的值是否與TS文件的文件特征值相等,如果相等,則該流媒體文件的格式為M2TS,否則該流媒體文件的格式無法識別。
全文摘要
本發(fā)明涉及嵌入式流媒體文件,具體的說是涉及一種嵌入式流媒體文件格式識別方法。本發(fā)明公開了一種嵌入式流媒體文件格式識別方法,解決在采用傳統(tǒng)技術(shù)對流媒體文件格式進行識別時,可能由于流媒體文件后綴名與實際格式不符合,導(dǎo)致后續(xù)無法播放的問題。其技術(shù)方案的要點可概括為通過研究當前網(wǎng)絡(luò)環(huán)境下存在的流媒體文件,發(fā)現(xiàn)每種流媒體文件封裝格式都有一組或一個特征值。通過將這些特征值與文件開始512個字節(jié)內(nèi)的某些位數(shù)據(jù)進行比較,從而確定流媒體文件的封裝格式。本發(fā)明的有益效果是確定流媒體文件格式,避免出現(xiàn)由于后綴名與實際格式不符的情況,適用于流媒體文件格式識別。
文檔編號H04L29/06GK101917609SQ201010253340
公開日2010年12月15日 申請日期2010年8月13日 優(yōu)先權(quán)日2010年8月13日
發(fā)明者何鮮洋, 展華益, 張 杰 申請人:四川長虹電器股份有限公司