Fronteers — vakvereniging voor front-end developers

Congres video's, en de keuze voor Theora

Na een iets langere periode wachten dan waar we met z'n allen op gehoopt hadden, zijn we dinsdag begonnen met de eerste video's van Fronteers 2009 online te zetten. Op dit moment zijn beschikbaar: A Web of Confusion door Douglas Crockford, Roll Your Own Effects Framework door Thomas Fuchs, The future state of layout door Stephen Hay, The Type We Want door Jonathan Snook, en Even Faster Web Sites door Steve Souders. Alle video's die we de komende dagen en weken (maanden?) online gaan zetten zullen worden gelinkt vanaf de sessions pagina van het congres. Om de video's te tonen maken we gebruik van het <video> element, en de Theora codec. Dit is niet zonder enige discussie gepaard gegaan...

Op dit moment gebruikt ongeveer 65% van de bezoekers van de Fronteers website een browser die het <video> element in combinatie met de Theora codec ondersteunt. Dit zijn specifiek Firefox 3.5/3.6 (en andere Gecko 1.9.1+ browsers zoals SeaMonkey 2), Chrome 3/4, en (pre-)alpha builds van Opera 10.50. De (toch nog) 20% IE gebruikers zullen geen video in hun browser zien, maar kunnen de video's wel downloaden, en met hun mediaspeler naar keuze afspelen. (In het onwaarschijnlijke geval dat deze geen Theora ondersteunt is VLC een goed en open-source alternatief.) En dan zijn er ongeveer 10% aan Safari gebruikers, die op de plaats van het video element wel de posterframe zullen zien, maar door het gebrek aan ondersteuning van de Theora codec in Safari, niet de video zullen kunnen afspelen. Deze bezoekers zullen net als de IE gebruikers de video moeten downloaden om hem te kunnen bekijken, en er is fiks gediscussieerd op het Fronteers IRC kanaal of dit de juiste keuze was, of dat we ook een versie van de video's zouden moeten aanbieden die gebruik maakt van de H.264 codec. (Deze codec wordt naast Safari ook ondersteund door Chrome, maar niet door de open-source Chromium.) Opvallend genoeg heeft het na het online zetten van de eerste video nog twee dagen geduurd voordat iemand zelfs maar opperde de video's d.m.v. Flash ook aan IE gebruikers in de browser te tonen.

De kernvraag is: Wat is belangrijker, het op dit moment geven van een zo goed mogelijke ervaring aan zoveel mogelijk bezoekers, of het in de strijd gooien van ons collectief gewicht om toe te werken naar een situatie waarin iedere internetgebruiker zonder enige hindernissen video's kan bekijken en creëren. Wij als Fronteers hebben een voorbeeldfunctie, en willen (zoals op het oprichtingscongres is besloten, en op de afgelopen ALV nog eens is bevestigd), "standaardenorganisaties en implementerende partijen ertoe [..] bewegen het welzijn van front-end ontwikkelaars te verbeteren middels betere standaarden, technieken, documentatie en implementaties." Aan de andere kant, kunnen we als front-end ontwikkelaars wel serieus genomen worden als we niet de op dit moment voor zoveel mogelijk mensen best werkende oplossing kiezen?

