8Sep

Hvorfor YouTube i Chrome( og Firefox) dræner din bærbar computer batteri og hvordan du løser det

Stopper YouTube, opvarmer din bærbare computer, sparker dine fans i gear eller bruger bare en masse CPU?Selvom du aldrig har bemærket, bruger YouTube i Chrome næsten helt sikkert mere batteristrøm, end det er nødvendigt. Ligesom Chromes andre ydeevneproblemer er dette sandsynligvis værst på Mac'er.

Dette er et resultat af overgangen til HTML5 video og quirks med video codecs brugt af YouTube i Chrome versus andre browsere. Bær med os, og vi vil forklare, hvorfor Google gjorde YouTube-afspilningen så ineffektiv i første omgang. Firefox kan også have det samme problem.

HTML5, H.264, VP8 og VP9

YouTube har nu stort set dumpet Flash-video plug-in til HTML5 videoafspilning. Men HTML5 videoafspilning er ikke standardiseret. Browsere kan vælge, hvilken video codec de vil bruge, og der er ikke en enkelt codec, som alle browsere foretrækker.

Når YouTube brugte Flash, brugte den H.264 codec til afspilning af videoer. Videoer med denne codec har som regel. mp4 filtypen, og benævnes ofte MP4-videoer. Dette er en de facto industri-dækkende standard ud over bare webbrowsere.

Safari, Internet Explorer, Microsoft Edge, Chrome og Firefox indeholder alt support til at afspille H.264-kodede videoer, selvom Firefox gravede sine hæle ind og undgik at inkludere dette så længe som muligt.

Mens Apple og Microsoft kun understøtter H.264 til videoafspilning i deres browsere, har Google også skubbet egne kodeker. Google købte VP8-codec'en og byggede den i Chrome, og Firefox fulgte med. Google skubber nu næste generations VP9-codec, som nu også er indbygget i Chrome og Firefox. Filer, der bruger denne codec, har normalt. webm filtypen, og kaldes også nogle gange WebM-filer.

Hvorfor skabte Google VP8 og VP9?

Mens H.264 er en de facto industriel standard, har den et betydeligt problem. De underliggende teknologier er dækket af en bred vifte af patenter. For at bruge disse teknologier - hvis du f.eks. Bygger dem til et produkt - skal du betale et gebyr til H.264 patentporteføljen.

Derfor tog Mozilla så lang tid ud mod H.264 - det ønskede, at internettet skulle baseres på en åben standard, der ikke kræver nogen gebyrer. Google udgav VP8 og VP9 med et uigenkaldeligt patentlove, der tillod folk at gøre hvad de vil have med det - Google vil ikke forsøge at udvinde patentgebyrer. Cisco betaler faktisk licensafgifterne og leverer en gratis plug-in til Firefox-brugere. Firefox downloader automatisk denne plugin og bruger den til at aktivere H.264-support.

VP8 har ikke fået traction

Men Google var ikke særlig vellykket med VP8.I begyndelsen af ​​2011 annoncerede Google, at det ville fjerne H.264-understøttelse fra Chrome for kun at understøtte åbne kodeker som VP8 og Theora. Mere end fire år senere gjorde Google det aldrig, og vi har ikke hørt noget om det løfte siden.

Mozilla holdt sandsynligvis fast for, at Google kunne følge med på sit løfte, men Google kunne aldrig - i stedet Mozilla relented og tilføjede H.264 support år senere. H.264 er den nuværende de facto standard codec, ligesom den eller ej - og når du bruger en Apple eller Microsoft browser, er det den eneste tilgængelige. Det er også den eneste rigtige mulighed for mobile browsere. Mange websites har implementeret HTML5-video med kun H.264-support, og Chrome og FIrefox ville blive lukket uden for det, hvis de ikke understøttede H.264.

Det virkelige problem: Hardware Acceleration

Der er et simpelt kerneproblem her. H.264-dekodning( afspilning) er hardware-accelereret. Det betyder, at "arbejdet" med at spille en H.264-videofil gøres af grafikprocessoren( GPU) på en langt mere effektiv måde. Hvis hardwaredekodering ikke var tilgængelig, skulle CPU'en gøre alt arbejdet på en mindre effektiv måde. Det betyder, at afspilningen tager mindre CPU-tid, hvilket betyder mindre batteristrøm spildes og mindre varme genereres. Det kan også betyde en glattere afspilning, hvis CPU'en ikke kan holde øje med afspilningen af ​​videoen.

