Ices0 is a source client for broadcasting in MP3 format to an Icecast/Shoutcast server.
This is a fork of the Icecast ices0 utility, and has been carefully enhanced to be compatible with CentovaCast, Airtime, AzuraCast, kPlaylist and others, as well as standalone.
- added a config option to disable playlist loop-play
This version 0.4.11 features the following enhancements:
- Script module for easy shell scripting (i.e., for kPlaylist).
- Support for MP3 Unicode id3v2 tags (aka the infamous "garbage in
song titles" bug). MP3 stream metadata will always be UTF-8-encoded.
Note: Newer Icecast servers assume ISO-8859-1 for MP3 mounts, so you might need<charset>UTF8</charset>as a mount param in youricecast.xmlfile! - FLAC/OGG/MP4/MP3 transcoding support, including correct metadata from tags.
- CrossMix option to crossmix tracks at 100% volume (instead of fading) by Daniel Pettersson and Rolf Johansson.
- MinCrossfade setting to specify a minimum track length for which to enable the crossfader (for jingles etc.).
- Works with new and old FLAC APIs (now works with libflac 1.3.2/1.3.0 instead of requiring the older 1.1.2 to compile).
- Support for M3U/M3U8 playlist files (ignore lines starting with #).
Note: M3U/M3U8 files should be saved WITHOUT a BOM. - ReplayGain support throughout:
- MP3: reads
RVA2andTXXX:replaygain_track_gainframes, case-insensitive.
Note: TXXX frames "win" over RVA2, this is intended. - FLAC: reads
REPLAYGAIN_TRACK_GAINVorbisComment, case-insensitive. - Ogg Vorbis: reads
REPLAYGAIN_TRACK_GAINVorbisComment, case-insensitive. - MP4: reads
----:com.apple.iTunes;replaygain_track_gain, case-insensitive.
- MP3: reads
- Fixed MP4/AAC support to work with libmp4v2.
- Check for playing regular files (in case a device or directory was accidentally specified).
- Cue file writing is disabled per default but can be enabled using
-Qon the commandline or using<CueFile>1</CueFile>inices.conf,Executionsection. Note: This can wear out discs and especially SD cards real quick, use with care (or in a RAM disc). - Allow username different from "source" for stream connections:
-U useron the commandline or<Username>user</Username>inices.conf,Stream/Serversection. - Can be installed using Homebrew, for instance on a MacOS X system.
- Accept anything other than MP3, Ogg Vorbis, FLAC and MP4/M4A AAC files for input.
- Stream anything else than MP3 streams to a server. Ogg, FLAC and AAC are transcoded to MP3; this is why enabling Reencode is a good idea. Ices needs
liblamefor that. - Play broken MP3 files correctly (there are more than you would believe). You might try MP3 Diags to repair.
- Apply ReplayGain if reencoding isn’t enabled. (Enabling reencoding is generally a good idea.)
- Use
httpsfor streaming to an Icecast/Shoutcast server. Most stream providers don’t offer this anyway, and it doesn’t mean the server’s web pages can’t usehttps.
That said, ices0 is still a rock-solid tool and often used as an "Auto DJ", even in large systems like Airtime, CentovaCast, AzuraCast and many others. I have seen it running on servers over months without a single glitch.
- libxml2
- libogg
- libvorbis
- libshout
- liblame
- libflac
- libfaad
- libmp4v2
On Ubuntu 18.04/Linux Mint 19.1, these can usually be installed with:
sudo apt-get install libxml2-dev libogg-dev libvorbis-dev libshout3-dev
sudo apt-get install libmp3lame-dev libflac-dev
sudo apt-get install libfaad-dev libmp4v2-devFor the Python and Perl scripting engines, additional libraries are needed:
sudo apt-get install libpython-dev libperl-devOpen a terminal and simply enter:
brew install Moonbase59/tap/ices0If you don’t have current versions of Python2 and/or Perl on your system and wish to use ices0’s scripting features, you can pull the latest versions in using a command like:
brew install --with-python2 --with-perl Moonbase59/tap/ices0You need git and a working automake build environment.
git clone https://github.com/Moonbase59/ices0.git
cd ices0
aclocal
autoreconf -fi
automake --add-missing
./configureCheck configure's ouput. Ideally, it should end like this:
Features:
XML : yes
Python : yes
Perl : yes
LAME : yes
Vorbis : yes
MP4 : yes
FLAC : yes
(This is a full build with all features.)
make
sudo make installYou can also create a distribution .tar.gz file:
make distBefore making a pull request, please clean up using
make maintainer-cleanso you won't be pushing unneccessary temp files to GitHub.