# 云映 HLS 多版本清单：分开主清单、变体与媒体分片

语言：zh-CN
原文：[云映 HLS 多版本清单：分开主清单、变体与媒体分片](<https://allluckly.cn/guides/icouldplay-hls-master-variant-media-map/>)
中文：[中文 HTML](<https://allluckly.cn/guides/icouldplay-hls-master-variant-media-map/>)
English: [English HTML](<https://allluckly.cn/en/guides/icouldplay-hls-master-variant-media-map/>)
发布于: 2026-11-09T00:00:00+08:00
内容更新于: 2026-11-09T00:00:00+08:00
署名：Bison

用原创双版本HLS样例登记带宽、分辨率与下一层媒体清单，结合实际回放记录，不把主清单等同单个完整视频。

同一个M3U8入口可能列出多个可选版本，也可能直接列出媒体分片。若把这两层都叫视频文件，就很难判断保存了什么、播放器又实际读了什么。本篇先在外部文本中画出清单关系，再在云映观看自己的合法来源；不要求应用提供码率菜单，也不声称能从画面清晰程度反推出当前选中哪条变体。

## 先分清清单层级再讨论播放

选择自己有权查看的清单副本，先以纯文本只读打开，登记它来自哪个来源及获取时间。出现STREAM-INF之后接下一层M3U8，与出现EXTINF之后接媒体段，表达的关系不同。不要因为文件扩展名相同就合并成一个层级，也不把网页上显示的播放入口直接认作独立媒体文件。真实清单若带临时参数，只在自己的受控笔记保留必要身份信息，不公开整条授权链接。

## 建立只有两条变体的原创样例

下面只用于阅读结构，两个路径没有附上实际媒体，因此不是可直接播放的资源包。把每个STREAM-INF行与紧接的URI配成一组，第一组指向low子目录，第二组指向high子目录；不能把两个标签都配给最后一行。

```m3u8
#EXTM3U
#EXT-X-STREAM-INF:BANDWIDTH=900000,RESOLUTION=640x360
low/index.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=2400000,RESOLUTION=1280x720
high/index.m3u8
```

## 给带宽与分辨率各留一个字段

参照[RFC 8216变体流定义](<https://www.rfc-editor.org/rfc/rfc8216.html#section-4.3.4.2>)，BANDWIDTH使用每秒比特，本例900000不是900000字节文件大小；RESOLUTION给出该视频变体的显示分辨率信息。先抄原值再写自己的解释，不用高和低替代具体数据。更高带宽或更大分辨率不能单独证明画质一定更好，编码、内容与实际传输都可能不同；本表只说明清单声明了什么。

## 再沿一条变体追到媒体段

在自己的来源中只选一条实际可读子清单，查看其中EXTINF与媒体段的对应，另记时长和URI。若子清单还有初始化段、独立音频、密钥或其他依赖，写成额外依赖，不能删掉后称为完整包。初次练习无需下载任何加密内容或调整权限；看不懂依赖就停在清单关系登记。主清单的两条候选版本不是先播low后播high的两段剧情，时间顺序应从所选媒体清单判断。

## 在云映只记录实际可见的控制

通过当前受支持的来源打开真实入口，先顺播到一个有文字或细节的自有片段，记录是否出现播放与可见清晰度菜单。没有码率选择入口就写未提供，不能按教学清单要求去找隐藏按钮。若有实际选项，只抄界面显示值及观察时间，不替应用推断它对应哪条网络请求。当前内容能播与全部候选都能播是两件事，未逐一核对的路径保留未测试。

## 把观感变化与变体身份分开

同一片段出现清晰度变化时，先登记内容位置、是否刚跳转和网络条件，不立即写自动切到高码率。缩放、画面运动、源片本来模糊以及缓冲后显示，都可能影响观感。只有可信服务记录或明确界面证据，才能进一步关联具体变体；无法取得就不下结论。对照时保持屏幕方向和显示方式一致，不同时切片源、字幕与设备，避免让变化失去可解释的对应条件。

## 遇到一条变体失败时保留层级证据

若主清单能读但一条子路径失败，分别记主入口成功、子清单状态、分片可用性和播放结果。不能因另一路可播就删掉失败记录，也不能把子目录权限故障写成整个HLS格式不受支持。先按前篇相对地址教程还原真实基准，再由来源维护者核对失效、重定向和依赖范围。不要把带凭据的子地址粘到公开工具测试，也不修改生产清单来尝试强制选择。

## 遇到音频组时再登记配对关系

若真实主清单还有MEDIA标签，先看TYPE是否为AUDIO，再把GROUP-ID与变体的AUDIO属性对应，别把每条外部音频都当成第三种视频清晰度。没有外部URI的音频声明也不能直接判作丢失，要按清单规则核对它是否在视频变体中承载。名称可能只是显示标签，仍需实际听到语言和内容才确认用途；未能查看或回放的音频标为未确认，不擅自把评论音轨称作正片对白。

## 整理一张可回查的版本关系图

最终图从主入口分出两条候选，再分别指向各自媒体清单和依赖，只为实际查看过的节点写已确认。清单文件保存成功不代表全部媒体段已保存，更不代表离线可播。把本次云映回放结果另附图旁，说明哪部分来自文本、哪部分来自界面观察。以后来源更新或地址失效，按新获取时间重查关系；旧截图和旧清单保留原日期，不改成今天的证据。

## 相关教程与资料

[HLS相对地址对照](<https://allluckly.cn/guides/icouldplay-hls-relative-uri-resolution-sheet/>)、[M3U8与完整离线文件](<https://allluckly.cn/guides/icouldplay-hls-playlist-offline-boundary/>)。

资料核对：2026 年 11 月 9 日，依据 [云映官方 App Store 说明](<https://apps.apple.com/cn/app/id6755653178>)与 [Apple 公开版本查询](<https://itunes.apple.com/lookup?id=6755653178&country=cn>)，当前版本 1.1.1，最低要求 iOS / iPadOS 15.0。1.1.1 的公开更新列出 Kodi、OpenList / AList 与 S3 兼容存储，并改进来源切换及跳转后的字幕显示；本文按这些公开范围与现有播放能力组织任务，具体入口以安装版本为准。自制样本、手工记录与外部文件整理不是应用新增自动功能；未声称已完成真机或私人服务器实测。

