8

我刚刚下载了 Google Cardboard SDK 以实现统一。我很好,能够创建 VR 项目。设置很好,一切正常。

我是 VR 应用程序的菜鸟。刚刚进入 VR 应用程序。

我计划为安卓创建自己的支持 VR 的视频播放器,就像默认的 Google Cardboard Youtube 播放器一样。

任何人都可以建议我一个链接或者可以指导我开发这个应用程序。

4

5 回答 5

11

Scott Driscoll 的回答完全有效。我在让 Easy Movie Texture Unity 插件为我工作时遇到了一些问题,但最终解决了这个问题,它完美地工作。我现在在我的 iPhone 6 上的球体内部以纹理的形式运行 360 度视频。我不得不说,我认为这不会发生。

对于在 Mac 上工作,这是我所做的:

  1. 从 Unity Asset Store 下载 Easy Movie Texture 插件
  2. 从 Assets/EasyMovieTexture/Scene 打开 Demo Sphere 演示场景
  3. 为您的项目创建一个新的(空)预制件,然后将 Sphere GameObject 从 Demo Sphere 场景拖到预制件上。
  4. 重新打开您的 Cardboard 场景并将新的 videosphere 预制件拖到您的层次结构中。
  5. 在 Quicktime 中打开您的源 360 度视频
  6. 文件 -> 导出 -> 720p
  7. 将文件扩展名从“.mov”更改为“.mp4”
  8. 将新的 mp4 文件拖到项目 Assets/Streaming Assets 目录中。注意:不要通过菜单系统导入,因为这会强制 Unity 转换为 OGG。
  9. 在 videosphere GameObject 的“Media Player Ctrl”脚本组件上,找到“Str_File_Name”字段并提供完整的文件名。确保包含扩展名作为字符串“mymovie.mp4”的一部分。

很确定这就是一切。希望它可以帮助其他人解决这个问题。谢谢斯科特·德里斯科尔!

最后一点,您只能在手机上查看视频,而不是在编辑器中预览。如果它不以这种方式工作会更好,但实际上一旦解决了最初的分辨率和位置问题,我真的不需要每次在编辑器中运行场景时都查看视频。

于 2015-09-08T23:47:59.837 回答
8

以下是我们如何做到这一点的主要步骤:

  1. 添加一个球体,该球体具有 equirectangular UV 贴图和相机周围的朝内法线。
  2. 购买插件以在该球体的纹理上播放电影。我推荐Easy Movie Texture
  3. 使用与平台兼容的 mp4s 或 ogg vorbis 文件。这取决于手机和操作系统。

完整详情:http: //immersivetechblog.foundry45.com/2015/07/31/implementing-360-video-in-unity-for-gear-vr-and-cardboard/

于 2015-09-01T21:45:55.527 回答
3

我看到了上面的答案,但所有这些都需要 Easy Movie Texture Unity 插件或编写自己的方式。还有另一个简单的解决方案,它不需要您购买该资产或编写自己的方式.. Oculus 提供了一个已经构建的免费示例框架,您可以轻松使用它。下面的解决方案展示了如何为 Unity 创建照片查看器和视频查看器。

