Способ объединить аудио и видеопоток в одно окно для Discord?

Я пытаюсь транслировать VR-игру своим друзьям на Discord, но когда кто-либо транслирует (Screen Share) игру или любое приложение на Discord, Discord записывает только звук, исходящий из окна. А когда я играю в такую ​​игру, как BeatSaber, и там много движения, они слышат, как я тяжело дышу через микрофон, что может мешать другим пользователям канала.

На данный момент я использую OBS для захвата входных данных OpenVR (из SteamVR), а также поместил поток веб-камеры, поступающий с камер на гарнитуре VR, в верхний левый угол экрана, затем использую Функция OBS Windows Projection для отображения изображения OBS без фактического запуска или записи чего-либо, что экономит много системных ресурсов.

Что я хочу сделать, так это найти способ объединить аудиопоток, поступающий из моей гарнитуры VR, и проекцию OBS в одно окно рабочего стола со звуком, и сделать так, чтобы это окно можно было использовать в Discord, как и любое другое. игра. Таким образом, если люди захотят посмотреть, как я играю в Beat Sabre и тяжело дышу при этом, они смогут просто посмотреть Screen Share, не отключая мне громкость в Discord.

Я очень хорошо знаком с VoiceMeeter, могу ли я использовать его, если потребуется. Единственное, что может вызывать беспокойство при объединении видео и звука, это то, что я могу слышать свой разговор во время игры, но я могу это исправить, просто отключив звук в настройках звука Windows 10, и, надеюсь, после этого Discord по-прежнему сможет воспринимать звук.

Если у кого-нибудь есть предложения, буду очень благодарен.

1 ответ

Я решил это! Я поискал что-то подобное и обнаружил, что медиаплеер VLC может открывать устройства захвата с помощью аудиоустройства и делать это с низкой задержкой. Я сделал следующее:

  • Установить и настроить OBS.
  • Установите плагин OBS VirtualCam. У виртуальной камеры, встроенной в последнюю версию OBS (26.1.1 на момент написания статьи), были некоторые проблемы с VLC, поэтому установка отдельного плагина для OBS помогла мне.
  • Чтобы получить минимальную задержку для потоковой передачи Discord, откройте OBS, затем перейдите -> Инструменты -> VirtualCam -> Буферизованные кадры -> Перетащите вниз до 0.
  • Также включите автозапуск OBS VirtualCam, если вы хотите сделать это с помощью OBS.
  • Нажмите --> Старт
  • Установите и откройте VLC
  • Перейдите в --> Инструменты --> Настройки --> Ввод/Кодеки --> (В разделе) Кодеки --> Декодирование с аппаратным ускорением --> (выберите из раскрывающегося списка) DirectX Video Acceleration (DXVA) 2.0.
  • Вернитесь к настройкам, затем выберите вверху --> Видео --> (В разделе) Дисплей --> Вывод --> (Выбрать из раскрывающегося списка) Видеовыход DirectX (DirectDraw) . См. мои изменения ниже.
  • Затем, все еще находясь на вкладке «Видео», перейдите -> DirectX -> (И отключите) Ускоренный вывод видео (Overlay), а также отключите -> Использовать аппаратные преобразования YUV -> RGB. Эти настройки вызвали у меня розовый экран, но YMMV.
  • Закрыть настройки.
  • В VLC перейдите в раздел «Медиа» -> «Открыть устройство захвата» -> «DirectShow» -> «Имя видеоустройства» -> (выберите из раскрывающегося списка) OBS-Camera.
  • В меню в разделе «Имя аудиоустройства» выберите --> OBS-Audio.
  • Нажмите «Показать дополнительные параметры» в нижней части меню.
  • Установите «Кэширование» на 50 мс.
  • При желании вы можете настроить другие параметры, такие как частота кадров, битрейт звука и т. д., перейдя на вкладку «Дополнительные параметры» в середине меню.
  • Когда будете готовы, нажмите «Играть внизу».
  • Когда появится окно видео и аудио, возможно, существует закольцовка звука. Чтобы это исправить, вы можете либо
  • А. Отключите звук окна в звуковом микшере Windows 7/8/10.
  • Б. Измените устройство вывода в VLC, что я и сделал. Просто убедитесь, что если вы воспроизводите видео в VLC, когда не ведете потоковую передачу, чтобы снова переключиться на вывод аудиоустройства на гарнитуру. Чтобы сделать это на главном экране VLC, выберите --> Аудио --> Аудиоустройство --> (И выберите запасное аудиоустройство, которое вы не используете, оно у всех разное, но для моего случая я выберу) Realtek Цифровой выход.
  • Откройте Discord и Screen поделитесь окном VLC, оно должно отображаться как «dshow://» в Discord.
  • Все готово! Теперь у вас есть встроенный рабочий стол/игра со звуком игры/микрофона для Discord! А поскольку при этом используется OBS, на экран или звук можно вывести практически все что угодно!

Я надеюсь, что это было полезно для кого-то или тех, кто столкнется с этим в будущем.

Редактировать 1: установка автоматического вывода видео теперь дает мне лучшие результаты (декорации окон не видны в Discord, что более желательно), поэтому я бы посоветовал использовать это вместо этого.

Редактировать 2 (ВАЖНО): Я обнаружил, что при использовании VLC видео сжималось, и для меня оно получалось размытым. Вместо этого я решил создать оконную проекцию из OBS, а затем в расширенных настройках звука в OBS установить для источников звука значение -> Мониторинг звука -> Мониторинг и вывод. Я делаю это для того, чтобы Discord мог получать звук из OBS, сохраняя при этом видео из оконной проекции. Проблема в том, что сейчас у вас работает цикл обратной связи, а это не то, чего вы хотите. Итак, чтобы решить эту проблему (у вас должна быть установлена ​​Windows 10), нам нужно направить звук из приложения OBS из настроек Windows на альтернативное неиспользуемое аудиоустройство. К счастью, у меня есть кабель VirtualAudio, поэтому я могу просто направить звук на вход Cable-C, но если у вас его нет, вы можете использовать любое неиспользуемое аудиоустройство, которое хотите предотвратить петлю обратной связи, например, упомянутое выше Realtek. Цифровой выход, но опять же YMMV.

Другие вопросы по тегам