Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matachi/icecast-server-setup
Set up Icecast on Debian Wheezy with Liquidsoap as a source and Opus support
https://github.com/matachi/icecast-server-setup
Last synced: 4 days ago
JSON representation
Set up Icecast on Debian Wheezy with Liquidsoap as a source and Opus support
- Host: GitHub
- URL: https://github.com/matachi/icecast-server-setup
- Owner: matachi
- License: mit
- Created: 2014-02-05T11:26:14.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2014-08-22T11:05:03.000Z (over 10 years ago)
- Last Synced: 2024-11-10T04:24:02.927Z (2 months ago)
- Language: Shell
- Homepage:
- Size: 168 KB
- Stars: 0
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Icecast Server Setup
Author: Daniel "MaTachi" Jonsson
License: [MIT License](LICENSE)## Features:
* **Distribution:** Ubuntu 14.04
* **Server:** Icecast2.3.3-kh10
* **Source:** Liquidsoap
* **Audio codec:** It's set up to stream in Opus. However, Vorbis works fine
too.## Setup
$ sudo docker build -t matachi/icecast .
## Run
$ sudo docker run -i -t -p 127.0.0.1:8000:8000 matachi/icecast
Inside the Docker container:
$ sudo -u user icecast -b -c /home/user/icecast.xml # Start Icecast
$ sudo -u user liquidsoap /home/user/liquidsoap.conf & # Start Liquidsoap
$ sudo -u user python3 /home/user/auth.py # Start authentication siteNext, open Firefox, Clementine, VLC, or any other program that is able to play
an Ogg Opus audio stream. Then open and
enjoy!## About and what it does
The mount point `/stream.opus` has url authentication turned on. The
authentication's `listener_add` value points to `http://127.0.0.1:5000/auth`.
At that port there is a local Python 3 Flask site running, started with
`python3 /home/auth.py` from inside the Docker container. Note that this site
won't be reachable from outside the Docker container. The Flask site will
always return the HTTP response "200 OK" along with the HTTP header
`icecast-auth-user = 1`. So the listener who connects to the stream will always
get authenticated. However, the site could, before returning the response,
launch Liquidsoap if it isn't already playing a track (Not implemented yet).
This means that if there are no listeners, Liquidsoap could safely be turned
off, consuming no CPU cycles required for encoding the music to the stream. In
other words, if the Python code is extended further, it could turn off the
encoding to the stream if there are no listeners.