Om filmen buffrar

Det händer att filmer stannar upp under uppspelning och buffrar, dvs, läser hem lite mer information om filmen innan uppspelningen kan fortsätta. Vi är verkligen ledsen att detta drabbar dig, det är inte en bra upplevelse. Men har du funderat på varför det här egentligen händer?

Det här är en lång text att läsa men ger dig en god bild om vad som påverkar din upplevelse av video på nätet.

 

Ping och Latency

Ping och latency är två närliggande saker som påverkar din upplevelse av hur snabbt eller långsamt något upplevs på ditt nätverk och på Internet. När du köper en Internetanslutning talar man sällan om ping och latency utan man talar istället om hur många megabit per sekund (Mbps) du köper.

Problemet med att bara ange bandbredden i Mbps är att det är bara en komponent som avgör hur du upplever hastigheten och kvaliteten på anslutningen.

För att förstå skillnaden mellan latency och bandbredd kan du föreställa dig ett vattenrör. Bandbredden (Mbps) är summan av det vatten som kan rinna i vattenröret under en angiven tid, typiskt angivet i minutliter. Om du har en 100 Mbit Internetanslutning så kan du maximalt ladda hem 100 megabit per sekund (i verkligheten är den siffran något lägre, kanske runt 90 pga. av andra faktorer – men det är en annan historia).

 

vattenrör

Latency

Latency är tiden det tar för vattnet från det att kommer in i ena änden och att det kommer ut i andra änden. Om ditt vattenrör bara är 2 dm långt så kommer vattnet ut nästan samtidigt som det fylls på. Men om ditt rör istället är 100 meter långt så tar det några sekunder innan det kommer ut i andra ändan.

Tänk dig nu att du nu istället för att bara fylla på vatten i en jämn ström måste slå på eller av vattnet var 10:e sekund.

Varje gång du gör det så tar det några sekunder att fylla röret igen (i detta exempel föreställer vi oss alltså att vattnet helt försvinner mellan gångerna när trycket försvinner och måste fyllas upp igen när kranen slås på igen).

Om det t.ex. tar 5 sekunder för vattnet att passera röret och du bara kan slå av eller på vattnet var 10:e sekund så kan du bara leverera 5 sekunder av vatten var 10:e sekund.

Ett sätt att lösa problemet i detta exempel kan vara att använda en större vattenledning (större bandbredd). Om ditt mål är att fylla en mängd hinkar t.ex. så kan du på detta sätt fylla fler hinkar snabbare än innan.

Om du å andra sidan försöker ta en dusch så är denna lösning inte lika bra eftersom det är inte är mer vatten du vill ha utan snarare en stadig ström av vatten. Vad du behöver i denna situation är mindre latency – dvs om du bara kan ha vattnet på 10 sekunder i taget så vill du ha 10 sekunder av vatten lagrat i röret.

Låt oss nu för en stund lämna exemplet med ett vattenrör och gå tillbaka till verkligheten. Varje gång du besöker en webbsida, tittar på en film eller laddar hem något, så tar det en viss tid att kontakta servern du besöker och starta nedladdningen av data.

Om du har flera flikar öppna samtidigt i din webbläsare, eller program i bakgrunden som använder Internet så sköter din dator en stor mängd anslutningar. Din dator hanterar både inkommande och utgående trafik och försöker i vissa fall prioritera trafik som måste levereras omedelbart som t.ex. video.

Hur snabbt alla dessa anslutningar tar att starta, och hur snabbt data anländer till din dator och hur snabb din dator är på att hantera denna data är kritiskt för din anslutning – det är den upplevda hastigheten.

Vilket som är viktigast av bandbredd och latency beror på vad du använder Internet till. Om du hämtar stora filer bryr du dig förmodligen mer om bandbredden än om latency. Om du försöker titta på video är båda lika viktiga. Om du spelar onlinespel kan många gånger latency vara viktigare än bandbredden.

 

Ping

