MDRX

Sharing videos from Oculus Quest

June 5, 2020

I was playing Half-Life: Alyx the other night on my Oculus Quest, wirelessly over my home WiFi and streaming from my gaming PC. It was incredible. Here’s what most would consider the state-of-the-art VR title and it was streaming over a wireless connection with no noticeable difference from using a tethering USB-C cable. The video quality was excellent. The tracking latency was minimal. Audio was normal. And to top it off, this wasn’t a native Oculus title! All of this was working through a big pipe of various software that were all miraculously working well together. Big props to the programmers behind Steam VR, all the Oculus plumbing, and the author of Virtual Desktop.

But anyway, I wanted to focus here on the fact that I wanted to share this VR magic with the world and it was a major pain in the ass to do so. If you don’t own an Oculus headset, the screenshot/screencast recording and sharing functionality is fairly limited. You can do either, but without any control over configuration. And your direct sharing options are Facebook and… Facebook. Well, that’s not great.

Since there isn’t much you can do on the headset itself (I didn’t want to start ripping it apart like an Android phone in 2010), I needed to get the videos I recorded onto another computer. My Windows 10 gaming PC was my first pick. A quick Google search led me to a tutorial that explained you simply need to turn off “Developer mode” on the headset and plug it into the PC via USB. It’ll then mount as an external drive and you can navigate a simple directory structure to find the videos.

I played the videos and, surprise, the audio was out of sync! Now, you might expect that I whipped up a custom GStreamer program, given that I just recently wrote a whole article on the subject, but I had a goal to accomplish that I wasn’t keen on turning into a programming exercise. I knew there would be some Windows software out there that could handle a simple audio track shift and possibly a video format conversion.

So I downloaded this tool called Avidemux and it gives you quite a few options to manipulate a video clip. Several Oculus users were in agreement that the audio in recordings is generally off by about -600ms. So I used Avidemux to shift the audio track by that amount. Exporting the video in another format wasn’t straightforward, so I just used an online tool to convert it into a format the iOS would be happy with. There are many of these and they’re easy to find.

Now this last step is the stupidest one that I spend the most time on. You would think it’d be both easy and obvious to just get a file from Windows to an iPhone. Perhaps I was overthinking it and for whatever reason was constraining myself to a web app or wireless solution, when I should have probably just tried to mount the iPhone on Windows via USB. But instead, I first tried Mozilla’s new Firefox Send web app. Kept erroring out on mobile browsers. Then I stumbled upon a neat solution which was to use iOS 13’s new support for SMB and connect to a remote server (my PC). If you turn on sharing “with Everyone” for a Windows folder, you can connect to it from iOS’s Files app (Browsing > … > Connect to Server) by using a URL like smb://ip-address-of-the-pc. The folder will show up under the PC in the locations list.

Once I had the videos in the Files app on my iPhone, sharing was trivial. In my particular case I wanted to share my videos on Instagram, which notoriously only fully works in a native mobile phone app. And I did skip over a total dead-end where I wasted a bunch of time trying to use Chrome dev tool hacks to get the mobile browser version to let me upload a video to no avail.


Mike Lewis

I'm currently a Software Engineering Manager (with a very generalist engineering background across embedded systems, robotics, and Frontend/UI) and I most recently worked at Cruise in the SF Bay Area. Welcome to my blog, where I write about tech, development, having a family, and other interests. You can follow me on X. Or check out my LinkedIn.

© 2024, Mike Lewis