Table of Contents

錄製 EIF 文件並用於模擬運行

EIF 文件(EasyAR Input Frame file) 是 EasyAR Sense 用來存儲一系列輸入幀數據的文件格式。本文主要描述如何錄製 EIF 文件並用於模擬運行。

EIF 文件和內容

EIF 文件根據不同的錄製方式,存在兩個實現:

  • 原始 EIF 格式(通常擴展名爲.eif)

    原始的 EIF 文件以 EasyAR 內部定義的數據結構逐幀存儲輸入幀數據,包括圖像和附加信息(如 camera 參數和跟蹤狀態等)。這種格式不做視頻壓縮,而是逐幀編碼(例如 JPEG 圖像數據),適合精確回放。

  • EIF MKV 格式(通常擴展名爲.mkveif)

    基於 MKV 封裝的視頻格式,在此基礎上將輸入幀的信息編碼進 MKV 容器。視頻編碼使用 H.264 來壓縮圖像數據,同時保留輸入幀其他元數據(如 IMU 傳感器數據、定位數據等)作爲流或附加軌道。這樣可以顯著減少文件體積,並便於標準視頻流處理。

附註

EIF MKV 格式目前只支持 Android/iOS/macOS/visionOS 上的錄製和 Windows/macOS 上的回放,傳統 EIF 格式無此限制。

EIF 錄製和回放

EasyAR 提供了錄製和回放的一整套機制,主要通過以下組件控制:

  • InputFrameRecorder / InputFramePlayer

    • 用途

      對應於原始 EIF 格式的錄製和回放組件。

    • 特點

      錄製過程中,所有傳入的輸入幀都會被序列化保存,包括圖像、參數、跟蹤狀態等。

  • VideoInputFrameRecorder / VideoInputFramePlayer

    • 用途

      對應於 EIF MKV 格式的錄製和回放組件。

    • 特點

      錄製時支持更多傳感器數據流(如陀螺儀、加速度計、定位數據等),並將其一起封裝入 EIF MKV 文件。播放端可選擇輸出這些數據,方便在 PC 端完整模擬錄製時的各種輸入。

使用 EIF 模擬運行的原理和可達到的效果

將錄製好的 EIF 文件作爲輸入數據源,相當於把物理攝像頭及其相關傳感器在運行時的完整數據流“重播”給 AR 引擎。通過模擬輸入幀序列:

  • AR 引擎認爲它仍然在獲取物理攝像頭的數據

    回放輸出的每一幀都具有原始時間戳、相機參數和跟蹤狀態,驅動算法像運行實時數據一樣處理這些幀。

  • 可以在非設備環境(如 PC 或 Unity 編輯器)復現真實運行時行爲

    這樣你無需實機即可調試視覺跟蹤、空間地圖等功能,可以在 Windows/Mac 上模擬運行 Mega 等功能。

使用 EIF 模擬運行可達到的效果:

  • 重現真實的數據流轉過程 即便在沒有攝像頭的情況下,也可以像真實運行一樣驅動 AR 功能,如平面圖像跟蹤、空間定位、稠密地圖生成等。

  • 便於開發調試與診斷 錄製的 EIF 文件可用於分析跟蹤失敗原因、驗證 AR 算法在特定輸入上的行爲或性能波動。

  • 跨平臺回放 在不同平臺之間傳輸 EIF 文件,在 PC 上覆現手機上錄製的 AR Session 行爲,無需設備即可調試。

後續步驟

平臺專用指南

錄製 EIF 文件並用於模擬運行與平臺緊密相關。請根據您的目標平臺,參考以下指南進行開發: