Albert Santoni
2019-Sep-09 18:38 UTC
[Icecast] New Icecast Alternative: Rocket Streaming Audio Server
Hi all, Long-time lurker, first time poster here. I've been using Icecast since 2006, but in recent years, I've kept running into all sorts of issues and found many others who are in the same boat. I've done some small experimental hacks to Icecast just for fun, but I've never contributed code because: 1) I've been alienated by the Icecast team's hostility towards MP3 and AAC. 2) I've been confused by the situation between Icecast and Icecast-KH (which one is better?). 3) I disagree with the direction and priorities of the project (friendly difference of opinion). These reasons, along with running into many bugs, motivated me to create my own alternative to Icecast, which is now available: Rocket Streaming Audio Server (RSAS). https://www.rocketbroadcaster.com/streaming-audio-server RSAS is a drop-in replacement for Icecast that's compatible with Icecast 2.3/2.4 config files, encoders, players, and even writes to the same log file format. I did this to make it as easy as possible for myself to migrate my own servers over, and I hope this will be useful to others too. The key advantages of RSAS are that it uses a slightly different networking model than Icecast, which provides lower latency (about 4 seconds out of the box - and will be even lower in the future), it officially supports MP3 and the AAC/AAC+ family of codecs, and offers consistent metadata support across all codecs. RSAS implements most of the major features of Icecast 2.4, including mounts, stream relays, stream fallbacks, fallback files, and source authentication webhooks. Instead of the "admin" interface, there's a single "/health" endpoint that returns stats and mount info in JSON format. It can be easily read by humans and machines, and makes monitoring easy. To be more specific, there's a number of long-standing issues in Icecast that are fixed in RSAS: - Ogg Vorbis, Opus, and Ogg FLAC metadata is supported as in-stream ICY metadata. This keeps coming up on this mailing list, and RSAS + Rocket Broadcaster actually implement it. This is not Ogg metadata, this is ICY metadata that occurs as part of the stream, which I argue is way better because it's consistently supported across players. Any player that supports MP3 metadata with Icecast will support ICY Opus/FLAC metadata, and RSAS passes it through for any codec. So finally, there's a simple solution for streaming Ogg FLAC and Opus metadata. - Fallbacks are frame-synchronized for MP3 and AAC, meaning it won't randomly drop listeners. There was a recent bug reported by Michel van Dop about this in Icecast. RSAS doesn't have this problem. If you're wondering why you're losing listeners when your AAC stream switches to a fallback, it's because of this bug ( https://gitlab.xiph.org/xiph/icecast-server/issues/2376). - On-demand relays don't really work reliably with Icecast. I don't even think this in the bug tracker, but I ran into all sorts of issues where on-demand relays would drop and never reconnect or just get stuck with both Icecast and Icecast-KH. There's also weird behaviour in Icecast, like how the first listener that connects to an on-demand mount will always just an error. RSAS fixes all of these - on-demand mounts are reliable and work for the first listener. And to top it off, relaying on-demand with RSAS adds very little latency, which is very different from Icecast. - stream_auth supports HTTPS with RSAS, which is missing in Icecast 2.4. This was a big problem for me because it meant the web services that I wanted to use for stream_auth needed to send mount passwords over HTTP (insecure!). - CORS out-of-the-box - Streams are meant to be embedded and played everywhere, so this "just works" with RSAS. You can download Rocket Streaming Audio Server today for Linux, with a Windows version coming soon. Read more about it and download it from the official website: https://www.rocketbroadcaster.com/streaming-audio-server Lastly, I bring forward this criticism with the utmost respect to Thomas, Philipp, Karl, and the whole Icecast team. Icecast is the central pillar of the online radio world and the Xiph Foundation has been instrumental in creating a global ecosystem for streaming audio. I hope my criticism and a little competition will ultimately be beneficial to broadcasters no matter which software they're using. Thank you, Albert -- Albert Santoni Founder, Lead Developer | Oscillicious Delicious Audio Tools and Plug-ins -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.xiph.org/pipermail/icecast/attachments/20190909/01521009/attachment.html>