Про стримы и захват видео с Nintendo Switch | Почти Блог | Astrr

Про стримы и захват видео с Nintendo Switch


Недавно я решил наконец-то пройти The Legend of Zelda: Breath of the Wild на Master Mode.
Для тех, кто не знает - это режим, в котором ты начинаешь игру с начала, но враги становятся намного сильнее, и игра в целом перестаёт тебя щадить.

Так вот, я захожу в игру, выбираю Master Mode, и тут мне в голову приходит идея, что было бы прикольно застримить моё прохождение для друзей (и в целом ради записи моих страданий).
Однако, сделать нормальный стрим было намного более сложной задачей, чем прохождение игры)

Начнем с того, что у меня нет карты захвата, а значит, что нужно использовать програмные способы захвата видео, что очень часто бывает крайне костыльным. Я нашел модуль для своей цели, SysDVR, подключил свич к OBS, и всё вроде бы заработало.

Однако, как только я начал смотреть тестовую запись, я понял, что что-то в ней было не так. Оказалось, что видео отстаёт от моего голоса. И если бы это была фиксированная задержка, то я бы смог просто добавить задержку к голосу, но нет, она менялась в течение записи. В итоге первый стрим я провёл, постоянно регулируя задержку между голосом и видео, и всё равно оно вышло очень так себе.

Поэтому на следующий день я решил попробовать уменьшить задержку видео.

<техническая инфа> Если раньше видео передавалось по TCP тоннелю между NS и ПК, а потом превращалось в локальный RTSP на стороне ПК (или RSTP, отстаньте, мне и так сложно а тут еще и буквы нужно по порядку ставить), который потом подхватывался OBS через 127.0.0.0:6666, то теперь NS подключен к точке доступа моего ноутбука, и транслирует RTSP напрямую, где его ловит VLC (потому что у него можно настроить размер буфера) через 192.168.1.N:6666, а OBS просто записывает окно VLC.<конец технической инфы>

Это помогло уменьшить задержку с 5-15 секунд до 1-3 секунд, но это всё еще было проблемно синхронизировать, и из-за потоковой природы этого метода видео стало намного чаще терять кадры и выдавать прочие артефакты, так что это тоже не подходило.

Однако, был ещё один способ. Если не передавать звук, то SysDVR поддерживает передачу видео в MPV (плеер) с очень низкой задержкой (менее 100мс). Однако, появилась новая проблема.

Звук.
Изначально на моем ноутбуке нет 3.5 аудио входа, только выход и 4 USB Type-C. Голос я сначала записывал через встроенный микрофон, но очень быстро понял, что это тоже ужасный вариант. В итоге я нашел относительно нормальный микрофон и USB-3.5mm адаптер, что и использую для записи звука сейчас.

Но теперь нужно еще как-то захватывать звук с NS, и из вариантов в голову приходит только выход для наушников на консоли. Но порт на ноутбуке только один (ну, по сути их вообще нет, но с адаптером один), так что просто подключить его не получится.

Что же я сделал? Bluetooth адаптер? Второй компьютер для захвата звука? Отдельная программа для передачи звука?

Об этом я расскажу в следую…
Нет, мне лень писать еще один пост))

Я просто нашел второй адаптер. Да, всё так скучно. В мою защиту, мне пришлось припаять к нему новый разъём потому что старый заржавел, так что это был не самый очевидный вариант)

В итоге, свич передаёт видео на ПК описанным выше способом, а в его разъём для наушников воткнут раздвоитесь, один выход которого идет напрямую в мои наушники, а другой - в USB адаптер, через который он поступает в ПК.

Надеюсь, что сетап больше не будет сильно меняться (разве что если в сторону упрощения), а пока что вот.