Skip to content
FrameworkStyle

HlsVideo

HLS video element powered by hls.js for adaptive bitrate streaming

HLS video element powered by hls.js for adaptive bitrate streaming. It’s the recommended choice for HLS playback: full feature support across every browser. For alternatives, see NativeHlsVideo (browser-native HLS) or SimpleHlsVideo (lightweight HLS).

Examples

Basic Usage

import { HlsVideo } from '@videojs/react/media/hls-video';

export default function BasicUsage() {
  return (
    <HlsVideo
      className="hls-video"
      src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8"
      autoPlay
      muted
      playsInline
      loop
    />
  );
}

API Reference

Host Properties

Property Type Default Details
audioRenditions AudioRenditionListLike | undefined
audioTracks AudioTrackListLike | undefined
config HlsMediaConfig {}
engine Hls | null
error (ErrorLike & MediaError) | null
liveEdgeStart number
preload PreloadType 'metadata'
src string ''
streamType StreamType 'unknown'
targetLiveWindow number
videoRenditions VideoRenditionListLike | undefined
videoTracks VideoTrackListLike | undefined

Attributes

Renders a native <video> element and accepts these media attributes as React props. The standard ones behave as described in the MDN media attributes reference: autopictureinpictureautoPlaycontrolscontrolslistcrossOrigindisablepictureinpicturedisableremoteplaybackloadingloopmutedplaysInlineposterpreloadsrcstream-type

Events

Handle these media events with React event props (e.g. onPlay, onTimeUpdate). See media events: abortcanplaycanplaythroughdurationchangeemptiedendederrorloadeddataloadedmetadataloadstartpauseplayplayingprogressratechangeresizeseekedseekingstalledsuspendtimeupdatevolumechangewaiting

These media events have no React prop — attach a listener through a ref with addEventListener: addtrackchangeenterpictureinpictureleavepictureinpictureremovetrack

Beyond the media events above, this element emits:

Event Description
streamtypechange Fired when the detected stream type changes. Read `streamType` for the new value.
targetlivewindowchange Fired when the target live window changes. Read `targetLiveWindow` for the new value.

These events have no built-in React prop. Attach a listener to the element through a ref with addEventListener.

Methods

Supports these methods from the native media API. See HTMLMediaElement for the core methods: addTextTrackcanPlayTypeexitFullscreenexitPictureInPictureloadpauseplayrequestFullscreenrequestPictureInPicture

In React, call these through a ref to the element.

CSS Custom Properties

Variable Details
--media-video-border-radius
--media-object-fit
--media-object-position
--media-caption-track-duration
--media-caption-track-delay
--media-caption-track-y