当前位置:  开发笔记 > 编程语言 > 正文

如何以正确的Android VR View格式获取360 VR视频

如何解决《如何以正确的AndroidVRView格式获取360VR视频》经验,为你挑选了1个好方法。

我想我在这里找到了我面对的问题.当我下载360视​​频时,它们看起来像这样的普通视频文件:

普通视频

但是要使VR View正常工作,视频需要像这样拆分:

VR视频

有什么方法可以将下载的360视频转换为VR(双屏)格式,还是可以通过编程方式将我的应用程序设置为接受360 mp4文件并显示,而不会过度放大或缩小视频的某些区域?

从我的xml文件中提取:

 

anthonycr.. 5

我下载了您链接到的视频,并且能够使用VrVideoView常规和护目镜模式正常播放.您链接的视频不是立体视频,而是单视频视频.

为了清楚回答这个问题,我将简要介绍一下Google VR SDK支持的两种VR视频:Monoscopic和Stereoscopic视频.使用monoscopic,视频只用一台摄像机拍摄,在常规播放器中观看时,它看起来像你问题中的顶部图像,带有所有的扭曲.使用立体视频时,视频是使用两个摄像头拍摄的,并且根据立体格式(有顶部/底部和左/右),当使用普通播放器观看时,它看起来就像问题中的底部图像,并且看起来也会变形.Google的VR播放器仅支持立体格式的顶部/底部版本.

如果您尝试播放的视频是单视频360视频(与链接视频一样),则可以使用VR SDK播放,如下所示:

VrVideoView vrVideoView;

// initialize the view here

Options options = new Options();

// This tells the player that the video is a monoscopic 360 video
options.inputType = Options.TYPE_MONO;

// This tells the player that it should play using HLS or progressive video play
// If you are linking to a single video file, use default.
options.inputFormat = Options.FORMAT_DEFAULT;

// Assuming you've downloaded the video...
vrVideoView.loadVideoFromAssets("my-video.mp4", options);
vrVideoView.playVideo();

现在,如果您正在播放立体顶/底格式360视频,那么您可以通过改变视频的输入类型来同样播放它:

VrVideoView vrVideoView;

// initialize the view here

Options options = new Options();

// This tells the player that the video is a stereoscopic top/bottom 360 video
options.inputType = Options.TYPE_STEREO_OVER_UNDER;

// This tells the player that it should play using HLS or progressive video play
// If you are linking to a single video file, use default.
options.inputFormat = Options.FORMAT_DEFAULT;

// Assuming you've downloaded the video...
vrVideoView.loadVideoFromAssets("my-video.mp4", options);
vrVideoView.playVideo();

现在,您可能想要使用护目镜播放此视频.在这种情况下,您只需设置VR播放器的显示模式即可.嵌入式模式是适合您的UI的常规小型播放器,可作为360视频中的小型单眼视口,并且可以纠正失真.全屏单视场模式类似于嵌入式,即同一个单眼视角,而是设备的整个屏幕用作视口.全屏立体声选项将视频分成两个图像,每只眼睛一个,并可通过VR护目镜查看.请参阅下面的代码来执行此操作(注意:此代码可在VrVideoView构造后随时调用,并将相应调整):

// This displays the video as inside the normal bounds for viewing without the VR goggles.
vrVideoView.setDisplayMode(DisplayMode.EMBEDDED);

// If you want to go full-screen without goggles...
vrVideoView.setDisplayMode(DisplayMode.FULLSCREEN_MONO);

// If you want to go full-screen and use goggles...
vrVideoView.setDisplayMode(DisplayMode.FULLSCREEN_STEREO);

有可能是周围的命名有些混乱OptionsDisplayMode.在Options仅用于由玩家来确定源视频是否具有一个透视或两个.在DisplayMode使用由玩家来决定如何显示视频.您可以使用立体拍摄的单视镜头视频,每只眼睛都可以看到相同的视角.同样地,您可以通过单眼显示立体拍摄的视频,只是视口只显示一只眼睛的视角而另一种视角将被忽略.

我希望能够解决问题.如果您仍然无法播放视频,请与我们联系.



1> anthonycr..:

我下载了您链接到的视频,并且能够使用VrVideoView常规和护目镜模式正常播放.您链接的视频不是立体视频,而是单视频视频.

为了清楚回答这个问题,我将简要介绍一下Google VR SDK支持的两种VR视频:Monoscopic和Stereoscopic视频.使用monoscopic,视频只用一台摄像机拍摄,在常规播放器中观看时,它看起来像你问题中的顶部图像,带有所有的扭曲.使用立体视频时,视频是使用两个摄像头拍摄的,并且根据立体格式(有顶部/底部和左/右),当使用普通播放器观看时,它看起来就像问题中的底部图像,并且看起来也会变形.Google的VR播放器仅支持立体格式的顶部/底部版本.

如果您尝试播放的视频是单视频360视频(与链接视频一样),则可以使用VR SDK播放,如下所示:

VrVideoView vrVideoView;

// initialize the view here

Options options = new Options();

// This tells the player that the video is a monoscopic 360 video
options.inputType = Options.TYPE_MONO;

// This tells the player that it should play using HLS or progressive video play
// If you are linking to a single video file, use default.
options.inputFormat = Options.FORMAT_DEFAULT;

// Assuming you've downloaded the video...
vrVideoView.loadVideoFromAssets("my-video.mp4", options);
vrVideoView.playVideo();

现在,如果您正在播放立体顶/底格式360视频,那么您可以通过改变视频的输入类型来同样播放它:

VrVideoView vrVideoView;

// initialize the view here

Options options = new Options();

// This tells the player that the video is a stereoscopic top/bottom 360 video
options.inputType = Options.TYPE_STEREO_OVER_UNDER;

// This tells the player that it should play using HLS or progressive video play
// If you are linking to a single video file, use default.
options.inputFormat = Options.FORMAT_DEFAULT;

// Assuming you've downloaded the video...
vrVideoView.loadVideoFromAssets("my-video.mp4", options);
vrVideoView.playVideo();

现在,您可能想要使用护目镜播放此视频.在这种情况下,您只需设置VR播放器的显示模式即可.嵌入式模式是适合您的UI的常规小型播放器,可作为360视频中的小型单眼视口,并且可以纠正失真.全屏单视场模式类似于嵌入式,即同一个单眼视角,而是设备的整个屏幕用作视口.全屏立体声选项将视频分成两个图像,每只眼睛一个,并可通过VR护目镜查看.请参阅下面的代码来执行此操作(注意:此代码可在VrVideoView构造后随时调用,并将相应调整):

// This displays the video as inside the normal bounds for viewing without the VR goggles.
vrVideoView.setDisplayMode(DisplayMode.EMBEDDED);

// If you want to go full-screen without goggles...
vrVideoView.setDisplayMode(DisplayMode.FULLSCREEN_MONO);

// If you want to go full-screen and use goggles...
vrVideoView.setDisplayMode(DisplayMode.FULLSCREEN_STEREO);

有可能是周围的命名有些混乱OptionsDisplayMode.在Options仅用于由玩家来确定源视频是否具有一个透视或两个.在DisplayMode使用由玩家来决定如何显示视频.您可以使用立体拍摄的单视镜头视频,每只眼睛都可以看到相同的视角.同样地,您可以通过单眼显示立体拍摄的视频,只是视口只显示一只眼睛的视角而另一种视角将被忽略.

我希望能够解决问题.如果您仍然无法播放视频,请与我们联系.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有