Videohovory v prohlížeči: WebRTC čeká ještě trnitá cesta

10. 5. 2013
Doba čtení: 12 minut

Sdílet

Zatímco Google a Mozilla pilně implementují chystaný webový standard WebRTC do svých prohlížečů pro osobní počítače i mobilní zařízení, Microsoft pracuje na konkurenční technologii CU-RTC-Web. Proč s ní Microsoft přichází? Je lepší cestou k webovým aplikacím pro volání a videohovory bez plug-inů?

„Murphyho zákon“ říká, že když se něco může zkomplikovat, určitě se to zkomplikuje. Platnost tohoto rčení potvrzuje cesta k tvorbě komunikačních webových aplikací podporujících přenos audia anebo videa v reálném čase, ovšem bez potřeby jakéhokoliv plug-inu. Zdálo se, že poměrně rychlou a snadnou cestou bude projekt WebRTC z dílny Googlu.

Nyní jde o připravovaný webový standard pod hlavičkou W3C. Jeho počáteční podpora se již loni v létě objevila v ostré verzi prohlížeče Google Chrome. Letos v úvodu roku se přidal Mozilla Firefox. Jelikož však tvůrci obou prohlížečů na úvod podporu WebRTC implementovali podle odlišných verzí specifikace, není dosud zajištěna vzájemná kompatibilita.

Uživatel prohlížeče Google Chrome se aktuálně nemůže dorozumět s uživatelem browseru Mozilla Firefox. Alespoň tedy ne v případě ostrých verzí obou prohlížečů. Situaci měl napravit Firefox 21, jehož vydání je naplánováno na půlku května. V této verzi měla být podpora připravovaného standardu WebRTC ve výchozím stavu již aktivní a zároveň kompatibilní s prohlížečem od Googlu.

Google Chrome a Mozilla Firefox v ostré verzi disponují podporou WebRTC, ale navzájem nejsou kompatibilní.

Jenže do betaverze Firefoxu 21 potřebné změny nakonec nepronikly. Kompatibilitu by měl nakonec přinést až o několik týdnů později Firefox 22. Tedy pokud vše půjde podle plánu. Opět se může stát, že do dalšího vývojového milníku kýžené úpravy nedozrají, takže si uživatelé budou muset opět několik týdnů počkat.

Pomalu, ale jistě: z počítačů na mobily a tablety

Pozitivní zprávou je, že s podporou WebRTC se již experimentuje i v rámci mobilních verzí prohlížečů Google Chrome a Mozilla Firefox. Společnost Opera Software ve svém prohlížeči Opera Mobile pro Android experimentovala již v předloňském roce, ovšem pouze s přístupem ke kameře. Tedy bez podpory audia.

Každopádně právě příslib vysoké úrovně interoperability je jedním z důvodů, proč je projektu WebRTC věnována taková pozornost. Interoperabilita je přitom v době, kdy osobní počítače jako klientská zařízení nebudou mít na Internetu tak dominantní roli jako dosud, extrémně důležitá.

Možnosti širšího pokrytí platforem a zařízení dosud vyžívanými technologiemi Flash, Silverlight či vlastními technologie provozovatelů komunikačních služeb jsou omezené. Proprietární multimediální službou, která má nejširší pokrytí platforem, je dnes Skype. Jenže to chce ohromné úsilí, protože vždy je třeba připravit specifického klienta pro platformu anebo zařízení.

Jen pro pokrytí osobních počítačů jsou nutné čtyři klientské programy. Dva pro MS Windows (jeden pro klasické desktopové prostředí, další pro nové dotykové prostředí), druhý pro OS X a třetí pro různé linuxové distribuce. Dále vznikají tři oddělené aplikace pro mobilní platformy Android, iOS a Windows Phone. Zapomínat ovšem nesmíme na implementaci služby do některých chytrých televizorů a přenosných herních konzolí.

WebRTC slibuje, že vývojářům usnadní práci, protože se vývoj nebude tolik tříštit. Určitá míra přizpůsobení koncovému zařízení tu bude muset být stále. Například nemá smysl pokoušet se mezi dvěma chytrými mobily přes pomalé mobilní připojení zatížené datovým limitem přenášet video ve FullHD kvalitě. Nicméně všude tam, kde bude webový prohlížeč podporující WebRTC, bude teoreticky zároveň možné nabídnout svou komunikační službu.

