Questions? Feedback? powered by Olark live chat software
Hopp over navigasjon

Microsoft Adaptive Streaming Plugin for OSMF Update

Posted on 27 oktober, 2014

Program Manager, Azure Media Services

Microsoft Azure Media Services is pleased to announce the released update (v.1.0.12) of Microsoft Adaptive Streaming plugin for OSMF (Open Source Media Framework). The latest release includes support for On-Demand and Live Smooth Streaming with AES encrypted content, and On-Demand MPEG-DASH support through Azure Media Services.You can get this latest release from the download page.

When using the plugin, you can easily playback Smooth and DASH content allowing for a rich media experience in Adobe Flash Player enabled environments, while using the same Microsoft Azure Media Services infrastructure you use today.

What’s new?

Version 1.0.12 of the plugin for OSMF includes support for:

  • On-demand Smooth Streaming playback (Play, Pause, Seek, Stop) with support for AES-128 bit encrypted content
  • Live Smooth Streaming and DVR playback (Play, Pause, Seek, DVR, Go-to-live) with support for AES-128 bit encrypted content
  • Microsoft Azure Media Services on-demand MPEG-DASH (Play, Pause, Seek, Stop)
  • Support for video codecs – H.264
  • Support for Audio codecs – AAC
  • Multiple audio language switching with OSMF built-in APIs
  • Playback quality selection with OSMF built-in APIs
  • Multi-timescale support
  • Adobe® Flash® Player 11.4 or higher
  • This version only supports OSMF 2.0

Note: MPEG-DASH support and features are specific to Microsoft Azure Media Services and are subject to change.

Tip: You can use the new AES capabilities with Azure Media Content Protection Services. Please refer to Announcing public availability of Azure Media Content Protection Services for details.

Please refer to the documentation for a full list of supported features, unsupported features and known issues.

How to use?

Loading the plugin

OSMF plugins can be loaded statically (at compile time) or dynamically (at run-time). The plugin for OSMF includes both dynamic and static versions, both of which you can obtain from the download page.

  • Static loading: To load statically, a static library (SWC) file is required. Static plugins are added as a reference to the projects and merge inside the final output file at the compile time.
  • Dynamic loading: To load dynamically, a precompiled (SWF) file is required. Dynamic plugins are loaded in the runtime and not included in the project output. Dynamic plugins can be loaded using HTTP and FILE protocols.

Loading the plugin for OSMF MediaFactory

Please refer to the documentation for examples of how to load statically and dynamically the plugin using OSMF MediaFactory for a custom player experience and use of OSMF 2.0 APIs. Please refer to the documentation for a sample of static loading with support for AES-128 encrypted content.

Strobe Media playback with dynamic loaded plugin

The plugin for OSMF is compatible with Strobe Media Playback (SMP). You will need to copy “MSAdaptiveStreamingPlugin-vx.x.x-osmf2.0.swf” and “StrobeMediaPlayback.2.0.swf” from the download page and host with your website. Please see the documentation for an example of a simple use case.

Use with AES-128 encrypted content

With the latest release, it is possible to pass the token for AES-128 encrypted to the SMP through the plugin for use with Smooth Streaming playback.  Below is an example of how to playback AES-128 encrypted content by passing the token in the clear to the plugin.  This is done by adding the “AdaptiveStreamingPlugin_encryptionKeyToken” parameter to both the flashvars value and the embed flashvars, as seen below.  To successfully pass through the token, it must be encoded; steps on how to encode the token are outlined in the next section below.

