Ridimensiona le immagini in un quadrato con ffmpeg: orientamento EXIF ​​perso


1

Vorrei usare questo comando per ridimensionare, pad e ruotare diverse immagini jpeg in una risoluzione di output comune 1000x1000:

ffmpeg -i image.jpg -vf "scale=1000:1000:force_original_aspect_ratio=decrease, pad=1000:1000:(ow-iw)/2:(oh-ih)/2" square.jpg

Tuttavia, l'orientamento verticale (EXIF) non viene conservato nell'immagine di output ...

Ingresso:

inserisci qui la descrizione dell'immagine

Uscita prevista a sinistra, cosa ottengo a destra:

Previsto ottenuto

Da diverse domande sul sito, presumo che ffmpeg identifichi l'orientamento stesso ed elabori le immagini di conseguenza. O è valido solo per i flussi video?

Utilizzando l'ultimo ffmpeg (4.0.2).


valido solo per i flussi video -> generalmente sì. FFmpeg non induce l'oritentazione da EXIF.
Gyan,

@Gyan: Peccato, vuol dire valori FFmpeg iwe ihsaranno gli stessi indipendentemente dalla modalità orizzontale / verticale?
minuti

Rappresenteranno le dimensioni del quadro decodificato.
Gyan,

Risposte:


1

La visualizzazione di immagini in base al loro orientamento EXIF ​​è una funzionalità più comune agli editor di immagini o alle librerie di gestione delle immagini.

Suggerisco di ruotare prima tutte le immagini secondo il loro vero orientamento.

Per i metodi per eseguire la rotazione, vedere il post Come ruotare automaticamente le immagini in base ai dati EXIF?


Ho usato FastStone Image Viewer per ruotare e riempire le singole immagini prima di usare ffmpeg per creare un video. Per me questa pre-elaborazione dei (futuri) frame manca sicuramente dalla libreria, forse potrebbe essere ideato uno script con FFprobe .
minuti
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.