Například takový Google Chrome je k dispozici pro Android a iOS, dvě dnes nejvýznamnější platformy chytré mobilní a přenositelné elektroniky. Vývojáři komunikačních služeb by tedy teoreticky již neměli muset vyvíjet nativní komunikační aplikaci zvlášť pro Android a zvlášť pro iOS. Stačila by jediná pro mobilní Google Chrome. A to je pouhý začátek.

Mozilla se chystá podporu WebRTC zahrnout i do svého systému Firefox OS pro chytré mobily. Ten s podporou nativních aplikací třetí stran nepočítá vůbec. Sází na webové aplikace. Přitom aplikace napsaná pro Firefox OS bude použitelná i na systému Android. Třebaže prozatím „jen“ díky tomu, že Firefox pro Android má v praxi fungovat jako jakési běhové prostředí pro tyto webové aplikace.

Opera by měla WebRTC podporovat jako Google Chrome

Počet podporovaných platforem a zařízení se hezky rozrůstá. Byť tedy především pro vývojáře a testery, ale WebRTC je stále hodně mladá technologie, takže očekávat v tuto chvíli jiný stav není na místě. Časem se přidají i prohlížeče z dílny norské společnosti Opera Software. Ta zařadila částečnou podporu WebRTC ještě do svého vlastního vykreslovacího jádra Presto.

Opera s podporou WebRTC experimentuje již od roku 2011. S přechodem na Chromium by již neměla podporovat jen přístup k obrazu z webové kamery jako doposud.

Šlo fakticky o první webový prohlížeč využívající alespoň část WebRTC již k nějakému účelu. Opera díky WebRTC nabídla webovým vývojářům přístup k webové kameře, aniž by potřebovali Flash nebo Silverlight. U toho zatím zůstalo, protože největší evropský hráč na poli prohlížečů opouští své vlastní jádro Presto po dlouhých 18 letech vývoje.

Z hlediska podpory WebRTC v prohlížečích společnosti Opera Software to ale může být posun k lepšímu. Firma totiž přechází na open source projekt Chromium a pro něj připravované nové jádro Blink. Jelikož kladný postoj k WebRTC potvrdila již dříve, lze očekávat, že existující podporu WebRTC v projektu Chromium nebude ignorovat.

Opera pro mobilní zařízení i osobní počítače se tak dost možná podpory WebRTC dočká dříve a ve vyspělejší podobě, než kdyby vývojáři norské firmy museli podporu WebRTC zahrnout do vlastního jádra Presto. Ostatně Opera Software uvedl, že jedním z důvodů pro přechod na Chromium je, aby nedocházelo ke „znovuobjevování kola“.

Safari a iOS: bude Apple bránit rozmachu WebRTC?

Apple tradičně není sdílný. Jestli tedy jeho prohlížeč Safari bude WebRTC podporovat či nikoliv, je jedna velká záhada. Přitom právě zde by byl transparentní přístup více než žádoucí. Nejde ani tak o Safari pro OS X, ale o mobilní Safari v iOS. Uživatelé iOS podle nezávislých statistik alternativní prohlížeče téměř vůbec nepoužívají.

Ne, že by mobilní Safari nebylo dobrým prohlížečem. Nicméně důvod, proč jeho tržní podíl ve statistikách kopíruje tržní podíl iOS, dost možná tkví v tom, že výměna mobilního Safari za alternativní prohlížeč stále není plně možná. I přes nastavení jiného prohlížeče jako výchozího se nadále řada odkazů bude otevírat prostřednictvím mobilního Safari z iOS.

Přitom iOS je stále nejrozšířenější systém u nově prodávaných tabletů a druhý nejvýznamnější systém u nově prodávaných chytrých mobilů. Zároveň tedy neustále roste i jeho význam z hlediska vybavení uživatelské základny. Kdo je ochoten alespoň výhledově o využití WebRTC u svých projektů uvažovat, potřebuje vědět, kdo a kde bude technologii podporovat.

