Как передавать аудио по конвейеру из одной системы Linux в другую?
Недавно я полностью перешел с PulseAudio на PipeWire. Все отлично, кроме того, что в документации не слишком понятно, как настроить потоковую передачу по сети.
Моя цель :
- Потоковая передача звука с микрофона из основной системы во дополнительную
- Получите аудиовыход со вторичного устройства и передайте его обратно на основной.
Многие люди указывают мне на Pipewire Docs, но у них нет объяснений того, что на самом деле делают эти команды.
Что я пробовал:
Создание файла~/.config/pipewire/pipewire.conf
с содержанием/usr/share/pipewire/pipewire.conf
на обеих машинах.
Добавляем этот модуль на основную машину:
{
name = libpipewire-module-roc-source
args = {
local.ip = 0.0.0.0
resampler.profile = medium
sess.latency.msec = 5000
local.source.port = 10001
local.repair.port = 10002
source.name = "ROC Source"
source.props = {
node.name = "roc-source"
}
}
}
Затем добавьте этот модуль на вторичную машину:
{
name = libpipewire-module-roc-sink
args = {
local.ip = 0.0.0.0
remote.ip = 192.168.0.xxx
remote.source.port = 10001
remote.repair.port = 10002
sink.name = "ROC Sink"
sink.props = {
node.name = "roc-sink"
}
}
}
Эта конфигурация работает и создает выходной приемник на вторичном компьютере и ввод на основном, но у нее нет возможности передавать поток на другие устройства, и задержка просто непригодна.
Я не уверен, что в этом случае подойдет roc, поэтому, пожалуйста, поправьте меня, если я ошибаюсь.
Использование Arch Linux с
pipewire-full-git roc-toolkit
pipewire-full-roc-git
на обеих машинах
2 ответа
Ответ отсюда gist.github.com/savegame/pulse_sreaming.md
на Сервере, где подключены наушники
pactl load-module module-native-protocol-tcp port=4656 listen=<Server_IP>
на Clinet, где играет музыка
pactl load-module module-tunnel-sink server=tcp:<Server_IP>:4656
Я искал подобную установку. У меня есть виртуальные машины в KVM, которые я хотел подключить к конвейеру.
В итоге я использовал локальную сеть с мостом и подключил PulseAudio на виртуальной машине через мост к сокету PulseAudio Pipewire.
Однако я думаю, что это можно сделать с помощью модуля Protocol Simple или, может быть, с модулем Protocol Native и открыть его с помощью socat.