媒体资源扩展程序( MSE )需要在浏览器中播放零碎的mp4。
答案 0 :(得分:94)
碎片化的MP4包含一系列段,如果您的服务器支持字节范围请求,则可以单独请求这些段。
所有MP4文件都使用包含boxes aka atoms的面向对象格式。
您可以使用在线工具(例如MP4 Parser)或使用Windows MP4 Explorer在线查看MP4中的复选框。让我们将普通MP4与碎片化MP4进行比较:
此屏幕截图(来自MP4 Parser)显示的是一个没有碎片的MP4,而且只有一个巨大的mdat
(电影数据)框。
如果我们正在构建支持自适应比特率的视频播放器,我们可能需要知道0.5Mbps和1Mbps文件中10秒标记的字节位置,以便在此时切换两个文件之间的视频源。在每个相应文件中确定一个大的mdat
内的确切字节位置并非易事。
此屏幕截图显示了已使用onDemand
个人资料MP4Box进行细分的已分段MP4。
您会注意到sidx
和一系列moof
+mdat
框。 sidx
是细分索引,存储moof
+ mdat
细分的精确字节范围位置的元数据。
基本上,您可以单独加载sidx
(其字节范围将在随附的.mpd
媒体演示文稿描述符文件中定义),然后选择您希望随后加载的细分并添加到MSE SourceBuffer。
重要的是,每个片段都是按照您选择的固定间隔(即每5秒)创建的,因此片段可以跨不同比特率的文件进行时间对齐,从而可以在播放期间轻松调整比特率。