Dom flesta operativsystem har ett diagnosprogram som kallas för ”ping” installerat. Programmet nås via kommandoprompten och används genom att skriva t.ex. ”ping sli.se”. Resultatet du får ser ut ungefär så här;

64 bytes from 213.132.99.146: icmp_seq=0 ttl=54 time=11.921 ms
64 bytes from 213.132.99.146: icmp_seq=1 ttl=54 time=10.900 ms
64 bytes from 213.132.99.146: icmp_seq=2 ttl=54 time=11.529 ms
64 bytes from 213.132.99.146: icmp_seq=3 ttl=54 time=10.687 ms

I detta fall så ser vi tiden i millisekunder frekvensen av ping (latency) mellan min dator och sli.se. Programmet ping talar också om för mig ett snittvärde av de antalet ping jag har gjort och om några ping helt misslyckats (förlorade paket).

I regel så motsvarar ping frekvensen fördröjningen (latency) mellan din dator och den server du testar mot. Det här stämmer inte alltid. Prioriteringen av nätverkstrafik eller trafikstockningar innebär att systemet kan ha mycket låg latency vid anslutning till en webbsida eller tjänst (som t.ex. video), men mycket hög latency till en annan webbsida eller tjänst.

 

Jitter

Nu när du förstår lite mer om latency, den tid det tar för ett block med information (paket), att resa på ett nätverk och ping, ett test för att visa latency går vi nu in på ännu en viktig komponent för nätverkskvalitet – jitter.

När datorer, surfplattor och andra nätverksanslutna enheter kommunicerar med varandra, antingen över det lokala nätverket eller tvärs över Internet gör dom det genom att skicka paket.

Många paket, som t.ex. e-post är inte speciellt känsliga för latency. Om du t.ex. surfar på en nyhetssida vill du såklart att webbsidan ska laddas snabbt, men det spelar dig ingen roll om ett paket anländer efter 15ms och ett annat efter 40ms.

Men en del andra saker är mycket känsliga för latency, och det är där jitter kommer in i bilden. Latency är ju tiden det tar för ett paket att färdas mellan punkt A och punkt B medan jitter är skillnaden i tid det tar för ett paket att färdas mellan punkt B och punkt A.

Om du föreställer dig att dator A skickar paket till dator B som en klocka och att varje paket kommer var 8:e ms och dator B svarar som en klocka var 8:e ms tillbaka, då har vi ett läge där bägge datorerna har noll i jitter.

Men om nu dator A fortfarande skickar paket var 8:e ms men en router (Internet och ditt lokala nätverk är full av sådana) mellan dator A och B börjar bli belastad med något annat som t.ex. att någon laddar hem en stor fil så blir resultatet att dator B inte får sina paket lika snabbt eller jämt fördelat över tid som det var innan. Ett paket kanske kommer efter 20ms, ett annat efter 40ms, sen kommer inga paket alls på 50ms och efter det kommer plötsligt 2 paket på samma gång. Nu har vi jitter!

Det här är som vi redan sagt inte så farligt om du surfar eller e-postar, men om du tittar på en video eller spelar ett snabbt onlinespel märker man snabbt av det som spikar och fördröjningar. I ett spel kan det visa sig som att du, eller dina motspelare i ditt bilspel plötsligt oförklarligt förflyttar sig onormalt snabbt eller hackigt.

Vad som händer om du tittar på en video?

buffer

 

Olika sätt att skicka video över Internet

En del videotjänster på nätet använder sk. pseudo streaming. Det innebär att när en klient börjar titta på en video så laddas hela videon hem till klientens dator så fort det bara är möjligt. Det här är inte streaming i dess riktiga bemärkelse då själva filmen/filen egentligen bara laddas hem från en vanlig webbserver (ibland med vissa tillägg för att t.ex. ”spola” i filmen).

