For years, integrators building professional streaming workflows have had to accept a silent trade-off: the moment audio targets the browser, it gets re-encoded. AAC or Opus are excellent codecs for bandwidth-constrained delivery, but they are lossy and in contexts where source fidelity matters, that loss is real and audible.
We get the demand from customers to deliver audio to the browser exactly as it was captured. Today, that is possible with SLDP.
FLAC in SLDP
FLAC (Free Lossless Audio Codec) is now a supported audio format within the SLDP protocol. Two components make this work:
- Nimble Streamer: the sending side, packaging FLAC audio into the SLDP stream and delivering it to connected players.
- Nimio player: the receiving side, decoding and playing back FLAC audio using the browser-native WebCodecs API for direct, low-overhead access to hardware decoders. At the moment, FLAC decoding is supported only in the latest Chrome and Firefox versions.
There may be a couple of sources of FLAC input for Nimble Streamer.
- Publish input from a live stream source using Enhanced RTMP protocol. E.g. you may use FFmpeg to turn FLAC file into a stream.
- Use Nimble Streamer Playout to generate live stream from a set of FLAC files.
So having your FLAC files, you can turn them into a live SLDP stream for further distribution to Nimio player in users’ browsers.
Who benefits and how
The most direct beneficiaries are developers and integrators building workflows where the audio signal must arrive in the browser intact, not reconstructed from a lossy approximation.
- Hi-fi distribution: music and audio-first platforms that promise lossless quality can now fulfill that promise end-to-end.
- Production workflows: live production teams can use browser-based confidence monitors that reflect the true source audio.
- Broadcast monitoring: verify on-air audio quality exactly as transmitted, without codec artifacts masking issues.
In each of these cases the value is the same: the browser stops being the weakest link in the audio chain.
Why Nimio and WebCodecs matter here
The WebCodecs API is what makes this practical. Traditional browser media pipelines buffer aggressively and abstract away codec-level control. That’s fine for consumer video playback, but a poor fit for low-latency professional use. WebCodecs exposes direct, frame-level access to the browser’s codec infrastructure, which Nimio uses to decode FLAC with minimal overhead and without the latency penalties of the legacy MSE path. As was mentioned above, FLAC decoding is supported only in Chrome and Firefox.
The result is lossless audio playback in the browser that is fast enough for monitoring and accurate enough for production use.
Ready to configure it?
Full setup details for SLDP are available in the SLDP setup documentation for Nimble Streamer. It’s the same for all supported codecs.
Once the SLDP output is established, set up Nimio player. You can use this Nimio demo page to test the stream first and then embed it into your workflow using GitHub repo instruction.
Let us now of any questions or issues regarding the setup and usage of FLAC in SLDP.