# 云映 HLS 字节区间清单：同一地址也可能对应不同分片

语言：zh-CN
原文：[云映 HLS 字节区间清单：同一地址也可能对应不同分片](<https://allluckly.cn/guides/icouldplay-hls-byte-range-offset-ledger/>)
中文：[中文 HTML](<https://allluckly.cn/guides/icouldplay-hls-byte-range-offset-ledger/>)
English: [English HTML](<https://allluckly.cn/en/guides/icouldplay-hls-byte-range-offset-ledger/>)
发布于: 2026-11-10T00:00:00+08:00
内容更新于: 2026-11-10T00:00:00+08:00
署名：Bison

用原创长度与偏移算例核对EXT-X-BYTERANGE，区分片段身份、资源身份及未引用字节。

HLS清单连续出现同一个文件名，不一定重复下载或重复播放同一段。清单可以用字节区间指向同一资源内的不同媒体段。本篇在外部逐条算偏移，再把云映实际播放结果单独登记，不把HTTP响应的一段字节直接当整部影片，也不要求应用显示清单解析器或分片下载表。

## 先确认这是媒体清单的文字副本

准备自己有权查看的小型媒体清单副本，记录取得时间、原基址和文件身份，实际网址私下保留。只有主清单时先按已有HLS层级教程找到媒体清单，不把变体地址当本课区间列表。无法取得清单，可完成下面纸面算例，不必给应用导入一个缺媒体的示例。原清单不编辑，研究表另存；直播更新后保留新的观察日期，不能把两次不同列表的片段序号直接拼成一条未变的内容顺序。

## 逐条绑定长度标签与下一行地址

原创样例只为计算，不附真实media.ts，不能直接承诺可播放。按照[RFC 8216字节区间标签](<https://www.rfc-editor.org/rfc/rfc8216.html#section-4.3.2.2>)，标签属于接下来那一行资源，长度和可选偏移分别登记。这里三条URI相同而区间并不相同，版本四符合该标签所需的最低兼容版本。EXTINF写每段三秒，只是示例时间信息，不能靠字节长度验证编码时间戳已经正确，也不把此文字片段称为完整媒体包。

```m3u8
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-TARGETDURATION:3
#EXTINF:3.0,
#EXT-X-BYTERANGE:128@0
media.ts
#EXTINF:3.0,
#EXT-X-BYTERANGE:256
media.ts
#EXTINF:3.0,
#EXT-X-BYTERANGE:128@512
media.ts
#EXT-X-ENDLIST
```

## 先算明确给出的首段偏移

首段长度一百二十八、偏移零，若用包含端点的字节编号表示，应为零至一百二十七；末字节等于起点加长度减一，不是零至一百二十八。外部建段序、完整资源身份、长度、起点、终点五栏，时间另栏保存，不把三秒写成三字节。这里偏移是从资源起点数的字节，不是从当前播放位置或已看时长起算。核对长度时用终点减起点再加一，先把这个端点约定固定，后续才能查是否多算一个字节。

## 省略偏移必须核前一段与同一资源

第二段只写长度二百五十六，前一媒体段已经明确是同一资源的一段，所以接首段后一字节一百二十八开始，至三百八十三结束。省略不是自动从零，也不是从当前段序号开始。若前一段指向另一资源，或清单没有前一媒体段，就不能套这个推算；按规范这种省略会使该媒体段未定义。遇到相对路径先结合原基址确定资源身份，再比较，不仅凭最后文件名一样就认定两个地址必为同一个对象。

## 明确偏移允许跳过未引用字节

第三段明确从五百一十二起，长一百二十八，终点六百三十九。三百八十四至五百一十一这段没有被本例三条范围引用，共一百二十八字节，先只记未引用，不能说视频缺一百二十八秒。三段所选字节总数五百一十二，而最大编号六百三十九也不证明整个资源恰好六百四十字节，尾部可能还有内容。相同URI加不同范围才构成本例片段身份；不能去掉标签后合并成一个整文件地址再声称播放含义完全没变。

## 把清单范围与HTTP返回分别验

有可信服务记录时，另记实际请求的资源、Range与返回的状态及内容范围，不能只凭清单文字就宣称服务器已经正确支持分段读取。服务可能返回整份表示，也可能拒绝或转到登录页面，按实际处理，不把所有失败叫格式错误。没有日志就只保留清单算例与观看现象，不能杜撰云映发出的网络头。此前HTTP范围教程描述响应证据，本篇描述清单如何选取片段，二者可对照但不会互相替代。不要改生产服务器配置追求某个状态码。

## 顺播与离线副本按实际范围登记

使用自己原本可播的真实资源，在云映从段边界之前正常顺播，记录跳转、停顿或内容重复的具体锚点。不要拿缺失media.ts的教学文本做兼容结论。保存清单不等于保存它引用的所有字节，下载了同名资源也需核副本完整性及路径关系。离线检查先用合法小样本，首中末与字幕分别看，未做就写未验。一次只改一项，不能同时重写区间、转码和换服务器后把恢复播放归功于某一个猜测。

## 退出返回后复算三段身份

退出再回真实视频，用同一内容锚点确认返回位置，清单若已更新则另留版本。最终纸面应得到零至一百二十七、一百二十八至三百八十三、五百一十二至六百三十九，并能解释一百二十八字节空隙与五百一十二字节选取总量各是什么。原清单、媒体副本与人工表分开保存，公开反馈用自制路径。完成标准是片段区间可回算、观看证据可定位，不是文件名重复就删掉条目，也不是文字计算通过就保证全片离线可播。

## 相关教程与资料

[HTTP范围核对](<https://allluckly.cn/guides/icouldplay-http-byte-range-partial-content/>)、[HLS相对地址核对](<https://allluckly.cn/guides/icouldplay-hls-relative-uri-resolution-sheet/>)。

资料核对：2026 年 11 月 10 日，依据 [云映官方 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 兼容存储，并改进来源切换及跳转后的字幕显示；本文按这些公开范围与现有播放能力组织任务，具体入口以安装版本为准。自制样本、手工记录与外部文件整理不是应用新增自动功能；未声称已完成真机或私人服务器实测。

