Tracks, not toggles.
Resolution, audio language, subtitles and chapters are exposed as real media tracks. Vela keeps one state model across HLS and DASH.
A complete playback surface
Adaptive video, multilingual audio, live DVR and accessibility controls underneath. A deliberately quiet surface above it.
Theme + caption builder
{
"src": "https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd",
"sourceType": "dash",
"thumbnailVtt": "/demo-thumbnails.vtt",
"textTracks": [
{
"src": "/demo-en.vtt",
"language": "en",
"label": "Vela English",
"kind": "subtitles"
},
{
"src": "/demo-ja.vtt",
"language": "ja",
"label": "Vela 日本語",
"kind": "subtitles"
}
],
"chapters": [
{
"id": "opening",
"title": "Opening",
"start": 0,
"end": 12
},
{
"id": "crossing",
"title": "The crossing",
"start": 12,
"end": 24
},
{
"id": "horizon",
"title": "Horizon",
"start": 24
}
],
"captionStyle": {
"fontScale": 1,
"color": "#ffffff",
"background": "#080908",
"backgroundOpacity": 0.82,
"edge": "shadow",
"fontFamily": "sans"
},
"theme": {
"accent": "#d8ff62",
"surface": "#080908",
"foreground": "#ffffff",
"muted": "#a5a79f",
"radius": 0,
"blur": 18,
"controlsOpacity": 0.76
}
}Playback model
Resolution, audio language, subtitles and chapters are exposed as real media tracks. Vela keeps one state model across HLS and DASH.
Live playback uses the seekable DVR window rather than pretending an infinite stream is a VOD. Falling behind reveals a precise Go Live affordance.
HDR10, HLG, Dolby Vision, Dolby Audio and spatial-audio signals surface as restrained badges when the manifest and selected tracks expose them.
Distribution
The same player ships as a React component, a framework-neutral iframe controller, and a custom element. The Web Component keeps Vela usable from plain HTML, Vue, Svelte or any other DOM environment.
import "@vela/player/web-component";
<vela-player
src="https://cdn.example.com/master.m3u8"
type="hls"
accent="#d8ff62">
</vela-player>
// or
import { VelaPlayer } from "@vela/player/react";