ices ==== [IceS][1] is a source client for the Icecast streaming server. The purpose of this client is to provide an audio stream to Icecast, so that one or more listeners can access the stream. With this layout, the source client can be situated remotely from the Icecast server. How It Works ------------ ``` +-> (LAN) -> (icecast) -+ (in) -> (ices) -| |-> (out) -> (mpd) -> (file) +-> (WAN) -> (icecast) -+ ``` docker-compose.yml ------------------ ```yaml version: "3.8" services: ices: image: vimagick/ices volumes: - ./data:/etc/ices devices: - /dev/snd depends_on: - icecast restart: unless-stopped icecast: image: vimagick/icecast ports: - "8000:8000" restart: unless-stopped ``` ices.xml -------- ```xml 0 4 1 /var/run/ices.pid Example stream name Example genre A short description of your stream http://easypi.info alsa 44100 1 hw:1,0 1 /etc/ices/ices.txt icecast 8000 hackme /live.ogg 0 44100 1 ``` > You can setup multiple `instances` (e.g. LAN & WAN). ices.txt -------- ```ini artist=Various Artists title=Untitled Song ``` Running ------- ```bash $ arecord -l **** List of CAPTURE Hardware Devices **** card 1: Device [USB Audio Device], device 0: USB Audio [USB Audio] Subdevices: 0/1 Subdevice #0: subdevice #0 $ alsamixer -c 1 $ docker-compose up -d $ streamripper http://localhost:8000/live.ogg $ vi data/ices.txt $ docker-compose kill -s SIGUSR1 ``` [1]: http://icecast.org/ices/