Skip to content

WebM, Daala ja konkurendid - vaba veebivideo 2014. aasta alguses

Kirjutasime poolteist aastat tagasi WebM ja vaba veebivideo seisust ning vaatame mis on tänaseks muutunud:

  • Google sisuliselt lõpetas VP8 arenduse ning keskendus enam kui aasta tagasi VP9 arendusele - eesmärgiks VP8 ja H.264'ga võrreldes 2 korda väiksem ribalaius sama pildikvaliteedi juures (VP9 oleks seega võrreldav videokodek patendialuse H.265'ga)
  • VP9 bitivoog löödi lukku eelmise aasta jaanipäevaks ning sisuliselt samast ajast suudavad Chrome ja Chromium seda ka mängida
  • eelmise suve lõpuks asus Google aktiivselt Youtube videosid WebM VP9 varianti ümber kodeerima ning kõik VP8 materjal üle 360p videote eemaldati
  • kui kasutad youtube.com/html5 mängijat Chrome või Chromiumiga, siis esimene meediaeelistus on WebM VP9-Vorbis
  • sügisel 2013 lisasid nii libav (tulevases versioon 10's) kui ffmpeg (alates 2.1) VP9 toe oma teekidesse
  • VLC Media Player mängib VP9't alates versioonist 2.1.2
  • VP9 ja youtube.com/html5 jaoks vajalik minimaalne MSE tugi jõudis Firefoxi koodi jõulude eel ning on tavakasutajatele kasutatav alates versionist 28 (ilmub märtsis 2014)
  • konvergeerunud ja mobiilses maailmas (nutitelefonid, tahvelarvutid, nutiteleviisorid) on VP8 küll edenenud - Androidis on dekooder nõutav alates versioonist 2.3.3 ja kodeerimine alates versioonist 4.3 ja paljudesse seadmetesse on jõudnud ka raudvaraline VP8 tugi, kuid VP9 on veel liiga uus et raudvara poolel saadaval (2160p 60fps suutlik RTL sai valmis eelmise aasta lõpus), kuid tarkvaras implementeerituna mängib Androidi Chrome VP9't alates versioonist 29 ning on süsteemse teegina saadaval alates Android 4.4'st (dekodeerimine on 4.4 puhul nõutav)
  • Google üks plaan oli saada VP9 kiiresti levima seeläbi, et ta tehakse WebRTC üheks kohustuslikuks videokodekiks (nagu opus on üks kohustuslikke audiokodekeid), aga IETF (organisatsioon, mis WebRTC standardiseerimisega tegeleb) pole eri osapoolte vahelises võitluses suutnud videokodeki osas otsust teha

Konkurentide poolel:

  • on valmis saanud HVEC/H.265 videokodek 2012. aasta lõpuks (sellest ka Google kiirustamine VP9'ga) ning eelmisel aastal standardiseeritud ITU ja ISO/IEC poolt, kuid tegemist on mittevaba videokodekiga (eeldab patendinõuetega arvestamist ja litsentsitasude maksmist)
  • eelmise aasta jooksul on avaldatud palju erinevaid implementatsioone (sh 4K ja 8K kategooriates), kuid mingit olulist levimist tarbetehnoloogiatesse pole juhtunud
  • Google pole kuidagi näidanud oma eelistust HVEC/H.265 suunas - seda ei ole lisanudunud ei Androidi spetsifikatsiooni ega Youtube kasutatavate kodekite hulka ning pole võimatu, et see saab ühel hetkel kaalukeeleks turu pöördumisel VP9 suunas
  • enne sügisest IETF koosolekut, mis pidi otsustama WebRTC kohustusliku videokodeki tegi Cisco radikaalse avalduse, kus lubas maksta kõikide H.264/MPEG-4_AVC kasutajate litsentsitasud (MPEG-LA poolt seatud aastamakse ülempiiri tõttu see summa ei lähe väga ulmeliseks), kuid ka see plaan ei tundu olevat senist olukorda palju muutnud (Firefox lubas küll seda võimalust kasutada)

Samal ajal kui ISO/IEC MPEG ja ITU-T VCEG on üritanud tulevikuks läbi suruda HVEC/H.265 videokodekit ning Google ajanud oma vaba VP9 kodeki liini on Xiph (Vorbise ja Theora arendaja ning Opuse üks arendaja) ja Mozilla Foundation (Firefoxi arendaja) võtnud hoopis teise suuna:

  • Xiph'i poolt teoreetiliselt välja pakutud ülejärgmise põlvkonna videokodeki Daala arendus on suure hooga käima lükatud
  • eesmärgiks sama pildikvaliteedi juures väiksem ribalaius, kui tänaste moodsate videokodekite HVEC ja VP9 puhul
  • kui algoritmi mõttes on kõik senised MPEG-1, MPEG-2, MPEG-5, HVEC ning VP6, Theora, VP8, VP9 väga sarnased ning lähtuvad "teeme pildi ruutudeks ja siis üritame seda optimeerida" loogikast (ja on seetõttu patentide mõttes suur miiniväli), siis Daala aluseks on signaalitöötluse "lapped transform" lähenemine, mida on sama seltskond edukalt kasutanud nii Vorbis kui Opus audiokodekite juures - ei imestaks, kui selle arenduse esimesi beeta-tulemusi näeme juba sellel aastal
  • toimivat lahendust lubatakse 2015. aastaa lõpuks

Google teeb oma renderdusmootori

Kohe eilsele Mozilla Servo uudisele järgi on Google teatanud, et lööb oma brauserite (Chromium ja Chrome) renderdusmootorite arenduse lahku Webkit-ist ning koondab selle nime Blink all uueks projektiks. Peapõhjuseks on Webkiti mittesobivus Chromiumi mitmikprotsessi-põhise arhitektuuriga. Lisaks Chromiumile saab Blinki kasutajaks ka Opera ning kindlasti ka Androidi projekt.

Erinevalt Mozilla Servo'st, mis on nullist tehtud arendus, on Blink siiski senise Webkiti projekti haru ja suuri muutusi kasutajad niipea märkama ei hakka. Kindlasti võime eeldada et ka Webkiti asendajad (Apple, Blackberry, Nokia) kasutavad võimalust ning liigendavad ka Webkiti koodi tõhusamaks.

Loomulikult jäävad nii Servo, Blink kui Webkit vaba tarkvara põhimõtteid järgivateks projektideks ning kõik huvilised saavad koodi uurida ning arenduses kaasa lüüa.

WebM - vaba veebivideo kaks aastat hiljem

Kaks aastat tagasi avaldas Google VP8 kodeki vaba tarkvara litsentsi all ning pani aluse WebM projektile. Aasta tagasi lubas Google oma Chrome veebibrauserist eemaldada H.264 toe. Suure hooga asus Google ka kõiki Youtube videosid WebM vormingusse kodeerima. Vaba ja avatud veebivideo tulevik tundus helge.

Mis on muutunud kahe viimase aastaga?

  • H.264 on siiani Google Chrome's alles
  • Firefox, kes seni on rangelt vabade kodekite joont ajanud ning vaid Theora ja Webm kodeerimist pakkunud on lubanud lähiajal võimaldada mis iganes kodekite kasutamist, mida operatsioonisüsteem toetab (arvestades et H.264 on automaatselt kaasas Windows 7'ga oleks tegemist märgatava võiduga selle kodeki pooldajatele)
  • senini puudub raudvaraline dekoodeerimine tarbeelektroonikas (mobiiltelefonid, tahvelarvutid, jne) - Google küll õnneks on kahe aasta jooksul sellega kõvasti tööd teinud ning WebM-toega kivid leiduvad nii mõnelgi silikooniarendajal (Rockchip, Huawei, ST-Ericsson) ja küllap pole tegelikud seadmed ka enam kaugel
  • libvpx (levinuim WebM kodeki tarkvaraline implementatsioon) on arenduses jõudnud versioonini 1.1, kuid reaalajas koderimine vajab rajumapoolset raudvara - viimati libav'ga katsetades FullHD 25 fps kodeerimine toimis Inteli i7-2600 protsessoriga vaid siis kui kõik 8 lõime olid kasutusel
  • Youtube kõik materjalid pole siiani WebM vormingus saadaval - seda on kerge testida, kui keerad oma Firefoxil või Operal flashi kinni, sätid siit www.youtube.com/html5 html5 video aktiivseks ning üritad oma lemmikvodeosid või viimast moodsat kraami vaadata
  • kui muud veebivideot pakkuvad saidid loovad flashi kõrvale alternatiivi, siis on see pigem H.264, kui WebM (sh. Eestis)
  • alates versioonist 2.3.3 mängib Android tarkvaraliselt WebM-faile (praeguse Androidi ostutempoga on see 900000 uut seadet päevas)

Kus on veebibrauser Chromium kompileerituna?

Googlele vist väga ei meeldi, kui keegi kasutab Chrome asemel Chromiumi. Igal juhul google otsing "chromium nightly build" viitab juba enam kui aasta aega valesse kohta. Õige koht kipub mõnikord muutuma ning hetkel leidub kõik vajalik siin: chromium nightly builds.

Kes veel ei tea, siis väga hea brauser Google Chrome põhineb vaba tarkvara projektil Chromium ning ainus oluline vahe on see, et Chromiumis on puudu kõik see liigne kasutaja tegevuse jälgimine, mis Google Chrome's leidub.

Briefly in english: nightly builds for chromium browser are here.

Sinu veebibrauser on oluline

Selge see, et Sinu veebibrauser on oluline.

Microsofti eestvedamisel on tehtud veebisait yourbrowsermatters.org, mis sujuvalt tõestab, et vaid Internet Exploreri versioon 9 on turvaline (skoor 4) ning konkurendid on poole ohtlikumad (Firefox 7 - tulemus 2 ja Chromium 14 - tulemus 2,5) ning Google Chrome 16 ja Opera ei tule üldse arvesse (tulemus puudub).

Kui vaatame testide sisu, siis minu Linuxiline Chrome saab punkte selle eest et toetab Windowsi funktsioonaalsust (Does the browser process utilize Windows Protected Mode or implement a similar mechanism such that browser processes cannot modify parts of the system that it doesn’t have access to? Does the browser benefit from Windows Operating System features that protect against arbitrary data execution? Does the browser benefit from Windows Operating System features that randomize the memory layout to make it harder for attackers to find their target?). Aga see pole ju reaalne! Osa nimetatud funktsionaalsust nagu näiteks ASLR on Linuxi kernelis olnud olemas paar aastat enne Windowsi, kuid vaevalt test seda otseselt kontrollib.

Sait töötab nii, et brauserite tunnus-sõned (user-agent string) ja nende suutlikkus on ette ära seadistatud ning tegelikult mitte ühtegi testi ei tehta - seda on kerge proovida kui Operas määrata brauseri tunnuseks "Mask as Internet Explorer" ja kohe on täispunktid olemas.

Tegemist on tavalise hämamisega ning faktide sobival kujul esitamisega. Ma ei imestaks kui Firefoxi, Chrome ja Opera arendajad teevad kohe veebisaidi, mis vastupidist tõestab.

WebRTC jõudis Chromiumi

Möödus vaevalt kolm nädalat, kui WebRTC jõudis Chromiumi (versioon 14.0.796.0 ehk build 89590). Koodipuus on ta näha src/third_party/webrtc all. Kõik komponendid pole veel olemas, aga nendega ilmselt kaua enam ei lähe.

Chromiumi põhjalt teatavasti tehakse Google Chrome veebibrauserit ning kui kõik toimib, siis jõuab ta ka sinna. Ja siis pole muud kui, veebimeistrid saavad hakata vastavat funktsionaalsust oma saitidele lisama.

Google avaldas WebRTC vaba tarkvarana

Google ostis aasta tagasi ligi 70 miljoni dollari eest firma Rootsi firma Global IP Solutions. Tegelesid nad sellise valdkonnaga nagu reaalajas toimivad video- ja audiolahendused (sealhulgas kasutati omaloodud audiokodekit iLBC). Neist erinevatest toodetest on Google nüüd loonud projekti WebRTC ning alates tänasest on see avaldatud vaba tarkvaranana (lihtsa BSD-stiilis litsentsi all). Nagu ikka, siis Google on loobunud kõikidest WebRTC'ga seotud patendi- ja litsentsinõuetest.

Miks see kõik huvitav on? Aga sellepärast, et integreerides WebRTC veebibrauserisse on veebisaitidel võimalik luua standardse html'i ja javascripti põhiseid lahendusi reaalajas toimivaks suhtluseks. Lihtsamalt öeldes on võimalik pidada veebipõhiseid videokõnesid (ja loomulikult tavalisi kõnesid) ilma lisatarkvara paigaldamise vajaduseta. Nii nagu ka WebM puhul ei ole ka siin Google üksinda - projektile on toeetust avaldanud nii Mozilla Foundation kui Opera Software (vastavalt Firefoxi ja Opera brauserite arendajad). Me ei peaks üllatuma, kui veel selle aastanumbri sees tehakse katse WebRTC laiemaks standardiseerimiseks ning kõik kolm brauseritootjat (mis kontrollivad pool turgu) on WebRTC toe oma brauseritesse lisanud.

Praegu vist ei ole hea olla Microsofti olukorras, kes kulutas 8,5 miljardit dollarit Skype ostmiseks ning ühe rakendusena nägi kindlasti ette just sedasama funktsionaalsust.

Google Chrome loobub H.264 toest HTML5-videos

Google on teatanud, et selle aasta jooksul eemaldatakse Chrome veebibrauserist HTML5 video-elemendi H.264 videokodeki tugi. Suure tõenäosusega tähendab see ka et Youtube lõpetab videote kodeerimise H.264 kodekiga ning tulevane HTML5-põhine Youtube jääb kasutama WebM-vormingut (vp8 video+vorbis audio).

Selline otsus saabki vist olema veebivideo tulevikku määravaks kaalukeeleks - patentide ja litsentsidega piiratud H.264 ei saa olema veebivideo põhivorminguks. Selle rolli täidab WebM.

Turujaotus videokodekite vahel on peale nimetatud otsuse teostamist selline:

  • Firefox - Theora ja WebM (WebM alates versioonist 4)
  • Chrome ja Chromium - Theora ja WebM
  • Opera - Theora ja WebM
  • Safari - H.264, Theora ja WebM (ehk mida iganes QT parasjagu oskab mängida)
  • Internet Explorer - H.264 (vaikimisi) ja WebM (kui kodek on paigaldatud)

Lisaks on ülioluline, et enamus olulisemaid kiibistiku- ja protsessoritootjaid on lisanud või lisamas WebM tuge oma raudvarale ning see tähendab, et tulevased meediakeskused, nutitelefonid, tahvel- ja sülearvutid ning muud sarnased seadmed suudavad WebM videot mängida seda raudvaraliselt dekodeerides (ehk võimalikult ressursisäästlikult).

Online- ja offline-tellimuste kasutajate erinevus veebibaruserite järgi

Võrdlesin meie firma saitide statistikat kasutajate veebibrauserite järgi (lehevaadete alusel). Kui panin kõrvuti online- ja offline-tellimist võimaldavad saidid, siis olid tulemused erinevad. Vahed pole suured, aga väärivad äramärkimist. Numbrite erinevust saab tõlgendada ilmselt mitmel viisil ja selle jätaks esialgu lugejatele.

BrauserOnlineOffline
Internet Explorer51%60%
Firefox33%31%
Safari ja Chrome13%7%
Opera3%2%

Online-tellimine tähendab siinkohal, kus saab teenused broneerida, samast teenindusprotsessis maksta ning samas väljastatakse kohe piletid (klienditeenindaja ei sekku teenindusprotsessi). Offline-tellimine tähendab veebirakendust, kus saab teenused otsida, sirvida ja tellida ning seejärel tegeleb tellimusega klienditeenindaja (vormistab broneeringu, küsib kinnitus, vormistab arve, tehakse eraldi makse, jne).

WebM nüüdsest Google Chrome arendusversioons

WebM asjaloost paar uudist:

  • alates eilsest on Google Chromes WebM (VP8+Vorbis) tugi (versioon 6.0.422.0-r48573); vaatasin sellega ka youtube.com/html5 lehel ringi (päringute lõppu lisasin &webm=1) ning tavakasutaja jaoks pole flashi ja H.264 videotega mitte mingit vahet ja minu arvates on WebM koht veebivideo tulevik üsna muretu
  • Google muutis WebM litsentsi lihtsamaks ka kasutab nüüd puhtalt BSD litsentsi