Масштабирование изображений в квадрат с помощью ffmpeg: ориентация EXIF ​​потеряна

376
mins

Я хотел бы использовать эту команду для масштабирования, дополнения и поворота нескольких изображений JPEG в общее выходное разрешение 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 

Однако книжная ориентация (EXIF) не сохраняется в выходном изображении ...

Входные данные:

enter image description here

Ожидаемый вывод слева, что я получу справа:

Expected Obtained

Из разных вопросов на сайте, я предполагаю, что ffmpeg определяет ориентацию и обрабатывает изображения соответственно. Или это действительно только для видеопотоков?

Используя последнюю версию ffmpeg (4.0.2).

1
* действительно только для видеопотоков * -> в общем, да. FFmpeg не вызывает ориентацию из EXIF. Gyan 6 лет назад 0
@Gyan: Жаль, значит ли это, что значения FFmpeg `iw` и` ih` будут одинаковыми независимо от режима пейзаж / портрет? mins 6 лет назад 0
Они будут представлять размеры декодированного растра. Gyan 6 лет назад 0

1 ответ на вопрос

1
harrymc

Отображение изображений в соответствии с их ориентацией EXIF ​​- это функция, которая чаще встречается в редакторах изображений или библиотеках обработки изображений.

Я предлагаю сначала повернуть все изображения в их истинную ориентацию.

Для методов поворота см. Пост Как автоматически вращать изображения на основе данных EXIF?

Я использовал FastStone Image Viewer для поворота и заполнения отдельных изображений до использования ffmpeg для создания видео. Для меня эта предварительная обработка (будущих) фреймов определенно отсутствует в библиотеке, возможно, может быть разработан скрипт с [FFprobe] (https://www.ffmpeg.org/ffprobe.html). mins 6 лет назад 0

Похожие вопросы