本文內(nèi)容
● 使用第三方工具
● IMU示例結(jié)構(gòu)
● 識別軌道
若要錄制傳感器數(shù)據(jù),需使用 Matroska (.mkv) 容器格式,以便可以使用多種編解碼器存儲多個軌道。 錄制文件包含用于存儲顏色、深度、IR 圖像和 IMU 的軌道。在Matroska 網(wǎng)站上可以找到 .mkv 容器格式的大致詳細信息。
軌道名稱 | 編解碼器格式 |
COLOR | 與模式相關(guān)(MJPEG、NV12 或 YUY2) |
DEPTH | b16g(16 位灰度,大字節(jié)序) |
IR | b16g(16 位灰度,大字節(jié)序) |
IMU | 自定義結(jié)構(gòu)。請參閱下面的 IMU 示例結(jié)構(gòu)。 |
使用第三方工具
可以使用 ffmpeg 等工具或者MKVToolNix 工具包中的 mkvinfo 命令查看和提取錄制文件中的信息。
例如,以下命令將深度軌道作為 16 位 PNG 序列提取到同一個文件夾:
ffmpeg -i output.mkv -map 0:1 -vsync 0 depth%04d.png
-map 0:1 參數(shù)將提取軌道索引 1,對于大多數(shù)錄制內(nèi)容而言,此索引是深度。 如果錄制內(nèi)容不包含顏色軌道,則會使用 -map 0:0。
-vsync 0 參數(shù)強制 ffmpeg 按原樣提取幀,而不是嘗試匹配 30 fps、15 fps 或 5 fps 的幀速率。
IMU 示例結(jié)構(gòu)
如果在不使用播放 API 的情況下從文件中提取 IMU 數(shù)據(jù),則數(shù)據(jù)將采用二進制格式。 下面是 IMU 數(shù)據(jù)的結(jié)構(gòu)。 所有字段均為小字節(jié)序。
字段 | 類型 |
加速度傳感器時間戳 (μs) | uint64 |
加速度傳感器數(shù)據(jù) (x, y, z) | float[3] |
陀螺儀時間戳 (μs) | uint64 |
陀螺儀數(shù)據(jù) (x, y, z) | float[3] |
識別軌道
可能需要識別哪個軌道包含顏色、深度、IR 等屬性。 使用第三方工具讀取 Matroska 文件時,需要識別軌道。 軌道編號根據(jù)相機模式和已啟用的軌道集而異。 標記用于標識每個軌道的含義。
下面所列的每個標記將附加到特定的 Matroska 元素,可用于查找相應(yīng)的軌道或附件。
可以使用 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 | 校準附件 | 附件文件名 |