Skip to content
FrameworkStyle

MuxVideo

Video element for Mux-hosted HLS streams

Video element for playing Mux-hosted HLS streams. Built on hls.js with Mux-specific optimizations.

Examples

Basic Usage

import { MuxVideo } from '@videojs/react/media/mux-video';

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

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