Як передавати музику через мережу на кілька комп'ютерів?


78

Результати

Я хочу мати можливість ходити з однієї кімнати в іншу і чути ту саму пісню. Як ви робите, якби ви слухали радіо у всіх кімнатах.

Я хочу цього ефекту, але я хочу слухати власну музику, чи можна це зробити?

Матеріали

  • Ноутбук Ubuntu.
  • Комп'ютер Mac.

Перша альтернатива

Відповіді:


48

Так, з pulseaudio це легко зробити. Вам потрібно буде встановити та запустити папрефи, Встановіть paprefs що робить ваші звукові пристрої доступними в мережі.

введіть тут опис зображення

введіть тут опис зображення

Ці параметри дозволяють публікувати як джерела звуку, так і раковини через мережу, в ідеалі на інший сервер імпульсних аудіо.

Якщо у вас налаштування сервера без менеджера робочого столу, спочатку вам потрібно буде встановити звукову систему (див. Це питання ). Потім ви можете редагувати /etc/pulse/default.paкоментарі, коментуючи ці рядки, у розділі Доступ до мережі :

load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
load-module module-zeroconf-publish

Якщо ви хочете використовувати відправника RTP, коментуйте ці рядки, розділ модуля відправника RTP :

load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 description="RTP Multicast Sink"
load-module module-rtp-send source=rtp.monitor

Пульсовий сервер потрібно запустити як демон, pulseaudio -Dякщо він ще не працює. Для оптимізації налаштувань якості звуку можливі /etc/pulse/daemon.confадаптації до особистих потреб.

Альтернативним методом передачі аудіо у вашій мережі буде налаштування сервера Icecast (див. Це питання ).


14
У випадку безголового клієнта (скажімо, Pi з динаміками на моїх кухонних шафах) було б корисно знати, як налаштувати це повністю за допомогою файлів конфігурації та / або команд оболонки.
Рафаель

Цей посібник є загальним для його перегляду в Ubuntu CLI. wiki.archlinux.org/index.php/PulseAudio/…
goetzc

11

Ваш найкращий варіант називається Daemon Music Player (mpd).

https://secure.wikimedia.org/wikipedia/en/wiki/Music_Player_Daemon

Це клієнтська серверна програма. Ви зберігаєте свою музику на сервері, потім підключаєтесь до своїх клієнтів (багато людей можуть це зробити відразу) і керуєте сервером.

Він уже в ubuntu, просто apt-get install mpd

А також хороша документація: https://wiki.archlinux.org/index.php/Mpd

MPD може передавати музику, тому у вас може бути багато клієнтів (або динаміків, якщо ви хочете зателефонувати їм) для відтворення музики.

Але насправді не очікуйте на хорошу якість. Потокове зіпсування звучить погано (незалежно від того, використовуєте ви mpd або pulseaudio). Набагато краща ідея підключити справжні динаміки до сервера та використовувати ноутбуки лише для управління ним.


2
Ну, а мій будинок занадто великий, щоб використовувати дроти, тому я хочу передавати звук.
Альвар

Ви можете передавати трансляцію, не турбуючись про якість, це не має великого значення, враховуючи, що ваш бездротовий зв’язок досить сильний
Рахул Прасад

Як потокове псування якості звуку? WiFi - це цифровий носій передачі. Чи робить MPD стиснення без втрат? Я не думаю, що це потрібно для сьогоднішніх мереж WiFi.
nvd

Вау, така стара відповідь. Я навіть не пам'ятаю більше, оскільки я не використовував MPD з того часу.
loxs

11

Мені нічого не потрібно було робити звичайне. У мене є нетбуки-близнюки як з PulseAudio, так і з обладнанням Intel. Як я це налаштував, було щось подібне.

запускайте папрефи як на вашому сервері, так і на клієнті. На сервері переконайтесь, що у вас включені налаштування багатоадресної передачі та встановлені прапорці бітів сервера. як так введіть тут опис зображення

і біт багатоадресної передачі введіть тут опис зображення

