Adobe Http Streaming Add support for Adobe's HTTP Streaming within JW Player 7


This demonstrates a setup of multi bitrate Adobe Http Streaming within JW Player 6. The filetype due to a limitation with the Jw Player 6 API is required to be set with an `mp4` extension.

The plugin configures the quality levels for bitrate selection.

Features

  • Random seeking to any part of the timeline at any time.
  • Starting playback in the middle of the clip's timeline.
  • Support for H264 and VP6 codecs.
  • Multi-bitrate streaming support.
  • Http Dynamic Streaming support.
  • DRM content protection support.
  • Live DVR Http streaming support.

Known Issues

  • The media provider requires to handle all streaming, video display and bitrate handling in the one file therefore the filesize is larger than may be required.
  • The media provider plugin is required to be configured with all playlist items due to a limitation with the api and loaded on demand.

NOTE:

Since JWPlayer 6.9 the open source players cannot load providers so the demo is not functional. This requires commercial versions of the player to function.

Demo

Contact for a site or local demo download.

(Current Version 4.0.0)

Compatibility

  • JW Player 7 and above
License Options
Domain(s)

This plugin is currently in beta. (Version 3.0)

License Information

The HttpStreaming plugin is a once off commercial license with updates and support to the HttpStreaming plugin only. JW Player related questions and support may be provided on their forums at http://www.longtailvideo.com/support/forums/jw-player/

  • Single Domain License - Suitable for small to medium sites with updates and unlimited support included.
  • Multi Domain License - Suitable for larger sites and video platform sites with updates, feature requests and unlimited priority support included.

Note:

With your purchase please provide your domains to be provided with your licensed plugin. New domains need to be requested manually for the moment.

Refund Policy:

Please try the demo before purchase or request for a 60 day site demo. Refunds will not be issued unless under some circumstances sorry for the inconvenience.

Examples

Multi bitrate example

Configuration


jwplayer("mbr").setup({
        flashplayer: "../jwplayer.flash-6.8.swf",
        width: 760,
        height: 350,
        primary: "flash",
        playlist: [
    	    { provider: "httpstreaminghds-4.0.0.swf", sources: [{ file: "//videos.electroteque.org/hds/nodrm/bbb/bbb.f4m", type: "flv" }] }
        ],
        httpstreaming: {
            levels: [
                { bitrate: 150, label: "150k" },
                { bitrate: 500, label: "500k", isDefault: true },
                { bitrate: 700, label: "700k" },
                { bitrate: 1000, label: "1000k" },
                { bitrate: 1500, label: "1500k" }
            ]
        }
});

Configuration

The configuration of the Httpstreaming provider plugin needs to be in a config object property `httpstreaming` like so:


httpstreaming: {
    ....
}

Here is a list of the configuration options:

property / datatype default description
retryInterval
number
The delay to retry manifest loading.
manifestLoadTimeout
number
The timeout to wait for manifest loading before exiting.
maxLoadRetries
number
3 The maximum attempts to reload the manifest.
startLivePosition
boolean
true For DVR Live HDS streams start at the live position.
minBufferTime
number
4 The minimum buffer time.
maxBufferTime
number
34 The maximum buffer time before fragment loading pauses when the buffer is filled.
hdsBufferSizeMinLimit
number
24 The buffer threshold to wait to be filled until the max buffer setting is configured.
pauseBuffer
number
24 The buffer time when paused.
seekBuffer
number
2 The buffer time after seeking.

DRM Pre-Auth Configuration

EZDRM requires login details used against the DRM backend server for pre-authenticated Flash Access DRM streamning.

Some or all of these details can be compiled in to the player on request.

property / datatype default description
u
string
The username used for the pre-authentication.
p
string
The password used for the pre-authentication.
k
string
The unique key used for the pre-authentication.

Backend Server

Included is a backend server which demonstrates handling the DRM authentication requests from the Flash Access server.

HDS Packaging

Included are example scripts for automating the HDS packaging process for multi-bitrate and multi-language audio mp4 files.

Flash Access DRM Example

This example demonstrates Flash Access DRM streaming in HDS using EZDRM pre-authentication features.

DRM HDS streaming can be useful as fallback content options when streaming with Mpeg Dash DRM features that the chosen browser doesn't currently support.

How Does It Work ?

Using the F4fpackager tool with DRM details and certificates provided by the Flash Access Server or a Flash Access Provider, the content is encrypted with the required information to authenticate itself with the configured Flash Access Server URL to obtain a license before the Flash Player will accept playback.

Below is the workflow of DRM authentication :

  • DRM metadata is packaged within the F4m manifest by default.
  • DRM metadata and encrypted headers and information is parsed in the F4m manifest and sent to the Flash Player and checked if a license is stored in the client cache.
  • If the license has expired or not stored in the client cache, it will request to obtain a license from the Flash Access server.
  • Depending on the authentication type encrypted in the content the Flash Access server will determine an authentication event.
  • For user authentication content, the user will be prompted for a login which will be checked against a members database authentication url configured in the Flash Access server or Flash Access Provider server.
  • The members database server script will return a user configurable variable output with a success state and a license expiry. The configuration can include licence expiry and how the DRM file is playable.
  • The Flash Access server will use this information and return to the client to store the license for the expiry period and allow playback.
  • Anonymous authentication works similar but the license is pre-authenticated with an anonymous login configured in the members database however the license expires immediately and has to be requested each time.

Multi-Language Audio Example

This example demonstrates multi-language audio streaming selection.

Video can be prepared and packaged with no audio streams muxed in to reduce bandwidth usage. A default audio stream will be used externally.

An audio menu feature will be used for selection alongside a bitrate menu.

Audio language selection support is also available in the settings menu feature.

A default language is required to be configured using the `lang` config.


    (function(jwplayer) {

    jwplayer("audio").setup({
    flashplayer: "jwplayer.flash.swf",
    width: 760,
    height: 350,
    primary: "flash",
    playlist: [
    { provider: "httpstreaminghds-4.0.0.swf", sources: [{ file: "http://videos.electroteque.org/hds/languages/bbb/bbb_alt_audio.f4m", type: "flv" }] }
    ],
    lang: "en",
    httpstreaming: {

    }
    });



    })(window.jwplayer);

Live DVR Example

This example setup of live DVR setup with Wowza Streaming Server


    jwplayer("single").setup({
            flashplayer: "../jwplayer.flash.swf",
            width: 760,
            height: 350,
            primary: "flash",
            playlist: [
                { provider: "httpstreaminghds-4.0.0.swf", sources: [{ file: "http://example.com:1935/dvr/livestream/manifest.f4m?DVR" }] }
            ]
    });