FFmpeg | Поворот и отражение

от
FFmpeg    rotate, повернуть видео, transpose, flip, отразить

В этой статье вы узнаете, как повернуть видео на 90°, 180°, 270° или любой другой угол, а также как отразить видео по-вертикали или по-горизонтали.


Содержание
  - Транспонирование
  - Поворот на любой угол
  - Отражение

ТранспонированиеБывают случаи, когда видео, допустим, 1280x720 снято повёрнутым на 90 градусов. Чтобы его повернуть и получить при этом видео 720x1280 используется фильтр transpose.
  -vf transpose=0 — поворот на 90° против часовой стрелки и отражение видео
  -vf transpose=1 — поворот на 90° по часовой стрелке
  -vf transpose=2 — поворот на 90° против часовой стрелке
  -vf transpose=3 — поворот на 90° по часовой стрелке и отражение видео
Пример:
  1. ffmpeg -i input.mp4 -vf transpose=0 result.mp4
1 из 5Ещё примеры
Оригинал
20210327T192624_original.jpg

Поворот на любой уголЕсли же нужно просто повернуть содержимое видео, оставив при этом разрешение 1280x720, то следует использовать фильтр rotate:
-vf rotate=угол_в_радианах
или
-vf rotate=угол_в_градусах*PI/180
С его помощью можно поворачивать содержимое на произвольный угол.
Также можно указать цвет фона параметром c:
-vf rotate=угол:c=цвет
Цвет можно задать текстом (green, blue, white)
Либо в формате RRGGBB: (FF66CC, 003366)

Повернуть видео на 45 градусов по часовой стрелке:
  1. ffmpeg -i input.mp4 -vf rotate=45*PI/180 result.mp4
20210327T192624_r45.jpg

Повернуть видео на 30 градусов против часовой стрелки и закрасить фон тёмно-зелёным:
  1. ffmpeg -i input.mp4 -vf rotate=-30*PI/180:c=117A22 result.mp4
20210327T192624_r-30.jpg

В выражении можно использовать переменную n, обозначающую номер кадра. С её помощью можно сделать плавный поворот видео:
  1. ffmpeg -i input.mp4 -vf rotate=n/20*PI/180 result.mp4


ОтражениеДля того, чтобы отразить видео по-горизонтали или по-вертикали, используются фильтры -vf hflip и -vf vflip соответственно.
  1. ffmpeg -i input.mp4 -vf hflip result.mp4
Можно применить сразу оба:
  1. ffmpeg -i input.mp4 -vf hflip,vflip result.mp4
  • 0
  • views 457