2D to 3D with Universal Media Server (UMS) - Download Now

2D to 3D with Universal Media Server (UMS) - Download Now
Pigasus VR Media Player Example - Showing Video Converted to 3D in Real-time by UMS

I have modified the Open Source Digital Media Server, UMS, so that you can browse your 2D video collection, select a video and watch it in 3D. The video is converted to 3D, as you watch it, in real-time by your PC/Server.

This enhancement is the focus of Release 13.x of UMS. You can download it for free now from the UMS release site below. Release 13.1.0 is currently available for free public download. This release includes a significant enhancement to the 2D to 3D algorithm, described here. Release 13.2.0 is the latest release,  currently requiring a Patreon donation. It includes further significant tuning of the 2D to 3D algorithm, as described here:

Universal Media Server | Downloads
Stream your media to your devices, whether they are TVs, smartphones, gaming consoles, computers, audio receivers, and more!

This page provides installation instructions and usage guidance, focused on the 2D to 3D aspects of UMS. For broader information on UMS, consult the website.

Demo

The main use case considered is viewing 2D Videos in 3D within VR Headsets such as the Meta Quest 2 via media players such as the BigScreen VR Player , Pigasus VR Player or Virtual Desk Top (plus VLC) with on-the-fly server-side conversion to 3D.

The video below provides a brief demonstration of the solution using BigScreen VR Player. The example input video is a 2D version of the "Avatar: The Way of Water" trailer:

Example of 3D Video Output:

The demonstration video above does not give a full view of the quality of the 3D output. For that, take a look at the next video, which is a converted example of the 2D version of the "Avatar: The Way of Water" Trailer, after applying the 2D to 3D conversion algorithm. The conversion uses the latest version of the same algorithm as the on-the-fly real-time conversion within UMS.

You can view this video directly in the web browser of a VR headset such as the Oculus/Meta Quest web browser. It is in 3D Half Height Top/Bottom format - HTB.  Make sure to select 3D Top/Bottom in the browser to view. Note that you will have much more control over things like zoom when watching it in a dedicated media player.

Note that the UMS solution can generate a range of different 3D output formats, both SBS and TB/OU at half, full and double resolution to suit the needs of your system.

You can also download a full resolution version of the example video below in different formats from here. You can do this from the browser in your VR headset and then play the video locally within your VR media viewer of choice. This will give you the best view of the quality of the 2D to 3D conversion that you can expect.

Low Resolution Version (for direct viewing in VR headset browser):

I have also assembled a collection of lower resolution example movie trailer 3D conversions here. When using UMS, the full resolution of the original video is available.

Hardware and Software Requirements:

Hardware:

Software:

  • BigScreen VR Player , Pigasus VR Media Player or Virtual Desktop with VLC Media Player: N.B. the solution has been well proven with the standalone headset version of BigScreen (in a Quest 2 headset). The Steam VR version of BigScreen has also been reported as working, but seems to require signicant machine resources to run with UMS on the same machine, some users have reported issues with this configuration.
  • Specific UMS renderer configuration files have been provided for the BigScreen and Pigasus media players, support for additional players, known as renderers, can be easily added with additional appropriate configuration files.
  • Virtual Desktop is supported in combination with VLC Media Player (note that an additional setting is required in the UMS VLC renderer configuration file to enable 3D conversion, described later in this article).
  • The key requirement is for a media player that supports 3D playback and DLNA/UPNP. A range of headsets from Meta, Valve and Steam VR support such media players.
  • Universal Media Server : A free DLNA, UPnP and HTTP/S Media Server. Release 13 or greater includes the 2D to 3D functionality.
  • AviSynth+ (64 bit): A “Frameserver” video processing tool with scripting, a modern fork of Avisynth with multithreading and 64-bit support. It is recommended to install the 64 bit version that includes the vc redistributables.
  • K-Lite Codec Pack: A collection of DirectShow filters, VFW/ACM codecs, and tools. Codecs and DirectShow filters are needed for decoding audio and video formats (with GPU hardware acceleration). The standard version of the download should be sufficient for most users.

Installation

You will receive some standard warnings from Windows when installing the required PC software from the internet; AviSynth+, the K-Lite Codec Pack and UMS. You should review these warnings and make sure that you are content to continue downloading the software. To pass the "Windows protected your PC" warning click "More info" (not so obvious) and "run anyway" if you are content to do so. You will also get the usual "Do you want to allow this app to make changes to your PC?" warning, accept and continue if you are comfortable to do so. This is Microsoft being careful on your behalf.

