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)