Voorbeeld ondertitels met een SMIL bestand

Terug naar Impuls Digitaal

Ook als je niet beschikt over Quicktime Pro kun je ondertiteling toevoegen aan een Quicktime bestand. Dat kan namelijk ook met behulp van SMIL.
In een SMIL bestand combineer je een Quicktime filmpje en een Quicktime Text track. De Quicktime player speelt beiden dan tegelijkertijd af.

Het maken van een Quicktime Text track gaat op dezelfde manier als hier beschreven. Je kunt ze ofwel handmatig maken, ofwel met Subtitle Workshop (of een ander tool) converteren van SRT -> Quicktime Text.

Het SMIL bestand is een XML-bestand dat je gewoon met een teksteditor (notepad of zo) kunt maken. De structuur is steeds hetzelfde, het enige dat verandert is:
  • de verwijzingen naar het videobestand
  • de verwijzing naar het bestand met de Quicktime Text track
  • de afmetingen van de video en de ondertitels.

Het SMIL bestand ziet er zo uit:
<smil xmlns:qt="http://www.apple.com/quicktime
/resources/smilextensions" qt:autoplay="true" qt:time-slider="true">
<head>
<meta name="title" content="Impuls Digitaal"/>
 <layout>
  <root-layout background-color="white" width="320" height="272"/>
  <region id="videoregion" top="0" left="0" width="320" height="240"/>
  <region id="textregion" top="240" left="0" width="320" height="32"/>
 </layout>
</head>
<body>
<par>
<!-- VIDEO -->
<video src="Impuls_Digitaal_Clip.mp4" 
   region="videoregion"/>
<!-- CAPTIONS -->
<textstream src="transcript.qt.txt" 
   region="textregion" 
   system-language="en" 
   system-captions="on" 
   title="NL" alt="NL"/>
</par>
</body>
</smil>
Dit bestand (Impuls_Digitaal_Clip.smil ) staat in dezelfde map op mijn server als (Impuls_Digitaal_Clip.mp4) en (transcript.qt.txt).
De afmetingen van de video stel je in bij:
<region id="videoregion" top="0" left="0" width="320" height="240"/>
De afmetingen en de plek van de ondertiteling stel je in bij:
<region id="textregion" top="240" left="0" width="320" height="32"/>
Hierbij is de waarde voor top altijd gelijk aan de hoogte (de waarde bij height) van de video. Je hoeft in het SMIL bestand nog geen rekening te houden met het eventueel tonen van de start/stop knoppen van Quicktime. Dat doe je pas bij het inplakken in een webpagina.

Dat ziet er dan zo uit:


De code voor dit voorbeeld ziet er als volgt uit:
<OBJECT classid='clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B'
  width="320" height="287"
  codebase='http://www.apple.com/qtactivex/qtplugin.cab'>
  <param name='src' value="http://gorissen.info/Pierre/video/Impuls_Digitaal/Impuls_Digitaal_Clip.smil">
  <param name='autoplay' value="false">
  <param name='controller' value="true">
  <param name='loop' value="false">
  <param name='type' value="video/quicktime">
  <EMBED src="http://gorissen.info/Pierre/video/Impuls_Digitaal/Impuls_Digitaal_Clip.smil"
  width="320" height="287" autoplay="false"
  controller="true" type="video/quicktime" loop="false"
  pluginspage='http://www.apple.com/quicktime/download/'>
  </EMBED>
</OBJECT>

Ook deze code is gemaakt met behulp van deze pagina, maar voor SMIL bestanden werkt dat niet zomaar. Standaard krijgt de browser van mijn server namelijk doorgegeven dat het een SMIL-bestand (mime-type application/smil) is. En de browser weet dan niet wat daar me gedaan moet worden.
In de code hierboven heb ik handmatig toegevoegd:
  <param name='type' value="video/quicktime">
en
 type="video/quicktime"
Hierdoor weet de browser dat het SMIL bestand gewoon behandeld moet worden alsof het een Quicktime video is.

Let ook hier weer op de hoogte die ingesteld staat (height="287"). Dat is gelijk aan afmeting video (240) + afmeting ondertiteling (32) + afmeting playercontrols (15).