Streaming Audio News and Tips

RSAS 0.1.8 Released

We're pleased to announce RSAS 0.1.8 is now available for download. Rocket Streaming Audio Server (RSAS) is a streaming audio webserver designed for low latency and high capacity audio streaming.

Get RSAS 0.1.8 today from our downloads page.

What's new in RSAS 0.1.8?

  • Performance optimizations:
    • Significantly reduced memory usage for listeners connecting by HTTP. In our anecdotal testing, memory usage while serving 37,000 listeners decreased from 1.2 GB to a paltry 74 MB (!)
    • Lower CPU usage
    • Improved logging performance (multi-threading) - Logging has been completely rewritten to improve performance in this version.
  • Support for 96 kHz Ogg FLAC streaming
  • Bugfixes:
    • Fixed a bug where Ogg and FLAC relays could become choppy after reconnecting to the origin stream
    • Relaying streams that are missing metadata now works.
    • Improved compatibility with older streaming encoders that still use the ICE/1.0 protocol.
    • Replace invalid UTF-8 characters on status pages
  • New Linux packages: We've added packages for Debian 9 and 10, as well as Ubuntu 16.04.

Benchmarks Coming Soon

We frequently benchmark RSAS against other streaming servers, to make sure performance is good and to help understand the impact of adding new features. We're working on putting together some numbers to share in a future blog post, but so far the performance numbers are great and we think you'll be pleased with this latest RSAS update.

If anyone has questions about RSAS scalability or high capacity streaming, please get in touch!

Why Logging Performance Matters

You might be wondering why we spent time optimizing the speed of our logging in this release, which is a decidedly unglorified task. As part of our load testing of RSAS and other streaming servers, we ramp up about 40,000 listeners on a server. During one of our tests, we force half these listeners to drop off instantly, and see what the impact on the other listeners is.

You wouldn't think listeners dropping off should have any impact on remaining listeners, but handling new connections and disconnections is one of the most CPU intensive operations of any streaming server. For example, if 15,000 listeners disconnect instantly, your streaming server needs to write 15,000 lines to it's access.log file. This can be problematic because writing to the log can block the entire application, which means other listeners might momentarily get starved of audio, and hear a dropout. If the server blocks for long enough, it's even possible for other listeners to timeout, resulting in a cascading failure.

In this latest update, we've boosted logging performance switching to asynchronous logging with a backlog. This means no matter how many listeners are connecting or disconnecting, RSAS won't block on logging and other listeners won't be affected. This is key for delivering a smooth experience on high capacity audio streams.

What's next?

We're juggling a number of new features in development, and if you need any of these features for your online audio streaming, please let us know and we'll do our best to prioritize it:

  • Windows version (coming very soon!)
  • HLS
  • Icecast-compatible status page
  • Customizable error pages
  • Even lower latency

Looking for other features? RSAS development is driven by your feedback, so get in touch and let us know how we can help your online audio streaming.