【转】Android下录制的mp4视频以http流媒体的形式播放不了
2011-12-29 17:58
381 查看
mp4基本知识:
mp4的文件结构中主要包含moov 部分是视频的元数据信息和mdat部分是视频的内容信息
在http协议播放MP4的时候,需要moov这个atom,否则报错退出,但是在以文件形式播放的时候没有这项判断。 实际情况是播放mp4的时候必须首先获得moov的数据,否则没法解析mdat中的audio/video数据 对于http协议播放MP4的情况,是因为moov在mdat后面,也就是在文件末尾,要播放这个文件意味要先把mdat下载下来才能下载到moov,也就是说没法直接获得moov,所以不能通过http的方式在线播放这个文件 并不是以本地文件的形式就不判断moov了,而是文件形式下moov无论在文件头还是文件尾部播放器都可以instant获得moov的数据,而http的方式下不能随意的seek到文件尾部,所以也就无法立即获得moov数据,当然无法播放了 .
关于拖动播放的问题:拖动播放首先就是要找到位置,也就是seek position.seek是定位时间,但时间定位在可以拖动的flv或者mp4文件中都在MetaData事件中传递了keyframes 给播放器,这个keyframes 就是时间和文件数据头定位的对应关系依据。下载数据已经缓冲数据的范围是开始位置off1 和下载缓冲数据量 buffer来确定, 即范围在 [off1,off1+butt]是已经缓冲的数据。还要注意的是这个定位精度是有限制的,最多到1秒精度。
查看mp4文件结构信息的工具,见附件
如果要将mp4文件的末尾的moov atom信息放在文件的起始位置,可以使用qt-faststart 见附件
用法:qt-faststart 源文件 转换后的新文件
这样转换后的mp4文件的就能支持http下的流媒体形式的播放了
mp4的文件结构中主要包含moov 部分是视频的元数据信息和mdat部分是视频的内容信息
在http协议播放MP4的时候,需要moov这个atom,否则报错退出,但是在以文件形式播放的时候没有这项判断。 实际情况是播放mp4的时候必须首先获得moov的数据,否则没法解析mdat中的audio/video数据 对于http协议播放MP4的情况,是因为moov在mdat后面,也就是在文件末尾,要播放这个文件意味要先把mdat下载下来才能下载到moov,也就是说没法直接获得moov,所以不能通过http的方式在线播放这个文件 并不是以本地文件的形式就不判断moov了,而是文件形式下moov无论在文件头还是文件尾部播放器都可以instant获得moov的数据,而http的方式下不能随意的seek到文件尾部,所以也就无法立即获得moov数据,当然无法播放了 .
关于拖动播放的问题:拖动播放首先就是要找到位置,也就是seek position.seek是定位时间,但时间定位在可以拖动的flv或者mp4文件中都在MetaData事件中传递了keyframes 给播放器,这个keyframes 就是时间和文件数据头定位的对应关系依据。下载数据已经缓冲数据的范围是开始位置off1 和下载缓冲数据量 buffer来确定, 即范围在 [off1,off1+butt]是已经缓冲的数据。还要注意的是这个定位精度是有限制的,最多到1秒精度。
查看mp4文件结构信息的工具,见附件
如果要将mp4文件的末尾的moov atom信息放在文件的起始位置,可以使用qt-faststart 见附件
用法:qt-faststart 源文件 转换后的新文件
这样转换后的mp4文件的就能支持http下的流媒体形式的播放了
相关文章推荐
- Android 录制的mp4视频文件在IOS中无法播放问题
- Android 录制的mp4视频文件在IOS中无法播放问题
- Android之多媒体视频的播放和录制
- 全屏录制播放控件--Android 开发中关于视频录制和播放的诸多问题处理
- Android第八讲——多媒体(四)播放视频(mp4/3gp) MediaPlayer
- android、电脑可以播放.mp4的视频,ios无法播放解决办法
- Android使用MediaRecorder和Camera实现视频录制及播放功能整理
- 写了个html5播放视频的video控件,只支持mp4和3gp(android和ios默认支持的格式就写了这个)
- 调用VLCjni.so播放rtsp视频流并录制成mp4文件
- Android -- 播放视频的两种形式
- android仿微信录制短视频并播放视频
- [置顶] 简述Android中如何实现播放视频形式的引导页面
- android stagefright 播放MP4视频 打印信息分析
- Android 实现视频录制播放
- android mp4 3gp视频播放程序
- Android自定义视频录制与播放 不错的文章,来不及看,先收藏了
- Android使用MediaRecorder和Camera实现视频录制及播放功能整理
- Android视频录制、播放的两种方式
- Android开发笔记——视频录制播放常见问题
- Android端录制视频,.NET实时播放