美文网首页
seek to time in mp4

seek to time in mp4

作者: 梧桐光影 | 来源:发表于2018-04-04 18:53 被阅读135次

    播放mp4文件时,需要支持seek功能。mp4的帧信息分别记录在不同的box中,本文简单介绍了一下,给定时间,找出对应帧在mp4文件中的位置的计算方法。

    术语解释:

    - sample表示帧。
    
    - chunk表示组,里面有1个或多个sample。
    
    - pts为Presentation Time Stamp的缩写,表示显示时间戳。
    
    - stts、ctts、elst、stsc、stsz、stco分别为mp4文件中的box。
    

    步骤如下:

    一句话描述:由时间得到sample的索引,再由索引得到文件位置。
    详细描述:

    1. stts记录了每个sample对应的duration的信息,根据这个表可以计算出每个sample对应的pts。该pts需要使用ctts,elst中的信息进行修正。所以给定pts,即可得到其对应的帧索引。
    
    2. stsc记录了每个chunk里面sample的数目,根据这个表可以计算出每个sample对应的chunk。
    
    3. stsz记录了每个sample的大小,结合stsc的内容,可以得到每个sample在其对应的chunk中的相对位置。
    
    4. stco记录了每个chunk在文件中的绝对位置。
    
    5. 根据chunk在文件中的绝对位置及sample在chunk中的相对位置,即可计算出sample在文件中的绝对位置。
    

    流程图如下:


    seek in mp4

    在实际应用中,一般先根据mp4的头部信息,解析出各帧的属性并存储到表格中,方便后续使用。

    相关文章

      网友评论

          本文标题:seek to time in mp4

          本文链接:https://www.haomeiwen.com/subject/fqrlhftx.html