Microsoft Advanced Streaming Format

From MultimediaWiki
Revision as of 13:48, 2 May 2006 by Multimedia Mike (talk | contribs) (English edits)
Jump to navigation Jump to search

Advanced Streaming Format (sometimes known as Active Streaming Format) is a container format designed by Microsoft to support audio and video playback from a variety of sources including both local playback and internet delivery. The format is designed to allow playback to commence without the complete file being available. This makes it suitable for internet use where playback can begin soon after download commences or for PVR-type functions such as pausing live TV.

The container can be used to hold a variety of video and audio codecs but it is most commonly used for the WMV and WMA codecs. Other streams such as subtitles can also be included in the format. ASF filenames typically have an extension of 'wmv' or wma'.

The format supports inclusion of meta-data such as the name of video clip, title of the song etc. Support for DRM is also provided.

There are 2 versions of ASF.

1.0, the used and unpublished format.

http://avifile.sourceforge.net/asf-1.0.htm

And 2.0, which is the published and unused format.

http://www.microsoft.com/windows/windowsmedia/format/asfspec.aspx

Data Format

An ASF file consists of a header object that contains meta data and stream definitions, followed by a sequence of data packets which are all the same size. An ASF file may have a variety of optional index objects at the end of the file.

It is not obvious from examining raw ASF data but the files are organized according to the same chunked paradigm that many multimedia container formats use. However, rather than using FourCCs and 32-bit length fields to delimit the chunks, ASF files use 128-bit (16-byte) globally unique indentifiers (GUIDs) and 64-bit lengths.

Each data packet in the format can consist of one or more sub-packets often referred to as payloads. Payloads within a data packet can represent different streams. A single video frame can be spread across multiple payloads and can also span across more than one data packet.