Archive for April, 2010

OSMF overview presentation by R Blank

R Blank did a great presentation on OSMF at FITC in Toronto this past week. Check out a recording at: AlmerBlank Labs

OSMF FC1 released

The feature complete (FC) build of OSMF is now available on osmf.org.  With 1.0 right around the corner, our primary focus has been quality, with over 130 bugs fixed since the last release.  Here are the highlights from the current release:

  • Player Size Reductions – We’ve optimized OSMF for player size, with the minimum player coming in at 35KB.  Lots more details on our player size summary page.
  • Plugin Loading Changes – We’ve made some subtle but important changes to how dynamic plugins are loaded.  Plugin developers should take a close look at the details in the release notes to see if the changes will impact their plugins.
  • MediaPlayerSprite - We heard your feedback, and brought back a streamlined, improved version of this useful display class.  For those just getting started with OSMF, MediaPlayerSprite (as seen in our HelloWorld example) is the easiest-to-use introduction class.
  • Ad & Recommendation Examples – The ExamplePlayer sample app boasts two new examples, demonstrating how to implement a recommendations bumper and how to implement an overlay countdown timer with pre-, post-, or mid-roll ads.  There are now 50 examples in ExamplePlayer, demonstrating a wide variety of OSMF features.

And here are the links:

Jodie O’Rourke’s OSMF User Group Presentation

Don’t forget that tomorrow, Wednesday the 21st, at 12:00 noon Pacifc Coast Time, Jodie O’Rourke will be giving a great presentation on how to generate revenue from video using OSMF.  Jodie is co-manager of the OSMF UG, and a video guru at www.blinkbox.com.

Go join the UG tomorrow for this live session.

OSMF Users Group

Great Videos on OSMF

Something must be in the air !  There are several great videos just posted up on Adobe TV discussing OSMF.  To start, we have a series of short videos done by David Hassoun to cover the material he created for the REOPS player and his great white papers (posted here, for those of you with short memories).

Episode 1 – David does an overview of OSMF, and how he used it with MobileRider

Episode 2 – David goes over the creation of a little video player project

Episode 3 – David works with the great skins provided by Juan Sanchez

 

In addition to all these videos, Nick Hippe, one of Adobe’s talented solutions engineers, did a terrifc 1/2 hour long presentation at NAB this week, giving an overview of OSMF, some demos, and a links to additional information.

See Nick’s NAB presentation here

Transitions Sample

A popular question on the forums and with player developers is how to use transitional effects on media elements.  A common transitional effect is a fade to and from black.  These transitions help ease the transition from content to ad.   I’ve written a small sample to demonstrate how to do this with the framework.  It’s a reusable effect that utilizes the Flex Fade effect.  Here is an excerpt from the sample:

var video:MediaElement = new VideoElement(new URLResource(REMOTE_PROGRESSIVE));
new MediaElementEffect(10, video);
ps.media = video;

Full Sample:

The class that performs the transition is the MediaElementEffect, which takes two constructor params: a duration and the media element the transition will target.  In the above case, the transition will be ten seconds.  Clicking the stage will restart the video and effect from the beginning.  
Other effect frameworks, such as Tweener, can be swapped in and out. The effect type can be changed as well, to something such as dissolve.  To override or change the effect override the doTransition() function in MediaElementEffect

Great OSMF player example

Check out this fantastic player example for a mildly famous golf tournament !

Live Golf Coverage with OSMF

The player was created by AEG working with AllDigital using Sprint 10 of OSMF.  The video comes through AT&T CDN. A tricky bit of integration of multiple companies working together to bring a great online experience for golf fans everywhere.

We’ve been listening

At the end of the Beta period we sent out a survey to ask for feedback on the framework to date.  We also took the top issues reported on the forums.  Here are some of the highlights of this project:

MediaPlayerSprite - At the end of Sprint 10, the API lockdown sprint, we removed the MediaPlayerSprite. Not knowing the huge number of developers that wanted this functionality, we received feedback from developers that the MediaPlayerSprite was a much needed class. 

For Sprint 11 we’ve retooled the MediaPlayerSprite, added some improvements, and brought it back.  It now supports handling a resource directly, and has its own media factory.  It exposes the MediaContainer it uses internally for better layout control and flexibility. This reduces the complexity in creating players.  A player can be created in as few as three lines:


mps = new MediaPlayerSprite();
addChild(mps);
mps.resource = new URLResource(REMOTE_PROGRESSIVE);
For a complete sample on how to use the MediaPlayerSprite, it’s located under trunk/samples/framework/MediaPlayerSpriteSample in our SVN repository. 
Other feedback we’ve addressed recently:
Subclips – Use StreamingURLResource, along with clipStartTime, and the clipEndTime properties to make subclips.
MediaPlayer - property persistence, and more trait events. The MediaPlayer now preserves trait settings, such as autoPlay, and bufferLength, even if the MdiaElement is changed out.  The trait events will be dispatched for new MediaElements when they are assigned to the MediaPlayer.  This alleviates the need for developers to listen for the Trait add / remove events when tracking properties, such as volume. 
DVRCast – A little known feature, bis support for DVRCast.  DVRCast was added in Sprint 10. Here is an example of a DVR resource:
new StreamingURLResource
( “rtmp://mysever.com/dvrcast_origin/livestream”, StreamType.DVR)
Media & Streaming Types Supported – Another request we received was an aggregation of the different types of streaming supported, and ways to use them:
  • Progressive – URLResource to a videos url
  • RTMP Streaming – URLResource to an RTMP stream
  • RMTP Dynamic Streaming – DynamicStreamingResource to an FMS app, and a list of stream names.
  • HTTP Dynamic Streaming – URLResource to a  F4M manifest file. (uses the F4MElement)
We also have some projects planned to address some of the other requests we’ve been getting.  On the horizon in the next few weeks:
  • Layout and Cuepoint white papers.
  • Code Examples on how to use transitions between MediaElements.
In addition we’ve been busy fixing bugs now that we are feature complete.  We’ve fixed 206 bugs in the last thirty days (as of 4/2/10), here is a graph of all bugs fixed & reported in the last 30 days: