Open Source Media Framework (OSMF) is a free collection of open-source components that simplify media player creation for the Adobe® Flash® Platform. Strobe Media Playback (SMP) is a free, open-source player built with OSMF.
This feature directory brings together Adobe's programming documentation, engineering specifications, and other resources to assist you in developing and running OSMF and SMP.
If you need help with installing or building OSMF, see:
- the Release Notes included with OSMF Downloads
- the build instructions for OSMF and OSMF-based projects
- visit our developer forums, where past threads include discussions on installing OSMF in a variety of environments.
Open Source Media Framework (OSMF) consists of basic building blocks that you can quickly use to create your media player and begin playback. Your use of OSMF is subject to the terms of the Mozilla Public License.
Build instructions, for OSMF and OSMF-based projects, include an in-depth discussion of using free command-line tools, as well as Adobe® Flash® Builder, Flex, and Adobe® Flash® Professional CS5.
Media Players & Media Containers describes how to use the OSMF classes that play and display content.
Media Player Sprite presents the simplest method of starting basic playback.
Layout describes the use of metadata to customize the size and position of content in your OSMF player.
Interaction discusses the ways to implement a player interface with OSMF and presents a simple example of doing so.
Media Traits describes the constituent attributes of media elements.
Core Framework Engineering Specifications offer a look at the starting principles from which the basic types and behaviors for OSMF were developed. These PDFs provide background on the initial OSMF architectural overview, the core media/media element types, compositions, the osmf.media API, the Flash Media Manifest (F4M) File Format, and the layout API.
Delivering content: working with connections and streams
The intended audience for your media player may be inside an enterprise network or distributed around the world. Understanding the various delivery methods available to an OSMF player is the first step in choosing how you deliver content. OSMF also supports advanced playback and delivery enhancements for your player, including live/dvr features, as described below.
Adaptive (Multi-Bitrate) Streaming - see Dynamic Streaming.
RTMP Streaming is supported for live and recorded streams.
RTMFP Multicast enables multicasting of live streams.
Buffering discusses ways to work with OSMF in managing the buffer size for your player.
Stream Reconnect is automatically enabled in OSMF and provides support for seamless playback when a connection is dropped or when a client switches between a wired and a wireless network.
Best-Effort Fetch, available with OSMF 2.0, addresses the problems of "liveness", where a packager advertises a stale view of live, and "dropout", where a packager has gaps in its fragment list.
Doneness, available with OSMF 2.0, is a feature that allows the framework to recognize that HDS content has lapsed as a result of reaching the end of the bootstrap file, as opposed to lapsing due to a server issue.
org.osmf.net Engineering Specifications provide background material on the NetClient, NetConnection, NetLoader, and NetStream APIs.
Rich experiences: enhancing content
You can use OSMF to build a simple media player or one that supports customized/enhanced content features such as the following.
Advertising describes the ways in which ad monetization is supported in OSMF.
Captions are supported in OSMF via an extensible plugin solution.
Cue Points & Subclips discusses how OSMF supports these features as a type of metadata.
Content protection presents OSMF's support for playback of encrypted content.
HD & Full Screen describes the Strobe Media Playback sample player's high definition and full screen support.
Late-Binding Audio provides support for multiple language tracks for HTTP video streams, without requiring duplication and repackaging of the video for each audio track.
Metadata is defined in OSMF as key-value pairs, where keys are strings, and values are arbitrary objects that can be any ActionScript data structures. The OSMF Metadata class provides a strongly typed API for working with these key-value pairs, as well as events for detecting changes to the metadata.
Playlists discusses the Strobe Media Playback sample player's support for M3U formatted playlists.
Proxy Elements allow you to non-invasively modify the behavior of other media elements. They "wrap" other media elements, providing control over access, functionality, or other traits of the wrapped element. This article also discusses the usage of the proxy element DurationElement.
Stage Video accelerates the rendering of content and is automatically supported for players using OSMF 1.6 with Flash Player 10.2.
Syndication/RSS Feeds describes how your player can use the OSMF syndication library to parse syndication feeds.
Working with plugins
The goal of the OSMF plugin architecture is to enable full integration with partner systems at the “flip of a switch.” OSMF's plugin API is completely open and available to any service provider or OSMF developer. Plugins can be written for CDN, analytics, and advertising services, while feature plugins also cover abilities such as closed captioning and SMIL support. OSMF's sample plugins are contained in the OSMF SVN repository at osmf\trunk\plugins\samples. See also the Plugin Developer's Guide and the list of third-party OSMF plugins.
Understanding Plugins provides a conceptual starting point for working with plugins in the OSMF framework.
Advertising plugins provide VAST and MAST support for OSMF players.
Akamai Basic Streaming Plugin for OSMF handles Akamai-specific behavior and functionality for FMS streaming of live, on-demand, and multi-bitrate content as well as progressively downloaded content over the Akamai network.
Captions for an OSMF player are supported by the Captioning Plugin.
SMIL Support is provided for OSMF players via the SMIL plugin, which knows how to create the correct media resource and MediaElement based on the contents of a SMIL (Synchronized Multimedia Integration Language) file.
Writing a Control Bar Plugin is one way to implement interaction in your OSMF media player.
The YouTube Plugin allows playback of YouTube media in the Strobe Media Playback sample player.
Developing Plugins for the OSMF project is encouraged. This page discusses the technical details for doing so.
Plugin Engineering Specifications provide background on the development of plugin support within OSMF.
Using the OSMF sample player: Strobe Media Playback
The SMP media player has a number of features that build on or facilitate those provided with OSMF.
Configuring SMP presents the options for configuring the SMP player's basic settings, advanced settings, and bandwidth-related settings. All feature configuration settings are optional, as the player features are by default set to values that meet the needs of most users. Advanced SMP configuration with complex data structures is available for certain plugin configurations.
SMP layout/skinning describes the options for customizing your player's appearance.
Identifying SMP interface elements lists and describes the parts of the SMP interface that are customizable.
SMP delivery protocols & multicast enhancements discusses SMP's support for RTMFP multicast with SMP 1.5
SMP HD & full-screen support includes various full-screen and high-definition optimizations.
Playlists on SMP are supported for M3U formatted files.
Using plugins with SMP is facilitated by an advanced configuration layer on top of the OSMF Metadata API. This allows you to choose between setting the metadata using flashvars or via an XML configuration file.
SMIL support in SMP is provided by the SMIL plugin.
The YouTube Plugin allows playback of YouTube media in SMP.
Licensing SMP is cost-free and simple. SMP itself is covered under the BSD license. The font used in SMP, Playback Sans, is released under the SIL Open Font License; please read the SIL Open Font License carefully, and do not download the fonts unless you agree to the terms of the license.
Quality and debugging tools and information
OSMF can output detailed data for debugging and optimizing your code, and the Strobe Media Playback sample player provides some robust, reusable, and customizable examples of how to work with this output.
Error Reporting describes how player-related errors are represented and handled in OSMF.
Logging data is produced by OSMF in a standard format and is shareable between a player and plug-ins.
Player Size provides information on the measured sizes of OSMF classes when used in player applications.
Versioning presents background information on OSMF's versioning strategy.
SMP Debug Console describes a reusable API that harnesses the OSMF logging framework and allows for tracking of public properties such as NetStream, NetStreamInfo, MediaPlayer, or asset/plugin metadata. While written for Strobe Media Playback, this tracking API is decoupled from the sample player's logic and has as a dependency only on the OSMF Logging API, so it can be used by any OSMF player.
SMP Info Overlay presents a customizable solution for a troubleshooting window for OSMF players.