CodeKitHub
Vardagsverktyg

Komprimera en video till en exakt filstorlek

Senast uppdaterad:

Det här verktyget krymper en video till en filstorlek du väljer — 8 MB, 25 MB, eller vilket eget tal som helst — genom att beräkna exakt vilken bithastighet som krävs och omkoda med ffmpeg som körs direkt i din webbläsare (via ffmpeg.wasm), så videon laddas aldrig upp till en server. Beräkningen följer standardformeln för videokodning (målbithastighet = målstorlek ÷ längd), samma metod som Handbrakes egen dokumentation rekommenderar för storleksbegränsade kodningar. Om du stöter på Discords gratisgräns på 8 MB för uppladdningar, använd förinställningen 8 MB; om en e-postleverantör avvisar en stor bilaga, använd förinställningen 25 MB (Gmails gräns); för allt annat, ange ett eget mål.

Vad är detta verktyg?

En videokomprimerare med målstorlek omkodar en video med den bithastighet som krävs för att landa på (eller strax under) en vald filstorlek, istället för ett generellt 'kvalitets'-reglage som ger en oförutsägbar storlek. Den skillnaden spelar roll när gränsen sätts av någon annan — Discords gratisgräns för bilagor är 8 MB, och de flesta e-postleverantörer, inklusive Gmail, begränsar bilagor till 25 MB — snarare än av hur videon ser ut.

Det här verktyget mäter videons längd, beräknar den totala bithastighetsbudgeten för målstorleken, delar upp den budgeten mellan video- och ljudströmmar, och omkodar med ffmpeg.wasm — WebAssembly-versionen av den öppna källkodsmotorn FFmpeg — som körs helt inuti din webbläsarflik. Ingenting laddas upp; kodningen sker på din egen enhet.

Varför använda det?

  • 100 % lokalt: videofilen lämnar aldrig din enhet — ingen serveruppladdning, ingen storleksgräns som sätts av en hostingkvot.
  • Byggt för verkliga begränsningar: 8 MB (Discords gratisnivå) och 25 MB (Gmail/de flesta e-postleverantörer) är förinställningar med ett klick, plus ett fält för anpassad storlek för alla andra gränser.
  • Använder standardformeln för bithastighet från längd istället för att gissa, med en inbyggd säkerhetsmarginal så att det faktiska resultatet sällan hamnar över ditt mål.
  • Förloppsindikator i realtid under kodningen — ffmpeg.wasm-bearbetning kan ta ett tag för längre klipp, så du vet alltid att den arbetar och inte har fastnat.
  • Visar den exakta utdatastorleken efter komprimering så att du kan bekräfta att den håller sig inom gränsen innan du laddar upp eller bifogar den någon annanstans.

Så använder du det

  1. Klicka på släppzonen (eller dra en fil dit) för att läsa in din video — verktyget läser först dess storlek och längd.
  2. Välj ett mål: 8 MB för Discord, 25 MB för e-post/Gmail, eller ange en egen storlek i MB.
  3. Klicka på Komprimera video och följ förloppsindikatorn — kodningen sker i din webbläsare och kan ta från några sekunder till några minuter beroende på videons längd och din enhet.
  4. När den är klar, kontrollera den rapporterade utdatastorleken och klicka sedan på Ladda ner.

Exempel

Inmatning

clip.mp4 — 42 MB, längd 0:35

Resultat

clip-8MB.mp4 — 7,6 MB

Målet var 8 MB (Discord); verktyget beräknade en videobithastighet på cirka 1,5 Mbps för det 35 sekunder långa klippet, kodade med en 10 % säkerhetsmarginal och hamnade under gränsen med marginal kvar.

Så här beräknas målbithastigheten

Grundformeln är enkel: total bithastighet (kbps) = målfilstorlek (i kilobit) ÷ längd (sekunder). Verktyget tillämpar en säkerhetsmarginal på cirka 10 % på bytebudgeten innan denna beräkning, och drar sedan bort en reserverad ljudbithastighet (normalt 128 kbps, som sänks till 96 eller 64 kbps för mycket små mål så att ljudet inte äter upp för mycket av en snäv budget) för att komma fram till videobithastigheten. Den videobithastigheten skickas till ffmpegs kodare med både ett hårt tak (`-maxrate`) och en buffertstorlek (`-bufsize`) så att korta utbrott av komplex rörelse inte överskrider målet.