Med pseudo streaming så sparas filmen temporärt i din dator. Du känner igen pseudo streaming genom att den fungerar så att du kan starta en film, trycka på paus och ta en kaffe under tiden filmen laddas hem och sedan trycka på play igen när filmen har laddats klart. Tekniken är alltså bra på att buffra mycket men belastar å andra sidan Internetanslutningen mer då innehåll som potentiellt inte ens behövs laddas hem.

Den här tekniken används ofta när filmerna som visas inte är upphovsrättsligt skyddade, dvs. det gör inget att filmen i sin helhet sparas på klientens dator. Youtube är kanske det mest kända exemplet som använder den här tekniken.

Webbsidor som hanterar upphovsrättsligt skyddat material brukar välja en annan teknik där bara en del av filmen laddas hem, och aldrig mer än det som ska visas just nu samt en liten buffert som krävs för att hantera tillfälliga kapacitetsproblem. SLI.SE använder denna teknik liksom många andra kommersiella aktörer som t.ex. Netflix, mfl.

Nackdelen är att den tekniken är känsligare mot kapacitet/kvalitetsproblem på Internetanslutningen eftersom den buffer som används kanske inte räcker för att överbrygga kapacitetsproblem. Om kapaciteten faller under den nivå som krävs för att spela upp filmen löpande, då händer det här;

 

buffer

 

För att hantera den här situationen överbryggar man problemet genom att helt enkelt välja att titta på filmen i en lägre kvalitet. På SLI.SE kan du i spelaren välja mellan olika kvaliteter i nedre vänstra hörnet. Om filmen börjar buffra under uppspelning, då har du helt enkelt inte kapacitet nog att spela filmen i den valda kvaliteten.

 

Adaptiv streaming

Adaptiv streaming är när spelaren automatiskt väljer åt dig, direkt under uppspelning en lägre eller högre kvalitet, allt baserat på din nuvarande kapacitet.

Kända exempel på att använda denna teknik är t.ex. Netflix, SVT Play, TV4 Play, mfl. SLI använder också denna teknik med undantag för ett fåtal filmer som successivt kommer att fasas ut.

Adaptiv streaming kan inte lösa problemet med att kapaciteten inte är god nog för att överföra filmen till klienten. När kapaciteten minskar så väljs en lägre kvalitet ner till den nivå att det börjar bli svårt att se detaljer som t.ex. ansiktsdrag. I regel leder detta till att filmen kan spelas upp utan att filmen stannar, men med en till slut väldigt dålig kvalitet. Till slut räcker inte ens denna teknik utan även med adaptiv streaming så händer det att filmen buffrar om kapaciteten inte är god nog.

 

SLI Cache Server

SLI erbjuder en lösning vi kallar SLI Cache Server. Den finns i 2 varianter, antingen som adaptiv streaming eller som statisk stream där bästa kvalitet alltid levereras till klienten.

SLI Cache Server innehåller en fullständig uppsättning av de filmer som streamas till klienten och placeras i kommunens interna nätverk. I och med dess placering så uppnås flera fördelar.

• SLI sparar extern bandbredd, då filmen spelas upp från den lokalt placerade cache-servern
• Kommunen sparar extern bandbredd, då filmen spelas upp från den lokalt placerade cache-servern
• Klienten får bästa möjliga kvalitet, med minsta möjliga ping, jitter och latency

SLI är geo-medveten och väljer alltid närmaste stream server. Om klienten finns inom kommunens nätverk spelas filmen upp på SLI Cache Server. Om klienten loggar in via t.ex. mobilanslutning eller hemifrån spelas filmen upp från SLI:s serverpark och belastar heller inte då kommunens Internetförbindelse.

Lösningen SLI erbjuder kostar från 2500 SEK / månad och kan avlasta kommunens bandbredd med upp till så mycket som 600 Mbps per server. Kostnaden motsvarar en bråkdel av vad motsvarande kapacitet till Internet kostar – en ren besparing alltså!

Alla kommuner borde ha en SLI Cache Server!

 

Delar av denna text är hämtad och översatt från Ookla.



Dela artikeln om du gillade den!Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInDigg thisShare on StumbleUponEmail this to someone