背景
浏览器 MKV 后备路径会先下载完整源文件,再在 FFmpeg WASM 中转码,并把完整输出 MP4 物化为 Blob。数 GB 动画在手机、低内存设备或弱 CPU 浏览器上容易等待过久或内存不足,且客户端之间无法复用结果。
相关代码:
- SecondDimensionWatcherReDive.Client/src/playback/mkv/transcoder.ts
- SecondDimensionWatcherReDive.Client/src/pages/PlayerPage.tsx
- SecondDimensionWatcherReDive/Controllers/FileController.cs
目标
在保留原始文件直放和外部播放器能力的同时,为不兼容媒体提供可缓存、可拖动、低首帧延迟的服务端播放路径。
建议范围
- 播放前探测容器、视频、音频和字幕轨道。
- 优先 direct play,其次无损 remux,最后才转码。
- 服务端异步生成 HLS(或 DASH)分片。
- 支持可选硬件加速及 CPU 回退。
- 转码任务有并发、CPU、内存、磁盘配额和取消。
- 按源版本、轨道和质量生成缓存键,支持 LRU/TTL 清理。
- API 展示排队、转码、失败和缓存命中状态。
- 文本字幕转为 WebVTT;位图字幕明确提示或按配置烧录。
验收标准
预估工作量:高
背景
浏览器 MKV 后备路径会先下载完整源文件,再在 FFmpeg WASM 中转码,并把完整输出 MP4 物化为 Blob。数 GB 动画在手机、低内存设备或弱 CPU 浏览器上容易等待过久或内存不足,且客户端之间无法复用结果。
相关代码:
目标
在保留原始文件直放和外部播放器能力的同时,为不兼容媒体提供可缓存、可拖动、低首帧延迟的服务端播放路径。
建议范围
验收标准
预估工作量:高