同樣都是 .mp4 的影像檔,使用 Windows 的媒體播放程式可以播放,但是匯入到 Unity 裡,卻有的可以播放,有的卻不能用,這種情況通常只會發生在 Windows 的 Unity,而如果把相同的專案放到 Mac 電腦的 Unity 裡面就會都能夠正常使用,
而在 Unity 5.6 的 Windows 版裡,Concole 視窗應該會獲得如下的錯誤訊息:
WindowsVideoMedia error 0x00d5212 while reading [影像檔的路徑和檔名]
Context: Setting media type for first video stream
Error details: No Suitable transform was found to encode or decode the content.
Track types:
audio Track, type:
看起來似乎是影像編碼/解碼上的問題,可是此段訊息也使人相當困惑,這究竟是怎麼回事呢?
從官方論壇裡,可以找到一篇討論主題「WindowsVideoMedia errors when importing monoscopic and stereoscopic 360 video files」,許多人都遇到相同的問題,其中官方人員做出了回應,原來 Unity 在 Microsoft 平台上使用 Media Foundation 來解碼 H.264 影像,而在 Windows 7 上,Media Foundation 無法解碼解析度在 1920x1088 以上的影像,更高版本 Windows 的限制則是 4096x2304。
既然知道問題可能來自影像解析度,那麼只要能夠改變影像解析度,再重新匯入到 Unity 中,應該就能正常使用了。
如果,你不曉得如何改變影像檔案解析度,在此推薦使用 MiroVideoConverter 這個軟體,免費、開源、跨平台,而且簡單易用,在轉換影像或聲音檔案時非常好用。
取得 Miro Video Converter
- 開啟 Miro Video Converter 之後,將要處理的檔案拖拉進去。
- 點擊右下方的齒輪圖示按鈕來開啟設定面板。
- 勾選 Custom Size,就可以在其下方的欄位輸入影像想要轉換的目標寬度(Width)和高度(Height)。
- 再次點擊齒輪按鈕來關閉設置面板,可以發現到視窗下方按鈕變成綠色的 Convert to Same Format 按鈕。
- 點擊 Convert to Same Format 按鈕之後,該按鈕會變成紅色,可隨時停止處理,同時可以看到影像檔的檔名下方出現處理進度條和完成百分比。
- 轉檔結束後,在影像檔名下方點擊 Show File,即可找到處理好的檔案。而視窗下方會變成 Clear and Start Over 按鈕,點擊此按鈕會清除掉所有要轉換檔案的清單。
經過 Miro Video Converter 調整過大小的影像檔,重新匯入到 Unity 中,應該就能正常使用了。