Como cortar e alterar o tamanho das imagens com filter_complex no ffmpeg

0

Estou usando um código para reunir algumas imagens e fazer um vídeo que continue indo e voltando em um loop.

O código que estou usando é este:

-filter_complex "[0]reverse[r];[0][r]concat,loop=2:80,setpts=N/13/TB" -vcodec libx264 -pix_fmt yuv420p -crf 17

Funciona muito bem, mas preciso adicionar um filtro para recortar imagens e alterar seu tamanho. Infelizmente eu não sei como fazer isso funcionar com o código que estou usando.

Alguém pode ajudar?

Este é o código completo que está funcionando:

-hide_banner -r 13.000 -threads:v 8 -i "C:/01/test-%02d.JPG" -codec:v copy -filter_complex "[0]reverse[r];[0][r]concat,loop=2:80,setpts=N/13/TB" -vcodec libx264 -pix_fmt yuv420p -crf 23 -an "C:/01/test.mp4"

Já tentei colocar os filtros antes do filtro inverso, posso ter tentado errado. Algo como:

-crop=3300:3300 -scale=900:900

Eu vou explicar melhor. Estou usando o Avanti GUI, e ele tem a opção de cortar e dimensionar, mas eles não funcionam quando eu uso com o -filter_complex. Eu não sei como adicionar manualmente os filtros corretamente.

    
por Felipe 09.08.2017 / 23:56

1 resposta

0

Você só precisa prefixar os filtros crop e scale no filtro reverse . Você pode fazer isso de uma só vez (por exemplo, [0:v]crop,scale,reverse[r] , mas é necessário aplicá-lo tanto ao vídeo original quanto ao reverso, por isso crie duas cadeias de filtro:

ffmpeg -i "C:/01/test-%02d.JPG"  -filter_complex "\
  [0:v]crop=3300:3300,scale=900:900[vid]; \
  [0:v]crop=3300:3300,scale=900:900,reverse[r]; \
  [vid][r]concat,loop=2:80,setpts=N/13/TB[out]" \
  -map "[out"] \
  -vcodec libx264 -pix_fmt yuv420p -crf 23 -an \
  "C:/01/test.mp4"

Observação: não use -codec:v copy - quando você usa um filtro, é necessário deixar o ffmpeg recodificar o vídeo.

    
por 10.08.2017 / 16:03

Tags