Solutions Through IT

April 26, 2012

Samsung “SmartTV” talking to TVersity fun and games. SUCCESS! RESOLVED!

Filed under: Ramblings, Rants — Tags: , , — solutionsthroughit @ 19:51

 

Feel free to disregard this article – check here for a much better alternative to TVersity – SERViiO.  Better features, easier to configure and setup.  Not going through the stress of below again!

That was a fun few hours.  After spending an ahttps://solutionsthroughit.wordpress.com/2012/04/29/samsung-tv-talking-to-dnla-streaming-service-aka-serviio-is-a-lot-better-than-tversity/wful amount of time, I established how to configure my TV.  Problem: the solution required a fixed IP address on the TV.  This lead me down the path of trying to figure out what my inUASubstr value for my Samsung TV.  It’s actually harder to do this than I’d anticipated, and was also a royal PAIN to do.  If anyone changes the TV’s name, it’s going to break this solution.

The following code segment is what I used to get this to work.  I’m sure that it can be tweaked a little further, but for now, this works PERFECTLY if at least one of the two following items have been set.  Either the IP address (below) or the inUASubStr has to be populated.  In the <HTTPHeader /> tag below, on of the elements is “inUASubStr”.  In the example below, my string is SEC_HHP_[TV] DADS TV/1.0.  This is likely related to the fact that I’ve called my TV “Dads TV” :).

