RFC 4536 INFORMATIONAL MULTIMEDIA · MEDIA TYPES · SMIL

SMIL media types: The application/smil and application/smil+xml Media Types

Official MIME types for synchronized multimedia presentations.

On rfc-editor.org ↗
PUBLISHED
July 2006
AUTHORS
P. Hoschka
STREAM
IETF
SMIL VERSIONS COVERED
1.0, 2.0, 2.1
PRIMARY MIME TYPE
application/smil+xml
LEGACY MIME TYPE
application/smil (OBSOLETE)
COMMON FILE EXTENSIONS
.smil, .smi, .sml
SMIL 2.0 NAMESPACE
http://www.w3.org/2001/SMIL20/Language
DOI
10.17487/RFC4536

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                         P. Hoschka
Request for Comments: 4536                                           W3C
Category: Informational                                         May 2006


       The application/smil and application/smil+xml Media Types

Status of This Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document specifies the media type for versions 1.0, 2.0, and 2.1
   of the Synchronized Multimedia Integration Language (SMIL 1.0, SMIL
   2.0, SMIL 2.1).  SMIL allows integration of a set of independent
   multimedia objects into a synchronized multimedia presentation.

1.  Introduction

   The World Wide Web Consortium (W3C) has issued specifications that
   define versions 1.0 [1], 2.0 [2] and 2.1 [3] of the Synchronized
   Multimedia Integration Language (SMIL).  This memo provides
   information about the application/smil and application/smil+xml media
   types.

   The definition is based on RFC 3023, which defines the use of the
   "application/xml" media type [4].  Before using the
   "application/smil" or "application/smil+xml" media type, implementors
   must thus be familiar with [4].

2.  Synchronized Multimedia Integration Language

   SMIL allows integrating a set of independent multimedia objects into
   a synchronized multimedia presentation.  Using SMIL, an author can

   1. describe the temporal behavior of the presentation,
   2. describe the layout of the presentation on a screen,
   3. associate hyperlinks with media objects, and
   4. define conditional content inclusion/exclusion based on
      system/network properties.

3.  Registration Information

