Un cliente una volta mi ha chiesto una breve registrazione dello schermo di un bug. L'acquisizione è stata di 212 MB per quattro minuti, che è ciò che un display retina a 60 fotogrammi al secondo ti costa, e il loro server di posta l'ha rimbalzato due volte prima che avessi capito che il limite di 25 MB nel messaggio di errore non era il numero che dovevo battere. Gli allegati sono codificati da Base64, quindi il file arriva circa un terzo più grande di quello che ha lasciato. Avevo bisogno di essere sotto i 18 MB di circa 25. La registrazione è uscita a 6 MB, 720p, nessun audio e sembrava perfettamente nitida, perché una registrazione sullo schermo di un bug è principalmente una pagina statica con un cursore che si muove su di essa e che si comprime magnificamente. La lezione utile non era un'ambientazione. Era che ognuno di questi lavori ha lo stesso calcolo di tre righe e una volta che puoi farlo, smetti di indovinare.
tl; dr: Un livello di qualità non ti dà una dimensione del file, perché un fattore di velocità costante è un obiettivo di qualità e la dimensione risultante dipende dalla quantità di movimento che il filmato trasporta. Per raggiungere un limite, lavora all'indietro: il bitrate target in kilobit al secondo è la dimensione in byte volte 8, diviso per la durata in secondi, diviso per 1000. Quindi scegli la risoluzione il cui bitrate normale si trova sotto quel numero. Il rilascio di un cursore da 1080p a 720p consente di risparmiare più di qualsiasi cursore di qualità e l'eliminazione dell'audio non è necessario salva più di quanto le persone si aspettino. la compressore video Su Toolz.dev esegue la codifica tramite FFmpeg compilata in WebAssembly nella scheda del browser, mostra la stima prima dell'inizio e non carica mai il file.
Perché un'impostazione di qualità non ti promette mai una taglia?
Perché i due modi più comuni per comprimere un video rispondono a domande diverse e quello che produce risultati migliori è quello che non può dirti la dimensione in anticipo.
bitrate di destinazione La modalità dice: Usa 2 megabit al secondo, qualunque cosa serva. La dimensione è quindi aritmetica, esattamente prevedibile e la qualità oscilla selvaggiamente. Un intertitolo fermo e un colpo di pioggia a mano libera ottengono entrambi 2 Mbps, quindi il titolo ne spreca la maggior parte e la pioggia sembra ghiaia bagnata.
Fattore di tasso costante Mode dice: mantieni questa qualità, spendi tutti i bit di cui hai bisogno. Le cornici facili ottengono pochi bit, le cornici dure ne ottengono molte e l'immagine rimane visivamente anche dall'inizio alla fine. La dimensione è qualunque cosa sia.
Ogni codificatore moderno consiglia il secondo per tutto ciò che non viene trasmesso in streaming dal vivo, ed è ciò che usa il compressore qui. Il costo è che il numero sulla pagina prima di premere il pulsante è una stima, derivata dal bitrate tipico per quella risoluzione e qualità, e la figura reale si muove con il filmato. Una registrazione statica dello schermo atterra regolarmente a metà della stima. Il filmato portatile dell'acqua in movimento può atterrare su di esso. Confetti, neve, fogliame nel vento e grana della fotocamera sono le quattro cose che superano qualsiasi stima, perché tutte sono vicine al rumore casuale e il rumore è l'unica cosa con cui la compressione non può fare nulla.
Cosa sceglie CRF quando scegli un livello?
La scala va da 0 a 51 per H.264 a 8 bit, dove 0 è senza perdita e 51 è inguardabile e il Guida alla codifica FFmpeg H.264 Mette l'impostazione predefinita a 23 e l'intervallo di lavoro sano a circa 17-28. La proprietà che vale la pena memorizzare è che la scala è logaritmica: una variazione di 6 circa dimezza o raddoppia il bitrate. Questo singolo fatto ti dice cosa fa ogni livello prima di provarlo.
Il compressore ne offre tre, non un cursore, perché la differenza tra CRF 26 e 27 è invisibile mentre la differenza tra 23 e 33 è l'intero punto.
| a livello | H.264 CRF | VP9 CRF | Audio | a cosa serve |
|---|---|---|---|---|
| Luce | 23 | 31 | 160 kbps | Archivia le copie e i filmati che modificherai di nuovo. Abbastanza visivamente senza perdite. |
| Bilanciato | 28 | 36 | 128 kbps | la risposta ordinaria. Circa la metà del bitrate di luce e sullo schermo di un laptop devi cercare la differenza. |
| Forte | 33 | 42 | 96 kbps | Colpire un limite difficile. Gli artefatti iniziano a mostrare filmati dettagliati e a nessuno importa durante il caricamento di una chat. |
I numeri VP9 sono una scala separata, motivo per cui sembrano non correlati. Il livello di luce 31 è esattamente ciò che Google Raccomandazioni di codifica VP9 per video on demand Elenca come la qualità target per 1080p e il resto di quella tabella vale la pena mantenere il segnalibro: 32 per 720p, 33 o 34 per 480p, 15 per 4K.
che consente di risparmiare più spazio, qualità inferiore o meno pixel?
Meno pixel, con un ampio margine, e non è vicino.
La risoluzione è una quantità bidimensionale. Passare da 1080p a 720p non è un terzo, ma è di 2,07 milioni di pixel fino a 0,92 milioni, quindi l'encoder ha il 56% in meno di pixel da descrivere prima di prendere una decisione di qualità. Il file segue, all'incirca. Passando da 4K a 1080p rimuove tre quarti di loro.
Ecco cosa atterra una clip di un minuto, in base all'altezza e al livello della sorgente, utilizzando i tipici bitrate da cui stima lo strumento. L'audio è incluso.
| Fonte | Luce | Bilanciato | Forte |
|---|---|---|---|
| 4K (2160p) | 106 MB | 61 MB | 35 MB |
| 1080p | 35 MB | 20 MB | 11 MB |
| 720p | 20 MB | 12 MB | 7 MB |
| 480p | 10 MB | 6 MB | 4 MB |
Leggilo dappertutto e in basso. Spostando un passo verso il basso, la colonna di qualità consente di risparmiare circa il 43%. Spostando un passo verso il basso la colonna di risoluzione consente di risparmiare circa il 42%, che sembra una cravatta fino a quando non si nota che i passaggi di qualità si esauriscono dopo tre e costano artefatti visibili, mentre un passaggio di risoluzione non costa nulla sullo schermo che la maggior parte delle persone guarderà. Una clip a 1080p mostrata in un messaggio Slack viene visualizzata in una casella larga circa 400 pixel.
L'ordine da provare, quindi: lascia cadere la risoluzione su qualunque cosa lo spettatore utilizzerà realisticamente, mantieni la qualità in equilibrio e raggiungi Strong solo se non l'hai ancora fatto.
Come si fa ad atterrare sotto un limite rigido come 8 MB?
lavorare a ritroso. L'intero calcolo è una riga, ed è l'unico pezzo di aritmetica video che vale la pena imparare.
# total bitrate (kbps) = target size (bytes) x 8 / duration (s) / 1000
#
# 8 MB, 45-second clip:
# 8,000,000 x 8 / 45 / 1000 = 1,422 kbps total
# minus 96 kbps of audio = 1,326 kbps for video
#
# 1080p strong is ~1,400 kbps video -> about 8.4 MB. Just over.
# 720p strong is ~800 kbps video -> about 5.0 MB. Comfortable.
#
# the equivalent single pass, if you have ffmpeg installed:
ffmpeg -i input.mp4 -c:v libx264 -crf 33 -preset fast \
-vf scale=-2:720 -c:a aac -b:a 96k \
-movflags +faststart -pix_fmt yuv420p output.mp4
Tre cose lo rendono affidabile in pratica.
- Lascia la testata. Puntare all'80% del limite. CRF non raggiunge un obiettivo di dimensioni e l'unica volta in cui supera è il momento in cui invii il file.
- Conta il sovraccarico di codifica se va via e-mail. Base64 rappresenta ogni 24 bit di input come 4 caratteri, da RFC 2045, quindi un attacco si gonfia di un terzo sul filo. Un limite di cassette postali di 25 MB è di circa 18 MB di file effettivo.
- Non fidarti di un numero che ricordavi. Il limite di caricamento gratuito di Discord è stato di 8 MB, quindi 25 MB, quindi 10 MB, quindi 20 MB ad agosto 2026. Gmail ha tenuto a 25 MB per anni. WhatsApp ricomprime tutto ciò che invii a prescindere. Controlla il limite il giorno in cui ne hai bisogno, quindi fai l'aritmetica.
Se la clip è più lunga della cosa che vuoi mostrare, la mossa migliore è tagliarla piuttosto che spremerla. Dimezzare la durata dimezza le dimensioni a piena qualità, che nessuna impostazione può eguagliare. la videosaccolo Estrarrà l'intervallo senza ricodificare affatto quando il taglio atterra vicino a un fotogramma chiave e il risultato è un filmato identico al byte a metà delle dimensioni.
Abbassare il frame rate aiuta?
Meno di quanto penseresti, e sembra peggio di qualsiasi altra cosa sulla lista.
Il motivo è che i frame consecutivi si comprimono già l'uno contro l'altro. Un codec video memorizza un full frame e poi descrive le differenze, quindi il frame 31 in una clip da 60 fps è quasi gratuito, perché è quasi identico al frame 30. Buttarlo via non salva i bit che immagini salvano. A velocità tipiche il risparmio è più vicino a quello lineare che libero, quindi da 60 fps a 30 fps decolla forse un terzo anziché la metà e da 30 fps a 15 fps ti dà un judder visibile su qualsiasi movimento della fotocamera.
Ci sono due casi in cui è la chiamata giusta. Una registrazione sullo schermo di contenuto per lo più statico non perde nulla di leggibile a 15 fps, ed è esattamente il caso in cui di solito ti stai sforzando di superare un limite. E il filmato che stai convertendo in un'animazione per una pagina, in cui lo spettatore non sta guardando il movimento tanto quanto se ne accorge, sopravvive da 12 a 15 fps bene.
Per tutto ciò che con una persona o una fotocamera si sposta, lascia da solo il frame rate e abbassa invece la risoluzione.
L'audio dovrebbe sopravvivere?
Chiedi a cosa serve l'audio, perché non è gratuito.
Una registrazione di 10 minuti con audio a 128 kbps trasporta 9,6 MB di suono prima che l'immagine riceva un singolo bit. Se quell'audio è un'acquisizione dello schermo silenzioso con ronzio di stanza, o musica che stai per sostituire, o una traccia vocale che hai già trascritto, lasciarlo cadere è il risparmio più semplice disponibile e non costa nulla al visualizzatore. Il compressore ha un interruttore esattamente per quello, che passa -an e omette completamente il flusso audio.
Quando il suono è importante, i livelli lo scendono da 160 a 128 a 96 kbps, che sono i punti convenzionali. 96 kbps AAC è adeguato per la parola e udibilmente sottile sulla musica. Se desideri che l'audio da solo, come file da trascrivere o modificare, il estrattore audio estrae la traccia senza toccare il video e il convertitore audio lo ricodificherà alle sue condizioni.
Un dettaglio cattura le persone. Un video senza traccia audio viene riprodotto in modo silenzioso nella maggior parte dei lettori e non riesce a riprodurre automaticamente in alcuni vecchi browser mobili che si aspettano che una traccia si muti. Se la clip entra in una pagina Web, una traccia silenziosa a 8 kbps a volte è più sicura di nessuna, anche se ogni browser che spedisce oggi gestisce correttamente un MP4 solo video.
vale la pena aspettare web in più?
Dipende interamente da chi apre il file.
VP9 in un contenitore WebM atterra circa un quarto più piccolo di H.264 con una qualità visibile comparabile. Questo è un vero guadagno, e sul tuo sito, dove l'unico requisito è che un browser possa riprodurlo, WebM è solitamente il file migliore. Chrome, Firefox ed Edge supportano VP9 per un decennio e Safari ha dalla versione 14.
Il costo si presenta due volte. La codifica VP9 è più lenta di x264, sostanzialmente in un browser, e un dettaglio fa scattare chiunque esegua il comando a mano: VP9 onora solo un target di qualità quando il bitrate è esplicitamente zero. varcare -crf 36 Da solo e l'encoder utilizza tranquillamente un bitrate predefinito e ti ignora. ha bisogno -crf 36 -b:v 0, che è ciò che lo strumento invia.
Il secondo costo è tutto ciò che non è un browser. App di chat, campi di caricamento CMS, editor video, PowerPoint, il riquadro di anteprima in un file manager, telefono del tuo cliente: molti di questi accettano MP4 e scrollano le spalle a WebM. Se il file va a una persona, invia MP4 con H.264. Se sta andando in una pagina che controlli, WebM. La stessa divisione scorre attraverso l'intero formato domanda, che il Guida Remux Copertine dal lato di conversione.
Perché un MP4 compresso a volte si rifiuta di iniziare a riprodurre?
A causa di dove è finito l'indice, ed è l'unico flag che non dovresti mai lasciare.
Un MP4 mantiene un sommario che descrive dove inizia ogni fotogramma. Scritto normalmente, l'encoder scopre tutto ciò mentre procede e scrive la tabella alla fine del file. per la riproduzione da un disco che va bene. Servito su HTTP, significa che il lettore non può iniziare fino a quando non ha l'intero file, quindi un video da 40 MB in un'app di chat o un CMS si siede lì a non fare nulla durante il download, quindi inizia.
-movflags +faststart Fa un secondo passaggio sopra il file finito e sposta quel tavolo in primo piano. La codifica richiede un momento più lungo e il video inizia a riprodursi dopo un secondo. Ogni MP4 il compressore produce ce l'ha.
Altri due flag in quel comando sono lì per la compatibilità piuttosto che per le dimensioni. -pix_fmt yuv420p Forze 4:2:0 sottocampionamento crominado, perché un MP4 4:2:2 o 4:4:4 è valido e si rifiuta di giocare su una lunga lista di decoder hardware. e il filtro della scala è scritto scale=-2:720 anziché scale=-1:720, perché H.264 richiede anche dimensioni pixel e -2 Arrotonda la larghezza calcolata a un numero pari. Chiedi una larghezza dispari e la codifica fallisce con la "larghezza non divisibile per 2" anziché ridimensionare a qualcosa di vicino.
Perché la compressione due volte sembra molto peggio?
perdita di generazione ed è più ripida di quanto le persone si aspettino perché la compressione con perdita non è idempotente.
Il primo codice butta via i dettagli che giudica l'occhio non mancherà e lascia i propri manufatti: leggero blocco ai bordi, sfumature levigate, che suonano attorno al contrasto elevato. Il secondo codice non ha modo di sapere che questi manufatti non sono l'immagine. Li tratta come contenuti che vale la pena preservare, spendono i pezzi per descriverli e aggiunge il proprio in cima. Tre round di compressione bilanciata sulla stessa clip sembrano peggio di un round di forte, con una dimensione della lima più grande.
Quindi le regole pratiche sono brevi. Comprimi dall'originale ogni volta, mai dalla copia che hai già fatto. Se hai bisogno sia di una versione di archivio leggero che di una versione piccola da inviare, crea entrambi dalla fonte. E se un file è già passato attraverso una piattaforma che si ricomprime sul caricamento, che è la maggior parte di essi, tratta ciò che hai già scaricato come una seconda generazione.
Questa è la stessa aritmetica che governa compressione dell'immagine E il motivo per cui un JPEG salvato si trasforma ripetutamente in fango, e lo stesso motivo per cui il Compressore PDF Funziona sulle immagini all'interno di un documento anziché sul documento nel suo insieme.
Il file lascia la tua macchina?
No, e per il video che cambia ciò per cui è utilizzabile lo strumento.
La codifica passa FFmpeg compilato in WebAssembly, eseguendo nella scheda del browser. Il file viene letto dal tuo disco nella memoria di pagina, codificato lì e restituito come download. Apri DevTools, passa al pannello di rete, comprimi qualcosa e guarda: nessuna richiesta porta il video.
Seguono tre conseguenze.
Non viene caricato nulla, quindi nulla viene mantenuto. Nessuna copia si trova su un server in attesa di un criterio di conservazione per eliminarlo, perché non è stata eseguita alcuna copia. Per una demo del prodotto inedita, filmati in NDA o qualsiasi cosa con una persona che non ha accettato un caricamento di terze parti, questa è la differenza tra utilizzabile e non.
I limiti sono i browser, non un piano. L'intero file va nella memoria a schede, quindi la pagina accetta fino a 500 MB e limita un singolo passaggio a 30 minuti, e controlla entrambi quando scegli il file anziché dopo un download del motore di quattro megabyte e due minuti di codifica. Non ci sono coda, filigrane, nessun account e nessun livello di dimensione da acquistare.
La prima corsa è più lenta. Il bundle di FFmpeg WebAssembly viene scaricato una volta, che richiede alcuni secondi e viene memorizzato nella cache in seguito. Lo strumento lo carica sulla prima compressione anziché quando la pagina si apre, quindi la pagina stessa rimane veloce.
Quando un codificatore desktop è lo strumento giusto?
Quando i numeri sopra smettono di essere il vincolo. Una scheda del browser è un codificatore ragionevole e una cattiva pipeline video e vale la pena essere chiari su dove cade la linea.
Vai nativo per file superiori a 500 MB o clip in mezz'ora, dove la memoria delle schede è il vero limite. Vai nativo per un batch, perché 40 clip attraverso un loop in una shell batte 40 interruzioni attraverso qualsiasi interfaccia. Vai nativo quando hai bisogno di una codifica a due passaggi per raggiungere una dimensione esatta, che un singolo passaggio CRF non può promettere. E vai nativo per la codifica hardware, dove una GPU farà in 20 secondi ciò che WebAssembly richiede quattro minuti.
Per una clip che deve superare un limite nei prossimi cinque minuti, su un laptop, senza installare nulla o consegnare il filmato a uno sconosciuto, il browser è il percorso più veloce di una distanza. questo è il lavoro il compressore è costruito per, accanto al convertitore per cambiare formato e il compressore d'immagine Per lo stesso problema una dimensione in basso.



