We’ve released Nimio Player 1.8.0, a new update to our open-source WebCodecs-based player for low-latency playback. This release adds CEA-608 closed captions support, bringing an important accessibility and usability feature to Nimio’s modern playback stack.
Nimio has been evolving quickly over the last few releases. Version 1.6.0 added SSAI support, synchronized playback and DVR playback, while version 1.7.0 introduced VOD thumbnails for easier timeline navigation. With 1.8.0, Nimio continues moving beyond pure low-latency playback by adding subtitle and caption capabilities that are essential for many production workflows.
Why CEA-608 captions matter
Closed captions are a practical requirement for a wide range of streaming scenarios. They improve accessibility for viewers, make streams easier to follow in sound-off environments, and help playback workflows fit better into real-world broadcast and online delivery setups. With CEA-608 support now available in Nimio, developers can build richer player experiences without relying on external caption handling layers.
What’s new in Nimio 1.8.0
Nimio 1.8.0 adds support for CEA-608 caption tracks directly in the player. Captions can be enabled in player configuration, with tracks identified as CC1, CC2, CC3, and CC4. Each track can also define a display name, language label, and default selection behaviour.
This makes it possible to prepare caption-enabled playback experiences such as:
- multilingual caption selection
- default caption presets for specific audiences
- custom player UI for subtitle switching
- and accessibility-focused playback interfaces
These capabilities are reflected in Nimio’s new captions configuration and control methods.
Player API and caption events
The captions implementation in Nimio 1.8.0 is not limited to simple on/off rendering. The updated player API includes a setCaptionTrack(ID) method, which allows switching between caption tracks or disabling captions with OFF. New nimio:captions-arrived event, emitted whenever a new set of captions is ready for display. That event provides structured caption data along with the current player time, which gives developers additional flexibility for building custom rendering or integrations on top of the player.
In practice, this means Nimio can be used not only with its built-in UI logic, but also as a foundation for more specialised interfaces where caption handling needs to be synchronised with custom controls, overlays, or branded player components.
Example configuration
A typical captions setup in Nimio 1.8.0 can look like this:
const nimio = new Nimio({
streamUrl: "wss://example.com/live/stream",
container: "#player",
captions: {
CC1: {
name: "English",
lang: "English",
default: true
},
CC2: {
name: "Spanish",
lang: "Spanish"
}
}
});
nimio.play();
Built for real streaming workflows
Nimio started as a developer-first player focused on ultra-low-latency playback with SLDP and WebCodecs. Recent releases have expanded it with DVR, SSAI, synchronized playback, VOD thumbnails, and now captions. Version 1.8.0 is another practical step toward making Nimio a more complete playback solution for real deployments where usability, accessibility, and integration flexibility matter just as much as latency.
Try Nimio 1.8.0
You can explore the new release on GitHub and try Nimio in your own playback workflows. Nimio remains open source and continues to evolve as Softvelum’s modern browser player for low-latency streaming and advanced playback scenarios.