Chrome se už dnes umí spojit nejen s kamerou a mikrofonem, ale skrze technologii WebUSB také s mnoha dalšími periferiemi počítače. Aby toho nebylo málo, prohlížeče postavené na jádře Chromium si jako jediné poradí i s Web Bluetooth a brzy dorazí ještě něco mnohem zajímavějšího.
Stručně řečeno, možná je už pomalu ta správná doba, abychom webovým prohlížečům přestali říkat prohlížeče, protože to jsou opravdu spíše operační systémy, ve kterých může pomalu běžet téměř cokoliv.
Vývojáři se před pár dny pochlubili, co přináší Chrome 94 Beta, jehož novinky se postupně promítnou i do stabilní verze. A zní to poměrně zajímavě, někde okolo stabilní kulaté stovky bychom se totiž měli snad všichni do jednoho dočkat jednoho z posledních pilířů, který ve webovém prohlížeči zatím chyběl.
WebGPU: Webová grafická karta
Chrome 94 Beta (a samozřejmě další testovací verze včetně samostatného Chrome Canary) totiž nabízí WebGPU. Jak už název napovídá, tato technologie by měla ve webovém prohlížeči zpřístupnit grafickou kartu.
Základní ukázky WebGPU včetně zdrojových kódů
Možná teď někteří z vás kroutí hlavou, že to přece Chrome, Firefox a další dávno umějí skrze WebGL. Ale pozor, WebGL je pouze slabý odvar. Technologie, která do prohlížečů bez potřeby Flash Playeru a dalších pluginů přinesla 3D grafiku, nám už za ty roky zároveň poněkud zestárla.
Zestárla nám v tom smyslu, že nabízí jen relativně omezený výčet API, jak se spojit s GPU, a hlavně je určená opravdu k tomu, aby všemožné hejbala polygony a kreslila relativně základní 3D. Jenže současné grafické karty toho přece dělají mnohem více. Jako akcelerátory slouží třeba i pro zpracovávání neuronových sítí a strojového učení.
DirectX 12, Metal a Vulkan přímo v prohlížeči
Suma sumárum, inženýři dali hlavy dohromady a zrodil se náčrt technologie WebGPU, která do webového prohlížeče dostane to, co dnes na desktopu zvládne v případě Windows vrstva DirectX/Direct3D 12, respektive Metal na Applu a Vulkan jakožto nástupce OpenGL u ostatních platforem.
WebGPU by mělo jako nástupce WebGL zpřístupnit pokročilé funkce grafických karet skrze DirectX 12 (Windows), Metal (Apple) a Vulkan (Windows, Linux, nástupce OpenGL)
WebGPU je použije právě jako své surové podloží a nabídne jedno univerzální API pro vývojáře webových aplikací.
WebCodecs: A/V kodéry a dekodéry v Chromu
Aby toho nebylo málo, Chrome 94 Beta přináší ještě jednu zajímavou technologii, která by mohla do webových prohlížečů dostat doposud nevídané funkce. Jmenuje se WebCodecs a jak už název napovídá, tentokrát se jedná o nízkoúrovňovou práci s obrazem a zvukem videa.
Opět, abychom byli féroví, práce s multimédii je už dnes v prohlížečích vskutku ohromující – tedy alespoň když si uvědomíme, co uměly prohlížeče řekněme před směšnými pěti lety.
Multimediální API v Chromu už dnes zvládne nevídané kousky
Abych byl konkrétnější – a budu se držet opět Chromu, protože podpora se může u ostatních lišit –, vývojáři multimediálních aplikací mají už dnes k dispozici třeba rodinu MediaStream Recording API, pomocí které mohou přímo v prohlížeči nahrávat video z připojené kamery a zvuk z mikrofonu, anebo klidně i dění na obrazovce.
V Javascriptu už dnes nahrajete třeba video z kamery, zvuk z mikrofonu a vše uložíte do MP4
Výsledek pak snadno uloží jako hotové MP4 video. To vše na pár řádcích kódu v Javascriptu. Nevěříte? Tak si to vyzkoušejte sami v ukázce níže, kterou jsem umístil na slu6bu JSFiddle.
Nahrávač obrazu z kamery a zvuku do MP4 v Javascriptu:
V podstatě jsem jen zjednodušil a v češtině okomentoval ukázku od Antonia Pirase. Na jeho webu najdete kompletní kód, který je jen o trošku delší a umí nahrávat i dění na obrazovce.
Multimediální webové technologie v současných webových prohlížečích tedy už dnes umějí nahradit desktopový program pro nahrávání videa z laptopové/USB kamery a levou zadní se promění i ve screencastovací program.
Chrome už dnes umí zachytávat dění na obrazovce, takže to zvládne i javascriptová aplikace
Žádný si nemusíte instalovat – můžete si jej totiž celý naprogramovat. Ostatně, my se k tomu vrátíme i v některém z příštích pokračování našeho seriálu o programování elektroniky.
Webová podoba Premiere Pro? Teoreticky ano
Jednu věc ale tyto technologie neumějí. Nezvládnou na té nejnižší úrovni pracovat s jednotlivými políčky obrazu a zvuku a jejich pixely, no a právě to přinese v úvodu druhá zmíněná technologie WebCodecs.
Základní schéma funkce webového dekodéru WebCodecs
Vývojáři se dostanou k jednotlivým framům videa a také ke kodekům v operačním systému, což doposud nebylo možné. Tedy bylo – vzniklo několik složitých a relativně neefektivních implementací přímo v Javascriptu nebo WebAssembly.
Nyní to bude opět záležitostí několika řádků v Javascriptu a s přispěním WebGPU a zapojením GPU akcelerace bude v podstatě technicky možné v prohlížeči rozběhnout třeba i pokročilou střižnu videa.
Základní schéma funkce webového enkodéru WebCodecs
Ano, někdy okolo stabilní verze Chromu 99 by už měl webový prohlížeč nabízet v podstatě všechny základní komponenty, aby nad tím vším mohli třeba v takovém Adobe a s trochou nadsázky naprogramovat webovou střižnu Premiere Pro.
I zde je ale potenciál mnohem širší. WebGPU a WebCodecs by měly společně otevřít cestu třeba ještě lepšímu streamování obrazu z cloudu: Ať už aplikací a všemožných vzdálených ploch, tak třeba her.
Jak aktivovat WebGPU
Google bude tyto novinky uvolňovat postupně a v rámci A/B testování podle toho, jak si budou v praxi rozumět s konkrétními modely grafických čipů a jejich ovladači na cílových platformách. Technologie by se ale měla postupně dostat jak na Windows, tak na macOS a Linux.
Připravované technologie si můžete vyzkoušet v Chrome Canary
V testovacích verzích – ideálně právě v samostatném Chrome Canary – by již mělo vše běžet na jedničku podle výkonu vaší grafické karty. Přinejmenším na Windows.
Chrome Canary se instaluje separátně vedle stávajícího Chromu, takže se nemusíte obávat, že by vám jeho testovací verze přepsala funkční prohlížeč. Stejně snadno jej i odinstalujete.
Do Chromu míří WebGPU a WebCodecs. Prohlížeč už bude umět skoro všechno - Živě.cz
Read More
No comments:
Post a Comment