第1个回答 2018-07-30
一般编码工具生成的MP4文件,关键帧的索引数据块(MDAT块)都放在文件最末尾,而在线播放时需要边下载边播放,这样的MP4文件就必须完全下载以后,MDAT块才能被读到,从而开始播放。
为了不把整个MP4内容放在内存里,编码过程都是一边编码一边写文件,只把数据量相对很小的MDAT放在内存里,在前面的数据全部生成完以后,再最后一次把MDAT写到文件里。
Android的multimedia framework从2.2或者2.3开始就已经支持普通MP4文件的progressive
playback,原理也很简单,只要你的HTTP
server支持续传,client就可以在HTTP请求中访问文件的指定偏移位置,相当于在本地的随机文件访问。本回答被网友采纳