时间体视频

时间体视频把一段视频展开成三维结构:每一帧是 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 上下文丢失后会提示恢复后重新选择本地文件,不宣称能自动复原用户视频。

关联产出与公开入口