Quantcast
Jump to content
  • 0

LG SmartShare cannot handle multiple UPnP/DLNA streams


palswim

Question

I discovered that my LG SmartShare app could not play FLAC or M4A audio files natively from my DLNA server, so I decided to enable transcoding on the server to present MP3/WAV resources in addition to the native stream. However, the SmartShare app still doesn't display those files when browsing for audio, and I am trying to determine why.

And now, the extreme technical detail:

I have a shell utility, upnp-browse.sh to make HTTP calls to my DLNA server, emulating the types of calls that LG SmartShare would make:

#!/bin/sh

curl -s -d @- -H 'Content-Type: text/xml; charset="utf-8"' -H 'SOAPAction: #Browse' http://host/path/to/DLNA \
	| xmllint --xpath '////Result/text()' - \
	| recode html..utf8 \
	| xml_pp

The curl call makes a HTTP POST request with the data from stdin, which would have similar content to the following:

<?xml version="1.0"?>
<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:serviceType:v">
			<ObjectID>ID_PARENT</ObjectID>
			<BrowseFlag>BrowseDirectChildren</BrowseFlag>
		</u:Browse>
	</s:Body>
</s:Envelope>

The call to curl then yields an XML Response similar to the following:

<?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="ID_FILE" parentID="ID_PARENT" restricted="1"><dc:title>Title</dc:title><upnp:class>object.item.audioItem.musicTrack</upnp:class><dc:creator>Creator</dc:creator><upnp:artist>Artist</upnp:artist><res size="######" duration="H:MM:SS.###" bitrate="1022868" sampleFrequency="44100" nrAudioChannels="2" protocolInfo="http-get:*:audio/x-flac:*">http://IP:port/MediaItems/####.ext</res><res duration="H:MM:SS.###" bitrate="176400" sampleFrequency="44100" nrAudioChannels="2" protocolInfo="http-get:*:audio/L16;rate=44100;channels=2:DLNA.ORG_PN=LPCM;DLNA.ORG_OP=10;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=01500000000000000000000000000000">http://IP:port/MediaItems/TranscodeAudio/LPCM/####.ext</res><res duration="H:MM:SS.###" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=10;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=01500000000000000000000000000000">http://IP:port/MediaItems/TranscodeAudio/MP3/####.ext</res></item><container id="ID_FOLDER" parentID="ID_PARENT" restricted="1" searchable="1" childCount="#"><dc:title>folder name</dc:title><upnp:class>object.container.storageFolder</upnp:class><upnp:storageUsed>-1</upnp:storageUsed></container></DIDL-Lite></Result>
<NumberReturned>2</NumberReturned>
<TotalMatches>2</TotalMatches>
<UpdateID>3</UpdateID></u:BrowseResponse></s:Body></s:Envelope>

Then the calls to xmllint, recode, and xml_pp take this data and extract the data from the Result node and format it for readability, yielding an output similar to:

<DIDL-Lite xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/">
  <item id="ID_FILE" parentID="ID_PARENT" restricted="1">
    <dc:title>Title</dc:title>
    <upnp:class>object.item.audioItem.musicTrack</upnp:class>
    <dc:creator>Creator</dc:creator>
    <upnp:artist>Artist</upnp:artist>
    <res bitrate="1022868" duration="H:MM:SS.###" nrAudioChannels="2" protocolInfo="http-get:*:audio/x-flac:*" sampleFrequency="44100" size="######">http://IP:port/MediaItems/####.ext</res>
    <res bitrate="176400" duration="H:MM:SS.###" nrAudioChannels="2" protocolInfo="http-get:*:audio/L16;rate=44100;channels=2:DLNA.ORG_PN=LPCM;DLNA.ORG_OP=10;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=01500000000000000000000000000000" sampleFrequency="44100">http://IP:port/MediaItems/TranscodeAudio/LPCM/####.ext</res>
    <res duration="H:MM:SS.###" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=10;DLNA.ORG_CI=1;DLNA.ORG_FLAGS=01500000000000000000000000000000">http://IP:port/MediaItems/TranscodeAudio/MP3/####.ext</res>
  </item>
  <container childCount="#" id="ID_FOLDER" parentID="ID_PARENT" restricted="1" searchable="1">
    <dc:title>folder name</dc:title>
    <upnp:class>object.container.storageFolder</upnp:class>
    <upnp:storageUsed>-1</upnp:storageUsed>
  </container>
</DIDL-Lite>

Note with the sample file (item node), it contains three res nodes. The DLNA client (LG SmartShare) should select the data from the res node for the format it supports, and allow for selection of the item, but when I browse in the container which contains the item, LG SmartShare doesn't show it.

For native MP3 files, SmartShare will show and play those items. I can provide output for native MP3 items, as well as OGG or MP4/M4A files if those would help, though they all look fairly similar. However, for native MP3 files, the first res node has a slightly different set of DLNA flags:

