Делаем вывод звука на два устройства (Linux,Windows, Mac OS X)

Итак, друзья, как видно из названия статьи, в ней будет описано как можно пустить звук на два и более устройства с одного компьютера. Это может пригодиться например если вы маньяк, как и я, и вам вдруг понадобилось посмотреть фильм с выводом звука и на hdmi монитора и на колонках компьютера.

Linux

Работа со звуком в Linux может стать нестерпимой головной болью. Pulseaudio сделал неоднозначную работу, с одной стороны он привнёс в жизнь линукс много хорошего, с другой стороны много плохого. Безусловно некоторые вещи работают лучше, чем раньше, другие вещи стали более сложными. Обработка аудиовыхода — одна из возникших сложностей.

Итак если вы хотите включить несколько аудиовыходов с вашего ПК под управлением Linux, вы можете использовать простую утилиту для включения других звуковых устройств в виртуальный интерфейс. Не пугайтесь, сделать это намного проще, чем кажется из описания. Самый простой способ включить воспроизведение звука из нескольких источников — использовать простую графическую утилиту под названием «paprefs». Это сокращение от PulseAudio Preferences.

Делаем вывод звука на два устройства (Linux,Windows, Mac OS X)

В дистрибутивах базируемых на Archlinux установка командой:

yaourt -S paprefs

В операционных cиcтемах основанных на Ubuntu установка командой:

sudo apt install paprefs

Если вы используете не приведи господи Fedora, то придётся выполнить целых две команды:

su -c 'yum install pulseaudio-module-zeroconf'
su -c 'yum install paprefs'

Ну и если в вашей жизни всё вообще пошло не так и вы пользуетесь openSUSE, то для установки в один клик нажмите на эту ссылку, либо введите в терминале по очереди эти чудесные строки:

zypper addrepo https://download.opensuse.org/repositories/openSUSE:Factory/standard/openSUSE:Factory.repo
zypper refresh
zypper install paprefs

Буду считать, что с установкой paprefs вы справились, приступаем к непосредственному объединению выходов. Несмотря на то, что утилита является графической, ее, вероятно, проще запустить, набрав paprefs в командной строке от обычного пользователя. Если же словосочетание «командная строка», вызывает в вас те же чувства, что у меня «большой адронный коллайдер», то найдите «PulseAudio Preferences» у себя и запустите.
Откроется окно вот такого вида:

Нам нужна последняя вкладка «Simultaneous Output»

Как видно из скриншота, ошибиться на этой вкладке крайне сложно, так как присутствует всего один пункт включающий функционал, ради которого мы здесь и собрались. Ставим галочку рядом с «Add virtual output device for simultaneous output on all sound cards»

Делаем вывод звука на два устройства (Linux,Windows, Mac OS X)

Затем открываем штатные настройки звука вашего рабочего окружения, на скринах будет Gnome, так же этого можно достичь в замечательной утилите pavucontrol

В настройках звука переходим на вкладку с выходными устройствами «Output» выбираем «Simultaneous Output».
Собственно это всё, теперь ваш звук «льётся» из всех физических устройств одновременно. Сразу хотел бы обратить ваше внимание, что после включения данной функции, у вас будет только один общий регулятор громкости.

Windows

Хотя Windows 10, по моему скромному мнению, очень достойный представитель семейства Microsoft, я не нашёл более подобающего способа чем использование триальной утилиты написанной Евгением Музыченко, но вполне себе умеющую выполнять возложенный на неё функционал. Пусть не так легко и просто как это делается в Linux, но всё же. Эта утилита называется Virtual Audio Cable, скачать её можно здесь. Те у кого нет денег и совести могут найти её бесплатно по названию на rutracker.
Будем считать, что вы уже украли купили приложение и установили его на компьютер, переходим в меню Пуск > Все программы > Virtual Audio Cable > Audio Repeater (MME)

Делаем вывод звука на два устройства (Linux,Windows, Mac OS X)