3.1.  Registration of MIME media type application/smil

   MIME media type name: application

   MIME subtype name: smil

   Required parameters: none

   Optional parameters:

      charset

         Same as charset parameter considerations of application/xml in
         RFC 3023.

      profile

         See Section 5 of this document.

   Encoding considerations:

      Same as encoding considerations of application/xml in RFC 3023

   Security considerations: See Section 6, "Security Considerations", of
   this document.

   Interoperability considerations:

      SMIL documents contain links to other media objects.  The SMIL
      player must be able to decode the media types of these media in
      order to display the whole document.  To increase
      interoperability, SMIL has provisions for including alternate
      versions of a media object in a document.

   Published specification: See [1], [2], and [3]

   Applications which use this media type:

      SMIL players and editors
   Additional information:

      Semantics of fragment identifiers in URIs: The SMIL media type
      allows a fragment identifier to be appended to a URI pointing to a
      SMIL resource (e.g., http://www.example.com/test.smil#foo).  The
      semantics of fragment identifiers for SMIL resources are defined
      in the SMIL specification.

   Magic number(s):

      There is no single initial byte sequence that is always present
      for SMIL files.  However, Section 4 of this document gives some
      guidelines for recognizing SMIL files.

   File extension(s): .smil, .smi, .sml

   NOTE: On the Windows operating system and the Macintosh platform, the
   ".smi" extension is used by other formats.  To avoid conflicts, it is
   thus recommended to use the extension ".smil" for storing SMIL files
   on these platforms.

   Macintosh File Type Code(s): "TEXT", ".SMI", "SMIL"

   Object Identifier(s) or OID(s): none

   Person & email address to contact for further information:

   The author of this memo.

   Intended usage: OBSOLETE

   Author/Change controller:

   The SMIL specification is a work product of the World Wide Web
   Consortium's SYMM Working Group.

   The W3C has change control over the specification.

3.2.  Registration of MIME media type application/smil+xml

   MIME media type name: application

   MIME subtype name: smil+xml

   Required parameters: See registration of application/smil.

   Optional parameters: See registration of application/smil.

   Encoding considerations: See registration of application/smil.

   Security considerations: See Section 6, "Security Considerations", of
   this document

   Interoperability considerations: See registration of
   application/smil.

   Published specification: See registration of application/smil.

   Applications which use this media type: See registration of
   application/smil.

   Additional information: See registration of application/smil.

   Magic number(s): See registration of application/smil.

   File extension(s): See registration of application/smil.

   Macintosh File Type Code(s): See registration of application/smil.

   Object Identifier(s) or OID(s): See registration of application/smil.

   Person & email address to contact for further information: See
   registration of application/smil.

   Intended usage: COMMON

   Author/Change controller: See registration of application/smil.

4.  Recognizing SMIL Files

   All SMIL files will have the string "<smil" near the beginning of the
   file.  Some will also begin with an XML declaration that begins with
   "<?xml", though that alone does not indicate a SMIL document.

   All SMIL 2.0 files must include a declaration of the SMIL 2.0
   namespace.  This should appear shortly after the string "<smil", and
   should read 'xmlns="http://www.w3.org/2001/SMIL20/Language"'.

   All SMIL 2.1 files must include a declaration of a SMIL 2.1
   namespace, appearing shortly after the string "<smil".  The namespace
   string depends on the language profile.  Please refer to the SMIL 2.1
   specification for the definition of the relevant namespace names.

5.  The "profile" Optional Parameter

   This parameter is meant to be used in MIME media-type-based content
   negotiation (such as that done with the HTTP "Accept" header) to
   negotiate for a variety of SMIL-based languages.  It is modelled
   after the "profile" parameter in the application/xhtml+xml MIME type
   registration [5] and is motivated by very similar considerations.

   The parameter is intended to be used only during content negotiation.
   It is not expected that it be used to deliver content, or that origin
   web servers have any knowledge of it (though they are welcome to).
   It is primarily targeted for use on the network by proxies in the
   HTTP chain that manipulate data formats (such as transcoders).

   The value of the profile attribute is a URI that can be used as a
   name to identify a language.  Though the URI need not be resolved in
   order to be useful as a name, it could be a namespace, schema, or
   language specification.

   For example, user agents supporting only SMIL Basic (see
   http://www.w3.org/TR/smil20/smil-basic.html) currently have no
   standard means to convey their inability to fully support SMIL 2.0.
   While SMIL 2.0 Basic user agents are required to parse the full SMIL
   2.0 language, there is potentially a substantial burden in receiving
   and parsing document content that will not be presented to the user,
   since its functionality is not included in SMIL Basic.

   In the future, the functionality afforded by this parameter will also
   be achievable by the emerging work on a protocol to transfer
   Composite Capability/Preferences Profiles (CC/PP) descriptions [6].
   It is suggested that the "profile" parameter be used until the CC/PP
   protocol work has been finalized.

   An example use of this parameter as part of a HTTP GET transaction
   would be:

        Accept: application/smil+xml;
           profile="http://www.w3.org/2001/SMIL20/HostLanguage"

6.  Security Considerations

   SMIL documents contain a construct that allows "infinite loops".
   This is indispensable for a multimedia format.  However, SMIL clients
   should foresee provisions such as a "stop" button that lets users
   interrupt such an "infinite loop".

   As with HTML, SMIL documents contain links to other media (images,
   sounds, videos, text, etc.), and those links are typically followed
   automatically by software, resulting in the transfer of files without
   the explicit request of the user for each one.  The security
   considerations of each linked file are those of the individual
   registered types.

   The SMIL language contains "switch" elements.  SMIL provides no
   mechanism that ensures that the media objects contained in a "switch"
   element provide equivalent information.  An author knowing that one
   SMIL player will display one alternative of a "switch" and another
   will display a different part can put different information in the
   two parts.  While there are legitimate use cases for this, it also
   gives rise to a security consideration: The author can fool viewers
   into thinking that the same information was displayed when in fact it
   was not.

   In addition, all of the security considerations of RFC 3023 also
   apply to SMIL.

7.  Normative References

   [1]  "Synchronized Multimedia Integration Language (SMIL) 1.0
        Specification", W3C Recommendation REC-smil-19980615,
        http://www.w3.org/TR/1998/REC-smil/, July 1998.

   [2] "Synchronized Multimedia Integration Language (SMIL 2.0) -
        [Second Edition]", W3C Recommendation,
        http://www.w3.org/TR/2005/REC-SMIL2-20050107/, January 2005.

   [3] "Synchronized Multimedia Integration Language (SMIL 2.1)", W3C
        Recommendation, http://www.w3.org/TR/2005/REC-SMIL2-20051213/,
        December 2005.

   [4]  Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC
        3023, January 2001.

8.  Informative References

   [5]  Baker, M. and P. Stark, "The 'application/xhtml+xml' Media
        Type", RFC 3236, January 2002.

   [6]  H. Ohto, J. Hjelm, G. Klyne, M. Butler, L. Tran, F. Reynolds, C.
        Woodrow "Composite Capability/Preferences Profiles (CC/PP):
        Structure and Vocabularies 1.0", W3C Recommendation
        http://www.w3.org/TR/CCPP-struct-vocab/, January 2004.

Author's Address

   Philipp Hoschka
   W3C/ERCIM
   2004, route des Lucioles - B.P. 93
   06902 Sophia Antipolis Cedex
   FRANCE

   EMail: ph@w3.org

Full Copyright Statement

   Copyright (C) The Internet Society (2006).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).

AI ELI5

On this page
PROBLEMThe Synchronized Multimedia Integration Language (SMIL) files have no registered MIME types, so browsers and servers do not know how to handle them or which player to use.
MECHANISMRFC 4536 registers two MIME types: application/smil (for SMIL documents) and application/smil+xml (for XML-based SMIL), covering versions 1.0, 2.0 and 2.1 of the specification.
WHY IT MATTERSServers can now send SMIL files with the correct content type, and SMIL players can be registered in the operating system to open these files. The registration enables content negotiation between SMIL-aware and non-SMIL-aware clients.

§1What SMIL Is

The Synchronized Multimedia Integration Language (SMIL) is a language, defined by the World Wide Web Consortium (W3C), that combines separate multimedia objects—such as video, audio, images, and text—into a single synchronized presentation. A SMIL document describes when each piece plays, how it is positioned on the screen, what hyperlinks attach to it, and which pieces to include or exclude based on system capabilities.

RFC 4536 registers official MIME media types for SMIL versions 1.0, 2.0, and 2.1, so that servers, browsers, and players can correctly identify and handle SMIL files.

SMIL files are scripts that say: play this video here, then show this picture there, and at the same time play this audio. Instead of a person directing the play, a computer reads the SMIL script and makes it happen.

§2Registered MIME Types

The RFC registers two MIME types:

  • application/smil is marked as OBSOLETE and covers SMIL 1.0 and 2.0.
  • application/smil+xml is marked as COMMON and covers SMIL 2.0, 2.1, and newer versions that use XML syntax.

Both types use the same optional parameters: charset (for character encoding) and profile (a URI identifying a specific SMIL dialect or profile). The profile parameter is intended for content negotiation, such as in HTTP Accept headers, to negotiate support for SMIL Basic (a subset of SMIL 2.0).

SMIL files get two official file-type names. One is old (for SMIL 1.0 and 2.0), and one is current (for newer versions). Both can optionally say what encoding they use and what features they need.

§3File Format and Recognition

SMIL files are XML documents, so they start with optional XML declarations and contain SMIL elements. All SMIL files begin with the string <smil near the start. SMIL 2.0 and 2.1 files declare a namespace URL (for example, xmlns='http://www.w3.org/2001/SMIL20/Language'), which helps identify which version of SMIL the file uses.

Common file extensions are .smil, .smi (though this collides with other formats on Windows and Mac), and .sml. On Macintosh systems, file type codes include 'TEXT', 'SMIL', and '.SMI'.

SMIL files are text that starts with <smil and looks like HTML but with special rules. They can have different file endings (.smil, .smi, .sml) and the computer recognizes them by looking inside.

§4The Profile Parameter

The optional 'profile' parameter lets clients and proxies negotiate which SMIL features are needed. A SMIL player that only supports SMIL Basic (a simplified subset of SMIL 2.0) can advertise this in an HTTP Accept header, for example: 'Accept: application/smil+xml; profile="http://www.w3.org/2001/SMIL20/HostLanguage"'. Proxies and transcoders can use this to decide whether to deliver or transcode a SMIL document.

This parameter is inspired by the same mechanism in the application/xhtml+xml media type and is intended for use during content negotiation, not for delivery. Origin servers are not required to understand or use it.

The profile parameter is like saying 'I can only play basic SMIL, not the fancy version.' Servers and proxies can use this to send you a simpler version if you ask for it.

§5Security Risks in SMIL

SMIL documents can define infinite loops, which is necessary for multimedia playback but allows a malicious author to create content that plays forever. SMIL players should provide a stop button or other controls so users can interrupt playback.

SMIL documents link to other media (images, sounds, videos, text). These links are typically followed automatically by SMIL players, so a malicious document can cause unwanted downloads without explicit user consent. Each linked media file carries its own security risks.

SMIL 'switch' elements can contain different alternatives for different players or systems. A switch does not guarantee that all alternatives present the same information, so a malicious author can show different content to different viewers while claiming to show the same thing.

Beyond these SMIL-specific concerns, all security considerations of RFC 3023 (XML Media Types) apply.

SMIL can cause problems if someone makes a file that loops forever, automatically downloads lots of stuff, or tricks different players into showing different pictures. SMIL players need safeguards, and users should be careful where they get SMIL files from.

§6References

[RFC3023]RFC 3023Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types", RFC 3023, January 2001.January 2001[RFC3236]RFC 3236Baker, M. and P. Stark, "The 'application/xhtml+xml' Media Type", RFC 3236, January 2002.January 2002
[W3C-SMIL-1.0]World Wide Web Consortium, "Synchronized Multimedia Integration Language (SMIL) 1.0 Specification", W3C Recommendation REC-smil-19980615, July 1998.
[W3C-SMIL-2.0]World Wide Web Consortium, "Synchronized Multimedia Integration Language (SMIL 2.0) - [Second Edition]", W3C Recommendation, January 2005.
[W3C-SMIL-2.1]World Wide Web Consortium, "Synchronized Multimedia Integration Language (SMIL 2.1)", W3C Recommendation, December 2005.