Advanced Systems Format (ASF) Specification
Revision 01.20.03
Microsoft Corporation
December 2004
? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is
subject to the terms of the End User License Agreement accompanying this specification.
- Document Revision 01.20.03 - December, 2004 i
END USER LICENSE AGREEMENT .................................................................................................. IV 1. INTRODUCTION .................................................................................................................. 1 1.1 ABOUT THIS SPECIFICATION ........................................................................................................................ 2 1.2 CONVENTIONS .......................................................................................................................................... 2 1.3 DOCUMENT ORGANIZATION ......................................................................................................................... 2 2. FILE FORMAT ORGANIZATION ............................................................................................. 3 2.1 ASF OBJECT DEFINITION............................................................................................................................. 3 2.2 TOP-LEVEL FILE STRUCTURE ........................................................................................................................ 3 2.3 ASF TOP-LEVEL HEADER OBJECT .................................................................................................................. 4 2.4 ASF TOP-LEVEL DATA OBJECT ..................................................................................................................... 5 2.5 ASF TOP-LEVEL INDEX OBJECTS.................................................................................................................... 5 3. ASF TOP-LEVEL HEADER OBJECT ......................................................................................... 6 3.1 HEADER OBJECT (MANDATORY, ONE ONLY) ..................................................................................................... 6 3.2 FILE PROPERTIES OBJECT (MANDATORY, ONE ONLY) ......................................................................................... 7 3.3 STREAM PROPERTIES OBJECT (MANDATORY, ONE PER STREAM) ........................................................................... 9 3.4 HEADER EXTENSION OBJECT (MANDATORY, ONE ONLY) ................................................................................... 10 3.5 CODEC LIST OBJECT (OPTIONAL, ONE ONLY)................................................................................................. 11 3.6 SCRIPT COMMAND OBJECT (OPTIONAL, ONE ONLY) ........................................................................................ 13 3.7 MARKER OBJECT (OPTIONAL, 0 OR 1) ......................................................................................................... 14 3.8 BITRATE MUTUAL EXCLUSION OBJECT (OPTIONAL, 0 OR 1).............................................................................. 16 3.9 ERROR CORRECTION OBJECT (OPTIONAL, ONE ONLY) ..................................................................................... 17 3.10 CONTENT DESCRIPTION OBJECT (OPTIONAL, ONE ONLY) ................................................................................. 18 3.11 EXTENDED CONTENT DESCRIPTION OBJECT (OPTIONAL, ONE ONLY) .................................................................. 19 3.12 STREAM BITRATE PROPERTIES OBJECT (OPTIONAL BUT RECOMMENDED, ONE ONLY) .............................................. 21 3.13 CONTENT BRANDING OBJECT (OPTIONAL, ONE ONLY) ..................................................................................... 22 3.14 CONTENT ENCRYPTION OBJECT (OPTIONAL, 0 OR 1) ...................................................................................... 23 3.15 EXTENDED CONTENT ENCRYPTION OBJECT (OPTIONAL, 0 OR 1) ....................................................................... 24 3.16 DIGITAL SIGNATURE OBJECT (OPTIONAL, 0 OR 1).......................................................................................... 24 3.17 PADDING OBJECT (OPTIONAL, 0 TO MANY) ................................................................................................... 25 4. OBJECTS IN THE ASF HEADER EXTENSION OBJECT ........................................................... 26 4.1 EXTENDED STREAM PROPERTIES OBJECT (OPTIONAL, 1 PER MEDIA STREAM) ....................................................... 26 4.2 ADVANCED MUTUAL EXCLUSION OBJECT (OPTIONAL, 0 TO MANY) ..................................................................... 30 4.3 GROUP MUTUAL EXCLUSION OBJECT (OPTIONAL, 0 TO MANY) .......................................................................... 31 4.4 STREAM PRIORITIZATION OBJECT (OPTIONAL, 0 OR 1) ................................................................................... 32 4.5 BANDWIDTH SHARING OBJECT (OPTIONAL, 0 TO MANY) .................................................................................. 33 4.6 LANGUAGE LIST OBJECT (OPTIONAL, ONLY 1) ............................................................................................... 34 4.7 METADATA OBJECT (OPTIONAL, 0 OR 1) ...................................................................................................... 35 4.8 METADATA LIBRARY OBJECT (OPTIONAL, 0 OR 1) .......................................................................................... 36 4.9 INDEX PARAMETERS OBJECT (MANDATORY ONLY IF THE INDEX OBJECT IS PRESENT IN FILE, 0 OR 1) ........................ 38 4.10 MEDIA OBJECT INDEX PARAMETERS OBJECT (MANDATORY ONLY IF MEDIA OBJECT INDEX IS PRESENT IN FILE, 0 OR 1) . 39 4.11 TIMECODE INDEX PARAMETERS OBJECT (MANDATORY ONLY IF TIMECODE INDEX IS PRESENT IN FILE, 0 OR 1) ......... 40 4.12 COMPATIBILITY OBJECT (OPTIONAL, ONLY 1) ................................................................................................ 41 4.13 ADVANCED CONTENT ENCRYPTION OBJECT (OPTIONAL, 0 OR 1) ....................................................................... 42 5. ASF TOP-LEVEL DATA OBJECT ............................................................................................ 44 5.1 ASF DATA OBJECT (MANDATORY, ONE ONLY) ............................................................................................... 44 ? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is
subject to the terms of the End User License Agreement accompanying this specification.
- Document Revision 01.20.03 - December, 2004 ii
5.2 ASF DATA PACKET DEFINITION ................................................................................................................... 45 5.2.1 ERROR CORRECTION DATA......................................................................................................................... 45 5.2.2 PAYLOAD PARSING INFORMATION ................................................................................................................ 47 5.2.3 PAYLOAD DATA ....................................................................................................................................... 50 5.2.4 PADDING DATA ....................................................................................................................................... 57 6. ASF TOP-LEVEL INDEX OBJECTS ........................................................................................ 57 6.1 ASF TOP-LEVEL SIMPLE INDEX OBJECT (OPTIONAL BUT RECOMMENDED WHEN APPROPRIATE, 1 FOR EACH NON-HIDDEN
VIDEO STREAM) ................................................................................................................................................... 57 6.2 ASF TOP-LEVEL INDEX OBJECT (OPTIONAL BUT RECOMMENDED WHEN APPROPRIATE, 0 OR 1) ................................. 59 6.3 ASF TOP-LEVEL MEDIA OBJECT INDEX OBJECT (OPTIONAL, 0 OR 1) .................................................................. 61 6.4 ASF TOP-LEVEL TIMECODE INDEX OBJECT (OPTIONAL, 0 OR 1) ........................................................................ 62 7. ASF FEATURE IMPLEMENTATION GUIDELINES .................................................................. 64 7.1 BIT RATE AND THE LEAKY BUCKET MODEL ..................................................................................................... 64 7.2 STREAM SELECTION PROCESS ..................................................................................................................... 66 7.2.1 DESCRIPTION OF SAMPLE CONTENT ............................................................................................................. 66 7.2.2 CONTENT AUTHORING .............................................................................................................................. 66 7.2.3 EXERCISE OF THE STREAM SELECTION PROCESS.............................................................................................. 68 7.3 PAYLOAD EXTENSION SYSTEMS ................................................................................................................... 69 7.3.1 PARSING THE REPLICATED DATA ................................................................................................................ 69 7.3.2 STANDARD PAYLOAD EXTENSION SYSTEMS ................................................................................................... 70 7.4 METADATA ............................................................................................................................................. 72 7.5 PIXEL ASPECT RATIO ................................................................................................................................ 73 8. CONTENT REACH GUIDELINES........................................................................................... 73 8.1 HOW TO USE THIS SECTION ....................................................................................................................... 73 8.2 COMPATIBILITY ISSUES ............................................................................................................................. 73 8.2.1 HEADER EXTENSION OBJECT AND CUSTOM HEADER OBJECTS ............................................................................. 73 8.2.2 HANDLING COMPLEX STREAM CONFIGURATIONS ............................................................................................. 74 8.2.3 MEDIA TYPES OTHER THAN AUDIO, VIDEO, IMAGE AND SCRIPT .......................................................................... 74 8.2.4 BITRATE MUTUALLY EXCLUSIVE VIDEO STREAMS, DIFFERENT FRAME SIZES............................................................ 75 8.2.5 BITRATE MUTUALLY EXCLUSIVE NON-VIDEO STREAMS ...................................................................................... 75 8.2.6 MULTIPLE INDEPENDENT AUDIO OR VIDEO STREAMS........................................................................................ 76 8.2.7 UNKNOWN STREAM IDS IN THE PAYLOADS .................................................................................................... 76 8.2.8 MULTI-LANGUAGE PRESENTATIONS .............................................................................................................. 76 8.2.9 GROUP MUTUAL EXCLUSION ....................................................................................................................... 77 8.2.10 PRESENCE OF STREAM BITRATE PROPERTIES OBJECT.................................................................................. 77 8.2.11 CUSTOM TOP-LEVEL OBJECTS ................................................................................................................. 77 8.2.12 INDEX OBJECTS ................................................................................................................................... 78 8.2.13 DO NOT CREATE CONTENT WITH VARIABLE-SIZE PACKETS ............................................................................ 79 8.2.14 PACKET SIZE MUST BE UNDER 64 KB ....................................................................................................... 79 8.2.15 PADDING LENGTH MUST BE ACCURATE...................................................................................................... 79 8.2.16 ORDERING OF PAYLOADS AND MEDIA OBJECTS IN PACKETS ........................................................................... 80 9. STANDARD ASF MEDIA TYPES ........................................................................................... 80 9.1 AUDIO MEDIA TYPE .................................................................................................................................. 80 9.1.1 SPREAD AUDIO........................................................................................................................................ 81 9.1.2 AUDIO PAYLOAD SIZES.............................................................................................................................. 82 9.2 VIDEO MEDIA TYPE .................................................................................................................................. 82 9.3 COMMAND MEDIA TYPE ............................................................................................................................. 84 ? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is
subject to the terms of the End User License Agreement accompanying this specification.
- Document Revision 01.20.03 - December, 2004 iii
9.4 IMAGE MEDIA TYPE .................................................................................................................................. 85 9.4.1 JFIF/JPEG MEDIA TYPE ........................................................................................................................... 85 9.4.2 DEGRADABLE JPEG MEDIA TYPE ................................................................................................................. 85 9.5 FILE TRANSFER AND BINARY MEDIA TYPES ..................................................................................................... 86 9.5.1 WEB STREAMS ........................................................................................................................................ 87 10. ASF GUIDS......................................................................................................................... 88 10.1 TOP-LEVEL ASF OBJECT GUIDS................................................................................................................. 89 10.2 HEADER OBJECT GUIDS ........................................................................................................................... 89 10.3 HEADER EXTENSION OBJECT GUIDS ........................................................................................................... 89 10.4 STREAM PROPERTIES OBJECT STREAM TYPE GUIDS ....................................................................................... 90 10.4.1 WEB STREAM TYPE-SPECIFIC DATA GUIDS .............................................................................................. 90 10.5 STREAM PROPERTIES OBJECT ERROR CORRECTION TYPE GUIDS ...................................................................... 90 10.6 HEADER EXTENSION OBJECT GUIDS ........................................................................................................... 90 10.7 ADVANCED CONTENT ENCRYPTION OBJECT SYSTEM ID GUIDS ........................................................................ 91 10.8 CODEC LIST OBJECT GUIDS ..................................................................................................................... 91 10.9 SCRIPT COMMAND OBJECT GUIDS ............................................................................................................. 91 10.10 MARKER OBJECT GUIDS ...................................................................................................................... 91 10.11 MUTUAL EXCLUSION OBJECT EXCLUSION TYPE GUIDS ............................................................................... 91 10.12 BANDWIDTH SHARING OBJECT GUIDS .................................................................................................... 92 10.13 STANDARD PAYLOAD EXTENSION SYSTEM GUIDS ...................................................................................... 92 11. CODEC INFORMATION ....................................................................................................... 92 11.1 AUDIO CODEC TYPE-SPECIFIC DATA IN ASF................................................................................................... 92 11.1.1 WINDOWS MEDIA AUDIO ...................................................................................................................... 93 11.1.2 GSM-AMR ........................................................................................................................................ 93 11.2 MPEG-4 VIDEO TYPE-SPECIFIC DATA IN ASF................................................................................................ 93 11.2.1 BACKGROUND ..................................................................................................................................... 93 11.2.2 DECODING PROCESS ............................................................................................................................ 94 11.2.3 DECODING MP4S HEADER INFORMATION ................................................................................................. 95 12. REVISION HISTORY .......................................................................................................... 96
? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is
subject to the terms of the End User License Agreement accompanying this specification.
- Document Revision 01.20.03 - December, 2004 iv
End User License Agreement
Microsoft Advanced Systems Format (ASF) Specification version 1.2
IMPORTANT—READ CAREFULLY: This Microsoft Agreement (“Agreement”) is a legal agreement between you
(either an individual or a single entity) and Microsoft Corporation (“Microsoft”) for the version of the Microsoft
specification identified above which you are about to download (“Specification”). By downloading, copying, or
otherwise using the Specification, you agree to be bound by the terms of this Agreement. If you do not agree to the
terms of this Agreement, do not download, copy or otherwise use the Specification.
The Specification is owned by Microsoft or its suppliers and is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties.
The capitalized terms used in this Agreement are defined as follows:
? “Advanced Systems Format” or “ASF” means version 1.2 of the extensible file storage format developed by or for Microsoft for authoring, editing, archiving, distributing, streaming, playing, referencing, or otherwise manipulating content.
? “Necessary Claims” means any and all claim(s), but only such claim(s), of a patent or patent application that (a) are owned, controlled, or sublicensable (without payment of royalties to an unaffiliated third party) by Microsoft now or at any future time; and (b) are necessarily infringed by implementing ASF as set forth in the Specification. Notwithstanding the foregoing sentence, Necessary Claims do not include any claims: (i) to any enabling technologies that may be necessary to make or use any product or portion thereof that includes ASF (e.g., enabling semiconductor manufacturing technology, compiler technology, object oriented technology, operating system technology, protocols, programming interfaces, etc.); or (ii) covering the implementation of other specifications, technical documentation or technology merely referred to in the Specification.
? “Windows Media Codecs” means all versions of the audio, video, and data compression/decompression algorithms (“codecs”) that have a ASF Codec Description that begins with “Windows Media” or “Microsoft”. Windows Media Codecs includes, but is not limited to, the “Windows Media Audio” codecs, “Windows Media Video” codecs, and “Microsoft MPEG-4” codec.
All other initially capitalized terms have the meanings assigned to them elsewhere in this Agreement.
1. LICENSE.
(a) Specification. Provided you comply with all terms and conditions of this Agreement, including without limitation Section 2 below, Microsoft grants you the following limited, non-exclusive, world-wide, royalty-free, non-assignable,
nontransferable, non-sublicenseable license during the Term (defined below), under any copyrights owned or licensable by Microsoft without payment of consideration to unaffiliated third parties, to: (i) reproduce and internally
use a reasonable number of copies of the Specification in its entirety as a reference for the sole purpose of
implementing ASF in your hardware, application, or utilities (your “Solutions”); (ii) reproduce and internally use
your implementations of ASF made pursuant to the terms of this Agreement (your “Implementations”) in source code form solely for internal development and testing of your Solutions, and (iii) reproduce and have reproduced in
object code form only, your Implementations and distribute, directly and indirectly, your Implementations (only in
object code form) solely as part of and for use with your Solutions.
(b) Necessary Claims. Provided you comply with all terms and conditions of this Agreement, including without limitation Section 2 below, Microsoft grants you the following limited, non-exclusive, world-wide, royalty-free,
non-assignable, nontransferable, non-sublicenseable license during the Term under its Necessary Claims to make, use and distribute in object code form (in accordance with the distribution criteria set forth in Section 1(a)(iii) above) your
Implementations that fully comply with the Specification.
(c) Reserved Rights. The foregoing license is applicable only to the version of the Specification which you are about to download. This Agreement does not grant you any rights to any additional versions of or extensions to the
Specification. Microsoft and its suppliers retain title and all ownership rights to the Specification and the
information contained therein. All rights not expressly granted are reserved to Microsoft. Microsoft may have patents or pending patent applications, trademarks, copyrights, trade secrets or other intellectual property rights
covering the subject matter in the Specification. The furnishing of this Specification does not give you any license
? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is
subject to the terms of the End User License Agreement accompanying this specification.
- Document Revision 01.20.03 - December, 2004 v
to these patents, trademarks, trade secrets, copyrights, or other intellectual property rights, except as specifically set
forth in Sections 1(a) and 1(b) above.
2. DESCRIPTION OF ADDITIONAL LIMITATIONS. Without limiting the conditions set forth in Section 1 above, your rights under Section 1 are expressly conditioned upon your compliance with each of the following limitations:
(a) You may not alter or remove any copyright, trademark or other protective notices or legends from any copy of the
Specification.
(b) You may not provide, publish or otherwise distribute the Specification to any third party. Further, you shall use commercially reasonable efforts to ensure that the use or distribution of your Solutions, including your
Implementations as incorporated into your Solutions, shall not in any way disclose or reveal the information
contained in the Specification.
(c) Your Implementations as incorporated into your Solutions must implement the Specification in its entirety. By way of clarification of the foregoing, you are not required to implement any portion of the Specification that is identified
as “optional”. However, if you elect to implement a portion of the Specification that is identified as optional, you must also implement that optional portion of the Specification in its entirety.
(d) Your Solutions shall not circumvent or compromise the protection of content protected with Microsoft's digital rights management.
(e) To promote interoperability with legacy and future solutions built on Windows Media technologies, Microsoft recommends that your Solutions follow these guidelines: (i) if your Solutions save to permanent storage, write to a
network, or otherwise export content compressed with Windows Media Codecs, such content should be contained
within ASF and (ii) if your Solutions create ASF files, or register for any file types or MIME types associated with
ASF files, your Solutions should adhere to the ASF file naming and registration conventions posted on the http://go.microsoft.com/fwlink/?LinkId=11652 web site.
(f) For a variety of reasons, including without limitation, because you do not have the right to sublicense the Necessary Claims, your license rights to the Specification are conditioned upon your not creating or distributing your
Implementations in any manner that would cause ASF (whether embodied in your Implementation or otherwise) to
become subject to any of the terms of an Excluded License. An “Excluded License” is any license that requires as a
condition of use, modification and/or distribution of software subject to the Excluded License, that such software or other software combined and/or distributed with such software be (x) disclosed or distributed in source code form;
(y) licensed for the purpose of making derivative works; or (z) redistributable at no charge; 3. TERM. The term of this Agreement (“Term”) commences upon your downloading of the Specification and expires without notice on January 1, 2012, unless terminated sooner as provided in Section 4. After the expiration or termination of
the Term, you must cease creating any new Implementations. If you have complied with the terms and conditions of this
Agreement and Microsoft has not terminated this Agreement as provided in Section 4, you may continue to exercise the license rights granted herein after the expiration of the Term, including the right to use a reasonable number of copies of the
Specification, subject to the conditions and restrictions herein and solely to the limited extent needed to (i) continue to
distribute your Solutions containing your Implementations where such Solutions were first commercially released in a
general, non-beta form during the Term (“Legacy Solutions”) and (ii) develop bug fixes and provide product support for your Legacy Solutions. You may not continue to exercise the license rights granted herein after the expiration of the Term
(i) if Microsoft has terminated this Agreement as provided in Section 4 or (ii) if you do not continue to comply with any of
the conditions and restrictions herein that were applicable to your exercise of the license rights during the Term.
4. TERMINATION. Without prejudice to any other rights, Microsoft may terminate this Agreement if you fail to comply with any of the terms and conditions of this Agreement (“Termination for Cause”). Immediately following a Termination
for Cause, you must destroy all copies of the Specification in your possession or under your control and cease any further distribution of your Solutions that use or incorporate Implementations.
5. SUPPORT. Microsoft is not obligated to provide technical or other support for the Specification. You are responsible for any and all maintenance, end-user support, technical support and updates for your Solutions.
6. EXPORT RESTRICTIONS. You acknowledge that the Specification is subject to U.S. export jurisdiction. You agree to comply with all applicable international and national laws that apply to the Specification, including the U.S. Export
Administration Regulations, as well as end-user, end-use and country destination restrictions issued by U.S. and other
governments. For additional information on exporting Microsoft products, see http://www.microsoft.com/exporting/.
7. DISCLAIMER OF WARRANTIES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, MICROSOFT AND ITS SUPPLIERS PROVIDE TO YOU THE SPECIFICATION (AND ALL INTELLECTUAL PROPERTY THEREIN), AND ANY (IF ANY) SUPPORT SERVICES RELATED TO THE
SPECIFICATION ("SUPPORT SERVICES") AS IS AND WITH ALL FAULTS; AND MICROSOFT AND ITS
SUPPLIERS HEREBY DISCLAIM WITH RESPECT TO THE SPECIFICATION AND SUPPORT SERVICES
ALL WARRANTIES AND CONDITIONS, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING,
BUT NOT LIMITED TO, ANY (IF ANY) WARRANTIES OR CONDITIONS OF OR RELATED TO: MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, ACCURACY OR COMPLETENESS OF
? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is
subject to the terms of the End User License Agreement accompanying this specification.
- Document Revision 01.20.03 - December, 2004 vi
RESPONSES, RESULTS, WORKMANLIKE EFFORT AND LACK OF NEGLIGENCE. ALSO THERE IS NO
WARRANTY, DUTY OR CONDITION OF TITLE, QUIET ENJOYMENT, QUIET POSSESSION,
CORRESPONDENCE TO DESCRIPTION OR NONINFRINGEMENT. THE ENTIRE RISK ARISING OUT OF USE OF THE SPECIFICATION (AND ALL INTELLECTUAL PROPERTY THEREIN) AND ANY
SUPPORT SERVICES REMAINS WITH YOU.
8. EXCLUSION OF INCIDENTAL, CONSEQUENTIAL AND CERTAIN OTHER DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL MICROSOFT OR ITS
SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL
DAMAGES WHATSOEVER (INCLUDING, BUT NOT LIMITED TO, DAMAGES FOR LOSS OF PROFITS OR CONFIDENTIAL OR OTHER INFORMATION, FOR BUSINESS INTERRUPTION, FOR PERSONAL
INJURY, FOR LOSS OF PRIVACY, FOR FAILURE TO MEET ANY DUTY INCLUDING OF GOOD FAITH
OR OF REASONABLE CARE, FOR NEGLIGENCE, AND FOR ANY OTHER PECUNIARY OR OTHER LOSS
WHATSOEVER) ARISING OUT OF OR IN ANY WAY RELATED TO THE USE OF OR INABILITY TO USE THE SPECIFICATION, ANY INTELLECTUAL PROPERTY THEREIN, THE PROVISION OF OR FAILURE
TO PROVIDE SUPPORT SERVICES, OR OTHERWISE UNDER OR IN CONNECTION WITH ANY
PROVISION OF THIS AGREEMENT, EVEN IN THE EVENT OF THE FAULT, TORT (INCLUDING
NEGLIGENCE), STRICT LIABILITY, BREACH OF CONTRACT OR BREACH OF WARRANTY OF
MICROSOFT OR ANY SUPPLIER, AND EVEN IF MICROSOFT OR ANY SUPPLIER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
9. LIMITATION OF LIABILITY AND REMEDIES. NOTWITHSTANDING ANY DAMAGES THAT YOU MIGHT INCUR FOR ANY REASON WHATSOEVER (INCLUDING, WITHOUT LIMITATION, ALL
DAMAGES REFERENCED ABOVE AND ALL DIRECT OR GENERAL DAMAGES), THE ENTIRE
LIABILITY OF MICROSOFT AND ANY OF ITS SUPPLIERS UNDER ANY PROVISION OF THIS
AGREEMENT AND YOUR EXCLUSIVE REMEDY FOR ALL OF THE FOREGOING SHALL BE LIMITED TO THE GREATER OF THE AMOUNT ACTUALLY PAID BY YOU FOR THE SPECIFICATION OR
U.S.$5.00. THE FOREGOING LIMITATIONS, EXCLUSIONS AND DISCLAIMERS SHALL APPLY TO THE
MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, EVEN IF ANY REMEDY FAILS ITS
ESSENTIAL PURPOSE.
10. APPLICABLE LAW. This Agreement is governed by the laws of the State of Washington.
11. ENTIRE AGREEMENT. This Agreement is the entire agreement between you and Microsoft relating to the Specification and it supersedes all prior or contemporaneous oral or written communications, proposals and representations with respect to the Specification.
Should you have any questions concerning this EULA, or if you desire to contact Microsoft for any reason,
please contact the Microsoft subsidiary serving your country, or write: Microsoft Corporation, One Microsoft Way, Redmond, WA 98052-6399.
? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is
subject to the terms of the End User License Agreement accompanying this specification.
- Document Revision 01.20.03 - December, 2004 1
1. Introduction
Advanced Systems Format (ASF) is an extensible file format designed to store coordinated
digital media data. It supports data delivery over a wide variety of networks and is also suitable
for local playback.
ASF was designed with the following goals:
? To support efficient playback from digital media servers, HTTP servers, and local storage
devices.
? To support scalable digital media types such as audio and video.
? To permit a single digital media composition to be presented over a wide range of
bandwidths.
? To allow authoring control over digital media stream relationships, especially in
constrained-bandwidth scenarios.
? To be independent of any particular digital media composition system, computer
operating system, or data communications protocol.
Each ASF file is composed of one or more digital media streams. The file header specifies the
properties of the entire file, along with stream-specific properties. Digital media data, stored after the file header, references a particular digital media stream number to indicate its type and
purpose. The delivery and presentation of all digtial media stream data is aligned to a common
timeline.
The ASF file definition includes the specification of commonly used media types. If an
implementation supports media types from within this set of standard media types, then that
media type must be supported in the manner described in this document if the resulting content
is to be considered ―content compliant‖ with the ASF specification.
ASF supports the transmission of ―live content‖ over a network. Live content refers to digital
media content, which may or may not ever be recorded upon a persistent medium (for example,
a disk, CD, DVD, and so on). This use explicitly and solely means that information describing the
digital media content must have been received before the digital media data itself is received (in
order to interpret the digital media data), and that this information must convey the semantics of
the ASF Header Object. Similarly, the received data must conform to the format of the ASF Data
Packets. No additional information should be conveyed. Specifically, this use explicitly does not
refer to or contain any information about network control protocols or network transmission
protocols. It refers solely to the order of information arrival (header semantics before data) and
the data format.
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 in
order to gain efficient access to the data.
ASF is a digital media presentation file format. It supports live and on-demand digital media
content. ASF files may be edited, but ASF is specifically designed for streaming and/or local
playback.
? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is subject to the terms of the End User License Agreement accompanying this
specification.
- Document Revision 01.20.03 - December, 2004 2
1.1 About this specification
This specification is intended to be compatible with previous versions of the ASF Specification.
The format defined herein is an extension of the format defined in previous versions of this
specification and is not a new format. Content created according to this specification should be
compatible with earlier implementations of ASF (subject to some issues that are outlined in
section 8).
1.2 Conventions
In this document the following conventions are used:
? "Shall" or ―must‖ indicates a mandatory requirement
? "Should" indicates a recommended, but optional, course of action
? "May" indicates an optional course of action
All structure definitions assume 1-byte packing.
All references to Unicode strings imply NULL terminated strings unless otherwise indicated. The
term ―WCHAR‖ is used to indicate Unicode characters. ASF uses UTF-16, little endian, and the
Byte-Order Marker (BOM) character is not present.
Fields marked ―reserved‖ indicate that reading implementations should ignore the value but that
writing implementations must set the value to whatever value is indicated in the specification for
that field.
The following basic data types are used in this document.
Type Size (bits) Signed
BYTE 8 no
WCHAR 16 no
WORD 16 no
DWORD 32 no
QWORD 64 no
GUID 128 no
1.3 Document organization
? Section 1 provides an introduction to ASF and how to navigate this document.
? Section 2 provides a high-level overview of the ASF file format organization.
? Sections 3 and 4 define the various objects that comprise the ASF Header Object.
? Section 5 describes the organization of the ASF Data Object.
? Section 6 documents the internals of the ASF top-level index objects.
? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is subject to the terms of the End User License Agreement accompanying this
specification.
- Document Revision 01.20.03 - December, 2004 3
? Section 7 documents various features of ASF and how to use them.
? Section 8 details how to create content that is compatible with many existing ASF reading
implementations; this concept is referred to as ―content reach.‖
? Section 9 lists and describes standard ASF media types.
? Section 10 contains a list of the ASF GUIDs used throughout this document.
? Section 11 contains detailed information for specific codec data in ASF.
2. File format organization
This section provides a high-level overview of the ASF file format organization.
2.1 ASF object definition
The base unit of organization for ASF files is called the ASF object. It consists of a 128-bit GUID
for the object, a 64-bit integer object size, and the variable-length object data. The value of the
object size field is the sum of 24 bytes plus the size of the object data in bytes. The following
diagram illustrates the ASF object structure:
Object GUID (16 bytes)
Object Size (8 bytes)
Object Data (N >= 0
bytes)
All ASF objects and structures (including data packet headers) are stored in little-endian byte
order (the inverse of network byte order). However, ASF files can contain digital media stream
data in either byte order within the data packets.
2.2 Top-level file structure
ASF files are logically composed of three types of top-level objects: the Header Object, the
Data Object, and the Index Object(s). The Header Object is mandatory and must be placed
at the beginning of every ASF file. The Data Object is also mandatory and must follow the Header Object. The Index Object(s) are optional, but they are useful in providing time-based random access into ASF files. When present, the Index Object(s) must be the last object in the
ASF file. The following diagram illustrates the top-level ASF file structure:
? 2004 Microsoft Corporation. All rights reserved. Any reproduction, modification, or distribution is subject to the terms of the End User License Agreement accompanying this
specification.