8Sep

Hvorfor YouTube i Chrome( og Firefox) drenerer batteriets batteri og hvordan du kan fikse det

click fraud protection

Stopper YouTube, varme opp din bærbare datamaskin, spark fansen din til utstyr, eller bruk bare mye CPU?Selv om du aldri har lagt merke til, bruker YouTube i Chrome nesten helt sikkert mer batteristrøm enn den trenger. Som Chromes andre ytelsesproblemer, er dette trolig det verste på Mac.

Dette er et resultat av overgangen til HTML5-video og quirks med video codecs brukt av YouTube i Chrome versus andre nettlesere. Bær med oss, og vi vil forklare hvorfor Google gjorde YouTube-avspilling så ineffektiv i utgangspunktet. Firefox kan også ha det samme problemet.

HTML5, H.264, VP8 og VP9

YouTube har nå stort sett dumpet Flash-plugin-modulen for HTML5-videoavspilling. Men HTML5-videoavspilling er ikke standardisert. Nettlesere kan velge hvilken videokodek de vil bruke, og det er ikke en enkelt kodek som alle nettlesere foretrekker.

Når YouTube brukte Flash, brukte den H.264-kodeken til å spille av videoer. Videoer med denne kodeken har vanligvis. mp4 filtypen, og blir ofte referert til som MP4-videoer. Dette er en de facto industriell standard utover bare nettlesere.

instagram viewer

Safari, Internet Explorer, Microsoft Edge, Chrome og Firefox alle inkluderer støtte for å spille av H.264-kodede videoer, selv om Firefox gravd sine hæler inn og unngikk, inkludert dette så lenge som mulig.

Selv om Apple og Microsoft bare støtter H.264 for videoavspilling i nettleserne, har Google også presset egne kodeker. Google kjøpte VP8-kodeken og bygde den inn i Chrome, og Firefox fulgte etter. Google skyver nå neste generasjons VP9-kodek, som nå også er innebygd i Chrome og Firefox. Filer som bruker denne kodeken har vanligvis. webm filtypen, og kalles også noen ganger WebM-filer.

Hvorfor skapte Google VP8 og VP9?

Mens H.264 er en de facto industriell standard, har den et betydelig problem. De underliggende teknologiene er dekket av et bredt utvalg av patenter. For å bruke disse teknologiene - hvis du bygde dem til et produkt, for eksempel - måtte du betale et gebyr til H.264-patentporteføljen.

Derfor var Mozilla så lenge mot H.264 - det ville at nettverket skulle være basert på en åpen standard som ikke krever noen gebyrer. Google utgitt VP8 og VP9 med et uigenkallelig patentlover, slik at folk kan gjøre hva de vil med det - Google vil ikke prøve å trekke ut patentavgifter. Cisco betaler faktisk lisensavgiftene og gir en gratis plug-in for Firefox-brukere. Firefox laster automatisk ned denne plugin-modulen og bruker den til å aktivere H.264-støtte.

VP8 har ikke fått traction

Men Google var ikke spesielt vellykket med VP8.I begynnelsen av 2011 annonserte Google at det ville være å fjerne H.264-støtte fra Chrome for å bare støtte åpne kodeker som VP8 og Theora. Mer enn fire år senere gjorde Google det aldri, og vi har ikke hørt noe om det løftet siden.

Mozilla var sannsynligvis holdt på for at Google skulle følge gjennom på sitt løfte, men Google kunne aldri - i stedet Mozilla relented og lagt til H.264-støtte år senere. H.264 er den nåværende de facto standardkoden, som den eller ikke - og når du bruker en Apple- eller Microsoft-nettleser, er den den eneste tilgjengelige. Det er det eneste virkelige alternativet for mobile nettlesere også.Mange nettsteder har implementert HTML5-video med bare H.264-støtte, og Chrome og FIrefox vil bli stengt ut av det hvis de ikke støttet H.264.

Det virkelige problemet: Hardware Acceleration

