Advanced Systems Format (ASF) Specification
Revision 01.20.03
Microsoft Corporation
December 2004
End User License Agreement
- Introduction
- About this specification
- Conventions
- Document organization
- File format organization
- ASF object definition
- Top-level file structure
- ASF top-level Header Object
- ASF top-level Data Object
- ASF top-level index objects
- ASF top-level Header Object
- Header Object (mandatory, one only)
- File Properties Object (mandatory, one only)
- Stream Properties Object (mandatory, one per stream)
- Header Extension Object (mandatory, one only)
- Codec List Object (optional, one only)
- Script Command Object (optional, one only)
- Marker Object (optional, 0 or 1)
- Bitrate Mutual Exclusion Object (optional, 0 or 1)
- Error Correction Object (optional, one only)
- Content Description Object (optional, one only)
- Extended Content Description Object (optional, one only)
- Stream Bitrate Properties Object (optional but recommended, one only)
- Content Branding Object (optional, one only)
- Content Encryption Object (optional, 0 or 1)
- Extended Content Encryption Object (optional, 0 or 1)
- Digital Signature Object (optional, 0 or 1)
- Padding Object (optional, 0 to many)
- Objects in the ASF Header Extension Object
- Extended Stream Properties Object (optional, 1 per media stream)
- Advanced Mutual Exclusion Object (optional, 0 to many)
- Group Mutual Exclusion Object (optional, 0 to many)
- Stream Prioritization Object (optional, 0 or 1)
- Bandwidth Sharing Object (optional, 0 to many)
- Language List Object (optional, only 1)
- Metadata Object (optional, 0 or 1)
- Metadata Library Object (optional, 0 or 1)
- Index Parameters Object (mandatory only if the Index Object is present in file, 0 or 1)
- Media Object Index Parameters Object (mandatory only if media object index is present in file, 0 or 1)
- Timecode Index Parameters Object (mandatory only if TIMECODE index is present in file, 0 or 1)
- Compatibility Object (optional, only 1)
- Advanced Content Encryption Object (optional, 0 or 1)
- ASF top-level Data Object
- ASF Data Object (mandatory, one only)
- ASF data packet definition
- Error correction data
- Payload parsing information
- Payload data
- Padding data
- ASF top-level index objects
- ASF top-level Simple Index Object (optional but recommended when appropriate, 1 for each non-hidden video stream)
- ASF top-level Index Object (optional but recommended when appropriate, 0 or 1)
- ASF top-level Media Object Index Object (optional, 0 or 1)
- ASF top-level Timecode Index Object (optional, 0 or 1)
- ASF feature implementation guidelines
- Bit rate and the leaky bucket model
- Stream selection process
- Description of sample content
- Content authoring
- Exercise of the stream selection process
- Payload extension systems
- Parsing the Replicated Data
- Standard Payload Extension Systems
- Metadata
- Pixel aspect ratio
- Content reach guidelines
- How to use this section
- Compatibility issues
- Header extension object and custom header objects
- Handling complex stream configurations
- Media types other than audio, video, image and script
- Bitrate mutually exclusive video streams, different frame sizes
- Bitrate mutually exclusive non-video streams
- Multiple independent audio or video streams
- Unknown stream IDs in the payloads
- Multi-language presentations
- Group mutual exclusion
- Presence of Stream Bitrate Properties Object
- Custom top-level objects
- Index objects
- Do not create content with variable-size packets
- Packet size must be under 64 KB
- Padding length must be accurate
- Ordering of payloads and media objects in packets
- Standard ASF media types
- Audio media type
- Spread audio
- Audio payload sizes
- Video media type
- Command media type
- Image media type
- JFIF/JPEG media type
- Degradable JPEG media type
- File transfer and binary media types
- Web streams
- ASF GUIDs
- Top-level ASF object GUIDS
- Header Object GUIDs
- Header Extension Object GUIDs
- Stream Properties Object Stream Type GUIDs
- Web stream Type-Specific Data GUIDs
- Stream Properties Object Error Correction Type GUIDs
- Header Extension Object GUIDs
- Advanced Content Encryption Object System ID GUIDs
- Codec List Object GUIDs
- Script Command Object GUIDs
- Marker Object GUIDs
- Mutual Exclusion Object Exclusion Type GUIDs
- Bandwidth Sharing Object GUIDs
- Standard Payload Extension System GUIDs
- Codec information
- Audio codec type-specific data in ASF
- Windows Media Audio
- GSM-AMR
- MPEG-4 Video type-specific data in ASF
- Background
- Decoding process
- Decoding MP4S header information
- Revision history