Voor de mensen die niet op de hoogte zijn van de problematiek rondom video codecs, een korte samenvatting. HTML5 specificeert het <video> element. Oorspronkelijk ging dit gepaard met het specificeren van de te gebruiken codec, namelijk Theora. Apple, als een van de vijf grote browser makers, had hier echter zwaarwegende bezwaren tegen aangezien ze bevreesd waren voor "submarine" patenten op deze video codec. Dit risico bestaat natuurlijk altijd, maar met andere codecs hadden ze het risico al genomen (bijvoorbeeld via iTunes), en nog een volgend risico nemen was klaarblijkelijk onacceptabel. H.264 als de te specificeren video codec is niet acceptabel voor open source browser makers (specifiek Mozilla, maar ook relevant voor webkit-gebaseerde browsers zoals Chromium, Konqueror, e.a.), aangezien er veel software patenten op H.264 rusten. Hoewel een organisatie als Mozilla theoretisch de kosten van een licentie zou kunnen opbrengen (voor dit jaar 5 miljoen dollar, ongeveer 6% van de jaarlijkse omzet van Mozilla, met verdere jaarlijkse prijsstijgingen bijna zeker), zouden gebruikers van de Mozilla source code niet gerechtigd zijn H.264 te gebruiken. Dit gaat tegen het principe van open source software in, en is onacceptabel voor Mozilla. (Gebruik maken van op het OS geinstalleerde codecs is voor Mozilla ook geen oplossing; dit brengt grote beveiligingsproblemen met zich mee, en gaat tegen Mozilla's missie voor een open web in.) Tevens vindt Opera H.264 onacceptabel, voornamelijk (?) omwille van de zeer hoge licentie kosten. Gezien deze impasse, en om de realiteit beter te reflecteren, is de specificatie van een te gebruiken codec uit HTML5 verwijderd. De zoektocht naar een voor iedereen acceptabele codec blijft wel doorgaan.

Met een gebrek aan een van hogerhand opgegeven mandaat voor de codec die algemeen gebruikt gaat worden op het web, heeft de strijd zich verplaatst naar implementaties en gebruikers. H.264 wordt ondersteund door de grote media bedrijven, en de hieraan gelieerde partijen. H.264 heeft een voorsprong in gebruik, en ondersteuning in hardware. Daartegenover staat Theora met ondersteuning van de open source software wereld, en alle kleine partijen die zelf video op het web willen kunnen zetten. H.264 is op dit moment gratis te gebruiken voor het produceren van video's op kleine schaal, maar door de jaarlijks veranderende licentie structuur bestaat er totaal geen zekerheid dat dit altijd zo zal blijven. De geschiedenis leert ons, en alle tekenen wijzen er inderdaad op, dat dit, mocht H.264 de meestgebruikte videocodec worden, over een aantal jaren zal veranderen.

De situatie op dit moment is sterk in flux; alles is mogelijk, en kleine acties kunnen een groot effect hebben. Theora heeft, dankzij Firefox en Chrome, op dit moment veruit het grootste percentage aan directe ondersteuning in een browser. Mozilla werkt er tevens hard aan om de kwaliteit van de codec nog verder te verbeteren. (Er bestaan veel mythes over technische inferioriteit van de Theora codec, voornamelijk door oude tests uit de tijd dat de bitstream codec net was vastgelegd, maar er nog weinig tijd was besteed aan het implementeren van encoders en decoders; recente tests laten zien dat verschillen in kwaliteit minimaal zijn.) Daar tegen over staat dat YouTube en Vimeo in eerste experimenten met <video> gebruik maken van H.264. (Voornamelijk omdat hun video's al in dit formaat gecodeerd waren?) Er zijn tekenen dat Apple Theora wil heroverwegen, en met de aankoop van On2 heeft Google de oorsprong van de Theora codec in handen, wat mogelijkerwijs meer zekerheid kan gaan geven op het gebied van submarine patenten.

Het komende jaar gaat waarschijnlijk beslissend zijn. Komen we uit op een situatie waar H.264 de video standaard voor het web wordt, en moet iedereen die iets met video doet hier geld voor gaan betalen aan de MPEG-LA? Of weet Theora genoeg momentum te behalen om Apple en grote video sites over te halen gebruik van deze codec te gaan maken, waarmee we in een wereld terecht komen waar video op het web een vrij en open formaat wordt, waar iedereen optimaal gebruik van kan maken?

Ik weet welke situatie mijn voorkeur heeft, en ik weet welke situatie beter is voor ons als web ontwikkelaars. Wij web ontwikkelaars spelen tevens zelf een rol in deze strijd, en onze keuzes kunnen van belang zijn. Hoe meer video van hoge kwaliteit op het web gepubliceerd wordt in Theora (en niet in H.264), des te hoger wordt de kans dat Apple besluit dat het het risico waard is om ook Theora te ondersteunen in Safari. Fronteers is dan wel geen Wikipedia (welke site al hun video's in Theora zal hosten), maar we beginnen ondertussen toch enige omvang en naam te hebben, en kunnen deze hier nuttig gebruiken om te helpen streven naar een open web.

Wat is jullie mening? Doen we hier goed aan, of moeten we niet zo zeuren en lekker praktisch H.264 video via een Flash interface aanbieden? Is het belangrijker om nu 100% van onze bezoekers tevreden te stellen, of mogen we juist wel wat idealisme tonen en zeggen, "Wij weten wat op lange termijn het beste is!"?

Reacties

1 Ben Gerrissen op 28-01-2010 om 18:02 uur:
Random bezoeker komt op fronteers website, is geinterreseerd in video's. Wordt keihard verteld om x en y te downloaden en te instaleren. Random bezoeker vertrekt met de gedachte 'wat een prutsers'.

Er zijn standaarden die gangbaar zijn (op dit moment flash) en er zijn TOEKOMSTIGE standaarden. Maak alsjeblieft een onderscheid, nu creeer je een situatie waarbij elke andere tech vlak je keihard uitlacht omdat hun zooi wel 95% van de keer werkt en jullie 'blakend voorbeeld' niet...

Jullie doelgroep is NIET alleen frontend developers, maar ook bedrijven die geinterreseerd zijn in frontend. DAAR moeten jullie een voorbeeld voor zijn...

Pick your battles and timing...
2 Sander Aarts op 28-01-2010 om 18:37 uur:
Fronteers is een vakvereniging voor front-end developers. Je mag van onze doelgroep verwachten meerdere browser paraat te hebben. Misschien niet op elke device (iPhone bv.), maar toch i.i.g. op hun ontwikkelbak.
De doelgroep van de site mag dan wellicht breder zijn dan enkel front-end developers, maar de presentaties in kwestie richten zich wel specifiek op deze developers.

Ben het ook helemaal eens met de keuze voor een open standaard als Theora en de argumenten daarachter. Wel denk ik dat het verstandig is om vanaf de videopagina's te linken naar deze blogpost (i.i.g. vanuit de alternatieve content).

Ik krijg overigens in Safari i.p.v. de posterframe dezelfde melding als in IE en die voor Safari dus niet helemaal correct is. Als ik me niet vergis moet het mogelijk zijn om de codec-ondersteuning te controleren, maar wellicht is dat enkel nog in theorie zo. Jullie hebben er ongetwijfeld uitvoeriger naar gekeken dan ik.

(intromuziekje is trouwens wel erg cheezy)
3 Krijn op 28-01-2010 om 18:58 uur:
@Sander Aarts: In Safari 4.0.4 krijg ik wel de poster te zien. Het checken op codec ondersteuning kan alleen met JS, iets wat we hier niet doen, omdat we maar een codec aanbieden. En dat is eigenlijk vooral luiheid van mij, met een hoop ondersteuning van Sander met Linkje; als een andere vrijwilliger de video's in een ander formaat om wil zetten en wil (laten) hosten, kan diegene dat gewoon doen. We hebben bronbestanden (MPEG) van enkele gigabytes waar van alles mee gedaan kan worden.

Hebben we al een beetje zin in Fronteers 2010 btw? :)
4 Nick op 28-01-2010 om 19:26 uur:
Sweet dat de video's online staan!. Kan ik toch nog even meekijken. ;)

Fronteers 2010!? Tuurlijk! Ga er voor zorgen dat ik er dan zeker wel bij ben. :)

Pfff kom tijd te kort en daardoor mis ik ook bijna elke bijeenkomst....
5 David Hund op 28-01-2010 om 21:19 uur:
Lastig dilemma (doh! :-) ) maar ik vind het een goede keuze.

