Skip to content
FrameworkStyle

hls-video

Lightweight HLS video element with minimal bundle size

The default HLS video element, optimized for minimal bundle size. HlsJsVideo is the larger, more compatible alternative.

Import

import '@videojs/html/media/hls-video';

Or load it from the CDN:

<script type="module" src="https://cdn.jsdelivr.net/npm/@videojs/cdn@10.0.0-beta.32/media/hls-video.js"></script>

Examples

Basic Usage

<media-container class="media-container">
  <hls-video src="https://stream.mux.com/BV3YZtogl89mg9VcNBhhnHm02Y34zI1nlMuMQfAbl3dM.m3u8" autoplay muted playsinline loop></hls-video>
</media-container>

API Reference

Attributes

Forwards these standard media attributes to the internal <video>. See the MDN media element reference: autopictureinpictureautoplaycontrolscontrolslistcrossorigindisablepictureinpicturedisableremoteplaybackloadingloopmutedplaysinlineposterpreloadsrc

These Video.js-specific attributes configure media behavior:

AttributeTypeDefaultDetails
stream-typeMediaStreamType"unknown"

Properties

PropertyTypeDefaultDetails
alternativeMediaSuggestionstring | undefined
contentDataMediaContentData | undefined
disableRemotePlaybackbooleanfalse
engine{ state: StateSignals<HlsVideoEngineState>; context: ContextSignals<HlsVideoEngineContext>; destroy(): Promise<void> }
error{ data?: unknown } | null
isFullscreenboolean
isPictureInPictureboolean
liveEdgeStartnumber
preload'' | 'none' | 'metadata' | 'auto'''
srcstring''
streamTypeMediaStreamType"unknown"
targetLiveWindownumber
webkitCurrentPlaybackTargetIsWirelessboolean | undefined
webkitPresentationModeWebKitPresentationMode | undefined
webkitSetPresentationMode((mode: WebKitPresentationMode) => void) | undefined

Also exposes these properties from the native media API. See HTMLVideoElement for details: autoplaybufferedcontrolscrossOrigincurrentSrccurrentTimedefaultMuteddefaultPlaybackRatedisablePictureInPicturedurationendedloopmutedpausedplaybackRateplayedplaysInlineposterreadyStateremoteseekableseekingtextTrackstitlevideoHeightvideoWidthvolume

Methods

Supports these media methods. See HTMLVideoElement for details: addTextTrackcanPlayTypeexitFullscreenexitPictureInPictureloadpauseplayrequestFullscreenrequestPictureInPicture

Events

Re-dispatches these standard media events from the internal media element: abortaddtrackcanplaycanplaythroughchangecontentdatachangedurationchangeemptiedendedenterpictureinpictureleavepictureinpictureloadeddataloadedmetadataloadstartpauseplayplayingprogressratechangeremovetrackresizeseekedseekingstalledsuspendtimeupdatevolumechangewaiting

Also emits these Video.js-specific events:

EventDescription
errorFired when a fatal condition is reported. Read `error` for it.
streamtypechangeFired when the detected stream type changes. Read `streamType` for the new value.
targetlivewindowchangeFired when the target live window changes. Read `targetLiveWindow` for the new value.

CSS custom properties

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