MP4文件quick start探究

在Flash上实现MP4文件点播时遇到播放问题,原因是某些MP4文件的BOX顺序异常,导致无法边下载边播放。解决方案包括使用qt-faststart工具调整BOX顺序或在客户端动态加载MOOV信息,实现正常播放。
摘要由CSDN通过智能技术生成

最近在Flash上实现MP4文件点播时,发现部分MP4文件在原有的播放器上无法播放,经过定位发现,原来是MP4 BOX搞的鬼!

什么是MP4 BOX?

对于一般的MP4文件,BOX顺序为:ftyp-moov-free-mdat.
而对于部分经过视频软件处理后的MP4文件,BOX顺序发生了改变:ftyp-free-mdat-moov.
对于这种顺序的MP4文件,在完整下载文件之前,无法获取moov信息,因此是无法实现边下载边播放的。

解决方案

  1. 对源文件进行重新编码
    既然BOX顺序有问题,可以从源头上进行处理:调整BOX顺序。工具qt-faststart即是实现该功能的利器。
    qt-faststart主页

    下载了qt-faststart.exe binary for Windows之后,通过cmd对def.mp4文件进行转化: qt-faststart.exe def.mp4 def_new.mp4
    转化后,box顺序果然发生了变化,播放正常。

使用AtomicParsley对MP4文件进行解析:

Atom ftyp @ 0 of size: 32, ends @ 32
Atom free @ 32 of size: 8, ends @ 40
Atom mdat @ 40 of size: 1025668, ends @ 1025708
Atom moov @ 1025708 of size: 13925, ends @ 1039633
     Atom mvhd @ 1025716 of size: 108, ends @ 1025824
     Atom trak @ 1025824 of size: 6608, ends @ 1032432
         Atom tkhd @ 1025832 of size: 92, ends @ 1025924
         Atom edts @ 1025924 of size: 36, ends @ 1025960
             Atom elst @ 1025932 of size: 28, ends @ 1025960
         Atom mdia @ 1025960 of size: 6472, ends @ 1032432
             Atom mdhd @ 1025968 of size: 32, ends @ 1026000
             Atom hdlr @ 1026000 of size: 45, ends @ 1026045
             Atom minf @ 1026045 of size: 6387, ends @ 1032432
                 Atom vmhd @ 1026053 of size: 20, ends @ 1026073
                 Atom dinf @ 1026073 of size: 36, ends @ 1026109
                     Atom dref @ 1026081 of size: 28, ends @ 1026109
                 Atom stbl @ 1026109 of size: 6323, ends @ 1032432
                     Atom stsd @ 1026117 of size: 167, ends @ 1026284
                         Atom avc1 @ 1026133 of size: 151, ends @ 1026284
                             Atom avcC @ 1026219 of size: 49, ends
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值