hzeller / gmrender-resurrect

Resource efficient UPnP/DLNA renderer, optimal for Raspberry Pi, CuBox or a general MediaServer. Fork of GMediaRenderer to add some features to make it usable.
GNU General Public License v2.0
842 stars 204 forks source link

Can't stream from android APP "Netease Music" #120

Open myknobby opened 7 years ago

myknobby commented 7 years ago

I'm using Netease Music APP from my android phone to stream music to RPI, but it doesn't work.

It seems the error is "gstreamer could not determine type of stream"

Here is the log: `INFO [2017-01-15 11:56:22.388385 | webserver] Access /upnp/rendertransportSCPD.xml (text/xml) len=15697 INFO [2017-01-15 11:56:22.571465 | transport] AVTransportURI: http://192.168.31.172:61323/mp3?filepath=%2Fstorage%2Femulated%2F0%2Fnetease%2Fcloudmusic%2FCache%2FMusic1%2F28308080-192000-8cf0dda09f8952c4cca1be579438535a.mp3.uc%21 INFO [2017-01-15 11:56:22.571643 | transport] AVTransportURIMetaData: Me and My Broken Heart</dc:title>Rixton</dc:creator>object.item.audioItem.musicTrack</upnp:class>http://192.168.31.172:61323/mp3?filepath=%2Fstorage%2Femulated%2F0%2Fnetease%2Fcloudmusic%2FCache%2FMusic1%2F28308080-192000-8cf0dda09f8952c4cca1be579438535a.mp3.uc%21Rixton</upnp:artist>Me and My Broken Heart</upnp:album>http://p1.music.126.net/ETg9gYYzOn8yZkznUxlKPA==/5847202836693478.jpg</upnp:albumArtURI>28308080</netease:musicId>1 INFO [2017-01-15 11:56:22.571720 | transport] NumberOfTracks: 1 INFO [2017-01-15 11:56:22.571805 | gstreamer] Set uri to 'http://192.168.31.172:61323/mp3?filepath=%2Fstorage%2Femulated%2F0%2Fnetease%2Fcloudmusic%2FCache%2FMusic1%2F28308080-192000-8cf0dda09f8952c4cca1be579438535a.mp3.uc%21' INFO [2017-01-15 11:56:22.572449 | transport] LastChange: <?xml version="1.0"?>

INFO [2017-01-15 11:56:22.951137 | transport] TransportState: PLAYING INFO [2017-01-15 11:56:22.951282 | transport] CurrentTransportActions: PAUSE,STOP,SEEK INFO [2017-01-15 11:56:22.951317 | transport] CurrentTrack: 1 INFO [2017-01-15 11:56:22.951349 | transport] CurrentTrackURI: http://192.168.31.172:61323/mp3?filepath=%2Fstorage%2Femulated%2F0%2Fnetease%2Fcloudmusic%2FCache%2FMusic1%2F28308080-192000-8cf0dda09f8952c4cca1be579438535a.mp3.uc%21 INFO [2017-01-15 11:56:22.951401 | transport] CurrentTrackMetaData: Me and My Broken Heart</dc:title>Rixton</dc:creator>object.item.audioItem.musicTrack</upnp:class>http://192.168.31.172:61323/mp3?filepath=%2Fstorage%2Femulated%2F0%2Fnetease%2Fcloudmusic%2FCache%2FMusic1%2F28308080-192000-8cf0dda09f8952c4cca1be579438535a.mp3.uc%21Rixton</upnp:artist>Me and My Broken Heart</upnp:album>http://p1.music.126.net/ETg9gYYzOn8yZkznUxlKPA==/5847202836693478.jpg</upnp:albumArtURI>28308080</netease:musicId>1 INFO [2017-01-15 11:56:22.951814 | transport] LastChange: <?xml version="1.0"?>

INFO [2017-01-15 11:56:22.991499 | webserver] Access /upnp/rendercontrolSCPD.xml (text/xml) len=13317 INFO [2017-01-15 11:56:23.111178 | control] cmd_obtain_variable: CurrentVolume for instance 0 ERROR [2017-01-15 11:56:23.338618 | gstreamer] typefindelement1: Error: Could not determine type of stream. (Debug: gsttypefindelement.c(933): gst_type_find_element_chain_do_typefinding (): /GstPlayBin:play/GstURIDecodeBin:uridecodebin1/GstTypeFindElement:typefindelement1) ERROR [2017-01-15 11:56:23.338981 | gstreamer] source: Error: Internal data flow error. (Debug: gstbasesrc.c(2933): gst_base_src_loop (): /GstPlayBin:play/GstURIDecodeBin:uridecodebin1/GstSoupHTTPSrc:source: streaming task paused, reason error (-5)) INFO [2017-01-15 11:57:19.128823 | transport] TransportState: STOPPED INFO [2017-01-15 11:57:19.129048 | transport] CurrentTransportActions: PLAY,SEEK INFO [2017-01-15 11:57:19.129330 | transport] LastChange: <?xml version="1.0"?>

`
hzeller commented 7 years ago

The type of stream is detected by the gstreamer subsystem. I would start with making sure that all its plugins are installed (On debian, they are all named gstreamer1.0-plugins-*). I suspect that mp3 format is not part of the default install, because it is some libre standard.

myknobby commented 7 years ago

@hzeller ,thanks for your suggestion. I had another try to install all gstreamer1.0-plugins-*. After that, it still no sound at all; Next I switch to another "Tencent QQ player", it works perfectly for about 1 hour, but then failed streaming. I have uploaded these 2 logs here https://github.com/myknobby/gmrender-resurrect-log

Hope for your further suggestions. Thanks

ReiujiUtsuho commented 7 years ago

@hzeller I guess the reason may be that Netease Music use ".mp3.uc!" as the cache file's suffix, it is a mp3 file in fact, but gstreamer can not detect the ".mp3.uc!" suffix.

hzeller commented 7 years ago

That sounds plausible. So we somehow need to have a way to tell gstreamer when it sees this mp3.uc! suffix to assume mp3.