Virkelig, alle moderne hardware understøtter H.264 hardware-accelereret dekodning. Dette omfatter alle typer smartphones, tablets, pc'er, Mac'er og endda Chromebooks. Når en webbrowser - ja, endda Chrome - afspiller H.264-video, bliver den aflæst til GPU'en. Selv Adobe Flash understøttede hardware acceleration af H.264 video.

Men der er ingen hardware derude, der vil accelerere VP8 og VP9 videoer. Da Google annoncerede VP8 i midten af ​​2010, meddelte en række virksomheder, herunder store navne som nVIDIA, AMD og Qualcomm, at de ville støtte VP8 i deres produkter. Men mere end fem år senere kom der ingen enheder nogensinde med hardware-accelereret VP8-dekodning.

I Googles seneste meddelelse om VP9 bemærker det, at "Mere end 20 enhedspartnere i hele branchen lancerer produkter i 2015 og derefter ved hjælp af VP9." Det samme indlæg bemærker også andre fordele ved VP9, ​​som mindre filstørrelser af samme kvalitet. Intel, nVIDIA, AMD og andre virksomheder har lovet at støtte hardwareaccelereret dekodning af VP9.

Vi søgte at finde hardware, der understøtter hardwareaccelereret VP9-dekodning, og alt vi fandt var, at Intel udgav nye Haswell- og Broadwell-drivere til Windows med "delvis ardwareardware( sic) accelerationssupport" til VP9 i starten af ​​2015. Det er klart, at der er enmeget mere arbejde at gøre.

Ligesom Chromes andre ydeevneproblemer kan det være værre på en Mac. Chrome-ingeniører lukkede en fejl om høj CPU-brug og varmegenerering på en MacBook med kommentaren. "CPU-brug under VP9-afspilning på en Mac er ikke en fejl." Det kan være sandt, men Google må nok ikke betjene alle VP9-videoertil Chrome-brugere på Mac'er, hvis høj CPU-brug er normal. Det opfordrer bare Mac-brugere til at bruge Safari i stedet.

Sådan får du YouTube til at afspille videoer mere effektivt

Det er et kylling og æg problem, virkelig - producenterne vil ikke implementere hardwareaccelereret VP9, ​​før det rent faktisk bliver brugt i den virkelige verden. Google løst dette problem ved at tilføje VP8 og VP9 til Chrome og fortælle YouTube at vise VP9 og VP8-videoer til Chrome. YouTube kan også vise VP8 og VP9-videoer til Firefox.

Dette kan spare nogle downloadtider, men det betyder, at YouTube dræner mere batteristrøm og CPU-cyklusser i Chrome. På enheder med særligt langsom CPU'er kan videoer endda støde i stedet for at afspille jævnt.

For at få en mere effektiv afspilning kan du bare skifte til Safari, Microsoft Edge eller Internet Explorer. Men det behøver du ikke. Du kan installere browserudvidelsen h264ify til Chrome, hvilket vil tvinge Chrome til at anmode om H.264-videoer fra YouTube. De ser det samme ud, men Chrome vil afspille dem mere glat.

Download h264ify for Chrome, hent h264ify for Firefox eller konsulter projektsiden på GitHub for flere detaljer

Sådan ser du om YouTube bruger H.264, VP8 eller VP9

For at se, hvilken codec YouTube tjener til din browser, har du ret-Klik på en YouTube-video under afspilning og vælg "Stats for nerds." Til højre for "Mime Type" vil du se "video / mp4" og "avc" -koden for H.264 / MP4-videoer.

For VP8 og VP9 videoer, vil du se "video / webm" og enten "vp9" eller "vp8".

I den lange runde kan Googles VP9-push være bedre for internettet og føre til hardware, der kan give accelereret dekodning af denne nye codec. Men i nutiden vil du måske spare batterilevetid og få din bærbare computer til at køre mere effektivt ved at vælge Googles eksperiment og bruge H.264-video i stedet.

Billedkredit: Esther Vargas på Flickr