Как пакетно изменить размеры миллионов изображений, чтобы соответствовать максимальной ширине и высоте?

Ситуация

Я ищу способ пакетного изменения размера примерно 15 миллионов изображений различных типов файлов, чтобы соответствовать определенному разрешению ограничивающего прямоугольника (в этом случае изображения не могут быть больше 1024 * 1024), без искажения изображения и, следовательно, сохраняя правильное соотношение сторон. В настоящее время все файлы находятся на сервере Linux, к которому у меня есть доступ sudo, поэтому, если мне нужно что-то установить, я готов.

Вещи, которые я пробовал

После работы с некоторыми инструментами под Windows (Adobe Photoshop и другими инструментами) я больше не хочу запускать это на своем компьютере, так как это делает его практически непригодным для рендеринга. Учитывая размер этой работы, я действительно ищу какую-то магию командной строки, чтобы напрямую запускать ее в Linux, но мои усилия с ImageMagick до сих пор не дали мне ничего, с чем можно было бы работать, поскольку я получаю только ошибки. Честно говоря, документация ImageMagick могла бы использовать какую-то работу ... или кто-то должен приложить усилия, чтобы создать хороший веб-интерфейс для создания одного из этих мифических конвертеров изображений в одну строку.

Требуемый формат вывода

Мне нужно, чтобы изображения были изменены к тому же имени файла и в формате, который будет соответствовать определенному максимальному размеру, например 1024 * 1024, что означает:

JPG 2048 * 1024 становится JPG 1024 * 512 с качеством 75%PNG 1024 * 2048 становится PNG 512 * 1024

Полученное изображение не должно содержать дополнительных прозрачных пикселей для заполнения оставшихся пикселей; Я просто ищу способ конвертировать изображения в ограниченное разрешение.

Спасибо за любую помощь!