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.)

     

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks