Como redimensionar em lote milhões de imagens para ajustar a largura e altura máximas?

A situação

Estou procurando uma maneira de redimensionar em lote aproximadamente 15 milhões de imagens de diferentes tipos de arquivos para caber em uma determinada resolução de caixa delimitadora (nesse caso, as imagens não podem ser maiores que 1024 * 1024), sem distorcer a imagem e, portanto, mantendo a proporção correta. Atualmente, todos os arquivos estão localizados em um servidor Linux no qual tenho acesso ao sudo; portanto, se eu precisar instalar alguma coisa, estou pronto.

Coisas que eu tentei

Depois de brincar com algumas ferramentas no Windows (Adobe Photoshop e outras ferramentas), não estou mais disposto a executar isso em minha própria máquina, pois isso o torna praticamente inutilizável durante a renderização. Considerando o tamanho desse trabalho, estou realmente procurando por alguma mágica da linha de comando para executá-lo diretamente no Linux, mas meus esforços com o ImageMagick até agora não me deram nada com o que trabalhar, pois estou recebendo apenas erros. Para ser honesto, a documentação do ImageMagick poderia usar algum trabalho ... ou alguém deveria se esforçar para criar uma boa interface da web para criar uma dessas linhas míticas de conversão de imagem.

Formato de saída necessário

Eu preciso que as imagens sejam redimensionadas para o mesmo nome de arquivo e de um formato que caiba dentro de uma certa dimensão máxima, por exemplo 1024 * 1024, o que significa:

um JPG de 2048 * 1024 torna-se um JPG de 1024 * 512 com 75% de qualidadeum PNG de 1024 * 2048 se torna um PNG de 512 * 1024

A imagem resultante não deve conter pixels transparentes adicionais para preencher os pixels restantes; Estou apenas procurando uma maneira de converter as imagens em uma resolução limitada.

Obrigado por qualquer ajuda!