一種基于dlna共享播放bhd文件的方法
【技術領域】
[0001 ] 本發(fā)明涉及視頻播放領域,具體地說,是涉及一種基于DLNA共享播放BHD文件的方法。
【背景技術】
[0002]DLNA是一種通用的網絡控制協(xié)議。旨在解決電腦和其他電子產品,比如手機、平板之間的通過無線或者有線網絡的互聯(lián)互通,讓照片、視頻、音樂能在以上設備中共享,在手機等移動設備上,通過普通播放器軟件,直接播放本地視頻文件。普通播放器是能夠正常播放MP4文件這種通用的媒體文件格式,其文件擴展名為.mp4。而BHD文件是暴風影音播放器獨有的一種媒體文件格式,其文件擴展名為.bhd,普通播放器(除暴風影音外大部分的播放器,尤其是手機等移動設備)不能正常播放。普通播放器不能支持BHD格式文件,但能播放MP4格式文件,并且支持HTTP協(xié)議,如果將BHD文件轉碼為MP4文件,則需要占用大量的時間和磁盤存儲空間。
【發(fā)明內容】
[0003]本發(fā)明所要解決的技術問題是通過普通播放器實現(xiàn)播放BHD文件。
[0004]為解決上述技術問題,本發(fā)明提供了一種基于DLNA共享播放BHD文件的方法,包括步驟:
[0005]DLNA服務器與DLNA客戶端建立連接,其中所述DLNA服務器包括HTTP服務器;
[0006]DLNA服務器通知DLNA客戶端打開并播放視頻,所述視頻的地址為HTTP協(xié)議的URL, URL中含有HTTP服務器的IP端口和BHD文件地址信息;
[0007]DLNA客戶端收到通知后,DLNA客戶端的播放器向HTTP服務器發(fā)出BHD文件請求,
[0008]HTTP服務器收到請求后,找到相應的BHD文件;
[0009]HTTP服務器中的格式轉換模塊讀取并解析所述BHD文件;
[0010]所述格式轉換模塊將所述BHD文件轉換為MP4文件,在內存中生成MP4格式文件頭和視頻數據區(qū)偏移關系;
[0011 ] HTTP服務器向DLNA客戶端的播放器發(fā)送MP4格式文件頭和視頻數據區(qū);
[0012]DLNA客戶端的播放器接收MP4格式文件頭和視頻數據區(qū)后,播放視頻。
[0013]優(yōu)選地,所述格式轉換模塊將所述BHD文件轉換為MP4文件,在內存中生成MP4格式文件頭和視頻數據區(qū)偏移關系,進一步為,
[0014]所述格式轉換模塊讀取BHD文件頭,解析一級索引,找到每個二級索引的位置;
[0015]所述格式轉換模塊讀取并解析每個二級索引,得到每一幀頻數據的文件位置、數據大小、時間戳和是否為關鍵幀信息;
[0016]根據每一幀視頻數據的文件位置、數據大小、時間戳和是否為關鍵幀信息,按照MP4文件頭的格式,組成MP4文件頭;
[0017]BHD文件的視頻數據區(qū),直接作為MP4文件的視頻數據區(qū)。
[0018]優(yōu)選地,所述BHD文件,進一步為,
[0019]所述BHD文件的索引由一級索引和二級索引組成,BHD文件頭中含有一級索引,一級索引的內容為每個二級索引在文件中的位置信息,BHD文件的二級索引分布在視頻數據區(qū)中,每個二級索引的內容為其對應的具體每一幀視頻數據的文件位置、數據大小、時間戳和是否為關鍵幀信息。
[0020]優(yōu)選地,所述MP4文件,進一步為,
[0021]MP4文件的索引,只有一級索引,在MP4文件頭中,其一級索引包含了文件中所有視頻數據的文件位置、數據大小、時間戳和是否為關鍵幀信息。
[0022]優(yōu)選地,所述DLNA客戶端,進一步地,由DLNA渲染器單獨組成。
[0023]優(yōu)選地,所述DLNA服務器,進一步地,由DLNA數據服務器和DLNA控制器組成。
[0024]與現(xiàn)有技術相比,本發(fā)明所述的基于DLNA共享播放BHD文件的方法,達到了如下效果:
[0025]I)本申請通過DLNA協(xié)議和HTTP服務器,將BHD文件虛擬轉換為MP4文件,實現(xiàn)了普通播放器對BHD文件的播放;
[0026]2)BHD文件與MP4文件的區(qū)別在于文件頭格式不同,但視頻數據區(qū)是一樣的。根據BHD文件生成MP4文件頭,視頻數據無須改動,此過程運算量極小無須額外占用磁盤存儲空間;
[0027]3)普通播放器向服務器請求BHD文件,但實際收到的是MP4文件。實現(xiàn)播放可能;
[0028]4)使用DLNA協(xié)議,其具體控制流程都由DLNA服務器與DLNA客戶端內部完成。用戶只需要指定待播放的BHD文件即可,無須復雜操作,簡化操作流程。
【附圖說明】
[0029]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本發(fā)明的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
[0030]圖1為基于DLNA共享播放BHD文件的方法流程圖;
[0031 ] 圖2為BHD文件轉換為MP4文件流程圖。
【具體實施方式】
[0032]如在說明書及權利要求當中使用了某些詞匯來指稱特定組件。本領域技術人員應可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準則。如在通篇說明書及權利要求當中所提及的“包含”為一開放式用語,故應解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內,本領域技術人員能夠在一定誤差范圍內解決所述技術問題,基本達到所述技術效果。此外,“耦接”一詞在此包含任何直接及間接的電性耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電性耦接于所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說明書后續(xù)描述為實施本發(fā)明的較佳實施方式,然所述描述乃以說明本發(fā)明的一般原則為目的,并非用以限定本發(fā)明的范圍。本發(fā)明的保護范圍當視所附權利要求所界定者為準。
[0033]以下結合附圖對本發(fā)明作進一步詳細說明,但不作為對本發(fā)明的限定。
[0034]實施例1:
[0035]結合圖1,本實施例提供了一種基于DLNA共享播放BHD文件的方法,包括步驟:
[0036]步驟101 =DLNA服務器與DLNA客戶端建立連接,其中所述DLNA服務器包括HTTP服務器;
[0037]DLNA包括數據服務器、控制器、渲染器三部分,本申請中DLNA數據服務器和DLNA控制器共同組成服務端,為DLNA服務器。DLNA渲染器單獨組成客戶端,為DLNA客戶端。
[0038]步驟102 =DLNA服務器通知DLNA客戶端打開并播放視頻,所述視頻的地址為HTTP協(xié)議的URL,URL中含有HTTP服務器的IP端口和BHD文件地址信息;
[0039]步驟103 =DLNA客戶端收到通知后,DLNA客戶端的播放器向HTTP服務器發(fā)出BHD文件請求;
[0040]步驟104 =HTTP服務器收到請求后,找到相應的BHD文件;
[0041 ] 步驟105 =HTTP服務器中的格式轉換模塊讀取并解析所述BHD文件;
[0042]步驟106:所述格式轉換模塊將所述BHD文件轉換為MP4文件,在內存中生成MP4格式文件頭和視頻數據區(qū)偏移關系;
[0043]所述BHD文件,進一步為,所述BHD文件的索引由一級索引和二級索引組成,BHD文件頭中含有一級索引,一級索引的內容為每個二級索引在文件中的位置信息,BHD文件的二級索引分布在視頻數據區(qū)中,每個二級索引的內容為其對應的具體每一幀視頻數據的文件位置、數據大小、時間戳和是否為關鍵幀信息。
[0044]所述MP4文件,進一步為,MP4文件的索引,只有一級索引,在MP4文件頭中,其一級索引包含了文件中所有視頻數據的文件位置、數據大小、時間戳和是否為關鍵幀信息。
[0045]如圖2所示,將BHD文件格式轉換為MP4文件格式的方法如下:
[0046]所述格式轉換模塊讀取BHD文件頭,解析一級索引,找到每個二級索引的位置;
[0047]所述格式轉換模塊讀取并解析每個二級索引,得到每一幀頻數據的文件位置、數據大小、時間戳和是否為關鍵幀信息;
[0048]根據每一幀視頻數據的文件位置、數據大小、時間戳和是否為關鍵幀信息,按照MP4文件頭的格式,組成MP4文件頭;
[0049]BHD文件的視頻數據區(qū),直接作為MP4文件的視頻數據區(qū)。
[0050]BHD文件與MP4文件的區(qū)別在于文件頭格式不同。但視頻數據區(qū)是一樣的。因此,可根據BHD文件,生成MP4文件頭,視頻數據無須改動,此過程運算量極小。
[0051]步驟107 =HTTP服務器向DLNA客戶端的播放器發(fā)送MP4格式文件頭和視頻數據區(qū);
[0052]步驟108 =DLNA客戶端的播放器接收MP4格式文件頭和視頻數據區(qū)后,播放視頻。播放視頻采用現(xiàn)有技術,這里不做具體限定。
[0053]實施例2:
[0054]在實施例1的基礎上,本實施例為應用實施例。
[0055]場景:某用戶在其PC