Сетевой аудиосервер на основе pulseaudio в ubuntu

    Одна из интересных возможностей аудиосервера pulseaudio — это передача аудиопотока по сети на удалённые аудиоустройства. В моём случае таким устройством оказалась звуковая карточка в торрентокачалке с подключенными колонками и с ubuntu server 10.04 на борту. Под катом лежит miniHOWTO по установке и настройке сетевого сервера pulseaudio.

    Настройка клиента


    Настройка клиента тривиальна. Ставим утилиту, которая сидит в трее и помогает быстро переключаться между серверами pulseaudio.
    sudo apt-get install pulseaudio padevchooser

    Далее запускаем её:
    Меню — Sound & Video — PulseAudio Device Chooser
    Добавим в автозапуск. Для этого щёлкаем на иконку в трее и выбираем пункт Preferences… Отмечаем флажок «Start applet on session login».

    После настройки сервера его можно выбрать в меню.

    Теперь любая программа, использующая pulseaudio для вывода звука, может воспроизводить звук через аудиокарту удалённого компьютера.

    Настройка сервера


    1. Ставим Avahi, если не стоит:
    sudo apt-get install avahi-daemon

    2. Нам необходим pulseaudio и модуль, автоматически размещающий данные о наличии аудиосервера в локальной сети через службу Avahi.
    sudo apt-get install pulseaudio pulseaudio-module-zeroconf

    3. Создадим группу audio, участники которой имеют право доступа к аудиоустройствам:
    sudo groupadd audio

    4. Добавим себя в эту группу:
    sudo gpasswd -a user audio

    5. Добавим себя ещё и в эту группу, для доступа к pulseaudio:
    sudo gpasswd -a user pulse-access

    6. Поставим alsa.
    sudo apt-get install alsa libasound2-plugins

    7. Убедимся, что вам доступны аудиоустройства. Эта комманда покажет список доступных устройств в системе.
    aplay -l

    8. Подправим конфиг pulseaudio:
    sudo nano /etc/pulse/default.pa

    У меня пропадал сигнал на alsa устройстве при одновременно включенных module-native-protocol-tcp и module-udev-detect (предположительно это баг или мои кривые руки), поэтому я убрал автоопределение звуковых карт через udev, удалив эту часть конфигурационного файла
    ### Automatically load driver modules depending on the hardware available
    .ifexists module-udev-detect.so
    load-module module-udev-detect
    .else
    ### Alternatively use the static hardware detection module (for systems that
    ### lack udev support)
    load-module module-detect
    .endif

    и раскомменторовав это
    ### Load audio drivers statically (it's probably better to not load
    ### these drivers manually, but instead use module-hal-detect --
    ### see below -- for doing this automatically)
    load-module module-alsa-sink


    Для доступа из сети к аудиосерверу раскомментируете это и добавьте параметры загрузки модуля module-native-protocol-tcp:
    ### Network access (may be configured with paprefs, so leave this commented
    ### here if you plan to use paprefs)
    load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16
    load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16
    load-module module-zeroconf-publish

    где 127.0.0.1;192.168.0.0/16 — это сети, в которых будет доступен наш сервер. Так же не забудьте открыть доступ к pulseaudio в iptables.

    С конфигом всё.

    9. Теперь нужно перезагрузить сервер. Если все прошло успешно — то у наш сервер должен появится в PulseAudio Device Chooser у клиента

    Запустить аудиосервер можно, запустив следующую комманду от имени пользователя:
    pulseaudio -D
    Остановить так:
    pulseaudio -k
    Поделиться публикацией

    Похожие публикации

    Комментарии 11
      +1
      • НЛО прилетело и опубликовало эту надпись здесь
          0
          этого я не знаю) Я просто не плачу за last.fm и rhythmbox транслирует его бесплатно. ubuntu > rhythmbox > PulseAudio > windows
        0
        к слову, в 10.04 это уже через GUI можно сделать всё.
          0
          мы не ищем легких путей)
            0
            угу :)
            0
            На сервере нету GUI
            И gui аккуратно размазан по padevchooser и paprefs
              0
              На сервере понятно.

              Я для тех, кто между десктопами звук собирается расшаривать.
            0
            «Теперь нужно перезагрузить сервер.»
            — что за виндовзвей?
              0
              Эффект от добавления в группу audio я ощутил только после перезагрузки. Можно и без неё — но перезагрузить быстрее
                0
                много раз приходилось делать это… например vbox, вроде никогда не требовался ребут. мак — рестарт через rc.d

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое