OvenMediaEngine (OME)
After countless setups, we're now using OvenMediaEngine as the core streaming server that handles transcoding and delivery for all live video streams.
The primary delivery protocol is LLHLS (Low-Latency HLS) using fragmented MP4 (fMP4) segments. We want to achieve latency of 2 seconds but we're still working on it. For clients or networks that cannot sustain LLHLS, the server falls back to standard HLS with MPEG-TS segments, which runs at a more traditional 10 second latency.
Adaptive Bitrate (ABR) is configured with two renditions to cover every connection quality. All renditions share the same 192 kbps AAC audio track so that switching quality never cuts out the audio.
For listeners who prefer a pure audio stream — no video overhead — we run an Icecast. It serves AAC-LC at 192 kbps encoded via libfdk_aac, with an MP3 fallback for legacy clients that cannot decode AAC in an Icecast stream.
thumb.ether.esr.li
A poster frame endpoint lives at thumb.ether.esr.li. It gets a full frame every now and then from the live stream producing 1280×720 JPEG images.
These thumbnails serve two purposes on the website: they are used as poster frames for the video player before the user hits play, and they populate the MediaSession artworkso that browser media controls and mobile lock screens display the current show's visual identity.
ControlRoom
ControlRoomis the custom-built backoffice system that manages the entire station. It handles show scheduling, episode management, host profiles, and the live “right now” status that tells listeners what is currently on air.
Every piece of data you see on this website — the schedule grid, show pages, episode archives, and the live indicator — comes from the ControlRoom JSON API.
Video playback uses hls.js directly (not via react-player) for fine-grained control over the HLS stream, including ABR switching and low-latency mode. Styling: a fully custom design scale with font sizes, breakpoints, and colour palette are all bespoke to the East Side Radio brand. Designed by v-a studio.