Я устал терять игровые моменты из-за ShadowPlay и написал Captail
Наверное, знакомая ситуация: в игре происходит какой-то редкий, смешной или просто красивый момент, ты нажимаешь горячую клавишу для сохранения повтора и ничего.
Оказывается, NVIDIA Instant Replay уже какое-то время был выключен.
У меня это периодически происходило после вылета игры, проблем с захватом, переключения между рабочим столом и полноэкранным приложением или каких-то непонятных приключений с драйвером. Самое неприятное, что ShadowPlay не всегда нормально сообщает об этом. Узнаёшь уже тогда, когда сохранять поздно.
В какой-то момент мне это надоело, и я начал делать собственное приложение Captail.
Главная идея Captail очень простая: Instant Replay должен оставаться включённым.
Что вообще делает Captail
Программа постоянно хранит последние секунды или минуты видео в циклическом буфере.
Например, можно установить длительность повтора в десять минут, спокойно играть, а после интересного момента нажать горячую клавишу. Captail сохранит то, что произошло до нажатия кнопки.
Примерно как ShadowPlay, только приложение отдельно следит за состоянием захвата и пытается автоматически восстановить запись после устранимых сбоев.
Зачем делать ещё один аналог ShadowPlay
Понятно, что программы для записи экрана уже существуют. Есть OBS, Medal, SteelSeries Moments, Outplayed и другие варианты.
Но мне хотелось приложение с очень конкретным назначением:
- без сцен и стриминговых настроек;
- без аккаунта;
- без облачной загрузки;
- без телеметрии;
- с локальным хранением клипов;
- с максимально простым управлением;
- с попыткой восстановить Instant Replay после сбоя.
Captail использует libobs для захвата и кодирования, но не является очередной оболочкой над OBS Studio. В интерфейсе нет сцен, трансляций и десятков панелей - только функции, связанные с Instant Replay.
Что уже работает
Сейчас Captail умеет записывать игру или рабочий стол, сохранять клипы по глобальной горячей клавише и работать в фоне через системный трей.
Есть аппаратное кодирование в:
- H.264;
- HEVC;
- AV1.
Поддерживаются NVIDIA NVENC, AMD AMF и Intel Quick Sync. Можно выбрать разрешение, битрейт и частоту кадров вплоть до 240 FPS, разумеется, если железо и выбранный кодек это потянут.
Звук игры и микрофон можно записывать вместе либо сохранять отдельными дорожками. Это удобно, когда потом хочется убрать голос, изменить громкость или использовать клип для монтажа.
Библиотека и редактор клипов
Сохранённые повторы отображаются прямо в приложении. Их можно открыть в папке, удалить или отправить во встроенный редактор.
В редакторе можно:
- выбрать нужный фрагмент;
- оставить или отключить отдельные аудиодорожки;
- сохранить результат отдельным файлом;
- заменить оригинал.
Редактор пока остаётся одной из самых сырых частей Captail. Я уже переделываю его воспроизведение, потому что на тяжёлых AV1/HEVC-клипах открытие и перемотка могут работать медленнее, чем мне хотелось бы.
Что происходит после сбоя
Captail следит за состоянием записывающего пайплайна. Если захват или кодировщик перестал нормально работать, приложение пытается перезапустить запись, а не просто оставить Instant Replay выключенным.
Это не магия и не гарантия восстановления после абсолютно любой ошибки. Например, жёсткий краш драйвера может временно унести вместе с собой весь аппаратный кодировщик. Но после возвращения системы в рабочее состояние Captail старается снова поднять запись.
Именно эта часть для меня является главным отличием проекта от обычного replay buffer.
Насколько проект готов
Сейчас Captail находится в ранней публичной версии.
Основная запись и сохранение повторов уже работают, но баги и аппаратно-зависимые проблемы вполне возможны. Больше всего я тестировал приложение на современных NVIDIA RTX, поэтому особенно интересны результаты на:
- старых NVIDIA;
- видеокартах AMD;
- встроенной графике Intel;
- системах с несколькими мониторами;
- разных играх и режимах отображения.
Не хочу делать вид, что это уже отполированный коммерческий продукт. Сейчас мне важнее собрать реальные сценарии, логи и понять, где приложение ломается у других людей.
Бесплатно и с открытым кодом
Captail бесплатный, без рекламы, аккаунтов и телеметрии. Исходный код полностью опубликован на GitHub.
Готовые сборки: https://github.com/FaulMit/captail/releases
Также я отправил приложение в Microsoft Store. Когда сертификация закончится, добавлю ссылку на Store, это позволит устанавливать подписанную сборку и получать обновления через Microsoft.
Прошло)
Нужны тестировщики
Буду благодарен, если кто-нибудь попробует Captail в своих играх.
Для полезного баг-репорта желательно указать:
- модель видеокарты;
- версию драйвера;
- выбранный кодек;
- разрешение и FPS;
- режим захвата;
- что именно произошло перед ошибкой.
Особенно интересно проверить, действительно ли программа остаётся активной в тех ситуациях, где у вас раньше отваливался ShadowPlay.
К конструктивной критике интерфейса, архитектуры и поведения приложения отношусь нормально. Проект только начинается, поэтому сейчас как раз лучшее время что-то поменять.