I’m creating a DLNA server using UPNP/ssdp, and am unsure how to format the content directory to actually get stuff to show up, or if it’s even possible given the way that I’ve set it the way content is sent back.
In short, I want to tell the DLNA receiver that media is available within a container.
I’ve read some similar questions, the DLNA documentation as well as the formatting templates to no result.
<?xml version='1.0'?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<u:BrowseResponse xmlns:u="urn:schemas-upnp-org:service:ContentDirectory:1">
<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/">
<container id="0" parentID="-1" restricted="false" searchable="true">
<dc:title>My Video Container</dc:title>
<upnp:class>object.container</upnp:class>
<item id="1" parentID="0" restricted="false">
<dc:title>[VideoName].mp4</dc:title>
<dc:creator>Unknown</dc:creator>
<upnp:class>object.item.videoItem.videoProgram</upnp:class>
<res protocolInfo="http-get:*:video/mp4:*">http://192.168.0.40:6589/live/bingex.mp4</res>
</item>
<item id="2" parentID="0" restricted="false">
<dc:title>[Videoname].mp4</dc:title>
<dc:creator>Unknown</dc:creator>
<upnp:class>object.item.videoItem.videoProgram</upnp:class>
<res protocolInfo="http-get:*:video/mp4:*">http://192.168.0.40:6589/live/tvex</res>
</item>
</container>
</DIDL-Lite>
<NumberReturned>2</NumberReturned>
<TotalMatches>2</TotalMatches>
<UpdateID>1</UpdateID>
</u:BrowseResponse>
</s:Body>
</s:Envelope>
is what I send in response to it’s
ContentDirectory. control URL. and I get “No compatible media found in: Server” it doesn’t even pick up the folder.
I’ve tried this with the Roku Media player, and the playstation media player.
for a bit more information
<serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>
<SCPDURL>/cds.xml</SCPDURL>
<controlURL>/media</controlURL>
<eventSubURL>/events</eventSubURL>
this is my “content directory service”.