Фильтр FFmpeg для поворота изображения на произвольный угол

Мне нужно создать видео с замедленной съемкой с веб-камеры, которая была установлена ​​под немного вертикальным углом, и мне нужно повернуть изображение примерно на 3 градуса против часовой стрелки. (Веб-камера находится в практически недоступном месте, и из-за погоды в конечном итоге ее могут выгнать, даже если мы исправим угол. Поэтому мне нужно исправить это программно.)

Я имел успех, используя инструмент преобразования ImageMagick с параметром командной строки:

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

но, конечно, это мучительно медленно конвертировать. Я могу делать абсолютно все остальное, что мне нужно (обрезка и наложение логотипа на изображение) с использованием фильтров FFmpeg, но, похоже, не существует фильтра, который позволял бы поворачивать изображение на произвольный угол, только на 90 или 180 градусов.,

Возможно, есть какой-то общий фильтр линейного преобразования, который может это сделать?

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

1 ответ

Решение

rotate Недавно в FFmpeg был добавлен фильтр, который позволяет вращение на произвольный угол. Чтобы использовать его, вы можете собрать последнюю версию из git или скачать последнюю сборку снимка.

Угол указан в радианах; положительный по часовой стрелке и отрицательный против часовой стрелки. Если у вас есть градусы, умножьте на PI/180, чтобы преобразовать в радианы. Например, чтобы повернуть на 3° против часовой стрелки:

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

Проверьте документацию для более подробной информации и дополнительных примеров.

Другие вопросы по тегам