Get the IMAX cinema experience of your PLEX movies with your smartphone and a cheap VR headset

This year saw a flurry of new virtual reality headsets aimed at delivering a 3D experience. Among these are the  Oculus Rift, and Project Morpheus by Sony which are primarily aimed at giving an immersive 3d games experience. These are still in their testing phases, but headsets designed to deliver a true IMAX cinema experience are already around, like the Head-Mounted Display (also by Sony).

project morpheus, bringing soon 3D games to your PS4
the oculus rift is currently in prototype, and promises the ultimate 3D game experience

The current drawback of theses displays is that they are either not available yet (except as prototypes or development kits) or they are rather expensive (Sony’s head-mounted display costs at least £1000)

Sony’s Cinema head mounted displays start at £999

Stereoscopic video – how it works

Before we get to the core of our topic its worthwhile recapping the principles behind these devices. All the above devices work by sending to each eye separate images which they would respectively see if viewing the actual object in front of their field of vision.

Stereo Vision.

The subtle difference in these two images is what gives the illusion of depth of field to your brain.

Stereoscopic vision and the IMAX experience

Note that as the object moves further away, the left and right images become the same. This is how we are able to reproduce the sensation of a large cinema screen using stereoscopic vision – even for 2D films: if each eye sees the same copy of the film, then the viewer will have the sensation of seeing a very large screen very far away – just like in a cinema

showing the same image to each eye will give the impression to the viewer of seeing a very large screen very far away, just like in a cinema

Putting it all together

step 1: the headset

So how do we get to use our smartphones give us the IMAX experience on the cheap?

The first thing that is required is of course … your smartphone, and a cheap VR headset which contain a lens for each eye and uses your smartphone as the screen itself. The idea was launched by google itself in their recent conference by presenting a makeshift headset made with cardboard, a couple of lenses and an NFC tag that can be programmed to control the phone without accessing it directly.

Google Cardboard: a dirt cheap route to the IMAX experience using two lenses and your own smartphone as the screen

Other smartphone VR headsets have come out since, and given their simple construction (a plastic case and a couple of lenses), can be found at around £30 including shipping.

example of a VR headset requiring a smartphone as the screen
Step 2: install the client apps

OK – so how do we get to stream your films stored on your PLEX server to your new IMAX capable device? You will need a media player app which will render TWO identical images of your movie side by side. Unfortunately the PLEX client app does not (yet?) have an option to do this, so instead we will use the DLNA feature built into the PLEX server to deliver a video stream to your android device. There are a few steps you need to follow in order to get this working:

1) install a DLNA client on your phone from the google play store. I suggest using BubbleUPnP

2) install the Side-By-Side Video Player, also available on google play store.

Step 3: configure the DLNA on your PLEX server and get it to transcode your movies on the fly.

Firstly you must ensure the DLNA option is activated in your PLEX server (under options->server->DLNA, tick the  “DLNA enabled” box).

You should now already be able to select and play SOME (but not all) of your plex movies from BubbleUPnP (make sure you select the Side-By-Side Video Player as the rendered when asked)

HOWEVER this will probably not work with most of your movies, as I am guessing many of them will be encoded in a container that the Side-By-Side Video Player app does not parse correctly. In particular you will find that either the video does not work at all, or the video works, but you get no sound because the audio in your media file is a DTS stream, which again the Side-By-Side Video Player cannot parse.

The solution to this is to instruct the PLEX DLNA server to transcode videos into a format that the video engine inbuilt into android (called “stagefright”) can parse correctly. This is the underlying media engine used by many video apps in android, like Side-By-Side, and, of course the “Gallery” app available as standard on android.