Wat wel heel erg belangrijk is, denk ik, is dat deze keuze goed onderbouwd wordt. Ik vind dit artikel van Sander een prima onderbouwing maar misschien dat er gelinked kan worden naar een korte samenvatting op de video pagina?

Het zou een gemiste kans en 'slechte beurt' zijn als 'dingen kapot lijken te zijn'.

Het verschil tussen 'iets wordt niet ondersteund' of 'iets is stuk' is soms niet direct duidelijk… Een duidelijk verhaal maakt dan veel goed :-)
6 Sander Aarts op 29-01-2010 om 09:53 uur:
@Krijn: had getest in Safari 4.0.2
7 Sander Aarts op 29-01-2010 om 10:34 uur:
@Krijn: net in Safari 4.0.4 getest, maar ook daar kijg ik dezelfde melding als in IE en geen poster.

De codec-check die ik bedoelde is die d.m.v. het type attribuut van het source element. Maar daar kun je helaas niet de alternatieve content van af laten hangen.
8 Vera op 29-01-2010 om 10:43 uur:
En wat als je doelgroep grootendeels uit IE gebruikers bestaat? Voor welke video-oplossing kies je dan?
9 Kor Dwarshuis op 29-01-2010 om 12:07 uur:
Ik vind dit de minst slechte oplossing. 'Open Source' en 'idealisme' spreken me nog steeds aan.

