Extensible Binary Meta Language
RFC 8794
Internet Engineering Task Force (IETF) S. Lhomme
Request for Comments: 8794
Category: Standards Track D. Rice
ISSN: 2070-1721
M. Bunkus
July 2020
Extensible Binary Meta Language
Abstract
This document defines the Extensible Binary Meta Language (EBML)
format as a binary container format designed for audio/video storage.
EBML is designed as a binary equivalent to XML and uses a storage-
efficient approach to build nested Elements with identifiers,
lengths, and values. Similar to how an XML Schema defines the
structure and semantics of an XML Document, this document defines how
EBML Schemas are created to convey the semantics of an EBML Document.
Status of This Memo
This is an Internet Standards Track document.
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc8794.
Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction
2. Notation and Conventions
3. Structure
4. Variable-Size Integer
4.1. VINT_WIDTH
4.2. VINT_MARKER
4.3. VINT_DATA
4.4. VINT Examples
5. Element ID
6. Element Data Size
6.1. Data Size Format
6.2. Unknown Data Size
6.3. Data Size Values
7. EBML Element Types
7.1. Signed Integer Element
7.2. Unsigned Integer Element
7.3. Float Element
7.4. String Element
7.5. UTF-8 Element
7.6. Date Element
7.7. Master Element
7.8. Binary Element
8. EBML Document
8.1. EBML Header
8.2. EBML Body
9. EBML Stream
10. EBML Versioning
10.1. EBML Header Version
10.2. EBML Document Version
11. Elements semantics
11.1. EBML Schema
11.1.1. EBML Schema Example
11.1.2. "<EBMLSchema>" Element
11.1.3. "<EBMLSchema>" Namespace
11.1.4. "<EBMLSchema>" Attributes
11.1.5. "<element>" Element
11.1.6. "<element>" Attributes
11.1.7. "<documentation>" Element
11.1.8. "<documentation>" Attributes
11.1.9. "<implementation_note>" Element
11.1.10. "<implementation_note>" Attributes
11.1.11. "<restriction>" Element
11.1.12. "<enum>" Element
11.1.13. "<enum>" Attributes
11.1.14. "<extension>" Element
11.1.15. "<extension>" Attributes
11.1.16. XML Schema for EBML Schema
11.1.17. Identically Recurring Elements
11.1.18. Textual expression of floats
11.1.19. Note on the use of default attributes to define
Mandatory EBML Elements
11.2. EBML Header Elements
11.2.1. EBML Element
11.2.2. EBMLVersion Element
11.2.3. EBMLReadVersion Element
11.2.4. EBMLMaxIDLength Element
11.2.5. EBMLMaxSizeLength Element
11.2.6. DocType Element
11.2.7. DocTypeVersion Element
11.2.8. DocTypeReadVersion Element
11.2.9. DocTypeExtension Element
11.2.10. DocTypeExtensionName Element
11.2.11. DocTypeExtensionVersion Element
11.3. Global Elements
11.3.1. CRC-32 Element
11.3.2. Void Element
12. Considerations for Reading EBML Data
13. Terminating Elements
14. Guidelines for Updating Elements
14.1. Reducing Element Data in Size
14.1.1. Adding a Void Element
14.1.2. Extending the Element Data Size
14.1.3. Terminating Element Data
14.2. Considerations when Updating Elements with Cyclic
Redundancy Check (CRC)
15. Backward and Forward Compatibility
15.1. Backward Compatibility
15.2. Forward Compatibility
16. Security Considerations
Show full document text