視訊學習 ---------如何獲取Mp4某個box下面的資料
阿新 • • 發佈:2019-01-08
學習是需要積累的,是需要記錄的,非常的抱歉,這麼久都沒有記錄我學習的過程了。今天記錄的是獲取MP4視訊下某個特定Box的資料。首先大致介紹下MP4下面的box組成。
結構圖如下:
這是在PC端用工具開啟的,從這個可以看到MP4裡面主要有4個主Box,分別是 ftyp、frea、mdat、moov,今天講的事如何獲取moov box下面的次級Box資料。
想要獲取裡面的資料有幾種方式,我所知道的第一種就是從視訊檔案的頭往後面算偏移量,一個box一個的偏移就可以找到想要的資料,但是這有個弊端,那就是不是所有的MP4視訊都是這樣的結構,很多都是把moov box放在了第二個位置,今天介紹的是第二種方式,那就是使用 ISOPaser 來實現直接獲取定點box裡面的資料。
去網上下載ISOPaser的jar包,獲取是新增依賴都可以使用他了,
isoFile = new IsoFile(url); MovieBox moov = isoFile.getBoxes(MovieBox.class).get(0); UnknownBox box = moov.getBoxes(UnknownBox.class).get(0);很簡單的幾句程式碼,其他的你都會了,這樣就可以快速簡單的獲取想要的資料了,不過輸出的資料要記得轉換成你要的格式或者是字元編碼。