AviSynth+:

Begin by installing AviSynth+ from the link below:

Use this version rather than the AviSynth 32 bit version that currently ships with UMS as it has higher performance and is being actively maintained. UMS will detect this pre-installed version and use it rather than the one that it is shipped with.

Click through the setup wizard, keeping the defaults in terms of components to install. Click finish when installation completes.

Image Description

Image Description

K-Lite Codec Pack:

Install the standard version of the K-Lite Codec Pack from here:

Download K-Lite Codec Pack
Download links for the K-Lite Codec Pack. A free software bundle for high quality audio and video playback.

Image Description

Click "Download Standard" on the first page and choose a server to download from on the next page:

Image Description

Run the setup and click through the installation screens. There are a lot of setup options that you can modify, or not, depending on your specific requirements. The install wizard will detect your specific GPU and machine setup. It does a pretty good job of auto-detecting what is needed for your specific PC, so it is recommended to go with the defaults.

Universal Media Server (UMS) with 2D to 3D Mod:

Install UMS from the official link below. UMS Release 13 or higher is required:

Universal Media Server | Downloads
Stream your media to your devices, whether they are TVs, smartphones, gaming consoles, computers, audio receivers, and more!

Click through the setup screens shown below:

Image Description

Image Description

The maximum memory size must be set to at least 4096 megabytes during install, as shown, or the resume video function will not work as effectively for your 2D to 3D converted videos (this is the default in recent versions of UMS):

Image Description

Image Description

Choose English as the language as translations for the 2D to 3D descriptions for other languages have not been completed:

Image Description

Click Yes, to run the first-time configuration wizard:

Image Description

Important: Click No, to "Should UMS hide its advanced options?":

Image Description

It is recommended to click Yes to the next option, with respect to scanning folders on startup, but this may need some experimentation. If you have a lot of videos you might want to click No, as this could slow things down when first starting UMS at the start of a video viewing session, depending on the speed of your machine and whether the videos are local to your machine or on your home network:

Image Description

Choose a folder containing some 2D video content to get started:

Image Description

Image Description

This version of UMS defaults to using the Web UI for configuration settings (there is also a thick client). UMS will start by displaying a browser Window and ask you to create an Admin user:

Image Description

UMS will then detect "renderers" on your network. This set of devices (or media player software) could include compatible TVs that can display DLNA/UPNP video content sourced from UMS or media players running in your headset.

If UMS detects a component that could, in theory, display transcoded video, but for which it does not have an explicit configuration, it will show it as an "Unknown renderer".

In the case below, UMS has detected an "Unknown renderer" on my home network and Big Screen VR Player (which happened to be running in my headset at the time of UMS installation and start-up):

Image Description

The default configuration settings for UMS need to be changed to enable the 2D to 3D conversion functionality. This is done in the "AviSynth/FFMpeg" transcoder settings page. To do this, click on the three line menu in the top right corner of the Web UI and select "Server Settings" as below:

Image Description

Next, click on "Transcoding Settings":

Image Description

Then navigate to "Video File Engines" under "Transcoding Settings" and select "AviSynth/FFmpeg" in the left hand side menu. This is where the main 2D to 3D Conversion settings are maintained:

Image Description

Important: You must enable"2D to 3D video conversion" mode by clicking on the check box about half way down the page as shown in the enlarged view below. Remember to click "Save" also:

As you can see, this page also controls the conversion algorithm, frame stretch factor (related to IPD and extent of 3D effect), a lighting depth setting related to the second conversion algorithm, the 3D Output Format (note the default is Half Top-Bottom - which is not the highest resolution, but a good starting point to test from in terms of performance and compatibility, for the highest resolution use full SBS or TB) and finally a setting that allows you to scale the video down before it is converted to 3D (if for example you are experiencing performance issues). We will leave the settings at their default values for now.

It is recommended to also disable the "Video File Engines" other than  "AviSynth/FFmpeg" to avoid cluttering up the UIs of media players (unless you want to use them of course). This is done by clicking on the green triangular play arrow for each engine so that it changes to a red disabled icon.

Next, under the "Video File Engines" menu, go the "FFmpeg Video" section. This is where you can set the video encoding acceleration method for AVC/H.264 video, which is the setting that will be used to encode the 3D video before sending it to 3D media players such as BigScreen VR Player etc.

