在任意段启动MPEG-DASH流

时间:2017-01-18 23:06:09

标签: javascript video-streaming video-encoding transcoding mpeg-dash

假设MPEG-DASH流中有20个段,并且流通常从索引0开始。是否可以从索引13开始,假设init文件/字节序列已经排队到媒体源缓冲区?这个用例很实用的一个例子是Netflix的恢复功能 - 有人可以继续在其他设备/浏览器上流式传输。 (推测使用与从头开始时相同的初始化数据。)

我唯一的想法是我的假设是错误的,并且对于媒体可以暂停的每个不同点都会有不同的初始化块...但这只是愚蠢......对吗?

1 个答案:

答案 0 :(得分:1)

简单的答案是,是的,这是可能的,因为你建议这可以用于恢复播放功能。它也可以用于“重新开始”。在直播流中,向前或向后跳转到视频中的特定点。

MPEG DASH支持两种主要文件格式(或视频容器格式) - ISO基本媒体文件格式(ISOBMFF - 通常称为MP4,尽管严格来说是MPEG-2的概括)和MPEG-TS。 / p>

MPEG DASH标准使用' Periods'作为其基本构建块之一 - 句点代表内容流的一部分,包括开始时间和持续时间。为了能够在给定时间段内播放内容,您仍需要一些初始化数据。

看看ISOBMFF,你建议有一个init段包含这个必需的数据,并由W3C定义为:

  

初始化细分   包含解码媒体段序列所需的所有初始化信息的字节序列。这包括编解码器初始化数据,多路复用段的磁道ID映射以及时间戳偏移(例如,编辑列表)。