次の方法で共有


Azure Kinect Sensor SDK を使用してファイル形式を記録する

センサー データを記録するために、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 要素にアタッチされており、対応するトラックまたは添付ファイルを検索するために使用できます。

これらのタグは、ffmpegmkvinfoなどのツールで表示できます。 タグの完全な一覧は、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 校正用アタッチメント 添付ファイルの名前

次のステップ

Record and Playback