The Evo 3D has become pretty popular in Germany over the last couple of months, mostly because some shops like Saturn sold it in some regions for as low as 199€ without a contract, which makes it the cheapest handset with the most power available. I bought one for 269€ and still think it’s a steal.
When it comes to 3D content, you are pretty limited with the Evo 3D. There are barely any games available, because they have to implement a plugin from HTC to support it. LG had the same problem in the beginning, but they updated the Optimus 3D and included a tool that can convert most 3D games into stereo 3D. HTC hasn’t done that and so you are limited to the three included games (Spiderman, Need for Speed Shift and The Sims, don’t update the Sims over the market or you loose the 3D slider) and the very few games that have implemented the plugin.
But when it comes to 3D movies, the Evo 3D is a hidden monster. With a little extra software we are going to build the ultimate mobile movie machine. In the end we will stream 720p 3d movies, that run in 2D when connected to a normal TV.
These settings will not work on a LG Optimus 3D without some tweaking, because it doesn’t accept any resolution, but even if you have a normal handset, you could build a similar streaming server just for 2D content with the resolution of your handset, so hopefully you get something out of it too.

Ok, let’s start with the basics. The Evo3D can handle any resolution you throw at it and play the content in 3D, as long as the video file is in .mp4 format and has the correct Metadata to tell the handset how to play the video. If you have the wrong file format, the player will refuse to play it. If you miss the metadata, the file won’t play in 3D and it just plays two images side-by-side.

To get you started, here’s a 3D clip I shot, or you can take the german movie Huberbuam, which is available for free. If you have your own material, just take that.
This clip already is in .mp4 format with a h264 codec, but it doesn’t have the correct metadata. To turn this into a compatible 3d clip we need Handbrake. Handbrake is a video transcoder and it’ll let us edit the metadata by hand.

Now here comes the tricky part. You can spent weeks in handbrake to find the correct settings for you, but since I already did that for the Evo 3D, these rough estimates should work for you.
There are different limitations you have to remember, your upload speed from your home PC, your download speed on the device and the output quality of your device.
Do a DSL check and find out your upload speed. You shouldn’t use a higher bitrate than your upload speed, or else the movies need to buffer and don’t run in realtime. Also use a speedtest on your Android device and don’t go over your download speed. Otherwise it’ll results in buffering, which brings a bunch of new problems with it, so always try to keep your bitrate lower than your upload and download speed.

Depending on the bitrate, we can use different resolutions.
These are rough estimates, that work for me:

540p – 2000kbs (that way I can stream them over HSDPA)
720p – 4000kbs (max. 7000kbs, if you go higher you can get problems, that’s what I use to stream when I have wi-fi access away from home)
1080p- 8000kbs (max 15000kbs, that’s the limit, but it’ll make problems, that’s what I would use when I would only stream at home)

If you watch the movies on your handset, it can only display 960540, which is exactly a quarter of the resolution of 1080p. So if you just want the maximum quality on the device, you could convert the movies to 960540.
If I stream the movies at a friends house with local wi-fi, I settle for a 720p stream with 4000kbs, because that’s my upload speed. The resulting quality on a TV will be 640720 for 3D content, which IMO is enough for movies on the go. If I watch the movies over my local network, I could go up to the 1080p resolutions, but usually you’ll have a more powerful device to play 3D movies at home, the Evo 3D can play 1080p, but it won’t be smooth if you don’t reduce the bitrate, you get better results if you take a high quality 720p stream.

Also the resulting files should stay under 4GB or you will run into problems. To achieve that, you can split the video, when it has chapters, by exporting the first half of the chapters first and then the second half to a separate video file. Or you can set a target size of 4GB under the video tab. If you follow my estimates you will need that for videos over 2 hours with 4000kbits.

You can add a second pass to the video if you want to optimize the quality even further, it’ll take twice as long, but you can activate Quickpass, which should speed up the first pass 50-70% with very little quality loss. A second pass optimizes the bitrate, the resulting video will use less information when the screen doesn’t have much action and it’ll use a higher bitrate when a lot is happening on the screen.