Det er et enkelt, kjerneproblem her. H.264-dekoding( avspilling) er maskinvareaccelerert. Dette betyr at "arbeidet" med å spille av en H.264-videofil gjøres av grafikkprosessoren( GPU) på en mye mer effektiv måte. Hvis maskinvaredekodering ikke var tilgjengelig, måtte CPUen gjøre alt arbeidet på en mindre effektiv måte. Dette betyr at avspilling tar mindre CPU-tid, noe som betyr mindre batteristrøm blir bortkastet og mindre varme genereres. Det kan også bety jevnere avspilling hvis CPUen ikke kan holde tritt med å spille av videoen.

Virkelig, alle moderne deler av maskinvare støtter H.264 hardware-akselerert dekoding. Dette inkluderer alle typer smarttelefoner, tabletter, PCer, Macer og til og med Chromebooks. Når en nettleser - ja, til og med Chrome - spiller H.264-video, blir den lastet ned til GPU.Selv Adobe Flash støttet maskinvareaccelerasjon av H.264-video.

Men det er ingen maskinvare der ute som vil akselerere VP8 og VP9 videoer. Når Google annonserte VP8 i midten av 2010, annonserte en rekke selskaper, inkludert store navn som nVIDIA, AMD og Qualcomm at de ville støtte VP8 i sine produkter. Men mer enn fem år senere kom ingen enheter med maskinvare-akselerert VP8-dekoding.

I Googles nylige kunngjøring av VP9 er det påpekt at "Mer enn 20 enhetspartnere over hele bransjen lanserer produkter i 2015 og utover ved hjelp av VP9." Det samme innlegget viser også andre fordeler med VP9, ​​som mindre filstørrelse for samme kvalitet. Intel, nVIDIA, AMD og andre selskaper har lovet å støtte maskinvare-akselerert dekoding av VP9.

Vi søkte å finne maskinvare som støtter maskinvareaccelerert VP9-dekoding, og alt vi fant var at Intel utgav nye Haswell- og Broadwell-drivere for Windows med "delvis ardwareardware( sic) akselerasjonsstøtte" for VP9 i begynnelsen av 2015. Det er klart at det er enmye mer arbeid å gjøre.

Som Chromes andre ytelsesproblemer, kan dette være verre på en Mac. Chrome-ingeniører sluttet en feil om høy CPU-bruk og varmeproduksjon på en MacBook med kommentaren. "CPU-bruk under VP9-avspilling på en Mac er ikke en feil." Det kan være sant, men Google bør nok ikke vise alle VP9-videoenetil Chrome-brukere på Mac-maskiner hvis høy CPU-bruk er normal. Det oppfordrer bare Mac-brukere til å bruke Safari i stedet.

Hvordan få YouTube til å spille av videoer mer effektivt

Det er et kylling- og eggproblem, virkelig - produsenter skal ikke implementere maskinvareaccelerert VP9 før den faktisk blir brukt i den virkelige verden. Google løste dette problemet ved å legge til VP8 og VP9 til Chrome og fortelle YouTube å vise VP9 og VP8-videoer til Chrome. YouTube kan også vise VP8 og VP9-videoer til Firefox.

Dette kan spare litt nedlastingstid, men det betyr at YouTube drenerer mer batteristrøm og CPU-sykluser i Chrome. På enheter med spesielt sakte CPUer kan videoene til og med stamme i stedet for å spille jevnt ut.

For å få mer effektiv avspilling, kan du bare bytte til Safari, Microsoft Edge eller Internet Explorer. Men du trenger ikke å gjøre det. Du kan installere nettleserutvidelsen for h264ify for Chrome, noe som vil tvinge Chrome til å be om H.264-videoer fra YouTube. De ser det samme ut, men Chrome vil spille dem mer jevnt.

Last ned h264ify for Chrome, få h264ify for Firefox, eller konsulter prosjektsiden på GitHub for flere detaljer

Hvordan se om YouTube bruker H.264, VP8 eller VP9

For å sjekke hvilken kodek YouTube tjener til nettleseren din, til høyre- klikk på en YouTube-video under avspilling og velg "Stats for nerds." Til høyre 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 langrennen kan Googles VP9-push være bedre for Internett og føre til maskinvare som kan gi akselerert dekoding av denne nye kodeken. Men i nåtiden vil du kanskje spare batterilevetid og få den bærbare datamaskinen til å kjøre mer effektivt, ved å velge Google eksperiment og bruke H.264-video i stedet.

Image Credit: Esther Vargas på Flickr