Open adamcik opened 9 years ago
Oh, part of this could actually already be handled by the fact that we do change_track(track)
and not change_track(uri)
- so we already have the info. As for the missing bit we could be supporting change track with uri=None
as a way to let us know the track info changed, but please continue playing the same stream.
This might not be perfectly on topic, but as I had quite some trouble to have mopidy provide an mp3 streaming source for several radios and clients including metadata (artist, title) I have found out, that the documented configuration
[audio] output = lamemp3enc ! shout2send async=false mount=mopidy ip=127.0.0.1 port=8000 password=hackme
made my clients receive the audio stream, but the stream simply did not contain correct metadata (artist,title stayed "unknown" on tested clients)
I have tried fiddling with -libshout3 versions -replacing icecast2 with liquidsoap -tcpdumping data streams produced
and ended up - by accident - with this configuration [audio] output= audioconvert ! lamemp3enc bitrate=192 ! shout2send async=false mount=input ip=127.0.0.1 port=8800 password=hackme
basically adding audioconvert to the beginning of the chain suddenly made my metadata show up as expected. Surpisingly that is included in the Ogg Vorbis example, but not in the MP3 version.
Environment is debian 12 bookworm, mopidy 3.4.2 from PIP and libshout3 2.4.6-1+b1 (from debian default repo)
So someone might stumble upon this. In essence, this was my last puzzle piece to get my good old mpd replaced.
We should check if more cloud streaming backends should be injecting metadata into GStreamer. I suspect at least soundcloud mixes could be a candidate for that if we get the whole mix as one track.
This might also just tie into supporting things like radio streams getting new track info from outside of the audio stream. Additionally with the way we set the metadata for appsrc today it might end up being sent out at the wrong time.
Benefit of this is pulse, shoutcast and any other metadata aware sinks getting better data.