- para_server (obligatory):
- This server listens on a tcp port and accepts commands such as
- play, stop, pause, next. However, there are many more commands.
+ This server supports audio streaming of mp3, ogg vorbis and
+ aac files. It listens on a tcp port and accepts commands
+ such as play, stop, pause, next from authenticated clients.
- For audio streaming, at least one sender must be activated.
- At the moment, paraslash contains two internal senders:
+ The audio stream may be sent over the network by three
+ different senders:
The http sender is recommended for public streams that can
be played by any player like mpg123, xmms, winamp...
+ The dccp sender is experimental and requires kernel support
+ for the rather new datagram congestion control protocol.
+
The ortp sender is recommended for LAN streaming and for
private streams that require authentication.
It is possible to activate more than one sender simultaneously.
- All senders have the same set of commands that allow to
- control the access permissions of the stream.
- para_server needs a "database tool" to work, mainly to
- determine which song to stream next. There are three such
- tools available: random, plm and mysql. The former chooses
- audio files randomly and plm, the playlist manager, can handle
+ para_server needs an "audio file selector" to work, mainly
+ to determine which song to stream next. There are three
+ selectors available: random, playlist and mysql. The former
+ chooses audio files randomly and playlist can handle, well,
playlists. Both are always supported.
- The (optional) mysql database tool connects to a mysql server
- which holds information on your audio files. It has several
- unusual features, see README.mysql for details.
+ The optional mysql selector connects to a mysql server which
+ holds information on your audio files. It has several unusual
+ features, see README.mysql for details.
- para_client (obligatory):
- para_recv (optional)
- A command line http/ortp stream grabber.
+ A command line http/dccp/rtp stream grabber.
- para_filter (optional)
- An filter program that converts from stdin and writes to
+ A filter program that converts from stdin and writes to
stdout. This one is independent from the rest of paraslash,
so it might be useful also for different purposes.
- para_filter combines an mp3 decoder an oggvorbis decoder
+ para_filter combines several decoders (mp3, oggvorbis, aac)
and a volume normalzer. New filters can be added easily due
to the modular design. If more than one filter is specified,
the given filters are 'piped' together in-memory, i.e. without
calling any of the read(2)/write(2)/select(2) etc. functions.
-- para_play (optional)
+- para_write (obligatory)
- A small wav/raw player for alsa.
+ A modular audio stream writer. It supports a simple file
+ writer output plugin and an optional wav/raw player for alsa.
Debian package: libasound2-dev
- para_audiod (optional, but recommended):
- The local daemon that starts playback and collects information
- from para_server to be forwarded to local clients.
-
- para_audiod reads the audio stream from the network if
- para_server indicates that there is a stream available. It may
- be sent through any of the supported filters (see para_filter
- above) before the result is fed to the output software
- (default: para_play) which must be capable of reading from
- stdin, but is not restricted otherwise.
+ The local daemon that collects information from para_server. It
+ starts an appropriate receiver, filter and player as soon
+ as para_server announces the availability (and the type) of
+ an audio stream. para_audiod listens on a local socket and
+ sends status information about para_server and para_audiod
+ to local clients on request.
- para_audioc (optional, but recommended)
- A small client that can talk to para_audiod. Used to control
- para_audiod and to receive status info. It can also be used to
- grab the stream at any point in the filter chain. para_audioc
- is needed by para_gui, para_sdl_gui and para_krell, see below.
+ The client program which talks with para_audiod. Used to
+ control para_audiod, to receive status info, or to grab the
+ stream at any point in the filter chain.
+
+ para_audioc (hence para_audiod) is needed by para_gui,
+ para_sdl_gui and para_krell, see below.
-- para_gui (optional, but recommended):
+- para_gui (optional):
- Themable ncurses-based gui. It calls para_audioc and presents
- the obtained information in an ncurses window. para_gui
- provides key-bindings for the most common commands and new
- key-bindings can be added easily.
+ Themable ncurses-based gui. It calls para_audioc and presents
+ the obtained information in an ncurses window. para_gui
+ provides key-bindings for the most common commands and new
+ key-bindings can be added easily.
- para_sdl_gui (optional):
- SDL-based gui. Similar to para_gui but presents its output in
- an X window (fullscreen mode is also available) and can display
- jpg images on a per song basis. para_sdl_gui provides an input
- prompt to enter arbitrary commands. However, it can also be used
- non-interactively (e.g. as a screen saver) via the -i switch.
+ SDL-based gui. Similar to para_gui but presents its output
+ in an X window (fullscreen mode is also available) and can
+ display jpg images on a per song basis. para_sdl_gui provides
+ an input prompt to enter arbitrary commands. However, it
+ can also be used non-interactively (e.g. as a screen saver)
+ via the -i switch.
-- para_krell (optional, only useful in conjunction with the mysql dbtool):
+- para_krell (optional, only useful in conjunction with the mysql selector):
A plugin for gkrellm which shows small pictures of the
current song. It allows you to launch 27 different commands
A (Linux-only) alarm clock and volume-fader.
-- para_dbadm (optional, only useful in conjunction with the mysql dbtool):
+- para_dbadm (optional, only useful in conjunction with the mysql selector):
Very simple curses-based frontend which uses libmenu. Useful
for quickly changing the attributes of the current song
(e.g. from para_gui as an external command).
-- para_slider (optional, only useful in conjunction with the mysql dbtool):
+- para_slider (optional, only useful in conjunction with the mysql selector):
A small X application which shows a scrollbar for each
attribute defined in the mysql database. It creates a stream
~~~~~~~~~~~~~
In any case you need
- - gcc, the gnu compiler collection (shipped with distro): gcc-3
- or newer is prefered, but gcc-2.95 is still supported. Note
- that gcc-2.95 may spit out many warnings like unused function
- parameters and missing initializers. These are all harmless
- and may be ignored.
+ - gcc, the gnu compiler collection (shipped with distro): gcc-3.3
+ or newer is required.
- openssl (needed by server, client): usually shipped with
distro, but you might have to install the "development"
- software mixing, e.g. ALSA and the direct mixing plugin (dmix)
-If you want to use the mysql-based dbtool (recommended), you also need
+If you want to use the mysql-based audio file selector, you also need
- mysql-server
- mysql-client
If you want to stream ogg vorbis files you'll need:
- libogg, libvorbis, libvorbisfile, and a command line ogg vorbis
- player, e.g. para_filter or ogg123.
+ decoder, e.g. para_filter or ogg123.
http://www.xiph.org/downloads/
Debian packages: libogg-dev libvorbis-dev
-Note that para_audiod still works even if neither mp3 nor ogg support
-was compiled in. You'll have to use the --no_default_filters option
-in this case (and e.g. "mpg123 -" as the stream write command).
+For aac files (m4a) you'll need libfaad. Get it at
+
+ http://www.audiocoding.com/modules/wiki/?page=AAC
+
+Note that para_audiod still works even if no audio file support was
+compiled in. You'll have to use the --no_default_filters option in this
+case (and e.g. "mpg123 -" as the stream write command for mp3 streams).
If you intend to use the optional ortp streamer:
~~~~~~~~
Distribution of paraslash is covered by the GNU GPL. See file COPYING.
-LIMITATIONS:
-~~~~~~~~~~~~
-The mysql database tool assumes that the basenames of your audio files
-are unique. If this is not the case, don't use this database tool,
-rename your files, or create your own database tool.
-
THE AUTHOR:
~~~~~~~~~~~
Author: Andre Noll <maan@systemlinux.org>