一、使用场景
上传到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上使用,删除了一些不必要的文件并且添加了一些平台相关的操作,源码在这里。