一、使用場景
上傳到youtube的全景視頻能被正確的識別為360視頻
二、寫入規則
youtube被google收購,所以元數據的寫入規則當然由google定義了,這里有詳細說明:https://github.com/google/spatial-media/blob/master/docs/spherical-video-rfc.md
三、如何寫入
由于寫入規則稍微有點復雜,需要解析mp4的結構,增加BOX層來定義識別全景視頻需要的一些標識和參數,而iOS端AVFoundation框架只能添加一些apple定義的元數據,做不到添加BOX層,所以只能另尋其他方法。
這里是google定義了寫入規則,所以google開源了給視頻寫入全景元數據的腳本,地址:https://github.com/google/spatial-media 。
開源腳本使用python所寫,但是如何讓該腳本在移動APP上使用呢:
1、Android
可以使用第三方框架QPython,有興趣的可以去官網上看看。
2、iOS
可以使用PythonistaKit來運行python腳本,但App打包后PythonistaKit占用內存太大,即使根據作者介紹的減少PythonistaKit占用App內存的方法也要占到大約20M左右,故放棄。
3、跨平臺
感謝VarolOkan把google的開源項目spatial-media移植到c++端,為了跨平臺在iOS和Android上使用,刪除了一些不必要的文件并且添加了一些平臺相關的操作,源碼在這里。