How to record videos and stream the content of the Oculus Go
Some days ago, I’ve published on Linkedin a video with the Home of my Oculus Go and lots of people have asked me how I did such a recording. So, I decided to write a post about it and also about how to perform the streaming of your Oculus Go to an external PC. John Carmack has told that at Oculus they are working on a streaming feature, but it is not ready yet (I guess that Mr. Carmack is super-optimizing it), so it’s better that you know how to do the streaming in the meanwhile, so that you can guide other people when you demo the Go to them (because asking “tell me what you’re seeing so that I can help you” is always quite embarrassing).
Vysor
If you asked me what is the best solution to perform the streaming and the recording of an Android device like the Oculus Go, I would answer Vysor. Using Vysor is super-simple:
- Download Vysor from its website;
- Install Vysor on your PC;
- Run it with your Oculus Go connected to the USB;
- Click the “View” button;
- Let Vysor install its service (this only happens on first use);
- Enjoy the streaming of your headset on the screen!
With Vysor you can see the streaming of your device, record the content of the headset, adjust the quality of the resulting video, send inputs to the device using your mouse and all of this even with your Oculus Go connected via Wi-fi, so without the annoying USB cable!
But there is a little problem: to have all these additional features, you have to buy the Pro version (that costs $10/year or $40/lifetime, so it is not even expensive). With the free version, you can only perform a crappy streaming via USB and nothing more. Furthermore, in the free version you have some very annoying non-VR ads that get pushed onto the device screen once in a while (you close them with your mouse in the Vysor streaming window). If you need to do a lot of demos, I advise you to buy Vysor, because it works and it is user-friendly. If you just need an occasional recording or streaming, just use the crappy free streaming or go for a free alternative.
Droid@Screen
Droid@Screen is like a free alternative to Vysor, with worse functionalities. It has been made as a Java application, so to use it, you have to download and configure the Java Runtime Environment. After that, you can go to the Droid@Screen website and download its jar file. After the download, you just execute it with a double click on the file browser to enjoy its features.
Droid@Screen offers you the possibility to:
- see the streaming of the Go on your PC with the zoom of your choice;
- take a screenshot;
- record a video of what happens inside the Go as a big set of consecutive PNGs (so, not as a full video file, I don’t know why).
I have tried it: it is easy to be used and it works. But the program appears quite rough and the streaming in my experience lags a bit too much, even because it streams in a too high quality and there’s no way to set the bitrate manually. If you sometimes need to do a streaming, you can try Droid@Screen to see if it suits your needs. I use it over USB, but I guess that using ADB over Wi-fi, you can use it even wirelessly… but with that super-high quality, I can imagine a framerate like 1 FPS over Wi-fi (something that remembers the performance of my experiments with Vive Focus live preview on Unity…).
Notice that to use this app you need to have ADB installed: see the following paragraph about ADB to have some hints on how to install and configure it.
Embedded video recording functionalities
If you have to record a video, the easiest solution is to use the video recording functionality embedded into the device.
You just need to go to the Home of your Go and then select Sharing -> Record Video to start the recording (may halt your device for some seconds), do your stuff and then return to Home -> Sharing -> Record Video to stop the recording. It is super easy.
The video gets recorded and stored inside the device so that you can access it from the internal Library of your device. If you select Home -> Explore -> Gallery -> Internal Storage, you can play your just recorded video inside your Go. If you want to save your video onto your PC, you have to connect the Go to your PC via USB and then copy the video file (it will be in <VR_HEADSET>\oculus\VideoShots directory) .
I show all the recording process within this video
This functionality is very handy and produces a video that has not all the distortions that you see above, but the problem is that it has a weird square format (it just records the undistorted view from one eye).
Facebook Live Streaming
The problem with all the above solutions is that they don’t record the audio of the experience: only the video is recorded. To record and/or stream audio and video together in an easy way, you can use Facebook live streaming. Just next to the “Record Video” button described above there is the “Live streaming” button, that lets you start a live streaming from your headset to your Facebook account.
You have to simply stream the feed to yourself and then download the video out of facebook after that.
There are some problems, of course: first of all, this solution needs you to have an associated Facebook account; then, the resulting quality is something like 360×360. But I like this solution, because it is very practical. Credits for this epic solution to redditor /u/RaMarcus.
Android Debug Bridge
Some of the solutions described above (Vysor, Droid@Screen) are just visual GUIs for a powerful tool for Android called Android Debug Bridge (its friends can call it ADB). ADB comes with the Android SDK (to be exact, with the Android Platform Tools), so if you plan using it, you have to download and configure it. Then you have to enable the Oculus Go to use developer tools. If you don’t know how to perform these tasks, refer to this article of mine about how to get started with Oculus Go development and read the paragraphs called “How to enable developer mode on Oculus Go” and “Set up the development environment” (but ignore all the stuff regarding Unity). Notice that we are talking about a command-line tool, so if you don’t have too much technical experience, ignore this solution or ask some nerd friend of yours to help you in setting up this stuff.
After you have configured everything, you can use adb commands to record a video or to stream the Go content to your PC. I’ve talked about ADB and ADB options to stream and record videos thoroughly on my article about Vive Focus streaming, so I strongly advise you to read it if you want to have a clear picture of what you can do with ADB and a standalone headset. The only difference between the commands presented in that article and the ones that you need for the Go is that the framerate for the Go should be set as 60 and not as 70/75.
Anyway, if you don’t have time to read that article, I can provide you some quick commands that you can use. To record a video, you can use these three commands via the command line (one at a time, of course)
adb shell screenrecord --size 1920x1080 --bit-rate 12000000 /sdcard/video.mp4 adb pull /sdcard/video.mp4 c:\Users\OculusGoVideo.mp4 adb shell rm /sdcard/video.mp4
The first command will record a full HD video of the Go contents until you press the CTRL+C key combination, for a maximum of 3 minutes length. The second command copies the video from the device to your PC and gives it the name that you choose (in my case c:\Users\OculusGoVideo.mp4) and the third one deletes the temp file on your device.
To stream, instead, you can use VLC video player or Mplayer. This means that you have to have at least one of these two players installed. For the former one, you can type
adb exec-out "while true; do screenrecord --bit-rate=16m --output-format=h264 --time-limit 180 -; done" | "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" --demux h264 --h264-fps=60 --clock-jitter=0 -
while for the latter
adb exec-out "while true; do screenrecord --bit-rate=16m --output-format=h264 --time-limit 180 -; done" | "C:\Program Files\Mplayer\mplayer.exe" -demuxer h264es -fps 60 -fs -
VLC is more famous and user-friendly, but I’ve noticed that Mplayer offers better performances (it has fewer glitches because VLC is more sensitive to errors with timestamps). Notice that of course, I’ve used my personal paths for the video viewers in the above commands and that you should use yours. The streaming quality is good and there is a lag around 1-1.5 seconds between what the user sees and what is mirrored on the screen. You can toy around with the –bit-rate parameter to change the video quality and improve the streaming speed.
Notice that you can use this streaming method also to record videos: you can just perform the streaming and then let VLC save the file, or use a software like OBS to record the content of the VLC application onto a file on your PC . This can let you go further the 3 minute limits of the screenrecord command. I used ADB+VLC+OBS to record this GIF about my Oculus Go:
All the above commands can work via USB and via Wi-fi. To connect ADB over Wi-fi, you have to connect your Go to the USB and then type the following commands:
adb tcpip 5555 adb connect <OCULUS_GO_IP>:5555
And then you can disconnect your device and launch the streaming or the recording with the above commands just using the common Wi-fi connection between the PC and the Go. In this case, I advise you to reduce the bit-rate from 16m to 2m, otherwise, the lag is too high. Wi-fi is cool because this way the user can be free of the USB cable while you guide it.
This was just a fast showcase of adb, for more in-detail instructions, refer to the article about the Focus. Adb is very powerful and is completely free, so why not using it?
Known Issues
Just to clarify some things about the above-proposed solutions:
- Perform a recording or a streaming may hurt the performances of your headset… the fps perceived by the user is surely affected;
- All the above solutions, with the exception of the Facebook Live one, record only the video and not the audio. If you want to record the audio of your performance, you have to connect the headphone output of your Go headset to the microphone input of your PC (maybe using a splitter, so that the user can still have his own headphones), use Audacity to record the audio and then use a program like Adobe Premiere or Adobe After Effects to merge the audio and video channels that you recorded separately (I know, it’s a PITA);
- All the adb-based solutions will show you the views of the two eyes with all the visual distortion;
That’s it with some hints on how to stream or record a video with your Oculus Go. I hope that this guide may be helpful for you: if this is the case, please show your appreciation by sharing this article on your social media channels and subscribing to my newsletter using the below form to sustain my magazine. And if you have better suggestions on how to perform the streaming/recording, just use the comment section to help me improve this article. Have a nice VR day! 🙂
(Header image by Oculus)
Disclaimer: this blog contains advertisement and affiliate links to sustain itself. If you click on an affiliate link, I'll be very happy because I'll earn a small commission on your purchase. You can find my boring full disclosure here.
Great guide, Tony! My courier told me that my Go is ready to pick up from the post office (wohaa!) so I’ll be trying this stuff soon 🙂
WOW! Finally! Get ready to try a nice consumer VR device!
Yup, spent all Sunday morning watching SAO lying on the sofa with the Go haha. Had some fogging issues though because climate is already getting quite cold here. Next time I will try to wait a few minutes to put on the headset after powering it on so all componentes gets warm so to avoid condensation, or eventually throw some anti-fog inserts into the thing. Regarding the video capture, seems that some apps do not support the native capture feature or FB live streaming (mainly video apps) so I’ll be trying one of the alternatives next time
Someone also uses the hair dryer to make the lenses warmer…
What is your opinion on the Go?
Yeah, it might also work, I’ll see.
I think the device is very well made in general, and extremely focused on consumer market as it was expected. You download the app and in a few minutes you have the device completely configured and ready to go. Strap it to our head and you are into VR in a very comfortable way (at least while seated…), take it off and it will automatically enter sleep mode, no worries about checking phone battery or grabbing it with caution in case it will explode because of the overheating. We all know that 3DOF VR is not the best in the world but the visual quality is quite good and considering the phone restrictions and actual price of a Gear VR (almost $100) I think it’s a fair product for the price overall. You won’t get the ultimate VR experience for obvious reasons but it’s great for watching custom movies or Netflix streamings as well as playing simple VR games alone or with friends.
Yeah, it might also work, I’ll see.
I think the device is very well made in general, and extremely focused on consumer market as it was expected. Just download the app and in a few minutes you have the device completely configured and ready to go. Strap it to your head and you are immediately inside VR in a very comfortable way (at least while seated…), take it off and it will automatically enter sleep mode, no worries about checking phone battery or grabbing it with caution in case it will explode because of the overheating. We all know that 3DOF VR is not the best in the world but the visual quality is quite good and considering the phone restrictions and actual price of a Gear VR (almost $100) I think it’s a fair product for the price overall. You won’t get the ultimate VR experience for obvious reasons but it’s great for watching custom movies or Netflix streamings as well as playing simple VR games alone or with friends.
I agree completely with your opinion! Great Mati!
That is way too much work, why not just stream to yourself on FaceBook and then download the video? As long as you have headphones plugged in, you can capture both the Go audio and the mic.
Well, one reason may be the low resolution and the other one may be that someone doesn’t want to have a facebook account associated with the oculus account.
Then with some of these solutions, you can have the live streaming on the PC screen faster…
Gotcha, thanks for the info.
You’re welcome!
You’re welcome! 🙂
I bought the pro version of Vysor to get the wireless connection and input from the computer but neither feature works. Is this something you can confirm works? My goal is to be able to guide someone wearing the headset through a few experiences remotely from my laptop until they get the hang of it.
Can’t confirm they work since I don’t have the Pro. But the Free version works for me and using ADB over Wi-fi (that is what Vysor does under the hood) gives no problems.
Have you:
– Verified that both your laptop and headset are in the same local network?
– Tried disabling firewall on your pc?
Yes, I confirmed both. Once I click the wireless connect button, a pop-up says “You are now connected wirelessly!” but once I remove the USB wire the connection drops. I’ve tried inputting the IP of the headset manually, but that doesn’t connect at all. I’d like to know if anyone has gotten this working before I spend more time on it.
I’m interested in how input could possibly work given the display is a binocular view – there’s just no way to click on something. By input do you mean those three fake Android menu buttons at the bottom of the display? That’s not so useful on an Oculus 🙂
I’m guessing there isn’t actually a good way to remotely control the Go from another PC, and Vysor is really only good for seeing the view from the headset (and for me, only over the length of a USB cable).
With the Focus I managed to make the input on the screen to actually do something (like launching a game), so I thought that it worked on the Go, too.
Try contacting Vysor support… I don’t have ideas for you, sorry 🙁