使用 Azure Kinect 传感器 SDK 记录文件格式

为了记录传感器数据,使用 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 元素,可用于查找相应的轨道或附件。

可以使用 ffmpegmkvinfo等工具查看这些标记。 标记的完整列表列在 录制和播放 页上。

标记名称 标记目标 标记值
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 校准附件 附件的文件名

后续步骤

录制和播放