HLS 段 (.ts) 内部格式

HLS segment (.ts) internal format

我试图了解 HLS 分段器如何将 MPEG-TS 数据包转换为 HLS 块。 HLS chunk 是否封装了多个 MPEG-TS 数据包,或者它是一种完全不同的格式并且与 MPEG-TS 不同?例如,我可以检索 PCR(节目时钟参考)或其他 MPEG-TS 特定数据吗?

根据 spec:

Each Media Segment MUST be formatted as an MPEG-2 Transport Stream [ISO_13818], a WebVTT [WebVTT] file, or a Packed Audio file ...

换句话说:HLS 建立在 MPEG-TS 之上。视频始终被格式化为 MPEG 传输流。字幕使用WebVTT。音频可以格式化为 MPEG-TS 或原始 AAC/MP3 帧。

当video/audio被格式化为MPEG-TS时,每个HLS段都是自包含的(即包含所有必要的解码信息)并且由许多MPEG-TS数据包组成(一个MPEG-TS数据包只是188 字节)。

是的,您可以检索 PCR 和嵌入在 MPEG-TS 中的所有其他内容,例如 ID3 元数据、其他多路复用流、CEA 608/708 等等。

下一版本的 HLS 将 allow fragmented MP4 用作 video/audio 的 MPEG-TS 的替代品,但目前支持有限。