Copyright © 2023 World Wide Web Consortium . W3C ® liability , trademark and permissive document license rules apply.
This section describes the status of this document at the time of its publication. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.
The
working
group
maintains
a
list
of
all
bug
reports
that
the
editors
have
not
yet
tried
to
address
;
there
may
also
be
related
open
bugs
in
the
GitHub
repository
.
Implementors
should
be
aware
that
this
specification
is
not
stable.
Implementors
who
are
not
taking
part
in
the
discussions
are
likely
to
find
the
specification
changing
out
from
under
them
in
incompatible
ways.
Vendors
interested
in
implementing
this
specification
before
it
eventually
reaches
the
Candidate
Recommendation
stage
should
track
the
GitHub
repository
and
take
part
in
of
the
discussions.
Media
Source
Extensions™
specification.
This document was published by the Media Working Group as an Editor's Draft.
Publication as an Editor's Draft does not imply endorsement by W3C and its Members.
This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the W3C Patent Policy . W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy .
This document is governed by the 03 November 2023 W3C Process Document .
This specification defines segment formats for implementations of Media Source Extensions™ [ MEDIA-SOURCE ] that choose to support MPEG audio streams specified in [ ISO11172-3 ], [ ISO13818-3 ], and [ ISO14496-3 ].
It defines the MIME-types (see 2. MIME-types ) used to signal codecs, and provides the necessary format specific definitions for initialization segments , media segments , and random access points required by the Byte Stream Formats section of the Media Source Extensions™ specification. This document also defines extra behaviors and state that only apply to this byte stream format.
This
section
specifies
the
MIME-types
that
may
be
passed
to
isTypeSupported
()
or
addSourceBuffer
()
for
byte
streams
that
conform
to
this
specification.
The "codecs" MIME-type parameter MUST NOT be used with these MIME-types.
The format of an MPEG Audio Frame depends on the MIME type used (see 2. MIME-types ).
Since
[
ID3v1
],
[
ID3v2
]
metadata
frames,
and
Icecast
headers
are
common
in
existing
MPEG
audio
streams,
implementations
SHOULD
gracefully
handle
such
frames.
Zero
or
more
of
these
metadata
frames
are
allowed
to
occur
before,
after,
or
between
MPEG
Audio
Frame
.
Minimal
implementations
MUST
accept,
consume,
and
ignore
these
frames.
More
advanced
implementations
MAY
choose
to
expose
the
metadata
information
via
an
inband
TextTrack
or
some
other
mechanism.
There is no normative spec for Icecast / SHOUTcast headers, just examples . For the purpose of this specification, an Icecast header is defined as beginning with the 4 character sequence "ICY "(U+0049 I, U+0043 C, U+0059 Y, U+0020 SPACE) and ending with a pair of carriage-return line-feed sequences (U+000D CARRIAGE RETURN, U+000A LINE FEED, U+000D CARRIAGE RETURN, U+000A LINE FEED).
Icecast headers are allowed in the byte streams because some Icecast and SHOUTcast servers return a status line that looks like "ICY OK 200" instead of a standard HTTP status line. User-agent network stacks typically interpret this as an HTTP 0.9 response and include the header in the response body. Allowing these headers to appear provides a simple way to interoperate with these servers.
The MPEG audio byte stream is a combination of one or more MPEG Audio Frame and zero or more metadata frames .
As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.
The key words MAY , MUST , MUST NOT , and SHOULD in this document are to be interpreted as described in BCP 14 [ RFC2119 ] [ RFC8174 ] when, and only when, they appear in all capitals, as shown here.