3 ms·
I've been hacking on an Icecast-compatible server with Erlang. You can feed it an FFmpeg icecast feed into the server, and listen to it with any Icecast-compat
by tombert 1y ago
I've been hacking on an Icecast-compatible server with Erlang. You can feed it an FFmpeg icecast feed into the server, and listen to it with any Icecast-compatible player. I think it's kind of neat; I do some extra things that the official Icecast server doesn't give you.
I store the chunks in a custom-built database (on top of riak_core and Bitcask), and I have it automatically also make an HLS stream as well. This involved remuxing the AAC chunks into MPEG-TS and dynamically create the playlist.
It's also horizontally scalable, almost completely linearly. Everything is done with Erlang's internal messaging and riak_core, and I've done a few (I think) clever things to make sure everything stays fast no matter how many nodes you have and no matter how many concurrent streams are running.
- cmdrk 1y agoThis sounds super cool! Any public code you can share?
- tombert 1y agoI’m afraid not; I have become a tiny bit disillusioned with open source and I’m keeping some of my projects to myself now. I’ll probably release the code I wrote for the input radio station but that’s just a glorified script written in Rust and calling FFmpeg. The only fun part of that is I call OpenAI to get AI commercials and DJ chatter.