FFmpeg | Поворот и отражение
от aNNiMON
В этой статье вы узнаете, как повернуть видео на 90°, 180°, 270° или любой другой угол, а также как отразить видео по-вертикали или по-горизонтали.
Содержание
- Транспонирование
- Поворот на любой угол
- Отражение
ТранспонированиеБывают случаи, когда видео, допустим, 1280x720 снято повёрнутым на 90 градусов. Чтобы его повернуть и получить при этом видео 720x1280 используется фильтр transpose.
-vf transpose=0 — поворот на 90° против часовой стрелки и отражение видео
-vf transpose=1 — поворот на 90° по часовой стрелке
-vf transpose=2 — поворот на 90° против часовой стрелке
-vf transpose=3 — поворот на 90° по часовой стрелке и отражение видео
Пример:
Поворот на любой уголЕсли же нужно просто повернуть содержимое видео, оставив при этом разрешение 1280x720, то следует использовать фильтр rotate:
-vf rotate=угол_в_радианах
или
-vf rotate=угол_в_градусах*PI/180
С его помощью можно поворачивать содержимое на произвольный угол.
Также можно указать цвет фона параметром c:
-vf rotate=угол:c=цвет
Цвет можно задать текстом (green, blue, white)
Либо в формате RRGGBB: (FF66CC, 003366)
Повернуть видео на 45 градусов по часовой стрелке:
Повернуть видео на 30 градусов против часовой стрелки и закрасить фон тёмно-зелёным:
В выражении можно использовать переменную n, обозначающую номер кадра. С её помощью можно сделать плавный поворот видео:
ОтражениеДля того, чтобы отразить видео по-горизонтали или по-вертикали, используются фильтры -vf hflip и -vf vflip соответственно.
Можно применить сразу оба:
Следующая статья →Содержание
- Транспонирование
- Поворот на любой угол
- Отражение
ТранспонированиеБывают случаи, когда видео, допустим, 1280x720 снято повёрнутым на 90 градусов. Чтобы его повернуть и получить при этом видео 720x1280 используется фильтр transpose.
-vf transpose=0 — поворот на 90° против часовой стрелки и отражение видео
-vf transpose=1 — поворот на 90° по часовой стрелке
-vf transpose=2 — поворот на 90° против часовой стрелке
-vf transpose=3 — поворот на 90° по часовой стрелке и отражение видео
Пример:
- ffmpeg -i input.mp4 -vf transpose=0 result.mp4
Поворот на любой уголЕсли же нужно просто повернуть содержимое видео, оставив при этом разрешение 1280x720, то следует использовать фильтр rotate:
-vf rotate=угол_в_радианах
или
-vf rotate=угол_в_градусах*PI/180
С его помощью можно поворачивать содержимое на произвольный угол.
Также можно указать цвет фона параметром c:
-vf rotate=угол:c=цвет
Цвет можно задать текстом (green, blue, white)
Либо в формате RRGGBB: (FF66CC, 003366)
Повернуть видео на 45 градусов по часовой стрелке:
- ffmpeg -i input.mp4 -vf rotate=45*PI/180 result.mp4
Повернуть видео на 30 градусов против часовой стрелки и закрасить фон тёмно-зелёным:
- ffmpeg -i input.mp4 -vf rotate=-30*PI/180:c=117A22 result.mp4
В выражении можно использовать переменную n, обозначающую номер кадра. С её помощью можно сделать плавный поворот видео:
- ffmpeg -i input.mp4 -vf rotate=n/20*PI/180 result.mp4
ОтражениеДля того, чтобы отразить видео по-горизонтали или по-вертикали, используются фильтры -vf hflip и -vf vflip соответственно.
- ffmpeg -i input.mp4 -vf hflip result.mp4
- ffmpeg -i input.mp4 -vf hflip,vflip result.mp4
Встраивание субтитров (hardsub)