上有影片《終結(jié)者5.bhd》,希望在其手機(jī)上觀看該影片。其PC上已經(jīng)安裝有本申請中的DLNA服務(wù)器(其中的HTTP服務(wù)器地址為192.168.0.1,端口號8812),其手機(jī)上已安裝有DLNA客戶端(如KX Cast軟件,一種通用的DLNA客戶端播放器)。具體步驟如下:
[0056]步驟201:用戶打開PC上的DLNA服務(wù)器和手機(jī)上的DLNA客戶端。
[0057]步驟201.1 =DLNA服務(wù)器自動搜索當(dāng)前局域網(wǎng)內(nèi)的DLNA客戶端,并顯示所用的DLNA客戶端(可能網(wǎng)絡(luò)內(nèi)同時(shí)存在其他DLNA客戶端,如其他人的手機(jī)、智能電視等)。
[0058]步驟201.2:用戶在DLNA服務(wù)器上選擇自己的手機(jī)上的DLNA客戶端。
[0059]步驟202:用戶在DLNA服務(wù)器上選擇播放本地影片《終結(jié)者5.bhd》。
[0060]步驟202.1 =DLNA服務(wù)器向DLNA客戶端發(fā)送“打開”指令,其指令中含有如下URL:http://192.168.0.1:8812/終結(jié)者5.bhd。DLNA客戶端返回確認(rèn)消息。
[0061]步驟202.2 =DLNA服務(wù)器向DLNA客戶端發(fā)送“播放”指令。DLNA客戶端返回確認(rèn)消息。
[0062]步驟203:DLNA客戶端向地址為“192.168.0.1:8812”的HTTP服務(wù)器(即DLNA服務(wù)器中的HTTP服務(wù)器)發(fā)送HTTP請求,其HTTP請求協(xié)議中含有URI為“終結(jié)者5.bhd”。
[0063]步驟204 =HTTP服務(wù)器收到請求后,解析請求協(xié)議,得知被請求文件為“終結(jié)者5.bhd,,。
[0064]步驟205 =HTTP服務(wù)器判斷文件類型為BHD文件,自動加載“格式轉(zhuǎn)換模塊”,并通過“格式轉(zhuǎn)換模塊”讀取并解析“終結(jié)者5.bhd” ;
[0065]步驟206:格式轉(zhuǎn)換模塊將“終結(jié)者5.bhd”轉(zhuǎn)換為MP4文件,具體過程如下:
[0066]“終結(jié)者5.bhd”文件結(jié)構(gòu)為文件頭(大小12836字節(jié))數(shù)據(jù)區(qū)(大小1822863276字節(jié))
[0067]步驟206.1:格式轉(zhuǎn)換模塊讀取并解析“終結(jié)者5.bhd”文件頭,從文件頭中的一級索引中,獲得所有二級索引在文件中的位置、大小等信息(如第10個(gè)二級索引在文件中的位置為20480042字節(jié),大小為3028字節(jié));
[0068]步驟206.2:格式轉(zhuǎn)換模塊依次讀取并解析所有的二級索引,得到每一幀視頻數(shù)據(jù)的文件位置、數(shù)據(jù)大小、時(shí)間戳和是否為關(guān)鍵幀信息(如第1047幀,位置為32007870字節(jié),大小4037字節(jié),時(shí)間戳40228毫秒,非關(guān)鍵幀);
[0069]步驟206.3:根據(jù)每一幀視頻數(shù)據(jù)的文件位置、數(shù)據(jù)大小、時(shí)間戳和是否為關(guān)鍵幀信息,按照MP4文件頭的格式,組成MP4文件頭(大小2044576字節(jié))。由于MP4文件比原BHD文件頭大,所有視頻數(shù)據(jù)在MP4文件視頻數(shù)據(jù)區(qū)中文件位置都產(chǎn)生了相同的偏移,MP4文件頭中記錄的每幀視頻數(shù)據(jù)的位置都以此進(jìn)行修改增加相同的偏移(如第1047幀,修改后位置為32007870+2044576-12836字節(jié),其他信息不變);
[0070]步驟206.4:BHD文件的視頻數(shù)據(jù)區(qū),直接作為MP4文件的視頻數(shù)據(jù)區(qū)(大小仍為1822863276 字節(jié))。
[0071]步驟207 =HTTP服務(wù)器向DLNA客戶端返回HTTP響應(yīng),其響應(yīng)協(xié)議中含有如下內(nèi)容:
[0072]數(shù)據(jù)類型為MP4 視頻格式(Content type:video/mp4)。
[0073]數(shù)據(jù)長度為轉(zhuǎn)換后的MP4文件的文件大小。
[0074]數(shù)據(jù)為轉(zhuǎn)換后的MP4文件(MP4文件頭從格式轉(zhuǎn)換模塊的內(nèi)存中獲得,視頻數(shù)據(jù)區(qū)在原“終結(jié)者5.bhd”文件中根據(jù)偏移量讀取)。
[0075]步驟208:DLNA客戶端的播放器接收MP4格式文件頭和視頻數(shù)據(jù)區(qū)后,開始播放視頻。
[0076]與現(xiàn)有技術(shù)相比,本發(fā)明所述的基于DLNA共享播放BHD文件的方法,達(dá)到了如下效果:
[0077]I)本申請通過DLNA協(xié)議和HTTP服務(wù)器,將BHD文件虛擬轉(zhuǎn)換為MP4文件,實(shí)現(xiàn)了普通播放器對BHD文件的播放;
[0078]2)BHD文件與MP4文件的區(qū)別在于文件頭格式不同,但視頻數(shù)據(jù)區(qū)是一樣的。根據(jù)BHD文件生成MP4文件頭,視頻數(shù)據(jù)無須改動,此過程運(yùn)算量極小無須額外占用磁盤存儲空間;
[0079]3)普通播放器向服務(wù)器請求BHD文件,但實(shí)際收到的是MP4文件。實(shí)現(xiàn)播放可能;
[0080]4)使用DLNA協(xié)議,其具體控制流程都由DLNA服務(wù)器與DLNA客戶端內(nèi)部完成。用戶只需要指定待播放的BHD文件即可,無須復(fù)雜操作,簡化操作流程。
[0081]上述說明示出并描述了本發(fā)明的若干優(yōu)選實(shí)施例,但如前所述,應(yīng)當(dāng)理解本發(fā)明并非局限于本文所披露的形式,不應(yīng)看作是對其他實(shí)施例的排除,而可用于各種其他組合、修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識進(jìn)行改動。而本領(lǐng)域人員所進(jìn)行的改動和變化不脫離本發(fā)明的精神和范圍,則都應(yīng)在本發(fā)明所附權(quán)利要求的保護(hù)范圍內(nèi)。
【主權(quán)項(xiàng)】
1.一種基于DLNA共享播放BHD文件的方法,其特征在于,包括步驟: DLNA服務(wù)器與DLNA客戶端建立連接,其中所述DLNA服務(wù)器包括HTTP服務(wù)器; DLNA服務(wù)器通知DLNA客戶端打開并播放視頻,所述視頻的地址為HTTP協(xié)議的URL,URL中含有HTTP服務(wù)器的IP端口和BHD文件地址信息; DLNA客戶端收到通知后,DLNA客戶端的播放器向HTTP服務(wù)器發(fā)出BHD文件請求, HTTP服務(wù)器收到請求后,找到相應(yīng)的BHD文件; HTTP服務(wù)器中的格式轉(zhuǎn)換模塊讀取并解析所述BHD文件; 所述格式轉(zhuǎn)換模塊將所述BHD文件轉(zhuǎn)換為MP4文件,在內(nèi)存中生成MP4格式文件頭和視頻數(shù)據(jù)區(qū)偏移關(guān)系; HTTP服務(wù)器向DLNA客戶端的播放器發(fā)送MP4格式文件頭和視頻數(shù)據(jù)區(qū); DLNA客戶端的播放器接收MP4格式文件頭和視頻數(shù)據(jù)區(qū)后,播放視頻。2.根據(jù)權(quán)利要求1所述的基于DLNA共享播放BHD文件的方法,其特征在于,所述格式轉(zhuǎn)換模塊將所述BHD文件轉(zhuǎn)換為MP4文件,在內(nèi)存中生成MP4格式文件頭和視頻數(shù)據(jù)區(qū)偏移關(guān)系,進(jìn)一步為, 所述格式轉(zhuǎn)換模塊讀取BHD文件頭,解析一級索引,找到每個(gè)二級索引的位置; 所述格式轉(zhuǎn)換模塊讀取并解析每個(gè)二級索引,得到每一幀頻數(shù)據(jù)的文件位置、數(shù)據(jù)大小、時(shí)間戳和是否為關(guān)鍵幀信息; 根據(jù)每一幀視頻數(shù)據(jù)的文件位置、數(shù)據(jù)大小、時(shí)間戳和是否為關(guān)鍵幀信息,按照MP4文件頭的格式,組成MP4文件頭; BHD文件的視頻數(shù)據(jù)區(qū),直接作為MP4文件的視頻數(shù)據(jù)區(qū)。3.根據(jù)權(quán)利要求2所述的基于DLNA共享播放BHD文件的方法,其特征在于,所述BHD文件,進(jìn)一步為, 所述BHD文件的索引由一級索引和二級索引組成,BHD文件頭中含有一級索引,一級索引的內(nèi)容為每個(gè)二級索引在文件中的位置信息,BHD文件的二級索引分布在視頻數(shù)據(jù)區(qū)中,每個(gè)二級索引的內(nèi)容為其對應(yīng)的具體每一幀視頻數(shù)據(jù)的文件位置、數(shù)據(jù)大小、時(shí)間戳和是否為關(guān)鍵幀信息。4.根據(jù)權(quán)利要求2所述的基于DLNA共享播放BHD文件的方法,其特征在于,所述MP4文件,進(jìn)一步為, MP4文件的索引,只有一級索引,在MP4文件頭中,其一級索引包含了文件中所有視頻數(shù)據(jù)的文件位置、數(shù)據(jù)大小、時(shí)間戳和是否為關(guān)鍵幀信息。5.根據(jù)權(quán)利要求1所述的基于DLNA共享播放BHD文件的方法,其特征在于,所述DLNA客戶端,進(jìn)一步地,由DLNA渲染器單獨(dú)組成。6.根據(jù)權(quán)利要求1所述的基于DLNA共享播放BHD文件的方法,其特征在于,所述DLNA服務(wù)器,進(jìn)一步地,由DLNA數(shù)據(jù)服務(wù)器和DLNA控制器組成。
【專利摘要】本申請公開了一種基于DLNA共享播放BHD文件的方法,包括步驟:DLNA服務(wù)器與DLNA客戶端建立連接,其中DLNA服務(wù)器包括HTTP服務(wù)器;DLNA服務(wù)器通知DLNA客戶端打開并播放視頻,所述視頻的地址為HTTP協(xié)議的URL,URL中含有HTTP服務(wù)器的IP端口和BHD文件地址信息;DLNA客戶端收到通知后,DLNA客戶端的播放器向HTTP服務(wù)器發(fā)出BHD文件請求,HTTP服務(wù)器收到請求后,找到相應(yīng)的BHD文件;HTTP服務(wù)器中的格式轉(zhuǎn)換模塊讀取并解析BHD文件;格式轉(zhuǎn)換模塊將BHD文件轉(zhuǎn)換為MP4文件,在內(nèi)存中生成MP4格式文件頭和視頻數(shù)據(jù)區(qū)偏移關(guān)系;HTTP服務(wù)器向DLNA客戶端的播放器發(fā)送MP4格式文件頭和視頻數(shù)據(jù)區(qū);DLNA客戶端的播放器接收MP4格式文件頭和視頻數(shù)據(jù)區(qū)后,播放視頻。本申請實(shí)現(xiàn)了普通播放器對BHD文件的播放。
【IPC分類】H04N21/4402, H04N21/858, H04N21/643, H04N21/4363
【公開號】CN105142015
【申請?zhí)枴緾N201510601745
【發(fā)明人】吳超, 朱春明, 畢先春, 盧述奇
【申請人】北京暴風(fēng)科技股份有限公司
【公開日】2015年12月9日
【申請日】2015年9月19日