¿Cómo transmitir música a través de la red a varias computadoras?

78

Resultados

Quiero poder caminar de una habitación a otra y escuchar la misma canción sonando. Como si estuvieras escuchando la radio en todas las habitaciones.

Quiero ese efecto pero quiero escuchar mi propia música, ¿se puede hacer?

Materiales

  • Portátil Ubuntu.
  • Computadora Mac

Primera alternativa

Alvar
fuente

Respuestas:

48

Sí, con pulseaudio esto se puede hacer fácilmente. Deberá instalar y ejecutar paprefs Instalar paprefs que hagan que sus dispositivos de sonido estén disponibles en la red.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Esta configuración permite que tanto las fuentes de sonido como los sumideros se publiquen en la red, idealmente en otro servidor de pulseaudio.

En caso de que tenga la configuración de su servidor sin el administrador de escritorio, primero deberá instalar un sistema de sonido (consulte esta pregunta ). Luego puede editar sin /etc/pulse/default.pacomentar estas líneas en la sección Acceso a la red :

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

Si desea utilizar el remitente RTP, descomente estas líneas en la sección del módulo del remitente 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

El servidor pulseaudio debe iniciarse como un demonio pulseaudio -Den caso de que aún no se esté ejecutando. Para optimizar la configuración de calidad de sonido, /etc/pulse/daemon.confse puede adaptar a las necesidades personales

Un método alternativo para transmitir audio en su red sería configurar un servidor Icecast (consulte esta pregunta ).

Takkat
fuente
14
En el caso de un cliente sin cabeza (por ejemplo, un Pi con altavoces en los armarios de mi cocina), sería útil saber cómo configurar esto completamente a través de archivos de configuración y / o comandos de shell.
Raphael
Esta guía es lo suficientemente genérica como para seguirla en Ubuntu CLI. wiki.archlinux.org/index.php/PulseAudio/…
goetzc
11

Su mejor opción se llama Music Player Daemon (mpd).

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

Es una aplicación de servidor cliente. Usted almacena su música en el servidor, luego se conecta con sus clientes (muchas personas pueden hacerlo a la vez) y controla el servidor.

Ya está en ubuntu, solo apt-get install mpd

Y también buena documentación: https://wiki.archlinux.org/index.php/Mpd

MPD puede transmitir música, por lo que puede tener muchos clientes (o altavoces si así lo desea) para reproducir la música.

Pero realmente no esperes ninguna buena calidad. La transmisión de sonido estropea mal (no importa si usa mpd o pulseaudio). Es una idea mucho mejor conectar altavoces reales al servidor y usar las computadoras portátiles solo para controlarlo.

loxs
fuente
2
Bueno, mi casa es demasiado grande para usar cables, por eso quiero transmitir el sonido.
Alvar
Puede transmitir, no se preocupe por la calidad, él no importa mucho, dada su conexión inalámbrica es lo suficientemente fuerte
Rahul Prasad
¿Cómo la transmisión estropea la calidad del sonido? WiFi es un medio de transferencia digital. ¿MPD hace compresión sin pérdida? No creo que sea necesario para las redes WiFi de hoy.
nvd
Wow, una respuesta tan vieja. Ya ni me acuerdo, ya que no he usado MPD desde entonces.
loxs
11

No tuve que hacer nada fuera de lo común. Tengo dos netbooks gemelas con PulseAudio y bastante sin hardware de nombre de Intel. La forma en que lo configuré fue algo así.

ejecute paprefs tanto en su servidor como en su cliente. En el servidor, asegúrese de tener habilitada la configuración de multidifusión y de verificar los bits del servidor. al igual que ingrese la descripción de la imagen aquí

y el bit de multidifusión ingrese la descripción de la imagen aquí

En el cliente, habilite el bit sobre la búsqueda de dispositivos habilitados para la red ingrese la descripción de la imagen aquí y configure su dispositivo de salida en el dispositivo de red virtual a través de pavucontrol ingrese la descripción de la imagen aquí

viola deberías tener algo de magia ahora

lazyPower
fuente
1
Excepto que esto no tiene nada que ver con RTP.
kirelagin
Gracias por este gran tutorial. Marqué todas las casillas, excepto que no puedo "configurar mi dispositivo de salida en el dispositivo de red virtual a través de pavucontrol". Según tengo entendido, esto se hace a través del bit donde en su captura de pantalla está escrito "Audio estéreo analógico interno en charmes @ nano". Pero en mi sistema, no existe tal botón en absoluto. ¿Qué estoy haciendo mal?
user69748
No he revisado estas instrucciones desde 2011, por lo que es muy probable que la configuración del demonio de audio de pulso haya cambiado.
lazyPower
Lo que tengo ahora (después de reiniciar) es un canal separado llamado "pulseaudio" que parece estar enrutado a mi cliente. Sin embargo, no hay audio que fluya a través de él. Y mi canal Rhythmbox todavía no menciona "usuario @ cliente".
user69748
1

Con esta solución, puede transmitir el audio de su sistema donde quiera ...
la clave aquí es la capacidad de bucle de retorno de ALSA. primero debe habilitar el dispositivo de bucle invertido en ALSA, que aparecerá en el Control de volumen de PulseAudio como dispositivo de entrada (y también como dispositivo de salida).

sudo modprobe snd_aloop

Este dispositivo se puede agregar a un servidor mpd:

mpc add alsa://hw:1,1

donde hw: 1,1 es el dispositivo de entrada de bucle invertido que se puede enumerar con el comando aplay -l

entonces necesita configurar un complemento de salida http para el mpd. el siguiente ejemplo se vería como en/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
 }  

eso es. Seleccione el dispositivo looback para su fuente de audio en la pestaña Reproducción de control de volumen.
Finalmente, puede usar VLC o cualquier otro procesador de flujo en el punto de destino usando la dirección URL de httpd: http://192.168.1.38:8000
esta respuesta también está disponible aquí

laplasz
fuente
0

No estoy seguro de si se puede lograr algo como esto con DLNA / UPnP ya que no estoy familiarizado con él, pero lanzo algunos enlaces aquí en caso de que ayude:

Aunque un resultado de búsqueda rápida sugeriría que no es posible sincronizar ...

Ilari Kajaste
fuente
2
No se recomienda DLNA, ya que no puede sincronizar la reproducción.
Sparhawk
0

No hay una buena solución (todavía). Existe AVB pero su soporte para 802.11 está limitado a la sincronización de tiempo.

themihai
fuente
-2

Si desea transmitir a un teléfono Android, puede usar Foobar2000 en el servidor y BubbleUPnP (payware) en el cliente.

  1. conseguir vino
  2. obtener foobar_v1.2.5.exe
  3. $ wine foobar2000_v1.2.5.exe
  4. siguiente, siguiente, siguiente ... :)
  5. obtener foo_upnp
  6. extraer en la carpeta de componentes de foobar2000 (que probablemente esté en ~/.wine/drive_c/Program Files/)
  7. lanzar foobar2000
  8. vaya a Biblioteca → Configurar → Reproducción → Salida → Dispositivo y seleccione "Salida nula"
  9. asegúrese de ufwque no esté bloqueando el tráfico relevante
  10. en BubbleUPnP:
    1. vaya a Dispositivos → Bibliotecas y seleccione el servidor foobar2000
    2. en "Biblioteca", seleccione "Captura de reproducción de reproducción"

El enfoque tiene la ventaja de que si hace una pausa en el Android, acumulará un búfer (ya que el servidor todavía está enviando).

Probado en Ubuntu (versión Wine 1.5.28-0ubuntu1~ppa1) y Windows.

Janus Troelsen
fuente