使用 Azure Kinect 感應器 SDK 來錄製檔案格式
為了錄製感應器資料,會使用 Matroska (.mkv) 容器格式,這會允許使用各種不同的轉碼器來儲存多個軌道。 錄製檔案包含用來儲存色彩、深度、IR 影像和 IMU 的軌道。
您可以在 Matroska 網站上找到 .mkv 容器格式的低階詳細資料。
軌道名稱 | 轉碼器格式 |
---|---|
COLOR | 相依模式 (MJPEG、NV12 或 YUY2) |
DEPTH | b16g (16 位元灰階、Big-endian) |
IR | b16g (16 位元灰階、Big-endian) |
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 資料的結構如下。 所有欄位都是 little-endian。
欄位 | 類型 |
---|---|
加速計時間戳記 (微秒) | 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 | 校正附件 | 附件檔案名稱 |
後續步驟
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應