HUR gör Netflix när de sänker bitrate med 30 procent?

Permalänk
Hedersmedlem

HUR gör Netflix när de sänker bitrate med 30 procent?

Som bekant så Netflix sänker videokvaliteten med 30 procent för att avlasta internet. Man kan ha åsikter om huruvida detta är smart, rättvist, proportionerligt eller ens nödvändigt men det är inte det jag vill diskutera här. För de som vill diskutera detta så finns det redan en tråd om detta. I den här tråden vill jag istället fokusera på, en helt annan fråga.

Nämligen: Hur gör Netflix när de sänker bitrate med 30 procent? Rent tekniskt alltså.

Att koda video är ju nämligen inte gratis. Så vitt jag vet (rätta mig om jag har fel!) så är det inte bara att ändra i en konfigurationsfil någonstans så sänks magiskt din bitrate med 30 procent. Man måste koda om videon till en lägre bitrate, något som tar mycket tid och beräkningskraft.

Enligt en artikel jag hittade om Netflix arkitektur från 2018 (Medium: NETFLIX system design (Narendra L)) så sker denna videokodning när en video läggs in i Netflix katalog. Artikeln är från 2018, och är ju skriven lite knackigt, så jag skulle säga att jag inte litar till 100% på att det som står i artikeln är 100% sant, vissa grejer är lite tveksamma, men själva grundarkitekturen om hur Netflix sitter ihop tror jag stämmer till de delar som är relevanta här. Ett relevant utdrag från artikeln:

Citat:

How Netflix onboard a movie/video:

Before this movie is made available to users, Netflix must convert the video into a format that works best for your device. This process is called transcoding or encoding.

Transcoding is the process that converts a video file from one format to another, to make videos viewable across different platforms and devices.

Whys do we need to do it? why can't we just play the source video?

The original movie/video comes in a high definition format that’s many terabytes in size. Also, Netflix supports 2200 different devices. Each device has a video format that looks best on that particular device. If you’re watching Netflix on an iPhone, you’ll see a video that gives you the best viewing experience on the iPhone.

Netflix also creates files optimized for different network speeds. If you’re watching on a fast network, you’ll see the higher quality video than you would if you’re watching over a slow network. And also depends on your Netflix plan. that said Netflix does create approx 1,200 files for every movie !!!!

När artikelförfattaren skriver med 1200 filer per film gissar jag på att videon delas upp i "stycken" på några sekunder eller minuter var, inte att det finns 1200 olika kvalitetsnivåer. Jag hade inte heller dragit på stora växlar på texten och siffrorna som visas i denna bild i artikeln, jag tror att den kan vara lånad efter en bildgoogling. Bitrates verkar inte stämma med verkligheten eller ens med något som är rimligt.

Vi kan även kombinera detta med en bild från tidigare i artikeln:

Av detta (längst ner i vänstra hörnet) framgår att Netflix gör sin videokodning i Amazons moln offline i en behandlingskö. Huvudsaken som jag ser det är att videomaterialet alltså kodas till olika kvalitetsnivåer "offline", och sedan så skickas de kodade videofilerna upp till Netflix CDN där de i sin tur skickas över till tittarnas enheter för uppspelning.

Om Netflix därför nu sänker sin bitrate med 30% så måste det betyda att antingen så har de redan filer i den kvalitén av andra anledningar, eller så kodar de nu om delar eller hela sitt bibliotek till en lägre bitrate. Det kan också betyda att de bara kodar nyanlända filmer i en lägre bitrate över en övergångsperiod.

Så vad tror ni, vad gör Netflix just nu? Sitter de och kodar om hela deras katalog med lägre bitrate? Eller bara den del som står för lejonparten av deras streams? Eller är det bara nytt material (nya avsnitt tenderar att vara populära?). Eller har jag helt fel och ligger detta i verkligheten till helt annorlunda?

Till sist en påminnelse: I den här tråden vill jag alltså diskutera hur Netflix gör detta, inte huruvida det är en bra eller en dålig idé. Det finns det redan gott om diskussion om i en annan tråd.

Permalänk
Medlem

Netflix kan säkert koda om, eftersom de har ett förhållandevis litet bibliotek jämfört med t ex Youtube.

Visa signatur

Moderkort: Gigabyte X570 Aorus Master | CPU: AMD Ryzen R9 5900X | CPU-kylare: Noctua NH-D15 chromax.black | RAM: Corsair Vengeance LPX 64 GB (4x16) DDR4-3600 CL18 | GPU: Gigabyte RTX 4080 Eagle OC | SSD: 2 x Samsung 970 EVO Plus 1 TB NVMe + Kingston A400 480 GB + Samsung QVO860 1 TB | PSU: EVGA SuperNOVA G2 1000 W Gold | Chassi: Lian Li O11 Dynamic XL | Skärm: BenQ PD3200U @ 3840x2160 + ASUS ROG Strix XG32VQ @ 2560x1440 | Tangentbord: Corsair K68 RGB Cherry MX Red | Mus: Logitech MX Master 2S

