“altura não divisível por 2” com “min”

2

Usando este comando:

ffmpeg -loop 1 -r 1 -i q.jpg -t 5 -pix_fmt yuv420p -vf 'scale=-2:min(1080\,ih)' z.mp4

Eu recebo esta mensagem:

[libx264 @ 00000000004d0ec0] height not divisible by 2 (954x953)

Eu posso evitar o erro assim:

ffmpeg -loop 1 -r 1 -i q.jpg -t 5 -pix_fmt yuv420p -vf scale=-2:1080 z.mp4

No entanto, isso não é ideal porque está aprimorando a imagem. Como posso dimensionar imagem apenas se a altura for maior que 1080, mantendo o formato de pixel Eu tenho isso?

    
por Steven Penny 10.11.2017 / 23:45

2 respostas

2

Aqui está o que eu criei:

-vf 'scale=-2:min(1080\,trunc(ih/2)*2)'

link

Ou:

-vf 'scale=-2:min(1080\,bitand(ih\,-2))'

Ou:

-vf 'scale=-2:min(1080\,ih-mod(ih\,2))'
    
por 11.11.2017 / 00:57
0

Em vez de

'scale=-2:min(1080\,ih)'

use

'scale=-2:min(1080\,if(mod(ih\,2)\,ih-1\,ih))'

Ele verificará se ih é divisível por 2 e, caso contrário, diminuirá em 1 .

    
por 11.11.2017 / 00:31