Как сделать видеотрансляцию с микшированным звуком (псевдо)студийного качества, не имея пульта, ч.2

Apr 20, 2020 15:01

Начало здесь: https://nowhereman2k.livejournal.com/16435.html

Засада №1 и ее преодоление.
По умолчанию все работает через штатную аудиоподсистему Windows, при создании которой никто не заботился об обработке звука в реальном времени.
Поэтому мы слышим свой микс с громадной задержкой, и использовать этот сигнал для мониторинга просто невозможно.



Здесь нам на помощь приходит протокол asio (https://ru.wikipedia.org/wiki/Audio_Stream_Input/Output). Качаем и устанавливаем фриварный драйвер для этого протокола asio4all (отсюда - http://www.asio4all.org).
Примечание. Ко многим внешним звуковухам идут специализированные asio-драйвера от производителя, но нам нужен именно универсальный asio4all, почему это важно - об этом далее.

Заходим в настройки mixcraft:



На вкладке «Звуковое устройство» выбираем Asio, а в графе «ASIO устройство» выбираем именно ASIO4ALL:


Дальше нам надо убедиться, что драйвер asio видит наши подключенные внешние звуковухи и может принимать с них данные. Для этого здесь же жмем кнопку «Настройки» - открывается вкладка свойств asio:


При наведении на название устройства в дереве должна высвечиваться подсказка «устройство готово к работе».
Обе кнопки слева от названия устройства (“вкл/выкл”, обозначенная номером 1, и “Play”, обозначенная номером 2) должны быть активными.

Тут наступает время танцев с бубнами, поскольку далеко не всегда подключенные устройства автоматически становятся активными, поэтому:

- может потребоваться несколько раз тыкнуть кнопки “вкл/выкл” и “Play” рядом с устройством, учитывая, что реакция на нажатие (изменение состояния кнопки) будет не мгновенной, а 3-5 сек. и более.
- если не помогает, то выдернуть устройство, воткнуть заново и вернуться к тыканью кнопок.

Но все же добиться рабочего состояния устройств можно - после этого жмем везде ОК и возвращаемся в главное окно Mixcraft.

Далее несколько моментов:

- Настройки входов для дорожек (левый и правый каналы) будут сброшены, и их надо будет переназначить, указав входы внешней USB звуковой карты;

- Кнопки «Запись» и «Мониторинг» на дорожках также будут отжаты, и их надо заново включить;

- Сигнал с мастер-дорожки теперь будет идти на выход нашей внешней USB-звуковухи, поэтому колонки или наушники надо переткнуть туда.

Если все хорошо, то мы услышим свой микс уже с приемлемой задержкой - там будет несколько миллисекунд, и этим сигналом уже можно пользоваться для мониторинга.

Выбор программы для трансляции.

Допустим, мы хотим сделать трансляцию ВКонтакте.
Как это сделать, написано здесь: https://vk.com/@authors-create-stream.

Основное в том, что надо выбрать и установить на комп специальную программу, которая будет брать видео с вебкамеры, аудио из указанного источника, и отдавать генерируемый видеопоток на канал трансляции, создаваемый ВКонтактом (по атрибутам URL и KEY).

Первая из предлагаемых прог (OSB) вроде всем хороша - и фриварная, и самая распространенная, но она категорически отказалась работать с моей древней как г.. мамонта GeForce 6600. Если у вас что-то более новое - скорее всего вам она подойдет.

Запускается и работает фриварный FFSplit (https://www.ffsplit.com/). Однако же, после нескольких проб выяснилось, что при кодировании звука в формате aac (который только и принимает ВКонтакт) он выдает аудиопоток с жуткими искажениями (срезание частот, бульканье и пр.). Такое впечатление, что он всегда берет низкий битрейт, вне зависимости от установок в настройках (а там для aac вроде доступны битрейты до 256).

Как окончательный вариант , выбрал продукт под названием vMix (https://www.vmix.com/software/download.aspx). Он небесплатный, но у него есть 60-дневная пробная версия.
(Опять же этот выбор актуален только для меня, поскольку это одна из двух прог (из десятка опробованных), которые согласились работать с моей устаревшей видеокартой).

Засада №2 и ее преодоление.

И тут возникает проблема - микшированный звук с помощью DAW мы получить можем, но его еще надо включить в трансляцию. А там, в качестве источника звука для трансляции , можно указать только устройство записи (со вкладки «Запись», которая в окне «Панель управления» -> «Звук»).

Можно, конечно, спаять кабель - переходник с аудиовыхода на линейный вход - но это сразу же влечет ухудшение качества за счет двойного преобразования.

И тут на каком-то форуме встретил упоминание некого Virtual Audio Cable, вот он:  https://www.vb-audio.com/Cable/. Качаем, устанавливаем.

Это драйвер, который создает в системе:
  1. виртуальное воспроизводящее устройство (на которое, например, можно направить микс с мастера DAW),
  2. соединенное с ним виртуальное устройство записи, которое можно указать в качестве источника звука для трансляции.
Что важно - этот виртуальный аудиокабель поддерживает функции asio. А драйвер asio4all, в отличие от проприетарных, поддерживает отновременную работу с несколькими asio-устройствами.

Открываем заново настойки asio4all и включаем одновременно два устройства:


В mixcrafte вдобавок к основному каналу вывода (master) добавляем еще один - с коммутацией на приемный конец виртуального аудиокабеля.
Для этого создаем одну send-дорожку, и на дорожках 1 и 2 устанавливаем регуляторы «send 1» в позицию 100:


То есть сигналы с дорожек 1 и 2 пойдут дополнительно на дорожку Send 1 в той же пропорции, что и на master.

Далее, создаем output-дорожку, и в качестве устройства вывода назначаем VB-Audio Point 1 / 2 , т.е. виртуальный аудиокабель. А для send-дорожки, соответственно, ставим в качестве выхода output -дорожку:


Всё, mixcraft у нас почти полностью сконфигурирован для трансляции  - можно сохранить проект, чтобы потом повторно это все не накручивать.

Теперь переходим к настройке программы трансляции - указываем источники видео и аудио.
В vMix’е это выглядит так (не самым очевидным образом):

1) Жмем AddInput, выбираем опцию More:


2) В появившемся окне настройки указываем источники видео и аудио, ставим разрешение видео, соответствующее разрешению вашей камеры:


3) Жмем кнопку настроек стриминга:


4) Вбиваем URL и KEY для трансляции, дополнительно (с помощью подчеркнутой кнопки настроек) выбираем параметры кодирования видео и аудио:




Вуаля! Почти все готово.

Остался еще один момент. Практически у всех дешевых вебкамер картинка идет с задержкой: если вы помашете в камеру рукой, увидите, что ваш двойник на мониторе машет вам с видимым запозданием. А звук будет идти практически без задержки.

То есть на звук для трансляции нам надо добавить компенсирующую задержку. Это можно сделать в mixcraftе, повесив эффект Delay на output-дорожку:


Обратите внимание, что в настройках дилея надо убрать на ноль обратную связь и выставить соотношение Wet/Dry как 100/0 - то есть получить чистый задержанный сигнал.

Величину задержки  надо подобрать опытным путем - например, снимая пробные ролики с пощелкиванием пальцем по микрофону.
В vMix’е для этого есть кнопка Record, а шестеренка рядом с ней - это, соответственно, настройки записи:


Вот теперь точно все готово, и можно начинать трансляцию, нажав кнопку Stream:


Previous post Next post
Up