Advanced Systems Format (ASF) Specification

Revision 01.20.03
Microsoft Corporation
December 2004

End User License Agreement


  1. Introduction
    1. About this specification
    2. Conventions
    3. Document organization

  2. File format organization
    1. ASF object definition
    2. Top-level file structure
    3. ASF top-level Header Object
    4. ASF top-level Data Object
    5. ASF top-level index objects

  3. ASF top-level Header Object
    1. Header Object (mandatory, one only)
    2. File Properties Object (mandatory, one only)
    3. Stream Properties Object (mandatory, one per stream)
    4. Header Extension Object (mandatory, one only)
    5. Codec List Object (optional, one only)
    6. Script Command Object (optional, one only)
    7. Marker Object (optional, 0 or 1)
    8. Bitrate Mutual Exclusion Object (optional, 0 or 1)
    9. Error Correction Object (optional, one only)
    10. Content Description Object (optional, one only)
    11. Extended Content Description Object (optional, one only)
    12. Stream Bitrate Properties Object (optional but recommended, one only)
    13. Content Branding Object (optional, one only)
    14. Content Encryption Object (optional, 0 or 1)
    15. Extended Content Encryption Object (optional, 0 or 1)
    16. Digital Signature Object (optional, 0 or 1)
    17. Padding Object (optional, 0 to many)

  4. Objects in the ASF Header Extension Object
    1. Extended Stream Properties Object (optional, 1 per media stream)
    2. Advanced Mutual Exclusion Object (optional, 0 to many)
    3. Group Mutual Exclusion Object (optional, 0 to many)
    4. Stream Prioritization Object (optional, 0 or 1)
    5. Bandwidth Sharing Object (optional, 0 to many)
    6. Language List Object (optional, only 1)
    7. Metadata Object (optional, 0 or 1)
    8. Metadata Library Object (optional, 0 or 1)
    9. Index Parameters Object (mandatory only if the Index Object is present in file, 0 or 1)
    10. Media Object Index Parameters Object (mandatory only if media object index is present in file, 0 or 1)
    11. Timecode Index Parameters Object (mandatory only if TIMECODE index is present in file, 0 or 1)
    12. Compatibility Object (optional, only 1)
    13. Advanced Content Encryption Object (optional, 0 or 1)

  5. ASF top-level Data Object
    1. ASF Data Object (mandatory, one only)
    2. ASF data packet definition
      1. Error correction data
      2. Payload parsing information
      3. Payload data
      4. Padding data

  6. ASF top-level index objects
    1. ASF top-level Simple Index Object (optional but recommended when appropriate, 1 for each non-hidden video stream)
    2. ASF top-level Index Object (optional but recommended when appropriate, 0 or 1)
    3. ASF top-level Media Object Index Object (optional, 0 or 1)
    4. ASF top-level Timecode Index Object (optional, 0 or 1)

  7. ASF feature implementation guidelines
    1. Bit rate and the leaky bucket model
    2. Stream selection process
      1. Description of sample content
      2. Content authoring
      3. Exercise of the stream selection process
    3. Payload extension systems
      1. Parsing the Replicated Data
      2. Standard Payload Extension Systems
    4. Metadata
    5. Pixel aspect ratio

  8. Content reach guidelines
    1. How to use this section
    2. Compatibility issues
      1. Header extension object and custom header objects
      2. Handling complex stream configurations
      3. Media types other than audio, video, image and script
      4. Bitrate mutually exclusive video streams, different frame sizes
      5. Bitrate mutually exclusive non-video streams
      6. Multiple independent audio or video streams
      7. Unknown stream IDs in the payloads
      8. Multi-language presentations
      9. Group mutual exclusion
      10. Presence of Stream Bitrate Properties Object
      11. Custom top-level objects
      12. Index objects
      13. Do not create content with variable-size packets
      14. Packet size must be under 64 KB
      15. Padding length must be accurate
      16. Ordering of payloads and media objects in packets

  9. Standard ASF media types
    1. Audio media type
      1. Spread audio
      2. Audio payload sizes
    2. Video media type
    3. Command media type
    4. Image media type
      1. JFIF/JPEG media type
      2. Degradable JPEG media type
    5. File transfer and binary media types
      1. Web streams

  10. ASF GUIDs
    1. Top-level ASF object GUIDS
    2. Header Object GUIDs
    3. Header Extension Object GUIDs
    4. Stream Properties Object Stream Type GUIDs
      1. Web stream Type-Specific Data GUIDs
    5. Stream Properties Object Error Correction Type GUIDs
    6. Header Extension Object GUIDs
    7. Advanced Content Encryption Object System ID GUIDs
    8. Codec List Object GUIDs
    9. Script Command Object GUIDs
    10. Marker Object GUIDs
    11. Mutual Exclusion Object Exclusion Type GUIDs
    12. Bandwidth Sharing Object GUIDs
    13. Standard Payload Extension System GUIDs

  11. Codec information
    1. Audio codec type-specific data in ASF
      1. Windows Media Audio
      2. GSM-AMR
    2. MPEG-4 Video type-specific data in ASF
      1. Background
      2. Decoding process
      3. Decoding MP4S header information

  12. Revision history