Difference between revisions of "Media Play and DLNA"
(Created page with 'These Samsung TVs are capable of playing serveral audio, video and image formats. These media contents can be played from an USB mass storage device (pendrive, USB hard disk), orâ¦') |
m |
||
(10 intermediate revisions by 5 users not shown) | |||
Line 355: | Line 355: | ||
The TV also known to have limitations for H.264 (e.g. MKV playing), the number of supported Reference Frames in the H.264 encoded content is limited. Some say that at most 9 reference frames are supported, however I personally experienced problems (Unsupported video format error, or instant TV poweroff) with 1920x1080 H.264 video with 8 reference frames. | The TV also known to have limitations for H.264 (e.g. MKV playing), the number of supported Reference Frames in the H.264 encoded content is limited. Some say that at most 9 reference frames are supported, however I personally experienced problems (Unsupported video format error, or instant TV poweroff) with 1920x1080 H.264 video with 8 reference frames. | ||
+ | |||
+ | == DLNA == | ||
+ | DLNA media play has stricter limitations than USB media play. This is significant reason for the firmware modifications to use NFS or SMB/CIFS (which should have the same limitations as USB media play). These limitations of DLNA include the following: | ||
+ | * You can't use features like FWD, RWD, PAUSE with some DLNA servers, and even with the Samsung PC Share Manager, sometimes (depending on media type and file size) some of these functions are not available. | ||
+ | * With some DLNA servers, some codecs are not supported when using DLNA but work fine via USB/NFS. | ||
+ | * You can't select the audio channel of a multi-language media file with DLNA playback. | ||
+ | |||
+ | Beside the Samsung software (Samsung PC Share Manager), you can also use the open source DLNA servers like uShare or Mediathomb. These can also be used on Mac OS X or Linux. On OSX, they're hard to install because you need to compile them by yourself. Out of the box, none of the media servers below (other than Samsung PC Share Manager) work 100% well. Below are tested programs with comments on current problems, maybe someone can provide some resolutions, and maybe it will help somebody. | ||
+ | |||
+ | Windows XP: | ||
+ | * Samsung PC Share Manager - Subtitles OK, all ok. | ||
+ | * Tversity Media Server - Unsupported file format on every video file, tried transcoding and etc combinations. | ||
+ | * FUPPES - Unsupported file format on every video file. | ||
+ | * TwonkyMedia - DIvX works, rest (including mkv) - Unsupported file format | ||
+ | * PlayOn + with plugin "LocalFiles" - randomly drops out from video, sometimes jamming. | ||
+ | * Mezzmo - Unsupported file format on every video file. | ||
+ | * CyberLinkMediaServer - no subtitles, no pausing, beside this everything works | ||
+ | * Asset - only audio | ||
+ | * [http://www.wildmediaserver.com/ Wild Media Server] - (reported to work fine) | ||
+ | |||
+ | Linux: | ||
+ | * Mediatomb - By default, unsupported file format on every video file. However it can be configured to support every file the PC Share Manager supports (even with FF, PAUSE and REWIND support where the PC Share Manager would support it), except the subtitles. | ||
+ | * uShare - Unsupported file format on every video file | ||
+ | * minidlna - Works with C650, D6500 and HT-C5xxx series. | ||
+ | * Plex - Works on C650 and HT-C5xxx Series.[http://wiki.samygo.tv/index.php5/Samsung_Apps_widgets_list#Plex] | ||
+ | * MythTV - Built-in UPnP server works with D6500 series (even DVB-S/DVB-S2 recordings can be streamed). | ||
+ | |||
+ | === Mediatomb === | ||
+ | Use the latest (svn) version of mediatomb with compiled in ffmpeg support. | ||
+ | |||
+ | Add this to the server section of config.xml: | ||
+ | <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=01700000000000000000000000000000" /> | ||
+ | </custom-http-headers> | ||
+ | |||
+ | Configure mime types this way in section import/mappings/extension-mimetype: | ||
+ | <map from="avi" to="video/x-msvideo"/> | ||
+ | <map from="ts" to="video/mpeg"/> | ||
+ | <map from="divx" to="video/mpeg"/> | ||
+ | <map from="mp4" to="video/MP4V-ES"/> | ||
+ | <map from="mkv" to="video/x-msvideo"/> | ||
+ | |||
+ | Extend the protocol info in the server section. | ||
+ | <protocolInfo extend="yes"/> | ||
+ | |||
+ | '''Add subtitles support:'''<br> | ||
+ | <br> | ||
+ | Use latest patch for mediatomb <br> | ||
+ | http://sourceforge.net/tracker/?func=detail&aid=3014026&group_id=129766&atid=715782 | ||
+ | Tested (reported) from UExx5000. | ||
+ | ==Controlling Samsung TV adjustments== | ||
+ | |||
+ | Samsung TV’s (series D and probably series C) are equipped with some feature called Rendering Control Service. It is simply network protocol useful to control some parameters related to audio and video options (e.g. volume level, brightness etc). | ||
+ | |||
+ | Protocol is based on HTTP and XML technology. Requests are sent by TCP port 52235 and looks like: | ||
+ | <pre> | ||
+ | POST /upnp/control/RenderingControl1 HTTP/1.1 | ||
+ | Content-Type: text/xml; charset="utf-8 | ||
+ | SOAPACTION: "SoapAction:urn:schemas-upnp-org:service:RenderingControl:1#GetVolume" | ||
+ | Cache-Control: no-cache | ||
+ | Host: 192.168.1.102:52235 | ||
+ | Content-Length: 354 | ||
+ | Connection: Close | ||
+ | |||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> | ||
+ | <s:Body> | ||
+ | <ns0:GetVolume xmlns:ns0="urn:schemas-upnp-org:service:RenderingControl:1"> | ||
+ | <InstanceID>0</InstanceID> | ||
+ | <Channel>Master</Channel> | ||
+ | </ns0:GetVolume> | ||
+ | </s:Body> | ||
+ | </s:Envelope> | ||
+ | </pre> | ||
+ | SOAPACTION contains action name (GetVolume), rest of this string is constant. Host IP is, of course, our device address. Content-Length define payload data length (XML data). Rest of the headers above is rather self-explanatory. | ||
+ | |||
+ | Header lines are separated by two bytes CR+LF (carriage return 0x0D followed by new line symbol 0x0A). Between headers and payload there is one extra empty line – CR+LF+CR+LF. | ||
+ | |||
+ | XML data is almost entirely predefined constant. Only <ns0:Getvolume …>…</ns0:GetVolume> are customizable. GetVolume is action name and the subtags (InstanceID, Channel) are parameters with determined values. List of all valid actions, values and parameters are covered in http://upnp.org/specs/av/UPnP-av-RenderingControl-v1-Service.pdf, but not all described functions are working on real TV. | ||
+ | TV response will be similar to request: | ||
+ | <pre> | ||
+ | HTTP/1.1 200 OK | ||
+ | CONTENT-LENGTH: 289 | ||
+ | CONTENT-TYPE: text/xml; charset="utf-8" | ||
+ | DATE: Thu, 01 Jan 1970 03:25:13 GMT | ||
+ | EXT: | ||
+ | SERVER: Linux/9.0 UPnP/1.0 PROTOTYPE/1.0 | ||
+ | |||
+ | <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding | ||
+ | /"><s:Body><u:GetVolumeResponse xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><CurrentVolume>6</CurrentVolume> | ||
+ | </u:GetVolumeResponse></s:Body></s:Envelope> | ||
+ | </pre> | ||
+ | We can of course set up parameters too. E.g. it is possible to set volume: | ||
+ | <pre> | ||
+ | POST /upnp/control/RenderingControl1 HTTP/1.1 | ||
+ | Content-Type: text/xml; charset="utf-8 | ||
+ | SOAPACTION: "SoapAction:urn:schemas-upnp-org:service:RenderingControl:1#SetVolume" | ||
+ | Cache-Control: no-cache | ||
+ | Host: 192.168.1.102:52235 | ||
+ | Content-Length: 389 | ||
+ | Connection: Close | ||
+ | |||
+ | <?xml version="1.0" encoding="utf-8"?> | ||
+ | <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> | ||
+ | <s:Body> | ||
+ | <ns0:SetVolume xmlns:ns0="urn:schemas-upnp-org:service:RenderingControl:1"> | ||
+ | <InstanceID>0</InstanceID> | ||
+ | <Channel>Master</Channel> | ||
+ | <InstanceID>0</InstanceID> | ||
+ | <DesiredVolume>69</DesiredVolume> | ||
+ | </ns0:SetVolume> | ||
+ | </s:Body> | ||
+ | </s:Envelope> | ||
+ | </pre> | ||
+ | |||
+ | [http://sc0ty.pl/2012/02/controlling-samsung-tv-adjustments/ Original article] by sc0ty.pl |
Latest revision as of 13:27, 21 January 2013
These Samsung TVs are capable of playing serveral audio, video and image formats. These media contents can be played from an USB mass storage device (pendrive, USB hard disk), or from a DLNA network server. With firmware modifications it is possible to add support for media play over NFS or SMB/CIFS. This page tries to give detailed info about the playable formats, (the offical list does not go into details and also states that even with a supported media format not all content can be played) and also tries to outline the limitations of playing media content through DLNA using different DLNA servers.
Contents
Supported formats
Below is a table of the (more or less officially) supported media formats for USB playing (DLNA support may be different):
File Extension | Container | Video Decoder | Audio Codec | Resolution | Frame/sec | Mbit/sec |
*.avi |
AVI | Divx 3.11 | MP3 AC3 LPCM ADPCM (MULAW ALAW) |
800x600 | 6 ~ 30 | 8 |
Divx 4.x | 800x600 | 6 ~ 30 | 8 | |||
Divx 5.1 | 800x600 | 6 ~ 30 | 8 | |||
Divx 6.0 | 800x600 | 6 ~ 30 | 20 | |||
XviD | 1920x1080 | 6 ~ 30 | 20 | |||
H.264 BP | 1920x1080 | 6 ~ 30 | 25 | |||
H.264 MP | 1920x1080 | 6 ~ 30 | 25 | |||
H.264 HP | 1920x1080 | 6 ~ 30 | 25 | |||
MPEG-4 SP | 800x600 | 6 ~ 30 | 8 | |||
MPEG-4 ASP | 800x600 | 6 ~ 30 | 8 | |||
Motion JPEG | 800x600 | 6 ~ 30 | 8 | |||
*.mkv | MKV | Divx 3.11 | MP3 AC3 LPCM ADPCM (MULAW ALAW) |
800x600 | 6 ~ 30 | 8 |
Divx 4.x | 800x600 | 6 ~ 30 | 8 | |||
Divx 5.1 | 800x600 | 6 ~ 30 | 8 | |||
Divx 6.0 | 800x600 | 6 ~ 30 | 20 | |||
XviD | 1920x1080 | 6 ~ 30 | 20 | |||
H.264 BP | 1920x1080 | 6 ~ 30 | 25 | |||
H.264 MP | 1920x1080 | 6 ~ 30 | 25 | |||
H.264 HP | 1920x1080 | 6 ~ 30 | 8 | |||
MPEG-4 SP | 800x600 | 6 ~ 30 | 8 | |||
MPEG-4 ASP | 800x600 | 6 ~ 30 | 8 | |||
Motion JPEG | 800x600 | 6 ~ 30 | 8 | |||
*.asf | ASF | Divx 3.11 | WMA MP3 AC3 LPCM ADPCM (MULAW ALAW), AAC |
800x600 | 6 ~ 30 | 8 |
Divx 4.x | 800x600 | 6 ~ 30 | 8 | |||
Divx 5.1 | 800x600 | 6 ~ 30 | 8 | |||
Divx 6.0 | 800x600 | 6 ~ 30 | 20 | |||
XviD | 1920x1080 | 6 ~ 30 | 20 | |||
H.264 BP | 1920x1080 | 6 ~ 30 | 25 | |||
H.264 MP | 1920x1080 | 6 ~ 30 | 25 | |||
H.264 HP | 1920x1080 | 6 ~ 30 | 25 | |||
MPEG-4 SP | 800x600 | 6 ~ 30 | 8 | |||
MPEG-4 ASP | 800x600 | 6 ~ 30 | 8 | |||
wmv(VC1) | Window Media Video v9 | 1920x1080 | 6 ~ 30 | 25 | ||
*.mp4 | MP4(SMP4) | H.264 BP | ADPCM (HE)-AAC MP3 |
1920x1080 | 6 ~ 30 | 25 |
H.264 MP | 1920x1080 | 6 ~ 30 | 25 | |||
H.264 HP | 1920x1080 | 6 ~ 30 | 25 | |||
MPEG-4 SP | 800x600 | 6 ~ 30 | 8 | |||
MPEG-4 ASP | 800x600 | 6 ~ 30 | 8 | |||
XviD | 1920x1080 | 6 ~ 30 | 20 | |||
*.3gp | 3GPP | H.264 BP | ADPCM (HE)-AAC |
1920x1080 | 6 ~ 30 | 25 |
H.264 MP | 1920x1080 | 6 ~ 30 | 25 | |||
H.264 HP | 1920x1080 | 6 ~ 30 | 25 | |||
MPEG-4 SP | 800x600 | 6 ~ 30 | 8 | |||
MPEG-4 ASP | 800x600 | 6 ~ 30 | 8 | |||
*.vro(ps) | VRO VOB |
MPEG2 | AC3, MPEG LPCM |
1920x1080 | 6 ~ 30 | 40 |
MPEG1 | 1920x1080 | 6 ~ 30 | 40 | |||
*.mpg *.mpeg(ps) |
MPEG1 (Program Stream) | AC3, MPEG LPCM |
1920x1080 | 6 ~ 30 | 40 | |
MPEG2 (Program Stream) | 1920x1080 | 6 ~ 30 | 40 | |||
others(ts) | MPEG2(Transport Stream) | AAC, HE-AAC MP3 DD+ |
1920x1080 | 6 ~ 30 | 25 | |
H.264 HP (Transport Stream) | 1920x1080 | 6 ~ 30 | 40 | |||
VC1 (Transport Stream) | 1920x1080 | 6 ~ 30 | 25 |
Unsupported formats
There are some audio codecs (apart from the exotic propriatery ones) that are unfortunately not supported. These are:
- DTS
- AMR
- OGG
- ALAC
The TV also known to have limitations for H.264 (e.g. MKV playing), the number of supported Reference Frames in the H.264 encoded content is limited. Some say that at most 9 reference frames are supported, however I personally experienced problems (Unsupported video format error, or instant TV poweroff) with 1920x1080 H.264 video with 8 reference frames.
DLNA
DLNA media play has stricter limitations than USB media play. This is significant reason for the firmware modifications to use NFS or SMB/CIFS (which should have the same limitations as USB media play). These limitations of DLNA include the following:
- You can't use features like FWD, RWD, PAUSE with some DLNA servers, and even with the Samsung PC Share Manager, sometimes (depending on media type and file size) some of these functions are not available.
- With some DLNA servers, some codecs are not supported when using DLNA but work fine via USB/NFS.
- You can't select the audio channel of a multi-language media file with DLNA playback.
Beside the Samsung software (Samsung PC Share Manager), you can also use the open source DLNA servers like uShare or Mediathomb. These can also be used on Mac OS X or Linux. On OSX, they're hard to install because you need to compile them by yourself. Out of the box, none of the media servers below (other than Samsung PC Share Manager) work 100% well. Below are tested programs with comments on current problems, maybe someone can provide some resolutions, and maybe it will help somebody.
Windows XP:
- Samsung PC Share Manager - Subtitles OK, all ok.
- Tversity Media Server - Unsupported file format on every video file, tried transcoding and etc combinations.
- FUPPES - Unsupported file format on every video file.
- TwonkyMedia - DIvX works, rest (including mkv) - Unsupported file format
- PlayOn + with plugin "LocalFiles" - randomly drops out from video, sometimes jamming.
- Mezzmo - Unsupported file format on every video file.
- CyberLinkMediaServer - no subtitles, no pausing, beside this everything works
- Asset - only audio
- Wild Media Server - (reported to work fine)
Linux:
- Mediatomb - By default, unsupported file format on every video file. However it can be configured to support every file the PC Share Manager supports (even with FF, PAUSE and REWIND support where the PC Share Manager would support it), except the subtitles.
- uShare - Unsupported file format on every video file
- minidlna - Works with C650, D6500 and HT-C5xxx series.
- Plex - Works on C650 and HT-C5xxx Series.[1]
- MythTV - Built-in UPnP server works with D6500 series (even DVB-S/DVB-S2 recordings can be streamed).
Mediatomb
Use the latest (svn) version of mediatomb with compiled in ffmpeg support.
Add this to the server section of config.xml:
<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=01700000000000000000000000000000" /> </custom-http-headers>
Configure mime types this way in section import/mappings/extension-mimetype:
<map from="avi" to="video/x-msvideo"/> <map from="ts" to="video/mpeg"/> <map from="divx" to="video/mpeg"/> <map from="mp4" to="video/MP4V-ES"/> <map from="mkv" to="video/x-msvideo"/>
Extend the protocol info in the server section.
<protocolInfo extend="yes"/>
Add subtitles support:
Use latest patch for mediatomb
http://sourceforge.net/tracker/?func=detail&aid=3014026&group_id=129766&atid=715782
Tested (reported) from UExx5000.
Controlling Samsung TV adjustments
Samsung TV’s (series D and probably series C) are equipped with some feature called Rendering Control Service. It is simply network protocol useful to control some parameters related to audio and video options (e.g. volume level, brightness etc).
Protocol is based on HTTP and XML technology. Requests are sent by TCP port 52235 and looks like:
POST /upnp/control/RenderingControl1 HTTP/1.1 Content-Type: text/xml; charset="utf-8 SOAPACTION: "SoapAction:urn:schemas-upnp-org:service:RenderingControl:1#GetVolume" Cache-Control: no-cache Host: 192.168.1.102:52235 Content-Length: 354 Connection: Close <?xml version="1.0" encoding="utf-8"?> <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <ns0:GetVolume xmlns:ns0="urn:schemas-upnp-org:service:RenderingControl:1"> <InstanceID>0</InstanceID> <Channel>Master</Channel> </ns0:GetVolume> </s:Body> </s:Envelope>
SOAPACTION contains action name (GetVolume), rest of this string is constant. Host IP is, of course, our device address. Content-Length define payload data length (XML data). Rest of the headers above is rather self-explanatory.
Header lines are separated by two bytes CR+LF (carriage return 0x0D followed by new line symbol 0x0A). Between headers and payload there is one extra empty line – CR+LF+CR+LF.
XML data is almost entirely predefined constant. Only <ns0:Getvolume …>…</ns0:GetVolume> are customizable. GetVolume is action name and the subtags (InstanceID, Channel) are parameters with determined values. List of all valid actions, values and parameters are covered in http://upnp.org/specs/av/UPnP-av-RenderingControl-v1-Service.pdf, but not all described functions are working on real TV. TV response will be similar to request:
HTTP/1.1 200 OK CONTENT-LENGTH: 289 CONTENT-TYPE: text/xml; charset="utf-8" DATE: Thu, 01 Jan 1970 03:25:13 GMT EXT: SERVER: Linux/9.0 UPnP/1.0 PROTOTYPE/1.0 <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding /"><s:Body><u:GetVolumeResponse xmlns:u="urn:schemas-upnp-org:service:RenderingControl:1"><CurrentVolume>6</CurrentVolume> </u:GetVolumeResponse></s:Body></s:Envelope>
We can of course set up parameters too. E.g. it is possible to set volume:
POST /upnp/control/RenderingControl1 HTTP/1.1 Content-Type: text/xml; charset="utf-8 SOAPACTION: "SoapAction:urn:schemas-upnp-org:service:RenderingControl:1#SetVolume" Cache-Control: no-cache Host: 192.168.1.102:52235 Content-Length: 389 Connection: Close <?xml version="1.0" encoding="utf-8"?> <s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <ns0:SetVolume xmlns:ns0="urn:schemas-upnp-org:service:RenderingControl:1"> <InstanceID>0</InstanceID> <Channel>Master</Channel> <InstanceID>0</InstanceID> <DesiredVolume>69</DesiredVolume> </ns0:SetVolume> </s:Body> </s:Envelope>
Original article by sc0ty.pl