How to: Convert 3D films to play on the Lumia 950 in a VR viewer

Published by at

Guest writer 'Edward' takes AAWP (even further) into geek territory here, with a guide to converting commercial 3D movie content into a file that can be played on a high spec Windows 10 Mobile phone (e.g. Lumia 950) and enjoyed through any VR viewer/holder - it's (potentially) a 3D cinema in your living room!

Edward writes:

This guide should get you from a 3D (SBS or OU) video file to one that you can view on your phone through 3D glasses such as the BoboVR Z4 (which I use). It's a bit painful the first time, but once you've been through it once you'll never look back.

Of course none of this would be necessary if there was a decent 3D cinema app in the Store for Windows Mobile, but there isn't. So for those of you who feel you are missing out, hopefully this will help.

Skip to the very end to download configuration files that include everything described here. This should save you some hassle, at least.

Screenshot, 3D view tutorial

1. Download video in 3D SBS (Side By Side) or OU (Over Under) format

I believe you can extract SBS/OU video files from 3D DVD/BluRay discs, but that's outside the scope of this tutorial. I (and AAWP) don't want to run foul of any copyright rules, so have used the Big Buck Bunny open source movie as my source here.

Screenshot, 3D view tutorial

2. Download

  1. VirtualDub - your video editor/encoder
  2. VirtualDub ffmpeg plugin to allow you to open common video formats
  3. VirtualDub x264 encoder, to enable H264 compression when creating your new video files and keep them down to a manageable size
  4. VirtualDub StereoTools filter, so that you can manipulate the dual image size, layout etc

3. Extract

Extract VirtualDub to a folder somewhere. Extract the ffmpeg and StereoTools plugins into VirtualDub\plugins32. Run the x264 executable, to install the codec on your PC.

Screenshot, 3D view tutorial

4. Run Virtual Dub.exe

5. Drag and drop

Drag and drop your video file onto the big grey window.

6. Select menu items

  1. View / Input Video Pane
  2. View / Output Video Pane
  3. View / Arrange video panes vertically

7. Select a random frame

Click somewhere along the numberline near the bottom, to select a random frame in the video.

Now you should be able to see the source video and the output video at the same time. At this point they will both look the same.

Screenshot, 3D view tutorial

8. Select menu item: Video / Filters

9. Click the Add button in the dialogue box that pops up

10. Scroll down and double-click on StereoTools

Screenshot, 3D view tutorial

Note: if you already have a SBS format video, then skip step 11.

11. Convert to SBS?

If you have an OU video, then the first thing you will need to do is to convert it to SBS format:

  1. Select the Above/Below -> Side-by-side button. Then click OK.
  2. Tick the "Swap left & right" box at the top.

Note: point 2 won't apply in all cases, but I generally find that without this ticked then the left/ right images are the wrong way round. Poor 3D effect coupled with a big headache.

Screenshot, 3D view tutorial

12. Add another SteroTools Filter.

  1. Choose Stereoscopic centering
  2. Make the width 250
  3. Click OK

Screenshot, 3D view tutorial

This is to separate the images a bit, which avoids one eye seeing a bit of the image that is supposed to be for the other eye. It also helps you play with the size of the video image to suit your preferences. Experiment with different widths to find what works for you.

The smaller the width, the larger the image, so the less of the image you will see through your 3D goggles. It's a bit like sitting closer to the cinema screen, but you can't look left and right so I find 250 generally strikes the right balance.

Notes:

  • If you click OK again (in the Filters dialogue box) then you should see the result of the filter(s) you have applied in the VirtualDub output window.
  • If you started with an OU video, then at this point your Output will probably be twice as wide as you want it to be (stretched horizontally).
  • If you started with a SBS video, then it will probably be twice as tall as you want it to be (stretched vertically).

To get rid of that distortion ...

13. Add another Filter

This time a Resize filter:

 

  1. Click on Aspect Ratio / Disabled to unlock the width/height ratio
  2. Click on New Size / Relative
  3. Put 50% into the first (for OU videos) or second box (for SBS videos)
  4. Click OK

 

Screenshot, 3D view tutorial

In many cases you can skip this step. Personally I like to resize the video file to give it the same resolution as my Lumia 950 screen . I feel it is also more inclined to play nicely with your video player of choice, but I'm probably just paranoid and it certainly inflates the file size and increases processing time. So skip this step if you like.

14. Add another Resize Filter

  1. Click on New Size / Absolute and put 2560 into the first box (for Lumia 950 / 950 XL)
  2. Click on Framing / "Letterbox to size" and put in 2560x1440 (for 950/XL)
  3. Click OK to close the Resize dialog