В поле «wave in» выбираем «Line1 (Virtual Audio Cable)»
В поле «wave out» выбираем одно из устройств, на которое хотим подать звук. На картинке ниже я выбрал телевизор.
В поле приоритет ставим Realtime, что бы исключить задержки звука.
Нажимаем «Start», и слышим звук из выбранного устройства.

Делаем вывод звука на два устройства (Linux,Windows, Mac OS X)

Сворачиваем окошко и запускаем ещё один экземпляр «Audio Repeater (MME)», в котором повторяем процедуру, только в качестве Wave out выбираем другое выходное устройство, в моём случае это hdmi монитора.

Недостаток этого способа в том, что каждый раз при включении компьютера нужно будет провести ритуал по включению репитера.

Mac OS X

Делаем вывод звука на два устройства (Linux,Windows, Mac OS X)

Надо отдать должное яблочной компании, у них эта функция реализована великолепно, причем что называется «из коробки».
Открываем встроенное приложение Audio MIDI Setup, в нём внизу нажимаем на плюсик и создаём устройство с несколькими выходами как на картинке.

Вот собственно и всё, я не претендую на исключительность и на то, что это самые лучшие способы, если знаете другие варианты, прошу поделиться в комментариях. Спасибо за внимание. Я желаю Вам счастья.

5 thoughts on “Делаем вывод звука на два устройства (Linux,Windows, Mac OS X)

  1. Для Windows (к примеру).

    audio_split.bat

    c:
    cd "C:\Program Files\Virtual Audio Cable"

    start /min audiorepeater.exe /input:"Line 1 (Virtual Audio Cable)" /output:"Динамики (6- Asus Wireless Audi" /SamplingRate:44100 /BitsPerSample:16 /Channels:2 /Priority:High /autostart

    start /min audiorepeater.exe /input:"Line 1 (Virtual Audio Cable)" /output:"Динамики (Устройство с поддержк" /SamplingRate:44100 /BitsPerSample:16 /Channels:2 /Priority:High /autostart

    start /min audiorepeater.exe /input:"Line 1 (Virtual Audio Cable)" /output:"1 - TOSHIBA-TV (5- AMD High Def" /SamplingRate:44100 /BitsPerSample:16 /Channels:2 /Priority:High /autostart

    Не знаю, рабочий «батник» или нет, но смысл понятен, думаю.
    Сохранить все это из Блокнота, с расширением ,bat, и подставив
    свои имена устройств вывода (нужно скопировать в точности но вроде целиком не обязательно).
    Затем — «засунуть» созданный файл в Автозагрузку при старте Windows,
    любым способом: через реестр, добавив в планировщик, в папку запуска — файл или ярлык — «C:\Users\%User%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ (вроде тут должна быть).

    Параметры
    /Input:Input (capture, recording) device name
    /Output:Output (playback, rendering) device name
    /SamplingRate:Sampling rate (samples per second)
    /BitsPerSample:Bits per sample
    /Channels:Number of channels
    /ChanCfg:Channel configuration
    /BufferMs:Total buffering length in milliseconds
    /Buffers:Number of buffers (parts of buffering space)
    /Priority:Process priority
    /WindowName:Name of application instance window
    /AutoStart Start audio transfer automatically
    /CloseInstance:Close a specified Audio Repeater instance by its window name

  2. Спасибо. А есть способ как-то разделить звук на 2 устройства например с разных вкладок в браузере? Обычно я в vlc плеере выбираю нужное мне звуковое устройство для вывода звука при просмотре фильма, а ютуб для ребенка в браузере открыт на втором мониторе(телевизоре) и туда же выводит звук — удобно и ни кто ни кому не мешает. Но вот если мне тоже нужно в браузере что-то посмотреть/послушать на своем монике, в то время как ребенок смотрит ютуб на втором — я не могу найти способ, как разделить вывод звука. Ума не приложу, почему разработчики винды не задумались и не сделали такую возможностью, рас разделение вывода изображения прекрасно работает автоматически и востребовано, то в качестве опции наверняка очень востребованно было бы и автоматическое разделение звука при перетаскивании окна на другой монитор.

  3. Здравствуйте.
    А что делать, если на маке в аудиоустройствах появляется только дефолтное?

Leave a Comment