Een linkje naar een uitleg werkt denk ik niet: de mensen die er op zouden moeten klikken, zullen dat denk ik niet doen; ze zijn geïrriteerd en niet bereid een link te klikken waarvan ze vermoeden dat ze toch niet vinden wat ze willen (een filmpje).

Wat misschien wel over zou komen is aan de tekst 'the video element is not yet supported..." een korte stevige tekst toevoegen waarin uitgelegd wordt waarom er voor deze oplossing gekozen is?

Een non-techie interpreteert de huidige tekst als een foutmelding denk ik, en trekt de conclusie dat fronteers prutsers zijn.
10 Wes op 29-01-2010 om 13:15 uur:
De websites die ik voor mijn klanten bouw, hoeven niet pixelperfect weer te geven in elke browser. De functionaliteit moet wel overal beschikbaar zijn.

Ik zie het niet als de rol van Fronteers om mensen te dwingen te upgraden of te wisselen van browser - helaas leiden wij de markt niet, maar lijden wij onder de markt.

Zoals ik het nu begrijp zijn onze video's in geen enkele versie van Internet Explorer te bekijken en is het enige alternatief het downloaden van de video en lokaal bekijken.

Ik zou het een mooiere oplossing vinden wanneer we de video's uploaden naar YouTube, en Internet Explorer gebruikers daarop wijzen (of de video embedden). Bovendien zorgt dit voor kruisbestuiving - het congres zal ook bij bezoekers van YouTube onder de aandacht worden gebracht.

Indien we kiezen om dit html5 element te ondersteunen, zouden we er ook voor moeten kiezen om onze website niet meer te serveren aan browsers als IE6. In plaats hiervan komt daar nu een zeer vriendelijke melding met het advies om te uploaden.

Kort gezegd, ik snap de redenering, ik snap dat dit in het hart van een front-end ontwikkelaar de ideale situatie is. Maar het is niet de realiteit.
11 Sander van Lambalgen op 29-01-2010 om 13:40 uur:
Dit verhaal is nu ook beschikbaar in het Engels. Tevens meldt Thomas Fuchs dat Safari gebruikers de video in de browser kunnen zien d.m.v. een Theora plug-in voor QuickTime.
12 Tara Rogers op 29-01-2010 om 17:46 uur:
It would seem to me that anything which is relevant now, especially things which will lose their relevancy as time passes, should be made accessible to as close to the 100% as possible. The best long term solution is of course the right one, and the open one. However, providing information in the short term, no matter the method, can be just as important.
13 John Millikin op 29-01-2010 om 19:09 uur:
Safari relies on QuickTime for its supported formats. Your users might be willing to install the Vorbis/Theora QuickTime plugin, which will let them watch Theora in Safari natively.

