編輯:關於android開發
ftyp
√
file type and compatibility
pdin
progressive download information
moov
√
container for all the metadata
mvhd
√
movie header, overall declarations
trak
√
container for an individual track or stream
tkhd
√
track header, overall information about the track
tref
track reference container
edts
edit list container
elst
an edit list
mdia
√
container for the media information in a track
mdhd
√
media header, overall information about the media
hdlr
√
handler, declares the media (handler) type
minf
√
media information container
vmhd
video media header, overall information (video track only)
smhd
sound media header, overall information (sound track only)
hmhd
hint media header, overall information (hint track only)
nmhd
Null media header, overall information (some tracks only)
dinf
√
data information box, container
dref
√
data reference box, declares source(s) of media data in track
stbl
√
sample table box, container for the time/space map
stsd
√
sample descriptions (codec types, initialization etc.)
stts
√
(decoding) time-to-sample
ctts
(composition) time to sample
stsc
√
sample-to-chunk, partial data-offset
information
stsz
sample sizes (framing)
stz2
compact sample sizes (framing)
stco
√
chunk offset, partial data-offset information
co64
64-bit chunk offset
stss
sync sample table (random access points)
stsh
shadow sync sample table
padb
sample padding bits
stdp
sample degradation priority
sdtp
independent and disposable samples
sbgp
sample-to-group
sgpd
sample group description
subs
sub-sample information
mvex
movie extends box
mehd
movie extends header box
trex
√
track extends defaults
ipmc
IPMP Control Box
moof
movie fragment
mfhd
√
movie fragment header
traf
track fragment
tfhd
√
track fragment header
trun
track fragment run
sdtp
independent and disposable samples
sbgp
sample-to-group
subs
sub-sample information
mfra
movie fragment random access
tfra
track fragment random access
mfro
√
movie fragment random access offset
mdat
media data container
free
free space
skip
free space
udta
user-data
cprt
copyright etc.
meta
metadata
hdlr
√
handler, declares the metadata (handler) type
dinf
data information box, container
dref
data reference box, declares source(s) of metadata items
ipmc
IPMP Control Box
iloc
item location
ipro
item protection
sinf
protection scheme information box
frma
original format box
imif
IPMP Information box
schm
scheme type box
schi
scheme information box
iinf
item information
xml
XML container
bxml
binary XML container
pitm
primary item reference
fiin
file delivery item information
paen
partition entry
fpar
file partition
fecr
FEC reservoir
segr
file delivery session group
gitn
group id to name
tsel
track selection
meco
additional metadata container
mere
metabox relation
字段
長度(字節)
描述
尺寸
4
這個movie header atom的字節數
類型
4
moov
根據解析這個moov的容器的字節長度,可以看到該容器共包含0x00000ca3(3235)個字節,容器的類型為moov;下面繼續在moov這個容器中往下解析,下一個容器為的大小為0x0000006c(108)個字節,類型為mvhd;然後繼續從moov容器中往下解析;字段
長度(字節)
描述
尺寸
4
這個movie header atom的字節數
類型
4
mvhd
版本
1
這個movie header atom的版本
標志
3
擴展的movie header標志,這裡為0
生成時間
4
Movie atom的起始時間。基准時間是1904-1-1 0:00 AM
修訂時間
4
Movie atom的修訂時間。基准時間是1904-1-1 0:00 AM
Time scale
4
時間計算單位,就像是系統時間單位換位為60秒一樣
Duration
4
通過這個值計算後可以得到影片的播放長度時間值
播放速度
4
播放此movie的速度。1.0為正常播放速度(16.16的浮點表示)
播放音量
2
播放此movie的音量。1.0為最大音量(8.8的浮點表示)
保留
10
這裡為0
矩陣結構
36
該矩陣定義了此movie中兩個坐標空間的映射關系
預覽時間
4
開始預覽此movie的時間
預覽duration
4
以movie的time scale為單位,預覽的duration
Poster time
4
Poster的時間值.
Selection time
4
當前選擇的時間的開始時間值
Selection duration
4
當前選擇的時間的計算後的時間值
當前時間
4
當前時間
下一個track ID
4
下一個待添加track的ID值。0不是一個有效的ID值。
字段
結論值
尺寸
0x0000006c
類型
mvhd
版本
0x00
標志
0x000000
生成時間
0x00000000
修訂時間
0x00000000
Time scale
0x000003E8 (1000)
Duration
0x00000770 (1904)
播放速度
0x00010000(1.0)
播放音量
0x0100(1.0)
保留
0x00 00 00 00 00 00 00 00 00 00
矩陣結構
0x00010000,0,0,0,0x00010000,0,0,0,0x40000000
預覽時間
0x00000000
預覽duration
0x00000000
Poster time
0x00000000
Selection time
0x00000000
Selection duration
0x00000000
當前時間
0x00000000
下一個track ID
0x00000003
字段
長度(字節)
描述
尺寸
4
這個atom的大小
類型
4
tkhd/mdia/clip/matt等
字段
長度(字節)
描述
尺寸
4
這個atom的字節數
類型
4
tkhd
版本
1
這個atom的版本
標志
3
有效的標志是
·0x0001 - the track is enabled
·0x0002 - the track is used in the movie
·0x0004 - the track is used in the movie’s preview
·0x0008 - the track is used in the movie’s poster
生成時間
4
Movie atom的起始時間。基准時間是1904-1-1 0:00 AM
修訂時間
4
Movie atom的修訂時間。基准時間是1904-1-1 0:00 AM
Track ID
4
唯一標志該track的一個非零值。
保留
4
這裡為0
Duration
4
The duration of this track (in the movie’s time coordinate system).Note that this property is derived from the track’s edits. The value of this field is equal to the sum of the durations of all of the track’s edits. If there is no edit list, then the duration is the sum of the sample durations, converted into the movie timescale.
保留
8
這裡為0
Layer
2
The track’s spatial priority in its movie. The QuickTime Movie Toolbox uses this value to determine how tracks overlay one another. Tracks with lower layer values are displayed in front of tracks with higher layer values.
Alternate group
2
A collection of movie tracks that contain alternate data for one another. QuickTime chooses one track from the group to be used when the movie is played. The choice may be based on such considerations as playback quality, language, or the capabilities of the computer.
音量
2
播放此track的音量。1.0為正常音量
保留
2
這裡為0
矩陣結構
36
該矩陣定義了此track中兩個坐標空間的映射關系
寬度
4
如果該track是video track,此值為圖像的寬度(16.16浮點表示)
高度
4
如果該track是video track,此值為圖像的高度(16.16浮點表示)
下面看看一下tkhd的內容,然後根據上面的表格做一個信息的對應字段
長度(字節)
值
尺寸
4
0x0000005c(92)
類型
4
tkhd
版本
1
00
標志
3
0x000003(這個track生效並且用在這個影片中)
生成時間
4
0x00000000
修訂時間
4
0x00000000
Track ID
4
0x00000001
保留
4
0x00000000
Duration
4
0x00000758
保留
8
0x00 00 00 00 00 00 00 00
Layer
2
0x0000
Alternate group
2
0x0000
音量
2
0x0000
保留
2
0x0000
矩陣結構
36
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40 00 00 00
寬度
4
0x02800000 (640.00)
高度
4
0x01e00000 (480.00)
字段
長度(字節)
值
尺寸
4
0x0000005c(92)
類型
4
tkhd
版本
1
00
標志
3
0x000003(這個track生效並且用在這個影片中)
生成時間
4
0x00000000
修訂時間
4
0x00000000
Track ID
4
0x00000002
保留
4
0x00000000
Duration
4
0x00000770
保留
8
0x00 00 00 00 00 00 00 00
Layer
2
0x0000
Alternate group
2
0x0001
音量
2
0x0100
保留
2
0x0000
矩陣結構
36
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
40 00 00 00
寬度
4
0x00000000 (00.00)
高度
4
0x00000000 (00.00)
字段
長度(字節)
描述
尺寸
4
這個atom的大小
類型
4
mdia
下面參考一下mp4文件的數據:字段
長度(字節)
描述
尺寸
4
這個atom的字節數
類型
4
mdhd
版本
1
這個atom的版本
標志
3
這裡為0
生成時間
4
Movie atom的起始時間。基准時間是1904-1-1 0:00 AM
修訂時間
4
Movie atom的修訂時間。基准時間是1904-1-1 0:00 AM
Time scale
4
時間計算單位
Duration
4
這個媒體Track的duration時長
語言
2
媒體的語言碼
質量
2
媒體的回放質量
根據ISO14496-Part2描述可以看到,當版本字段為0時,解析與當版本字段為1時解析稍微有所不同,這裡介紹的為常見的解析方式。字段
長度(字節)
值
尺寸
4
0x00000020(32)
類型
4
mdhd
版本
1
0x00
標志
3
0x000000
生成時間
4
0x00000000
修訂時間
4
0x00000000
Time scale
4
0x00003200(12800)
Duration
4
0x00005e00(24064)
語言
2
0x55c4
質量
2
0x0000
字段
長度(字節)
描述
尺寸
4
這個atom的字節數
類型
4
hdlr
版本
1
這個atom的版本
標志
3
這裡為0
Handle的類型
4
handler的類型。當前只有兩種類型
'mhlr':media handlers
'dhlr':data handlers
Handle的子類型
4
media handler or data handler的類型。如果component type是mhlr,這個字段定義了數據的類型,例如,'vide'是video數據,'soun'是sound數據
如果component type是dhlr,這個字段定義了數據引用的類型,例如,'alis'是文件的別名
保留
12
保留字段,缺省為0
Component name
可變
這個component的名字,也就是生成此media的media handler。該字段的長度可以為0
根據這個表格的讀取方式,讀取示例文件中的內容數據,數據如下圖:字段
長度(字節)
值
尺寸
4
0x0000002d(45)
類型
4
hdlr
版本
1
0x00
標志
3
0x00
Handle的預定義字段
4
0x00000000
Handle的子類型
4
Vide
保留
12
0x0000 0000 0000 0000 0000 0000
Component name
可變
VideoHandler’\0’
從上表中解析出來的對應的值可以看出來,這是一個視頻的Track對應的數據,對應的組件的名稱為VideoHandler和一個0x00結尾,hdlr容器解析完畢。字段
長度(字節)
描述
尺寸
4
這個atom的字節數
類型
4
vmhd
版本
1
這個atom的版本
標志
3
這裡總是0x000001
圖形模式
2
傳輸模式,傳輸模式指定的布爾值
Opcolor
6
顏色值,RGB顏色值
根據這個表格讀取容器中的內容,進行解析,其數據如下圖:字段
長度(字節)
值
尺寸
4
0x00000014
類型
4
vmhd
版本
1
0x00
標志
3
0x000001
圖形模式
2
0x0000
Opcolor
6
0x0000 0000 0000
字段
長度(字節)
描述
尺寸
4
這個atom的字節數
類型
4
smhd
版本
1
這個atom的版本
標志
3
這裡為0
均衡
2
音頻的均衡是用來控制計算機的兩個揚聲器的聲音混合效果,一般是0。一般值是0。
保留
2
保留字段,缺省為0
字段
長度(字節)
值
尺寸
4
0x00000010
類型
4
smhd
版本
1
0x00
標志
3
0x000000
均衡
2
0x0000
保留
2
0x0000
字段
長度(字節)
描述
尺寸
4
這個atom的字節數
類型
4
dref
版本
1
這個atom的版本
標志
3
這裡為0
條目數目
4
data references的數目
數據參考
每個data reference就像容器的格式一樣,包含以下的數據成員
尺寸
4
這個atom的字節數
類型
4
見下表
版本
1
這個data reference的版本
標志
3
目前只有一個標志:
Self reference
This flag indicates that the media’s data is in the same file as the movie atom. On the Macintosh, and other file systems with multifork files, set this flag to 1 even if the data resides in a different fork from the movie atom. This flag’s value is 0x0001.
數據
可變
data reference信息
字段
長度(字節)
描述
尺寸
4
這個atom的字節數
類型
4
edts
《Android源碼設計模式解析》讀書筆記——Android中你應該知道的設計模式 斷斷續續的,《Android源碼設計模式解析》也看了一遍,書中提到了很多的設計模式,
Android 四大組件之再論BroadCast,androidbroadcastBroadCast 是android提供的跨進程通訊的有一利器。 1.異步執行onRec
RoundedBitmapDrawable生成圓角圖片, Bitmap src = BitmapFactory.decodeResource(getRes
Android 博客園客戶端 (五) 查看評論、搜索博主,android查看評論項目地址:https://github.com/ZhangTingkuo/AndroidC