8Sep
Står YouTube, värm upp din bärbara dator, sparka dina fans till redskap, eller använd bara mycket CPU?Även om du aldrig har märkt, använder YouTube i Chrome nästan säkert mer batterikraft än vad den behöver. Liksom Chromes andra prestandaproblem är det förmodligen värst på Mac-datorer.
Detta är ett resultat av övergången till HTML5-video och quirks med video codecs som används av YouTube i Chrome jämfört med andra webbläsare. Bär med oss och vi kommer att förklara varför Google gjorde YouTube-uppspelningen så ineffektiv i första hand. Firefox kan ha samma problem också.
HTML5, H.264, VP8 och VP9
YouTube har nu till stor del dumpat Flash-plugin-programmet för HTML5-videouppspelning. Men HTML5-videouppspelning är inte standardiserad. Webbläsare kan välja vilken video codec de vill använda, och det finns inte en enda codec 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 filnamnstillägget. mp4, och kallas ofta MP4-videor. Detta är en de facto industriell standard utöver bara webbläsare.
Safari, Internet Explorer, Microsoft Edge, Chrome och Firefox innehåller alla stöd för att spela H.264-kodade videoklipp, även om Firefox grävde häftarna i och undvikit 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å tryckt egna kodningar. Google köpte VP8-koden och byggde den i Chrome, och Firefox följde efter. Google driver nu nästa generations VP9-kod, som nu också är inbyggd i Chrome och Firefox. Filer som använder denna codec brukar ha. webm filtillägg, och kallas även ibland WebM-filer.
Varför skapade Google VP8 och VP9?
Medan H.264 är en de facto industriell standard har den ett betydande problem. Den underliggande tekniken omfattas av ett stort antal patent. Att använda dessa tekniker - om du byggde dem till en produkt, till exempel - skulle du behöva betala en avgift till H.264-patentportföljen.
Därför höll Mozilla så lång tid 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, vilket gör det möjligt för människor att göra vad de vill ha med det - Google försöker inte ta ut patentavgifter. Cisco betalar faktiskt licensavgifterna och tillhandahåller en gratis plug-in för Firefox-användare. Firefox hämtar automatiskt denna plugin och använder den för att aktivera H.264-support.
VP8 har inte fått traction
Men Google var inte särskilt framgångsrikt med VP8.I början av 2011 meddelade Google att det skulle vara att 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 det aldrig och vi har inte hört någonting om det löftet sedan.
Mozilla kunde fortsätta för att Google skulle följa igenom på sitt löfte, men Google kunde aldrig - istället lät Mozilla relented och lade H.264 support år senare. H.264 är den aktuella standardkoden, som den eller inte - och när du använder en Apple eller Microsoft-webbläsare är den enda tillgängliga. Det är det enda riktiga alternativet för mobila webbläsare. 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ödde H.264.
Det verkliga problemet: Hårdvaruacceleration
Det finns ett enkelt, kärnproblem här. H.264-avkodning( uppspelning) är hårdvaruaccelererad. Det betyder att "arbetet" med att spela en H.264-videofil görs av grafikprocessorn( GPU) på ett mycket effektivare sätt. Om maskinvarokodning inte var tillgänglig skulle CPU-enheten göra allt arbete på ett mindre effektivt sätt. Det innebär att uppspelningen tar mindre CPU-tid, vilket innebär att batteriet slösas bort och att mindre värme genereras. Det kan också innebära en mjukare uppspelning om CPU inte kan fortsätta spela videon.
Egentligen, alla moderna hårdvaruaggregat stöder H.264-hårdvaruaccelererad avkodning. Detta inkluderar alla typer av smartphones, surfplattor, datorer, Mac, och till och med Chromebooks. När en webbläsare - ja, även Chrome - spelar H.264-video, laddas den 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 accelerera VP8 och VP9-videor. När Google meddelade VP8 i mitten av 2010 meddelade en mängd olika 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 apparater någonsin med maskinvaruaccelererad VP8-avkodning.
I Googles senaste meddelande om VP9 noteras det att "Mer än 20 enhetspartners över hela branschen lanserar produkter under 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årdvaruccelererad avkodning av VP9.
Vi sökte efter att hitta maskinvara som stöder hårdvaruaccelererad VP9-avkodning och allt vi fann var att Intel släppte nya Haswell- och Broadwell-drivrutiner för Windows med "delvis ardwarewareware( sic) accelerationsstöd" för VP9 i början av 2015. Det är uppenbarligenmycket mer arbete att göra.
Liksom Chrome: s andra prestandaproblem kan detta vara sämre på en Mac. Chrome-ingenjörer stängde ett fel om hög CPU-användning och värmeproduktion på en MacBook med kommentaren. "CPU-användning under VP9-uppspelning på en Mac är inte en bugg." Det kan vara sant, men Google borde förmodligen inte tjäna alla VP9-videontill Chrome-användare på Mac-datorer 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 Play Video mer effektivt
Det är ett kyckling- och äggproblem, verkligen - tillverkare kommer inte att implementera hårdvaruaccelererad VP9 tills den faktiskt används i den verkliga världen. Google löste problemet genom att lägga till VP8 och VP9 till Chrome och berätta för YouTube att serva VP9 och VP8-videor till Chrome. YouTube kan också servera VP8 och VP9-videor till Firefox.
Det här kan spara lite nedladdningstid, men det betyder att YouTube dränerar mer batteri och CPU-cykler i Chrome. På enheter med särskilt långsamma CPU-enheter kan videor till och med sticka istället för att spela upp smidigt.
För att få effektivare uppspelning kan du bara växla till Safari, Microsoft Edge eller Internet Explorer. Men du behöver inte göra det. Du kan installera webbläsarens h264ify-tillägg för Chrome, vilket kommer att tvinga Chrome att begära H.264-videor från YouTube. De kommer att se ut på samma sätt, men Chrome kommer att spela dem mer smidigt.
Ladda ner h264ify för Chrome, h264ify för Firefox eller hämta projektsidan på GitHub för mer information
Hur ser du om YouTube använder H.264, VP8 eller VP9
För att kontrollera vilken codec YouTube serverar i din webbläsare, höger-klick en YouTube-video under uppspelning och välj "Stats for nerds". Till höger om "Mime Type" visas "Video / mp4" och "AVC" -koden för H.264 / MP4-videor.
För VP8 och VP9-videor ser du "video / webm" och antingen "vp9" eller "vp8".
I longrun kan Googles VP9-push vara bättre för webben och leda till hårdvara som kan ge accelererad avkodning av den här nya codecen. Men i det här laget kanske du vill spara lite batteritid och få din bärbara dator att köra mer effektivt, välja bort Googles experiment och använda H.264-video istället.
Bildkrediter: Esther Vargas på Flickr