Pavucontrol: module-loopback
Иногда требуется перенаправить звук с микрофона в колонки, сделать этом можно так..
Ищем id, микрофона (input устройства) и запоминаем его
1 2 3 |
pactl list sources |
в моем случае это #3
1 2 3 4 5 6 7 8 |
... Source #3 State: RUNNING Name: alsa_input.pci-0000_00_1b.0.analog-stereo Description: Built-in Audio Analog Stereo ... |
Теперь ищем id, колонок (output устройства)
1 2 3 |
pactl list sinks |
в моем случае это #1
1 2 3 4 5 6 |
Sink #1 State: IDLE Name: alsa_output.pci-0000_00_1b.0.analog-stereo Description: Built-in Audio Analog Stereo |
Теперь можно перенаправить звук с помощью loopback модуля
1 2 3 |
pactl load-module module-loopback latency_msec=1 source=3 sink=1 |
Отключить перенаправление, можно выгрузив модуль
1 2 3 |
pactl unload-module module-loopback |
Виртуальные устройства
При необходимости, можно создать виртуальное output-устройство вот так
1 2 3 4 |
pactl load-module module-null-sink sink_name=MySink pacmd update-sink-proplist MySink device.description=MySink |
К примеру, это позволит перенаправить сразу несколько микрофонов на него, что позволит писать весь звук одновременно.
Как миксовать микрофон и колонки/наушники
Решение найдено тут: Recording game audio
Create null outputs and connect them with loopback streams so the game audio is sent to the speakers, but also combined with the microphone and sent to SimpleScreenRecorder. This is what we want to achieve:
To do this, run the following commands:
1234567 pactl load-module module-null-sink sink_name=duplex_outpactl load-module module-null-sink sink_name=game_outpactl load-module module-loopback source=game_out.monitorpactl load-module module-loopback source=game_out.monitor sink=duplex_outpactl load-module module-loopback sink=duplex_outow you should open PulseAudio Volume Control and send the audio from the game to the second null output (game_out), and set the audio source in SimpleScreenRecorder to the first null output (duplex_out). This should be done from the input page - do not use PulseAudio Volume Control to change the audio source for SimpleScreenRecorder because the change will be lost whenever you pause and resume the recording.
As with the previous method, you should probably reduce the volume of the game a bit, because it's usually very loud compared to the microphone volume.
When you're done, remove all the extra outputs and loopback streams with this command:
1234 pactl unload-module module-loopbackpactl unload-module module-null-sink
Теперь разберем на примере Skype-а.
В моем случае получилось так
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# Создаем виртуальное устройство миксинга (вывода где будет миксоваться микрофон и колонки) pactl load-module module-null-sink sink_name=skype_duplex_out pacmd update-sink-proplist skype_duplex_out device.description=skype_duplex_out # Создаем виртуальное устройство вывода звуков скайпа pactl load-module module-null-sink sink_name=skype_out pacmd update-sink-proplist skype_out device.description=skype_out # Перенаправляем устройство вывода скайпа на колонки/наушники pactl load-module module-loopback source=skype_out.monitor sink=1 # Перенаправляем устройство вывода скайпа на устройство миксинга pactl load-module module-loopback source=skype_out.monitor sink=skype_duplex_out # Перенаправляем микрофон на на устройство миксинга pactl load-module module-loopback source=3 sink=skype_duplex_out |
Тут source=3 это мое устройство ввода - микрофон (который можно найти командой pactl list sources ), а sink=1 устройство вывода - наушники (которые можно найти командой pactl list sinks ). Тоже самое, можно переписать используя не id, а имена source-а и sink-а, вот так
1 2 3 4 5 6 7 |
pactl load-module module-null-sink sink_name=skype_duplex_out sink_properties=device.description="Skype-Duplex-Out"\ && pactl load-module module-null-sink sink_name=skype_out sink_properties=device.description="Skype-Out"\ && pactl load-module module-loopback source=skype_out.monitor sink=alsa_output.pci-0000_00_1b.0.analog-stereo \ && pactl load-module module-loopback source=skype_out.monitor sink=skype_duplex_out \ && pactl load-module module-loopback source=alsa_input.pci-0000_00_1b.0.analog-stereo sink=skype_duplex_out |
Теперь перезапускаем скайп и в настройках "Audio & Video" выбираем в качестве Speakers, устройство "skype_out".
Теперь можно в программе записи экрана/звука выбрать в качестве источника звука "skype_duplex_out" и будет идти одновременно запись звука из наушников (голос собеседника) и вашего микрофона, при этом звук микрофона не будет дублироваться в наушники.
Удалить все эти перенаправления можно так
1 2 3 4 |
pactl unload-module module-loopback pactl unload-module module-null-sink |
Конфигурация по-умолчанию
Так же стоит упомянуть, что вернуть всё к настройкам по-умолчанию всегда можно так
1 2 3 |
pulseaudio -k |
эта команда загрузит конфигурацию по-умолчанию (/etc/pulse/default.pa)
Если же, вы хотите переписать/добавить какие-то настройки на уровне пользователя, то нужно скопировать файл с настройками по-умолчанию, к себе в домашнюю директорию и модифицировать его так, как Вам будет нужно
1 2 3 |
cp /etc/pulse/default.pa ~/.config/pulse/default.pa |
Author: | Tags: /
| Rating:
1 comment.
Write a comment