Soon after the launch of the Samsung Gear VR headset in late 2015, Samsung made it’s own powerful 360 video player application, Samsung VR (back then, it was Milk VR). As an alternative to Oculus Video, it was structured like an entertainment channel much like Hulu or Netflix where new content would be populated on a regular basis for viewers to enjoy in the Gear VR.
What most people don’t know about Samsung VR are the many powerful presentation features built-in for demonstration, retail kiosks and synced playback with hundreds of devices. Now that Samsung VR is also available on Oculus Go, Oculus Rift, Android, iOS and Google Daydream, we can take advantage of these features on just about every popular VR platform available.
Best of all, it costs absolutely nothing to use these features with this free app. Let’s dig in and see what we can do with Samsung VR.
Why Samsung VR?
As one of the earliest VR video apps, Samsung supports just about every type of VR video content you can imagine. From 360 mono, 360 stereo, to stereo 180 and 20+ other playback formats available. Samsung VR can play it all.
They’ve also got some of the best spatial audio support in the business, offering more formats and varieties of spatial audio technology than any other app available. They can support Mono, Stereo, Ambisonic, 5.1 Spatial, Binaural, Quadraphonic, and Mach1 Spatial audio. For this reason, we recommend Samsung VR as a default VR player for all of our clients when they want to have the best possible viewing (and listening) experience. For those who don’t have a custom app budget, it’s an extremely powerful tool.
Setup the Config File & MilkVR Folder
In order to use many of the extra Samsung VR features, the app will require a sideloaded configuration file named user.cfg. This file needs to exist in a folder named MilkVR. Milk VR was the original name of the app, back with Samsung was obsessed with dairy for some reason. The app name changed, but the side-load folder stayed the same. That folder needs to reside in the root of your device. It can also go in the root of an SD card or expanded storage, but we have found the user.cfg file won’t work anywhere else but on the root of the device.
The CFG file can be created in any basic text editor such as notepad, but it’s important to keep in mind that it needs that .cfg extension, not .txt. So rename the file if necessary. We will reference this folder and this configuration file throughout this article several times. Each unique parameter goes on it’s own line.
Samsung has a great FAQ to explain all of the various features available for the app along with a list of commands you can use to customize with the user.cfg file, but we’ll go into more specific detail on what each of these settings do below.
Your video content is also loaded directly into the MilkVR folder. You can also create as many sub-folders as needed, each one will display a thumbnail from the first video contained within the folder with a designation of how many videos are in the folder in the corner.
Because Samsung VR can support so many different types of immersive content, we sometimes need to give it a hand with our file naming convention to know how to display this content. For example, if you had just previously watched VR180 content and changed the display mode to 180, it may remember this setting next time you watch a 360 video. That 360 video won’t look right at all in the 180 mode.
To help with this, you can designate the projection type in your filename. For example, _mono360 will show content in full 360 as a monoscopic. For a full list of supported formats and file designations, see the Samsung VR FAQ.
Retail & Demo Modes
One of the most powerful options Samsung VR offers is the ability to suppress all of the application UI and only show your content. This is like having your own custom VR app for your 360 videos.
- Retail mode plays only the content you have side-loaded into the MilkVR folder. Additional, you can set a timer for how long the device can be off someone’s head before it will start over from the beginning.
- Demo mode shows a menu of your content, with pagination and 8 videos per page, containing all of the content in the MilkVR folder.
Retail mode is great if you want to have the video automatically start over if the headset has been unused for a short period of time. This allows for a hands-off demo approach in a kiosk or a space with limited staffing when you want your customers to be able to jump in without waiting for an attendant. Keep in mind, with the Oculus Go the user may be required to re-calibrate the controller to start, unless standby mode is disabled.
Demo mode is great if you have a lot of content to choose from, but it does require some level of interaction with the touchpad or remote to select an experience. This can sometimes require assistance for people who haven’t done it before. Demo mode also recognizes your own custom thumbnail images for each video, all you have to do is just upload a 16:9 JPEG with the same name as your video. We load ours at 1920x1080.
The following user.cfg would disable exiting the app, enable retail mode, set a 60 second timer for the video playback to reset, and disable the touchpad.
These settings would enable demo mode and change the default name of the sideloaded folder to “My Videos.” In Samsung’s FAQ, the string to change the title is actually demo-text, which didn’t work for us, but they have suggested we use “b2b-build” instead.
Presentation Modes (Mirroring)
You can also start a VR video experience remotely over WiFi for any number of VR devices such as Samsung Gear VR or Oculus Go. This is awesome for shared experience where a group of people wearing headsets can all watch a VR film together at the same time. It’s a perfect tool for VR film festivals, business presentations, screenings, and training content.
You can eliminate the need to even use buttons or external controls by simply starting the experience remotely from another device running the Samsung VR app. All your audience has to do is put on the headset and wait for you to start the experience.
To enable presentation or receiver mode, look for the menu option on the top right, open that and select “settings.” From this screen, you may need to flip to the second page of settings. You’ll see options for “Receiver Mode” and “Presentation Mode.” Ensure all devices are on the same WiFi network, and set the presenter’s device to Presentation Mode while setting all others to Receiver Mode. All devices need to have the same video content loaded on to the MilkVR folder, this feature doesn’t stream anything but the commands over WiFi, so those videos need to be on the devices.
You can also use this feature to show what a viewer in the VR headset is seeing on a TV or display by mirroring to the Samsung VR app on a device that can cast to the TV using Chromecast or other devices.
Synchronized Playback (Manual Control)
Synchronized mode allows you to use an Android device as a remote controller to synchronize playback across multiple VR devices, without mirroring. To get started, launch the Samsung VR app for Android on the device you intend to use as the remote control. Tap on the menu button to your top right, then settings, then presentation mode. Select “remote control” and you’ll have options to play, pause, skip or restart the current videos loaded into the MilkVR folder on any number of receiving devices.
All devices need to be on the same WiFi network, and the receiving devices need to have a custom user.cfg file with the following settings.
You will need to launch the Samsung VR app on each of the receiving devices. With these settings in the config file, the app will be a black screen and won’t show anything until the presenter starts. We’ve asked Samsung about offering an option for a custom waiting screen here, that would be a nice touch. Upon pressing play, the app will start playing the local content within the MilkVR folder in alphabetical order.
Keep in mind, with the Oculus Go, users will still be required to press and hold the Oculus button to calibrate the remote before the app will do anything. There are options to disable sleep mode on the Oculus Go, but this can also be a pretty serious drain on the battery. It would be nice if Oculus allowed developers to skip the calibration within their apps. Maybe in the future?
Start Your Own Channel
Beyond just using Samsung VR as a platform for demonstrations and presentations, if your content can be made available to the public, consider starting your own Samsung VR channel. With our original VR documentary content, 360 Labs has amassed more than 25,000 followers of our own channel. The audience is definitely there.
They also offer detailed analytics on what specific devices are being used to view our videos, along with heat-maps. The Samsung VR audience is made up of premium headset owners, so you know that a great deal of your views are going to be people who experience your content the way it should be - in a VR headset!
Future Improvements & Beyond
Samsung VR has come a long way since this app was initially launched. Several new feature improvements have been made and several new platforms have been supported, and I’m sure we can expect to see more in the future. We’ve asked about the possibility of being able to load our own cube faces from a 360 panorama into the MilkVR folder as a background image for demo and retail mode, for example. This would give you the ability to add your own branding, or a “please wait” message for those users who are waiting for a presenter to start the content.
We feel like Samsung VR is one of the most underrated VR demonstration apps out there, considering it supports a multitude of different VR video and audio formats, and you don’t have to pay a dime to get yourself a custom VR player that is practically white-label.
In this post, we haven’t even scratched the surface of what it can do, we didn’t even talk about live streaming or interactive features - but that’s a whole new post of it’s own. We hope you’ve learned something new, as always, please don’t hesitate to reach out if you need any help.