Hi list,
I just post some comments and thoughts I exchanged with Addrej about
streaming the output of a SqueezeBox Server (or Logitech Media Server,
see http://wiki.slimdevices.com) to a DLNA client (e.g. cheap headless
DMR). As I like the LMS and its features like Web GUI and iPhone/Android
controller software all my findings are specific to this server and not
really rygel related. My first approach was to route the ALSA output
from a SqueezeBos software player (squeezelite) via PulseAudio and rygel
to the DLNA client. To be honest I did not come very far, but I at least
found a way to possibly make it work with LMS. However, for this
solution I don't need rygel...
- LMS offers "Remote Streaming": Whenever a client connects to
http://<lms-server-ip>:9000/stream.mp3 a web-player is instatiated in
the server and it is possible to play files from the library as for any
other squeezebox player connected to the server. With a DMC it is
possible to start the stream on a DMR. When no file is playing there is
"silence" in the stream that also fills the client side buffer,
otherwise the complete playlist is fed into the stream. Thus the
reaction of the client on a button press (play, pause, skip etc) is
delayed. For a simple mplayer or vlc on linux this delay is around 70
seconds. For other clients this could be much longer!
- For each software or hardware player that registers with the server
the LMS creates a stream of the actual played file that is accessible
via the address
http://<lms-server-ip>:9000/stream.mp3?player=<player-mac-address> . As
soon as the file ends also the stream interrupts and opens again for the
next song. That means player like mplayer stops as the file ends. As
soon as the software or hardware player disconnects from the server the
stream also stops.
Finding out these thins I realised that I don't need rygel anymore, as
the stream is already created by the LMS itself and I only need to find
a way to start the stream on the DMR. First thing I did was to create a
"External Link" object on a MediaTomb DLNA server that had the address
of the LMS stream, the object type "object.item.audioItem.musicTrack"
and mimetype "audio/mpeg". Now I could browse the MediaTomb server on my
DMR (e.g. my smart TV) and select this container item to start the
stream. If no song was playing when connecting to the stream the DMR
started to cache silence and on my TV I never waited so long to find out
how much seconds the cachesize is. However I could select a song to play
in the web gui of the LMS and restart playing the container item on the
DMR and the song was played on the TV!. However as the caching is much
faster than the realtime the play marker was already half through the
playlist and pressing pause or skip had no direct effect.
To automate the start of the stream on the DMR I searched the web and
found a nice little perl script named "start_tvshow.pl"
(https://github.com/amgorb/simple-DLNA-remote-controller/blob/master/start_tvshow.pl)
that does exactly that: it searches the network for media server and
media renderer, searches the media server for a certain file and start
playing this file on the found DMRs.
I think with this littel script, some perl knowledge and some knowledge
about the LMS (also written in perl) it should be possible to implement
a plugin for the LMS that searches the local network for DLNA clients,
instatiates a squeezebox player to have the nice gui and send the player
commands like play, pause, skip, volume etc. as UPnP commands to the
DLNA client. But the discussion about this plugin should not be on this
list but in the squeezebox forum at http://forums.slimdevices.com/.
Bye, Helge.
Am 14.03.2013 07:46, schrieb Andrej Falout:
Hi Mark,
yest to both - the interface is clearly as you describe it "a test
DMC" and yes I do understand this project is about the APIs.
And I am looking for "some beautiful HTML5 DLNA enabled application"
:-) Preferably with full functionality of Amarok or Rhythmbox, and
range of plugins for things like Spotify, LastFM, BruteFIR ... so it
seems I would be waiting for a while ... :-)
But I will be on my way to solving my needs if I can get to push
stream to DLNA devices, and that way treat them as I am treating my
other network "sinks" (for the lack of the better name) - Apple
AirPlay devices/Airport Express/AirTunes (RAOP), Bluetooth A2DP
devices, Logitech Squeezeboxes, Sonos players, locally connected USB
DAC... all controlled by a mature web-based, technology-agnostic music
playing app, such as LMS. It's not perfect, but it is still the best
web-based interface for playing music around.
And SBS has one killer 'feature': It can control multiple destinations
to play multiple music streams - or the same one, or any combination
of above. And it can synchronize playback to multiple devices, and
transfer current playlists between them. Everything else (All MPD
based interfaces, Subsonic, Ampache,...) and only play one track at
the rime, optionally to multiple destinations, but still - ONE track
at the time.
And streaming to DLNA (instead of pulling music files themselves to
play) also works around gap-less playback issue and the requirement to
have CP trigger next track, transfer of control between control point
(the web one, remote on my phone, ...) etc etc...
Thanks,
Andrej
On Thu, Jan 24, 2013 at 11:10 PM, Mark D Ryan
<[email protected] <mailto:[email protected]>> wrote:
Hi Andrej,
On Mon, 2013-01-21 at 12:03 +1300, Andrej Falout wrote:
> One last question: It would help me very much if I could find
this two
> utilities:
>
>
> 1) a command-line control point, which can push URL to renderer,
> stop/play/pause, change volume etc....
>
> 2) A web browser control point. I am aware of dLeyna Cloud, but that
> is barely a prototype
>
By barely a prototype, do you mean that the UI is a little ugly or are
you having some problems with the stability of the code or with
missing
functionality? Just to clarify, the purpose of cloud-dleyna is not to
deliver a web browser control point but rather to provide a set of JS
APIs that people can use to build such control points in HTML5. We do
provide a test DMC but this is simply intended for use in testing and
certification. The intention is that someone who has some talent
in Web
design can use our APIs to easily build some beautiful HTML5 DLNA
enabled applications.
Best Regards,
Mark
>
_______________________________________________
rygel-list mailing list
[email protected] <mailto:[email protected]>
https://mail.gnome.org/mailman/listinfo/rygel-list
_______________________________________________
rygel-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/rygel-list