An Overview of Advanced Systems Format
by Nick Vicars-Harris
Advanced Systems Format, Microsoft® Windows Media® 9 Series
Advanced Systems Format (ASF) is an extensible file format designed to store coordinated multimedia data on a timeline. This document provides a brief overview of the ASF file format, and describes how it is used by the Windows Media 9 Series platform.
ASF is an extensible file format designed to store coordinated multimedia data on a timeline. It supports data delivery over a wide variety of networks, and is also suitable for local playback, broadcasting, and editing on both personal computers and other devices that now support the format. The ASF format itself is compression-agnostic. Microsoft uses ASF with its Windows Media Audio and Video codecs, while other companies use ASF with various other codecs in both software and hardware-based solutions.
ASF is publicly described in a specification available on the Microsoft Web site(http://www.microsoft.com/asf).
This article contains the following topics:
- ASF Basics. Describes the ASF design goals and the elements of an ASF file.
- ASF and Windows Media Files. Explains the relationship between ASF and Windows Media files.
- The Windows Media Platform. Describes the software development kits (SDKs) that comprise the Windows Media platform.
- For More Information. Provides additional resources.
ASF was designed with the following goals:
- To support efficient playback from media servers, HTTP servers, and local storage devices.
- To support scalable media types such as audio and video.
- To permit a single multimedia composition to be presented over a wide range of bandwidths.
- To allow authoring control over media stream priorities and relationships, especially in constrained-bandwidth scenarios.
- To be independent of any particular multimedia composition system, computer operating system, or data communications protocol.
Each ASF file is composed of a simple extensible header, a series of one or more media streams, and an optional index.
The header section contains information about the file as a whole, and about each individual stream. The stream-level data in the header contains information about the type of data in the stream. The ASF specification defines the following types:
- Script Command
- JPEG JFIF
- Degradable JPEG
- File Transfer
Developers can define additional stream types as needed.
This header extensibility allows additional types of data and objects to be included in the ASF file, further extending the area of use and the eventual consumption of this data. There are no hard constraints on the size or type of synchronized data that may be contained in an ASF file.
The file's data section contains all the media streams, which are packetized, time stamped, and interleaved along a timeline to enable a synchronized playback experience.
The file's optional index section improves the searching and scrubbing experience when working with ASF files. Index intervals are configurable and are constant across an entire file. Three types of indexes are currently defined:
- Common clock time.
- Frame-based (where the total number of frames equals the duration in seconds multiplied by the frame rate).
- A derivation of SMPTE time code. These time codes are stored with each frame to enable accurate mapping of the time code back to a frame.
A partially downloaded ASF file may still be perfectly functional. As long as the required header objects and some complete set of the data objects are available, it is possible to seek to any position (backward and forward) within the partially downloaded file. Seeking in an ASF file does not require the use of an Index object. However, many implementations will require the index to gain efficient access to the data, for example, in nonlinear editing scenarios.
Windows Media-based files are defined as ASF files containing compressed bit streams created by using the Microsoft Windows Media codecs. Such files have .wma and .wmv file name extensions. ASF files that do not contain Windows Media-based bit streams can have any file extension, including .asf.
Microsoft provides a series of SDKs and tools to enable the creation, composition, encoding, and delivery of ASF files in a wide range of related media solutions. The architecture of these SDKs and tools is based on the ASF format. Microsoft continues to develop these products and to work with customers and partners on solutions.
The following provide brief descriptions of the software and SDKs that comprise the Windows Media 9 Series platform:
- Windows Media Format SDK. The base SDK on which almost all Windows Media software and technologies are built. It supports only ASF, and is used for efficiently reading and writing metadata and synchronized media.
- Windows Media Encoder. Built on from the Windows Media Format SDK, Windows Media Encoder enables users to encode ASF files. It supports conversion of other file types to ASF, as well as broadcasting these files (using the HTTP protocol) for further distribution by a server or for consumption by Windows Media Player. Windows Media Encoder is also used in the distribution of files over IP networks in a broadcast environment.
- Windows Media Services. An optimized set of services, tools, and an SDK for streaming Windows Media-based content over a variety of networks (Unicast or Multicast). Windows Media Services 9 Series is provided as part of Windows Server™ 2003.
- Windows Media Player. The software that enables users to play digital media content on a variety of computer and handheld devices. Windows Media Player 9 Series supports the latest platform features, including multilanguage support and multichannel playback.
- Windows Media Rights Manager SDK. Provides the ability to increase security for the distribution of multimedia content. The Windows Media Rights Manager SDK works in conjunction with the Windows Media Format SDK and the ASF file format to encrypt data streams and certain header information, which helps to deliver content more securely.
For general information about developing audio and video solutions for the Windows® platform, see the MSDN® Audio & Video page on the Microsoft Web site (http://www.msdn.microsoft.com/AV).
For information about Windows Media, see the Windows Media 9 Series Web page (http://www.microsoft.com/windowsmedia).
For information about Windows Media software and SDKs, see the Windows Media 9 Series Technologies & Tools Web page (http://www.microsoft.com/windows/windowsmedia/technologies.aspx).
This software is based in part on the work of the Independent JPEG Group.
GIF decompression code, copyright 1990, David Koblas. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. This software is provided "as is" without express or implied warranty.