DLNA on samsung UE32D5005

I have recently bought a Samsung UE32D5005 led television. It was cheap and advertised as DLNA compatible. I wanted the Television to be in our bedroom and I really did not want to buy yet another media player which had to be wall mounted due to lack of space. DLNA as advertised by Samsung should be able to help me stream my video content directly from a server to the TV.

DLNA
Created by SONY in 2003 in an attempt to ease connection of different devices. The goal was to make it easier for the consumer to share videos, music and pictures between devices. The idea is great. By using a DLNA server you can stream media content directly do dlna clients. That be stereos, televisions or even mobile phones. Unfortunately seeing the DLNA certification on a television does not mean it will play all your media. The standard does only describe how devices connect, not what they can play. When buying a TV you should look in the manual before purchasing and check if the formats supported match your media collection 😉 I did look at the manual for Samsung UE32D5005 and it is able to play most stuff:

 

As seen Samsung UE32D5005 can play most common formats. If your tv does not support your local media format you have two options. Reencode your entire collection to a format that the tv supports. Or transcode your media. Transcoding is a process where the server decodes your files on the fly and streams them to the DLNA client. Depending on hardware there will be some CPU usage required to transcode. Not all DLNA servers do support transcoding. DLNA servers found in NAS servers will almost never support transcoding as they are usually not powerful enough for this process. Speaking of DLNA servers, windows 7 does have inbuilt DLNA server. Samsung also has their own DLNA server called Allshare. In my opinion a crappy piece of software but Samsung likes it, and looking at Samsungs support this is the only DLNA server ever mentioned.

All this does indeed sound wonderful 🙂 The sharing of the future. DLNA servers can run on virtually anything and there are lots of different servers to try and download. Real world use is a bit different. Having browsed around the internet one will quickly come to the conclusion that the companies all have decided different implementations of the standard. The very same reason that the number of DLNA server is higher than expected. You will find that one server will work, where another will not do anything on your tv set. If using windows your could just run the included software (in this case Allshare) but turning my main computer on to watch a movie on the bedroom Television is simply not a choice for me. My Linux server runs 24/7 so this is the obvious location of the DLNA server. I tested a few DLNA servers. MiniDLNA runs out of the box. Exposes all the selected media to the television. Subtitle support also works but playback is not fluid. There will be cuts in audio and video every 10-15 seconds. Mediatomb gave me a much better result. But i did need to modify the config and applying some Samsung only stuff 😉

I also needed to patch the source code to allow subtitle support in mediatomb. The patch can be found here

I can verify that it works nicely. Movie playback using Mediatomb is (almost) fluid. There still are some small hickups which i have not been able to solve yet but they are not coming at at rate that makes the movie unwatchable. it will play anything (avi, mp4 and mkv) and quality is very good. Also thumbnails are working which is good for the kids when they need to pick a movie. I will update this post as time allow as i do not yet have time for much testing.
Gentoo specifics

Add following line to /etc/portage/package.use

net-misc/mediatomb libextractor thumbnail inotify -mysql

Optional (for subtitle support)

cd /usr/portage/net-misc/mediatomb/files
wget http://eth0.dk/files/samsung_video_subtitles.patch

Edit /usr/portage/net-misc/mediatomb/mediatomb-0.12.1.ebuild and insert

epatch "${FILESDIR}/samsung_video_subtitles.patch"

Below following line:

epatch "${FILESDIR}/${P}-gcc46.patch"

mediatomb-0.12.1.ebuild will look like this:

51
52
53
54
55
56
57
58
src_prepare() {
epatch "${FILESDIR}/${P}-gcc46.patch"
epatch "${FILESDIR}/samsung_video_subtitles.patch"
if use javascript && has_version ">=dev-lang/spidermonkey-1.8.5" ; then
epatch "${FILESDIR}"/${P}-mozjs185.patch
eautoreconf
fi
}

emerge will surely complain about the unknown file and the changed ebuild. Recreate both by issuing following commands:

cd /usr/portage/net-misc/mediatomb
ebuild mediatomb-0.12.1.ebuild manifest
ebuild mediatomb-0.12.1.ebuild digest

Please note that re-syncing the portage tree will remove the changes.

Install mediatomb

emerge mediatomb

Edit /etc/mediatomb/config.xml and add:

<custom-http-headers>
    <add header="transferMode.dlna.org: Streaming"/>
    <add header="contentFeatures.dlna.org: DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=017000 00000000000000000000000000"/>
</custom-http-headers>

Change

<protocolInfo extend="yes"/>

to

<protocolInfo extend="yes" samsung-hack="yes"/>

If you want subtitle support.

Add following mappings to allow both mkv and avi playback.

<map from="avi" to="video/mpeg"/>
<map from="mkv" to="video/mpeg"/>

Now Mediatomb is installed and should be ready to launch:

/etc/init.d/mediatomb start

and you are ready to go. The webserver part can be reached at url

http://localhost:49152/

About soehest