For developers outside the multimedia world, the Synchronized Multimedia Integration Language, or SMIL, may be something of an obscure technology. But at least among a few key players, SMIL has begun to establish itself as an important approach to presenting multimedia online.
SMIL support has crept into technologies backed by Adobe, Microsoft, and perhaps most prominently, media delivery leader Real Networks. A wide variety of smaller vendors have begun to provide SMIL authoring tools and players as well.
In days to come, as support for the current 2.0 specification grows, working with SMIL could become a standard strategy for any developer whose work requires some form of multimedia asset control. If the growing roster of tool creators is any indication, building presentations in SMIL should become easier as well.
SMIL history and overview
SMIL has been in development since March 1997, when the World Wide Web Consortium (W3C) established a working group on synchronized multimedia.
SMIL is an XML-based language that allows authors to write interactive multimedia presentations without using multimedia management tools such as Macromedia Director. Authors can describe the timing of multimedia presentations, associate hyperlinks with media objects and define the layout of the presentation onscreen. The SMIL 2.0 spec, for its part, is a series of markup modules defining semantics and XML syntax for certain SMIL functions.
The W3C released the first version of SMIL in November 1997, attracting a moderate level of industry attention, including some support from Real, Adobe, and Microsoft.
With the 2.0 version of SMIL, released in August 2001, these companies remain on board; in addition, more than a dozen independently-crafted SMIL authoring platforms have arrived on the market. According to W3C documents, SMIL 2.0 has two main design goals:
- To further define an XML-based language that allows authors to write interactive multimedia presentations.
- To allow re-use of SMIL 2.0 syntax and semantics in other XML-based languages, notably integrating timing into XHTML and Scalable Vector Graphics (SVG). (SVG is a language for describing two-dimensional graphics in XML.)
One example of how the group met the second goal is Microsoft's XHTML + SMIL profile, which integrates SMIL directly with XHTML and Cascading Style Sheets. While technically not part of W3C's SMIL 2.0 recommendation, they're linked; one of the implementations used to validate SMIL 2.0 was based on the XHTML + SMIL profile.
Arguably, the most dedicated and visible vendor in the SMIL arena is Real Networks, whose RealOne player supports playback of SMIL presentations. To support SMIL authoring, Real released its own XML/SMIL authoring tool, SMILGen, in September 2001.
Microsoft added a subset of SMIL support to Internet Explorer starting with version 5.0. The current version of IE, 6.0, has extended its SMIL support. IE 6.0 allows developers to:
- Use SMIL filters and effects (such as fading an image)
- Transition between text or media elements by using wipes
- Apply a graduated color background to an element, controlling the timing for each
Another SMIL-friendly vendor is Adobe, whose visual authoring program for Web designers, GoLive Studio, offers both SMIL and QuickTime editors. GoLive is designed to be a highly comprehensive package; the fact that SMIL is included as a standard feature suggests the extent to which it has become an accepted approach to media production.
The wireless industry, meanwhile, has taken on SMIL as a means of enriching its current text-based messaging technology. Many industry players expect to see the highly popular Short Messaging Service (SMS) evolve into Multimedia Messaging Service (MMS) as wireless networks adopt second- and third-generation technologies. Using SMIL encoding and SMIL-based players, MMS would add text, images, audio, and eventually video to SMS.
Tools and media players
In addition to large industry groups and vendors, smaller players are leaping into the SMIL support industry.
Netherlands-based Oratrix Development, for example, produces both a generic SMIL editor (GriNS Pro Editor for SMIL 2.0) and a SMIL editor targeted specifically at RealNetworks' RealOne platform (GriNS Editor for Real One). The Real editor offers integrated RealMedia conversion or direct import of RealMedia; it also provides integrated publishing for RealOne and optional upload to RealServer.
Oratrix also offers its own SMIL player, the GriNS Player for SMIL 2.0. The player includes extensions that allow migration of examples with SVG and XHTML + SMIL/HTML + TIME.
Another entrant is Toronto-based Confluent Technologies, which publishes a SMIL authoring tool called Fluition. Fluition can be bought separately, but also comes bundled with Real's RealPlayer and RealProducer apps.
The Fluition API Edition for Windows, released in April 2001, is an ActiveX DLL set that allows developers to integrate SMIL code into applications that support ActiveX controls.
London-based Ovate takes a different approach. Its Smibase product is a server-installed software suite that enables creation and management of synchronized multimedia presentations. Smibase is a database-driven SMIL content management system.
Smibase creators designed the product to make SMIL content more accessible; the suite's authors had previously found that their clients could do little to upgrade or reuse SMIL code without highly specialized training.
Yet another participant in SMIL development is Israeli toolmaker InterObject, which has developed a SMIL 2.0 player running over standard Windows platforms along with the PocketPC. InterObject's player includes an easily-modified skin GUI based on User Interface Markup Language (UIML).
Comparing SMIL approaches
Without attempting to provide an overall primer on the use of SMIL, which would take up far more than the space allotted here, there are a few basic approaches that distinguish some of the major deployments. Perhaps the most important are those promoted by RealNetworks and Microsoft.
As previously noted, perhaps the most extensive implementation of SMIL 2.0 comes from Real Networks. RealOne Player supports the SMIL 2.0 Language Profile, which incorporates most, though not all, of the modules supported by SMIL.
In addition to supporting most standard SMIL modules, RealNetworks has developed several of its own extensions to SMIL. To use these extensions, developers must follow the standard XML declaration, defining namespaces with a specialized line that adds a Real namespace (in this example,
<smil xmlns= "http://www.w3.org/2001/SMIL20/Language" xmlns:rn = "http://features.real.com/2001/SMIL20/Extensions">
Here's an example of the RealNetworks
backgroundOpacity attribute, which follows this convention:
The prefix is user-defined, though the attribute name is predefined. The namespace must therefore use the same user-defined prefix as the attribute.
Microsoft's HTML+TIME adds timing and multimedia support to HTML pages, using a short list of SMIL-based XML elements and attributes. To add timing to an HTML document, developers add new attributes to existing HTML elements. The new elements were created to simplify adding media to these HTML pages.
To use any of the HTML+TIME elements, developers must declare the XML namespace
t in the HTML tag:
To use the namespace, developers preface HTML+TIME elements with
t, then import the
time2 behavior into the namespace as follows:
<?IMPORT namespace="t" implementation="#default#time2">
Other than these two vendors, most authoring tool and player developers seem to differ primarily in whether they're focused exclusively on full desktop deployments of SMIL, or paying at least some attention to the basic SMIL 2.0 subset that's used for smaller-footprint mobile devices.
Also, as wireless networks evolve, SMIL players focused on MMS deployments should introduce new considerations into SMIL authoring.
As SMIL's popularity grows, developers are branching out into tools and tactics borrowed from other coding environments. Independent projects adding power or functionality to SMIL include PerlySMIL, a tool that creates dynamic SMIL files using Perl, and Cheshire Cat, a project that integrates SMIL with industry standard multimedia authoring tool Macromedia Director.
Future projects bringing SMIL into other programming worlds seem likely, with Java technology-related projects an especially likely target:
- Soja, a Java-based SMIL 1.0 player already created by the French non-profit development house Helio
- Schmunzel SMIL 1.0 player created in Java technology by SunTREC Salzburg
- X-SMILES, a Java-based open browser supporting XML
As SMIL 2.0 adoption continues, Java technology projects embracing the 2.0 standard are almost certain to follow.
The already flourishing group of tools for SMIL is also likely to grow in coming months, as Web design specialists reach out for new multimedia options and multimedia houses continue to seek smoother Web delivery.
All told, it's looking like a promising year for SMIL. Developers who get involved now may shape the future of what could be a rich medium for enhancing multimedia on the Web.
- Get current information on SMIL activity within the World Wide Web Consortium at http://www.w3.org/TR/smil20/.
- To catch up on the XHTML+SMIL, visit http://www.w3.org/TR/XHTMLplusSMIL/.
- To learn more about Multimedia Messaging Service (MMS) options, and how this approach fits into mobile industry standards-development efforts, visit the 3rd Generation Partnership Project (3GPP) site at http://www.3gpp.org/.
- Get the latest on Internet Explorer 6.0 support for SMIL -- along with updates on other supported technologies -- from the Internet Explorer 6.0 feature description page.
- Get a closer look at User Interface Markup Language (UIML), an XML language for defining user interfaces.
- For more details on SVG, take a look at the developerWorks tutorial, Introduction to Scalable Vector Graphics (developerWorks, February 2002).
- You can find more details on the SMIL-related tools mentioned in this article at the following sites:
- Adobe GoLive (http://www.adobe.com/products/golive/main.html)
- Cheshire Cat (http://www.brennan.young.net/Comp/SMIL/CheshireCat.html)
- Confluent Technologies Fluition (http://www.fluition.com/)
- Helio Soja (http://www.helio.org/products/smil/)
- InterObject player (http://www.inobject.com/)
- Macromedia Director (http://www.macromedia.com/software/director/)
- Oratrix GRiNS (http://www.oratrix.com/)
- SMILGen SMIL Generation Tool from SourceForge (http://sourceforge.net/projects/smilgen/)
- Webiphany PerlySMIL (http://www.webiphany.com/perlysmil/)
- X-SMILES (http://www.x-smiles.org/)
- Find more XML resources on the developerWorks XML technology zone.
- Check out Rational Application Developer for WebSphere Software, an easy-to-use, integrated development environment for building, testing, and deploying J2EE applications, including generating XML documents from DTDs and schemas.
- Find out how you can become an IBM Certified Developer in XML and related technologies.
Dig deeper into XML on developerWorks
Get samples, articles, product docs, and community resources to help build, deploy, and manage your cloud apps.
Experiment with new directions in software development.
Software development in the cloud. Register today to create a project.
Evaluate IBM software and solutions, and transform challenges into opportunities.