-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
79 additions
and
77 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,71 +1,73 @@ | ||
<pre class='metadata'> | ||
Group: AOM | ||
Status: FD | ||
Text Macro: SPECVERSION v1.0.0 | ||
Title: Carriage of ID3 Timed Metadata in the Common Media Application Format (CMAF) | ||
Status: PD | ||
Text Macro: SPECVERSION v1.1.0 | ||
Date: 2020-03-12 | ||
Editor: TBD | ||
Editor: TBD | ||
Abstract: This specification defines how ID3 metadata can be carried as timed metadata in Common Media Application Format (CMAF) compatible fragmented MP4 streams using Event Message (emsg) boxes. | ||
URL: https://AOMediaCodec.github.io/id3-emsg | ||
Shortname: id3-esmg | ||
Editor: Krasimir Kolarov, [email protected]; | ||
Editor: John Simmons, [email protected] | ||
Abstract: This specification defines how ID3 metadata can be carried as timed metadata in Common Media Application Format (CMAF) compatible fragmented MP4 streams using Event Message ('emsg') boxes. | ||
Date: 2020-03-12 | ||
Group: AOM | ||
Repository: AOMediaCodec/id3-esmg | ||
Inline Github Issues: full | ||
Boilerplate: property-index no, issues-index no, copyright yes | ||
Markup Shorthands: css no | ||
!Previously approved version: <a href="v1.0.0.html">https://aomediacodec.github.io/id3-emsg/v1.0.0.html</a> | ||
!Latest approved version: <a href="latest-approved.html">https://aomediacodec.github.io/id3-emsg/latest-approved.html</a> | ||
!Latest draft version: <a href="latest-draft.html">https://aomediacodec.github.io/id3-emsg/latest-draft.html</a> | ||
Metadata Order: This version, !*, * | ||
</pre> | ||
|
||
<pre class='biblio'> | ||
{ | ||
"HLS": { | ||
"href": "https://tools.ietf.org/html/rfc8216", | ||
"id": "HLS", | ||
"title": "HTTP Live Streaming", | ||
"status": "Standard", | ||
"publisher": "IETF" | ||
}, | ||
"CMAF": { | ||
"href": "http://www.iso.org/iso/catalogue_detail?csnumber=71975", | ||
"id": "CMAF", | ||
"title": "Information technology — Multimedia application format (MPEG-A) — Part 19: Common media application format (CMAF) for segmented media", | ||
"status": "Standard", | ||
"publisher": "ISO" | ||
}, | ||
"ID3": { | ||
"href": "http://www.id3.org/Developer_Information", | ||
"id": "ID3", | ||
"title": "The ID3 audio file data tagging format", | ||
"status": "Standard", | ||
"publisher": "ID3.org" | ||
}, | ||
"TM-HLS": { | ||
"href": "https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/HTTP_Live_Streaming_Metadata_Spec/Introduction/Introduction.html", | ||
"id": "TM-HLS", | ||
"title": "Timed Metadata for HTTP Live Streaming", | ||
"status": "Documentation", | ||
"publisher": "Apple" | ||
}, | ||
"DASH": { | ||
"href": "https://www.iso.org/standard/65274.html", | ||
"id": "DASH", | ||
"title": "Information technology — Dynamic adaptive streaming over HTTP (DASH) — Part 1: Media presentation description and segment formats", | ||
"status": "Standard", | ||
"publisher": "ISO" | ||
} | ||
"HLS": { | ||
"href": "https://tools.ietf.org/html/rfc8216", | ||
"id": "HLS", | ||
"title": "HTTP Live Streaming", | ||
"status": "Standard", | ||
"publisher": "IETF" | ||
}, | ||
"CMAF": { | ||
"href": "http://www.iso.org/iso/catalogue_detail?csnumber=71975", | ||
"id": "CMAF", | ||
"title": "Information technology — Multimedia application format (MPEG-A) — Part 19: Common media application format (CMAF) for segmented media", | ||
"status": "Standard", | ||
"publisher": "ISO" | ||
}, | ||
"ID3": { | ||
"href": "http://www.id3.org/Developer_Information", | ||
"id": "ID3", | ||
"title": "The ID3 audio file data tagging format", | ||
"status": "Standard", | ||
"publisher": "ID3.org" | ||
}, | ||
"TM-HLS": { | ||
"href": "https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/HTTP_Live_Streaming_Metadata_Spec/Introduction/Introduction.html", | ||
"id": "TM-HLS", | ||
"title": "Timed Metadata for HTTP Live Streaming", | ||
"status": "Documentation", | ||
"publisher": "Apple" | ||
}, | ||
"DASH": { | ||
"href": "https://www.iso.org/standard/65274.html", | ||
"id": "DASH", | ||
"title": "Information technology — Dynamic adaptive streaming over HTTP (DASH) — Part 1: Media presentation description and segment formats", | ||
"status": "Standard", | ||
"publisher": "ISO" | ||
} | ||
} | ||
</pre> | ||
|
||
<pre class="anchors"> | ||
url: https://www.iso.org/standard/65274.html#; spec: DASH; type: dfn; | ||
text: emsg | ||
text: scheme_id_uri | ||
text: value | ||
text: message_data | ||
text: timescale | ||
text: event_duration | ||
text: presentation_time_delta | ||
text: presentation_time | ||
text: id | ||
text: DASHEventMessageBox | ||
text: emsg | ||
text: scheme_id_uri | ||
text: value | ||
text: message_data | ||
text: timescale | ||
text: event_duration | ||
text: presentation_time_delta | ||
text: presentation_time | ||
text: id | ||
</pre> | ||
|
||
# Introduction # {#introduction} | ||
|
@@ -99,42 +101,42 @@ For convenience, the follow box definition is reproduced from [[DASH]], section | |
```cpp | ||
aligned(8) class DASHEventMessageBox extends FullBox('emsg', version, flags = 0) | ||
{ | ||
if (version==0) { | ||
string scheme_id_uri; | ||
string value; | ||
unsigned int(32) timescale; | ||
unsigned int(32) presentation_time_delta; | ||
unsigned int(32) event_duration; | ||
unsigned int(32) id; | ||
} else if (version==1) { | ||
unsigned int(32) timescale; | ||
unsigned int(64) presentation_time; | ||
unsigned int(32) event_duration; | ||
unsigned int(32) id; | ||
string scheme_id_uri; | ||
string value; | ||
} | ||
unsigned int(8) message_data[]; | ||
if (version==0) { | ||
string scheme_id_uri; | ||
string value; | ||
unsigned int(32) timescale; | ||
unsigned int(32) presentation_time_delta; | ||
unsigned int(32) event_duration; | ||
unsigned int(32) id; | ||
} else if (version==1) { | ||
unsigned int(32) timescale; | ||
unsigned int(64) presentation_time; | ||
unsigned int(32) event_duration; | ||
unsigned int(32) id; | ||
string scheme_id_uri; | ||
string value; | ||
} | ||
unsigned int(8) message_data[]; | ||
} | ||
``` | ||
|
||
### Semantics ### {#emsg-semantics} | ||
|
||
<a>scheme_id_uri</a> MUST be set to <dfn><code>https://aomedia.org/emsg/ID3</code></dfn> to identify ID3v2 metadata [[ID3]]. | ||
<dfn>scheme_id_uri</dfn> SHALL be set to <dfn export><code>https://aomedia.org/emsg/ID3</code></dfn> to identify ID3v2 metadata [[ID3]]. | ||
|
||
<a>value</a> may either be an absolute or relative user-specified URI which defines the semantics of the id field. | ||
<dfn>value</dfn> may either be an absolute or relative user-specified URI which defines the semantics of the id field. | ||
Any relative URI is considered to be relative to the <a>scheme_id_uri</a>. | ||
|
||
<a>message_data</a> MUST contain complete ID3 version 2.4 data [[ID3]]. | ||
<dfn>message_data</dfn> SHALL contain complete ID3 version 2.4 data [[ID3]]. | ||
|
||
In general, ID3 don't carry a duration and in those cases the <a>event_duration</a> field should be set to <code>0xFFFFFFFF</code>. | ||
If in a particular case, the ID3 message carries a duration, it should be reflected in the <a>event_duration</a> field. | ||
|
||
The <a>presentation_time</a> must be within the time interval of the fragment. | ||
The <dfn>presentation_time</dfn> must be within the time interval of the fragment. | ||
|
||
The <a>id</a> field is not restricted in this version of the specification. | ||
The <dfn>id</dfn> field is not restricted in this version of the specification. | ||
|
||
## Signaling ## {#meta-signaling} | ||
|
||
Files compliant to this specification should signal it using the brand <code><dfn>aid3</dfn></code> as part of the list compatible brands in the file type box. | ||
Manifest formats using files compliant to this specification may signal these files using the following URN: <dfn><code>urn:aomedia:cmaf:id3</code></dfn>. | ||
Files compliant to this specification should signal it using the brand <dfn export><code>aid3</code></dfn> as part of the list compatible brands in the file type box. | ||
Manifest formats using files compliant to this specification may signal these files using the following URN: <dfn export><code>urn:aomedia:cmaf:id3</code></dfn>. |