Permalänk
Medlem

De kanske använder sig av Pied Pipers algoritm? (Du fattar om du sett Silicon Valley på HBO)

Permalänk
Medlem

Menar du att de inte bara stängt av 720p-4K kvalité? Känns som enklaste lösningen.

Permalänk
Hedersmedlem
Skrivet av cyklonen:

Netflix kan säkert koda om, eftersom de har ett förhållandevis litet bibliotek jämfört med t ex Youtube.

Ja, Youtube har ju gigantiskt mycket video jämfört med Netflix. Det laddas upp flera hundra timmar video varje minut till Youtube.

Jag hittar inga bra siffror på exakt hur mycket videomaterial som finns på Netflix utifrån det jag hittat. Jag har hittat en siffra på 4010 filmer och 1569 TV-serier.

Om vi räknar på 4000 filmer à 2 timmar, och 1500 TV-serier à 20 timmar var (genomsnitt) så får man en väldigt yxig gissning på 8000 + 30000 = 38 000 timmar video. Alltså ungefär vad som laddas upp till Youtube på 1-2 timmar.

Det är ändå väldigt mycket video att koda om!

Permalänk
Hedersmedlem
Skrivet av CymbalCrasher:

Menar du att de inte bara stängt av 720p-4K kvalité? Känns som enklaste lösningen.

De har sänkt sin bitrate med 30% utan att sänka upplösningen. Mer detaljer (och diskussion om detta) i denna artikel: https://www.sweclockers.com/nyhet/29322-netflix-sanker-videok...

Permalänk
Medlem

Rimligtvis har de väl stöd för variabel bitrate för folk med risig uppkoppling? Bara skicka ut lite sämre än vad linan egentligen har plats för.

Visa signatur

I think I'll have myself a beer...

Permalänk
Hedersmedlem
Skrivet av olga32:

Rimligtvis har de väl stöd för variabel bitrate för folk med risig uppkoppling? Bara skicka ut lite sämre än vad linan egentligen har plats för.

Kan man köra variabel bitrate om man gör som Netflix, att man kodar allt videomaterial i förväg? Normalt brukar man ju skickas ner till en lägre kvalitetsinställning (lägre upplösning) om inte bandbredden räcker. Det är inte det Netflix påstår att de gör, utan att de sänker bitrate vid samma upplösning.

Det är ju inte så att de kodar video för alla sina tittare i realtid, det skulle aldrig deras CDN klara, och det skulle vara ett enormt slöseri av beräkningskraft.

Permalänk
Medlem

Kvaliteten hoppar redan dynamiskt mellan olika kvalitetsnivåer beroende på uppkoppling. De har väl ett gäng nivåer färdigkodade, och väljer helt enkelt en nivå lägre som standard.

Visa signatur

Chassi: DAN A4 | MB: ASUS VI Impact | GPU: Titan X | CPU: 4770K | RAM: 2x8GB Corsair Vengeance | SSD: Samsung 830 512GB | Skärm: ASUS Swift IPS

Permalänk
Hedersmedlem
Skrivet av xinux:

Kvaliteten hoppar redan dynamiskt mellan olika kvalitetsnivåer beroende på uppkoppling. De har väl ett gäng nivåer färdigkodade, och väljer helt enkelt en nivå lägre som standard.

Har du sett att Netflix redan har olika kvalitetsnivåer med varierande bitrate vid samma upplösning? Jag har trott (killgissat) att de bara har olika upplösningar.

Permalänk
Medlem
Skrivet av xinux:

Kvaliteten hoppar redan dynamiskt mellan olika kvalitetsnivåer beroende på uppkoppling. De har väl ett gäng nivåer färdigkodade, och väljer helt enkelt en nivå lägre som standard.

Självklart är det så här. De har väl ett antal färdigkodade standardformat och det de gjort nu är väl att byta till en lägre standard bara. Skulle ju vara helt orimligt om de satt och encodade on the fly.

Visa signatur

8700K 5Ghz | 32GB 3200Mhz | 2080Ti 11GB | Phanteks Enthoo | Asus PG27AQ

Permalänk
Medlem
Skrivet av pv2b:

Har du sett att Netflix redan har olika kvalitetsnivåer med varierande bitrate vid samma upplösning? Jag har trott (killgissat) att de bara har olika upplösningar.

De olika nivåerna varierar nog i upplösning, men de har säkert minst 2 olika kodningar vid 1080p

Visa signatur

Chassi: DAN A4 | MB: ASUS VI Impact | GPU: Titan X | CPU: 4770K | RAM: 2x8GB Corsair Vengeance | SSD: Samsung 830 512GB | Skärm: ASUS Swift IPS

Permalänk
Medlem

Är ju lätt att ändra bitrate när man själv streamar till tex twitch, så varför skulle inte Netflix kunna göra det?