<html>
<object width="920" height="640"> 
<param name="movie" value="http://yourdomain/StrobeMediaPlayback.2.0.swf"></param>
<param name="flashvars" value="src=http://samplescdn.origin.mediaservices.windows.net/cdc285bd-4f9b-422b-9f9f-c1cabcce04d2/BigBuckBunny.ism/manifest&autoPlay=true&plugin_AdaptiveStreamingPlugin=http://yourdoamin/MSAdaptiveStreamingPlugin-v1.x.x-osmf2.0.swf&AdaptiveStreamingPlugin_retryLive=true&AdaptiveStreamingPlugin_retryInterval=10&AdaptiveStreamingPlugin_encryptionKeyToken=Bearer%3Durn%253amicrosoft%253aazure%253amediaservices%253acontentkeyidentifier%3Dca841fd4-b469-4326-9e61-59b613c63971%26Audience%3Durn%253atest%26ExpiresOn%3D1764547200%26Issuer%3Dhttp%253a%252f%252ftestacs.com%252f%26HMACSHA256%3DoPeHvCz%252fLvc2fBXiH9%252bhoOjslCnrWgezq0DT%252btj6lC4%253d"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<param name="wmode" value="direct"></param>
<embed src="http://yourdomain/StrobeMediaPlayback.2.0.swf" 
type="application/x-shockwave-flash" 
allowscriptaccess="always" 
allowfullscreen="true" 
wmode="direct" 
width="920" 
height="640" 
flashvars="src=http://samplescdn.origin.mediaservices.windows.net/cdc285bd-4f9b-422b-9f9f-c1cabcce04d2/BigBuckBunny.ism/manifest&autoPlay=true&plugin_AdaptiveStreamingPlugin=http://yourdoamin/MSAdaptiveStreamingPlugin-v1.x.x-osmf2.0.swf&AdaptiveStreamingPlugin_retryLive=true&AdaptiveStreamingPlugin_retryInterval=10&AdaptiveStreamingPlugin_encryptionKeyToken=Bearer%3Durn%253amicrosoft%253aazure%253amediaservices%253acontentkeyidentifier%3Dca841fd4-b469-4326-9e61-59b613c63971%26Audience%3Durn%253atest%26ExpiresOn%3D1764547200%26Issuer%3Dhttp%253a%252f%252ftestacs.com%252f%26HMACSHA256%3DoPeHvCz%252fLvc2fBXiH9%252bhoOjslCnrWgezq0DT%252btj6lC4%253d"></embed>
</object>
</html>
If your content is not AES-128 encrypted, simply remove the “AdaptiveStreamingPlugin_encryptionKeyToken” parameter. It is important to note that playback of AES-128 encrypted content is only available in Smooth Streaming.

Encoding URLs and Tokens

It is important to note that if your source URL or Token for AES-128 encrypted content has any special characters, you should encode the string.  These special characters are required to be encoded in order to successfully pass URLs and tokens through the flashvars. Encoding replaces unsafe ASCII characters with a "%" followed by two hexadecimal digits. For example “&” are replaced with "%26".

It is suggested you use this free and simple online tool, to encode.

  1. Simply, paste the URL or token into text area and hit the encode button.
  2. The original token is then encoded.
  3. Use the encoded URL or token when specifying the parameters in the flashvars.
Ex: The original token:
Bearer=urn%3amicrosoft%3aazure%3amediaservices%3acontentkeyidentifier=ca841fd4-b469-4326-9e61-59b613c63971&Audience=urn%3atest&ExpiresOn=1764547200&Issuer=http%3a%2f%2ftestacs.com%2f&HMACSHA256=oPeHvCz%2fLvc2fBXiH9%2bhoOjslCnrWgezq0DT%2btj6lC4%3d
Ex: The encoded token:
Bearer%3Durn%253amicrosoft%253aazure%253amediaservices%253acontentkeyidentifier%3Dca841fd4-b469-4326-9e61-59b613c63971%26Audience%3Durn%253atest%26ExpiresOn%3D1764547200%26Issuer%3Dhttp%253a%252f%252ftestacs.com%252f%26HMACSHA256%3DoPeHvCz%252fLvc2fBXiH9%252bhoOjslCnrWgezq0DT%252btj6lC4%253d

Please note, it is not necessary to encode the token if you are using OSMF MediaFactory for creating a custom experience.

Samples

Please visit the download page for more documentation and working samples of Strobe Media playback with dynamic loaded plugin. Due to Flash client access policies, in certain browsers, it may be required to actually host the sample pages and along with a copy “MSAdaptiveStreamingPlugin-vx.x.x-osmf2.0.swf” and “StrobeMediaPlayback.2.0.swf” in order to view the working sample.

Enjoy Smooth and DASH Streaming content inside Flash™ runtime.

Additional Resources