Avspilling av H.264-video med Broadway i Firefox. Avbildet er Brendan Eich, teknologisjef i Mozilla og skaperen av JavaScript. (Bilde: Harald Brombach)

Dekoder H.264-video kun med JavaScript

Mozilla lover brukbar ytelse med «Broadway», men sier ingenting om lisensutfordringen.

Utviklere i Mozilla har laget en helt JavaScript-basert dekoder for videoformatet H.264. Allerede før den har blitt optimalisert til å utnytte blant annet maskinvareakselerasjon og parallellprosessering, skal dekoderen, som kalles for Broadway, greie å spille av videoer med en hastighet på bortimot 30 bilder i sekundet for en video med en oppløsning på 640 x 340 piksler. En demonstrasjon av dekoderen kan sees her.

Den ene av de to som har laget dekoderen, Michael Bebenita, skriver her at de har tatt utgangspunkt i en eksisterende H.264-dekoder. Ifølge Ars Technica dreier det seg om den samme åpen kildekode-dekoderen som Google bruker i Android. Denne er skrevet i C, men Bebenita og kollegaen Alon Zakai har forenklet den og kompilert den ved hjelp av Zakais Emscripten-kompilator.

Emscripten oversetter LLVM-bitkode til JavaScript. LLVM-bitkode kan genereres fra C/C++ ved hjelp av blant annet llvm-gcc eller clang.

Firefox har av lisensårsaker ikke innebygd støtte for H.264, men kan spille H.264-videoer via et webbasert brukergrensesnitt basert blant annet Broadway. Et par demoer (de samme som vises i videoen nevnt over) kan lastes ned fra Broadway-siden på Github. Bebenita anbefaler at de kjøres i en «nightly»-utgave av Firefox, som inkluderer noen oppdateringer skal forberdre JavaScript JIT-ytelsen (Just In Time), men vår egen lille test viser at løsningen også fungerer fint i Firefox 7.0.1 – riktignok med en gjennomsnittlig bilderate på i underkant av 20 bilder per sekund på en tre år gammel stasjonær pc. Broadway bruker under avspillingen hundre prosent av regnekraften til den ene av kjernene i prosessoren, noe som nok betyr at bilderaten vil være høyere på en pc med kraftigere prosessorkjerner.

Bilderate ved avspilling av H.264-video med Broadway i Firefox 7.0.1. Variasjonene i bilderaten skyldes trolig at Broadway ikke hele tiden fikk bruke en prosessorkjerne helt alene.
Bilderate ved avspilling av H.264-video med Broadway i Firefox 7.0.1. Variasjonene i bilderaten skyldes trolig at Broadway ikke hele tiden fikk bruke en prosessorkjerne helt alene. Bilde: Harald Brombach

Det gjør at løsningen foreløpig er lite egnet for batteridrevne enheter. Men å flytte deler av arbeidsmengden fra CPU-en og over på mer effektive prosessortyper, er blant det arbeidet som gjenstår.

Broadway er laget for å demonstrere JavaScript-ytelsen i dagens nettlesere. Om den også i praksis vil fungere som en løsning for å spille av H.264-video i Firefox, uten at Mozilla behøver å bygge slik støtte inn i nettleseren, er mer uklart. Nettsteder som ønsker å tilby H.264-video for besøkende med Firefox, uten å benytte plugins som Flash, vil i så fall måtte basere løsningen på Broadway. Spørsmålet er om de kan gjøre dette uten å måtte betale ytterligere lisenspenger til MPEG LA.

Heller ikke Opera støtter H.264. Men vår test av Broadway i Opera 11.52 fungerte dårlig.

    Les også:

Til toppen