La prima volta che ho convertito una registrazione dello schermo per un client, l'ho fatto come fanno tutti: ha lasciato il MOV in un convertitore, ho aspettato undici minuti e ho inviato l'MP4. Il file era il 40% più piccolo e notevolmente più morbido, e il cliente ha chiesto perché il testo nella demo sembrava sfocato. La risposta era che nulla doveva essere convertito in primo luogo. Il video all'interno di quel MOV era già H.264, che è esattamente ciò che contiene un MP4. Undici minuti di ricodifica avevano buttato via la qualità per produrre un file che avrebbe potuto essere identico al byte in circa due secondi. questa è l'intera idea alla base del convertitore di video innanzi Toolz.dev, e vale la pena capire qualsiasi strumento che usi.
tl; dr: La maggior parte dei file MOV contiene già video H.264 e audio AAC, che è la stessa cosa che contiene un MP4, quindi la conversione tra di loro non richiede la re-encoding. I flussi vengono copiati in un nuovo contenitore, un processo chiamato remuxing. Ci vogliono secondi invece di minuti e non perde nulla, perché nessun pixel viene decodificato o ricompresso. il toolz convertitore di video Copia per impostazione predefinita e ricodifica solo quando i formati lo richiedono davvero e viene eseguito tramite FFmpeg compilato in WebAssembly all'interno della scheda del browser, quindi il video non viene mai caricato.
Che cos'è un contenitore e perché importa?
Un file video ha due livelli e quasi tutte le cose confuse sulla conversione video derivano dal loro confusione.
la contenitore è l'involucro. Contiene i flussi, registra quanto sono lunghi, dove inizia ogni fotogramma, in quale lingua si trova la traccia audio e quale miniatura mostrare. MP4, MOV, WEBM, AVI e MKV sono contenitori. L'estensione sul file nomina il contenitore, non il video.
la codec è la compressione all'interno. H.264, H.265, VP9 e AV1 comprimono l'immagine. AAC, Opus, MP3 e FLAC comprimono il suono. Il codec è ciò che determina se il file viene riprodotto su un determinato dispositivo ed è ciò che richiede tempo per essere modificato.
Una volta separate queste due idee, la domanda utile smette di essere "che formato è questo?" e diventa "quale strato sto cambiando?” Cambiare il contenitore è economico. Cambiare il codec è costoso e con perdita. Uno strumento che non distingue tra loro ti addebiterà ogni volta l'operazione costosa per il lavoro a buon mercato.
Perché il movimento in MP4 è quasi istantaneo?
Perché un MOV e un MP4 sono parenti stretti. Il formato di file era la base per il formato di file multimediale di base ISO, su cui è costruito MP4, quindi i due contenitori organizzano i loro dati quasi allo stesso modo. E gli stream al loro interno sono solitamente gli stessi flussi: una registrazione per iPhone, una cattura dello schermo del Mac, una clip DSLR e un'esportazione di prim'ordine in genere producono tutti video H.264 con audio AAC, sia che lo avvolgano in un .mov o un .mp4.
Quindi la conversione è a rimescolare: Leggi dove inizia e finisce ogni flusso, scrivi quei byte in un nuovo contenitore, scrivi un nuovo indice. Nessun frame viene decodificato. Non viene esaminato alcun pixel. L'output è lo stesso video in un wrapper diverso, ed è senza perdita di dati nel senso stretto che i frame decodificati sono identici bit per bit.
In pratica ciò significa che una clip di due minuti finisce in circa un secondo invece di un minuto o più e la dimensione del file si sposta a malapena, perché i dati video non sono cambiati. Un convertitore che richiede minuti su questo lavoro e restituisce un file più piccolo lo ha ricodificato e il calo delle dimensioni è di qualità che non hai più.
Ecco quando si applica ogni percorso.
| Fonte | bersaglio | Cosa succede | affretta | qualità |
|---|---|---|---|---|
| MOV (H.264/AAC) | mp4 | Remux, flussi copiati | bis | nessuno |
| MP4 (H.264/AAC) | mov | Remux, flussi copiati | bis | nessuno |
| mov o mp4 | Webm | con riferimento a -Codifica in VP9/Opus | minuto | Alcuni, dipende dalle impostazioni |
| QUALSIASI VI | GIF | con riferimento a -Codifica, palette ridotta a 256 colori | minuto | Severo, in base alla progettazione |
| GIF | mp4 | con riferimento a -codifica in H.264 | secondi a un minuto | Minore, solitamente invisibile |
Quando devi ricodificare?
Tre casi e solo tre.
Il contenitore di destinazione non può contenere il codec. WebM accetta VP8, VP9 e AV1 per video e Vorbis o Opus per l'audio. Non accetta H.264. Quindi MP4 in WebM è sempre una vera conversione e ci vorrà del tempo reale.
Il codice sorgente non è H.264 in un wrapper H.264. Un prores mov da una fotocamera, un DV Capture, un vecchio DivX AVI: quei codec in possesso che MP4 possono tecnicamente trasportare in alcuni casi, ma la maggior parte dei giocatori rifiuterà. Convertirli significa decodificare e ricomprimere.
Stai deliberatamente cambiando l'immagine. Abbassando la risoluzione, abbassando il bitrate, modificando il frame rate. Non c'è modo di ridurre un video senza ricomprimerlo, motivo per cui ridurre un file è un lavoro diverso dal cambiare il formato. Per questo, usa il compressore video, che esiste proprio perché la compressione e la conversione sono operazioni diverse che le persone ragionevolmente confondono.
Perché la conversione in GIF è molto peggio di quanto sembri?
Una GIF contiene al massimo 256 colori per l'intera immagine. questo è il limite di definizione del formato, impostato nel Specifica GIF89A nel 1989 e nessun codificatore può aggirarlo. Ogni conversione da video a GIF deve quindi scegliere quali 256 colori dei 16,7 milioni che la fonte può contenere.
Fatto ingenuamente, fotogramma per fotogramma, ogni fotogramma sceglie il suo miglior 256. Il risultato è che la stessa maglia è di un colore leggermente diverso in montature consecutive e l'intera immagine sembra strisciare e luccicare. Questo è il singolo reclamo più comune sull'output video-gif ed è interamente un artefatto di tavolozze per fotogramma.
La correzione è una codifica a due passaggi: scansiona prima l'intera clip, costruisci una tavolozza che lo serva tutto, quindi codifica ogni fotogramma in quella tavolozza condivisa. Il crawl scompare perché i colori smettono di muoversi. Il convertitore Toolz esegue entrambi i passaggi, motivo per cui una GIF da esso richiede un momento più lungo di uno strumento a passaggio singolo e sembra notevolmente più stabile.
La seconda sorpresa è la dimensione. GIF memorizza interi frame piuttosto che le differenze tra loro, senza la compensazione del movimento che rende efficienti i moderni codec video. Una clip di cinque secondi che è di 400 KB come MP4 sarà regolarmente 4 MB come GIF. Il che porta alla conversione che vale la pena fare più spesso di quanto le persone credano.
Dovrei invece convertire una gif in mp4?
Quasi sempre, sì. La stessa animazione codificata come H.264 è in genere un decimo della dimensione, riproduce in linea su browser mobili in cui una grande GIF si blocca o viene strozzata e supporta la decodifica hardware in modo da non riscaldare il telefono. Ogni importante piattaforma social converte silenziosamente le GIF che carichi in video esattamente per questi motivi, il che è un segnale ragionevole su quale formato si adatta al lavoro.
Un dettaglio decide se la conversione funziona. H.264 richiede anche dimensioni pixel, a causa di come lo standard Organizza il campionamento del cromatura e le GIF spesso ne hanno di dispari: una GIF larga 601 pixel è perfettamente normale. Un encoder ha consegnato le dimensioni dispari fallisce a titolo definitivo con un messaggio criptico o riempie silenziosamente il frame. Il convertitore qui arrotonda la dimensione al numero pari più vicino prima della codifica, che è un ritaglio di un pixel che nessuno può vedere e la differenza tra un file e un errore.
il video viene caricato da qualche parte?
No, e questa è la parte che cambia il modo in cui puoi usarlo. La conversione passa FFmpeg compilato in WebAssembly, in esecuzione all'interno della scheda del browser. Il file viene letto dal tuo disco nella memoria di pagina, convertito lì e restituito come download.
che ha tre conseguenze pratiche:
- Niente lascia la tua macchina. Apri DevTools, passa al pannello di rete, converti un file e guarda: nessuna richiesta porta il video. Per i filmati in NDA, demo di prodotti inediti, qualsiasi cosa con una persona che non abbia acconsentito a un caricamento di terze parti, questa è la differenza tra utilizzabile e non.
- Non c'è coda e non size cap. Non stai aspettando dietro i lavori di altre persone e nessun piano ti limita a 100 MB. Il vero limite è la memoria della scheda del browser, che su un normale laptop gestisce comodamente file di poche centinaia di megabyte.
- La prima corsa è più lenta del resto. Il bundle FFmpeg WebAssembly deve essere scaricato una volta, che è di pochi secondi. Successivamente viene memorizzato nella cache e le conversioni successive iniziano immediatamente.
Il commercio è onesto: un server con un codificatore dedicato è più veloce su file molto grandi. Per le clip converte la maggior parte delle persone, il viaggio di andata e ritorno per il caricamento e il download costa più tempo rispetto al salvataggio della codifica.
Quali impostazioni fanno la differenza?
Per un remux, nessuno. Non c'è nulla da configurare, perché nulla viene rideciso.
Per una ricodifica, due.
Risoluzione Fa più di qualsiasi altra impostazione. Dimezzando la larghezza e l'altezza, il numero di pixel e il file segue all'incirca. Passare da 1080p a 720p è il cambiamento più efficace disponibile e sullo schermo di un telefono la differenza è difficile da vedere.
Bitrate o target di qualità è l'altro. La maggior parte degli strumenti lo espone come un dispositivo di scorrimento di qualità piuttosto che un numero, che è la chiamata giusta: un bitrate fisso spreca bit su scene semplici e fa morire di fame di quelle complesse, mentre un obiettivo di qualità spende ciò di cui ogni scena ha bisogno.
Il frame rate è una terza leva che le persone raggiungono e di solito non dovrebbero. La caduta di 30 fps a 15 fps dimezza i frame ma rende visibilmente balbettante il movimento e risparmia meno della modifica della risoluzione perché i frame consecutivi si comprimono comunque bene l'uno contro l'altro.
# What a remux looks like at the command line. -c copy is the whole trick:
# copy the streams, do not decode them.
ffmpeg -i input.mov -c copy output.mp4
# Compare to a real conversion, which decodes and re-compresses every frame.
ffmpeg -i input.mov -c:v libx264 -crf 23 -c:a aac output.mp4
Il primo comando termina all'incirca nel tempo necessario per leggere il file. Il secondo richiede tutto il tempo che il video è complesso. Qualsiasi convertitore basato su browser che vale la pena utilizzare fa la stessa distinzione internamente e il convertitore di video fa.
Cosa succede all'audio quando il contenitore cambia?
Su un Remux, niente. La traccia AAC viene copiata su Byte per Byte insieme al video, motivo per cui una conversione da MOV a MP4 non può degradare il suono: gli stessi dati audio compressi finiscono nel nuovo wrapper.
Da una ricodifica dipende dal target. WebM non può trasportare AAC, quindi l'audio viene ricompresso in opus, e questo è un passaggio lossy applicato all'audio già in perdita. Raramente è udibile al parlato e occasionalmente udibile sulla musica con molti dettagli ad alta frequenza, come i piatti.
A volte l'audio è l'unica cosa che vuoi. Un'intervista registrata che è stata filmata ma verrà pubblicata come podcast, una lezione che desideri sul tuo telefono, una colonna sonora che stai trascrivendo. Convertire l'intero video e quindi scartare l'immagine è il modo lento. la estrattore audio Estrarre direttamente il suono e per le sorgenti MP4 e MOV può copiare la traccia AAC esistente su un M4A senza ricodificare, esattamente lo stesso trucco di un Remux. Se il file che hai è già audio e solo il formato è sbagliato, il convertitore audio gestisce quel lato.
Una cosa che vale la pena sapere: un file video può trasportare diverse tracce audio, per lingue diverse o un commento separato. La maggior parte degli strumenti basati su browser, incluso questo, funzionano con la prima traccia. Se la tua sorgente ne ha più di uno e ne hai bisogno di uno specifico, questo è un lavoro per ffmpeg alla riga di comando con un selettore di flusso esplicito.
Quale formato devi inviare ea chi?
La maggior parte del lavoro di conversione è davvero questa domanda che indossa un travestimento. La risposta onesta è che MP4 con video H.264 e audio AAC è la scelta giusta molto più spesso di qualsiasi altra combinazione, perché è l'unica che suona essenzialmente ovunque senza pensarci.
| Dove sta andando | mandare | perché |
|---|---|---|
| un cliente, un collega, un'e-mail | MP4 (H.264/AAC) | Riproduce su ogni telefono, laptop e browser realizzati in questo decennio |
| Un sito web che controlli | mp4, con webm come seconda fonte | WebM è più piccolo con la stessa qualità, MP4 è il fallback |
| piattaforme sociali | mp4 | Ricodificano tutto ciò che invii, quindi dai loro l'input più pulito |
| Una sequenza temporale di editing | il file originale | Ogni conversione prima della modifica dei costi di qualità che non puoi recuperare |
| Un'app di chat con un limite di dimensioni | mp4, compresso | Cambia la dimensione, non il formato |
| in linea in una firma e-mail o in un readme | MP4 Se consentito, GIF solo in caso contrario | GIF è un ripiego per i luoghi che rifiutano il video, non una scelta |
La riga che salva più dolore è quella di editing. Le persone convertono prima di importarlo, perdono qualità, quindi modificano ed esportano, perdendo di più. Se una sequenza temporale accetta l'originale, dagli l'originale e convertilo una volta alla fine.
L'altro errore comune è la conversione quando intendevi comprimere. "Questo file è troppo grande per il limite di caricamento" non è un problema di formato. La modifica di MOV in MP4 non aiuterà, perché i dati video sono identici. Riducerlo significa ricodificarlo deliberatamente, che è ciò che il compressore video è per o tagliare le parti che non ti servono con il videosaccolo prima. Trenta secondi che tagli sono trenta secondi che nessuno deve codificare e batte qualsiasi impostazione di qualità.
Come si confronta con la conversione delle immagini?
La stessa divisione contenitore contro codec esiste per le immagini, con la stessa conseguenza: alcune conversioni sono economiche e senza perdita, altre buttano via le informazioni. La conversione di un PNG in un BMP mantiene ogni pixel; la conversione in un JPEG non lo fa. la Guida al convertitore di formati immagine copre quel lato e il Guida alla compressione dell'immagine Copre la distinzione senza perdita contro perdita di peso in modo più approfondito di quanto si adatti qui.
La differenza pratica è la scala. Una cattiva conversione dell'immagine ti costa un'immagine. Una cattiva conversione video ti costa undici minuti e un cliente che chiede perché il testo sembra sfocato.
Domande comuni
è meglio mov o mp4? Nessuno dei due, per la maggior parte degli scopi, perché di solito contengono lo stesso video. MP4 ha un supporto più ampio del dispositivo, quindi è l'impostazione predefinita più sicura per la condivisione. MOV è ciò che produce gli strumenti Apple e porta alcuni codec professionali che MP4 non ha.
Perché il mio file convertito è diventato più grande? Hai convertito in un codec o contenitore meno efficiente o in GIF. Un Remux non cambia mai significativamente la dimensione; una codifica per un codec più vecchio può facilmente farla crescere.
Perché il mio MP4 non viene riprodotto su un vecchio dispositivo? Il contenitore va bene, il codec non lo è. Un flusso H.265 in un wrapper MP4 non verrà riprodotto su hardware che decodifichi solo H.264, anche se l'estensione sembra familiare. Questo è il caso più chiaro di importanza degli strati.