Lze důvodně předpokládat, že Apple nebude mít eminentní zájem WebRTC při současné koncepci podporovat. WebRTC neprochází standardizací jen u W3C jako potenciální budoucí webový standard, ale zároveň i u organizace IETF jako VoIP standard. Právě na půdu IETF v loňském roce společnosti Apple a Cisco přišly s návrhem využívat kodek H.264. Google ovšem u WebRTC počítá s otevřeným VP8.

Tento kodek Google před lety koupil a později otevřel v rámci projektu WebM. Google trvá na kombinaci kodeků VP8 pro video a Opus pro audio. Pakliže má WebRTC mít smysl jako svobodná otevřená technologie, těžko si lze představit její spojení s H.264 při současné licenci. Je potřeba zajistit dostatečnou volnost při implementaci podpory i při jejím využívání.

Navíc Google podporu alternativních kodeků zavrhuje obecně. Nechce připustit fragmentaci. Mozilla by sice ráda do standardu zahrnula i podporu otevřených kodeků OGG Theora a OGG Vorbis, které dlouhodobě podporuje a propaguje, ale Google si pevně stojí za svým. Je to vcelku logické, protože s webovým videem již máme zkušenosti, co se stane, když není jasně specifikováno, s jakými kodeky se má počítat.

Když z návrhu HTML 5 vypadla zmínka o tom, které kodeky mají být používány v rámci svým způsobem převratných multimediálních značek, nastala nepříjemná fragmentace, ze které se celá webová scéna vzpamatovává ještě dnes. Běžné využívání multimediálních značek z HTML 5 se pozdrželo o několik let. Flash Player pro přehrávání videa stále nepatří do starého železa.

Nakonec souboj nervů vyhráli ti, kteří protlačovali kodeky H.264, MP3 a AAC. Tedy právě Apple a spolu s ním Microsoft. Mozilla správně konstatuje, že HTML 5 svých cílů dosáhlo jen částečně, když všeobecně podporovanými kodeky se nestaly žádné skutečně otevřené pro všechny zainteresované strany.

Dále je třeba zohlednit, že Apple vůbec nemusí mít reálný zájem na rozvoji WebRTC či čehokoliv podobného. Je to dáno izolacionistickou politikou, kterou firma dlouhé roky razí. Dnes má Apple vlastní komunikační službu FaceTime, kterou podporuje výhradně ve svých zařízeních a pod vlastními platformami.

Rozšíření záběru ani v zájmu vybudování širší uživatelské základny není na pořadu dne. Proč by tedy měl jásat z WebRTC? Kvůli velikosti základní myšlenky? To je naivní představa. Kvůli službám, které mohou konkurovat té jeho? To už vůbec ne.

Microsoft přichází s odvozeným CU-RTC-Web

Největším kamenem úrazu pro rychlé prosazení WebRTC jako jednotného standardu podporovaného napříč prohlížeči je ovšem postoj Microsoftu. Ten na WebRTC původně z dílny Googlu vidí údajně mnoho chyb, pročež se pustil do přípravy vlastního návrhu obdobného standardu CU-RTC-Web. Přesněji řečeno na něm pracuje společnost Microsoft Open Technologies, ale to je víceméně jen byrokratický detail.

Je nepravděpodobné, že W3C dá zelenou dvěma standardům sloužícím ke stejným účelům. Otázkou tedy bude, jestli se ke standardizaci propracuje CU-RTC-Web od Microsoftu, nebo WebRTC původně vytvořené Googlem, ovšem nyní s širší podporou. Vedle tvůrců prohlížečů, jako je třeba Mozilla, jej podporují telekomunikační společnosti Ericsson či Cisco.

Vnímat Microsoft jako nějakou příslovečnou „žábu na prameni“ ale aktuálně není na místě. Ostatně v minulosti i zaměstnanci Mozilly šířili do světa názor, že není žádoucí přijmout za své a implementovat vše, co v Googlu vymyslí. Konkurence je zdravá. Pokud zůstane u technologického souboje návrhů standardů, může se čekání na vítěze nakonec vyplatit.

