Filtro FFmpeg para girar a imagem através de um ângulo arbitrário

7

Eu preciso produzir timelapse video a partir de uma webcam que foi montada em um ângulo ligeiramente fora da vertical, e eu preciso girar a imagem cerca de 3 graus no sentido anti-horário. (A webcam está em um local praticamente inacessível e, devido ao tempo, pode ser chutada de forma tortuosa, mesmo que consertemos o ângulo. Por isso, preciso consertá-la no software.)

Eu tive sucesso usando a ferramenta de conversão do ImageMagick com a opção de linha de comando:

  convert infile.jpg -distort ScaleRotateTranslate 750,50,-3  outfile.jpg

mas é claro que é dolorosamente lento para converter. Eu posso fazer absolutamente tudo o que preciso fazer (cortar e sobrepor um logotipo na imagem) usando filtros FFmpeg, mas parece não haver um filtro que permita rotacionar uma imagem por um ângulo arbitrário, apenas em 90 ou 180 graus. .

Talvez haja algum tipo de filtro de transformação linear genérico que possa fazer isso?

Obrigado por qualquer ajuda.

    
por Tom 06.07.2013 / 17:29

1 resposta

12

Um filtro rotate era adicionado recentemente ao FFmpeg, que permite rotação por um ângulo arbitrário. Para usá-lo, você pode construir a versão mais recente do git ou faça o download de um instantâneo recente.

O ângulo é especificado em radianos; positivo é no sentido horário e negativo no sentido anti-horário. Se você tem graus, multiplique por PI / 180 para converter em radianos. Por exemplo, para girar 3 ° no sentido anti-horário:

ffmpeg -i in.mp4 -vf "rotate=-3*PI/180" out.mp4

Confira a documentação para obter mais detalhes e exemplos adicionais.

    
por 06.07.2013 / 18:40