在Android上用videoView远程播放MP4时,对MP4格式有什么要求

2025-02-28 01:43:35
推荐回答(2个)
回答1:

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

回答2:

是有要求的,必须moov要在mdat前面才可以,这样就可以切割视频分段合并播放了。可以参考这个原理,已经有库可以看实现
http://blog.csdn.net/u013640004/article/details/53573864