The transcoding of the DLNA server is governed by a set of XML files located in the directory plexmediaserver/Resources/Profiles (at least on my freenas box – this could be different on other machines. see this post for details https://forums.plex….-dlna-devices/)

This directory contains a set of xml files describing the “DLNA client profiles” that the plex server should know about, plus a “catch all” one called Generic.xml which tells plex what transcoding (if any) to do in case the DLNA profile for this client device is not present in this directory.

As standard, this file contains no instructions:

<?xml version="1.0" encoding="utf-8"?>
<Client name="Generic" />

which means that by default the PLEX server will deliver the media stream without any transcoding.

The easiest way to do this is to change the Generic.xml to the following

<?xml version="1.0" encoding="utf-8"?>
<Client name="Generic">
 <!-- Author: Plex Inc. -->
 <TranscodeTargets>
 <VideoProfile protocol="hls" container="mpegts" codec="h264" audioCodec="aac" context="streaming">
 <Setting name="VideoEncodeFlags" value="-x264opts cabac=0" />
 <Setting name="SubtitleSize" value="100" />
 </VideoProfile>
 <VideoProfile protocol="dash" container="mp4" codec="h264" audioCodec="aac" context="streaming">
 <Setting name="VideoEncodeFlags" value="-x264opts cabac=0" />
 </VideoProfile>
 <VideoProfile container="mpegts" codec="h264" audioCodec="aac" context="all">
 <Setting name="VideoEncodeFlags" value="-x264opts cabac=0" />
 </VideoProfile>
 <MusicProfile container="mp3" codec="mp3" />
 <PhotoProfile container="jpeg" />
 </TranscodeTargets>
 <DirectPlayProfiles>
 <VideoProfile container="mp4" codec="h264,mpeg4" audioCodec="aac" />
 <MusicProfile container="mp4" codec="aac" />
 <MusicProfile container="mp3" codec="mp3" />
 <MusicProfile container="flac" codec="flac" />
 <MusicProfile container="ogg" codec="vorbis" />
 <PhotoProfile container="jpeg,gif,bmp,png" />
 </DirectPlayProfiles>
 <ContainerProfiles>
 <VideoContainer name="mp4">
 <Limitations>
 <Match name="part.optimizedForStreaming" value="1" />
 </Limitations>
 </VideoContainer>
 </ContainerProfiles>
 <CodecProfiles>
 <VideoCodec name="*">
 <Limitations>
 <UpperBound name="video.width" value="1920" />
 <UpperBound name="video.height" value="1080" />
 <NotMatch name="video.anamorphic" value="1" isRequired="false" />
 <NotMatch name="video.hasScalingMatrix" value="1" isRequired="false" />
 <UpperBound name="video.bitDepth" value="8" isRequired="false" />
 </Limitations>
 </VideoCodec>
 <VideoAudioCodec name="aac">
 <Limitations>
 <UpperBound name="audio.channels" value="2" />
 </Limitations>
 </VideoAudioCodec>
 <MusicCodec name="aac">
 <Limitations>
 <UpperBound name="audio.channels" value="2" />
 </Limitations>
 </MusicCodec>
 <MusicCodec name="mp3">
 <Limitations>
 <UpperBound name="audio.bitrate" value="320" />
 <UpperBound name="audio.channels" value="2" />
 </Limitations>
 </MusicCodec>
 </CodecProfiles>
</Client>

which among other things instructs the plex DLNA server to transcode your media to mpegts/h264/aac(stereo) which “stagefright” understands. Apply these changes to Generic.xml and restart the plex server. And voila! you should be able to enjoy all your movies and TV shows on your system with your google cardboard!

New BT Fibre cabinets have just appeared in LH

Some of you may have noticed that new cabinets looking like these

have appeared right next to an existing BT cabinet in these locations

These are the new DSLAM cabinets (Digital Subscriber Line Access Multiplexer), which is layman terms are the end point of the Fibre Optic cable coming from the Witney exchange. These then reconnect to the adjacent existing PCP cabinet (Primary Connection Point) which feeds the telephone copper wires into your house. Once this connection is complete, your broadband will no longer be carried over a copper wire all the way to the Freeland exchange, but will instead be transported via FIBRE from the DSLAM to the Witney exchange. The connection from your house to the Cabinet will of course remain your good old copper wire.

As a picture is worth a thousand words, here is a map which explains a typical Fibre To The Cabined (FTTC) layout. This will be pretty much what is being planned for Long Hanborough

FTTC architecture

farmoor gets the fastest broadband in the world

Until recently farmoor a small village outside west oxford had frustratingly slow speeds, but thanks to a concerted effort of the local community they succeeded in gwttig gigacleat tocroll out in their village internet fibre optic connection in all homes in the village. Once complete, each household’s broadband speed will go from a mere 1mb/sec to over 1000Mbps which is among the fastest in the world.