Cómo obtener el video 360 VR en el formato correcto para Android VR View

Creo que he descubierto el problema que estoy enfrentando con mi pregunta original aquí . Cuando hice el download de los videos 360 se ven como un archivo de vídeo normal como este:

Video Normal

Pero para que el VR View funcione correctamente, el video necesita dividirse así:

VR Video

¿Hay alguna manera de convertir los 360 vídeos descargados en el formato VR (doble pantalla) o puedo programar mi aplicación para que acepte el archivo de 360 ​​mp4 y la pantalla sin demasiado zoom en ciertas áreas en el video?

Extracto de mi archivo xml:

<com.google.vr.sdk.widgets.video.VrVideoView android:id="@id/video_view" android:layout_width="match_parent" android:layout_height="250dip" android:scrollbars="null" /> 

VrVideoView el VrVideoView al que VrVideoView y pude conseguir que funcionara correctamente con el VrVideoView en los modos regular y de gafas. El video al que se conectó no es un video estereoscópico, sino un video monoscópico.

Para la claridad de esta respuesta, explicaré brevemente los dos tipos de videos VR compatibles con el VR SDK de Google: videos monoscópicos y estereoscópicos. Con monoscopia, el video fue filmado con una sola cámara y cuando se ve en un jugador normal, se ve como la imagen de arriba en su pregunta, con todas las distorsiones. Con la estereoscopía, el video fue filmado usando dos cámaras y dependiendo del formato estereoscópico (hay arriba / abajo y izquierda / derecha), se verá como la imagen inferior en su pregunta cuando se ve con un jugador normal y también se verá distorsionado. El reproductor VR de Google sólo admite la versión superior / inferior del formato estereoscópico.

Si el vídeo que está intentando reproducir es un video 360º monoscópico (como es el caso con el vídeo enlazado), entonces puede reproducirlo usando el VR SDK de la siguiente manera:

 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(); 

Ahora, si está reproduciendo un video de 360º en formato superior / inferior estereoscópico, puede reproducirlo de la misma manera simplemente cambiando el tipo de entrada del video:

 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(); 

Ahora, es probable que desee reproducir este video con gafas. En este caso, simplemente puede ajustar el modo de visualización del reproductor VR. El modo incrustado es el pequeño reproductor regular que se ajusta a tu interfaz de usuario y actúa como un pequeño visor de un solo ojo en el video 360, con las distorsiones corregidas. El modo monoscopio de pantalla completa es similar a incrustado en que es la misma perspectiva de un solo ojo, pero en su lugar toda la pantalla del dispositivo se utiliza como la ventana de visualización. La opción estéreo de pantalla completa dividirá el video en dos imágenes, una para cada ojo, y se podrá ver con las gafas VR. Vea a continuación el código para hacer esto (nota: este código se puede llamar en cualquier momento después de que se construya el VrVideoView y se ajustará en consecuencia):

 // 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); 

Puede haber cierta confusión en torno a la denominación de las Options y el DisplayMode . Las Options son simplemente utilizadas por el jugador para determinar si el video fuente tiene una perspectiva o dos. El DisplayMode es utilizado por el reproductor para determinar cómo mostrar ese video. Usted puede tener un video monoscopicamente rodado que se muestra estereoscópicamente, sólo tendrá cada ojo que ve la misma perspectiva. Del mismo modo, usted puede tener un video de disparo estereoscópico se muestra monoscópicamente, es sólo que la ventana de visualización sólo se muestra la perspectiva de un ojo y la otra perspectiva será ignorada.

Espero que eso aclare las cosas. Avísame si todavía tienes problemas para reproducir el video.

  • El usuario se toca rápidamente en MediaController. El error sólo ocurre en Nexus 4.
  • Androids MediaPlayer reproduce video cada dos veces que la actividad entra
  • Tableta Android con vídeo incorporado pierde video en rotación
  • Android: videoview in dialogfragment
  • Stream URL RTSP utilizando VideoView en android
  • El botón de retroceso de Android no funciona mientras se reproduce vídeo en VideoView
  • Reproducir video mediante videoview en Listview
  • Cómo mostrar un video desde una URL
  • Android obtener captura de pantalla de videoview actual
  • Android VideoView cómo escalar como tipo de escala ImageView fitXY?
  • Cómo capturar el error "No se puede reproducir este video" en VideoView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.