我想我在这里找到了我面对的问题.当我下载360视频时,它们看起来像这样的普通视频文件:
但是要使VR View正常工作,视频需要像这样拆分:
有什么方法可以将下载的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);
有可能是周围的命名有些混乱Options
和DisplayMode
.在Options
仅用于由玩家来确定源视频是否具有一个透视或两个.在DisplayMode
使用由玩家来决定如何显示视频.您可以使用立体拍摄的单视镜头视频,每只眼睛都可以看到相同的视角.同样地,您可以通过单眼显示立体拍摄的视频,只是视口只显示一只眼睛的视角而另一种视角将被忽略.
我希望能够解决问题.如果您仍然无法播放视频,请与我们联系.
我下载了您链接到的视频,并且能够使用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);
有可能是周围的命名有些混乱Options
和DisplayMode
.在Options
仅用于由玩家来确定源视频是否具有一个透视或两个.在DisplayMode
使用由玩家来决定如何显示视频.您可以使用立体拍摄的单视镜头视频,每只眼睛都可以看到相同的视角.同样地,您可以通过单眼显示立体拍摄的视频,只是视口只显示一只眼睛的视角而另一种视角将被忽略.
我希望能够解决问题.如果您仍然无法播放视频,请与我们联系.