Bithastighet, upplösning och bildfrekvens
Vilken av de här inställningarna gör filen mindre, och vilken gör den bara sämre?
En ekvation förklarar det mesta
Filstorleken är, med god approximation, bithastighet gånger speltid. Bithastigheten är hur många bitar per sekund kodaren får spendera; speltiden är hur många sekunder den spenderar dem. Allt annat — upplösning, bildfrekvens, rörelse, codec — ändrar hur bra bilden ser ut vid en given bithastighet, inte hur stor filen blir.
Ett räkneexempel gör det konkret. Ett klipp kodat i 5 megabit per sekund i sextio sekunder innehåller 300 megabit videodata, vilket är 37,5 megabyte, plus ljudspåret och containerns overhead. Det är aritmetik, inte en mätning: samma sextio sekunder i 2 Mbit/s blir 15 MB, oavsett vad som händer i bild.
Upplösning och bildfrekvens är efterfrågan, inte storlek
Att höja upplösningen eller bildfrekvensen gör inte filen större direkt. Det höjer hur många bitar kodaren behöver för att resultatet ska se acceptabelt ut. Ett 4K-klipp i 2 Mbit/s är lika stort som ett 720p-klipp i 2 Mbit/s; 4K-versionen ser bara långt sämre ut, eftersom samma budget sprids över nio gånger så många pixlar.
Det är därför sänkt upplösning är ett så effektivt sätt att krympa en video. Du gör inte filen mindre genom att ändra upplösningen — du gör en lägre bithastighet acceptabel, och väljer sedan den lägre bithastigheten.
| Upplösning | Vid 30 fps | Vid 60 fps |
|---|---|---|
| 3840 × 2160 | 249 miljoner px/s | 498 miljoner px/s |
| 1920 × 1080 | 62 miljoner px/s | 124 miljoner px/s |
| 1280 × 720 | 28 miljoner px/s | 55 miljoner px/s |
| 854 × 480 | 12 miljoner px/s | 25 miljoner px/s |
De siffrorna är kodarens arbetsbörda, och de skalar på det uppenbara sättet. Att halvera bildfrekvensen halverar arbetsbördan; att gå från 1080p till 720p skär ned den till ungefär en tredjedel. Bildfrekvensen har dock en andra effekt: den ändrar hur rörelse känns. Att halvera bildfrekvensen på ett stillsamt talande huvud är nästan osynligt; att halvera den på en snabb panorering syns däremot mycket tydligt.
Vad ett kvalitetsindex faktiskt gör
De flesta moderna kodare föredrar ett kvalitetsmål framför ett bithastighetsmål. Du anger ett kvalitetsindex, kodaren spenderar de bitar den kvaliteten kräver bildruta för bildruta, och den resulterande bithastigheten varierar med innehållet. Det är oftast den bättre inställningen, eftersom den lägger bitarna där bilden behöver dem i stället för att slösa dem på en stillastående bildruta och svälta ut en snabb.
Följden är att ett kvalitetsindex inte talar om filstorleken i förväg. Två klipp kodade med samma index kan skilja sig åt med en stor faktor, och det finns inget sätt att veta utan att koda. Måste du klara en storleksgräns får du antingen koda och kontrollera, eller använda ett bithastighetsmål och acceptera att kvaliteten varierar i stället.
Rörelsen är den dolda variabeln
Videocodecar fungerar genom att beskriva varje bildruta som en skillnad mot tidigare bildrutor. När lite förändras — en fastlåst kamera, en presentation, ett ansikte mot en slät vägg — är skillnaderna små och kodaren behöver mycket få bitar. När allt förändras — en handhållen panorering, konfetti, regn, vatten, lövverk i vind, en scenklippning varje sekund — går nästan ingenting att förutsäga och bithastigheten klättrar.
- Korn och sensorbrus beter sig som rörelse: de ändrar varje pixel i varje bildruta och är dyra att koda.
- Ett skakigt handhållet klipp kostar långt mer än samma motiv filmat på stativ.
- Skärminspelningar av mestadels stillastående gränssnitt är extremt billiga ända tills något rullar.
- Toningar och övergångar är dyrare än hårda klipp, eftersom varje pixel ändras en aning under en sekund eller mer.
Ljudet är litet, ända tills det inte är det
För de flesta klipp är ljudet ett avrundningsfel: ett stereospår i 128 kbit/s lägger till ungefär en megabyte per minut. Men på ett hårt komprimerat, kort klipp i låg upplösning kan det bli en märkbar andel av helheten. Pressar du hårt mot en storleksgräns är det värt att överväga en lägre ljudbithastighet, eller mono, innan du skadar bilden ytterligare. Spelar ljudet ingen roll alls är det en ompaketering att ta bort spåret helt, och det kostar ingenting i kvalitet.
Ett recept som oftast fungerar
- Bestäm den största skärm klippet faktiskt kommer att ses på, och sätt ett tak för upplösningen där.
- Behåll källans bildfrekvens om inte rörelsen är stillsam; att halvera den är en synlig förändring, inte en gratis besparing.
- Koda med ett kvalitetsindex i stället för en bithastighet, och mät sedan resultatet.
- Är resultatet för stort, sänk upplösningen innan du sänker kvaliteten ytterligare.
- Klipp ned klippet. Speltiden är en direkt multiplikator i hela ekvationen, och trettio onödiga sekunder kostar mer än någon inställning.
Så gör du en video mindre för e-post
E-postgränser gäller den färdiga bilagan, så speltiden är det första att kontrollera. Klipp bort allt onödigt och sänk sedan upplösningen till 720p eller 480p när klippet ska ses i ett meddelande snarare än på en stor skärm. Det lägre pixelbehovet låter kodaren använda en betydligt lägre bithastighet utan att förstöra detaljerna.
Missar bilagan fortfarande leverantörens gräns, korta ned den eller dela den via en godkänd filöverföringstjänst. Att koda om samma långa klipp om och om igen i lägre kvalitet ger till slut en fil som ser dålig ut och ändå kan vara för stor, eftersom speltiden hela tiden multiplicerar bithastigheten.
Vad det här inte kan säga dig
Det finns inga rekommenderade bithastigheter i den här guiden, och det är med flit. En rekommenderad siffra beror på codecen, kodarimplementationen, innehållet och visningsförhållandena, och varje siffra som anges utan de fyra sakerna är dekoration. Koda ett trettio sekunder långt utdrag ur ditt eget klipp med två inställningar och titta på båda — den jämförelsen är värd mer än någon tabell som någon annan mätt fram på någon annans material.
Ytterligare en gräns som är specifik för kodning i webbläsaren: din enhet bestämmer takten. Kodning är genuint tungt arbete, telefoner stryper prestandan när de blir varma, och ett långt klipp i hög upplösning kan vara mer än en viss enhet klarar av att slutföra. Det är en hårdvarugräns, inte en inställning du kan justera bort.