使用EasyMovieTexture在VR中播放全景视频

近期项目需求,用到了EasyMovieTexture插件,使用其播放全景视频,并在大朋VR眼镜中进行显示。
由于前期没有调研清楚,没有向大朋官方索要大朋E3的SDK,直接选用了EasyMovieTexture插件进行播放。使用该插件也感受到了其中了利弊。

  • 优点:插件内部本质是对ffmpeg进行了封装,满足一般视频播放的一些功能,加载,播放,暂停,停止等功能,调用的时候直接外部调用下面截图中的方法即可满足一般需求。使用比较方便。
    何为ffmpeg及入门
    EasyMovieTexture插件中调用的方法
    EasyMovieTexture插件中调用的方法

  • 缺点:由于没看到大朋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,因为自带的对它本身的设备优化比较好

猜你喜欢

转载自blog.csdn.net/weixin_37608784/article/details/78958454