Как транслировать музыку по сети на несколько компьютеров?
Результаты
Я хочу иметь возможность ходить из одной комнаты в другую и слышать, как играет одна и та же песня. Как и вы, если вы слушали радио во всех комнатах.
Я хочу этот эффект, но я хочу слушать свою собственную музыку, это можно сделать?
материалы
- Ubuntu ноутбук.
- Компьютер Mac
Первая альтернатива
- Я нашел и настроил программное обеспечение в соответствии с этим ответом
- Все программное обеспечение на компьютерах и на сервере настроено, как мне продолжить? http://www.pulseaudio.org/wiki/FirstSteps
8 ответов
Да, с помощью pulseaudio это легко сделать. Вам нужно будет установить и запустить paprefs это делает ваши звуковые устройства доступными по сети.
Эти настройки позволяют публиковать как источники звука, так и приемники по сети, в идеале на другой сервер pulseaudio.
Если у вас настроен сервер без менеджера рабочего стола, вам сначала нужно установить звуковую систему (см. Этот вопрос). Вы можете редактировать /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 должен быть запущен как демон с pulseaudio -D
на случай, если он еще не запущен. Для оптимизации настроек качества звука в /etc/pulse/daemon.conf
могут быть адаптированы к личным потребностям.
Альтернативный метод для потоковой передачи аудио в вашей сети может состоять в настройке сервера Icecast (см. Этот вопрос).
Мне не нужно было делать что-то необычное. У меня есть два нетбука как с PulseAudio, так и практически без названия от Intel. Как я это настроил, получилось немного примерно так.
запустите paprefs на вашем сервере и клиенте. На сервере убедитесь, что у вас включены параметры многоадресной рассылки и биты сервера проверены. вот так
и многоадресный бит
На клиенте включите бит о поиске сетевых устройстви настройте ваше устройство вывода на виртуальное сетевое устройство через pavucontrol
альт у тебя должно быть немного магии сейчас
Ваш лучший вариант называется Music Player Daemon (mpd).
https://secure.wikimedia.org/wikipedia/en/wiki/Music_Player_Daemon
Это клиент-серверное приложение. Вы сохраняете свою музыку на сервере, затем соединяетесь с клиентами (многие люди могут сделать это одновременно) и управляете сервером.
Это уже в Ubuntu, просто apt-get установить mpd
А также хорошая документация: https://wiki.archlinux.org/index.php/Mpd
MPD может воспроизводить музыку, поэтому у вас может быть множество клиентов (или ораторов, если вы хотите их вызвать) для воспроизведения музыки.
Но на самом деле не ожидайте хорошего качества. Потоковая испорченность звучит плохо (не важно, используете ли вы mpd или pulseaudio). Намного лучше подключить к серверу настоящие динамики и использовать ноутбуки только для управления им.
С помощью этого решения вы можете транслировать вашу аудиосистему везде, где вам нужно.
ключ здесь - возможности петли ALSA. поэтому сначала вам нужно включить петлевое устройство в ALSA, которое будет отображаться в регуляторе громкости PulseAudio в качестве устройства ввода (а также устройства вывода).
sudo modprobe snd_aloop
это устройство затем может быть добавлено на сервер mpd:
mpc add alsa://hw:1,1
где hw:1,1 - устройство петлевого ввода, которое можно перечислить с помощью команды aplay -l
тогда вам нужно настроить плагин вывода http для 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
Этот ответ также доступен здесь
Чтобы добавить к ответу lazyPower, я хотел бы прокомментировать, что «pulseaudio server» — это место, где расположены аудиоустройства (в моем случае это Bluetooth-наушники, подключенные к ноутбуку), а «pulseaudio client» — это место, где звук воспроизводится на сеть, выбирающая устройство аудиоприемника. Я провел несколько часов, прежде чем понял это.
Я не уверен, что что-то подобное может быть достигнуто с помощью DLNA/UPnP, так как я сам не знаком с этим, но выкидываю некоторые ссылки здесь на случай, если это поможет:
- UPnP AV медиа-сервер (Википедия)
- Digital Living Network Alliance / Спецификация (Википедия)
- Проекты с открытым исходным кодом DLNA (elinux)
- Список программных устройств с открытым исходным кодом DLNA/UPnP AV (jorgenmodin.net)
- Список медиасерверов UPnP AV и клиентов / клиентов Linux (Википедия)
Хотя быстрый результат поиска показал бы, что невозможно синхронизировать...
Нет хорошего решения (пока). Существует AVB, но его поддержка 802.11 ограничена синхронизацией времени.
Если вы хотите осуществлять потоковую передачу на телефон Android, вы можете использовать Foobar2000 на сервере и BubbleUPnP ( payware) на клиенте.
- получить вино
- получить
foobar_v1.2.5.exe
$ wine foobar2000_v1.2.5.exe
- следующий, следующий, следующий...:)
- получить foo_upnp
- распаковать в папку компонентов foobar2000 (которая, вероятно, находится в
~/.wine/drive_c/Program Files/
) - запустить foobar2000
- перейдите в Библиотеку → Настройка → Воспроизведение → Выход → Устройство и выберите "Нулевой выход"
- удостовериться
ufw
не блокирует соответствующий трафик - в BubbleUPnP:
- зайдите в Устройства → Библиотеки и выберите сервер foobar2000
- в "Библиотеке" выберите "Захват потока воспроизведения"
Преимущество такого подхода заключается в том, что если вы сделаете паузу на Android, он будет накапливать буфер (так как сервер все еще отправляет).
Проверено на Ubuntu (винная версия 1.5.28-0ubuntu1~ppa1
) и Windows.