Search Unity

Can I use OVROverlay to get better 360 video performance?

Discussion in 'AR/VR (XR) Discussion' started by drugges, Apr 4, 2019.

  1. drugges

    drugges

    Joined:
    Dec 28, 2018
    Posts:
    42
    Hello, I am developing an Oculus GO app in Unity that shows a 360 video player. So far I have been using a VideoPlayer that renders to a RenderTexture and a sphere with the Skybox/Panoramic shader that uses the same RenderTexture. It works great for most videos. But some videos with a lot of motion "flickers".
    I have a video of a skier going down a hill and every time he passes objects close to the camera the object appears twice.
    I took a photo of one of the lenses in the GO (see attached image).

    As you can see you can clearly see two sticks where it should only be one. And when you actually look into the glasses the effect is even more obvious. I have tested with a 4096x2048 video. But it doesn't seem to matter if I use higher or lower resolution of the videos. I think it is more a limit in the way I render the video to the sphere.

    Now to the question: So I started reading about the OVROverlay today and when I read the documentation it sounded like this could be used to render videos to a sphere with better performance. I tried to setup a scene with an OVROverlay and a video player but I couldn't get it to work in the Oculus GO. I used the SampleFramework 180 degrees video player as a source. But I couldn't get that sample code to run on my GO at all.

    Has anyone used an OVROverlay to render 360 videos?
     

    Attached Files:

  2. jrosenquist

    jrosenquist

    Joined:
    Jan 16, 2018
    Posts:
    1
    Did you make any headway with this? We're looking at using OVROverlay for a similar purpose. I got 180 video working from the SampleFramework following these steps.
     
  3. blanx

    blanx

    Joined:
    Feb 26, 2016
    Posts:
    73
    I am also struggling with this. We have big troubles getting video playback without any frame drops.
    Most times we work with AVPro Video, but it is the same with the unity video player and now also with the video playback sample from Oculus.

    I followed this tutorial on how to set up for OVROverlay with external surface, but the frame drops are still there.

    Playing the same videos with Oculus Gallery runs perfect without any stuttering.
     
  4. drugges

    drugges

    Joined:
    Dec 28, 2018
    Posts:
    42
    I have managed to play videos using Render Texture and Overlay but the quality is not that much better. I think the picture looks a bit better. It is easier to read text etc. But we still experience stuttering. My guess is that the bottleneck is the whole RenderTexture process. I will be working with this now and I will post any updates here.
     
  5. blanx

    blanx

    Joined:
    Feb 26, 2016
    Posts:
    73
    Got it working now too and after some testing I have the feeling that using 72Hz display speed in the oculus settings makes it slightly better but still a lot of room for improvement.
     
  6. drugges

    drugges

    Joined:
    Dec 28, 2018
    Posts:
    42
    Nice work! I have tried 72Hz myself but I did not get any improvements. I think my video file was ”too heavy”. I have tried different compressions but I havn’t found any real winner yet.
     
  7. RobertCoomber

    RobertCoomber

    Joined:
    Mar 25, 2017
    Posts:
    15
    I've go the demo 180 video scene working as well. Now I am trying my own stereo over/under 360 video and I am getting some stereo separation issues. I know it is in stereo but one eye's video rotation is off by a few degrees. The perceived effect is horrible double vision. I am working to figure out why 180 left/right stereo is working but not 360 over under stereo. I am not noticing any stuttering of videos on my end. I will post any progress I make!

    Edit: I've figured out a fix to the stereo separation issue. In MoviePlayerSample.cs line:99 sourceRight = new Rect(0, 0.5f, 1.0f, 0.5f); needs to be changed to sourceRight = new Rect(0, 0f, 1.0f, 0.5f);
     
    Last edited: Dec 20, 2019