To find this value, I had to configure TVersity so that debug logging was turned on.  (Short answer: edit MediaServer.log4cxx.properties in the installation folder (C:\ProgramData\TVersity for my Windows7).  Change FATAL to DEBUG (first line, remember where/how to change it back).  Restart TVersity, and get the Samsung to “talk” to the player.  It will help a LOT if you don’t have any other uPNP media devices / computers on at the time, this includes the TVersity console. 

Now you can search TVersityMediaServer.log (windows\system32 folder or \windows\sysWOW64 for x64).   Search for the string USER-AGENT.  I found USER-AGENT: SEC_HHP_[TV] DADS TV/1.0 in the middle of my log, so simply chopped the “USER-AGENT:” portion off, and added it as the element value as per below.

<profile id="d49c5473-d274-044b-b6e4-dcbfe05d6fda"><!-- SamsungTV -->

    <friendlyName>Samsung TV</friendlyName>

    <manufacturerName>Samsung</manufacturerName>

    <modelName>UA46D6003</modelName>

    <icon>/images/device_icon_dtv.png</icon>

 

    <!--

    To be set manually by users

    -->

    <HTTPHeader outServerUA="Samsung HTTP streaming server
contentFeatures.dlna.org: DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01500000000000000000000000000000
" inUASubstr="SEC_HHP_[TV] DADS TV/1.0"/>

 

    <!-- The Name of the media serverdevice description file that should be used in conjunction with a player that

    corresponds to this profile -->

    <deviceDescription name="UPNP_AV_MediaServer_1.0.allservices.xml"/>

 

    <!-- The container identifier media players of this profile expect

    -->

    <contentDirectory shortUrl="true" friendlyFilename="false"/>

 

    <!-- When transcoding is needed to which format should we transcode -->

    <transcodeTarget audio="audio/mp3" video="video/mpeg2" photo="image/jpeg"

    onlineAudio="audio/mp3" onlineVideo="video/mpeg2" onlinePhoto="image/jpeg" />

 

    <maxVideoInfo width="1920" height="1080" bitrate="20000000" fps="60000/1001"></maxVideoInfo>

    <minVideoInfo width="0" height="0" bitrate="0" fps="15"></minVideoInfo>

 

    <maxImageInfo width="1920" height="1080"></maxImageInfo>

    <minImageInfo width="0" height="0"></minImageInfo>

 

    <maxAudioInfo sampleRate="48000" bitsperSample="16" nchannels="6" bitrate="1536000"></maxAudioInfo>

    <minAudioInfo sampleRate="44100" bitsperSample="8" nchannels="1" bitrate="20000"></minAudioInfo>

 

    <fileInfo maxSize="9223372036854775807"/>

 

    <mimetypeList>

    <mimetype value="audio/L16"/><!--PCM audio format-->

    <mimetype value="audio/wav"/><!-- WAV audio format-->

    <mimetype value="audio/x-wav" rename="audio/wav"/><!-- Another mume type used for WAV audio format-->

    <mimetype value="audio/wave" rename="audio/wav"/><!-- Another mume type used for WAV audio format-->

    <mimetype value="audio/x-pn-wav" rename="audio/wav"/><!-- Another mume type used for WAV audio format-->

 

    <mimetype value="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/x-mpeg" rename="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/mp3" rename="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/x-mp3" rename="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/mpeg3" rename="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/x-mpeg3" rename="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/mpg" rename="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/x-mpg" rename="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/x-mpegaudio" rename="audio/mpeg"/><!-- MP3 audio format-->

 

    <mimetype value="image/jpeg"/><!-- jpeg image format-->

    <mimetype value="image/jp2"/><!--JPEG2000 image format-->

    <mimetype value="image/bmp"/><!-- BMP image format-->

    <mimetype value="image/png"/><!-- PNG image format-->

    <mimetype value="image/gif"/><!-- GIF image format-->

 

    <mimetype value="video/mpeg"/><!-- MPEG (1 or 2 program or transport stream) video format-->

    <mimetype value="video/mpeg2" rename="video/mpeg"/><!-- MPEG2 (program or transport stream) video format-->

    <mimetype value="video/mp2p" rename="video/mpeg"/><!-- MPEG2 program stream (VOB) video format-->

    <mimetype value="video/dvd" rename="video/mpeg"/><!-- MPEG2 program stream (VOB) video format-->

    <mimetype value="video/mp2t"/><!-- MPEG2 transport stream video format-->

 

    <mimetype value="audio/aac"/><!--MPEG4 audio format-->

    <mimetype value="audio/x-aac" rename="audio/aac"/><!--MPEG4 audio format-->

    <mimetype value="audio/x-mpg" rename="audio/mpeg"/><!-- MP3 audio format-->

    <mimetype value="audio/x-mpegaudio" rename="audio/mpeg"/><!-- MP3 audio format-->

 

    <mimetype value="video/avi"><!-- AVI video format-->

    <codec name="MPEG4"/><!-- XVID, h263, DIVX version 4/5 and any mpeg4 ASP (layer 5) compliant stream (H264, AKA MPEG4 layer 10, is not included here)-->

    <codec name="MSMPEG4V3"/><!-- MSMPEG4v3 which is also DIVX version 3 (fourcc DIV3)and AngelPotion (fourcc AP41)-->

    <codec name="H264"/><!-- H264, AKA MPEG4 AVC or MPEG4 layer 10 or MPEG4.10 -->

    <codec name="MP2" maxBitrate="320000"/><!-- MPEG2 Audio--><!-- never tested in AVI-->

    <codec name="PCM_S16LE"/><!-- Uncompressed PCM Audio-->

    <codec name="PCM_S16BE"/><!-- Uncompressed DVD PCM Audio--><!-- never tested-->

    <codec name="MP3" maxBitrate="320000"/><!-- MPEG1 Layer 3 Audio-->

    <codec name="AC3"/><!-- Dolby Digital AC3 Audio-->

    </mimetype>

    <mimetype value="video/x-msvideo" rename="video/avi"/>

    <mimetype value="video/x-divx" rename="video/avi"/>

 

    <mimetype value="video/MP4V-ES"><!-- MPEG4 video format-->

    <codec name="MPEG4"/><!-- XVID, h263, DIVX version 4/5 and any mpeg4 ASP (layer 5) compliant stream (H264, AKA MPEG4 AVC or MPEG4 layer 10 or MPEG4.10, is not included here)-->

    <codec name="H263"/><!-- h263-->

    <codec name="H264"/><!-- H264, AKA MPEG4 AVC or MPEG4 layer 10 or MPEG4.10 -->

    <codec name="MP2" maxBitrate="320000"/><!-- MPEG2 Audio--><!-- never tested-->

    <codec name="PCM_S16LE"/><!-- Uncompressed PCM Audio-->

    <codec name="PCM_S16BE"/><!-- Uncompressed DVD PCM Audio--><!-- never tested-->

    <codec name="AC3"/><!-- Dolby Digital AC3 Audio-->

    <codec name="MP3" maxBitrate="320000"/><!-- MPEG1 Layer 3 Audio-->

    </mimetype>

    <mimetype value="video/mp4v" rename="video/MP4V-ES"/>

    <mimetype value="video/mp4" rename="video/MP4V-ES"/><!-- MPEG4 video format-->

    <mimetype value="video/h264" rename="video/avi"/><!-- MPEG4 video format-->

    <!-- mimetype value="video/x-matroska"/ -->

 

    </mimetypeList>

    </profile>

Alternatively, if you can’t be bothered (or can’t figure the above out) then hard set your TV’s IP address.  You can then add the following code below the <icon> tag and above the <!—To be set

<devicesIP value="[the IP address of your TV]"/>

This will get you grooving your TV, without any other requirements!

If anyone has any further success (especially with ff/rr), please comment / ping-back below.  If this helps you, please don’t forget let us know how it helped!

Advertisements

1 Comment »

  1. […] last post described the effort that I had to put in, to get TVersity to talk to my TV, and still not function […]

    Pingback by Samsung TV talking to DNLA streaming service (aka SERViiO is a lot better than TVersity!) « Solutions Through IT — April 29, 2012 @ 10:35


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: