センサー データを記録するために、Matroska (.mkv) コンテナー形式が使用され、さまざまなコーデックを使用して複数のトラックを格納できます。 記録ファイルには、色、深度、IR 画像、IMU を格納するためのトラックが含まれています。
.mkv コンテナー形式の低レベルの詳細については、Matroska Web サイトを参照してください。
| トラック名 | コーデック形式 |
|---|---|
| 色 | Mode-Dependent (MJPEG、NV12、または YUY2) |
| 深さ | b16g (16 ビット グレースケール、ビッグ エンディアン) |
| IR | b16g (16 ビット グレースケール、ビッグ エンディアン) |
| IMU | カスタム構造については、以下 IMU サンプル構造 参照してください。 |
サード パーティ製ツールの使用
ffmpeg ツールキットの mkvinfo や コマンドなどのツールを使用して、記録ファイルから情報を表示および抽出できます。
たとえば、次のコマンドは、同じフォルダーに 16 ビットの PNG のシーケンスとして深度トラックを抽出します。
ffmpeg -i output.mkv -map 0:1 -vsync 0 depth%04d.png
-map 0:1 パラメーターは、トラック インデックス 1 を抽出します。これは、ほとんどのレコーディングでは深度になります。 記録にカラー トラックが含まれていない場合は、-map 0:0 が使用されます。
-vsync 0 パラメーターは、30 fps、15 fps、または 5 fps のフレームレートを一致させる代わりに、ffmpeg に as-is フレームを抽出するように強制します。
IMU サンプル構造
再生 API を使用せずに IMU データがファイルから抽出された場合、データはバイナリ形式になります。 IMU データの構造を以下に示します。 すべてのフィールドはリトル エンディアンです。
| フィールド | タイプ |
|---|---|
| 加速度計タイムスタンプ (μs) | uint64 |
| 加速度計データ (x、y、z) | float[3] |
| ジャイロスコープ タイムスタンプ (μs) | uint64 |
| ジャイロスコープ データ (x、y、z) | float[3] |
トラックの識別
色、深度、IR などを含むトラックを識別することが必要な場合があります。 サードパーティ製ツールを使用して Matroska ファイルを読み取る場合は、トラックを識別する必要があります。 トラック番号は、カメラ モードと有効なトラックのセットによって異なります。 タグは、各トラックの意味を識別するために使用されます。
以下のタグの一覧は、それぞれ特定の Matroska 要素にアタッチされており、対応するトラックまたは添付ファイルを検索するために使用できます。
これらのタグは、ffmpeg や mkvinfoなどのツールで表示できます。
タグの完全な一覧は、Record and Playback ページに表示されます。
| タグ名 | タグ ターゲット | タグ値 |
|---|---|---|
| K4A_COLOR_TRACK | カラー トラック | Matroska Track UID |
| K4A_DEPTH_TRACK | 深度トラック | Matroska Track UID |
| K4A_IR_TRACK | IR トラック | Matroska Track UID |
| K4A_IMU_TRACK | IMU トラック | Matroska Track UID |
| K4A_CALIBRATION_FILE | 校正用アタッチメント | 添付ファイルの名前 |