Jaki jest obecny status <video> w HTML5
Przy okazji tworzenia tylkoteatr.com musiałem szybko dowiedzieć się dużo o wideo w sieci. Im więcej się dowiadywałem tym bardziej zdawałem sobie sprawę, że jeszcze długa droga zanim będzie można zapomnieć o Flashu.
Na początku toczyła się walka o „wolność” w sieci, czyli używanie kodeka, który byłby całkowicie darmowy i niechroniony żadnymi patentami. Nie chciano, żeby w pewnym momencie pojawiła się korporacja żądająca pieniędzy za dostęp do kodeków.
I tak po dwóch stronach barykady stanęły OGG Theora i H.264. Ten pierwszy reprezentował darmowe i wolne oprogramowanie, natomiast ten drugi objęty jest wieloma patentami i nie do końca darmowy (darmowy dla końcowego użytkownika, ale płatny dla developerów chcących go używać np. jako kodeka w swoich kamerach). Po stronie Theory stały Google, Mozilla i Opera. H.264 wspierało właściwie tylko Apple.
Wspomniałem, że Google było za tym, żeby Theorę uznać za oficjalny kodek wideo w HTML5, ale samo tylko dużo mówiło, robiąc niewiele w tym kierunku. W tym czasie całe YouTube opierało się o konkurencyjny H.264 właśnie. A Chrome długi czas obsługiwało i Theorę i H.264. Widać, że Google nie potrafiło twardo postawić sprawy.
Moim zdaniem słusznie. Oponowanie za Theorą było z jednej strony bronieniem wolnego oprogramowania, ale z drugiej wspieraniem przestarzałego i technicznie słabszego kodeka. Kodowanie filmów do H.264 jest banalne i szybkie, a końcowy efekt to bardzo dobra jakość obrazu. Natomiast Theora przy tej samej wielkości pliku produkuje niezbyt wyraźny (rozmazany) obraz, a sam proces zajmował czasami nawet dwa razy więcej czasu.
Duży błąd moim zdaniem popełniło w tym czasie W3C ogłaszając, że nie będzie oficjalnego kodeka i niech rynek zadecyduje. Z jednej strony mądrze, jednak z drugiej zabrakło odważnej decyzji, przez co przed dwa długie lata musiałem kodować zarówno dla H.264 jak i OGG Theora. To dwa (a czasem i trzy) razy więcej czasu na kodowanie i dwa razy więcej danych do przechowywania. Czyli dwa razy więcej kosztów. Można niby powiedzieć, że nie trzeba się pchać w technologię, która dopiero raczkuje. Tyle, że ja głęboko wierzyłem, że HTML5 będzie lepszy od Flasha i chciałem wspomóc ideę.
Widać było, że Theora się nie nadaje. Format otwarty, ale to jego jedyna zaleta. Google postanawia więc stworzyć nowy kodek, specjalnie dla sieci. WebM powstaje pod koniec 2010 roku i robi trochę zamieszania. Jest nowocześniejszy od Theory, ciągle rozwijany i „wolny”. Przynajmniej tak utrzymuje Google, bo za WebM też stoi mnóstwo patentów. Można by pomyśleć, że sprawa przesądzona. Google przeniesie wszystkie nagrania z YouTube na swój format, ograniczy Chrome tylko do WebM i rynek zdobyty. Nie było to jednak takie proste. Przede wszystkim każdy kodek wymaga wsparcia od strony hardware. H.264 miał go praktycznie wszędzie, WebM (ani Theora) nie. W praktyce oznacza to, że WebM i Theora były wolne w renderowaniu. Do dziś na moim sprzęcie skalowanie nagrania w OGG Theora na pełny ekran powoduje, że obraz skacze. Można tu też niby trochę winić twórców przeglądarek, że nie postarali się o lepsze wykorzystanie kart graficznych, ale efekt jest taki, że tylko H.264 można odtwarzać płynnie i praktycznie na każdym urządzeniu.
WebM też szybko został zapomniany. Nie zainteresowali się nim nawet twórcy aplikacji do konwersji nagrań na różne formaty. Owszem, powoli i leniwie był wprowadzany do niektórych, ale w praktyce wychodziło na to, że żeby faktycznie móc skorzystać z WebM trzeba było się nagimnastykować. Google ma talent do tworzenia rzeczy, o których wszyscy szybko zapominamy.
Zostaliśmy więc z mało popularnym (też bardzo wolnym przy kompresji) WebM, cieniem Theory i H.264, który ciągle zdobywał popularność. Wydawałoby się, że nie ma na co czekać i trzeba się w końcu rzucić na świetny (to jest naprawdę bardzo dobry kodek) H.264, ale Mozilla i Opera dalej obstawały przy wolności w sieci. Jestem za, ale nie za taką cenę. Póki co nie ma nic lepszego niż H.264 i trzeba się z tym pogodzić. Na szczęście Mozilla ogłosiła, że się poddaje. Robi najmądrzejszą rzecz jaką tylko może – będzie korzystać z kodeków zainstalowanych w systemie. Czyli jeśli w systemie będzie H.264, to bez problemu odtworzymy w nim nagranie. W praktyce użytkownik Windows XP będzie musiał sobie go doinstalować, ale już na Windows 7 wszystko będzie działało out of the box.
Warto było przez te kilka ostatnich lat upierać się i bronić gorszej technologii? Idea niby szczytna, ale IMO spowolniło to rozwój <video> na prawie cztery lata. Na szczęście rynek wymusił na Mozilli słuszną decyzję. Nikt poza pasjonatami nie wspierał jednocześnie dwóch formatów. Choćby Vimeo, które HTML5 wspiera, ale tylko w H.264.
Podsumowując. Długo to trwało, ale w końcu możemy powiedzieć, że w w sieci używa się H.264.
Jon Duckett: HTML & CSS