Poté, co Microsoft za 8,5 miliardy koupil Skype, má sám opakovaně potvrzený eminentní zájem o vytvoření jeho čistě webové verze. Dost možná právě proto přistupuje k WebRTC kritičtěji než jiní. O svém projektu CU-RTC-Web tvrdí, že jeho cílem je co možná nejštíhlejší API integrované do prohlížečů. O většinu funkcí se prý mají zasloužit až tvůrci jednotlivých webových aplikací.

Microsoft deklaruje, že nechce, aby jim API svazovalo ruce. Jeho cílem prý není vytvořit standard, který umožní díky robustnosti API extrémně jednoduchou tvorbu primitivních komunikačních aplikací. Naopak chce kompaktní API, které má umožnit velkou flexibilitu při tvorbě webových komunikačních aplikací. Samozřejmě, že přitom myslím sám na sebe a svůj Skype a v širším kontextu zřejmě i Lync.

Podle Microsoftu jeho CU-RTC-Web nabídne mnohem lepší možnosti implementace na různá zařízení a různé platformy, bude mít méně třecích ploch s firewally a routery a bude prý lépe připraveno pro bezdrátová a mobilní připojení. Kritikům ale nejvíce vadí, že vývoj CU-RTC-Web zbrzdí rozmach čistě webových komunikačních aplikací.

CU-RTC-Web zatím nepodporuje žádný webový prohlížeč. Ani Internet Explorer od Microsoftu. K dispozici je prototyp technologie bez podpory videa, s nímž lze ve vybraných prohlížečích pracovat jen díky plug-inu. Ten je dostupný pro Internet Explorer 10 ve Windows 7 a Windows 8. Vývojáři preferující OS X potřebují systém ve verzi 10.6 a webový prohlížeč Google Chrome 24 a vyšší.

Jednoduše řečeno, zatímco Google a třeba Mozilla již WebRTC pomalu, ale jistě ukazují koncovým uživatelům v praxi, Microsoft čekají ještě dlouhé hodiny u pomyslného rýsovacího prkna. Záleží ovšem na rychlosti? Nebylo by moudřejší počkat, co nakonec Microsoft vytvoří, a pak zvolit lepší z nabízených cest? Teoreticky zřejmě ano.

Někteří odborníci navíc upozorňují, že situace může být ve skutečnosti zcela odlišná, než to z laického pohledu zvenčí vypadá. V očích převažující části veřejnosti je Google nyní ten, kdo nabízí otevřenou webovou technologii, ale Microsoft jakýmsi svým trucem brání jejímu uplatnění. Není ale současná podoba WebRTC jen výsledkem konkurenčního boje?

Google trvá na tom, aby připravovaný standard vyžadoval kodeky VP8 a Opus. Microsoft chce u svého CU-RTC-Web otázku kodeků nechat otevřenou právě proto, aby vývojáře nesvazoval. Podpora kodeků v prohlížečích by byla otázkou přirozeného výběru. Nabídky a poptávky. Nikoliv diktátem standardu.

U samotného HTML 5 takto nalajnovaná cesta vedla ke zdržení uplatnění jeho značek pro video a audio. Není však lepší, když se konsensus našel u kodeků H.264, MP3 a AAC, než kdyby HTML 5 vyžadovalo kodeky OGG Theora a OGG Vorbis, jak se původně plánovalo? Toť skoro hamletovská otázka. Na jedné misce vah je technologická stránka, na té druhé licenční.

Každopádně pro Microsoft není vůbec dobré, kdyby skutečně standardizovaná podoba WebRTC výslovně trvala na kodecích VP8 a Opus. Microsoft by pro Skype zřejmě rád využil kodeky H.264 a SILK, což by takto nemohl. A není právě to důvod, proč Google tak vehementně trvá na striktně vyžadovaných kodecích přímo ve standardu? Není otázka otevřenosti jenom zástěrka?

