Стабилизация
Дрожащие клипы играют ровно. Ничего не нужно рендерить заранее.
Снимали с выключенной стабилизацией камеры? Дважды щёлкните по клипу, и он будет играть ровно — по движению, которое записала камера, прямо пока вы смотрите. Стабилизация никогда не меняет исходный файл.
Как это работает
Что нужно, чтобы выровнять клип.
Дрожащий клип — это камера, которая много раз в секунду немного поворачивается. Чтобы его выровнять, каждый кадр поворачивают обратно ровно на столько, на сколько повернулась камера. Для этого нужны три вещи: как двигалась камера, как её объектив рисует картинку и программа, которая сводит одно с другим.
Как двигалась камера
В большинстве экшн-камер есть гироскоп: датчик, который сотни раз в секунду записывает, как повернулась камера. Это данные гироскопа клипа, или данные движения, записанные в видеофайл. Они точные, и чтение их не занимает времени. Они есть, когда собственная стабилизация камеры выключена: что настроить, написано чуть ниже.
Нет данных гироскопа? По изображению
Клип без данных гироскопа тоже можно выровнять: тогда движение ищется в самом изображении, по деталям, которые отслеживаются от кадра к кадру (оптический поток). Это медленнее, поэтому делается один раз, заранее, и сохраняется.
Как объектив рисует картинку
Широкий объектив экшн-камеры искривляет изображение, сильнее к краям. Чтобы правильно повернуть кадр обратно, программе нужна форма этого объектива — его профиль. Тогда прямые линии остаются прямыми и не колышутся по краям.
Программа: Gyroflow
Здесь это делает Gyroflow, бесплатная программа с открытым кодом. Её движок работает внутри плеера, пока клип играет, поэтому ничего не нужно рендерить заранее. Она знает объективы большинства экшн-камер. Gyroflow — это и самостоятельное приложение, для клипов, которым нужно больше: плеер открывает в нём клип клавишами Ctrl+e и воспроизводит то, что вы там сохраните.
Перед съёмкой
Что настроить на камере.
Камера записывает данные гироскопа только в некоторых режимах, а плеер использует их, только когда камера сообщает, что её собственная стабилизация была выключена.
-
Выключите собственную стабилизацию камеры
EIS (электронная стабилизация изображения) на DJI, HyperSmooth на GoPro, FlowState в камере на Insta360. На DJI это должен быть именно выключенный EIS: режим горизонта или выключенный EIS с кадрированием считается включённым.
-
На DJI снимайте с Wide FOV
Камеры DJI записывают данные гироскопа при выключенном EIS и широком поле зрения (Wide). С другими FOV они могут не записать ничего, и такие клипы требуют оптического потока Gyroflow.
-
Под водой держите её выключенной. Над водой — на ваш выбор
На воздухе EIS от DJI работает хорошо, так что выключать его там почти незачем. Под водой он, при нынешней прошивке, не справляется — вероятно, потому что вода преломляет свет и объектив ведёт себя как более длиннофокусный, чем тот, под который настроен EIS. Пресет, который идёт с плеером, сделан для воды. Подробнее о погружениях — на странице Под водой.
-
Затем дважды щёлкните по клипу
Больше ничего настраивать не нужно. Log или нет, здесь неважно: цвет — отдельный шаг, о нём на странице Съёмка в log.
Проверено на реальных клипах: DJI Osmo Action 6 с выключенным EIS и GoPro HERO12 Black с выключенным HyperSmooth, на Mac с Apple Silicon. Другие камеры DJI, другие GoPro и однообъективные камеры Insta360 поддерживаются и должны работать.
Проекты Gyroflow
Откройте в Gyroflow. Сохраните. Клип вернётся стабилизированным.
Ctrl+e ставит клип на паузу и открывает его в приложении Gyroflow — для всего, чего не умеют настройки плеера. Gyroflow должен быть установлен.
Клип, выровненный по данным гироскопа
Сначала плеер записывает рядом с клипом проект — таким, каким клип играет: тот же пресет, уровень, вид, фиксация горизонта и объектив, а также данные движения, чтобы Gyroflow не читал их заново. Уже существующий .gyroflow открывается как есть и никогда не перезаписывается.
Клип с проектом
Его проект открывается в Gyroflow как есть.
Нет данных гироскопа? Не беда
В Gyroflow открывается само видео, и Gyroflow стабилизирует его оптически: находит движение в самом изображении (оптический поток). Панель показывает «Waiting for the project from Gyroflow…» (ждём проект из Gyroflow). Сохраните проект рядом с клипом, и клип снова загрузится с того же места, уже стабилизированным.
В Windows, чтобы открыть видео без проекта, нужно указать путь к Gyroflow в gyroflow_app= в файле gyroflow.conf.
Каждое сохранение возвращается
Каждый раз, когда вы сохраняете в Gyroflow (Cmd+SCtrl+S), плеер перезагружает стабилизацию на том же месте клипа. С этого момента клип играет со своим проектом.
В сам видеофайл ничего не записывается: проект — это всегда файл .gyroflow рядом с ним.
Раздел Stabilization
Настройки — в панели рядом с видео.
Боковая панель открывается на разделе Stabilization. Tab скрывает панель и показывает снова. Сверху вниз:
- Чем стабилизирован клип
- Карточка вверху говорит, какой это случай: «The camera's gyro data» (данные гироскопа камеры), «Gyroflow project» (проект Gyroflow) или «No motion data in this clip» (в клипе нет данных движения). Под ней — Edit in Gyroflow… или, когда данных гироскопа нет, Stabilize in Gyroflow… (Ctrl+e, см. выше). Без данных гироскопа остальная часть раздела скрыта.
- View по умолчанию On Ctrl+g
- Вид. On (вкл.): изображение увеличено так, что края не видны. Wider (шире): без увеличения, поэтому видно больше картинки, а края временами показываются и заполняются так, как описано в разделе Края. Off (выкл.): как записано, только для этого клипа.
- Level по умолчанию Medium Ctrl+k
- Сила стабилизации для клипа без проекта. Weak (слабо): обрезка 10 %, плавность 50 %. Medium (средне): обрезка 20 %, плавность 75 %. Strong (сильно): обрезка 30 %, плавность 100 %. Когда камера поворачивается дальше, чем позволяет запас обрезки, картинка раньше следует за ней, так что края видны только в такие моменты. Смена уровня действует сразу, прямо во время воспроизведения. Для клипа с проектом неактивна: у него сглаживание из проекта.
- Horizon по умолчанию As preset
- Горизонт. As preset (как в пресете; для клипа с проектом — As project, как в проекте): так, как там задано. Пресет, который идёт с плеером, оставляет горизонт свободным. Level: горизонт держится ровно. Для этого нужно большее увеличение, поэтому края видны чаще. Free: горизонт не выравнивается.
- Lens по умолчанию Auto Ctrl+u
- Объектив: поправка на то, как вода преломляет свет. Auto: так, как камера сообщает, что была в воде; переключение за один кадр, когда клип входит в воду или выходит из неё. Это записывает только Osmo Action 6; для других камер Auto неактивен, и клип играет так, как задано в пресете или проекте (встроенный пресет: под водой). In water (в воде) и Above (над водой) задают это вручную. У клипа с проектом первым идёт As project. Ctrl+u переключает на Above и обратно.
- Reduce color aberration по умолчанию вкл. Ctrl+a
- Уменьшение хроматической аберрации. Под водой плоское стекло перед объективом разводит цвета к краям кадра. Эта настройка сводит их обратно там, где объектив под водой. На клипах с погружений на Osmo Action 6 красная кайма у края уменьшается с 3–7 px примерно до 1 px. Только при воспроизведении: экспорт сохраняет кайму. Неактивна, когда Lens стоит на Above.
- Make these the defaults
- Внизу раздела: сохраняет текущие настройки для следующего запуска плеера.
Как долго действует настройка
Изменённая настройка сохраняется до конца сеанса, в том числе для следующих клипов, если только вы не нажмёте Make these the defaults — тогда она сохранится и для следующего запуска. Клип с проектом начинает с настроек своего проекта; то, что вы меняете в нём, относится только к этому клипу.
| Настройка | Клип без проекта | Клип с проектом |
|---|---|---|
| View | On и Wider сохраняются для следующих клипов. Off — только для этого клипа. | Начинает с On, как в Gyroflow. Wider или Off: только этот клип. |
| Level | Сохраняется. | Не применяется: сглаживание из проекта. |
| Horizon, Lens | Сохраняются для следующих клипов без проекта. | Начинают с As project. Изменение: только этот клип. |
| Края, хроматическая аберрация, временное шумоподавление | Это функции самого плеера, а не Gyroflow: они сохраняются для всех клипов. | |
| Выбор в Performance & Quality | Запоминается для этого компьютера сразу, как только вы его сделали. | |
Пресет — встроенный и ваш
Клип без проекта начинает с пресета Gyroflow по умолчанию, поверх которого лежит пресет плеера. Тот сделан для подводной съёмки: объектив скорректирован на воду (преломление 1,33), а горизонт оставлен свободным. Level заменяет его сглаживание и увеличение. На тестовом клипе поправка на воду снизила остаточное дрожание между кадрами с 0,16 px до 0,02 px.
Чтобы начинать со своего пресета, сохраните пресет в Gyroflow (Export → Create settings preset) как default.gyroflow в ~/Library/Application Support/ActionFootagePlayer/gyroflow/%LOCALAPPDATA%\ActionFootagePlayer\gyroflow\. Настройки панели по-прежнему накладываются поверх него.
Что попадает в экспорт
Shift+E экспортирует клип так, как он играет: тот же проект или пресет, Level, View, Horizon, Lens и заполнение краёв. Устранение хроматической аберрации и шумоподавление работают только при воспроизведении. Об экспорте и о том, куда попадает файл, — на странице Съёмка в log.
Края
Когда выровненный кадр не покрывает окно.
В виде Wider или когда камера поворачивается дальше, чем позволяет обрезка, часть окна остаётся пустой. Плеер заполняет её — размыто и с плавным переходом в картинку.
- Trail by direction по умолчанию
- След по направлению: то, что в последний раз было видно в этом направлении, — известно по данным гироскопа и берётся из всего кадра, записанного камерой, включая то, что срезает увеличение. При панорамировании оно остаётся на месте. Где ещё ничего не было видно, внутрь растекаются окружающие цвета, чуть темнее и серее.
- Frame's edge spread out
- Край кадра, растянутый наружу: только собственные цвета текущего кадра, растянутые от его края. Ничего из предыдущих кадров, поэтому ничему не с чем расходиться, и это легче всего для компьютера.
- Background color
- Цвет фона проекта, как его рендерит Gyroflow.
Ctrl+b переключает их прямо во время воспроизведения. Они находятся в разделе Performance & Quality панели, см. ниже. Вид Wider подбирает такое поле зрения, при котором выровненная картинка занимает примерно столько же места, сколько кадр, так что видно больше сцены, а края видны всё время.
След знает только, как камера поворачивалась, но не как она перемещалась. Близкие предметы, мимо которых прошла камера, и то, что двигалось само, могут в нём не совпадать. Где ничего не было видно, заполнение — придуманный цвет, а не изображение.
Performance & Quality
Для компьютера, который не успевает.
Раздел Performance & Quality (производительность и качество) появляется в панели для стабилизированного клипа. Выбор в нём запоминается для этого компьютера сразу, как только вы его сделали.
- Frame rate по умолчанию Every frame
- Every frame (каждый кадр), 30 fps или 15 fps: как часто рендерится выровненный кадр. Клип с более высокой частотой играет с этой частотой.
- Size по умолчанию Display
- Video: собственный размер видео. Display: не больше, чем его показывает экран. 1080p или 720p: не больше этого.
- Paused frame по умолчанию As it played Ctrl+f
- Кадр на паузе. Full size (полный размер): через мгновение после паузы кадр рендерится заново в собственном размере видео. Ctrl+f делает это один раз. Подробнее — на странице Фото.
- Temporal denoise по умолчанию вкл. Ctrl+p
- Временное шумоподавление: кадр на паузе собирается заново из 5 кадров с каждой стороны от него, так что шум сенсора при слабом свете в основном уходит. Нужна включённая стабилизация. Подробнее — на странице Фото.
- Edges по умолчанию Trail by direction Ctrl+b
- Trail by direction, Frame's edge spread out, Background color: см. Края.
- Edge fill rate по умолчанию Auto
- По скольким кадрам записывается след: Auto — всякий раз, когда у видеочипа (GPU) есть запас, или 50 % либо 25 % кадров. Для ноутбуков, где процессор и GPU делят одно энергопотребление. Только для Trail by direction.
- Ещё
- Reduce color aberration: тот же переключатель, что и в разделе Stabilization. Pause and ask when slow (вкл.; ставить на паузу и спрашивать, если не успевает): см. ниже.
Когда не успевает, он спрашивает
Если больше десятой части кадров пропускается дольше 2 секунд, воспроизведение встаёт на паузу и появляется вопрос: «Stabilization can't keep up, frames are dropped. Play lighter:» (стабилизация не успевает, кадры пропускаются; играть легче:). Он предлагает то, что поможет на этом клипе: 30 или 15 fps, более лёгкое заполнение краёв, без заполнения краёв, рендер в 1080p, оставить цветную кайму или играть дальше как есть, а также «Don't ask again» (больше не спрашивать). Ваш выбор запоминается.
На MacBook Pro с M1 Pro стабилизация с запасом успевает за 4K при 60 fps. На тонком ноутбуке с Windows на 15 Вт — 4K при 60 fps со следом, который успевает на 15 fps, но не на 30.
Моменты
Момент сохраняет стабилизацию, с которой он был сохранён.
Момент — это фрагмент клипа, который вы оставляете (k). Он сохраняет одно из двух, никогда не оба. Если у клипа был проект Gyroflow, момент получает свою обрезанную копию, _Moments/<name>.gyroflow, и она задаёт его горизонт, обрезку и сглаживание. Иначе он сохраняет View, Level и Horizon, с которыми был сделан, поверх пресета. Последующие изменения клипа или его проекта момент не затрагивают.
Пока момент играет, строка Stabilized в панели предлагает As saved (как сохранён), On its own (сглажен только по собственному движению момента) и With its clip (сглажен вместе с движением клипа вокруг него). Все настройки начинают с As saved. Ваш выбор — только для просмотра, для всех моментов в этом сеансе, пока Keep in <name> не запишет его в момент.
Как он решает
Три вопроса, в таком порядке, при каждом открытии клипа.
Плеер никогда не гадает. Он стабилизирует клип, только когда знает как, а иначе воспроизводит его так, как он записан.
-
Проект Gyroflow рядом с клипом главнее всего
Проект Gyroflow — это небольшой файл
.gyroflowсо всем, что нужно Gyroflow, чтобы выровнять один клип. Плеер ищет его рядом с видео, с тем же именем:DJI_0007_D.gyroflowилиDJI_0007_D.MP4.gyroflow. Если находит, клип играет так, как его рендерит Gyroflow: сглаживание, увеличение, объектив, выходной размер, фиксация горизонта и поправка на воду — из проекта. Level плеера не применяется. -
Иначе — данные гироскопа камеры, если её стабилизация была выключена
Перед воспроизведением плеер читает, что камера записала в файл. Он выравнивает клип, только если в файле есть данные гироскопа и камера записала, что её собственная стабилизация была выключена: EIS выключен на DJI (и Wide FOV, поле зрения), HyperSmooth выключен на GoPro, FlowState выключен на Insta360. Для клипов GoPro и Insta360 также нужно, чтобы их объектив был в базе объективов Gyroflow. Тогда клип играет с пресетом, который идёт с плеером, и вашими настройками в панели: Level, View, Horizon и Lens.
-
Иначе — нет данных гироскопа? Не беда: Ctrl+e открывает его в Gyroflow
До тех пор клип играет так, как записан. Нажмите Ctrl+e, и видео откроется в Gyroflow, который стабилизирует его оптически, по движению в самом изображении (оптический поток). Сохраните там проект рядом с клипом, и клип снова загрузится с того же места, уже стабилизированным: теперь это клип с проектом, случай 1.
Почему так строго: видео, которое камера уже выровняла, при повторной стабилизации становится хуже. Поэтому клип, камера которого сообщает, что стабилизация была включена, или ничего не сообщает, играет как записан. Если плеер ошибётся насчёт камеры, её клипы будут играть как есть, а не хуже.
Клавиши
Клавиши.
Ctrl — это Ctrl и на Mac, а не Cmd.
Ограничения
Чего он не делает.
- Нет данных гироскопа? Gyroflow стабилизирует клип оптически. В клипе DJI, снятом с включённым EIS или с FOV, отличным от Wide, их может не быть. Ctrl+e открывает его в Gyroflow; сохраните там проект, и здесь клип будет играть ровно.
- Включённая стабилизация камеры означает «как записано», в том числе HyperSmooth у GoPro и FlowState у Insta360, хотя эти камеры записывают данные гироскопа в любом случае.
- Панель пишет «No motion data in this clip» для любого клипа, который не стабилизирует, в том числе для клипа GoPro с включённым HyperSmooth, в котором данные гироскопа есть. Тогда Gyroflow может использовать эти данные вместо оптического потока.
- Проверено на двух камерах: Osmo Action 6 и GoPro HERO12 Black. Для клипов GoPro и Insta360 нужно, чтобы их объектив был в базе объективов Gyroflow.
- Проект, сделанный через Ctrl+e, сглаживает в Gyroflow немного иначе, чем Level в плеере.
- После перехода дальше уже прочитанного клип без проекта на мгновение играет без коррекции (около 2 с с сетевого диска), затем коррекция плавно включается.
- Устранение хроматической аберрации и шумоподавление работают только при воспроизведении, не в экспорте.
- Пока клип играет, экспорт почти останавливается. Поставьте на паузу, чтобы он шёл.
- Стабилизируются только файлы на диске, а не потоки с веб-адреса.
- Приложение для Windows — альфа-версия, пока мало проверенная.
Вопросы
О стабилизации.
Почему мой клип всё равно дрожит?
Чаще всего была включена собственная стабилизация камеры или, на DJI, клип снят не с Wide FOV, так что данных гироскопа нет. Карточка в панели пишет «No motion data in this clip». Нажмите Ctrl+e, чтобы стабилизировать его в Gyroflow; как только проект сохранён рядом с клипом, здесь он будет играть ровно.
Выключать ли стабилизацию камеры и над водой?
Не обязательно. На воздухе EIS от DJI работает хорошо. Под водой — нет, и именно там его выключение окупается. Для клипа, снятого на воздухе с выключенным EIS на камере, отличной от Osmo Action 6, поставьте Lens на Above (Ctrl+u): встроенный пресет рассчитан на воду.
Нужен ли мне Gyroflow?
Не для клипов с данными гироскопа и выключенной стабилизацией камеры: их плеер выравнивает сам. Приложение Gyroflow нужно, чтобы создать или изменить проект, и для клипов без данных гироскопа.
Меняет ли он мои видеофайлы?
Нет. Плеер их только читает. Проект — это отдельный файл .gyroflow рядом с клипом, и плеер никогда не перезаписывает уже существующий.
Попробуйте
Выключите стабилизацию камеры. Дважды щёлкните по клипу.
Бесплатно, без учётной записи, а ваши записи остаются как есть.
Ныряете?
Настройки по умолчанию сделаны для воды: поправка на неё, цветная кайма, глубина на экране.
Под водойПришлите клип со своей камеры
Несколько секунд прямо с карты помогут перевести камеру из «должна работать» в «проверена».
Создать issue на GitHub