Skip to content

Capability matrix: VOD vs Live

What each playback mode supports on Android, plus availability notes.

Capability VOD Live
Playback (HLS) yes yes
Entry point BunnyStreamPlayer (View, XML or Compose via AndroidView) BunnyLiveStreamPlayer (Compose only)
Seeking full timeline with preview thumbnails within the DVR window, when DVR is enabled for the stream
Pause yes yes with DVR; without DVR playback stays at the live edge
Playback speed yes (dashboard-driven list, code override available) pinned to 1x
Captions yes not currently delivered for live
Chapters and moments yes n/a
Quality selection yes automatic
Picture-in-Picture yes yes
Chromecast yes yes
Fullscreen yes yes
Resume positions yes (opt-in) n/a
Appearance dashboard player settings + PlayerIconSet in code dashboard player settings
Token authentication yes yes
Countdown before start n/a yes, for scheduled streams
Pre-stream trailer n/a yes, muted loop
Switch to recording after the stream ends n/a yes, when the stream records a VOD
Vertical (9:16) content yes (onVideoSizeChanged) yes (onVideoSizeChanged)

Broadcasting (camera)

Capability Record to VOD Broadcast to live stream
Entry point BunnyStreamCameraUpload, liveStreamId unset same view, liveStreamId set
Server-side stream start/stop n/a automatic
Reconnect on network drop reconnects reconnects with primary/backup failover
Dual publish (primary + backup at once) n/a opt-in via dualPublish (doubles upload bandwidth)
Front/back camera, mute yes yes
Connection badges n/a built-in, plus onIngestEndpointChanged for custom UI

Availability notes

  • DASH: the Android playback engine also plays DASH manifests, but Bunny's API currently serves live and VOD over HLS only, so all playback today is HLS. (iOS is HLS-only by platform.)
  • Dual publish is Android-only; the iOS SDK uses single publishing with failover.
  • Live captions are not currently available end to end.
  • Watch-time heatmap applies to VOD playback; a running live stream has no retention data.