Aurena is a network distributed media playback system. It provides
a server for media content, and clients for synchronised playback across
all receivers, similar to some (expensive) commercial systems.
To use this, just build it in the usual autoconf-ey way (configure && make)
Building the clients requires GLib/GObject > 2.30, avahi-client and
avahi-glib > 0.6.24, json-glib-1.0 and libsoup >= 2.26.1, as well as
GStreamer 1.0 and gst-plugins-base libs. The GUI clients also require GTK+ 3.0
To build the server binary, you additionally need sqlite >= 3.3, and
a slightly newer GLib (>=2.32) and libsoup (> 2.48). You only need the server
on one machine that will host the media files. Only a client app is needed
on the receivers.
After building, run src/aurena-server on one machine, and
'src/aurena-simple-client' (or one of the other client apps in src/) on
several clients that can access the server machine 'server-host'. The clients
should auto-detect the server. If that doesn't work (if Avahi broadasts are
broken) pass the server-host name explicitly as a parameter to
aurena-simple-client.
For control, hit http://server-host:5457/
Notes/future ideas:
*) media library with metadata - see available songs
*) Multiple zones, ability to move players between zones
**) pause zone when 0 players online
- daemon portion - http + rtsp + network clock source
+ avahi announcements
+ base time distribution
+ http = libsoup
+ network clock source = gst
- rtsp = gst-rtsp-server
- player
+ playbin wrapper that does rtsp or http + network clock subscription
and follows remote volume control, pause/play etc.
Security
========
Very little effort has been put into making the server secure. It allows
making clients play any arbitrary http URI. No authentication is required
for clients to connect.
This software should only ever be run on a private network, where all software
running on the network and its clients is trusted.