mpd-parser

    0.21.0 • Public • Published

    mpd-parser

    Build Status Greenkeeper badge Slack Status

    NPM

    mpd parser

    Table of Contents

    Installation

    npm install --save mpd-parser

    Usage

    // get your manifest in whatever way works best
    // for example, by reading the file from the filesystem in node
    // or using fetch in a browser like so:
    
    const manifestUri = 'https://example.com/dash.xml';
    const res = await fetch(manifestUri);
    const manifest = await res.text();
    
    var parsedManifest = mpdParser.parse(manifest, { manifestUri });

    If dealing with a live stream, then on subsequent calls to parse, the previously parsed manifest object should be provided as an option to parse using the previousManifest option:

    const newParsedManifest = mpdParser.parse(
      manifest,
      // parsedManifest comes from the prior example
      { manifestUri, previousManifest: parsedManifest }
    );

    Parsed Output

    The parser ouputs a plain javascript object with the following structure:

    Manifest {
      allowCache: boolean,
      endList: boolean,
      mediaSequence: number,
      discontinuitySequence: number,
      playlistType: string,
      playlists: [
        {
          attributes: {},
          Manifest
        }
      ],
      mediaGroups: {
        AUDIO: {
          'GROUP-ID': {
            default: boolean,
            autoselect: boolean,
            language: string,
            uri: string,
            instreamId: string,
            characteristics: string,
            forced: boolean
          }
        },
        VIDEO: {},
        'CLOSED-CAPTIONS': {},
        SUBTITLES: {}
      },
      dateTimeString: string,
      dateTimeObject: Date,
      targetDuration: number,
      totalDuration: number,
      discontinuityStarts: [number],
      segments: [
        {
          byterange: {
            length: number,
            offset: number
          },
          duration: number,
          attributes: {},
          discontinuity: number,
          uri: string,
          timeline: number,
          key: {
            method: string,
            uri: string,
            iv: string
          },
          map: {
            uri: string,
            byterange: {
              length: number,
              offset: number
            }
          },
          'cue-out': string,
          'cue-out-cont': string,
          'cue-in': string
        }
      ]
    }

    Including the Parser

    To include mpd-parser on your website or web application, use any of the following methods.

    <script> Tag

    This is the simplest case. Get the script in whatever way you prefer and include it on your page.

    <script src="//path/to/mpd-parser.min.js"></script>
    <script>
      var mpdParser = window['mpd-parser'];
      var parsedManifest = mpdParser.parse(manifest, { manifestUri });
    </script>

    Browserify

    When using with Browserify, install mpd-parser via npm and require the parser as you would any other module.

    var mpdParser = require('mpd-parser');
    
    var parsedManifest = mpdParser.parse(manifest, { manifestUri });

    With ES6:

    import { parse } from 'mpd-parser';
    
    const parsedManifest = parse(manifest, { manifestUri });

    RequireJS/AMD

    When using with RequireJS (or another AMD library), get the script in whatever way you prefer and require the parser as you normally would:

    require(['mpd-parser'], function(mpdParser) {
      var parsedManifest = mpdParser.parse(manifest, { manifestUri });
    });

    License

    Apache-2.0. Copyright (c) Brightcove, Inc

    Install

    npm i mpd-parser

    DownloadsWeekly Downloads

    287,488

    Version

    0.21.0

    License

    Apache-2.0

    Unpacked Size

    921 kB

    Total Files

    78

    Last publish

    Collaborators

    • videojs-user
    • heff
    • mmcclure
    • dmlap
    • lday
    • brandonocasey
    • imbcmdth
    • misterben
    • misteroneill
    • gkatsev
    • squarebracket
    • forbesjo
    • gesinger
    • mjneil
    • okaramian
    • abarstow