←back to thread

439 points david927 | 2 comments | | HN request time: 0s | source

What are you working on? Any new ideas which you're thinking about?
Show context
tombert ◴[] No.44418647[source]
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.

replies(1): >>44425285 #
1. cmdrk ◴[] No.44425285[source]
This sounds super cool! Any public code you can share?
replies(1): >>44434113 #
2. tombert ◴[] No.44434113[source]
I’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.