Stammar YouTube, värmer upp din bärbara dator, sparkar dina fans i växel, eller använder bara mycket CPU? Även om du aldrig har lagt märke till använder YouTube i Chrome nästan säkert mer batterikraft än vad den behöver. Liksom Chrome: s andra prestandaproblem är det förmodligen värst på Mac-datorer.
Detta är ett resultat av övergången till HTML5-video och quirks med videokodecerna som används av YouTube i Chrome kontra andra webbläsare. Håll oss med och vi kommer att förklara varför Google gjorde YouTube-uppspelning så ineffektiv i första hand. Firefox kan ha samma problem också.
HTML5, H.264, VP8 och VP9
RELATERAD: 10 saker du inte visste att din webbläsare kunde göra ännu
YouTube har nu till stor del dumpat Flash-video-plugin-programmet för uppspelning av HTML5-video. Men uppspelning av HTML5-video är inte standardiserad. Webbläsare kan välja vilken videokodek de vill använda och det finns inte en enda kodek som alla webbläsare föredrar.
När YouTube använde Flash använde den H.264-codec för att spela upp videor. Videor med denna codec har vanligtvis filtillägget .mp4 och kallas ofta MP4-videor. Detta är en de facto branschomfattande standard utöver bara webbläsare.
Safari, Internet Explorer, Microsoft Edge , Chrome och Firefox har alla stöd för att spela upp H.264-kodade videor, även om Firefox grävde i klackarna och undvek att inkludera detta så länge som möjligt.
Medan Apple och Microsoft endast stöder H.264 för videouppspelning i sina webbläsare, har Google också drivit på sina egna codecs. Google förvärvade VP8-codec och byggde in den i Chrome, och Firefox följde efter. Google driver nu nästa generations VP9-codec, som nu också är inbyggd i Chrome och Firefox. Filer som använder denna codec har vanligtvis filtillägget .webm och kallas ibland även WebM-filer.
Varför skapade Google VP8 och VP9?
Medan H.264 är en de facto branschomfattande standard har den ett stort problem. Den bakomliggande tekniken täcks av ett stort antal patent. För att använda dessa tekniker - om du till exempel byggde dem till en produkt - skulle du behöva betala en avgift till patentportföljen H.264.
Därför höll Mozilla så länge mot H.264 - det ville att webben skulle baseras på en öppen standard som inte krävde några avgifter. Google släppte VP8 och VP9 med ett oåterkalleligt patentlöfte, så att människor kan göra vad de vill med det - Google kommer inte att försöka ta ut patentavgifter. Cisco betalar faktiskt licensavgifterna och tillhandahåller en gratis plug-in för Firefox-användare. Firefox laddar automatiskt ner detta plugin-program och använder det för att aktivera H.264-stöd.
VP8 har inte fått dragkraft
Men Google lyckades inte särskilt bra med VP8. I början av 2011, Google meddelat det skulle ta bort H.264-stöd från Chrome för att endast stödja öppna codecs som VP8 och Theora. Mer än fyra år senare gjorde Google aldrig detta och vi har inte hört något om det löftet sedan dess.
Mozilla höll sannolikt på för Google att följa sitt löfte, men Google kunde aldrig - istället gav Mozilla tillbaka och lade till H.264-support år senare. H.264 är den nuvarande de facto standardkodeken, gillar det eller inte - och när du använder en Apple- eller Microsoft-webbläsare är det den enda tillgängliga. Det är det enda verkliga alternativet för mobilwebbläsare också. Många webbplatser har implementerat HTML5-video med endast H.264-stöd, och Chrome och FIrefox skulle stängas av om de inte stöder H.264.
Det verkliga problemet: hårdvaruacceleration
Det finns ett enkelt kärnproblem här. H.264-avkodning (uppspelning) är hårdvaruaccelererad. Detta innebär att "arbetet" med att spela en H.264-videofil görs av grafikprocessorn (GPU) på ett mycket mer effektivt sätt. Om maskinvaruavkodning inte var tillgänglig skulle processorn behöva göra allt arbete på ett mindre effektivt sätt. Det betyder att uppspelning tar mindre CPU-tid, vilket innebär att mindre batteriström slösas bort och mindre värme genereras. Det kan också betyda mjukare uppspelning om processorn inte kan hålla jämna steg med att spela upp videon.
Egentligen stöder alla moderna hårdvarubaserade H.264 hårdvarubaserad avkodning. Detta inkluderar alla typer av smartphones, surfplattor, datorer, Mac-datorer och till och med Chromebooks. När en webbläsare - ja, till och med Chrome - spelar upp H.264-video, laddas den över till GPU. Även Adobe Flash stödde hårdvaruacceleration av H.264-video.
Men det finns ingen hårdvara där ute som kommer att påskynda VP8- och VP9-videor. När Google meddelat VP8 i mitten av 2010 meddelade en mängd företag, inklusive stora namn som nVIDIA, AMD och Qualcomm, att de skulle stödja VP8 i sina produkter. Men mer än fem år senare kom inga enheter någonsin med hårdvaruaccelererad VP8-avkodning.
In Google’s recent meddelande av VP9, noterar det att "Mer än 20 enhetspartner i hela branschen lanserar produkter 2015 och därefter med VP9." Samma inlägg noterar också andra fördelar med VP9, som mindre filstorlek för samma kvalitet. Intel, nVIDIA, AMD och andra företag har lovat att stödja hårdvaruaccelererad avkodning av VP9.
Vi sökte efter hårdvara som stöder hårdvaruaccelererad VP9-avkodning, och allt vi hittade var att Intel släppte nya Haswell och Broadwell förare för Windows med ”partiell ardwareardware (sic) accelerationsstöd” för VP9 i början av 2015. Det finns helt klart mycket mer arbete att göra.
Precis som Chromes andra prestandaproblem kan det vara värre på en Mac. Chrome-ingenjörer stängde ett fel om hög CPU-användning och värmeproduktion på en MacBook med kommentar "CPU-användning under VP9-uppspelning på en Mac är inte ett fel." Det kan vara sant, men Google borde förmodligen inte betjäna alla dessa VP9-videor till Chrome-användare på Mac om hög CPU-användning är normal. Det uppmuntrar bara Mac-användare att använda Safari istället.
Hur man gör YouTube spela upp videor mer effektivt
Det är verkligen ett kyckling- och äggproblem - tillverkare kommer inte att implementera hårdvaruaccelererad VP9 förrän den faktiskt används i den verkliga världen. Google löste problemet genom att lägga till VP8 och VP9 i Chrome och ber YouTube att servera VP9 och VP8-videor till Chrome. YouTube kan också servera VP8- och VP9-videor till Firefox.
Detta kan spara lite nedladdningstid, men det betyder att YouTube tappar mer batterikraft och CPU-cykler i Chrome. På enheter med särskilt långsamma processorer kan videor till och med stamma istället för att spela upp smidigt.
För att få mer effektiv uppspelning kan du bara byta till Safari, Microsoft Edge eller Internet Explorer. Men du behöver inte göra det. Du kan installera webbläsartillägget h264ify för Chrome, vilket tvingar Chrome att begära H.264-videor från YouTube. De ser likadana ut, men Chrome spelar upp dem smidigare.
Ladda ner h264ify för Chrome , skaffa sig h264ify för Firefox eller konsultera projektsidan på GitHub för mer detaljer
Hur man ser om YouTube använder H.264, VP8 eller VP9
För att kontrollera vilken codec YouTube serverar i din webbläsare högerklickar du på en YouTube-video under uppspelning och väljer "Stats for nerds." Till höger om "Mime Type" ser du "video / mp4" och "avc" codec för H.264 / MP4-videor.
För VP8- och VP9-videor ser du "video / webm" och antingen "vp9" eller "vp8".
På lång sikt kan Googles VP9-push vara bättre för webben och leda till hårdvara som kan ge snabbare avkodning av denna nya codec. Men i nuläget kanske du vill spara lite batteritid och få din bärbara dator att köra mer effektivt genom att välja bort Googles experiment och istället använda H.264-video.
Bildkredit: Esther Vargas på Flickr