时间体视频
时间体视频把一段视频展开成三维结构:每一帧是 XY 平面上的图像,帧序号沿 Z 轴排列,立方体只是这个时间体的空间边界。访问者用播放头沿 Z 轴滑动,就能看到当前帧及其邻域在时间方向上的层叠,而不是把视频当作一串顺序播放的画面。
状态快照
- 登记状态: 视频子域产品版本 v0.4.5;主站登记与视频静态产品分别发布,并以各自 canonical 域名回读为准。
- 责任来源:
tradecatlabs/tradecatlabs.com仓库内video/静态产品,构建隔离,不进入主站_site/。 - 当前可复核对象:
video.tradecatlabs.com纯静态工作台;npm run check覆盖构建、隐私边界、工作台契约和行为断言。 - 后续验证: 长视频 CPU/GPU 实际内存峰值、跨设备透明渲染表现和更多视频编码/浏览器兼容性;未测得资源上限,不预设固定帧数或硬拒绝。
研究对象
项目关注的是视频的时间维度能否被直接观察,而不是被播放速度隐式消费。实现上,视频通过浏览器内顺序解码取得每一个真实 presentation frame,逐帧保留源时间戳,再把帧数据切分为逐块上传、完整常驻 GPU 的纹理块。播放头只回答”现在看到哪一帧”,立方体朝向只回答”从哪个角度看这个时间体”,两者在实现与交互上都互相独立。
公开产品边界
- 产品形式: 浏览器本地处理的纯静态工作台,无动态后端;公开入口列于本文末尾。
- 输入边界: 仓库和发布物不包含任何预置视频、帧图集或第三方素材,帧数据只能来自访问者自己选择的本地文件。
边界与已知限制
- 视频只在访问者的浏览器内存中处理,不上传、不导出、不写入持久化存储;页面仅同源加载静态资源;
connect-src 'none'禁止 fetch/XHR/WebSocket/beacon 等连接请求,脚本由script-src 'self'限定。 - 项目不提供视频导出,也不承担屏幕录制;公开产物是可直接观察的时间体页面本身。
- 需要浏览器支持 WebCodecs;不支持时页面明确报错,不会静默降采样或丢帧。
- GPU 图集纹理预估超过 384 MiB 时提示风险,不设 512 MiB 硬拒绝,也不静默降清晰度或卸载未来帧;长视频的解码时间和内存占用仍会随帧数增长,实际峰值尚待测量。
- 桌面视口的取景避开侧栏覆盖区;WebGL 上下文丢失后会提示恢复后重新选择本地文件,不宣称能自动复原用户视频。
关联产出与公开入口
- 时间体视频工作台:独立视频子域,静态页面,访问者自行选择本地视频。