Skip to Content
This documentation is provided with the HEAT environment and is relevant for this HEAT instance only.
Dashboard ComponentsNextVideoPlayback (Next)

VideoPlayback (Next)

Stub player for adaptive video catalogues produced by adaptive-video-encode (video-utils). The value channel exposes multiple named streams (for example eye.left / eye.right) with chunk metadata and future HLS/DASH ladder URLs. Decode is stubbed; the UI shows stream status, a stream selector, and a scrubber.

Summary

Value
Layout idVideoPlayback
Widget configvideoPlaybackItem (enablePlayPause, syncWithClock, optional defaultStreamName)
Channel shapevalue

Migration status

migrated , reference: tools/arbex/reference/next/VideoPlayback.json. See Dataservice migration status.

Layout

FieldDescription
channelsOne value channel id, e.g. eye-tracking-video
videoPlaybackItem.enablePlayPauseShow play/pause. Default false
videoPlaybackItem.syncWithClockSync scrubber with realm TimelineClock via useClock. Default true
videoPlaybackItem.defaultStreamNamePreferred stream (e.g. eye.left). Defaults to first stream
enablePlaybackControlsRow/page playback chrome (align with other timeline widgets)

Clock sync

When syncWithClock is true (default):

  1. Inbound: scrubber follows realm clock elapsedMs / play state from outside this widget.
  2. Outbound: scrub / optional play-pause call clock.seek / start / pause.
  3. No feedback loop: seeks and play actions initiated by VideoPlayback set a short-lived flag so the matching clock echo tick/state is ignored.

When syncWithClock is false, scrubber state is local only.

Data contract

ShapePayload
valueAdaptive video catalogue (see below)
{ "artefactKind": "adaptive-video-catalogue", "status": "pending", "streams": [ { "name": "eye.left", "codec": "H264", "width": 1280, "height": 720, "chunks": [], "hlsManifestUrl": null, "dashManifestUrl": null } ], "durationMs": 900000, "note": "Chunks are short H264 segments; ladders produced after stitch/catalogue." }

Capture video arrives as chunked multi-stream H264 (StreamComponent / VideoSource), not a single contiguous MP4. Ladders and chunk lists are filled by video-utils over time (pendingpartialready).

Example

Maximal layout + channel: VideoPlayback.json. RAG: tools/arbex/rag/reference/components/VideoPlayback.md.