Virtual Reality (VR) is a hot topic right now and we believe it will begin to have a massive impact on the video industry in the coming months. Indeed, our CEO, recently wrote that although some of the glitz has come off the VR industry, this means it is one step closer to a normal development curve. He believes that around 10% of the target market will have a VR device by 2019 – 2020.
At Accedo, we have put a great deal of research and development resources into Virtual Reality, which has led to a number of exciting announcements, with more to come. However, VR is not without its own set of very unique technical challenges.
When it comes to setting a technical architecture for VR development, there are a number of tools and frameworks that support most major VR platforms. However, the problem with these is that they are mostly games engines. This of course stands to reason as initial VR adoption has been focused on gaming, with much less attention on video experiences.
The challenge with this is that gaming has very different needs to video delivery. Certain fundamentals for video, such as video playback functionality, may be an after-thought in a gaming environment. With a lot of effort, these tools and frameworks can be used to create a VR video experience; however the user experience will likely not be as good as it should be.
For a video experience, you will need a video player capable of running the right video formats, in stereoscopic 360° and with enough performance on mobile devices to be able to provide at least 4K video to the user, and good content protection on top of that. Finding the right player for your specific deployment may not always be as easy as it seems.
Ensuring a good and consistent performance is a huge challenge when dealing with VR. In a mobile application, you can hide or get away with maybe a stutter or a lower frame rate (sub 60 frames per second). However in VR, the user will simply not accept any stutters and the frame rate needs to be a consistent 60 frames per second, at least.
Not only that, the way in which VR is currently handled by devices is very taxing on the hardware. If the application makes too many performance demands on the hardware, that can actually cause the system to overheat, which in turn will reduce the overall performance as the system tries to cool down.
The User Interface is all-too-often an after-thought, but it is arguably one of the most important aspects of any video service. If the user cannot easily and naturally interact with the service and discover the content they want, they will very quickly lose patience and interest.
However, best practices and the typical way in which you can handle the User Interface in a 2D environment very often doesn’t translate to a 3D environment where the user has the freedom to look anywhere, and in some platforms, move anywhere. It is also about the user input. Although VR devices have recently started to align on what a VR controller is, input fragmentation is still an issue that needs to be taken into consideration both for designing a VR UX and for implementing a cross platform application.
In reality you will probably need to support a big variety of controllers, such as game console controllers, VR free space controllers such as Oculus Touch and the HTC Vive, fixed space controllers such as Google Daydream, the touch pad on GearVR, as well as gaze cursor interactions needed for Cardboard experiences.
There are a number of key considerations when it comes to the user experience, such as how do you give the user meaningful content without over-cluttering the space or leaving huge empty voids. How do you minimise excessive movement in navigating the UI to keep your users from getting motion/VR sickness? Depth and animation also play a role in your UI, along with a whole slew of other factors.
When it comes to VR deployment, there are so many factors that dictate what the best tech stack is. Streaming formats, live vs. on-demand content, monoscopic vs. stereoscopic video, UX design and platform reach are only some of the things we need to take into consideration when setting up the architecture. Therefore, at Accedo, we see the importance of evaluating each VR deployment individually. Thanks to partners such as Ozo, we are able to leverage proven cross-platform video player SDKs for VR to help us build and deploy quality user experiences for each of those cases.