Over the last couple of years, we used or tested almost every Unity video player out there and even built our own codebase for some of them. Since we need a very specific feature set for VR headsets and mobile devices, we use various video players in our Headjack CMS. All of these players are built-in into our Cloud Build solution and Headjack Link.
Let me start with our requirements for the Headjack CMS.
- Video Player should be hardware accelerated and capable of playing videos over 4K.
- There must be support for a format of Ambisonic/Spatial Audio.
- HLS streaming video must be supported
- Preferably free or open license to deliver to our clients if they want to do custom development in Unity
Exoplayer + Custom support for TBE
This is the most widely used video player we use for all of our Android platforms. Since almost all stand-alone VR headsets run a version of Android, this is the player we have been using for multiple years now, and since it is open-source, we even built on top of it to make spatial audio work.
Pros
- Open Source
- Supports resolutions over 4K
- HLS streaming supported
- Ambisonic audio support TBE and AmbiX for HLS
- Available for any Unity Developer
Cons
- No .MKV support
- Only Android
Unity Video Player
We use this video player for all the videos we download from the Headjack CMS for both the Windows and The iOS Platform. Unity is finally taking video seriously in their latest releases, and therefore, released their available solution, which is available for all Unity Developers. However, the biggest drawback is the lack of support for HLS streams, which renders it useless for many mobile apps that rely more heavily on streaming video.
Pros
- Available for any Unity Developer
- Multi-Platform
- Easy to integrate
Cons
- No support for HLS
AVPRO
This video player from Renderheads has been our goto video player for many years. And before the Unity Video player came available, we used it for all of our platforms apart from Android. This video player is maintained and updated regularly, but this is something you might expect for paid solutions. We now only use it for HLS streaming for our Windows and iOS platforms since the Unity player doesn’t support that yet.
Pros
- Multi-Platform
- Supports resolutions over 4K
- HLS streaming supported
- Ambisonic audio support TBE
- Actively maintained and supported
Cons
- Paid solution
How are the above video players used in Headjack Apps?
When you build with our cloud build solutions, this is how the video players are configured for your Headjack App
- Exoplayer: All Android platforms both downloaded content and HLS
- Unity Video Player: All Windows and iOS platforms for downloaded content only
- AVPRO: All Windows and iOS platforms for HLS streams only
For a detailed description of how to work with these video players for your develpment project or custom Headjack Template, please check out the following resources.