5.2.2 • Published 3 years ago

@meisterplayer/plugin-bitmovin v5.2.2

Weekly downloads
9
License
Apache-2.0
Repository
github
Last release
3 years ago

Bitmovin plugin for meister

This plugin allows using the Bitmovin player as a media plugin for Meister.

Installation

You can install this plugin through npm:

npm install @meisterplayer/plugin-bitmovin

and importing it

import Meister from 'meisterplayer';
import Bitmovin from '@meisterplayer/plugin-bitmovin'

Getting started

Load the plugin by adding a bitmovin configuration object to the Meister initialisation options. You'll have to provide the license key in the top level config, any other Bitmovin config items you can pass through the bmConfig object.

Example:

var meisterPlayer = new Meister('#player', {
    bitmovin: {
        key: 'YOUR_KEY_HERE'
    }
});

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

meisterPlayer.load();

Configuration

Options are required unless marked as optional.

  • key :: string
    Your Bitmovin license key.
  • optional analyticsKey :: string
    Your Bitmovin analytics license key.
  • optional dvrThreshold :: Number
    Content with a window longer than this threshold is considered as having a DVR window. This is measured in seconds. Defaults to 300 (5 minutes).
  • optional bmConfig :: Object
    Through this option it is possible to set default values in the Bitmovin player configuration. This object is directly passed to the Player constructor when instantiating the Bitmovin player. These options can be overridden on a per item basis by setting a bmConfig property on the item. See the docs for information on the configuration object.
    var meisterPlayer = new Meister('#player', {
        bitmovin: {
            key: 'YOUR_KEY_HERE',
            bmConfig: {
                tweaks: {
                    startup_threshold?: 5;
                },
            }
        },
    });

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'
});

bmConfig Object (default: {})

Through this option it is possible to set override default values in the Bitmovin player configuration on a per item basis. This object is directly passed to the Player constructor when instantiating the Bitmovin player. See the docs for information on the configuration object.

meisterPlayer.setItem({
    src: 'https://example.com/secure/stream/manifest.mpd',
    bmConfig: {
        tweaks: {
            startup_threshold?: 5;
        },
    },
    type: 'mpd'
});

prepareMessage function (default: null)

While using Bitmovin for playback of DRM encrypted content there are extra fields you can add to the Widevine and FairPlay configs of the drmConfig object. The prepareMessage field allow modifications to license request sent from the client. See the Bitmovin Widevine docs or FairPlay docs for more details.

meisterPlayer.setItem({
    src: 'https://example.com/secure/stream/manifest.mpd',
    drmConfig: {
        widevine: {
            prepareMessage: (keyMessage) => {
                return keyMessage.message;
            },
        },
        fairplay: {
            prepareMessage: (event, session) => {
                return event.messageBase64Encoded;
            },
        },
    }
    type: 'mpd'
});

prepareLicense function (default: null)

The prepareLicense field allow modifications to license response before passing it to the CDM. See the Bitmovin Widevine docs or FairPlay docs for more details.

meisterPlayer.setItem({
    src: 'https://example.com/secure/stream/manifest.mpd',
    drmConfig: {
        widevine: {
            prepareLicense: (response) => {
                return new Uint8Array(response.license);
            },
        },
        fairplay: {
            prepareLicense: (response) => {
                return new Uint8Array(response.license);
            },
        },
    }
    type: 'mpd'
});
5.2.2

3 years ago

5.2.1

3 years ago

5.2.0

3 years ago

5.1.1

3 years ago

5.1.0

3 years ago

5.0.2

3 years ago

5.0.1

3 years ago

5.0.0

4 years ago