No Artis information while streaming music

Help
2012-01-02
2013-05-30
  • ThomasBalke
    ThomasBalke
    2012-01-02

    Hi,
    my ONKYO TX-NR609 won't show the Artist information while streaming Music from Media-tomb (Debian Lenny).
    If I walk throw the Media tree from Media-tomb, the artist names are displayed correct.
    So the ID3 Tags are there and Mediatomb can read them. But why they are missing while streaming?

    I tried the Win7 media sharing and also “Media Monkey” as a dlna Server. On both ways my Onkyo can display the Artist names. So the AV-Receiver is able to display it.

    Can I anything change in config-File to solve this?

     
  • ThomasBalke
    ThomasBalke
    2012-01-05

    Is there a posibility to capture the communication? between Mediatomb an UPnP-Player?

     
  • ThomasBalke
    ThomasBalke
    2012-01-09

    Okay, I swapped to Twonky Server. There is no problem with missing Artist name.

    Thanks

     
  • Stefan
    Stefan
    2012-01-11

    Hi,

    I am using the same UPnP client, and the artist name is not shown as well. So I would be happy about any idea hwo to fix this problem.

    Thank you very much in advance!

    stefan

     
  • Ian Pilcher
    Ian Pilcher
    2012-01-22

    I am seeing the same problem with a Samsung Blu-ray player; I am able to browse my collection by artist, but "No Singer" is shown for every track.

    I also have Logitech Media Server installed, and it does not have the problem; the artist is shown properly for each track.

    I've used wireshark to capture some traffic with each server.  After digging into it a bit (who the hell thought XML inside XML was a good idea?), I've extracted the <Result> element for a track sent by each server.

    Logitech media server sends this:

    <DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:pv="http://www.pv.com/pvns/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/">
      <item id="/l/9/t/59" parentID="/l/9/t" restricted="1">
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <dc:title>Double Dare</dc:title>
        <dc:creator>Bauhaus</dc:creator>
        <upnp:album>1979-1983: Volume One</upnp:album>
        <upnp:artist role="artist">Bauhaus</upnp:artist>
        <dc:contributor>Bauhaus</dc:contributor>
        <upnp:originalTrackNumber>1</upnp:originalTrackNumber>
        <upnp:genre>Rock</upnp:genre>
        <upnp:albumArtURI xmlns:dlna="urn:schemas-dlna-org:metadata-1-0/" dlna:profileID="JPEG_TN">http://172.31.253.254:9000/music/761d7b84/cover_160x160_m.jpg</upnp:albumArtURI>
        <upnp:albumArtURI>http://172.31.253.254:9000/music/761d7b84/cover</upnp:albumArtURI>
        <pv:modificationTime>1327015211</pv:modificationTime>
        <pv:addedTime>1327017097</pv:addedTime>
        <pv:lastUpdated>1327017097</pv:lastUpdated>
        <res protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=11;DLNA.ORG_FLAGS=01700000000000000000000000000000" size="10416834" duration="0:04:55.333" bitrate="35125" sampleFrequency="44100">http://172.31.253.254:9000/music/59/download.mp3?bitrate=320</res>
      </item>
    </DIDL-Lite>
    

    MediaTomb sends this:

    <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/">
      <item id="12163" parentID="12117" restricted="1">
        <dc:title>Double Dare</dc:title>
        <upnp:class>object.item.audioItem.musicTrack</upnp:class>
        <upnp:artist>Bauhaus</upnp:artist>
        <upnp:album>1979-1983: Volume One</upnp:album>
        <upnp:genre>Rock</upnp:genre>
        <upnp:originalTrackNumber>1</upnp:originalTrackNumber>
        <dc:description>Bauhaus, 1979-1983: Volume One, Double Dare, Rock</dc:description>
        <res protocolInfo="http-get:*:audio/mpeg:DLNA.ORG_PN=MP3;DLNA.ORG_OP=01;DLNA.ORG_CI=0" size="10416834" bitrate="35968" duration="00:04:55" sampleFrequency="44100" nrAudioChannels="2">http://172.31.253.254:50500/content/media/object_id/12163/res_id/0/ext/file.mp3</res>
        <upnp:albumArtURI xmlns:dlna="urn:schemas-dlna-org:metadata-1-0" dlna:profileID="JPEG_TN">http://172.31.253.254:50500/content/media/object_id/12163/res_id/1/rct/aa</upnp:albumArtURI>
      </item>
    </DIDL-Lite>
    

    You can see that MediaTomb is not sending the <dc:creator> or <dc:contributor> elements, nor is it setting the role attribute of the <upnp:artist> element.

    If someone can tell me how to add those elements/attribute, I would be happy to test.

    Thanks!

     
  • Blammo
    Blammo
    2012-01-26

    Seeing same issue to Patriot Box office, and any other UPNP devices on my network.

     
  • Ian Pilcher
    Ian Pilcher
    2012-01-27

    I'll ask again if anyone can give me a pointer on how I can add the additional elements/attribute that Logitech Media Server sends to MediaTombs SOAP response.  I've tried this forum, e-mail, and IRC, and received absolutely zero response.

    Is this project moribund?

     
  • ThomasBalke
    ThomasBalke
    2012-01-27

    It looks like mediatomb is six feet under

    I'm now using twonky Server because of not getting help with my problem.
    I'm happy with it. OK, It's not free and you can not modify anything, but it 100% fits my requirements.

    Tom

     
  • Ian Pilcher
    Ian Pilcher
    2012-01-27

    In my case, it was the missing dc:creator element that was causing the problem.

    I created the following patch, which seems to make things work for me.  (Only tested with taglib).

    diff -ur mediatomb-0.12.1-orig/src/metadata/extractor_handler.cc mediatomb-0.12.1/src/metadata/extractor_handler.cc
    --- mediatomb-0.12.1-orig/src/metadata/extractor_handler.cc 2012-01-27 14:42:05.349099987 -0600
    +++ mediatomb-0.12.1/src/metadata/extractor_handler.cc  2012-01-27 15:28:21.762227882 -0600
    @@ -254,6 +254,7 @@
                 temp = EXTRACTOR_extractLast(EXTRACTOR_TITLE, keywords);
                 break;
             case M_ARTIST:
    +       case M_CREATOR:
                 temp = EXTRACTOR_extractLast(EXTRACTOR_ARTIST, keywords);
                 break;
             case M_ALBUM:
    diff -ur mediatomb-0.12.1-orig/src/metadata/ffmpeg_handler.cc mediatomb-0.12.1/src/metadata/ffmpeg_handler.cc
    --- mediatomb-0.12.1-orig/src/metadata/ffmpeg_handler.cc    2012-01-27 14:42:05.349099987 -0600
    +++ mediatomb-0.12.1/src/metadata/ffmpeg_handler.cc 2012-01-27 15:25:08.670118705 -0600
    @@ -86,7 +86,8 @@
    
     static void addFfmpegMetadataFields(Ref<CdsItem> item, AVFormatContext *pFormatCtx) 
     {
    -
    +   String author;
    +   
        Ref<StringConverter> sc = StringConverter::m2i();
         
        if (strlen(pFormatCtx->title) > 0) 
    @@ -98,8 +99,9 @@
        if (strlen(pFormatCtx->author) > 0) 
         {
            log_debug("Added metadata author: %s\n", pFormatCtx->author);
    -        item->setMetadata(MT_KEYS[M_ARTIST].upnp, 
    -                          sc->convert(pFormatCtx->author));
    +       author = sc->convert(pFormatCtx->author);
    +        item->setMetadata(MT_KEYS[M_ARTIST].upnp, author);
    +       item->setMetadata(MT_KEYS[M_CREATOR].upnp, author);
        }
        if (strlen(pFormatCtx->album) > 0) 
         {
    diff -ur mediatomb-0.12.1-orig/src/metadata/id3_handler.cc mediatomb-0.12.1/src/metadata/id3_handler.cc
    --- mediatomb-0.12.1-orig/src/metadata/id3_handler.cc   2012-01-27 14:42:05.350099974 -0600
    +++ mediatomb-0.12.1/src/metadata/id3_handler.cc    2012-01-27 15:26:50.186524370 -0600
    @@ -91,6 +91,7 @@
                 ID3_retval = ID3_GetTitle(tag);
                 break;
             case M_ARTIST:
    +       case M_CREATOR:
                 ID3_retval = ID3_GetArtist(tag);          
                 break;
             case M_ALBUM:
    diff -ur mediatomb-0.12.1-orig/src/metadata/libmp4v2_handler.cc mediatomb-0.12.1/src/metadata/libmp4v2_handler.cc
    --- mediatomb-0.12.1-orig/src/metadata/libmp4v2_handler.cc  2012-01-27 14:42:05.349099987 -0600
    +++ mediatomb-0.12.1/src/metadata/libmp4v2_handler.cc   2012-01-27 15:05:33.263409964 -0600
    @@ -77,6 +77,7 @@
                 MP4GetMetadataName(mp4, &mp4_retval);
                 break;
             case M_ARTIST:
    +   case M_CREATOR:
                 MP4GetMetadataArtist(mp4, &mp4_retval);
                 break;
             case M_ALBUM:
    diff -ur mediatomb-0.12.1-orig/src/metadata/taglib_handler.cc mediatomb-0.12.1/src/metadata/taglib_handler.cc
    --- mediatomb-0.12.1-orig/src/metadata/taglib_handler.cc    2012-01-27 14:42:05.350099974 -0600
    +++ mediatomb-0.12.1/src/metadata/taglib_handler.cc 2012-01-27 15:03:29.713170739 -0600
    @@ -81,6 +81,7 @@
                 val = tag->title();
                 break;
             case M_ARTIST:
    +   case M_CREATOR:
                 val = tag->artist();
                 break;
             case M_ALBUM:
    diff -ur mediatomb-0.12.1-orig/src/metadata_handler.cc mediatomb-0.12.1/src/metadata_handler.cc
    --- mediatomb-0.12.1-orig/src/metadata_handler.cc   2012-01-27 14:42:05.352099946 -0600
    +++ mediatomb-0.12.1/src/metadata_handler.cc    2012-01-27 15:00:29.271168168 -0600
    @@ -90,6 +90,7 @@
         { "M_RATING", "upnp:rating"},
         { "M_ACTOR", "upnp:actor"},
         { "M_PRODUCER", "upnp:producer"},
    +    { "M_CREATOR", "dc:creator" },
     };
    
     res_key RES_KEYS[] = {
    diff -ur mediatomb-0.12.1-orig/src/metadata_handler.h mediatomb-0.12.1/src/metadata_handler.h
    --- mediatomb-0.12.1-orig/src/metadata_handler.h    2012-01-27 14:42:05.347100013 -0600
    +++ mediatomb-0.12.1/src/metadata_handler.h 2012-01-27 14:58:47.200867242 -0600
    @@ -86,6 +86,7 @@
         M_RATING,
         M_ACTOR,
         M_PRODUCER,
    +    M_CREATOR,
    
         M_MAX
     } metadata_fields_t;
    
     

  • Anonymous
    2012-02-15

    I think I'm experiencing a similar problem.  I'm trying to use aVia to access my media from an android tablet and phone.  I was hoping that the lines in the FAQ --
    "Some systems require a special setup on the network interface. If MediaTomb exits with UPnP Error -117, or if it does not respond to M-SEARCH requests from the renderer (i.e. MediaTomb is running, but your renderer device does not show it) you should try the following settings (the lines below assume that MediaTomb is running on a Linux machine, on network interface eth1):

    # route add -net 239.0.0.0 netmask 255.0.0.0 eth1
    # ifconfig eth1 allmulti
    -
    would help.  I'm assuming the 239.0.0.0 should be replaced with the server's IP address.  What are the group's thoughts?

    Thanks in advance.

     

  • Anonymous
    2012-02-16

    # route add -net 239.0.0.0 netmask 255.0.0.0 eth1
    # ifconfig eth1 allmulti
    -
    would help. I'm assuming the 239.0.0.0 should be replaced with the server's IP address.

    Nope.

    UPnP uses IP multicast - specifically multicast address 239.255.255.250.  MediaTomb sends announcements to this address, and the "route add …" line tells your Linux system to send those announcements out eth1.  (The "ifconfig …" line ensures that multicast is enabled on the interface.)  So, if anything, you might need to use a different interface name - eth0, eth2, etc.

    Note however, that this is only necessary if MediaTomb is running on a system with more than one network interface and you want to send the announcements out an interface other than the one that goes to your default gateway.

    I've given up on MediaTomb, in favor of MiniDLNA, so I don't have it installed anymore, but there's a configuration file in which you tell it which network interface you want it to use, and it does all of this for you.  (At least that's the way the RPMs I was using on Fedora and CentOS worked.)