业务背景
商品列表需要展示录播内容。原流程自动播放完整视频,单个视频可能达到数百 MB;大量用户只是浏览列表,并不需要完整观看。
关键问题
- 列表自动播放与完整观看的需求不同,直接加载完整录播带来无效流量。
- 大量历史视频需要异步生成预览,任务需要去重和断点续跑。
我的实现与取舍
- 将自动播放入口切换到 HLS / M3U8 短预览,只有用户点击才进入完整录播播放。
- 通过阿里云 IMM 截取视频中间 5 秒,生成播放列表,TS 分片按访问需要生成。
- 由 Sidekiq 异步处理,保存预览记录以去重、统计和断点续跑,并维护预览文件清理。
落地结果
- 减少列表浏览时对完整录播的无效加载。
- 据实际工作反馈显著降低流量及 CDN 消耗,同时保留用户主动观看完整视频的能力。
欢迎深入交流
可以深入聊:HLS 分片、预览时长、懒加载、异步转码、缓存与 CDN 成本口径。