seek to time in mp4

播放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的头部信息,解析出各帧的属性并存储到表格中,方便后续使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 硬件编码相关知识(H264,H265) 阅读人群:研究硬件编码器应用于iOS开发中,从0研究关于硬件编解码,码流中...
    小东邪啊阅读 14,419评论 0 18
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,041评论 6 13
  • 这两天突然心情大好,或者说是放松吧。妞说,别人到了医院都是垂头丧气,怎么感觉你这么亢奋呢?是啊,是有些小兴奋...
    Leohunter阅读 1,324评论 0 0
  • 我是个沉默站在桥上看风景的人 睡不着的我,手里点着一根烟 江面倒映着城市的霓虹灯,五彩缤纷,一切的繁华与我无关 如...
    ZfcDream阅读 3,106评论 0 0
  • 选择小姐的父母一直是个谜,选择小姐的母亲在前面已经介绍过了--女强人,选择小姐的父亲常年出差,一年回来的次...
    那日杏花疏影阅读 1,837评论 0 0

友情链接更多精彩内容