Reprojecting Dual Fisheye Videos to Equirectangular (LG 360)
透過 FFmpeg 與 ExifTool 將 LG 360 雙魚眼影片轉換為等距圓柱投影,精準設定 189 度視角可有效解決影像重疊問題。
- 設定 FFmpeg v360 濾鏡的輸入視角為 189 度,可大幅減少雙魚眼影像縫合時的重疊失真。
- LG 360 實體外殼會遮蔽部分感光範圍,導致影像邊緣裁切,此為無法透過重新編頁修復的硬體限制。
- 轉換後的影片必須透過 ExifTool 注入 XMP-GSpherical 中繼資料,才能在 VLC 等播放器啟動球面模式。
透過 FFmpeg 濾鏡將舊款 LG 360 攝影機產出的雙魚眼影片,精準轉換為涵蓋 189 度視角的等距圓柱投影格式,是確保沉浸式影像在現代播放器正常運作的關鍵技術路徑。這項工作不僅涉及像素的幾何重映射,更需要處理感光元件的物理裁切限制與中繼資料的注入。
LG 360 雙魚眼影片轉換為等距圓柱投影的技術拆解
擷取自舊款 LG 360 攝影機 SD 卡的 MP4 原始影片檔案,預設採用雙魚眼(Dual Fisheye)格式儲存。這種格式將兩顆背對背鏡頭捕捉到的圓形影像,並排壓縮在同一個 16:9 的矩形畫面中。當使用者直接在標準影片播放軟體開啟這些檔案時,只會看到兩個扭曲的圓圈,無法體驗全景效果。
目前主流的沉浸式影音平台與播放器,包含 YouTube VR 與 VLC media player,都要求影片必須採用 Equirectangular(等距圓柱投影,將球面映射至平面的技術)格式。等距圓柱投影的數學原理類似於世界地圖,將球體的經度映射至 X 軸、緯度映射至 Y 軸,形成一張長寬比為 2:1 的全景展開圖。這意味著必須進行幾何重映射(Reprojection),將魚眼圓圈內的像素重新分配到矩形網格上。
利用 FFmpeg(開源多媒體處理框架)內建的 v360 視訊濾鏡,可以建立自動化的轉換工作流程。最基礎的命令列設定為 v360=input=dfisheye:output=equirect,這段指令明確告知處理引擎,輸入源為雙魚眼格式,而期望的輸出結果為等距圓柱投影。然而,單純執行基礎指令並無法解決鏡頭視角重疊造成的視覺瑕疵。
運用 FFmpeg v360 濾鏡修正 189 度視角的重疊問題
定義精確的輸入視角(Field of View, FOV),是避免全景影片在接縫處產生疊影的核心步驟。如果按照直覺,假設每顆鏡頭負責捕捉完美的半球體,並將水平與垂直視角設定為 180 度(:ih_fov=180:iv_fov=180),輸出的影像會在縫合處出現明顯的重複區域。這種重疊現象源自於攝影機為了確保影像能無縫拼接,通常會讓兩顆鏡頭捕捉稍微超過半球的範圍。
經過反覆的參數測試與運算驗證,將輸入視角微調至 189 度(:ih_fov=189:iv_fov=189),能最有效消除接縫處的冗餘影像。這是一個違反直覺的數字,因為根據硬體技術規格,這類全景鏡頭通常標榜具備 200 度的超廣視角。實際上,物理機構與光學設計的交集點,決定了最終可用的有效視角。
採用 189 度的設定值雖然無法做到完美無瑕的像素級對齊,但已能保留絕佳的影像連貫性。捨棄理論上的 200 度規格,轉而尋找實際運算時的甜蜜點,是在處理此類未經原廠軟體優化的原始全景素材時,必須具備的實務除錯思維。
實體外殼遮蔽效應與感光元件邊緣裁切的影像特性
檢視原始雙魚眼影片時,會發現畫面中兩個圓形影像的頂部、底部、左側與右側邊緣,呈現被平整切斷的狀態。理論上,完美的魚眼光學投影應該在感光元件上形成完整的圓形。這種不完整的幾何圖形,揭示了硬體設計上的妥協與物理限制。
造成邊緣裁切的主因,在於攝影機內部的 CMOS 感光元件尺寸不足以涵蓋整個光學投影圈。同時,LG 360 的實體外殼設計也對鏡頭的極端邊緣產生了遮蔽效應(Vignetting),阻擋了部分光線進入感測器。這解釋了為何即便鏡頭具備 200 度的光學潛力,實際可用的影像數據卻無法達到該數值。
面對這類資料缺失,單純透過軟體後製手段難以彌補。曾有嘗試透過重新編頁(Repaging)或是在影片畫布邊緣填充空白像素,試圖補齊被裁切的空隙,但這些操作對最終渲染出的等距圓柱投影影像幾乎沒有產生任何可視化的改善。確認並接受這些硬體層面的物理裁切,是建立穩定轉換流程的前提。
注入 XMP-GSpherical 中繼資料以啟動 VLC 球面播放
成功轉換影片的像素排列,僅完成了全景影片製作流程的一半。FFmpeg 在轉檔過程中,並不會自動寫入讓播放設備辨識球面影片所需的空間中繼資料(Metadata)。缺乏這些隱藏的標記資訊,VLC 或 YouTube 只會將輸出的檔案視為普通的扁平影片,播放出極度扭曲的等距圓柱展開圖。
要讓播放軟體正確啟動 360 度沉浸式渲染模式,必須依賴 ExifTool(強大的中繼資料編輯軟體)來修改 MP4 檔案的標頭資訊。這套工具能直接對封裝檔注入由 Google 制定的 XMP-GSpherical 標準標籤,確保檔案具備跨平台的相容性。
具體的實作指令包含設定三個關鍵屬性:宣告影片為球面格式(Spherical="true")、確認影像已經過拼接處理(Stitched="true"),以及指定投影類型為等距圓柱投影(ProjectionType="equirectangular")。完成這道中繼資料注入程序,檔案才算真正具備了全景影片的互動播放能力。
採用 H.265 重新編碼影片並保留 AAC 5.1 環繞音訊
由於幾何重映射會徹底改變每一個像素的空間位置,影片的視覺串流必須進行全面的重新編碼。LG 360 的原始預設視訊編解碼器為 H.264,但在轉換過程中,不可避免地會造成畫質的二次耗損。為了在檔案大小與影像細節之間取得最佳平衡,建議將視訊編碼器升級至壓縮效率更高的 H.265 / HEVC(高效率視訊編碼格式)。
在 FFmpeg 的編碼參數設定上,指定 -c:v libx265 並搭配 -preset fast 運算速度,能有效控制處理時間。同時,將恆定速率因子(Constant Rate Factor)設定為 28(-crf 28),這是在處理全景高解析度素材時,兼顧視覺品質與儲存空間的務實選擇。
音訊處理策略則相對單純且關鍵。LG 360 採用 AAC 格式記錄 5.1 聲道的空間環繞音效,這對於維持虛擬實境的沉浸感至關重要。因為 AAC 本身已具備良好的壓縮率,強行將其轉換為 Opus 等其他格式不僅徒增運算成本,更可能破壞空間音場的定位。因此,在指令中加入 -c:a copy,直接複製並保留原始音訊串流,是確保影音體驗完整的最佳做法。
處理非標準雙魚眼格式時,軟體參數必須針對硬體物理限制進行微調;準確設定 189 度視角並強制注入 XMP 標籤,是重建 360 度沉浸式體驗的必要工作。