Tijdens de onderzoeksactiviteiten van VRT-medialab voor het project COSYN(2) kwamen verschillende tools tot stand voor het creëren, testen en debuggen van adaptive bitrate streaming-bestanden. Zo werd een segmenter tool ontwikkeld en enkele parser scripts. Met behulp van deze tools kunnen audio- en videostromen op een elegante manier aangepast worden aan de noden van de gebruiker. Omdat deze tools ook nuttig kunnen zijn voor andere gebruikers, besloten we ze in open source beschikbaar te stellen.
De meeste HTTP adaptive streaming protocols hebben een gelijkaardige opbouw: audiovisueel materiaal wordt verschillende keren geëncodeerd, telkens met een verschillende kwaliteit (bitrate). Audio- en videostromen worden in stukken verdeeld van ongeveer gelijke duur (typisch 2 à 10 seconden). Elk stukje materiaal van elke kwaliteit heeft zijn eigen URL en is dus individueel toegankelijk. Op die manier kan het afspeelprogramma heen en weer navigeren tussen de verschillende kwaliteiten. Om een snelle start te verzekeren, wordt gewoonlijk gestart met de laagste bitrate om daarna over te schakelen naar hogere bitrates, indien de netwerkverbinding, de cpu-belasting, ... dit toelaat.
De segmenter tool laat toe video- en audiostromen te splitsen in meerdere outputbestanden, zoals gespecificeerd in Apples versie van het adaptive streaming-protocol (IETF-draft). De code van de segmenter wordt gecompileerd naar vier uitvoerbare bestanden die elk een verschillend splitsalgoritme gebruiken: ByteCount, MP3, ADTS (AAC) en MpegtsH264. Met uitzondering van ByteCount splitsen ze elke N seconden, rekening houdend met de structuur van het bestand. Dat wil zeggen dat ADTS splitst volgens framegrenzen en MpegtsH264 volgens GOP-grenzen. Deze tool ondersteunt bovendien ook Live-stream-mode en encryptie.
Met behulp van de parser scripts kunnen binaire formaten worden omgezet in “voor de mens leesbare” formaten. Deze tools zijn nuttig omdat enkele uren hexdump-studie uitgespaard kunnen worden.
De tools zijn te vinden op GitHub.