1. 程式人生 > >MP4封裝格式

MP4封裝格式

一、簡介

MP4(MPEG-4 Part 14)是一種常見的多媒體容器格式,它是在“ISO/IEC 14496-14”標準檔案中定義的,屬於MPEG-4的一部分,是“ISO/IEC 14496-12(MPEG-4 Part 12 ISO base media file format)”標準中所定義的媒體格式的一種實現,後者定義了一種通用的媒體檔案結構標準。MP4是一種描述較為全面的容器格式,被認為可以在其中嵌入任何形式的資料,各種編碼的視訊、音訊等都不在話下,不過我們常見的大部分的MP4檔案存放的AVC(H.264)MPEG-4(Part 2)編碼的視訊和AAC編碼的音訊。MP4格式的官方檔案字尾名是“.mp4”,還有其他的以mp4為基礎進行的擴充套件或者是縮水版本的格式,包括:M4V

,  3GPF4V等。

二、格式學習

1、學習方法

1.1、參考地址

https://www.cnblogs.com/jingzhishen/p/3698570.html

https://blog.csdn.net/lh2016rocky/article/details/52691768

https://blog.csdn.net/u013898698/article/details/77152347

https://segmentfault.com/a/1190000012477812

https://blog.csdn.net/hejjunlin/article/details/73162841

https://blog.csdn.net/shelldon/article/details/54144409

1.2、解析工具

mp4info藉助該工具可以對mp4的視訊資料進行分析,其他

1.Gstreamer

2.libvlc

3.live555

4.ffmpeg

2、理解

主要檔案資訊組成,mp4檔案說白了就是一系列box組成,大box裡面有小box。接下來會深入到具體的box裡面,來具體分析mp4格式。

2.1、  ftyp(File Type Box)   box,在檔案的開始位置,描述的檔案的版本、相容協議等;

2.2、  moov (Movie Box)  box,這個box中不包含具體媒體資料,但包含本檔案中所有媒體資料的巨集觀描述資訊

,moov box下有mvhd和trak box。有的視訊檔案該資訊會前置就是再ftyp後面,有的在最後面就是在視訊檔案的最後面。

        >>mvhd中記錄了建立時間、修改時間、時間度量標尺、可播放時長等資訊

        >>trak中的一系列子box描述了每個媒體軌道的具體資訊

2.3、  moof   box,這個box是視訊分片的描述資訊。並不是MP4檔案必須的部分,但在我們常見的可線上播放的MP4格式檔案中(例如Silverlight Smooth Streaming中的ismv檔案)確是重中之重。

2.4、  mdat   box,實際媒體資料。我們最終解碼播放的資料都在這裡面。

2.5、  mfra    box,一般在檔案末尾,媒體的索引檔案,可通過查詢直接定位所需時間點的媒體資料。