Screenshot, 3D view tutorial

Screenshot, 3D view tutorial

If your source video is a wide format then it can look rather small on your screen. As if you are sitting a long way back from the cinema screen. Personally I like to crop it to roughly a 2:1 ratio (i.e. standard widescreen format) as a balance between seeing enough of the image width and getting a decent height too. So you can skip this if you are happy with the way it looks already.

15A. For OU videos (see image above)

  1. Click once on the top Filter in your list
  2. Click the Cropping button near the bottom right
  3. Change the X1 offset (top left) and X2 offset (top right) to e.g. 100

Note: X1 and X2 should be the same, so that the image is cropped evenly from both sides. 100 pixels or so is often all you need.

15B. For SBS videos (see image below):

 

  1. Add a StereoTools filter at the top of your list (use the Move Up button if it isn't at the top)
  2. Choose Stereoscopic Cropping
  3. Add a value of X that is half the number of pixels you wish to crop from each image (e.g. for 100 pixel crop, use X = 50)
  4. Take half the image width (e.g. for 1920x1080 image take 860)
  5. Subtract the cropping figure from that width (e.g. 760 for a 100 pixel crop)
  6. Put that figure in the Width box
  7. Take the image height and subtract 1 (e.g. for 1920x1080 take 1079)
  8. Put that figure in the Height box (don't ask me why - but it works)
  9. Click OK

 

Screenshot, 3D view tutorial

Screenshot, 3D view tutorial

Almost there!

16. Choose your compression settings

Click OK to close the Filters dialogue. Check you are happy with the output image.

It should look something like the image above, with two images side by side, without distortion, with a black border and a gap between the images.

Screenshot, 3D view tutorial

17. Go to the Video menu

  1. Make sure that Full Processing Mode is selected
  2. Select Compression
  3. Click on x264vfw and click the Configure button
  4. Choose Ultrafast from the Preset drop-down menu
  5. Tick the Zero Latency box
  6. Change RateFactor to 20
  7. Tick the VirtualDub Hack box
  8. Click OK to close the x264 dialogue
  9. Click OK to close the Compression dialogue

There are lots of options here. You could change from Ultrafast to Normal, to improve compression efficiency. You could go to Multi Pass to improve both quality and compression efficiency. You could increase the Ratefactor to create a smaller file at the expense of quality (I find that 25 is usually fine, but 30 is going a bit far and you'll notice the quality drop).

Each improvement comes with a cost of increased processing time or file size, so it's a question of where your priorities lie. A good quality file that is quick to create might land you with a 5GB video, but if you're only putting one on your phone at a time then that might not matter. Or you might get that down to 3GB for similar quality, but it will take a lot longer to process. I prefer the larger, quicker route, as I only keep them on my phone until I've watched them, so the large size doesn't bother me.

Screenshot, 3D view tutorial

18. Do a test run

Do a test run of e.g. 500 frames first:

  1. Go to Video / Select Range
  2. Put a figure into the Start Frames box (e.g. 10 000) c. Put a figure into the Length Frames box (e.g. 500)
  3. Click OK to close the dialogue
  4. Go to File / Save As AVI and choose somewhere to save your file
  5. Copy the file across to your phone and check it works

19. Process the whole video

If it works, and you can view it on your phone, then you're ready to process the whole video:

 

  1. Go back to Video / Select Range
  2. Set Start Frames to 0
  3. Set End Offset to 0
  4. Go to File / Save As AVI and choose somewhere to save your file

 

I have a pretty nippy computer and it will encode at about 25-50 frames per second using these settings. So that's more or less real time (i.e. 1-2 hours encoding for a 2 hour video).

If you improve quality settings or have a slower PC, it could easily drop below 5 fps. In other words, be prepared to leave it running overnight.

Screenshot, 3D view tutorial

 

20. Copy the file across to your phone and enjoy!

I find that VLC is the most reliable player. The 'Films & TV' app sometimes fails to open the video or doesn't play the audio for some reason.

You can use Video360 if you want to look around the virtual screen, but that shows the same side of the video file to each eye, so you lose the 3D effect.

21. Save your settings

  1. Go to File / Save processing settings
  2. Tick the "Include selection" and "Include file text information" boxes
  3. Create a file somewhere sensible
  4. Next time you want to process a video, go to File/Load processing settings

I have created two standard processing setting files that you can use. You'll probably need to use these instructions to adjust the Filters to suit, but they should get you 90% of the way quickly. You'll still need to follow at least the first two steps of this guide though.

Download here: https://1drv.ms/f/s!AkBy0ffAOHKomrh1NBmYrbVitHbHaw