For IE, I have had success using the open-source Cortado Java applet. If somebody's using IE, chances are about 99% that they have Java installed and working anyway.
14 Joris Dirks op 31-01-2010 om 12:21 uur:
HTML5 video is voor mij een heel belangrijke standaard, omdat video een steeds prominentere rol in de webwereld speelt. Een proprietaire standaard is daarbij gewoon niet acceptabel: je moet er op kunnen vertrouwen dat elke bezoeker, zonder licentiekosten te moeten betalen nu of in de toekomst, je content kan bekijken.

Natuurliijk is nu al de realiteit anders. Misschien is het daarom handiger om fallback technieken te gebruiken. Waarbij ik het prima vind om een tekst weer te geven: "omdat uw browser geen Theora video ondersteunt, bieden wij u deze video aan in Flash. Lees hier meer over de nadelen".

Daarbij ga ik voor het gemak even voorbij aan de technische aspecten: Flash is een notoire geheugenvreter, Theora is onder lage bitrates lelijker en H264 lijkt vooralsnog superieur, al kan zelfs YouTube het nog niet feilloos implementeren.
15 BARTdG op 02-02-2010 om 22:18 uur:
I'm not sure what to think of the codec-discussion. However, I think anyone interested in these videos is capable of handling Theora files. If you agreed on Theora, you should stick to it.
16 Sander Aarts op 03-02-2010 om 11:01 uur:
Interesting article: No, you can’t do that with H.264
17 Rick van de Westelaken op 04-02-2010 om 12:11 uur:
Persoonlijk spreekt Theora me ook meer aan, al was het maar omdat we bij HTML, CSS en JS hebben kunnen zien hoe krachtig open technologieën kunnen worden. Op papier is Theora misschien inferieur aan h264, maar in de praktijk merk ik hier weinig van. Het geluid van Theora is in sommige demo's zelfs beter dan bij h264. Misschien dat Apple's vasthoudendheid aan h264 te maken heeft met hun decoding chips die hiervoor geoptimaliseerd zijn (denk aan de iPhone)?
Maar misschien wel de belangrijkste reden om snel tot een oplossing voor de <video>-tag te komen, is de enorm slechte kwaliteit van de huidige Flash player, met name op non-Windows omgevingen. Nu heb ik in de spec van Flash 10.1 wel gelezen dat ze o.a. de GPU aan willen gaan spreken, maar dan weer niet op Linux en Mac (ook door redenen die buiten Adobe's macht liggen). Hier zie je dus dat Flash qua video niet meer zo heel erg multi-platform is als ze altijd beweren. Beetje àla Skype, die wel clients voor Linux en Mac aanbieden, maar die niet dezelfde functionaliteit hebben. Interessant stuk over dit onderwerp: http://daringfireball.net/2010/01/apple_adobe_flash
18 Evert Albers op 04-02-2010 om 17:22 uur:
Dank voor jullie bijdragen! Ik kom steeds meer in discussies terecht waarin vraagtekens bij de toekomst van Flash en andere gesloten systemen ter discussie worden gesteld. Volgens mij een teken aan de wand. Ik ben meestal geen first-mover, maar ik ga nu mijn platform-keuzes maar eens herorienteren.
19 Maarten Brinkerink op 11-02-2010 om 16:20 uur:
Heldere weergave van jullie overwegingen en duidelijke stellingname! Proficiat!
20 Rick van de Westelaken op 19-02-2010 om 22:04 uur:
Een kleine toevoeging: als men op OSX de XIPH Theora QuickTime plugin heeft geïnstalleerd, dan werkt de ogv video zonder problemen.
Plaats een reactie