# 草原指南 MP4 重封装时间轴修复正式发布

> 日期：2026-07-17
>
> 后端 Issue：[HL #5021](https://git.1814.love:8443/wx/HL/issues/5021)
>
> 后端 PR：[HL #5026](https://git.1814.love:8443/wx/HL/pulls/5026)
>
> 正式分支：`main`
>
> 影响服务：`hl-user-service`

## 问题与修复

旧版 MP4 无损重封装虽然保持了 Sample 数据，但 `mvhd/tkhd/elst` 使用了不一致的时间单位，浏览器可能把完整视频识别成数秒并提前触发 `ended`。

后端现已统一 presentation timeline 的 movie timescale，并在替换 OSS 对象前校验 `mvhd/tkhd/elst/mdhd/stts` 一致性。视频仍保持原分辨率、帧率、编码和码率，不经过 Java 服务代理播放流量。

接口路径、请求体及响应字段均保持不变，前端无需适配新字段。

## 验证结果

- MP4 核心测试：30/30 通过
- `FileServiceTest` 与 `OssServiceTest`：141/141 通过
- Maven package：`BUILD SUCCESS`
- 测试环境真实媒体 1x/2x 播放已验收不卡顿
- 正式部署任务：`#283`
- 发布提交/镜像：`009d5ffe`
- `hl-user-service`：`2/2 Ready`
- 正式列表、详情、推荐、播放接口：HTTP/业务码均为 200
- 正式真实 MP4：`Content-Length: 592945035`、`Accept-Ranges: bytes`
- `Range: bytes=0-1023`：返回 206，`Content-Range: bytes 0-1023/592945035`

本次未修改或部署 `hl-ui`，无数据库结构及 Nacos 配置变更。
