Easy-Micro

TECHNIQUE Technique Vidéo
Langage SMIL

Streaming et langage SMIL

Le langage SMIL (Synchronized Multimedia Integration Language) permet de réaliser un streaming avec plusieurs applications.

Pour réaliser un streaming avec plusieurs applications (comme une vidéo avec un diaporama ou des sous titres), il faut utiliser le langage SMIL (Synchronized Multimedia Integration Language).

Ce langage, basé sur le langage XML, est issu d'une recommandation du W3C (www.w3.org/AudioVideo) de juin 1998.

Il existe en effet autant de technique de streaming que de type de format vidéo. Suivant le format de votre vidéo, il vous faudra utiliser des techniques différentes.

Le langage SMIL permet l'intégration et la syncronisation des différents média. L'ensemble des médias sont référencés dans un seul document qui porte l'extension smi ou smil (comme monfichier.smil). Mais le langage SMIL n'est pas lu par tous les lecteurs vidéo. Seul les lecteurs RealPlayer de Real Networks et QuickTime de Apple supportent le langage SMIL.

Les exemples SMIL sont inspirés du site Real and Smil.

Le head du document SMIL permet de définir les emplacements des différents médias (avec les balises REGION). La scène est décrite avec la balise ROOT-LAYOUT (une scène de 250X275). Le body permet de définir les sources et la synchronisation des éléments qui composent ce document SMIL. La balise PAR (pour parallèle) permet de spécifier que les différents média seront joués simultanément (sinon balise SEQ). La balise FILL et son paramètre FREEZE indique que le média reste affiché après l'animation. La synchronisation du texte est défini dans un fichier RealText externe (montexte.rt) appelé via la balise TEXTSTREAM.
Exemple de document SMIL (version 1) pour le lecteur RealPlayer (smil_texte.smi) :
<smil>
<head>
<meta name="title" content="Exemple Easy-Micro de fichier SMIL">
<meta name="author" content="Easy-micro.com">
<meta name="copyright" content="(c)2005 Easy-Micro.org">
<layout>
   <root-layout width="250" height="275" background-color="#c0c0c0" >
   <region id="image" left="4" top="210" height="60" width="120" z-index="1">
   <region id="image1" left="126" top="210" height="60" width="120" z-index="2">
   <region id="region_text" left="5" top="5" height="200" width="240" z-index="3">
</layout>
</head>
<body>
<par>
   <textstream src="montexte.rt" region="region_text" fill="freeze">
   <a href="https://www.easy-micro.com" show="new">
   <img src="images/monimage.gif" region="image" fill="freeze"></a>
   <a href="https://www.easy-micro.com" show="new">
   <img src="images/monimage.gif" region="image1" fill="freeze"></a>
</par>
</body>
</smil>
Voici le contenu de ce fichier RealText (montexte.rt):
<window type="generic" height="200" width="240" duration="8" bgcolor="with">
<center>
<font size="5" face="arial" color="#993300"><b>Le langage SMIL</b></font><br>
<time begin="2">
<b><a href="https://www.easy-micro.com">www.easy-micro.com</a></b><br>
<time begin="3">vous explique comment réaliser<br>
<time begin="4">un diaporama avec le langage SMIL<br>
<time begin="6"><a href="command:play()" target="_player"><b>Play again?</b></a>
</center>
</window>

La taille de la fenêtre (balise WINDOW) est la même que celle définie dans le document SMIL (200X240). La durée d'apparition du texte (balise DURATION) exprimé en seconde, est sensiblement supérieure à la dernière balise TIME. La première ligne de texte apparaitra immédiatement tandis que les autres lignes apparaissent au bout de quelques secondes exprimée via la balise TIME et son paramètre BEGIN.
Si vous voulez que le texte disparaisse (comme avec des sous-titres), il faut rajouter une balise <CLEAR/> entre la balise TIME et le texte de chaque ligne. Exemple:

<time begin="3"><clear/>un sous-titre
<time begin="4"><clear/>un autre sous-titre
Attention: Dans le cas ou vous voulez faire dans votre fichier SMIL des liens absolus vers des fichiers vidéos ou RealText qui se trouvent sur un serveur de streaming Real (Helix Universal Server, donc), il faut utiliser, à la place du protocole habituel HTTP, le protocole RTSP (Real Time Streaming Protocol). Exemple:
<textstream src="rtsp://helixserver.exemple.com/montexte.rt" region="region_text" fill="freeze">

> Voir un exemple de SMIL
avec défilement de texte et effet de transition d'images (nécessite RealPlayer)

Le défilement du texte est obtenu via le paramètre TYPE="SCROLLINGNEWS" attribué à la balise WINDOW d'un fichier RealMediaText externe (montexte2.rt). Les effets de transition d'images sont réalisés dans un fichier RealPix externe (image.rp) via la balise CROSSFADE et appelé depuis le fichier SMIL avec la balise REF à la place de la balise TEXTSTREAM. Pour plus d'infos sur le SMIL, découvrez l'excellent site Real and Smil dont une partie des exemples de cette page sont inspirés.

< Page précédente TECHNIQUE VIDéO Page suivante >