Audio-Video Transport WG Y Lim, D. Singer Internet Draft net&tv, Apple Computer Document: draft-lim-mpeg4-mime-01 November 2002 Category: Expires April 2003 MPEG reference: N4712 MIME Type Registration for MPEG-4 Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026 [1]. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract This document defines the standard MIME types associated with MP4 files and various MPEG-4 streams. This also document recommended use of registered MIME types according to the type of contents. Conventions used in this document In examples, "C:" and "S:" indicate lines sent by the client and server respectively. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC-2119 [2]. Table of Contents 1. Introduction...................................................2 2. General rules of using top level MIME types....................3 2.1 Usage of "video"...........................................3 2.2 Usage of "audio"...........................................3 2.3 Usage of "application".....................................3 3. MIME types for MPEG-4 contents.................................3 Lim and Singer April 2003 [Page 1] MIME Type Registration for MPEG-4 November 2002 3.1 MIME types for MP4 file....................................3 3.2 MIME types for elementary streams..........................4 3.3 MIME types for IOD.........................................4 4. IANA Considerations............................................4 4.1 MP4 file with visual presentation..........................4 4.2 MP4 file without visual presentation.......................5 4.3 MP4 file without visual presentation.......................6 4.4 IOD in binary format.......................................7 4.5 IOD in textual format......................................7 5. Security Considerations........................................8 6. Acknowledgments................................................9 7. References.....................................................9 8. Author's Addresses.............................................9 1. Introduction This document describes standard definition of MIME types associated with MPEG-4 contents and the guidelines of using them. This document only defines general MIME types not belong to specific RTP payload formats carrying MPEG-4 contents. Payload format specific MIME types will be defined in each payload format specifications. MPEG-4, ISO/IEC 14496, is a standard designed for the representation and delivery of multimedia information over a variety of transport protocols[3]. It includes interactive scene management, visual and audio representations as well as systems functionality like multiplexing, synchronization, and an object descriptor framework. The historical approach for MPEG data is to declare it under "video", and this approach is followed for ISO/IEC 14496. In addition some MIME types are defined under "audio" and "application" for the streams not belonging to visual presentation. Amendment 1 of the ISO/IEC 14496 standard (also known as version 2) includes a standard file type for encapsulating ISO/IEC 14496 data. This file type can be used in a number of ways: perhaps the most important are its use as an interchange format for ISO/IEC 14496 data, its use as a content-download format, and as the format read by streaming media servers. These first two uses will be greatly facilitated if there is a standard MIME type for serving these files (e.g. over HTTP). The ISO/IEC 14496 standard is broad, and therefore the type of data that may be in such a file can vary. In brief, simple compressed video and audio (using a number of different compression algorithms) can be included; interactive scene information; meta-data about the presentation; references to ISO/IEC 14496 media streams outside the file and so on. Different top-level MIME types are used to identify the type of the contents in the file. Lim and Singer April 2003 [Page 2] MIME Type Registration for MPEG-4 November 2002 2. General rules of using top level MIME types 2.1 Usage of "video" "video" MUST be used for MPEG-4 Visual streams (i.e. video as defined in ISO/IEC 14496-2 (Streamtype = 4) and/or graphics as defined in ISO/IEC 14496-1 (Streamtype = 3)) or MPEG-4 Systems streams that convey information needed for an audio/visual presentation. 2.2 Usage of "audio" "audio" MUST be used for MPEG-4 Audio streams (ISO/IEC 14496-3) (Streamtype = 5)) or MPEG-4 Systems streams that convey information needed for an audio only presentation. 2.3 Usage of "application" "application" MUST be used for MPEG-4 Systems streams (ISO/IEC14496-1 (all other StreamType values)) that serve other purposes than audio/visual presentation, e.g. in some cases when MPEG-J streams are transmitted. 3. MIME types for MPEG-4 contents 3.1 MIME types for MP4 file Amendment 1 of the ISO/IEC 14496 standard (also known as version 2) includes a standard file type for encapsulating ISO/IEC 14496 data. This file type can be used in a number of ways: perhaps the most important are its use as an interchange format for ISO/IEC 14496 data, its use as a content-download format, and as the format read by streaming media servers. These first two uses will be greatly facilitated if there is a standard MIME type for serving these files (e.g. over HTTP). The ISO/IEC 14496 standard is broad, and therefore the type of data that may be in such a file can vary. In brief, simple compressed video and audio (using a number of different compression algorithms) can be included; interactive scene information; meta-data about the presentation; references to ISO/IEC 14496 media streams outside the file and so on. The MIME types to be assigned to MP4 files are selected based on the contents. Basic guidelines of selecting MIME types are as follows: a) if the file contains neither visual nor audio presentations, but only for example MPEG-J or MPEG-7, use application/mp4 b) for all other files, including those which have MPEG-J etc. in Lim and Singer April 2003 [Page 3] MIME Type Registration for MPEG-4 November 2002 addition to video or audio streams, video/mp4 should be used, although: c) for files with audio but no visual aspect, including those which have MPEG-J etc. in addition to audio streams, audio/mp4 may be used. In either case, these indicate files conforming to the "MP4" specification (ISO/IEC 14496-1:2000, systems file format). 3.2 MIME types for elementary streams When a visual ISO/IEC 14496 ES is served (e.g. over HTTP or otherwise) and must be identified by a MIME type, the type "video/MPEG4-visual" MUST be used. This MIME type may require optional parameters to carry all necessary information to configure a receiver: therefore no further meta-information (such as that defined by the MP4 file format or by the ISO/IEC 14496 Object Descriptor framework) has to be provided in the data, and the data itself merely represents the media content.. The format of the bit-stream, including timing etc., is defined in ISO/IEC 14496-2. The payload names used in an RTPMAP attribute within SDP, to specify the mapping of payload number to its definition, also come from the MIME namespace. Each of the RTP payload mappings defined above has a distinct name. It is recommended that visual streams be identified under "video", and audio streams be identified under "audio", and otherwise "application" be used. 3.3 MIME types for IOD In some cases, the initial object descriptor needs to be identified with a MIME type. In this case, the type "applications/mpeg4-iod" shall be supported, and the type "application/mpeg4-iod-xmt" may be supported. In the latter case, the IOD will be described in an XMT textual format. The InitialObjectDescriptor is defined in sub-clause 8.6.3.1 of ISO/IEC 14496-1, and its XMT format is defined in ISO/IEC 14496-1:2001 PDAM 2. 4. IANA Considerations This section describes the MIME types and names to be used with various MPEG-4 contents. Sections from 4.1 to 4.5 register five new MIME types. 4.1 MP4 file with visual presentation MIME media type name: video MIME subtype name: mp4 Lim and Singer April 2003 [Page 4] MIME Type Registration for MPEG-4 November 2002 Required parameters: none Optional parameters: none Encoding considerations: base64 generally preferred; files are binary and should be transmitted without CR/LF conversion, 7-bit stripping etc. Security considerations: See section 5 of RFC XXXX Interoperability considerations: A number of interoperating implementations exist within the ISO/IEC 14496 community; and that community has reference software for reading and writing the file format. Published specification: ISO/IEC 14496-1:2001. Applications: Multimedia Additional information: Magic number(s): none File extension(s): mp4 and mpg4 are both declared at Macintosh File Type Code(s): mpg4 is registered with Apple Person to contact for info: David Singer, singer@apple.com Intended usage: Common Author/Change controller: David Singer, ISO/IEC 14496 file format chair 4.2 MP4 file without visual presentation MIME media type name:audio MIME subtype name: mp4 Required parameters: none Optional parameters: none Encoding considerations: base64 generally preferred; files are binary and should be transmitted without CR/LF conversion, 7-bit stripping etc. Security considerations: See section 5 of RFC XXXX Interoperability considerations: A number of interoperating implementations exist within the ISO/IEC 14496 community; and that Lim and Singer April 2003 [Page 5] MIME Type Registration for MPEG-4 November 2002 community has reference software for reading and writing the file format. Published specification: ISO/IEC 14496-1:2001. Applications: Multimedia Additional information: Magic number(s): none File extension(s): mp4 and mpg4 are both declared at Macintosh File Type Code(s): mpg4 is registered with Apple Person to contact for info: David Singer, singer@apple.com Intended usage: Common Author/Change controller: David Singer, ISO/IEC 14496 file format chair 4.3 MP4 file without visual presentation MIME media type name:application MIME subtype name: mp4 Required parameters: none Optional parameters: none Encoding considerations: base64 generally preferred; files are binary and should be transmitted without CR/LF conversion, 7-bit stripping etc. Security considerations: See section 5 of RFC XXXX Interoperability considerations: A number of interoperating implementations exist within the ISO/IEC 14496 community; and that community has reference software for reading and writing the file format. Published specification: ISO/IEC 14496-1:2001. Applications: Multimedia Additional information: Magic number(s): none File extension(s): mp4 and mpg4 are both declared at Macintosh File Type Code(s): mpg4 is registered with Apple Lim and Singer April 2003 [Page 6] MIME Type Registration for MPEG-4 November 2002 Person to contact for info: David Singer, singer@apple.com Intended usage: Common Author/Change controller: David Singer, ISO/IEC 14496 file format chair 4.4 IOD in binary format MIME media type name: application MIME subtype name: mpeg4-iod Required parameters: none Optional parameters: none Encoding considerations: base64 generally preferred; files are binary and should be transmitted without CR/LF conversion, 7-bit stripping etc. Security considerations: See section 5 of RFC XXXX Interoperability considerations: A number of interoperating implementations exist within the ISO/IEC 14496 community; and that community has reference software for reading and writing the file format. Published specification: ISO/IEC 14496-1:2001 Applications: Multimedia Additional information: Magic number(s): none File extension(s): none mp4 and mpg4 are both declared at Macintosh File Type Code(s): mpg4 is registered with Apple Person to contact for info: David Singer, singer@apple.com Intended usage: Common Author/Change controller: David Singer, ISO/IEC 14496 file format chair 4.5 IOD in textual format MIME media type name: application Lim and Singer April 2003 [Page 7] MIME Type Registration for MPEG-4 November 2002 MIME subtype name: mpeg4-iod-xmt Required parameters: none Optional parameters: none Encoding considerations: none Security considerations: See section 5 of RFC XXXX Interoperability considerations: A number of interoperating implementations exist within the ISO/IEC 14496 community; and that community has reference software for reading and writing the file format. Published specification: ISO/IEC 14496-1:2001 AMD2. Applications: Multimedia Additional information: Magic number(s): none File extension(s): mp4 and mpg4 are both declared at Macintosh File Type Code(s): mpg4 is registered with Apple Person to contact for info: David Singer, singer@apple.com Intended usage: Common Author/Change controller: David Singer, ISO/IEC 14496 file format chair 5. Security Considerations RTP packets using the payload formats referred to in this specification are subject to the security considerations discussed in the RTP specification [4]. This implies that confidentiality of the media streams is achieved by encryption. Because the data compression used with this payload format is applied end-to-end, encryption may be performed on the compressed data so there is no conflict between the two operations. The packet processing complexity of this payload type does not exhibit any significant non-uniformity in the receiver side to cause a denial-of-service threat. However, it is possible to inject non-compliant MPEG streams (Audio, Video, and Systems) to overload the receiver/decoder's buffers which might compromise the functionality of the receiver or even crash it. This is especially true for end-to-end systems like MPEG where the buffer models are precisely defined. Lim and Singer April 2003 [Page 8] MIME Type Registration for MPEG-4 November 2002 ISO/IEC 14496 Systems supports stream types including commands that are executed on the terminal like OD commands, BIFS commands, etc. and programmatic content like MPEG-J (Java(TM) Byte Code) and ECMASCRIPT. It is possible to use one or more of the above in a manner non-compliant to MPEG to crash or temporarily make the receiver unavailable. Authentication mechanisms can be used to validate of the sender and the data to prevent security problems due to non-compliant malignant ISO/IEC 14496 streams. A security model is defined in ISO/IEC 14496 Systems streams carrying MPEG-J access units which comprises Java(TM) classes and objects. MPEG-J defines a set of Java APIs and a secure execution model. MPEG- J content can call this set of APIs and Java(TM) methods from a set of Java packages supported in the receiver within the defined security model. According to this security model, downloaded byte code is forbidden to load libraries, define native methods, start programs, read or write files, or read system properties. Receivers can implement intelligent filters to validate the buffer requirements or parametric (OD, BIFS, etc.) or programmatic (MPEG-J, ECMAScript) commands in the streams. However, this can increase the complexity significantly. 6. Acknowledgments This draft has benefited greatly by contributions from many people, including Mike Coleman, Jean-Claude Duford, Viswanathan Swaminathan, Peter Westerink, Carsten Herpel, Olivier Avaro, Paul Christ, Zvi Lifshitz, and many others. Their insight, foresight, and contribution is gratefully acknowledged. Little has been invented here by the author; this is mostly a collation of greatness that has gone before. 7. References [1]Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [2]Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997 [3]ISO/IEC International Standard 14496 (MPEG-4); "Information technology - Coding of audio-visual objects", January 2000 [4]H. Schulzrinne, et. al., "RTP : A Transport Protocol for Real-Time Applications", IETF RFC 1889, January 1996. 8. Author's Addresses Lim and Singer April 2003 [Page 9] MIME Type Registration for MPEG-4 November 2002 Young-Kwon LIM net&tv Inc. 5th Floor Himart Building 1007-46 Sadang-Dong Dongjak-Gu Seoul, 156-090, Korea E-mail : young@netntv.co.kr TEL : +82-2-581-2305 David Singer Apple Computer, Inc. One Infinite Loop, MS:302-3MT Cupertino CA 95014 USA Email: singer@apple.com Tel: +1 408 974 3162 Lim and Singer April 2003 [Page 10]