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 檔案並用於模擬執行與平台緊密相關。請根據您的目標平台,參考以下指南進行開發: