Ruotare un video di 90° o 180°: l'indicatore o i pixel
Pubblicato il 10/08/2026 · 11 min di lettura · Strumenti per file
Daniel Okonkwo — Sviluppatore front-end e redattore Tech presso OneKitly
Performance web · Formati di file
Verificato su 3 fonti
Questo strumento ricodifica. Non imposta un indicatore di rotazione. Il comando che costruisce è -i <file> -vf <catena> -c:v libx264 -preset ultrafast -crf 23 -c:a aac -b:a 192k <uscita>, dove la catena vale transpose=1 per un quarto di giro a destra, transpose=2 per un quarto di giro a sinistra, e hflip,vflip per un mezzo giro — due specchi costano meno di due trasposizioni e danno esattamente la stessa immagine, cosa che un confronto fotogramma per fotogramma conferma. Una sorgente WebM segue la stessa via con libvpx e Opus. Spuntare una casella di specchio aggiunge hflip o vflip alla catena. Togliere il suono sostituisce gli argomenti audio con -an. Ogni pixel viene quindi decodificato, spostato e ricompresso: è lento, costa una generazione con perdita, e produce un file che si vede dritto assolutamente ovunque, perché non resta alcun indicatore che un lettore possa ignorare. Due conseguenze da sapere prima di premere. Un quarto di giro scambia le dimensioni memorizzate: un clip 1080x1920 esce in 1920x1080, e lo strumento mostra quello scambio prima di partire. E il file non si rimpicciolisce. Su un clip di prova 1080x1920 di 6 secondi da 493 466 byte, una rotazione di 90 gradi ha prodotto 513 371 byte — il 4 % in più della sorgente, perché il preset ultrafast a CRF 23 spende bit con più larghezza del codificatore che ha fatto l'originale. Il suono è mantenuto ma ricodificato in AAC a 192 kbit/s; non viene mai copiato così com'è.
Ci sono due modi completamente diversi di ruotare un video, e uno solo tocca l'immagine. Questo strumento prende la via lenta, con perdita e universale — e c'è una buona probabilità che il tuo clip da telefono coricato non ne abbia affatto bisogno.
Due operazioni che si somigliano e non c'entrano nulla
Un file video si può ruotare in due modi. Il primo scrive una piccola istruzione nel contenitore — una matrice di visualizzazione, nella famiglia MP4 e QuickTime — che dice «mostra questo ruotato di 90 gradi». I pixel non si toccano, l'operazione dura il tempo di riscrivere qualche decina di byte, ed è perfettamente reversibile. Il secondo decodifica ogni fotogramma, sposta i pixel e li ricomprime. Questo richiede minuti anziché millisecondi, costa una generazione di compressione con perdita, e non si disfa.
Il problema dell'indicatore è che è solo un consiglio. Un lettore deve leggere il contenitore, trovarci la matrice e applicarla, e non tutti lo fanno. I lettori web lo rispettano in modo disuguale, alcuni programmi di montaggio importano i fotogrammi grezzi ignorando l'istruzione, certi decoder e televisori vecchi non l'hanno mai imparata, e qualche strumento la applica una seconda volta sopra un lettore che l'aveva già fatto — è così che un clip finisce a testa in giù. L'indicatore è istantaneo, senza perdita e a volte disatteso; la ricodifica è lenta, con perdita e sempre rispettata. Non esiste una terza via che sia entrambe.
Questo strumento ha scelto la seconda via di proposito, e lo dice in una riga sotto i suoi comandi: la rotazione è scritta nell'immagine stessa, non in un indicatore che alcuni lettori ignorano e altri applicano due volte, ed è per questo che si ricodifica. È una descrizione onesta del codice. La tabella qui sotto espone l'affare per intero, così decidi se lo vuoi prima di spenderci i minuti.
Il tuo clip da telefono coricato forse non va ruotato affatto
È il motivo più frequente per cui si arriva a uno strumento di rotazione, ed è di solito il rimedio sbagliato. Un telefono registra con il sensore in un orientamento fisso e scrive un indicatore di rotazione che descrive come lo tenevi. Il file è quindi corretto: i pixel sono orizzontali, l'indicatore dice «un quarto di giro», e ogni applicazione che legge l'indicatore mostra il video dritto. Quando un'applicazione lo mostra coricato, la colpevole è quell'applicazione, non il file.
Lo strumento non mostra l'indicatore esistente, ed è la sua funzione mancante più utile. Legge le dimensioni del clip da un elemento video nascosto nella pagina, e i browser riportano già quelle dimensioni dopo aver applicato la rotazione — quindi un clip verticale da telefono appare come verticale, correttamente, senza nulla che dica se è perché i pixel sono verticali o perché lo ha chiesto un indicatore. Da dentro lo strumento non puoi distinguere i due casi. Fai la verifica fuori: apri il clip in due lettori diversi. Se uno lo mostra dritto e l'altro coricato, c'è un indicatore, il file sta bene, e ricodificarlo ti costerà solo qualità. Se tutti lo mostrano coricato, i pixel sono davvero coricati e questo è lo strumento giusto.
Una rassicurazione se procedi comunque. Questa build di ffmpeg applica l'indicatore di rotazione esistente prima che giri il tuo filtro, quindi la rotazione che chiedi si compone con l'indicatore invece di combatterlo: l'uscita è quello che l'anteprima mostrava, e dopo non porta più alcun indicatore. Non otterrai un clip ruotato due volte. Avrai semplicemente pagato una ricodifica di cui forse non avevi bisogno.
Le caselle specchio, l'anteprima dal vivo e il file
Lo strumento mostra un'anteprima dal vivo: il tuo clip che scorre, ruotato via CSS, così vedi l'inquadratura prima di confermare. L'idea è buona e per un po' è stata giusta per tutte le combinazioni tranne quattro. L'anteprima applicava la trasformazione come ruota poi scala, e il CSS compone da destra a sinistra — lo specchio veniva quindi prima e la rotazione dopo. La catena di filtri fa il contrario: transpose per primo, gli specchi aggiunti dopo. Ruotare e specchiare non commutano, quindi quei due ordini non danno la stessa immagine, e un quarto di giro con esattamente una casella specchio produceva un file a mezzo giro dall'anteprima. L'anteprima ora scrive scala poi ruota, che si compone come ruota-poi-specchia e coincide con la catena. Il file è sempre stato quello giusto; a mentire era l'immagine che se ne dava.
Far passare i due ordini nello stesso codificatore chiude la questione. Sullo stesso clip di prova, transpose=1,hflip e hflip,transpose=1 hanno prodotto due fotogrammi diversi — numero di byte diverso, checksum diverse — mentre lanciare due volte lo stesso comando ha dato un'uscita identica byte per byte, quindi la differenza è reale e non rumore del codificatore. Spunta entrambi gli specchi insieme e il disaccordo sparisce: transpose=1,hflip,vflip e hflip,vflip,transpose=1 hanno dato lo stesso fotogramma, perché una coppia di specchi è un mezzo giro e un mezzo giro commuta con tutto.
In pratica tutte e sedici le combinazioni di pulsanti concordano ora con l'anteprima, e l'aggiramento in due passaggi che questo articolo consigliava — ruotare prima, scaricare, poi ripassare il file con il solo specchio — non serve più. Se trovi una combinazione in cui il file non corrisponde a quel che hai visto, vale la pena segnalarlo: sarebbe un guasto nuovo, non questo.
Cosa succede al suono, e perché il file cresce
Il suono non viene mai copiato così com'è. Se lo tieni, viene ricodificato in AAC a 192 kbit/s, o in Opus allo stesso ritmo se la sorgente è WebM; se lo togli, gli argomenti audio diventano -an, che elimina la traccia invece di zittirla. Ricodificare un audio già con perdita è una seconda generazione, e per quanto 192 kbit/s siano abbastanza generosi perché quasi nessuno se ne accorga, non è nulla da trascurare. Se il suono conta e l'immagine non deve essere perfetta, valuta di estrarre l'audio prima e rimetterlo dopo.
L'immagine è codificata con libx264 al preset ultrafast e CRF 23. Ultrafast è il più veloce degli undici preset di velocità e il meno efficiente: salta gran parte dell'analisi che permette di spendere meno bit a parità di qualità, il che è il compromesso giusto per un singolo thread del browser e quello sbagliato per la dimensione del file. Sul clip di prova, un file 1080x1920 di 6 secondi da 493 466 byte è tornato a 513 371 byte dopo una rotazione di 90 gradi. Al video non è stato aggiunto nulla; sono semplicemente serviti più bit per conservare peggio lo stesso girato. Aspettati lo stesso profilo sui tuoi clip: ruotare non è un passo di compressione, e trattarlo come tale ti deluderà.
| Aspetto | Indicatore di rotazione (metadati) | Ricodifica (questo strumento) |
|---|---|---|
| Lavoro svolto | Qualche decina di byte riscritti | Ogni fotogramma decodificato, spostato e ricompresso |
| Qualità dell'immagine | Intatta — nessun pixel viene decodificato | Una generazione con perdita (libx264, CRF 23, preset ultrafast) |
| Dimensioni memorizzate | Invariate — 1080×1920 resta 1080×1920 | Scambiate al quarto di giro — 1080×1920 diventa 1920×1080 |
| Dimensione del file | Identica a qualche byte di scarto | Misurato 493 466 → 513 371 byte su un clip di prova di 6 secondi (+4 %) |
| Mostrato dritto da | I lettori che leggono la matrice di visualizzazione — non tutti | Tutto, perché non resta nulla da rispettare |
| Traccia audio | Intatta | Ricodificata in AAC a 192 kbit/s, o rimossa con -an |
| Reversibile | Sì — rimetti l'indicatore | No — i pixel si sono spostati e sono stati ricompressi |
Domande frequenti
- Un quarto di giro a sinistra è peggio di uno a destra?
- No. Sono la stessa operazione con un parametro diverso: transpose=1 in senso orario, transpose=2 in quello contrario. Entrambe spostano ogni pixel esattamente una volta, costano lo stesso tempo e provocano la stessa unica ricodifica. Nemmeno il pulsante 180 gradi è peggiore, benché sia realizzato con due specchi anziché due rotazioni — eseguire hflip,vflip e transpose=1,transpose=1 sullo stesso fotogramma ha dato un'uscita identica byte per byte, quindi la scorciatoia è esatta oltre che rapida.
- Perché il mio file ruotato è più grande dell'originale?
- Perché è stato ricodificato, e le impostazioni del codificatore privilegiano la velocità sulla dimensione. Lo strumento usa libx264 con il preset ultrafast, che fa pochissima dell'analisi che un preset più lento impiega per far stare la stessa immagine in meno bit, con un obiettivo di qualità costante a CRF 23. Se l'originale è stato compresso da un codificatore paziente — il chip di un telefono, o un software di montaggio che esporta tutta la notte — allora una seconda passata frettolosa a qualità simile ha davvero bisogno di più spazio. Sul clip di prova è stato misurato un aumento del 4 %; una sorgente ben compressa può crescere di più. Non è andato storto nulla; stai vedendo il costo di una ricodifica, che è il prezzo della via compatibile con tutto.
- Il mio video è dritto sul telefono e coricato sul computer. Cosa faccio?
- Questa è la firma di un indicatore di rotazione rispettato da un programma e ignorato da un altro, il che significa che il file non è rotto. Se l'unico programma che sbaglia è uno che usi di rado, lascia stare il file. Se deve essere giusto ovunque — perché lo carichi, lo mandi a qualcuno o lo importi in un software di montaggio che ignora gli indicatori — allora ricodificalo qui, accettando una generazione di perdita in cambio di un file senza più nulla da fraintendere. Non ricodificare un file che è già corretto dove a te importa.
- Lo strumento può ruotare un clip due volte per sbaglio?
- Non per la rotazione in sé. La build di ffmpeg dietro lo strumento applica qualsiasi indicatore di rotazione esistente prima del tuo filtro e non ne scrive alcuno in uscita: un quarto di giro chiesto su un clip con indicatore dà un quarto di giro in tutto, non due. Anche l'anteprima concorda con il file: componeva la sua trasformazione CSS nell'ordine inverso rispetto alla catena di filtri, il che portava un quarto di giro combinato con esattamente uno specchio a mezzo giro da quel che avevi approvato, ed è stato corretto sul lato anteprima, non sull'uscita.
- Posso ruotare qui senza ricodificare?
- No. Lo strumento ha una sola via e passa dal codificatore; non c'è una modalità «solo indicatore» né un'opzione di copia del flusso. È una scelta deliberata e non una svista — una rotazione per solo indicatore è l'operazione con più probabilità di produrre un file che sembra sistemato sulla macchina dove l'hai sistemato e sbagliato su quella a cui lo mandi, un cattivo risultato per uno strumento i cui utenti in genere non possono verificare. Se vuoi espressamente la via dei metadati, ti serve uno strumento a riga di comando o un editor di contenitore. Se vuoi un file giusto ovunque senza pensarci, è questo.
Articoli che potrebbero interessarti
Tutte le guide →Strumenti correlati
Questi quattro strumenti fanno girare ffmpeg nel tuo browser: non viene caricato nulla, e nulla di ciò che segue dipende da un server che resti in piedi. Il comportamento descritto è stato letto nel sorgente di ogni componente e poi confermato eseguendo gli stessi elenchi di argomenti contro la build di ffmpeg che il sito distribuisce, quindi vale per la versione online oggi e non per ffmpeg in generale. Le dimensioni e i valori di sonorità vengono da brevi file di prova sintetici; il tuo materiale darà altri numeri con gli stessi comandi. Dove il testo a schermo di uno strumento e il suo codice si contraddicono, questo articolo segue il codice.
Fonti
Hai notato un errore in questo articolo?