初老のボケ防止日記

おっさんのひとりごとだから気にしないようにな。

DLNAってなんじゃらほい? - M-SEACHの結果をみてみる -

前回、UPnPのデバイス検出であるM-SARCHを投げて、応答が変える所まで試してみたんだけど、機器によっては2回も応答を返してきたり、そもそも応答だけではぱっとその機器がDNLAでいうどんな機能をもっているかわからなかったのでもう少し解析をしてみることにした。


SSDPのM-SEACHを投げたらこんな形のレスポンスがいくつかの機器から帰ってきた。

  • VAIO
----------- from ('xxx.xxx.x.12', 1900)
HTTP/1.1 200 OK
ST:upnp:rootdevice
USN:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx::upnp:rootdevice
Location:http://xxx.xxx.x.12:2869/upnphost/udhisapi.dll?content=uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
OPT:"http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS:3df856bdbb7820c23a43a6559076b14d
Cache-Control:max-age=900
Server:Microsoft-Windows-NT/5.1 UPnP/1.0 UPnP-Device-Host/1.0
Ext:

解析してみた

応答元のIPアドレスや、OSがWindowsであることから、VAIOが返してきたとはわかったけれど、それがDLNAでいうDMSなのかDMRなのかはこれだけだとわからない。レスポンスを見る限り、"LOCATION" というのが怪しい、というかそれしかねえ。ということで、仕様書を見る。

http://upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0.pdf

HTTP/1.1 200 OK
CACHE-CONTROL: max-age = seconds until advertisement expires
DATE: when response was generated
EXT:
LOCATION: URL for UPnP description for root device
SERVER: OS/version UPnP/1.0 product/version
ST: search target
USN: advertisement UUID

  • "LOCATION"に関する説明

Required. Contains a URL to the UPnP description of the root device. Normally the host portion contains a literal IP
address rather than a domain name in unmanaged networks. Specified by UPnP vendor. Single URL.

応答してきた機器のUPnPに関する記述がされているXMLだな、うん。

ということでVAIOからのM-SEARCHレスポンスのLOCATIONに記述されたURLにHTTPでアクセスしてみたら、こんなXMLが表示される(長いので一部省略)。

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
  <specVersion>
    <major>1</major>
    <minor>0</minor>
  </specVersion>
  <device>
    <UDN>uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</UDN>
    <friendlyName>hogePC: fuga:</friendlyName>
    <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
    <manufacturer>Microsoft Corporation</manufacturer>
    <manufacturerURL>http://www.microsoft.com</manufacturerURL>
    <modelName>Windows Media Player Sharing</modelName>
    <modelNumber>12.0</modelNumber>
    <modelURL>http://go.microsoft.com/fwlink/?LinkId=105926</modelURL>
    <serialNumber>{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}</serialNumber>
    <dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC>
    <iconList>(snip)</iconList>
    <serviceList>(snip)</serviceList>
  </device>
</root>

ここで気になる記述は以下の2つ。

  • deviceType
<deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>

"deviceType"はUPnPで定義されているものらしい。

http://upnp.org/specs/av/av1/

「MediaServer」と「MediaRenderer」、なんとなくDMSとDMRに対応するものと想像できる

  • dlna:X_DLNADOC
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC>


"dlna:X_DLNADOC"は名前空間からしてdlnaの独自定義っぽい。でもって「DMS-1.50」とあるので

ワイはDMSや、Didital Media Serverや

ということなんだろう。

他の機器のM-SEARCHレスポンスのLOCATIONに記述されたURLにアクセスしてみて、"deviceType"と"dlna:X_DLNADOC"を見てみる

  • SH-06E
<deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">M-DMS-1.50</dlna:X_DLNADOC>
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50</dlna:X_DLNADOC>
deviceType dlna:X_DLNADOC
MediaServer DMS-1.50,M-DMS-1.50
MediaRenderer DMR-1.50

DMSとDMRと機能が異なるので別々にレスポンスを返してきているんだろうか。あ、M-DMSはよくわからないので今回は見なかったことにしよう。

  • CMT-X7CD
    <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
    <deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
    <dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50</dlna:X_DLNADOC>
deviceType dlna:X_DLNADOC
MediaServer (なし)
MediaRenderer DMR-1.50

UPnPとしてはMediaServerなんだけど、DMSがないということはDLNAとしてのDMS機能はない。つまり、SONY製品として連携するときはMediaServerになるってことなんだろうか。大人の世界って複雑。

  • QNAP
<deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">M-DMS-1.50</dlna:X_DLNADOC>
deviceType dlna:X_DLNADOC
MediaServer DMS-1.50,M-DMS-1.50

DMSでっせと。

  • WZR-1750DHP2
<deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">M-DMS-1.50</dlna:X_DLNADOC>
deviceType dlna:X_DLNADOC
MediaServer DMS-1.50,M-DMS-1.50

QNAPと同じTwonkyServerらしいのでDMSですよと。

我が家のDLNA機器とその機能

M-SEARCHの結果からわかるのは以下のとおり。

機器 機種 ソフト DLNAとしての機能
NAS QNAP Twonky Server DMS
AP WZR-1750DHP2 Twonky Serverだろ? DMS
PC VAIO WMP DMS
Android SH-06E BubbleUPnP DMS,DMR
NWスピーカー CMT-X7CD - DMR

あと、BubbleUPnPはDMPでもあるし、DMCにもなる。これは実際にそういう操作ができるから。あと、WMPもDMPにはなるのかな。でもこれらはM-SEARCHで検出はされない。他所から利用できる機能ではないから(自分だけ知っていればいいので)通知はしないってことなんだろう。

さて、それぞれの能力はわかったところで、じゃあDMSのコンテンツを再生するときにそこにどんなコンテンツが存在するのかリスト表示するんだけど、それはどうやってるんだろうかというのは次回に持越し。