Repository navigation
Playback and Clipping
1.0.45 在现有五路相机和骨架之间保留 extension_left、extension_right 两个相机位置,分别读取 session 中的同名相机目录或 manifest 流;未接入时保留同名占位,不把另一侧画面填到空位。其他辅助流(例如 t265_pose)不会占用回放摄像头槽位。两路样式、尺寸和播放控制与其他小画面一致。
每路相机名称旁显示分辨率,窄窗口也不隐藏。JPEG 和 MP4 清单缺少尺寸时,会从已加载图像或视频元数据补齐;开启自适应预览时沿用当前清晰度显示。长目录名自动换行。
1.0.18 默认校对页在左侧显示五路视频、骨架和状态图,右侧显示时间轴与动作片段。目录可以收起或调整缩放。点击片段播放该段,到结束边界停止;全局播放按钮播放完整视频。结束帧按不包含显示,查看 JSON 显示原机标内容。
回放页使用统一时间轴显示五路相机画面,并同步位置、速度、欧拉角和角速度曲线。X/Y/Z/W 使用稳定的红、绿、蓝、紫,并辅以不同线型和文字图例;播放、暂停、前后步进、时间轴和 0.25x / 0.5x / 1x / 2x 速度均作用于同一时间轴。
从 1.0.24 起,状态图至少保留 220px 高度,画布与可见容器一致,坐标轴不会因小屏压缩被裁掉。动作片段列表拥有独立滚动条,长度随窗口高度限制,滚动列表不会移动编辑区和审核按钮。
MP4 连续播放以 Camera 0 实际呈现的画面驱动时间轴和骨架,其余画面按原生帧率跟随;15 FPS 的源视频不会变成每秒 30 个不同画面。主视频开始或网络欠载时先等待短时内存缓冲,其余原生画面随之暂停,缓冲充足后恢复。暂停和定位时,各画面重新对齐所选位置。播放、倍速和骨架更新不会反复跳转主视频。
NAS 视频通过仅绑定本机的只读媒体服务加载,按请求范围分块读取,不创建本地视频副本。NAS 持续吞吐低于视频总码率、其他程序占用网络或源目录被移动时仍可能卡顿或无法读取。
连续播放先为 Camera 0 建立有界预读跑道,再由主时间轴按记录速度推进;四路次要画面在播放期间以约 10 FPS 跟随,暂停或定位后恢复所选精确帧。对于逐帧 JPEG,SD 卡和本地盘保留较长的 Camera 0 跑道;SMB/NFS 和 Linux 文件管理器挂载的 GVFS 网络源只等待 30 帧,并为四路小画面按实际显示步长各自预读 12 帧。这样从中间定位时不必先读取数百个远程文件,小画面也不会因为 NAS 单文件往返延迟长期停住。
所有 JPEG 预读只存在于当前进程的有界内存中,不写本地代理、不复制或修改 NAS 数据。普通 JPEG 目录由后端使用进程随机 token 注册到仅绑定 127.0.0.1 的只读帧地址,WebView 直接取得并解码,不再把每张图片转成 Base64 后通过 IPC 搬运;地址不暴露源路径,只接受十进制帧号并拒绝符号链接文件。网络吞吐低于五路预览需求时仍可能短暂显示较早的已解码小画面,但新的定位会废弃旧排队任务并从所选帧重新开始。
1.0.2 同时识别根目录和 .session_meta 中的 MP4 清单,新采集的五路 MP4 不再被误判为空 JPEG 流。质量检查发现个别图像、相机或尺寸问题时保留整个工作区,问题仍在检查页显示。主画面当前帧读取失败时只暂停播放并显示错误,可移动到其他帧继续查看;次要画面失败时保留可用画面。这类保留画面不代表失败帧已解码成功。没有任何视频/图像流时才阻止空记录加载,错误数据的导出限制保持不变。
校对读取 .session_meta 或数据根目录中的机标;自动模式优先选择 bailian_annotation.qwen3.8-flash.json,也可以手动选择 Max 或 Flash。视频帧号独立于状态时间轴和人工裁剪。拖动、切段、边界预览使用同一视频帧号,真实缺口保持可见。常用动作描述可存入当前账号的本机描述库并重复使用。
正式版 1.0.2 使用正式配置/标注目录和更新通道。历史开发版的独立本机配置和人工标注目录不会自动合并;已批准的源目录复核 JSON 可以在正式版重新加载。
选择片段后可修改描述、输入或拖动起止帧、删除或恢复片段。共享分界同时移动相邻片段边界,保留每段至少一帧。人工修改实时保存到根目录 description.json,根 session.json 保存待审核、通过或不通过的 qc 及唯一修订。通过或不通过还记录当前审核账号、显示姓名和时间;不通过必须选择原因,其他原因必须填写文本。继续编辑会撤销旧结论并恢复待审核。
保存失败会保留按账号隔离的本机应急草稿,支持重试、重新读取和重启恢复;应急备份成功后允许切换视图和目录。人工内容优先于机标更新,旧修订重试接续最新序号,被替换的共享结果先在本机备份。Linux GVFS 目录需要同一共享的现有 CIFS 挂载才能完成文件锁和原子保存。
原机标和采集媒体始终只读。校对不创建原人工标注修订或计入原人工标注完成量。目录以“我已审”显示当前账号的审核关联,退出、重启或改名后仍可恢复,多人审核保留各自记录;已审核条目不会因此隐藏。源媒体必须保持可访问才能回放。
当前支持 schema_version: 3/4 的 episode_results[].annotations,按与数据目录名称一致的 episode_id 选取结果,兼容对象和 T/value 属性数组。机标视频帧从 Camera 0 映射到 Viewer 主时间轴,支持显式 0/1 起始帧及闭区间。旧文件未声明规则时暂按 0 起始、左闭右开解释。帧数与 Camera 0 不一致、无法可靠对齐时仍展示文本但禁用跳转和播放,不拉伸或猜测时间轴。文件不存在、格式错误或超出 8 MiB/2000 片段限制时单独提示,视频仍可继续查看。
在当前空白帧新增片段,或在已有片段内分割。分帧操作将当前帧作为右侧片段的第一帧,左侧结束于前一帧。删除中间片段后,后一段起点对齐前一段的结束边界,后一段终点保持不变;删除末段不会延长前段。恢复删除时收回相邻片段的扩展范围。空格暂停或恢复当前播放模式,上下键切段,左右键微调最近选中的边界,Enter 通过;文字输入时不触发这些快捷键。
轨迹范围是一个连续的闭区间,起点和终点都包含在导出中。可以使用双范围滑块、数字输入,或把当前帧设为起点/终点。重置后恢复完整轨迹。
保存片段后,再次进入同一 episode 会先显示只读画面预览,检查和标注恢复完成后再显示时间线编辑器,恢复已保存的起止帧和片段,播放从保留范围起点开始。旧的完整轨迹草稿不会覆盖已保存的截取范围。仅保存任务、尚未正式保存片段时,仍可恢复本机片段草稿。
裁剪只改变当前回放与本次导出:
- 不修改源 SD 卡。
- 不创建或修改本地 episode 副本。
- 不重新复制或重编码范围外 JPEG。
- MCAP、HDF5 和 LeRobot 使用同一范围。
范围外、能够绑定到具体帧的 issue 不阻断本次导出;范围内 issue 和无法绑定帧的全局 issue 仍按错误/警告规则处理。
如果 episode 根目录存在 smpl_skeleton.npz,或文件名包含 smpl/skeleton 的
.npz,应用会从挂载源目录直接读取常见三维关节坐标数组和可选 frame ID。桌面
回放把可交互的 Three.js 骨架放在五路图像右侧,窄窗口按顺序放在图像下方,并随
当前 frame_id 同步。该文件不会复制、修改或写入源目录,也不会自动加入三种导出;
SMPL/COCO 源坐标会在展示层用固定旋转对齐为默认直立的 Y-up 视图,不会逐帧抹掉真实身体倾斜。
格式不支持或内容损坏时只显示骨架错误,图像和状态回放仍可继续。
骨架文件提供显式 frame ID 时按该 ID 对齐;没有 frame ID 的处理结果按完整视频范围映射样本位置,并在相邻骨架样本间插值。裁剪只改变播放范围,不会重新拉伸骨架时间轴。