The BigScreen and Pigasus renderer configuration files specify MPEGTS-H264-AC3 as the required format. Changing the H.265 settings will have no impact therefore on these players.

The default setting is "libx264", which means a software based encoder that provides excellent quality encoding and small file sizes, but will only use your PC's CPU (not GPU) for encoding:

Image Description

Depending on the speed of your overall system, the "libx264" setting may well be the best setting to use in terms of quality, but if you do encounter performance issues (e.g. buffering) and you have an NVIDIA or AMD GPU, then it is recommended to switch to hardware based GPU specific encoding. This is faster, but can generate larger file sizes and in some cases may not produce as high a quality output as the "libx264" option, so it best to start with "libx264":

Image Description

For hardware GPU video  encoding acceleration with modern NVIDIA graphics cards use the "h264_nvenc" setting. For modern AMD cards use "h264_amf". The screen shot below shows "h264_nvenc" selected for NVIDIA. The AMD setting is less well proven (feedback appreciated):

Image Description

Next, under the "Common Transcode Settings" section, make sure to enable "Chapters support" as highlighted in the screen shot below. This is important as most DLNA media viewers do not support fast forward and rewind functionality for Transcoded videos. Enabling chapters support will allow us to instead step through the generated video via a set of chapter links spaced at intervals through the video. This interval defaults to every 5 minutes, but you can change it to whatever interval works best for your video content, see screen shot:

Image Description

Another setting that is worth highlighting is in the "General Settings" tab, where you  can set an IP filter as shown. That is, you can specify a list of IP addresses for which UMS will detect renderers and ignore any other devices on your network. I use this to specify the IP address of my VR headset so that only media players on my headset are detected. I have also configured my router so that my VR headset is given a fixed IP address.

Image Description

Important: There is a bug in UMS Release 13.0.0 where it may not immediately activate all settings changes in the Web UI until the UMS server is restarted. This is fixed in later releases. To ensure settings are picked up correctly, you can trigger a server restart through the "Tools" menu as shown in the screen shot below, just select "Restart server", the restart should only take a few seconds:

Finally, you may encounter some difficulty with UMS in not correctly identifying your media player of choice. For example, I have recently noticed that the latest update to Sky Box VR Player has changed its User Agent signature. More significantly, with this player update, it now seems to behave inconsistently in terms of media folder/path listings with respect to UMS (particularly with respect to the virtual "#--Transcode--#" folder). It is therefore probably best to avoid Sky Box VR Player for use with UMS right now.

BigScreen or Pigasus is recommended instead. If necessary, you can force UMS to use a specific renderer configuration via the screen below, taking Sky Box VR Player as an example:

That completes the main installation and configuration of UMS.

In terms of the best way to view the 2D to 3D converted videos, there are options. If you have a choice, I would recommend the Virtual Desk Top (with VLC) option as being the most likely to deliver the highest quality output, with the fullest set of functionality for most users, the rationale for this is detailed in the next section.

If the Virtual Desktop solution is not an option for your system setup then you can also use your VR headset very effectively with one of the supported media players.

At present BigScreen and Pigasus are the best options. These players will detect UMS as a DLNA media server when the appropriate DLNA media server selection is made in the relevant media player menu. You will then be able to browse to your selected video via the "AviSynth/FFMpeg" Transcoder selection within the "#--Transcode--#" virtual folder presented to the media player by UMS. You will also be able to quickly step through your videos to different points in time using the generated chapter links in the transcode folder.

Pigasus and BigScreen both have different strengths:

  • Pigasus supports a wide range of 3D output formats including Full SBS and Full TB/OU formats for the highest resolution ouput, it lets you resize the screen, supports chapter links and you can also fast forward at up to 3 times speed (or indeed run in slow motion). It also supports the native aspect ratios of videos without transforming them.
  • BigScreen supports chapters and resume functionality well, it has more limited support for 3D formats than Pigasus, but supports Half SBS and Half Top/Bottom formats well. It has a range of wonderful environments in which to watch your videos. These environments do not let you change the size of the screen as the screen size is fixed in each environment, however the size of the screen does vary between environments - so you can pick an environment with a screen size that you like. All of the environments force an aspect ratio of 16:9 (Widescreen format) on the videos that you watch (like your Widescreen TV). UMS will automatically adjust the aspect ratio of videos to match this requirement.
  • BigScreen is free whereas Pigasus is a paid product.

