Поворот видео на 90 градусов¶
Поворот видео на 90 градусов — операция обработки цифрового видео, заключающаяся в изменении ориентации кадра на 90, 180 или 270 градусей с последующим сохранением результата в видеофайл. Наиболее частая причина необходимости такой операции — запись видео смартфоном, удерживаемым вертикально, при горизонтальной ориентации сенсора камеры, из-за чего ролик воспроизводится повёрнутым на 90°. Поворот может выполняться без перекодирования (быстрый способ, меняющий метаданные) либо с полным перекодированием потока.
¶Способы поворота
¶Поворот через метаданные (без перекодирования)
Многие контейнеры видео (MP4, MOV, AVI) поддерживают флаг ориентации (rotation matrix) в метаданных. Если видео записано вертикально, но сенсор зафиксировал кадр горизонтально, в метаданные записывается значение 90 или 270, и плеер при воспроизведении автоматически поворачивает изображение. Изменение этого флага — самый быстрый способ «повернуть» видео: файл переписывается практически мгновенно, качество не страдает, поскольку видеопоток не перекодируется.
В FFmpeg это делается фильтрами transpose (перекодирование) либо утилитой exiftool, изменяющей тег Rotation. В Windows встроенный «Фотографии» и «Кино Maker» также умеют менять ориентацию без перекодирования. Ограничение метода: не все плееры и редакторы корректно учитывают флаг ориентации, поэтому при необходимости гарантированной совместимости применяется перекодирование.
¶Поворот с перекодированием
Полноценный поворот выполняется фильтрами видеоредакторов или командной строкой. В FFmpeg базовая команда выглядит так:
ffmpeg -i input.mp4 -vf "transpose=1" output.mp4
Где transpose=1 — поворот на 90° по часовой стрелке, transpose=2 — на 90° против часовой стрелки, transpose=0 — на 180°. Для поворота без зеркального отражения используются значения transpose=0 (180°) и комбинации hflip/vflip. Перекодирование занимает время, зависящее от длительности ролика, разрешения и мощности процессора, но результат гарантированно отображается одинаково на всех устройствах.
¶Инструменты
¶FFmpeg
FFmpeg — свободная мультимедийная библиотека и утилита командной строки, кроссплатформенная, работающая в Windows, Linux и macOS. Помимо transpose, поддерживает фильтры rotate (поворот на произвольный угол), hflip, vflip. Для сохранения качества без перекодирования видеопотока используется -c copy, но этот режим применим только при смене метаданных.
¶Видеоредакторы
Большинство настольных видеоредакторов — Adobe Premiere Pro, DaVinci Resolve, Sony Vegas, Shotcut, OpenShot — позволяют поворачивать клип в окне предпросмотра и затем экспортировать результат. В бесплатном Shotcut поворот осуществляется через панель «Свойства» → «Ориентация», в OpenShot — перетаскиванием клипа с поворотом на таймлайне.
¶Мобильные приложения
На Android и iOS поворот видео поддерживают InShot, VN Video Editor, iMovie (iOS), а также встроенные редакторы галерей. В Google Фото и «Галерее» Samsung доступна функция «Изменить» → «Повернуть», сохраняющая результат в новый файл.
¶Онлайн-сервисы
Существует множество веб-сервисов (Clipchamp, Kapwing, Online Video Cutter), позволяющих загрузить файл, повернуть и скачать результат. Ограничения: размер файла, длительность ролика и необходимость передачи содержимого на сторонний сервер.
¶Сохранение результата
При сохранении повёрнутого видео важно учитывать:
- Контейнер и кодек. Наиболее совместимый вариант — MP4 с видеокодеком H.264 и аудио AAC. Для хранения без потерь применяются MKV и кодеки VP9/AV1.
- Битрейт. При повторном перекодировании качество деградирует; рекомендуется задавать битрейт не ниже исходного либо использовать режим CRF 18–23 для H.264.
- Соотношение сторон. При повороте вертикального ролика на 90° результирующий файл становится горизонтальным (например, 1920×1080 → 1080×1920); некоторые кодеки требуют чётных значений ширины и высоты.
- Аудиодорожка. При
-c copyаудио сохраняется без изменений; при перекодировании обычно используется AAC 128–192 кбит/с.
¶Типичные ошибки
После поворота через метаданные часть плееров игнорирует флаг и показывает видео в исходной ориентации — это следствие несовместимости, устраняется перекодированием. Двойной поворот (например, повторное применение transpose=1 к уже повёрнутому файлу) приводит к суммарному повороту на 180°. Некоторые старые кодеки (например, MPEG-2) не поддерживают флаг ориентации, поэтому поворот возможен только перекодированием.
Источники:
- Документация FFmpeg по фильтрам видео (ffmpeg.org)
- Руководство Shotcut по работе с клипами
- Спецификация MP4 (ISO/IEC 14496-12), раздел о метаданных ориентации
- Справка Adobe Premiere Pro по повороту клипов