Mnoho otázek, málo odpovědí. Každopádně je nutné uvažovat v širších souvislostech a odhodit hluboce zakořeněnou představu, že Google jen ten hodný a Microsoft ten zlý. Jsou to komerční firmy, které si dnes v řadě tržních segmentů konkurují. Jestliže některá z nich protlačuje otevřenou technologii, tak rozhodně ne pro blaho lidstva, ale v první řádě pro své vlastní obchodní zájmy.

Kdy přijdou prvních webové komunikační aplikace?

První se již objevily. Už v roce 2011 společnost Doubango Telecom přišla s prvním čistě webovým VoIP/SIP klientem. Společnou referenční aplikaci s podporou videohovorů nedávno nabídly společnosti Google a Mozilla. Z různých experimentálních projektů pak stojí za pozornost ještě služba Conversat.io.

Klíčovou otázkou ovšem je, kdy s podporou WebRTC (či CU-RTC-Web) začne experimentovat nějaká významná služba. Zeptali jsme se přímo v Googlu, jestli se neuvažuje o experimentální verzi služby Hangouts nevyžadující již plug-in ve webovém prohlížeči. Google by tak měl ideální příležitost ukázat, že WebRTC je dobrá technologie, která opravdu dozrává.

V současné době nemůžeme ke konkrétním službám oznámit žádné informace,“ uvedl Dalibor Zíta z marketingového zastoupení společnosti Google na českém trhu. Dalším adeptem by mohl být Skype. Microsoft nabíral vývojáře, aby vytvořil jeho webovou verzi, kterou by rád integroval do webového rozhraní své nové e-mailové služby Outlook.com. Jenže s rozhodnutím pustit se do CU-RTC-Web se situace zkomplikovala.

Microsoft koncem dubna 2013 zatím jen ve Velké Británii začal uživatelům webového rozhraní Outlook.com nabízet službu Skype, ovšem jen za použití plug-inu. U něj zřejmě zůstane ještě nějakou dobu, protože Microsoft nyní tvrdí, že webový Skype není na pořadu dne, dokud nebude přijat všeobecně uznávaný standard.

Zároveň odmítá, že by chtěl silově prosadit CU-RTC-Web pomocí svého stále hojně rozšířeného prohlížeče Internet Explorer. Ten prý nebude podporovat žádnou webovou technologii pro komunikaci v reálném čase, která nebude uznávaným standardem. O podpoře nějakých pracovních verzí a návrhů prý neuvažuje. Naopak třeba WebGL či SPDY by údajně Internet Explorer 11 podle neoficiálních zdrojů měl podporovat.

Používat webové aplikace založené na WebRTC v prohlížeči Internet Explorer lze ovšem už dnes. Jednou z cest je plug-in Google Chrome Frame, který laicky řečeno do uživatelského rozhraní prohlížeče od Microsoftu naroubuje technologické pozadí prohlížeče Googlu. Další možností je pak projekt webrtc4all, který jako doplněk přináší podporu WebRTC i do prohlížečů Internet Explorer, Safari a Opera.

bitcoin_skoleni

WebRTC a Internet Explorer již dnes? Ano! Díky plug-inu Google Chrome Frame lze s WebRTC experimentovat i v tomto stále hojně rozšířeném prohlížeči od Microsoftu.

Prozatím tedy jen pod MS Windows, ale na podpoře OS X a Linuxu se prý pracuje. Dlužno dodat, že jde o krátkodobá řešení pro experimentování. V konečné fázi je potřeba jedna technologie implementovaná přímo do jádra všech významnějších prohlížečů na osobních počítačích a mobilních zařízeních, kterou nebude problém zařadit i do prohlížečů chytrých televizorů a podobných zařízení.

To je vzhledem ke všem výše uvedeným skutečnostem hudba té vzdálenější budoucnosti. Jestli čekání bude mít smysl, anebo se všichni zájemci o čistě webové multimediální komunikační aplikace stali rukojmími při konkurenčním boji Googlu a Microsoftu, ukážou až následující měsíce… reálněji ale spíše roky.

Autor článku

Autor je nezávislý novinář a publicista věnující se informatice, elektronice a telekomunikacím. V těchto oborech i podniká, přičemž mezi open source projekty nachází atraktivní řešení pro své zákazníky. Pro Root.cz pravidelně píše od roku 2012.