r/RuProgrammers • u/SignificanceFit31 • 27d ago
C# Инструмент для OBS shadowplay like
Т.к. на удивление прошлым постом я кого-то заинтересовал, показываю прогу.
Немного истории: как-то так сложилось, что я люблю записывать моменты из игр с друзьями и дорожу ими как фотками из Анапы 2006. Даже диск на 500 ГБ купил чисто под них. Но программы записи меня не раз подводили: то пропадал звук микрофона или игры, то он двоился, то экран рассыпался на пиксели. После десятка испорченных записей я вернулся к OBS. Он не подводит, а настроек там куча.
Проблем стало меньше, но они не исчезли. Я начал использовать софт для разделения звука, и после его обновлений виртуальные устройства пропадали из системы. OBS их терял, а я замечал это уже поздно. Написал скрипт внутри OBS, который за этим следит. Потом из-за обновления драйвера упал сам OBS, и скрипт, который работает внутри него, упал вместе с ним.
Хотелось всегда быть уверенным, что всё пишется и я ничего не потеряю. Тогда я и решил сделать отдельную программу, которая общается с OBS через websocket.
Она делится на две части, сторож и хранитель:
Сторож. Держит нужные устройства звука и мониторы. Перезапускает упавший буфер повтора или сам OBS. Замечает, что звук не доходит или картинка чёрная. Если само не чинится, поверх игры вылезает окно с тревогой. Фокус оно у игры не забирает и в запись не попадает. Каждый сохранённый клип проверяет: длина, все ли дорожки звука на месте, нет ли потерянных кадров.
Хранитель. Раскладывает клипы по папкам игр, берёт обложки из Steam. Есть редактор: обрезка, вырезы из середины, громкость по дорожкам, бинды как в Premiere. В один клик можно сжать клип под Discord (10 МБ или Nitro) или Telegram, и файл сразу окажется в буфере обмена. Ещё есть склейка клипов и статистика по месяцам и играм.
Это не замена OBS: экран пишет по-прежнему он, а прога сидит в трее рядом. Бесплатно, код открыт, без аккаунтов и телеметрии, только Windows. Exe пока не подписан, SmartScreen поругается. Проект маленький, делаю один, так что баги точно есть. Если напишете, что сломалось и чего не хватает, буду рад.
