Как передавать аудио по конвейеру из одной системы 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.

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