4

Ich glaube, ich habe das Problem mit meiner ursprünglichen Frage here konfrontiert. Wenn ich die 360 ​​Videos heruntergeladen sehen sie aus wie eine normale Video-Datei wie folgt:Wie bekomme ich das 360 VR-Video im richtigen Format für Android VR? View

Normal Video

Aber für die Ansicht VR richtig funktioniert, muss das Video wie folgt aufgeteilt werden:

VR Video

Gibt es eine Möglichkeit, die heruntergeladenen 360-Videos in das VR-Format (Dual-Screen) zu konvertieren oder kann ich meine App programmgesteuert so einstellen, dass die 360 ​​MP4-Datei akzeptiert und angezeigt wird, ohne bestimmte Bereiche des Videos zu vergrößern oder zu verkleinern?

Auszug aus meiner XML-Datei:

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

Antwort

5

heruntergeladen ich das Video, das Sie verbunden und war in der Lage, es zu bekommen richtig die VrVideoView in regulären und Goggle-Modi zu spielen. Das Video, mit dem Sie verbunden sind, ist kein stereoskopisches Video, sondern ein monoskopisches Video.

Für die Klarheit dieser Antwort werde ich kurz die zwei Arten von VR-Videos erklären, die von Google VR SDK unterstützt werden: Monoskopische und stereoskopische Videos. Bei der monoskopischen Aufnahme wurde das Video mit nur einer Kamera aufgenommen und bei der Wiedergabe in einem normalen Player sieht es wie das oberste Bild in Ihrer Frage aus, mit all den Verzerrungen. Bei der stereoskopischen Aufnahme wurde das Video mit zwei Kameras aufgenommen und hängt vom stereoskopischen Format (oben/unten und links/rechts) ab. Es sieht bei normaler Wiedergabe wie das untere Bild in der Frage aus und sieht auch verzerrt aus. Googles VR-Player unterstützt nur die obere/untere Version des stereoskopischen Formats.

Wenn das Video, das Sie ist ein monoskopisches 360 Video (wie es der Fall mit dem verknüpften Video) zu spielen versuchen, dann können Sie es mit dem VR-SDK spielen wie folgt:

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

Nun, wenn Sie sind ein stereoskopisches oben/unten Format 360 Video abgespielt wird, dann kann man es in ähnlicher Weise spielen, indem sie nur den Eingangstyp des Videos zu ändern: Jetzt

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

, sollten Sie dieses Video mit Brille spielen. In diesem Fall können Sie einfach den Anzeigemodus des VR-Players einstellen. Der eingebettete Modus ist der normale kleine Player, der in Ihre Benutzeroberfläche passt und als kleines einäugiges Ansichtsfenster in das 360-Grad-Video mit korrigierten Verzerrungen wirkt. Der monoskopische Fullscreen-Modus ähnelt dem eingebetteten Modus, bei dem es sich um dieselbe einäugige Perspektive handelt. Stattdessen wird jedoch der gesamte Bildschirm des Geräts als Ansichtsfenster verwendet. Die Vollbild-Stereo-Option teilt das Video in zwei Bilder auf, eines für jedes Auge, und kann mit der VR-Brille betrachtet werden. Siehe unten für den Code dieses (Hinweis: dieser Code aufgerufen jederzeit werden kann, nachdem die VrVideoView aufgebaut ist, und es wird entsprechend anpassen): tun

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

Es könnte einige Verwirrung rund um die Benennung des Options und der DisplayMode . Die Options werden einfach vom Player verwendet, um festzustellen, ob das Quellvideo eine oder zwei Perspektiven hat. Die DisplayMode wird vom Player verwendet, um zu bestimmen, wie dieses Video angezeigt wird. Sie können ein monoskopisch geschossenes Video haben, das stereoskopisch dargestellt wird, so dass jedes Auge dieselbe Perspektive hat.Ebenso kann ein stereoskopisch aufgenommenes Video monoskopisch angezeigt werden. Es ist nur so, dass das Ansichtsfenster nur die Perspektive eines Auges anzeigt und die andere Perspektive ignoriert wird.

Ich hoffe, dass die Dinge klären. Lass es mich wissen, wenn du immer noch Schwierigkeiten hast, das Video abzuspielen.

+1

Hast du Gott gesehen? Ich habe. Er heißt Anthonycr auf Stackoverflow. Vielen Dank für Ihre Hilfe hier. Das Problem wurde durch das Festlegen des Eingangstyps auf "MONO" verursacht. Ich habe versucht, monoskopisches Video mit dem Eingangstyp "STEREO_OVER_UNDER" zu sehen. Schätzen Sie auch Ihre Erklärung! – Anish

+0

Gern geschehen! Der Eingabe-Typ war auch für mich problematisch, also bin ich froh, dass ich jemand anderem helfen konnte, es herauszufinden. – anthonycr

Verwandte Themen