为了记录传感器数据,使用 Matroska (.mkv) 容器格式,允许使用各种编解码器存储多个轨道。 录制文件包含用于存储颜色、深度、IR 图像和 IMU 的轨迹。
可以在 Matroska 网站中找到 .mkv 容器格式的低级别详细信息。
跟踪名称 | 编解码器格式 |
---|---|
颜色 | Mode-Dependent(MJPEG、NV12 或 YUY2) |
深度 | b16g (16 位灰度, Big-endian) |
IR | b16g (16 位灰度, Big-endian) |
IMU | 自定义结构,请参阅下面的 IMU 示例结构。 |
使用第三方工具
可以使用 ffmpeg
工具包中的 mkvinfo
或 命令等工具来查看和提取记录文件的信息。
例如,以下命令会将深度轨迹提取为 16 位 PPNG 的序列,将其提取到同一文件夹中:
ffmpeg -i output.mkv -map 0:1 -vsync 0 depth%04d.png
-map 0:1
参数将提取跟踪索引 1,对于大多数录制而言,该索引为深度。 如果录制不包含颜色轨迹,将使用 -map 0:0
。
-vsync 0
参数强制 ffmpeg 提取帧 as-is,而不是尝试匹配帧速率为 30 fps、15 fps 或 5 fps。
IMU 示例结构
如果在不使用播放 API 的情况下从文件中提取 IMU 数据,则数据将以二进制形式显示。 IMU 数据的结构如下。 所有字段都是 little-endian。
领域 | 类型 |
---|---|
加速计时间戳 (μs) | uint64 |
加速计数据 (x, y, z) | float[3] |
陀螺仪时间戳 (μs) | uint64 |
陀螺仪数据 (x, y, z) | float[3] |
标识轨迹
可能需要确定哪个轨迹包含颜色、深度、IR 等。 使用第三方工具读取 Matroska 文件时,需要确定轨道。 跟踪编号因相机模式和启用的曲目集而异。 标记用于标识每个曲目的含义。
下面的标记列表都附加到特定的 Matroska 元素,可用于查找相应的轨道或附件。
可以使用 ffmpeg
和 mkvinfo
等工具查看这些标记。
标记的完整列表列在 录制和播放 页上。
标记名称 | 标记目标 | 标记值 |
---|---|---|
K4A_COLOR_TRACK | 颜色轨迹 | Matroska Track UID |
K4A_DEPTH_TRACK | 深度跟踪 | Matroska Track UID |
K4A_IR_TRACK | IR 跟踪 | Matroska Track UID |
K4A_IMU_TRACK | IMU Track | Matroska Track UID |
K4A_CALIBRATION_FILE | 校准附件 | 附件的文件名 |