哪个字节的视频数据指的是当前播放位置

时间:2016-02-11 08:05:58

标签: javascript html5-video media mp4 media-source

我正在使用媒体源扩展程序在浏览器中播放视频。

我的JavaScript程序将视频文件分成1200字节的片段。 视频采用以下编解码器编码:video / mp4; codecs =" avc1.42E01E,mp4a.40.2"。
以秒为单位给出时间X我想找到在位置X播放视频所需的相应第一个片段(或者是在该位置附近但不在此位置之后的片段)。 更具体的是,我想找出哪个片段属于HTMLMediaElement的currentTime属性中的时间。 可以事先分析视频文件。

1 个答案:

答案 0 :(得分:4)

有多种方法可以在mp4文件中指定duration->片段映射。

  • ISO / IEC 14496-12中定义的subsegment index(简称sidx)框将输入文件中的字节范围与相应的持续时间相关联。

以下是sidx框内容的片段:

subsegment 0 size 726463 dur 450450
subsegment 1 size 723260 dur 450450
subsegment 2 size 713278 dur 450450
subsegment 3 size 441644 dur 450450
... and so on ...

找到给定时间X的片段是微不足道的。

  • 大多数mp4个文件没有sidx个框,而是一个stszstts个框,用于映射一系列样本(视频或音频帧)持续时间+大小。以下是例子:

stsz box:

sample 0 size 105222
sample 1 size 1554
sample 2 size 2153

stts box:

3 sample each with dur 512

stts框给出了stsz

中定义的样本的持续时间
  • 可能还有其他方法。此列表并非详尽无遗