zoukankan      html  css  js  c++  java
  • http协议的MP4文件播放问题的分析

    现在手上有两个链接 
    (1) http://202.108.16.173/cctv/video/8C/35/EB/E8/8C35EBE84E7B483C8741CF9A60154993/gphone/480_320/200/0.mp4 
    (2) http://202.108.16.173/cctv/video/8C/35/EB/E8/8C35EBE84E7B483C8741CF9A60154993/iphone/480_320/200/0.mp4 
    现在的情况是这样的: 

    lusure 2009-12-30 16:57

    1.(1)在android中可以播放,(2)不能播放 
    2.在android中把视频下载下来,都可以播放。 
    3.在pc上用vlc测试两个链接,(1)播放几秒后卡住不动,(2)流畅播放。(ps:网速不是问题) 
    把两个文件都下载下来,头部分如下: 
    (1)ftypisom   isomiso2avc1mp41  遞moov  lmvhd    |%皜|%皜  ?摢   
    (2)ftypisom   isomiso2avc1mp41  free 0⑸mdat?  libfaac 1.28  B ?2 G  
    现在想要知道(2)这个链接为什么不能播放。跟踪了android的代码,发现在http协议播放MP4的时候,需要moov这个atom,否则报错退出,但是在以文件形式播放的时候没有这项判断。 
    想问下这两个链接的播放方式有什么不同,为什么在android上的播放和在vlc上的播放都出现不同的结果? 

    psusong 2009-12-31 10:18

    实际情况是播放mp4的时候必须首先获得moov的数据,否则没法解析mdat中的audio/video数据 

    对于2的情况,是因为moov在mdat后面,也就是在文件末尾,要播放这个文件意味要先把mdat下载下来才能下载到moov,也就是说没法直接获得moov,所以不能通过http的方式在线播放这个文件 

    并不是以文件的形式就不判断moov了,而是文件形式下moov无论在文件头还是文件尾部播放器都可以instant获得moov的数据,而http的方式下不能随意的seek到文件尾部,所以也就无法立即获得moov数据,当然无法播放了 
  • 相关阅读:
    天平天国和诗,和远方,和苟且
    ui设计师做好这几点,产品经理准闭嘴
    谈谈个人视觉创意的学习经验
    保持觉知
    第37周本人进步点
    扒一扒万恶的导航网站
    16年第四本《简单的逻辑学》
    hey,开通个人公众号啦!
    今朝有酒今朝醉,也是一种理性-附个人心得
    元素的定位
  • 原文地址:https://www.cnblogs.com/lidabo/p/7279452.html
Copyright © 2011-2022 走看看