Visa signatur

I5 9600k@stock / Cooler Master Evo 212 / Gigabyte Z390 Gaming X / Corsair Vengeance LPX 16GB DDR4 3000MHz / MSI RTX2070 Gaming Z / EVGA 550 BQ / Asus VG27BQ 27" 165Hz

Ryzen 5 5600x@stock / Asus Rog Strix X570-E Gaming / Corsair Vengeance RGB Pro 16GB 3600MHz CL18 / MSI RTX3070 Suprim X / BeQuiet Pure Power 11 600W / Asus VG278Q 27" 144Hz

Permalänk
Rekordmedlem

Jag antar att de har en teknik som ökar kvaliten ju mer data som får överföras per tidsenhet, man ändrar alltså inte upplösningen utan laddar bara mer detaljer i bilden ju mer data som överförs per tidsenhet, då funkar systemet vid olika bandbredder men ger högre detaljnivå ju mer data som kan överföras per tidsenhet.
Det är ju i så fall ganska lätt att minska tiden data överförs per bild till 70 % av den verkligt tillgängliga tiden så har man sänkt bandbreddskraven med 30%
Bilden byggs alltså upp en detaljnivå i taget, på den gamla goda modemtiden så syntes ju detta väldigt tydligt när bilder växte fram i steg med olika detaljnivå.
Jag vet inte om bilden nedan funkar att länka in men öppna den separat om den inte syns, den börjar i vilket fall som väldigt grov men ökar sedan detaljnivån allt eftersom den växer fram och den ändrar inte bildstorleken, på det sättet går det ganska lätt att reglera datamängden utan att behöva röra originalfilerna eller ändra upplösningen och ja jag vet att det är en bild men det är för att illustrera en metod.

Visa signatur

R5 5600G, Asus ROG STRIX X470-F Gaming, WD SN850X 2TB, Seasonic Focus+ Gold 650W, Aerocool Graphite v3, Tittar på en Acer ET430Kbmiippx 43" 4K. Lyssnar på Behringer DCX2496, Truth B3031A, Truth B2092A. Har också oscilloskop, mätmikrofon och colorimeter.

Permalänk
Medlem
Skrivet av pv2b:

Har du sett att Netflix redan har olika kvalitetsnivåer med varierande bitrate vid samma upplösning? Jag har trott (killgissat) att de bara har olika upplösningar.

Det behöver inte stämma, kan mycket väl vara så att dom har flera versioner vid samma upplösning. Nu vill man iof minimera detta, då det såklart är billigare att ha så få versioner som möjligt. Netflix är ju väldigt duktiga på att dela med sig på sin tech blog, borde gå att hitta information där. Men det är ganska troligt att dom har flera steg för t ex 1080p.

Skrivet av pv2b:

Det är inte det Netflix påstår att de gör, utan att de sänker bitrate vid samma upplösning.

Har du någon källa på detta? Jag hittar inget om att de lovat att upplösningen kommer vara samma.

Behöver ju inte vara svårare än så att dom tar bort det högsta steget i stegen.

Permalänk
Medlem

De plockar väl bara bort några kvaliteter ur abr-stegen. Hur enkelt som helst. Behövs inte kodas om nånting

Visa signatur

Core i7 7700K | Titan X (Pascal) | MSI 270I Gaming Pro Carbon | 32 GiB Corsair Vengeance LPX @3000MHz | Samsung 960 EVO 1TB

Permalänk
Hedersmedlem
Skrivet av CubaCola:

Är ju lätt att ändra bitrate när man själv streamar till tex twitch, så varför skulle inte Netflix kunna göra det?

Du är en person som streamar en sak; Netflix streamar 140 miljoner timmar video per dag. Att koda om det i realtid vore galet krävande.

Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
Mobil: Moto G200

Permalänk
Geeks
SweClockers
Skrivet av Nioreh83:

De plockar väl bara bort några kvaliteter ur abr-stegen. Hur enkelt som helst. Behövs inte kodas om nånting

Fungerar på samma sätt när du sitter på en dålig uppkoppling och att klienten begär en lägre bitrate. Jag har för mig att det kallas för transrating.

Edit: https://en.wikipedia.org/wiki/Video_optimization#Transrating

Visa signatur

» Kontakta oss » SweClockers på Facebook » SweClockers på Youtube » Blips of SweClockers (Spotify)
» Pappa till Moderskeppet » SweClockers chefredaktör 2007–2015

Permalänk
Medlem

"According to Netflix, the vast number of codec and bitrate combinations can mean having to encode the same title 120 different times before it can be delivered to all streaming platforms."
https://en.wikipedia.org/wiki/Technical_details_of_Netflix

Så en lägre bitstream än "vanlig" finns nog att leverera i de flesta fall.

Permalänk
Medlem

Sänka fpsen med 30%.. för ögat ser ju bara 24 höhö