EBML ( — розширювана бінарна метамова) — двійковий формат файлів, при створенні якого стояло завдання створити аналог XML для двійкових даних. Спочатку був створений для мультимедіа контейнера Matroska; використовується в WebM.

Загальна структура Дуже важливою особливістю формату є наявність «значень за замовчуванням» для багатьох елементів, це дозволяє створювати файл без детального опису всіх параметрів.

Типи даних Signed Integer — знакове ціле, порядок байтів big-endian, довільного розміру від 1 до 8 байтів. Unsigned Integer — беззнакове ціле, порядок байтів big-endian, довільного розміру від 1 до 8 байтів. Float — число з плаваючою комою, порядок байтів big-endian, розміру 4 або 8 байтів. String — текстовий рядок у форматі ASCII (символи ASCII, з кодами від 32 до 127). Наявність завершального нуля опціонально і залежить від вимог парсера. UTF-8 — рядок Unicode у форматі UTF-8. Наявність завершального нуля опціонально і залежить від вимог парсера. Date — час у наносекундах, знакове ціле, 64 біти. 0 означає початок третього тисячоліття 01.01.2001 00:00:00,000000000 UTC. Master-element — контейнер для інших EBML елементів (більш низького рівня). Binary — дані, що не інтерпретуються парсером.

Числа змінного розміру Однією з особливостей формату є числа змінного розміру. Кодування числа здійснюється подібно кодуванню символів в кодуванні UTF-8, розмір числа визначається кількістю нульових біт (точніше, положенням першого ненульового біта). Максимальне число обчислюється як 2 кількість бітів−2.

12345678бітівдіапазон, що кодується 1×××××××7[0;126] 01××××××××××××××14[0;16382] 001×××××××××××××××××××××21[0;2097150] 0001××××××××××××××××××××××××××××28[0;268435454] 00001×××××××××××××××××××××××××××××××××××35[0;34359738366] 000001××××××××××××××××××××××××××××××××××××××××××42[0;4398046511102] 0000001×××××××××××××××××××××××××××××××××××××××××××××××××49[0;562949953421310] 00000001××××××××××××××××××××××××××××××××××××××××××××××××××××××××56[0;72057594037927934]

Див. також WBXML Binary XML Matroska WebM XML

Посилання EBML RFC (Draft) — чернетка стандарту EBML. EBML Homepage — the opensource Extensible Binary Meta-Language.