使用wireshark
抓包分析DMR
和DMP
实现,包括设备发现、控制、播放等过程
环境
- DMS: minidlna
- DMR: gmrender-resurrect
- DMP: VLC
- 抓包数据 DMR-Wireshark
- 抓包数据 DMP-Wireshark
DMR 流程
Notify
或应答M-SEARCH
->应答GET XML/SCPD
->SOAP ACTION
->GET DATA
->PLAY
DMR 设备入网广播
使用ssdp:alive
通知消息,协议upnpv2.0 1.2
,包含三种数据包
- Three discovery messages for the root device.
- Two discovery messages for each embedded device. 可选项,在本次抓包中不存在
- Once for each service type in each device.
结构如下:
Frame 33-35
为表 1 数据,Frame 36-38
为表 3 数据,分别为三种service
NT: urn:schemas-upnp-org:service:AVTransport:1\r\n
NT: urn:schemas-upnp-org:service:ConnectionManager:1\r\n
NT: urn:schemas-upnp-org:service:RenderingControl:1\r\n
相关代码:
33-35
为libupnp:UpnpSendAdvertisement
36-38
为libupnp:
DMC 入网搜索设备
发送M-SEARCH ssdp:discover
发现设备,协议upnpv2.0: 1.3
应答格式
对应帧为243-253
,对应两种ST search target
upnp:rootdevice
,Search for root devices only.urn:schemas-upnp-org:device:deviceType:ver
,Search for any device of this type wheredeviceType
andver
are defined by the UPnP Forum working committee.ST: urn:schemas-upnp-org:device:MediaServer:1\r\n
ST: urn:schemas-upnp-org:device:MediaRenderer:1\r\n
应答帧Frame 251
,信息如下
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=100
DATE: Tue, 26 Mar 2019 00:57:36 GMT
EXT:
LOCATION: http://192.168.199.183:49494/description.xml
OPT: "http://schemas.upnp.org/upnp/1/0/"; ns=01
01-NLS: 066fa5e8-4f62-11e9-9d14-bbebc675453c
SERVER: Linux/4.13.0-45-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.22
X-User-Agent: redsonic
ST: urn:schemas-upnp-org:device:MediaRenderer:1
USN: uuid:GMediaRender-1_0-000-000-002::urn:schemas-upnp-org:device:MediaRenderer:1
DMC 获取描述文件
通过HTTP GET/POST
来完成,协议upnp: 2
Frame 257
GET /description.xml HTTP/1.1
HOST: 192.168.199.183:49494
DATE: Tue, 26 Mar 2019 00:57:35 GMT
CONNECTION: close
USER-AGENT: Linux/4.4.23+ UPnP/1.0 HUAWEI_iCOS/iCOS V1R1C00 DLNADOC/1.50
应答帧258-261
使用TCP
发送数据
HTTP/1.1 200 OK
CONTENT-LENGTH: 2073
CONTENT-TYPE: text/xml
DATE: Tue, 26 Mar 2019 00:57:36 GMT
LAST-MODIFIED: Tue, 26 Mar 2019 00:56:44 GMT
SERVER: Linux/4.13.0-45-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.22
X-User-Agent: redsonic
CONNECTION: close
description.xml
如下
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
<presentationURL/>
<friendlyName>My Renderer</friendlyName>
<manufacturer>Ivo Clarysse, Henner Zeller</manufacturer>
<manufacturerURL>http://github.com/hzeller/gmrender-resurrect</manufacturerURL>
<modelDescription>gmediarender 0.0.7-git</modelDescription>
<modelName>gmediarender</modelName>
<modelNumber>2018-08-18_a7b0b1b</modelNumber>
<modelURL>http://github.com/hzeller/gmrender-resurrect</modelURL>
<UDN>uuid:GMediaRender-1_0-000-000-002</UDN>
<iconList>
<icon>
<mimetype>image/png</mimetype>
<width>64</width>
<height>64</height>
<depth>24</depth>
<url>/upnp/grender-64x64.png</url>
</icon>
<icon>
<mimetype>image/png</mimetype>
<width>128</width>
<height>128</height>
<depth>24</depth>
<url>/upnp/grender-128x128.png</url>
</icon>
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
<serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
<SCPDURL>/upnp/rendertransportSCPD.xml</SCPDURL>
<controlURL>/upnp/control/rendertransport1</controlURL>
<eventSubURL>/upnp/event/rendertransport1</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
<SCPDURL>/upnp/renderconnmgrSCPD.xml</SCPDURL>
<controlURL>/upnp/control/renderconnmgr1</controlURL>
<eventSubURL>/upnp/event/renderconnmgr1</eventSubURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<SCPDURL>/upnp/rendercontrolSCPD.xml</SCPDURL>
<controlURL>/upnp/control/rendercontrol1</controlURL>
<eventSubURL>/upnp/event/rendercontrol1</eventSubURL>
</service>
</serviceList>
</device>
<URLBase>http://192.168.199.183:49494/</URLBase>
</root>
service
分析
<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<SCPDURL>/upnp/rendercontrolSCPD.xml</SCPDURL>
<controlURL>/upnp/control/rendercontrol1</controlURL>
<eventSubURL>/upnp/event/rendercontrol1</eventSubURL>
</service>
serviceType
: UPnP service typeserviceId
: Service identifierSCPDURL
: URL for service description clause 2.5controlURL
: URL for control clause 3eventSubURL
: URL for eventing clause 4
数据包分析
Frame 282-298
获取/upnp/rendertransportSCPD.xml
Frame 309-315
获取/upnp/renderconnmgrSCPD.xml
Frame 325-337
获取/upnp/rendercontrolSCPD.xml
353
订阅消息,upnp2.0: 4.1
SUBSCRIBE /upnp/event/rendertransport1 HTTP/1.1
HOST: 192.168.199.183:49494
CALLBACK: <http://192.168.199.114:49153/>
NT: upnp:event
TIMEOUT: Second-300
CONNECTION: close
355
为应答
HTTP/1.1 200 OK
DATE: Tue, 26 Mar 2019 00:57:37 GMT
SERVER: Linux/4.13.0-45-generic, UPnP/1.0, Portable SDK for UPnP devices/1.6.22
CONTENT-LENGTH: 0
X-User-Agent: redsonic
SID: uuid:263cbdde-4f62-11e9-9d14-bbebc675453c
TIMEOUT: Second-300
366
发送消息NOTIFY
,upnp2.0 4.3.2 Unicast eventing: Event messages: NOTIFY
NOTIFY / HTTP/1.1
HOST: 192.168.199.114:49153
CONTENT-TYPE: text/xml; charset="utf-8"
CONTENT-LENGTH: 2168
NT: upnp:event
NTS: upnp:propchange
SID: uuid:263cbdde-4f62-11e9-9d14-bbebc675453c
SEQ: 0
<e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
<e:property>
<LastChange><?xml version="1.0"?>
<Event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/">
<InstanceID val="0">
<TransportStatus val="OK"></TransportStatus>
<NextAVTransportURI val=""></NextAVTransportURI>
<NextAVTransportURIMetaData val=""></NextAVTransportURIMetaData>
<CurrentTrackMetaData val=""></CurrentTrackMetaData>
<RelativeCounterPosition val="2147483647"></RelativeCounterPosition>
<PlaybackStorageMedium val="UNKNOWN"></PlaybackStorageMedium>
<RelativeTimePosition val="0:00:00"></RelativeTimePosition>
<PossibleRecordStorageMedia val="NOT_IMPLEMENTED"></PossibleRecordStorageMedia>
<CurrentPlayMode val="NORMAL"></CurrentPlayMode>
<TransportPlaySpeed val="1"></TransportPlaySpeed>
<PossiblePlaybackStorageMedia val="NETWORK,UNKNOWN"></PossiblePlaybackStorageMedia>
<AbsoluteTimePosition val="NOT_IMPLEMENTED"></AbsoluteTimePosition>
<CurrentTrack val="0"></CurrentTrack>
<CurrentTrackURI val=""></CurrentTrackURI>
<CurrentTransportActions val="PLAY"></CurrentTransportActions>
<NumberOfTracks val="0"></NumberOfTracks>
<AVTransportURI val=""></AVTransportURI>
<AbsoluteCounterPosition val="2147483647"></AbsoluteCounterPosition>
<CurrentRecordQualityMode val="NOT_IMPLEMENTED"></CurrentRecordQualityMode>
<CurrentMediaDuration val=""></CurrentMediaDuration>
<AVTransportURIMetaData val=""></AVTransportURIMetaData>
<RecordStorageMedium val="NOT_IMPLEMENTED"></RecordStorageMedium>
<RecordMediumWriteStatus val="NOT_IMPLEMENTED"></RecordMediumWriteStatus>
<CurrentTrackDuration val="0:00:00"></CurrentTrackDuration>
<TransportState val="STOPPED"></TransportState>
<PossibleRecordQualityModes val="NOT_IMPLEMENTED"></PossibleRecordQualityModes>
</InstanceID>
</Event>
</LastChange>
</e:property>
</e:propertyset>
511
发送SOAPACTION
POST /upnp/control/rendertransport1 HTTP/1.1
HOST: 192.168.199.183:49494
Content-Length: 264
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Stop"
USER-AGENT: Linux/4.4.23+ UPnP/1.0 HUAWEI_iCOS/iCOS V1R1C00 DLNADOC/1.50
CONNECTION: close
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body><u:Stop xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
<InstanceID>0</InstanceID>
</u:Stop>
</s:Body>
</s:Envelope>
521
POST /upnp/control/rendertransport1 HTTP/1.1
HOST: 192.168.199.183:49494
Content-Length: 1168
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"
USER-AGENT: Linux/4.4.23+ UPnP/1.0 HUAWEI_iCOS/iCOS V1R1C00 DLNADOC/1.50
CONNECTION: close
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body><u:SetAVTransportURI xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
<InstanceID>0</InstanceID>
<CurrentURI>http://192.168.199.114:49152/upnp/service/local/98070551/0/0.jpg</CurrentURI>
<CurrentURIMetaData><DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:huawei="urn:schemas-upnp-org:metadata-1-0/upnp/huawei/"><item id="0" parentID="-1" restricted="1"><dc:title>dlna_default_image</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_OP=01" size="501872">http://192.168.199.114:49152/upnp/service/local/98070551/0/0.jpg</res></item></DIDL-Lite></CurrentURIMetaData>
</u:SetAVTransportURI>
</s:Body>
</s:Envelope>
533 EVENT NOTIFY
541 PLAY
POST /upnp/control/rendertransport1 HTTP/1.1
HOST: 192.168.199.183:49494
Content-Length: 282
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play"
USER-AGENT: Linux/4.4.23+ UPnP/1.0 HUAWEI_iCOS/iCOS V1R1C00 DLNADOC/1.50
CONNECTION: close
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1">
<InstanceID>0</InstanceID>
<Speed>1</Speed>
</u:Play>
</s:Body>
</s:Envelope>
565 DMR 获取图片数据
GET /upnp/service/local/98070551/0/0.jpg HTTP/1.1
Host: 192.168.199.114:49152
Connection: close
icy-metadata: 1
User-Agent: GStreamer souphttpsrc 1.12.3 libsoup/2.60.1
切换节目
1514:STOP
1524:SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#SetAVTransportURI"\r\n
1544:SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play"\r\n
1563 GET Video
DMP 抓包分析
大致流程discover
->description
->post soapaction
->get Data
->Play
Discover
DMP
即client
发送M-SEARCH ssdp:discover
来发现server
,Frame270
M-SEARCH * HTTP/1.1
HOST: 239.255.255.250:1900
MAN: "ssdp:discover"
MX: 5
ST: urn:schemas-upnp-org:device:MediaServer:1
相关代码libupnp:UpnpSearchAsync
,vlc
有相关实现,应答如下,Frame271
HTTP/1.1 200 OK
CACHE-CONTROL: max-age=1810
DATE: Tue, 26 Mar 2019 03:25:52 GMT
ST: urn:schemas-upnp-org:device:MediaServer:1
USN: uuid:4d696e69-444c-164e-9d41-28d2446289b1::urn:schemas-upnp-org:device:MediaServer:1
EXT:
SERVER: 4.13.0-37-generic DLNADOC/1.50 UPnP/1.0 MiniDLNA/1.2.1
LOCATION: http://192.168.199.183:8200/rootDesc.xml
Content-Length: 0
Description
根据LOACTION
获取描述文件,请求如下,Frame275
GET /rootDesc.xml HTTP/1.1
HOST: 192.168.199.183:8200
DATE: Tue, 26 Mar 2019 03:25:51 GMT
CONNECTION: close
USER-AGENT: Linux/4.4.23+, UPnP/1.0, Portable SDK for UPnP devices/1.6.19
应答中传输描述文件,如下
<root xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
<friendlyName>My DLNA XXX</friendlyName>
<manufacturer>Justin Maggard</manufacturer>
<manufacturerURL>http://www.netgear.com/</manufacturerURL>
<modelDescription>MiniDLNA on Linux</modelDescription>
<modelName>Windows Media Connect compatible (MiniDLNA)</modelName>
<modelNumber>1</modelNumber>
<modelURL>http://www.netgear.com</modelURL>
<serialNumber>12345678</serialNumber>
<UDN>uuid:4d696e69-444c-164e-9d41-28d2446289b1</UDN>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50</dlna:X_DLNADOC>
<presentationURL>/</presentationURL>
<iconList>
<icon>
<mimetype>image/png</mimetype>
<width>48</width>
<height>48</height>
<depth>24</depth>
<url>/icons/sm.png</url>
</icon>
<icon>
<mimetype>image/png</mimetype>
<width>120</width>
<height>120</height>
<depth>24</depth>
<url>/icons/lrg.png</url>
</icon>
<icon>
<mimetype>image/jpeg</mimetype>
<width>48</width>
<height>48</height>
<depth>24</depth>
<url>/icons/sm.jpg</url>
</icon>
<icon>
<mimetype>image/jpeg</mimetype>
<width>120</width>
<height>120</height>
<depth>24</depth>
<url>/icons/lrg.jpg</url>
</icon>
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>
<controlURL>/ctl/ContentDir</controlURL>
<eventSubURL>/evt/ContentDir</eventSubURL>
<SCPDURL>/ContentDir.xml</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
<controlURL>/ctl/ConnectionMgr</controlURL>
<eventSubURL>/evt/ConnectionMgr</eventSubURL>
<SCPDURL>/ConnectionMgr.xml</SCPDURL>
</service>
<service>
<serviceType>
urn:microsoft.com:service:X_MS_MediaReceiverRegistrar:1
</serviceType>
<serviceId>
urn:microsoft.com:serviceId:X_MS_MediaReceiverRegistrar
</serviceId>
<controlURL>/ctl/X_MS_MediaReceiverRegistrar</controlURL>
<eventSubURL>/evt/X_MS_MediaReceiverRegistrar</eventSubURL>
<SCPDURL>/X_MS_MediaReceiverRegistrar.xml</SCPDURL>
</service>
</serviceList>
</device>
</root>
POST SOAPACTION
根据xml
中描述的service
选择相关操作,例如操作文件夹请求如下,Frame335
POST /ctl/ContentDir HTTP/1.1
HOST: 192.168.199.183:8200
CONTENT-LENGTH: 440
CONTENT-TYPE: text/xml; charset="utf-8"
SOAPACTION: "urn:schemas-upnp-org:service:ContentDirectory:1#Browse"
USER-AGENT: Linux/4.4.23+, UPnP/1.0, Portable SDK for UPnP devices/1.6.19
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body><u:Browse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
<ObjectID>0</ObjectID>
<BrowseFlag>BrowseDirectChildren</BrowseFlag>
<Filter>*</Filter>
<StartingIndex>0</StartingIndex>
<RequestedCount>5000</RequestedCount>
<SortCriteria></SortCriteria>
</u:Browse>
</s:Body>
</s:Envelope>
Frame 442-569
为翻到文件夹最底层,会传输大量图片数据上来
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:BrowseResponse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1"><Result><DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/">
<item id="3$FF0$64$13$B" parentID="3$FF0" restricted="1" refID="64$13$B"><dc:title>543161</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="532088" resolution="2048x1345" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25615.jpg</res><res resolution="1024x575" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25615.jpg?width=1024,height=575</res><res resolution="640x359" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25615.jpg?width=640,height=359</res><res resolution="160x89" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25615.jpg?width=160,height=89</res></item><item id="3$FF0$64$13$2B" parentID="3$FF0" restricted="1" refID="64$13$2B"><dc:title>543159</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="461737" resolution="1920x1260" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25616.jpg</res><res resolution="1024x671" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25616.jpg?width=1024,height=671</res><res resolution="640x419" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25616.jpg?width=640,height=419</res><res resolution="160x104" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25616.jpg?width=160,height=104</res></item><item id="3$FF0$64$13$2D" parentID="3$FF0" restricted="1" refID="64$13$2D"><dc:title>543117</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="674720" resolution="2880x1800" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25618.jpg</res><res resolution="1024x639" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25618.jpg?width=1024,height=639</res><res resolution="640x399" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25618.jpg?width=640,height=399</res><res resolution="160x98" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25618.jpg?width=160,height=98</res></item><item id="3$FF0$64$13$2F" parentID="3$FF0" restricted="1" refID="64$13$2F"><dc:title>543019</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="753825" resolution="1920x1200" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25620.jpg</res><res resolution="1024x639" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25620.jpg?width=1024,height=639</res><res resolution="640x399" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25620.jpg?width=640,height=399</res><res resolution="160x99" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25620.jpg?width=160,height=99</res></item><item id="3$FF0$64$13$31" parentID="3$FF0" restricted="1" refID="64$13$31"><dc:title>543128</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="836038" resolution="2048x1325" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25603.jpg</res><res resolution="1024x681" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25603.jpg?width=1024,height=681</res><res resolution="640x426" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25603.jpg?width=640,height=426</res><res resolution="160x106" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25603.jpg?width=160,height=106</res></item><item id="3$FF0$64$13$21" parentID="3$FF0" restricted="1" refID="64$13$21"><dc:title>542965</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="1726194" resolution="1920x1200" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25606.jpg</res><res resolution="1024x639" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25606.jpg?width=1024,height=639</res><res resolution="640x399" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25606.jpg?width=640,height=399</res><res resolution="160x99" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25606.jpg?width=160,height=99</res></item><item id="3$FF0$64$13$23" parentID="3$FF0" restricted="1" refID="64$13$23"><dc:title>542998</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="2904437" resolution="1920x1200" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25608.jpg</res><res resolution="1024x639" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25608.jpg?width=1024,height=639</res><res resolution="640x399" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25608.jpg?width=640,height=399</res><res resolution="160x99" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25608.jpg?width=160,height=99</res></item><item id="3$FF0$64$13$2C" parentID="3$FF0" restricted="1" refID="64$13$2C"><dc:title>542934</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="1098202" resolution="2048x1360" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25617.jpg</res><res resolution="1024x680" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25617.jpg?width=1024,height=680</res><res resolution="640x425" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25617.jpg?width=640,height=425</res><res resolution="160x106" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25617.jpg?width=160,height=106</res></item><item id="3$FF0$64$13$2E" parentID="3$FF0" restricted="1" refID="64$13$2E"><dc:title>542994</dc:title><upnp:class>object.item.imageItem.photo</upnp:class><res size="970686" resolution="1920x1200" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/MediaItems/25619.jpg</res><res resolution="1024x639" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25619.jpg?width=1024,height=639</res><res resolution="640x399" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25619.jpg?width=640,height=399</res><res resolution="160x99" protocolInfo="http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=00F00000000000000000000000000000">http://192.168.199.183:8200/Resized/25619.jpg?width=160,height=99</res></item></DIDL-Lite></Result>
<NumberReturned>50</NumberReturned>
<TotalMatches>50</TotalMatches>
<UpdateID>1</UpdateID></u:BrowseResponse></s:Body></s:Envelope>
播放某个具体图片请求,Frame 755
GET /MediaItems/25602.jpg HTTP/1.1
Host: 192.168.199.183:8200
Accept: */*
Accept-Language: en_US
User-Agent: VLC/3.0.4 LibVLC/3.0.4
Range: bytes=0-