<res bitrate="128000" duration="H:MM:SS.###" nrAudioChannels="2" protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0;DLNA.ORG_FLAGS=01700000000000000000000000000000" sampleFrequency="44100" size="######">http://IP:port/MediaItems/####.mp3</res>

Is my server serving something incorrectly, does SmartShare just not support multiple res nodes, or have I overlooked something?

Link to comment
Share on other sites

  • Answers 1
  • Created
  • Last Reply

Top Posters For This Question

Top Posters For This Question

1 answer to this question

Recommended Posts

  • 0

@palswim Interesting and neat (but very technical) thing to do! 😊

I assume you are using the latest Smartshare (33).2.3.1511.1201 ?  I always found it very clunky and "old fashioned", and as it has not been updated for over 2 years, I suspect it has bugs, and has fallen behind modern techiques and codec standards and stream processing methods.

I noticed on the same LG download site when checking the versions, there is mention of a "plex TV" app or "Plex Media Server", but I am unsure if this is suitable for your needs, or compatible with your DLNA  setup? See

link hidden, please login to view

By the way, did you check that all of your  DLNA devices have the latest firmware, and software stacks running on them?

Edited by td47
typo
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Topics

    • By News Reporter
      Becoming more sustainable means a commitment to using fewer resources, creating less waste, and doing everything possible to ensure a healthy planet for future generations. LG Electronics embraces this challenge and continues to take steps to reduce its environmental impact through an extensive program of ESG management. Along with its ambitious Zero Carbon 2030 initiative and goal to transition completely to renewable energy by 2050, LG offers innovative solutions that can help consumers to live more in balance with nature today.

      LG recently had an opportunity to demonstrate its eco-conscious exhibit for its state-of-the art HVAC solutions at Korea Energy Show 2021, South Korea’s largest annual energy exhibition. Instead of wasting new resources on a temporary exhibit, LG used prefabricated shipping containers and adopted recycled materials such as wood waste to create a unique, visually interesting space.

      Exhibiting a complete range of highly efficient LG HVAC solutions suitable for homes, offices, schools as well as other indoor environments, the highlight of the exhibit was a new commercial air conditioner made more efficient via an AI engine.

      LG’s latest HVAC solutions leverage smart technologies to help create better indoor air quality while simultaneously cutting energy consumption. LG’s ceiling-mounted 1 Way Cassette with comprehensive air purification system cleans, cools and heats the air to keep the home comfortable all year around.

      Other LG innovations on exhibit at the show included the LG Energy Storage System (ESS) and Building Energy Control (BECON), a powerful duo that together create a total energy management solution for businesses. Also on display was the LG 4-Way DUAL Vane Cassette which employs UVnano technology and an antibacterial drain pan to enhance the hygiene of the unit and the airflow produced.1
      LG showcased its first GHP Hybrid Heat Pump system air conditioner, a cost-effective option for educational and governmental facilities. LG’s hybrid solution combines the advantages of electric- and gas-powered climate control systems to deliver superb performance while reducing the cost of cooling and heating.2

      To further minimizing its footprint, LG moved to using recycled materials for the packaging of the outdoor units of its system air conditioners. Instead of using expanded polystyrene in its packaging, LG opted for expanded polypropylene as it offers improved cushioning and protection for its products. LG estimates that switching to reusable expanded polypropylene for all its AC packaging will cut its annual paper usage by 85 tons and polystyrene usage by 19 tons.

      After the conclusion of Korea Energy Show 2021, LG donated the exhibition containers to Habitat Korea, the South Korean branch of the global nonprofit Habitat for Humanity. The repurposed containers will be utilized by the organization as a dedicated education center.
      As LG’s efficient, eco-responsible HVAC solutions demonstrate, creating a healthy, comfortable indoor environment doesn’t have to come at the expense of sustainability. With innovations that carefully consider the needs of its customers and the well-being of the planet, LG is helping to bring about a
      # # #
      1 Testing conducted by FITI Testing and Research Institute verified the LG DUAL Vane Cassette resulted in the reduction of 99 percent of Staphylococcus bacteria and colon bacillus.
      2 Based on cooling/heating load of 52HP (GHP 32HP and Multi V 20HP) and the proper energy source (electricity or gas), the LG GHP Hybrid Heat Pump can save up to 28 percent of the energy cost (electricity and gas combined) compared to the energy cost of using Multi V alone. Operation cost may vary depending on load conditions, climate and other environmental factors.

      link hidden, please login to view
    • By Ole
      After 05.60.15 update on 55UH650V. The miniguide pops up. But my biggest problem is that . I am using Sonos Playbase for TV Audio. After maybe ½ an hour or a couple of hours audio suddenly gets muted. To solve this i need  powercycle the TV. LG please fix this  asap.
    • By WAT SA P
      HOW DO WE SHIFT REGION FROM MIDDLE EAST TO US
    • By Ray11
      Hi,
      1) how to display PDF files?
      2) how to play AVI/old formats?
      Thanks!
    • By Ray11
      Hi,
       How to read PDF files with WEBos6?
      how play AVI/old formats WEBos6?
      Thanks!

×
×
  • Create New...