On demand distributie van geluidsfragmenten

Inleiding Proefopstelling Afbeeldingen Geluid
Besluit

Binnen het onderzoek rond on demand distributie vormen digitale geluidsfragmenten het onderwerp van een tweede casusstudie. We testen uit in welke mate het mogelijk is om on demand een raadplegingskopie te maken op basis van een archiefkopie en deze op gebruiksvriendelijke wijze te leveren aan de gebruiker.

Uitgangspunt

Ook hier maken we gebruik van de proefopstelling om de mogelijkheden van deze technologie na te gaan. We beschouwen de server als een bewaarlocatie voor een collectie gedigitaliseerde geluidsopnamen. We stelden een selectie van 8 geluidsfragmenten uit het Stadsarchief Antwerpen samen.

WAVE bestanden op de server
Enlarge
WAVE bestanden op de server

Deze geluidsopnamen werden enkele jaren geleden gedigitaliseerd. De digitale kopieën worden bewaard als audio cd. Naar toegankelijkheid en bewaring toe is dit formaat niet erg geschikt. Daarom werd besloten om de CD's om te zetten naar WAVE files. Hiervoor maakten we gebruik van Audiograbber. Aangezien het digitale signaal in oorsprong werd bewaard op audio cd namen we in de conversie naar het WAVE bestandsformaat de technische kenmerken over:

  • Samplingrate: 44Khz
  • Kanalen: 2 (stereo)
  • Bitdiepte: 16 bits

Er werd geen compressie toegepast op de data opgeslagen in de WAVE bestanden. Het gaat dus om zuivere pulsecodemodulatie (PCM).

Deze WAV bestanden werden vervolgens in een folder op de server geplaatst die niet publiek toegankelijk is. Via samba kan een beheerder eenvoudig deze folder benaderen en de selectie beheren (toevoegen, verwijderen,...).

Uitwerking

De selectie wilden we via een webinterface toegankelijk maken. Het moet mogelijk zijn om via een browser de collectie te benaderen en op aanvraag een geluidsfragment te beluisteren.

Voor de praktische uitwerking maakten we gebruik van volgende softwarepaketten:

  • PHP
  • AJAX
    Asychronous Javascript And XML. Deze webtechnologie laat toe om asynchroon informatie op te vragen vanaf een webserver. In plaats van de volledige webpagina te verversen om de nieuwe gegevens te tonen wordt slechts een deel van de webpagina aangepast.
  • cat
    cat of concatenate leest de inhoud van een bestand uit. De output van cat kan worden gestuurd naar het beeldscherm of naar een ander programma voor verdere bewerking.
  • LAME
    LAME Ain't an MP3 Encoder laat toe om een geluidssignaal in het WAVE formaat om te zetten naar MP3.
  • qwavcut
    qwavecut is een softwaretool waarmee fragmenten uit een WAVE file kunnen worden geëxtraheerd.
  • XSPF Music Player
    XSPF Music Player is een Flash object waarmee streaming MP3 via een webbrowser kan worden afgespeeld. Dit veronderstelt wel dat de webbrowser uitgerust met de Macromedia Flash plugin.
    Overzicht van de selectie beschikbaar via een webbrowser
    Enlarge
    Overzicht van de selectie beschikbaar via een webbrowser
Een fragment staat klaar om afgespeeld te worden
Enlarge
Een fragment staat klaar om afgespeeld te worden
  • XSPF
    Dit is een XML formaat voor playlists (afspeellijsten). MusicPlayer heeft een XSPF playlist nodig om geluidsfragmenten te vinden en af te kunnen spelen.

Met een PHP script dat door cDAVID werd ontwikkeld is het mogelijk om de selectie met een webbrowser te benaderen. De bezoeker krijgt een lijst te zien van de aanwezige geluidsfragmenten. Elk fragment kan worden geraadpleegd via een aanklikbare hyperlink. Volgende acties worden dan ondernomen:

  1. qwavecut creëert een nieuw tijdelijk WAVE bestand met de extensie bestandsnaam_short.wav . De eerste 20 seconden worden uit de archiefkopie geëxtraheerd en in het nieuwe bestand geïmporteerd.
  2. Het nieuwe WAVE bestand wordt vervolgens gekopieerd naar locatie die via de webserver wel publiek toegankelijk is.
  3. Met cat wordt de inhoud van het bestand uitgelezen en doorgestuurd naar de LAME MP3 encoder. Deze genereert een MP3 bestand. Daartoe wordt dit commando gebruikt: cat input_short.wav | lame -f -m m - output.mp3 Eenmaal volledig uitgelezen wordt het tijdelijke WAVE bestand verwijderd.
  4. De volgende stap in het PHP script is het produceren van een playlist met behulp van PHP en XSPF. Deze playlist bevat de locatie van het nieuwe MP3 bestand. Deze playlist is een apart XSPF bestand.
  5. De webserver stuurt de playlist en het MusicPlayer flash object terug naar de webbrowser van de gebruiker. Wanneer deze op deze op het flash object klikt, dan wordt het MP3 bestand via een audiostream naar de gebruiker gestuurd en afgespeeld.

Vaststellingen

Hier kunnen we positief antwoorden op onze onderzoeksvraag:

Ja, het is mogelijk om op aanvraag een raadplegingskopie van een geluidsfragment te genereren en deze op een gebruiksvriendelijke manier aan te leveren bij de eindgebruiker.

De testopstelling die we hebben ontwikkeld bezit twee belangrijke eigenschappen:

  • Hoewel het niet blijkt uit de omschrijving is het mogelijk voor de gebruiker om te luisteren naar de MP3 stream terwijl de LAME encoder nog aan het werk is. De webserver stelt het flash object dat toelaat het fragment te beluisteren, ter beschikking op het moment dat het MP3 bestand wordt aangemaakt.
  • De grootte van de WAVE bestanden heeft geen invloed op het systeem want er worden slechts fragmenten van 20 seconden verwerkt door de LAME encoder. Een fragment heeft een grootte van 3.446Kb.

Deze twee eigenschappen zorgen ervoor dat de gemiddelde tijd tussen het aanklikken van de link en het ter beschikking stellen van het flash object aan de gebruiker gemiddeld 1,92 seconden duurt (bij 1 verzoek om informatie per tijdseenheid)

Het systeem kent echter zijn beperkingen.

Het aanvoeren en vlot afspelen van een ononderbroken MP3 stream hangt in grote mate af van de snelheid waarmee de LAME encoder werkt. Wanneer meerdere instanties van LAME tegelijk aan de slag zijn moeten systeembronnen zoals CPU tijd en geheugen worden gedeeld. Elke nieuwe bijkomende vraag doet het systeem trager functioneren. Voor de gebruiker valt dit op door onderbrekingen tijdens het afspelen en een langere wachttijd vooraleer de musicplayer knop beschikbaar is. In het slechtste geval is de geluidsstroom niet of nauwelijks beluisterbaar.

Een goed uitgeruste machine en performante software zijn een conditio sine qua non om on demand creatie en distributie van geluidsfragmenten in goede banen te laten lopen.

Afkomstig van CDAVID NL, de Vrije Encyclopedie. "http://www.cdavid.be/index.php/On_demand_distributie_van_geluidsfragmenten"

image:antwerpen.jpg


image:leeuw.gif
Met steun van de Vlaamse minister van Cultuur, Jeugd, Sport en Brussel