UMS currently has renderer configurations to support both BigScreen VR Player and Pigasus VR Media Player. The articles below illustrate how to use UMS from them:

On-the-fly 2D to 3D Conversion in BigScreen via UMS - Avatar 2 Trailer
I posted about adding real-time 2D to 3D video support to Universal Media Server (UMS) recently. I’ve updated the solution based on feedback to include; additional 3D output formats, IPD stretch factor, algorithm improvements, and support for additional media players. So here, is a nice BigScreen…
Pigasus VR Media Player and watching 2D Videos in 3D
I have included support for Pigasus VR Media Player in a modified version of Universal Media Server so that you can watch 2D videos in 3D. I’ve used this demo to show the support for Pigasus and also how you can switch the 3D Output format generated by UMS to

Recommended Approach: Virtual Desktop with VLC:

As mentioned above, if you have a choice, I would recommend the Virtual Desk Top (with VLC) solution as being the most likely to deliver the highest quality output, with the fullest set of functionality for the reasons below:

  • Virtual Desktop with VLC, in addition to BigScreen and Pigasus, also supports chapters, so you can choose the point at which you wish to start watching the video in 3D and so return to where you left off. See example screen shot below, showing chapter links at 10 minute intervals:

Image Description

  • UMS adjusts the bit rate of the video based on the performance of the renderer client over the network. If the renderer client is VLC and UMS is running on the same high performance machine (which would be the standard case), then this rate will be very high (as there is no network in between VLC and UMS) and so this rate is maximised.
  • The software/CPU based libx264 encoder (the default) is able to deliver a very high quality output when a high bit rate is available.
  • Virtual Desktop has limited 3D output format support, but importantly the high resolution 3D Full Side-by-Side (SBS) format is supported. Virtual Desktop can support mirroring a desktop at up to at least 3840x2160. This would be sufficient to render a 1920x1080 video for both the left and right eye at full resolution. VD mirrors your desktop in the headset. Full SBS mode is the 3D output format that should be selected in the UMS 2D to 3D settings for Virtual Desk top. Note, this is NOT the default. The default is Half Top/Bottom. You should change this default to Full SBS (the first in the 3D Output Format list) if you are using Virtual Desktop with VLC.
  • Virtual Desktop is very highly optimised at being able to deliver the desktop screen content to the VR headset at high frame rates (up to 120 FPS for the Quest 2 for example). One of its main use cases is to support gaming. This optimisation is much more efficient than sending the compressed 3D video over the network, as would be the case for the DLNA media clients on the network, which then need to decompress  the video before it can be displayed.

The article below includes a demonstration video showing how to connect VLC to UMS as well as a demonstration of the 3D video output but first a change, described below, is needed to the UMS "VLC-for-desktop" renderer configuration file in order to enable 2D to 3D for this renderer client:

Virtual Desktop and watching 2D Videos in 3D
My original post on this topic centred on a mod to Universal Media Server (UMS) to support on-the-fly conversion of 2D Video to 3D with Sky Box VR Player as the client. This article shows how to do this with Virtual Desktop. The approach with Virtual Desktop is different to

The "VLC-for-desktop" renderer configuration file requires a minor addition to enable 2D to 3D support. To do this, go to the folder:

C:\Program Files (x86)\Universal Media Server\renderers

Open the file below in notepad:

VLC-for-desktop.conf

Add this line to the end of the file:

AviSynth2Dto3D = true

A slight complication is that the "renderers" folder is write protected, so you will have to save the updated .conf file to another folder first before copying it back to the original location (windows will prompt you for permission to copy and overwrite the original file when you cut and paste the file). Remember also to restart UMS for the change to take effect.

If you want to add additional renderers, use the "SkyBoxVRPlayer.conf" renderer config file as an example and review the guidance given in the "DefaultRenderer.conf" file for configurable settings.

For background and further reading on the 2D to 3D algorithm, see the article below:

Background and Further Reading on 2D to 3D Algorithm
For completeness and to aid understanding, I have provided a brief overview of the theoretical background and links to earlier work on the 2D to 3D “Pulfrich” algorithm - it does not, in fact, have a formal name. The Pulfrich Effect/Phenomenon: Pulfrich effect - WikipediaWikimedia Foundation, Inc.…