"今天又是充满希望的一天"
背景
最近在做一个视频播放的需求,因为比较简单,只需要实现基本的loading,播放,暂停等功能,所以就用Android系统的播放器MediaPlayer。本来开开心心打完了工,正偷偷给妹妹发微信,测试大姐拿着手机过来就噼里啪啦一顿输出
“啊,你们的视频加载怎么这么慢?!”
“你看看人家iOS就不这样,这样能上线吗?!”
我X,我测的时候明明好好的啊,怎么现在加载个视频就要30多秒。看着不断转圈圈的loading图,我心里大骂
“又tm有坑是吧”
为了不耽误各位男哥哥女哥哥的时间,直接上结论:视频元数据位置不对
???什么是视频元数据?哪里位置不对?你特么写技术文还要别人百度是吧?
别别别,听我解释
关键的一句话
实际项目中用到的视频格式大多是MP4,MP4格式的视频是由一个个Box组成的。这个Box可以理解为数据块。Box里面可以嵌套Box:
(如果哥哥们想自己体验一把, mac可以用MediaParaser, window用Mp4Info)
ftyp,moov,mdat就