En detalj om enhetsomvandling är viktig för alla som använder dessa förinställningar noggrant: plattformars uppladdningsgränser som Discords '8 MB' är i allmänhet binära megabyte (1 MB = 1 048 576 byte, ibland kallade MiB), i linje med hur lagrings- och överföringsgränser vanligtvis anges. Det här verktygets bytebudgetberäkning är medvetet konservativ — den använder den mindre, striktare 1000-baserade megabyten för målbudgeten och lägger säkerhetsmarginalen ovanpå — så resultatet håller sig under gränsen oavsett vilken tolkning av 'MB' som används.

Att välja mål för vanliga plattformar

Om du är osäker på vilken gräns som gäller, kontrollera felmeddelandet som plattformen gav dig — de flesta avvisningar på grund av bilagestorlek anger det exakta taket, som du kan ange direkt som ett anpassat mål.

DestinationTypisk gränsRekommenderat mål
Discord (gratisnivå)8 MB per bilagaFörinställning 8 MB
Discord Nitro50–100 MB beroende på nivåAnpassad storlek
Gmail / de flesta e-postleverantörer25 MB per meddelandeFörinställning 25 MB
Slack (gratis arbetsyta)1 GB (men stora filer gör uppladdningar långsammare)Anpassad storlek, om det ens behövs

Från våra egna tester

Vi genererade ett syntetiskt testklipp med FFmpeg från kommandoraden (en 12 sekunder lång 1280×720-video med tonljud, kodad vid cirka 800 kbps för att skapa en realistisk källfil på flera megabyte) och körde det genom det här verktyget med sikte på Discords förinställning på 8 MB. Resultatet hamnade under 8 MB som förväntat, vilket bekräftar att bithastighetsberäkningen och säkerhetsmarginalen håller i en verklig kodning, inte bara på papper.

Vanliga frågor

Laddas min video upp någonstans?

Nej. Komprimeringen körs med ffmpeg.wasm, en WebAssembly-version av FFmpeg, som exekveras inuti din webbläsarflik. Videofilen läses lokalt och skickas aldrig till en server — du kan till och med koppla från internet efter att sidan och dess motor har laddats en gång.

Varför tar den första komprimeringen tid att starta?

Verktyget läser in ffmpeg.wasm-motorn (cirka 30 MB) första gången du kör en komprimering i en session. Efter den första inläsningen startar efterföljande komprimeringar på samma sida omedelbart.

Kommer resultatet alltid att vara under min målstorlek?

Verktyget reserverar en säkerhetsmarginal (den faktiska bithastighetsbudgeten siktar på cirka 90 % av din valda storlek) eftersom verkliga kodare inte träffar en exakt bithastighet varje bildruta. I det sällsynta fallet att resultatet ändå hamnar något över, välj ett mindre eget mål för att lägga till mer marginal — verktyget varnar dig om detta händer.

Varför just 8 MB för Discord?

Discords gratis (icke-Nitro) nivå begränsar filuppladdningar till 8 MB per bilaga; Nitro-prenumeranter får högre gränser (50 MB eller 100 MB beroende på nivå). Förinställningen 8 MB riktar sig mot gratisnivåns gräns, som de flesta stöter på.

Varför 25 MB för e-post?

25 MB är Gmails bilagegräns och ett vanligt tak hos andra stora leverantörer. Om din leverantör har en annan gräns, använd fältet för anpassad storlek istället.

Skadar komprimering videokvaliteten?

Ja, oundvikligen — att nå en mycket mindre filstorlek än originalet innebär en lägre bithastighet, vilket minskar detaljer och kan introducera synliga komprimeringsartefakter, särskilt vid snabb rörelse eller detaljrika scener. Verktyget väljer bithastighetsfördelningen (video vs. ljud) automatiskt för att hålla kvaliteten så hög som målstorleken tillåter, men ett 42 MB-klipp som tvingas ner till 8 MB kommer att se märkbart mjukare ut än originalet.

Vilket video- och ljudformat producerar det?

Utdata är alltid MP4 med H.264-video och AAC-ljud — den mest kompatibla kombinationen för Discord, e-postklienter och de flesta sociala plattformar.

Relaterade verktyg