Service upnp:从没有AVTransport服务的MediaServer设备获取内容

Service upnp:从没有AVTransport服务的MediaServer设备获取内容,service,media,sony,upnp,dlna,Service,Media,Sony,Upnp,Dlna,我想从支持DLNA的索尼NEX-6相机下载图像。发现ConnectionManager将返回以下内容: <device xmlns="urn:schemas-upnp-org:device-1-0"> <dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50 </dlna:X_DLNADOC> <deviceType>u

我想从支持DLNA的索尼NEX-6相机下载图像。发现ConnectionManager将返回以下内容:

<device
    xmlns="urn:schemas-upnp-org:device-1-0">
    <dlna:X_DLNADOC
        xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMS-1.50
    </dlna:X_DLNADOC>
    <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
    <friendlyName>NEX-6</friendlyName>
    <manufacturer>Sony Corporation</manufacturer>
    <manufacturerURL>http://www.sony.com/</manufacturerURL>
    <modelDescription>SonyDigitalMediaServer</modelDescription>
    <modelName>SonyImagingDevice</modelName>
    <modelURL>http://www.sony.net/</modelURL>
    <UDN>uuid:00000000-0000-0010-8000-2002af0fa742</UDN>
    <serviceList>
        <service>
            <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>
            <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>
            <SCPDURL>/CdsDesc.xml</SCPDURL>
            <controlURL>/upnp/control/ContentDirectory</controlURL>
            <eventSubURL>/upnp/event/ContentDirectory</eventSubURL>
        </service>
        <service>
            <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
            <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
            <SCPDURL>/CmsDesc.xml</SCPDURL>
            <controlURL>/upnp/control/ConnectionManager</controlURL>
            <eventSubURL>/upnp/event/ConnectionManager</eventSubURL>
        </service>
    </serviceList>
    <iconList>
        <icon>
            <mimetype>image/jpeg</mimetype>
            <width>48</width>
            <height>48</height>
            <depth>24</depth>
            <url>/DLNA_camera_48.jpg</url>
        </icon>
        <icon>
            <mimetype>image/jpeg</mimetype>
            <width>120</width>
            <height>120</height>
            <depth>24</depth>
            <url>/DLNA_camera_120.jpg</url>
        </icon>
        <icon>
            <mimetype>image/png</mimetype>
            <width>48</width>
            <height>48</height>
            <depth>24</depth>
            <url>/DLNA_camera_48.png</url>
        </icon>
        <icon>
            <mimetype>image/png</mimetype>
            <width>120</width>
            <height>120</height>
            <depth>24</depth>
            <url>/DLNA_camera_120.png</url>
        </icon>
    </iconList>
    <av:standardCDS
        xmlns:av="urn:schemas-sony-com:av">5.0
    </av:standardCDS>
    <av:photoRoot
        xmlns:av="urn:schemas-sony-com:av">PhotoRoot
    </av:photoRoot>
</device>

DMS-1.50
urn:schemas upnp org:device:MediaServer:1
NEX-6
索尼公司
http://www.sony.com/
SonyDigitalMediaServer
Sonyimaging设备
http://www.sony.net/
uuid:00000000-0000-0010-8000-2002af0fa742
urn:schemas upnp组织:服务:内容目录:1
urn:upnp组织:serviceId:ContentDirectory
/CdsDesc.xml
/upnp/control/ContentDirectory
/upnp/event/ContentDirectory
urn:schemas upnp组织:服务:连接管理器:1
urn:upnp组织:serviceId:ConnectionManager
/CmsDesc.xml
/upnp/控制/连接管理器
/upnp/事件/连接管理器
图像/jpeg
48
48
24
/DLNA_camera_48.jpg
图像/jpeg
120
120
24
/DLNA_camera_120.jpg
图像/png
48
48
24
/DLNA_camera_48.png
图像/png
120
120
24
/DLNA_camera_120.png
5
光根

据我所知,这台相机不提供AVTransport服务。这是真的吗?那么我怎样才能从相机上获得图像呢?ContentDirectory服务的最大分辨率太小了(
JPEG\u LRG
)。

实际上,索尼数码相机不是DLNA/UPnP,而是通过基于HTTP和JSON的摄像头远程API beta无线访问索尼相机

希望这会有所帮助。

多亏了我可以捕捉到流量。 大多数请求都是“标准”ContentDirectory请求,如获取文件夹列表、文件、预览图像a.s.o。 但我一下载完整图像,就会收到如下请求:

GET http://10.0.0.1:60151/LRG__DSC9978.ARW?%2104%5f02%5f1107310400%5f000002%5f000073%5f000000%21http%2dget%3a%2a%3aimage%2fjpeg%3aDLNA%2eORG%5fPN%3dJPEG%5fLRG%3bDLNA%2eORG%5fCI%3d1%21%21%21%21%21 HTTP/1.1
Connection: close
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.1.1; HUAWEI G510-0100 Build/HuaweiG510-0100)
Host: 10.0.0.1:60151
Accept-Encoding: gzip
这将以1616 x 1080像素大小的JPEG格式返回图像数据。。。呜呜。解码GET请求返回:

!04_02_1107310400_000002_000073_000000!http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG;DLNA.ORG_CI=1!!!!!

现在我必须看看如何建立这个查询字符串。对我来说似乎不是标准化的。如果有人有线索,请告诉我。

您一定把这里的事情弄糊涂了:AVTransport是由渲染器(如电视)提供的服务。带有AVTransport的摄像头没有多大意义。读到这里,它告诉我们:“MediaServer:1产品必须实现下表中指定的所有必需嵌入式设备和服务的最低版本号。”ContentDirectory:1.0(必需),ConnectionManager:1.0(必需)AVTransport:1.0(可选),因此它是可选的。问题是:如何从相机获取资源流?另外,我想我会使用AVTransport:“这个[AVTransport]实例被控制点用来控制内容流向网络的流量(例如播放、FF、REW、Seek等)。”AVTransport不做你想做的事情:它只允许你控制设备上的播放,而不允许你获取实际的媒体。ContentDirectory是一个应该满足您要求的服务(但可能不支持您所暗示的巨大图像)。我听说了,谢谢。但遗憾的是,我不能使用
摄像头远程API
,因为我在Firefox操作系统上运行该应用程序,它只支持JavaScript。任何关于如何在不使用Camera Remote API的情况下获取源URL的提示都将不胜感激。到目前为止,访问ContentDirectory服务的效果非常好,不只是缺少下载全分辨率图像的部分。我不知道该怎么做(也无法拦截摄像头流量)。链接页面暗示该服务是JSON服务。从javascript使用它有什么问题?好的,首先是
ObjectID
文件名由
ContentDirectory
服务提供,其余的似乎是一些静态设置。不知道为什么它们之间用
分隔而不是像“普通”
GET
参数那样使用(例如
LRG\uu DSC9978.ARW?ObjectID=04\u 02\u 1107310400\u000002\u 000073\u000000&……
)。但我想我有所有的信息来获取图像谢谢所有想帮忙的人!如果你有一些进一步的信息,比如如果这是标准化的地方,让我知道!嗨,安德烈!我知道这要追溯到很久以前,但你有没有想过这一切是如何运作的?我正在尝试制作一个类似的应用程序!