Stottert YouTube, warmt je laptop op, trapt het je fans in een versnelling of gebruikt het gewoon veel CPU? Zelfs als je het nog nooit hebt gemerkt, gebruikt YouTube in Chrome vrijwel zeker meer batterijvermogen dan nodig is. Net als de andere prestatieproblemen van Chrome, is dit waarschijnlijk het slechtst op Macs.
Dit is een gevolg van de verschuiving naar HTML5-video en eigenaardigheden met de videocodecs die door YouTube in Chrome worden gebruikt in vergelijking met andere browsers. Wees geduldig en we zullen uitleggen waarom Google het afspelen van YouTube in de eerste plaats zo inefficiënt heeft gemaakt. Firefox heeft mogelijk ook hetzelfde probleem.
HTML5, H.264, VP8 en VP9
VERWANT: 10 dingen die u niet wist dat uw webbrowser nog zou kunnen doen
YouTube heeft de Flash-videoplug-in voor het afspelen van HTML5-video's nu grotendeels gedumpt. Maar het afspelen van HTML5-video's is niet gestandaardiseerd. Browsers kunnen kiezen welke videocodec ze willen gebruiken, en er is niet één codec die alle browsers verkiezen.
Toen YouTube Flash gebruikte, gebruikte het de H.264-codec voor het afspelen van video's. Video's met deze codec hebben meestal de bestandsextensie .mp4 en worden vaak MP4-video's genoemd. Dit is een de facto branchenorm die verder gaat dan alleen webbrowsers.
Safari, Internet Explorer, Microsoft Edge , Chrome en Firefox bieden allemaal ondersteuning voor het afspelen van H.264-gecodeerde video's, hoewel Firefox zijn hielen heeft ingegraven en dit zo lang mogelijk heeft vermeden.
Hoewel Apple en Microsoft alleen H.264 ondersteunen voor het afspelen van video in hun browsers, heeft Google ook zijn eigen codecs gepusht. Google verwierf de VP8-codec en bouwde deze in Chrome, en Firefox volgde dit voorbeeld. Google pusht nu de volgende generatie VP9-codec, die nu ook is ingebouwd in Chrome en Firefox. Bestanden die deze codec gebruiken, hebben meestal de bestandsextensie .webm en worden ook wel WebM-bestanden genoemd.
Waarom heeft Google VP8 en VP9 gemaakt?
Hoewel H.264 een de facto branchenorm is, heeft het een aanzienlijk probleem. De onderliggende technologieën zijn gedekt door een grote verscheidenheid aan patenten. Om deze technologieën te gebruiken - als u ze bijvoorbeeld in een product zou inbouwen - zou u een vergoeding moeten betalen aan de H.264-octrooiportefeuille.
Dat is de reden waarom Mozilla zo lang standhield tegen H.264 - het wilde dat het web gebaseerd zou zijn op een open standaard waarvoor geen kosten waren vereist. Google heeft VP8 en VP9 uitgebracht met een onherroepelijke patentbelofte, waardoor mensen ermee kunnen doen wat ze willen - Google zal niet proberen patentkosten te heffen. Cisco betaalt effectief de licentiekosten en biedt een gratis inpluggen voor Firefox-gebruikers. Firefox downloadt deze plug-in automatisch en gebruikt deze om H.264-ondersteuning in te schakelen.
VP8 heeft geen grip gewonnen
Maar Google was niet bijzonder succesvol met VP8. Begin 2011 heeft Google bekend gemaakt het zou H.264-ondersteuning van Chrome verwijderen om alleen open codecs zoals VP8 en Theora te ondersteunen. Meer dan vier jaar later heeft Google dit nooit gedaan en sindsdien hebben we niets meer over die belofte gehoord.
Mozilla hield waarschijnlijk vast aan Google om zijn belofte na te komen, maar Google kon dat nooit - in plaats daarvan gaf Mozilla toe en voegde H.264-ondersteuning jaren later toe. H.264 is de huidige de facto standaard codec, of je het nu leuk vindt of niet - en als je een Apple- of Microsoft-browser gebruikt, is dit de enige beschikbare. Het is ook de enige echte optie voor mobiele browsers. Veel websites hebben HTML5-video geïmplementeerd met alleen H.264-ondersteuning, en Chrome en FIrefox zouden hiervan worden uitgesloten als ze H.264 niet zouden ondersteunen.
Het echte probleem: hardwareversnelling
Er is hier een eenvoudig kernprobleem. H.264-decodering (afspelen) wordt versneld door hardware. Dit betekent dat het "werk" van het afspelen van een H.264-videobestand op een veel efficiëntere manier wordt gedaan door de grafische processor (GPU). Als hardwaredecodering niet beschikbaar was, zou de CPU al het werk op een minder efficiënte manier moeten doen. Dit betekent dat het afspelen minder CPU-tijd kost, wat betekent dat er minder batterijvermogen wordt verspild en er minder warmte wordt gegenereerd. Het kan ook een soepeler afspelen betekenen als de CPU het afspelen van de video niet kan bijhouden.
Echt, alle moderne hardware ondersteunt H.264 hardwareversnelde decodering. Dit omvat alle soorten smartphones, tablets, pc's, Macs en zelfs Chromebooks. Wanneer een webbrowser - ja, zelfs Chrome - H.264-video afspeelt, wordt deze overgebracht naar de GPU. Zelfs Adobe Flash ondersteunde hardwareversnelling van H.264-video.
Maar er is geen hardware die VP8- en VP9-video's kan versnellen. Wanneer Google bekend gemaakt VP8 halverwege 2010 kondigden verschillende bedrijven, waaronder grote namen als nVIDIA, AMD en Qualcomm, aan dat ze VP8 in hun producten zouden ondersteunen. Maar meer dan vijf jaar later zijn er nooit apparaten aangekomen met hardwareversnelde VP8-decodering.
In Google’s recent Aankondiging van VP9, merkt het op dat "Meer dan 20 apparaatpartners in de branche producten lanceren in 2015 en daarna die VP9 gebruiken." In hetzelfde bericht worden ook andere voordelen van VP9 vermeld, zoals een kleinere bestandsgrootte voor dezelfde kwaliteit. Intel, nVIDIA, AMD en andere bedrijven hebben beloofd hardwareversnelde decodering van VP9 te ondersteunen.
We zochten naar hardware die hardwareversnelde VP9-decodering ondersteunt, en we ontdekten alleen dat Intel nieuwe Haswell en Broadwell heeft uitgebracht. chauffeurs voor Windows met "gedeeltelijke ardwareardware (sic) versnellingsondersteuning" voor VP9 aan het begin van 2015. Er is duidelijk nog veel werk aan de winkel.
Net als de andere prestatieproblemen van Chrome, kan dit op een Mac erger zijn. Chrome-ingenieurs hebben een bug opgelost over hoog CPU-gebruik en warmteontwikkeling op een MacBook met de commentaar "CPU-gebruik tijdens VP9-weergave op een Mac is geen bug." Dat is misschien waar, maar Google zou waarschijnlijk niet al die VP9-video's aan Chrome-gebruikers op Macs moeten aanbieden als een hoog CPU-gebruik normaal is. Dat moedigt Mac-gebruikers aan om in plaats daarvan Safari te gebruiken.
Hoe YouTube video's efficiënter kan afspelen
Het is eigenlijk een kip-en-eiprobleem - fabrikanten gaan pas hardwareversnelde VP9 implementeren als het daadwerkelijk in de echte wereld wordt gebruikt. Google heeft dit probleem opgelost door VP8 en VP9 aan Chrome toe te voegen en YouTube te vertellen VP9- en VP8-video's aan Chrome te leveren. YouTube kan ook VP8- en VP9-video's aan Firefox leveren.
Dit kan wat downloadtijd besparen, maar het betekent dat YouTube meer batterijvermogen en CPU-cycli verbruikt in Chrome. Op apparaten met bijzonder trage CPU's kunnen video's zelfs haperen in plaats van soepel af te spelen.
Om efficiënter af te spelen, kunt u gewoon overschakelen naar Safari, Microsoft Edge of Internet Explorer. Maar dat hoeft u niet te doen. U kunt de h264ify-browserextensie voor Chrome installeren, waardoor Chrome wordt gedwongen H.264-video's van YouTube op te vragen. Ze zien er hetzelfde uit, maar Chrome speelt ze soepeler af.
Downloaden h264ify voor Chrome , krijgen h264ify voor Firefox of raadpleeg de projectpagina op GitHub voor meer details
Hoe u kunt zien of YouTube H.264, VP8 of VP9 gebruikt
Om te controleren welke codec YouTube aan uw browser levert, klikt u tijdens het afspelen met de rechtermuisknop op een YouTube-video en selecteert u 'Statistieken voor nerds'. Aan de rechterkant van 'Mime-type' zie je 'video / mp4' en de 'avc'-codec voor H.264 / MP4-video's.
Voor VP8- en VP9-video's zie je ‘video / webm’ en ‘vp9’ of ‘vp8’.
In de toekomst is de VP9-push van Google misschien beter voor het web en leidt het tot hardware die kan zorgen voor versnelde decodering van deze nieuwe codec. Maar in het heden wilt u misschien wat batterijduur besparen en uw laptop efficiënter laten werken door u af te melden voor het experiment van Google en in plaats daarvan H.264-video te gebruiken.
Afbeelding tegoed: Esther Vargas on Flickr