Hi! and welcome back to part 3 of the Headjack Crash Course. Now we will have a closer look at Headjack XR video cloud transcoding and see how it can help you to make your video available for a variety of headsets quickly.
When we ran our production studio Purple Pill a couple of years back, we always ran into the same issue with rendering. Sometimes it took ages to get just a single render to finish, let alone if you needed multiple renders with different encoding settings that were all platform-specific. On top of that, most video editing software doesn’t support streaming formats, so you also need a separate transcoder for that. That is why we decided to build one definitive solution that would fix all these issues for us and reduce the risk of failed renders to a minimum without the need for command line rendering tools or expensive on-site render farms.
How does XR Video Cloud Transcoding work?
We have made the process of transcoding as simple as we possibly could to mitigate any issues related to misconfigured transcoding settings. The only two important things at this point are that you select the correct video settings that match your video, so our video player knows how to playback the video (360,180 stereoscopic, etc.); you essentially need to set the correct metadata for your video. Next is to tell the CMS for which devices you want the video to be available and if it needs to be pushed as a download only, streaming only, or both.
Now Let’s get back to the app I created in the previous lesson; this app needs to function on both Oculus Quest and iPhone, and the video should be available as both a download and a streaming option. Now, if we open the first project and add a new 360 video, the following window will open.
In the case of this video which is a 360 stereoscopic video, I will set the video playback settings to 360. Since the video has a top-bottom stereoscopic layout, I also select that. Now let’s head over to the Device Settings and select VR, Select Oculus Quest, I want it to be available as a download and streaming format in my app, so I choose that, and I want the download quality as high as possible for this platform, so I also choose High-Quality Transcode. The green checker marks indicate that I have set everything correctly for the Quest2 platform and can move over to mobile to set up for iPhone. I am selecting the same settings for the iPhone, so Download and Streaming and a High Quality transcode as my download quality for this app.
Now let’s click Save and Transcode to start the actual transcode of the video for these platforms. And as you can see here in the project details, the videos are transcoding, and we can watch them in Headjack Link when Headjack Cloud Transcode is finished transcoding for these platforms. You can always check the progress of the transcodes on the media details page if you navigate away from the app page.
How To Get The Best Video Quality out of your original video file
Now that we have a basic understanding of how the cloud video transcoder works let’s look at how to get the best result. Since you are transcoding different videos from a single master, it’s essential that the master video file is of excellent quality to get a decent result after transcoding. The Headjack Cloud Transcoder and App Video Player works for the following video formats
- Flat, standard flat video formats like 16×9 or 4×3 in both mono or 3D stereo
- 360, mono or stereo equirectangular 360 videos
- 180, mono or stereo 180 videos
- Other mono or stereo videos with custom FOV
First, ensure the master video file is encoded in one of the following containers to get accepted by the Headjack Platform.
Video: Mp4 (H264/H265), M4V, MOV, AVI, WEBM, MKV(with no spatial audio)
Secondly, make sure the video has more than enough bitrate to get a good result. We recommend using at least a 100mbit if you are using h264 or 60mbit when using h265. Obviously, the higher the bitrate of your video is, the better the result, especially when using 60fps or 8K footage as your master.
If you want to know more about what resolution we transcode to for all these different devices, read these knowledge base articles, where we go into more detail about the exact resolutions we use in each headset or mobile device.
Skip XR Video Cloud Transcoding Entirely
Suppose you want to take complete control over the image quality of your video. In that case, it’s also possible to bypass the cloud transcoder entirely and use the initially uploaded video as the video that is used for distribution. It is also possible to use the original upload for a specific platform and a cloud transcoder to create the videos for another platform. If you choose to bypass the cloud transcoder, you are responsible for video playback since we don’t touch your video at all, and we deliver your video as is to your device for final distribution. Obviously, we can’t guarantee proper playback on all devices if you use this method.
If you choose to stream as an option for distributing your video, Headjack will always transcode your master video since we need to create an HLS playlist for streaming to work properly under all network conditions.
Let’s look at the second project in my app to bypass the XR video cloud transcoder. When I open up the video settings, I see that this 360 stereo video is only available as a streaming format for both platforms. I know I have encoded it in a format and resolution that the Quest2 can play, but I am not sure about the iPhone. So for Quest2, I will select the Use Original Video Option since I don’t want to use cloud transcode, and for mobile, I choose the High-Quality Transcoding option. Hit Save and transcode; wait for the transcode to finish for mobile, and after restarting your app, your videos should be there for playback.
Enable new platforms for an existing video
It is also possible that I have created a project that has been distributed to Oculus Rift on PC, but now I would also like to use it for distribution in this app for iPhone and Quest2. In that case, I need to enable both platforms for this video in the video settings. This time I will use the media details page to enable both Quest2 and iPhone as additional platforms for my video.
To do this, navigate to media and find your video file. Since this video was initially uploaded as an 8K video, I know I have enough resolution and bitrate to do another transcode for Quest 2 and iPhone, which are maxing out at 5.7K and 4K, respectively. Under the device settings, I see that this video is currently only available for Oculus Rift on PC. Now, I will also enable it for Quest 2 and iPhone in both downloading and streaming. And since I know both Quest2 and iPhone cannot play back an 8K video, I will let them transcode to make sure they play back on both devices.
Now, if we went back to the app page and opened up the third project containing the video we just modified. I can see that the video is transcoding for both Quest 2 and iPhone at the moment, and once it’s done, I can restart the apps on both devices, and also, this video is ready for playback.
So now you know how our XR video transcoding pipeline works, it’s time to look closely at the Headjack Essential Templates in our next lesson.