使用EasyMovieTexture在VR中播放全景视频
近期项目需求,用到了EasyMovieTexture插件,使用其播放全景视频,并在大朋VR眼镜中进行显示。
由于前期没有调研清楚,没有向大朋官方索要大朋E3的SDK,直接选用了EasyMovieTexture插件进行播放。使用该插件也感受到了其中了利弊。
优点:插件内部本质是对ffmpeg进行了封装,满足一般视频播放的一些功能,加载,播放,暂停,停止等功能,调用的时候直接外部调用下面截图中的方法即可满足一般需求。使用比较方便。
何为ffmpeg及入门缺点:由于没看到大朋SDK中对视频播放的一些优化,这里只说一下项目中使用该插件的缺点,在播放全景视频的时候画面会闪,而且清晰度也会受影响,没有用大朋助手平台播放视频清晰。
虽然后期美工在视频输出设置上也做了一些改进,清晰度也提高,画面闪的也不太厉害,但仍有这个插件播放的影响。
下面说说这个使用该插件在大朋E3基础版头盔中播放的方法:
1.前期准备
VR眼镜按照操作说明进行连接,安装大朋助手,同时在大朋助手设备连接界面可以看到眼镜连接是否检测到
在Unity中导入EasyMovieTexture插件
- Unity中导入SteamVR Plugin插件,由于大朋眼镜兼容的steamVR插件,所以使用SteamVR来支持大朋硬件
- 接下来设置SteamVR,将眼镜放在地上,启动SteamVR,点击左上角的倒三角运行房间设置,选择站立模式
(此处注意:其中有一个高度设置,默认是0cm,如果眼镜位置高出地面很多,就需要估算眼镜大概的高度并在此处填写完成房间设置(因为项目中运行的时候需要眼镜离地面差不多170cm),否则看到的视频中会有一个湖蓝色的线圈在眼前,这就是房间模式高度没有设置好)
2.编辑界面
- 在插件中的Scene文件夹中找到Demo_sphere场景
将Hierarchy窗口中的sphere拖到Assets文件夹下做成预制体,使用这个球体因为它对于全景视频播放的一些设置已经做好
在Unity中新建场景Scene1
将刚才Assets文件夹下的sphere拖入Scene1的Hierarchy窗口中,球体的默认存放位置就是(0,0,0)
在SteamVR文件夹中的Prefabs中找到[Camerig]预制体拖入Scene1的Hierarchy窗口中,预制体的默认位置就是(0,0,0)
- 把做好的全景视频(mp4格式)导入到Assets文件夹中的StreamingAssets文件夹中,因为插件加载资源默认是从该文件夹中进行加载
3.视频播放
接下来是代码修改,这里只在Unity编辑界面进行修改就可以实现视频的播放
点击Hierarchy窗口中的sphere,在右边Inspector窗口看到有Media Player Ctr脚本,在 Str File Name后面写上全景视频名称.mp4,下面勾选B Loop,B Auto Play
保存场景运行,在眼镜连接正常的情况下即可在眼镜中自动循环播放全景视频
音频会在运行的时候自动添加进去
4.插件其他功能使用
插件中的Scene文件夹展示了一些常见的播放方式,在Image,立方体,球体,全屏,3D播放模式,都可以在文件夹中点击进行测试
如果需要视频其他的一些功能,可以在其他脚本中通过MediaPlayerCtrl类对象调用优点下面截图中的方法实现这些功能,还可以通过这些方法结合UI实现一些其他的功能
总结
总体来说该插件封装的还比较好,使用起来以及拓展都比较方便。同事建议如果确定了使用哪个VR眼镜进行播放视频,最好还是先研究研究它自带的SDK,因为自带的对它本身的设备优化比较好