Skip to content
This repository has been archived by the owner on Jun 22, 2021. It is now read-only.

meisterplayer/media-dash

Repository files navigation

Dash Plugin

A plugin for the Meister.js video player that allows playback of DASH streams.

How do I get set up?

When initializing the player add dash with it's own configuration to the configuration object.

var player = new Meister("#querySelector", {
    dash: {
        lowMemoryMode: false,
        dvrEnabled: true,
        dvrThreshold: 300,
        settings: {
            liveDelayFragmentCount: 8,
            stableBufferTime: 30,
        }
    }
});

Configuration

Options are required unless marked as [optional]. For more detailed information on the various dashjs settings please refer to the official dashjs documentation.

  • [optional] lowMemoryMode :: Boolean
    A special preset of settings that allow for smoother playback on lower memory devices. Defaults to false.
  • [optional] dvrEnabled :: Boolean
    Allow use of the DVR window if one is present. By passing false all streams are considered as just livestreams. Defaults to true.
  • [optional] dvrThreshold :: Number
    Content with a window longer than this threshold is considered as having a DVR window. Defaults to 300 (5 minutes).
  • [optional] Deprecated! settings :: Object
    Settings for the internal dashjs object. These values are applied last, so they will override any presets from the lowMemoryMode.
    • [optional] abandonLoadTimeout :: Number
      See docs.
    • [optional] bandwidthSafetyFactor :: Number
      See docs.
    • [optional] bufferPruningInterval :: Number
      See docs.
    • [optional] bufferTimeAtTopQuality :: Number
      See docs.
    • [optional] bufferTimeAtTopQualityLongForm :: Number
      See docs.
    • [optional] bufferToKeep :: Number
      See docs.
    • [optional] fastSwitchEnabled :: Boolean
      See docs.
    • [optional] fragmentLoaderRetryAttempts :: Number
      See docs.
    • [optional] fragmentLoaderRetryInterval :: Number
      See docs.
    • [optional] liveDelay :: Number
      See docs.
    • [optional] liveDelayFragmentCount :: Number
      See docs.
    • [optional] longFormContentDurationThreshold :: Number
      See docs.
    • [optional] richBufferThreshold :: Number
      See docs.
    • [optional] stableBufferTime :: Number
      See docs.
    • [optional] useSuggestedPresentationDelay :: Boolean
      See docs.
  • [optional] onDashInitialized :: Function
    Callback called when a dash.js instance has been initialized. The function is called with the dash.js instance as the only argument. This will eventually replace the settings object as this provides more direct access. See the Dash.js docs for more information on the various settings.

Item options

The following options can be added per item

startFromLive [Boolean] (default: false)

Start from the live edge this will bring the player as close as possible to the live edge.

meisterPlayer.setItem({
    src: 'https://example.com/secure/stream/manifest.mpd',
    startFromLive: true,
    type: 'mpd'
});

startFromBeginning [Boolean|Object] (default: false)

Start from the beginning of the live stream. (VOD streams will always begin from the beginning).

meisterPlayer.setItem({
    src: 'https://example.com/secure/stream/manifest.mpd',
    startFromBeginning: true,
    type: 'mpd'
});

Or you can give an object with an offset to start from a offset

meisterPlayer.setItem({
    src: 'https://example.com/secure/stream/manifest.mpd',
    startFromBeginning: {
        offset: 10, // Start from the "beginning" with an offset of 10 seconds
    },
    type: 'mpd'
});