Красота такой, какой она была.
Я люблю путешествия и дайвинг за красоту, которую там видишь, и люблю ею делиться. А вот просиживать вечера за цветокоррекцией и доводкой клипов не люблю. По-моему, красоту не нужно улучшать: она уже есть. Пока камеры и экраны не могли вместить её целиком, её приходилось втискивать в то, что они способны показать, а для этого нужны были творческие решения. Теперь это не так: с log и HDR техника уже может донести красоту до экрана такой, какой она была. Нужно только так ею и пользоваться.
Камеры лучше, файлы сложнее.
С годами камеры становились лучше, а их файлы перестали быть обычными видео. Включишь всё, что умеет камера, — и получаешь серую картинку в log, данные гироскопа, телеметрию и отметки хайлайтов, которые обычные плееры прочитать не могут. Выключишь всё — и видео выходит проще, чем могла бы снять камера.
А посередине — только приложение производителя: на телефоне, будто смотришь в замочную скважину. И ты привязан к нему навсегда, часто вместе с аккаунтом, облаком или подпиской, о которых ты не просил.
Цвета такими, какими их запомнил глаз.
Под водой цвета никогда не получались правильными. В обычном режиме камеры они выходили то слишком фиолетовыми, то слишком бурыми, то слишком зелёными — совсем не такими, какими их запомнил глаз. Потом я наткнулся на режим log. Через плеер, который понимает log, картинка выглядела лучше, хотя всё ещё не идеально. Но log умели читать только фирменные мобильные приложения производителей — опять та же замочная скважина.
Производители публикуют, как переводить свой log в обычную SDR-картинку, но не в HDR. Зато сообщество всё измерило. Зеб Гарднер разобрался, как на самом деле ведёт себя log у GoPro и DJI, и сделал бесплатные LUT, которые точно его преобразуют. Когда я пропустил через них свои погружения и посмотрел их в HDR на своём MacBook, картинка была нейтральной и честной, и поначалу я не поверил своим глазам: наконец-то это было похоже на то, что я видел. Мне захотелось, чтобы так было у всех. Я написал Зебу, и он любезно разрешил плееру использовать его LUT.
Приложения производителей дают совсем другое. Если экспортировать мои погружения из приложения DJI, тени у них задавлены в чёрное, так что кораллы становятся резкими и мрачными, почти готическими, а синий выходит слишком синим, перенасыщенным. Мне хотелось нейтральной картинки, и измерения Зеба мне её дали.
Но чтобы применить LUT, нужна профессиональная программа вроде DaVinci Resolve или Final Cut Pro, которую сначала ещё надо купить. Загружать клипы в монтажную программу только для того, чтобы посмотреть, что я наснимал, — это стрелять из пушки по воробьям. Так появилась первая причина сделать этот плеер: дважды щёлкаешь по клипу в log, и он сразу играет в HDR, красиво.
Под водой всё трясётся.
Под водой трясётся всё. Когда у камер появилась своя стабилизация, я был в восторге — пока не увидел, что там она не работает. А громоздкий риг на две руки мне никогда не был нужен. Для меня главное — само погружение: быть там, смотреть по сторонам, чувствовать место. Камера — это одна рука, не больше, иначе пропадает вся радость.
Дайверы, с которыми я об этом говорил, были уверены: цифровая стабилизация под водой не работает и работать не может. Я изучал физику, поэтому стал искать причину. Стабилизация по гироскопу исходит из того, как объектив преломляет свет, а вода это меняет: объектив ведёт себя так, будто его фокусное расстояние примерно на треть больше. Поэтому при каждом повороте камеры картинка сдвигается примерно на треть сильнее, чем ожидает стабилизация, и всё, что она не догоняет, видно как тряску. Поправь объектив на преломление в воде — и тряска уходит.
Какое-то время я снимал с купольным портом — это бокс с куполообразным окошком перед объективом. Свет тогда переходит из воды в воздух под прямым углом и не преломляется, и даже собственная стабилизация камеры работает. Но купол пластиковый и легко царапается, он большой, а воздух внутри тянет тебя к поверхности. Как временное решение это работало. Но это было не то, чего я хотел.
В апреле 2024 года я пришёл с этими расчётами в Gyroflow — открытый проект для стабилизации видео. Вместе с его разработчиками мы разобрались за несколько дней, и в Gyroflow появилась настройка для подводной съёмки: ставишь галочку Lens is underwater («объектив под водой») — и погружения получаются ровными. В тот же день я попросил о том же GoPro в GoPro Labs, их экспериментальных функциях. Примерно через полгода в Labs появился Dive Mode, который подстраивает HyperSmooth под преломление в воде. С тех пор я им пользуюсь, и он работает. Правда, в обычные настройки камер он так и не попал.
Потом жена подарила мне Osmo Action 6. У неё большой сенсор, под водой он ловит гораздо больше света, но со стабилизацией та же беда. В мае 2026 года я попросил DJI сделать такое же исправление. А пока его нет, это делает мой плеер.
По-моему, удачно сошлось: физика, технологии и любовь к дайвингу.
Плеер, который делает всё сам.
Я внимательно слежу за технологиями, а больше всего — за ИИ. В какой-то момент я понял, что он стал достаточно хорош, чтобы человек с моими скромными знаниями программирования мог сделать настоящее приложение. И я сделал тот плеер, который хотел, а напарником по программированию у меня был Claude, ИИ от Anthropic. Дважды щёлкаешь по клипу, и он сразу играет: log в цвете и в HDR, без тряски, с поправкой объектива на воду и без цветной каймы по краям. Ничего не нужно рендерить, ничего не нужно импортировать.
Делал я его для себя. А потом увидел, сколько людей с такими же записями и такой же проблемой. Поэтому я научил его работать с другими камерами, проверил на своих старых клипах с GoPro и открыл для всех. Заодно я всё это время отдаю улучшения и в сам Gyroflow.
Открытый код и что дальше.
Это мой первый проект с открытым кодом, и мне самому интересно, куда он приведёт. Он бесплатный и останется бесплатным. Но времени он отнимает немало. Если он вам пригодился и вы хотите его поддержать, я буду рад и благодарен: поддержка — это больше времени на проект и на новые камеры.
Нашли ошибку или у вас камера, которую плеер ещё не знает? Напишите мне в GitHub Issues.