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で定義されているものらしい。
「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のコンテンツを再生するときにそこにどんなコンテンツが存在するのかリスト表示するんだけど、それはどうやってるんだろうかというのは次回に持越し。