Internet radio server
0. Contents
This is the documentation of bisqradio-1.3.0.
1. Purpose
Enables your unix server broadcast audio in streaming mp3 format.
2. Copying
3. Requirements
GNU make is required.
PHP standalone binary is required.
LAME is required.
esd is deprecated.
ssh can also be used.
The embedded wg also requires fftw.
Note: If you want to look at earlier versions, have a look at
wavegenerator. The earlier
versions were together in a same archive.
4. Installation
$ make
$ su
# make install
If you do not want to install
libargh
(included in the archive), do not use "make install" and edit
Makefile and enable the STATIC linking instead of DYNAMIC.
5. How to use
5.1. Edit the config file
Edit /usr/local/share/bisqradio/bisqradio.conf
.
Specify your configuration there. The example config
file is quite much filled with comments so you shouldn't
have problems understanding it.
5.2. Start the daemons
Start two daemons: mixer and bisqradio.
The mixer program is responsible for mixing streams
together and bisqradio is responsible of serving the
clients.
5.3. Monitor the mixer (optional)
Try this:
mixmon | ecat
This command listens to the mixer and you
will hear what the clients would hear
(but in better quality).
5.4. Feed the mixer
Now you can feed the mixer. Play whatever you want.
Examples:
find -name \*.mp3 > tmptmp; mpg123 -s -vvvvz -@ tmptmp | mixwrite
spcplay -ua -o- ct-600ad.spc | mixwrite
erec -2r44100 none | mixwrite
You can run them at the same time or different time
if you wish, depending what you want to feed to the
clients.
5.5. Shutting down (optional)
killall mixer radio_tcp bisqradio radio_http \
radio_mp3 mixmon mixwrite resample mixeridle
Might be overkill, but should work...
6. Program list
bisqradio consists of several tool
programs, which work tightly together.
6.1. radio_http
Listens to the HTTP queries to satisfy
the clients (the browsers and the players).
6.2. radio_mp3
Responsible of generating the mp3
feed for a client from a given input.
6.3. radio_ssh
Optionally run if required. Launches the mp3 encoder
on remote computer (with possibly more cpu power).
6.4. radio_tcp
The center of the radio. Servers clients with feed from
the
mixer process piped through
the mp3 encoder. Doesn't read the mixer if there are no
clients. Doesn't keep other clients waiting if somebody is lagging.
Doesn't bother to decode mp3 frames, so it will possibly
give broken frames at the beginning. Most mp3 decoders
survive from it without any faults, so it is not serious.
Shoutcast and icecast seem to do the same.
6.5. wg
These tool programs are actually part of
another software package
available separately.
It's included within this archive too, anyway.
6.5.1. hum
Generates semiquiet stream. Useful if you want to keep
the mixer quiet (if your mixeridle if not so quiet).
Does not just output zero. Plain zero stream is hard
to analyze for LAME.
6.6. streamixer
6.6.1. mixer
A stream mixing server. It accepts
mixwrite
and
mixmon -connections.
Provides a server for audio stream mixing.
Meant to be a replacement for esd, with
much more features and much less cpu usage.
6.6.2. mixmon
Monitors the mixer over a tcp connection,
reading whatever is being mixed to it.
6.6.3. mixwrite
Sends stream to the mixer over a tcp connection.
6.6.4. resample
Resamples audio stream from one format to another format.
6.6.5. mixeridle
Generates idle stream for the mixer, if there
are readers for the mixer but no writers.
Actually has been hardcoded to play something nasty...
you should customize it :)
7. Known bugs
It has serious problems surviving when there are more
than one listeners...
8. Downloading
Generated from
progdesc.php (last updated: Tue, 27 Apr 2004 12:06:05 +0300)
with docmaker.php (last updated: Sun, 12 Jun 2005 06:08:02 +0300)
at Sun, 01 Oct 2006 03:16:01 +0300