构建您的 360 度 PhotoViewer:

  1. 转到 Blender 并删除所有预先存在的对象(如果有)并制作一个 icosphere 并将细分增加到它看起来更像一个球体的点,如 6 并点击 Generate UVs(这两个选项都可以在创建选项卡下方的设置中找到添加到球体)然后去编辑并选择翻转法线,这样你就可以看到里面向外而不是外面向内并保存它。
  2. 将 icosphere 保存的文件放入 Unity 中的资产文件夹中。
  3. 下载 GoogleVR SDK 并将 GoogleVR 插件也带入您的资产文件夹。(您可以在此处下载:https ://developers.google.com/vr/unity/ )
  4. 删除默认存在的主摄像头和定向灯。
  5. 将您的 icosphere 资产带入您的项目。
  6. 将 GVR Main 从您的资产文件夹带入您的项目:GoogleVR 插件 -> Legacy -> Prefab -> GVR Main
  7. 拍摄任何全景或 360 度照片并将其放入您的资产文件夹。
  8. 把这张照片放在你的资产文件夹中,把它放在场景中的 icosphere 上方,然后点击播放。您应该能够看到您的 360 度全景照片。

构建您的 360 度 MoviePlayer:

  1. 步骤 1 相同。
  2. 现在转到 Oculus 开发者控制台并下载此文件并将其带到您的资产文件夹中。https://developer3.oculus.com/downloads/game-engines/1.5.0/Oculus_Sample_Framework_for_Unity_5_Project/
  3. 将您在上面下载的这个文件带到您的资产文件夹中。
  4. 在您的 assetsFolder 中找到 MoviePlayer,将其带入您的项目。
  5. 将您下载的 icosphere 也放入您的资产文件夹并稍微缩放它,以便您可以正确查看。
  6. 从项目中复制MovieSurface组件中的MoviePlayer示例脚本和Audio Source,添加到场景中的球体组件中,同时去掉球体组件中的动画师。
  7. 将在 MovieSurface 的 Mesh Renderer 下的 Materials 中找到的 Movie Player 材质添加到您的球体顶部。
  8. 现在形成的这个球体是您的 360 度电影播放器​​,因此将其作为资产存储在资产文件夹中。
  9. 创建一个新场景,删除定向光并将您保存的 icosphere 资产带入该场景并将主摄像机移动到中心。
  10. 删除不需要的资源以清理项目中的一些空间,而不是 MoviePlayer、插件和流媒体资源。
  11. 您还必须将所需的 mp4 转换为 ogv 文件,插件才能在 VR 中播放,并将 mp4 和 ogv 文件放入您的流媒体资源文件夹并更改 MovieName 并单击“播放”。您应该能够看到您的 360 度视频正在播放。

*要在您的设备中播放它,只需转到构建设置并选择所需的平台并删除所有场景,然后添加打开场景并单击播放器设置下的其他设置中支持的虚拟现实。要在您的 android 手机上播放它,您需要像上面一样下载 GoogleVR SDK 并将其放入您的资产文件夹并在资产文件夹中找到 GVRViewerMain 并将其放入场景中并取消选中您在上面所做的 Virtual Reality Supported 并构建并在您的设备中运行整个程序(当您在 Unity 中点击播放时,您应该能够在游戏模式中看到视图)。您应该能够以各自的装备观看视频。

  • 还有一个可用的视频教程,但我只能与我的新 StackOverFlow 配置文件共享 2 个链接。
于 2017-01-16T13:58:02.977 回答
1

Unity 无法帮助您,但在 java 中,您可以使用 OpenGL-ES 创建纹理:

private static int GL_TEXTURE_EXTERNAL_OES = 0x8D65;
....
GLES20.glGenTextures(1, textureHandle, 0);
GLES20.glBindTexture(GL_TEXTURE_EXTERNAL_OES, textureHandle[0]);

使用它来创建表面纹理和表面:

SurfaceTexture surfaceTexture = new SurfaceTexture(textureHandle[0]);
Surface surface = new Surface(surfaceTexture);

然后将该表面传递给 android.media.MediaPlayer:

MediaPlayer mediaPlayer = new MediaPlayer(getContext(), uriToMyMediaFile, surface);

将该纹理绑定到场景中的正方形并在每一帧调用它:

surfaceTexture.updateTexImage()

当您调用 mediaPlayer.start() 时,视频将播放;

如果 Unity 允许您编写自己的 java 代码在幕后运行,那么如果您将该纹理绑定到 Unity 的表面,这应该可以工作。

如果您有一个无法使用 mediaPlayer 播放的视频流(例如实时视频聊天等),您也可以将表面与 android.media.MediaCodec 一起使用,但需要进行更多设置工作。

于 2015-05-22T20:42:52.357 回答
1

对于 Unity 5.6 及更高版本,这变得非常简单。

  1. 你只需要一个法线倒置的球体,你可以在网上找到它,或者只是去搅拌机制作一个 IcoSphere 并翻转它的法线,或者你可以使用着色器在法线球体上做同样的事情。在任何一种情况下,都为着色器使用 Unlit 纹理。
  2. 在 Unity 默认的组件中添加一个视频播放器到这个球体。
  3. 将任何 360 度视频添加到此视频播放器。您也可以添加在线链接。它在从 GoogleVR 到 SteamVR 的各种平台上都表现良好。

唯一的缺点是,默认情况下它只播放单视场图像/视频,并且需要进行一些调整才能运行立体图像/视频。

于 2017-07-04T17:19:34.097 回答