短视频秒播优化实践(二)
之前我们介绍了在线短视频秒播优化的方方面面,从服务器,cdn部署接入,数据连接/获取,客户端缓存,出帧策略,到视频文件I帧位置等。 今天从视频文件格式的另外一个角度介绍,MP4文件的box排列顺序是如何影响,在线短视频的播放以及秒播优化的。 MP4文件中的所有数据都装在box中 (iso-14496-12/14) (QuickTime中为atom)即mp4是由若干个box组成的 先简单介绍几个重要的box,以便诸位在后续学习时心中有数: 1、 ftyp box,在文件的开始位置,描述的文件的版本、兼容协议等; 2、 moov box,这个box中不包含具体媒体数据,但包含本文件中所有媒体数据的宏观描述信息,moov box下有mvhd和trak box。mvhd中记录了创建时间、修改时间、时间度量标尺、可播放时长等信息。trak中的一系列子box描述了每个媒体轨道的具体信息。 3、 moof box,这个box是视频分片的描述信息。并不是MP4文件必须的部分,但在我们常见的可在线播放的MP4格式文件中(例如Silverlight Smooth Streaming中的ismv文件)确是重中之重。 4、 mdat box,实际媒体数据。我们最终解码播放的数据都在这里面。 5、 mfra box,一般在文件末尾,媒体的索引文件,可通过查询直接定位所需时间点的媒体数据。