Portare un video sotto il limite di caricamento senza tirare a indovinare
Pubblicato il 03/07/2026 · 14 min di lettura · Strumenti per file
Daniel Okonkwo — Sviluppatore front-end e redattore Tech presso OneKitly
Performance web · Formati di file
Verificato su 6 fonti
Smetti di girare il cursore e fai una divisione. La dimensione di un file video è in sostanza il suo bitrate moltiplicato per la durata: limite e durata della clip fissano insieme il bitrate che puoi spendere, prima ancora di aver deciso qualcosa sulla qualità. Converti il limite in kilobit e dividi per i secondi: 25 megabyte su due minuti fanno 25 × 8 000 ÷ 120 = 1 667 kbit/s per tutto ciò che sta nel file. Questo strumento scrive l'audio a 128 kbit/s fissi, quindi toglili e restano 1 539 kbit/s per l'immagine. Ora confronta quel numero con ciò che la tua risoluzione chiede davvero — le raccomandazioni pubblicate da YouTube stanno intorno a 8 000 kbit/s per il 1080p, 5 000 per il 720p e 2 500 per il 480p a cadenza normale — e la risposta arriva da sola: due minuti di 1080p non entrano in 25 MB, il 720p è tirato con meno di un terzo della raccomandazione, e il 480p, al 62 % di essa, è la scelta onesta. Ecco perché la risoluzione è la prima decisione e il cursore della qualità la seconda. Quel cursore è un valore CRF, un fattore di qualità costante: chiede al codificatore una qualità visiva uniforme e lascia che il bitrate vada dove il materiale richiede — ed è esattamente per questo che la guida di codifica di FFmpeg scrive che a questa modalità non si può chiedere una dimensione precisa. Resta utilizzabile come mirino, perché è prevedibile su un punto: aggiungere sei punti dimezza all'incirca il bitrate, toglierne sei lo raddoppia all'incirca. Mira con l'aritmetica, atterra con il cursore, e se il primo tentativo esce al doppio del limite, aggiungi sei e rilancia.
Il cursore della qualità non sa puntare a una dimensione di file: non è il suo compito. Ma il limite e la durata della tua clip fissano già il bitrate che puoi spendere, e una divisione ti dice se la risoluzione che usi può anche solo starci.
La dimensione è bitrate per durata, e quasi nient'altro
Un file video è un flusso di bit riprodotto a un certo ritmo. Moltiplica quel ritmo per la durata della riproduzione e hai il file, a meno della contabilità del contenitore stesso, che in un MP4 normale è una frazione di punto percentuale. Ecco perché la dimensione non è davvero una proprietà che si imposta. È un esito. Le due cose che controlli davvero sono quanti bit passano ogni secondo e quanti secondi ci sono, e tutto ciò che un compressore fa è un modo di spingere sulla prima.
La conversione merita di essere imparata a memoria, perché è tutto il metodo. Un megabyte sono otto milioni di bit, quindi un megabyte sono 8 000 kilobit. Moltiplica il limite in megabyte per 8 000, dividi per il numero di secondi, e il risultato è il bitrate totale in kilobit al secondo che ci sta. Un limite di 25 MB su una clip di 60 secondi consente 3 333 kbit/s. Lo stesso limite su una clip di 10 minuti consente 333 kbit/s. Stesso limite, venti volte meno spazio, e la differenza è tutta nella durata.
Una trappola in quel calcolo è il megabyte stesso. Alcuni sistemi intendono 1 000 000 di byte e altri 1 048 576, uno scarto del 4,9 %, e un servizio raramente dice quale usa. Calcolare con il valore decimale — 8 000 kilobit per megabyte — è la direzione giusta in cui sbagliare: se il servizio intendeva il megabyte grande, il tuo file finisce semplicemente sotto il limite con margine.
Il CRF chiede una qualità, non una dimensione
Il cursore della qualità di questo strumento imposta un fattore di qualità costante. Nel codificatore la scala va da 0 a 51; il cursore ne espone da 18 a 34, cioè la parte che usa chiunque abbia buon senso, e parte da 28. Un numero più basso significa qualità migliore e più bit. La guida di FFmpeg definisce 17 o 18 visivamente senza perdite o quasi, e descrive da 17 a 28 come l'intervallo soggettivamente ragionevole. La proprietà decisiva è cosa significa il numero: è un'istruzione su quanta degradazione tollerare in ogni fotogramma, non su quanti bit produrre.
Ecco perché lo stesso CRF dà dimensioni molto diverse su clip diverse. Due minuti di un'intervista statica a CRF 23 possono finire in pochi megabyte; due minuti di pioggia sull'acqua, coriandoli o una camminata a mano libera in un mercato, allo stesso CRF, possono pesare dieci volte tanto, perché mantenere la stessa qualità visiva attraverso tutto quel movimento costa davvero più bit. Il codificatore fa ciò che hai chiesto. Hai chiesto un aspetto, non un peso. La documentazione di FFmpeg lo dice a chiare lettere: in questa modalità non gli si può imporre una dimensione precisa né un tetto di bitrate.
C'è una regolarità su cui appoggiarsi, ed è il motivo per cui un paio di tentativi convergono così in fretta. La scala CRF è esponenziale: alzarla di sei punti dimezza all'incirca il bitrate, abbassarla di sei lo raddoppia all'incirca. Quella sola regola trasforma un cursore cieco in uno strumento di mira. Sull'intervallo che questo strumento espone, da 18 a 34, si tratta di un fattore di circa 6,3 fra il file più grande e il più piccolo che la stessa clip può produrre.
Risalire dal limite, con un esempio reale
Prendi una clip di tre minuti che vuoi mandare per email. Gmail dichiara un limite di allegato di 25 MB sugli account personali, quindi: 25 × 8 000 = 200 000 kilobit, diviso 180 secondi, fa 1 111 kbit/s in totale. Sottrai i 128 kbit/s che questo strumento dedica all'audio e restano 983 kbit/s per l'immagine. La raccomandazione pubblicata da YouTube per il 1080p a cadenza normale è di 8 000 kbit/s. Ti si chiede di farlo con un ottavo. La clip si codificherà, e sembrerà ripresa attraverso una finestra sotto la pioggia.
Cambia allora la domanda. A 720p la raccomandazione di YouTube è di 5 000 kbit/s e tu ne hai 983: ancora un quinto. A 480p è di 2 500 e ne hai 983, cioè il 39 %: aggressivo, visibilmente più molle, ma guardabile per un parlato o una registrazione di schermo. Quel confronto è la decisione vera, e ci si è arrivati con una divisione. Se la clip deve restare a 1080p, l'unica leva rimasta è la durata: tagliala a 45 secondi e gli stessi 25 MB danno 4 444 kbit/s in totale e 4 316 per l’immagine — vicino alla raccomandazione 720p e poco più della metà di quella 1080p, cioè il punto in cui alzare il CRF smette di essere una crudeltà.
Quando l'aritmetica dice di no
Fai la divisione su una registrazione di trenta minuti contro un limite di 25 MB e ottieni 111 kbit/s in totale: meno di quanto serva al solo audio. Il budget per l'immagine è negativo. Nessuna impostazione di compressione risolve la cosa, e nessuna pazienza la aggiusta, perché la richiesta è aritmeticamente impossibile prima ancora che il codificatore entri in gioco. È il risultato più utile che il metodo produca, e conviene arrivarci prima di passare venti minuti a codificare.
Le risposte oneste a quel punto riguardano tutte la durata o la destinazione. Taglia la registrazione alla parte che conta — lo strumento di taglio lo fa in pochi secondi senza ricodificare nulla, al prezzo di atterrare su un fotogramma chiave invece che esattamente dove hai chiesto. Dividila in parti. Oppure cambia canale: le pagine di aiuto di WhatsApp dichiarano un limite video predefinito di 100 MB e 720p su connessione veloce, e di 64 MB e 480p su connessione lenta, mentre i documenti inviati dalla stessa app arrivano a 2 GB, quindi mandare un video come documento aggira sia il limite di dimensione sia la ricompressione dell'app.
L'opzione che sposta l'indice all'inizio
Ogni MP4 prodotto da questo strumento è scritto con +faststart, e merita un paragrafo, perché è la differenza fra un file che parte e uno che sembra rotto. Un MP4 mette i dati multimediali in una scatola e il suo indice — la tabella che dice dove sta ogni fotogramma, chiamata atomo moov — in un'altra. Per impostazione predefinita il codificatore scrive l'indice per ultimo, perché non può conoscere la disposizione finale prima dell'ultimo fotogramma. Un lettore che legga un file così da un server web deve arrivare in fondo allo scaricamento prima di poter cominciare.
L'opzione faststart fa compiere al codificatore una seconda passata sul file finito per spostare quell'indice all'inizio. La documentazione di FFmpeg la descrive esattamente così, e nota che non è attiva per impostazione predefinita perché quella passata in più richiede tempo. YouTube chiede la stessa cosa nelle sue raccomandazioni di caricamento: l'atomo moov in testa al file, che chiama Fast Start. L'effetto pratico è che il tuo video comincia a riprodursi mentre sta ancora arrivando, invece di mostrare un rettangolo nero fino all'ultimo byte — che è ciò che faranno un'anteprima di caricamento, un client di messaggistica o una pagina web con un file che ne è privo.
Cosa esegue davvero lo strumento, e dove
Non c'è mistero nella catena, eccola quindi per intero. Il compressore codifica l'immagine con libx264 al preset veryfast e al CRF che hai scelto, codifica il suono in AAC a 128 kbit/s, e scrive il risultato come MP4 con l'opzione faststart. È tutto il comando. Il preset è una manopola velocità contro efficienza, non di qualità: un preset più lento darebbe un file leggermente più piccolo allo stesso CRF, e veryfast è il compromesso che evita che una codifica nel browser porti via il pomeriggio.
Quel codificatore è FFmpeg compilato in WebAssembly e gira dentro la pagina, sulla tua macchina. Il motore pesa circa 32 MB ed è servito dall'indirizzo di questo stesso sito e non da una rete di terzi, quindi l'unica cosa che viaggia è il motore che viene da te: il video non va da nessuna parte. La build è a thread singolo, ed è per questo che è più lenta di un codificatore da scrivania che distribuisce il lavoro su tutti i tuoi core, e per questo una clip lunga è davvero un'attesa lunga. Tieni la scheda in primo piano mentre lavora: il compito vive nella pagina e nessun server ti tiene il posto.
| Durata della clip | Sotto 20 MB | Sotto 25 MB | Sotto 100 MB | Gradino più alto che il budget copre davvero |
|---|---|---|---|---|
| 30 secondi | 5 205 kbit/s | 6 539 kbit/s | 26 539 kbit/s | 720p a 20–25 MB, 1440p a 100 MB |
| 1 minuto | 2 539 kbit/s | 3 205 kbit/s | 13 205 kbit/s | 480p a 20–25 MB, 1080p a 100 MB |
| 2 minuti | 1 205 kbit/s | 1 539 kbit/s | 6 539 kbit/s | 360p a 20–25 MB, 720p a 100 MB |
| 5 minuti | 405 kbit/s | 539 kbit/s | 2 539 kbit/s | sotto il 360p a 20–25 MB, 480p a 100 MB |
| 10 minuti | 139 kbit/s | 205 kbit/s | 1 205 kbit/s | taglialo — 360p solo a 100 MB |
| 30 minuti | impossibile — 89 kbit/s in totale, meno del solo audio | impossibile — 111 kbit/s in totale, meno del solo audio | 316 kbit/s | nessuno — sotto il 360p perfino a 100 MB; taglia o dividi |
Domande frequenti
- Perché non posso semplicemente digitare la dimensione che voglio?
- Perché centrare una dimensione esatta richiede che il codificatore veda l'intera clip prima di decidere come spendere i suoi bit, cioè che la codifichi due volte. È ciò che fa la modalità a due passate: la prima misura dove stanno i momenti difficili, la seconda distribuisce il budget di conseguenza. È la risposta giusta quando la dimensione è un requisito rigido, e costa all'incirca il doppio del tempo. Questo strumento fa una sola passata a qualità costante, che è il compromesso adatto a un codificatore nel browser, dove la seconda passata raddoppierebbe un'attesa già lunga. L'aritmetica di questo articolo serve a far atterrare il CRF a una passata dove atterrerebbero le due.
- Il mio file compresso è uscito più grande dell'originale. Come?
- Perché il CRF che hai chiesto era più generoso della qualità che il file aveva già. La compressione non è un cricchetto: il codificatore non sa e non gli importa quanto pesasse l'ingresso, produce semplicemente ciò che costa un dato livello di qualità. Una clip già molto spremuta, uno scaricamento da un'app di messaggistica o una registrazione di schermo dal contenuto quasi statico può richiedere più bit a CRF 23 di quanti ne occupi ora. Alza il CRF. L'altra causa frequente è una traccia audio originariamente inferiore a 128 kbit/s, dato che questo strumento la ricodifica sempre a quel ritmo.
- Abbassare la risoluzione o alzare il CRF?
- Confronta il tuo budget con ciò che la risoluzione richiede e lascia decidere alla differenza. Se il budget è entro un fattore due dalla raccomandazione, alza il CRF: l'immagine si ammorbidisce ma resta con bordi netti. Se è un quinto o meno, abbassa piuttosto la risoluzione: un codificatore affamato a quel punto produce blocchi e sbavature molto più brutte dello stesso materiale reso onestamente a dimensione minore. La regola pratica è che un'immagine con pochi pixel sembra piccola, mentre un'immagine con pochi bit sembra rotta, e lo spettatore perdona molto più volentieri la prima.
- L'impostazione audio conta qualcosa?
- Conta esattamente quando la clip è lunga e il limite è piccolo. A 128 kbit/s il suono costa circa 0,96 MB al minuto, quindi una clip di due minuti spende meno di 2 MB in audio e non interessa a nessuno, mentre una registrazione di venti minuti ne spende oltre 19 di solo audio — ed è per questo che la riga dei trenta minuti della tabella è impossibile a 25 MB. Questo strumento non espone un controllo audio, quindi quando il suono è il problema la risposta è accorciare la registrazione, oppure accettare che un lungo parlato chieda tutt'altro formato ed estrarne la sola traccia audio.
- Il caricamento è fallito anche se il file è sotto il limite indicato.
- Tre cose lo provocano regolarmente. Il limite indicato può valere per l'intero messaggio invece che per ogni allegato, quindi contano anche i tuoi altri file. Il servizio può misurare il caricamento codificato invece del file su disco, il che aggiunge circa un terzo per un allegato di posta. E le cifre pubblicate invecchiano: la pagina di aiuto di Discord sugli allegati, letta il 13 agosto 2026, dichiara che il limite gratuito è ora di 20 MB, alzato da 10 MB nell'agosto 2026, con 50 MB per Nitro Basic e fino a 500 MB per Nitro — mentre un paragrafo più vecchio della stessa pagina dice ancora 10 MB. Quando una pagina si contraddice, mira sotto il numero più piccolo.
Articoli che potrebbero interessarti
Tutte le guide →Strumenti correlati
I limiti di caricamento sono quelli pubblicati da ciascun servizio alla data citata e cambiano senza preavviso: verifica il valore in vigore prima di codificare. I bitrate consigliati sono punti di partenza, non regole: ciò che una clip richiede davvero dipende da quanto movimento e dettaglio contiene.
Fonti
- FFmpeg Wiki — H.264 encoding guide — CRF range 0–51, default 23, ±6 halves or doubles the bitrate, and the statement that CRF cannot target a file size
- FFmpeg — Formats documentation, mov/mp4/ismv muxer — faststart moves the index (moov atom) to the beginning of the file
- YouTube Help — Recommended upload encoding settings — bitrate by resolution, and the moov atom at the front of the file (Fast Start)
- Google — Send attachments with your Gmail message — 25 MB attachment limit on personal accounts (read 13 August 2026)
- Discord — File Attachments FAQ — free upload limit 20 MB as of August 2026, Nitro Basic 50 MB, Nitro up to 500 MB (read 13 August 2026)
- WhatsApp Help Center — How to send media, contacts, or location — 100 MB/720p default video limit on a fast connection, 64 MB/480p on a slow one, documents up to 2 GB (read 13 August 2026)
Hai notato un errore in questo articolo?