Fix VR Playback On Mobile Devices (Tutorial)

We recently have finished working on two large scale 360 animation projects based on medical treatments – both made in 3D for Stereoscopic Virtual Reality. And whilst both of those videos differed visually, they required to be delivered in identical resolution and encoding settings, for consistency purposes.

Originally, we set it up to be 3000×3000 MP4s, with Over and Under Stereoscopic effect. This means, we doubled the image on top and bottom of the screen mimicking left and right eyes. With this effect in place, we achieved a very immersive experience with objects really standing out in 3D space.

Technical difficulties, however, are almost impossible to avoid when working on such large scale projects, especially when they are meant to be played on phones that still have a lot of limitations around the media they can playback.

The problem occurred when the video was meant to be imported into Unity. This is when we found out that it couldn’t play the video; in fact, the file only worked with Oculus Gear VR within the App but when trying to open the same file using default player on the phone, it only played audio.

After numerous forums, articles and discussions, we finally came to the conclusion – phones cannot playback videos that have a higher width resolution than 2160. Seems to be an easy fix – change the resolution and you’re good to go.

Tutorial_01

But it’s not that simple. Taking that video and resizing to the most optimal resolution – 3840×2160 – will create a seam at the back of the video.

Tutorial_02

The best way to deal with it, is by opening the original 3000×3000 video into the 3840×2160 After Effects composition. Then, scale the original video to 128.01% and 72% – .01% is the magic number that closes the gap with the seam. Render the result out, using h.265 codec and voila – you get your Stereoscopic VR video that should work on almost any phone.

Tutorial_03

In addition to the steps above, we have put together a little video guide. You watch it here: