哪些字节的视频数据是指当前播放位置
Which bytes of video data refer to the current playback position
我正在使用媒体源扩展在浏览器中播放视频。
我的 JavaScript 程序将视频文件分成 1200 字节的片段。
视频使用以下编解码器编码:video/mp4;编解码器="avc1.42E01E, mp4a.40.2".
以秒为单位给出时间 X 我想找到在位置 X 播放视频所需的相应第一个片段(或者靠近但不在该位置之后的片段)。
更具体地说,我想找出哪个片段属于 HTMLMediaElement 的 currentTime 属性 中的时间。
视频文件可以提前分析
有多种方法可以在 mp4 文件中指定持续时间-> 片段映射。
- 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
框,而是 stsz
和 stts
框映射一系列样本(视频或音频帧)持续时间+大小。这是一个例子:
stsz 框:
sample 0 size 105222
sample 1 size 1554
sample 2 size 2153
stts 框:
3 sample each with dur 512
stts
框给出了 stsz
中定义的样本的持续时间
- 可能还有其他方法。此列表并不详尽
我正在使用媒体源扩展在浏览器中播放视频。
我的 JavaScript 程序将视频文件分成 1200 字节的片段。
视频使用以下编解码器编码:video/mp4;编解码器="avc1.42E01E, mp4a.40.2".
以秒为单位给出时间 X 我想找到在位置 X 播放视频所需的相应第一个片段(或者靠近但不在该位置之后的片段)。
更具体地说,我想找出哪个片段属于 HTMLMediaElement 的 currentTime 属性 中的时间。
视频文件可以提前分析
有多种方法可以在 mp4 文件中指定持续时间-> 片段映射。
- 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
框,而是stsz
和stts
框映射一系列样本(视频或音频帧)持续时间+大小。这是一个例子:
stsz 框:
sample 0 size 105222
sample 1 size 1554
sample 2 size 2153
stts 框:
3 sample each with dur 512
stts
框给出了 stsz
- 可能还有其他方法。此列表并不详尽