Test: Flash není horší než HTML5. Ale ani lepší

Je náročnější Flash Player, nebo HTML5 video? To je věčná otázka komunitních válek v diskuzích. Odpověď je poněkud neurčitá, protože záleží i na webu, kodeku a prohlížeči.

Před pár dny Adobe odstranil svůj Flash Player z katalogu Google Play a symbolicky tak završil jepičí éru Flashe na mobilních zařízeních. Při této příležitosti se nabízí otázka, jestli je už tedy svět připravený na to, aby Flash definitivně odešel do počítačového záhrobí.

Majitelé chytrých telefonů nejspíš odpoví, že tomu tak skutečně je, hlavní multimediální weby totiž svůj videoobsah nabízejí formou aplikace, nebo jako HTML5 video. Jiný flashový obsah je sice na mobilech nenávratně pryč, nicméně ten se na kapacitním displeji beztak nikdy neovládal zrovna nejlépe (drtivá většina flashových aplikací má rozhraní upravené pro přesnou myš, nikoliv pro nepřesný dotyk).

Jinak je tomu ale na desktopech, kde Flash Player stále neohroženě vládne a zůstává hlavním způsobem, jak dostat streamované video z multimediálního serveru do prohlížeče. Když bych se čtenářů zeptal, jestli je v takovém případě lepší Flash Player, nebo HTML5, je docela možné, že bych se dočkal tolik typické odpovědi, že Flash Player leda tak vyšťavuje baterku a HTML5 video je prostě bez debat lepší.

Pravda je ale úplně někde jinde. Napsal jsem si primitivní prográmek v C# (projekt pro Visual C# Express si můžete stáhnout zde), který měří postupnou spotřebu CPU času vybraného programu na Windows v milisekundách. Hodnotu zaznamenává každé dvě sekundy a výsledek ukládá do CSV tabulky. Jen připomenu, že kumulovaný CPU čas je vlastně postupně rostoucí doba, kterou procesor věnoval zvolenému programu od jeho startu. Když tedy křivka času v grafu roste jen velmi pomalu, znamená to, že program procesor vytěžuje jen velmi málo. Když naopak vystřelí vzhůru, vytěžuje ho naplno.

programek.png
Chrome zvesela vytěžuje procesor a mně se hodnoty ukládají do textového souboru

Když pak máte po ruce takové časové grafy třeba pro prohlížeč Chrome a přehrávání videa ve Flash Playeru a v HTML5, snadno zjistíte, kdo v průběhu času více vytěžoval procesor a tedy i hypotetickou baterii v notebooku.

Co jsem změřil ve svém experimentu? Jednoduše to, že s příchodem HTML5 videa nelze jen tak snadno svalit vinu na některou z technologií. Když na YouTube streamujete video ve Flash Playeru, máte jistotu, že SD video bude nejspíše ve formátu FLV a HD video v MP4/H.264. Toto jsou výchozí kodeky Flash Playeru na všech platformách.

Jenže HTML5 video žádný kodekový standard nemá a záleží pouze na službě samotné, v jakém formátu pošle prohlížeči stream videa. Každý prohlížeč zároveň podporuje různé kodeky a používá různě kvalitní dekodéry videa. Najednou nelze svalit vinu na nějaký doplněk, ale na celý prohlížeč.

IE 9: Flash vs. HTML5 na YouTube

Když jsem tedy měřil přehrávání videa z YouTube v Internet Exploreru 9 (Windows 7), zjistil jsem, že při přehrávání ve Flash Playeru je procesor vytěžován mnohem méně než při přehrávání v HTML5 režimu. V obou případech se přitom jednalo o totožný MP4 soubor. Vše pochopitelně souvisí s rozdílným přístupem ke GPU akceleraci aj.

internet explorer 9 youtube html5 vs flash.png
Internet Explorer a YouTube – v obou případech H.264 video

Chrome: Flash vs. HTML5 na YouTube

Na základě předchozího měření bych nyní mohl konstatovat, že Flash Player je prostě lepší a tečka. Jenže jak už jsem napsal výše, nejde pouze o přehrávací technologii, ale i o prohlížeč a konkrétní dekodér. YouTube při použití HTML5 režimu preferuje vlastní formát Googlu WEBM/VP8, který se přirozeně použije i v Chromu. A kdybych si doinstaloval kodek pro Windows Media Player, tak i v Internet Exploreru.

Při použití Flash Playeru se tedy v Chromu opět dekóduje MP4/H.264 video, ale při použití HTML5 verze WEBM/VP8 video. Jak to dopadlo? Zvítězil opět Flash Player, i když jen o zanedbatelný kus času.

chrome youtube flash html5.png
Chrome a YouTube – H.264 video ve Flashi a VP8 video v HTML5

Chrome: Flash vs. HTML5 na Vimeu

Jenže v jiném případě může vše vypadat úplně jinak. Stačí na chvíli opustit YouTube a vyzkoušet třeba Vimeo, které také nabízí HTML5 režim, nicméně podporuje pouze kodek H.264. tedy žádné VP8 video, Ogg Theora a další exotické formáty. Když jsem měřil vytěžování procesoru na Vimeu, přehrávání H.264 stopy v HTML5 bylo rázem výrazně úspornější než přehrávání naprosto identické H.264 stopy ve Flash Playeru. Jenže vzpomínáte si na první případ s Internet Explorerem? V jeho případě by to zase bylo úplně naopak.

chrome vimeo html5 vs flash player.png
Chrome a Vimeo – H.264 video v obou případech

Suma sumárum, tvrzení, že je Flash Player lepší, nebo horší než HTML5 vždy a jedině závisí na kombinaci: prohlížeč – technologie přehrávání (Flash, HTML5) – webová služba (formát videa).

To však běžného uživatele včetně mě nezajímá, a pokud se nezačne rýpat v kódu, ani se to nedozví. Rozdíly přitom mohou být markantní a při sledování streamovaného večerního filmu na notebooku se může klidně jednat o výrazný kus kapacity baterie.

Diskuze (84) Další článek: Stavíte si počítač? Nová licence Windows 8 je pro vás

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,