Standards: Delivery - Media & MIME Types
What is a Media Type Identifier and why do we need them? We explore exactly that, and explain why they are fundamental to IP-based production.
Why Do We Need Media Type Identifiers?
Media Types describe the container and content format when delivering media over a network. Historically they were described as MIME Types and you will often see them listed as such in some standards documents.
A Media Type describes a container file or stream and the payload carried in it. These object descriptions were first defined for the ARPANET. The Internet we know today was based on ARPANET, and many of its characteristics are still used today.
Although originally designed to support email, they are an important metadata item and fundamental to the delivery of media. The Media Type suggests how a receiving client application should treat the incoming content. The browser or media player handles the incoming media accordingly. Web browsers will use the media type value in preference to the file type when deciding how to handle an incoming media asset.
Workflows depend on this when assets are delivered via the IP network. Typically, they are transferred with HTTP although other mechanisms might be used. Attaching Media Type signatures in HTTP protocol headers or supporting metadata packages facilitates proper handling at each processing node.
Media Type standards are described by the Internet Engineering Task Force (IETF) in a collection of RFC documents and registered with the Internet Assigned Numbers Authority (IANA) in a publicly accessible database.
What Is The Correct Terminology?
Opinion is divided on what to call the metadata items describing the media format. There is a long history to consider. This will have influenced many ancient documents that are still relevant and might not have been updated.
These terms are broadly interchangeable in a functional sense but should be used appropriately depending on the context:
- MIME Type.
- Media Type.
- Media Type Identifier.
- Content Type.
MIME is an abbreviation of the term ‘Multipart Internet Mail Extension’ and were originally designed to facilitate the attachment of non-textual media objects when they are carried in an email message. Now, they are more often described as Media Types and are used in many other contexts.
Web Server response headers use the term ‘Content Type’ when delivering media for display or downloading.
The same fundamental technology is used within an IP based production environment. Media Type Identifiers would probably be the most appropriate term for use in broadcast production.
Every organization has a preferred nomenclature:
| Organization | Terminology |
|---|---|
| IETF & IANA |
The term MIME type was originally coined because it allows arbitrary attachments of any type to be added to email messages. The IETF and IANA have deprecated this terminology and consider it to be obsolete. They now prefer to use the Media Type terminology. |
| WHATWG | The WHATWG group that develops new web standards prefers to stay with MIME Type because the Media Type terminology might be confused with the CSS @ media type feature. |
| HTTP | The response header between web browser & server uses Content-type. |
| W3C | The W3C org defines data types for XML and uses ContentType as an XML data-type name representing a media type. |
| Linux | The XDG specifications used by the Linux desktop environment continues to use the term MIME type. |
Media Type Identifiers, content types and MIME Types (etc.) are fundamentally the same thing and do the same thing in every context.
Who Manages The Media Type Definitions?
Two organizations manage the Media Type Identifiers:
- IANA manages the publicly accessible registries of protocols and types. Their database associates Media Types with file extensions so the receiving device can choose the correct parsing mechanism.
- IETF publishes RFC documents that describe how to deploy the IANA registered values. RFC specifications are updated or replaced when new types are registered with the IANA.
A Media Type value is more reliable than a file extension on its own for determining the content of an asset. The extended Subtype, Tree, Suffix and Parameter-set details make the description very specific when necessary.
A complete list is maintained at the IANA registry where there are over 2000 individual Media Types:
https://www.iana.org/assignments/media-types/media-types.xhtml
The RFC 4289 and 6838 documents describe the process for registering new Media Types.
Many of the RFC documents were originally written to describe an email context for using these Media Type values. It is still worth reading those parts of the specifications.
Structure & Format
Media Types identify the fundamental nature of the content. File extensions are less specific and not as reliable an indicator of what variety of media is being carried. The component parts of the Media Type cover different aspects:
- Top-Level type of media followed by a slash (/) character.
- Optional Tree structured notation followed by a full-stop character (.). This describes a namespace for the Subtype value.
- Actual Subtype describing the format.
- Optional Suffix preceded by a plus sign (+) with a more specific description of the format.
- Optional Parameter string preceded by semi-colon characters (;). Multiple Parameters are delimited by additional semi-colons (;).
- A trailing semi-colon completes the syntax in some source documentation but is usually omitted depending on the context the Media Type is used in.
Each individual part of a Media Type is delimited with specific characters and must strictly adhere to the RFC defined rules:
<top-level-type> / <tree> . <subtype> + <suffix> ; <parameters> ;
Additional information about the <subtype> carried by the <tree> , <suffix> and <parameters> fragments allows for future extension without breaking the underlying format. These are optional and may not be present for all Media Type Identifiers.
Refer to RFC 6838 for a description of the component parts of a Media Type Identifier.
Top-Level-Types
The Top-Level-Type identifies the fundamental category of media being delivered. They are most recently described in RFC 6838. There are some proprietary Top-Level-Types defined elsewhere on an informal basis:
| Type | Defined in | Description |
|---|---|---|
| application | RFC 2046 | Arbitrary (usually) binary data. The Subtype further defines what this is. |
| audio | RFC 2046 | Audio data in a format defined by the Subtype. This may be raw samples or compressed with a codec. |
| example | RFC 4735 | Example Media Types for use in documentation. |
| font | RFC 8081 | Downloadable font glyph collections. |
| haptics | In progress | Force feedback. |
| image | RFC 2046 | Image data in a format defined by the Subtype. |
| message | RFC 2046 | An encapsulated message. This may describe a nested structure containing other objects. |
| model | Various | 3D model data. |
| multipart | RFC 2046 | This is a composite Top-Level-Type. It describes a container with multiple objects each of a single type. |
| text | RFC 2046 | Simple textual content which includes plain and formatted versions described by the Subtype. |
| video | RFC 2046 | Video data in a format defined by the Subtype. |
The Top-Level-Type values are case insensitive but by convention are usually presented in lower-case.
Other Top-Level-Types are defined for chemical model files and the Linux desktop environment also describes some special values for use within the operating system. They are used to implement the user interface.
Refer to RFC 2046, RFC 6838 and the IANA registry for Media Types for a more detailed description.
Subtypes
The Subtype value supports a nested tree-like structure to allow for proprietary and other extensions. There are four Subtype Trees currently defined. Each requires a slightly different syntax for constructing the Subtype value.
| Organization | Terminology |
|---|---|
| IETF Standard | No special prefix is required for this Subtype. |
| Vendor | Always has the vnd. prefix. File types associated with publicly available products are defined in this Tree, such as Excel spreadsheets for example. Registrations in this Tree are managed by the owning vendor but must be registered with the IANA. |
| Personal or vanity | Always has the prs. prefix and represents non-publicly available products or experimental prototypes but are still registered with the IANA to avoid namespace collisions. |
| Unregistered | These Subtypes always have the x. prefix and are not visible in the public registry. They are often introduced at the experimental phase for a new Subtype. Eventually, they would expect to be superseded by a Subtype in the Standards or Vendor Tree. At that time the prefixing x. would be removed. Earlier RFC documents allowed the dashed 'x-' prefix to be used. This is now deprecated and 'x' must be used for new registrations. There are a few Subtypes whose name begins with 'x-' that have become de-facto standards and are retained in the registry. |
The Top-Level-Type and Subtype are separated by a slash character (/). Here are some common useful Top-Level-Types and Subtype combinations.
| Media Type | Tree description |
|---|---|
| text/javascript | IETF Standard Tree. |
| image/png | IETF Standard Tree. |
| audio/flac | IETF Standard Tree. |
| application/vnd.ms-excel | Vendor Tree - Microsoft. |
| audio/prs.sid | Personal Tree. |
| audio/x-flac | Unregistered Tree - Deprecated prefix. |
| model/x.stl-ascii | Unregistered Tree - New prefix. |
Refer to RFC 4289 and RFC 6838 for details of how the member Subtypes in these Trees should be defined and registered. The IETF may create additional Trees and register them with the IANA if they are called for.
Subtype values are case-insensitive but by convention they are presented in lower case.
Suffixes
The Suffix value extends the Media Type definition to provide a more specific hint about the media content. This could select generic processors that understand format specific syntax while ignoring the internal semantics of the data which is parsed separately afterwards. The Suffix is separated from the main part of the Subtype with a plus sign character (+). They are always presented in lower case although they are a case-insensitive value. Here are some example Suffixes:
| Suffix | Standard | Description |
|---|---|---|
| +ber | RFC 6839 | Describes the Basic Encoding Rules defined by the ITU. |
| +cbor | RFC 8949 | A Concise Binary Object Representation. |
| +cbor-seq | RFC 8742 | Concise Binary Object Representation (CBOR) Sequences. |
| +cose | RFC 9052 | CBOR Object Signing and Encryption (COSE) object. |
| +cwt | RFC 8392 | Binary CBOR Web Token (CWT). |
| +der | RFC 6839 | The Distinguished Encoding Rules defined by the ITU. |
| +fastinfoset | RFC 6839 | Structured binary representation of XML data defined by ITU. |
| +gzip | RFC 1952 & 6713 | GZIP file format specification version 4.3. |
| +json | RFC 6839 & 8259 | A JavaScript Object Notation for serialized object structures. |
| +json-seq | RFC 7464 & 8091 | JavaScript Object Notation (JSON) Text Sequences. |
| +jwt | RFC 7519 & 8417 | JSON Web Token. |
| +sqlite3 | SQLite | SQLite version 3 database file. |
| +tlv | OMA-TS and Lightweight M2M V1.0.2 | A lightweight binary Type, Length, Value format for machine-to-machine communications. Designed by the Open Mobile Alliance. |
| +wbxml | RFC 6839 | A structured binary representation of XML defined by the Wireless Application Protocol (WAP) Forum. |
| +xml | RFC 7303 & 6839 | A generic XML format. |
| +yaml | RFC 9512 | YAML Ain't Markup Language (YAML). |
| +zip | RFC 6839 | A ZIP compressed archive format. Zip version 6.3.2 (2007). |
| +zstd | RFC 8878 | Z-standard Compression and the 'application/zstd' Media Type. |
These Suffix values should be registered with the IANA. The use of unregistered Suffix values is discouraged.
The current list of IANA registered suffix values is available here:
https://www.iana.org/assignments/media-type-structured-suffix/
Parameters
Parameters are separated from the preceding Subtype and Suffix definition by a semicolon and space. Multiple Parameters can be appended, each one separated by a semi-colon (;) and space character. Each Parameter name can only
appear once in the Media Type definition.
Each Parameter consists of a name-value pair separated by an equal sign (=).
Here are some examples:
This describes a text object containing HTML web page content. It uses characters from the Unicode characters and is rendered using the 8-bit UTF-8 syntax:
text/html; charset=UTF-8
This is a video object in an AVI container using placeholder codec XXX. Substitute one of the alternatives from the AVI registry of available codecs:
video/vnd.avi; codec=XXX
An audio object in a WAV file container using a placeholder codec. Substitute one of the codecs permitted by the WAV specification:
audio/vnd.wave; codec=YYY
This media type describes an MPEG-4 file containing AVC (H.264) video, coded with the Main Profile, at Level 4.2:
video/mp4; codecs=”avc1.4d002a”
The Parameter names are case-insensitive and are normally presented in lower-case. The values associated with them may be in upper or lower-case which should be correctly observed on a case-by case basis. In some contexts, the upper/ lower case of the Parameter value will be important but ignored in others.
Refer to RFC 2231, section 4 MIME Parameter Value and Encoded Word Extensions for details of how to encode more complex parameter values.
Relevant Standards
The MIME concept and its antecedents have been around for a long time. The earliest RFCs relating to this topic were published in 1977 (RFC 724) when email was introduced to ARPANET. Long before the Internet was created and 20 years prior to the World Wide Web.
For modern purposes, RFC 2045 is the starting point. The email architecture was overhauled in 1996 to support the more advanced attachments that facilitated HTML formatted messages. The new specifications allowed for a massive increase in the number and diversity of Media Types.
The entire set of media type Identifiers that are currently registered with the IANA is available here. Note that there are some identifiers that are not included in the IANA registry:
https://www.iana.org/assignments/media-types/
These RFC documents are currently relevant to the Media Type specifications. Some of these describe aspects of the mail protocol but also contain useful insights.
| Document | Vintage | Description |
|---|---|---|
| RFC 1952 | 1996 | GZIP file format specification version 4.3. |
| RFC 2045 | 1996 | Multipurpose Internet Mail Extensions (MIME) Part One- Format of Internet Message Bodies. Extends the original functionality from RFC 822 to support larger character sets. |
| RFC 2046 | 1996 | Multipurpose Internet Mail Extensions (MIME) Part Two- Media Types. |
| RFC 2047 | 1996 | MIME (Multipurpose Internet Mail Extensions) Part Three- Message Header Extensions for Non-ASCII Text. Describes character encoding for large character sets with more glyphs than the original ASCII set. |
| RFC 4289 | 2005 | Multipurpose Internet Mail Extensions (MIME) Part Four - Registration Procedures. Describes how new Media Types can be registered. |
| RFC 2049 | 1996 | Multipurpose Internet Mail Extensions (MIME) Part Five- Conformance Criteria and Examples to facilitate and improve interoperability. |
| RFC 2231 | 1997 | MIME Parameter Value and Encoded Word Extensions Character Sets, Languages, & Continuations. Updates the specifications in RFC 2045 and 2047. Facilitates localization and internationalization by supporting non-English languages. It improves the handling of long header lines that would have been folded in the earlier RFC 822 specification. |
| RFC 2361 | 1998 | An informal document describing the WAVE and AVI Codec Registries and how to represent them as a Media Type. |
| RFC 3676 | 2004 | Describes the text/plain format and DelSp parameters. Helps to cure incorrect line wrapping when displaying plain text documents. |
| RFC 4735 | 2006 | Example Media Types for Use in Documentation. |
| RFC 6657 | 2012 | Update to MIME specifications regarding the default "charset" Parameter Handling in Textual Media Types. Updates the specifications in RFC 2046. |
| RFC 6713 | 2012 | The 'application/zlib' and 'application/gzip' Media Types. |
| RFC 6838 | 2013 | Media Type Specifications and Registration Procedures. Describes aspects of the Top-Level-Type specifier & registration process. |
| RFC 6839 | 2013 | Additional Media Type Structured Syntax Suffixes. |
| RFC 7303 | 2014 | XML Media Types. |
| RFC 7519 | 2015 | JSON Web Token. |
| RFC 7464 | 2015 | JavaScript Object Notation (JSON) Text Sequences. |
| RFC 8091 | 2017 | A Media Type Structured Syntax Suffix for JSON Text Sequences. |
| RFC 8081 | 2017 | The "font" Top-Level-Type. |
| RFC 8392 | 2018 | CBOR Web Token (CWT). |
| RFC 8742 | 2020 | Concise Binary Object Representation (CBOR) Sequences. |
| RFC 9052 | 2022 | CBOR Object Signing and Encryption (COSE)Structures and Process. |
| RFC 8949 | 2020 | A description of the Concise Binary Object Representation format. |
| RFC 8878 | 2021 | Z-standard Compression and the 'application/zstd' Media Type. |
| RFC 9512 | 2024 | YAML Media Type. |
| RFC 8417 | 2018 | Security Event Token. |
The descriptive RFC documents have been continuously updated and replaced by more recent versions that extend and improve the capabilities. Search the IETF RFC repository for the older versions of the documents if you need them.
Do You Want To Know More?
Media Types are important in the context of an IP studio workflow. Without them, the incoming content must be inspected carefully to determine the type and format. Any misinterpretation will cause serious problems downstream.
The IANA maintains many registries which are useful when constructing workflows. Access the top-level index to the IANA registry here:
https://www.iana.org/protocols
Likewise, the IETF maintains a collection of RFC documents. Their Datatracker web site clearly indicates the provenance and relationships between them. It is very easy to walk through the RFC pages by clicking on the links to updated specifications. The front page of the IETF Datatracker is here:
https://datatracker.ietf.org/
Enter an RFC number to call up the corresponding page. RFC documents are all free to access in a variety of formats. I find the PDF version is the most convenient.
These Appendix articles contain additional information you may find useful:
Supported by
You might also like...
Standards: Video - Advanced Video Coding (AVC)
AVC remains one of the most widely deployed video codecs in the world, but navigating its profiles, levels and signaling mechanisms is far from straightforward.
Network Traffic Engineering: RIST & SRT - The Success Of ARQ Based Protocols
IP networks are inherently unreliable. We kick off this series on IP Network Traffic Engineering with a look at how RIST and SRT give broadcast engineers user-configurable control over the latency-versus-reliability trade-off for real-time media streaming.
Standards: Video - Standards For Video Coding
From 4K to 32K, the demand for ever-larger video formats is pushing codec technology to its limits. This guide surveys the landscape of video coding standards – from legacy MPEG formats to AI-driven neural network compression – to help navigate the choices sha…
Broadcast Standards 2026 – Video Coding
Video coding was developed to deliver video conferencing services over low-bandwidth modem connections, but modern demands for ever-larger video formats are pushing codec technology to its limits.
Network Traffic Engineering: Part 1
IP networks are inherently unreliable. They always have been – it is literally designed in as a feature.