На клієнті ввімкніть біт про пошук пристроїв з підтримкою мережі введіть тут опис зображення та встановіть свій вихідний пристрій на віртуальний мережевий пристрій через pavucontrol введіть тут опис зображення

віола, тобі зараз слід мати магію


1
За винятком того, що це не має нічого спільного з RTP.
kirelagin

Дякую за цей чудовий підручник. Я встановив усі прапорці, за винятком того, що не можу "встановити свій вихідний пристрій у віртуальний мережевий пристрій через pavucontrol". Як я розумію, це робиться через біт, де на екрані екрану написано "Внутрішній аналоговий стереосистема на чарах @ nano". Але в моїй системі такої кнопки взагалі немає. Що я роблю неправильно?
user69748

Я не перевіряв ці інструкції з 2011 року, тому цілком ймовірно налаштування демон-імпульсного звуку змінилися.
lazyPower

У мене зараз (після перезавантаження) є окремий канал під назвою "pulseaudio", який, здається, перенаправляється до мого клієнта. Однак аудіо не протікає через нього. І на моєму каналі Rhythmbox досі немає згадки про "користувача @ клієнта".
user69748

1

За допомогою цього рішення ви можете передавати аудіосистему в будь-якому місці, де вам захочеться.
Ключовим тут є можливості зворотного зв'язку ALSA. тому спочатку вам потрібно включити циклічний пристрій в ALSA, який відобразиться в PulseAudio Volume Control як пристрій введення (і пристрій виведення).

sudo modprobe snd_aloop

цей пристрій потім може бути доданий на mpd-сервер:

mpc add alsa://hw:1,1

де hw: 1,1 - пристрій введення циклічного звороту, може бути перерахований за допомогою команди aplay -l

тоді вам потрібно налаштувати вихідний плагін для mpd. наступний приклад виглядатиме як у/etc/mpd.conf

 audio_output {
    type            "httpd"
    name            "My HTTP Stream"
    encoder         "vorbis"          # optional, vorbis or lame
    port            "8000"
    bind_to_address "192.168.1.38"               # optional, IPv4 or IPv6
    quality         "5.0"                   # do not define if bitrate is d$
#   bitrate         "128"                   # do not define if quality is d$
    format          "44100:16:1"
    max_clients     "0"                     # optional 0=no limit
 }  

це все. Виберіть пристрій пошуку для джерела звуку на вкладці Відтворення регулювання гучності.
Нарешті, ви можете використовувати VLC або будь-який інший рендерінг потоку в точці призначення за допомогою URL-адреси httpd: http://192.168.1.38:8000
Ця відповідь також доступна тут


0

Я не впевнений, чи можна щось подібне досягти за допомогою DLNA / UPnP, оскільки я сам з цим не знайомий, але кидаю сюди деякі посилання, якщо це допомагає:

Хоча швидкий результат пошуку підказує, що синхронізувати неможливо ...


2
DLNA не рекомендується, оскільки він не може синхронізувати відтворення.
Sparhawk

0

Немає гарного рішення (поки що). Є AVB, але його підтримка 802.11 обмежена часовою синхронізацією.


-2

Якщо ви хочете передати на телефон Android, ви можете використовувати Foobar2000 на сервері та BubbleUPnP (payware) на клієнті.

  1. отримати вино
  2. дістати foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. наступний, наступний, наступний ... :)
  5. отримати foo_upnp
  6. витяг у папку компонентів foobar2000 (яка, ймовірно, є ~/.wine/drive_c/Program Files/)
  7. запуск foobar2000
  8. перейдіть до Бібліотеки → Налаштувати → Відтворення → Вихід → Пристрій та виберіть "Нульовий вихід"
  9. переконайтеся, що ufwне блокує відповідний трафік
  10. у BubbleUPnP:
    1. перейдіть до Пристрої → Бібліотеки та виберіть сервер foobar2000
    2. у "Бібліотеці" виберіть "Захоплення потокового відтворення"

Перевага має такий підхід, що якщо ви призупинилися на Android, він накопичить буфер (оскільки сервер все ще надсилає).

Тестується на Ubuntu (версія Wine 1.5.28-0ubuntu1~ppa1) та Windows.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.