什么是碎片MP4(fMP4)以及它与普通MP4有何不同?

问题描述 投票:0回答:2

媒体源扩展(MSE)需要碎片化的mp4才能在浏览器中播放。

media mp4 media-source fmp4
2个回答
191
投票

分段 MP4 包含一系列片段,如果您的服务器支持字节范围请求,则可以单独请求这些片段。

盒子又名原子

所有 MP4 文件都使用面向对象的格式,其中包含盒子又名原子

您可以使用在线工具(例如 MP4 Parser)查看 MP4 中框的表示,或者如果您使用的是 Windows,则使用 MP4 Explorer。让我们来比较一下普通 MP4 和碎片 MP4:

无碎片MP4

此屏幕截图(来自 MP4 Parser)显示了一个尚未分段的 MP4,并且非常简单地有一个巨大的

mdat
(电影数据)框。

Representation of boxes within a normal, non fragmented MP4, generated using MP4 Parser

如果我们正在构建一个支持自适应比特率的视频播放器,我们可能需要知道 0.5Mbps 和 1Mbps 文件中 10 秒标记的字节位置,以便此时在两个文件之间切换视频源。确定每个文件中一个巨大的

mdat
中的确切字节位置并非易事。

MP4碎片

此屏幕截图显示了一个碎片 MP4,已使用 MP4Box

onDemand
配置文件进行分段。

Representation of boxes within a fragmented MP4, generated using MP4 Parser

您会注意到

sidx
和一系列
moof
+
mdat
框。
sidx
是段索引,存储
moof
+
mdat
段的精确字节范围位置的元数据。

本质上,您可以独立加载

sidx
(其字节范围将在随附的
.mpd
媒体呈现描述符文件中定义),然后选择您想要随后加载并添加到 MSE SourceBuffer 的片段.

重要的是,每个片段都是按照您选择的固定间隔(即每 5 秒)创建的,因此片段可以在不同比特率的文件之间进行时间对齐,从而可以在播放期间轻松调整比特率。


8
投票

媒体文件格式

媒体数据流被包装在容器格式中。该容器包括媒体的物理数据以及播放所需的元数据。例如,它向视频播放器发出编解码器信号 使用,字幕轨道等。在视频流中有两种主要格式 用于存储和呈现多媒体内容:MPEG- 2 传输流 (MPEG-2 TS)[25] 和 ISO 基础媒体文件格式 (ISOBMFF)[24](MP4 和碎片 MP4).

MPEG-2 传输流由[25]指定,设计用于 通过卫星网络广播视频。不过,苹果采用了 它的自适应流协议使其成为一种重要的格式。在 MPEG-2 TS 音频、视频和字幕流复用在一起。 MP4 和分段 MP4 (fMP4) 都是 MPEG-4 的一部分,部分 涵盖 ISOBMFF 的 12 个标准。 MP4 是最知名的多媒体 容器格式,并在不同操作系统中得到广泛支持 和设备。 MP4 视频文件的结构如图 2.2a 所示。 如图所示,MP4由不同的盒子组成,每个盒子都有不同的功能—— 本质。这些盒子是 MP4 中每个容器的基本构建块。

例如文件类型框(‘ftyp’),指定兼容品牌(特别是 文件的说明)。 MP4 文件有一个 Movie Box ('moov'),其中包含 对计时很重要的媒体文件和示例表的元数据 并对媒体样本建立索引(‘stbl’)。还有一个媒体数据框 ('mdat') 包含相应的样本。在碎片化的情况下 tainer,如图2.2b所示,使用Movie来交错媒体样本 包含特定示例表的片段框(‘moof’) 片段(mdat 框)。

enter image description here

参考:https://repository.tudelft.nl/islandora/object/uuid%3Ae06cde4c-1514-4a8d-90be-7e10eee5aac1

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.