使用Orbbec SDK K4A Wrapper 录制文件格式

本文内容

● 使用第三方工具

● IMU示例结构

● 识别轨道

若要录制传感器数据,需使用 Matroska (.mkv) 容器格式,以便可以使用多种编解码器存储多个轨道。 录制文件包含用于存储颜色、深度、IR 图像和 IMU 的轨道。在Matroska 网站上可以找到 .mkv 容器格式的大致详细信息。

轨道名称

编解码器格式

COLOR

与模式相关(MJPEG、NV12 或 YUY2)

DEPTH

b16g(16 位灰度,大字节序)

IR

b16g(16 位灰度,大字节序)

IMU

自定义结构。请参阅下面的 IMU 示例结构


使用第三方工具

可以使用 ffmpeg 等工具或者MKVToolNix 工具包中的 mkvinfo 命令查看和提取录制文件中的信息。

例如,以下命令将深度轨道作为 16 位 PNG 序列提取到同一个文件夹:

ffmpeg -i output.mkv -map 0:1 -vsync 0 depth%04d.png

-map 0:1 参数将提取轨道索引 1,对于大多数录制内容而言,此索引是深度。 如果录制内容不包含颜色轨道,则会使用 -map 0:0。

-vsync 0 参数强制 ffmpeg 按原样提取帧,而不是尝试匹配 30 fps、15 fps 或 5 fps 的帧速率。


IMU 示例结构

如果在不使用播放 API 的情况下从文件中提取 IMU 数据,则数据将采用二进制格式。 下面是 IMU 数据的结构。 所有字段均为小字节序。

字段

类型

加速度传感器时间戳 (µs)

uint64

加速度传感器数据 (x, y, z)

float[3]

陀螺仪时间戳 (µs)

uint64

陀螺仪数据 (x, y, z)

float[3]


识别轨道

可能需要识别哪个轨道包含颜色、深度、IR 等属性。 使用第三方工具读取 Matroska 文件时,需要识别轨道。 轨道编号根据相机模式和已启用的轨道集而异。 标记用于标识每个轨道的含义。

下面所列的每个标记将附加到特定的 Matroska 元素,可用于查找相应的轨道或附件。

可以使用 ffmpeg 和 mkvinfo 等工具查看这些标记。 

标记名称

标记目标

标记值

K4A_COLOR_TRACK

颜色轨道

Matroska 轨道 UID

K4A_DEPTH_TRACK

深度轨道

Matroska 轨道 UID

K4A_IR_TRACK

IR 轨道

Matroska 轨道 UID

K4A_IMU_TRACK

IMU 轨道

Matroska 轨道 UID

K4A_CALIBRATION_FILE

校准附件

附件文件名