To set the right Metadata for the Evo 3D in Handbrake you need to select iPhone Legacy in the presets window to the right, then go to the advanced tab and enter :frame-packing=3 at the end. This is very important, it took forever until I found this info buried at HTCdev.com and without it nothing will play in 3D. To make it easier I prepared a preset for you, that you can just import into Handbrake.

Now select the right audio files (you can include multiple audio sources, we can switch between them on the Evo3D), the demo movie I uploaded doesn’t have sound, so don’t worry. Don’t bother to include subtitles, if you need them, they need to be on the device in a separate file.

Export it, it needs to convert the whole movie, even if you don’t change anything and just add frame-packing it needs to convert the whole movie. So now we have a 3D side-by-side mp4 file that will work on the Evo 3D, now we just need to stream it.

To do that, I recommend you setup Tversity, Twonky Media server or any other streaming server solution. Since I’m using Tversity, I’ll continue with that.
Download it, install it and point it to the directory where you store your 3D movies. In the settings under Transcoder set it to “never”, so it will use the original files. If you are in the same network with your phone and PC, you can now stream the videos. But before we go into that, we’ll also set it up for wireless streaming. To do that, you need your local IP.
Open up a command prompt and enter ipconfig, you’ll see your machine’s ip under ip4 adress. This IP could change depending on your network. To setup a static IP you can go to http://www.portforward.com for detailed tutorials. For now just enter this IP under home network in Tversity.
Activate “the media server should accept requests originating outside the home network……” so you can access your media over your mobile data connection or from a friends place. Setup a username and password.

Now you need to setup your home router to Port Forward requests from Port 41952 to your PC’s Static IP. Go to http://www.portforward.com for detailed instructions on how to setup port forwarding for your specific home network.

When all this is done, you can visit http://www.whatismyip.com/ to get the IP adress of your network.

We now have the web adresses that we can connect to.
The local IP of your PC, which we use when we are in the same network. e.g. 192.168.1.102
The IP of your network, when we connect from outside. e.g. 78.197.68.36

Now go to your phone browser. Let’s say you are outside and not connected to your network, then you enter your IP +:41952 into the browser bar, e.g. 78.197.68.36:41952 . After you have entered your name and password, you see all the files that are in your shared folder. If you tap them, your handset will ask you which player it should use to play them.

The best video player on Android is the MX Video Player. It is the only video player that can seamlessly play all video formats and it even supports 3D playback on the device per hardware acceleration. It also lets you select the different audio lines, so you can create a single video file with multiple languages. It also supports subtitle files from the SD card and the newest version should bring subtitle support for streams, however I haven’t checked it out yet. Since we are streaming .mp4 files, you can easily skip through the movie and MX Video Player will save the last position should you need to stop playback.

Sadly DLNA isn’t as good as I hoped it would be, you can use DLNA with files on your phone, but it won’t work with 720p 3D videos.

To play the movies on a 3D TV , you need a MHL cable. I recommend the Sunshine Tronic MHL Cable, because the power connector is on the HDMI end and not on the phone. If you are playing a 3D movie on a 2D TV, you will get a smooth 2D image, it will display the left eye image on the TV and the right eye image on the phone.

Now your Evo 3D is a movie streaming beast, MX Video Player handles a lot of file formats (even though the won’t run as smooth as if you would transcode them) and if you transcode your movies with Handbrake, you get high quality streamable 3D video files, that you can stream worldwide through Tversity.

Have fun and happy movie watching!

  • Dasi

    Schönes Tutorial. Habe deinen Preset benutzt, aber leider sieht bei mir ALLES anders aus unter Advanced. Ist scheinbar nicht kompatibel :-/

  • Dan Mousavi

    Wenn du iPhone Legacy wählst und dann per hand 
    :frame-packing=3 an das ende hinzufügst solltest du die gleichen Einstellungen haben wie bei meinem Screenshot. Ansonsten stellt das preset die bitrate auf 4000kbits und die Auflösung auf 1280×720.

VIDEO

Sponsors

Twitter